diff options
author | rodri <rgl@antares-labs.eu> | 2020-04-17 11:37:10 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2020-04-17 11:37:10 +0000 |
commit | e77a34629060abfad8e463efda0c3ffc54379793 (patch) | |
tree | 9151e47fab853248f95594e6ef48999a1ff6255f | |
parent | 263444216730830b712a4f8f3a087513c5ac93e9 (diff) | |
download | 3dee-e77a34629060abfad8e463efda0c3ffc54379793.tar.gz 3dee-e77a34629060abfad8e463efda0c3ffc54379793.tar.bz2 3dee-e77a34629060abfad8e463efda0c3ffc54379793.zip |
roll everything back.
36 files changed, 517 insertions, 15371 deletions
diff --git a/geometry.h b/geometry.h deleted file mode 100644 index 0e4f748..0000000 --- a/geometry.h +++ /dev/null @@ -1,110 +0,0 @@ -#define DEG 0.01745329251994330 /* π/180 */ - -typedef struct Point2 Point2; -typedef struct Point3 Point3; -typedef double Matrix[3][3]; -typedef double Matrix3[4][4]; -typedef struct Quaternion Quaternion; -typedef struct RFrame RFrame; -typedef struct RFrame3 RFrame3; -typedef struct Triangle3 Triangle3; - -struct Point2 { - double x, y, w; -}; - -struct Point3 { - double x, y, z, w; -}; - -struct Quaternion { - double r, i, j, k; -}; - -struct RFrame { - Point2 p; - Point2 bx, by; -}; - -struct RFrame3 { - Point3 p; - Point3 bx, by, bz; -}; - -struct Triangle3 { - Point3 p0, p1, p2; -}; - -/* Point2 */ -Point2 Pt2(double, double, double); -Point2 Vec2(double, double); -Point2 addpt2(Point2, Point2); -Point2 subpt2(Point2, Point2); -Point2 mulpt2(Point2, double); -Point2 divpt2(Point2, double); -Point2 lerp2(Point2, Point2, double); -double dotvec2(Point2, Point2); -double vec2len(Point2); -Point2 normvec2(Point2); - -/* Point3 */ -Point3 Pt3(double, double, double, double); -Point3 Vec3(double, double, double); -Point3 addpt3(Point3, Point3); -Point3 subpt3(Point3, Point3); -Point3 mulpt3(Point3, double); -Point3 divpt3(Point3, double); -Point3 lerp3(Point3, Point3, double); -double dotvec3(Point3, Point3); -Point3 crossvec3(Point3, Point3); -double vec3len(Point3); -Point3 normvec3(Point3); - -/* Matrix */ -void identity(Matrix); -void addm(Matrix, Matrix); -void subm(Matrix, Matrix); -void mulm(Matrix, Matrix); -void smulm(Matrix, double); -void transposem(Matrix); -double detm(Matrix); -double tracem(Matrix); -void adjm(Matrix); -void invm(Matrix); -Point2 xform(Point2, Matrix); - -/* Matrix3 */ -void identity3(Matrix3); -void addm3(Matrix3, Matrix3); -void subm3(Matrix3, Matrix3); -void mulm3(Matrix3, Matrix3); -void smulm3(Matrix3, double); -void transposem3(Matrix3); -double detm3(Matrix3); -double tracem3(Matrix3); -void adjm3(Matrix3); -void invm3(Matrix3); -Point3 xform3(Point3, Matrix3); - -/* Quaternion */ -Quaternion Quat(double, double, double, double); -Quaternion Quatvec(double, Point3); -Quaternion addq(Quaternion, Quaternion); -Quaternion subq(Quaternion, Quaternion); -Quaternion mulq(Quaternion, Quaternion); -Quaternion smulq(Quaternion, double); -Quaternion sdivq(Quaternion, double); -double dotq(Quaternion, Quaternion); -Quaternion invq(Quaternion); -double qlen(Quaternion); -Quaternion normq(Quaternion); -Point3 qrotate(Point3, Point3, double); - -/* RFrame */ -Point2 rframexform(Point2, RFrame); -Point3 rframexform3(Point3, RFrame3); -Point2 invrframexform(Point2, RFrame); -Point3 invrframexform3(Point3, RFrame3); - -/* Triangle3 */ -Point3 centroid(Triangle3); diff --git a/graphics.h b/graphics.h deleted file mode 100644 index 51c0a93..0000000 --- a/graphics.h +++ /dev/null @@ -1,51 +0,0 @@ -typedef enum { - Portho, /* orthographic */ - Ppersp /* perspective */ -} Projection; - -typedef struct Vertex Vertex; -typedef struct Viewport Viewport; -typedef struct Camera Camera; - -struct Vertex { - Point3 p; /* position */ - Point3 n; /* surface normal */ -}; - -struct Viewport -{ - RFrame; - Memimage *fb; -}; - -struct Camera { - RFrame3; /* VCS */ - Viewport viewport; - double fov; /* vertical FOV */ - double clipn; - double clipf; - Matrix3 proj; /* VCS to NDC xform */ - Projection ptype; - - void (*updatefb)(Camera*, Rectangle, ulong); -}; - -/* Camera */ -Camera *alloccamera(Rectangle, ulong); -void configcamera(Camera*, Image*, double, double, double, Projection); -void placecamera(Camera*, Point3, Point3, Point3); -void aimcamera(Camera*, Point3); -void reloadcamera(Camera*); - -/* rendering */ -#define FPS2MS(n) (1000/(n)) -#define WORLD2VCS(cp, p) (rframexform3((p), *(cp))) -#define VCS2NDC(cp, p) (xform3((p), (cp)->proj)) -#define WORLD2NDC(cp, p) (VCS2NDC((cp), WORLD2VCS((cp), (p)))) -int isclipping(Point3); -Point toviewport(Camera*, Point3); -Point2 fromviewport(Camera*, Point); -void perspective(Matrix3, double, double, double, double); -void orthographic(Matrix3, double, double, double, double, double, double); -void line3(Camera*, Point3, Point3, int, int, Image*); -Point string3(Camera*, Point3, Image*, Font*, char*); diff --git a/libgeometry/doc/libgeometry.ms b/libgeometry/doc/libgeometry.ms deleted file mode 100644 index 47c8d94..0000000 --- a/libgeometry/doc/libgeometry.ms +++ /dev/null @@ -1,429 +0,0 @@ -.TL -libgeometry -.AU -Rodrigo G. López -.sp -rgl@antares-labs.eu -.AI -Antares Telecom Laboratories -Albatera, Alicante -.FS -ACHTUNG! this is a -.B "WORK IN PROGRESS" -.FE -.SH -Introduction -.PP -.I Libgeometry is a computational geometry library that provides all -the utilities anybody working with graphics or scientific simulations -could need. -.NH 1 -Data Structures -.NH 2 -Point2 -.P1 -struct Point2 { - double x, y, w; -}; -.P2 -.PP -.I Point2 -represents a point in two-dimensional projective space, which itself -is an extension of the two-dimensional euclidean space that allows us -to work with vectors and compose affine transformations in a friendly -manner. A point -.EQ -gfont roman -(x, y, w) -.EN -made out of homogenous coordinates -.I x , -.I y , -and -.I w , -yields a point with cartesian coordinates -.EQ -(x/w, y/w) . -.EN -.NH 2 -Point3 -.P1 -struct Point3 { - double x, y, z, w; -}; -.P2 -.PP -.I Point3 -is a point in three-dimensional projective space. -.NH 2 -Matrix -.P1 -typedef double Matrix[3][3]; -.P2 -.PP -.I Matrix -represents a 3x3 matrix, thought to compose affine transformations to -apply to homogeneous 2D points. -.NH 2 -Matrix3 -.P1 -typedef double Matrix3[4][4]; -.P2 -.PP -.I Matrix3 -represents a 4x4 matrix, thought to compose affine transformations to -apply to homogeneous 3D points. -.NH 2 -Quaternion -.P1 -struct Quaternion { - double r, i, j, k; -}; -.P2 -.PP -.I Quaternions -are a numbering system that extends the complex numbers up to -four-dimensional space, and are used to apply rotations and model -mechanical interactions in 3D space. Their main advantages with -respect to their matrix relatives are increased computational and -storage performance and gimbal lock avoidance. -.NH 2 -RFrame -.P1 -struct RFrame { - Point2 p; - Point2 bx, by; -}; -.P2 -.PP -A reference frame (or frame of reference) is -.NH 2 -RFrame3 -.P1 -struct RFrame3 { - Point3 p; - Point3 bx, by, bz; -}; -.P2 -.PP -A reference frame (or frame of reference) is -.NH 1 -Algorithms -.NH 2 -Point2 -.SH -Addition -.P1 -Point2 addpt2(Point2 a, Point2 b) -.P2 -.EQ -a + b ~=~ left ( x sub a + x sub b ,~ y sub a + y sub b ,~ w sub a + w sub b right ) -.EN -.SH -Substraction -.P1 -Point2 subpt2(Point2 a, Point2 b) -.P2 -.EQ -a - b ~=~ left ( x sub a - x sub b ,~ y sub a - y sub b ,~ w sub a - w sub b right ) -.EN -.SH -Multiplication -.P1 -Point2 mulpt2(Point2 p, double s) -.P2 -.EQ -p * s ~=~ left ( xs,~ ys,~ ws right ) -.EN -.SH -Division -.P1 -Point2 divpt2(Point2 p, double s) -.P2 -.EQ -p / s ~=~ left ( x over s ,~ y over s ,~ w over s right ) -.EN -.SH -Vector Dot Product -.P1 -double dotvec2(Point2 a, Point2 b) -.P2 -.EQ -a vec ~•~ b vec ~=~ x sub a x sub b + y sub a y sub b -.EN -.SH -Vector Magnitude/Length -.P1 -double vec2len(Point2 v) -.P2 -.EQ -| v vec | ~=~ sqrt { x sup 2 + y sup 2 } -.EN -.SH -Vector Normalization -.P1 -Point2 normvec2(Point2 v) -.P2 -.EQ -n vec ~=~ left ( x over {| v vec |},~ y over {| v vec |} right ) -.EN -.NH 2 -Point3 -.SH -Addition -.P1 -Point3 addpt3(Point3 a, Point3 b) -.P2 -.EQ -a + b ~=~ left ( x sub a + x sub b ,~ y sub a + y sub b ,~ z sub a + z sub b ,~ w sub a + w sub b right ) -.EN -.SH -Substraction -.P1 -Point3 subpt3(Point3 a, Point3 b) -.P2 -.EQ -a - b ~=~ left ( x sub a - x sub b ,~ y sub a - y sub b ,~ z sub a - z sub b ,~ w sub a - w sub b right ) -.EN -.SH -Multiplication -.P1 -Point3 mulpt3(Point3 p, double s) -.P2 -.EQ -p * s ~=~ left ( xs,~ ys,~ zs,~ ws right ) -.EN -.SH -Division -.P1 -Point3 divpt3(Point3 p, double s) -.P2 -.EQ -p / s ~=~ left ( x over s ,~ y over s ,~ z over s ,~ w over s right ) -.EN -.SH -Vector Dot Product -.P1 -double dotvec3(Point3 a, Point3 b) -.P2 -.EQ -a vec ~•~ b vec ~=~ x sub a x sub b + y sub a y sub b + z sub a z sub b -.EN -.SH -Vector Cross Product -.P1 -double crossvec3(Point3 a, Point3 b) -.P2 -.EQ -a vec ~×~ b vec ~=~ left ( y sub a z sub b - z sub a y sub b ,~ - z sub a x sub b - x sub a z sub b ,~ - x sub a y sub b - y sub a x sub b right ) -.EN -.SH -Vector Magnitude/Length -.P1 -double vec3len(Point3 v) -.P2 -.EQ -| v vec | ~=~ sqrt { x sup 2 + y sup 2 + z sup 2 } -.EN -.SH -Vector Normalization -.P1 -Point3 normvec3(Point3 v) -.P2 -.EQ -n vec ~=~ left ( x over {| v vec |},~ y over {| v vec |},~ z over {| v vec |} right ) -.EN -.NH 2 -Matrix -.SH -Addition -.P1 -void addm(Matrix A, Matrix B) -.P2 -.EQ -( bold A + bold B ) sub {i,j} ~=~ bold A sub {i,j} + bold B sub {i,j} -.EN -.SH -Substraction -.P1 -void subm(Matrix A, Matrix B) -.P2 -.EQ -( bold A - bold B ) sub {i,j} ~=~ bold A sub {i,j} - bold B sub {i,j} -.EN -.SH -Multiplication -.P1 -void mulm(Matrix A, Matrix B) -.P2 -.EQ -left [ bold A bold B right ] sub {i,j} ~=~ sum from {k = 0} to 3-1 bold A sub {i,k} bold B sub {k,j} -.EN -.SH -Transpose -.P1 -void transposem(Matrix M) -.P2 -.EQ -( bold M sup T ) sub {i,j} ~=~ bold A sub {j,i} -.EN -.SH -Identity -.P1 -void identity(Matrix M) -.P2 -.EQ -bold M ~=~ left [ rpile { - 1 ~ 0 ~ 0 -above 0 ~ 1 ~ 0 -above 0 ~ 0 ~ 1 -} right ] -.EN -.SH -Determinant -.P1 -double detm(Matrix M) -.P2 -.EQ -det( bold M ) ~=~ lpile { - m sub 00 ( m sub 11 m sub 22 - m sub 12 m sub 21 ) + -above m sub 01 ( m sub 12 m sub 20 - m sub 10 m sub 22 ) + -above m sub 02 ( m sub 10 m sub 21 - m sub 11 m sub 20 ) -} -.EN -.NH 2 -Matrix3 -.SH -Addition -.P1 -void addm3(Matrix3 A, Matrix3 B) -.P2 -.EQ -( bold A + bold B ) sub {i,j} ~=~ bold A sub {i,j} + bold B sub {i,j} -.EN -.SH -Substraction -.P1 -void subm3(Matrix3 A, Matrix3 B) -.P2 -.EQ -( bold A - bold B ) sub {i,j} ~=~ bold A sub {i,j} - bold B sub {i,j} -.EN -.SH -Multiplication -.P1 -void mulm3(Matrix3 A, Matrix3 B) -.P2 -.EQ -left [ bold A bold B right ] sub {i,j} ~=~ sum from {k = 0} to 4-1 bold A sub {i,k} bold B sub {k,j} -.EN -.SH -Transpose -.P1 -void transposem3(Matrix3 M) -.P2 -.EQ -( bold M sup T ) sub {i,j} ~=~ bold A sub {j,i} -.EN -.SH -Identity -.P1 -void identity3(Matrix3 M) -.P2 -.EQ -bold M ~=~ left [ rpile { - 1 ~ 0 ~ 0 ~ 0 -above 0 ~ 1 ~ 0 ~ 0 -above 0 ~ 0 ~ 1 ~ 0 -above 0 ~ 0 ~ 0 ~ 1 -} right ] -.EN -.SH -Determinant -.P1 -double detm3(Matrix3 M) -.P2 -.EQ -det( bold M ) ~=~ rpile { - m sub 00 ( m sub 11 ( m sub 22 m sub 33 - m sub 23 m sub 32 ) + - m sub 12 ( m sub 23 m sub 31 - m sub 21 m sub 33 ) + - m sub 13 ( m sub 21 m sub 32 - m sub 22 m sub 31 ) ) -above -m sub 01 ( m sub 10 ( m sub 22 m sub 33 - m sub 23 m sub 32 ) + - m sub 12 ( m sub 23 m sub 30 - m sub 20 m sub 33 ) + - m sub 13 ( m sub 20 m sub 32 - m sub 22 m sub 30 ) ) -above +m sub 02 ( m sub 10 ( m sub 21 m sub 33 - m sub 23 m sub 31 ) + - m sub 11 ( m sub 23 m sub 30 - m sub 20 m sub 33 ) + - m sub 13 ( m sub 20 m sub 31 - m sub 21 m sub 30 ) ) -above -m sub 03 ( m sub 10 ( m sub 21 m sub 32 - m sub 22 m sub 31 ) + - m sub 11 ( m sub 22 m sub 30 - m sub 20 m sub 32 ) + - m sub 12 ( m sub 20 m sub 31 - m sub 21 m sub 30 ) ) -} -.EN -.NH 2 -Quaternion -.SH -Addition -.P1 -Quaternion addq(Quaternion q, Quaternion r) -.P2 -.EQ -q + r ~=~ ( r sub q + r sub r ,~ i sub q + i sub r ,~ j sub q + j sub r ,~ k sub q + k sub r ) -.EN -.SH -Substraction -.P1 -Quaternion subq(Quaternion q, Quaternion r) -.P2 -.EQ -q - r ~=~ ( r sub q - r sub r ,~ i sub q - i sub r ,~ j sub q - j sub r ,~ k sub q - k sub r ) -.EN -.SH -Multiplication -.P1 -Quaternion mulq(Quaternion q, Quaternion r) -.P2 -.EQ -q ~=~ [ r sub q ,~ v vec sub q ] -r ~=~ [ r sub r ,~ v vec sub r ] -qr ~=~ [ r sub q r sub r - v vec sub q • v vec sub r ,~ v vec sub r r sub q + v vec sub q r sub r + v vec sub q X v vec sub r ] -.EN -.SH -Scalar Multiplication -.P1 -Quaternion smulq(Quaternion q, double s) -.P2 -.EQ -qs ~=~ [ r sub q s ,~ i sub q s ,~ j sub q s ,~ k sub q s ] -.EN -.SH -Inverse -.P1 -Quaternion invq(Quaternion q) -.P2 -.EQ -q sup -1 ~=~ left ( r over {| q | sup 2} ,~ -i over {| q | sup 2} ,~ -j over {| q | sup 2} ,~ -k over {| q | sup 2} right ) -.EN -.SH -Magnitude/Length -.P1 -double qlen(Quaternion q) -.P2 -.EQ -| q | ~=~ sqrt { r sup 2 + i sup 2 + j sup 2 + k sup 2 } -.EN -.NH 2 -RFrame -.SH -Change of reference -.P1 -Point2 rframexform(Point2 p, RFrame rf) -.P2 -.NH 2 -RFrame3 -.SH -Change of reference -.P1 -Point3 rframexform3(Point3 p, RFrame3 rf) -.P2 diff --git a/libgeometry/doc/libgeometry.pdf b/libgeometry/doc/libgeometry.pdf Binary files differdeleted file mode 100644 index 3a49480..0000000 --- a/libgeometry/doc/libgeometry.pdf +++ /dev/null diff --git a/libgeometry/doc/libgeometry.ps b/libgeometry/doc/libgeometry.ps deleted file mode 100644 index 635b9cd..0000000 --- a/libgeometry/doc/libgeometry.ps +++ /dev/null @@ -1,2799 +0,0 @@ -%!PS-Adobe-2.0 -%%Version: 0.1 -%%Creator: troff, Plan 9 edition -%%DocumentFonts: (atend) -%%Pages: (atend) -%%EndComments -% -% Version 3.3.2 prologue for troff files. -% - -/#copies 1 store -/aspectratio 1 def -/formsperpage 1 def -/landscape false def -/linewidth .3 def -/magnification 1 def -/margin 0 def -/orientation 0 def -/resolution 720 def -/rotation 1 def -/xoffset 0 def -/yoffset 0 def - -/roundpage true def -/useclippath true def -/pagebbox [0 0 612 792] def - -/R /Times-Roman def -/I /Times-Italic def -/B /Times-Bold def -/BI /Times-BoldItalic def -/H /Helvetica def -/HI /Helvetica-Oblique def -/HB /Helvetica-Bold def -/HX /Helvetica-BoldOblique def -/CW /Courier def -/CO /Courier def -/CI /Courier-Oblique def -/CB /Courier-Bold def -/CX /Courier-BoldOblique def -/PA /Palatino-Roman def -/PI /Palatino-Italic def -/PB /Palatino-Bold def -/PX /Palatino-BoldItalic def -/Hr /Helvetica-Narrow def -/Hi /Helvetica-Narrow-Oblique def -/Hb /Helvetica-Narrow-Bold def -/Hx /Helvetica-Narrow-BoldOblique def -/KR /Bookman-Light def -/KI /Bookman-LightItalic def -/KB /Bookman-Demi def -/KX /Bookman-DemiItalic def -/AR /AvantGarde-Book def -/AI /AvantGarde-BookOblique def -/AB /AvantGarde-Demi def -/AX /AvantGarde-DemiOblique def -/NR /NewCenturySchlbk-Roman def -/NI /NewCenturySchlbk-Italic def -/NB /NewCenturySchlbk-Bold def -/NX /NewCenturySchlbk-BoldItalic def -/ZD /ZapfDingbats def -/ZI /ZapfChancery-MediumItalic def -/S /S def -/S1 /S1 def -/GR /Symbol def - -/inch {72 mul} bind def -/min {2 copy gt {exch} if pop} bind def - -/setup { - counttomark 2 idiv {def} repeat pop - - landscape {/orientation 90 orientation add def} if - /scaling 72 resolution div def - linewidth setlinewidth - 1 setlinecap - - pagedimensions - xcenter ycenter translate - orientation rotation mul rotate - width 2 div neg height 2 div translate - xoffset inch yoffset inch neg translate - margin 2 div dup neg translate - magnification dup aspectratio mul scale - scaling scaling scale - - addmetrics - 0 0 moveto -} def - -/pagedimensions { - useclippath userdict /gotpagebbox known not and { - /pagebbox [clippath pathbbox newpath] def - roundpage currentdict /roundpagebbox known and {roundpagebbox} if - } if - pagebbox aload pop - 4 -1 roll exch 4 1 roll 4 copy - landscape {4 2 roll} if - sub /width exch def - sub /height exch def - add 2 div /xcenter exch def - add 2 div /ycenter exch def - userdict /gotpagebbox true put -} def - -/addmetrics { - /Symbol /S null Sdefs cf - /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf -} def - -/pagesetup { - /page exch def - currentdict /pagedict known currentdict page known and { - page load pagedict exch get cvx exec - } if -} def - -/decodingdefs [ - {counttomark 2 idiv {y moveto show} repeat} - {neg /y exch def counttomark 2 idiv {y moveto show} repeat} - {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} - {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} - {counttomark 2 idiv {y moveto show} repeat} - {neg setfunnytext} -] def - -/setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def - -/w {neg moveto show} bind def -/m {neg dup /y exch def moveto} bind def -/done {/lastpage where {pop lastpage} if} def - -/f { - dup /font exch def findfont exch - dup /ptsize exch def scaling div dup /size exch def scalefont setfont - linewidth ptsize mul scaling 10 mul div setlinewidth - /spacewidth ( ) stringwidth pop def -} bind def - -/changefont { - /fontheight exch def - /fontslant exch def - currentfont [ - 1 0 - fontheight ptsize div fontslant sin mul fontslant cos div - fontheight ptsize div - 0 0 - ] makefont setfont -} bind def - -/sf {f} bind def - -/cf { - dup length 2 idiv - /entries exch def - /chtab exch def - /newencoding exch def - /newfont exch def - - findfont dup length 1 add dict - /newdict exch def - {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall - - newencoding type /arraytype eq {newdict /Encoding newencoding put} if - - newdict /Metrics entries dict put - newdict /Metrics get - begin - chtab aload pop - 1 1 entries {pop def} for - newfont newdict definefont pop - end -} bind def - -% -% A few arrays used to adjust reference points and character widths in some -% of the printer resident fonts. If square roots are too high try changing -% the lines describing /radical and /radicalex to, -% -% /radical [0 -75 550 0] -% /radicalex [-50 -75 500 0] -% -% Move braceleftbt a bit - default PostScript character is off a bit. -% - -/Sdefs [ - /bracketlefttp [201 500] - /bracketleftbt [201 500] - /bracketrighttp [-81 380] - /bracketrightbt [-83 380] - /braceleftbt [203 490] - /bracketrightex [220 -125 500 0] - /radical [0 0 550 0] - /radicalex [-50 0 500 0] - /parenleftex [-20 -170 0 0] - /integral [100 -50 500 0] - /infinity [10 -75 730 0] -] def - -/S1defs [ - /underscore [0 80 500 0] - /endash [7 90 650 0] -] def -% -% Tries to round clipping path dimensions, as stored in array pagebbox, so they -% match one of the known sizes in the papersizes array. Lower left coordinates -% are always set to 0. -% - -/roundpagebbox { - 7 dict begin - /papersizes [8.5 inch 11 inch 14 inch 17 inch] def - - /mappapersize { - /val exch def - /slop .5 inch def - /diff slop def - /j 0 def - 0 1 papersizes length 1 sub { - /i exch def - papersizes i get val sub abs - dup diff le {/diff exch def /j i def} {pop} ifelse - } for - diff slop lt {papersizes j get} {val} ifelse - } def - - pagebbox 0 0 put - pagebbox 1 0 put - pagebbox dup 2 get mappapersize 2 exch put - pagebbox dup 3 get mappapersize 3 exch put - end -} bind def - -%%EndProlog -%%BeginSetup -mark -% -% Encoding vector and redefinition of findfont for the ISO Latin1 standard. -% The 18 characters missing from ROM based fonts on older printers are noted -% below. -% - -/ISOLatin1Encoding [ - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /space - /exclam - /quotedbl - /numbersign - /dollar - /percent - /ampersand - /quoteright - /parenleft - /parenright - /asterisk - /plus - /comma - /minus - /period - /slash - /zero - /one - /two - /three - /four - /five - /six - /seven - /eight - /nine - /colon - /semicolon - /less - /equal - /greater - /question - /at - /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 - /bracketleft - /backslash - /bracketright - /asciicircum - /underscore - /quoteleft - /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 - /braceleft - /bar - /braceright - /asciitilde - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /dotlessi - /grave - /acute - /circumflex - /tilde - /macron - /breve - /dotaccent - /dieresis - /.notdef - /ring - /cedilla - /.notdef - /hungarumlaut - /ogonek - /caron - /space - /exclamdown - /cent - /sterling - /currency - /yen - /brokenbar % missing - /section - /dieresis - /copyright - /ordfeminine - /guillemotleft - /logicalnot - /hyphen - /registered - /macron - /degree % missing - /plusminus % missing - /twosuperior % missing - /threesuperior % missing - /acute - /mu % missing - /paragraph - /periodcentered - /cedilla - /onesuperior % missing - /ordmasculine - /guillemotright - /onequarter % missing - /onehalf % missing - /threequarters % missing - /questiondown - /Agrave - /Aacute - /Acircumflex - /Atilde - /Adieresis - /Aring - /AE - /Ccedilla - /Egrave - /Eacute - /Ecircumflex - /Edieresis - /Igrave - /Iacute - /Icircumflex - /Idieresis - /Eth % missing - /Ntilde - /Ograve - /Oacute - /Ocircumflex - /Otilde - /Odieresis - /multiply % missing - /Oslash - /Ugrave - /Uacute - /Ucircumflex - /Udieresis - /Yacute % missing - /Thorn % missing - /germandbls - /agrave - /aacute - /acircumflex - /atilde - /adieresis - /aring - /ae - /ccedilla - /egrave - /eacute - /ecircumflex - /edieresis - /igrave - /iacute - /icircumflex - /idieresis - /eth % missing - /ntilde - /ograve - /oacute - /ocircumflex - /otilde - /odieresis - /divide % missing - /oslash - /ugrave - /uacute - /ucircumflex - /udieresis - /yacute % missing - /thorn % missing - /ydieresis -] def - -/NewFontDirectory FontDirectory maxlength dict def - -% -% Apparently no guarantee findfont is defined in systemdict so the obvious -% -% systemdict /findfont get exec -% -% can generate an error. So far the only exception is a VT600 (version 48.0). -% - -userdict /@RealFindfont known not { - userdict begin - /@RealFindfont systemdict begin /findfont load end def - end -} if - -/findfont { - dup NewFontDirectory exch known not { - dup - %dup systemdict /findfont get exec % not always in systemdict - dup userdict /@RealFindfont get exec - dup /Encoding get StandardEncoding eq { - dup length dict begin - {1 index /FID ne {def}{pop pop} ifelse} forall - /Encoding ISOLatin1Encoding def - currentdict - end - /DummyFontName exch definefont - } if - NewFontDirectory 3 1 roll put - } if - NewFontDirectory exch get -} bind def - -%%Patch from lp -%%EndPatch from lp - -setup -%%EndSetup -%%Page: 1 1 -/saveobj save def -mark -1 pagesetup -12 /LucidaSans-Demi f -(libgeometry) 2507 1220 w -10 /LucidaSans-Italic f -(Rodrigo G. L\363pez) 2469 1480 w -(rgl@antares-labs.eu) 2377 1760 w -10 /LucidaSansUnicode00 f -(Antares Telecom Laboratories) 2156 1960 w -(Albatera, Alicante) 2451 2100 w -10 /LucidaSans-Demi f -(1.) 720 2700 w -(Data Structures) 873 2700 w -(1.1.) 720 2940 w -(Point2) 962 2940 w -9 /LucidaTypewriter f -(struct) 920 3110 w -(Point2) 1375 3110 w -({) 1830 3110 w -(double) 1440 3220 w -(x,) 1895 3220 w -(y,) 2090 3220 w -(w;) 2285 3220 w -(};) 920 3330 w -10 /LucidaSans-Italic f -(Point2) 970 3546 w -10 /LucidaSansUnicode00 f -(represents) 1324 3546 w -(a) 1886 3546 w -(point) 1989 3546 w -(in) 2289 3546 w -(two-dimensional) 2428 3546 w -(projective) 3299 3546 w -(space,) 3823 3546 w -(which) 4179 3546 w -(itself) 4508 3546 w -(is) 4795 3546 w -(an) 4923 3546 w -(extension) 720 3666 w -(of) 1240 3666 w -(the) 1383 3666 w -(two-dimensional) 1583 3666 w -(euclidean) 2451 3666 w -(space) 2959 3666 w -(that) 3280 3666 w -(allows) 3516 3666 w -(us) 3862 3666 w -(to) 4019 3666 w -(work) 4161 3666 w -(with) 4442 3666 w -(vectors) 4691 3666 w -(and compose affine transformations in a friendly manner.) 720 3786 w -(A point) 3589 3786 w -(\() 2696 3966 w -(x) 2737 3966 w -(,) 2806 3966 w -(y) 2846 3966 w -(,) 2906 3966 w -(w) 2946 3966 w -(\)) 3031 3966 w -(made) 720 4146 w -(out) 1027 4146 w -(of) 1227 4146 w -(homogenous) 1365 4146 w -(coordinates) 2036 4146 w -10 /LucidaSans-Italic f -(x) 2643 4146 w -10 /LucidaSansUnicode00 f -(,) 2697 4146 w -10 /LucidaSans-Italic f -(y) 2769 4146 w -10 /LucidaSansUnicode00 f -(,) 2824 4146 w -(and) 2896 4146 w -10 /LucidaSans-Italic f -(w) 3116 4146 w -10 /LucidaSansUnicode00 f -(,) 3194 4146 w -(yields) 3267 4146 w -(a) 3588 4146 w -(point) 3684 4146 w -(with) 3977 4146 w -(cartesian) 4223 4146 w -(coordi\255) 4701 4146 w -(nates) 720 4266 w -(\() 2588 4446 w -(x) 2629 4446 w -(/) 2698 4446 w -(w) 2759 4446 w -(,) 2844 4446 w -(y) 2884 4446 w -(/) 2944 4446 w -(w) 3005 4446 w -(\)) 3090 4446 w -(.) 3139 4446 w -10 /LucidaSans-Demi f -(1.2.) 720 4746 w -(Point3) 962 4746 w -9 /LucidaTypewriter f -(struct) 920 4916 w -(Point3) 1375 4916 w -({) 1830 4916 w -(double) 1440 5026 w -(x,) 1895 5026 w -(y,) 2090 5026 w -(z,) 2285 5026 w -(w;) 2480 5026 w -(};) 920 5136 w -10 /LucidaSans-Italic f -(Point3) 970 5352 w -10 /LucidaSansUnicode00 f -(is a point in three-dimensional projective space.) 1309 5352 w -10 /LucidaSans-Demi f -(1.3.) 720 5592 w -(Matrix) 962 5592 w -9 /LucidaTypewriter f -(typedef) 920 5762 w -(double) 1440 5762 w -(Matrix[3][3];) 1895 5762 w -10 /LucidaSans-Italic f -(Matrix) 970 5978 w -10 /LucidaSansUnicode00 f -(represents) 1341 5978 w -(a) 1914 5978 w -(3x3) 2028 5978 w -(matrix,) 2274 5978 w -(thought) 2681 5978 w -(to) 3123 5978 w -(compose) 3280 5978 w -(affine) 3775 5978 w -(transformations) 4110 5978 w -(to) 4942 5978 w -(apply to homogeneous 2D points.) 720 6098 w -10 /LucidaSans-Demi f -(1.4.) 720 6338 w -(Matrix3) 962 6338 w -9 /LucidaTypewriter f -(typedef) 920 6508 w -(double) 1440 6508 w -(Matrix3[4][4];) 1895 6508 w -10 /LucidaSans-Italic f -(Matrix3) 970 6724 w -10 /LucidaSansUnicode00 f -(represents) 1398 6724 w -(a) 1964 6724 w -(4x4) 2071 6724 w -(matrix,) 2310 6724 w -(thought) 2711 6724 w -(to) 3147 6724 w -(compose) 3298 6724 w -(affine) 3787 6724 w -(transformations) 4116 6724 w -(to) 4942 6724 w -(apply to homogeneous 3D points.) 720 6844 w -8 /S1 f -(__________________) 720 6980 w -8 /LucidaSansUnicode00 f -(ACHTUNG!) 720 7080 w -(this) 1163 7080 w -(is) 1333 7080 w -(a) 1423 7080 w -8 /LucidaSans-Demi f -(WORK) 1493 7080 w -(IN) 1769 7080 w -(PROGRESS) 1883 7080 w -cleartomark -showpage -saveobj restore -%%EndPage: 1 1 -%%Page: 2 2 -/saveobj save def -mark -2 pagesetup -10 /LucidaSansUnicode00 f -(\255 2 \255) 2783 480 w -10 /LucidaSans-Demi f -(1.5.) 720 840 w -(Quaternion) 962 840 w -9 /LucidaTypewriter f -(struct) 920 1010 w -(Quaternion) 1375 1010 w -({) 2090 1010 w -(double) 1440 1120 w -(r,) 1895 1120 w -(i,) 2090 1120 w -(j,) 2285 1120 w -(k;) 2480 1120 w -(};) 920 1230 w -10 /LucidaSans-Italic f -(Quaternions) 970 1446 w -10 /LucidaSansUnicode00 f -(are) 1623 1446 w -(a) 1829 1446 w -(numbering) 1938 1446 w -(system) 2522 1446 w -(that) 2916 1446 w -(extends) 3161 1446 w -(the) 3601 1446 w -(complex) 3810 1446 w -(numbers) 4279 1446 w -(up) 4762 1446 w -(to) 4942 1446 w -(four-dimensional) 720 1566 w -(space,) 1607 1566 w -(and) 1953 1566 w -(are) 2171 1566 w -(used) 2361 1566 w -(to) 2631 1566 w -(apply) 2767 1566 w -(rotations) 3067 1566 w -(and) 3539 1566 w -(model) 3757 1566 w -(mechanical) 4096 1566 w -(interac\255) 4676 1566 w -(tions) 720 1686 w -(in) 1015 1686 w -(3D) 1161 1686 w -(space.) 1354 1686 w -(Their) 1749 1686 w -(main) 2055 1686 w -(advantages) 2349 1686 w -(with) 2952 1686 w -(respect) 3212 1686 w -(to) 3622 1686 w -(their) 3775 1686 w -(matrix) 4055 1686 w -(relatives) 4426 1686 w -(are) 4888 1686 w -(increased computational and storage performance and gimbal lock avoidance.) 720 1806 w -10 /LucidaSans-Demi f -(2.) 720 2046 w -(Algorithms) 873 2046 w -(2.1.) 720 2286 w -(Point2) 962 2286 w -(Addition) 720 2526 w -9 /LucidaTypewriter f -(Point2) 920 2696 w -(addpt2\(Point2) 1375 2696 w -(a,) 2285 2696 w -(Point2) 2480 2696 w -(b\)) 2935 2696 w -10 /LucidaSansUnicode00 f -(a) 2051 2971 w -10 /S f -(+) 2122 2971 w -10 /LucidaSansUnicode00 f -(b) 2193 2971 w -10 /S f -(=) 2312 2971 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2431 2934 w -(\356) 2431 3034 w -10 /LucidaSansUnicode00 f -(x) 2480 2971 w -7 /LucidaSansUnicode00 f -(a) 2552 2991 w -10 /S f -(+) 2615 2971 w -10 /LucidaSansUnicode00 f -(x) 2686 2971 w -7 /LucidaSansUnicode00 f -(b) 2758 2991 w -10 /LucidaSansUnicode00 f -(,) 2818 2971 w -(y) 2898 2971 w -7 /LucidaSansUnicode00 f -(a) 2961 2991 w -10 /S f -(+) 3024 2971 w -10 /LucidaSansUnicode00 f -(y) 3095 2971 w -7 /LucidaSansUnicode00 f -(b) 3158 2991 w -10 /LucidaSansUnicode00 f -(,) 3218 2971 w -(w) 3298 2971 w -7 /LucidaSansUnicode00 f -(a) 3386 2991 w -10 /S f -(+) 3449 2971 w -10 /LucidaSansUnicode00 f -(w) 3520 2971 w -7 /LucidaSansUnicode00 f -(b) 3608 2991 w -10 /S f -(\374) 3660 2934 w -(\376) 3660 3034 w -10 /LucidaSans-Demi f -(Substraction) 720 3326 w -9 /LucidaTypewriter f -(Point2) 920 3496 w -(subpt2\(Point2) 1375 3496 w -(a,) 2285 3496 w -(Point2) 2480 3496 w -(b\)) 2935 3496 w -10 /LucidaSansUnicode00 f -(a) 2051 3771 w -10 /S f -(-) 2122 3771 w -10 /LucidaSansUnicode00 f -(b) 2193 3771 w -10 /S f -(=) 2312 3771 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2431 3734 w -(\356) 2431 3834 w -10 /LucidaSansUnicode00 f -(x) 2480 3771 w -7 /LucidaSansUnicode00 f -(a) 2552 3791 w -10 /S f -(-) 2615 3771 w -10 /LucidaSansUnicode00 f -(x) 2686 3771 w -7 /LucidaSansUnicode00 f -(b) 2758 3791 w -10 /LucidaSansUnicode00 f -(,) 2818 3771 w -(y) 2898 3771 w -7 /LucidaSansUnicode00 f -(a) 2961 3791 w -10 /S f -(-) 3024 3771 w -10 /LucidaSansUnicode00 f -(y) 3095 3771 w -7 /LucidaSansUnicode00 f -(b) 3158 3791 w -10 /LucidaSansUnicode00 f -(,) 3218 3771 w -(w) 3298 3771 w -7 /LucidaSansUnicode00 f -(a) 3386 3791 w -10 /S f -(-) 3449 3771 w -10 /LucidaSansUnicode00 f -(w) 3520 3771 w -7 /LucidaSansUnicode00 f -(b) 3608 3791 w -10 /S f -(\374) 3660 3734 w -(\376) 3660 3834 w -10 /LucidaSans-Demi f -(Multiplication) 720 4126 w -9 /LucidaTypewriter f -(Point2) 920 4296 w -(mulpt2\(Point2) 1375 4296 w -(p,) 2285 4296 w -(double) 2480 4296 w -(s\)) 2935 4296 w -10 /LucidaSansUnicode00 f -(p) 2395 4536 w -(*) 2466 4536 w -(s) 2522 4536 w -10 /S f -(=) 2629 4536 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2748 4499 w -(\356) 2748 4599 w -10 /LucidaSansUnicode00 f -(xs) 2797 4546 w -(,) 2917 4546 w -(ys) 2997 4546 w -(,) 3108 4546 w -(ws) 3188 4546 w -10 /S f -(\374) 3316 4499 w -(\376) 3316 4599 w -10 /LucidaSans-Demi f -(Division) 720 4841 w -9 /LucidaTypewriter f -(Point2) 920 5011 w -(divpt2\(Point2) 1375 5011 w -(p,) 2285 5011 w -(double) 2480 5011 w -(s\)) 2935 5011 w -10 /LucidaSansUnicode00 f -(p) 2394 5336 w -(/) 2465 5336 w -(s) 2526 5336 w -10 /S f -(=) 2633 5336 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2752 5249 w -(\357) 2752 5349 w -(\356) 2752 5449 w -10 /LucidaSansUnicode00 f -(s) 2831 5406 w -(x) 2826 5276 w -10 /S1 f -(_) 2811 5306 w -(_) 2852 5306 w -10 /LucidaSansUnicode00 f -(,) 2920 5336 w -(s) 3025 5406 w -(y) 3025 5276 w -10 /S1 f -(_) 3010 5306 w -(_) 3042 5306 w -10 /LucidaSansUnicode00 f -(,) 3110 5336 w -(s) 3228 5406 w -(w) 3215 5276 w -10 /S1 f -(_) 3200 5306 w -(__) 3207 5306 w -10 /S f -(\374) 3317 5249 w -(\357) 3317 5349 w -(\376) 3317 5449 w -10 /LucidaSans-Demi f -(Vector Dot Product) 720 5741 w -9 /LucidaTypewriter f -(double) 920 5911 w -(dotvec2\(Point2) 1375 5911 w -(a,) 2350 5911 w -(Point2) 2545 5911 w -(b\)) 3000 5911 w -10 /LucidaSansUnicode00 f -(a) 2375 6156 w -7 /LucidaSansUnicode21 f -(\222) 2370 6106 w -10 /LucidaSansUnicode00 f -10 /LucidaSansUnicode20 f -(") 2479 6156 w -10 /LucidaSansUnicode00 f -(b) 2583 6156 w -7 /LucidaSansUnicode21 f -(\222) 2582 6081 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2703 6156 w -10 /LucidaSansUnicode00 f -(x) 2814 6156 w -7 /LucidaSansUnicode00 f -(a) 2886 6176 w -10 /LucidaSansUnicode00 f -(x) 2941 6156 w -7 /LucidaSansUnicode00 f -(b) 3013 6176 w -10 /S f -(+) 3081 6156 w -10 /LucidaSansUnicode00 f -(y) 3152 6156 w -7 /LucidaSansUnicode00 f -(a) 3215 6176 w -10 /LucidaSansUnicode00 f -(y) 3270 6156 w -7 /LucidaSansUnicode00 f -(b) 3333 6176 w -10 /LucidaSans-Demi f -(Vector Magnitude/Length) 720 6456 w -9 /LucidaTypewriter f -(double) 920 6626 w -(vec2len\(Point2) 1375 6626 w -(v\)) 2350 6626 w -10 /LucidaSansUnicode00 f -(|) 2509 6901 w -(v) 2557 6884 w -7 /LucidaSansUnicode21 f -(\222) 2550 6834 w -10 /LucidaSansUnicode00 f -(|) 2609 6901 w -10 /S f -(=) 2705 6884 w -10 /LucidaSansUnicode00 f -12 /LucidaSansUnicode22 f -(\032) 2816 6884 w -12 /S f -(`) 2913 6884 w -(`````) 2943 6884 w -10 /LucidaSansUnicode00 f -(x) 2921 6884 w -7 /LucidaSansUnicode00 f -(2) 2987 6844 w -10 /S f -(+) 3055 6884 w -10 /LucidaSansUnicode00 f -(y) 3126 6884 w -7 /LucidaSansUnicode00 f -(2) 3183 6844 w -cleartomark -showpage -saveobj restore -%%EndPage: 2 2 -%%Page: 3 3 -/saveobj save def -mark -3 pagesetup -10 /LucidaSansUnicode00 f -(\255 3 \255) 2783 480 w -10 /LucidaSans-Demi f -(Vector Normalization) 720 840 w -9 /LucidaTypewriter f -(Point2) 920 1010 w -(normvec2\(Point2) 1375 1010 w -(v\)) 2415 1010 w -10 /LucidaSansUnicode00 f -(n) 2502 1335 w -7 /LucidaSansUnicode21 f -(\222) 2500 1285 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2620 1335 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2739 1248 w -(\357) 2739 1348 w -(\356) 2739 1448 w -10 /LucidaSansUnicode00 f -(|) 2813 1447 w -(v) 2861 1430 w -7 /LucidaSansUnicode21 f -(\222) 2854 1380 w -10 /LucidaSansUnicode00 f -(|) 2913 1447 w -(x) 2841 1275 w -10 /S1 f -(_) 2799 1305 w -(__) 2845 1305 w -10 /LucidaSansUnicode00 f -(,) 2963 1335 w -(|) 3068 1447 w -(v) 3116 1430 w -7 /LucidaSansUnicode21 f -(\222) 3109 1380 w -10 /LucidaSansUnicode00 f -(|) 3168 1447 w -(y) 3100 1275 w -10 /S1 f -(_) 3053 1305 w -(__) 3099 1305 w -10 /S f -(\374) 3209 1248 w -(\357) 3209 1348 w -(\376) 3209 1448 w -10 /LucidaSans-Demi f -(2.2.) 720 1740 w -(Point3) 962 1740 w -(Addition) 720 1980 w -9 /LucidaTypewriter f -(Point3) 920 2150 w -(addpt3\(Point3) 1375 2150 w -(a,) 2285 2150 w -(Point3) 2480 2150 w -(b\)) 2935 2150 w -10 /LucidaSansUnicode00 f -(a) 1846 2425 w -10 /S f -(+) 1917 2425 w -10 /LucidaSansUnicode00 f -(b) 1988 2425 w -10 /S f -(=) 2107 2425 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2226 2388 w -(\356) 2226 2488 w -10 /LucidaSansUnicode00 f -(x) 2275 2425 w -7 /LucidaSansUnicode00 f -(a) 2347 2445 w -10 /S f -(+) 2410 2425 w -10 /LucidaSansUnicode00 f -(x) 2481 2425 w -7 /LucidaSansUnicode00 f -(b) 2553 2445 w -10 /LucidaSansUnicode00 f -(,) 2613 2425 w -(y) 2693 2425 w -7 /LucidaSansUnicode00 f -(a) 2756 2445 w -10 /S f -(+) 2819 2425 w -10 /LucidaSansUnicode00 f -(y) 2890 2425 w -7 /LucidaSansUnicode00 f -(b) 2953 2445 w -10 /LucidaSansUnicode00 f -(,) 3013 2425 w -(z) 3093 2425 w -7 /LucidaSansUnicode00 f -(a) 3161 2445 w -10 /S f -(+) 3224 2425 w -10 /LucidaSansUnicode00 f -(z) 3295 2425 w -7 /LucidaSansUnicode00 f -(b) 3363 2445 w -10 /LucidaSansUnicode00 f -(,) 3423 2425 w -(w) 3503 2425 w -7 /LucidaSansUnicode00 f -(a) 3591 2445 w -10 /S f -(+) 3654 2425 w -10 /LucidaSansUnicode00 f -(w) 3725 2425 w -7 /LucidaSansUnicode00 f -(b) 3813 2445 w -10 /S f -(\374) 3865 2388 w -(\376) 3865 2488 w -10 /LucidaSans-Demi f -(Substraction) 720 2780 w -9 /LucidaTypewriter f -(Point3) 920 2950 w -(subpt3\(Point3) 1375 2950 w -(a,) 2285 2950 w -(Point3) 2480 2950 w -(b\)) 2935 2950 w -10 /LucidaSansUnicode00 f -(a) 1846 3225 w -10 /S f -(-) 1917 3225 w -10 /LucidaSansUnicode00 f -(b) 1988 3225 w -10 /S f -(=) 2107 3225 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2226 3188 w -(\356) 2226 3288 w -10 /LucidaSansUnicode00 f -(x) 2275 3225 w -7 /LucidaSansUnicode00 f -(a) 2347 3245 w -10 /S f -(-) 2410 3225 w -10 /LucidaSansUnicode00 f -(x) 2481 3225 w -7 /LucidaSansUnicode00 f -(b) 2553 3245 w -10 /LucidaSansUnicode00 f -(,) 2613 3225 w -(y) 2693 3225 w -7 /LucidaSansUnicode00 f -(a) 2756 3245 w -10 /S f -(-) 2819 3225 w -10 /LucidaSansUnicode00 f -(y) 2890 3225 w -7 /LucidaSansUnicode00 f -(b) 2953 3245 w -10 /LucidaSansUnicode00 f -(,) 3013 3225 w -(z) 3093 3225 w -7 /LucidaSansUnicode00 f -(a) 3161 3245 w -10 /S f -(-) 3224 3225 w -10 /LucidaSansUnicode00 f -(z) 3295 3225 w -7 /LucidaSansUnicode00 f -(b) 3363 3245 w -10 /LucidaSansUnicode00 f -(,) 3423 3225 w -(w) 3503 3225 w -7 /LucidaSansUnicode00 f -(a) 3591 3245 w -10 /S f -(-) 3654 3225 w -10 /LucidaSansUnicode00 f -(w) 3725 3225 w -7 /LucidaSansUnicode00 f -(b) 3813 3245 w -10 /S f -(\374) 3865 3188 w -(\376) 3865 3288 w -10 /LucidaSans-Demi f -(Multiplication) 720 3580 w -9 /LucidaTypewriter f -(Point3) 920 3750 w -(mulpt3\(Point3) 1375 3750 w -(p,) 2285 3750 w -(double) 2480 3750 w -(s\)) 2935 3750 w -10 /LucidaSansUnicode00 f -(p) 2297 3990 w -(*) 2368 3990 w -(s) 2424 3990 w -10 /S f -(=) 2531 3990 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2650 3953 w -(\356) 2650 4053 w -10 /LucidaSansUnicode00 f -(xs) 2699 4000 w -(,) 2819 4000 w -(ys) 2899 4000 w -(,) 3010 4000 w -(zs) 3090 4000 w -(,) 3206 4000 w -(ws) 3286 4000 w -10 /S f -(\374) 3414 3953 w -(\376) 3414 4053 w -10 /LucidaSans-Demi f -(Division) 720 4295 w -9 /LucidaTypewriter f -(Point3) 920 4465 w -(divpt3\(Point3) 1375 4465 w -(p,) 2285 4465 w -(double) 2480 4465 w -(s\)) 2935 4465 w -10 /LucidaSansUnicode00 f -(p) 2296 4790 w -(/) 2367 4790 w -(s) 2428 4790 w -10 /S f -(=) 2535 4790 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2654 4703 w -(\357) 2654 4803 w -(\356) 2654 4903 w -10 /LucidaSansUnicode00 f -(s) 2733 4860 w -(x) 2728 4730 w -10 /S1 f -(_) 2713 4760 w -(_) 2754 4760 w -10 /LucidaSansUnicode00 f -(,) 2822 4790 w -(s) 2927 4860 w -(y) 2927 4730 w -10 /S1 f -(_) 2912 4760 w -(_) 2944 4760 w -10 /LucidaSansUnicode00 f -(,) 3012 4790 w -(s) 3120 4860 w -(z) 3117 4730 w -10 /S1 f -(_) 3102 4760 w -(_) 3139 4760 w -10 /LucidaSansUnicode00 f -(,) 3207 4790 w -(s) 3325 4860 w -(w) 3312 4730 w -10 /S1 f -(_) 3297 4760 w -(__) 3304 4760 w -10 /S f -(\374) 3414 4703 w -(\357) 3414 4803 w -(\376) 3414 4903 w -10 /LucidaSans-Demi f -(Vector Dot Product) 720 5195 w -9 /LucidaTypewriter f -(double) 920 5365 w -(dotvec3\(Point3) 1375 5365 w -(a,) 2350 5365 w -(Point3) 2545 5365 w -(b\)) 3000 5365 w -10 /LucidaSansUnicode00 f -(a) 2210 5610 w -7 /LucidaSansUnicode21 f -(\222) 2205 5560 w -10 /LucidaSansUnicode00 f -10 /LucidaSansUnicode20 f -(") 2314 5610 w -10 /LucidaSansUnicode00 f -(b) 2418 5610 w -7 /LucidaSansUnicode21 f -(\222) 2417 5535 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2538 5610 w -10 /LucidaSansUnicode00 f -(x) 2649 5610 w -7 /LucidaSansUnicode00 f -(a) 2721 5630 w -10 /LucidaSansUnicode00 f -(x) 2776 5610 w -7 /LucidaSansUnicode00 f -(b) 2848 5630 w -10 /S f -(+) 2916 5610 w -10 /LucidaSansUnicode00 f -(y) 2987 5610 w -7 /LucidaSansUnicode00 f -(a) 3050 5630 w -10 /LucidaSansUnicode00 f -(y) 3105 5610 w -7 /LucidaSansUnicode00 f -(b) 3168 5630 w -10 /S f -(+) 3236 5610 w -10 /LucidaSansUnicode00 f -(z) 3307 5610 w -7 /LucidaSansUnicode00 f -(a) 3375 5630 w -10 /LucidaSansUnicode00 f -(z) 3430 5610 w -7 /LucidaSansUnicode00 f -(b) 3498 5630 w -10 /LucidaSans-Demi f -(Vector Cross Product) 720 5910 w -9 /LucidaTypewriter f -(double) 920 6080 w -(crossvec3\(Point3) 1375 6080 w -(a,) 2480 6080 w -(Point3) 2675 6080 w -(b\)) 3130 6080 w -10 /LucidaSansUnicode00 f -(a) 1650 6355 w -7 /LucidaSansUnicode21 f -(\222) 1645 6305 w -10 /LucidaSansUnicode00 f -(\327) 1754 6355 w -(b) 1882 6355 w -7 /LucidaSansUnicode21 f -(\222) 1881 6280 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2002 6355 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2121 6318 w -(\356) 2121 6418 w -10 /LucidaSansUnicode00 f -(y) 2170 6355 w -7 /LucidaSansUnicode00 f -(a) 2233 6375 w -10 /LucidaSansUnicode00 f -(z) 2288 6355 w -7 /LucidaSansUnicode00 f -(b) 2356 6375 w -10 /S f -(-) 2424 6355 w -10 /LucidaSansUnicode00 f -(z) 2495 6355 w -7 /LucidaSansUnicode00 f -(a) 2563 6375 w -10 /LucidaSansUnicode00 f -(y) 2618 6355 w -7 /LucidaSansUnicode00 f -(b) 2681 6375 w -10 /LucidaSansUnicode00 f -(,) 2741 6355 w -(z) 2821 6355 w -7 /LucidaSansUnicode00 f -(a) 2889 6375 w -10 /LucidaSansUnicode00 f -(x) 2944 6355 w -7 /LucidaSansUnicode00 f -(b) 3016 6375 w -10 /S f -(-) 3084 6355 w -10 /LucidaSansUnicode00 f -(x) 3155 6355 w -7 /LucidaSansUnicode00 f -(a) 3227 6375 w -10 /LucidaSansUnicode00 f -(z) 3282 6355 w -7 /LucidaSansUnicode00 f -(b) 3350 6375 w -10 /LucidaSansUnicode00 f -(,) 3410 6355 w -(x) 3490 6355 w -7 /LucidaSansUnicode00 f -(a) 3562 6375 w -10 /LucidaSansUnicode00 f -(y) 3617 6355 w -7 /LucidaSansUnicode00 f -(b) 3680 6375 w -10 /S f -(-) 3748 6355 w -10 /LucidaSansUnicode00 f -(y) 3819 6355 w -7 /LucidaSansUnicode00 f -(a) 3882 6375 w -10 /LucidaSansUnicode00 f -(x) 3937 6355 w -7 /LucidaSansUnicode00 f -(b) 4009 6375 w -10 /S f -(\374) 4061 6318 w -(\376) 4061 6418 w -10 /LucidaSans-Demi f -(Vector Magnitude/Length) 720 6710 w -9 /LucidaTypewriter f -(double) 920 6880 w -(vec3len\(Point3) 1375 6880 w -(v\)) 2350 6880 w -10 /LucidaSansUnicode00 f -(|) 2408 7155 w -(v) 2456 7138 w -7 /LucidaSansUnicode21 f -(\222) 2449 7088 w -10 /LucidaSansUnicode00 f -(|) 2508 7155 w -10 /S f -(=) 2604 7138 w -10 /LucidaSansUnicode00 f -12 /LucidaSansUnicode22 f -(\032) 2715 7138 w -12 /S f -(`) 2812 7138 w -(````````) 2863 7138 w -10 /LucidaSansUnicode00 f -(x) 2820 7138 w -7 /LucidaSansUnicode00 f -(2) 2886 7098 w -10 /S f -(+) 2954 7138 w -10 /LucidaSansUnicode00 f -(y) 3025 7138 w -7 /LucidaSansUnicode00 f -(2) 3082 7098 w -10 /S f -(+) 3150 7138 w -10 /LucidaSansUnicode00 f -(z) 3221 7138 w -7 /LucidaSansUnicode00 f -(2) 3283 7098 w -cleartomark -showpage -saveobj restore -%%EndPage: 3 3 -%%Page: 4 4 -/saveobj save def -mark -4 pagesetup -10 /LucidaSansUnicode00 f -(\255 4 \255) 2783 480 w -10 /LucidaSans-Demi f -(Vector Normalization) 720 840 w -9 /LucidaTypewriter f -(Point3) 920 1010 w -(normvec3\(Point3) 1375 1010 w -(v\)) 2415 1010 w -10 /LucidaSansUnicode00 f -(n) 2374 1335 w -7 /LucidaSansUnicode21 f -(\222) 2372 1285 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2492 1335 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2611 1248 w -(\357) 2611 1348 w -(\356) 2611 1448 w -10 /LucidaSansUnicode00 f -(|) 2685 1447 w -(v) 2733 1430 w -7 /LucidaSansUnicode21 f -(\222) 2726 1380 w -10 /LucidaSansUnicode00 f -(|) 2785 1447 w -(x) 2713 1275 w -10 /S1 f -(_) 2671 1305 w -(__) 2717 1305 w -10 /LucidaSansUnicode00 f -(,) 2835 1335 w -(|) 2940 1447 w -(v) 2988 1430 w -7 /LucidaSansUnicode21 f -(\222) 2981 1380 w -10 /LucidaSansUnicode00 f -(|) 3040 1447 w -(y) 2972 1275 w -10 /S1 f -(_) 2925 1305 w -(__) 2971 1305 w -10 /LucidaSansUnicode00 f -(,) 3089 1335 w -(|) 3194 1447 w -(v) 3242 1430 w -7 /LucidaSansUnicode21 f -(\222) 3235 1380 w -10 /LucidaSansUnicode00 f -(|) 3294 1447 w -(z) 3224 1275 w -10 /S1 f -(_) 3180 1305 w -(__) 3226 1305 w -10 /S f -(\374) 3336 1248 w -(\357) 3336 1348 w -(\376) 3336 1448 w -10 /LucidaSans-Demi f -(2.3.) 720 1740 w -(Matrix) 962 1740 w -(Addition) 720 1980 w -9 /LucidaTypewriter f -(void) 920 2150 w -(addm\(Matrix) 1245 2150 w -(A,) 2025 2150 w -(Matrix) 2220 2150 w -(B\)) 2675 2150 w -10 /LucidaSansUnicode00 f -(\() 2393 2390 w -10 /LucidaSans-Demi f -(A) 2434 2390 w -10 /S f -(+) 2524 2390 w -10 /LucidaSans-Demi f -(B) 2595 2390 w -10 /LucidaSansUnicode00 f -(\)) 2666 2390 w -7 /LucidaSansUnicode00 f -(i) 2710 2410 w -(,) 2735 2410 w -(j) 2762 2410 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2847 2390 w -10 /LucidaSansUnicode00 f -10 /LucidaSans-Demi f -(A) 2958 2390 w -7 /LucidaSansUnicode00 f -(i) 3043 2410 w -(,) 3068 2410 w -(j) 3095 2410 w -10 /S f -(+) 3140 2390 w -10 /LucidaSans-Demi f -(B) 3211 2390 w -7 /LucidaSansUnicode00 f -(i) 3285 2410 w -(,) 3310 2410 w -(j) 3337 2410 w -10 /LucidaSans-Demi f -(Substraction) 720 2690 w -9 /LucidaTypewriter f -(void) 920 2860 w -(subm\(Matrix) 1245 2860 w -(A,) 2025 2860 w -(Matrix) 2220 2860 w -(B\)) 2675 2860 w -10 /LucidaSansUnicode00 f -(\() 2393 3100 w -10 /LucidaSans-Demi f -(A) 2434 3100 w -10 /S f -(-) 2524 3100 w -10 /LucidaSans-Demi f -(B) 2595 3100 w -10 /LucidaSansUnicode00 f -(\)) 2666 3100 w -7 /LucidaSansUnicode00 f -(i) 2710 3120 w -(,) 2735 3120 w -(j) 2762 3120 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2847 3100 w -10 /LucidaSansUnicode00 f -10 /LucidaSans-Demi f -(A) 2958 3100 w -7 /LucidaSansUnicode00 f -(i) 3043 3120 w -(,) 3068 3120 w -(j) 3095 3120 w -10 /S f -(-) 3140 3100 w -10 /LucidaSans-Demi f -(B) 3211 3100 w -7 /LucidaSansUnicode00 f -(i) 3285 3120 w -(,) 3310 3120 w -(j) 3337 3120 w -10 /LucidaSans-Demi f -(Multiplication) 720 3400 w -9 /LucidaTypewriter f -(void) 920 3570 w -(mulm\(Matrix) 1245 3570 w -(A,) 2025 3570 w -(Matrix) 2220 3570 w -(B\)) 2675 3570 w -10 /S f -(\351) 2370 3823 w -(\353) 2370 3923 w -10 /LucidaSans-Demi f -(AB) 2420 3870 w -10 /S f -(\371) 2557 3823 w -(\373) 2557 3923 w -7 /LucidaSansUnicode00 f -(i) 2606 3905 w -(,) 2631 3905 w -(j) 2658 3905 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2743 3860 w -10 /LucidaSansUnicode00 f -7 /LucidaSansUnicode00 f -(k) 2847 3960 w -7 /S f -(=) 2899 3960 w -7 /LucidaSansUnicode00 f -(0) 2949 3960 w -15 /S f -(S) 2876 3890 w -7 /LucidaSansUnicode00 f -(3) 2846 3760 w -7 /S f -(-) 2901 3760 w -7 /LucidaSansUnicode00 f -(1) 2951 3760 w -10 /LucidaSans-Demi f -(A) 3027 3860 w -7 /LucidaSansUnicode00 f -(i) 3112 3880 w -(,) 3137 3880 w -(k) 3164 3880 w -10 /LucidaSans-Demi f -(B) 3221 3860 w -7 /LucidaSansUnicode00 f -(k) 3295 3880 w -(,) 3341 3880 w -(j) 3368 3880 w -10 /LucidaSans-Demi f -(Transpose) 720 4240 w -9 /LucidaTypewriter f -(void) 920 4410 w -(transposem\(Matrix) 1245 4410 w -(M\)) 2415 4410 w -10 /LucidaSansUnicode00 f -(\() 2552 4650 w -10 /LucidaSans-Demi f -(M) 2593 4650 w -7 /LucidaSansUnicode00 f -(T) 2689 4610 w -10 /LucidaSansUnicode00 f -(\)) 2749 4650 w -7 /LucidaSansUnicode00 f -(i) 2793 4670 w -(,) 2818 4670 w -(j) 2845 4670 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2930 4650 w -10 /LucidaSansUnicode00 f -10 /LucidaSans-Demi f -(A) 3041 4650 w -7 /LucidaSansUnicode00 f -(j) 3126 4670 w -(,) 3152 4670 w -(i) 3179 4670 w -10 /LucidaSans-Demi f -(Identity) 720 4950 w -9 /LucidaTypewriter f -(void) 920 5120 w -(identity\(Matrix) 1245 5120 w -(M\)) 2285 5120 w -10 /LucidaSans-Demi f -(M) 2560 5495 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2707 5495 w -10 /LucidaSansUnicode00 f -10 /S f -(\351) 2826 5358 w -(\357) 2826 5458 w -(\357) 2826 5558 w -(\353) 2826 5658 w -10 /LucidaSansUnicode00 f -(0) 2876 5645 w -(0) 2987 5645 w -(1) 3098 5645 w -(0) 2876 5505 w -(1) 2987 5505 w -(0) 3098 5505 w -(1) 2876 5365 w -(0) 2987 5365 w -(0) 3098 5365 w -10 /S f -(\371) 3161 5358 w -(\357) 3161 5458 w -(\357) 3161 5558 w -(\373) 3161 5658 w -10 /LucidaSans-Demi f -(Determinant) 720 5950 w -9 /LucidaTypewriter f -(double) 920 6120 w -(detm\(Matrix) 1375 6120 w -(M\)) 2155 6120 w -10 /LucidaSansUnicode00 f -(det) 1992 6500 w -(\() 2156 6500 w -10 /LucidaSans-Demi f -(M) 2197 6500 w -10 /LucidaSansUnicode00 f -(\)) 2296 6500 w -10 /S f -(=) 2393 6500 w -10 /LucidaSansUnicode00 f -(m) 2504 6660 w -7 /LucidaSansUnicode00 f -(02) 2608 6680 w -10 /LucidaSansUnicode00 f -(\() 2712 6660 w -(m) 2753 6660 w -7 /LucidaSansUnicode00 f -(10) 2857 6680 w -10 /LucidaSansUnicode00 f -(m) 2961 6660 w -7 /LucidaSansUnicode00 f -(21) 3065 6680 w -10 /S f -(-) 3177 6660 w -10 /LucidaSansUnicode00 f -(m) 3248 6660 w -7 /LucidaSansUnicode00 f -(11) 3352 6680 w -10 /LucidaSansUnicode00 f -(m) 3456 6660 w -7 /LucidaSansUnicode00 f -(20) 3560 6680 w -10 /LucidaSansUnicode00 f -(\)) 3664 6660 w -(m) 2504 6500 w -7 /LucidaSansUnicode00 f -(01) 2608 6520 w -10 /LucidaSansUnicode00 f -(\() 2712 6500 w -(m) 2753 6500 w -7 /LucidaSansUnicode00 f -(12) 2857 6520 w -10 /LucidaSansUnicode00 f -(m) 2961 6500 w -7 /LucidaSansUnicode00 f -(20) 3065 6520 w -10 /S f -(-) 3177 6500 w -10 /LucidaSansUnicode00 f -(m) 3248 6500 w -7 /LucidaSansUnicode00 f -(10) 3352 6520 w -10 /LucidaSansUnicode00 f -(m) 3456 6500 w -7 /LucidaSansUnicode00 f -(22) 3560 6520 w -10 /LucidaSansUnicode00 f -(\)) 3664 6500 w -10 /S f -(+) 3713 6500 w -10 /LucidaSansUnicode00 f -(m) 2504 6340 w -7 /LucidaSansUnicode00 f -(00) 2608 6360 w -10 /LucidaSansUnicode00 f -(\() 2712 6340 w -(m) 2753 6340 w -7 /LucidaSansUnicode00 f -(11) 2857 6360 w -10 /LucidaSansUnicode00 f -(m) 2961 6340 w -7 /LucidaSansUnicode00 f -(22) 3065 6360 w -10 /S f -(-) 3177 6340 w -10 /LucidaSansUnicode00 f -(m) 3248 6340 w -7 /LucidaSansUnicode00 f -(12) 3352 6360 w -10 /LucidaSansUnicode00 f -(m) 3456 6340 w -7 /LucidaSansUnicode00 f -(21) 3560 6360 w -10 /LucidaSansUnicode00 f -(\)) 3664 6340 w -10 /S f -(+) 3713 6340 w -cleartomark -showpage -saveobj restore -%%EndPage: 4 4 -%%Page: 5 5 -/saveobj save def -mark -5 pagesetup -10 /LucidaSansUnicode00 f -(\255 5 \255) 2783 480 w -10 /LucidaSans-Demi f -(2.4.) 720 840 w -(Matrix3) 962 840 w -(Addition) 720 1080 w -9 /LucidaTypewriter f -(void) 920 1250 w -(addm3\(Matrix3) 1245 1250 w -(A,) 2155 1250 w -(Matrix3) 2350 1250 w -(B\)) 2870 1250 w -10 /LucidaSansUnicode00 f -(\() 2393 1490 w -10 /LucidaSans-Demi f -(A) 2434 1490 w -10 /S f -(+) 2524 1490 w -10 /LucidaSans-Demi f -(B) 2595 1490 w -10 /LucidaSansUnicode00 f -(\)) 2666 1490 w -7 /LucidaSansUnicode00 f -(i) 2710 1510 w -(,) 2735 1510 w -(j) 2762 1510 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2847 1490 w -10 /LucidaSansUnicode00 f -10 /LucidaSans-Demi f -(A) 2958 1490 w -7 /LucidaSansUnicode00 f -(i) 3043 1510 w -(,) 3068 1510 w -(j) 3095 1510 w -10 /S f -(+) 3140 1490 w -10 /LucidaSans-Demi f -(B) 3211 1490 w -7 /LucidaSansUnicode00 f -(i) 3285 1510 w -(,) 3310 1510 w -(j) 3337 1510 w -10 /LucidaSans-Demi f -(Substraction) 720 1790 w -9 /LucidaTypewriter f -(void) 920 1960 w -(subm3\(Matrix3) 1245 1960 w -(A,) 2155 1960 w -(Matrix3) 2350 1960 w -(B\)) 2870 1960 w -10 /LucidaSansUnicode00 f -(\() 2393 2200 w -10 /LucidaSans-Demi f -(A) 2434 2200 w -10 /S f -(-) 2524 2200 w -10 /LucidaSans-Demi f -(B) 2595 2200 w -10 /LucidaSansUnicode00 f -(\)) 2666 2200 w -7 /LucidaSansUnicode00 f -(i) 2710 2220 w -(,) 2735 2220 w -(j) 2762 2220 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2847 2200 w -10 /LucidaSansUnicode00 f -10 /LucidaSans-Demi f -(A) 2958 2200 w -7 /LucidaSansUnicode00 f -(i) 3043 2220 w -(,) 3068 2220 w -(j) 3095 2220 w -10 /S f -(-) 3140 2200 w -10 /LucidaSans-Demi f -(B) 3211 2200 w -7 /LucidaSansUnicode00 f -(i) 3285 2220 w -(,) 3310 2220 w -(j) 3337 2220 w -10 /LucidaSans-Demi f -(Multiplication) 720 2500 w -9 /LucidaTypewriter f -(void) 920 2670 w -(mulm3\(Matrix3) 1245 2670 w -(A,) 2155 2670 w -(Matrix3) 2350 2670 w -(B\)) 2870 2670 w -10 /S f -(\351) 2374 2923 w -(\353) 2374 3023 w -10 /LucidaSans-Demi f -(AB) 2424 2970 w -10 /S f -(\371) 2561 2923 w -(\373) 2561 3023 w -7 /LucidaSansUnicode00 f -(i) 2610 3005 w -(,) 2635 3005 w -(j) 2662 3005 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2747 2960 w -10 /LucidaSansUnicode00 f -7 /LucidaSansUnicode00 f -(k) 2859 3060 w -7 /S f -(=) 2911 3060 w -7 /LucidaSansUnicode00 f -(0) 2961 3060 w -15 /S f -(S) 2888 2990 w -7 /LucidaSansUnicode00 f -(4) 2858 2860 w -7 /S f -(-) 2913 2860 w -7 /LucidaSansUnicode00 f -(1) 2963 2860 w -10 /LucidaSans-Demi f -(A) 3023 2960 w -7 /LucidaSansUnicode00 f -(i) 3108 2980 w -(,) 3133 2980 w -(k) 3160 2980 w -10 /LucidaSans-Demi f -(B) 3217 2960 w -7 /LucidaSansUnicode00 f -(k) 3291 2980 w -(,) 3337 2980 w -(j) 3364 2980 w -10 /LucidaSans-Demi f -(Transpose) 720 3340 w -9 /LucidaTypewriter f -(void) 920 3510 w -(transposem3\(Matrix3) 1245 3510 w -(M\)) 2545 3510 w -10 /LucidaSansUnicode00 f -(\() 2552 3750 w -10 /LucidaSans-Demi f -(M) 2593 3750 w -7 /LucidaSansUnicode00 f -(T) 2689 3710 w -10 /LucidaSansUnicode00 f -(\)) 2749 3750 w -7 /LucidaSansUnicode00 f -(i) 2793 3770 w -(,) 2818 3770 w -(j) 2845 3770 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2930 3750 w -10 /LucidaSansUnicode00 f -10 /LucidaSans-Demi f -(A) 3041 3750 w -7 /LucidaSansUnicode00 f -(j) 3126 3770 w -(,) 3152 3770 w -(i) 3179 3770 w -10 /LucidaSans-Demi f -(Identity) 720 4050 w -9 /LucidaTypewriter f -(void) 920 4220 w -(identity3\(Matrix3) 1245 4220 w -(M\)) 2415 4220 w -10 /LucidaSans-Demi f -(M) 2505 4695 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2652 4695 w -10 /LucidaSansUnicode00 f -10 /S f -(\351) 2771 4458 w -(\357) 2771 4558 w -(\357) 2771 4658 w -(\357) 2771 4758 w -(\357) 2771 4858 w -(\353) 2771 4958 w -10 /LucidaSansUnicode00 f -(0) 2821 4915 w -(0) 2932 4915 w -(0) 3043 4915 w -(1) 3154 4915 w -(0) 2821 4775 w -(0) 2932 4775 w -(1) 3043 4775 w -(0) 3154 4775 w -(0) 2821 4635 w -(1) 2932 4635 w -(0) 3043 4635 w -(0) 3154 4635 w -(1) 2821 4495 w -(0) 2932 4495 w -(0) 3043 4495 w -(0) 3154 4495 w -10 /S f -(\371) 3217 4458 w -(\357) 3217 4558 w -(\357) 3217 4658 w -(\357) 3217 4758 w -(\357) 3217 4858 w -(\373) 3217 4958 w -10 /LucidaSans-Demi f -(Determinant) 720 5250 w -9 /LucidaTypewriter f -(double) 920 5420 w -(detm3\(Matrix3) 1375 5420 w -(M\)) 2285 5420 w -10 /LucidaSansUnicode00 f -(det) 567 5910 w -(\() 731 5910 w -10 /LucidaSans-Demi f -(M) 772 5910 w -10 /LucidaSansUnicode00 f -(\)) 871 5910 w -10 /S f -(=) 968 5910 w -10 /LucidaSansUnicode00 f -10 /S f -(-) 1079 6120 w -10 /LucidaSansUnicode00 f -(m) 1150 6120 w -7 /LucidaSansUnicode00 f -(03) 1254 6140 w -10 /LucidaSansUnicode00 f -(\() 1358 6120 w -(m) 1399 6120 w -7 /LucidaSansUnicode00 f -(10) 1503 6140 w -10 /LucidaSansUnicode00 f -(\() 1607 6120 w -(m) 1648 6120 w -7 /LucidaSansUnicode00 f -(21) 1752 6140 w -10 /LucidaSansUnicode00 f -(m) 1856 6120 w -7 /LucidaSansUnicode00 f -(32) 1960 6140 w -10 /S f -(-) 2072 6120 w -10 /LucidaSansUnicode00 f -(m) 2143 6120 w -7 /LucidaSansUnicode00 f -(22) 2247 6140 w -10 /LucidaSansUnicode00 f -(m) 2351 6120 w -7 /LucidaSansUnicode00 f -(31) 2455 6140 w -10 /LucidaSansUnicode00 f -(\)) 2559 6120 w -10 /S f -(+) 2608 6120 w -10 /LucidaSansUnicode00 f -(m) 2679 6120 w -7 /LucidaSansUnicode00 f -(11) 2783 6140 w -10 /LucidaSansUnicode00 f -(\() 2887 6120 w -(m) 2928 6120 w -7 /LucidaSansUnicode00 f -(22) 3032 6140 w -10 /LucidaSansUnicode00 f -(m) 3136 6120 w -7 /LucidaSansUnicode00 f -(30) 3240 6140 w -10 /S f -(-) 3352 6120 w -10 /LucidaSansUnicode00 f -(m) 3423 6120 w -7 /LucidaSansUnicode00 f -(20) 3527 6140 w -10 /LucidaSansUnicode00 f -(m) 3631 6120 w -7 /LucidaSansUnicode00 f -(32) 3735 6140 w -10 /LucidaSansUnicode00 f -(\)) 3839 6120 w -10 /S f -(+) 3888 6120 w -10 /LucidaSansUnicode00 f -(m) 3959 6120 w -7 /LucidaSansUnicode00 f -(12) 4063 6140 w -10 /LucidaSansUnicode00 f -(\() 4167 6120 w -(m) 4208 6120 w -7 /LucidaSansUnicode00 f -(20) 4312 6140 w -10 /LucidaSansUnicode00 f -(m) 4416 6120 w -7 /LucidaSansUnicode00 f -(31) 4520 6140 w -10 /S f -(-) 4632 6120 w -10 /LucidaSansUnicode00 f -(m) 4703 6120 w -7 /LucidaSansUnicode00 f -(21) 4807 6140 w -10 /LucidaSansUnicode00 f -(m) 4911 6120 w -7 /LucidaSansUnicode00 f -(30) 5015 6140 w -10 /LucidaSansUnicode00 f -(\)) 5119 6120 w -(\)) 5160 6120 w -10 /S f -(+) 1079 5960 w -10 /LucidaSansUnicode00 f -(m) 1150 5960 w -7 /LucidaSansUnicode00 f -(02) 1254 5980 w -10 /LucidaSansUnicode00 f -(\() 1358 5960 w -(m) 1399 5960 w -7 /LucidaSansUnicode00 f -(10) 1503 5980 w -10 /LucidaSansUnicode00 f -(\() 1607 5960 w -(m) 1648 5960 w -7 /LucidaSansUnicode00 f -(21) 1752 5980 w -10 /LucidaSansUnicode00 f -(m) 1856 5960 w -7 /LucidaSansUnicode00 f -(33) 1960 5980 w -10 /S f -(-) 2072 5960 w -10 /LucidaSansUnicode00 f -(m) 2143 5960 w -7 /LucidaSansUnicode00 f -(23) 2247 5980 w -10 /LucidaSansUnicode00 f -(m) 2351 5960 w -7 /LucidaSansUnicode00 f -(31) 2455 5980 w -10 /LucidaSansUnicode00 f -(\)) 2559 5960 w -10 /S f -(+) 2608 5960 w -10 /LucidaSansUnicode00 f -(m) 2679 5960 w -7 /LucidaSansUnicode00 f -(11) 2783 5980 w -10 /LucidaSansUnicode00 f -(\() 2887 5960 w -(m) 2928 5960 w -7 /LucidaSansUnicode00 f -(23) 3032 5980 w -10 /LucidaSansUnicode00 f -(m) 3136 5960 w -7 /LucidaSansUnicode00 f -(30) 3240 5980 w -10 /S f -(-) 3352 5960 w -10 /LucidaSansUnicode00 f -(m) 3423 5960 w -7 /LucidaSansUnicode00 f -(20) 3527 5980 w -10 /LucidaSansUnicode00 f -(m) 3631 5960 w -7 /LucidaSansUnicode00 f -(33) 3735 5980 w -10 /LucidaSansUnicode00 f -(\)) 3839 5960 w -10 /S f -(+) 3888 5960 w -10 /LucidaSansUnicode00 f -(m) 3959 5960 w -7 /LucidaSansUnicode00 f -(13) 4063 5980 w -10 /LucidaSansUnicode00 f -(\() 4167 5960 w -(m) 4208 5960 w -7 /LucidaSansUnicode00 f -(20) 4312 5980 w -10 /LucidaSansUnicode00 f -(m) 4416 5960 w -7 /LucidaSansUnicode00 f -(31) 4520 5980 w -10 /S f -(-) 4632 5960 w -10 /LucidaSansUnicode00 f -(m) 4703 5960 w -7 /LucidaSansUnicode00 f -(21) 4807 5980 w -10 /LucidaSansUnicode00 f -(m) 4911 5960 w -7 /LucidaSansUnicode00 f -(30) 5015 5980 w -10 /LucidaSansUnicode00 f -(\)) 5119 5960 w -(\)) 5160 5960 w -10 /S f -(-) 1079 5800 w -10 /LucidaSansUnicode00 f -(m) 1150 5800 w -7 /LucidaSansUnicode00 f -(01) 1254 5820 w -10 /LucidaSansUnicode00 f -(\() 1358 5800 w -(m) 1399 5800 w -7 /LucidaSansUnicode00 f -(10) 1503 5820 w -10 /LucidaSansUnicode00 f -(\() 1607 5800 w -(m) 1648 5800 w -7 /LucidaSansUnicode00 f -(22) 1752 5820 w -10 /LucidaSansUnicode00 f -(m) 1856 5800 w -7 /LucidaSansUnicode00 f -(33) 1960 5820 w -10 /S f -(-) 2072 5800 w -10 /LucidaSansUnicode00 f -(m) 2143 5800 w -7 /LucidaSansUnicode00 f -(23) 2247 5820 w -10 /LucidaSansUnicode00 f -(m) 2351 5800 w -7 /LucidaSansUnicode00 f -(32) 2455 5820 w -10 /LucidaSansUnicode00 f -(\)) 2559 5800 w -10 /S f -(+) 2608 5800 w -10 /LucidaSansUnicode00 f -(m) 2679 5800 w -7 /LucidaSansUnicode00 f -(12) 2783 5820 w -10 /LucidaSansUnicode00 f -(\() 2887 5800 w -(m) 2928 5800 w -7 /LucidaSansUnicode00 f -(23) 3032 5820 w -10 /LucidaSansUnicode00 f -(m) 3136 5800 w -7 /LucidaSansUnicode00 f -(30) 3240 5820 w -10 /S f -(-) 3352 5800 w -10 /LucidaSansUnicode00 f -(m) 3423 5800 w -7 /LucidaSansUnicode00 f -(20) 3527 5820 w -10 /LucidaSansUnicode00 f -(m) 3631 5800 w -7 /LucidaSansUnicode00 f -(33) 3735 5820 w -10 /LucidaSansUnicode00 f -(\)) 3839 5800 w -10 /S f -(+) 3888 5800 w -10 /LucidaSansUnicode00 f -(m) 3959 5800 w -7 /LucidaSansUnicode00 f -(13) 4063 5820 w -10 /LucidaSansUnicode00 f -(\() 4167 5800 w -(m) 4208 5800 w -7 /LucidaSansUnicode00 f -(20) 4312 5820 w -10 /LucidaSansUnicode00 f -(m) 4416 5800 w -7 /LucidaSansUnicode00 f -(32) 4520 5820 w -10 /S f -(-) 4632 5800 w -10 /LucidaSansUnicode00 f -(m) 4703 5800 w -7 /LucidaSansUnicode00 f -(22) 4807 5820 w -10 /LucidaSansUnicode00 f -(m) 4911 5800 w -7 /LucidaSansUnicode00 f -(30) 5015 5820 w -10 /LucidaSansUnicode00 f -(\)) 5119 5800 w -(\)) 5160 5800 w -(m) 1150 5640 w -7 /LucidaSansUnicode00 f -(00) 1254 5660 w -10 /LucidaSansUnicode00 f -(\() 1358 5640 w -(m) 1399 5640 w -7 /LucidaSansUnicode00 f -(11) 1503 5660 w -10 /LucidaSansUnicode00 f -(\() 1607 5640 w -(m) 1648 5640 w -7 /LucidaSansUnicode00 f -(22) 1752 5660 w -10 /LucidaSansUnicode00 f -(m) 1856 5640 w -7 /LucidaSansUnicode00 f -(33) 1960 5660 w -10 /S f -(-) 2072 5640 w -10 /LucidaSansUnicode00 f -(m) 2143 5640 w -7 /LucidaSansUnicode00 f -(23) 2247 5660 w -10 /LucidaSansUnicode00 f -(m) 2351 5640 w -7 /LucidaSansUnicode00 f -(32) 2455 5660 w -10 /LucidaSansUnicode00 f -(\)) 2559 5640 w -10 /S f -(+) 2608 5640 w -10 /LucidaSansUnicode00 f -(m) 2679 5640 w -7 /LucidaSansUnicode00 f -(12) 2783 5660 w -10 /LucidaSansUnicode00 f -(\() 2887 5640 w -(m) 2928 5640 w -7 /LucidaSansUnicode00 f -(23) 3032 5660 w -10 /LucidaSansUnicode00 f -(m) 3136 5640 w -7 /LucidaSansUnicode00 f -(31) 3240 5660 w -10 /S f -(-) 3352 5640 w -10 /LucidaSansUnicode00 f -(m) 3423 5640 w -7 /LucidaSansUnicode00 f -(21) 3527 5660 w -10 /LucidaSansUnicode00 f -(m) 3631 5640 w -7 /LucidaSansUnicode00 f -(33) 3735 5660 w -10 /LucidaSansUnicode00 f -(\)) 3839 5640 w -10 /S f -(+) 3888 5640 w -10 /LucidaSansUnicode00 f -(m) 3959 5640 w -7 /LucidaSansUnicode00 f -(13) 4063 5660 w -10 /LucidaSansUnicode00 f -(\() 4167 5640 w -(m) 4208 5640 w -7 /LucidaSansUnicode00 f -(21) 4312 5660 w -10 /LucidaSansUnicode00 f -(m) 4416 5640 w -7 /LucidaSansUnicode00 f -(32) 4520 5660 w -10 /S f -(-) 4632 5640 w -10 /LucidaSansUnicode00 f -(m) 4703 5640 w -7 /LucidaSansUnicode00 f -(22) 4807 5660 w -10 /LucidaSansUnicode00 f -(m) 4911 5640 w -7 /LucidaSansUnicode00 f -(31) 5015 5660 w -10 /LucidaSansUnicode00 f -(\)) 5119 5640 w -(\)) 5160 5640 w -10 /LucidaSans-Demi f -(2.5.) 720 6420 w -(Quaternion) 962 6420 w -(Addition) 720 6660 w -9 /LucidaTypewriter f -(Quaternion) 920 6830 w -(addq\(Quaternion) 1635 6830 w -(q,) 2675 6830 w -(Quaternion) 2870 6830 w -(r\)) 3585 6830 w -10 /LucidaSansUnicode00 f -(q) 1974 7070 w -10 /S f -(+) 2053 7070 w -10 /LucidaSansUnicode00 f -(r) 2124 7070 w -10 /S f -(=) 2221 7070 w -10 /LucidaSansUnicode00 f -(\() 2332 7070 w -(r) 2373 7070 w -7 /LucidaSansUnicode00 f -(q) 2425 7090 w -10 /S f -(+) 2493 7070 w -10 /LucidaSansUnicode00 f -(r) 2564 7070 w -7 /LucidaSansUnicode00 f -(r) 2616 7090 w -10 /LucidaSansUnicode00 f -(,) 2661 7070 w -(i) 2741 7070 w -7 /LucidaSansUnicode00 f -(q) 2781 7090 w -10 /S f -(+) 2849 7070 w -10 /LucidaSansUnicode00 f -(i) 2920 7070 w -7 /LucidaSansUnicode00 f -(r) 2960 7090 w -10 /LucidaSansUnicode00 f -(,) 3005 7070 w -(j) 3085 7070 w -7 /LucidaSansUnicode00 f -(q) 3126 7090 w -10 /S f -(+) 3194 7070 w -10 /LucidaSansUnicode00 f -(j) 3265 7070 w -7 /LucidaSansUnicode00 f -(r) 3306 7090 w -10 /LucidaSansUnicode00 f -(,) 3351 7070 w -(k) 3431 7070 w -7 /LucidaSansUnicode00 f -(q) 3500 7090 w -10 /S f -(+) 3568 7070 w -10 /LucidaSansUnicode00 f -(k) 3639 7070 w -7 /LucidaSansUnicode00 f -(r) 3708 7090 w -10 /LucidaSansUnicode00 f -(\)) 3753 7070 w -cleartomark -showpage -saveobj restore -%%EndPage: 5 5 -%%Page: 6 6 -/saveobj save def -mark -6 pagesetup -10 /LucidaSansUnicode00 f -(\255 6 \255) 2783 480 w -10 /LucidaSans-Demi f -(Substraction) 720 840 w -9 /LucidaTypewriter f -(Quaternion) 920 1010 w -(subq\(Quaternion) 1635 1010 w -(q,) 2675 1010 w -(Quaternion) 2870 1010 w -(r\)) 3585 1010 w -10 /LucidaSansUnicode00 f -(q) 1974 1250 w -10 /S f -(-) 2053 1250 w -10 /LucidaSansUnicode00 f -(r) 2124 1250 w -10 /S f -(=) 2221 1250 w -10 /LucidaSansUnicode00 f -(\() 2332 1250 w -(r) 2373 1250 w -7 /LucidaSansUnicode00 f -(q) 2425 1270 w -10 /S f -(-) 2493 1250 w -10 /LucidaSansUnicode00 f -(r) 2564 1250 w -7 /LucidaSansUnicode00 f -(r) 2616 1270 w -10 /LucidaSansUnicode00 f -(,) 2661 1250 w -(i) 2741 1250 w -7 /LucidaSansUnicode00 f -(q) 2781 1270 w -10 /S f -(-) 2849 1250 w -10 /LucidaSansUnicode00 f -(i) 2920 1250 w -7 /LucidaSansUnicode00 f -(r) 2960 1270 w -10 /LucidaSansUnicode00 f -(,) 3005 1250 w -(j) 3085 1250 w -7 /LucidaSansUnicode00 f -(q) 3126 1270 w -10 /S f -(-) 3194 1250 w -10 /LucidaSansUnicode00 f -(j) 3265 1250 w -7 /LucidaSansUnicode00 f -(r) 3306 1270 w -10 /LucidaSansUnicode00 f -(,) 3351 1250 w -(k) 3431 1250 w -7 /LucidaSansUnicode00 f -(q) 3500 1270 w -10 /S f -(-) 3568 1250 w -10 /LucidaSansUnicode00 f -(k) 3639 1250 w -7 /LucidaSansUnicode00 f -(r) 3708 1270 w -10 /LucidaSansUnicode00 f -(\)) 3753 1250 w -10 /LucidaSans-Demi f -(Multiplication) 720 1550 w -9 /LucidaTypewriter f -(Quaternion) 920 1720 w -(mulq\(Quaternion) 1635 1720 w -(q,) 2675 1720 w -(Quaternion) 2870 1720 w -(r\)) 3585 1720 w -10 /LucidaSansUnicode00 f -(q) 1321 1965 w -10 /S f -(=) 1440 1965 w -10 /LucidaSansUnicode00 f -([) 1551 1965 w -(r) 1592 1965 w -7 /LucidaSansUnicode00 f -(q) 1644 1985 w -10 /LucidaSansUnicode00 f -(,) 1704 1965 w -(v) 1784 1965 w -7 /LucidaSansUnicode21 f -(\222) 1777 1915 w -7 /LucidaSansUnicode00 f -(q) 1847 1985 w -10 /LucidaSansUnicode00 f -(]) 1907 1965 w -(r) 1956 1965 w -10 /S f -(=) 2053 1965 w -10 /LucidaSansUnicode00 f -([) 2164 1965 w -(r) 2205 1965 w -7 /LucidaSansUnicode00 f -(r) 2257 1985 w -10 /LucidaSansUnicode00 f -(,) 2302 1965 w -(v) 2382 1965 w -7 /LucidaSansUnicode21 f -(\222) 2375 1915 w -7 /LucidaSansUnicode00 f -(r) 2445 1985 w -10 /LucidaSansUnicode00 f -(]) 2490 1965 w -(qr) 2539 1965 w -10 /S f -(=) 2699 1965 w -10 /LucidaSansUnicode00 f -([) 2810 1965 w -(r) 2851 1965 w -7 /LucidaSansUnicode00 f -(q) 2903 1985 w -10 /LucidaSansUnicode00 f -(r) 2963 1965 w -7 /LucidaSansUnicode00 f -(r) 3015 1985 w -10 /S f -(-) 3068 1965 w -10 /LucidaSansUnicode00 f -(v) 3139 1965 w -7 /LucidaSansUnicode21 f -(\222) 3132 1915 w -7 /LucidaSansUnicode00 f -(q) 3202 1985 w -10 /LucidaSansUnicode20 f -(") 3262 1965 w -10 /LucidaSansUnicode00 f -(v) 3326 1965 w -7 /LucidaSansUnicode21 f -(\222) 3319 1915 w -7 /LucidaSansUnicode00 f -(r) 3389 1985 w -10 /LucidaSansUnicode00 f -(,) 3434 1965 w -(v) 3514 1965 w -7 /LucidaSansUnicode21 f -(\222) 3507 1915 w -7 /LucidaSansUnicode00 f -(r) 3577 1985 w -10 /LucidaSansUnicode00 f -(r) 3622 1965 w -7 /LucidaSansUnicode00 f -(q) 3674 1985 w -10 /S f -(+) 3742 1965 w -10 /LucidaSansUnicode00 f -(v) 3813 1965 w -7 /LucidaSansUnicode21 f -(\222) 3806 1915 w -7 /LucidaSansUnicode00 f -(q) 3876 1985 w -10 /LucidaSansUnicode00 f -(r) 3936 1965 w -7 /LucidaSansUnicode00 f -(r) 3988 1985 w -10 /S f -(+) 4041 1965 w -10 /LucidaSansUnicode00 f -(v) 4112 1965 w -7 /LucidaSansUnicode21 f -(\222) 4105 1915 w -7 /LucidaSansUnicode00 f -(q) 4175 1985 w -10 /LucidaSansUnicode00 f -(Xv) 4235 1965 w -7 /LucidaSansUnicode21 f -(\222) 4291 1915 w -7 /LucidaSansUnicode00 f -(r) 4361 1985 w -10 /LucidaSansUnicode00 f -(]) 4406 1965 w -10 /LucidaSans-Demi f -(Scalar Multiplication) 720 2265 w -9 /LucidaTypewriter f -(Quaternion) 920 2435 w -(smulq\(Quaternion) 1635 2435 w -(q,) 2740 2435 w -(double) 2935 2435 w -(s\)) 3390 2435 w -10 /LucidaSansUnicode00 f -(qs) 2243 2675 w -10 /S f -(=) 2413 2675 w -10 /LucidaSansUnicode00 f -([) 2524 2675 w -(r) 2565 2675 w -7 /LucidaSansUnicode00 f -(q) 2617 2695 w -10 /LucidaSansUnicode00 f -(s) 2677 2675 w -(,) 2736 2675 w -(i) 2816 2675 w -7 /LucidaSansUnicode00 f -(q) 2856 2695 w -10 /LucidaSansUnicode00 f -(s) 2916 2675 w -(,) 2975 2675 w -(j) 3055 2675 w -7 /LucidaSansUnicode00 f -(q) 3096 2695 w -10 /LucidaSansUnicode00 f -(s) 3156 2675 w -(,) 3215 2675 w -(k) 3295 2675 w -7 /LucidaSansUnicode00 f -(q) 3364 2695 w -10 /LucidaSansUnicode00 f -(s) 3424 2675 w -(]) 3483 2675 w -10 /LucidaSans-Demi f -(Inverse) 720 2975 w -9 /LucidaTypewriter f -(Quaternion) 920 3145 w -(invq\(Quaternion) 1635 3145 w -(q\)) 2675 3145 w -10 /LucidaSansUnicode00 f -(q) 2009 3470 w -7 /S f -(-) 2083 3430 w -7 /LucidaSansUnicode00 f -(1) 2133 3430 w -10 /LucidaSansUnicode00 f -10 /S f -(=) 2241 3470 w -10 /LucidaSansUnicode00 f -10 /S f -(\354) 2360 3383 w -(\357) 2360 3483 w -(\356) 2360 3583 w -10 /LucidaSansUnicode00 f -(|) 2434 3567 w -(q) 2482 3550 w -(|) 2545 3567 w -7 /LucidaSansUnicode00 f -(2) 2583 3510 w -10 /LucidaSansUnicode00 f -(r) 2514 3410 w -10 /S1 f -(_) 2419 3440 w -(____) 2450 3440 w -10 /LucidaSansUnicode00 f -(,) 2668 3470 w -(|) 2781 3567 w -(q) 2829 3550 w -(|) 2892 3567 w -7 /LucidaSansUnicode00 f -(2) 2930 3510 w -10 /S f -(-) 2832 3410 w -10 /LucidaSansUnicode00 f -(i) 2903 3410 w -10 /S1 f -(_) 2767 3440 w -(____) 2798 3440 w -10 /LucidaSansUnicode00 f -(,) 3016 3470 w -(|) 3129 3567 w -(q) 3177 3550 w -(|) 3240 3567 w -7 /LucidaSansUnicode00 f -(2) 3278 3510 w -10 /S f -(-) 3179 3410 w -10 /LucidaSansUnicode00 f -(j) 3250 3410 w -10 /S1 f -(_) 3114 3440 w -(____) 3145 3440 w -10 /LucidaSansUnicode00 f -(,) 3363 3470 w -(|) 3476 3567 w -(q) 3524 3550 w -(|) 3587 3567 w -7 /LucidaSansUnicode00 f -(2) 3625 3510 w -10 /S f -(-) 3512 3410 w -10 /LucidaSansUnicode00 f -(k) 3583 3410 w -10 /S1 f -(_) 3461 3440 w -(____) 3492 3440 w -10 /S f -(\374) 3702 3383 w -(\357) 3702 3483 w -(\376) 3702 3583 w -10 /LucidaSans-Demi f -(Magnitude/Length) 720 3875 w -9 /LucidaTypewriter f -(double) 920 4045 w -(qlen\(Quaternion) 1375 4045 w -(q\)) 2415 4045 w -10 /LucidaSansUnicode00 f -(|) 2337 4320 w -(q) 2385 4303 w -(|) 2448 4320 w -10 /S f -(=) 2544 4303 w -10 /LucidaSansUnicode00 f -12 /LucidaSansUnicode22 f -(\032) 2655 4303 w -12 /S f -(`) 2752 4303 w -(```````````) 2755 4303 w -10 /LucidaSansUnicode00 f -(r) 2760 4303 w -7 /LucidaSansUnicode00 f -(2) 2806 4263 w -10 /S f -(+) 2874 4303 w -10 /LucidaSansUnicode00 f -(i) 2945 4303 w -7 /LucidaSansUnicode00 f -(2) 2979 4263 w -10 /S f -(+) 3047 4303 w -10 /LucidaSansUnicode00 f -(j) 3118 4303 w -7 /LucidaSansUnicode00 f -(2) 3153 4263 w -10 /S f -(+) 3221 4303 w -10 /LucidaSansUnicode00 f -(k) 3292 4303 w -7 /LucidaSansUnicode00 f -(2) 3355 4263 w -cleartomark -showpage -saveobj restore -%%EndPage: 6 6 -%%Trailer -done -%%DocumentFonts: LucidaSansUnicode20 LucidaSansUnicode21 LucidaSansUnicode22 S1 S LucidaSansUnicode00 LucidaSans-Demi LucidaSans-Italic LucidaTypewriter -%%Pages: 6 diff --git a/libgeometry/doc/mkfile b/libgeometry/doc/mkfile deleted file mode 100644 index 8fb6d1c..0000000 --- a/libgeometry/doc/mkfile +++ /dev/null @@ -1,15 +0,0 @@ -FONTS='.FP lucidasans' -DOCNAME=libgeometry - -all:VQ: $DOCNAME.ps $DOCNAME.pdf - -clean:VQ: - rm -f $DOCNAME.ps $DOCNAME.pdf - -$DOCNAME.ps:V: $DOCNAME.ms - {echo $FONTS; cat $prereq}> _$prereq - eval `{doctype _$prereq} | lp -dstdout > $target && rm -f _$prereq - -$DOCNAME.pdf:V: $DOCNAME.ps - cat /sys/doc/docfonts $prereq > _$prereq - ps2pdf _$prereq $target && rm -f _$prereq diff --git a/libgeometry/matrix.c b/libgeometry/matrix.c deleted file mode 100644 index b7efc84..0000000 --- a/libgeometry/matrix.c +++ /dev/null @@ -1,348 +0,0 @@ -#include <u.h> -#include <libc.h> -#include "../geometry.h" - -/* 2D */ - -void -identity(Matrix m) -{ - memset(m, 0, 3*3*sizeof(double)); - m[0][0] = m[1][1] = m[2][2] = 1; -} - -void -addm(Matrix a, Matrix b) -{ - int i, j; - - for(i = 0; i < 3; i++) - for(j = 0; j < 3; j++) - a[i][j] += b[i][j]; -} - -void -subm(Matrix a, Matrix b) -{ - int i, j; - - for(i = 0; i < 3; i++) - for(j = 0; j < 3; j++) - a[i][j] -= b[i][j]; -} - -void -mulm(Matrix a, Matrix b) -{ - int i, j, k; - Matrix tmp; - - for(i = 0; i < 3; i++) - for(j = 0; j < 3; j++){ - tmp[i][j] = 0; - for(k = 0; k < 3; k++) - tmp[i][j] += a[i][k]*b[k][j]; - } - memmove(a, tmp, 3*3*sizeof(double)); -} - -void -smulm(Matrix m, double s) -{ - int i, j; - - for(i = 0; i < 3; i++) - for(j = 0; j < 3; j++) - m[i][j] *= s; -} - -void -transposem(Matrix m) -{ - int i, j; - double tmp; - - for(i = 0; i < 3; i++) - for(j = i; j < 3; j++){ - tmp = m[i][j]; - m[i][j] = m[j][i]; - m[j][i] = tmp; - } -} - -double -detm(Matrix m) -{ - return m[0][0]*(m[1][1]*m[2][2] - m[1][2]*m[2][1])+ - m[0][1]*(m[1][2]*m[2][0] - m[1][0]*m[2][2])+ - m[0][2]*(m[1][0]*m[2][1] - m[1][1]*m[2][0]); -} - -double -tracem(Matrix m) -{ - return m[0][0] + m[1][1] + m[2][2]; -} - -void -adjm(Matrix m) -{ - Matrix tmp; - - tmp[0][0] = m[1][1]*m[2][2] - m[1][2]*m[2][1]; - tmp[0][1] = -m[0][1]*m[2][2] + m[0][2]*m[2][1]; - tmp[0][2] = m[0][1]*m[1][2] - m[0][2]*m[1][1]; - tmp[1][0] = -m[1][0]*m[2][2] + m[1][2]*m[2][0]; - tmp[1][1] = m[0][0]*m[2][2] - m[0][2]*m[2][0]; - tmp[1][2] = -m[0][0]*m[1][2] + m[0][2]*m[1][0]; - tmp[2][0] = m[1][0]*m[2][1] - m[1][1]*m[2][0]; - tmp[2][1] = -m[0][0]*m[2][1] + m[0][1]*m[2][0]; - tmp[2][2] = m[0][0]*m[1][1] - m[0][1]*m[1][0]; - memmove(m, tmp, 3*3*sizeof(double)); -} - -/* Cayley-Hamilton */ -//void -//invertm(Matrix m) -//{ -// Matrix m², r; -// double det, trm, trm²; -// -// det = detm(m); -// if(det == 0) -// return; -// trm = tracem(m); -// memmove(m², m, 3*3*sizeof(double)); -// mulm(m², m²); -// trm² = tracem(m²); -// identity(r); -// smulm(r, (trm*trm - trm²)/2); -// smulm(m, trm); -// subm(r, m); -// addm(r, m²); -// smulm(r, 1/det); -// memmove(m, r, 3*3*sizeof(double)); -//} - -/* Cramer's */ -void -invm(Matrix m) -{ - double det; - - det = detm(m); - if(det == 0) - return; /* singular matrices are not invertible */ - adjm(m); - smulm(m, 1/det); -} - -Point2 -xform(Point2 p, Matrix m) -{ - return (Point2){ - p.x*m[0][0] + p.y*m[0][1] + p.w*m[0][2], - p.x*m[1][0] + p.y*m[1][1] + p.w*m[1][2], - p.x*m[2][0] + p.y*m[2][1] + p.w*m[2][2] - }; -} - -/* 3D */ - -void -identity3(Matrix3 m) -{ - memset(m, 0, 4*4*sizeof(double)); - m[0][0] = m[1][1] = m[2][2] = m[3][3] = 1; -} - -void -addm3(Matrix3 a, Matrix3 b) -{ - int i, j; - - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - a[i][j] += b[i][j]; -} - -void -subm3(Matrix3 a, Matrix3 b) -{ - int i, j; - - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - a[i][j] -= b[i][j]; -} - -void -mulm3(Matrix3 a, Matrix3 b) -{ - int i, j, k; - Matrix3 tmp; - - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++){ - tmp[i][j] = 0; - for(k = 0; k < 4; k++) - tmp[i][j] += a[i][k]*b[k][j]; - } - memmove(a, tmp, 4*4*sizeof(double)); -} - -void -smulm3(Matrix3 m, double s) -{ - int i, j; - - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - m[i][j] *= s; -} - -void -transposem3(Matrix3 m) -{ - int i, j; - double tmp; - - for(i = 0; i < 4; i++) - for(j = i; j < 4; j++){ - tmp = m[i][j]; - m[i][j] = m[j][i]; - m[j][i] = tmp; - } -} - -double -detm3(Matrix3 m) -{ - return m[0][0]*(m[1][1]*(m[2][2]*m[3][3] - m[2][3]*m[3][2])+ - m[1][2]*(m[2][3]*m[3][1] - m[2][1]*m[3][3])+ - m[1][3]*(m[2][1]*m[3][2] - m[2][2]*m[3][1])) - -m[0][1]*(m[1][0]*(m[2][2]*m[3][3] - m[2][3]*m[3][2])+ - m[1][2]*(m[2][3]*m[3][0] - m[2][0]*m[3][3])+ - m[1][3]*(m[2][0]*m[3][2] - m[2][2]*m[3][0])) - +m[0][2]*(m[1][0]*(m[2][1]*m[3][3] - m[2][3]*m[3][1])+ - m[1][1]*(m[2][3]*m[3][0] - m[2][0]*m[3][3])+ - m[1][3]*(m[2][0]*m[3][1] - m[2][1]*m[3][0])) - -m[0][3]*(m[1][0]*(m[2][1]*m[3][2] - m[2][2]*m[3][1])+ - m[1][1]*(m[2][2]*m[3][0] - m[2][0]*m[3][2])+ - m[1][2]*(m[2][0]*m[3][1] - m[2][1]*m[3][0])); -} - -double -tracem3(Matrix3 m) -{ - return m[0][0] + m[1][1] + m[2][2] + m[3][3]; -} - -void -adjm3(Matrix3 m) -{ - Matrix3 tmp; - - tmp[0][0]=m[1][1]*(m[2][2]*m[3][3] - m[2][3]*m[3][2])+ - m[2][1]*(m[1][3]*m[3][2] - m[1][2]*m[3][3])+ - m[3][1]*(m[1][2]*m[2][3] - m[1][3]*m[2][2]); - tmp[0][1]=m[0][1]*(m[2][3]*m[3][2] - m[2][2]*m[3][3])+ - m[2][1]*(m[0][2]*m[3][3] - m[0][3]*m[3][2])+ - m[3][1]*(m[0][3]*m[2][2] - m[0][2]*m[2][3]); - tmp[0][2]=m[0][1]*(m[1][2]*m[3][3] - m[1][3]*m[3][2])+ - m[1][1]*(m[0][3]*m[3][2] - m[0][2]*m[3][3])+ - m[3][1]*(m[0][2]*m[1][3] - m[0][3]*m[1][2]); - tmp[0][3]=m[0][1]*(m[1][3]*m[2][2] - m[1][2]*m[2][3])+ - m[1][1]*(m[0][2]*m[2][3] - m[0][3]*m[2][2])+ - m[2][1]*(m[0][3]*m[1][2] - m[0][2]*m[1][3]); - tmp[1][0]=m[1][0]*(m[2][3]*m[3][2] - m[2][2]*m[3][3])+ - m[2][0]*(m[1][2]*m[3][3] - m[1][3]*m[3][2])+ - m[3][0]*(m[1][3]*m[2][2] - m[1][2]*m[2][3]); - tmp[1][1]=m[0][0]*(m[2][2]*m[3][3] - m[2][3]*m[3][2])+ - m[2][0]*(m[0][3]*m[3][2] - m[0][2]*m[3][3])+ - m[3][0]*(m[0][2]*m[2][3] - m[0][3]*m[2][2]); - tmp[1][2]=m[0][0]*(m[1][3]*m[3][2] - m[1][2]*m[3][3])+ - m[1][0]*(m[0][2]*m[3][3] - m[0][3]*m[3][2])+ - m[3][0]*(m[0][3]*m[1][2] - m[0][2]*m[1][3]); - tmp[1][3]=m[0][0]*(m[1][2]*m[2][3] - m[1][3]*m[2][2])+ - m[1][0]*(m[0][3]*m[2][2] - m[0][2]*m[2][3])+ - m[2][0]*(m[0][2]*m[1][3] - m[0][3]*m[1][2]); - tmp[2][0]=m[1][0]*(m[2][1]*m[3][3] - m[2][3]*m[3][1])+ - m[2][0]*(m[1][3]*m[3][1] - m[1][1]*m[3][3])+ - m[3][0]*(m[1][1]*m[2][3] - m[1][3]*m[2][1]); - tmp[2][1]=m[0][0]*(m[2][3]*m[3][1] - m[2][1]*m[3][3])+ - m[2][0]*(m[0][1]*m[3][3] - m[0][3]*m[3][1])+ - m[3][0]*(m[0][3]*m[2][1] - m[0][1]*m[2][3]); - tmp[2][2]=m[0][0]*(m[1][1]*m[3][3] - m[1][3]*m[3][1])+ - m[1][0]*(m[0][3]*m[3][1] - m[0][1]*m[3][3])+ - m[3][0]*(m[0][1]*m[1][3] - m[0][3]*m[1][1]); - tmp[2][3]=m[0][0]*(m[1][3]*m[2][1] - m[1][1]*m[2][3])+ - m[1][0]*(m[0][1]*m[2][3] - m[0][3]*m[2][1])+ - m[2][0]*(m[0][3]*m[1][1] - m[0][1]*m[1][3]); - tmp[3][0]=m[1][0]*(m[2][2]*m[3][1] - m[2][1]*m[3][2])+ - m[2][0]*(m[1][1]*m[3][2] - m[1][2]*m[3][1])+ - m[3][0]*(m[1][2]*m[2][1] - m[1][1]*m[2][2]); - tmp[3][1]=m[0][0]*(m[2][1]*m[3][2] - m[2][2]*m[3][1])+ - m[2][0]*(m[0][2]*m[3][1] - m[0][1]*m[3][2])+ - m[3][0]*(m[0][1]*m[2][2] - m[0][2]*m[2][1]); - tmp[3][2]=m[0][0]*(m[1][2]*m[3][1] - m[1][1]*m[3][2])+ - m[1][0]*(m[0][1]*m[3][2] - m[0][2]*m[3][1])+ - m[3][0]*(m[0][2]*m[1][1] - m[0][1]*m[1][2]); - tmp[3][3]=m[0][0]*(m[1][1]*m[2][2] - m[1][2]*m[2][1])+ - m[1][0]*(m[0][2]*m[2][1] - m[0][1]*m[2][2])+ - m[2][0]*(m[0][1]*m[1][2] - m[0][2]*m[1][1]); - memmove(m, tmp, 4*4*sizeof(double)); -} - -/* Cayley-Hamilton */ -//void -//invertm3(Matrix3 m) -//{ -// Matrix3 m², m³, r; -// double det, trm, trm², trm³; -// -// det = detm3(m); -// if(det == 0) -// return; -// trm = tracem3(m); -// memmove(m³, m, 4*4*sizeof(double)); -// mulm(m³, m³); -// mulm(m³, m); -// trm³ = tracem3(m³); -// memmove(m², m, 4*4*sizeof(double)); -// mulm(m², m²); -// trm² = tracem3(m²); -// identity3(r); -// smulm3(r, (trm*trm*trm - 3*trm*trm² + 2*trm³)/6); -// smulm3(m, (trm*trm - trm²)/2); -// smulm3(m², trm); -// subm(r, m); -// addm(r, m²); -// subm(r, m³); -// smulm(r, 1/det); -// memmove(m, r, 4*4*sizeof(double)); -//} - -/* Cramer's */ -void -invm3(Matrix3 m) -{ - double det; - - det = detm3(m); - if(det == 0) - return; /* singular matrices are not invertible */ - adjm3(m); - smulm3(m, 1/det); -} - -Point3 -xform3(Point3 p, Matrix3 m) -{ - return (Point3){ - p.x*m[0][0] + p.y*m[0][1] + p.z*m[0][2] + p.w*m[0][3], - p.x*m[1][0] + p.y*m[1][1] + p.z*m[1][2] + p.w*m[1][3], - p.x*m[2][0] + p.y*m[2][1] + p.z*m[2][2] + p.w*m[2][3], - p.x*m[3][0] + p.y*m[3][1] + p.z*m[3][2] + p.w*m[3][3], - }; -} diff --git a/libgeometry/mkfile b/libgeometry/mkfile deleted file mode 100644 index 5c7d79f..0000000 --- a/libgeometry/mkfile +++ /dev/null @@ -1,13 +0,0 @@ -</$objtype/mkfile - -LIB=../libgeometry.a$O -OFILES=\ - point.$O\ - matrix.$O\ - quaternion.$O\ - rframe.$O\ - triangle.$O\ - -HFILES=../geometry.h - -</sys/src/cmd/mklib diff --git a/libgeometry/point.c b/libgeometry/point.c deleted file mode 100644 index 657eb4c..0000000 --- a/libgeometry/point.c +++ /dev/null @@ -1,161 +0,0 @@ -#include <u.h> -#include <libc.h> -#include "../geometry.h" - -/* 2D */ - -Point2 -Pt2(double x, double y, double w) -{ - return (Point2){x, y, w}; -} - -Point2 -Vec2(double x, double y) -{ - return (Point2){x, y, 0}; -} - -Point2 -addpt2(Point2 a, Point2 b) -{ - return (Point2){a.x+b.x, a.y+b.y, a.w+b.w}; -} - -Point2 -subpt2(Point2 a, Point2 b) -{ - return (Point2){a.x-b.x, a.y-b.y, a.w-b.w}; -} - -Point2 -mulpt2(Point2 p, double s) -{ - return (Point2){p.x*s, p.y*s, p.w*s}; -} - -Point2 -divpt2(Point2 p, double s) -{ - return (Point2){p.x/s, p.y/s, p.w/s}; -} - -Point2 -lerp2(Point2 a, Point2 b, double t) -{ - if(t < 0) t = 0; - if(t > 1) t = 1; - return (Point2){ - (1 - t)*a.x + t*b.x, - (1 - t)*a.y + t*b.y, - (1 - t)*a.w + t*b.w - }; -} - -double -dotvec2(Point2 a, Point2 b) -{ - return a.x*b.x + a.y*b.y; -} - -double -vec2len(Point2 v) -{ - return sqrt(dotvec2(v, v)); -} - -Point2 -normvec2(Point2 v) -{ - double len; - - len = vec2len(v); - if(len == 0) - return (Point2){0, 0, 0}; - return (Point2){v.x/len, v.y/len, 0}; -} - -/* 3D */ - -Point3 -Pt3(double x, double y, double z, double w) -{ - return (Point3){x, y, z, w}; -} - -Point3 -Vec3(double x, double y, double z) -{ - return (Point3){x, y, z, 0}; -} - -Point3 -addpt3(Point3 a, Point3 b) -{ - return (Point3){a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w}; -} - -Point3 -subpt3(Point3 a, Point3 b) -{ - return (Point3){a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w}; -} - -Point3 -mulpt3(Point3 p, double s) -{ - return (Point3){p.x*s, p.y*s, p.z*s, p.w*s}; -} - -Point3 -divpt3(Point3 p, double s) -{ - return (Point3){p.x/s, p.y/s, p.z/s, p.w/s}; -} - -Point3 -lerp3(Point3 a, Point3 b, double t) -{ - if(t < 0) t = 0; - if(t > 1) t = 1; - return (Point3){ - (1 - t)*a.x + t*b.x, - (1 - t)*a.y + t*b.y, - (1 - t)*a.z + t*b.z, - (1 - t)*a.w + t*b.w - }; -} - -double -dotvec3(Point3 a, Point3 b) -{ - return a.x*b.x + a.y*b.y + a.z*b.z; -} - -Point3 -crossvec3(Point3 a, Point3 b) -{ - return (Point3){ - a.y*b.z - a.z*b.y, - a.z*b.x - a.x*b.z, - a.x*b.y - a.y*b.x, - 0 - }; -} - -double -vec3len(Point3 v) -{ - return sqrt(dotvec3(v, v)); -} - -Point3 -normvec3(Point3 v) -{ - double len; - - len = vec3len(v); - if(len == 0) - return (Point3){0, 0, 0, 0}; - return (Point3){v.x/len, v.y/len, v.z/len, 0}; -} diff --git a/libgeometry/quaternion.c b/libgeometry/quaternion.c deleted file mode 100644 index b8eaa88..0000000 --- a/libgeometry/quaternion.c +++ /dev/null @@ -1,90 +0,0 @@ -#include <u.h> -#include <libc.h> -#include "../geometry.h" - -Quaternion -Quat(double r, double i, double j, double k) -{ - return (Quaternion){r, i, j, k}; -} - -Quaternion -Quatvec(double s, Point3 v) -{ - return (Quaternion){s, v.x, v.y, v.z}; -} - -Quaternion -addq(Quaternion a, Quaternion b) -{ - return (Quaternion){a.r+b.r, a.i+b.i, a.j+b.j, a.k+b.k}; -} - -Quaternion -subq(Quaternion a, Quaternion b) -{ - return (Quaternion){a.r-b.r, a.i-b.i, a.j-b.j, a.k-b.k}; -} - -Quaternion -mulq(Quaternion q, Quaternion r) -{ - Point3 qv, rv, tmp; - - qv = Vec3(q.i, q.j, q.k); - rv = Vec3(r.i, r.j, r.k); - tmp = addpt3(addpt3(mulpt3(rv, q.r), mulpt3(qv, r.r)), crossvec3(qv, rv)); - return (Quaternion){q.r*r.r - dotvec3(qv, rv), tmp.x, tmp.y, tmp.z}; -} - -Quaternion -smulq(Quaternion q, double s) -{ - return (Quaternion){q.r*s, q.i*s, q.j*s, q.k*s}; -} - -Quaternion -sdivq(Quaternion q, double s) -{ - return (Quaternion){q.r/s, q.i/s, q.j/s, q.k/s}; -} - -double -dotq(Quaternion q, Quaternion r) -{ - return q.r*r.r + q.i*r.i + q.j*r.j + q.k*r.k; -} - -Quaternion -invq(Quaternion q) -{ - double len²; - - len² = dotq(q, q); - if(len² == 0) - return (Quaternion){0, 0, 0, 0}; - return (Quaternion){q.r/len², -q.i/len², -q.j/len², -q.k/len²}; -} - -double -qlen(Quaternion q) -{ - return sqrt(q.r*q.r + q.i*q.i + q.j*q.j + q.k*q.k); -} - -Quaternion -normq(Quaternion q) -{ - return sdivq(q, qlen(q)); -} - -Point3 -qrotate(Point3 p, Point3 axis, double angle) -{ - Quaternion qaxis, qr; - - angle /= 2; - qaxis = Quatvec(cos(angle), mulpt3(axis, sin(angle))); - qr = mulq(mulq(qaxis, Quatvec(0, p)), invq(qaxis)); - return Vec3(qr.i, qr.j, qr.k); -} diff --git a/libgeometry/rframe.c b/libgeometry/rframe.c deleted file mode 100644 index 06d63f2..0000000 --- a/libgeometry/rframe.c +++ /dev/null @@ -1,51 +0,0 @@ -#include <u.h> -#include <libc.h> -#include "../geometry.h" - -Point2 -rframexform(Point2 p, RFrame rf) -{ - Matrix m = { - rf.bx.x, rf.bx.y, -dotvec2(rf.bx, rf.p), - rf.by.x, rf.by.y, -dotvec2(rf.by, rf.p), - 0, 0, 1, - }; - return xform(p, m); -} - -Point3 -rframexform3(Point3 p, RFrame3 rf) -{ - Matrix3 m = { - rf.bx.x, rf.bx.y, rf.bx.z, -dotvec3(rf.bx, rf.p), - rf.by.x, rf.by.y, rf.by.z, -dotvec3(rf.by, rf.p), - rf.bz.x, rf.bz.y, rf.bz.z, -dotvec3(rf.bz, rf.p), - 0, 0, 0, 1, - }; - return xform3(p, m); -} - -Point2 -invrframexform(Point2 p, RFrame rf) -{ - Matrix m = { - rf.bx.x, rf.bx.y, -dotvec2(rf.bx, rf.p), - rf.by.x, rf.by.y, -dotvec2(rf.by, rf.p), - 0, 0, 1, - }; - invm(m); - return xform(p, m); -} - -Point3 -invrframexform3(Point3 p, RFrame3 rf) -{ - Matrix3 m = { - rf.bx.x, rf.bx.y, rf.bx.z, -dotvec3(rf.bx, rf.p), - rf.by.x, rf.by.y, rf.by.z, -dotvec3(rf.by, rf.p), - rf.bz.x, rf.bz.y, rf.bz.z, -dotvec3(rf.bz, rf.p), - 0, 0, 0, 1, - }; - invm3(m); - return xform3(p, m); -} diff --git a/libgeometry/triangle.c b/libgeometry/triangle.c deleted file mode 100644 index a8bbf0f..0000000 --- a/libgeometry/triangle.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <u.h> -#include <libc.h> -#include "../geometry.h" - -Point3 -centroid(Triangle3 t) -{ - return divpt3(addpt3(t.p0, addpt3(t.p1, t.p2)), 3); -} diff --git a/libgraphics/camera.c b/libgraphics/camera.c deleted file mode 100644 index bb55490..0000000 --- a/libgraphics/camera.c +++ /dev/null @@ -1,104 +0,0 @@ -#include <u.h> -#include <libc.h> -#include <draw.h> -#include <memdraw.h> -#include "../geometry.h" -#include "../graphics.h" - -static int -max(int a, int b) -{ - return a > b ? a : b; -} - -static void -verifycfg(Camera *c) -{ - assert(c->viewport.fb != nil); - if(c->ptype == Ppersp) - assert(c->fov > 0 && c->fov < 360); - assert(c->clipn > 0 && c->clipn < c->clipf); -} - -static void -updatefb(Camera *c, Rectangle r, ulong chan) -{ - Memimage *fb; - - fb = allocmemimage(r, chan); - if(fb == nil) - sysfatal("allocmemimage: %r"); - c->viewport.fb = fb; - c->viewport.p = Pt2(r.min.x,r.max.y,1); -} - -Camera* -alloccamera(Rectangle r, ulong chan) -{ - Camera *c; - - c = malloc(sizeof(Camera)); - if(c == nil) - sysfatal("malloc: %r"); - memset(c, 0, sizeof *c); - c->viewport.bx = Vec2(1,0); - c->viewport.by = Vec2(0,-1); - updatefb(c, r, chan); - c->updatefb = updatefb; -} - -void -configcamera(Camera *c, double fov, double n, double f, Projection p) -{ - c->fov = fov; - c->clipn = n; - c->clipf = f; - c->ptype = p; - reloadcamera(c); -} - -void -placecamera(Camera *c, Point3 p, Point3 focus, Point3 up) -{ - c->p = p; - if(focus.w == 0) - c->bz = focus; - else - c->bz = normvec3(subpt3(c->p, focus)); - c->bx = normvec3(crossvec3(up, c->bz)); - c->by = crossvec3(c->bz, c->bx); -} - -void -aimcamera(Camera *c, Point3 focus) -{ - placecamera(c, c->p, focus, c->by); -} - -void -reloadcamera(Camera *c) -{ - double a; - double l, r, b, t; - - verifycfg(c); - switch(c->ptype){ - case Portho: - /* - r = Dx(c->viewport.fb->r)/2; - t = Dy(c->viewport.fb->r)/2; - l = -r; - b = -t; - */ - l = t = 0; - r = Dx(c->viewport.fb->r); - b = Dy(c->viewport.fb->r); - orthographic(c->proj, l, r, b, t, c->clipn, c->clipf); - break; - case Ppersp: - a = (double)Dx(c->viewport.fb->r)/Dy(c->viewport.fb->r); - perspective(c->proj, c->fov, a, c->clipn, c->clipf); - break; - default: sysfatal("unknown projection type"); - } -} diff --git a/libgraphics/doc/libgraphics.ms b/libgraphics/doc/libgraphics.ms deleted file mode 100644 index 87a23a7..0000000 --- a/libgraphics/doc/libgraphics.ms +++ /dev/null @@ -1,34 +0,0 @@ -.TL -libgraphics -.AU -Rodrigo G. López -.sp -rgl@antares-labs.eu -.AI -Antares Telecom Laboratories -Albatera, Alicante -.FS -ACHTUNG! this is a -.B "WORK IN PROGRESS" -.FE -.NH 1 -Data Structures -.NH 2 -Camera -.P1 -struct Camera { - RFrame3; /* VCS */ - Image *viewport; - double fov; /* vertical FOV */ - struct { - double n, f; /* near and far clipping planes */ - } clip; - Projection ptype; - Matrix3 proj; /* VCS to viewport xform */ -}; -.P2 -.PP -A camera is an image capturing entity, analog to the real world device -we all know, that allows us to see the virtual 3-D world by projecting -it into a viewport we can attach to a screen or window for real-time -visualization or write out into a file. diff --git a/libgraphics/doc/libgraphics.pdf b/libgraphics/doc/libgraphics.pdf Binary files differdeleted file mode 100644 index 0291710..0000000 --- a/libgraphics/doc/libgraphics.pdf +++ /dev/null diff --git a/libgraphics/doc/libgraphics.ps b/libgraphics/doc/libgraphics.ps deleted file mode 100644 index 1a566f7..0000000 --- a/libgraphics/doc/libgraphics.ps +++ /dev/null @@ -1,583 +0,0 @@ -%!PS-Adobe-2.0 -%%Version: 0.1 -%%Creator: troff, Plan 9 edition -%%DocumentFonts: (atend) -%%Pages: (atend) -%%EndComments -% -% Version 3.3.2 prologue for troff files. -% - -/#copies 1 store -/aspectratio 1 def -/formsperpage 1 def -/landscape false def -/linewidth .3 def -/magnification 1 def -/margin 0 def -/orientation 0 def -/resolution 720 def -/rotation 1 def -/xoffset 0 def -/yoffset 0 def - -/roundpage true def -/useclippath true def -/pagebbox [0 0 612 792] def - -/R /Times-Roman def -/I /Times-Italic def -/B /Times-Bold def -/BI /Times-BoldItalic def -/H /Helvetica def -/HI /Helvetica-Oblique def -/HB /Helvetica-Bold def -/HX /Helvetica-BoldOblique def -/CW /Courier def -/CO /Courier def -/CI /Courier-Oblique def -/CB /Courier-Bold def -/CX /Courier-BoldOblique def -/PA /Palatino-Roman def -/PI /Palatino-Italic def -/PB /Palatino-Bold def -/PX /Palatino-BoldItalic def -/Hr /Helvetica-Narrow def -/Hi /Helvetica-Narrow-Oblique def -/Hb /Helvetica-Narrow-Bold def -/Hx /Helvetica-Narrow-BoldOblique def -/KR /Bookman-Light def -/KI /Bookman-LightItalic def -/KB /Bookman-Demi def -/KX /Bookman-DemiItalic def -/AR /AvantGarde-Book def -/AI /AvantGarde-BookOblique def -/AB /AvantGarde-Demi def -/AX /AvantGarde-DemiOblique def -/NR /NewCenturySchlbk-Roman def -/NI /NewCenturySchlbk-Italic def -/NB /NewCenturySchlbk-Bold def -/NX /NewCenturySchlbk-BoldItalic def -/ZD /ZapfDingbats def -/ZI /ZapfChancery-MediumItalic def -/S /S def -/S1 /S1 def -/GR /Symbol def - -/inch {72 mul} bind def -/min {2 copy gt {exch} if pop} bind def - -/setup { - counttomark 2 idiv {def} repeat pop - - landscape {/orientation 90 orientation add def} if - /scaling 72 resolution div def - linewidth setlinewidth - 1 setlinecap - - pagedimensions - xcenter ycenter translate - orientation rotation mul rotate - width 2 div neg height 2 div translate - xoffset inch yoffset inch neg translate - margin 2 div dup neg translate - magnification dup aspectratio mul scale - scaling scaling scale - - addmetrics - 0 0 moveto -} def - -/pagedimensions { - useclippath userdict /gotpagebbox known not and { - /pagebbox [clippath pathbbox newpath] def - roundpage currentdict /roundpagebbox known and {roundpagebbox} if - } if - pagebbox aload pop - 4 -1 roll exch 4 1 roll 4 copy - landscape {4 2 roll} if - sub /width exch def - sub /height exch def - add 2 div /xcenter exch def - add 2 div /ycenter exch def - userdict /gotpagebbox true put -} def - -/addmetrics { - /Symbol /S null Sdefs cf - /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf -} def - -/pagesetup { - /page exch def - currentdict /pagedict known currentdict page known and { - page load pagedict exch get cvx exec - } if -} def - -/decodingdefs [ - {counttomark 2 idiv {y moveto show} repeat} - {neg /y exch def counttomark 2 idiv {y moveto show} repeat} - {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} - {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} - {counttomark 2 idiv {y moveto show} repeat} - {neg setfunnytext} -] def - -/setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def - -/w {neg moveto show} bind def -/m {neg dup /y exch def moveto} bind def -/done {/lastpage where {pop lastpage} if} def - -/f { - dup /font exch def findfont exch - dup /ptsize exch def scaling div dup /size exch def scalefont setfont - linewidth ptsize mul scaling 10 mul div setlinewidth - /spacewidth ( ) stringwidth pop def -} bind def - -/changefont { - /fontheight exch def - /fontslant exch def - currentfont [ - 1 0 - fontheight ptsize div fontslant sin mul fontslant cos div - fontheight ptsize div - 0 0 - ] makefont setfont -} bind def - -/sf {f} bind def - -/cf { - dup length 2 idiv - /entries exch def - /chtab exch def - /newencoding exch def - /newfont exch def - - findfont dup length 1 add dict - /newdict exch def - {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall - - newencoding type /arraytype eq {newdict /Encoding newencoding put} if - - newdict /Metrics entries dict put - newdict /Metrics get - begin - chtab aload pop - 1 1 entries {pop def} for - newfont newdict definefont pop - end -} bind def - -% -% A few arrays used to adjust reference points and character widths in some -% of the printer resident fonts. If square roots are too high try changing -% the lines describing /radical and /radicalex to, -% -% /radical [0 -75 550 0] -% /radicalex [-50 -75 500 0] -% -% Move braceleftbt a bit - default PostScript character is off a bit. -% - -/Sdefs [ - /bracketlefttp [201 500] - /bracketleftbt [201 500] - /bracketrighttp [-81 380] - /bracketrightbt [-83 380] - /braceleftbt [203 490] - /bracketrightex [220 -125 500 0] - /radical [0 0 550 0] - /radicalex [-50 0 500 0] - /parenleftex [-20 -170 0 0] - /integral [100 -50 500 0] - /infinity [10 -75 730 0] -] def - -/S1defs [ - /underscore [0 80 500 0] - /endash [7 90 650 0] -] def -% -% Tries to round clipping path dimensions, as stored in array pagebbox, so they -% match one of the known sizes in the papersizes array. Lower left coordinates -% are always set to 0. -% - -/roundpagebbox { - 7 dict begin - /papersizes [8.5 inch 11 inch 14 inch 17 inch] def - - /mappapersize { - /val exch def - /slop .5 inch def - /diff slop def - /j 0 def - 0 1 papersizes length 1 sub { - /i exch def - papersizes i get val sub abs - dup diff le {/diff exch def /j i def} {pop} ifelse - } for - diff slop lt {papersizes j get} {val} ifelse - } def - - pagebbox 0 0 put - pagebbox 1 0 put - pagebbox dup 2 get mappapersize 2 exch put - pagebbox dup 3 get mappapersize 3 exch put - end -} bind def - -%%EndProlog -%%BeginSetup -mark -% -% Encoding vector and redefinition of findfont for the ISO Latin1 standard. -% The 18 characters missing from ROM based fonts on older printers are noted -% below. -% - -/ISOLatin1Encoding [ - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /space - /exclam - /quotedbl - /numbersign - /dollar - /percent - /ampersand - /quoteright - /parenleft - /parenright - /asterisk - /plus - /comma - /minus - /period - /slash - /zero - /one - /two - /three - /four - /five - /six - /seven - /eight - /nine - /colon - /semicolon - /less - /equal - /greater - /question - /at - /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 - /bracketleft - /backslash - /bracketright - /asciicircum - /underscore - /quoteleft - /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 - /braceleft - /bar - /braceright - /asciitilde - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /.notdef - /dotlessi - /grave - /acute - /circumflex - /tilde - /macron - /breve - /dotaccent - /dieresis - /.notdef - /ring - /cedilla - /.notdef - /hungarumlaut - /ogonek - /caron - /space - /exclamdown - /cent - /sterling - /currency - /yen - /brokenbar % missing - /section - /dieresis - /copyright - /ordfeminine - /guillemotleft - /logicalnot - /hyphen - /registered - /macron - /degree % missing - /plusminus % missing - /twosuperior % missing - /threesuperior % missing - /acute - /mu % missing - /paragraph - /periodcentered - /cedilla - /onesuperior % missing - /ordmasculine - /guillemotright - /onequarter % missing - /onehalf % missing - /threequarters % missing - /questiondown - /Agrave - /Aacute - /Acircumflex - /Atilde - /Adieresis - /Aring - /AE - /Ccedilla - /Egrave - /Eacute - /Ecircumflex - /Edieresis - /Igrave - /Iacute - /Icircumflex - /Idieresis - /Eth % missing - /Ntilde - /Ograve - /Oacute - /Ocircumflex - /Otilde - /Odieresis - /multiply % missing - /Oslash - /Ugrave - /Uacute - /Ucircumflex - /Udieresis - /Yacute % missing - /Thorn % missing - /germandbls - /agrave - /aacute - /acircumflex - /atilde - /adieresis - /aring - /ae - /ccedilla - /egrave - /eacute - /ecircumflex - /edieresis - /igrave - /iacute - /icircumflex - /idieresis - /eth % missing - /ntilde - /ograve - /oacute - /ocircumflex - /otilde - /odieresis - /divide % missing - /oslash - /ugrave - /uacute - /ucircumflex - /udieresis - /yacute % missing - /thorn % missing - /ydieresis -] def - -/NewFontDirectory FontDirectory maxlength dict def - -% -% Apparently no guarantee findfont is defined in systemdict so the obvious -% -% systemdict /findfont get exec -% -% can generate an error. So far the only exception is a VT600 (version 48.0). -% - -userdict /@RealFindfont known not { - userdict begin - /@RealFindfont systemdict begin /findfont load end def - end -} if - -/findfont { - dup NewFontDirectory exch known not { - dup - %dup systemdict /findfont get exec % not always in systemdict - dup userdict /@RealFindfont get exec - dup /Encoding get StandardEncoding eq { - dup length dict begin - {1 index /FID ne {def}{pop pop} ifelse} forall - /Encoding ISOLatin1Encoding def - currentdict - end - /DummyFontName exch definefont - } if - NewFontDirectory 3 1 roll put - } if - NewFontDirectory exch get -} bind def - -%%Patch from lp -%%EndPatch from lp - -setup -%%EndSetup -%%Page: 1 1 -/saveobj save def -mark -1 pagesetup -12 /LucidaSans-Demi f -(libgraphics) 2533 1220 w -10 /LucidaSans-Italic f -(Rodrigo G. L\363pez) 2469 1480 w -(rgl@antares-labs.eu) 2377 1760 w -10 /LucidaSansUnicode00 f -(Antares Telecom Laboratories) 2156 1960 w -(Albatera, Alicante) 2451 2100 w -10 /LucidaSans-Demi f -(1.) 720 2700 w -(Data Structures) 873 2700 w -(1.1.) 720 2940 w -(Camera) 962 2940 w -9 /LucidaTypewriter f -(struct) 920 3110 w -(Camera) 1375 3110 w -({) 1830 3110 w -(};) 920 3330 w -10 /LucidaSansUnicode00 f -(A camera) 970 3546 w -8 /S1 f -(__________________) 720 6980 w -8 /LucidaSansUnicode00 f -(ACHTUNG!) 720 7080 w -(this) 1163 7080 w -(is) 1333 7080 w -(a) 1423 7080 w -8 /LucidaSans-Demi f -(WORK) 1493 7080 w -(IN) 1769 7080 w -(PROGRESS) 1883 7080 w -cleartomark -showpage -saveobj restore -%%EndPage: 1 1 -%%Trailer -done -%%DocumentFonts: S1 LucidaSansUnicode00 LucidaSans-Demi LucidaSans-Italic LucidaTypewriter -%%Pages: 1 diff --git a/libgraphics/doc/mkfile b/libgraphics/doc/mkfile deleted file mode 100644 index 3bac031..0000000 --- a/libgraphics/doc/mkfile +++ /dev/null @@ -1,15 +0,0 @@ -FONTS='.FP lucidasans' -DOCNAME=libgraphics - -all:VQ: $DOCNAME.ps $DOCNAME.pdf - -clean:VQ: - rm -f $DOCNAME.ps $DOCNAME.pdf - -$DOCNAME.ps:V: $DOCNAME.ms - {echo $FONTS; cat $prereq}> _$prereq - eval `{doctype _$prereq} | lp -dstdout > $target && rm -f _$prereq - -$DOCNAME.pdf:V: $DOCNAME.ps - cat /sys/doc/docfonts $prereq > _$prereq - ps2pdf _$prereq $target && rm -f _$prereq diff --git a/libgraphics/mkfile b/libgraphics/mkfile deleted file mode 100644 index b7669a3..0000000 --- a/libgraphics/mkfile +++ /dev/null @@ -1,11 +0,0 @@ -</$objtype/mkfile - -LIB=../libgraphics.a$O -OFILES=\ - triangle.$O\ - camera.$O\ - render.$O\ - -HFILES=../graphics.h - -</sys/src/cmd/mklib diff --git a/libgraphics/render.c b/libgraphics/render.c deleted file mode 100644 index a1819ec..0000000 --- a/libgraphics/render.c +++ /dev/null @@ -1,98 +0,0 @@ -#include <u.h> -#include <libc.h> -#include <draw.h> -#include "../geometry.h" -#include "../graphics.h" - -/* requires p to be in NDC */ -int -isclipping(Point3 p) -{ - if(p.x > p.w || p.x < -p.w || - p.y > p.w || p.y < -p.w || - p.z > p.w || p.z < 0) - return 1; - return 0; -} - -static Point2 -flatten(Camera *c, Point3 p) -{ - Point2 p2; - Matrix S = { - Dx(c->viewport->r)/2, 0, 0, - 0, Dy(c->viewport->r)/2, 0, - 0, 0, 1, - }, T = { - 1, 0, 1, - 0, 1, 1, - 0, 0, 1, - }; - - p2 = (Point2){p.x, p.y, p.w}; - if(p2.w != 0) - p2 = divpt2(p2, p2.w); - mulm(S, T); - p2 = xform(p2, S); - return p2; -} - -Point -toviewport(Camera *c, Point3 p) -{ - Point2 p2; - - p2 = invrframexform(flatten(c, p), c->viewport); - return (Point){p2.x, p2.y}; -} - -Point2 -fromviewport(Camera *c, Point p) -{ - return rframexform(Pt2(p.x,p.y,1), c->viewport); -} - -void -perspective(Matrix3 m, double fov, double a, double n, double f) -{ - double cotan; - - cotan = 1/tan(fov/2*DEG); - identity3(m); - m[0][0] = cotan/a; - m[1][1] = cotan; - m[2][2] = -(f+n)/(f-n); - m[2][3] = -2*f*n/(f-n); - m[3][2] = -1; -} - -void -orthographic(Matrix3 m, double l, double r, double b, double t, double n, double f) -{ - identity3(m); - m[0][0] = 2/(r - l); - m[1][1] = 2/(t - b); - m[2][2] = -2/(f - n); - m[0][3] = -(r + l)/(r - l); - m[1][3] = -(t + b)/(t - b); - m[2][3] = -(f + n)/(f - n); -} - -void -line3(Camera *c, Point3 p0, Point3 p1, int end0, int end1, Image *src) -{ - p0 = WORLD2NDC(c, p0); - p1 = WORLD2NDC(c, p1); - if(isclipping(p0) || isclipping(p1)) - return; - line(c->viewport, toviewport(c, p0), toviewport(c, p1), end0, end1, 0, src, ZP); -} - -Point -string3(Camera *c, Point3 p, Image *src, Font *f, char *s) -{ - p = WORLD2NDC(c, p); - if(isclipping(p)) - return (Point){~0, ~0}; - return string(c->viewport, toviewport(c, p), src, ZP, f, s); -} diff --git a/libobj/examples/box.obj b/libobj/examples/box.obj deleted file mode 100644 index bd72661..0000000 --- a/libobj/examples/box.obj +++ /dev/null @@ -1,30 +0,0 @@ -# Vertices: 8 -# Points: 0 -# Lines: 0 -# Faces: 6 -# Materials: 1 - -o 1 - -# Vertex list - -v -0.5 -0.5 0.5 -v -0.5 -0.5 -0.5 -v -0.5 0.5 -0.5 -v -0.5 0.5 0.5 -v 0.5 -0.5 0.5 -v 0.5 -0.5 -0.5 -v 0.5 0.5 -0.5 -v 0.5 0.5 0.5 - -# Point/Line/Face list - -usemtl Default -f 4 3 2 1 -f 2 6 5 1 -f 3 7 6 2 -f 8 7 3 4 -f 5 8 4 1 -f 6 7 8 5 - -# End of file diff --git a/libobj/examples/cube.obj b/libobj/examples/cube.obj deleted file mode 100644 index c569712..0000000 --- a/libobj/examples/cube.obj +++ /dev/null @@ -1,16 +0,0 @@ -# This is a cube that measures two units on each side. Each vertex is -# shared by three different faces. -v 0.000000 2.000000 2.000000 -v 0.000000 0.000000 2.000000 -v 2.000000 0.000000 2.000000 -v 2.000000 2.000000 2.000000 -v 0.000000 2.000000 0.000000 -v 0.000000 0.000000 0.000000 -v 2.000000 0.000000 0.000000 -v 2.000000 2.000000 0.000000 -f 1 2 3 4 -f 8 7 6 5 -f 4 3 7 8 -f 5 1 4 8 -f 5 6 2 1 -f 2 6 7 3 diff --git a/libobj/examples/diamond.obj b/libobj/examples/diamond.obj deleted file mode 100644 index 519f3ac..0000000 --- a/libobj/examples/diamond.obj +++ /dev/null @@ -1,20 +0,0 @@ -# diamond.obj - -g Object001 - -v 0.000000E+00 0.000000E+00 78.0000 -v 45.0000 45.0000 0.000000E+00 -v 45.0000 -45.0000 0.000000E+00 -v -45.0000 -45.0000 0.000000E+00 -v -45.0000 45.0000 0.000000E+00 -v 0.000000E+00 0.000000E+00 -78.0000 - -f 1 2 3 -f 1 3 4 -f 1 4 5 -f 1 5 2 -f 6 5 4 -f 6 4 3 -f 6 3 2 -f 6 2 1 -f 6 1 5 diff --git a/libobj/examples/lamp.obj b/libobj/examples/lamp.obj deleted file mode 100644 index d8023e1..0000000 --- a/libobj/examples/lamp.obj +++ /dev/null @@ -1,8863 +0,0 @@ -# Viewpoint Datalabs International, Inc. Copyright 1996 - - -mtllib ./vp.mtl - -g -v 0.000000 8.407028 0.000000 -v 0.000000 8.380042 -0.204985 -v 0.053054 8.380042 -0.198000 -v 0.102492 8.380042 -0.177522 -v 0.144946 8.380042 -0.144946 -v 0.177522 8.380042 -0.102492 -v 0.198000 8.380042 -0.053054 -v 0.204985 8.380042 0.000000 -v 0.198000 8.380042 0.053054 -v 0.177522 8.380042 0.102492 -v 0.144946 8.380042 0.144946 -v 0.102493 8.380042 0.177522 -v 0.053054 8.380042 0.198000 -v 0.000000 8.380042 0.204985 -v -0.053054 8.380042 0.198000 -v -0.102492 8.380042 0.177522 -v -0.144946 8.380042 0.144946 -v -0.177522 8.380042 0.102493 -v -0.198000 8.380042 0.053054 -v -0.204985 8.380042 0.000000 -v -0.198000 8.380042 -0.053054 -v -0.177522 8.380042 -0.102492 -v -0.144946 8.380042 -0.144946 -v -0.102493 8.380042 -0.177522 -v -0.053054 8.380042 -0.198000 -v 0.000000 8.300921 -0.396000 -v 0.102492 8.300921 -0.382507 -v 0.198000 8.300921 -0.342946 -v 0.280014 8.300921 -0.280014 -v 0.342946 8.300921 -0.198000 -v 0.382506 8.300921 -0.102493 -v 0.396000 8.300921 0.000000 -v 0.382507 8.300921 0.102492 -v 0.342946 8.300921 0.198000 -v 0.280015 8.300921 0.280014 -v 0.198000 8.300921 0.342946 -v 0.102493 8.300921 0.382506 -v 0.000000 8.300921 0.396000 -v -0.102492 8.300921 0.382507 -v -0.197999 8.300921 0.342946 -v -0.280014 8.300921 0.280015 -v -0.342946 8.300921 0.198000 -v -0.382506 8.300921 0.102493 -v -0.396000 8.300921 0.000000 -v -0.382507 8.300921 -0.102492 -v -0.342946 8.300921 -0.197999 -v -0.280015 8.300921 -0.280014 -v -0.198001 8.300921 -0.342946 -v -0.102493 8.300921 -0.382506 -v 0.000000 8.175057 -0.560028 -v 0.144946 8.175057 -0.540946 -v 0.280014 8.175057 -0.484999 -v 0.396000 8.175057 -0.396000 -v 0.484999 8.175057 -0.280015 -v 0.540946 8.175057 -0.144947 -v 0.560028 8.175057 0.000000 -v 0.540946 8.175057 0.144945 -v 0.484999 8.175057 0.280014 -v 0.396000 8.175057 0.395999 -v 0.280015 8.175057 0.484999 -v 0.144947 8.175057 0.540946 -v 0.000000 8.175057 0.560028 -v -0.144945 8.175057 0.540946 -v -0.280014 8.175057 0.484999 -v -0.395999 8.175057 0.396001 -v -0.484998 8.175057 0.280015 -v -0.540946 8.175057 0.144947 -v -0.560028 8.175057 0.000000 -v -0.540946 8.175057 -0.144945 -v -0.484999 8.175057 -0.280013 -v -0.396001 8.175057 -0.395999 -v -0.280015 8.175057 -0.484998 -v -0.144947 8.175057 -0.540946 -v 0.000000 8.011028 -0.685892 -v 0.177521 8.011028 -0.662521 -v 0.342946 8.011028 -0.594000 -v 0.484999 8.011028 -0.484999 -v 0.594000 8.011028 -0.342947 -v 0.662521 8.011028 -0.177523 -v 0.685892 8.011028 0.000000 -v 0.662521 8.011028 0.177521 -v 0.594000 8.011028 0.342945 -v 0.484999 8.011028 0.484998 -v 0.342947 8.011028 0.594000 -v 0.177523 8.011028 0.662521 -v 0.000000 8.011028 0.685892 -v -0.177521 8.011028 0.662521 -v -0.342945 8.011028 0.594000 -v -0.484998 8.011028 0.485000 -v -0.593999 8.011028 0.342947 -v -0.662521 8.011028 0.177523 -v -0.685892 8.011028 0.000001 -v -0.662521 8.011028 -0.177521 -v -0.594001 8.011028 -0.342945 -v -0.485000 8.011028 -0.484998 -v -0.342947 8.011028 -0.593999 -v -0.177523 8.011028 -0.662521 -v 0.000000 7.820013 -0.765013 -v 0.197999 7.820013 -0.738946 -v 0.382506 7.820013 -0.662521 -v 0.540946 7.820013 -0.540946 -v 0.662521 7.820013 -0.382507 -v 0.738946 7.820013 -0.198001 -v 0.765013 7.820013 0.000000 -v 0.738946 7.820013 0.197999 -v 0.662521 7.820013 0.382506 -v 0.540947 7.820013 0.540945 -v 0.382507 7.820013 0.662520 -v 0.198001 7.820013 0.738946 -v 0.000001 7.820013 0.765013 -v -0.197999 7.820013 0.738946 -v -0.382506 7.820013 0.662521 -v -0.540945 7.820013 0.540947 -v -0.662520 7.820013 0.382508 -v -0.738946 7.820013 0.198001 -v -0.765013 7.820013 0.000001 -v -0.738946 7.820013 -0.197999 -v -0.662522 7.820013 -0.382505 -v -0.540947 7.820013 -0.540945 -v -0.382508 7.820013 -0.662520 -v -0.198001 7.820013 -0.738946 -v 0.000000 7.615029 -0.792000 -v 0.204984 7.615029 -0.765013 -v 0.395999 7.615029 -0.685892 -v 0.560028 7.615029 -0.560029 -v 0.685892 7.615029 -0.396001 -v 0.765013 7.615029 -0.204985 -v 0.792000 7.615029 0.000000 -v 0.765013 7.615029 0.204984 -v 0.685893 7.615029 0.395999 -v 0.560029 7.615029 0.560028 -v 0.396001 7.615029 0.685892 -v 0.204986 7.615029 0.765013 -v 0.000001 7.615029 0.792000 -v -0.204984 7.615029 0.765014 -v -0.395999 7.615029 0.685893 -v -0.560028 7.615029 0.560029 -v -0.685892 7.615029 0.396001 -v -0.765013 7.615029 0.204986 -v -0.792000 7.615029 0.000001 -v -0.765014 7.615029 -0.204983 -v -0.685893 7.615029 -0.395999 -v -0.560030 7.615029 -0.560028 -v -0.396001 7.615029 -0.685891 -v -0.204986 7.615029 -0.765013 -v 0.000000 7.410044 -0.765013 -v 0.198000 7.410044 -0.738946 -v 0.382506 7.410044 -0.662521 -v 0.540946 7.410044 -0.540947 -v 0.662521 7.410044 -0.382507 -v 0.738946 7.410044 -0.198001 -v 0.765013 7.410044 0.000000 -v 0.738946 7.410044 0.197999 -v 0.662521 7.410044 0.382506 -v 0.540947 7.410044 0.540945 -v 0.382507 7.410044 0.662521 -v 0.198001 7.410044 0.738946 -v 0.000001 7.410044 0.765013 -v -0.197999 7.410044 0.738946 -v -0.382506 7.410044 0.662522 -v -0.540945 7.410044 0.540947 -v -0.662520 7.410044 0.382508 -v -0.738946 7.410044 0.198001 -v -0.765013 7.410044 0.000001 -v -0.738946 7.410044 -0.197999 -v -0.662522 7.410044 -0.382506 -v -0.540947 7.410044 -0.540945 -v -0.382508 7.410044 -0.662520 -v -0.198001 7.410044 -0.738946 -v 0.000000 7.219029 -0.685892 -v 0.177522 7.219029 -0.662521 -v 0.342946 7.219029 -0.594000 -v 0.484999 7.219029 -0.485000 -v 0.594000 7.219029 -0.342947 -v 0.662521 7.219029 -0.177523 -v 0.685892 7.219029 0.000000 -v 0.662521 7.219029 0.177521 -v 0.594001 7.219029 0.342946 -v 0.485000 7.219029 0.484999 -v 0.342947 7.219029 0.594000 -v 0.177523 7.219029 0.662521 -v 0.000000 7.219029 0.685892 -v -0.177521 7.219029 0.662521 -v -0.342945 7.219029 0.594001 -v -0.484998 7.219029 0.485000 -v -0.594000 7.219029 0.342947 -v -0.662521 7.219029 0.177523 -v -0.685892 7.219029 0.000001 -v -0.662521 7.219029 -0.177521 -v -0.594001 7.219029 -0.342945 -v -0.485000 7.219029 -0.484998 -v -0.342947 7.219029 -0.594000 -v -0.177523 7.219029 -0.662521 -v 0.000000 7.055001 -0.560029 -v 0.144946 7.055001 -0.540946 -v 0.280014 7.055001 -0.484999 -v 0.396000 7.055001 -0.396001 -v 0.484999 7.055001 -0.280015 -v 0.540946 7.055001 -0.144947 -v 0.560029 7.055001 0.000000 -v 0.540946 7.055001 0.144946 -v 0.485000 7.055001 0.280014 -v 0.396001 7.055001 0.396000 -v 0.280015 7.055001 0.484999 -v 0.144947 7.055001 0.540946 -v 0.000000 7.055001 0.560029 -v -0.144945 7.055001 0.540947 -v -0.280014 7.055001 0.485000 -v -0.396000 7.055001 0.396001 -v -0.484999 7.055001 0.280015 -v -0.540946 7.055001 0.144947 -v -0.560029 7.055001 0.000000 -v -0.540947 7.055001 -0.144945 -v -0.485000 7.055001 -0.280014 -v -0.396001 7.055001 -0.395999 -v -0.280015 7.055001 -0.484999 -v -0.144947 7.055001 -0.540946 -v 0.000000 6.929136 -0.396000 -v 0.102492 6.929136 -0.382507 -v 0.198000 6.929136 -0.342947 -v 0.280014 6.929136 -0.280015 -v 0.342946 6.929136 -0.198000 -v 0.382507 6.929136 -0.102493 -v 0.396000 6.929136 0.000000 -v 0.382507 6.929136 0.102492 -v 0.342947 6.929136 0.198000 -v 0.280015 6.929136 0.280014 -v 0.198001 6.929136 0.342946 -v 0.102493 6.929136 0.382507 -v 0.000000 6.929136 0.396000 -v -0.102492 6.929136 0.382507 -v -0.198000 6.929136 0.342947 -v -0.280014 6.929136 0.280015 -v -0.342946 6.929136 0.198001 -v -0.382507 6.929136 0.102493 -v -0.396000 6.929136 0.000000 -v -0.382507 6.929136 -0.102492 -v -0.342947 6.929136 -0.198000 -v -0.280015 6.929136 -0.280014 -v -0.198001 6.929136 -0.342946 -v -0.102493 6.929136 -0.382507 -v 0.000000 6.850015 -0.204985 -v 0.053054 6.850015 -0.198000 -v 0.102492 6.850015 -0.177522 -v 0.144946 6.850015 -0.144947 -v 0.177522 6.850015 -0.102493 -v 0.198000 6.850015 -0.053054 -v 0.204985 6.850015 0.000000 -v 0.198001 6.850015 0.053054 -v 0.177522 6.850015 0.102492 -v 0.144947 6.850015 0.144946 -v 0.102493 6.850015 0.177522 -v 0.053054 6.850015 0.198000 -v 0.000000 6.850015 0.204985 -v -0.053054 6.850015 0.198001 -v -0.102492 6.850015 0.177522 -v -0.144946 6.850015 0.144947 -v -0.177522 6.850015 0.102493 -v -0.198000 6.850015 0.053054 -v -0.204985 6.850015 0.000000 -v -0.198001 6.850015 -0.053054 -v -0.177523 6.850015 -0.102492 -v -0.144947 6.850015 -0.144946 -v -0.102493 6.850015 -0.177522 -v -0.053054 6.850015 -0.198000 -v 0.000000 6.823029 0.000000 -v 1.871946 7.231124 0.000000 -v 1.924999 7.204138 -0.198000 -v 1.871946 7.204138 -0.204985 -v 1.974438 7.204138 -0.177522 -v 2.016892 7.204138 -0.144946 -v 2.049468 7.204138 -0.102492 -v 2.069946 7.204138 -0.053054 -v 2.076930 7.204138 0.000000 -v 2.069946 7.204138 0.053054 -v 2.049468 7.204138 0.102492 -v 2.016892 7.204138 0.144946 -v 1.974438 7.204138 0.177522 -v 1.925000 7.204138 0.198000 -v 1.871946 7.204138 0.204985 -v 1.818892 7.204138 0.198000 -v 1.769454 7.204138 0.177522 -v 1.727000 7.204138 0.144946 -v 1.694424 7.204138 0.102493 -v 1.673946 7.204138 0.053054 -v 1.666961 7.204138 0.000000 -v 1.673946 7.204138 -0.053054 -v 1.694424 7.204138 -0.102492 -v 1.726999 7.204138 -0.144946 -v 1.769453 7.204138 -0.177522 -v 1.818891 7.204138 -0.198000 -v 1.974438 7.125016 -0.382507 -v 1.871946 7.125016 -0.396000 -v 2.069945 7.125016 -0.342946 -v 2.151960 7.125016 -0.280014 -v 2.214891 7.125016 -0.198000 -v 2.254452 7.125016 -0.102493 -v 2.267946 7.125016 0.000000 -v 2.254452 7.125016 0.102492 -v 2.214892 7.125016 0.198000 -v 2.151960 7.125016 0.280014 -v 2.069946 7.125016 0.342946 -v 1.974439 7.125016 0.382506 -v 1.871946 7.125016 0.396000 -v 1.769454 7.125016 0.382507 -v 1.673946 7.125016 0.342946 -v 1.591932 7.125016 0.280015 -v 1.529000 7.125016 0.198000 -v 1.489439 7.125016 0.102493 -v 1.475946 7.125016 0.000000 -v 1.489439 7.125016 -0.102492 -v 1.528999 7.125016 -0.197999 -v 1.591931 7.125016 -0.280014 -v 1.673945 7.125016 -0.342946 -v 1.769453 7.125016 -0.382506 -v 2.016891 6.999153 -0.540946 -v 1.871945 6.999153 -0.560028 -v 2.151960 6.999153 -0.484999 -v 2.267945 6.999153 -0.396000 -v 2.356944 6.999153 -0.280015 -v 2.412892 6.999153 -0.144947 -v 2.431974 6.999153 0.000000 -v 2.412892 6.999153 0.144945 -v 2.356945 6.999153 0.280014 -v 2.267946 6.999153 0.395999 -v 2.151961 6.999153 0.484999 -v 2.016892 6.999153 0.540946 -v 1.871946 6.999153 0.560028 -v 1.727000 6.999153 0.540946 -v 1.591932 6.999153 0.484999 -v 1.475946 6.999153 0.396001 -v 1.386947 6.999153 0.280015 -v 1.331000 6.999153 0.144947 -v 1.311917 6.999153 0.000000 -v 1.330999 6.999153 -0.144945 -v 1.386946 6.999153 -0.280013 -v 1.475945 6.999153 -0.395999 -v 1.591931 6.999153 -0.484998 -v 1.726999 6.999153 -0.540946 -v 2.049467 6.835124 -0.662521 -v 1.871945 6.835124 -0.685892 -v 2.214891 6.835124 -0.594000 -v 2.356944 6.835124 -0.484999 -v 2.465945 6.835124 -0.342947 -v 2.534467 6.835124 -0.177523 -v 2.557838 6.835124 0.000000 -v 2.534467 6.835124 0.177521 -v 2.465946 6.835124 0.342945 -v 2.356945 6.835124 0.484998 -v 2.214892 6.835124 0.594000 -v 2.049469 6.835124 0.662521 -v 1.871947 6.835124 0.685892 -v 1.694425 6.835124 0.662521 -v 1.529001 6.835124 0.594000 -v 1.386948 6.835124 0.485000 -v 1.277946 6.835124 0.342947 -v 1.209425 6.835124 0.177523 -v 1.186054 6.835124 0.000001 -v 1.209425 6.835124 -0.177521 -v 1.277945 6.835124 -0.342945 -v 1.386946 6.835124 -0.484998 -v 1.528999 6.835124 -0.593999 -v 1.694423 6.835124 -0.662521 -v 2.069945 6.644109 -0.738946 -v 1.871945 6.644109 -0.765013 -v 2.254452 6.644109 -0.662521 -v 2.412891 6.644109 -0.540946 -v 2.534466 6.644109 -0.382507 -v 2.610892 6.644109 -0.198001 -v 2.636959 6.644109 0.000000 -v 2.610892 6.644109 0.197999 -v 2.534467 6.644109 0.382506 -v 2.412892 6.644109 0.540945 -v 2.254453 6.644109 0.662520 -v 2.069947 6.644109 0.738946 -v 1.871947 6.644109 0.765013 -v 1.673947 6.644109 0.738946 -v 1.489440 6.644109 0.662521 -v 1.331001 6.644109 0.540947 -v 1.209425 6.644109 0.382508 -v 1.133000 6.644109 0.198001 -v 1.106933 6.644109 0.000001 -v 1.132999 6.644109 -0.197999 -v 1.209424 6.644109 -0.382505 -v 1.330999 6.644109 -0.540945 -v 1.489438 6.644109 -0.662520 -v 1.673944 6.644109 -0.738946 -v 2.076930 6.439125 -0.765013 -v 1.871945 6.439125 -0.792000 -v 2.267945 6.439125 -0.685892 -v 2.431974 6.439125 -0.560029 -v 2.557837 6.439125 -0.396001 -v 2.636959 6.439125 -0.204985 -v 2.663946 6.439125 0.000000 -v 2.636959 6.439125 0.204984 -v 2.557838 6.439125 0.395999 -v 2.431975 6.439125 0.560028 -v 2.267946 6.439125 0.685892 -v 2.076931 6.439125 0.765013 -v 1.871947 6.439125 0.792000 -v 1.666962 6.439125 0.765014 -v 1.475947 6.439125 0.685893 -v 1.311918 6.439125 0.560029 -v 1.186054 6.439125 0.396001 -v 1.106933 6.439125 0.204986 -v 1.079946 6.439125 0.000001 -v 1.106932 6.439125 -0.204983 -v 1.186053 6.439125 -0.395999 -v 1.311916 6.439125 -0.560028 -v 1.475945 6.439125 -0.685891 -v 1.666960 6.439125 -0.765013 -v 2.069945 6.234140 -0.738946 -v 1.871945 6.234140 -0.765013 -v 2.254452 6.234140 -0.662521 -v 2.412891 6.234140 -0.540947 -v 2.534466 6.234140 -0.382507 -v 2.610892 6.234140 -0.198001 -v 2.636959 6.234140 0.000000 -v 2.610892 6.234140 0.197999 -v 2.534467 6.234140 0.382506 -v 2.412892 6.234140 0.540945 -v 2.254453 6.234140 0.662521 -v 2.069947 6.234140 0.738946 -v 1.871947 6.234140 0.765013 -v 1.673947 6.234140 0.738946 -v 1.489440 6.234140 0.662522 -v 1.331000 6.234140 0.540947 -v 1.209425 6.234140 0.382508 -v 1.133000 6.234140 0.198001 -v 1.106932 6.234140 0.000001 -v 1.132999 6.234140 -0.197999 -v 1.209424 6.234140 -0.382506 -v 1.330999 6.234140 -0.540945 -v 1.489438 6.234140 -0.662520 -v 1.673944 6.234140 -0.738946 -v 2.049467 6.043124 -0.662521 -v 1.871945 6.043124 -0.685892 -v 2.214891 6.043124 -0.594000 -v 2.356945 6.043124 -0.485000 -v 2.465946 6.043124 -0.342947 -v 2.534467 6.043124 -0.177523 -v 2.557838 6.043124 0.000000 -v 2.534467 6.043124 0.177521 -v 2.465946 6.043124 0.342946 -v 2.356946 6.043124 0.484999 -v 2.214893 6.043124 0.594000 -v 2.049469 6.043124 0.662521 -v 1.871947 6.043124 0.685892 -v 1.694425 6.043124 0.662521 -v 1.529000 6.043124 0.594001 -v 1.386947 6.043124 0.485000 -v 1.277946 6.043124 0.342947 -v 1.209425 6.043124 0.177523 -v 1.186054 6.043124 0.000001 -v 1.209424 6.043124 -0.177521 -v 1.277945 6.043124 -0.342945 -v 1.386946 6.043124 -0.484998 -v 1.528998 6.043124 -0.594000 -v 1.694422 6.043124 -0.662521 -v 2.016891 5.879096 -0.540946 -v 1.871945 5.879096 -0.560029 -v 2.151960 5.879096 -0.484999 -v 2.267946 5.879096 -0.396001 -v 2.356945 5.879096 -0.280015 -v 2.412892 5.879096 -0.144947 -v 2.431975 5.879096 0.000000 -v 2.412892 5.879096 0.144946 -v 2.356945 5.879096 0.280014 -v 2.267946 5.879096 0.396000 -v 2.151961 5.879096 0.484999 -v 2.016892 5.879096 0.540946 -v 1.871946 5.879096 0.560029 -v 1.727000 5.879096 0.540947 -v 1.591932 5.879096 0.485000 -v 1.475946 5.879096 0.396001 -v 1.386947 5.879096 0.280015 -v 1.331000 5.879096 0.144947 -v 1.311917 5.879096 0.000000 -v 1.330999 5.879096 -0.144945 -v 1.386946 5.879096 -0.280014 -v 1.475945 5.879096 -0.395999 -v 1.591930 5.879096 -0.484999 -v 1.726999 5.879096 -0.540946 -v 1.974438 5.753232 -0.382507 -v 1.871946 5.753232 -0.396000 -v 2.069946 5.753232 -0.342947 -v 2.151960 5.753232 -0.280015 -v 2.214892 5.753232 -0.198000 -v 2.254453 5.753232 -0.102493 -v 2.267946 5.753232 0.000000 -v 2.254453 5.753232 0.102492 -v 2.214892 5.753232 0.198000 -v 2.151961 5.753232 0.280014 -v 2.069946 5.753232 0.342946 -v 1.974439 5.753232 0.382507 -v 1.871946 5.753232 0.396000 -v 1.769454 5.753232 0.382507 -v 1.673946 5.753232 0.342947 -v 1.591932 5.753232 0.280015 -v 1.529000 5.753232 0.198001 -v 1.489439 5.753232 0.102493 -v 1.475945 5.753232 0.000000 -v 1.489439 5.753232 -0.102492 -v 1.528999 5.753232 -0.198000 -v 1.591931 5.753232 -0.280014 -v 1.673945 5.753232 -0.342946 -v 1.769453 5.753232 -0.382507 -v 1.925000 5.674111 -0.198000 -v 1.871946 5.674111 -0.204985 -v 1.974438 5.674111 -0.177522 -v 2.016892 5.674111 -0.144947 -v 2.049468 5.674111 -0.102493 -v 2.069946 5.674111 -0.053054 -v 2.076931 5.674111 0.000000 -v 2.069946 5.674111 0.053054 -v 2.049468 5.674111 0.102492 -v 2.016892 5.674111 0.144946 -v 1.974439 5.674111 0.177522 -v 1.925000 5.674111 0.198000 -v 1.871946 5.674111 0.204985 -v 1.818892 5.674111 0.198001 -v 1.769453 5.674111 0.177522 -v 1.727000 5.674111 0.144947 -v 1.694424 5.674111 0.102493 -v 1.673945 5.674111 0.053054 -v 1.666961 5.674111 0.000000 -v 1.673945 5.674111 -0.053054 -v 1.694423 5.674111 -0.102492 -v 1.726999 5.674111 -0.144946 -v 1.769453 5.674111 -0.177522 -v 1.818891 5.674111 -0.198000 -v 1.871946 5.647125 0.000000 -v 0.309896 5.515944 -0.041455 -v 0.345870 5.486310 -0.041455 -v 0.424286 5.504072 -0.093361 -v 0.418141 5.501982 -0.113838 -v 0.396498 5.533141 -0.113838 -v 0.411730 5.534671 -0.093361 -v 0.454673 5.520028 -0.112858 -v 0.438094 5.507370 -0.092381 -v 0.425538 5.537968 -0.092381 -v 0.443761 5.538089 -0.112858 -v 0.453302 5.457216 -0.089738 -v 0.441317 5.475670 -0.110215 -v 0.481455 5.465744 -0.089738 -v 0.606229 5.515820 -0.123867 -v 0.602834 5.475719 -0.123867 -v 0.579542 5.483232 -0.123867 -v 0.582807 5.538704 -0.123867 -v 0.445729 5.233723 -0.123867 -v 0.821135 5.315813 -0.123867 -v 1.000863 5.651269 -0.123867 -v 0.998508 5.634236 -0.123867 -v 0.802170 5.613324 -0.123867 -v 0.877842 5.588543 -0.123867 -v 0.948260 5.556879 -0.123867 -v 0.919384 5.572126 -0.123867 -v 0.887220 5.368674 -0.123867 -v 0.394917 5.657471 -0.123867 -v 0.406946 5.503573 -0.123867 -v 0.381454 5.531240 -0.123867 -v 0.531150 5.719302 -0.123867 -v 0.736686 5.605947 -0.123867 -v 0.458223 5.412295 -0.113265 -v 0.428678 5.362868 -0.113265 -v 0.402774 5.356741 -0.092786 -v 0.439946 5.417790 -0.092786 -v 0.403944 5.274145 -0.113282 -v 0.376874 5.259162 -0.092804 -v 0.416054 5.201977 -0.113084 -v 0.399372 5.179461 -0.092606 -v 0.480014 5.144361 -0.113117 -v 0.478291 5.118040 -0.092638 -v 0.527722 5.136270 -0.113282 -v 0.573570 5.146466 -0.113282 -v 0.582210 5.122450 -0.092804 -v 0.525999 5.109948 -0.092804 -v 0.610153 5.170753 -0.112581 -v 0.623349 5.197310 -0.112581 -v 0.646468 5.194917 -0.092102 -v 0.618793 5.146736 -0.092102 -v 0.623135 5.227768 -0.112810 -v 0.606183 5.243670 -0.112810 -v 0.622495 5.253418 -0.092331 -v 0.646254 5.225375 -0.092331 -v 0.570921 5.255943 -0.114459 -v 0.513188 5.262099 -0.114459 -v 0.550742 5.267126 -0.093982 -v 0.587233 5.265692 -0.093982 -v 0.509146 5.282185 -0.114400 -v 0.560599 5.325606 -0.114400 -v 0.575304 5.316366 -0.093922 -v 0.546701 5.287212 -0.093922 -v 0.593234 5.371274 -0.113305 -v 0.607939 5.362035 -0.092826 -v 0.625473 5.470294 -0.113282 -v 0.628868 5.510393 -0.113282 -v 0.649330 5.520258 -0.092804 -v 0.645166 5.471096 -0.092804 -v 0.615937 5.547515 -0.112902 -v 0.592514 5.570402 -0.112902 -v 0.599770 5.592010 -0.092425 -v 0.636398 5.557381 -0.092425 -v 0.536419 5.601588 -0.113282 -v 0.537775 5.625658 -0.092804 -v 0.502804 5.605110 -0.112799 -v 0.504160 5.629180 -0.092322 -v 0.433839 5.604552 -0.091985 -v 0.450710 5.583147 -0.112462 -v 0.482219 5.499254 -0.114462 -v 0.530931 5.473194 -0.114462 -v 0.499634 5.474578 -0.093983 -v 0.465640 5.486594 -0.093983 -v 0.534608 5.457798 -0.114274 -v 0.493435 5.445159 -0.114274 -v 0.475158 5.450655 -0.093796 -v 0.503310 5.459183 -0.093796 -v 0.421121 5.612298 -0.093871 -v 0.418937 5.628274 -0.114350 -v 0.506708 5.666801 -0.113882 -v 0.501502 5.648447 -0.093404 -v 0.550349 5.662285 -0.114218 -v 0.545143 5.643930 -0.093740 -v 0.629492 5.612260 -0.113562 -v 0.664060 5.578382 -0.113562 -v 0.650154 5.569179 -0.093084 -v 0.613526 5.603806 -0.093084 -v 0.696662 5.549114 -0.114802 -v 0.682757 5.539909 -0.094323 -v 0.760234 5.486811 -0.113282 -v 0.730038 5.495645 -0.092804 -v 0.810358 5.424101 -0.113282 -v 0.786797 5.426218 -0.092804 -v 0.819314 5.365025 -0.113282 -v 0.797526 5.360498 -0.092804 -v 0.802562 5.320957 -0.113282 -v 0.788883 5.308403 -0.113282 -v 0.762682 5.295666 -0.092804 -v 0.779451 5.311057 -0.092804 -v 0.794186 5.297959 -0.111517 -v 0.804707 5.297311 -0.111517 -v 0.767983 5.285222 -0.091038 -v 0.836627 5.301105 -0.113282 -v 0.843061 5.281743 -0.092804 -v 0.896286 5.324542 -0.113282 -v 0.909790 5.306975 -0.092804 -v 0.928906 5.373504 -0.113282 -v 0.946826 5.360417 -0.092804 -v 0.926206 5.448348 -0.113700 -v 0.907602 5.497252 -0.113700 -v 0.930586 5.489536 -0.093222 -v 0.945004 5.442576 -0.093222 -v 0.919570 5.525727 -0.113282 -v 0.942554 5.518014 -0.092804 -v 0.984745 5.550106 -0.113325 -v 1.015682 5.544410 -0.092846 -v 1.023436 5.590175 -0.113106 -v 1.049458 5.591613 -0.092627 -v 1.029258 5.632510 -0.113424 -v 1.018718 5.655898 -0.113424 -v 1.039579 5.667114 -0.092946 -v 1.051585 5.640802 -0.092946 -v 1.005948 5.675226 -0.110215 -v 0.995631 5.701816 -0.089738 -v 1.026809 5.686442 -0.089738 -v 0.993280 5.668571 -0.114556 -v 0.978032 5.657892 -0.114556 -v 0.980578 5.679368 -0.094078 -v 0.982963 5.695159 -0.094078 -v 0.927556 5.636914 -0.113282 -v 0.923474 5.656149 -0.092804 -v 0.877212 5.640411 -0.113949 -v 0.802427 5.662618 -0.113949 -v 0.810786 5.676223 -0.093471 -v 0.873130 5.659646 -0.093471 -v 0.539941 5.773489 -0.113282 -v 0.526252 5.797686 -0.092804 -v 0.457298 5.767262 -0.113282 -v 0.434858 5.792035 -0.092804 -v 0.382350 5.721624 -0.113282 -v 0.350880 5.742265 -0.092804 -v 0.342812 5.652568 -0.113282 -v 0.306206 5.666270 -0.092804 -v 0.335251 5.577381 -0.113282 -v 0.296974 5.582496 -0.092804 -v 0.362685 5.519274 -0.113282 -v 0.392027 5.495102 -0.113282 -v 0.361985 5.488284 -0.092804 -v 0.326010 5.517920 -0.092804 -v 0.417923 5.476707 -0.110215 -v 0.429909 5.458251 -0.089737 -v 0.387881 5.469887 -0.089737 -v 0.439370 5.482518 -0.110215 -v 0.445514 5.484608 -0.089738 -v 0.479508 5.472592 -0.089738 -v 0.440389 5.273817 -0.123867 -v 0.802856 5.311946 -0.123867 -v 0.470522 5.538355 -0.123867 -v 0.479066 5.555797 -0.123867 -v 0.530146 5.494235 -0.123867 -v 0.481434 5.520294 -0.123867 -v 0.527090 5.570638 -0.123867 -v 0.549926 5.504280 -0.123867 -v 0.591474 5.219917 -0.123867 -v 0.547534 5.217666 -0.123867 -v 0.574522 5.235818 -0.123867 -v 0.510551 5.186327 -0.123867 -v 0.856916 5.339489 -0.123867 -v 0.785386 5.561415 -0.123867 -v 0.831140 5.511280 -0.123867 -v 0.970352 5.590698 -0.123867 -v 0.874926 5.424644 -0.123867 -v 0.861703 5.463790 -0.123867 -v 0.385730 5.608974 -0.123867 -v 0.490694 5.715039 -0.123867 -v 0.541191 5.438536 -0.123867 -v 0.564482 5.431025 -0.123867 -v 0.470473 5.376470 -0.123867 -v 0.500018 5.425898 -0.123867 -v 0.545513 5.349375 -0.123867 -v 0.494061 5.305954 -0.123867 -v 0.426899 5.454040 -0.000178 -v 0.384872 5.465675 -0.000178 -v 0.392157 5.356647 -0.000178 -v 0.429328 5.417697 -0.000178 -v 0.364079 5.254062 -0.000178 -v 0.389204 5.170083 -0.000178 -v 0.474331 5.106178 -0.000178 -v 0.583881 5.110291 -0.000178 -v 0.527670 5.097790 -0.000178 -v 0.653498 5.188813 -0.000178 -v 0.625824 5.140632 -0.000178 -v 0.631697 5.254966 -0.000178 -v 0.655456 5.226924 -0.000178 -v 0.565082 5.271138 -0.000178 -v 0.601572 5.269704 -0.000178 -v 0.589741 5.315586 -0.000178 -v 0.561138 5.286431 -0.000178 -v 0.616228 5.359894 -0.000178 -v 0.659029 5.522835 -0.000178 -v 0.654866 5.473672 -0.000178 -v 0.670598 5.539687 -0.000178 -v 0.717054 5.498289 -0.000178 -v 0.775843 5.425636 -0.000178 -v 0.786682 5.357014 -0.000178 -v 0.750770 5.290197 -0.000178 -v 0.767541 5.305588 -0.000178 -v 0.763965 5.278866 -0.000178 -v 0.847876 5.272824 -0.000178 -v 0.917379 5.299571 -0.000178 -v 0.955695 5.355863 -0.000178 -v 0.941216 5.485821 -0.000178 -v 0.955634 5.438861 -0.000178 -v 0.955578 5.514775 -0.000178 -v 1.029874 5.543750 -0.000178 -v 1.061003 5.594168 -0.000178 -v 1.050158 5.671900 -0.000178 -v 1.062163 5.645587 -0.000178 -v 0.997389 5.708117 -0.000178 -v 1.028566 5.692743 -0.000178 -v 0.978222 5.692117 -0.000178 -v 0.980607 5.707908 -0.000178 -v 0.923102 5.665982 -0.000178 -v 0.811612 5.684768 -0.000178 -v 0.873955 5.668191 -0.000178 -v 0.517526 5.809513 -0.000178 -v 0.421837 5.803005 -0.000178 -v 0.334437 5.750560 -0.000178 -v 0.288120 5.670815 -0.000178 -v 0.278871 5.583405 -0.000178 -v 0.345870 5.486310 -0.000178 -v 0.309896 5.515944 -0.000178 -v 0.494061 5.305954 0.123511 -v 0.545513 5.349375 0.123511 -v 0.500018 5.425898 0.123511 -v 0.470473 5.376470 0.123511 -v 0.564482 5.431025 0.123511 -v 0.541191 5.438536 0.123511 -v 0.490694 5.715039 0.123511 -v 0.385730 5.608974 0.123511 -v 0.861703 5.463790 0.123511 -v 0.874926 5.424644 0.123511 -v 0.970352 5.590698 0.123511 -v 0.831140 5.511280 0.123511 -v 0.785386 5.561415 0.123511 -v 0.856916 5.339489 0.123511 -v 0.510551 5.186327 0.123511 -v 0.574522 5.235818 0.123511 -v 0.547534 5.217666 0.123511 -v 0.591474 5.219917 0.123511 -v 0.549926 5.504280 0.123511 -v 0.527090 5.570638 0.123511 -v 0.481434 5.520294 0.123511 -v 0.530146 5.494235 0.123511 -v 0.479066 5.555797 0.123511 -v 0.470522 5.538355 0.123511 -v 0.802856 5.311946 0.123511 -v 0.440389 5.273817 0.123511 -v 0.479508 5.472592 0.089382 -v 0.445514 5.484608 0.089382 -v 0.439370 5.482518 0.109859 -v 0.387881 5.469887 0.089381 -v 0.429909 5.458251 0.089381 -v 0.417923 5.476707 0.109859 -v 0.326010 5.517920 0.092448 -v 0.361985 5.488284 0.092448 -v 0.392027 5.495102 0.112926 -v 0.362685 5.519274 0.112926 -v 0.296974 5.582496 0.092448 -v 0.335251 5.577381 0.112926 -v 0.306206 5.666270 0.092448 -v 0.342812 5.652568 0.112926 -v 0.350880 5.742265 0.092448 -v 0.382350 5.721624 0.112926 -v 0.434858 5.792035 0.092448 -v 0.457298 5.767262 0.112926 -v 0.526252 5.797686 0.092448 -v 0.539941 5.773489 0.112926 -v 0.873130 5.659646 0.093115 -v 0.810786 5.676223 0.093115 -v 0.802427 5.662618 0.113593 -v 0.877212 5.640411 0.113593 -v 0.923474 5.656149 0.092448 -v 0.927556 5.636914 0.112926 -v 0.982963 5.695159 0.093722 -v 0.980578 5.679368 0.093722 -v 0.978032 5.657892 0.114200 -v 0.993280 5.668571 0.114200 -v 1.026809 5.686442 0.089382 -v 0.995631 5.701816 0.089382 -v 1.005948 5.675226 0.109859 -v 1.051585 5.640802 0.092590 -v 1.039579 5.667114 0.092590 -v 1.018718 5.655898 0.113068 -v 1.029258 5.632510 0.113068 -v 1.049458 5.591613 0.092271 -v 1.023436 5.590175 0.112750 -v 1.015682 5.544410 0.092490 -v 0.984745 5.550106 0.112969 -v 0.942554 5.518014 0.092448 -v 0.919570 5.525727 0.112926 -v 0.945004 5.442576 0.092866 -v 0.930586 5.489536 0.092866 -v 0.907602 5.497252 0.113344 -v 0.926206 5.448348 0.113344 -v 0.946826 5.360417 0.092448 -v 0.928906 5.373504 0.112926 -v 0.909790 5.306975 0.092448 -v 0.896286 5.324542 0.112926 -v 0.843061 5.281743 0.092448 -v 0.836627 5.301105 0.112926 -v 0.767983 5.285222 0.090682 -v 0.804707 5.297311 0.111161 -v 0.794186 5.297959 0.111161 -v 0.779451 5.311057 0.092448 -v 0.762682 5.295666 0.092448 -v 0.788883 5.308403 0.112926 -v 0.802562 5.320957 0.112926 -v 0.797526 5.360498 0.092448 -v 0.819314 5.365025 0.112926 -v 0.786797 5.426218 0.092448 -v 0.810358 5.424101 0.112926 -v 0.730038 5.495645 0.092448 -v 0.760234 5.486811 0.112926 -v 0.682757 5.539909 0.093967 -v 0.696662 5.549114 0.114446 -v 0.613526 5.603806 0.092728 -v 0.650154 5.569179 0.092728 -v 0.664060 5.578382 0.113206 -v 0.629492 5.612260 0.113206 -v 0.545143 5.643930 0.093384 -v 0.550349 5.662285 0.113862 -v 0.501502 5.648447 0.093048 -v 0.506708 5.666801 0.113526 -v 0.418937 5.628274 0.113994 -v 0.421121 5.612298 0.093515 -v 0.503310 5.459183 0.093440 -v 0.475158 5.450655 0.093440 -v 0.493435 5.445159 0.113918 -v 0.534608 5.457798 0.113918 -v 0.465640 5.486594 0.093627 -v 0.499634 5.474578 0.093627 -v 0.530931 5.473194 0.114106 -v 0.482219 5.499254 0.114106 -v 0.450710 5.583147 0.112106 -v 0.433839 5.604552 0.091629 -v 0.504160 5.629180 0.091966 -v 0.502804 5.605110 0.112443 -v 0.537775 5.625658 0.092448 -v 0.536419 5.601588 0.112926 -v 0.636398 5.557381 0.092069 -v 0.599770 5.592010 0.092069 -v 0.592514 5.570402 0.112546 -v 0.615937 5.547515 0.112546 -v 0.645166 5.471096 0.092448 -v 0.649330 5.520258 0.092448 -v 0.628868 5.510393 0.112926 -v 0.625473 5.470294 0.112926 -v 0.607939 5.362035 0.092470 -v 0.593234 5.371274 0.112949 -v 0.546701 5.287212 0.093566 -v 0.575304 5.316366 0.093566 -v 0.560599 5.325606 0.114044 -v 0.509146 5.282185 0.114044 -v 0.587233 5.265692 0.093626 -v 0.550742 5.267126 0.093626 -v 0.513188 5.262099 0.114103 -v 0.570921 5.255943 0.114103 -v 0.646254 5.225375 0.091975 -v 0.622495 5.253418 0.091975 -v 0.606183 5.243670 0.112454 -v 0.623135 5.227768 0.112454 -v 0.618793 5.146736 0.091746 -v 0.646468 5.194917 0.091746 -v 0.623349 5.197310 0.112225 -v 0.610153 5.170753 0.112225 -v 0.525999 5.109948 0.092448 -v 0.582210 5.122450 0.092448 -v 0.573570 5.146466 0.112926 -v 0.527722 5.136270 0.112926 -v 0.478291 5.118040 0.092282 -v 0.480014 5.144361 0.112761 -v 0.399372 5.179461 0.092250 -v 0.416054 5.201977 0.112728 -v 0.376874 5.259162 0.092448 -v 0.403944 5.274145 0.112926 -v 0.439946 5.417790 0.092430 -v 0.402774 5.356741 0.092430 -v 0.428678 5.362868 0.112909 -v 0.458223 5.412295 0.112909 -v 0.736686 5.605947 0.123511 -v 0.531150 5.719302 0.123511 -v 0.381454 5.531240 0.123511 -v 0.406946 5.503573 0.123511 -v 0.394917 5.657471 0.123511 -v 0.887220 5.368674 0.123511 -v 0.919384 5.572126 0.123511 -v 0.948260 5.556879 0.123511 -v 0.877842 5.588543 0.123511 -v 0.802170 5.613324 0.123511 -v 0.998508 5.634236 0.123511 -v 1.000863 5.651269 0.123511 -v 0.821135 5.315813 0.123511 -v 0.445729 5.233723 0.123511 -v 0.582807 5.538704 0.123511 -v 0.579542 5.483232 0.123511 -v 0.602834 5.475719 0.123511 -v 0.606229 5.515820 0.123511 -v 0.481455 5.465744 0.089382 -v 0.441317 5.475670 0.109859 -v 0.453302 5.457216 0.089382 -v 0.443761 5.538089 0.112502 -v 0.425538 5.537968 0.092025 -v 0.438094 5.507370 0.092025 -v 0.454673 5.520028 0.112502 -v 0.411730 5.534671 0.093005 -v 0.396498 5.533141 0.113482 -v 0.418141 5.501982 0.113482 -v 0.424286 5.504072 0.093005 -v 0.345870 5.486310 0.041099 -v 0.309896 5.515944 0.041099 -v 2.041447 5.441407 0.000016 -v 1.902422 5.157276 0.000038 -v 2.000598 5.267411 -0.000016 -v 0.827715 5.464243 -0.018954 -v 1.649046 5.069851 -0.032847 -v 1.776509 5.091953 -0.036823 -v 1.898296 5.160740 -0.040898 -v 1.994962 5.269464 -0.045596 -v 2.035121 5.441407 -0.048052 -v 2.109306 5.441407 -0.067926 -v 2.146399 5.479807 -0.077862 -v 2.084578 5.531006 -0.061302 -v 1.991847 5.569407 -0.036460 -v 2.041304 5.595008 -0.049708 -v 2.096942 5.665406 -0.064614 -v 2.127852 5.665406 -0.072894 -v 2.127852 5.697407 -0.072894 -v 0.830914 5.470578 -0.036093 -v 0.836005 5.480661 -0.050811 -v 1.643436 5.101691 -0.088847 -v 1.758191 5.123687 -0.100293 -v 1.866940 5.187052 -0.111804 -v 1.952135 5.285051 -0.124545 -v 1.987059 5.441407 -0.131312 -v 2.041368 5.441407 -0.185614 -v 2.068523 5.479807 -0.212766 -v 2.023265 5.531006 -0.167514 -v 1.955379 5.569407 -0.099636 -v 1.991585 5.595008 -0.135838 -v 2.032317 5.665406 -0.176565 -v 2.054945 5.665406 -0.199190 -v 2.054945 5.697407 -0.199190 -v 0.850366 5.509098 -0.069204 -v 1.633711 5.156838 -0.121179 -v 1.726459 5.178650 -0.136939 -v 1.812627 5.232628 -0.152744 -v 1.877953 5.312052 -0.170130 -v 1.903806 5.441407 -0.179386 -v 1.923689 5.441407 -0.253568 -v 1.933629 5.479807 -0.290659 -v 1.917061 5.531006 -0.228842 -v 1.892206 5.569407 -0.136114 -v 1.905463 5.595008 -0.185568 -v 1.920375 5.665406 -0.241205 -v 1.928659 5.665406 -0.272114 -v 1.928659 5.697407 -0.272114 -v 0.866946 5.541935 -0.069204 -v 1.622482 5.220516 -0.121182 -v 1.689813 5.242119 -0.136943 -v 1.749908 5.285254 -0.152750 -v 1.792290 5.343229 -0.170137 -v 1.807669 5.441407 -0.179394 -v 1.787799 5.441407 -0.253579 -v 1.777863 5.479807 -0.290672 -v 1.794421 5.531006 -0.228851 -v 1.819260 5.569407 -0.136119 -v 1.806012 5.595008 -0.185577 -v 1.791109 5.665406 -0.241215 -v 1.782831 5.665406 -0.272125 -v 1.782831 5.697407 -0.272125 -v 0.881305 5.570374 -0.050811 -v 1.612755 5.275664 -0.088854 -v 1.658075 5.297085 -0.100303 -v 1.695589 5.330832 -0.111818 -v 1.718102 5.370231 -0.124564 -v 1.724408 5.441407 -0.131333 -v 1.670107 5.441407 -0.185643 -v 1.642957 5.479807 -0.212799 -v 1.688207 5.531006 -0.167541 -v 1.756084 5.569407 -0.099651 -v 1.719882 5.595008 -0.135859 -v 1.679158 5.665406 -0.176592 -v 1.656531 5.665406 -0.199222 -v 1.656531 5.697407 -0.199222 -v 1.733685 5.569407 -0.070469 -v 0.889594 5.586796 -0.018954 -v 1.607137 5.307508 -0.032856 -v 1.639748 5.328821 -0.036838 -v 1.664223 5.357145 -0.040918 -v 1.675264 5.385822 -0.045622 -v 1.676331 5.441407 -0.048081 -v 1.602150 5.441407 -0.067966 -v 1.565059 5.479807 -0.077909 -v 1.626877 5.531006 -0.061338 -v 1.719603 5.569407 -0.036482 -v 1.670149 5.595008 -0.049738 -v 1.614513 5.665406 -0.064651 -v 1.583606 5.665406 -0.072936 -v 1.583606 5.697407 -0.072936 -v 0.889594 5.586796 0.017833 -v 1.607132 5.307511 0.031806 -v 1.639743 5.328824 0.036450 -v 1.664215 5.357148 0.040955 -v 1.675255 5.385825 0.045538 -v 1.676321 5.441407 0.048057 -v 1.602136 5.441407 0.067926 -v 1.565044 5.479807 0.077860 -v 1.626865 5.531006 0.061302 -v 1.719597 5.569407 0.036466 -v 1.670139 5.595008 0.049711 -v 1.614500 5.665406 0.064614 -v 1.583589 5.665406 0.072893 -v 1.583589 5.697407 0.072893 -v 1.691782 5.379807 0.088014 -v 0.881302 5.570380 0.049690 -v 1.612743 5.275675 0.087806 -v 1.658060 5.297095 0.099922 -v 1.695569 5.330838 0.111863 -v 1.718076 5.370237 0.124489 -v 1.724379 5.441407 0.131318 -v 1.670067 5.441407 0.185618 -v 1.642911 5.479807 0.212767 -v 1.688171 5.531006 0.167518 -v 1.756062 5.569407 0.099644 -v 1.719855 5.595008 0.135843 -v 1.679120 5.665406 0.176567 -v 1.656490 5.665406 0.199191 -v 1.656490 5.697407 0.199191 -v 0.866942 5.541945 0.068085 -v 1.622465 5.220531 0.120141 -v 1.689792 5.242130 0.136571 -v 1.749879 5.285265 0.152806 -v 1.792256 5.343235 0.170078 -v 1.807631 5.441407 0.179396 -v 1.787743 5.441407 0.253577 -v 1.777802 5.479807 0.290667 -v 1.794373 5.531006 0.228850 -v 1.819231 5.569407 0.136125 -v 1.805974 5.595008 0.185578 -v 1.791058 5.665406 0.241213 -v 1.782773 5.665406 0.272123 -v 1.782773 5.697407 0.272123 -v 0.850362 5.509104 0.068087 -v 1.633698 5.156850 0.120147 -v 1.726436 5.178664 0.136579 -v 1.812598 5.232639 0.152818 -v 1.877919 5.312058 0.170090 -v 1.903767 5.441407 0.179410 -v 1.923634 5.441407 0.253595 -v 1.933568 5.479807 0.290689 -v 1.917012 5.531006 0.228866 -v 1.892178 5.569407 0.136134 -v 1.905423 5.595008 0.185592 -v 1.920323 5.665406 0.241231 -v 1.928601 5.665406 0.272141 -v 1.928601 5.697407 0.272141 -v 0.836002 5.480664 0.049696 -v 1.643425 5.101700 0.087822 -v 1.758174 5.123696 0.099943 -v 1.866919 5.187061 0.111890 -v 1.952110 5.285056 0.124521 -v 1.987030 5.441407 0.131352 -v 2.041330 5.441407 0.185667 -v 2.068478 5.479807 0.212822 -v 2.023230 5.531006 0.167562 -v 1.955357 5.569407 0.099670 -v 1.991556 5.595008 0.135879 -v 2.032280 5.665406 0.176614 -v 2.054904 5.665406 0.199245 -v 2.054904 5.697407 0.199245 -v 1.977757 5.569407 0.070487 -v 0.827713 5.464243 0.017841 -v 1.649043 5.069855 0.031826 -v 1.776505 5.091958 0.036479 -v 1.898288 5.160743 0.040991 -v 1.994951 5.269464 0.045582 -v 2.035112 5.441407 0.048103 -v 2.109293 5.441407 0.067991 -v 2.146382 5.479807 0.077937 -v 2.084566 5.531006 0.061362 -v 1.991841 5.569407 0.036501 -v 2.041295 5.595008 0.049761 -v 2.096928 5.665406 0.064676 -v 2.127837 5.665406 0.072964 -v 2.127837 5.697407 0.072964 -v 1.480159 5.243531 -0.106571 -v 1.502341 5.287462 -0.078158 -v 1.454546 5.192803 -0.106571 -v 1.432361 5.148871 -0.078157 -v 1.515146 5.312833 0.027885 -v 1.502338 5.287472 0.077100 -v 1.480153 5.243540 0.105516 -v 1.454540 5.192812 0.105519 -v 1.432358 5.148880 0.077109 -v 1.419550 5.123511 0.027896 -v 1.516179 5.312378 -0.028960 -v 1.419042 5.123801 -0.028934 -v 1.563461 5.304673 0.030392 -v 1.564023 5.304605 -0.031455 -v 1.558218 5.274195 -0.084999 -v 1.549126 5.221419 -0.115918 -v 1.529535 5.107703 -0.084997 -v 1.538628 5.160480 -0.115917 -v 1.558211 5.274205 0.083947 -v 1.549116 5.221431 0.114869 -v 1.538617 5.160491 0.114874 -v 1.529527 5.107712 0.083959 -v 1.523994 5.077298 -0.031438 -v 1.524280 5.077236 0.030408 -v -0.935916 7.231124 1.621186 -v -0.790965 7.204138 1.766126 -v -0.758390 7.204138 1.723672 -v -0.833417 7.204138 1.798704 -v -0.882855 7.204138 1.819184 -v -0.935909 7.204138 1.826170 -v -0.988963 7.204138 1.819188 -v -1.038402 7.204138 1.798711 -v -1.080857 7.204138 1.766137 -v -1.113434 7.204138 1.723684 -v -1.133914 7.204138 1.674246 -v -1.140901 7.204138 1.621192 -v -1.133918 7.204138 1.568139 -v -1.113442 7.204138 1.518699 -v -1.080867 7.204138 1.476245 -v -1.038415 7.204138 1.443668 -v -0.988977 7.204138 1.423187 -v -0.935924 7.204138 1.416201 -v -0.882869 7.204138 1.423184 -v -0.833430 7.204138 1.443660 -v -0.790975 7.204138 1.476234 -v -0.758398 7.204138 1.518687 -v -0.737918 7.204138 1.568124 -v -0.730931 7.204138 1.621178 -v -0.737914 7.204138 1.674232 -v -0.655892 7.125016 1.901190 -v -0.592963 7.125016 1.819174 -v -0.737904 7.125016 1.964124 -v -0.833411 7.125016 2.003688 -v -0.935902 7.125016 2.017184 -v -1.038394 7.125016 2.003695 -v -1.133904 7.125016 1.964139 -v -1.215920 7.125016 1.901209 -v -1.278855 7.125016 1.819197 -v -1.318419 7.125016 1.723691 -v -1.331916 7.125016 1.621200 -v -1.318426 7.125016 1.518708 -v -1.278869 7.125016 1.423198 -v -1.215941 7.125016 1.341181 -v -1.133928 7.125016 1.278246 -v -1.038423 7.125016 1.238682 -v -0.935930 7.125016 1.225186 -v -0.833438 7.125016 1.238675 -v -0.737928 7.125016 1.278233 -v -0.655912 7.125016 1.341161 -v -0.592978 7.125016 1.423172 -v -0.553413 7.125016 1.518679 -v -0.539916 7.125016 1.621171 -v -0.553406 7.125016 1.723664 -v -0.539902 6.999153 2.017171 -v -0.450907 6.999153 1.901182 -v -0.655885 6.999153 2.106174 -v -0.790951 6.999153 2.162126 -v -0.935896 6.999153 2.181214 -v -1.080843 6.999153 2.162137 -v -1.215913 6.999153 2.106194 -v -1.331902 6.999153 2.017200 -v -1.420905 6.999153 1.901217 -v -1.476856 6.999153 1.766151 -v -1.495945 6.999153 1.621206 -v -1.476867 6.999153 1.476258 -v -1.420925 6.999153 1.341189 -v -1.331930 6.999153 1.225199 -v -1.215948 6.999153 1.136197 -v -1.080882 6.999153 1.080244 -v -0.935937 6.999153 1.061157 -v -0.790990 6.999153 1.080234 -v -0.655919 6.999153 1.136176 -v -0.539931 6.999153 1.225170 -v -0.450928 6.999153 1.341153 -v -0.394976 6.999153 1.476219 -v -0.375888 6.999153 1.621165 -v -0.394965 6.999153 1.766112 -v -0.450900 6.835124 2.106167 -v -0.341904 6.835124 1.964110 -v -0.592949 6.835124 2.215173 -v -0.758371 6.835124 2.283700 -v -0.935891 6.835124 2.307077 -v -1.113414 6.835124 2.283713 -v -1.278841 6.835124 2.215197 -v -1.420897 6.835124 2.106202 -v -1.529903 6.835124 1.964153 -v -1.598430 6.835124 1.798731 -v -1.621808 6.835124 1.621209 -v -1.598444 6.835124 1.443688 -v -1.529929 6.835124 1.278261 -v -1.420933 6.835124 1.136204 -v -1.278884 6.835124 1.027199 -v -1.113463 6.835124 0.958671 -v -0.935941 6.835124 0.935293 -v -0.758418 6.835124 0.958658 -v -0.592992 6.835124 1.027173 -v -0.450935 6.835124 1.136169 -v -0.341929 6.835124 1.278217 -v -0.273402 6.835124 1.443639 -v -0.250024 6.835124 1.621160 -v -0.273389 6.835124 1.798683 -v -0.394951 6.644109 2.162112 -v -0.273382 6.644109 2.003668 -v -0.553386 6.644109 2.283693 -v -0.737890 6.644109 2.360124 -v -0.935889 6.644109 2.386198 -v -1.133890 6.644109 2.360139 -v -1.318400 6.644109 2.283720 -v -1.476843 6.644109 2.162151 -v -1.598423 6.644109 2.003716 -v -1.674855 6.644109 1.819212 -v -1.700929 6.644109 1.621213 -v -1.674870 6.644109 1.423212 -v -1.598451 6.644109 1.238703 -v -1.476882 6.644109 1.080259 -v -1.318446 6.644109 0.958678 -v -1.133944 6.644109 0.882247 -v -0.935944 6.644109 0.856172 -v -0.737943 6.644109 0.882232 -v -0.553434 6.644109 0.958651 -v -0.394989 6.644109 1.080219 -v -0.273410 6.644109 1.238654 -v -0.196978 6.644109 1.423158 -v -0.170903 6.644109 1.621157 -v -0.196962 6.644109 1.819158 -v -0.375868 6.439125 2.181194 -v -0.250010 6.439125 2.017161 -v -0.539892 6.439125 2.307063 -v -0.730904 6.439125 2.386191 -v -0.935887 6.439125 2.413185 -v -1.140874 6.439125 2.386206 -v -1.331892 6.439125 2.307091 -v -1.495925 6.439125 2.181234 -v -1.621794 6.439125 2.017210 -v -1.700922 6.439125 1.826198 -v -1.727916 6.439125 1.621213 -v -1.700937 6.439125 1.416228 -v -1.621823 6.439125 1.225210 -v -1.495965 6.439125 1.061177 -v -1.331942 6.439125 0.935308 -v -1.140928 6.439125 0.856180 -v -0.935945 6.439125 0.829185 -v -0.730960 6.439125 0.856165 -v -0.539941 6.439125 0.935279 -v -0.375908 6.439125 1.061136 -v -0.250038 6.439125 1.225160 -v -0.170910 6.439125 1.416173 -v -0.143917 6.439125 1.621156 -v -0.170895 6.439125 1.826142 -v -0.394951 6.234140 2.162112 -v -0.273382 6.234140 2.003668 -v -0.553386 6.234140 2.283693 -v -0.737889 6.234140 2.360124 -v -0.935889 6.234140 2.386198 -v -1.133890 6.234140 2.360139 -v -1.318400 6.234140 2.283720 -v -1.476843 6.234140 2.162151 -v -1.598423 6.234140 2.003716 -v -1.674855 6.234140 1.819212 -v -1.700930 6.234140 1.621213 -v -1.674870 6.234140 1.423212 -v -1.598451 6.234140 1.238703 -v -1.476882 6.234140 1.080259 -v -1.318447 6.234140 0.958678 -v -1.133943 6.234140 0.882246 -v -0.935944 6.234140 0.856172 -v -0.737943 6.234140 0.882232 -v -0.553433 6.234140 0.958650 -v -0.394989 6.234140 1.080219 -v -0.273409 6.234140 1.238654 -v -0.196978 6.234140 1.423158 -v -0.170903 6.234140 1.621157 -v -0.196962 6.234140 1.819158 -v -0.450900 6.043124 2.106167 -v -0.341904 6.043124 1.964110 -v -0.592949 6.043124 2.215173 -v -0.758370 6.043124 2.283701 -v -0.935891 6.043124 2.307078 -v -1.113414 6.043124 2.283713 -v -1.278841 6.043124 2.215197 -v -1.420897 6.043124 2.106202 -v -1.529904 6.043124 1.964153 -v -1.598432 6.043124 1.798732 -v -1.621809 6.043124 1.621211 -v -1.598444 6.043124 1.443688 -v -1.529929 6.043124 1.278261 -v -1.420933 6.043124 1.136204 -v -1.278884 6.043124 1.027197 -v -1.113462 6.043124 0.958670 -v -0.935941 6.043124 0.935293 -v -0.758418 6.043124 0.958658 -v -0.592992 6.043124 1.027173 -v -0.450935 6.043124 1.136168 -v -0.341929 6.043124 1.278217 -v -0.273402 6.043124 1.443639 -v -0.250023 6.043124 1.621160 -v -0.273388 6.043124 1.798683 -v -0.539902 5.879096 2.017171 -v -0.450907 5.879096 1.901182 -v -0.655885 5.879096 2.106174 -v -0.790950 5.879096 2.162127 -v -0.935896 5.879096 2.181215 -v -1.080843 5.879096 2.162137 -v -1.215914 5.879096 2.106194 -v -1.331902 5.879096 2.017200 -v -1.420905 5.879096 1.901217 -v -1.476857 5.879096 1.766150 -v -1.495945 5.879096 1.621206 -v -1.476867 5.879096 1.476258 -v -1.420925 5.879096 1.341188 -v -1.331931 5.879096 1.225199 -v -1.215949 5.879096 1.136196 -v -1.080882 5.879096 1.080244 -v -0.935937 5.879096 1.061157 -v -0.790990 5.879096 1.080234 -v -0.655919 5.879096 1.136176 -v -0.539931 5.879096 1.225170 -v -0.450927 5.879096 1.341153 -v -0.394976 5.879096 1.476219 -v -0.375887 5.879096 1.621165 -v -0.394965 5.879096 1.766112 -v -0.655892 5.753232 1.901190 -v -0.592963 5.753232 1.819174 -v -0.737903 5.753232 1.964125 -v -0.833410 5.753232 2.003689 -v -0.935902 5.753232 2.017185 -v -1.038395 5.753232 2.003696 -v -1.133904 5.753232 1.964139 -v -1.215921 5.753232 1.901210 -v -1.278855 5.753232 1.819197 -v -1.318419 5.753232 1.723692 -v -1.331916 5.753232 1.621200 -v -1.318427 5.753232 1.518707 -v -1.278869 5.753232 1.423198 -v -1.215941 5.753232 1.341181 -v -1.133929 5.753232 1.278246 -v -1.038423 5.753232 1.238682 -v -0.935931 5.753232 1.225185 -v -0.833438 5.753232 1.238675 -v -0.737928 5.753232 1.278232 -v -0.655912 5.753232 1.341161 -v -0.592977 5.753232 1.423173 -v -0.553413 5.753232 1.518679 -v -0.539916 5.753232 1.621171 -v -0.553405 5.753232 1.723664 -v -0.790965 5.674111 1.766127 -v -0.758390 5.674111 1.723672 -v -0.833417 5.674111 1.798704 -v -0.882854 5.674111 1.819184 -v -0.935909 5.674111 1.826171 -v -0.988963 5.674111 1.819188 -v -1.038403 5.674111 1.798711 -v -1.080857 5.674111 1.766137 -v -1.113434 5.674111 1.723684 -v -1.133914 5.674111 1.674246 -v -1.140901 5.674111 1.621193 -v -1.133918 5.674111 1.568139 -v -1.113442 5.674111 1.518699 -v -1.080868 5.674111 1.476244 -v -1.038415 5.674111 1.443667 -v -0.988978 5.674111 1.423187 -v -0.935924 5.674111 1.416201 -v -0.882869 5.674111 1.423183 -v -0.833430 5.674111 1.443660 -v -0.790975 5.674111 1.476233 -v -0.758398 5.674111 1.518686 -v -0.737918 5.674111 1.568124 -v -0.730931 5.674111 1.621178 -v -0.737914 5.674111 1.674232 -v -0.935916 5.647125 1.621186 -v -0.935916 7.231124 -1.621186 -v -1.133918 7.204138 -1.568138 -v -1.113442 7.204138 -1.518699 -v -1.140901 7.204138 -1.621192 -v -1.133914 7.204138 -1.674246 -v -1.113434 7.204138 -1.723684 -v -1.080857 7.204138 -1.766137 -v -1.038402 7.204138 -1.798711 -v -0.988963 7.204138 -1.819188 -v -0.935909 7.204138 -1.826170 -v -0.882855 7.204138 -1.819184 -v -0.833417 7.204138 -1.798704 -v -0.790965 7.204138 -1.766127 -v -0.758390 7.204138 -1.723672 -v -0.737914 7.204138 -1.674233 -v -0.730932 7.204138 -1.621179 -v -0.737918 7.204138 -1.568125 -v -0.758397 7.204138 -1.518687 -v -0.790975 7.204138 -1.476234 -v -0.833430 7.204138 -1.443660 -v -0.882869 7.204138 -1.423184 -v -0.935923 7.204138 -1.416201 -v -0.988977 7.204138 -1.423187 -v -1.038415 7.204138 -1.443667 -v -1.080867 7.204138 -1.476244 -v -1.318427 7.125016 -1.518706 -v -1.278869 7.125016 -1.423198 -v -1.331916 7.125016 -1.621199 -v -1.318419 7.125016 -1.723691 -v -1.278855 7.125016 -1.819197 -v -1.215921 7.125016 -1.901209 -v -1.133904 7.125016 -1.964139 -v -1.038395 7.125016 -2.003695 -v -0.935902 7.125016 -2.017185 -v -0.833411 7.125016 -2.003688 -v -0.737904 7.125016 -1.964125 -v -0.655893 7.125016 -1.901190 -v -0.592963 7.125016 -1.819174 -v -0.553406 7.125016 -1.723665 -v -0.539916 7.125016 -1.621172 -v -0.553413 7.125016 -1.518680 -v -0.592977 7.125016 -1.423174 -v -0.655911 7.125016 -1.341161 -v -0.737928 7.125016 -1.278233 -v -0.833437 7.125016 -1.238675 -v -0.935929 7.125016 -1.225185 -v -1.038421 7.125016 -1.238682 -v -1.133928 7.125016 -1.278245 -v -1.215940 7.125016 -1.341181 -v -1.476867 6.999153 -1.476258 -v -1.420924 6.999153 -1.341188 -v -1.495945 6.999153 -1.621205 -v -1.476857 6.999153 -1.766150 -v -1.420906 6.999153 -1.901216 -v -1.331903 6.999153 -2.017199 -v -1.215913 6.999153 -2.106194 -v -1.080844 6.999153 -2.162136 -v -0.935897 6.999153 -2.181214 -v -0.790952 6.999153 -2.162126 -v -0.655885 6.999153 -2.106175 -v -0.539902 6.999153 -2.017172 -v -0.450908 6.999153 -1.901183 -v -0.394965 6.999153 -1.766113 -v -0.375888 6.999153 -1.621166 -v -0.394974 6.999153 -1.476221 -v -0.450926 6.999153 -1.341155 -v -0.539929 6.999153 -1.225172 -v -0.655919 6.999153 -1.136176 -v -0.790988 6.999153 -1.080234 -v -0.935934 6.999153 -1.061157 -v -1.080880 6.999153 -1.080244 -v -1.215946 6.999153 -1.136196 -v -1.331930 6.999153 -1.225199 -v -1.598443 6.835124 -1.443686 -v -1.529928 6.835124 -1.278260 -v -1.621808 6.835124 -1.621209 -v -1.598431 6.835124 -1.798730 -v -1.529905 6.835124 -1.964151 -v -1.420899 6.835124 -2.106201 -v -1.278841 6.835124 -2.215197 -v -1.113416 6.835124 -2.283712 -v -0.935893 6.835124 -2.307077 -v -0.758372 6.835124 -2.283700 -v -0.592949 6.835124 -2.215173 -v -0.450901 6.835124 -2.106169 -v -0.341905 6.835124 -1.964112 -v -0.273390 6.835124 -1.798685 -v -0.250025 6.835124 -1.621162 -v -0.273401 6.835124 -1.443642 -v -0.341927 6.835124 -1.278219 -v -0.450933 6.835124 -1.136170 -v -0.592990 6.835124 -1.027174 -v -0.758417 6.835124 -0.958659 -v -0.935939 6.835124 -0.935293 -v -1.113460 6.835124 -0.958670 -v -1.278882 6.835124 -1.027197 -v -1.420932 6.835124 -1.136203 -v -1.674869 6.644109 -1.423211 -v -1.598450 6.644109 -1.238701 -v -1.700929 6.644109 -1.621212 -v -1.674855 6.644109 -1.819211 -v -1.598424 6.644109 -2.003714 -v -1.476844 6.644109 -2.162150 -v -1.318400 6.644109 -2.283720 -v -1.133891 6.644109 -2.360138 -v -0.935890 6.644109 -2.386199 -v -0.737891 6.644109 -2.360124 -v -0.553387 6.644109 -2.283693 -v -0.394952 6.644109 -2.162114 -v -0.273383 6.644109 -2.003670 -v -0.196964 6.644109 -1.819160 -v -0.170903 6.644109 -1.621159 -v -0.196977 6.644109 -1.423161 -v -0.273407 6.644109 -1.238656 -v -0.394988 6.644109 -1.080221 -v -0.553432 6.644109 -0.958652 -v -0.737941 6.644109 -0.882232 -v -0.935941 6.644109 -0.856172 -v -1.133941 6.644109 -0.882246 -v -1.318445 6.644109 -0.958677 -v -1.476880 6.644109 -1.080257 -v -1.700936 6.439125 -1.416227 -v -1.621822 6.439125 -1.225209 -v -1.727916 6.439125 -1.621213 -v -1.700922 6.439125 -1.826196 -v -1.621795 6.439125 -2.017208 -v -1.495925 6.439125 -2.181233 -v -1.331892 6.439125 -2.307091 -v -1.140875 6.439125 -2.386206 -v -0.935889 6.439125 -2.413185 -v -0.730905 6.439125 -2.386192 -v -0.539892 6.439125 -2.307064 -v -0.375868 6.439125 -2.181195 -v -0.250011 6.439125 -2.017163 -v -0.170896 6.439125 -1.826144 -v -0.143916 6.439125 -1.621159 -v -0.170910 6.439125 -1.416175 -v -0.250037 6.439125 -1.225162 -v -0.375906 6.439125 -1.061138 -v -0.539939 6.439125 -0.935280 -v -0.730957 6.439125 -0.856165 -v -0.935943 6.439125 -0.829185 -v -1.140927 6.439125 -0.856179 -v -1.331939 6.439125 -0.935307 -v -1.495964 6.439125 -1.061176 -v -1.674869 6.234140 -1.423211 -v -1.598450 6.234140 -1.238701 -v -1.700929 6.234140 -1.621212 -v -1.674856 6.234140 -1.819210 -v -1.598424 6.234140 -2.003714 -v -1.476844 6.234140 -2.162150 -v -1.318400 6.234140 -2.283720 -v -1.133891 6.234140 -2.360138 -v -0.935890 6.234140 -2.386199 -v -0.737891 6.234140 -2.360124 -v -0.553387 6.234140 -2.283693 -v -0.394952 6.234140 -2.162114 -v -0.273383 6.234140 -2.003670 -v -0.196964 6.234140 -1.819160 -v -0.170902 6.234140 -1.621160 -v -0.196976 6.234140 -1.423160 -v -0.273407 6.234140 -1.238656 -v -0.394988 6.234140 -1.080221 -v -0.553432 6.234140 -0.958651 -v -0.737941 6.234140 -0.882232 -v -0.935942 6.234140 -0.856172 -v -1.133941 6.234140 -0.882246 -v -1.318445 6.234140 -0.958677 -v -1.476880 6.234140 -1.080257 -v -1.598443 6.043124 -1.443686 -v -1.529928 6.043124 -1.278260 -v -1.621808 6.043124 -1.621209 -v -1.598432 6.043124 -1.798730 -v -1.529905 6.043124 -1.964152 -v -1.420899 6.043124 -2.106201 -v -1.278841 6.043124 -2.215197 -v -1.113416 6.043124 -2.283712 -v -0.935892 6.043124 -2.307078 -v -0.758372 6.043124 -2.283701 -v -0.592950 6.043124 -2.215174 -v -0.450901 6.043124 -2.106169 -v -0.341905 6.043124 -1.964112 -v -0.273390 6.043124 -1.798685 -v -0.250023 6.043124 -1.621162 -v -0.273401 6.043124 -1.443641 -v -0.341927 6.043124 -1.278219 -v -0.450933 6.043124 -1.136170 -v -0.592990 6.043124 -1.027174 -v -0.758416 6.043124 -0.958658 -v -0.935939 6.043124 -0.935293 -v -1.113460 6.043124 -0.958670 -v -1.278882 6.043124 -1.027196 -v -1.420931 6.043124 -1.136202 -v -1.476867 5.879096 -1.476258 -v -1.420925 5.879096 -1.341187 -v -1.495945 5.879096 -1.621205 -v -1.476858 5.879096 -1.766150 -v -1.420906 5.879096 -1.901217 -v -1.331903 5.879096 -2.017199 -v -1.215914 5.879096 -2.106194 -v -1.080844 5.879096 -2.162137 -v -0.935897 5.879096 -2.181214 -v -0.790951 5.879096 -2.162127 -v -0.655885 5.879096 -2.106175 -v -0.539902 5.879096 -2.017172 -v -0.450907 5.879096 -1.901183 -v -0.394964 5.879096 -1.766113 -v -0.375887 5.879096 -1.621167 -v -0.394974 5.879096 -1.476221 -v -0.450926 5.879096 -1.341155 -v -0.539929 5.879096 -1.225172 -v -0.655919 5.879096 -1.136176 -v -0.790988 5.879096 -1.080234 -v -0.935935 5.879096 -1.061156 -v -1.080880 5.879096 -1.080244 -v -1.215947 5.879096 -1.136195 -v -1.331930 5.879096 -1.225199 -v -1.318427 5.753232 -1.518706 -v -1.278869 5.753232 -1.423198 -v -1.331917 5.753232 -1.621199 -v -1.318420 5.753232 -1.723691 -v -1.278855 5.753232 -1.819197 -v -1.215922 5.753232 -1.901210 -v -1.133904 5.753232 -1.964139 -v -1.038396 5.753232 -2.003696 -v -0.935902 5.753232 -2.017185 -v -0.833411 5.753232 -2.003689 -v -0.737904 5.753232 -1.964125 -v -0.655892 5.753232 -1.901191 -v -0.592963 5.753232 -1.819174 -v -0.553406 5.753232 -1.723665 -v -0.539915 5.753232 -1.621172 -v -0.553413 5.753232 -1.518680 -v -0.592976 5.753232 -1.423174 -v -0.655911 5.753232 -1.341161 -v -0.737928 5.753232 -1.278232 -v -0.833437 5.753232 -1.238675 -v -0.935930 5.753232 -1.225185 -v -1.038421 5.753232 -1.238682 -v -1.133928 5.753232 -1.278245 -v -1.215940 5.753232 -1.341180 -v -1.133918 5.674111 -1.568139 -v -1.113442 5.674111 -1.518699 -v -1.140901 5.674111 -1.621192 -v -1.133915 5.674111 -1.674246 -v -1.113435 5.674111 -1.723684 -v -1.080857 5.674111 -1.766137 -v -1.038403 5.674111 -1.798711 -v -0.988963 5.674111 -1.819188 -v -0.935909 5.674111 -1.826170 -v -0.882855 5.674111 -1.819184 -v -0.833418 5.674111 -1.798705 -v -0.790965 5.674111 -1.766127 -v -0.758390 5.674111 -1.723672 -v -0.737913 5.674111 -1.674233 -v -0.730931 5.674111 -1.621178 -v -0.737917 5.674111 -1.568125 -v -0.758397 5.674111 -1.518687 -v -0.790975 5.674111 -1.476233 -v -0.833430 5.674111 -1.443660 -v -0.882869 5.674111 -1.423183 -v -0.935923 5.674111 -1.416200 -v -0.988977 5.674111 -1.423187 -v -1.038415 5.674111 -1.443667 -v -1.080867 5.674111 -1.476244 -v -0.935916 5.647125 -1.621186 -v -0.190840 5.515944 -0.247657 -v -0.243367 5.517920 -0.235939 -v -0.261354 5.488284 -0.267095 -v -0.208826 5.486310 -0.278812 -v -0.173079 5.486310 -0.299449 -v -0.155093 5.515944 -0.268294 -v -0.228850 5.582496 -0.210793 -v -0.139581 5.583405 -0.241425 -v -0.233466 5.666270 -0.218788 -v -0.144205 5.670815 -0.249435 -v -0.255802 5.742265 -0.257478 -v -0.167363 5.750560 -0.289548 -v -0.297788 5.792035 -0.330207 -v -0.211060 5.803005 -0.365240 -v -0.343482 5.797686 -0.409358 -v -0.258901 5.809513 -0.448111 -v -0.486318 5.676223 -0.655443 -v -0.405936 5.684768 -0.702802 -v -0.517488 5.659646 -0.709435 -v -0.437105 5.668191 -0.756794 -v -0.571735 5.679368 -0.802186 -v -0.542081 5.656149 -0.753369 -v -0.461677 5.665982 -0.799357 -v -0.489236 5.692117 -0.847093 -v -0.572927 5.695159 -0.804252 -v -0.490428 5.707908 -0.849159 -v -0.591090 5.686442 -0.844394 -v -0.575502 5.701816 -0.817393 -v -0.498818 5.708117 -0.863693 -v -0.514406 5.692743 -0.890693 -v -0.606256 5.640802 -0.864248 -v -0.600253 5.667114 -0.853850 -v -0.525201 5.671900 -0.909393 -v -0.531203 5.645587 -0.919790 -v -0.604916 5.591613 -0.862565 -v -0.530623 5.594168 -0.918785 -v -0.588219 5.544410 -0.833204 -v -0.515060 5.543750 -0.891826 -v -0.551621 5.518014 -0.769893 -v -0.477914 5.514775 -0.827483 -v -0.553208 5.442576 -0.771806 -v -0.545999 5.489536 -0.759319 -v -0.470734 5.485821 -0.815044 -v -0.477942 5.438861 -0.827531 -v -0.553757 5.360417 -0.773593 -v -0.477973 5.355863 -0.827584 -v -0.535240 5.306975 -0.741518 -v -0.458816 5.299571 -0.794401 -v -0.501877 5.281743 -0.683728 -v -0.424066 5.272824 -0.734208 -v -0.462811 5.285222 -0.619590 -v -0.382114 5.278866 -0.661537 -v -0.470074 5.311057 -0.628639 -v -0.461690 5.295666 -0.614116 -v -0.375516 5.290197 -0.650110 -v -0.383901 5.305588 -0.664634 -v -0.479111 5.360498 -0.644293 -v -0.393471 5.357014 -0.681211 -v -0.473747 5.426218 -0.635001 -v -0.388052 5.425636 -0.671824 -v -0.445369 5.495645 -0.585845 -v -0.358659 5.498289 -0.620911 -v -0.423046 5.539909 -0.544138 -v -0.335433 5.539687 -0.580678 -v -0.402936 5.471096 -0.512342 -v -0.405018 5.520258 -0.515948 -v -0.329649 5.522835 -0.570658 -v -0.327567 5.473672 -0.567053 -v -0.384342 5.362035 -0.480091 -v -0.308249 5.359894 -0.533591 -v -0.354674 5.287212 -0.426508 -v -0.368975 5.316366 -0.451280 -v -0.295007 5.315586 -0.510652 -v -0.280706 5.286431 -0.485881 -v -0.374991 5.265692 -0.461581 -v -0.356747 5.267126 -0.429978 -v -0.282678 5.271138 -0.489296 -v -0.300922 5.269704 -0.520898 -v -0.403070 5.225375 -0.513521 -v -0.391191 5.253418 -0.492945 -v -0.315984 5.254966 -0.546988 -v -0.327862 5.226924 -0.567564 -v -0.389142 5.146736 -0.489853 -v -0.402979 5.194917 -0.513821 -v -0.326883 5.188813 -0.565868 -v -0.313047 5.140632 -0.541901 -v -0.343356 5.109948 -0.409139 -v -0.371460 5.122450 -0.457820 -v -0.292077 5.110291 -0.505577 -v -0.263973 5.097790 -0.456896 -v -0.279875 5.179461 -0.299573 -v -0.319359 5.118040 -0.367904 -v -0.237305 5.106178 -0.410702 -v -0.194744 5.170083 -0.336978 -v -0.268798 5.259162 -0.279990 -v -0.182183 5.254062 -0.315219 -v -0.281731 5.356741 -0.302429 -v -0.196221 5.356647 -0.339536 -v -0.300316 5.417790 -0.334622 -v -0.214805 5.417697 -0.371727 -v -0.271645 5.469887 -0.291056 -v -0.292658 5.458251 -0.327454 -v -0.213591 5.454040 -0.369624 -v -0.192578 5.465675 -0.333227 -v -0.296826 5.533141 -0.286469 -v -0.286707 5.534671 -0.309898 -v -0.292985 5.504072 -0.320772 -v -0.307646 5.501982 -0.305212 -v -0.292762 5.537968 -0.322346 -v -0.319607 5.538089 -0.327890 -v -0.325063 5.520028 -0.337341 -v -0.299040 5.507370 -0.333220 -v -0.318430 5.465744 -0.372094 -v -0.304354 5.457216 -0.347713 -v -0.316096 5.475670 -0.327095 -v -0.397028 5.483232 -0.439979 -v -0.398660 5.538704 -0.442806 -v -0.410370 5.515820 -0.463091 -v -0.408673 5.475719 -0.460150 -v -0.381025 5.217666 -0.412258 -v -0.362534 5.186327 -0.380229 -v -0.330125 5.233723 -0.324091 -v -0.355705 5.262099 -0.387217 -v -0.546223 5.324542 -0.719585 -v -0.516395 5.301105 -0.667917 -v -0.517817 5.315813 -0.649208 -v -0.535706 5.339489 -0.680196 -v -0.588197 5.657892 -0.789743 -v -0.595820 5.668571 -0.802949 -v -0.607675 5.651269 -0.804861 -v -0.606498 5.634236 -0.802821 -v -0.522819 5.511280 -0.657873 -v -0.499943 5.561415 -0.618248 -v -0.508335 5.613324 -0.632784 -v -0.546169 5.588543 -0.698319 -v -0.592421 5.590698 -0.778437 -v -0.581375 5.556879 -0.759304 -v -0.566938 5.572126 -0.734296 -v -0.561544 5.448348 -0.745288 -v -0.562532 5.373504 -0.747835 -v -0.550857 5.368674 -0.706441 -v -0.544711 5.424644 -0.695794 -v -0.300127 5.608974 -0.272129 -v -0.265722 5.577381 -0.233704 -v -0.269503 5.652568 -0.240252 -v -0.304721 5.657471 -0.280085 -v -0.310735 5.503573 -0.290503 -v -0.297990 5.531240 -0.268426 -v -0.374076 5.662285 -0.419520 -v -0.351965 5.666801 -0.381893 -v -0.352606 5.715039 -0.363032 -v -0.372833 5.719302 -0.398069 -v -0.327190 5.412295 -0.340212 -v -0.312418 5.362868 -0.314624 -v -0.300067 5.274145 -0.293195 -v -0.305950 5.201977 -0.303782 -v -0.337957 5.144361 -0.359158 -v -0.361952 5.136270 -0.400392 -v -0.384875 5.146466 -0.440099 -v -0.402558 5.170753 -0.472132 -v -0.409156 5.197310 -0.483560 -v -0.409247 5.227768 -0.483260 -v -0.400771 5.243670 -0.468579 -v -0.384570 5.255943 -0.437216 -v -0.353633 5.282185 -0.383746 -v -0.379358 5.325606 -0.428306 -v -0.394726 5.371274 -0.457117 -v -0.410825 5.470294 -0.485049 -v -0.412522 5.510393 -0.487989 -v -0.379911 5.592010 -0.473217 -v -0.398224 5.557381 -0.504938 -v -0.405728 5.547515 -0.476980 -v -0.394017 5.570402 -0.456695 -v -0.349243 5.625658 -0.419337 -v -0.366300 5.601588 -0.407924 -v -0.296569 5.604552 -0.329733 -v -0.332020 5.629180 -0.390466 -v -0.349076 5.605110 -0.379054 -v -0.322738 5.583147 -0.334107 -v -0.331195 5.474578 -0.385716 -v -0.314199 5.486594 -0.356276 -v -0.340224 5.499254 -0.360395 -v -0.364578 5.473194 -0.402582 -v -0.318796 5.450655 -0.364612 -v -0.332871 5.459183 -0.388993 -v -0.366254 5.457798 -0.405860 -v -0.345669 5.445159 -0.370202 -v -0.308488 5.628274 -0.305646 -v -0.291844 5.612298 -0.317776 -v -0.331628 5.648447 -0.387623 -v -0.387359 5.603806 -0.484801 -v -0.353738 5.643930 -0.425250 -v -0.413076 5.612260 -0.488390 -v -0.405672 5.569179 -0.516522 -v -0.430359 5.578382 -0.518327 -v -0.447733 5.549114 -0.545942 -v -0.478201 5.486811 -0.601758 -v -0.503262 5.424101 -0.645167 -v -0.507739 5.365025 -0.652924 -v -0.499364 5.320957 -0.638416 -v -0.492525 5.308403 -0.626569 -v -0.493647 5.297959 -0.632044 -v -0.498908 5.297311 -0.641156 -v -0.552243 5.497252 -0.729176 -v -0.557864 5.525727 -0.739749 -v -0.590487 5.550106 -0.796172 -v -0.609642 5.590175 -0.829790 -v -0.612828 5.632510 -0.834673 -v -0.607558 5.655898 -0.825545 -v -0.598394 5.675226 -0.816090 -v -0.561857 5.636914 -0.746666 -v -0.537264 5.640411 -0.702732 -v -0.499874 5.662618 -0.637965 -v -0.368061 5.773489 -0.410975 -v -0.326742 5.767262 -0.339402 -v -0.289270 5.721624 -0.274494 -v -0.279439 5.519274 -0.257463 -v -0.294109 5.495102 -0.282875 -v -0.304400 5.476707 -0.306835 -v -0.317456 5.472592 -0.370408 -v -0.315123 5.482518 -0.325409 -v -0.300460 5.484608 -0.340968 -v -0.508678 5.311946 -0.633378 -v -0.372331 5.494235 -0.397199 -v -0.347977 5.520294 -0.355013 -v -0.342521 5.538355 -0.345562 -v -0.346793 5.555797 -0.352962 -v -0.370803 5.570638 -0.394553 -v -0.382220 5.504280 -0.414330 -v -0.394518 5.235818 -0.435631 -v -0.402993 5.219917 -0.450312 -v -0.538100 5.463790 -0.684342 -v -0.342496 5.376470 -0.345520 -v -0.357268 5.425898 -0.371107 -v -0.377853 5.438536 -0.406765 -v -0.389498 5.431025 -0.426936 -v -0.380014 5.349375 -0.410508 -v -0.354290 5.305954 -0.365948 -v -0.327455 5.273817 -0.319466 -v -0.475595 5.605947 -0.576072 -v -0.155791 5.282185 -0.497961 -v -0.140050 5.305954 -0.489630 -v -0.113215 5.273817 -0.443148 -v -0.115885 5.233723 -0.447772 -v -0.157760 5.262099 -0.501491 -v -0.233969 5.578382 -0.631704 -v -0.249195 5.549114 -0.660559 -v -0.261355 5.605947 -0.699753 -v -0.244751 5.569179 -0.609422 -v -0.238444 5.557381 -0.597180 -v -0.244581 5.520258 -0.608569 -v -0.259978 5.539909 -0.638278 -v -0.303458 5.320957 -0.751513 -v -0.321466 5.339489 -0.803878 -v -0.311833 5.365025 -0.766021 -v -0.216686 5.612260 -0.601767 -v -0.158593 5.719302 -0.521750 -v -0.176548 5.662285 -0.533553 -v -0.167981 5.504280 -0.538011 -v -0.184420 5.538704 -0.566488 -v -0.156563 5.570638 -0.518234 -v -0.285703 5.561415 -0.741930 -v -0.294095 5.613324 -0.756465 -v -0.294438 5.311946 -0.757060 -v -0.296619 5.308403 -0.739666 -v -0.300799 5.297959 -0.743376 -v -0.323860 5.463790 -0.808024 -v -0.308579 5.511280 -0.781555 -v -0.307356 5.424101 -0.758264 -v -0.191680 5.643930 -0.518806 -v -0.170152 5.648447 -0.480843 -v -0.172418 5.629180 -0.482604 -v -0.188807 5.625658 -0.511957 -v -0.170394 5.601588 -0.521021 -v -0.154006 5.605110 -0.491668 -v -0.165774 5.349375 -0.534189 -v -0.181516 5.325606 -0.542521 -v -0.198780 5.371274 -0.570237 -v -0.180278 5.235818 -0.559312 -v -0.205683 5.243670 -0.581204 -v -0.186625 5.255943 -0.551490 -v -0.188753 5.219917 -0.573994 -v -0.214464 5.197310 -0.595956 -v -0.214159 5.227768 -0.595885 -v -0.148294 5.186327 -0.503911 -v -0.188969 5.146466 -0.553196 -v -0.207866 5.170753 -0.584528 -v -0.166785 5.217666 -0.535940 -v -0.142337 5.144361 -0.472090 -v -0.166046 5.136270 -0.513489 -v -0.143028 5.425898 -0.494789 -v -0.148045 5.445159 -0.484291 -v -0.131314 5.412295 -0.453292 -v -0.397708 5.668571 -0.917320 -v -0.393435 5.651269 -0.928542 -v -0.411406 5.655898 -0.938784 -v -0.407801 5.675226 -0.926120 -v -0.163613 5.438536 -0.530446 -v -0.182788 5.483232 -0.563660 -v -0.158091 5.494235 -0.520881 -v -0.166629 5.473194 -0.516859 -v -0.168630 5.457798 -0.519949 -v -0.210480 5.547515 -0.589697 -v -0.196130 5.515820 -0.586772 -v -0.216616 5.510393 -0.601086 -v -0.162331 5.472592 -0.459963 -v -0.163304 5.465744 -0.461649 -v -0.170717 5.459183 -0.482605 -v -0.168717 5.474578 -0.479515 -v -0.133737 5.520294 -0.478694 -v -0.129891 5.520028 -0.450014 -v -0.142274 5.499254 -0.474672 -v -0.124529 5.482518 -0.435439 -v -0.110778 5.501982 -0.418866 -v -0.096495 5.503573 -0.414184 -v -0.098203 5.495102 -0.395972 -v -0.113806 5.476707 -0.416865 -v -0.125503 5.475670 -0.437126 -v -0.145335 5.484608 -0.430523 -v -0.151721 5.486594 -0.450075 -v -0.139336 5.507370 -0.425418 -v -0.131584 5.504072 -0.413950 -v -0.355613 5.497252 -0.842691 -v -0.361958 5.525727 -0.852847 -v -0.352698 5.572126 -0.857978 -v -0.331929 5.588543 -0.822001 -v -0.116542 5.362868 -0.427705 -v -0.128256 5.376470 -0.469202 -v -0.100918 5.488284 -0.359716 -v -0.116521 5.469887 -0.380609 -v -0.365951 5.636914 -0.859763 -v -0.381645 5.656149 -0.845989 -v -0.355897 5.659646 -0.802723 -v -0.340203 5.640411 -0.816496 -v -0.420377 5.701816 -0.906947 -v -0.410284 5.695159 -0.898146 -v -0.439571 5.667114 -0.946612 -v -0.435965 5.686442 -0.933949 -v -0.384839 5.489536 -0.852358 -v -0.391184 5.518014 -0.862513 -v -0.350317 5.324542 -0.832682 -v -0.366626 5.373504 -0.860932 -v -0.336617 5.368674 -0.830122 -v -0.301254 5.295666 -0.706737 -v -0.305434 5.285222 -0.710445 -v -0.303577 5.315813 -0.772890 -v -0.155020 5.666801 -0.495590 -v -0.128253 5.583147 -0.446384 -v -0.124435 5.538089 -0.440564 -v -0.128281 5.538355 -0.469244 -v -0.132553 5.555797 -0.476643 -v -0.133059 5.537968 -0.414544 -v -0.137552 5.604552 -0.421535 -v -0.129560 5.612298 -0.411464 -v -0.125306 5.534671 -0.403076 -v -0.198769 5.570402 -0.569412 -v -0.220131 5.592010 -0.565458 -v -0.226438 5.603806 -0.577701 -v -0.214919 5.470294 -0.598146 -v -0.194433 5.475719 -0.583832 -v -0.175258 5.431025 -0.550617 -v -0.206602 5.316366 -0.545018 -v -0.223868 5.362035 -0.572733 -v -0.194270 5.267126 -0.523776 -v -0.192302 5.287212 -0.520247 -v -0.231574 5.253418 -0.585092 -v -0.212515 5.265692 -0.555379 -v -0.243758 5.194917 -0.605739 -v -0.243453 5.225375 -0.605668 -v -0.211023 5.122450 -0.550440 -v -0.229922 5.146736 -0.581772 -v -0.159211 5.118040 -0.460359 -v -0.182920 5.109948 -0.501759 -v -0.110387 5.201977 -0.416681 -v -0.104161 5.274145 -0.406292 -v -0.139911 5.417790 -0.427224 -v -0.156642 5.450655 -0.458224 -v -0.282295 5.486811 -0.714855 -v -0.302813 5.662618 -0.751729 -v -0.172155 5.773489 -0.524072 -v -0.138366 5.715039 -0.486714 -v -0.130836 5.767262 -0.452499 -v -0.083750 5.531240 -0.392107 -v -0.083533 5.519274 -0.370560 -v -0.110732 5.628274 -0.419811 -v -0.085887 5.608974 -0.395810 -v -0.099957 5.533141 -0.400122 -v -0.090481 5.657471 -0.403767 -v -0.093365 5.721624 -0.387591 -v -0.073597 5.652568 -0.353349 -v -0.330471 5.424644 -0.819475 -v -0.367135 5.556879 -0.882986 -v -0.394507 5.550106 -0.909312 -v -0.378181 5.590698 -0.902118 -v -0.414041 5.590175 -0.942711 -v -0.392258 5.634236 -0.926503 -v -0.416676 5.632510 -0.947912 -v -0.390084 5.657892 -0.904114 -v -0.149229 5.457216 -0.437267 -v -0.137534 5.458251 -0.417007 -v -0.137331 5.486310 -0.320087 -v -0.069817 5.577381 -0.346801 -v -0.364914 5.448348 -0.858803 -v -0.306059 5.297311 -0.752488 -v -0.320489 5.301105 -0.781014 -v -0.082931 5.517920 -0.328560 -v -0.068414 5.582496 -0.303413 -v -0.073030 5.666270 -0.311409 -v -0.095365 5.742265 -0.350098 -v -0.137352 5.792035 -0.422827 -v -0.183046 5.797686 -0.501978 -v -0.324727 5.676223 -0.748730 -v -0.409092 5.679368 -0.896081 -v -0.445574 5.640802 -0.957010 -v -0.444787 5.591613 -0.955008 -v -0.427710 5.544410 -0.925866 -v -0.392047 5.442576 -0.864844 -v -0.393320 5.360417 -0.866213 -v -0.374803 5.306975 -0.834138 -v -0.341441 5.281743 -0.776348 -v -0.309638 5.311057 -0.721259 -v -0.318675 5.360498 -0.736913 -v -0.313311 5.426218 -0.727621 -v -0.284933 5.495645 -0.678465 -v -0.242500 5.471096 -0.604963 -v -0.119781 5.179461 -0.391995 -v -0.108362 5.259162 -0.372610 -v -0.121326 5.356741 -0.395032 -v -0.119345 5.515944 -0.288931 -v -0.398380 5.464243 -0.725755 -v -0.430247 5.464243 -0.707360 -v -0.734536 5.123801 -1.214485 -v -0.685573 5.123511 -1.243338 -v -0.796909 5.069855 -1.444054 -v -0.852920 5.069851 -1.411722 -v -0.920091 5.091953 -1.520123 -v -0.856606 5.091958 -1.556768 -v -0.913586 5.160743 -1.664493 -v -0.984510 5.160740 -1.623558 -v -0.951120 5.157276 -1.647598 -v -0.957939 5.269464 -1.750503 -v -1.036909 5.269464 -1.704926 -v -1.000252 5.267411 -1.732596 -v -0.975835 5.441407 -1.786544 -v -1.059114 5.441407 -1.738478 -v -1.020648 5.441407 -1.767989 -v -1.113416 5.441407 -1.792789 -v -0.995699 5.441407 -1.860732 -v -1.140566 5.479807 -1.819945 -v -1.005629 5.479807 -1.897825 -v -1.095316 5.531006 -1.774685 -v -0.989078 5.531006 -1.836003 -v -1.027439 5.569407 -1.706796 -v -0.964249 5.569407 -1.743269 -v -1.063639 5.595008 -1.743004 -v -0.977490 5.595008 -1.792728 -v -1.104366 5.665406 -1.783737 -v -0.992388 5.665406 -1.848366 -v -1.126991 5.665406 -1.806366 -v -1.000664 5.665406 -1.879278 -v -1.126991 5.697407 -1.806366 -v -1.000664 5.697407 -1.879278 -v -0.446690 5.470578 -0.701562 -v -0.461982 5.480661 -0.698612 -v -0.783824 5.148871 -1.201410 -v -0.898613 5.101691 -1.378865 -v -0.965900 5.123687 -1.472525 -v -1.030241 5.187052 -1.560951 -v -1.083870 5.285051 -1.628364 -v -1.107191 5.441407 -1.655226 -v -1.181372 5.441407 -1.675111 -v -1.218463 5.479807 -1.685053 -v -1.156646 5.531006 -1.668482 -v -1.063919 5.569407 -1.643627 -v -1.113374 5.595008 -1.656883 -v -1.169010 5.665406 -1.671797 -v -1.199917 5.665406 -1.680082 -v -1.199917 5.697407 -1.680082 -v -0.789177 5.077298 -1.304126 -v -0.838332 5.107703 -1.282147 -v -0.869656 5.160480 -1.274563 -v -0.921752 5.156838 -1.354278 -v -0.981772 5.178650 -1.426722 -v -1.038541 5.232628 -1.493445 -v -1.086259 5.312052 -1.541328 -v -1.107201 5.441407 -1.559090 -v -1.181387 5.441407 -1.539221 -v -1.218479 5.479807 -1.529285 -v -1.156659 5.531006 -1.545843 -v -1.063926 5.569407 -1.570679 -v -1.113384 5.595008 -1.557434 -v -1.169023 5.665406 -1.542532 -v -1.199933 5.665406 -1.534253 -v -1.199933 5.697407 -1.534253 -v -0.874906 5.221419 -1.283654 -v -0.916141 5.220516 -1.344552 -v -0.963454 5.242119 -1.394983 -v -1.007189 5.285254 -1.439125 -v -1.043437 5.343229 -1.467137 -v -1.059143 5.441407 -1.475827 -v -1.113456 5.441407 -1.421529 -v -1.140612 5.479807 -1.394378 -v -1.095351 5.531006 -1.439627 -v -1.027460 5.569407 -1.507502 -v -1.063669 5.595008 -1.471301 -v -1.104403 5.665406 -1.430577 -v -1.127033 5.665406 -1.407954 -v -1.127033 5.697407 -1.407954 -v -0.852675 5.274195 -1.306987 -v -0.883280 5.275664 -1.352291 -v -0.915854 5.297085 -1.385816 -v -0.944582 5.330832 -1.412547 -v -0.966877 5.370231 -1.425672 -v -0.975892 5.441407 -1.427749 -v -0.995778 5.441407 -1.353568 -v -1.005722 5.479807 -1.316478 -v -0.989150 5.531006 -1.378294 -v -0.964291 5.569407 -1.471022 -v -0.977549 5.595008 -1.421566 -v -0.992464 5.665406 -1.365932 -v -1.000750 5.665406 -1.335022 -v -1.000750 5.697407 -1.335022 -v -0.809206 5.304605 -1.338784 -v -0.831975 5.307508 -1.375422 -v -0.851728 5.328821 -1.401674 -v -0.867498 5.357145 -1.420831 -v -0.877092 5.385822 -1.428041 -v -0.879755 5.441407 -1.427736 -v -0.859888 5.441407 -1.353550 -v -0.849955 5.479807 -1.316456 -v -0.866511 5.531006 -1.378278 -v -0.891344 5.569407 -1.471010 -v -0.927819 5.569407 -1.466213 -v -0.878099 5.595008 -1.421553 -v -0.863198 5.665406 -1.365914 -v -0.854921 5.665406 -1.335005 -v -0.854921 5.697407 -1.335005 -v -0.755362 5.304673 -1.369219 -v -0.775972 5.307511 -1.407747 -v -0.788254 5.328824 -1.438312 -v -0.796588 5.357148 -1.461758 -v -0.798139 5.385825 -1.473610 -v -0.796490 5.441407 -1.475793 -v -0.742193 5.441407 -1.421479 -v -0.715044 5.479807 -1.394323 -v -0.760293 5.531006 -1.439584 -v -0.828165 5.569407 -1.507477 -v -0.791967 5.595008 -1.471266 -v -0.751243 5.665406 -1.430531 -v -0.728618 5.665406 -1.407900 -v -0.728618 5.697407 -1.407900 -v -0.706357 5.274205 -1.391448 -v -0.730279 5.275675 -1.440605 -v -0.742443 5.297095 -1.485909 -v -0.750855 5.330838 -1.524364 -v -0.751173 5.370237 -1.550168 -v -0.769616 5.379807 -1.509160 -v -0.748410 5.441407 -1.559041 -v -0.674230 5.441407 -1.539153 -v -0.637140 5.479807 -1.529208 -v -0.698957 5.531006 -1.545782 -v -0.791682 5.569407 -1.570644 -v -0.742229 5.595008 -1.557386 -v -0.686594 5.665406 -1.542468 -v -0.655687 5.665406 -1.534181 -v -0.655687 5.697407 -1.534181 -v -0.429326 5.586796 -0.779343 -v -0.397591 5.570380 -0.788089 -v -0.684352 5.287472 -1.339637 -v -0.733378 5.312833 -1.326123 -v -0.648650 5.243540 -1.334631 -v -0.675030 5.221431 -1.399032 -v -0.707136 5.220531 -1.465191 -v -0.726568 5.242130 -1.531714 -v -0.742550 5.285265 -1.591869 -v -0.748779 5.343235 -1.637205 -v -0.748396 5.441407 -1.655179 -v -0.674209 5.441407 -1.675043 -v -0.637117 5.479807 -1.684978 -v -0.698938 5.531006 -1.668422 -v -0.791670 5.569407 -1.643591 -v -0.742214 5.595008 -1.656834 -v -0.686574 5.665406 -1.671732 -v -0.655662 5.665406 -1.680011 -v -0.655662 5.697407 -1.680011 -v -0.635842 5.192812 -1.312450 -v -0.669776 5.160491 -1.389942 -v -0.712747 5.156850 -1.474922 -v -0.744882 5.178664 -1.563453 -v -0.773897 5.232639 -1.646192 -v -0.791597 5.312058 -1.711398 -v -0.796449 5.441407 -1.738443 -v -0.742135 5.441407 -1.792739 -v -0.714976 5.479807 -1.819889 -v -0.760240 5.531006 -1.774641 -v -0.828134 5.569407 -1.706770 -v -0.791923 5.595008 -1.742968 -v -0.751187 5.665406 -1.783690 -v -0.728556 5.665406 -1.806314 -v -0.728556 5.697407 -1.806314 -v -0.649356 5.148880 -1.279036 -v -0.692005 5.107712 -1.366613 -v -0.745605 5.101700 -1.467185 -v -0.792479 5.123696 -1.572623 -v -0.836501 5.187061 -1.672774 -v -0.868155 5.285056 -1.752868 -v -0.879698 5.441407 -1.786525 -v -0.859808 5.441407 -1.860707 -v -0.849863 5.479807 -1.897795 -v -0.866438 5.531006 -1.835980 -v -0.891301 5.569407 -1.743255 -v -0.878041 5.595008 -1.792708 -v -0.863123 5.665406 -1.848343 -v -0.854835 5.665406 -1.879251 -v -0.854835 5.697407 -1.879251 -v -0.735759 5.077236 -1.335295 -v -0.927774 5.569407 -1.748064 -v -0.374937 5.480664 -0.748860 -v -0.366189 5.509104 -0.770491 -v -0.374480 5.541945 -0.784849 -v -0.783124 5.312378 -1.298597 -v -0.461185 5.586796 -0.760950 -v -0.818813 5.287462 -1.262015 -v -0.484630 5.570374 -0.737844 -v -0.832330 5.243531 -1.228599 -v -0.493380 5.541935 -0.716213 -v -0.819524 5.192803 -1.206417 -v -0.485091 5.509098 -0.701854 -v -0.119037 5.515944 0.289109 -v -0.082623 5.517920 0.328738 -v -0.100609 5.488284 0.359894 -v -0.137023 5.486310 0.320264 -v -0.172770 5.486310 0.299627 -v -0.154784 5.515944 0.268472 -v -0.068106 5.582496 0.303591 -v -0.139273 5.583405 0.241603 -v -0.072721 5.666270 0.311587 -v -0.143897 5.670815 0.249613 -v -0.095057 5.742265 0.350276 -v -0.167054 5.750560 0.289726 -v -0.137044 5.792035 0.423005 -v -0.210752 5.803005 0.365418 -v -0.182738 5.797686 0.502156 -v -0.258593 5.809513 0.448289 -v -0.324419 5.676223 0.748908 -v -0.405627 5.684768 0.702980 -v -0.355589 5.659646 0.802901 -v -0.436797 5.668191 0.756972 -v -0.408784 5.679368 0.896259 -v -0.381337 5.656149 0.846167 -v -0.461369 5.665982 0.799535 -v -0.488927 5.692117 0.847271 -v -0.409976 5.695159 0.898324 -v -0.490120 5.707908 0.849337 -v -0.435656 5.686442 0.934127 -v -0.420068 5.701816 0.907125 -v -0.498510 5.708117 0.863871 -v -0.514098 5.692743 0.890871 -v -0.445265 5.640802 0.957188 -v -0.439263 5.667114 0.946790 -v -0.524893 5.671900 0.909571 -v -0.530895 5.645587 0.919968 -v -0.444478 5.591613 0.955186 -v -0.530315 5.594168 0.918963 -v -0.427402 5.544410 0.926044 -v -0.514752 5.543750 0.892004 -v -0.390876 5.518014 0.862691 -v -0.477606 5.514775 0.827661 -v -0.391739 5.442576 0.865022 -v -0.384531 5.489536 0.852536 -v -0.470425 5.485821 0.815222 -v -0.477634 5.438861 0.827709 -v -0.393012 5.360417 0.866391 -v -0.477664 5.355863 0.827762 -v -0.374495 5.306975 0.834316 -v -0.458508 5.299571 0.794579 -v -0.341133 5.281743 0.776526 -v -0.423758 5.272824 0.734386 -v -0.305125 5.285222 0.710622 -v -0.381805 5.278866 0.661715 -v -0.309330 5.311057 0.721437 -v -0.300946 5.295666 0.706915 -v -0.375208 5.290197 0.650288 -v -0.383593 5.305588 0.664812 -v -0.318367 5.360498 0.737091 -v -0.393163 5.357014 0.681389 -v -0.313002 5.426218 0.727799 -v -0.387744 5.425636 0.672002 -v -0.284625 5.495645 0.678643 -v -0.358351 5.498289 0.621089 -v -0.259670 5.539909 0.638456 -v -0.335124 5.539687 0.580856 -v -0.242191 5.471096 0.605141 -v -0.244273 5.520258 0.608747 -v -0.329340 5.522835 0.570836 -v -0.327259 5.473672 0.567231 -v -0.223560 5.362035 0.572911 -v -0.307941 5.359894 0.533769 -v -0.191993 5.287212 0.520425 -v -0.206294 5.316366 0.545196 -v -0.294698 5.315586 0.510830 -v -0.280398 5.286431 0.486059 -v -0.212206 5.265692 0.555557 -v -0.193962 5.267126 0.523954 -v -0.282370 5.271138 0.489474 -v -0.300614 5.269704 0.521076 -v -0.243145 5.225375 0.605846 -v -0.231266 5.253418 0.585270 -v -0.315675 5.254966 0.547166 -v -0.327554 5.226924 0.567742 -v -0.229613 5.146736 0.581950 -v -0.243450 5.194917 0.605917 -v -0.326575 5.188813 0.566046 -v -0.312739 5.140632 0.542079 -v -0.182611 5.109948 0.501937 -v -0.210715 5.122450 0.550618 -v -0.291769 5.110291 0.505755 -v -0.263665 5.097790 0.457074 -v -0.119473 5.179461 0.392173 -v -0.158903 5.118040 0.460537 -v -0.236997 5.106178 0.410880 -v -0.194436 5.170083 0.337156 -v -0.108053 5.259162 0.372788 -v -0.181874 5.254062 0.315397 -v -0.121018 5.356741 0.395210 -v -0.195912 5.356647 0.339714 -v -0.139603 5.417790 0.427402 -v -0.214497 5.417697 0.371905 -v -0.116213 5.469887 0.380787 -v -0.137225 5.458251 0.417185 -v -0.213282 5.454040 0.369802 -v -0.192270 5.465675 0.333405 -v -0.099648 5.533141 0.400300 -v -0.124998 5.534671 0.403254 -v -0.131276 5.504072 0.414128 -v -0.110469 5.501982 0.419044 -v -0.132750 5.537968 0.414722 -v -0.124127 5.538089 0.440742 -v -0.129583 5.520028 0.450192 -v -0.139028 5.507370 0.425596 -v -0.162996 5.465744 0.461827 -v -0.148920 5.457216 0.437445 -v -0.125194 5.475670 0.437304 -v -0.182479 5.483232 0.563838 -v -0.184112 5.538704 0.566666 -v -0.195822 5.515820 0.586950 -v -0.194125 5.475719 0.584010 -v -0.166476 5.217666 0.536118 -v -0.147986 5.186327 0.504089 -v -0.115577 5.233723 0.447950 -v -0.157452 5.262099 0.501669 -v -0.350009 5.324542 0.832860 -v -0.320181 5.301105 0.781192 -v -0.303268 5.315813 0.773068 -v -0.321158 5.339489 0.804056 -v -0.389776 5.657892 0.904292 -v -0.397399 5.668571 0.917498 -v -0.393127 5.651269 0.928720 -v -0.391950 5.634236 0.926681 -v -0.308271 5.511280 0.781733 -v -0.285395 5.561415 0.742108 -v -0.293787 5.613324 0.756643 -v -0.331620 5.588543 0.822179 -v -0.377872 5.590698 0.902296 -v -0.366827 5.556879 0.883164 -v -0.352390 5.572126 0.858156 -v -0.364606 5.448348 0.858981 -v -0.366318 5.373504 0.861110 -v -0.336309 5.368674 0.830300 -v -0.330162 5.424644 0.819653 -v -0.085579 5.608974 0.395988 -v -0.069508 5.577381 0.346979 -v -0.073289 5.652568 0.353527 -v -0.090172 5.657471 0.403945 -v -0.096187 5.503573 0.414362 -v -0.083441 5.531240 0.392285 -v -0.176240 5.662285 0.533731 -v -0.154712 5.666801 0.495768 -v -0.138058 5.715039 0.486892 -v -0.158285 5.719302 0.521928 -v -0.131005 5.412295 0.453470 -v -0.116234 5.362868 0.427883 -v -0.103853 5.274145 0.406470 -v -0.110079 5.201977 0.416859 -v -0.142028 5.144361 0.472268 -v -0.165738 5.136270 0.513667 -v -0.188661 5.146466 0.553374 -v -0.207558 5.170753 0.584706 -v -0.214156 5.197310 0.596134 -v -0.213850 5.227768 0.596063 -v -0.205375 5.243670 0.581382 -v -0.186317 5.255943 0.551668 -v -0.155482 5.282185 0.498139 -v -0.181207 5.325606 0.542699 -v -0.198472 5.371274 0.570415 -v -0.214610 5.470294 0.598324 -v -0.216308 5.510393 0.601264 -v -0.219823 5.592010 0.565636 -v -0.238136 5.557381 0.597358 -v -0.210172 5.547515 0.589875 -v -0.198461 5.570402 0.569590 -v -0.188499 5.625658 0.512135 -v -0.170086 5.601588 0.521199 -v -0.137243 5.604552 0.421713 -v -0.172110 5.629180 0.482782 -v -0.153698 5.605110 0.491846 -v -0.127944 5.583147 0.446562 -v -0.168409 5.474578 0.479693 -v -0.151413 5.486594 0.450253 -v -0.141966 5.499254 0.474850 -v -0.166320 5.473194 0.517037 -v -0.156333 5.450655 0.458402 -v -0.170408 5.459183 0.482783 -v -0.168322 5.457798 0.520127 -v -0.147736 5.445159 0.484469 -v -0.110424 5.628274 0.419989 -v -0.129251 5.612298 0.411642 -v -0.169844 5.648447 0.481021 -v -0.226130 5.603806 0.577879 -v -0.191372 5.643930 0.518984 -v -0.216377 5.612260 0.601945 -v -0.244443 5.569179 0.609600 -v -0.233660 5.578382 0.631882 -v -0.248886 5.549114 0.660737 -v -0.281987 5.486811 0.715033 -v -0.307047 5.424101 0.758442 -v -0.311525 5.365025 0.766199 -v -0.303150 5.320957 0.751691 -v -0.296311 5.308403 0.739844 -v -0.300490 5.297959 0.743554 -v -0.305751 5.297311 0.752666 -v -0.355304 5.497252 0.842869 -v -0.361650 5.525727 0.853025 -v -0.394198 5.550106 0.909490 -v -0.413732 5.590175 0.942889 -v -0.416368 5.632510 0.948090 -v -0.411098 5.655898 0.938962 -v -0.407493 5.675226 0.926298 -v -0.365643 5.636914 0.859941 -v -0.339895 5.640411 0.816674 -v -0.302504 5.662618 0.751907 -v -0.171847 5.773489 0.524250 -v -0.130528 5.767262 0.452677 -v -0.093056 5.721624 0.387769 -v -0.083224 5.519274 0.370738 -v -0.097895 5.495102 0.396150 -v -0.113498 5.476707 0.417043 -v -0.162023 5.472592 0.460141 -v -0.124221 5.482518 0.435617 -v -0.145027 5.484608 0.430701 -v -0.294130 5.311946 0.757238 -v -0.157783 5.494235 0.521059 -v -0.133428 5.520294 0.478872 -v -0.127973 5.538355 0.469422 -v -0.132244 5.555797 0.476821 -v -0.156255 5.570638 0.518412 -v -0.167672 5.504280 0.538189 -v -0.179969 5.235818 0.559490 -v -0.188445 5.219917 0.574172 -v -0.323551 5.463790 0.808201 -v -0.127948 5.376470 0.469380 -v -0.142720 5.425898 0.494967 -v -0.163305 5.438536 0.530624 -v -0.174950 5.431025 0.550795 -v -0.165466 5.349375 0.534367 -v -0.139741 5.305954 0.489808 -v -0.112907 5.273817 0.443326 -v -0.261047 5.605947 0.699931 -v -0.353325 5.282185 0.383924 -v -0.353981 5.305954 0.366126 -v -0.327147 5.273817 0.319644 -v -0.329817 5.233723 0.324269 -v -0.355397 5.262099 0.387395 -v -0.430051 5.578382 0.518505 -v -0.447425 5.549114 0.546120 -v -0.475286 5.605947 0.576250 -v -0.405364 5.569179 0.516700 -v -0.397915 5.557381 0.505116 -v -0.404709 5.520258 0.516126 -v -0.422737 5.539909 0.544316 -v -0.499055 5.320957 0.638594 -v -0.535398 5.339489 0.680374 -v -0.507431 5.365025 0.653102 -v -0.412768 5.612260 0.488568 -v -0.372525 5.719302 0.398247 -v -0.373767 5.662285 0.419698 -v -0.381912 5.504280 0.414508 -v -0.398352 5.538704 0.442984 -v -0.370495 5.570638 0.394731 -v -0.499635 5.561415 0.618426 -v -0.508026 5.613324 0.632962 -v -0.508370 5.311946 0.633556 -v -0.492216 5.308403 0.626747 -v -0.493339 5.297959 0.632222 -v -0.537791 5.463790 0.684520 -v -0.522511 5.511280 0.658051 -v -0.502953 5.424101 0.645345 -v -0.353430 5.643930 0.425428 -v -0.331319 5.648447 0.387801 -v -0.331711 5.629180 0.390644 -v -0.348935 5.625658 0.419515 -v -0.365992 5.601588 0.408102 -v -0.348767 5.605110 0.379232 -v -0.379706 5.349375 0.410686 -v -0.379050 5.325606 0.428484 -v -0.394418 5.371274 0.457295 -v -0.394209 5.235818 0.435809 -v -0.400463 5.243670 0.468757 -v -0.384261 5.255943 0.437394 -v -0.402685 5.219917 0.450490 -v -0.408847 5.197310 0.483738 -v -0.408939 5.227768 0.483438 -v -0.362226 5.186327 0.380407 -v -0.384566 5.146466 0.440277 -v -0.402250 5.170753 0.472310 -v -0.380716 5.217666 0.412436 -v -0.337648 5.144361 0.359336 -v -0.361644 5.136270 0.400570 -v -0.356960 5.425898 0.371285 -v -0.345360 5.445159 0.370380 -v -0.326882 5.412295 0.340390 -v -0.595512 5.668571 0.803127 -v -0.607367 5.651269 0.805039 -v -0.607250 5.655898 0.825723 -v -0.598086 5.675226 0.816268 -v -0.377545 5.438536 0.406943 -v -0.396719 5.483232 0.440156 -v -0.372023 5.494235 0.397377 -v -0.364270 5.473194 0.402759 -v -0.365946 5.457798 0.406038 -v -0.405419 5.547515 0.477158 -v -0.410062 5.515820 0.463269 -v -0.412214 5.510393 0.488167 -v -0.317148 5.472592 0.370586 -v -0.318122 5.465744 0.372272 -v -0.332563 5.459183 0.389171 -v -0.330887 5.474578 0.385894 -v -0.347668 5.520294 0.355191 -v -0.324754 5.520028 0.337519 -v -0.339916 5.499254 0.360573 -v -0.314814 5.482518 0.325587 -v -0.307338 5.501982 0.305390 -v -0.310426 5.503573 0.290681 -v -0.293800 5.495102 0.283053 -v -0.304091 5.476707 0.307013 -v -0.315788 5.475670 0.327273 -v -0.300152 5.484608 0.341146 -v -0.313891 5.486594 0.356454 -v -0.298731 5.507370 0.333398 -v -0.292676 5.504072 0.320950 -v -0.551934 5.497252 0.729354 -v -0.557556 5.525727 0.739928 -v -0.566630 5.572126 0.734474 -v -0.545860 5.588543 0.698497 -v -0.312110 5.362868 0.314802 -v -0.342188 5.376470 0.345698 -v -0.261045 5.488284 0.267273 -v -0.271337 5.469887 0.291234 -v -0.561549 5.636914 0.746844 -v -0.541773 5.656149 0.753547 -v -0.517180 5.659646 0.709613 -v -0.536956 5.640411 0.702910 -v -0.575194 5.701816 0.817571 -v -0.572619 5.695159 0.804430 -v -0.599945 5.667114 0.854028 -v -0.590782 5.686442 0.844572 -v -0.545691 5.489536 0.759497 -v -0.551312 5.518014 0.770071 -v -0.545915 5.324542 0.719763 -v -0.562224 5.373504 0.748013 -v -0.550549 5.368674 0.706619 -v -0.461382 5.295666 0.614294 -v -0.462503 5.285222 0.619768 -v -0.517508 5.315813 0.649386 -v -0.351657 5.666801 0.382071 -v -0.322430 5.583147 0.334285 -v -0.319299 5.538089 0.328068 -v -0.342213 5.538355 0.345740 -v -0.346484 5.555797 0.353140 -v -0.292454 5.537968 0.322524 -v -0.296261 5.604552 0.329911 -v -0.291536 5.612298 0.317954 -v -0.286399 5.534671 0.310076 -v -0.393709 5.570402 0.456873 -v -0.379603 5.592010 0.473395 -v -0.387051 5.603806 0.484979 -v -0.410516 5.470294 0.485227 -v -0.408365 5.475719 0.460328 -v -0.389190 5.431025 0.427114 -v -0.368667 5.316366 0.451458 -v -0.384034 5.362035 0.480269 -v -0.356438 5.267126 0.430156 -v -0.354366 5.287212 0.426686 -v -0.390883 5.253418 0.493123 -v -0.374683 5.265692 0.461759 -v -0.402670 5.194917 0.513999 -v -0.402762 5.225375 0.513699 -v -0.371151 5.122450 0.457998 -v -0.388834 5.146736 0.490031 -v -0.319051 5.118040 0.368082 -v -0.343047 5.109948 0.409317 -v -0.305642 5.201977 0.303960 -v -0.299758 5.274145 0.293373 -v -0.300008 5.417790 0.334800 -v -0.318488 5.450655 0.364790 -v -0.477893 5.486811 0.601936 -v -0.499566 5.662618 0.638143 -v -0.367753 5.773489 0.411153 -v -0.352298 5.715039 0.363210 -v -0.326434 5.767262 0.339580 -v -0.297681 5.531240 0.268604 -v -0.279130 5.519274 0.257641 -v -0.308179 5.628274 0.305824 -v -0.299819 5.608974 0.272307 -v -0.296517 5.533141 0.286647 -v -0.304412 5.657471 0.280263 -v -0.288962 5.721624 0.274672 -v -0.269194 5.652568 0.240430 -v -0.544402 5.424644 0.695972 -v -0.581067 5.556879 0.759482 -v -0.590179 5.550106 0.796350 -v -0.592112 5.590698 0.778615 -v -0.609333 5.590175 0.829968 -v -0.606190 5.634236 0.802999 -v -0.612520 5.632510 0.834851 -v -0.587888 5.657892 0.789921 -v -0.304046 5.457216 0.347891 -v -0.292349 5.458251 0.327632 -v -0.208518 5.486310 0.278990 -v -0.265414 5.577381 0.233882 -v -0.561236 5.448348 0.745466 -v -0.498599 5.297311 0.641334 -v -0.516087 5.301105 0.668095 -v -0.243059 5.517920 0.236117 -v -0.228542 5.582496 0.210971 -v -0.233158 5.666270 0.218966 -v -0.255493 5.742265 0.257656 -v -0.297480 5.792035 0.330384 -v -0.343174 5.797686 0.409536 -v -0.486010 5.676223 0.655621 -v -0.571427 5.679368 0.802365 -v -0.605947 5.640802 0.864426 -v -0.604608 5.591613 0.862743 -v -0.587911 5.544410 0.833382 -v -0.552899 5.442576 0.771984 -v -0.553448 5.360417 0.773771 -v -0.534931 5.306975 0.741696 -v -0.501569 5.281743 0.683906 -v -0.469766 5.311057 0.628817 -v -0.478803 5.360498 0.644471 -v -0.473439 5.426218 0.635179 -v -0.445061 5.495645 0.586023 -v -0.402627 5.471096 0.512520 -v -0.279566 5.179461 0.299751 -v -0.268490 5.259162 0.280168 -v -0.281423 5.356741 0.302607 -v -0.190532 5.515944 0.247835 -v -0.429282 5.464243 0.707915 -v -0.397417 5.464243 0.726313 -v -0.684420 5.123801 1.243417 -v -0.733891 5.123511 1.215444 -v -0.852034 5.069855 1.412230 -v -0.796026 5.069851 1.444567 -v -0.856310 5.091953 1.556943 -v -0.919791 5.091958 1.520291 -v -0.984586 5.160743 1.623505 -v -0.913671 5.160740 1.664454 -v -0.951186 5.157276 1.647560 -v -1.036891 5.269464 1.704924 -v -0.957932 5.269464 1.750519 -v -1.000224 5.267411 1.732612 -v -1.059154 5.441407 1.738444 -v -0.975884 5.441407 1.786527 -v -1.020675 5.441407 1.767973 -v -0.995762 5.441407 1.860711 -v -1.113466 5.441407 1.792745 -v -1.005703 5.479807 1.897802 -v -1.140623 5.479807 1.819893 -v -0.989136 5.531006 1.835983 -v -1.095362 5.531006 1.774645 -v -0.964287 5.569407 1.743254 -v -1.027472 5.569407 1.706770 -v -0.977541 5.595008 1.792709 -v -1.063681 5.595008 1.742970 -v -0.992449 5.665406 1.848347 -v -1.104413 5.665406 1.783694 -v -1.000732 5.665406 1.879256 -v -1.127044 5.665406 1.806318 -v -1.000732 5.697407 1.879256 -v -1.127044 5.697407 1.806318 -v -0.384174 5.470578 0.737653 -v -0.373973 5.480661 0.749420 -v -0.648450 5.148871 1.279562 -v -0.744723 5.101691 1.467707 -v -0.792184 5.123687 1.572812 -v -0.836586 5.187052 1.672749 -v -0.868147 5.285051 1.752901 -v -0.879747 5.441407 1.786530 -v -0.859872 5.441407 1.860714 -v -0.849934 5.479807 1.897806 -v -0.866497 5.531006 1.835986 -v -0.891341 5.569407 1.743257 -v -0.878091 5.595008 1.792713 -v -0.863184 5.665406 1.848351 -v -0.854903 5.665406 1.879260 -v -0.854903 5.697407 1.879260 -v -0.734724 5.077298 1.335562 -v -0.691110 5.107703 1.367139 -v -0.668878 5.160480 1.390473 -v -0.711860 5.156838 1.475450 -v -0.744582 5.178650 1.563653 -v -0.773976 5.232628 1.646180 -v -0.791580 5.312052 1.711448 -v -0.796489 5.441407 1.738465 -v -0.742185 5.441407 1.792774 -v -0.715033 5.479807 1.819926 -v -0.760285 5.531006 1.774671 -v -0.828165 5.569407 1.706784 -v -0.791964 5.595008 1.742991 -v -0.751235 5.665406 1.783722 -v -0.728609 5.665406 1.806350 -v -0.728609 5.697407 1.806350 -v -0.674126 5.221419 1.399565 -v -0.706243 5.220516 1.465726 -v -0.726257 5.242119 1.531918 -v -0.742613 5.285254 1.591866 -v -0.748745 5.343229 1.637263 -v -0.748417 5.441407 1.655210 -v -0.674235 5.441407 1.675092 -v -0.637143 5.479807 1.685033 -v -0.698961 5.531006 1.668464 -v -0.791690 5.569407 1.643613 -v -0.742234 5.595008 1.656867 -v -0.686598 5.665406 1.671777 -v -0.655689 5.665406 1.680062 -v -0.655689 5.697407 1.680062 -v -0.705449 5.274195 1.391981 -v -0.729377 5.275664 1.441139 -v -0.742121 5.297085 1.486113 -v -0.750904 5.330832 1.524358 -v -0.751121 5.370231 1.550228 -v -0.748412 5.441407 1.559074 -v -0.674228 5.441407 1.539200 -v -0.637136 5.479807 1.529264 -v -0.698955 5.531006 1.545825 -v -0.791687 5.569407 1.570667 -v -0.742229 5.595008 1.557417 -v -0.686592 5.665406 1.542514 -v -0.655681 5.665406 1.534232 -v -0.655681 5.697407 1.534232 -v -0.754723 5.304605 1.370238 -v -0.775065 5.307508 1.408277 -v -0.787921 5.328821 1.438510 -v -0.796624 5.357145 1.461746 -v -0.798071 5.385822 1.473660 -v -0.796475 5.441407 1.475814 -v -0.742165 5.441407 1.421512 -v -0.715010 5.479807 1.394360 -v -0.760268 5.531006 1.439612 -v -0.828154 5.569407 1.507490 -v -0.805761 5.569407 1.536678 -v -0.791949 5.595008 1.471288 -v -0.751217 5.665406 1.430561 -v -0.728589 5.665406 1.407937 -v -0.728589 5.697407 1.407937 -v -0.808004 5.304673 1.338829 -v -0.831063 5.307511 1.375943 -v -0.851389 5.328824 1.401864 -v -0.867526 5.357148 1.420805 -v -0.877015 5.385825 1.428075 -v -0.879729 5.441407 1.427739 -v -0.859846 5.441407 1.353558 -v -0.849905 5.479807 1.316468 -v -0.866473 5.531006 1.378286 -v -0.891328 5.569407 1.471013 -v -0.878071 5.595008 1.421558 -v -0.863160 5.665406 1.365921 -v -0.854875 5.665406 1.335012 -v -0.854875 5.697407 1.335012 -v -0.851760 5.274205 1.307507 -v -0.882366 5.275675 1.352804 -v -0.915516 5.297095 1.385993 -v -0.944611 5.330838 1.412507 -v -0.966799 5.370237 1.425687 -v -0.922064 5.379807 1.421152 -v -0.975864 5.441407 1.427731 -v -0.995736 5.441407 1.353546 -v -1.005671 5.479807 1.316454 -v -0.989112 5.531006 1.378275 -v -0.964274 5.569407 1.471006 -v -0.977521 5.595008 1.421551 -v -0.992424 5.665406 1.365912 -v -1.000703 5.665406 1.335002 -v -1.000703 5.697407 1.335002 -v -0.460214 5.586796 0.761511 -v -0.483658 5.570380 0.738402 -v -0.817895 5.287472 1.262542 -v -0.781677 5.312833 1.298240 -v -0.831413 5.243540 1.229121 -v -0.873993 5.221431 1.284170 -v -0.915231 5.220531 1.345057 -v -0.963121 5.242130 1.395151 -v -1.007223 5.285265 1.439072 -v -1.043369 5.343235 1.467137 -v -1.059125 5.441407 1.475793 -v -1.113426 5.441407 1.421481 -v -1.140577 5.479807 1.394328 -v -1.095326 5.531006 1.439586 -v -1.027450 5.569407 1.507474 -v -1.063651 5.595008 1.471268 -v -1.104375 5.665406 1.430534 -v -1.127003 5.665406 1.407905 -v -1.127003 5.697407 1.407905 -v -0.818610 5.192812 1.206938 -v -0.868748 5.160491 1.275075 -v -0.920852 5.156850 1.354783 -v -0.981449 5.178664 1.426882 -v -1.038591 5.232639 1.493383 -v -1.086208 5.312058 1.541319 -v -1.107203 5.441407 1.559044 -v -1.181383 5.441407 1.539160 -v -1.218475 5.479807 1.529217 -v -1.156656 5.531006 1.545789 -v -1.063930 5.569407 1.570644 -v -1.113384 5.595008 1.557388 -v -1.169020 5.665406 1.542474 -v -1.199928 5.665406 1.534189 -v -1.199928 5.697407 1.534189 -v -0.782915 5.148880 1.201931 -v -0.837429 5.107712 1.282659 -v -0.897720 5.101700 1.379368 -v -0.965589 5.123696 1.472686 -v -1.030305 5.187061 1.560890 -v -1.083836 5.285056 1.628354 -v -1.107211 5.441407 1.655181 -v -1.181399 5.441407 1.675052 -v -1.218489 5.479807 1.684986 -v -1.156670 5.531006 1.668428 -v -1.063938 5.569407 1.643591 -v -1.113395 5.595008 1.656838 -v -1.169034 5.665406 1.671740 -v -1.199944 5.665406 1.680019 -v -1.199944 5.697407 1.680019 -v -0.788428 5.077236 1.304889 -v -1.049863 5.569407 1.677581 -v -0.461015 5.480664 0.699167 -v -0.484121 5.509104 0.702409 -v -0.492409 5.541945 0.716769 -v -0.732963 5.312378 1.327555 -v -0.428355 5.586796 0.779903 -v -0.683437 5.287462 1.340168 -v -0.396621 5.570374 0.788652 -v -0.647740 5.243531 1.335163 -v -0.373513 5.541935 0.785412 -v -0.634934 5.192803 1.312981 -v -0.365224 5.509098 0.771053 -v -0.255882 6.871280 0.000000 -v -0.255882 6.823281 0.000000 -v -0.207882 6.815281 0.000000 -v -0.175883 6.775281 0.000000 -v -0.111882 6.751280 0.000000 -v -0.143882 6.727280 0.000000 -v -0.135882 6.671281 0.000000 -v -0.143882 6.607280 0.000000 -v -0.175883 6.535279 0.000000 -v -0.239882 6.479280 0.000000 -v -0.239882 6.439281 0.000000 -v -0.307844 6.439281 0.000000 -v -0.331844 6.391280 0.000000 -v -0.283844 6.359281 0.000000 -v -0.227844 6.287280 0.000000 -v -0.179844 6.135281 0.000000 -v -0.171844 5.991281 0.000000 -v -0.243844 5.991281 0.000000 -v -0.243844 5.927280 0.000000 -v -0.187844 5.927280 0.000000 -v -0.187844 5.847281 0.000000 -v -0.239774 5.847281 0.000000 -v -0.295774 5.791280 0.000000 -v -0.295774 5.023280 0.000000 -v -0.351774 5.023280 0.000000 -v -0.399774 4.967279 0.000000 -v -0.401771 4.865267 0.000000 -v -0.355758 4.767281 0.000000 -v -0.411919 -0.855625 0.000000 -v -0.525026 -0.855625 0.000000 -v -0.581026 -0.903625 0.000000 -v -0.581026 -1.079625 0.000000 -v -0.541026 -1.127625 0.000000 -v -0.449117 -1.127625 0.000000 -v -0.425117 -1.183625 0.000000 -v -0.441708 -1.365037 0.000000 -v -0.511333 -1.530860 0.000000 -v -0.564391 -1.673745 0.000000 -v -0.660251 -1.819721 0.000000 -v -0.932420 -1.996708 0.000000 -v -1.076103 -2.040090 0.000000 -v -1.100103 -2.072090 0.000000 -v -1.100103 -2.128090 0.000000 -v -1.076103 -2.160089 0.000000 -v -1.012103 -2.192089 0.000000 -v -1.004103 -2.256090 0.000000 -v -1.028103 -2.356090 0.000000 -v -1.108103 -2.524090 0.000000 -v -1.192103 -2.600090 0.000000 -v -1.256103 -2.602085 0.000000 -v -1.304103 -2.642078 0.000000 -v -1.304103 -2.728091 0.000000 -v -1.272103 -2.760090 0.000000 -v -1.224103 -2.760090 0.000000 -v -1.224103 -3.284090 0.000000 -v -1.182394 -3.284090 0.316816 -v -1.182394 -2.760090 0.316816 -v -1.228759 -2.760090 0.329239 -v -1.259668 -2.728091 0.337521 -v -1.259668 -2.642078 0.337521 -v -1.213304 -2.602085 0.325098 -v -1.151484 -2.600090 0.308534 -v -1.070347 -2.524090 0.286793 -v -0.993072 -2.356090 0.266088 -v -0.969890 -2.256090 0.259877 -v -0.977618 -2.192089 0.261947 -v -1.039437 -2.160089 0.278511 -v -1.062619 -2.128090 0.284723 -v -1.062619 -2.072090 0.284723 -v -1.039437 -2.040090 0.278511 -v -0.900649 -1.996708 0.241324 -v -0.637754 -1.819721 0.170883 -v -0.545161 -1.673745 0.146073 -v -0.493910 -1.530860 0.132340 -v -0.426657 -1.365037 0.114321 -v -0.410632 -1.183625 0.110027 -v -0.433814 -1.127625 0.116238 -v -0.522592 -1.127625 0.140026 -v -0.561229 -1.079625 0.150378 -v -0.561229 -0.903625 0.150378 -v -0.507137 -0.855625 0.135884 -v -0.397884 -0.855625 0.106611 -v -0.386152 4.967279 0.103467 -v -0.131252 6.671281 0.035168 -v -0.108070 6.751280 0.028957 -v -1.060110 -3.284090 0.612042 -v -1.060110 -2.760090 0.612042 -v -1.101679 -2.760090 0.636042 -v -1.129392 -2.728091 0.652042 -v -1.129392 -2.642078 0.652042 -v -1.087823 -2.602085 0.628042 -v -1.032397 -2.600090 0.596043 -v -0.959650 -2.524090 0.554043 -v -0.890368 -2.356090 0.514044 -v -0.869583 -2.256090 0.502044 -v -0.876511 -2.192089 0.506044 -v -0.931937 -2.160089 0.538043 -v -0.952722 -2.128090 0.550043 -v -0.952722 -2.072090 0.550043 -v -0.931937 -2.040090 0.538043 -v -0.807503 -1.996708 0.466203 -v -0.571797 -1.819721 0.330120 -v -0.488780 -1.673745 0.282191 -v -0.442829 -1.530860 0.255662 -v -0.382532 -1.365037 0.220851 -v -0.368164 -1.183625 0.212555 -v -0.388949 -1.127625 0.224555 -v -0.468545 -1.127625 0.270509 -v -0.503186 -1.079625 0.290509 -v -0.503186 -0.903625 0.290509 -v -0.454688 -0.855625 0.262509 -v -0.356734 -0.855625 0.205956 -v -0.308097 4.767281 0.177876 -v -0.347946 4.865267 0.200882 -v -0.346216 4.967279 0.199884 -v -0.304647 5.023280 0.175884 -v -0.256149 5.023280 0.147885 -v -0.256149 5.791280 0.147885 -v -0.207651 5.847281 0.119885 -v -0.162678 5.847281 0.093921 -v -0.162678 5.927280 0.093921 -v -0.211176 5.927280 0.121920 -v -0.211176 5.991281 0.121920 -v -0.148822 5.991281 0.085921 -v -0.155750 6.135281 0.089921 -v -0.197320 6.287280 0.113920 -v -0.245817 6.359281 0.141920 -v -0.287387 6.391280 0.165919 -v -0.266602 6.439281 0.153920 -v -0.207745 6.439281 0.119939 -v -0.207745 6.479280 0.119939 -v -0.152320 6.535279 0.087940 -v -0.124606 6.607280 0.071940 -v -0.117678 6.671281 0.067940 -v -0.124606 6.727280 0.071940 -v -0.096893 6.751280 0.055940 -v -0.152320 6.775281 0.087940 -v -0.180032 6.815281 0.103939 -v -0.221601 6.823281 0.127939 -v -0.221601 6.871280 0.127939 -v -0.865583 -3.284090 0.865560 -v -0.865583 -2.760090 0.865560 -v -0.899524 -2.760090 0.899501 -v -0.922152 -2.728091 0.922128 -v -0.922152 -2.642078 0.922128 -v -0.888211 -2.602085 0.888187 -v -0.842955 -2.600090 0.842933 -v -0.783557 -2.524090 0.783537 -v -0.726988 -2.356090 0.726969 -v -0.710017 -2.256090 0.709999 -v -0.715674 -2.192089 0.715655 -v -0.760930 -2.160089 0.760910 -v -0.777901 -2.128090 0.777880 -v -0.777901 -2.072090 0.777880 -v -0.760930 -2.040090 0.760910 -v -0.659329 -1.996708 0.659312 -v -0.466874 -1.819721 0.466862 -v -0.399090 -1.673745 0.399080 -v -0.361571 -1.530860 0.361562 -v -0.312339 -1.365037 0.312330 -v -0.300607 -1.183625 0.300599 -v -0.317578 -1.127625 0.317569 -v -0.382568 -1.127625 0.382558 -v -0.410853 -1.079625 0.410842 -v -0.410853 -0.903625 0.410842 -v -0.371254 -0.855625 0.371245 -v -0.291275 -0.855625 0.291267 -v -0.132827 5.927280 0.132824 -v -0.172426 5.927280 0.172421 -v -0.161112 6.287280 0.161108 -v -0.200711 6.359281 0.200705 -v -0.234652 6.391280 0.234646 -v -0.101741 6.727280 0.101739 -v -0.079114 6.751280 0.079111 -v -0.612070 -3.284090 1.060094 -v -0.612070 -2.760090 1.060094 -v -0.636071 -2.760090 1.101662 -v -0.652071 -2.728091 1.129375 -v -0.652071 -2.642078 1.129375 -v -0.628071 -2.602085 1.087806 -v -0.596070 -2.600090 1.032381 -v -0.554068 -2.524090 0.959636 -v -0.514067 -2.356090 0.890354 -v -0.502067 -2.256090 0.869570 -v -0.506067 -2.192089 0.876498 -v -0.538068 -2.160089 0.931923 -v -0.550068 -2.128090 0.952708 -v -0.550068 -2.072090 0.952708 -v -0.538068 -2.040090 0.931923 -v -0.466224 -1.996708 0.807491 -v -0.330135 -1.819721 0.571788 -v -0.282204 -1.673745 0.488772 -v -0.255674 -1.530860 0.442823 -v -0.220861 -1.365037 0.382526 -v -0.212565 -1.183625 0.368158 -v -0.224565 -1.127625 0.388943 -v -0.270521 -1.127625 0.468538 -v -0.290522 -1.079625 0.503178 -v -0.290522 -0.903625 0.503178 -v -0.262521 -0.855625 0.454681 -v -0.205966 -0.855625 0.356729 -v -0.177884 4.767281 0.308092 -v -0.200892 4.865267 0.347940 -v -0.199893 4.967279 0.346211 -v -0.175892 5.023280 0.304642 -v -0.147891 5.023280 0.256145 -v -0.147891 5.791280 0.256145 -v -0.119891 5.847281 0.207648 -v -0.093925 5.847281 0.162676 -v -0.093925 5.927280 0.162676 -v -0.121926 5.927280 0.211173 -v -0.121926 5.991281 0.211173 -v -0.085925 5.991281 0.148820 -v -0.089925 6.135281 0.155748 -v -0.113925 6.287280 0.197317 -v -0.141926 6.359281 0.245814 -v -0.165927 6.391280 0.287382 -v -0.153927 6.439281 0.266598 -v -0.119945 6.439281 0.207742 -v -0.119945 6.479280 0.207742 -v -0.087944 6.535279 0.152318 -v -0.071943 6.607280 0.124604 -v -0.067943 6.671281 0.117676 -v -0.071943 6.727280 0.124604 -v -0.055943 6.751280 0.096892 -v -0.087944 6.775281 0.152318 -v -0.103944 6.815281 0.180029 -v -0.127945 6.823281 0.221598 -v -0.127945 6.871280 0.221598 -v -0.316847 -3.284090 1.182386 -v -0.316847 -2.760090 1.182386 -v -0.329271 -2.760090 1.228750 -v -0.337554 -2.728091 1.259659 -v -0.337554 -2.642078 1.259659 -v -0.325130 -2.602085 1.213295 -v -0.308564 -2.600090 1.151476 -v -0.286822 -2.524090 1.070339 -v -0.266114 -2.356090 0.993065 -v -0.259902 -2.256090 0.969883 -v -0.261973 -2.192089 0.977611 -v -0.278539 -2.160089 1.039430 -v -0.284751 -2.128090 1.062612 -v -0.284751 -2.072090 1.062612 -v -0.278539 -2.040090 1.039430 -v -0.241348 -1.996708 0.900643 -v -0.170899 -1.819721 0.637750 -v -0.146087 -1.673745 0.545157 -v -0.132353 -1.530860 0.493906 -v -0.114332 -1.365037 0.426654 -v -0.110037 -1.183625 0.410629 -v -0.116250 -1.127625 0.433811 -v -0.140039 -1.127625 0.522588 -v -0.150393 -1.079625 0.561225 -v -0.150393 -0.903625 0.561225 -v -0.135898 -0.855625 0.507133 -v -0.106621 -0.855625 0.397881 -v -0.092084 4.767281 0.343634 -v -0.091053 5.023280 0.339786 -v -0.037242 6.727280 0.138978 -v -0.028960 6.751280 0.108069 -v -0.000032 -3.284090 1.224103 -v -0.000032 -2.760090 1.224103 -v -0.000033 -2.760090 1.272103 -v -0.000034 -2.728091 1.304103 -v -0.000034 -2.642078 1.304103 -v -0.000033 -2.602085 1.256103 -v -0.000031 -2.600090 1.192103 -v -0.000029 -2.524090 1.108103 -v -0.000027 -2.356090 1.028103 -v -0.000026 -2.256090 1.004103 -v -0.000027 -2.192089 1.012103 -v -0.000028 -2.160089 1.076103 -v -0.000029 -2.128090 1.100103 -v -0.000029 -2.072090 1.100103 -v -0.000028 -2.040090 1.076103 -v -0.000025 -1.996708 0.932420 -v -0.000017 -1.819721 0.660251 -v -0.000015 -1.673745 0.564391 -v -0.000013 -1.530860 0.511333 -v -0.000012 -1.365037 0.441708 -v -0.000011 -1.183625 0.425117 -v -0.000012 -1.127625 0.449117 -v -0.000014 -1.127625 0.541026 -v -0.000015 -1.079625 0.581026 -v -0.000015 -0.903625 0.581026 -v -0.000014 -0.855625 0.525026 -v -0.000011 -0.855625 0.411919 -v -0.000009 4.767281 0.355758 -v -0.000011 4.865267 0.401771 -v -0.000011 4.967279 0.399774 -v -0.000009 5.023280 0.351774 -v -0.000008 5.023280 0.295774 -v -0.000008 5.791280 0.295774 -v -0.000006 5.847281 0.239774 -v -0.000005 5.847281 0.187844 -v -0.000005 5.927280 0.187844 -v -0.000006 5.927280 0.243844 -v -0.000006 5.991281 0.243844 -v -0.000005 5.991281 0.171844 -v -0.000005 6.135281 0.179844 -v -0.000006 6.287280 0.227844 -v -0.000007 6.359281 0.283844 -v -0.000009 6.391280 0.331844 -v -0.000008 6.439281 0.307844 -v -0.000006 6.439281 0.239882 -v -0.000006 6.479280 0.239882 -v -0.000005 6.535279 0.175883 -v -0.000004 6.607280 0.143882 -v -0.000004 6.671281 0.135882 -v -0.000004 6.727280 0.143882 -v -0.000003 6.751280 0.111882 -v -0.000005 6.775281 0.175883 -v -0.000005 6.815281 0.207882 -v -0.000007 6.823281 0.255882 -v -0.000007 6.871280 0.255882 -v 0.316785 -3.284090 1.182402 -v 0.316785 -2.760090 1.182402 -v 0.329207 -2.760090 1.228767 -v 0.337488 -2.728091 1.259677 -v 0.337488 -2.642078 1.259677 -v 0.325066 -2.602085 1.213312 -v 0.308504 -2.600090 1.151493 -v 0.286765 -2.524090 1.070354 -v 0.266062 -2.356090 0.993079 -v 0.259851 -2.256090 0.969897 -v 0.261921 -2.192089 0.977624 -v 0.278484 -2.160089 1.039444 -v 0.284695 -2.128090 1.062627 -v 0.284695 -2.072090 1.062627 -v 0.278484 -2.040090 1.039444 -v 0.241300 -1.996708 0.900656 -v 0.170866 -1.819721 0.637759 -v 0.146058 -1.673745 0.545165 -v 0.132327 -1.530860 0.493913 -v 0.114309 -1.365037 0.426660 -v 0.110016 -1.183625 0.410635 -v 0.116227 -1.127625 0.433817 -v 0.140012 -1.127625 0.522595 -v 0.150363 -1.079625 0.561233 -v 0.150363 -0.903625 0.561233 -v 0.135871 -0.855625 0.507140 -v 0.106600 -0.855625 0.397886 -v 0.092066 4.767281 0.343639 -v 0.612014 -3.284090 1.060126 -v 0.612014 -2.760090 1.060126 -v 0.636013 -2.760090 1.101696 -v 0.652012 -2.728091 1.129409 -v 0.652012 -2.642078 1.129409 -v 0.628013 -2.602085 1.087839 -v 0.596015 -2.600090 1.032412 -v 0.554018 -2.524090 0.959665 -v 0.514020 -2.356090 0.890381 -v 0.502021 -2.256090 0.869596 -v 0.506021 -2.192089 0.876525 -v 0.538019 -2.160089 0.931951 -v 0.550018 -2.128090 0.952736 -v 0.550018 -2.072090 0.952736 -v 0.538019 -2.040090 0.931951 -v 0.466182 -1.996708 0.807515 -v 0.330105 -1.819721 0.571806 -v 0.282179 -1.673745 0.488787 -v 0.255651 -1.530860 0.442836 -v 0.220840 -1.365037 0.382538 -v 0.212546 -1.183625 0.368170 -v 0.224545 -1.127625 0.388955 -v 0.270497 -1.127625 0.468552 -v 0.290495 -1.079625 0.503193 -v 0.290495 -0.903625 0.503193 -v 0.262497 -0.855625 0.454695 -v 0.205947 -0.855625 0.356740 -v 0.177868 4.767281 0.308102 -v 0.200873 4.865267 0.347951 -v 0.199875 4.967279 0.346221 -v 0.175876 5.023280 0.304651 -v 0.147878 5.023280 0.256153 -v 0.147878 5.791280 0.256153 -v 0.119880 5.847281 0.207655 -v 0.093916 5.847281 0.162681 -v 0.093916 5.927280 0.162681 -v 0.121915 5.927280 0.211179 -v 0.121915 5.991281 0.211179 -v 0.085917 5.991281 0.148824 -v 0.089917 6.135281 0.155753 -v 0.113915 6.287280 0.197323 -v 0.141913 6.359281 0.245821 -v 0.165912 6.391280 0.287391 -v 0.153913 6.439281 0.266606 -v 0.119934 6.439281 0.207748 -v 0.119934 6.479280 0.207748 -v 0.087936 6.535279 0.152322 -v 0.071937 6.607280 0.124608 -v 0.067937 6.671281 0.117680 -v 0.071937 6.727280 0.124608 -v 0.055938 6.751280 0.096895 -v 0.087936 6.775281 0.152322 -v 0.103935 6.815281 0.180035 -v 0.127933 6.823281 0.221605 -v 0.127933 6.871280 0.221605 -v 0.865537 -3.284090 0.865606 -v 0.865537 -2.760090 0.865606 -v 0.899477 -2.760090 0.899548 -v 0.922104 -2.728091 0.922177 -v 0.922104 -2.642078 0.922177 -v 0.888164 -2.602085 0.888234 -v 0.842911 -2.600090 0.842978 -v 0.783516 -2.524090 0.783578 -v 0.726950 -2.356090 0.727007 -v 0.709980 -2.256090 0.710036 -v 0.715637 -2.192089 0.715693 -v 0.760890 -2.160089 0.760950 -v 0.777860 -2.128090 0.777921 -v 0.777860 -2.072090 0.777921 -v 0.760890 -2.040090 0.760950 -v 0.659294 -1.996708 0.659346 -v 0.466849 -1.819721 0.466886 -v 0.399069 -1.673745 0.399101 -v 0.361552 -1.530860 0.361581 -v 0.312322 -1.365037 0.312347 -v 0.300591 -1.183625 0.300615 -v 0.317561 -1.127625 0.317586 -v 0.382548 -1.127625 0.382578 -v 0.410831 -1.079625 0.410864 -v 0.410831 -0.903625 0.410864 -v 0.371235 -0.855625 0.371264 -v 0.291259 -0.855625 0.291282 -v 0.132821 5.927280 0.132831 -v 0.172417 5.927280 0.172431 -v 0.172417 5.991281 0.172431 -v 0.121507 5.991281 0.121517 -v 0.127164 6.135281 0.127174 -v 0.161104 6.287280 0.161116 -v 0.096079 6.671281 0.096087 -v 0.101736 6.727280 0.101744 -v 0.079109 6.751280 0.079116 -v 1.060077 -3.284090 0.612098 -v 1.060077 -2.760090 0.612098 -v 1.101646 -2.760090 0.636100 -v 1.129358 -2.728091 0.652101 -v 1.129358 -2.642078 0.652101 -v 1.087790 -2.602085 0.628099 -v 1.032365 -2.600090 0.596097 -v 0.959621 -2.524090 0.554094 -v 0.890341 -2.356090 0.514091 -v 0.869557 -2.256090 0.502090 -v 0.876485 -2.192089 0.506090 -v 0.931909 -2.160089 0.538092 -v 0.952693 -2.128090 0.550093 -v 0.952693 -2.072090 0.550093 -v 0.931909 -2.040090 0.538092 -v 0.807479 -1.996708 0.466245 -v 0.571779 -1.819721 0.330150 -v 0.488765 -1.673745 0.282217 -v 0.442816 -1.530860 0.255686 -v 0.382520 -1.365037 0.220871 -v 0.368153 -1.183625 0.212575 -v 0.388937 -1.127625 0.224576 -v 0.468530 -1.127625 0.270534 -v 0.503170 -1.079625 0.290535 -v 0.503170 -0.903625 0.290535 -v 0.454674 -0.855625 0.262533 -v 0.356723 -0.855625 0.205975 -v 0.308088 4.767281 0.177893 -v 0.347935 4.865267 0.200901 -v 0.346206 4.967279 0.199902 -v 0.304637 5.023280 0.175900 -v 0.256141 5.023280 0.147898 -v 0.256141 5.791280 0.147898 -v 0.207645 5.847281 0.119896 -v 0.162674 5.847281 0.093929 -v 0.162674 5.927280 0.093929 -v 0.211170 5.927280 0.121931 -v 0.211170 5.991281 0.121931 -v 0.148817 5.991281 0.085929 -v 0.155746 6.135281 0.089929 -v 0.197314 6.287280 0.113931 -v 0.245810 6.359281 0.141933 -v 0.287378 6.391280 0.165935 -v 0.266594 6.439281 0.153934 -v 0.207739 6.439281 0.119950 -v 0.207739 6.479280 0.119950 -v 0.152315 6.535279 0.087948 -v 0.124602 6.607280 0.071946 -v 0.117674 6.671281 0.067946 -v 0.124602 6.727280 0.071946 -v 0.096890 6.751280 0.055945 -v 0.152315 6.775281 0.087948 -v 0.180027 6.815281 0.103949 -v 0.221595 6.823281 0.127951 -v 0.221595 6.871280 0.127951 -v 1.182377 -3.284090 0.316878 -v 1.182377 -2.760090 0.316878 -v 1.228741 -2.760090 0.329304 -v 1.259650 -2.728091 0.337587 -v 1.259650 -2.642078 0.337587 -v 1.213287 -2.602085 0.325162 -v 1.151468 -2.600090 0.308595 -v 1.070332 -2.524090 0.286850 -v 0.993058 -2.356090 0.266141 -v 0.969876 -2.256090 0.259928 -v 0.977604 -2.192089 0.261999 -v 1.039422 -2.160089 0.278566 -v 1.062604 -2.128090 0.284779 -v 1.062604 -2.072090 0.284779 -v 1.039422 -2.040090 0.278566 -v 0.900637 -1.996708 0.241371 -v 0.637745 -1.819721 0.170916 -v 0.545153 -1.673745 0.146102 -v 0.493903 -1.530860 0.132366 -v 0.426651 -1.365037 0.114343 -v 0.410626 -1.183625 0.110048 -v 0.433808 -1.127625 0.116261 -v 0.522584 -1.127625 0.140053 -v 0.561221 -1.079625 0.150408 -v 0.561221 -0.903625 0.150408 -v 0.507130 -0.855625 0.135911 -v 0.397878 -0.855625 0.106632 -v 0.131250 6.671281 0.035175 -v 0.108068 6.751280 0.028962 -v 1.224103 -3.284090 0.000064 -v 1.224103 -2.760090 0.000064 -v 1.272103 -2.760090 0.000067 -v 1.304103 -2.728091 0.000069 -v 1.304103 -2.642078 0.000069 -v 1.256103 -2.602085 0.000066 -v 1.192103 -2.600090 0.000063 -v 1.108103 -2.524090 0.000058 -v 1.028103 -2.356090 0.000054 -v 1.004103 -2.256090 0.000053 -v 1.012103 -2.192089 0.000053 -v 1.076103 -2.160089 0.000057 -v 1.100103 -2.128090 0.000058 -v 1.100103 -2.072090 0.000058 -v 1.076103 -2.040090 0.000057 -v 0.932420 -1.996708 0.000049 -v 0.660251 -1.819721 0.000035 -v 0.564391 -1.673745 0.000030 -v 0.511333 -1.530860 0.000027 -v 0.441708 -1.365037 0.000023 -v 0.425117 -1.183625 0.000022 -v 0.449117 -1.127625 0.000024 -v 0.541026 -1.127625 0.000028 -v 0.581026 -1.079625 0.000031 -v 0.581026 -0.903625 0.000031 -v 0.525026 -0.855625 0.000028 -v 0.411919 -0.855625 0.000022 -v 0.355758 4.767281 0.000019 -v 0.401771 4.865267 0.000021 -v 0.399774 4.967279 0.000021 -v 0.351774 5.023280 0.000019 -v 0.295774 5.023280 0.000016 -v 0.295774 5.791280 0.000016 -v 0.239774 5.847281 0.000013 -v 0.187844 5.847281 0.000010 -v 0.187844 5.927280 0.000010 -v 0.243844 5.927280 0.000013 -v 0.243844 5.991281 0.000013 -v 0.171844 5.991281 0.000009 -v 0.179844 6.135281 0.000009 -v 0.227844 6.287280 0.000012 -v 0.283844 6.359281 0.000015 -v 0.331844 6.391280 0.000017 -v 0.307844 6.439281 0.000016 -v 0.239882 6.439281 0.000013 -v 0.239882 6.479280 0.000013 -v 0.175883 6.535279 0.000009 -v 0.143882 6.607280 0.000008 -v 0.135882 6.671281 0.000007 -v 0.143882 6.727280 0.000008 -v 0.111882 6.751280 0.000006 -v 0.175883 6.775281 0.000009 -v 0.207882 6.815281 0.000011 -v 0.255882 6.823281 0.000013 -v 0.255882 6.871280 0.000013 -v 1.182411 -3.284090 -0.316754 -v 1.182411 -2.760090 -0.316754 -v 1.228776 -2.760090 -0.329174 -v 1.259686 -2.728091 -0.337455 -v 1.259686 -2.642078 -0.337455 -v 1.213321 -2.602085 -0.325034 -v 1.151501 -2.600090 -0.308473 -v 1.070362 -2.524090 -0.286737 -v 0.993086 -2.356090 -0.266036 -v 0.969904 -2.256090 -0.259826 -v 0.977631 -2.192089 -0.261896 -v 1.039451 -2.160089 -0.278457 -v 1.062634 -2.128090 -0.284667 -v 1.062634 -2.072090 -0.284667 -v 1.039451 -2.040090 -0.278457 -v 0.900662 -1.996708 -0.241277 -v 0.637763 -1.819721 -0.170849 -v 0.545169 -1.673745 -0.146044 -v 0.493917 -1.530860 -0.132314 -v 0.426663 -1.365037 -0.114298 -v 0.410638 -1.183625 -0.110005 -v 0.433820 -1.127625 -0.116215 -v 0.522599 -1.127625 -0.139998 -v 0.561237 -1.079625 -0.150349 -v 0.561237 -0.903625 -0.150349 -v 0.507144 -0.855625 -0.135858 -v 0.397889 -0.855625 -0.106590 -v 0.138981 6.727280 -0.037231 -v 1.060142 -3.284090 -0.611986 -v 1.060142 -2.760090 -0.611986 -v 1.101713 -2.760090 -0.635984 -v 1.129426 -2.728091 -0.651982 -v 1.129426 -2.642078 -0.651982 -v 1.087856 -2.602085 -0.627985 -v 1.032428 -2.600090 -0.595988 -v 0.959679 -2.524090 -0.553992 -v 0.890395 -2.356090 -0.513997 -v 0.869610 -2.256090 -0.501998 -v 0.876538 -2.192089 -0.505998 -v 0.931966 -2.160089 -0.537994 -v 0.952751 -2.128090 -0.549993 -v 0.952751 -2.072090 -0.549993 -v 0.931966 -2.040090 -0.537994 -v 0.807528 -1.996708 -0.466160 -v 0.571814 -1.819721 -0.330090 -v 0.488795 -1.673745 -0.282166 -v 0.442843 -1.530860 -0.255639 -v 0.382544 -1.365037 -0.220830 -v 0.368175 -1.183625 -0.212536 -v 0.388961 -1.127625 -0.224535 -v 0.468559 -1.127625 -0.270484 -v 0.503201 -1.079625 -0.290482 -v 0.503201 -0.903625 -0.290482 -v 0.454702 -0.855625 -0.262485 -v 0.356745 -0.855625 -0.205938 -v 0.308106 4.767281 -0.177860 -v 0.347956 4.865267 -0.200864 -v 0.346227 4.967279 -0.199866 -v 0.304656 5.023280 -0.175868 -v 0.256157 5.023280 -0.147871 -v 0.256157 5.791280 -0.147871 -v 0.207658 5.847281 -0.119874 -v 0.162683 5.847281 -0.093912 -v 0.162683 5.927280 -0.093912 -v 0.211183 5.927280 -0.121909 -v 0.211183 5.991281 -0.121909 -v 0.148827 5.991281 -0.085913 -v 0.155755 6.135281 -0.089912 -v 0.197326 6.287280 -0.113910 -v 0.245825 6.359281 -0.141907 -v 0.287396 6.391280 -0.165904 -v 0.266610 6.439281 -0.153906 -v 0.207751 6.439281 -0.119928 -v 0.207751 6.479280 -0.119928 -v 0.152325 6.535279 -0.087932 -v 0.124610 6.607280 -0.071933 -v 0.117681 6.671281 -0.067934 -v 0.124610 6.727280 -0.071933 -v 0.096896 6.751280 -0.055935 -v 0.152325 6.775281 -0.087932 -v 0.180037 6.815281 -0.103930 -v 0.221608 6.823281 -0.127927 -v 0.221608 6.871280 -0.127927 -v 0.865629 -3.284090 -0.865515 -v 0.865629 -2.760090 -0.865515 -v 0.899572 -2.760090 -0.899453 -v 0.922201 -2.728091 -0.922079 -v 0.922201 -2.642078 -0.922079 -v 0.888258 -2.602085 -0.888140 -v 0.843000 -2.600090 -0.842889 -v 0.783599 -2.524090 -0.783496 -v 0.727027 -2.356090 -0.726931 -v 0.710055 -2.256090 -0.709961 -v 0.715712 -2.192089 -0.715618 -v 0.760970 -2.160089 -0.760870 -v 0.777942 -2.128090 -0.777839 -v 0.777942 -2.072090 -0.777839 -v 0.760970 -2.040090 -0.760870 -v 0.659364 -1.996708 -0.659277 -v 0.466899 -1.819721 -0.466837 -v 0.399111 -1.673745 -0.399059 -v 0.361591 -1.530860 -0.361543 -v 0.312355 -1.365037 -0.312314 -v 0.300623 -1.183625 -0.300583 -v 0.317595 -1.127625 -0.317553 -v 0.382588 -1.127625 -0.382538 -v 0.410874 -1.079625 -0.410820 -v 0.410874 -0.903625 -0.410820 -v 0.371274 -0.855625 -0.371225 -v 0.291290 -0.855625 -0.291252 -v 0.132835 5.927280 -0.132817 -v 0.101747 6.607280 -0.101733 -v 0.180948 6.823281 -0.180924 -v 0.612126 -3.284090 -1.060061 -v 0.612126 -2.760090 -1.060061 -v 0.636129 -2.760090 -1.101629 -v 0.652131 -2.728091 -1.129341 -v 0.652131 -2.642078 -1.129341 -v 0.628128 -2.602085 -1.087773 -v 0.596124 -2.600090 -1.032350 -v 0.554119 -2.524090 -0.959607 -v 0.514114 -2.356090 -0.890327 -v 0.502112 -2.256090 -0.869543 -v 0.506113 -2.192089 -0.876471 -v 0.538117 -2.160089 -0.931895 -v 0.550118 -2.128090 -0.952679 -v 0.550118 -2.072090 -0.952679 -v 0.538117 -2.040090 -0.931895 -v 0.466266 -1.996708 -0.807466 -v 0.330165 -1.819721 -0.571771 -v 0.282230 -1.673745 -0.488758 -v 0.255697 -1.530860 -0.442809 -v 0.220881 -1.365037 -0.382515 -v 0.212584 -1.183625 -0.368147 -v 0.224586 -1.127625 -0.388931 -v 0.270546 -1.127625 -0.468523 -v 0.290548 -1.079625 -0.503163 -v 0.290548 -0.903625 -0.503163 -v 0.262545 -0.855625 -0.454667 -v 0.205984 -0.855625 -0.356718 -v 0.177901 4.767281 -0.308083 -v 0.200910 4.865267 -0.347930 -v 0.199911 4.967279 -0.346200 -v 0.175908 5.023280 -0.304633 -v 0.147905 5.023280 -0.256137 -v 0.147905 5.791280 -0.256137 -v 0.119902 5.847281 -0.207642 -v 0.093933 5.847281 -0.162671 -v 0.093933 5.927280 -0.162671 -v 0.121937 5.927280 -0.211167 -v 0.121937 5.991281 -0.211167 -v 0.085932 5.991281 -0.148815 -v 0.089933 6.135281 -0.155743 -v 0.113936 6.287280 -0.197311 -v 0.141939 6.359281 -0.245806 -v 0.165942 6.391280 -0.287374 -v 0.153941 6.439281 -0.266590 -v 0.119956 6.439281 -0.207736 -v 0.119956 6.479280 -0.207736 -v 0.087952 6.535279 -0.152313 -v 0.071950 6.607280 -0.124600 -v 0.067949 6.671281 -0.117672 -v 0.071950 6.727280 -0.124600 -v 0.055948 6.751280 -0.096889 -v 0.087952 6.775281 -0.152313 -v 0.103954 6.815281 -0.180024 -v 0.127956 6.823281 -0.221591 -v 0.127956 6.871280 -0.221591 -v 0.316910 -3.284090 -1.182369 -v 0.316910 -2.760090 -1.182369 -v 0.329336 -2.760090 -1.228732 -v 0.337621 -2.728091 -1.259642 -v 0.337621 -2.642078 -1.259642 -v 0.325194 -2.602085 -1.213278 -v 0.308625 -2.600090 -1.151460 -v 0.286878 -2.524090 -1.070324 -v 0.266167 -2.356090 -0.993051 -v 0.259953 -2.256090 -0.969869 -v 0.262025 -2.192089 -0.977597 -v 0.278594 -2.160089 -1.039415 -v 0.284807 -2.128090 -1.062597 -v 0.284807 -2.072090 -1.062597 -v 0.278594 -2.040090 -1.039415 -v 0.241395 -1.996708 -0.900630 -v 0.170933 -1.819721 -0.637740 -v 0.146116 -1.673745 -0.545149 -v 0.132380 -1.530860 -0.493899 -v 0.114354 -1.365037 -0.426648 -v 0.110059 -1.183625 -0.410623 -v 0.116272 -1.127625 -0.433805 -v 0.140067 -1.127625 -0.522581 -v 0.150423 -1.079625 -0.561217 -v 0.150423 -0.903625 -0.561217 -v 0.135925 -0.855625 -0.507126 -v 0.106642 -0.855625 -0.397875 -v 0.000097 -3.284090 -1.224103 -v 0.000097 -2.760090 -1.224103 -v 0.000101 -2.760090 -1.272103 -v 0.000103 -2.728091 -1.304103 -v 0.000103 -2.642078 -1.304103 -v 0.000099 -2.602085 -1.256103 -v 0.000094 -2.600090 -1.192103 -v 0.000088 -2.524090 -1.108103 -v 0.000081 -2.356090 -1.028103 -v 0.000079 -2.256090 -1.004103 -v 0.000080 -2.192089 -1.012103 -v 0.000085 -2.160089 -1.076103 -v 0.000087 -2.128090 -1.100103 -v 0.000087 -2.072090 -1.100103 -v 0.000085 -2.040090 -1.076103 -v 0.000074 -1.996708 -0.932420 -v 0.000052 -1.819721 -0.660251 -v 0.000045 -1.673745 -0.564391 -v 0.000040 -1.530860 -0.511333 -v 0.000035 -1.365037 -0.441708 -v 0.000034 -1.183625 -0.425117 -v 0.000036 -1.127625 -0.449117 -v 0.000043 -1.127625 -0.541026 -v 0.000046 -1.079625 -0.581026 -v 0.000046 -0.903625 -0.581026 -v 0.000042 -0.855625 -0.525026 -v 0.000033 -0.855625 -0.411919 -v 0.000028 4.767281 -0.355758 -v 0.000032 4.865267 -0.401771 -v 0.000032 4.967279 -0.399774 -v 0.000028 5.023280 -0.351774 -v 0.000023 5.023280 -0.295774 -v 0.000023 5.791280 -0.295774 -v 0.000019 5.847281 -0.239774 -v 0.000015 5.847281 -0.187844 -v 0.000015 5.927280 -0.187844 -v 0.000019 5.927280 -0.243844 -v 0.000019 5.991281 -0.243844 -v 0.000014 5.991281 -0.171844 -v 0.000014 6.135281 -0.179844 -v 0.000018 6.287280 -0.227844 -v 0.000022 6.359281 -0.283844 -v 0.000026 6.391280 -0.331844 -v 0.000024 6.439281 -0.307844 -v 0.000019 6.439281 -0.239882 -v 0.000019 6.479280 -0.239882 -v 0.000014 6.535279 -0.175883 -v 0.000011 6.607280 -0.143882 -v 0.000011 6.671281 -0.135882 -v 0.000011 6.727280 -0.143882 -v 0.000009 6.751280 -0.111882 -v 0.000014 6.775281 -0.175883 -v 0.000016 6.815281 -0.207882 -v 0.000020 6.823281 -0.255882 -v 0.000020 6.871280 -0.255882 -v -0.316722 -3.284090 -1.182419 -v -0.316722 -2.760090 -1.182419 -v -0.329142 -2.760090 -1.228785 -v -0.337422 -2.728091 -1.259695 -v -0.337422 -2.642078 -1.259695 -v -0.325002 -2.602085 -1.213330 -v -0.308443 -2.600090 -1.151509 -v -0.286709 -2.524090 -1.070369 -v -0.266010 -2.356090 -0.993093 -v -0.259800 -2.256090 -0.969911 -v -0.261870 -2.192089 -0.977638 -v -0.278429 -2.160089 -1.039459 -v -0.284639 -2.128090 -1.062642 -v -0.284639 -2.072090 -1.062642 -v -0.278429 -2.040090 -1.039459 -v -0.241253 -1.996708 -0.900668 -v -0.170832 -1.819721 -0.637768 -v -0.146030 -1.673745 -0.545173 -v -0.132301 -1.530860 -0.493920 -v -0.114287 -1.365037 -0.426666 -v -0.109994 -1.183625 -0.410641 -v -0.116204 -1.127625 -0.433823 -v -0.139984 -1.127625 -0.522603 -v -0.150334 -1.079625 -0.561241 -v -0.150334 -0.903625 -0.561241 -v -0.135844 -0.855625 -0.507147 -v -0.106579 -0.855625 -0.397892 -v -0.037228 6.727280 -0.138982 -v -0.028948 6.751280 -0.108072 -v -0.611958 -3.284090 -1.060158 -v -0.611958 -2.760090 -1.060158 -v -0.635955 -2.760090 -1.101729 -v -0.651952 -2.728091 -1.129444 -v -0.651952 -2.642078 -1.129444 -v -0.627956 -2.602085 -1.087872 -v -0.595961 -2.600090 -1.032444 -v -0.553967 -2.524090 -0.959694 -v -0.513973 -2.356090 -0.890408 -v -0.501975 -2.256090 -0.869623 -v -0.505975 -2.192089 -0.876551 -v -0.537970 -2.160089 -0.931980 -v -0.549968 -2.128090 -0.952765 -v -0.549968 -2.072090 -0.952765 -v -0.537970 -2.040090 -0.931980 -v -0.466139 -1.996708 -0.807540 -v -0.330075 -1.819721 -0.571823 -v -0.282153 -1.673745 -0.488802 -v -0.255627 -1.530860 -0.442849 -v -0.220820 -1.365037 -0.382550 -v -0.212526 -1.183625 -0.368181 -v -0.224524 -1.127625 -0.388966 -v -0.270472 -1.127625 -0.468566 -v -0.290469 -1.079625 -0.503209 -v -0.290469 -0.903625 -0.503209 -v -0.262473 -0.855625 -0.454709 -v -0.205928 -0.855625 -0.356750 -v -0.177852 4.767281 -0.308111 -v -0.200855 4.865267 -0.347962 -v -0.199857 4.967279 -0.346232 -v -0.175860 5.023280 -0.304661 -v -0.147864 5.023280 -0.256161 -v -0.147864 5.791280 -0.256161 -v -0.119869 5.847281 -0.207661 -v -0.093908 5.847281 -0.162686 -v -0.093908 5.927280 -0.162686 -v -0.121903 5.927280 -0.211186 -v -0.121903 5.991281 -0.211186 -v -0.085909 5.991281 -0.148829 -v -0.089908 6.135281 -0.155757 -v -0.113905 6.287280 -0.197329 -v -0.141900 6.359281 -0.245829 -v -0.165897 6.391280 -0.287400 -v -0.153899 6.439281 -0.266614 -v -0.119923 6.439281 -0.207754 -v -0.119923 6.479280 -0.207754 -v -0.087928 6.535279 -0.152327 -v -0.071930 6.607280 -0.124612 -v -0.067931 6.671281 -0.117683 -v -0.071930 6.727280 -0.124612 -v -0.055932 6.751280 -0.096898 -v -0.087928 6.775281 -0.152327 -v -0.103925 6.815281 -0.180040 -v -0.127922 6.823281 -0.221612 -v -0.127922 6.871280 -0.221612 -v -0.865492 -3.284090 -0.865651 -v -0.865492 -2.760090 -0.865651 -v -0.899430 -2.760090 -0.899596 -v -0.922055 -2.728091 -0.922225 -v -0.922055 -2.642078 -0.922225 -v -0.888117 -2.602085 -0.888281 -v -0.842866 -2.600090 -0.843022 -v -0.783475 -2.524090 -0.783619 -v -0.726912 -2.356090 -0.727046 -v -0.709943 -2.256090 -0.710073 -v -0.715599 -2.192089 -0.715731 -v -0.760850 -2.160089 -0.760990 -v -0.777819 -2.128090 -0.777962 -v -0.777819 -2.072090 -0.777962 -v -0.760850 -2.040090 -0.760990 -v -0.659259 -1.996708 -0.659381 -v -0.466825 -1.819721 -0.466911 -v -0.399048 -1.673745 -0.399122 -v -0.361533 -1.530860 -0.361600 -v -0.312306 -1.365037 -0.312363 -v -0.300575 -1.183625 -0.300631 -v -0.317544 -1.127625 -0.317603 -v -0.382528 -1.127625 -0.382598 -v -0.410810 -1.079625 -0.410885 -v -0.410810 -0.903625 -0.410885 -v -0.371215 -0.855625 -0.371284 -v -0.291244 -0.855625 -0.291298 -v -0.251536 4.767281 -0.251582 -v -0.284069 4.865267 -0.284121 -v -0.132814 5.847281 -0.132838 -v -0.132814 5.927280 -0.132838 -v -0.172408 5.927280 -0.172440 -v -0.121501 5.991281 -0.121523 -v -0.127157 6.135281 -0.127181 -v -0.161095 6.287280 -0.161125 -v -0.200690 6.359281 -0.200727 -v -0.169607 6.439281 -0.169638 -v -0.124357 6.535279 -0.124380 -v -0.101731 6.607280 -0.101749 -v -0.096074 6.671281 -0.096092 -v -0.101731 6.727280 -0.101749 -v -0.079105 6.751280 -0.079120 -v -0.124357 6.775281 -0.124380 -v -0.146981 6.815281 -0.147008 -v -0.180919 6.871280 -0.180953 -v -1.060045 -3.284090 -0.612154 -v -1.060045 -2.760090 -0.612154 -v -1.101612 -2.760090 -0.636158 -v -1.129323 -2.728091 -0.652160 -v -1.129323 -2.642078 -0.652160 -v -1.087757 -2.602085 -0.628156 -v -1.032334 -2.600090 -0.596151 -v -0.959592 -2.524090 -0.554144 -v -0.890314 -2.356090 -0.514137 -v -0.869530 -2.256090 -0.502135 -v -0.876458 -2.192089 -0.506136 -v -0.931881 -2.160089 -0.538141 -v -0.952664 -2.128090 -0.550143 -v -0.952664 -2.072090 -0.550143 -v -0.931881 -2.040090 -0.538141 -v -0.807454 -1.996708 -0.466288 -v -0.571762 -1.819721 -0.330181 -v -0.488750 -1.673745 -0.282243 -v -0.442802 -1.530860 -0.255709 -v -0.382509 -1.365037 -0.220891 -v -0.368142 -1.183625 -0.212594 -v -0.388925 -1.127625 -0.224596 -v -0.468516 -1.127625 -0.270558 -v -0.503155 -1.079625 -0.290562 -v -0.503155 -0.903625 -0.290562 -v -0.454661 -0.855625 -0.262557 -v -0.356712 -0.855625 -0.205994 -v -0.308078 4.767281 -0.177909 -v -0.347925 4.865267 -0.200919 -v -0.346195 4.967279 -0.199920 -v -0.304628 5.023280 -0.175916 -v -0.256134 5.023280 -0.147912 -v -0.256134 5.791280 -0.147912 -v -0.207639 5.847281 -0.119907 -v -0.162669 5.847281 -0.093938 -v -0.162669 5.927280 -0.093938 -v -0.211163 5.927280 -0.121942 -v -0.211163 5.991281 -0.121942 -v -0.148813 5.991281 -0.085936 -v -0.155741 6.135281 -0.089937 -v -0.197308 6.287280 -0.113941 -v -0.245802 6.359281 -0.141946 -v -0.287369 6.391280 -0.165950 -v -0.266586 6.439281 -0.153948 -v -0.207732 6.439281 -0.119961 -v -0.207732 6.479280 -0.119961 -v -0.152311 6.535279 -0.087956 -v -0.124599 6.607280 -0.071953 -v -0.117671 6.671281 -0.067952 -v -0.124599 6.727280 -0.071953 -v -0.096887 6.751280 -0.055950 -v -0.152311 6.775281 -0.087956 -v -0.180021 6.815281 -0.103958 -v -0.221588 6.823281 -0.127962 -v -0.221588 6.871280 -0.127962 -v -1.182361 -3.284090 -0.316940 -v -1.182361 -2.760090 -0.316940 -v -1.228724 -2.760090 -0.329368 -v -1.259633 -2.728091 -0.337654 -v -1.259633 -2.642078 -0.337654 -v -1.213270 -2.602085 -0.325226 -v -1.151452 -2.600090 -0.308655 -v -1.070316 -2.524090 -0.286906 -v -0.993044 -2.356090 -0.266193 -v -0.969863 -2.256090 -0.259979 -v -0.977590 -2.192089 -0.262050 -v -1.039407 -2.160089 -0.278621 -v -1.062589 -2.128090 -0.284835 -v -1.062589 -2.072090 -0.284835 -v -1.039407 -2.040090 -0.278621 -v -0.900624 -1.996708 -0.241419 -v -0.637736 -1.819721 -0.170950 -v -0.545146 -1.673745 -0.146130 -v -0.493896 -1.530860 -0.132392 -v -0.426645 -1.365037 -0.114365 -v -0.410620 -1.183625 -0.110070 -v -0.433802 -1.127625 -0.116284 -v -0.522577 -1.127625 -0.140081 -v -0.561213 -1.079625 -0.150437 -v -0.561213 -0.903625 -0.150437 -v -0.507122 -0.855625 -0.135938 -v -0.397872 -0.855625 -0.106653 -v -0.343627 4.767281 -0.092112 -v -0.138976 6.727280 -0.037253 -v -0.215708 4.671280 0.000000 -v -0.271708 4.671280 0.000000 -v -0.303708 4.639273 0.000000 -v -0.303708 4.591273 0.000000 -v -0.275705 4.561275 0.000000 -v -0.331920 0.793487 0.000000 -v -0.403919 0.779474 0.000000 -v -0.419919 0.707474 0.000000 -v -0.403919 0.641487 0.000000 -v -0.363919 0.601487 0.000000 -v -0.403919 -0.543625 0.000000 -v -0.451919 -0.543625 0.000000 -v -0.483920 -0.583625 0.000000 -v -0.483920 -0.665634 0.000000 -v -0.453928 -0.695625 0.000000 -v -0.411927 -0.695618 0.000000 -v -0.397891 -0.695618 0.106613 -v -0.438461 -0.695625 0.117483 -v -0.467431 -0.665634 0.125246 -v -0.467431 -0.583625 0.125246 -v -0.436521 -0.543625 0.116963 -v -0.390156 -0.543625 0.104540 -v -0.351519 0.601487 0.094188 -v -0.390156 0.641487 0.104540 -v -0.405611 0.707474 0.108681 -v -0.390156 0.779474 0.104540 -v -0.320610 0.793487 0.085906 -v -0.231540 4.559279 0.062040 -v -0.356741 -0.695618 0.205960 -v -0.393115 -0.695625 0.226961 -v -0.419089 -0.665634 0.241956 -v -0.419089 -0.583625 0.241956 -v -0.391375 -0.543625 0.225956 -v -0.349806 -0.543625 0.201956 -v -0.315165 0.601487 0.181957 -v -0.349806 0.641487 0.201956 -v -0.363662 0.707474 0.209956 -v -0.349806 0.779474 0.201956 -v -0.287453 0.793487 0.165957 -v -0.207594 4.559279 0.119852 -v -0.238769 4.561275 0.137850 -v -0.263020 4.591273 0.151852 -v -0.263020 4.639273 0.151852 -v -0.235307 4.671280 0.135852 -v -0.186810 4.671280 0.107852 -v -0.291280 -0.695618 0.291273 -v -0.320980 -0.695625 0.320971 -v -0.342188 -0.665634 0.342179 -v -0.342188 -0.583625 0.342179 -v -0.319559 -0.543625 0.319551 -v -0.285618 -0.543625 0.285610 -v -0.257333 0.601487 0.257326 -v -0.285618 0.641487 0.285610 -v -0.296931 0.707474 0.296924 -v -0.285618 0.779474 0.285610 -v -0.234706 0.793487 0.234700 -v -0.169501 4.559279 0.169497 -v -0.205970 -0.695618 0.356736 -v -0.226971 -0.695625 0.393109 -v -0.241967 -0.665634 0.419083 -v -0.241967 -0.583625 0.419083 -v -0.225966 -0.543625 0.391369 -v -0.201966 -0.543625 0.349801 -v -0.181965 0.601487 0.315160 -v -0.201966 0.641487 0.349801 -v -0.209966 0.707474 0.363657 -v -0.201966 0.779474 0.349801 -v -0.165965 0.793487 0.287448 -v -0.119858 4.559279 0.207591 -v -0.137857 4.561275 0.238765 -v -0.151859 4.591273 0.263016 -v -0.151859 4.639273 0.263016 -v -0.135858 4.671280 0.235304 -v -0.107857 4.671280 0.186807 -v -0.106623 -0.695618 0.397889 -v -0.117495 -0.695625 0.438458 -v -0.125258 -0.665634 0.467428 -v -0.125258 -0.583625 0.467428 -v -0.116975 -0.543625 0.436518 -v -0.104550 -0.543625 0.390153 -v -0.094197 0.601487 0.351517 -v -0.104550 0.641487 0.390153 -v -0.108692 0.707474 0.405608 -v -0.104550 0.779474 0.390153 -v -0.085914 0.793487 0.320608 -v -0.062046 4.559279 0.231539 -v -0.078612 4.639273 0.293358 -v -0.070329 4.671280 0.262448 -v -0.055834 4.671280 0.208357 -v -0.000011 -0.695618 0.411927 -v -0.000012 -0.695625 0.453928 -v -0.000013 -0.665634 0.483920 -v -0.000013 -0.583625 0.483920 -v -0.000012 -0.543625 0.451919 -v -0.000011 -0.543625 0.403919 -v -0.000010 0.601487 0.363919 -v -0.000011 0.641487 0.403919 -v -0.000011 0.707474 0.419919 -v -0.000011 0.779474 0.403919 -v -0.000009 0.793487 0.331920 -v -0.000006 4.559279 0.239708 -v -0.000007 4.561275 0.275705 -v -0.000008 4.591273 0.303708 -v -0.000008 4.639273 0.303708 -v -0.000007 4.671280 0.271708 -v -0.000006 4.671280 0.215708 -v 0.106602 -0.695618 0.397894 -v 0.117472 -0.695625 0.438464 -v 0.125233 -0.665634 0.467435 -v 0.125233 -0.583625 0.467435 -v 0.116952 -0.543625 0.436524 -v 0.104530 -0.543625 0.390159 -v 0.094178 0.601487 0.351522 -v 0.104530 0.641487 0.390159 -v 0.108671 0.707474 0.405614 -v 0.104530 0.779474 0.390159 -v 0.085897 0.793487 0.320613 -v 0.062034 4.559279 0.231542 -v 0.078596 4.591273 0.293362 -v 0.078596 4.639273 0.293362 -v 0.055823 4.671280 0.208360 -v 0.205951 -0.695618 0.356746 -v 0.226950 -0.695625 0.393121 -v 0.241945 -0.665634 0.419095 -v 0.241945 -0.583625 0.419095 -v 0.225946 -0.543625 0.391381 -v 0.201947 -0.543625 0.349811 -v 0.181948 0.601487 0.315169 -v 0.201947 0.641487 0.349811 -v 0.209947 0.707474 0.363668 -v 0.201947 0.779474 0.349811 -v 0.165950 0.793487 0.287457 -v 0.119847 4.559279 0.207597 -v 0.137844 4.561275 0.238772 -v 0.151845 4.591273 0.263024 -v 0.151845 4.639273 0.263024 -v 0.135846 4.671280 0.235311 -v 0.107847 4.671280 0.186812 -v 0.291265 -0.695618 0.291288 -v 0.320963 -0.695625 0.320988 -v 0.342170 -0.665634 0.342197 -v 0.342170 -0.583625 0.342197 -v 0.319542 -0.543625 0.319568 -v 0.285603 -0.543625 0.285625 -v 0.257319 0.601487 0.257340 -v 0.285603 0.641487 0.285625 -v 0.296916 0.707474 0.296939 -v 0.285603 0.779474 0.285625 -v 0.234694 0.793487 0.234712 -v 0.169492 4.559279 0.169506 -v 0.214745 4.591273 0.214762 -v 0.356730 -0.695618 0.205979 -v 0.393103 -0.695625 0.226981 -v 0.419076 -0.665634 0.241978 -v 0.419076 -0.583625 0.241978 -v 0.391363 -0.543625 0.225977 -v 0.349795 -0.543625 0.201975 -v 0.315155 0.601487 0.181973 -v 0.349795 0.641487 0.201975 -v 0.363651 0.707474 0.209975 -v 0.349795 0.779474 0.201975 -v 0.287444 0.793487 0.165973 -v 0.207588 4.559279 0.119863 -v 0.238761 4.561275 0.137863 -v 0.263012 4.591273 0.151866 -v 0.263012 4.639273 0.151866 -v 0.235300 4.671280 0.135864 -v 0.186804 4.671280 0.107862 -v 0.397886 -0.695618 0.106634 -v 0.438455 -0.695625 0.117506 -v 0.467425 -0.665634 0.125270 -v 0.467425 -0.583625 0.125270 -v 0.436515 -0.543625 0.116986 -v 0.390151 -0.543625 0.104561 -v 0.351514 0.601487 0.094206 -v 0.390151 0.641487 0.104561 -v 0.405605 0.707474 0.108703 -v 0.390151 0.779474 0.104561 -v 0.320606 0.793487 0.085923 -v 0.231537 4.559279 0.062052 -v 0.208355 4.671280 0.055839 -v 0.411927 -0.695618 0.000022 -v 0.453928 -0.695625 0.000024 -v 0.483920 -0.665634 0.000025 -v 0.483920 -0.583625 0.000025 -v 0.451919 -0.543625 0.000024 -v 0.403919 -0.543625 0.000021 -v 0.363919 0.601487 0.000019 -v 0.403919 0.641487 0.000021 -v 0.419919 0.707474 0.000022 -v 0.403919 0.779474 0.000021 -v 0.331920 0.793487 0.000017 -v 0.239708 4.559279 0.000013 -v 0.275705 4.561275 0.000015 -v 0.303708 4.591273 0.000016 -v 0.303708 4.639273 0.000016 -v 0.271708 4.671280 0.000014 -v 0.215708 4.671280 0.000011 -v 0.397897 -0.695618 -0.106592 -v 0.438467 -0.695625 -0.117460 -v 0.467438 -0.665634 -0.125221 -v 0.467438 -0.583625 -0.125221 -v 0.436527 -0.543625 -0.116940 -v 0.390162 -0.543625 -0.104520 -v 0.351524 0.601487 -0.094169 -v 0.390162 0.641487 -0.104520 -v 0.405617 0.707474 -0.108660 -v 0.390162 0.779474 -0.104520 -v 0.320615 0.793487 -0.085889 -v 0.231544 4.559279 -0.062028 -v 0.356752 -0.695618 -0.205942 -v 0.393127 -0.695625 -0.226940 -v 0.419102 -0.665634 -0.241934 -v 0.419102 -0.583625 -0.241934 -v 0.391387 -0.543625 -0.225935 -v 0.349817 -0.543625 -0.201938 -v 0.315174 0.601487 -0.181940 -v 0.349817 0.641487 -0.201938 -v 0.363673 0.707474 -0.209937 -v 0.349817 0.779474 -0.201938 -v 0.287461 0.793487 -0.165942 -v 0.207601 4.559279 -0.119841 -v 0.238776 4.561275 -0.137838 -v 0.263028 4.591273 -0.151838 -v 0.263028 4.639273 -0.151838 -v 0.235314 4.671280 -0.135840 -v 0.186815 4.671280 -0.107842 -v 0.291296 -0.695618 -0.291257 -v 0.320997 -0.695625 -0.320954 -v 0.342206 -0.665634 -0.342161 -v 0.342206 -0.583625 -0.342161 -v 0.319576 -0.543625 -0.319534 -v 0.285633 -0.543625 -0.285595 -v 0.257347 0.601487 -0.257313 -v 0.285633 0.641487 -0.285595 -v 0.296947 0.707474 -0.296908 -v 0.285633 0.779474 -0.285595 -v 0.234718 0.793487 -0.234687 -v 0.169510 4.559279 -0.169488 -v 0.205988 -0.695618 -0.356725 -v 0.226992 -0.695625 -0.393097 -v 0.241989 -0.665634 -0.419070 -v 0.241989 -0.583625 -0.419070 -v 0.225987 -0.543625 -0.391358 -v 0.201984 -0.543625 -0.349790 -v 0.181982 0.601487 -0.315150 -v 0.201984 0.641487 -0.349790 -v 0.209985 0.707474 -0.363646 -v 0.201984 0.779474 -0.349790 -v 0.165980 0.793487 -0.287440 -v 0.119869 4.559279 -0.207585 -v 0.137869 4.561275 -0.238758 -v 0.151872 4.591273 -0.263008 -v 0.151872 4.639273 -0.263008 -v 0.135870 4.671280 -0.235297 -v 0.107867 4.671280 -0.186801 -v 0.106644 -0.695618 -0.397883 -v 0.117518 -0.695625 -0.438452 -v 0.125283 -0.665634 -0.467421 -v 0.125283 -0.583625 -0.467421 -v 0.116998 -0.543625 -0.436511 -v 0.104571 -0.543625 -0.390148 -v 0.094215 0.601487 -0.351512 -v 0.104571 0.641487 -0.390148 -v 0.108713 0.707474 -0.405602 -v 0.104571 0.779474 -0.390148 -v 0.085931 0.793487 -0.320604 -v 0.062058 4.559279 -0.231535 -v 0.070343 4.671280 -0.262444 -v 0.000033 -0.695618 -0.411927 -v 0.000036 -0.695625 -0.453928 -v 0.000038 -0.665634 -0.483920 -v 0.000038 -0.583625 -0.483920 -v 0.000036 -0.543625 -0.451919 -v 0.000032 -0.543625 -0.403919 -v 0.000029 0.601487 -0.363919 -v 0.000032 0.641487 -0.403919 -v 0.000033 0.707474 -0.419919 -v 0.000032 0.779474 -0.403919 -v 0.000026 0.793487 -0.331920 -v 0.000019 4.559279 -0.239708 -v 0.000022 4.561275 -0.275705 -v 0.000024 4.591273 -0.303708 -v 0.000024 4.639273 -0.303708 -v 0.000022 4.671280 -0.271708 -v 0.000017 4.671280 -0.215708 -v -0.106581 -0.695618 -0.397900 -v -0.117449 -0.695625 -0.438471 -v -0.125209 -0.665634 -0.467441 -v -0.125209 -0.583625 -0.467441 -v -0.116929 -0.543625 -0.436530 -v -0.104509 -0.543625 -0.390165 -v -0.094160 0.601487 -0.351527 -v -0.104509 0.641487 -0.390165 -v -0.108649 0.707474 -0.405620 -v -0.104509 0.779474 -0.390165 -v -0.085880 0.793487 -0.320617 -v -0.062022 4.559279 -0.231545 -v -0.078581 4.591273 -0.293366 -v -0.205932 -0.695618 -0.356757 -v -0.226929 -0.695625 -0.393133 -v -0.241923 -0.665634 -0.419108 -v -0.241923 -0.583625 -0.419108 -v -0.225925 -0.543625 -0.391393 -v -0.201929 -0.543625 -0.349822 -v -0.181932 0.601487 -0.315179 -v -0.201929 0.641487 -0.349822 -v -0.209928 0.707474 -0.363679 -v -0.201929 0.779474 -0.349822 -v -0.165935 0.793487 -0.287466 -v -0.119836 4.559279 -0.207604 -v -0.137832 4.561275 -0.238780 -v -0.151831 4.591273 -0.263032 -v -0.151831 4.639273 -0.263032 -v -0.135833 4.671280 -0.235318 -v -0.107838 4.671280 -0.186818 -v -0.291250 -0.695618 -0.291303 -v -0.320946 -0.695625 -0.321005 -v -0.342152 -0.665634 -0.342215 -v -0.342152 -0.583625 -0.342215 -v -0.319526 -0.543625 -0.319584 -v -0.285588 -0.543625 -0.285640 -v -0.257306 0.601487 -0.257353 -v -0.285588 0.641487 -0.285640 -v -0.296900 0.707474 -0.296955 -v -0.285588 0.779474 -0.285640 -v -0.234681 0.793487 -0.234725 -v -0.169484 4.559279 -0.169515 -v -0.152515 4.671280 -0.152543 -v -0.356719 -0.695618 -0.205998 -v -0.393091 -0.695625 -0.227002 -v -0.419064 -0.665634 -0.242000 -v -0.419064 -0.583625 -0.242000 -v -0.391352 -0.543625 -0.225997 -v -0.349785 -0.543625 -0.201993 -v -0.315146 0.601487 -0.181990 -v -0.349785 0.641487 -0.201993 -v -0.363640 0.707474 -0.209995 -v -0.349785 0.779474 -0.201993 -v -0.287435 0.793487 -0.165988 -v -0.207582 4.559279 -0.119874 -v -0.238754 4.561275 -0.137876 -v -0.263004 4.591273 -0.151879 -v -0.263004 4.639273 -0.151879 -v -0.235293 4.671280 -0.135877 -v -0.186798 4.671280 -0.107872 -v -0.397880 -0.695618 -0.106655 -v -0.438449 -0.695625 -0.117529 -v -0.467418 -0.665634 -0.125295 -v -0.467418 -0.583625 -0.125295 -v -0.436508 -0.543625 -0.117009 -v -0.390145 -0.543625 -0.104581 -v -0.351509 0.601487 -0.094225 -v -0.390145 0.641487 -0.104581 -v -0.405600 0.707474 -0.108724 -v -0.390145 0.779474 -0.104581 -v -0.320601 0.793487 -0.085940 -v -0.231534 4.559279 -0.062064 -v -0.208352 4.671280 -0.055850 -v 0.042099 0.760516 0.319849 -v 0.049195 0.755443 0.373756 -v 0.049945 0.707794 0.379455 -v 0.048430 0.657846 0.367941 -v 0.043001 0.613739 0.326701 -v 0.047878 -0.544789 0.363746 -v -0.140407 -0.544789 0.338953 -v -0.291071 -0.544789 0.223341 -v -0.363745 -0.544789 0.047887 -v 0.223334 -0.544789 0.291076 -v 0.200588 0.613739 0.261432 -v 0.225910 0.657846 0.294434 -v 0.232979 0.707794 0.303647 -v 0.229480 0.755443 0.299087 -v 0.196382 0.760516 0.255949 -v -0.123463 0.760516 0.298048 -v -0.255945 0.760516 0.196388 -v -0.319848 0.760516 0.042108 -v -0.373755 0.755443 0.049205 -v -0.299081 0.755444 0.229487 -v -0.144271 0.755443 0.348281 -v -0.142026 0.657846 0.342863 -v -0.126108 0.613739 0.304434 -v -0.146471 0.707794 0.353592 -v -0.303641 0.707794 0.232987 -v -0.261427 0.613739 0.200596 -v -0.294428 0.657846 0.225917 -v -0.379454 0.707794 0.049955 -v -0.367940 0.657846 0.048439 -v -0.326700 0.613739 0.043010 -v -0.298039 0.760516 -0.123487 -v -0.196368 0.760516 -0.255960 -v -0.042083 0.760516 -0.319851 -v -0.049175 0.755443 -0.373759 -v -0.049925 0.707794 -0.379458 -v -0.048410 0.657846 -0.367944 -v -0.042984 0.613739 -0.326704 -v -0.200575 0.613739 -0.261443 -v -0.225894 0.657846 -0.294446 -v -0.232963 0.707794 -0.303660 -v -0.229464 0.755443 -0.299099 -v -0.348270 0.755443 -0.144298 -v -0.353580 0.707794 -0.146499 -v -0.342852 0.657846 -0.142053 -v -0.304424 0.613739 -0.126132 -v -0.338942 -0.544789 -0.140434 -v -0.223319 -0.544789 -0.291089 -v -0.047858 -0.544789 -0.363749 -v 0.140425 -0.544789 -0.338946 -v 0.291083 -0.544789 -0.223326 -v 0.363748 -0.544789 -0.047868 -v 0.123478 0.760516 -0.298043 -v 0.144289 0.755444 -0.348273 -v 0.146489 0.707794 -0.353584 -v 0.142044 0.657846 -0.342855 -v 0.126124 0.613739 -0.304427 -v 0.261438 0.613739 -0.200582 -v 0.294440 0.657846 -0.225902 -v 0.303653 0.707794 -0.232971 -v 0.299093 0.755444 -0.229471 -v 0.255955 0.760516 -0.196375 -v 0.319851 0.760516 -0.042092 -v 0.373758 0.755443 -0.049186 -v 0.379457 0.707794 -0.049935 -v 0.367943 0.657846 -0.048420 -v 0.326702 0.613739 -0.042993 -v 0.298045 0.760516 0.123471 -v 0.348277 0.755444 0.144280 -v 0.353588 0.707794 0.146480 -v 0.342859 0.657846 0.142035 -v 0.304430 0.613739 0.126115 -v 0.338950 -0.544789 0.140416 -v -0.026067 4.543957 0.197960 -v -0.038002 0.778164 0.288601 -v -0.121553 4.543957 0.158406 -v -0.177209 0.778164 0.230936 -v -0.184470 4.543957 0.076408 -v -0.268934 0.778164 0.111395 -v -0.197958 4.543957 -0.026072 -v -0.288597 0.778165 -0.038010 -v 0.184475 4.543957 -0.076399 -v 0.268941 0.778164 -0.111380 -v 0.121561 4.543957 -0.158400 -v 0.177221 0.778164 -0.230926 -v 0.026077 4.543957 -0.197959 -v 0.038017 0.778164 -0.288599 -v -0.076395 4.543957 -0.184476 -v -0.111373 0.778164 -0.268943 -v -0.158396 4.543957 -0.121565 -v -0.230922 0.778164 -0.177227 -v 0.197959 4.543957 0.026072 -v 0.288599 0.778164 0.038010 -v 0.158403 4.543957 0.121557 -v 0.230932 0.778164 0.177215 -v 0.076404 4.543957 0.184472 -v 0.111387 0.778164 0.268937 -v -0.231537 4.559279 -0.000012 -# 4440 vertices - -# 0 vertex parms - -# 0 texture vertices - -# 0 normals - -g globes -f 1669 1692 1691 -f 1688 1692 1687 -f 1684 1692 1683 -f 1680 1692 1679 -f 1676 1692 1675 -f 1672 1692 1671 -f 1645 1669 1691 1667 -f 1664 1688 1687 1663 -f 1660 1684 1683 1659 -f 1656 1680 1679 1655 -f 1652 1676 1675 1651 -f 1648 1672 1671 1647 -f 1621 1645 1667 1643 -f 1640 1664 1663 1639 -f 1636 1660 1659 1635 -f 1632 1656 1655 1631 -f 1628 1652 1651 1627 -f 1624 1648 1647 1623 -f 1597 1621 1643 1619 -f 1616 1640 1639 1615 -f 1612 1636 1635 1611 -f 1608 1632 1631 1607 -f 1604 1628 1627 1603 -f 1600 1624 1623 1599 -f 1573 1597 1619 1595 -f 1592 1616 1615 1591 -f 1588 1612 1611 1587 -f 1584 1608 1607 1583 -f 1580 1604 1603 1579 -f 1576 1600 1599 1575 -f 1549 1573 1595 1571 -f 1568 1592 1591 1567 -f 1564 1588 1587 1563 -f 1560 1584 1583 1559 -f 1556 1580 1579 1555 -f 1552 1576 1575 1551 -f 1525 1549 1571 1547 -f 1544 1568 1567 1543 -f 1540 1564 1563 1539 -f 1536 1560 1559 1535 -f 1532 1556 1555 1531 -f 1528 1552 1551 1527 -f 1501 1525 1547 1523 -f 1520 1544 1543 1519 -f 1516 1540 1539 1515 -f 1512 1536 1535 1511 -f 1508 1532 1531 1507 -f 1504 1528 1527 1503 -f 1477 1501 1523 1499 -f 1496 1520 1519 1495 -f 1492 1516 1515 1491 -f 1488 1512 1511 1487 -f 1484 1508 1507 1483 -f 1480 1504 1503 1479 -f 1453 1477 1499 1475 -f 1472 1496 1495 1471 -f 1468 1492 1491 1467 -f 1464 1488 1487 1463 -f 1460 1484 1483 1459 -f 1456 1480 1479 1455 -f 1429 1453 1475 1451 -f 1448 1472 1471 1447 -f 1444 1468 1467 1443 -f 1440 1464 1463 1439 -f 1436 1460 1459 1435 -f 1432 1456 1455 1431 -f 1427 1429 1451 -f 1427 1448 1447 -f 1427 1444 1443 -f 1427 1440 1439 -f 1427 1436 1435 -f 1427 1432 1431 -f 1403 1426 1425 -f 1422 1426 1421 -f 1418 1426 1417 -f 1414 1426 1413 -f 1410 1426 1409 -f 1406 1426 1405 -f 1379 1403 1425 1401 -f 1398 1422 1421 1397 -f 1394 1418 1417 1393 -f 1390 1414 1413 1389 -f 1386 1410 1409 1385 -f 1382 1406 1405 1381 -f 1355 1379 1401 1377 -f 1374 1398 1397 1373 -f 1370 1394 1393 1369 -f 1366 1390 1389 1365 -f 1362 1386 1385 1361 -f 1358 1382 1381 1357 -f 1331 1355 1377 1353 -f 1350 1374 1373 1349 -f 1346 1370 1369 1345 -f 1342 1366 1365 1341 -f 1338 1362 1361 1337 -f 1334 1358 1357 1333 -f 1307 1331 1353 1329 -f 1326 1350 1349 1325 -f 1322 1346 1345 1321 -f 1318 1342 1341 1317 -f 1314 1338 1337 1313 -f 1310 1334 1333 1309 -f 1283 1307 1329 1305 -f 1302 1326 1325 1301 -f 1298 1322 1321 1297 -f 1294 1318 1317 1293 -f 1290 1314 1313 1289 -f 1286 1310 1309 1285 -f 1259 1283 1305 1281 -f 1278 1302 1301 1277 -f 1274 1298 1297 1273 -f 1270 1294 1293 1269 -f 1266 1290 1289 1265 -f 1262 1286 1285 1261 -f 1235 1259 1281 1257 -f 1254 1278 1277 1253 -f 1250 1274 1273 1249 -f 1246 1270 1269 1245 -f 1242 1266 1265 1241 -f 1238 1262 1261 1237 -f 1211 1235 1257 1233 -f 1230 1254 1253 1229 -f 1226 1250 1249 1225 -f 1222 1246 1245 1221 -f 1218 1242 1241 1217 -f 1214 1238 1237 1213 -f 1187 1211 1233 1209 -f 1206 1230 1229 1205 -f 1202 1226 1225 1201 -f 1198 1222 1221 1197 -f 1194 1218 1217 1193 -f 1190 1214 1213 1189 -f 1163 1187 1209 1185 -f 1182 1206 1205 1181 -f 1178 1202 1201 1177 -f 1174 1198 1197 1173 -f 1170 1194 1193 1169 -f 1166 1190 1189 1165 -f 1161 1163 1185 -f 1161 1182 1181 -f 1161 1178 1177 -f 1161 1174 1173 -f 1161 1170 1169 -f 1161 1166 1165 -f 531 532 530 -f 527 532 526 -f 523 532 522 -f 519 532 518 -f 515 532 514 -f 511 532 510 -f 507 531 530 506 -f 503 527 526 502 -f 499 523 522 498 -f 495 519 518 494 -f 491 515 514 490 -f 487 511 510 486 -f 483 507 506 482 -f 479 503 502 478 -f 475 499 498 474 -f 471 495 494 470 -f 467 491 490 466 -f 463 487 486 462 -f 459 483 482 458 -f 455 479 478 454 -f 451 475 474 450 -f 447 471 470 446 -f 443 467 466 442 -f 439 463 462 438 -f 435 459 458 434 -f 431 455 454 430 -f 427 451 450 426 -f 423 447 446 422 -f 419 443 442 418 -f 415 439 438 414 -f 411 435 434 410 -f 407 431 430 406 -f 403 427 426 402 -f 399 423 422 398 -f 395 419 418 394 -f 391 415 414 390 -f 387 411 410 386 -f 383 407 406 382 -f 379 403 402 378 -f 375 399 398 374 -f 371 395 394 370 -f 367 391 390 366 -f 363 387 386 362 -f 359 383 382 358 -f 355 379 378 354 -f 351 375 374 350 -f 347 371 370 346 -f 343 367 366 342 -f 339 363 362 338 -f 335 359 358 334 -f 331 355 354 330 -f 327 351 350 326 -f 323 347 346 322 -f 319 343 342 318 -f 315 339 338 314 -f 311 335 334 310 -f 307 331 330 306 -f 303 327 326 302 -f 299 323 322 298 -f 295 319 318 294 -f 291 315 314 290 -f 287 311 310 286 -f 283 307 306 282 -f 279 303 302 278 -f 275 299 298 274 -f 271 295 294 270 -f 267 291 290 -f 267 287 286 -f 267 283 282 -f 267 279 278 -f 267 275 274 -f 267 271 270 -f 265 266 264 -f 261 266 260 -f 257 266 256 -f 253 266 252 -f 249 266 248 -f 245 266 244 -f 241 265 264 240 -f 237 261 260 236 -f 233 257 256 232 -f 229 253 252 228 -f 225 249 248 224 -f 221 245 244 220 -f 217 241 240 216 -f 213 237 236 212 -f 209 233 232 208 -f 205 229 228 204 -f 201 225 224 200 -f 197 221 220 196 -f 193 217 216 192 -f 189 213 212 188 -f 185 209 208 184 -f 181 205 204 180 -f 177 201 200 176 -f 173 197 196 172 -f 169 193 192 168 -f 165 189 188 164 -f 161 185 184 160 -f 157 181 180 156 -f 153 177 176 152 -f 149 173 172 148 -f 145 169 168 144 -f 141 165 164 140 -f 137 161 160 136 -f 133 157 156 132 -f 129 153 152 128 -f 125 149 148 124 -f 121 145 144 120 -f 117 141 140 116 -f 113 137 136 112 -f 109 133 132 108 -f 105 129 128 104 -f 101 125 124 100 -f 97 121 120 96 -f 93 117 116 92 -f 89 113 112 88 -f 85 109 108 84 -f 81 105 104 80 -f 77 101 100 76 -f 73 97 96 72 -f 69 93 92 68 -f 65 89 88 64 -f 61 85 84 60 -f 57 81 80 56 -f 53 77 76 52 -f 49 73 72 48 -f 45 69 68 44 -f 41 65 64 40 -f 37 61 60 36 -f 33 57 56 32 -f 29 53 52 28 -f 25 49 48 24 -f 21 45 44 20 -f 17 41 40 16 -f 13 37 36 12 -f 9 33 32 8 -f 5 29 28 4 -f 1 25 24 -f 1 21 20 -f 1 17 16 -f 1 13 12 -f 1 9 8 -f 1 5 4 -f 1 4 3 -f 1 8 7 -f 1 12 11 -f 1 16 15 -f 1 20 19 -f 1 24 23 -f 4 28 27 3 -f 8 32 31 7 -f 12 36 35 11 -f 16 40 39 15 -f 20 44 43 19 -f 24 48 47 23 -f 28 52 51 27 -f 32 56 55 31 -f 36 60 59 35 -f 40 64 63 39 -f 44 68 67 43 -f 48 72 71 47 -f 52 76 75 51 -f 56 80 79 55 -f 60 84 83 59 -f 64 88 87 63 -f 68 92 91 67 -f 72 96 95 71 -f 76 100 99 75 -f 80 104 103 79 -f 84 108 107 83 -f 88 112 111 87 -f 92 116 115 91 -f 96 120 119 95 -f 100 124 123 99 -f 104 128 127 103 -f 108 132 131 107 -f 112 136 135 111 -f 116 140 139 115 -f 120 144 143 119 -f 124 148 147 123 -f 128 152 151 127 -f 132 156 155 131 -f 136 160 159 135 -f 140 164 163 139 -f 144 168 167 143 -f 148 172 171 147 -f 152 176 175 151 -f 156 180 179 155 -f 160 184 183 159 -f 164 188 187 163 -f 168 192 191 167 -f 172 196 195 171 -f 176 200 199 175 -f 180 204 203 179 -f 184 208 207 183 -f 188 212 211 187 -f 192 216 215 191 -f 196 220 219 195 -f 200 224 223 199 -f 204 228 227 203 -f 208 232 231 207 -f 212 236 235 211 -f 216 240 239 215 -f 220 244 243 219 -f 224 248 247 223 -f 228 252 251 227 -f 232 256 255 231 -f 236 260 259 235 -f 240 264 263 239 -f 244 266 243 -f 248 266 247 -f 252 266 251 -f 256 266 255 -f 260 266 259 -f 264 266 263 -f 267 270 268 -f 267 274 273 -f 267 278 277 -f 267 282 281 -f 267 286 285 -f 267 290 289 -f 270 294 292 268 -f 274 298 297 273 -f 278 302 301 277 -f 282 306 305 281 -f 286 310 309 285 -f 290 314 313 289 -f 294 318 316 292 -f 298 322 321 297 -f 302 326 325 301 -f 306 330 329 305 -f 310 334 333 309 -f 314 338 337 313 -f 318 342 340 316 -f 322 346 345 321 -f 326 350 349 325 -f 330 354 353 329 -f 334 358 357 333 -f 338 362 361 337 -f 342 366 364 340 -f 346 370 369 345 -f 350 374 373 349 -f 354 378 377 353 -f 358 382 381 357 -f 362 386 385 361 -f 366 390 388 364 -f 370 394 393 369 -f 374 398 397 373 -f 378 402 401 377 -f 382 406 405 381 -f 386 410 409 385 -f 390 414 412 388 -f 394 418 417 393 -f 398 422 421 397 -f 402 426 425 401 -f 406 430 429 405 -f 410 434 433 409 -f 414 438 436 412 -f 418 442 441 417 -f 422 446 445 421 -f 426 450 449 425 -f 430 454 453 429 -f 434 458 457 433 -f 438 462 460 436 -f 442 466 465 441 -f 446 470 469 445 -f 450 474 473 449 -f 454 478 477 453 -f 458 482 481 457 -f 462 486 484 460 -f 466 490 489 465 -f 470 494 493 469 -f 474 498 497 473 -f 478 502 501 477 -f 482 506 505 481 -f 486 510 508 484 -f 490 514 513 489 -f 494 518 517 493 -f 498 522 521 497 -f 502 526 525 501 -f 506 530 529 505 -f 510 532 508 -f 514 532 513 -f 518 532 517 -f 522 532 521 -f 526 532 525 -f 530 532 529 -f 1161 1162 1163 -f 1161 1167 1166 -f 1161 1171 1170 -f 1161 1175 1174 -f 1161 1179 1178 -f 1161 1183 1182 -f 1162 1186 1187 1163 -f 1167 1191 1190 1166 -f 1171 1195 1194 1170 -f 1175 1199 1198 1174 -f 1179 1203 1202 1178 -f 1183 1207 1206 1182 -f 1186 1210 1211 1187 -f 1191 1215 1214 1190 -f 1195 1219 1218 1194 -f 1199 1223 1222 1198 -f 1203 1227 1226 1202 -f 1207 1231 1230 1206 -f 1210 1234 1235 1211 -f 1215 1239 1238 1214 -f 1219 1243 1242 1218 -f 1223 1247 1246 1222 -f 1227 1251 1250 1226 -f 1231 1255 1254 1230 -f 1234 1258 1259 1235 -f 1239 1263 1262 1238 -f 1243 1267 1266 1242 -f 1247 1271 1270 1246 -f 1251 1275 1274 1250 -f 1255 1279 1278 1254 -f 1258 1282 1283 1259 -f 1263 1287 1286 1262 -f 1267 1291 1290 1266 -f 1271 1295 1294 1270 -f 1275 1299 1298 1274 -f 1279 1303 1302 1278 -f 1282 1306 1307 1283 -f 1287 1311 1310 1286 -f 1291 1315 1314 1290 -f 1295 1319 1318 1294 -f 1299 1323 1322 1298 -f 1303 1327 1326 1302 -f 1306 1330 1331 1307 -f 1311 1335 1334 1310 -f 1315 1339 1338 1314 -f 1319 1343 1342 1318 -f 1323 1347 1346 1322 -f 1327 1351 1350 1326 -f 1330 1354 1355 1331 -f 1335 1359 1358 1334 -f 1339 1363 1362 1338 -f 1343 1367 1366 1342 -f 1347 1371 1370 1346 -f 1351 1375 1374 1350 -f 1354 1378 1379 1355 -f 1359 1383 1382 1358 -f 1363 1387 1386 1362 -f 1367 1391 1390 1366 -f 1371 1395 1394 1370 -f 1375 1399 1398 1374 -f 1378 1402 1403 1379 -f 1383 1407 1406 1382 -f 1387 1411 1410 1386 -f 1391 1415 1414 1390 -f 1395 1419 1418 1394 -f 1399 1423 1422 1398 -f 1402 1426 1403 -f 1407 1426 1406 -f 1411 1426 1410 -f 1415 1426 1414 -f 1419 1426 1418 -f 1423 1426 1422 -f 1427 1428 1429 -f 1427 1433 1432 -f 1427 1437 1436 -f 1427 1441 1440 -f 1427 1445 1444 -f 1427 1449 1448 -f 1428 1452 1453 1429 -f 1433 1457 1456 1432 -f 1437 1461 1460 1436 -f 1441 1465 1464 1440 -f 1445 1469 1468 1444 -f 1449 1473 1472 1448 -f 1452 1476 1477 1453 -f 1457 1481 1480 1456 -f 1461 1485 1484 1460 -f 1465 1489 1488 1464 -f 1469 1493 1492 1468 -f 1473 1497 1496 1472 -f 1476 1500 1501 1477 -f 1481 1505 1504 1480 -f 1485 1509 1508 1484 -f 1489 1513 1512 1488 -f 1493 1517 1516 1492 -f 1497 1521 1520 1496 -f 1500 1524 1525 1501 -f 1505 1529 1528 1504 -f 1509 1533 1532 1508 -f 1513 1537 1536 1512 -f 1517 1541 1540 1516 -f 1521 1545 1544 1520 -f 1524 1548 1549 1525 -f 1529 1553 1552 1528 -f 1533 1557 1556 1532 -f 1537 1561 1560 1536 -f 1541 1565 1564 1540 -f 1545 1569 1568 1544 -f 1548 1572 1573 1549 -f 1553 1577 1576 1552 -f 1557 1581 1580 1556 -f 1561 1585 1584 1560 -f 1565 1589 1588 1564 -f 1569 1593 1592 1568 -f 1572 1596 1597 1573 -f 1577 1601 1600 1576 -f 1581 1605 1604 1580 -f 1585 1609 1608 1584 -f 1589 1613 1612 1588 -f 1593 1617 1616 1592 -f 1596 1620 1621 1597 -f 1601 1625 1624 1600 -f 1605 1629 1628 1604 -f 1609 1633 1632 1608 -f 1613 1637 1636 1612 -f 1617 1641 1640 1616 -f 1620 1644 1645 1621 -f 1625 1649 1648 1624 -f 1629 1653 1652 1628 -f 1633 1657 1656 1632 -f 1637 1661 1660 1636 -f 1641 1665 1664 1640 -f 1644 1668 1669 1645 -f 1649 1673 1672 1648 -f 1653 1677 1676 1652 -f 1657 1681 1680 1656 -f 1661 1685 1684 1660 -f 1665 1689 1688 1664 -f 1668 1692 1669 -f 1673 1692 1672 -f 1677 1692 1676 -f 1681 1692 1680 -f 1685 1692 1684 -f 1689 1692 1688 -f 1691 1692 1690 -f 1687 1692 1686 -f 1683 1692 1682 -f 1679 1692 1678 -f 1675 1692 1674 -f 1671 1692 1670 -f 1667 1691 1690 1666 -f 1663 1687 1686 1662 -f 1659 1683 1682 1658 -f 1655 1679 1678 1654 -f 1651 1675 1674 1650 -f 1647 1671 1670 1646 -f 1643 1667 1666 1642 -f 1639 1663 1662 1638 -f 1635 1659 1658 1634 -f 1631 1655 1654 1630 -f 1627 1651 1650 1626 -f 1623 1647 1646 1622 -f 1619 1643 1642 1618 -f 1615 1639 1638 1614 -f 1611 1635 1634 1610 -f 1607 1631 1630 1606 -f 1603 1627 1626 1602 -f 1599 1623 1622 1598 -f 1595 1619 1618 1594 -f 1591 1615 1614 1590 -f 1587 1611 1610 1586 -f 1583 1607 1606 1582 -f 1579 1603 1602 1578 -f 1575 1599 1598 1574 -f 1571 1595 1594 1570 -f 1567 1591 1590 1566 -f 1563 1587 1586 1562 -f 1559 1583 1582 1558 -f 1555 1579 1578 1554 -f 1551 1575 1574 1550 -f 1547 1571 1570 1546 -f 1543 1567 1566 1542 -f 1539 1563 1562 1538 -f 1535 1559 1558 1534 -f 1531 1555 1554 1530 -f 1527 1551 1550 1526 -f 1523 1547 1546 1522 -f 1519 1543 1542 1518 -f 1515 1539 1538 1514 -f 1511 1535 1534 1510 -f 1507 1531 1530 1506 -f 1503 1527 1526 1502 -f 1499 1523 1522 1498 -f 1495 1519 1518 1494 -f 1491 1515 1514 1490 -f 1487 1511 1510 1486 -f 1483 1507 1506 1482 -f 1479 1503 1502 1478 -f 1475 1499 1498 1474 -f 1471 1495 1494 1470 -f 1467 1491 1490 1466 -f 1463 1487 1486 1462 -f 1459 1483 1482 1458 -f 1455 1479 1478 1454 -f 1451 1475 1474 1450 -f 1447 1471 1470 1446 -f 1443 1467 1466 1442 -f 1439 1463 1462 1438 -f 1435 1459 1458 1434 -f 1431 1455 1454 1430 -f 1427 1451 1450 -f 1427 1447 1446 -f 1427 1443 1442 -f 1427 1439 1438 -f 1427 1435 1434 -f 1427 1431 1430 -f 1425 1426 1424 -f 1421 1426 1420 -f 1417 1426 1416 -f 1413 1426 1412 -f 1409 1426 1408 -f 1405 1426 1404 -f 1401 1425 1424 1400 -f 1397 1421 1420 1396 -f 1393 1417 1416 1392 -f 1389 1413 1412 1388 -f 1385 1409 1408 1384 -f 1381 1405 1404 1380 -f 1377 1401 1400 1376 -f 1373 1397 1396 1372 -f 1369 1393 1392 1368 -f 1365 1389 1388 1364 -f 1361 1385 1384 1360 -f 1357 1381 1380 1356 -f 1353 1377 1376 1352 -f 1349 1373 1372 1348 -f 1345 1369 1368 1344 -f 1341 1365 1364 1340 -f 1337 1361 1360 1336 -f 1333 1357 1356 1332 -f 1329 1353 1352 1328 -f 1325 1349 1348 1324 -f 1321 1345 1344 1320 -f 1317 1341 1340 1316 -f 1313 1337 1336 1312 -f 1309 1333 1332 1308 -f 1305 1329 1328 1304 -f 1301 1325 1324 1300 -f 1297 1321 1320 1296 -f 1293 1317 1316 1292 -f 1289 1313 1312 1288 -f 1285 1309 1308 1284 -f 1281 1305 1304 1280 -f 1277 1301 1300 1276 -f 1273 1297 1296 1272 -f 1269 1293 1292 1268 -f 1265 1289 1288 1264 -f 1261 1285 1284 1260 -f 1257 1281 1280 1256 -f 1253 1277 1276 1252 -f 1249 1273 1272 1248 -f 1245 1269 1268 1244 -f 1241 1265 1264 1240 -f 1237 1261 1260 1236 -f 1233 1257 1256 1232 -f 1229 1253 1252 1228 -f 1225 1249 1248 1224 -f 1221 1245 1244 1220 -f 1217 1241 1240 1216 -f 1213 1237 1236 1212 -f 1209 1233 1232 1208 -f 1205 1229 1228 1204 -f 1201 1225 1224 1200 -f 1197 1221 1220 1196 -f 1193 1217 1216 1192 -f 1189 1213 1212 1188 -f 1185 1209 1208 1184 -f 1181 1205 1204 1180 -f 1177 1201 1200 1176 -f 1173 1197 1196 1172 -f 1169 1193 1192 1168 -f 1165 1189 1188 1164 -f 1161 1185 1184 -f 1161 1181 1180 -f 1161 1177 1176 -f 1161 1173 1172 -f 1161 1169 1168 -f 1161 1165 1164 -f 509 532 531 -f 528 532 527 -f 524 532 523 -f 520 532 519 -f 516 532 515 -f 512 532 511 -f 485 509 531 507 -f 504 528 527 503 -f 500 524 523 499 -f 496 520 519 495 -f 492 516 515 491 -f 488 512 511 487 -f 461 485 507 483 -f 480 504 503 479 -f 476 500 499 475 -f 472 496 495 471 -f 468 492 491 467 -f 464 488 487 463 -f 437 461 483 459 -f 456 480 479 455 -f 452 476 475 451 -f 448 472 471 447 -f 444 468 467 443 -f 440 464 463 439 -f 413 437 459 435 -f 432 456 455 431 -f 428 452 451 427 -f 424 448 447 423 -f 420 444 443 419 -f 416 440 439 415 -f 389 413 435 411 -f 408 432 431 407 -f 404 428 427 403 -f 400 424 423 399 -f 396 420 419 395 -f 392 416 415 391 -f 365 389 411 387 -f 384 408 407 383 -f 380 404 403 379 -f 376 400 399 375 -f 372 396 395 371 -f 368 392 391 367 -f 341 365 387 363 -f 360 384 383 359 -f 356 380 379 355 -f 352 376 375 351 -f 348 372 371 347 -f 344 368 367 343 -f 317 341 363 339 -f 336 360 359 335 -f 332 356 355 331 -f 328 352 351 327 -f 324 348 347 323 -f 320 344 343 319 -f 293 317 339 315 -f 312 336 335 311 -f 308 332 331 307 -f 304 328 327 303 -f 300 324 323 299 -f 296 320 319 295 -f 269 293 315 291 -f 288 312 311 287 -f 284 308 307 283 -f 280 304 303 279 -f 276 300 299 275 -f 272 296 295 271 -f 267 269 291 -f 267 288 287 -f 267 284 283 -f 267 280 279 -f 267 276 275 -f 267 272 271 -f 242 266 265 -f 262 266 261 -f 258 266 257 -f 254 266 253 -f 250 266 249 -f 246 266 245 -f 218 242 265 241 -f 238 262 261 237 -f 234 258 257 233 -f 230 254 253 229 -f 226 250 249 225 -f 222 246 245 221 -f 194 218 241 217 -f 214 238 237 213 -f 210 234 233 209 -f 206 230 229 205 -f 202 226 225 201 -f 198 222 221 197 -f 170 194 217 193 -f 190 214 213 189 -f 186 210 209 185 -f 182 206 205 181 -f 178 202 201 177 -f 174 198 197 173 -f 146 170 193 169 -f 166 190 189 165 -f 162 186 185 161 -f 158 182 181 157 -f 154 178 177 153 -f 150 174 173 149 -f 122 146 169 145 -f 142 166 165 141 -f 138 162 161 137 -f 134 158 157 133 -f 130 154 153 129 -f 126 150 149 125 -f 98 122 145 121 -f 118 142 141 117 -f 114 138 137 113 -f 110 134 133 109 -f 106 130 129 105 -f 102 126 125 101 -f 74 98 121 97 -f 94 118 117 93 -f 90 114 113 89 -f 86 110 109 85 -f 82 106 105 81 -f 78 102 101 77 -f 50 74 97 73 -f 70 94 93 69 -f 66 90 89 65 -f 62 86 85 61 -f 58 82 81 57 -f 54 78 77 53 -f 26 50 73 49 -f 46 70 69 45 -f 42 66 65 41 -f 38 62 61 37 -f 34 58 57 33 -f 30 54 53 29 -f 2 26 49 25 -f 22 46 45 21 -f 18 42 41 17 -f 14 38 37 13 -f 10 34 33 9 -f 6 30 29 5 -f 1 2 25 -f 1 22 21 -f 1 18 17 -f 1 14 13 -f 1 10 9 -f 1 6 5 -f 1 3 2 -f 1 7 6 -f 1 11 10 -f 1 15 14 -f 1 19 18 -f 1 23 22 -f 3 27 26 2 -f 7 31 30 6 -f 11 35 34 10 -f 15 39 38 14 -f 19 43 42 18 -f 23 47 46 22 -f 27 51 50 26 -f 31 55 54 30 -f 35 59 58 34 -f 39 63 62 38 -f 43 67 66 42 -f 47 71 70 46 -f 51 75 74 50 -f 55 79 78 54 -f 59 83 82 58 -f 63 87 86 62 -f 67 91 90 66 -f 71 95 94 70 -f 75 99 98 74 -f 79 103 102 78 -f 83 107 106 82 -f 87 111 110 86 -f 91 115 114 90 -f 95 119 118 94 -f 99 123 122 98 -f 103 127 126 102 -f 107 131 130 106 -f 111 135 134 110 -f 115 139 138 114 -f 119 143 142 118 -f 123 147 146 122 -f 127 151 150 126 -f 131 155 154 130 -f 135 159 158 134 -f 139 163 162 138 -f 143 167 166 142 -f 147 171 170 146 -f 151 175 174 150 -f 155 179 178 154 -f 159 183 182 158 -f 163 187 186 162 -f 167 191 190 166 -f 171 195 194 170 -f 175 199 198 174 -f 179 203 202 178 -f 183 207 206 182 -f 187 211 210 186 -f 191 215 214 190 -f 195 219 218 194 -f 199 223 222 198 -f 203 227 226 202 -f 207 231 230 206 -f 211 235 234 210 -f 215 239 238 214 -f 219 243 242 218 -f 223 247 246 222 -f 227 251 250 226 -f 231 255 254 230 -f 235 259 258 234 -f 239 263 262 238 -f 243 266 242 -f 247 266 246 -f 251 266 250 -f 255 266 254 -f 259 266 258 -f 263 266 262 -f 267 268 269 -f 267 273 272 -f 267 277 276 -f 267 281 280 -f 267 285 284 -f 267 289 288 -f 268 292 293 269 -f 273 297 296 272 -f 277 301 300 276 -f 281 305 304 280 -f 285 309 308 284 -f 289 313 312 288 -f 292 316 317 293 -f 297 321 320 296 -f 301 325 324 300 -f 305 329 328 304 -f 309 333 332 308 -f 313 337 336 312 -f 316 340 341 317 -f 321 345 344 320 -f 325 349 348 324 -f 329 353 352 328 -f 333 357 356 332 -f 337 361 360 336 -f 340 364 365 341 -f 345 369 368 344 -f 349 373 372 348 -f 353 377 376 352 -f 357 381 380 356 -f 361 385 384 360 -f 364 388 389 365 -f 369 393 392 368 -f 373 397 396 372 -f 377 401 400 376 -f 381 405 404 380 -f 385 409 408 384 -f 388 412 413 389 -f 393 417 416 392 -f 397 421 420 396 -f 401 425 424 400 -f 405 429 428 404 -f 409 433 432 408 -f 412 436 437 413 -f 417 441 440 416 -f 421 445 444 420 -f 425 449 448 424 -f 429 453 452 428 -f 433 457 456 432 -f 436 460 461 437 -f 441 465 464 440 -f 445 469 468 444 -f 449 473 472 448 -f 453 477 476 452 -f 457 481 480 456 -f 460 484 485 461 -f 465 489 488 464 -f 469 493 492 468 -f 473 497 496 472 -f 477 501 500 476 -f 481 505 504 480 -f 484 508 509 485 -f 489 513 512 488 -f 493 517 516 492 -f 497 521 520 496 -f 501 525 524 500 -f 505 529 528 504 -f 508 532 509 -f 513 532 512 -f 517 532 516 -f 521 532 520 -f 525 532 524 -f 529 532 528 -f 1161 1164 1162 -f 1161 1168 1167 -f 1161 1172 1171 -f 1161 1176 1175 -f 1161 1180 1179 -f 1161 1184 1183 -f 1164 1188 1186 1162 -f 1168 1192 1191 1167 -f 1172 1196 1195 1171 -f 1176 1200 1199 1175 -f 1180 1204 1203 1179 -f 1184 1208 1207 1183 -f 1188 1212 1210 1186 -f 1192 1216 1215 1191 -f 1196 1220 1219 1195 -f 1200 1224 1223 1199 -f 1204 1228 1227 1203 -f 1208 1232 1231 1207 -f 1212 1236 1234 1210 -f 1216 1240 1239 1215 -f 1220 1244 1243 1219 -f 1224 1248 1247 1223 -f 1228 1252 1251 1227 -f 1232 1256 1255 1231 -f 1236 1260 1258 1234 -f 1240 1264 1263 1239 -f 1244 1268 1267 1243 -f 1248 1272 1271 1247 -f 1252 1276 1275 1251 -f 1256 1280 1279 1255 -f 1260 1284 1282 1258 -f 1264 1288 1287 1263 -f 1268 1292 1291 1267 -f 1272 1296 1295 1271 -f 1276 1300 1299 1275 -f 1280 1304 1303 1279 -f 1284 1308 1306 1282 -f 1288 1312 1311 1287 -f 1292 1316 1315 1291 -f 1296 1320 1319 1295 -f 1300 1324 1323 1299 -f 1304 1328 1327 1303 -f 1308 1332 1330 1306 -f 1312 1336 1335 1311 -f 1316 1340 1339 1315 -f 1320 1344 1343 1319 -f 1324 1348 1347 1323 -f 1328 1352 1351 1327 -f 1332 1356 1354 1330 -f 1336 1360 1359 1335 -f 1340 1364 1363 1339 -f 1344 1368 1367 1343 -f 1348 1372 1371 1347 -f 1352 1376 1375 1351 -f 1356 1380 1378 1354 -f 1360 1384 1383 1359 -f 1364 1388 1387 1363 -f 1368 1392 1391 1367 -f 1372 1396 1395 1371 -f 1376 1400 1399 1375 -f 1380 1404 1402 1378 -f 1384 1408 1407 1383 -f 1388 1412 1411 1387 -f 1392 1416 1415 1391 -f 1396 1420 1419 1395 -f 1400 1424 1423 1399 -f 1404 1426 1402 -f 1408 1426 1407 -f 1412 1426 1411 -f 1416 1426 1415 -f 1420 1426 1419 -f 1424 1426 1423 -f 1427 1430 1428 -f 1427 1434 1433 -f 1427 1438 1437 -f 1427 1442 1441 -f 1427 1446 1445 -f 1427 1450 1449 -f 1430 1454 1452 1428 -f 1434 1458 1457 1433 -f 1438 1462 1461 1437 -f 1442 1466 1465 1441 -f 1446 1470 1469 1445 -f 1450 1474 1473 1449 -f 1454 1478 1476 1452 -f 1458 1482 1481 1457 -f 1462 1486 1485 1461 -f 1466 1490 1489 1465 -f 1470 1494 1493 1469 -f 1474 1498 1497 1473 -f 1478 1502 1500 1476 -f 1482 1506 1505 1481 -f 1486 1510 1509 1485 -f 1490 1514 1513 1489 -f 1494 1518 1517 1493 -f 1498 1522 1521 1497 -f 1502 1526 1524 1500 -f 1506 1530 1529 1505 -f 1510 1534 1533 1509 -f 1514 1538 1537 1513 -f 1518 1542 1541 1517 -f 1522 1546 1545 1521 -f 1526 1550 1548 1524 -f 1530 1554 1553 1529 -f 1534 1558 1557 1533 -f 1538 1562 1561 1537 -f 1542 1566 1565 1541 -f 1546 1570 1569 1545 -f 1550 1574 1572 1548 -f 1554 1578 1577 1553 -f 1558 1582 1581 1557 -f 1562 1586 1585 1561 -f 1566 1590 1589 1565 -f 1570 1594 1593 1569 -f 1574 1598 1596 1572 -f 1578 1602 1601 1577 -f 1582 1606 1605 1581 -f 1586 1610 1609 1585 -f 1590 1614 1613 1589 -f 1594 1618 1617 1593 -f 1598 1622 1620 1596 -f 1602 1626 1625 1601 -f 1606 1630 1629 1605 -f 1610 1634 1633 1609 -f 1614 1638 1637 1613 -f 1618 1642 1641 1617 -f 1622 1646 1644 1620 -f 1626 1650 1649 1625 -f 1630 1654 1653 1629 -f 1634 1658 1657 1633 -f 1638 1662 1661 1637 -f 1642 1666 1665 1641 -f 1646 1670 1668 1644 -f 1650 1674 1673 1649 -f 1654 1678 1677 1653 -f 1658 1682 1681 1657 -f 1662 1686 1685 1661 -f 1666 1690 1689 1665 -f 1670 1692 1668 -f 1674 1692 1673 -f 1678 1692 1677 -f 1682 1692 1681 -f 1686 1692 1685 -f 1690 1692 1689 -g arms -usemtl bronze -f 2106 2107 1728 1726 1725 2029 -f 2936 2922 2921 2753 -f 2892 2907 2908 2893 -f 2829 2815 2945 2943 -f 2945 2947 2948 2946 -f 2858 2890 2889 2872 -f 2753 2921 2938 2750 -f 2932 2776 2778 2933 -f 2928 2768 2770 2929 -f 2924 2757 2758 2925 -f 2918 2933 2934 2919 -f 2914 2929 2930 2915 -f 2910 2925 2926 2911 -f 2904 2919 2920 2905 -f 2900 2915 2916 2901 -f 2896 2911 2912 2897 -f 2891 2906 2907 2892 -f 2882 2901 2902 2883 -f 2878 2897 2898 2879 -f 2873 2893 2894 2874 -f 2869 2884 2885 2870 -f 2865 2880 2881 2866 -f 2861 2875 2876 2877 2862 -f 2856 2870 2871 2857 -f 2851 2866 2867 2852 -f 2847 2862 2863 2848 -f 2843 2858 2859 2844 -f 2838 2853 2852 2854 2839 -f 2834 2848 2849 2835 -f 2830 2844 2845 2831 -f 2825 2839 2840 2826 -f 2821 2835 2836 2822 -f 2817 2831 2832 2818 -f 2812 2826 2827 2813 -f 2808 2822 2823 2809 -f 2804 2818 2819 2805 -f 2797 2813 2814 2798 -f 2793 2809 2810 2794 -f 2789 2805 2806 2790 -f 2800 2801 2802 2786 -f 2775 2795 2796 2777 -f 2767 2791 2792 2769 -f 2756 2787 2788 2759 -f 2778 2777 2779 2780 -f 2770 2769 2771 2772 -f 2761 2758 2760 2759 2762 2763 -f 2721 2649 2726 2749 2326 2325 -f 2729 2730 2334 2332 -f 2652 2733 2344 2343 -f 2736 2660 2360 2358 -f 2739 2740 2370 2368 -f 2742 2743 2380 2378 -f 2745 2683 2390 2388 -f 2688 2691 2406 2405 -f 2747 2748 2418 2416 -f 2669 2672 2641 2631 -f 2725 2661 2574 2666 -f 2662 2723 2711 2663 -f 2696 2748 2647 2613 -f 2693 2690 2606 2610 -f 2685 2682 2597 2561 -f 2677 2593 2594 2676 -f 2628 2697 2612 2622 -f 2678 2569 2566 2576 -f 2742 2741 2573 2575 -f 2739 2738 2662 2661 -f 2736 2735 2715 2713 -f 2656 2733 2718 2614 -f 2731 2730 2702 2700 -f 2727 2726 2704 2722 -f 2586 2724 2725 2666 2584 -f 2606 2605 2610 -f 2723 2643 2587 2711 -f 2681 2648 2562 2596 -f 2658 2657 2353 2350 -f 2683 2682 2393 2390 -f 2691 2690 2409 2406 -f 2642 2634 2633 2639 -f 2627 2719 2697 2628 -f 2624 2680 2679 2625 -f 2651 2714 2716 2718 -f 2714 2712 2713 2715 -f 2705 2667 2701 2708 2706 -f 2583 2699 2700 2577 2568 -f 2613 2647 2648 2611 -f 2606 2690 2691 2607 -f 2600 2686 2687 2601 -f 2597 2682 2683 2598 -f 2677 2678 2590 2593 -f 2668 2671 2581 2595 -f 2632 2621 2620 2630 -f 2566 2569 2572 2567 -f 2643 2659 2660 2644 -f 2636 2649 2650 2637 -f 2633 2634 2635 2636 2637 2638 -f 2618 2619 2579 2620 2621 2622 -f 2605 2606 2607 2608 -f 2581 2594 2595 -f 2582 2583 2568 -f 2569 2570 2571 2572 -f 2515 2560 2516 -f 2549 2548 2437 -f 2510 2512 2494 2497 -f 2551 2482 2481 -f 2450 2449 2530 2529 -f 2545 2502 2431 -f 2559 2474 2553 2558 -f 2352 2529 2530 2347 -f 2521 2520 2446 2543 -f 2500 2503 2506 2505 -f 2496 2429 2426 2509 -f 2495 2493 2437 2548 -f 2556 2439 2488 2487 2557 -f 2443 2484 2550 2440 -f 2481 2480 2440 2551 -f 2474 2559 2475 -f 2517 2516 2560 2453 -f 2463 2508 2425 2468 -f 2458 2457 2526 2525 -f 2451 2450 2529 2528 -f 2436 2439 2556 2555 -f 2435 2434 2422 2539 -f 2431 2430 2546 2545 -f 2412 2407 2410 2413 -f 2396 2391 2394 2397 -f 2362 2359 2360 2363 -f 2324 2323 2421 2424 2325 -f 2537 2464 2463 2468 -f 2519 2461 2447 -f 2544 2545 2546 2547 -f 2323 2322 2537 2538 -f 2331 2333 2535 2536 -f 2342 2341 2448 2531 -f 2351 2355 2527 2528 -f 2361 2365 2460 2459 -f 2374 2373 2520 2521 -f 2381 2383 2516 2517 -f 2425 2508 2509 2426 -f 2496 2497 2498 2499 -f 2385 2389 2487 2488 -f 2404 2403 2480 2481 -f 2415 2417 2474 2475 -f 2463 2464 2465 2466 -f 2448 2449 2450 2451 -f 2433 2434 2435 -f 2419 2417 2418 2420 -f 2407 2408 2409 2410 -f 2391 2392 2393 2394 -f 2381 2379 2380 2382 -f 2371 2369 2370 2372 -f 2361 2362 2363 2364 -f 2351 2352 2353 2354 -f 2339 2337 2338 2340 -f 2331 2329 2330 2332 -f 2153 2170 2186 2200 2214 2229 2243 2258 2277 2292 2307 2154 -f 2172 2171 2124 2157 -f 2173 2172 2157 2319 -f 2230 2215 2313 2262 -f 2313 2315 2316 2314 -f 2278 2263 2312 2311 -f 2306 2152 2154 2307 -f 2302 2144 2146 2309 2303 -f 2298 2133 2136 2299 -f 2294 2308 2126 2295 -f 2288 2303 2304 2289 -f 2284 2299 2300 2285 -f 2280 2295 2296 2281 -f 2274 2289 2290 2275 -f 2270 2285 2286 2271 -f 2266 2281 2282 2267 -f 2256 2275 2276 2257 -f 2252 2271 2272 2253 -f 2247 2267 2268 2248 -f 2259 2260 2261 2262 -f 2239 2254 2255 2240 -f 2235 2250 2251 2236 -f 2231 2245 2246 2232 -f 2226 2240 2241 2227 -f 2221 2236 2237 2222 -f 2217 2232 2233 2218 -f 2212 2227 2228 2213 -f 2208 2222 2223 2209 -f 2204 2218 2219 2205 -f 2199 2213 2214 2200 -f 2195 2209 2210 2196 -f 2191 2205 2206 2192 -f 2187 2201 2202 2188 -f 2182 2196 2197 2183 -f 2178 2192 2193 2179 -f 2174 2188 2189 2175 -f 2167 2183 2184 2168 -f 2163 2179 2180 2164 -f 2159 2175 2176 2160 -f 2151 2169 2170 2153 -f 2143 2165 2166 2145 -f 2134 2161 2162 2137 -f 2123 2155 2156 2157 2124 -f 2146 2145 2147 2148 -f 2136 2138 2137 2139 2140 -f 2126 2127 2128 2129 -f 2099 2100 1702 1700 -f 2103 2104 1710 1708 -f 2027 2030 1722 1721 -f 2109 2110 1738 1736 -f 2036 2113 1748 1747 -f 2116 1944 1756 1754 -f 2056 2059 1770 1769 -f 2064 2118 1786 1785 -f 2092 2022 1796 1795 -f 1952 1991 2052 1996 -f 1954 1960 2018 1955 -f 2006 2079 2075 2007 -f 2119 2118 2066 2067 -f 2061 2058 1972 1976 -f 2117 1943 1997 2051 -f 2044 2041 2040 2045 -f 2046 1963 2039 2077 -f 2116 2115 1961 2070 -f 2037 2112 2097 2096 1958 -f 2109 2031 2015 2095 -f 2106 2029 1988 2089 -f 2025 2104 2071 2026 -f 2101 2100 2082 2081 -f 2022 2092 2009 -f 2043 1992 1951 1953 -f 2070 1961 1960 1954 -f 2074 2081 2080 2073 -f 2025 2024 1715 1712 -f 2037 2036 1747 1744 -f 2059 2058 1773 1770 -f 2068 2069 2091 2092 1795 1792 -f 2003 2013 2012 2004 -f 1991 1952 1951 -f 1936 1935 2067 2066 -f 2086 2023 2026 2018 2017 -f 1959 1961 1947 2035 2083 -f 2007 2075 2076 2008 -f 1940 1948 1938 -f 2066 1981 1977 1936 -f 1975 2060 2061 1976 -f 1937 2056 2057 1933 -f 1997 1943 1942 1995 -f 1966 1965 1964 1967 -f 2040 2041 2042 2043 -f 1994 1984 1983 1990 -f 1957 2036 2037 1958 -f 1989 2027 2028 1986 -f 2015 2016 2017 2018 1960 1959 -f 1998 1999 2000 2001 -f 1983 1984 1985 -f 1971 1972 1973 -f 1959 1960 1961 -f 1948 1940 1949 1950 -f 1933 1934 1935 1936 1937 -f 1892 1891 1819 -f 1915 1894 1893 -f 1929 1859 1858 -f 1813 1850 1849 -f 1864 1861 1810 -f 1873 1914 1799 1804 -f 1714 1903 1904 1711 -f 1832 1816 1819 1833 -f 1882 1842 1841 1884 -f 1873 1872 1912 1914 -f 1869 1868 1881 1882 -f 1863 1862 1883 1886 -f 1858 1857 1930 1929 -f 1855 1854 1923 1922 -f 1784 1849 1850 1779 -f 1845 1791 1876 1879 -f 1844 1843 1907 1906 -f 1838 1837 1908 -f 1827 1826 1905 1904 -f 1892 1819 1818 -f 1810 1809 1865 1864 -f 1805 1807 1913 1912 -f 1799 1798 1801 1804 -f 1776 1771 1774 1777 -f 1758 1755 1756 1759 -f 1720 1717 1718 1721 -f 1925 1926 1927 1928 -f 1900 1899 1828 1823 -f 1922 1923 1812 -f 1912 1913 1914 -f 1699 1701 1837 1836 -f 1707 1709 1905 1906 -f 1719 1902 1720 -f 1729 1731 1897 1898 -f 1739 1741 1817 1816 -f 1749 1751 1890 1891 -f 1883 1884 1841 1885 -f 1872 1873 1874 1875 -f 1862 1863 1864 1865 -f 1768 1767 1856 1815 -f 1784 1783 1848 1849 -f 1841 1842 1843 1844 -f 1828 1829 1830 -f 1812 1813 1814 1815 -f 1797 1798 1799 1800 -f 1787 1783 1786 1788 -f 1771 1772 1773 1774 -f 1757 1758 1759 1760 -f 1749 1745 1748 1750 -f 1739 1737 1738 1740 -f 1729 1727 1728 1730 -f 1717 1713 1716 1718 -f 1707 1705 1706 1708 -f 1699 1694 1693 1698 1700 -f 1160 1158 1145 1146 -f 1156 1157 1095 1081 -f 1151 1152 1137 1138 -f 1137 1139 994 1008 -f 1149 1141 1142 1155 -f 1146 1145 1108 1123 -f 1118 1133 1134 1119 -f 1114 1129 1130 1115 -f 1110 1125 1126 1111 -f 1105 1119 1120 1106 -f 1101 1115 1116 1102 -f 1097 1111 1112 1098 -f 1092 1106 1107 1093 -f 1088 1102 1103 1089 -f 1084 1098 1099 1085 -f 1143 1144 1157 1156 -f 1075 1089 1090 1076 -f 1071 1085 1086 1072 -f 1067 1081 1082 1068 -f 1062 1077 1078 1063 -f 1058 1073 1074 1059 -f 1054 1069 1070 1065 1055 -f 1049 1063 1064 1050 -f 1045 1059 1060 1046 -f 1041 1055 1056 1042 -f 1150 1149 1052 1038 -f 1031 1036 1046 1047 1032 -f 1027 1042 1043 1028 -f 1023 1038 1039 1024 -f 1018 1032 1033 1019 -f 1014 1028 1029 1015 -f 1010 1024 1025 1011 -f 1005 1019 1020 1006 -f 1001 1015 1016 1002 -f 997 1011 1012 998 -f 992 1006 1007 993 -f 988 1002 1003 989 -f 984 998 999 985 -f 1153 1154 995 981 -f 975 990 991 976 -f 971 986 987 972 -f 967 982 983 968 -f 1134 976 977 1135 -f 1130 972 973 1131 -f 1127 1126 963 968 969 964 -f 960 806 805 961 772 771 -f 813 815 767 768 -f 823 826 761 763 -f 832 836 756 758 -f 842 846 751 753 -f 856 855 747 746 -f 863 865 742 743 -f 906 905 736 735 -f 921 923 727 728 -f 803 802 723 722 -f 945 946 947 948 -f 785 784 939 940 -f 958 957 933 934 -f 925 923 924 926 -f 909 910 911 912 -f 895 896 897 898 -f 953 952 885 886 -f 876 873 874 875 -f 863 861 862 864 -f 852 850 851 853 854 -f 842 843 844 845 -f 832 833 834 835 -f 819 820 821 822 -f 813 811 812 814 -f 802 803 804 -f 795 794 791 792 -f 864 862 784 785 -f 816 814 935 779 -f 819 823 763 765 -f 852 856 746 748 -f 905 910 733 736 -f 927 878 951 803 722 725 -f 955 954 881 884 -f 946 945 791 -f 944 798 926 924 -f 783 824 822 939 937 -f 781 862 860 936 782 -f 934 933 808 807 -f 931 870 869 -f 924 922 787 944 -f 915 914 909 912 -f 907 906 901 904 -f 897 896 891 894 -f 890 889 887 888 -f 885 952 796 795 -f 880 879 775 778 -f 857 856 852 854 -f 831 830 825 828 -f 844 841 937 939 784 781 -f 799 949 877 882 -f 775 879 930 -f 788 911 908 -f 781 784 862 -f 870 931 932 872 -f 904 773 798 944 907 -f 636 634 708 -f 697 640 637 -f 720 594 591 -f 707 574 572 -f 600 597 546 -f 613 694 535 540 -f 671 670 672 675 -f 647 645 708 558 -f 621 620 622 623 -f 613 612 695 694 -f 607 608 618 621 -f 603 602 627 626 -f 591 590 721 720 -f 583 582 704 706 -f 573 572 574 577 -f 564 567 616 615 -f 562 715 678 676 -f 559 682 680 -f 555 554 673 672 -f 636 708 551 -f 546 549 601 600 -f 545 544 693 695 -f 535 538 541 540 -f 580 585 734 731 -f 598 629 742 740 -f 664 669 762 759 -f 718 719 716 717 -f 659 657 711 553 -f 706 704 705 -f 695 693 694 -f 685 683 682 684 -f 677 674 673 676 -f 665 663 664 -f 656 654 653 655 -f 646 644 643 645 -f 635 633 632 634 -f 627 623 622 624 -f 612 613 610 611 -f 602 603 600 601 -f 588 589 586 587 -f 573 571 570 572 -f 622 620 715 562 -f 711 556 557 -f 705 707 550 587 -f 537 538 535 536 -f 569 571 727 726 -f 585 584 733 734 -f 599 598 740 741 -f 635 639 747 745 -f 646 648 751 750 -f 656 658 756 755 -f 669 668 761 762 -f 677 679 767 766 -f 685 689 533 772 770 -f 683 685 770 769 -f 674 677 766 764 -f 665 664 759 760 -f 654 656 755 754 -f 644 646 750 749 -f 633 635 745 744 -f 595 599 741 739 -f 581 580 731 732 -f 566 569 726 724 -f 541 542 539 540 -f 645 643 551 708 -f 649 647 558 712 -f 566 567 564 565 -f 576 577 574 575 -f 592 593 590 591 -f 605 602 601 604 -f 616 617 614 615 -f 626 627 624 625 -f 639 635 634 636 -f 648 646 645 647 -f 658 656 655 657 -f 668 669 666 667 -f 679 677 676 678 -f 689 685 684 686 -f 643 641 640 697 551 -f 575 574 707 -f 650 649 712 713 -f 718 717 720 721 -f 661 665 760 757 -f 592 595 739 737 -f 576 581 732 729 -f 536 535 694 693 -f 543 545 617 616 -f 547 546 597 596 -f 711 670 667 553 -f 556 711 657 655 -f 715 620 619 714 559 -f 676 673 554 563 562 -f 565 564 719 718 -f 576 575 578 581 -f 584 583 586 589 -f 592 591 594 595 -f 627 602 605 623 -f 699 609 606 702 -f 611 610 701 700 -f 626 625 628 629 -f 651 650 653 654 -f 688 687 690 692 -f 687 560 536 693 544 690 -f 700 703 548 716 614 611 -f 575 707 705 578 -f 702 606 604 -f 709 563 554 -f 603 626 629 598 -f 869 866 931 -f 791 945 792 -f 871 873 887 889 -f 790 915 912 -f 828 942 834 831 -f 793 955 884 -f 929 798 773 776 -f 834 833 829 831 -f 858 857 797 943 -f 883 882 877 880 -f 953 886 876 956 -f 893 890 792 945 -f 898 947 777 774 900 -f 908 907 789 788 -f 916 915 790 789 -f 929 926 798 -f 866 864 785 931 -f 875 780 933 957 -f 938 937 841 839 -f 942 941 835 834 -f 947 946 778 777 -f 951 950 804 803 -f 952 955 793 796 -f 917 921 728 730 -f 901 906 735 738 -f 840 843 752 754 -f 802 806 960 771 723 -f 810 808 933 780 -f 860 786 936 -f 793 794 795 796 -f 805 806 807 808 -f 815 813 814 816 -f 826 823 824 827 -f 836 832 835 837 -f 846 842 845 847 -f 855 856 857 858 -f 865 863 864 866 -f 875 957 956 876 -f 887 886 885 888 -f 899 895 898 900 -f 913 914 915 916 -f 928 925 926 929 -f 810 780 935 812 -f 828 827 941 942 -f 949 950 951 -f 928 927 725 724 -f 918 917 730 729 -f 902 901 738 737 -f 861 863 743 744 -f 850 852 748 749 -f 843 842 753 752 -f 833 832 758 757 -f 820 819 765 764 -f 811 813 768 769 -f 1123 965 1148 1146 -f 1128 1127 964 969 970 962 -f 1131 973 974 1132 -f 1135 977 978 1136 -f 968 983 984 969 -f 972 987 988 973 -f 976 991 992 977 -f 981 995 996 982 -f 985 999 1000 986 -f 989 1003 1004 990 -f 1154 1152 1009 995 -f 998 1012 1013 999 -f 1002 1016 1017 1003 -f 1006 1020 1021 1007 -f 1011 1025 1026 1012 -f 1015 1029 1030 1016 -f 1019 1033 1034 1020 -f 1024 1039 1040 1025 -f 1028 1043 1044 1029 -f 1032 1047 1048 1033 -f 1038 1052 1053 1039 -f 1042 1056 1057 1043 -f 1046 1060 1061 1047 -f 1149 1155 1067 1052 -f 1055 1065 1070 1071 1056 -f 1059 1074 1075 1060 -f 1063 1078 1079 1064 -f 1068 1082 1083 1069 -f 1072 1086 1087 1073 -f 1076 1090 1091 1077 -f 1081 1095 1096 1082 -f 1085 1099 1100 1086 -f 1089 1103 1104 1090 -f 1144 1145 1158 1157 -f 1098 1112 1113 1099 -f 1102 1116 1117 1103 -f 1106 1120 1121 1107 -f 1111 1126 1127 1112 -f 1115 1130 1131 1116 -f 1119 1134 1135 1120 -f 1145 1144 1094 1108 -f 1141 1147 1037 1051 -f 1139 1140 980 994 -f 1152 1154 1139 1137 -f 1157 1158 1109 1095 -f 1080 1066 1051 1037 1022 1008 994 980 979 965 1123 1108 1094 -f 1701 1699 1700 1702 -f 1709 1707 1708 1710 -f 1719 1720 1721 1722 -f 1731 1729 1730 1732 -f 1741 1739 1740 1742 -f 1751 1749 1750 1752 -f 1761 1757 1760 1762 -f 1775 1776 1777 1778 -f 1789 1787 1788 1790 -f 1801 1802 1803 1804 -f 1816 1817 1818 1819 -f 1831 1832 1833 1834 -f 1789 1791 1845 1846 -f 1780 1779 1850 1851 -f 1764 1763 1857 1858 -f 1866 1862 1865 1867 -f 1876 1877 1878 1879 -f 1886 1883 1885 1887 -f 1745 1749 1891 1892 -f 1737 1739 1816 1832 -f 1727 1729 1898 1899 -f 1713 1717 1821 1820 -f 1705 1707 1906 1907 -f 1694 1699 1836 1909 -f 1817 1895 1894 1915 1818 -f 1851 1850 1813 -f 1896 1831 1834 1924 -f 1925 1928 1929 1930 -f 1724 1719 1722 1725 -f 1764 1761 1762 1765 -f 1780 1775 1778 1781 -f 1800 1799 1914 1913 -f 1806 1805 1877 1876 -f 1811 1810 1861 1860 -f 1828 1903 1820 1823 -f 1829 1828 1899 1898 -f 1843 1842 1880 1835 1838 -f 1906 1905 1826 1932 1844 -f 1846 1845 1926 1925 -f 1780 1851 1852 1775 -f 1772 1855 1856 1767 -f 1764 1858 1859 1761 -f 1883 1862 1866 1884 -f 1919 1871 1870 1920 -f 1875 1874 1917 1916 -f 1886 1887 1888 1755 -f 1734 1896 1897 1731 -f 1695 1910 1911 1793 -f 1910 1839 1800 1913 1807 1911 -f 1916 1921 1808 1927 1878 1875 -f 1851 1813 1812 1852 -f 1920 1870 1867 -f 1825 1932 1826 -f 1863 1886 1755 1758 -f 1938 1939 1940 -f 1951 1952 1953 -f 1962 1963 1964 1965 -f 1974 1975 1976 -f 1986 1987 1988 1989 -f 2002 2003 2004 -f 2019 1935 1934 2020 -f 1988 2029 2030 1989 -f 1945 1957 1956 2038 -f 1993 2001 2000 1994 -f 2044 2045 2046 2047 -f 2048 1966 1953 1952 -f 2051 2052 2053 1968 1970 -f 1973 1937 1980 1971 -f 1979 1975 1974 1980 -f 2019 2067 1935 -f 1939 2070 1954 1940 -f 2077 2078 2075 2079 -f 2084 2017 2016 2085 -f 1987 2088 2089 1988 -f 2052 1991 1990 2053 -f 2091 2010 2009 2092 -f 2041 2003 2002 2042 -f 2065 2064 1785 1782 -f 2057 2056 1769 1766 -f 2032 2031 1735 1732 -f 2022 2021 2093 1697 1796 -f 2094 2076 2075 2078 -f 1947 1946 2035 -f 2002 1992 2043 2042 -f 2098 2021 2008 2076 -f 2102 2101 2081 2074 -f 2105 2024 2023 2090 -f 2107 2106 2089 2087 -f 2110 2109 2095 2034 -f 2113 2036 1957 1945 -f 1944 2116 2070 1939 -f 2077 2079 2047 2046 -f 1964 2045 2040 1967 -f 2055 2117 2051 1970 -f 2063 2060 1975 1979 -f 2120 2119 2067 2019 -f 2094 2078 2080 2082 -f 1986 2090 2088 1987 -f 1999 2010 2091 -f 2120 2068 1792 1790 -f 2062 2065 1782 1781 -f 2054 2057 1766 1765 -f 2115 2116 1754 1752 -f 2112 2037 1744 1742 -f 2031 2109 1736 1735 -f 2105 2028 1718 1716 -f 2102 2103 1708 1706 -f 2121 2098 2099 1700 1698 -f 2130 2129 2128 2131 2132 -f 2140 2139 2141 2142 -f 2148 2147 2149 2150 -f 2127 2158 2159 2128 -f 2137 2162 2163 2139 -f 2145 2166 2167 2147 -f 2127 2171 2172 2158 -f 2160 2176 2177 2161 -f 2164 2180 2181 2165 -f 2168 2184 2185 2169 -f 2175 2189 2190 2176 -f 2179 2193 2194 2180 -f 2183 2197 2198 2184 -f 2188 2202 2203 2189 -f 2192 2206 2207 2193 -f 2196 2210 2211 2197 -f 2201 2215 2216 2202 -f 2205 2219 2220 2206 -f 2209 2223 2224 2225 2210 -f 2213 2228 2229 2214 -f 2218 2233 2234 2219 -f 2222 2237 2238 2223 -f 2227 2241 2242 2228 -f 2232 2246 2247 2233 -f 2236 2251 2252 2237 -f 2240 2255 2256 2241 -f 2261 2263 2264 2244 -f 2248 2268 2269 2250 -f 2253 2272 2273 2254 -f 2257 2276 2277 2258 -f 2267 2282 2283 2268 -f 2271 2286 2287 2272 -f 2275 2290 2291 2276 -f 2281 2296 2297 2282 -f 2285 2300 2301 2286 -f 2289 2304 2305 2290 -f 2295 2126 2129 2296 -f 2299 2136 2140 2300 -f 2303 2309 2146 2148 2304 -f 2308 2171 2127 2126 -f 2263 2261 2260 2312 -f 2315 2317 2318 2316 -f 2215 2201 2315 2313 -f 2244 2264 2265 2245 -f 2171 2308 2125 2124 -f 2321 2322 2323 2324 2325 2326 -f 2333 2331 2332 2334 -f 2341 2342 2343 2344 -f 2355 2351 2354 2356 -f 2365 2361 2364 2366 -f 2373 2374 2375 2376 -f 2383 2381 2382 2384 -f 2395 2396 2397 2398 -f 2411 2412 2413 2414 -f 2421 2422 2423 2424 -f 2436 2437 2438 2439 -f 2452 2453 2454 2455 -f 2425 2428 2467 2468 -f 2411 2415 2475 2476 -f 2400 2399 2482 2483 -f 2386 2385 2488 2489 -f 2430 2429 2496 2499 -f 2510 2509 2508 2470 -f 2379 2381 2517 2518 -f 2445 2369 2371 2522 2523 -f 2362 2361 2459 2524 -f 2352 2351 2528 2529 -f 2337 2339 2532 2533 -f 2329 2331 2536 2465 -f 2421 2539 2422 -f 2544 2547 2548 2549 -f 2518 2517 2453 2452 -f 2536 2535 2471 2466 -f 2342 2339 2340 2343 -f 2374 2371 2372 2375 -f 2400 2395 2398 2401 -f 2422 2434 2504 2419 2420 2423 -f 2432 2431 2502 2501 -f 2436 2549 2437 -f 2559 2442 2476 2475 -f 2532 2531 2456 2458 2455 -f 2519 2518 2552 2462 2461 -f 2468 2467 2538 2537 -f 2560 2515 2513 -f 2477 2476 2442 2441 -f 2404 2481 2482 2399 -f 2396 2443 2485 2391 -f 2386 2489 2492 2491 -f 2494 2495 2498 2497 -f 2430 2499 2547 2546 -f 2507 2506 2555 2554 -f 2374 2521 2522 2371 -f 2348 2530 2449 2345 -f 2455 2458 2525 2524 2552 2452 -f 2433 2540 2500 2505 -f 2554 2473 2507 -f 2550 2484 2483 -f 2552 2518 2452 -f 2560 2513 2469 2472 -f 2559 2558 2485 2443 2442 -f 2573 2574 2575 -f 2584 2585 2586 -f 2596 2597 2598 -f 2605 2609 2610 -f 2623 2624 2625 -f 2639 2640 2641 2642 -f 2651 2652 2653 2654 -f 2661 2662 2663 2574 -f 2667 2591 2590 2578 -f 2629 2640 2639 2626 -f 2673 2592 2591 2674 -f 2677 2570 2569 2678 -f 2561 2597 2596 2562 -f 2604 2600 2599 2602 -f 2609 2692 2693 2610 -f 2696 2613 2612 2697 -f 2701 2577 2700 2702 -f 2708 2709 2710 -f 2583 2646 2654 2699 -f 2573 2666 2574 -f 2580 2624 2623 2676 -f 2638 2627 2626 2633 -f 2675 2642 2641 2672 -f 2689 2688 2405 2402 -f 2572 2571 2387 2384 -f 2656 2655 2349 2346 -f 2611 2648 2681 2618 -f 2715 2717 2716 2714 -f 2599 2608 2602 -f 2626 2639 2633 -f 2728 2727 2722 2710 -f 2732 2731 2700 2699 -f 2658 2655 2617 -f 2660 2736 2713 2644 -f 2740 2739 2661 2725 -f 2743 2742 2575 2589 -f 2590 2678 2576 2578 -f 2640 2629 2621 2632 -f 2570 2677 2676 2623 -f 2687 2684 2565 2601 -f 2746 2692 2609 2694 -f 2667 2578 2577 2701 -f 2714 2645 2712 -f 2605 2608 2565 2564 -f 2675 2707 2634 2642 -f 2746 2747 2416 2414 -f 2686 2689 2402 2401 -f 2571 2745 2388 2387 -f 2741 2742 2378 2376 -f 2738 2739 2368 2366 -f 2735 2736 2358 2356 -f 2732 2653 2340 2338 -f 2728 2729 2332 2330 -f 2750 2751 2752 2753 -f 2764 2761 2763 2762 2765 2766 -f 2772 2771 2773 2774 -f 2780 2779 2781 2782 -f 2759 2788 2789 2762 -f 2769 2792 2793 2771 -f 2777 2796 2797 2779 -f 2786 2802 2803 2787 -f 2790 2806 2807 2791 -f 2794 2810 2811 2795 -f 2801 2815 2816 2802 -f 2805 2819 2820 2806 -f 2809 2823 2824 2810 -f 2813 2827 2828 2814 -f 2818 2832 2833 2819 -f 2822 2836 2837 2823 -f 2826 2840 2841 2827 -f 2831 2845 2846 2832 -f 2835 2849 2850 2836 -f 2839 2854 2855 2840 -f 2844 2859 2860 2845 -f 2848 2863 2864 2849 -f 2852 2867 2868 2854 -f 2858 2872 2873 2859 -f 2862 2877 2876 2878 2863 -f 2866 2881 2882 2867 -f 2870 2885 2886 2871 -f 2874 2894 2895 2875 -f 2879 2898 2899 2880 -f 2883 2902 2903 2884 -f 2893 2908 2909 2894 -f 2897 2912 2913 2898 -f 2901 2916 2917 2902 -f 2906 2921 2922 2907 -f 2911 2926 2927 2912 -f 2915 2930 2931 2916 -f 2919 2934 2935 2920 -f 2925 2758 2761 2926 -f 2929 2770 2772 2930 -f 2933 2778 2780 2934 -f 2921 2906 2939 2938 -f 2890 2941 2942 2887 -f 2947 2785 2784 2948 -f 2815 2801 2947 2945 -f 2907 2922 2923 2908 -f 2940 2888 2887 2942 2944 2946 2948 2784 2783 2751 2750 2938 2939 -f 2799 2936 2753 2752 -f 2872 2892 2893 2873 -f 2843 2829 2943 2941 -f 2943 2945 2946 2944 -f 2891 2889 2888 2940 -f 2936 2799 2755 2754 -f 2931 2937 2774 2776 2932 -f 2927 2764 2768 2928 -f 2923 2754 2757 2924 -f 2917 2932 2933 2918 -f 2913 2928 2929 2914 -f 2909 2924 2925 2910 -f 2903 2918 2919 2904 -f 2899 2914 2915 2900 -f 2895 2910 2911 2896 -f 2885 2904 2905 2886 -f 2881 2900 2901 2882 -f 2876 2896 2897 2878 -f 2889 2891 2892 2872 -f 2868 2883 2884 2869 -f 2864 2879 2880 2865 -f 2860 2874 2875 2861 -f 2855 2869 2870 2856 -f 2850 2865 2866 2851 -f 2846 2861 2862 2847 -f 2841 2856 2857 2842 -f 2837 2851 2852 2853 2838 -f 2833 2847 2848 2834 -f 2829 2843 2844 2830 -f 2824 2838 2839 2825 -f 2820 2834 2835 2821 -f 2816 2830 2831 2817 -f 2811 2825 2826 2812 -f 2807 2821 2822 2808 -f 2803 2817 2818 2804 -f 2796 2812 2813 2797 -f 2792 2808 2809 2793 -f 2788 2804 2805 2789 -f 2755 2799 2800 2786 -f 2773 2794 2795 2775 -f 2765 2790 2791 2767 -f 2755 2786 2787 2756 -f 2776 2775 2777 2778 -f 2768 2767 2769 2770 -f 2758 2757 2756 2759 2760 -f 2749 2726 2727 2328 2326 -f 2730 2731 2336 2334 -f 2733 2656 2346 2344 -f 2659 2737 2364 2363 -f 2740 2665 2372 2370 -f 2743 2744 2382 2380 -f 2682 2685 2394 2393 -f 2690 2693 2410 2409 -f 2748 2696 2420 2418 -f 2627 2638 2719 -f 2614 2718 2716 2615 -f 2722 2706 2708 2710 -f 2748 2747 2695 2647 -f 2691 2688 2603 2607 -f 2683 2745 2679 2598 -f 2592 2673 2668 2595 -f 2705 2707 2675 2674 -f 2572 2744 2698 2567 -f 2741 2664 2585 2573 -f 2738 2737 2723 2662 -f 2735 2734 2717 2715 -f 2733 2652 2651 2718 -f 2730 2729 2709 2702 -f 2726 2649 2636 2704 -f 2630 2620 2671 2670 -f 2575 2574 2663 -f 2722 2704 2703 2706 -f 2650 2649 2721 2325 2424 -f 2660 2659 2363 2360 -f 2685 2684 2397 2394 -f 2693 2692 2413 2410 -f 2669 2631 2630 2670 -f 2719 2638 2637 2720 -f 2680 2619 2618 2681 -f 2615 2716 2717 2616 -f 2712 2645 2644 2713 -f 2705 2706 2703 2707 -f 2567 2698 2582 2568 -f 2647 2695 2563 -f 2607 2603 2602 2608 -f 2601 2565 2608 2599 -f 2679 2680 2681 2596 2598 -f 2676 2594 2581 2580 -f 2672 2673 2674 2675 -f 2621 2629 2628 2622 -f 2573 2585 2584 2666 -f 2616 2657 2658 2617 -f 2647 2563 2562 2648 -f 2630 2631 2632 -f 2614 2615 2616 2617 -f 2602 2603 2604 -f 2590 2591 2592 2593 -f 2579 2580 2581 -f 2566 2567 2568 -f 2491 2514 2383 2386 -f 2453 2560 2454 -f 2548 2498 2495 -f 2479 2441 2440 2480 -f 2544 2549 2436 2555 2506 2503 -f 2538 2467 2428 2541 2435 2539 -f 2323 2538 2539 2421 -f 2362 2524 2525 2359 -f 2514 2515 2516 2383 -f 2503 2502 2545 2544 -f 2547 2499 2498 2548 -f 2511 2490 2494 2512 -f 2392 2486 2487 2389 -f 2400 2483 2484 2395 -f 2408 2479 2480 2403 -f 2474 2473 2554 2553 -f 2534 2533 2454 2560 2472 -f 2471 2470 2508 2463 2466 -f 2457 2456 2527 2526 -f 2456 2531 2448 2451 -f 2439 2438 2489 2488 -f 2434 2433 2505 2504 -f 2428 2427 2542 2541 -f 2408 2403 2406 2409 -f 2392 2389 2390 2393 -f 2352 2347 2350 2353 -f 2553 2556 2557 2558 -f 2524 2459 2462 2552 -f 2479 2478 2441 -f 2445 2523 2522 2543 2446 -f 2322 2327 2464 2537 -f 2333 2335 2534 2535 -f 2341 2345 2449 2448 -f 2355 2357 2526 2527 -f 2365 2367 2444 2460 -f 2373 2377 2519 2520 -f 2514 2511 2513 2515 -f 2504 2505 2506 2507 -f 2494 2490 2493 2495 -f 2392 2391 2485 2486 -f 2408 2407 2478 2479 -f 2417 2419 2473 2474 -f 2459 2460 2461 2462 -f 2444 2445 2446 2447 -f 2429 2430 2431 2432 -f 2417 2415 2416 2418 -f 2403 2404 2405 2406 -f 2389 2385 2388 2390 -f 2379 2377 2378 2380 -f 2369 2367 2368 2370 -f 2359 2357 2358 2360 -f 2347 2348 2349 2350 -f 2337 2335 2336 2338 -f 2329 2327 2328 2330 -f 2312 2260 2259 2314 2316 2318 2320 2156 2155 2123 2122 2310 2311 -f 2279 2294 2295 2280 -f 2187 2173 2319 2317 -f 2319 2157 2156 2320 -f 2262 2313 2314 2259 -f 2293 2278 2311 2310 -f 2305 2150 2152 2306 -f 2301 2142 2144 2302 -f 2297 2130 2133 2298 -f 2291 2306 2307 2292 -f 2287 2302 2303 2288 -f 2283 2298 2299 2284 -f 2278 2293 2294 2279 -f 2273 2288 2289 2274 -f 2269 2284 2285 2270 -f 2265 2280 2281 2266 -f 2255 2274 2275 2256 -f 2251 2270 2271 2252 -f 2246 2266 2267 2247 -f 2242 2257 2258 2243 -f 2238 2253 2254 2239 -f 2234 2249 2248 2250 2235 -f 2230 2244 2245 2231 -f 2224 2239 2240 2226 -f 2220 2235 2236 2221 -f 2216 2231 2232 2217 -f 2211 2226 2227 2212 -f 2207 2221 2222 2208 -f 2203 2217 2218 2204 -f 2198 2212 2213 2199 -f 2194 2208 2209 2195 -f 2190 2204 2205 2191 -f 2185 2199 2200 2186 -f 2181 2195 2196 2182 -f 2177 2191 2192 2178 -f 2173 2187 2188 2174 -f 2166 2182 2183 2167 -f 2162 2178 2179 2163 -f 2158 2174 2175 2159 -f 2149 2168 2169 2151 -f 2141 2164 2165 2143 -f 2131 2160 2161 2134 -f 2152 2151 2153 2154 -f 2144 2143 2145 2146 -f 2136 2133 2135 2134 2137 2138 -f 2122 2123 2124 2125 -f 2100 2101 1704 1702 -f 2104 2025 1712 1710 -f 2107 2108 1730 1728 -f 2110 2111 1740 1738 -f 2113 2114 1750 1748 -f 1943 2117 1760 1759 -f 2058 2061 1774 1773 -f 2118 2119 1788 1786 -f 2047 2079 2006 2014 -f 1977 1980 1937 1936 -f 2086 2017 2084 -f 2039 1950 1949 2073 -f 2118 2064 1981 2066 -f 2059 2056 1937 1973 -f 1942 2049 2048 1995 -f 2012 2001 1993 2004 -f 1962 2050 1948 1950 -f 2115 2114 1947 1961 -f 2112 2111 2033 2097 -f 2032 2108 2085 2016 -f 2030 2027 1989 -f 2104 2103 2072 2071 -f 2100 2099 2094 2082 -f 1998 2011 2005 -f 1971 1980 1974 -f 2087 2089 2088 2086 -f 1983 2020 2053 1990 -f 2028 2027 1721 1718 -f 1944 1943 1759 1756 -f 2061 2060 1777 1774 -f 2047 2014 2013 2044 -f 2010 1999 1998 2005 -f 1952 1996 1995 2048 -f 1945 2038 1946 -f 1955 2018 2026 2071 -f 2080 2081 2082 -f 2073 1949 2072 2074 -f 2068 1985 1984 2069 -f 1981 2064 2065 1982 -f 1976 1972 1971 1974 -f 1933 1969 1968 1934 -f 2049 1942 1941 2050 -f 2045 1964 1963 2046 -f 2001 2012 2011 1998 -f 2039 1963 1962 1950 -f 2033 2034 2035 1946 -f 2023 2024 2025 2026 -f 2011 2012 2013 2014 -f 1995 1996 1997 -f 1977 1981 1982 -f 1968 1969 1970 -f 1956 1957 1958 -f 1945 1946 1947 -f 1931 1930 1857 1815 1814 -f 1932 1885 1841 1844 -f 1924 1890 1824 -f 1922 1856 1855 -f 1926 1845 1879 -f 1805 1912 1872 1877 -f 1827 1830 1897 1896 1924 1824 -f 1720 1902 1821 1717 -f 1746 1893 1894 1743 -f 1879 1878 1927 1926 -f 1802 1871 1919 1918 -f 1866 1867 1870 1869 -f 1758 1861 1864 1863 -f 1768 1815 1857 1763 -f 1776 1853 1854 1771 -f 1849 1848 1814 1813 -f 1932 1887 1885 -f 1840 1839 1910 1909 -f 1891 1890 1924 1834 1833 -f 1904 1903 1828 1830 1827 -f 1931 1814 1848 1847 -f 1808 1921 1809 -f 1804 1803 1874 1873 -f 1794 1806 1876 1791 1792 1795 -f 1772 1767 1770 1773 -f 1746 1743 1744 1747 -f 1714 1711 1712 1715 -f 1908 1907 1843 1838 -f 1890 1889 1825 1824 -f 1916 1919 1920 1921 -f 1793 1911 1794 -f 1701 1703 1908 1837 -f 1709 1711 1904 1905 -f 1724 1723 1900 1901 -f 1734 1733 1831 1896 -f 1817 1741 1743 1894 1895 -f 1751 1753 1889 1890 -f 1882 1881 1880 1842 -f 1802 1801 1868 1871 -f 1758 1757 1860 1861 -f 1772 1771 1854 1855 -f 1783 1787 1847 1848 -f 1797 1800 1839 1840 -f 1824 1825 1826 1827 -f 1808 1809 1810 1811 -f 1793 1794 1795 1796 -f 1783 1784 1785 1786 -f 1767 1768 1769 1770 -f 1755 1753 1754 1756 -f 1745 1746 1747 1748 -f 1737 1733 1736 1738 -f 1727 1723 1726 1728 -f 1713 1714 1715 1716 -f 1705 1703 1704 1706 -f 1693 1694 1695 1696 1697 1698 -f 1159 1160 1146 1148 -f 1155 1156 1081 1067 -f 1150 1151 1138 1147 -f 1138 1137 1008 1022 -f 1143 1142 1066 1080 -f 1160 1159 966 1124 -f 1117 1122 1132 1133 1118 -f 1113 1128 1129 1114 -f 1109 1124 1125 1110 -f 1104 1118 1119 1105 -f 1100 1114 1115 1101 -f 1096 1110 1111 1097 -f 1091 1105 1106 1092 -f 1087 1101 1102 1088 -f 1083 1097 1098 1084 -f 1078 1092 1093 1079 -f 1074 1088 1089 1075 -f 1070 1084 1085 1071 -f 1142 1143 1156 1155 -f 1061 1076 1077 1062 -f 1057 1072 1073 1058 -f 1053 1068 1069 1054 -f 1048 1062 1063 1049 -f 1044 1058 1059 1045 -f 1040 1054 1055 1041 -f 1034 1049 1050 1035 -f 1030 1045 1046 1036 1031 -f 1026 1041 1042 1027 -f 1151 1150 1038 1023 -f 1017 1031 1032 1018 -f 1013 1027 1028 1014 -f 1009 1023 1024 1010 -f 1004 1018 1019 1005 -f 1000 1014 1015 1001 -f 996 1010 1011 997 -f 991 1005 1006 992 -f 987 1001 1002 988 -f 983 997 998 984 -f 966 1159 1153 981 -f 974 989 990 975 -f 970 985 986 971 -f 966 981 982 967 -f 1133 975 976 1134 -f 1129 971 972 1130 -f 1126 1125 967 968 963 -f 961 805 809 770 772 -f 815 817 766 767 -f 826 825 762 761 -f 836 838 755 756 -f 846 848 750 751 -f 855 859 745 747 -f 896 895 741 740 -f 910 909 734 733 -f 923 925 726 727 -f 956 957 958 959 -f 787 789 907 944 -f 783 937 938 -f 874 872 932 779 -f 923 921 922 924 -f 905 906 907 908 -f 891 892 893 894 -f 881 882 883 884 -f 871 867 870 872 -f 861 859 860 862 -f 850 848 849 851 -f 840 838 839 841 -f 829 830 831 -f 820 817 818 821 -f 811 809 810 812 -f 799 800 801 -f 788 789 790 -f 837 835 941 783 -f 775 776 777 778 -f 825 830 759 762 -f 865 896 740 742 -f 909 914 731 734 -f 956 959 954 953 -f 950 949 799 801 -f 945 948 894 893 -f 858 943 786 -f 940 939 822 821 -f 935 814 812 -f 779 932 818 816 -f 927 930 879 878 -f 922 921 917 920 -f 912 911 788 790 -f 904 903 774 773 -f 892 891 868 867 -f 886 887 873 876 -f 882 881 800 799 -f 874 873 871 872 -f 849 847 936 786 -f 824 823 819 822 -f 800 881 954 959 -f 894 948 897 -f 787 922 920 -f 774 903 900 -f 797 857 854 -f 858 786 860 -f 696 721 590 587 550 -f 563 624 622 562 -f 713 632 710 -f 706 586 583 -f 719 564 615 -f 545 695 612 617 -f 555 557 653 650 713 710 -f 664 663 666 669 -f 638 637 640 642 -f 615 614 716 719 -f 542 609 699 698 -f 605 604 606 607 -f 598 597 600 603 -f 588 587 590 593 -f 580 579 582 585 -f 572 570 550 707 -f 563 625 624 -f 561 560 687 686 -f 634 632 713 712 558 -f 672 670 711 557 555 -f 696 550 570 568 -f 548 703 549 -f 540 539 610 613 -f 691 543 616 567 725 722 -f 584 589 736 733 -f 638 642 748 746 -f 671 675 765 763 -f 680 678 715 559 -f 632 630 709 710 -f 700 699 702 703 -f 692 690 691 -f 683 681 680 682 -f 674 675 672 673 -f 661 662 659 660 -f 651 652 649 650 -f 643 644 642 640 641 -f 633 631 630 632 -f 621 618 619 620 -f 542 541 608 609 -f 598 599 596 597 -f 584 585 582 583 -f 571 569 568 570 -f 537 536 560 561 -f 710 709 554 555 -f 548 549 546 547 -f 692 691 722 723 -f 571 573 728 727 -f 589 588 735 736 -f 629 631 743 742 -f 639 638 746 747 -f 648 652 753 751 -f 658 662 758 756 -f 668 671 763 761 -f 679 681 768 767 -f 533 689 688 534 771 772 -f 681 683 769 768 -f 675 674 764 765 -f 662 661 757 758 -f 652 651 752 753 -f 642 644 749 748 -f 631 633 744 743 -f 593 592 737 738 -f 577 576 729 730 -f 567 566 724 725 -f 545 543 544 -f 667 666 552 553 -f 714 684 682 559 -f 569 566 565 568 -f 580 581 578 579 -f 599 595 594 596 -f 608 607 606 609 -f 537 619 618 538 -f 631 629 628 630 -f 638 639 636 637 -f 652 648 647 649 -f 662 658 657 659 -f 671 668 667 670 -f 681 679 678 680 -f 688 689 686 687 -f 700 701 698 699 -f 634 558 708 -f 686 684 714 561 -f 534 688 692 723 771 -f 651 654 754 752 -f 588 593 738 735 -f 573 577 730 728 -f 539 542 698 701 -f 544 543 691 690 -f 548 547 717 716 -f 553 552 660 659 -f 557 556 655 653 -f 714 619 537 561 -f 630 628 563 709 -f 565 696 568 -f 579 578 705 704 -f 587 586 706 705 -f 717 547 596 594 720 -f 604 601 549 702 -f 608 541 538 618 -f 612 611 614 617 -f 637 636 551 697 -f 661 660 663 665 -f 696 565 718 721 -f 701 610 539 -f 552 666 663 660 -f 704 582 579 -f 621 623 605 607 -f 703 702 549 -f 625 563 628 -f 868 891 896 865 -f 785 940 931 -f 792 890 888 -f 787 919 916 789 -f 778 946 791 794 883 880 -f 801 958 934 807 804 950 -f 807 806 802 804 -f 844 843 840 841 -f 869 868 865 866 -f 884 883 794 793 -f 885 795 792 888 -f 892 867 871 889 -f 903 902 899 900 -f 911 910 905 908 -f 919 918 913 916 -f 930 929 776 775 -f 940 821 818 932 931 -f 875 874 779 935 780 -f 783 938 839 837 -f 824 783 941 827 -f 948 947 898 897 -f 949 951 878 877 -f 959 958 801 800 -f 913 918 729 732 -f 899 902 737 739 -f 829 833 757 760 -f 777 776 773 774 -f 845 844 781 782 -f 919 787 920 -f 854 853 851 943 797 -f 809 805 808 810 -f 817 815 816 818 -f 825 826 827 828 -f 838 836 837 839 -f 848 846 847 849 -f 859 855 858 860 -f 867 868 869 870 -f 877 878 879 880 -f 892 889 890 893 -f 901 902 903 904 -f 917 918 919 920 -f 927 928 929 930 -f 847 845 782 936 -f 851 849 786 943 -f 952 953 954 955 -f 925 928 724 726 -f 914 913 732 731 -f 895 899 739 741 -f 859 861 744 745 -f 848 850 749 750 -f 838 840 754 755 -f 830 829 760 759 -f 817 820 764 766 -f 809 811 769 770 -f 1124 966 967 1125 -f 1128 962 970 971 1129 -f 1132 974 975 1133 -f 965 979 980 1140 1148 -f 969 984 985 970 -f 973 988 989 974 -f 977 992 993 978 -f 982 996 997 983 -f 986 1000 1001 987 -f 990 1004 1005 991 -f 995 1009 1010 996 -f 999 1013 1014 1000 -f 1003 1017 1018 1004 -f 1152 1151 1023 1009 -f 1012 1026 1027 1013 -f 1016 1030 1031 1017 -f 1020 1034 1035 1021 -f 1025 1040 1041 1026 -f 1029 1044 1045 1030 -f 1033 1048 1049 1034 -f 1039 1053 1054 1040 -f 1043 1057 1058 1044 -f 1047 1061 1062 1048 -f 1052 1067 1068 1053 -f 1056 1071 1072 1057 -f 1060 1075 1076 1061 -f 1051 1066 1142 1141 -f 1069 1083 1084 1070 -f 1073 1087 1088 1074 -f 1077 1091 1092 1078 -f 1082 1096 1097 1083 -f 1086 1100 1101 1087 -f 1090 1104 1105 1091 -f 1095 1109 1110 1096 -f 1099 1113 1114 1100 -f 1103 1117 1118 1104 -f 1158 1160 1124 1109 -f 1112 1127 1128 1113 -f 1116 1131 1132 1122 1117 -f 1120 1135 1136 1121 -f 1144 1143 1080 1094 -f 1147 1138 1022 1037 -f 1149 1150 1147 1141 -f 1154 1153 1140 1139 -f 1153 1159 1148 1140 -f 978 993 1007 1021 1035 1050 1064 1079 1093 1107 1121 1136 -f 1703 1701 1702 1704 -f 1711 1709 1710 1712 -f 1723 1724 1725 1726 -f 1733 1734 1735 1736 -f 1743 1741 1742 1744 -f 1753 1751 1752 1754 -f 1763 1764 1765 1766 -f 1779 1780 1781 1782 -f 1791 1789 1790 1792 -f 1805 1806 1807 -f 1820 1821 1822 1823 -f 1835 1836 1837 1838 -f 1787 1789 1846 1847 -f 1776 1775 1852 1853 -f 1757 1761 1859 1860 -f 1868 1869 1870 1871 -f 1797 1880 1881 1798 -f 1753 1755 1888 1889 -f 1746 1745 1892 1893 -f 1733 1737 1832 1831 -f 1723 1727 1899 1900 -f 1714 1713 1820 1903 -f 1703 1705 1907 1908 -f 1695 1694 1909 1910 -f 1916 1917 1918 1919 -f 1891 1833 1819 -f 1909 1836 1835 1840 -f 1696 1695 1793 1796 1697 -f 1734 1731 1732 1735 -f 1768 1763 1766 1769 -f 1784 1779 1782 1785 -f 1803 1802 1918 1917 -f 1807 1806 1794 1911 -f 1808 1811 1928 1927 -f 1823 1822 1901 1900 -f 1830 1829 1898 1897 -f 1835 1880 1797 1840 -f 1889 1888 1932 1825 -f 1846 1931 1847 -f 1853 1852 1812 1923 -f 1815 1856 1922 1812 -f 1928 1811 1860 1859 1929 -f 1867 1865 1809 1920 -f 1868 1801 1798 1881 -f 1872 1875 1878 1877 -f 1893 1892 1818 1915 -f 1724 1901 1902 1719 -f 1931 1846 1925 1930 -f 1917 1874 1803 -f 1822 1821 1902 1901 -f 1923 1854 1853 -f 1882 1884 1866 1869 -f 1921 1920 1809 -f 1887 1932 1888 -f 1941 1942 1943 1944 -f 1954 1955 1940 -f 1953 1966 1967 -f 1977 1978 1979 1980 -f 1990 1991 1951 1992 1993 1994 -f 2005 2006 2007 2008 2009 2010 -f 2008 2021 2022 2009 -f 2015 2031 2032 2016 -f 1938 1941 1944 1939 -f 2004 1993 1992 2002 -f 2040 2043 1953 1967 -f 2049 2050 1962 1965 -f 1969 2054 2055 1970 -f 1972 2058 2059 1973 -f 1978 2062 2063 1979 -f 1985 2019 2020 1983 -f 1955 2071 2072 1949 1940 -f 2077 2039 2073 2080 2078 -f 2086 2084 2085 2087 -f 2023 2086 2088 2090 -f 1996 2052 2051 1997 -f 1999 2091 2069 2000 -f 2014 2006 2005 2011 -f 2063 2062 1781 1778 -f 2055 2054 1765 1762 -f 2030 2029 1725 1722 -f 2053 2020 1934 1968 -f 2095 2015 1959 2083 -f 1978 1977 1982 -f 1958 2096 2097 2038 1956 -f 2099 2098 2076 2094 -f 2103 2102 2074 2072 -f 2028 2105 2090 1986 -f 2108 2107 2087 2085 -f 2111 2110 2034 2033 -f 2114 2113 1945 1947 -f 2050 1941 1938 1948 -f 2000 2069 1984 1994 -f 2049 1965 1966 2048 -f 2057 2054 1969 1933 -f 2065 2062 1978 1982 -f 2068 2120 2019 1985 -f 2034 2095 2083 2035 -f 2097 2033 1946 2038 -f 2041 2044 2013 2003 -f 2119 2120 1790 1788 -f 2060 2063 1778 1777 -f 2117 2055 1762 1760 -f 2114 2115 1752 1750 -f 2111 2112 1742 1740 -f 2108 2032 1732 1730 -f 2024 2105 1716 1715 -f 2101 2102 1706 1704 -f 2093 2021 2098 2121 1698 1697 -f 2133 2130 2132 2131 2134 2135 -f 2142 2141 2143 2144 -f 2150 2149 2151 2152 -f 2128 2159 2160 2131 -f 2139 2163 2164 2141 -f 2147 2167 2168 2149 -f 2172 2173 2174 2158 -f 2161 2177 2178 2162 -f 2165 2181 2182 2166 -f 2169 2185 2186 2170 -f 2176 2190 2191 2177 -f 2180 2194 2195 2181 -f 2184 2198 2199 2185 -f 2189 2203 2204 2190 -f 2193 2207 2208 2194 -f 2197 2211 2212 2198 -f 2202 2216 2217 2203 -f 2206 2220 2221 2207 -f 2210 2225 2224 2226 2211 -f 2215 2230 2231 2216 -f 2219 2234 2235 2220 -f 2223 2238 2239 2224 -f 2228 2242 2243 2229 -f 2233 2247 2248 2249 2234 -f 2237 2252 2253 2238 -f 2241 2256 2257 2242 -f 2245 2265 2266 2246 -f 2250 2269 2270 2251 -f 2254 2273 2274 2255 -f 2263 2278 2279 2264 -f 2268 2283 2284 2269 -f 2272 2287 2288 2273 -f 2276 2291 2292 2277 -f 2282 2297 2298 2283 -f 2286 2301 2302 2287 -f 2290 2305 2306 2291 -f 2296 2129 2130 2297 -f 2300 2140 2142 2301 -f 2304 2148 2150 2305 -f 2125 2293 2310 2122 -f 2230 2262 2261 2244 -f 2317 2319 2320 2318 -f 2201 2187 2317 2315 -f 2264 2279 2280 2265 -f 2308 2294 2293 2125 -f 2327 2322 2321 2326 2328 -f 2335 2333 2334 2336 -f 2345 2341 2344 2346 -f 2357 2355 2356 2358 -f 2367 2365 2366 2368 -f 2377 2373 2376 2378 -f 2385 2386 2387 2388 -f 2399 2400 2401 2402 -f 2415 2411 2414 2416 -f 2425 2426 2427 2428 -f 2440 2441 2442 2443 -f 2456 2457 2458 -f 2469 2470 2471 2472 -f 2412 2411 2476 2477 -f 2396 2395 2484 2443 -f 2490 2491 2492 2493 -f 2500 2501 2502 2503 -f 2511 2512 2469 2513 -f 2377 2379 2518 2519 -f 2367 2369 2445 2444 -f 2357 2359 2525 2526 -f 2347 2530 2348 -f 2335 2337 2533 2534 -f 2327 2329 2465 2464 -f 2540 2541 2542 -f 2550 2551 2440 -f 2528 2527 2456 2451 -f 2553 2554 2555 2556 -f 2348 2345 2346 2349 -f 2386 2383 2384 2387 -f 2404 2399 2402 2405 -f 2427 2426 2429 2432 -f 2433 2435 2541 2540 -f 2438 2437 2493 2492 -f 2520 2447 2446 -f 2455 2454 2533 2532 -f 2466 2465 2536 -f 2472 2471 2535 2534 -f 2473 2419 2504 2507 -f 2412 2477 2478 2407 -f 2483 2482 2551 2550 -f 2486 2485 2558 2557 -f 2491 2490 2511 2514 -f 2497 2496 2509 2510 -f 2501 2500 2540 2542 -f 2510 2470 2469 2512 -f 2460 2444 2447 2461 -f 2342 2531 2532 2339 -f 2501 2542 2427 2432 -f 2492 2489 2438 -f 2441 2478 2477 -f 2557 2487 2486 -f 2543 2522 2521 -f 2520 2519 2447 -f 2561 2562 2563 2564 2565 -f 2576 2568 2577 2578 -f 2587 2588 2589 -f 2599 2600 2601 -f 2611 2612 2613 -f 2626 2627 2628 2629 -f 2643 2644 2645 2646 2588 2587 -f 2617 2655 2656 2614 -f 2585 2664 2665 2586 -f 2622 2612 2611 2618 -f 2668 2669 2670 2671 -f 2594 2593 2592 2595 -f 2625 2571 2570 2623 -f 2565 2684 2685 2561 -f 2603 2688 2689 2604 -f 2694 2609 2605 2564 -f 2568 2576 2566 -f 2635 2703 2704 2636 -f 2587 2589 2575 2663 2711 -f 2714 2651 2654 2646 2645 -f 2564 2563 2695 2694 -f 2619 2580 2579 -f 2631 2641 2640 2632 -f 2696 2697 2719 2720 2423 2420 -f 2687 2686 2401 2398 -f 2665 2664 2375 2372 -f 2653 2652 2343 2340 -f 2702 2709 2708 2701 -f 2698 2589 2588 2582 -f 2671 2620 2579 2581 -f 2650 2720 2637 -f 2729 2728 2710 2709 -f 2653 2732 2699 2654 -f 2734 2657 2616 2717 -f 2737 2659 2643 2723 -f 2665 2740 2725 2724 2586 -f 2744 2743 2589 2698 -f 2674 2591 2667 2705 -f 2672 2669 2668 2673 -f 2745 2571 2625 2679 -f 2689 2686 2600 2604 -f 2747 2746 2694 2695 -f 2634 2707 2703 2635 -f 2582 2588 2646 2583 -f 2580 2619 2680 2624 -f 2720 2650 2424 2423 -f 2692 2746 2414 2413 -f 2684 2687 2398 2397 -f 2744 2572 2384 2382 -f 2664 2741 2376 2375 -f 2737 2738 2366 2364 -f 2655 2658 2350 2349 -f 2731 2732 2338 2336 -f 2727 2728 2330 2328 -f 2754 2755 2756 2757 -f 2764 2766 2765 2767 2768 -f 2774 2773 2775 2776 -f 2751 2783 2784 2785 2752 -f 2762 2789 2790 2765 -f 2771 2793 2794 2773 -f 2779 2797 2798 2781 -f 2787 2803 2804 2788 -f 2791 2807 2808 2792 -f 2795 2811 2812 2796 -f 2802 2816 2817 2803 -f 2806 2820 2821 2807 -f 2810 2824 2825 2811 -f 2815 2829 2830 2816 -f 2819 2833 2834 2820 -f 2823 2837 2838 2824 -f 2827 2841 2842 2828 -f 2832 2846 2847 2833 -f 2836 2850 2851 2837 -f 2840 2855 2856 2841 -f 2845 2860 2861 2846 -f 2849 2864 2865 2850 -f 2854 2868 2869 2855 -f 2859 2873 2874 2860 -f 2863 2878 2879 2864 -f 2867 2882 2883 2868 -f 2887 2888 2889 2890 -f 2875 2895 2896 2876 -f 2880 2899 2900 2881 -f 2884 2903 2904 2885 -f 2894 2909 2910 2895 -f 2898 2913 2914 2899 -f 2902 2917 2918 2903 -f 2908 2923 2924 2909 -f 2912 2927 2928 2913 -f 2916 2931 2932 2917 -f 2922 2936 2754 2923 -f 2926 2761 2764 2927 -f 2930 2772 2774 2937 2931 -f 2934 2780 2782 2935 -f 2906 2891 2940 2939 -f 2941 2943 2944 2942 -f 2858 2843 2941 2890 -f 2801 2800 2785 2947 -f 2800 2799 2752 2785 -f 2781 2798 2814 2828 2842 2857 2871 2886 2905 2920 2935 2782 -f 2734 2735 2356 2354 2353 2657 -g post -f 4422 4440 4342 -f 4147 4134 4436 -f 4163 4176 4435 -f 4324 4325 4432 4433 -f 4265 4252 4428 -f 4222 4234 4427 -f 4205 4206 4424 4425 -f 4023 4024 4420 4421 -f 4085 4070 4416 -f 4401 4400 4218 4219 -f 4396 4395 4234 4233 -f 4392 4399 4230 4229 -f 4380 4379 4261 4260 -f 4383 4382 4308 4309 -f 4386 4385 4323 4322 -f 4373 4352 4006 4007 -f 4361 4362 4010 4011 -f 4369 4370 4020 4019 -f 4367 4365 4066 4067 -f 4346 4345 4083 4082 -f 4354 4353 4128 4129 -f 4358 4357 4132 4133 -f 4409 4408 4173 4172 -f 4413 4412 4144 4143 -f 4340 3991 3990 4341 -f 4336 3995 3994 4337 -f 4332 3999 3998 4333 -f 4329 3986 3985 4343 4330 -f 4325 4342 4440 3989 4326 -f 4387 4338 4339 4386 -f 4317 4334 4335 4318 -f 3927 3982 4331 4314 -f 4308 4321 4322 4309 -f 4304 4317 4318 4305 -f 3882 3927 4314 4301 -f 4297 4327 4328 4298 -f 4384 4375 4294 4293 -f 4390 4381 4290 4289 -f 4285 4302 4303 4286 -f 4280 4293 4294 4281 -f 4276 4289 4290 4277 -f 4272 4285 4286 4273 -f 4269 4299 4300 4270 -f 4265 4282 4295 4296 4266 -f 4379 4278 4279 4378 -f 4257 4274 4275 4258 -f 3743 3798 4271 4254 -f 4248 4261 4262 4249 -f 4244 4257 4258 4245 -f 3716 3743 4254 4241 -f 4237 4267 4268 4238 -f 4396 4250 4251 4395 -f 4392 4246 4247 4399 -f 4225 4242 4243 4226 -f 4221 4233 4234 4222 -f 4217 4229 4230 4218 -f 4213 4225 4226 4214 -f 4210 4239 4240 4211 -f 4206 4223 4235 4236 4207 -f 4401 4402 4203 4202 -f 4198 4215 4216 4199 -f 3576 3631 4212 4195 -f 4190 4202 4203 4191 -f 4186 4198 4199 4187 -f 3548 3576 4195 4183 -f 4179 4208 4209 4180 -f 4406 4192 4193 4405 -f 4394 4188 4189 4409 -f 4167 4184 4185 4168 -f 4162 4175 4176 4163 -f 4158 4171 4172 4159 -f 4154 4167 4168 4155 -f 4151 4181 4182 4165 4152 -f 4147 4164 4177 4178 4148 -f 4413 4160 4161 4412 -f 4139 4156 4157 4140 -f 3409 3464 4153 4136 -f 4130 4143 4144 4131 -f 4126 4139 4140 4127 -f 3373 3409 4136 4123 -f 4119 4135 4149 4150 4120 -f 4357 4358 4116 4115 -f 4353 4354 4112 4111 -f 4107 4124 4125 4108 -f 4100 4115 4116 4101 -f 4096 4111 4112 4097 -f 4092 4107 4108 4093 -f 4089 4121 4122 4105 4090 -f 4085 4102 4117 4118 4086 -f 4347 4098 4099 4346 -f 4077 4094 4095 4078 -f 3235 3290 4091 4074 -f 4066 4081 4082 4067 -f 4062 4077 4078 4063 -f 3204 3235 4074 4059 -f 4055 4087 4088 4071 4056 -f 4364 4359 4052 4051 -f 4350 4366 4048 4047 -f 4043 4060 4061 4044 -f 4039 4051 4052 4040 -f 4035 4047 4048 4036 -f 4031 4043 4044 4032 -f 4028 4057 4058 4029 -f 4024 4041 4053 4054 4025 -f 4370 4037 4038 4368 -f 4016 4033 4034 4017 -f 3060 3115 4030 4013 -f 4008 4020 4021 4009 -f 4004 4016 4017 4005 -f 3030 3060 4013 4001 -f 3988 4026 4027 3987 -f 4362 4361 3990 3991 -f 4352 4373 3994 3995 -f 3999 4002 4003 3998 -f 3772 3717 3690 3635 3605 3550 3522 3467 3438 3383 3347 3292 3264 3209 3178 3123 3089 3034 3004 3003 3956 3901 3856 3801 -f 2980 3979 3978 2981 -f 2984 3975 3974 2985 -f 2988 3971 3970 2989 -f 2992 3967 3966 2993 -f 2996 3963 3962 2997 -f 3000 3959 3958 3001 -f 2951 2950 3954 3953 -f 2955 2954 3984 3950 3949 -f 2959 2958 3946 3945 -f 2963 2962 3942 3941 -f 2967 2966 3938 3937 -f 2971 2970 3934 3933 -f 2975 2974 3930 3929 -f 3980 3925 3924 3979 -f 3976 3921 3920 3975 -f 3972 3917 3916 3971 -f 3968 3913 3912 3967 -f 3964 3909 3908 3963 -f 3960 3905 3904 3959 -f 3927 3882 3881 3926 -f 3923 3878 3877 3922 -f 3919 3874 3873 3918 -f 3915 3870 3869 3914 -f 3911 3866 3865 3910 -f 3907 3862 3861 3906 -f 3903 3858 3857 3902 -f 3952 3953 3899 3853 3852 3898 -f 3948 3949 3895 3849 3848 3894 -f 3944 3945 3892 3845 3844 -f 3940 3941 3890 3841 3840 3889 -f 3936 3937 3887 3837 3836 3886 -f 3932 3933 3833 3832 -f 3928 3929 3884 3829 3828 3883 -f 3879 3824 3823 3878 -f 3875 3820 3819 3874 -f 3871 3816 3815 3870 -f 3867 3812 3811 3866 -f 3863 3808 3807 3862 -f 3859 3804 3803 3858 -f 3826 3797 3796 3825 -f 3822 3793 3792 3821 -f 3818 3789 3788 3817 -f 3814 3785 3784 3813 -f 3810 3781 3780 3809 -f 3806 3777 3776 3805 -f 3802 3773 3772 3801 -f 3851 3852 3768 3767 3800 -f 3847 3848 3764 3763 -f 3843 3844 3760 3759 -f 3839 3840 3756 3755 -f 3835 3836 3752 3751 -f 3831 3832 3748 3747 -f 3798 3743 3742 3797 -f 3794 3739 3738 3793 -f 3790 3735 3734 3789 -f 3786 3731 3730 3785 -f 3782 3727 3726 3781 -f 3778 3723 3722 3777 -f 3774 3719 3718 3773 -f 3741 3714 3713 3740 -f 3737 3710 3709 3736 -f 3733 3706 3705 3732 -f 3729 3702 3701 3728 -f 3725 3698 3697 3724 -f 3721 3694 3693 3720 -f 3770 3771 3689 3688 -f 3766 3767 3685 3684 -f 3762 3763 3681 3680 -f 3758 3759 3677 3676 -f 3754 3755 3673 3672 -f 3750 3751 3669 3668 -f 3746 3747 3665 3664 -f 3715 3660 3659 3714 -f 3711 3656 3655 3710 -f 3707 3652 3651 3706 -f 3703 3648 3647 3702 -f 3699 3644 3643 3698 -f 3695 3640 3639 3694 -f 3691 3636 3635 3690 -f 3658 3628 3627 3657 -f 3654 3624 3623 3653 -f 3650 3620 3619 3649 -f 3646 3616 3615 3645 -f 3642 3612 3611 3641 -f 3638 3608 3607 3637 -f 3687 3688 3634 3603 3602 -f 3683 3684 3599 3598 -f 3679 3680 3595 3594 -f 3675 3676 3591 3590 -f 3671 3672 3587 3586 -f 3667 3668 3583 3582 -f 3663 3664 3579 3578 -f 3629 3574 3573 3628 -f 3625 3570 3569 3624 -f 3621 3566 3565 3620 -f 3617 3562 3561 3616 -f 3613 3558 3557 3612 -f 3609 3554 3553 3608 -f 3576 3548 3547 3575 -f 3572 3544 3543 3571 -f 3568 3540 3539 3567 -f 3564 3536 3535 3563 -f 3560 3532 3531 3559 -f 3556 3528 3527 3555 -f 3552 3524 3523 3551 -f 3601 3602 3519 3518 -f 3597 3598 3515 3514 -f 3593 3594 3511 3510 -f 3589 3590 3507 3506 -f 3585 3586 3503 3502 -f 3581 3582 3499 3498 -f 3578 3495 3494 3577 -f 3545 3490 3489 3544 -f 3541 3486 3485 3540 -f 3537 3482 3481 3536 -f 3533 3478 3477 3532 -f 3529 3474 3473 3528 -f 3525 3470 3469 3524 -f 3492 3463 3462 3491 -f 3488 3459 3458 3487 -f 3484 3455 3454 3483 -f 3480 3451 3450 3479 -f 3476 3447 3446 3475 -f 3472 3443 3442 3471 -f 3468 3439 3438 3467 -f 3517 3518 3434 3433 3466 -f 3513 3514 3430 3429 -f 3509 3510 3426 3425 -f 3505 3506 3422 3421 -f 3501 3502 3418 3417 -f 3497 3498 3414 3413 -f 3464 3409 3408 3463 -f 3460 3405 3404 3459 -f 3456 3401 3400 3455 -f 3452 3397 3396 3451 -f 3448 3393 3392 3447 -f 3444 3389 3388 3443 -f 3440 3385 3384 3439 -f 3407 3371 3370 3406 -f 3403 3367 3366 3402 -f 3399 3363 3362 3398 -f 3395 3359 3358 3394 -f 3391 3355 3354 3390 -f 3387 3351 3350 3386 -f 3436 3437 3346 3345 -f 3432 3433 3382 3342 3341 3381 -f 3428 3429 3338 3337 -f 3424 3425 3334 3333 -f 3420 3421 3377 3330 3329 3376 -f 3416 3417 3326 3325 -f 3412 3413 3322 3321 -f 3372 3317 3316 3371 -f 3368 3313 3312 3367 -f 3364 3309 3308 3363 -f 3360 3305 3304 3359 -f 3356 3301 3300 3355 -f 3352 3297 3296 3351 -f 3348 3293 3292 3347 -f 3315 3287 3286 3314 -f 3311 3283 3282 3310 -f 3307 3279 3278 3306 -f 3303 3275 3274 3302 -f 3299 3271 3270 3298 -f 3295 3267 3266 3294 -f 3344 3345 3262 3261 -f 3340 3341 3258 3257 -f 3336 3337 3254 3253 -f 3332 3333 3250 3249 -f 3328 3329 3246 3245 -f 3324 3325 3242 3241 -f 3320 3321 3238 3237 -f 3288 3233 3232 3287 -f 3284 3229 3228 3283 -f 3280 3225 3224 3279 -f 3276 3221 3220 3275 -f 3272 3217 3216 3271 -f 3268 3213 3212 3267 -f 3235 3204 3203 3234 -f 3231 3200 3199 3230 -f 3227 3196 3195 3226 -f 3223 3192 3191 3222 -f 3219 3188 3187 3218 -f 3215 3184 3183 3214 -f 3211 3180 3179 3210 -f 3260 3261 3175 3174 -f 3256 3257 3171 3170 -f 3252 3253 3167 3166 -f 3248 3249 3163 3162 -f 3244 3245 3159 3158 -f 3240 3241 3155 3154 -f 3236 3237 3151 3150 3205 -f 3201 3146 3145 3200 -f 3197 3142 3141 3196 -f 3193 3138 3137 3192 -f 3189 3134 3133 3188 -f 3185 3130 3129 3184 -f 3181 3126 3125 3180 -f 3148 3114 3113 3147 -f 3144 3110 3109 3143 -f 3140 3106 3105 3139 -f 3136 3102 3101 3135 -f 3132 3098 3097 3131 -f 3128 3094 3093 3127 -f 3124 3090 3089 3123 -f 3173 3174 3085 3084 3122 -f 3169 3170 3081 3080 -f 3165 3166 3077 3076 3120 -f 3161 3162 3073 3072 -f 3157 3158 3116 3069 3068 -f 3153 3154 3065 3064 -f 3115 3060 3059 3114 -f 3111 3056 3055 3110 -f 3107 3052 3051 3106 -f 3103 3048 3047 3102 -f 3099 3044 3043 3098 -f 3095 3040 3039 3094 -f 3091 3036 3035 3090 -f 3058 3028 3027 3057 -f 3054 3024 3023 3053 -f 3050 3020 3019 3049 -f 3046 3016 3015 3045 -f 3042 3012 3011 3041 -f 3038 3008 3007 3037 -f 3087 3088 2949 2950 -f 3083 3084 3033 2953 2954 -f 3079 3080 2957 2958 -f 3075 3076 2961 2962 -f 3071 3072 2965 2966 -f 3067 3068 2969 2970 -f 3063 3064 2973 2974 3031 -f 3029 2978 2979 3028 -f 3025 2982 2983 3024 -f 3021 2986 2987 3020 -f 3017 2990 2991 3016 -f 3013 2994 2995 3012 -f 3009 2998 2999 3008 -f 3005 3002 3003 3004 -f 3008 2999 3000 3007 -f 3012 2995 2996 3011 -f 3016 2991 2992 3015 -f 3020 2987 2988 3019 -f 3024 2983 2984 3023 -f 3028 2979 2980 3027 -f 3062 3063 3031 2974 2975 -f 3066 3067 2970 2971 -f 3070 3071 2966 2967 -f 3074 3075 2962 2963 -f 3078 3079 2958 2959 -f 3082 3083 2954 2955 3032 -f 3086 3087 2950 2951 -f 3037 3007 3006 3036 -f 3041 3011 3010 3040 -f 3045 3015 3014 3044 -f 3049 3019 3018 3048 -f 3053 3023 3022 3052 -f 3057 3027 3026 3056 -f 3090 3035 3034 3089 -f 3094 3039 3038 3093 -f 3098 3043 3042 3097 -f 3102 3047 3046 3101 -f 3106 3051 3050 3105 -f 3110 3055 3054 3109 -f 3114 3059 3058 3113 -f 3152 3153 3064 3063 -f 3156 3157 3068 3067 -f 3160 3161 3072 3071 -f 3164 3165 3120 3076 3075 3119 -f 3168 3169 3080 3079 -f 3172 3173 3122 3084 3083 3121 -f 3176 3177 3088 3087 -f 3127 3093 3092 3126 -f 3131 3097 3096 3130 -f 3135 3101 3100 3134 -f 3139 3105 3104 3138 -f 3143 3109 3108 3142 -f 3147 3113 3112 3146 -f 3180 3125 3124 3179 -f 3184 3129 3128 3183 -f 3188 3133 3132 3187 -f 3192 3137 3136 3191 -f 3196 3141 3140 3195 -f 3200 3145 3144 3199 -f 3204 3149 3148 3203 -f 3239 3240 3154 3153 3206 -f 3243 3244 3158 3157 -f 3247 3248 3162 3161 -f 3251 3252 3166 3165 -f 3255 3256 3170 3169 -f 3259 3260 3174 3173 3208 -f 3210 3179 3178 3209 -f 3214 3183 3182 3213 -f 3218 3187 3186 3217 -f 3222 3191 3190 3221 -f 3226 3195 3194 3225 -f 3230 3199 3198 3229 -f 3234 3203 3202 3233 -f 3267 3212 3211 3266 -f 3271 3216 3215 3270 -f 3275 3220 3219 3274 -f 3279 3224 3223 3278 -f 3283 3228 3227 3282 -f 3287 3232 3231 3286 -f 3319 3320 3237 3236 3291 -f 3323 3324 3241 3240 -f 3327 3328 3245 3244 -f 3331 3332 3249 3248 -f 3335 3336 3253 3252 -f 3339 3340 3257 3256 -f 3343 3344 3261 3260 -f 3294 3266 3265 3293 -f 3298 3270 3269 3297 -f 3302 3274 3273 3301 -f 3306 3278 3277 3305 -f 3310 3282 3281 3309 -f 3314 3286 3285 3313 -f 3318 3290 3289 3317 -f 3351 3296 3295 3350 -f 3355 3300 3299 3354 -f 3359 3304 3303 3358 -f 3363 3308 3307 3362 -f 3367 3312 3311 3366 -f 3371 3316 3315 3370 -f 3411 3412 3321 3320 -f 3415 3416 3325 3324 -f 3419 3420 3376 3329 3328 3375 -f 3423 3424 3333 3332 3379 -f 3427 3428 3337 3336 -f 3431 3432 3381 3341 3340 3380 -f 3435 3436 3345 3344 -f 3386 3350 3349 3385 -f 3390 3354 3353 3389 -f 3394 3358 3357 3393 -f 3398 3362 3361 3397 -f 3402 3366 3365 3401 -f 3406 3370 3369 3405 -f 3439 3384 3383 3438 -f 3443 3388 3387 3442 -f 3447 3392 3391 3446 -f 3451 3396 3395 3450 -f 3455 3400 3399 3454 -f 3459 3404 3403 3458 -f 3463 3408 3407 3462 -f 3496 3497 3413 3412 -f 3500 3501 3417 3416 -f 3504 3505 3421 3420 -f 3508 3509 3425 3424 -f 3512 3513 3429 3428 -f 3516 3517 3466 3433 3432 -f 3520 3521 3437 3436 -f 3471 3442 3441 3470 -f 3475 3446 3445 3474 -f 3479 3450 3449 3478 -f 3483 3454 3453 3482 -f 3487 3458 3457 3486 -f 3491 3462 3461 3490 -f 3524 3469 3468 3523 -f 3528 3473 3472 3527 -f 3532 3477 3476 3531 -f 3536 3481 3480 3535 -f 3540 3485 3484 3539 -f 3544 3489 3488 3543 -f 3548 3493 3492 3547 -f 3580 3581 3498 3497 -f 3584 3585 3502 3501 -f 3588 3589 3506 3505 -f 3592 3593 3510 3509 -f 3596 3597 3514 3513 -f 3600 3601 3518 3517 -f 3551 3523 3522 3550 -f 3555 3527 3526 3554 -f 3559 3531 3530 3558 -f 3563 3535 3534 3562 -f 3567 3539 3538 3566 -f 3571 3543 3542 3570 -f 3575 3547 3546 3574 -f 3608 3553 3552 3607 -f 3612 3557 3556 3611 -f 3616 3561 3560 3615 -f 3620 3565 3564 3619 -f 3624 3569 3568 3623 -f 3628 3573 3572 3627 -f 3663 3578 3577 3662 -f 3666 3667 3582 3581 -f 3670 3671 3586 3585 3632 -f 3674 3675 3590 3589 -f 3678 3679 3594 3593 -f 3682 3683 3598 3597 3633 -f 3686 3687 3602 3601 -f 3637 3607 3606 3636 -f 3641 3611 3610 3640 -f 3645 3615 3614 3644 -f 3649 3619 3618 3648 -f 3653 3623 3622 3652 -f 3657 3627 3626 3656 -f 3661 3631 3630 3660 -f 3694 3639 3638 3693 -f 3698 3643 3642 3697 -f 3702 3647 3646 3701 -f 3706 3651 3650 3705 -f 3710 3655 3654 3709 -f 3714 3659 3658 3713 -f 3745 3746 3664 3663 -f 3749 3750 3668 3667 -f 3753 3754 3672 3671 -f 3757 3758 3676 3675 -f 3761 3762 3680 3679 -f 3765 3766 3684 3683 -f 3769 3770 3688 3687 -f 3720 3693 3692 3719 -f 3724 3697 3696 3723 -f 3728 3701 3700 3727 -f 3732 3705 3704 3731 -f 3736 3709 3708 3735 -f 3740 3713 3712 3739 -f 3773 3718 3717 3772 -f 3777 3722 3721 3776 -f 3781 3726 3725 3780 -f 3785 3730 3729 3784 -f 3789 3734 3733 3788 -f 3793 3738 3737 3792 -f 3797 3742 3741 3796 -f 3830 3831 3747 3746 -f 3834 3835 3751 3750 -f 3838 3839 3755 3754 -f 3842 3843 3759 3758 -f 3846 3847 3763 3762 -f 3850 3851 3800 3767 3766 3799 -f 3854 3855 3771 3770 -f 3805 3776 3775 3804 -f 3809 3780 3779 3808 -f 3813 3784 3783 3812 -f 3817 3788 3787 3816 -f 3821 3792 3791 3820 -f 3825 3796 3795 3824 -f 3858 3803 3802 3857 -f 3862 3807 3806 3861 -f 3866 3811 3810 3865 -f 3870 3815 3814 3869 -f 3874 3819 3818 3873 -f 3878 3823 3822 3877 -f 3882 3827 3826 3881 -f 3931 3932 3832 3831 -f 3935 3936 3886 3836 3835 3885 -f 3939 3940 3889 3840 3839 3888 -f 3943 3944 3844 3843 -f 3947 3948 3894 3848 3847 3893 -f 3951 3952 3898 3852 3851 3897 -f 3902 3857 3856 3901 -f 3906 3861 3860 3905 -f 3910 3865 3864 3909 -f 3914 3869 3868 3913 -f 3918 3873 3872 3917 -f 3922 3877 3876 3921 -f 3926 3881 3880 3925 -f 3959 3904 3903 3958 -f 3963 3908 3907 3962 -f 3967 3912 3911 3966 -f 3971 3916 3915 3970 -f 3975 3920 3919 3974 -f 3979 3924 3923 3978 -f 2976 2975 3929 3928 3983 -f 2972 2971 3933 3932 -f 2968 2967 3937 3936 -f 2964 2963 3941 3940 -f 2960 2959 3945 3944 -f 2956 2955 3949 3948 -f 2952 2951 3953 3952 -f 3001 3958 3957 3002 -f 2997 3962 3961 2998 -f 2993 3966 3965 2994 -f 2989 3970 3969 2990 -f 2985 3974 3973 2986 -f 2981 3978 3977 2982 -f 2977 3982 3981 2978 -f 4000 4001 4002 3999 -f 3995 3996 4005 4006 4352 -f 4371 4362 3991 3992 -f 3989 4025 4026 3988 -f 3985 4029 3061 2976 -f 4003 4015 4016 4004 -f 4007 4019 4020 4008 -f 4012 4011 4421 4420 -f 4015 4032 4033 4016 -f 4369 4036 4037 4370 -f 4023 4360 4040 4041 4024 -f 4027 4056 4057 4028 -f 4030 4042 4043 4031 -f 4034 4046 4047 4035 -f 4038 4050 4051 4039 -f 4042 4059 4060 4043 -f 4047 4046 4063 4064 4350 -f 4367 4364 4051 4050 -f 4054 4086 4087 4055 -f 4058 4073 4090 3236 3205 3150 -f 4061 4076 4077 4062 -f 4065 4080 4081 4066 -f 4070 4069 4417 4416 -f 4076 4093 4094 4077 -f 4348 4097 4098 4347 -f 4084 4344 4101 4102 4085 -f 4088 4104 4120 4121 4089 -f 4091 4106 4107 4092 -f 4095 4110 4111 4096 -f 4099 4114 4115 4100 -f 4106 4123 4124 4107 -f 4111 4110 4127 4128 4353 -f 4356 4357 4115 4114 -f 4118 4148 4149 4135 4119 -f 4122 4152 3410 3319 -f 4125 4138 4139 4126 -f 4129 4142 4143 4130 -f 4134 4133 4437 4436 -f 4138 4155 4156 4139 -f 4414 4159 4160 4413 -f 4146 4410 4163 4164 4147 -f 4150 4180 4181 4151 -f 4153 4166 4167 4154 -f 4157 4170 4171 4158 -f 4161 4174 4175 4162 -f 4166 4183 4184 4167 -f 4171 4170 4187 4188 4394 -f 4407 4191 4192 4406 -f 4178 4207 4208 4179 -f 4182 4211 3577 3494 -f 4185 4197 4198 4186 -f 4189 4201 4202 4190 -f 4194 4193 4425 4424 -f 4197 4214 4215 4198 -f 4400 4401 4202 4201 -f 4205 4404 4222 4223 4206 -f 4209 4238 4239 4210 -f 4212 4224 4225 4213 -f 4216 4228 4229 4217 -f 4220 4232 4233 4221 -f 4224 4241 4242 4225 -f 4229 4228 4245 4246 4392 -f 4397 4249 4250 4396 -f 4236 4266 4267 4237 -f 4240 4270 3744 3662 -f 4243 4256 4257 4244 -f 4247 4260 4261 4248 -f 4252 4251 4429 4428 -f 4256 4273 4274 4257 -f 4380 4277 4278 4379 -f 4264 4376 4281 4282 4265 -f 4268 4298 4299 4269 -f 4271 4284 4285 4272 -f 4275 4288 4289 4276 -f 4279 4292 4293 4280 -f 4284 4301 4302 4285 -f 4289 4288 4305 4306 4390 -f 4383 4384 4293 4292 -f 4296 4326 4327 4297 -f 4300 4313 4330 3928 3883 3828 -f 4303 4316 4317 4304 -f 4307 4320 4321 4308 -f 4312 4311 4433 4432 -f 4316 4333 4334 4317 -f 4388 4337 4338 4387 -f 4324 4374 4341 4342 4325 -f 4328 3987 3986 4329 -f 4331 4000 3999 4332 -f 4335 3996 3995 4336 -f 4339 3992 3991 4340 -f 4414 4413 4143 4142 -f 4394 4409 4172 4171 -f 4406 4405 4176 4175 -f 4355 4354 4129 4130 -f 4347 4346 4082 4081 -f 4364 4367 4067 4068 -f 4351 4369 4019 4018 -f 4363 4360 4023 4022 -f 4372 4373 4007 4008 -f 4387 4386 4322 4321 -f 4384 4383 4309 4310 -f 4391 4380 4260 4259 -f 4377 4376 4264 4263 -f 4397 4396 4233 4232 -f 4402 4401 4219 4220 -f 4069 4084 4417 -f 4053 4041 4418 -f 4341 3990 4423 -f 4234 4235 4426 4427 -f 4251 4264 4429 -f 4295 4282 4430 -f 4176 4177 4434 4435 -f 4133 4146 4437 -f 4117 4102 4438 -f 4440 4422 4423 3990 -f 4116 4117 4438 4439 -f 4177 4164 4434 -f 4311 4324 4433 -f 4294 4295 4430 4431 -f 4235 4223 4426 -f 4193 4205 4425 -f 4011 4023 4421 -f 4052 4053 4418 4419 -f 4400 4393 4217 4218 -f 4404 4403 4221 4222 -f 4399 4398 4231 4230 -f 4379 4378 4262 4261 -f 4382 4381 4307 4308 -f 4385 4374 4324 4323 -f 4389 4388 4320 4319 -f 4362 4371 4009 4010 -f 4370 4368 4021 4020 -f 4365 4366 4065 4066 -f 4344 4084 4083 4345 -f 4349 4348 4080 4079 -f 4357 4356 4131 4132 -f 4408 4407 4174 4173 -f 4412 4411 4145 4144 -f 4342 4341 4423 4422 -f 4337 3994 3993 4338 -f 4333 3998 3997 4334 -f 4330 4343 3985 2976 3983 3928 -f 4326 3989 3988 4327 -f 4386 4339 4340 4385 -f 4319 4318 4335 4336 4389 -f 4314 4331 4332 4315 -f 4309 4322 4323 4310 -f 4305 4318 4319 4306 -f 4301 4314 4315 4302 -f 4298 4328 4329 4299 -f 4294 4375 4311 4312 4295 -f 4381 4382 4291 4290 -f 4286 4303 4304 4287 -f 4282 4281 4431 4430 -f 4277 4290 4291 4278 -f 4273 4286 4287 4274 -f 4270 4300 3828 3744 -f 4266 4296 4297 4283 4267 -f 4378 4279 4280 4377 -f 4259 4258 4275 4276 4391 -f 4254 4271 4272 4255 -f 4249 4262 4263 4250 -f 4245 4258 4259 4246 -f 4241 4254 4255 4242 -f 4238 4268 4269 4253 4239 -f 4234 4395 4251 4252 4235 -f 4399 4247 4248 4398 -f 4226 4243 4244 4227 -f 4223 4222 4427 4426 -f 4218 4230 4231 4219 -f 4214 4226 4227 4215 -f 4211 4240 3662 3577 -f 4207 4236 4237 4208 -f 4402 4403 4204 4203 -f 4200 4199 4216 4217 4393 -f 4195 4212 4213 4196 -f 4191 4203 4204 4192 -f 4187 4199 4200 4188 -f 4183 4195 4196 4184 -f 4180 4209 4210 4181 -f 4176 4405 4193 4194 4177 -f 4409 4189 4190 4408 -f 4168 4185 4186 4169 -f 4164 4163 4435 4434 -f 4159 4172 4173 4160 -f 4155 4168 4169 4156 -f 4152 4165 4182 3494 3410 -f 4148 4178 4179 4149 -f 4412 4161 4162 4411 -f 4141 4140 4157 4158 4415 -f 4136 4153 4154 4137 -f 4131 4144 4145 4132 -f 4127 4140 4141 4128 -f 4123 4136 4137 4124 -f 4120 4150 4151 4121 -f 4116 4358 4133 4134 4117 -f 4354 4355 4113 4112 -f 4108 4125 4126 4109 -f 4102 4101 4439 4438 -f 4097 4112 4113 4098 -f 4093 4108 4109 4094 -f 4090 4105 4122 3319 3291 3236 -f 4086 4118 4119 4103 4087 -f 4346 4099 4100 4345 -f 4079 4078 4095 4096 4349 -f 4074 4091 4092 4075 -f 4067 4082 4083 4068 -f 4063 4078 4079 4064 -f 4059 4074 4075 4060 -f 4056 4071 4088 4089 4072 4057 -f 4052 4359 4069 4070 4053 -f 4366 4365 4049 4048 -f 4044 4061 4062 4045 -f 4041 4040 4419 4418 -f 4036 4048 4049 4037 -f 4032 4044 4045 4033 -f 4029 4058 3150 3061 -f 4025 4054 4055 4026 -f 4368 4038 4039 4363 -f 4018 4017 4034 4035 4351 -f 4013 4030 4031 4014 -f 4009 4021 4022 4010 -f 4005 4017 4018 4006 -f 4001 4013 4014 4002 -f 3987 4027 4028 3986 -f 4440 3990 4361 4011 4012 -f 4373 4372 3993 3994 -f 3998 4003 4004 3997 -f 3088 3177 3263 3346 3437 3521 3604 3689 3771 3855 3900 3955 2949 -f 2979 3980 3979 2980 -f 2983 3976 3975 2984 -f 2987 3972 3971 2988 -f 2991 3968 3967 2992 -f 2995 3964 3963 2996 -f 2999 3960 3959 3000 -f 2950 2949 3955 3954 -f 2954 2953 3951 3950 3984 -f 2958 2957 3947 3946 -f 2962 2961 3943 3942 -f 2966 2965 3939 3938 -f 2970 2969 3935 3934 -f 2974 2973 3931 3930 -f 3981 3926 3925 3980 -f 3977 3922 3921 3976 -f 3973 3918 3917 3972 -f 3969 3914 3913 3968 -f 3965 3910 3909 3964 -f 3961 3906 3905 3960 -f 3957 3902 3901 3956 -f 3924 3879 3878 3923 -f 3920 3875 3874 3919 -f 3916 3871 3870 3915 -f 3912 3867 3866 3911 -f 3908 3863 3862 3907 -f 3904 3859 3858 3903 -f 3953 3954 3854 3853 3899 -f 3949 3950 3896 3850 3849 3895 -f 3945 3946 3846 3845 3892 -f 3941 3942 3891 3842 3841 3890 -f 3937 3938 3838 3837 3887 -f 3933 3934 3834 3833 -f 3929 3930 3830 3829 3884 -f 3880 3825 3824 3879 -f 3876 3821 3820 3875 -f 3872 3817 3816 3871 -f 3868 3813 3812 3867 -f 3864 3809 3808 3863 -f 3860 3805 3804 3859 -f 3827 3798 3797 3826 -f 3823 3794 3793 3822 -f 3819 3790 3789 3818 -f 3815 3786 3785 3814 -f 3811 3782 3781 3810 -f 3807 3778 3777 3806 -f 3803 3774 3773 3802 -f 3852 3853 3769 3768 -f 3848 3849 3765 3764 -f 3844 3845 3761 3760 -f 3840 3841 3757 3756 -f 3836 3837 3753 3752 -f 3832 3833 3749 3748 -f 3829 3745 3744 3828 -f 3795 3740 3739 3794 -f 3791 3736 3735 3790 -f 3787 3732 3731 3786 -f 3783 3728 3727 3782 -f 3779 3724 3723 3778 -f 3775 3720 3719 3774 -f 3742 3715 3714 3741 -f 3738 3711 3710 3737 -f 3734 3707 3706 3733 -f 3730 3703 3702 3729 -f 3726 3699 3698 3725 -f 3722 3695 3694 3721 -f 3718 3691 3690 3717 -f 3767 3768 3686 3685 -f 3763 3764 3682 3681 -f 3759 3760 3678 3677 -f 3755 3756 3674 3673 -f 3751 3752 3670 3669 -f 3747 3748 3666 3665 -f 3716 3661 3660 3715 -f 3712 3657 3656 3711 -f 3708 3653 3652 3707 -f 3704 3649 3648 3703 -f 3700 3645 3644 3699 -f 3696 3641 3640 3695 -f 3692 3637 3636 3691 -f 3659 3629 3628 3658 -f 3655 3625 3624 3654 -f 3651 3621 3620 3650 -f 3647 3617 3616 3646 -f 3643 3613 3612 3642 -f 3639 3609 3608 3638 -f 3688 3689 3604 3603 3634 -f 3684 3685 3600 3599 -f 3680 3681 3596 3595 -f 3676 3677 3592 3591 -f 3672 3673 3588 3587 -f 3668 3669 3584 3583 -f 3664 3665 3580 3579 -f 3630 3575 3574 3629 -f 3626 3571 3570 3625 -f 3622 3567 3566 3621 -f 3618 3563 3562 3617 -f 3614 3559 3558 3613 -f 3610 3555 3554 3609 -f 3606 3551 3550 3605 -f 3573 3545 3544 3572 -f 3569 3541 3540 3568 -f 3565 3537 3536 3564 -f 3561 3533 3532 3560 -f 3557 3529 3528 3556 -f 3553 3525 3524 3552 -f 3602 3603 3520 3519 -f 3598 3599 3549 3516 3515 -f 3594 3595 3512 3511 -f 3590 3591 3508 3507 -f 3586 3587 3504 3503 -f 3582 3583 3500 3499 -f 3578 3579 3496 3495 -f 3546 3491 3490 3545 -f 3542 3487 3486 3541 -f 3538 3483 3482 3537 -f 3534 3479 3478 3533 -f 3530 3475 3474 3529 -f 3526 3471 3470 3525 -f 3493 3464 3463 3492 -f 3489 3460 3459 3488 -f 3485 3456 3455 3484 -f 3481 3452 3451 3480 -f 3477 3448 3447 3476 -f 3473 3444 3443 3472 -f 3469 3440 3439 3468 -f 3518 3519 3435 3434 -f 3514 3515 3465 3431 3430 -f 3510 3511 3427 3426 -f 3506 3507 3423 3422 -f 3502 3503 3419 3418 -f 3498 3499 3415 3414 -f 3495 3411 3410 3494 -f 3461 3406 3405 3460 -f 3457 3402 3401 3456 -f 3453 3398 3397 3452 -f 3449 3394 3393 3448 -f 3445 3390 3389 3444 -f 3441 3386 3385 3440 -f 3408 3372 3371 3407 -f 3404 3368 3367 3403 -f 3400 3364 3363 3399 -f 3396 3360 3359 3395 -f 3392 3356 3355 3391 -f 3388 3352 3351 3387 -f 3384 3348 3347 3383 -f 3433 3434 3343 3342 3382 -f 3429 3430 3339 3338 -f 3425 3426 3335 3334 -f 3421 3422 3378 3331 3330 3377 -f 3417 3418 3374 3327 3326 -f 3413 3414 3323 3322 -f 3373 3318 3317 3372 -f 3369 3314 3313 3368 -f 3365 3310 3309 3364 -f 3361 3306 3305 3360 -f 3357 3302 3301 3356 -f 3353 3298 3297 3352 -f 3349 3294 3293 3348 -f 3316 3288 3287 3315 -f 3312 3284 3283 3311 -f 3308 3280 3279 3307 -f 3304 3276 3275 3303 -f 3300 3272 3271 3299 -f 3296 3268 3267 3295 -f 3345 3346 3263 3262 -f 3341 3342 3259 3258 -f 3337 3338 3255 3254 -f 3333 3334 3251 3250 -f 3329 3330 3247 3246 -f 3325 3326 3243 3242 -f 3321 3322 3239 3238 -f 3289 3234 3233 3288 -f 3285 3230 3229 3284 -f 3281 3226 3225 3280 -f 3277 3222 3221 3276 -f 3273 3218 3217 3272 -f 3269 3214 3213 3268 -f 3265 3210 3209 3264 -f 3232 3201 3200 3231 -f 3228 3197 3196 3227 -f 3224 3193 3192 3223 -f 3220 3189 3188 3219 -f 3216 3185 3184 3215 -f 3212 3181 3180 3211 -f 3261 3262 3176 3175 -f 3257 3258 3207 3172 3171 -f 3253 3254 3168 3167 -f 3249 3250 3164 3163 -f 3245 3246 3160 3159 -f 3241 3242 3156 3155 -f 3237 3238 3152 3151 -f 3202 3147 3146 3201 -f 3198 3143 3142 3197 -f 3194 3139 3138 3193 -f 3190 3135 3134 3189 -f 3186 3131 3130 3185 -f 3182 3127 3126 3181 -f 3149 3115 3114 3148 -f 3145 3111 3110 3144 -f 3141 3107 3106 3140 -f 3137 3103 3102 3136 -f 3133 3099 3098 3132 -f 3129 3095 3094 3128 -f 3125 3091 3090 3124 -f 3174 3175 3086 3085 -f 3170 3171 3082 3081 -f 3166 3167 3078 3077 -f 3162 3163 3118 3074 3073 -f 3158 3159 3117 3070 3069 3116 -f 3154 3155 3066 3065 -f 3151 3062 3061 3150 -f 3112 3057 3056 3111 -f 3108 3053 3052 3107 -f 3104 3049 3048 3103 -f 3100 3045 3044 3099 -f 3096 3041 3040 3095 -f 3092 3037 3036 3091 -f 3059 3029 3028 3058 -f 3055 3025 3024 3054 -f 3051 3021 3020 3050 -f 3047 3017 3016 3046 -f 3043 3013 3012 3042 -f 3039 3009 3008 3038 -f 3035 3005 3004 3034 -f 3084 3085 2952 2953 3033 -f 3080 3081 2956 2957 -f 3076 3077 2960 2961 -f 3072 3073 2964 2965 -f 3068 3069 2968 2969 -f 3064 3065 2972 2973 -f 3030 2977 2978 3029 -f 3026 2981 2982 3025 -f 3022 2985 2986 3021 -f 3018 2989 2990 3017 -f 3014 2993 2994 3013 -f 3010 2997 2998 3009 -f 3006 3001 3002 3005 -f 3007 3000 3001 3006 -f 3011 2996 2997 3010 -f 3015 2992 2993 3014 -f 3019 2988 2989 3018 -f 3023 2984 2985 3022 -f 3027 2980 2981 3026 -f 3062 2975 2976 3061 -f 3065 3066 2971 2972 -f 3069 3070 2967 2968 -f 3073 3074 2963 2964 -f 3077 3078 2959 2960 -f 3081 3082 3032 2955 2956 -f 3085 3086 2951 2952 -f 3036 3006 3005 3035 -f 3040 3010 3009 3039 -f 3044 3014 3013 3043 -f 3048 3018 3017 3047 -f 3052 3022 3021 3051 -f 3056 3026 3025 3055 -f 3060 3030 3029 3059 -f 3093 3038 3037 3092 -f 3097 3042 3041 3096 -f 3101 3046 3045 3100 -f 3105 3050 3049 3104 -f 3109 3054 3053 3108 -f 3113 3058 3057 3112 -f 3151 3152 3063 3062 -f 3155 3156 3067 3066 -f 3159 3160 3071 3070 3117 -f 3163 3164 3119 3075 3074 3118 -f 3167 3168 3079 3078 -f 3171 3172 3121 3083 3082 -f 3175 3176 3087 3086 -f 3126 3092 3091 3125 -f 3130 3096 3095 3129 -f 3134 3100 3099 3133 -f 3138 3104 3103 3137 -f 3142 3108 3107 3141 -f 3146 3112 3111 3145 -f 3179 3124 3123 3178 -f 3183 3128 3127 3182 -f 3187 3132 3131 3186 -f 3191 3136 3135 3190 -f 3195 3140 3139 3194 -f 3199 3144 3143 3198 -f 3203 3148 3147 3202 -f 3238 3239 3206 3153 3152 -f 3242 3243 3157 3156 -f 3246 3247 3161 3160 -f 3250 3251 3165 3164 -f 3254 3255 3169 3168 -f 3258 3259 3208 3173 3172 3207 -f 3262 3263 3177 3176 -f 3213 3182 3181 3212 -f 3217 3186 3185 3216 -f 3221 3190 3189 3220 -f 3225 3194 3193 3224 -f 3229 3198 3197 3228 -f 3233 3202 3201 3232 -f 3266 3211 3210 3265 -f 3270 3215 3214 3269 -f 3274 3219 3218 3273 -f 3278 3223 3222 3277 -f 3282 3227 3226 3281 -f 3286 3231 3230 3285 -f 3290 3235 3234 3289 -f 3322 3323 3240 3239 -f 3326 3327 3244 3243 -f 3330 3331 3248 3247 -f 3334 3335 3252 3251 -f 3338 3339 3256 3255 -f 3342 3343 3260 3259 -f 3293 3265 3264 3292 -f 3297 3269 3268 3296 -f 3301 3273 3272 3300 -f 3305 3277 3276 3304 -f 3309 3281 3280 3308 -f 3313 3285 3284 3312 -f 3317 3289 3288 3316 -f 3350 3295 3294 3349 -f 3354 3299 3298 3353 -f 3358 3303 3302 3357 -f 3362 3307 3306 3361 -f 3366 3311 3310 3365 -f 3370 3315 3314 3369 -f 3411 3320 3319 3410 -f 3414 3415 3324 3323 -f 3418 3419 3375 3328 3327 3374 -f 3422 3423 3379 3332 3331 3378 -f 3426 3427 3336 3335 -f 3430 3431 3380 3340 3339 -f 3434 3435 3344 3343 -f 3385 3349 3348 3384 -f 3389 3353 3352 3388 -f 3393 3357 3356 3392 -f 3397 3361 3360 3396 -f 3401 3365 3364 3400 -f 3405 3369 3368 3404 -f 3409 3373 3372 3408 -f 3442 3387 3386 3441 -f 3446 3391 3390 3445 -f 3450 3395 3394 3449 -f 3454 3399 3398 3453 -f 3458 3403 3402 3457 -f 3462 3407 3406 3461 -f 3495 3496 3412 3411 -f 3499 3500 3416 3415 -f 3503 3504 3420 3419 -f 3507 3508 3424 3423 -f 3511 3512 3428 3427 -f 3515 3516 3432 3431 3465 -f 3519 3520 3436 3435 -f 3470 3441 3440 3469 -f 3474 3445 3444 3473 -f 3478 3449 3448 3477 -f 3482 3453 3452 3481 -f 3486 3457 3456 3485 -f 3490 3461 3460 3489 -f 3523 3468 3467 3522 -f 3527 3472 3471 3526 -f 3531 3476 3475 3530 -f 3535 3480 3479 3534 -f 3539 3484 3483 3538 -f 3543 3488 3487 3542 -f 3547 3492 3491 3546 -f 3579 3580 3497 3496 -f 3583 3584 3501 3500 -f 3587 3588 3505 3504 -f 3591 3592 3509 3508 -f 3595 3596 3513 3512 -f 3599 3600 3517 3516 3549 -f 3603 3604 3521 3520 -f 3554 3526 3525 3553 -f 3558 3530 3529 3557 -f 3562 3534 3533 3561 -f 3566 3538 3537 3565 -f 3570 3542 3541 3569 -f 3574 3546 3545 3573 -f 3607 3552 3551 3606 -f 3611 3556 3555 3610 -f 3615 3560 3559 3614 -f 3619 3564 3563 3618 -f 3623 3568 3567 3622 -f 3627 3572 3571 3626 -f 3631 3576 3575 3630 -f 3665 3666 3581 3580 -f 3669 3670 3632 3585 3584 -f 3673 3674 3589 3588 -f 3677 3678 3593 3592 -f 3681 3682 3633 3597 3596 -f 3685 3686 3601 3600 -f 3636 3606 3605 3635 -f 3640 3610 3609 3639 -f 3644 3614 3613 3643 -f 3648 3618 3617 3647 -f 3652 3622 3621 3651 -f 3656 3626 3625 3655 -f 3660 3630 3629 3659 -f 3693 3638 3637 3692 -f 3697 3642 3641 3696 -f 3701 3646 3645 3700 -f 3705 3650 3649 3704 -f 3709 3654 3653 3708 -f 3713 3658 3657 3712 -f 3745 3663 3662 3744 -f 3748 3749 3667 3666 -f 3752 3753 3671 3670 -f 3756 3757 3675 3674 -f 3760 3761 3679 3678 -f 3764 3765 3683 3682 -f 3768 3769 3687 3686 -f 3719 3692 3691 3718 -f 3723 3696 3695 3722 -f 3727 3700 3699 3726 -f 3731 3704 3703 3730 -f 3735 3708 3707 3734 -f 3739 3712 3711 3738 -f 3743 3716 3715 3742 -f 3776 3721 3720 3775 -f 3780 3725 3724 3779 -f 3784 3729 3728 3783 -f 3788 3733 3732 3787 -f 3792 3737 3736 3791 -f 3796 3741 3740 3795 -f 3829 3830 3746 3745 -f 3833 3834 3750 3749 -f 3837 3838 3754 3753 -f 3841 3842 3758 3757 -f 3845 3846 3762 3761 -f 3849 3850 3799 3766 3765 -f 3853 3854 3770 3769 -f 3804 3775 3774 3803 -f 3808 3779 3778 3807 -f 3812 3783 3782 3811 -f 3816 3787 3786 3815 -f 3820 3791 3790 3819 -f 3824 3795 3794 3823 -f 3857 3802 3801 3856 -f 3861 3806 3805 3860 -f 3865 3810 3809 3864 -f 3869 3814 3813 3868 -f 3873 3818 3817 3872 -f 3877 3822 3821 3876 -f 3881 3826 3825 3880 -f 3930 3931 3831 3830 -f 3934 3935 3885 3835 3834 -f 3938 3939 3888 3839 3838 -f 3942 3943 3843 3842 3891 -f 3946 3947 3893 3847 3846 -f 3950 3951 3897 3851 3850 3896 -f 3954 3955 3900 3855 3854 -f 3905 3860 3859 3904 -f 3909 3864 3863 3908 -f 3913 3868 3867 3912 -f 3917 3872 3871 3916 -f 3921 3876 3875 3920 -f 3925 3880 3879 3924 -f 3958 3903 3902 3957 -f 3962 3907 3906 3961 -f 3966 3911 3910 3965 -f 3970 3915 3914 3969 -f 3974 3919 3918 3973 -f 3978 3923 3922 3977 -f 3982 3927 3926 3981 -f 2973 2972 3932 3931 -f 2969 2968 3936 3935 -f 2965 2964 3940 3939 -f 2961 2960 3944 3943 -f 2957 2956 3948 3947 -f 2953 2952 3952 3951 -f 3002 3957 3956 3003 -f 2998 3961 3960 2999 -f 2994 3965 3964 2995 -f 2990 3969 3968 2991 -f 2986 3973 3972 2987 -f 2982 3977 3976 2983 -f 2978 3981 3980 2979 -f 2977 3030 4001 4000 -f 3997 4004 4005 3996 -f 4372 4371 3992 3993 -f 4440 4012 4024 4025 3989 -f 3986 4028 4029 3985 -f 4002 4014 4015 4003 -f 4006 4018 4019 4007 -f 4010 4022 4023 4011 -f 4014 4031 4032 4015 -f 4351 4035 4036 4369 -f 4363 4039 4040 4360 -f 4026 4055 4056 4027 -f 3115 3149 4042 4030 -f 4033 4045 4046 4034 -f 4037 4049 4050 4038 -f 3149 3204 4059 4042 -f 4045 4062 4063 4046 -f 4365 4367 4050 4049 -f 4053 4070 4085 4086 4054 -f 4057 4072 4089 4090 4073 4058 -f 4060 4075 4076 4061 -f 4064 4079 4080 4065 -f 4068 4083 4084 4069 -f 4075 4092 4093 4076 -f 4349 4096 4097 4348 -f 4345 4100 4101 4344 -f 4087 4103 4119 4120 4104 4088 -f 3290 3318 4106 4091 -f 4094 4109 4110 4095 -f 4098 4113 4114 4099 -f 3318 3373 4123 4106 -f 4109 4126 4127 4110 -f 4355 4356 4114 4113 -f 4117 4134 4147 4148 4118 -f 4121 4151 4152 4122 -f 4124 4137 4138 4125 -f 4128 4141 4142 4129 -f 4132 4145 4146 4133 -f 4137 4154 4155 4138 -f 4415 4158 4159 4414 -f 4411 4162 4163 4410 -f 4149 4179 4180 4150 -f 3464 3493 4166 4153 -f 4156 4169 4170 4157 -f 4160 4173 4174 4161 -f 3493 3548 4183 4166 -f 4169 4186 4187 4170 -f 4408 4190 4191 4407 -f 4177 4194 4206 4207 4178 -f 4181 4210 4211 4182 -f 4184 4196 4197 4185 -f 4188 4200 4201 4189 -f 4192 4204 4205 4193 -f 4196 4213 4214 4197 -f 4393 4400 4201 4200 -f 4403 4404 4205 4204 -f 4208 4237 4238 4209 -f 3631 3661 4224 4212 -f 4215 4227 4228 4216 -f 4219 4231 4232 4220 -f 3661 3716 4241 4224 -f 4227 4244 4245 4228 -f 4398 4248 4249 4397 -f 4235 4252 4265 4266 4236 -f 4239 4253 4269 4270 4240 -f 4242 4255 4256 4243 -f 4246 4259 4260 4247 -f 4250 4263 4264 4251 -f 4255 4272 4273 4256 -f 4391 4276 4277 4380 -f 4377 4280 4281 4376 -f 4267 4283 4297 4298 4268 -f 3798 3827 4284 4271 -f 4274 4287 4288 4275 -f 4278 4291 4292 4279 -f 3827 3882 4301 4284 -f 4287 4304 4305 4288 -f 4382 4383 4292 4291 -f 4295 4312 4325 4326 4296 -f 4299 4329 4330 4313 4300 -f 4302 4315 4316 4303 -f 4306 4319 4320 4307 -f 4310 4323 4324 4311 -f 4315 4332 4333 4316 -f 4389 4336 4337 4388 -f 4385 4340 4341 4374 -f 4327 3988 3987 4328 -f 3982 2977 4000 4331 -f 4334 3997 3996 4335 -f 4338 3993 3992 4339 -f 4415 4414 4142 4141 -f 4411 4410 4146 4145 -f 4407 4406 4175 4174 -f 4356 4355 4130 4131 -f 4348 4347 4081 4080 -f 4359 4364 4068 4069 -f 4366 4350 4064 4065 -f 4368 4363 4022 4021 -f 4371 4372 4008 4009 -f 4388 4387 4321 4320 -f 4375 4384 4310 4311 -f 4381 4390 4306 4307 -f 4378 4377 4263 4262 -f 4398 4397 4232 4231 -f 4403 4402 4220 4221 -f 4084 4085 4416 4417 -f 4040 4052 4419 -f 4024 4012 4420 -f 4206 4194 4424 -f 4264 4265 4428 4429 -f 4281 4294 4431 -f 4325 4312 4432 -f 4146 4147 4436 4437 -f 4101 4116 4439 -# 4404 elements diff --git a/libobj/examples/negcube.obj b/libobj/examples/negcube.obj deleted file mode 100644 index 18109cd..0000000 --- a/libobj/examples/negcube.obj +++ /dev/null @@ -1,33 +0,0 @@ -# This is a cube with negative vertex reference numbers. Each element -# references the vertices stored immediately above it in the file. -# Note that vertices are not shared. -v 0.000000 2.000000 2.000000 -v 0.000000 0.000000 2.000000 -v 2.000000 0.000000 2.000000 -v 2.000000 2.000000 2.000000 -f -4 -3 -2 -1 -v 2.000000 2.000000 0.000000 -v 2.000000 0.000000 0.000000 -v 0.000000 0.000000 0.000000 -v 0.000000 2.000000 0.000000 -f -4 -3 -2 -1 -v 2.000000 2.000000 2.000000 -v 2.000000 0.000000 2.000000 -v 2.000000 0.000000 0.000000 -v 2.000000 2.000000 0.000000 -f -4 -3 -2 -1 -v 0.000000 2.000000 0.000000 -v 0.000000 2.000000 2.000000 -v 2.000000 2.000000 2.000000 -v 2.000000 2.000000 0.000000 -f -4 -3 -2 -1 -v 0.000000 2.000000 0.000000 -v 0.000000 0.000000 0.000000 -v 0.000000 0.000000 2.000000 -v 0.000000 2.000000 2.000000 -f -4 -3 -2 -1 -v 0.000000 0.000000 2.000000 -v 0.000000 0.000000 0.000000 -v 2.000000 0.000000 0.000000 -v 2.000000 0.000000 2.000000 -f -4 -3 -2 -1 diff --git a/libobj/examples/square.obj b/libobj/examples/square.obj deleted file mode 100644 index d44fd6d..0000000 --- a/libobj/examples/square.obj +++ /dev/null @@ -1,9 +0,0 @@ -# This example shows a square that measures two units on each side and -# faces in the positive direction (toward the camera). Note that the -# ordering of the vertices is counterclockwise. This ordering -# determines that the square is facing forward. -v 0.000000 2.000000 0.000000 -v 0.000000 0.000000 0.000000 -v 2.000000 0.000000 0.000000 -v 2.000000 2.000000 0.000000 -f 1 2 3 4 diff --git a/libobj/mkfile b/libobj/mkfile deleted file mode 100644 index f32264e..0000000 --- a/libobj/mkfile +++ /dev/null @@ -1,9 +0,0 @@ -</$objtype/mkfile - -LIB=../libobj.a$O -OFILES=\ - obj.$O\ - -HFILES=../obj.h - -</sys/src/cmd/mklib diff --git a/libobj/obj.2.man b/libobj/obj.2.man deleted file mode 100644 index 9196385..0000000 --- a/libobj/obj.2.man +++ /dev/null @@ -1,88 +0,0 @@ -.TH OBJ 2 -.SH NAME -objparse, -objfree, -OBJfmt, -OBJfmtinstall -\- OBJ parser -.SH SYNOPSIS -.ta 0.7i +0.7i +0.7i +0.7i +0.7i +0.7i +0.7i -.EX -#include <u.h> -#include <libc.h> -#include <obj.h> - -enum { - OBJVGeometric, - OBJVTexture, - OBJVNormal, - OBJVParametric, - OBJNVERT -}; - -enum { - OBJEPoint, - OBJELine, - OBJEFace, - OBJECurve, - OBJECurve2, - OBJESurface -}; - -enum { - OBJHTSIZE = 17 -}; - -typedef struct -{ - union { - struct { double x, y, z, w; }; /* geometric */ - struct { double u, v, vv; }; /* texture and parametric */ - struct { double i, j, k; }; /* normal */ - }; -} OBJVertex; - -typedef struct -{ - OBJVertex *verts; - int nvert; -} OBJVertexArray; - -typedef struct -{ - int *indices; - int nindex; - int type; - OBJElem *next; -} OBJElem; - -typedef struct -{ - char *name; - OBJElem *child; - OBJObject *next; -} OBJObject; - -typedef struct -{ - OBJVertexArray vertdata[OBJNVERT]; - OBJObject *objtab[OBJHTSIZE]; -} OBJ; - -OBJ *objparse(char *file); -void objfree(OBJ *obj); -int OBJfmt(Fmt*); -void OBJfmtinstall(void); -.EE -.SH DESCRIPTION -An OBJ structure contains geometry and material information about a set of 3D objects -.SH SOURCE -.B /sys/src/libobj -.SH SEE ALSO -.IR geometry (2) -.br -http://paulbourke.net/dataformats/obj -.br -https://people.sc.fsu.edu/~jburkardt/data/obj/obj.html -.SH DIAGNOSTICS -.SH BUGS diff --git a/libobj/obj.c b/libobj/obj.c deleted file mode 100644 index 1575f70..0000000 --- a/libobj/obj.c +++ /dev/null @@ -1,584 +0,0 @@ -#include <u.h> -#include <libc.h> -#include <ctype.h> -#include <bio.h> -#include "../obj.h" - -#undef isspace(c) -#define isspace(c) ((c) == ' ' || (c) == '\t') - -typedef struct Line Line; -struct Line -{ - char *file; - ulong lineno; -}; - -static Line curline; - -static void -error(char *fmt, ...) -{ - va_list va; - char buf[ERRMAX], *bp; - - va_start(va, fmt); - bp = seprint(buf, buf + sizeof buf, "%s:%lud ", curline.file, curline.lineno); - vseprint(bp, buf + sizeof buf, fmt, va); - va_end(va); - werrstr("%s\n", buf); -} - -static void * -emalloc(ulong n) -{ - void *p; - - p = malloc(n); - if(p == nil) - sysfatal("malloc: %r"); - memset(p, 0, n); - setmalloctag(p, getcallerpc(&n)); - return p; -} - -static void * -erealloc(void *v, ulong n) -{ - void *nv; - - nv = realloc(v, n); - if(nv == nil) - sysfatal("realloc: %r"); - setrealloctag(nv, getcallerpc(&v)); - return nv; -} - -static uint -hash(char *s) -{ - uint h; - - h = 0x811c9dc5; - while(*s != 0) - h = (h^(uchar)*s++) * 0x1000193; - return h % OBJHTSIZE; -} - -static void -addvertva(OBJVertexArray *va, OBJVertex v) -{ - va->verts = erealloc(va->verts, ++va->nvert*sizeof(OBJVertex)); - va->verts[va->nvert-1] = v; -} - -static void -addvert(OBJ *obj, OBJVertex v, int vtype) -{ - addvertva(&obj->vertdata[vtype], v); -} - -static void -addelem(OBJObject *o, OBJElem *e) -{ - OBJElem *ep; - - if(o->child == nil){ - o->child = e; - return; - } - for(ep = o->child; ep->next != nil; ep = ep->next) - ; - ep->next = e; -} - -static OBJElem * -allocelem(int t) -{ - OBJElem *e; - - e = emalloc(sizeof(OBJElem)); - e->type = t; - return e; -} - -static void -addelemidx(OBJElem *e, int idx) -{ - e->indices = erealloc(e->indices, ++e->nindex*sizeof(int)); - e->indices[e->nindex-1] = idx; -} - -static void -freeelem(OBJElem *e) -{ - free(e->indices); - free(e); -} - -static OBJObject * -alloco(char *n) -{ - OBJObject *o; - - o = emalloc(sizeof(OBJObject)); - o->name = strdup(n); - return o; -} - -static void -freeo(OBJObject *o) -{ - OBJElem *e, *ne; - - free(o->name); - for(e = o->child; e != nil; e = ne){ - ne = e->next; - freeelem(e); - } - free(o); -} - -static void -pusho(OBJ *obj, OBJObject *o) -{ - OBJObject *op, *prev; - uint h; - - prev = nil; - h = hash(o->name); - for(op = obj->objtab[h]; op != nil; prev = op, op = op->next) - if(strcmp(op->name, o->name) == 0){ - o->next = op->next; - freeo(op); - break; - } - if(prev == nil){ - obj->objtab[h] = o; - return; - } - prev->next = o; -} - -static OBJObject * -geto(OBJ *obj, char *n) -{ - OBJObject *o; - uint h; - - h = hash(n); - for(o = obj->objtab[h]; o != nil; o = o->next) - if(strcmp(o->name, n) == 0) - break; - return o; -} - -OBJ * -objparse(char *file) -{ - Biobuf *bin; - OBJ *obj; - OBJObject *o; - OBJElem *e; - OBJVertex v; - double *d; - char c, buf[256], *p; - int vtype, idx, sign; - - o = nil; - bin = Bopen(file, OREAD); - if(bin == nil) - sysfatal("Bopen: %r"); - curline.file = file; - curline.lineno = 1; - obj = emalloc(sizeof(OBJ)); - while((c = Bgetc(bin)) != Beof){ - switch(c){ - case 'v': - d = (double*)&v; - c = Bgetc(bin); - vtype = OBJVGeometric; - switch(c){ - case 't': vtype = OBJVTexture; break; - case 'p': vtype = OBJVParametric; break; - case 'n': vtype = OBJVNormal; break; - default: - if(!isspace(c)){ - error("wrong vertex type"); - goto error; - } - } - while(c = Bgetc(bin), c != Beof && c != '\n' && d-(double*)&v < 4){ - while(isspace(c)) - c = Bgetc(bin); - if(c == '\\'){ - while(c != '\n') - c = Bgetc(bin); - continue; - } - if(c != '-' && !isdigit(c)){ - error("unexpected character '%c'", c); - goto error; - } - Bungetc(bin); - Bgetd(bin, d++); - } - switch(vtype){ - case OBJVGeometric: - if(d-(double*)&v < 3){ - error("not enough coordinates"); - goto error; - } - if(d-(double*)&v < 4) - *d = 1; /* default w value */ - break; - case OBJVTexture: - if(d-(double*)&v < 1){ - error("not enough coordinates"); - goto error; - } - while(d-(double*)&v < 3) - *d++ = 0; /* default v and w values */ - break; - case OBJVParametric: - if(d-(double*)&v < 2){ - error("not enough coordinates"); - goto error; - } - if(d-(double*)&v < 3) - *d = 1; /* default w value */ - break; - case OBJVNormal: - if(d-(double*)&v < 3){ - error("not enough coordinates"); - goto error; - } - } - addvert(obj, v, vtype); - break; - case 'o': - p = buf; - c = Bgetc(bin); - if(!isspace(c)){ - error("syntax error"); - goto error; - } - while(isspace(c)) - c = Bgetc(bin); - if(!isalnum(c)){ - error("unexpected character '%c'", c); - goto error; - } - do{ - *p++ = c; - }while(c = Bgetc(bin), isalnum(c) && p-buf < sizeof(buf)-1); - *p = 0; - o = geto(obj, buf); - if(o == nil){ - o = alloco(buf); - pusho(obj, o); - } - break; - case 'g': - case 's': - /* element and smoothing groups ignored for now */ - while(c != '\n') - c = Bgetc(bin); - break; - case 'p': - c = Bgetc(bin); - if(!isspace(c)){ - error("syntax error"); - goto error; - } - while(c = Bgetc(bin), c != '\n'){ - idx = 0; - sign = 0; - while(isspace(c)) - c = Bgetc(bin); - if(c == '\\'){ - while(c != '\n') - c = Bgetc(bin); - continue; - } - if(c != '-' && !isdigit(c)){ - error("unexpected character '%c'", c); - goto error; - } - if(c == '-'){ - sign = 1; - c = Bgetc(bin); - if(!isdigit(c)){ - error("unexpected character '%c'", c); - goto error; - } - } - do{ - idx = idx*10 + c-'0'; - }while(c = Bgetc(bin), isdigit(c)); - Bungetc(bin); - idx = sign ? obj->vertdata[OBJVGeometric].nvert-idx : idx-1; - if(idx+1 > obj->vertdata[OBJVGeometric].nvert){ - error("not enough vertices"); - goto error; - } - e = allocelem(OBJEPoint); - addelemidx(e, idx); - if(o == nil){ - o = alloco("default"); - pusho(obj, o); - } - addelem(o, e); - } - break; - case 'l': - c = Bgetc(bin); - if(!isspace(c)){ - error("syntax error"); - goto error; - } - while(c = Bgetc(bin), c != '\n'){ - idx = 0; - sign = 0; - while(isspace(c)) - c = Bgetc(bin); - if(c == '\\'){ - while(c != '\n') - c = Bgetc(bin); - continue; - } - if(c != '-' && !isdigit(c)){ - error("unexpected character '%c'", c); - goto error; - } - if(c == '-'){ - sign = 1; - c = Bgetc(bin); - if(!isdigit(c)){ - error("unexpected character '%c'", c); - goto error; - } - } - do{ - idx = idx*10 + c-'0'; - }while(c = Bgetc(bin), isdigit(c)); - idx = sign ? obj->vertdata[OBJVGeometric].nvert-idx : idx-1; - if(idx+1 > obj->vertdata[OBJVGeometric].nvert){ - error("not enough vertices"); - goto error; - } - e = allocelem(OBJELine); - addelemidx(e, idx); -Line2: - idx = 0; - sign = 0; - while(isspace(c)) - c = Bgetc(bin); - if(c == '\\'){ - while(c != '\n') - c = Bgetc(bin); - c = Bgetc(bin); - goto Line2; - } - if(c != '-' && !isdigit(c)){ - freeelem(e); - error("unexpected character '%c'", c); - goto error; - } - if(c == '-'){ - sign = 1; - c = Bgetc(bin); - if(!isdigit(c)){ - freeelem(e); - error("unexpected character '%c'", c); - goto error; - } - } - do{ - idx = idx*10 + c-'0'; - }while(c = Bgetc(bin), isdigit(c)); - Bungetc(bin); - idx = sign ? obj->vertdata[OBJVGeometric].nvert-idx : idx-1; - if(idx+1 > obj->vertdata[OBJVGeometric].nvert){ - freeelem(e); - error("not enough vertices"); - goto error; - } - addelemidx(e, idx); - if(o == nil){ - o = alloco("default"); - pusho(obj, o); - } - addelem(o, e); - } - break; - case 'f': - e = allocelem(OBJEFace); - c = Bgetc(bin); - if(!isspace(c)){ - freeelem(e); - error("syntax error"); - goto error; - } - while(c = Bgetc(bin), c != '\n'){ - idx = 0; - sign = 0; - while(isspace(c)) - c = Bgetc(bin); - if(c == '\\'){ - while(c != '\n') - c = Bgetc(bin); - continue; - } - if(c != '-' && !isdigit(c)){ - freeelem(e); - error("unexpected character '%c'", c); - goto error; - } - if(c == '-'){ - sign = 1; - c = Bgetc(bin); - if(!isdigit(c)){ - freeelem(e); - error("unexpected character '%c'", c); - goto error; - } - } - do{ - idx = idx*10 + c-'0'; - }while(c = Bgetc(bin), isdigit(c)); - Bungetc(bin); - idx = sign ? obj->vertdata[OBJVGeometric].nvert-idx : idx-1; - if(idx+1 > obj->vertdata[OBJVGeometric].nvert){ - freeelem(e); - error("not enough vertices"); - goto error; - } - addelemidx(e, idx); - } - if(o == nil){ - o = alloco("default"); - pusho(obj, o); - } - addelem(o, e); - break; - case 'm': - case 'u': - p = buf; - do{ - *p++ = c; - }while(c = Bgetc(bin), isalpha(c) && p-buf < sizeof(buf)-1); - *p = 0; - if(strcmp(buf, "mtllib") != 0 && strcmp(buf, "usemtl") != 0){ - error("syntax error"); - goto error; - } - while(c != '\n') - c = Bgetc(bin); - break; - case '#': - while(c != '\n') - c = Bgetc(bin); - break; - } - do{ - if(c == '\n'){ - curline.lineno++; - break; - } - if(!isspace(c)){ - error("syntax error"); - goto error; - } - }while((c = Bgetc(bin)) != Beof); - } - Bterm(bin); - return obj; -error: - objfree(obj); - Bterm(bin); - return nil; -} - -void -objfree(OBJ *obj) -{ - OBJObject *o, *no; - int i; - - if(obj == nil) - return; - for(i = 0; i < nelem(obj->vertdata); i++) - free(obj->vertdata[i].verts); - for(i = 0; i < nelem(obj->objtab); i++) - for(o = obj->objtab[i]; o != nil; o = no){ - no = o->next; - freeo(o); - } - free(obj); -} - -int -OBJfmt(Fmt *f) -{ - OBJ *obj; - OBJObject *o; - OBJElem *e; - OBJVertex v; - int i, j, r, pack; - - r = pack = 0; - obj = va_arg(f->args, OBJ*); - for(i = 0; i < nelem(obj->vertdata); i++) - for(j = 0; j < obj->vertdata[i].nvert; j++){ - v = obj->vertdata[i].verts[j]; - switch(i){ - case OBJVGeometric: - r += fmtprint(f, "v %g %g %g %g\n", v.x, v.y, v.z, v.w); - break; - case OBJVTexture: - r += fmtprint(f, "vt %g %g %g\n", v.u, v.v, v.vv); - break; - case OBJVNormal: - r += fmtprint(f, "vn %g %g %g\n", v.i, v.j, v.k); - break; - case OBJVParametric: - r += fmtprint(f, "vp %g %g %g\n", v.u, v.v, v.vv); - break; - } - } - for(i = 0; i < nelem(obj->objtab); i++) - for(o = obj->objtab[i]; o != nil; o = o->next){ - if(strcmp(o->name, "default") != 0) - r += fmtprint(f, "o %s\n", o->name); - for(e = o->child; e != nil; e = e->next){ - switch(e->type){ - case OBJEPoint: - if(pack == 0) - r += fmtprint(f, "p"); - pack = pack > 0 ? --pack : 8-1; - break; - case OBJELine: - r += fmtprint(f, "l"); - break; - case OBJEFace: - r += fmtprint(f, "f"); - break; - //case OBJECurve: - //case OBJECurve2: - //case OBJESurface: - } - for(j = 0; j < e->nindex; j++) - r += fmtprint(f, " %d", e->indices[j]+1); - if(e->type != OBJEPoint || pack == 0) - r += fmtprint(f, "\n"); - } - } - return r; -} - -void -OBJfmtinstall(void) -{ - fmtinstall('O', OBJfmt); -} diff --git a/libobj/spec b/libobj/spec deleted file mode 100644 index a535f4b..0000000 --- a/libobj/spec +++ /dev/null @@ -1,2 +0,0 @@ -http://paulbourke.net/dataformats/obj -https://people.sc.fsu.edu/~jburkardt/data/obj/obj.html diff --git a/libobj/test/main.acid b/libobj/test/main.acid deleted file mode 100644 index 25a8f30..0000000 --- a/libobj/test/main.acid +++ /dev/null @@ -1,525 +0,0 @@ -sizeof_1_ = 8; -aggr _1_ -{ - 'U' 0 lo; - 'U' 4 hi; -}; - -defn -_1_(addr) { - complex _1_ addr; - print(" lo ", addr.lo, "\n"); - print(" hi ", addr.hi, "\n"); -}; - -sizeofFPdbleword = 8; -aggr FPdbleword -{ - 'F' 0 x; - { - 'U' 0 lo; - 'U' 4 hi; - }; -}; - -defn -FPdbleword(addr) { - complex FPdbleword addr; - print(" x ", addr.x, "\n"); - print("_1_ {\n"); - _1_(addr+0); - print("}\n"); -}; - -UTFmax = 4; -Runesync = 128; -Runeself = 128; -Runeerror = 65533; -Runemax = 1114111; -Runemask = 2097151; -sizeofFmt = 80; -aggr Fmt -{ - 'b' 0 runes; - 'Y' 8 start; - 'Y' 16 to; - 'Y' 24 stop; - 'Y' 32 flush; - 'Y' 40 farg; - 'D' 48 nfmt; - 'Y' 56 args; - 'D' 64 r; - 'D' 68 width; - 'D' 72 prec; - 'U' 76 flags; -}; - -defn -Fmt(addr) { - complex Fmt addr; - print(" runes ", addr.runes, "\n"); - print(" start ", addr.start\Y, "\n"); - print(" to ", addr.to\Y, "\n"); - print(" stop ", addr.stop\Y, "\n"); - print(" flush ", addr.flush\Y, "\n"); - print(" farg ", addr.farg\Y, "\n"); - print(" nfmt ", addr.nfmt, "\n"); - print(" args ", addr.args\Y, "\n"); - print(" r ", addr.r, "\n"); - print(" width ", addr.width, "\n"); - print(" prec ", addr.prec, "\n"); - print(" flags ", addr.flags, "\n"); -}; - -FmtWidth = 1; -FmtLeft = 2; -FmtPrec = 4; -FmtSharp = 8; -FmtSpace = 16; -FmtSign = 32; -FmtZero = 64; -FmtUnsigned = 128; -FmtShort = 256; -FmtLong = 512; -FmtVLong = 1024; -FmtComma = 2048; -FmtByte = 4096; -FmtFlag = 8192; -sizeofTm = 40; -aggr Tm -{ - 'D' 0 sec; - 'D' 4 min; - 'D' 8 hour; - 'D' 12 mday; - 'D' 16 mon; - 'D' 20 year; - 'D' 24 wday; - 'D' 28 yday; - 'a' 32 zone; - 'D' 36 tzoff; -}; - -defn -Tm(addr) { - complex Tm addr; - print(" sec ", addr.sec, "\n"); - print(" min ", addr.min, "\n"); - print(" hour ", addr.hour, "\n"); - print(" mday ", addr.mday, "\n"); - print(" mon ", addr.mon, "\n"); - print(" year ", addr.year, "\n"); - print(" wday ", addr.wday, "\n"); - print(" yday ", addr.yday, "\n"); - print(" zone ", addr.zone, "\n"); - print(" tzoff ", addr.tzoff, "\n"); -}; - -PNPROC = 1; -PNGROUP = 2; -Profoff = 0; -Profuser = 1; -Profkernel = 2; -Proftime = 3; -Profsample = 4; -sizeofLock = 8; -aggr Lock -{ - 'D' 0 val; -}; - -defn -Lock(addr) { - complex Lock addr; - print(" val ", addr.val, "\n"); -}; - -sizeofQLp = 16; -aggr QLp -{ - 'D' 0 inuse; - 'D' 4 state; - 'A' QLp 8 next; -}; - -defn -QLp(addr) { - complex QLp addr; - print(" inuse ", addr.inuse, "\n"); - print(" state ", addr.state, "\n"); - print(" next ", addr.next\Y, "\n"); -}; - -sizeofQLock = 32; -aggr QLock -{ - Lock 0 lock; - 'D' 8 locked; - 'A' QLp 16 $head; - 'A' QLp 24 $tail; -}; - -defn -QLock(addr) { - complex QLock addr; - print("Lock lock {\n"); - Lock(addr.lock); - print("}\n"); - print(" locked ", addr.locked, "\n"); - print(" $head ", addr.$head\Y, "\n"); - print(" $tail ", addr.$tail\Y, "\n"); -}; - -sizeofRWLock = 32; -aggr RWLock -{ - Lock 0 lock; - 'D' 8 readers; - 'D' 12 writer; - 'A' QLp 16 $head; - 'A' QLp 24 $tail; -}; - -defn -RWLock(addr) { - complex RWLock addr; - print("Lock lock {\n"); - Lock(addr.lock); - print("}\n"); - print(" readers ", addr.readers, "\n"); - print(" writer ", addr.writer, "\n"); - print(" $head ", addr.$head\Y, "\n"); - print(" $tail ", addr.$tail\Y, "\n"); -}; - -sizeofRendez = 24; -aggr Rendez -{ - 'A' QLock 0 l; - 'A' QLp 8 $head; - 'A' QLp 16 $tail; -}; - -defn -Rendez(addr) { - complex Rendez addr; - print(" l ", addr.l\Y, "\n"); - print(" $head ", addr.$head\Y, "\n"); - print(" $tail ", addr.$tail\Y, "\n"); -}; - -sizeofNetConnInfo = 72; -aggr NetConnInfo -{ - 'Y' 0 dir; - 'Y' 8 root; - 'Y' 16 spec; - 'Y' 24 lsys; - 'Y' 32 lserv; - 'Y' 40 rsys; - 'Y' 48 rserv; - 'Y' 56 laddr; - 'Y' 64 raddr; -}; - -defn -NetConnInfo(addr) { - complex NetConnInfo addr; - print(" dir ", addr.dir\Y, "\n"); - print(" root ", addr.root\Y, "\n"); - print(" spec ", addr.spec\Y, "\n"); - print(" lsys ", addr.lsys\Y, "\n"); - print(" lserv ", addr.lserv\Y, "\n"); - print(" rsys ", addr.rsys\Y, "\n"); - print(" rserv ", addr.rserv\Y, "\n"); - print(" laddr ", addr.laddr\Y, "\n"); - print(" raddr ", addr.raddr\Y, "\n"); -}; - -RFNAMEG = 1; -RFENVG = 2; -RFFDG = 4; -RFNOTEG = 8; -RFPROC = 16; -RFMEM = 32; -RFNOWAIT = 64; -RFCNAMEG = 1024; -RFCENVG = 2048; -RFCFDG = 4096; -RFREND = 8192; -RFNOMNT = 16384; -sizeofQid = 16; -aggr Qid -{ - 'W' 0 path; - 'U' 8 vers; - 'b' 12 type; -}; - -defn -Qid(addr) { - complex Qid addr; - print(" path ", addr.path, "\n"); - print(" vers ", addr.vers, "\n"); - print(" type ", addr.type, "\n"); -}; - -sizeofDir = 80; -aggr Dir -{ - 'u' 0 type; - 'U' 4 dev; - Qid 8 qid; - 'U' 24 mode; - 'U' 28 atime; - 'U' 32 mtime; - 'V' 40 length; - 'Y' 48 name; - 'Y' 56 uid; - 'Y' 64 gid; - 'Y' 72 muid; -}; - -defn -Dir(addr) { - complex Dir addr; - print(" type ", addr.type, "\n"); - print(" dev ", addr.dev, "\n"); - print("Qid qid {\n"); - Qid(addr.qid); - print("}\n"); - print(" mode ", addr.mode, "\n"); - print(" atime ", addr.atime, "\n"); - print(" mtime ", addr.mtime, "\n"); - print(" length ", addr.length, "\n"); - print(" name ", addr.name\Y, "\n"); - print(" uid ", addr.uid\Y, "\n"); - print(" gid ", addr.gid\Y, "\n"); - print(" muid ", addr.muid\Y, "\n"); -}; - -sizeofWaitmsg = 24; -aggr Waitmsg -{ - 'D' 0 pid; - 'a' 4 time; - 'Y' 16 msg; -}; - -defn -Waitmsg(addr) { - complex Waitmsg addr; - print(" pid ", addr.pid, "\n"); - print(" time ", addr.time, "\n"); - print(" msg ", addr.msg\Y, "\n"); -}; - -sizeofIOchunk = 16; -aggr IOchunk -{ - 'Y' 0 addr; - 'U' 8 len; -}; - -defn -IOchunk(addr) { - complex IOchunk addr; - print(" addr ", addr.addr\Y, "\n"); - print(" len ", addr.len, "\n"); -}; - -OBJVGeometric = 0; -OBJVTexture = 1; -OBJVNormal = 2; -OBJVParametric = 3; -OBJNVERT = 4; -OBJEPoint = 0; -OBJELine = 1; -OBJEFace = 2; -OBJECurve = 3; -OBJECurve2 = 4; -OBJESurface = 5; -OBJGGlobal = 0; -OBJGSmoothing = 1; -OBJGMerging = 2; -OBJGObject = 3; -OBJHTSIZE = 16; -sizeof_2_ = 32; -aggr _2_ -{ - 'F' 0 x; - 'F' 8 y; - 'F' 16 z; - 'F' 24 w; -}; - -defn -_2_(addr) { - complex _2_ addr; - print(" x ", addr.x, "\n"); - print(" y ", addr.y, "\n"); - print(" z ", addr.z, "\n"); - print(" w ", addr.w, "\n"); -}; - -sizeof_3_ = 24; -aggr _3_ -{ - 'F' 0 u; - 'F' 8 v; - 'F' 16 vv; -}; - -defn -_3_(addr) { - complex _3_ addr; - print(" u ", addr.u, "\n"); - print(" v ", addr.v, "\n"); - print(" vv ", addr.vv, "\n"); -}; - -sizeof_4_ = 24; -aggr _4_ -{ - 'F' 0 i; - 'F' 8 j; - 'F' 16 k; -}; - -defn -_4_(addr) { - complex _4_ addr; - print(" i ", addr.i, "\n"); - print(" j ", addr.j, "\n"); - print(" k ", addr.k, "\n"); -}; - -sizeof_5_ = 32; -aggr _5_ -{ - { - 'F' 0 x; - 'F' 8 y; - 'F' 16 z; - 'F' 24 w; - }; - { - 'F' 0 u; - 'F' 8 v; - 'F' 16 vv; - }; - { - 'F' 0 i; - 'F' 8 j; - 'F' 16 k; - }; -}; - -defn -_5_(addr) { - complex _5_ addr; - print("_2_ {\n"); - _2_(addr+0); - print("}\n"); - print("_3_ {\n"); - _3_(addr+0); - print("}\n"); - print("_4_ {\n"); - _4_(addr+0); - print("}\n"); -}; - -sizeofOBJVertex = 32; -aggr OBJVertex -{ - { - { - 'F' 0 x; - 'F' 8 y; - 'F' 16 z; - 'F' 24 w; - }; - { - 'F' 0 u; - 'F' 8 v; - 'F' 16 vv; - }; - { - 'F' 0 i; - 'F' 8 j; - 'F' 16 k; - }; - }; -}; - -defn -OBJVertex(addr) { - complex OBJVertex addr; - print("_5_ {\n"); - _5_(addr+0); - print("}\n"); -}; - -sizeofOBJVertexArray = 16; -aggr OBJVertexArray -{ - 'A' OBJVertex 0 verts; - 'D' 8 nvert; -}; - -defn -OBJVertexArray(addr) { - complex OBJVertexArray addr; - print(" verts ", addr.verts\Y, "\n"); - print(" nvert ", addr.nvert, "\n"); -}; - -sizeofOBJElem = 24; -aggr OBJElem -{ - 'Y' 0 indices; - 'D' 8 nindex; - 'D' 12 type; - 'A' OBJElem 16 next; -}; - -defn -OBJElem(addr) { - complex OBJElem addr; - print(" indices ", addr.indices\Y, "\n"); - print(" nindex ", addr.nindex, "\n"); - print(" type ", addr.type, "\n"); - print(" next ", addr.next\Y, "\n"); -}; - -sizeofOBJObject = 24; -aggr OBJObject -{ - 'Y' 0 name; - 'A' OBJElem 8 child; - 'A' OBJObject 16 next; -}; - -defn -OBJObject(addr) { - complex OBJObject addr; - print(" name ", addr.name\Y, "\n"); - print(" child ", addr.child\Y, "\n"); - print(" next ", addr.next\Y, "\n"); -}; - -sizeofOBJ = 192; -aggr OBJ -{ - 'a' 0 vertdata; - 'a' 64 objtab; -}; - -defn -OBJ(addr) { - complex OBJ addr; - print(" vertdata ", addr.vertdata, "\n"); - print(" objtab ", addr.objtab, "\n"); -}; - -complex OBJ main:obj; diff --git a/libobj/test/main.c b/libobj/test/main.c deleted file mode 100644 index 1a60b42..0000000 --- a/libobj/test/main.c +++ /dev/null @@ -1,35 +0,0 @@ -#include <u.h> -#include <libc.h> -#include "../../obj.h" - -static char fd0[] = "/fd/0"; - -void -usage(void) -{ - fprint(2, "usage: %s [file]\n", argv0); - exits("usage"); -} - -void -main(int argc, char *argv[]) -{ - OBJ *obj; - char *f; - - f = fd0; - OBJfmtinstall(); - ARGBEGIN{ - default: usage(); - }ARGEND; - if(argc > 1) - usage(); - if(argc == 1) - f = argv[0]; - obj = objparse(f); - if(obj == nil) - sysfatal("objparse: %r"); - print("%O\n", obj); - objfree(obj); - exits(0); -} diff --git a/libobj/test/mkfile b/libobj/test/mkfile deleted file mode 100644 index 2f4895c..0000000 --- a/libobj/test/mkfile +++ /dev/null @@ -1,21 +0,0 @@ -</$objtype/mkfile - -BIN=$home/$objtype/bin -TARG=objtest -OFILES=\ - main.$O\ - -HFILES=../../obj.h - -LIB=\ - ../../libobj.a$O\ - -</sys/src/cmd/mkone - -../../libobj.a$O: - cd .. - mk install - -clean nuke:V: - rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG - @{cd ..; mk $target} @@ -788,6 +788,162 @@ complex Display display; complex Font font; complex Image screen; complex Screen _screen; +sizeofMemdata = 40; +aggr Memdata +{ + 'Y' 0 base; + 'Y' 8 bdata; + 'D' 16 ref; + 'Y' 24 imref; + 'D' 32 allocd; +}; + +defn +Memdata(addr) { + complex Memdata addr; + print(" base ", addr.base\Y, "\n"); + print(" bdata ", addr.bdata\Y, "\n"); + print(" ref ", addr.ref, "\n"); + print(" imref ", addr.imref\Y, "\n"); + print(" allocd ", addr.allocd, "\n"); +}; + +Frepl = 1; +Fsimple = 2; +Fgrey = 4; +Falpha = 8; +Fcmap = 16; +Fbytes = 32; +sizeofMemimage = 168; +aggr Memimage +{ + Rectangle 0 r; + Rectangle 16 clipr; + 'D' 32 depth; + 'D' 36 nchan; + 'U' 40 chan; + 'Y' 48 cmap; + 'A' Memdata 56 data; + 'D' 64 zero; + 'U' 68 width; + 'Y' 72 layer; + 'U' 80 flags; + 'a' 84 shift; + 'a' 112 mask; + 'a' 140 nbits; +}; + +defn +Memimage(addr) { + complex Memimage addr; + print("Rectangle r {\n"); + Rectangle(addr.r); + print("}\n"); + print("Rectangle clipr {\n"); + Rectangle(addr.clipr); + print("}\n"); + print(" depth ", addr.depth, "\n"); + print(" nchan ", addr.nchan, "\n"); + print(" chan ", addr.chan, "\n"); + print(" cmap ", addr.cmap\Y, "\n"); + print(" data ", addr.data\Y, "\n"); + print(" zero ", addr.zero, "\n"); + print(" width ", addr.width, "\n"); + print(" layer ", addr.layer\Y, "\n"); + print(" flags ", addr.flags, "\n"); + print(" shift ", addr.shift, "\n"); + print(" mask ", addr.mask, "\n"); + print(" nbits ", addr.nbits, "\n"); +}; + +sizeofMemcmap = 4864; +aggr Memcmap +{ + 'a' 0 cmap2rgb; + 'a' 768 rgb2cmap; +}; + +defn +Memcmap(addr) { + complex Memcmap addr; + print(" cmap2rgb ", addr.cmap2rgb, "\n"); + print(" rgb2cmap ", addr.rgb2cmap, "\n"); +}; + +sizeofMemsubfont = 32; +aggr Memsubfont +{ + 'Y' 0 name; + 'd' 8 n; + 'b' 10 height; + 'C' 11 ascent; + 'A' Fontchar 16 info; + 'A' Memimage 24 bits; +}; + +defn +Memsubfont(addr) { + complex Memsubfont addr; + print(" name ", addr.name\Y, "\n"); + print(" n ", addr.n, "\n"); + print(" height ", addr.height, "\n"); + print(" ascent ", addr.ascent, "\n"); + print(" info ", addr.info\Y, "\n"); + print(" bits ", addr.bits\Y, "\n"); +}; + +Simplesrc = 1; +Simplemask = 2; +Replsrc = 4; +Replmask = 8; +Fullmask = 16; +sizeofMemdrawparam = 104; +aggr Memdrawparam +{ + 'A' Memimage 0 dst; + Rectangle 8 r; + 'A' Memimage 24 src; + Rectangle 32 sr; + 'A' Memimage 48 mask; + Rectangle 56 mr; + 'D' 72 op; + 'U' 76 state; + 'U' 80 mval; + 'U' 84 mrgba; + 'U' 88 sval; + 'U' 92 srgba; + 'U' 96 sdval; +}; + +defn +Memdrawparam(addr) { + complex Memdrawparam addr; + print(" dst ", addr.dst\Y, "\n"); + print("Rectangle r {\n"); + Rectangle(addr.r); + print("}\n"); + print(" src ", addr.src\Y, "\n"); + print("Rectangle sr {\n"); + Rectangle(addr.sr); + print("}\n"); + print(" mask ", addr.mask\Y, "\n"); + print("Rectangle mr {\n"); + Rectangle(addr.mr); + print("}\n"); + print(" op ", addr.op, "\n"); + print(" state ", addr.state, "\n"); + print(" mval ", addr.mval, "\n"); + print(" mrgba ", addr.mrgba, "\n"); + print(" sval ", addr.sval, "\n"); + print(" srgba ", addr.srgba, "\n"); + print(" sdval ", addr.sdval, "\n"); +}; + +complex Memimage memwhite; +complex Memimage memblack; +complex Memimage memopaque; +complex Memimage memtransparent; +complex Memcmap memdefcmap; sizeofMouse = 24; aggr Mouse { @@ -963,51 +1119,51 @@ Quaternion(addr) { print(" k ", addr.k, "\n"); }; -sizeofReferenceFrame = 72; -aggr ReferenceFrame +sizeofRFrame = 72; +aggr RFrame { Point2 0 p; - Point2 24 xb; - Point2 48 yb; + Point2 24 bx; + Point2 48 by; }; defn -ReferenceFrame(addr) { - complex ReferenceFrame addr; +RFrame(addr) { + complex RFrame addr; print("Point2 p {\n"); Point2(addr.p); print("}\n"); - print("Point2 xb {\n"); - Point2(addr.xb); + print("Point2 bx {\n"); + Point2(addr.bx); print("}\n"); - print("Point2 yb {\n"); - Point2(addr.yb); + print("Point2 by {\n"); + Point2(addr.by); print("}\n"); }; -sizeofReferenceFrame3 = 128; -aggr ReferenceFrame3 +sizeofRFrame3 = 128; +aggr RFrame3 { Point3 0 p; - Point3 32 xb; - Point3 64 yb; - Point3 96 zb; + Point3 32 bx; + Point3 64 by; + Point3 96 bz; }; defn -ReferenceFrame3(addr) { - complex ReferenceFrame3 addr; +RFrame3(addr) { + complex RFrame3 addr; print("Point3 p {\n"); Point3(addr.p); print("}\n"); - print("Point3 xb {\n"); - Point3(addr.xb); + print("Point3 bx {\n"); + Point3(addr.bx); print("}\n"); - print("Point3 yb {\n"); - Point3(addr.yb); + print("Point3 by {\n"); + Point3(addr.by); print("}\n"); - print("Point3 zb {\n"); - Point3(addr.zb); + print("Point3 bz {\n"); + Point3(addr.bz); print("}\n"); }; @@ -1053,101 +1209,325 @@ Vertex(addr) { print("}\n"); }; -sizeofTriangle = 24; -aggr Triangle +sizeofViewport = 80; +aggr Viewport { - Point 0 p0; - Point 8 p1; - Point 16 p2; + { + Point2 0 p; + Point2 24 bx; + Point2 48 by; + }; + 'A' Memimage 72 fb; }; defn -Triangle(addr) { - complex Triangle addr; - print("Point p0 {\n"); - Point(addr.p0); - print("}\n"); - print("Point p1 {\n"); - Point(addr.p1); - print("}\n"); - print("Point p2 {\n"); - Point(addr.p2); +Viewport(addr) { + complex Viewport addr; + print("RFrame {\n"); + RFrame(addr+0); print("}\n"); + print(" fb ", addr.fb\Y, "\n"); +}; + +sizeofCamera = 384; +aggr Camera +{ + { + Point3 0 p; + Point3 32 bx; + Point3 64 by; + Point3 96 bz; + }; + Viewport 128 viewport; + 'F' 208 fov; + 'F' 216 clipn; + 'F' 224 clipf; + 'a' 232 proj; + 'D' 360 ptype; + 'Y' 368 updatefb; + 'Y' 376 develop; }; -sizeof_2_ = 16; +defn +Camera(addr) { + complex Camera addr; + print("RFrame3 {\n"); + RFrame3(addr+0); + print("}\n"); + print("Viewport viewport {\n"); + Viewport(addr.viewport); + print("}\n"); + print(" fov ", addr.fov, "\n"); + print(" clipn ", addr.clipn, "\n"); + print(" clipf ", addr.clipf, "\n"); + print(" proj ", addr.proj, "\n"); + print(" ptype ", addr.ptype, "\n"); + print(" updatefb ", addr.updatefb\Y, "\n"); + print(" develop ", addr.develop\Y, "\n"); +}; + +OBJVGeometric = 0; +OBJVTexture = 1; +OBJVNormal = 2; +OBJVParametric = 3; +OBJNVERT = 4; +OBJEPoint = 0; +OBJELine = 1; +OBJEFace = 2; +OBJECurve = 3; +OBJECurve2 = 4; +OBJESurface = 5; +OBJGGlobal = 0; +OBJGSmoothing = 1; +OBJGMerging = 2; +OBJHTSIZE = 17; +sizeof_2_ = 32; aggr _2_ { - 'F' 0 n; - 'F' 8 f; + 'F' 0 x; + 'F' 8 y; + 'F' 16 z; + 'F' 24 w; }; defn _2_(addr) { complex _2_ addr; - print(" n ", addr.n, "\n"); - print(" f ", addr.f, "\n"); + print(" x ", addr.x, "\n"); + print(" y ", addr.y, "\n"); + print(" z ", addr.z, "\n"); + print(" w ", addr.w, "\n"); }; -sizeofCamera = 296; -aggr Camera +sizeof_3_ = 24; +aggr _3_ +{ + 'F' 0 u; + 'F' 8 v; + 'F' 16 vv; +}; + +defn +_3_(addr) { + complex _3_ addr; + print(" u ", addr.u, "\n"); + print(" v ", addr.v, "\n"); + print(" vv ", addr.vv, "\n"); +}; + +sizeof_4_ = 24; +aggr _4_ +{ + 'F' 0 i; + 'F' 8 j; + 'F' 16 k; +}; + +defn +_4_(addr) { + complex _4_ addr; + print(" i ", addr.i, "\n"); + print(" j ", addr.j, "\n"); + print(" k ", addr.k, "\n"); +}; + +sizeof_5_ = 32; +aggr _5_ { { - Point3 0 p; - Point3 32 xb; - Point3 64 yb; - Point3 96 zb; + 'F' 0 x; + 'F' 8 y; + 'F' 16 z; + 'F' 24 w; + }; + { + 'F' 0 u; + 'F' 8 v; + 'F' 16 vv; + }; + { + 'F' 0 i; + 'F' 8 j; + 'F' 16 k; }; - 'A' Image 128 viewport; - 'F' 136 fov; - _2_ 144 clip; - 'D' 160 ptype; - 'a' 168 proj; }; defn -Camera(addr) { - complex Camera addr; - print("ReferenceFrame3 {\n"); - ReferenceFrame3(addr+0); +_5_(addr) { + complex _5_ addr; + print("_2_ {\n"); + _2_(addr+0); print("}\n"); - print(" viewport ", addr.viewport\Y, "\n"); - print(" fov ", addr.fov, "\n"); - print("_2_ clip {\n"); - _2_(addr.clip); + print("_3_ {\n"); + _3_(addr+0); print("}\n"); - print(" ptype ", addr.ptype, "\n"); - print(" proj ", addr.proj, "\n"); + print("_4_ {\n"); + _4_(addr+0); + print("}\n"); +}; + +sizeofOBJVertex = 32; +aggr OBJVertex +{ + { + { + 'F' 0 x; + 'F' 8 y; + 'F' 16 z; + 'F' 24 w; + }; + { + 'F' 0 u; + 'F' 8 v; + 'F' 16 vv; + }; + { + 'F' 0 i; + 'F' 8 j; + 'F' 16 k; + }; + }; +}; + +defn +OBJVertex(addr) { + complex OBJVertex addr; + print("_5_ {\n"); + _5_(addr+0); + print("}\n"); +}; + +sizeofOBJVertexArray = 16; +aggr OBJVertexArray +{ + 'A' OBJVertex 0 verts; + 'D' 8 nvert; +}; + +defn +OBJVertexArray(addr) { + complex OBJVertexArray addr; + print(" verts ", addr.verts\Y, "\n"); + print(" nvert ", addr.nvert, "\n"); +}; + +sizeofOBJElem = 24; +aggr OBJElem +{ + 'Y' 0 indices; + 'D' 8 nindex; + 'D' 12 type; + 'A' OBJElem 16 next; +}; + +defn +OBJElem(addr) { + complex OBJElem addr; + print(" indices ", addr.indices\Y, "\n"); + print(" nindex ", addr.nindex, "\n"); + print(" type ", addr.type, "\n"); + print(" next ", addr.next\Y, "\n"); +}; + +sizeofOBJObject = 24; +aggr OBJObject +{ + 'Y' 0 name; + 'A' OBJElem 8 child; + 'A' OBJObject 16 next; +}; + +defn +OBJObject(addr) { + complex OBJObject addr; + print(" name ", addr.name\Y, "\n"); + print(" child ", addr.child\Y, "\n"); + print(" next ", addr.next\Y, "\n"); }; -STACK = 8192; -SEC = 1000; -FPS = 60; +sizeofOBJ = 200; +aggr OBJ +{ + 'a' 0 vertdata; + 'a' 64 objtab; +}; + +defn +OBJ(addr) { + complex OBJ addr; + print(" vertdata ", addr.vertdata, "\n"); + print(" objtab ", addr.objtab, "\n"); +}; + +K↑ = 0; +K↓ = 1; +K← = 2; +K→ = 3; +Krise = 4; +Kfall = 5; +KR↑ = 6; +KR↓ = 7; +KR← = 8; +KR→ = 9; +KR↺ = 10; +KR↻ = 11; +Kcam0 = 12; +Kcam1 = 13; +Kcam2 = 14; +Kcam3 = 15; +Kscrshot = 16; +Ke = 17; Scamno = 0; -Scampos = 1; -Scambs = 2; -Sfov = 3; -Se = 4; +Sfov = 1; +Scampos = 2; +Scambx = 3; +Scamby = 4; +Scambz = 5; +Se = 6; +sizeofCamcfg = 128; +aggr Camcfg +{ + Point3 0 p; + Point3 32 lookat; + Point3 64 up; + 'F' 96 fov; + 'F' 104 clipn; + 'F' 112 clipf; + 'D' 120 ptype; +}; + +defn +Camcfg(addr) { + complex Camcfg addr; + print("Point3 p {\n"); + Point3(addr.p); + print("}\n"); + print("Point3 lookat {\n"); + Point3(addr.lookat); + print("}\n"); + print("Point3 up {\n"); + Point3(addr.up); + print("}\n"); + print(" fov ", addr.fov, "\n"); + print(" clipn ", addr.clipn, "\n"); + print(" clipf ", addr.clipf, "\n"); + print(" ptype ", addr.ptype, "\n"); +}; + complex Mousectl mctl; -complex Keyboardctl kctl; -complex ReferenceFrame scrrf; -complex RWLock worldlock; -complex Triangle3 tri; -complex Camera cam0; -complex Camera cam1; -complex Camera cam2; -complex Camera cam3; +complex Channel drawc; complex Camera maincam; complex Fmt vfmt:f; complex Point2 vfmt:p; complex Fmt Vfmt:f; complex Point3 Vfmt:p; -complex Point3 flatten:p; -complex Point2 toscreen:p; -complex Point fromscreen:p; -complex Triangle redraw:trit; -complex Quaternion key:q; -complex Quaternion key:qtmp; +complex Triangle3 depthcmp:ta; +complex Triangle3 depthcmp:tb; +complex Point3 drawaxis:op; +complex Point3 drawaxis:px; +complex Point3 drawaxis:py; +complex Point3 drawaxis:pz; +complex OBJ threadmain:objmesh; MOUSE = 0; -KBD = 1; -RESIZE = 2; +RESIZE = 1; +DRAW = 2; @@ -2,16 +2,16 @@ #include <libc.h> #include <thread.h> #include <draw.h> +#include <memdraw.h> #include <mouse.h> #include <keyboard.h> -#include "geometry.h" -#include "graphics.h" -#include "obj.h" +#include <geometry.h> +#include <graphics.h> +#include <obj.h> #include "dat.h" #include "fns.h" typedef struct Camcfg Camcfg; - struct Camcfg { Point3 p, lookat, up; @@ -46,21 +46,28 @@ Channel *drawc; int kdown; vlong t0, t; double Δt; -//Mesh model; char *mdlpath = "../threedee/mdl/rocket.obj"; -Camera *cams[4], *maincam; +Camera cams[4], *maincam; Camcfg camcfgs[4] = { - Pt3(2,0,-4,1), Pt3(0,0,0,1), Vec3(0,1,0), + 2,0,-4,1, + 0,0,0,1, + 0,1,0,0, 90, 0.1, 100, Ppersp, - Pt3(-2,0,-4,1), Pt3(0,0,0,1), Vec3(0,1,0), + -2,0,-4,1, + 0,0,0,1, + 0,1,0,0, 120, 0.1, 100, Ppersp, - Pt3(-2,0,4,1), Pt3(0,0,0,1), Vec3(0,1,0), + -2,0,4,1, + 0,0,0,1, + 0,1,0,0, 90, 0.1, 100, Ppersp, - Pt3(2,0,4,1), Pt3(0,0,0,1), Vec3(0,1,0), + 2,0,4,1, + 0,0,0,1, + 0,1,0,0, 120, 0.1, 100, Ppersp }; @@ -114,8 +121,8 @@ depthcmp(void *a, void *b) Triangle3 *ta, *tb; double za, zb; - ta = (Triangle3 *)a; - tb = (Triangle3 *)b; + ta = (Triangle3*)a; + tb = (Triangle3*)b; za = (ta->p0.z + ta->p1.z + ta->p2.z)/3; zb = (tb->p0.z + tb->p1.z + tb->p2.z)/3; return zb-za; @@ -124,10 +131,10 @@ depthcmp(void *a, void *b) void drawaxis(void) { - Point3 op = (Point3){0, 0, 0, 1}, - px = (Point3){1, 0, 0, 1}, - py = (Point3){0, 1, 0, 1}, - pz = (Point3){0, 0, 1, 1}; + Point3 op = Pt3(0,0,0,1), + px = Pt3(1,0,0,1), + py = Pt3(0,1,0,1), + pz = Pt3(0,0,1,1); line3(maincam, op, px, 0, Endarrow, display->black); string3(maincam, px, display->black, font, "x"); @@ -142,14 +149,14 @@ drawstats(void) { int i; - snprint(stats[Scamno], sizeof(stats[Scamno]), "CAM %lld", maincam-cams[0]+1); + snprint(stats[Scamno], sizeof(stats[Scamno]), "CAM %lld", maincam-cams+1); snprint(stats[Sfov], sizeof(stats[Sfov]), "FOV %g°", maincam->fov); snprint(stats[Scampos], sizeof(stats[Scampos]), "%V", maincam->p); snprint(stats[Scambx], sizeof(stats[Scambx]), "bx %V", maincam->bx); snprint(stats[Scamby], sizeof(stats[Scamby]), "by %V", maincam->by); snprint(stats[Scambz], sizeof(stats[Scambz]), "bz %V", maincam->bz); for(i = 0; i < Se; i++) - stringn(maincam->viewport, addpt(screen->r.min, Pt(10,10 + i*font->height)), display->black, ZP, font, stats[i], sizeof(stats[i])); + string(screen, addpt(screen->r.min, Pt(10,10 + i*font->height)), display->black, ZP, font, stats[i]); } void @@ -184,7 +191,7 @@ redraw(void) // /* clipping */ // /* // * no clipping for now, the whole triangle is ignored -// * if any of its vertices gets outside the fustrum. +// * if any of its vertices gets outside the frustum. // */ // if(isclipping(tmp.p0) || isclipping(tmp.p1) || isclipping(tmp.p2)) // continue; @@ -198,6 +205,7 @@ redraw(void) // nvistri++; // } // qsort(vistris, nvistri, sizeof(TTriangle3), depthcmp); + lockdisplay(display); draw(maincam->viewport, maincam->viewport->r, display->white, nil, ZP); drawaxis(); @@ -332,13 +340,13 @@ handlekeys(void) if(kdown & 1<<KR↻) placecamera(maincam, maincam->p, maincam->bz, qrotate(maincam->by, maincam->bz, -5*DEG)); if(kdown & 1<<Kcam0) - maincam = cams[0]; + maincam = &cams[0]; if(kdown & 1<<Kcam1) - maincam = cams[1]; + maincam = &cams[1]; if(kdown & 1<<Kcam2) - maincam = cams[2]; + maincam = &cams[2]; if(kdown & 1<<Kcam3) - maincam = cams[3]; + maincam = &cams[3]; if(kdown & 1<<Kscrshot) screenshot(); } @@ -350,7 +358,8 @@ resize(void) if(getwindow(display, Refnone) < 0) fprint(2, "can't reattach to window\n"); unlockdisplay(display); - maincam->updatefb(maincam, screen->r, screen->chan); + maincam->viewport = screen; + reloadcamera(maincam); } void @@ -381,11 +390,10 @@ threadmain(int argc, char *argv[]) if((mctl = initmouse(nil, screen)) == nil) sysfatal("initmouse: %r"); for(i = 0; i < nelem(cams); i++){ - cams[i] = alloccamera(screen->r, screen->chan); - placecamera(cams[i], camcfgs[i].p, camcfgs[i].lookat, camcfgs[i].up); - configcamera(cams[i], camcfgs[i].fov, camcfgs[i].clipn, camcfgs[i].clipf, camcfgs[i].ptype); + placecamera(&cams[i], camcfgs[i].p, camcfgs[i].lookat, camcfgs[i].up); + configcamera(&cams[i], screen, camcfgs[i].fov, camcfgs[i].clipn, camcfgs[i].clipf, camcfgs[i].ptype); } - maincam = cams[0]; + maincam = &cams[0]; if((objmesh = objparse(mdlpath)) == nil) sysfatal("objparse: %r"); drawc = chancreate(1, 0); @@ -5,29 +5,35 @@ TARG=3d OFILES=\ main.$O\ -HFILES=geometry.h graphics.h obj.h dat.h fns.h +HFILES=libgeometry/geometry.h\ + libgraphics/graphics.h\ + libobj/obj.h\ + dat.h\ + fns.h\ LIB=\ - libgeometry.a$O\ - libgraphics.a$O\ - libobj.a$O + libobj/libobj.a$O\ + libgraphics/libgraphics.a$O\ + libgeometry/libgeometry.a$O\ + +CFLAGS=$CFLAGS -I. -Ilibgeometry -Ilibgraphics -Ilibobj </sys/src/cmd/mkone -libgeometry.a$O: +libgeometry/libgeometry.a$O: cd libgeometry mk install -libgraphics.a$O: +libgraphics/libgraphics.a$O: cd libgraphics mk install -libobj.a$O: +libobj/libobj.a$O: cd libobj mk install clean nuke:V: - rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG + rm -f *.[$OS] [$OS].out $TARG @{cd libgeometry; mk $target} @{cd libgraphics; mk $target} @{cd libobj; mk $target} @@ -1,92 +0,0 @@ -/* vertex types */ -enum { - OBJVGeometric, - OBJVTexture, - OBJVNormal, - OBJVParametric, - OBJNVERT -}; -/* element types */ -enum { - OBJEPoint, - OBJELine, - OBJEFace, - OBJECurve, - OBJECurve2, - OBJESurface -}; -/* grouping types */ -enum { - OBJGGlobal, - OBJGSmoothing, - OBJGMerging -}; -/* object hash table size */ -enum { - OBJHTSIZE = 17 -}; - -typedef struct OBJVertex OBJVertex; -typedef struct OBJVertexArray OBJVertexArray; -typedef struct OBJElem OBJElem; -//typedef struct OBJGroup OBJGroup; -typedef struct OBJObject OBJObject; -typedef struct OBJ OBJ; - -#pragma varargck type "O" OBJ* - -struct OBJVertex -{ - union { - struct { double x, y, z, w; }; /* geometric */ - struct { double u, v, vv; }; /* texture and parametric */ - struct { double i, j, k; }; /* normal */ - }; -}; - -struct OBJVertexArray -{ - OBJVertex *verts; - int nvert; -}; - -struct OBJElem -{ - int *indices; - int nindex; - int type; - OBJElem *next; -}; - -//struct OBJGroup -//{ -// char *name; -// int type; -// OBJElem *elem0; -// OBJGroup *next; -//}; -//struct OBJObject -//{ -// char *name; -// OBJGroup *grptab[OBJHTSIZE]; -// OBJObject *next; -//}; - -struct OBJObject -{ - char *name; - OBJElem *child; - OBJObject *next; -}; - -struct OBJ -{ - OBJVertexArray vertdata[OBJNVERT]; - OBJObject *objtab[OBJHTSIZE]; -}; - -OBJ *objparse(char*); -void objfree(OBJ*); - -int OBJfmt(Fmt*); -void OBJfmtinstall(void); |