# HG changeset patch # User kazz # Date 1296539096 -32400 # Node ID edf80c055589598552b38187a2ce4ed628616024 # Parent 7e112b536f0a4d1497118b8acc2ab50a56fcda48 kinect run on Cerium diff -r 7e112b536f0a -r edf80c055589 KinectTrack.cc --- a/KinectTrack.cc Tue Feb 01 06:37:06 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -#include -#include - -#include "KinectTrack.h" - -#define N_COLORS 6 - -XnVPointDrawer::XnVPointDrawer(XnUInt32 nHistory, xn::DepthGenerator depthGenerator) : - XnVPointControl("XnVPointDrawer"), - mNHistorySize(nHistory), mDepthGenerator(depthGenerator), mBDrawDM(false), mBFrameID(false) { - mPFPositionBuffer = new XnFloat[nHistory*3]; -} - -XnVPointDrawer::~XnVPointDrawer() { - std::map >::iterator iter; - for (iter = mHistory.begin(); iter != mHistory.end(); ++iter) - { - iter->second.clear(); - } - mHistory.clear(); - - delete []mPFPositionBuffer; -} - -void XnVPointDrawer::setDepthMap(XnBool bDrawDM) { - mBDrawDM = bDrawDM; -} - -void XnVPointDrawer::Update(XnVMessage* pMessage) { - // PointControl's Update calls all callbacks for each hand - XnVPointControl::Update(pMessage); - - if (mBDrawDM) - { - // Draw depth map - xn::DepthMetaData depthMD; - mDepthGenerator.GetMetaData(depthMD); - //drawDepthMap(depthMD); - } - if (mBFrameID) - { - // Print out frame ID - xn::DepthMetaData depthMD; - mDepthGenerator.GetMetaData(depthMD); - //DrawFrameID(depthMD.FrameID()); - } - - // Draw hands - Draw(); -} - -int XnVPointDrawer::getPosition(float &x, float &y, float &z) const { - std::map >::const_iterator itr; - itr = mHistory.begin(); - if (itr == mHistory.end()) return -1; - std::list::const_iterator itr2; - itr2 = itr->second.begin(); - if (itr2 == itr->second.end()) return -1; - XnPoint3D pt(*itr2); - x = pt.X; - y = pt.Y; - z = pt.Z; - return 1; -} -void XnVPointDrawer::Draw() const { - std::map >::const_iterator itr; - itr = mHistory.begin(); - if (itr == mHistory.end()) return; - std::list::const_iterator itr2; - itr2 = itr->second.begin(); - if (itr2 == itr->second.end()) return; - XnPoint3D pt(*itr2); -// printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z); - - - // std::map >::const_iterator PointIterator; - - // // Go over each existing hand - // for (PointIterator = mHistory.begin(); - // PointIterator != mHistory.end(); - // ++PointIterator) - // { - // // Clear buffer - // XnUInt32 nPoints = 0; - // XnUInt32 i = 0; - // XnUInt32 Id = PointIterator->first; - - // // Go over all previous positions of current hand - // std::list::const_iterator PositionIterator; - // for (PositionIterator = PointIterator->second.begin(); - // PositionIterator != PointIterator->second.end(); - // ++PositionIterator, ++i) - // { - // // Add position to buffer - // XnPoint3D pt(*PositionIterator); - // printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z); - // mPFPositionBuffer[3*i] = pt.X; - // mPFPositionBuffer[3*i + 1] = pt.Y; - // mPFPositionBuffer[3*i + 2] = 0;//pt.Z(); - // break; - // } - - // // Set color - // XnUInt32 nColor = Id % N_COLORS; - // //XnUInt32 nSingle = GetPrimaryID(); - // if (Id == GetPrimaryID()) - // nColor = 6; - // } -} - -static XnBool bShouldPrint = false; -void XnVPointDrawer::OnPointCreate(const XnVHandPointContext* cxt) -{ - printf("** %d\n", cxt->nID); - // Create entry for the hand - mHistory[cxt->nID].clear(); - bShouldPrint = true; - OnPointUpdate(cxt); - bShouldPrint = true; -} -// Handle new position of an existing hand -void XnVPointDrawer::OnPointUpdate(const XnVHandPointContext* cxt) -{ - // positions are kept in projective coordinates, since they are only used for drawing - XnPoint3D ptProjective(cxt->ptPosition); - - if (bShouldPrint)printf("Point (%f,%f,%f)", ptProjective.X, ptProjective.Y, ptProjective.Z); - mDepthGenerator.ConvertRealWorldToProjective(1, &ptProjective, &ptProjective); - if (bShouldPrint)printf(" -> (%f,%f,%f)\n", ptProjective.X, ptProjective.Y, ptProjective.Z); - - // Add new position to the history buffer - mHistory[cxt->nID].push_front(ptProjective); - // Keep size of history buffer - if (mHistory[cxt->nID].size() > mNHistorySize) - mHistory[cxt->nID].pop_back(); - bShouldPrint = false; -} - -// Handle destruction of an existing hand -void XnVPointDrawer::OnPointDestroy(XnUInt32 nID) -{ - // No need for the history buffer - mHistory.erase(nID); -} diff -r 7e112b536f0a -r edf80c055589 KinectTrack.h --- a/KinectTrack.h Tue Feb 01 06:37:06 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -#include -#include -#include -#include - -typedef enum { - IN_SESSION, - NOT_IN_SESSION, - QUICK_REFOCUS -} SessionState; - -class NIState { -public: - static SessionState gSessionState; - static XnBool gBDrawDepthMap; - static void XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt); - static void XN_CALLBACK_TYPE sessionEnding(void *userCxt); - static void XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition, - XnFloat fProgress, void *userCxt); - static void XN_CALLBACK_TYPE noHands(void *UserCxt); -}; - -class XnVPointDrawer : public XnVPointControl { -public: - XnVPointDrawer(XnUInt32 nHistorySize, xn::DepthGenerator depthGenerator); - virtual ~XnVPointDrawer(); - void Update(XnVMessage *pMessage); - void OnPointCreate(const XnVHandPointContext *cxt); - void OnPointUpdate(const XnVHandPointContext *cxt); - void OnPointDestroy(XnUInt32 nID); - void Draw() const; - void setDepthMap(XnBool bDrawDM); - void setFrameID(XnBool bFrameID); - int getPosition(float &x, float &y, float &z) const; -protected: - XnUInt32 mNHistorySize; - std::map > mHistory; - xn::DepthGenerator mDepthGenerator; - XnFloat *mPFPositionBuffer; - XnBool mBDrawDM; - XnBool mBFrameID; -}; diff -r 7e112b536f0a -r edf80c055589 Makefile --- a/Makefile Tue Feb 01 06:37:06 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -CC = g++ -CFLAGS = -Wall -g -O2 -INCLUDE = -I/usr/include/ni -I/usr/include/nite -LIBS = -lOpenNI -lXnVNite -OBJS = main.o KinectTrack.o -TARGET = kinect - -.SUFFIXES: .cc .o - -all: $(OBJS) - $(CC) $(CFLAGS) $(INCLUDE) $(LIBS) $(OBJS) -o $(TARGET) -.cc.o: - $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ -clean: - rm *.o - rm $(TARGET) diff -r 7e112b536f0a -r edf80c055589 example/KinectTrack.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/KinectTrack.cc Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,144 @@ +#include +#include + +#include "kinect.h" + +#define N_COLORS 6 + +XnVPointDrawer::XnVPointDrawer(XnUInt32 nHistory, xn::DepthGenerator depthGenerator) : + XnVPointControl("XnVPointDrawer"), + mNHistorySize(nHistory), mDepthGenerator(depthGenerator), mBDrawDM(false), mBFrameID(false) { + mPFPositionBuffer = new XnFloat[nHistory*3]; +} + +XnVPointDrawer::~XnVPointDrawer() { + std::map >::iterator iter; + for (iter = mHistory.begin(); iter != mHistory.end(); ++iter) + { + iter->second.clear(); + } + mHistory.clear(); + + delete []mPFPositionBuffer; +} + +void XnVPointDrawer::setDepthMap(XnBool bDrawDM) { + mBDrawDM = bDrawDM; +} + +void XnVPointDrawer::Update(XnVMessage* pMessage) { + // PointControl's Update calls all callbacks for each hand + XnVPointControl::Update(pMessage); + + if (mBDrawDM) + { + // Draw depth map + xn::DepthMetaData depthMD; + mDepthGenerator.GetMetaData(depthMD); + //drawDepthMap(depthMD); + } + if (mBFrameID) + { + // Print out frame ID + xn::DepthMetaData depthMD; + mDepthGenerator.GetMetaData(depthMD); + //DrawFrameID(depthMD.FrameID()); + } + + // Draw hands + Draw(); +} + +int XnVPointDrawer::getPosition(float &x, float &y, float &z) const { + std::map >::const_iterator itr; + itr = mHistory.begin(); + if (itr == mHistory.end()) return -1; + std::list::const_iterator itr2; + itr2 = itr->second.begin(); + if (itr2 == itr->second.end()) return -1; + XnPoint3D pt(*itr2); + x = pt.X; + y = pt.Y; + z = pt.Z; + return 1; +} +void XnVPointDrawer::Draw() const { + std::map >::const_iterator itr; + itr = mHistory.begin(); + if (itr == mHistory.end()) return; + std::list::const_iterator itr2; + itr2 = itr->second.begin(); + if (itr2 == itr->second.end()) return; + XnPoint3D pt(*itr2); +// printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z); + + + // std::map >::const_iterator PointIterator; + + // // Go over each existing hand + // for (PointIterator = mHistory.begin(); + // PointIterator != mHistory.end(); + // ++PointIterator) + // { + // // Clear buffer + // XnUInt32 nPoints = 0; + // XnUInt32 i = 0; + // XnUInt32 Id = PointIterator->first; + + // // Go over all previous positions of current hand + // std::list::const_iterator PositionIterator; + // for (PositionIterator = PointIterator->second.begin(); + // PositionIterator != PointIterator->second.end(); + // ++PositionIterator, ++i) + // { + // // Add position to buffer + // XnPoint3D pt(*PositionIterator); + // printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z); + // mPFPositionBuffer[3*i] = pt.X; + // mPFPositionBuffer[3*i + 1] = pt.Y; + // mPFPositionBuffer[3*i + 2] = 0;//pt.Z(); + // break; + // } + + // // Set color + // XnUInt32 nColor = Id % N_COLORS; + // //XnUInt32 nSingle = GetPrimaryID(); + // if (Id == GetPrimaryID()) + // nColor = 6; + // } +} + +static XnBool bShouldPrint = false; +void XnVPointDrawer::OnPointCreate(const XnVHandPointContext* cxt) +{ + printf("** %d\n", cxt->nID); + // Create entry for the hand + mHistory[cxt->nID].clear(); + bShouldPrint = true; + OnPointUpdate(cxt); + bShouldPrint = true; +} +// Handle new position of an existing hand +void XnVPointDrawer::OnPointUpdate(const XnVHandPointContext* cxt) +{ + // positions are kept in projective coordinates, since they are only used for drawing + XnPoint3D ptProjective(cxt->ptPosition); + + if (bShouldPrint)printf("Point (%f,%f,%f)", ptProjective.X, ptProjective.Y, ptProjective.Z); + mDepthGenerator.ConvertRealWorldToProjective(1, &ptProjective, &ptProjective); + if (bShouldPrint)printf(" -> (%f,%f,%f)\n", ptProjective.X, ptProjective.Y, ptProjective.Z); + + // Add new position to the history buffer + mHistory[cxt->nID].push_front(ptProjective); + // Keep size of history buffer + if (mHistory[cxt->nID].size() > mNHistorySize) + mHistory[cxt->nID].pop_back(); + bShouldPrint = false; +} + +// Handle destruction of an existing hand +void XnVPointDrawer::OnPointDestroy(XnUInt32 nID) +{ + // No need for the history buffer + mHistory.erase(nID); +} diff -r 7e112b536f0a -r edf80c055589 example/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/Makefile Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,13 @@ +all: + make -f Makefile.macosx $* +fifo64: + make -f Makefile.macosx ABIBIT=64 $* +linux: + make -f Makefile.linux $* +cell: + make -f Makefile.cell $* + + +clean: + make -f Makefile.macosx clean + make -f Makefile.cell clean diff -r 7e112b536f0a -r edf80c055589 example/Makefile.cell --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/Makefile.cell Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,134 @@ +include ./Makefile.def +ABIBIT=32 + +LIBS += -lCerium -lCellManager -lspe2 -lpthread + +CFLAGS += `sdl-config --cflags` `xml2-config --cflags` +LIBS += `sdl-config --libs` -lSDL_image -lGL `xml2-config --libs` + + +.SUFFIXES: .proto .pb.o .pb.cc .cc .o .xml .xml.h .xml.cc + +.cc.o: + $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ + +%.pb.cc: $(PROTODIR)/%.proto + $(PROTO) $(PROTOFLAGS) $< + +ALL = spe-main ball_bound boss1_action direction gaplant ieshoot node panel universe untitled vacuum dynamic viewer SgRootChange property_test create_task property_universe chain_old property_chain aquarium network init_aquarium + +all: $(ALL) + +speobject: + cd spe; $(MAKE) + +run: $(TARGET) + sudo ./$(TARGET) -width 576 -height 384 -bpp 32 +run-hd: $(TARGET) + sudo /usr/sbin/ps3-video-mode -v 133 + sudo ./$(TARGET) -video fb -width 1920 -height 1080 -bpp 32 + + +spe-main: + ln -s ../Engine/spe-main . + + +BALL_BOUND_OBJ = ball_bound.o +ball_bound : $(BALL_BOUND_OBJ) + $(CC) -o $@ $? $(LIBS) + +BOSS_OBJ = boss1_action.o +boss1_action : $(BOSS_OBJ) + $(CC) -o $@ $? $(LIBS) + +DIRECTION_OBJ = direction.o +direction : $(DIRECTION_OBJ) + $(CC) -o $@ $? $(LIBS) + +GAPLAN_OBJ = gaplant.o gaplant_action.o back_action.o ball_action.o +gaplant : $(GAPLAN_OBJ) + $(CC) -o $@ $? $(LIBS) + +IESHOOT_OBJ = ieshoot.o +ieshoot : $(IESHOOT_OBJ) + $(CC) -o $@ $? $(LIBS) + +NODE_OBJ = node.o +node : $(NODE_OBJ) + $(CC) -o $@ $? $(LIBS) + +PANEL_OBJ = panel.o +panel : $(PANEL_OBJ) + $(CC) -o $@ $? $(LIBS) + +UNIV_OBJ = universe.o +universe : $(UNIV_OBJ) + $(CC) -o $@ $? $(LIBS) + +UNTITLED_OBJ = untitled.o +untitled : $(UNTITLED_OBJ) + $(CC) -o $@ $? $(LIBS) + +VACUUM_OBJ = vacuum.o cube.o game_over.o title.o +vacuum : $(VACUUM_OBJ) + $(CC) -o $@ $? $(LIBS) + +DYNAMIC_OBJ = dynamic_create.o +dynamic : $(DYNAMIC_OBJ) + $(CC) -o $@ $? $(LIBS) + +VIEWER_OBJ = viewer.o +viewer : $(VIEWER_OBJ) + $(CC) -o $@ $? $(LIBS) + +SG_CHANGE_OBJ = SgRootChange.o +SgRootChange : $(SG_CHANGE_OBJ) + $(CC) -o $@ $? $(LIBS) + +PROPERTY_TEST_OBJ = property_test.o +property_test : $(PROPERTY_TEST_OBJ) + $(CC) -o $@ $? $(LIBS) + +CREATE_TASK_OBJ = create_task.o +create_task : $(CREATE_TASK_OBJ) + $(CC) -o $@ $? $(LIBS) + +P_UNIVERSE_OBJ = property_universe.o +property_universe : $(P_UNIVERSE_OBJ) + $(CC) -o $@ $? $(LIBS) + +CHAIN_OLD = chain_old.o +chain_old : $(CHAIN_OLD) + $(CC) -o $@ $? $(LIBS) + +P_CHAIN_OBJ = property_chain.o +property_chain : $(P_CHAIN_OBJ) + $(CC) -o $@ $? $(LIBS) + +AQUARIUM_OBJ = aquarium.pb.o aquarium.o +aquarium : $(AQUARIUM_OBJ) + $(CC) -o $@ $? $(LIBS) $(PROTOLIBS) + +NETWORK_OBJ = network_game.pb.o network.o +network : $(NETWORK_OBJ) + $(CC) -o $@ $? $(LIBS) $(PROTOLIBS) + +INIT_AQUARIUM_OBJ = aquarium.pb.o init_aquarium.o +init_aquarium : $(INIT_AQUARIUM_OBJ) + $(CC) -o $@ $? $(LIBS) $(PROTOLIBS) + +debug: $(TARGET) + sudo ppu-gdb ./$(TARGET) + +depend: + $(RM) depend.inc + $(CC) -MM -MG $(INCLUDE) $(CFLAGS) $(SRCS) $(TASK_SRCS) > depend.inc + +clean: + rm -f $(TARGET) $(OBJS) $(TASK_OBJS) *.o + rm -f *~ \#* $(ALL) + rm -f $(BALL_BOUND_XML).cc $(BALL_BOUND_XML).h $(BALL_BOUND_OBJ) + +-include depend.inc + + diff -r 7e112b536f0a -r edf80c055589 example/Makefile.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/Makefile.def Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,11 @@ + +CERIUM = ../../Cerium + +ABIBIT = 64 +ABI = -m$(ABIBIT) +CC = g++ +CFLAGS = -g -Wall $(ABI) # -O9 # -O -DDEBUG + +INCLUDE = -I$(CERIUM)/include/TaskManager -I$(CERIUM)/Renderer/Engine -I. -I$(CERIUM)/include/Cerium -I/usr/include/ni -I/usr/include/nite +LIBS = -L$(CERIUM)/TaskManager -L$(CERIUM)/Renderer/Engine -lOpenNI -lXnVNite $(ABI) +TOOL = $(CERIUM)/bin diff -r 7e112b536f0a -r edf80c055589 example/Makefile.macosx --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/Makefile.macosx Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,37 @@ +include ./Makefile.def + +LIBS += -lCerium -lFifoManager + +CFLAGS += `sdl-config --cflags` `xml2-config --cflags` $(INCLUDE) +LIBS += `sdl-config --libs` `xml2-config --libs` -lSDL_image -Wl,-framework,OpenGL + +.SUFFIXES: .cc .o .xml .xml.h .xml.cc + +.cc.o: + $(CC) $(CFLAGS) -c $< -o $@ + +ALL = kinect + +all: $(ALL) + +KINECT_OBJ = kinect.o KinectTrack.o +kinect : $(KINECT_OBJ) + $(CC) $(CFLAGS) -o $@ $? $(LIBS) + +run: $(TARGET) + sudo ./$(TARGET) -width 576 -height 384 -bpp 32 + +debug: $(TARGET) + sudo ppu-gdb ./$(TARGET) + +depend: + $(RM) depend.inc + $(CC) -MM -MG $(INCLUDE) $(CFLAGS) $(SRCS) $(TASK_SRCS) > depend.inc + +clean: + rm -f $(TARGET) $(OBJS) $(TASK_OBJS) *.o + rm -f *~ \#* $(ALL) + rm -f $(BALL_BOUND_XML).cc $(BALL_BOUND_XML).h $(BALL_BOUND_OBJ) + rm -f *.pb.{cc,h} + +-include depend.inc diff -r 7e112b536f0a -r edf80c055589 example/kinect.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/kinect.cc Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,154 @@ +#include +#include +#include +#include "SceneGraphRoot.h" +#include "MainLoop.h" + +#include +#include +#include + +#include "kinect.h" + +#define INIT_XML_PATH "./kinect.xml" + +void checkRC(const XnStatus &rc, const char *what) { + if (rc != XN_STATUS_OK) { + printf("%s faild: %s\n", what, xnGetStatusString(rc)); + } +} + +void checkErrors(XnStatus &rc, xn::EnumerationErrors &errors, const char *what) { + if (rc == XN_STATUS_NO_NODE_PRESENT) { + XnChar strError[1024]; + errors.ToString(strError, 1024); + printf("%s\n", strError); + } +} + +SessionState NIState::gSessionState = NOT_IN_SESSION; +XnBool NIState::gBDrawDepthMap = true; +xn::Context NIState::gContext; +XnVSessionManager *NIState::gPSessionManager; +XnVPointDrawer *NIState::gPDrawer; + +void NIState::XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt) { + printf("Session start: (%f, %f, %f)\n", ptPosition.X, ptPosition.Y, ptPosition.Z); + gSessionState = IN_SESSION; +} +void NIState::XN_CALLBACK_TYPE sessionEnding(void *userCxt) { + printf("Session end\n"); + gSessionState = NOT_IN_SESSION; +} +void NIState::XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition, + XnFloat fProgress, void *userCxt) { + printf("Focus progress: %s @(%f, %f, %f): %f\n", strFocus, ptPosition.X, ptPosition.Y, ptPosition.Z, fProgress); +} +void NIState::XN_CALLBACK_TYPE noHands(void *UserCxt) { + if (gSessionState != NOT_IN_SESSION) { + printf("Quick refocus\n"); + gSessionState = QUICK_REFOCUS; + } +} + +// prototype +static void ball_move(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h); +static void null_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h, SceneGraphPtr tree); + +static void +ball_move(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) +{ + NIState::gContext.WaitNoneUpdateAll(); + NIState::gPSessionManager->Update(&NIState::gContext); + float x, y, z; + int error = NIState::gPDrawer->getPosition(x, y, z); + if (error > 0) { + node->xyz[0] = x/640 * screen_w; + node->xyz[1] = y/480 * screen_h; + node->xyz[2] = z - 500; + } +} + +static void +null_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h, + SceneGraphPtr tree) +{ +} + +MainLoopPtr +Kinect::init(Viewer *sgroot, int screen_w, int screen_h) +{ + SceneGraphPtr ball; + + srandom(100); + + sgroot->createFromXMLfile("xml_file/Ball.xml"); + + ball = sgroot->createSceneGraph("Ball"); + ball->set_move_collision(ball_move, null_collision); + + ball->xyz[0] = screen_w/2; + ball->xyz[1] = screen_h/2; + ball->xyz[2] = 550.0f; + + sgroot->setSceneData(ball); + + xn::EnumerationErrors errors; + XnStatus rc = NIState::gContext.InitFromXmlFile(INIT_XML_PATH, &errors); + checkErrors(rc, errors, "InitFromXMLFile"); + checkRC(rc, "InitFromXMLFile"); + + xn::DepthGenerator gDepthGenerator; + rc = NIState::gContext.FindExistingNode(XN_NODE_TYPE_DEPTH, gDepthGenerator); + checkRC(rc, "Find depth generator"); + + xn::HandsGenerator gHandsGenerator; + rc = NIState::gContext.FindExistingNode(XN_NODE_TYPE_HANDS, gHandsGenerator); + checkRC(rc, "Find hands generator"); + NIState::gPSessionManager = new XnVSessionManager(); + rc = NIState::gPSessionManager->Initialize(&NIState::gContext, "Click,Wave", "RaiseHand"); + checkRC(rc, "SessionManager::Initialize"); + + NIState::gPSessionManager->RegisterSession(NULL, NIState::sessionStarting, NIState::sessionEnding, NIState::focusProgress); + + NIState::gPDrawer = new XnVPointDrawer(20, gDepthGenerator); + XnVFlowRouter *gPFlowRouter = new XnVFlowRouter; + gPFlowRouter->SetActive(NIState::gPDrawer); + + NIState::gPSessionManager->AddListener(gPFlowRouter); + + NIState::gPDrawer->RegisterNoPoints(NULL, NIState::noHands); + NIState::gPDrawer->setDepthMap(NIState::gBDrawDepthMap); + + rc = NIState::gContext.StartGeneratingAll(); + checkRC(rc, "StartGenerating"); + + return sgroot; +} + +extern Application * +application() { + return new Kinect(); +} + +const char *usr_help_str = "Usage: ./kinect [OPTION]\n"; + +extern int init(TaskManager *manager, int argc, char *argv[]); +extern void task_initialize(); +static void TMend(TaskManager *manager); + +int +TMmain(TaskManager *manager, int argc, char *argv[]) +{ + task_initialize(); + manager->set_TMend(TMend); + return init(manager, argc, argv); +} + +void +TMend(TaskManager *manager) +{ + printf("kinect end\n"); +} + +/* end */ diff -r 7e112b536f0a -r edf80c055589 example/kinect.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/kinect.h Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,57 @@ +#include +#include +#include "SceneGraphRoot.h" +#include "Application.h" +#include "MainLoop.h" +#include "viewer.h" + +#include +#include +#include +#include + +class Kinect : public Application { + + MainLoopPtr init(Viewer *viewer, int screen_w, int screen_h); +}; + +typedef enum { + IN_SESSION, + NOT_IN_SESSION, + QUICK_REFOCUS +} SessionState; + +class XnVPointDrawer : public XnVPointControl { +public: + XnVPointDrawer(XnUInt32 nHistorySize, xn::DepthGenerator depthGenerator); + virtual ~XnVPointDrawer(); + void Update(XnVMessage *pMessage); + void OnPointCreate(const XnVHandPointContext *cxt); + void OnPointUpdate(const XnVHandPointContext *cxt); + void OnPointDestroy(XnUInt32 nID); + void Draw() const; + void setDepthMap(XnBool bDrawDM); + void setFrameID(XnBool bFrameID); + int getPosition(float &x, float &y, float &z) const; +protected: + XnUInt32 mNHistorySize; + std::map > mHistory; + xn::DepthGenerator mDepthGenerator; + XnFloat *mPFPositionBuffer; + XnBool mBDrawDM; + XnBool mBFrameID; +}; + +class NIState { +public: + static xn::Context gContext; + static XnVSessionManager *gPSessionManager; + static XnVPointDrawer *gPDrawer; + static SessionState gSessionState; + static XnBool gBDrawDepthMap; + static void XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt); + static void XN_CALLBACK_TYPE sessionEnding(void *userCxt); + static void XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition, + XnFloat fProgress, void *userCxt); + static void XN_CALLBACK_TYPE noHands(void *UserCxt); +}; diff -r 7e112b536f0a -r edf80c055589 example/kinect.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/kinect.xml Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7e112b536f0a -r edf80c055589 example/xml_file/Ball.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/xml_file/Ball.xml Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,4348 @@ + + + + + -0.000012 -0.000030 -100.000000 + 18.023973 7.465775 -98.078522 + 19.509008 0.000000 -98.078529 + 19.509008 0.000000 -98.078529 + 18.023973 7.465775 -98.078522 + 35.355324 14.644656 -92.387970 + 35.355324 14.644656 -92.387970 + 38.268330 0.000000 -92.387962 + 19.509008 0.000000 -98.078529 + 38.268330 0.000000 -92.387962 + 35.355324 14.644656 -92.387970 + 51.327988 21.260750 -83.146973 + 51.327988 21.260750 -83.146973 + 55.556988 0.000031 -83.146973 + 38.268330 0.000000 -92.387962 + 55.556988 0.000031 -83.146973 + 51.327988 21.260750 -83.146973 + 65.328148 27.059807 -70.710678 + 65.328148 27.059807 -70.710678 + 70.710678 0.000000 -70.710678 + 55.556988 0.000031 -83.146973 + 70.710678 0.000000 -70.710678 + 65.328148 27.059807 -70.710678 + 76.817780 31.818968 -55.557022 + 76.817780 31.818968 -55.557022 + 83.146965 0.000000 -55.557018 + 70.710678 0.000000 -70.710678 + 83.146965 0.000000 -55.557018 + 76.817780 31.818968 -55.557022 + 85.355347 35.355343 -38.268326 + 85.355347 35.355343 -38.268326 + 92.387962 0.000000 -38.268330 + 83.146965 0.000000 -55.557018 + 92.387962 0.000000 -38.268330 + 85.355347 35.355343 -38.268326 + 90.612740 37.533031 -19.509018 + 90.612740 37.533031 -19.509018 + 98.078529 0.000000 -19.509022 + 92.387962 0.000000 -38.268330 + 98.078529 0.000000 -19.509022 + 90.612740 37.533031 -19.509018 + 92.387947 38.268345 0.000008 + 92.387947 38.268345 0.000008 + 100.000000 0.000000 0.000008 + 98.078529 0.000000 -19.509022 + 100.000000 0.000000 0.000008 + 92.387947 38.268345 0.000008 + 90.612740 37.533031 19.509033 + 90.612740 37.533031 19.509033 + 98.078529 0.000000 19.509035 + 100.000000 0.000000 0.000008 + 98.078529 0.000000 19.509035 + 90.612740 37.533031 19.509033 + 85.355339 35.355343 38.268341 + 85.355339 35.355343 38.268341 + 92.387955 0.000000 38.268341 + 98.078529 0.000000 19.509035 + 92.387955 0.000000 38.268341 + 85.355339 35.355343 38.268341 + 76.817780 31.818968 55.557018 + 76.817780 31.818968 55.557018 + 83.146965 0.000000 55.557018 + 92.387955 0.000000 38.268341 + 83.146965 0.000000 55.557018 + 76.817780 31.818968 55.557018 + 65.328148 27.059807 70.710678 + 65.328148 27.059807 70.710678 + 70.710670 0.000006 70.710678 + 83.146965 0.000000 55.557018 + 70.710670 0.000006 70.710678 + 65.328148 27.059807 70.710678 + 51.327995 21.260754 83.146957 + 51.327995 21.260754 83.146957 + 55.557022 0.000000 83.146957 + 70.710670 0.000006 70.710678 + 55.557022 0.000000 83.146957 + 51.327995 21.260754 83.146957 + 35.355339 14.644663 92.387955 + 35.355339 14.644663 92.387955 + 38.268345 0.000000 92.387955 + 55.557022 0.000000 83.146957 + 38.268345 0.000000 92.387955 + 35.355339 14.644663 92.387955 + 18.023996 7.465784 98.078529 + 18.023996 7.465784 98.078529 + 19.509024 0.000007 98.078529 + 38.268345 0.000000 92.387955 + 18.023996 7.465784 98.078529 + 0.000000 0.000000 100.000000 + 19.509024 0.000007 98.078529 + 13.794969 13.794970 98.078529 + 0.000000 0.000000 100.000000 + 18.023996 7.465784 98.078529 + 35.355339 14.644663 92.387955 + 27.059803 27.059807 92.387955 + 13.794969 13.794970 98.078529 + 13.794969 13.794970 98.078529 + 18.023996 7.465784 98.078529 + 35.355339 14.644663 92.387955 + 51.327995 21.260754 83.146957 + 39.284744 39.284748 83.146957 + 27.059803 27.059807 92.387955 + 27.059803 27.059807 92.387955 + 35.355339 14.644663 92.387955 + 51.327995 21.260754 83.146957 + 65.328148 27.059807 70.710678 + 49.999996 50.000000 70.710678 + 39.284744 39.284748 83.146957 + 39.284744 39.284748 83.146957 + 51.327995 21.260754 83.146957 + 65.328148 27.059807 70.710678 + 76.817780 31.818968 55.557018 + 58.793781 58.793785 55.557018 + 49.999996 50.000000 70.710678 + 49.999996 50.000000 70.710678 + 65.328148 27.059807 70.710678 + 76.817780 31.818968 55.557018 + 85.355339 35.355343 38.268341 + 65.328140 65.328156 38.268341 + 58.793781 58.793785 55.557018 + 58.793781 58.793785 55.557018 + 76.817780 31.818968 55.557018 + 85.355339 35.355343 38.268341 + 90.612740 37.533031 19.509033 + 69.351990 69.351990 19.509033 + 65.328140 65.328156 38.268341 + 65.328140 65.328156 38.268341 + 85.355339 35.355343 38.268341 + 90.612740 37.533031 19.509033 + 92.387947 38.268345 0.000008 + 70.710670 70.710678 0.000008 + 69.351990 69.351990 19.509033 + 69.351990 69.351990 19.509033 + 90.612740 37.533031 19.509033 + 92.387947 38.268345 0.000008 + 90.612740 37.533031 -19.509018 + 69.351990 69.351990 -19.509018 + 70.710670 70.710678 0.000008 + 70.710670 70.710678 0.000008 + 92.387947 38.268345 0.000008 + 90.612740 37.533031 -19.509018 + 85.355347 35.355343 -38.268326 + 65.328148 65.328156 -38.268326 + 69.351990 69.351990 -19.509018 + 69.351990 69.351990 -19.509018 + 90.612740 37.533031 -19.509018 + 85.355347 35.355343 -38.268326 + 76.817780 31.818968 -55.557022 + 58.793781 58.793785 -55.557022 + 65.328148 65.328156 -38.268326 + 65.328148 65.328156 -38.268326 + 85.355347 35.355343 -38.268326 + 76.817780 31.818968 -55.557022 + 65.328148 27.059807 -70.710678 + 49.999996 50.000000 -70.710678 + 58.793781 58.793785 -55.557022 + 58.793781 58.793785 -55.557022 + 76.817780 31.818968 -55.557022 + 65.328148 27.059807 -70.710678 + 51.327988 21.260750 -83.146973 + 39.284737 39.284744 -83.146973 + 49.999996 50.000000 -70.710678 + 49.999996 50.000000 -70.710678 + 65.328148 27.059807 -70.710678 + 51.327988 21.260750 -83.146973 + 35.355324 14.644656 -92.387970 + 27.059792 27.059795 -92.387970 + 39.284737 39.284744 -83.146973 + 39.284737 39.284744 -83.146973 + 51.327988 21.260750 -83.146973 + 35.355324 14.644656 -92.387970 + 18.023973 7.465775 -98.078522 + 13.794950 13.794952 -98.078522 + 27.059792 27.059795 -92.387970 + 27.059792 27.059795 -92.387970 + 35.355324 14.644656 -92.387970 + 18.023973 7.465775 -98.078522 + -0.000012 -0.000030 -100.000000 + 13.794950 13.794952 -98.078522 + 18.023973 7.465775 -98.078522 + -0.000012 -0.000030 -100.000000 + 7.465772 18.023973 -98.078522 + 13.794950 13.794952 -98.078522 + 13.794950 13.794952 -98.078522 + 7.465772 18.023973 -98.078522 + 14.644650 35.355324 -92.387970 + 14.644650 35.355324 -92.387970 + 27.059792 27.059795 -92.387970 + 13.794950 13.794952 -98.078522 + 27.059792 27.059795 -92.387970 + 14.644650 35.355324 -92.387970 + 21.260738 51.327988 -83.146973 + 21.260738 51.327988 -83.146973 + 39.284737 39.284744 -83.146973 + 27.059792 27.059795 -92.387970 + 39.284737 39.284744 -83.146973 + 21.260738 51.327988 -83.146973 + 27.059801 65.328140 -70.710678 + 27.059801 65.328140 -70.710678 + 49.999996 50.000000 -70.710678 + 39.284737 39.284744 -83.146973 + 49.999996 50.000000 -70.710678 + 27.059801 65.328140 -70.710678 + 31.818962 76.817780 -55.557022 + 31.818962 76.817780 -55.557022 + 58.793781 58.793785 -55.557022 + 49.999996 50.000000 -70.710678 + 58.793781 58.793785 -55.557022 + 31.818962 76.817780 -55.557022 + 35.355331 85.355347 -38.268326 + 35.355331 85.355347 -38.268326 + 65.328148 65.328156 -38.268326 + 58.793781 58.793785 -55.557022 + 65.328148 65.328156 -38.268326 + 35.355331 85.355347 -38.268326 + 37.533024 90.612747 -19.509018 + 37.533024 90.612747 -19.509018 + 69.351990 69.351990 -19.509018 + 65.328148 65.328156 -38.268326 + 69.351990 69.351990 -19.509018 + 37.533024 90.612747 -19.509018 + 38.268333 92.387955 0.000008 + 38.268333 92.387955 0.000008 + 70.710670 70.710678 0.000008 + 69.351990 69.351990 -19.509018 + 70.710670 70.710678 0.000008 + 38.268333 92.387955 0.000008 + 37.533024 90.612747 19.509033 + 37.533024 90.612747 19.509033 + 69.351990 69.351990 19.509033 + 70.710670 70.710678 0.000008 + 69.351990 69.351990 19.509033 + 37.533024 90.612747 19.509033 + 35.355328 85.355339 38.268341 + 35.355328 85.355339 38.268341 + 65.328140 65.328156 38.268341 + 69.351990 69.351990 19.509033 + 65.328140 65.328156 38.268341 + 35.355328 85.355339 38.268341 + 31.818962 76.817780 55.557018 + 31.818962 76.817780 55.557018 + 58.793781 58.793785 55.557018 + 65.328140 65.328156 38.268341 + 58.793781 58.793785 55.557018 + 31.818962 76.817780 55.557018 + 27.059801 65.328140 70.710678 + 27.059801 65.328140 70.710678 + 49.999996 50.000000 70.710678 + 58.793781 58.793785 55.557018 + 49.999996 50.000000 70.710678 + 27.059801 65.328140 70.710678 + 21.260746 51.327995 83.146957 + 21.260746 51.327995 83.146957 + 39.284744 39.284748 83.146957 + 49.999996 50.000000 70.710678 + 39.284744 39.284748 83.146957 + 21.260746 51.327995 83.146957 + 14.644658 35.355339 92.387955 + 14.644658 35.355339 92.387955 + 27.059803 27.059807 92.387955 + 39.284744 39.284748 83.146957 + 27.059803 27.059807 92.387955 + 14.644658 35.355339 92.387955 + 7.465782 18.023994 98.078529 + 7.465782 18.023994 98.078529 + 13.794969 13.794970 98.078529 + 27.059803 27.059807 92.387955 + 7.465782 18.023994 98.078529 + 0.000000 0.000000 100.000000 + 13.794969 13.794970 98.078529 + -0.000001 19.509029 98.078529 + 0.000000 0.000000 100.000000 + 7.465782 18.023994 98.078529 + 14.644658 35.355339 92.387955 + -0.000004 38.268341 92.387955 + -0.000001 19.509029 98.078529 + -0.000001 19.509029 98.078529 + 7.465782 18.023994 98.078529 + 14.644658 35.355339 92.387955 + 21.260746 51.327995 83.146957 + -0.000006 55.557018 83.146957 + -0.000004 38.268341 92.387955 + -0.000004 38.268341 92.387955 + 14.644658 35.355339 92.387955 + 21.260746 51.327995 83.146957 + 27.059801 65.328140 70.710678 + -0.000002 70.710670 70.710678 + -0.000006 55.557018 83.146957 + -0.000006 55.557018 83.146957 + 21.260746 51.327995 83.146957 + 27.059801 65.328140 70.710678 + 31.818962 76.817780 55.557018 + -0.000006 83.146965 55.557018 + -0.000002 70.710670 70.710678 + -0.000002 70.710670 70.710678 + 27.059801 65.328140 70.710678 + 31.818962 76.817780 55.557018 + 35.355328 85.355339 38.268341 + -0.000015 92.387947 38.268341 + -0.000006 83.146965 55.557018 + -0.000006 83.146965 55.557018 + 31.818962 76.817780 55.557018 + 35.355328 85.355339 38.268341 + 37.533024 90.612747 19.509033 + -0.000008 98.078529 19.509033 + -0.000015 92.387947 38.268341 + -0.000015 92.387947 38.268341 + 35.355328 85.355339 38.268341 + 37.533024 90.612747 19.509033 + 38.268333 92.387955 0.000008 + -0.000015 100.000000 0.000008 + -0.000008 98.078529 19.509033 + -0.000008 98.078529 19.509033 + 37.533024 90.612747 19.509033 + 38.268333 92.387955 0.000008 + 37.533024 90.612747 -19.509018 + -0.000008 98.078529 -19.509018 + -0.000015 100.000000 0.000008 + -0.000015 100.000000 0.000008 + 38.268333 92.387955 0.000008 + 37.533024 90.612747 -19.509018 + 35.355331 85.355347 -38.268326 + -0.000011 92.387955 -38.268326 + -0.000008 98.078529 -19.509018 + -0.000008 98.078529 -19.509018 + 37.533024 90.612747 -19.509018 + 35.355331 85.355347 -38.268326 + 31.818962 76.817780 -55.557022 + -0.000006 83.146965 -55.557022 + -0.000011 92.387955 -38.268326 + -0.000011 92.387955 -38.268326 + 35.355331 85.355347 -38.268326 + 31.818962 76.817780 -55.557022 + 27.059801 65.328140 -70.710678 + -0.000002 70.710670 -70.710678 + -0.000006 83.146965 -55.557022 + -0.000006 83.146965 -55.557022 + 31.818962 76.817780 -55.557022 + 27.059801 65.328140 -70.710678 + 21.260738 51.327988 -83.146973 + -0.000011 55.557007 -83.146973 + -0.000002 70.710670 -70.710678 + -0.000002 70.710670 -70.710678 + 27.059801 65.328140 -70.710678 + 21.260738 51.327988 -83.146973 + 14.644650 35.355324 -92.387970 + -0.000006 38.268326 -92.387970 + -0.000011 55.557007 -83.146973 + -0.000011 55.557007 -83.146973 + 21.260738 51.327988 -83.146973 + 14.644650 35.355324 -92.387970 + 7.465772 18.023973 -98.078522 + -0.000003 19.509007 -98.078522 + -0.000006 38.268326 -92.387970 + -0.000006 38.268326 -92.387970 + 14.644650 35.355324 -92.387970 + 7.465772 18.023973 -98.078522 + -0.000012 -0.000030 -100.000000 + -0.000003 19.509007 -98.078522 + 7.465772 18.023973 -98.078522 + -0.000012 -0.000030 -100.000000 + -7.465777 18.023970 -98.078522 + -0.000003 19.509007 -98.078522 + -0.000003 19.509007 -98.078522 + -7.465777 18.023970 -98.078522 + -14.644661 35.355316 -92.387970 + -14.644661 35.355316 -92.387970 + -0.000006 38.268326 -92.387970 + -0.000003 19.509007 -98.078522 + -0.000006 38.268326 -92.387970 + -14.644661 35.355316 -92.387970 + -21.260759 51.327976 -83.146973 + -21.260759 51.327976 -83.146973 + -0.000011 55.557007 -83.146973 + -0.000006 38.268326 -92.387970 + -0.000011 55.557007 -83.146973 + -21.260759 51.327976 -83.146973 + -27.059805 65.328140 -70.710678 + -27.059805 65.328140 -70.710678 + -0.000002 70.710670 -70.710678 + -0.000011 55.557007 -83.146973 + -0.000002 70.710670 -70.710678 + -27.059805 65.328140 -70.710678 + -31.818974 76.817780 -55.557022 + -31.818974 76.817780 -55.557022 + -0.000006 83.146965 -55.557022 + -0.000002 70.710670 -70.710678 + -0.000006 83.146965 -55.557022 + -31.818974 76.817780 -55.557022 + -35.355354 85.355331 -38.268326 + -35.355354 85.355331 -38.268326 + -0.000011 92.387955 -38.268326 + -0.000006 83.146965 -55.557022 + -0.000011 92.387955 -38.268326 + -35.355354 85.355331 -38.268326 + -37.533039 90.612740 -19.509018 + -37.533039 90.612740 -19.509018 + -0.000008 98.078529 -19.509018 + -0.000011 92.387955 -38.268326 + -0.000008 98.078529 -19.509018 + -37.533039 90.612740 -19.509018 + -38.268360 92.387939 0.000008 + -38.268360 92.387939 0.000008 + -0.000015 100.000000 0.000008 + -0.000008 98.078529 -19.509018 + -0.000015 100.000000 0.000008 + -38.268360 92.387939 0.000008 + -37.533039 90.612740 19.509033 + -37.533039 90.612740 19.509033 + -0.000008 98.078529 19.509033 + -0.000015 100.000000 0.000008 + -0.000008 98.078529 19.509033 + -37.533039 90.612740 19.509033 + -35.355354 85.355324 38.268341 + -35.355354 85.355324 38.268341 + -0.000015 92.387947 38.268341 + -0.000008 98.078529 19.509033 + -0.000015 92.387947 38.268341 + -35.355354 85.355324 38.268341 + -31.818974 76.817780 55.557018 + -31.818974 76.817780 55.557018 + -0.000006 83.146965 55.557018 + -0.000015 92.387947 38.268341 + -0.000006 83.146965 55.557018 + -31.818974 76.817780 55.557018 + -27.059805 65.328140 70.710678 + -27.059805 65.328140 70.710678 + -0.000002 70.710670 70.710678 + -0.000006 83.146965 55.557018 + -0.000002 70.710670 70.710678 + -27.059805 65.328140 70.710678 + -21.260757 51.327988 83.146957 + -21.260757 51.327988 83.146957 + -0.000006 55.557018 83.146957 + -0.000002 70.710670 70.710678 + -0.000006 55.557018 83.146957 + -21.260757 51.327988 83.146957 + -14.644665 35.355335 92.387955 + -14.644665 35.355335 92.387955 + -0.000004 38.268341 92.387955 + -0.000006 55.557018 83.146957 + -0.000004 38.268341 92.387955 + -14.644665 35.355335 92.387955 + -7.465784 18.023993 98.078529 + -7.465784 18.023993 98.078529 + -0.000001 19.509029 98.078529 + -0.000004 38.268341 92.387955 + -7.465784 18.023993 98.078529 + 0.000000 0.000000 100.000000 + -0.000001 19.509029 98.078529 + -13.794969 13.794965 98.078529 + 0.000000 0.000000 100.000000 + -7.465784 18.023993 98.078529 + -14.644665 35.355335 92.387955 + -27.059807 27.059799 92.387955 + -13.794969 13.794965 98.078529 + -13.794969 13.794965 98.078529 + -7.465784 18.023993 98.078529 + -14.644665 35.355335 92.387955 + -21.260757 51.327988 83.146957 + -39.284752 39.284737 83.146957 + -27.059807 27.059799 92.387955 + -27.059807 27.059799 92.387955 + -14.644665 35.355335 92.387955 + -21.260757 51.327988 83.146957 + -27.059805 65.328140 70.710678 + -50.000000 49.999992 70.710678 + -39.284752 39.284737 83.146957 + -39.284752 39.284737 83.146957 + -21.260757 51.327988 83.146957 + -27.059805 65.328140 70.710678 + -31.818974 76.817780 55.557018 + -58.793793 58.793781 55.557018 + -50.000000 49.999992 70.710678 + -50.000000 49.999992 70.710678 + -27.059805 65.328140 70.710678 + -31.818974 76.817780 55.557018 + -35.355354 85.355324 38.268341 + -65.328156 65.328125 38.268341 + -58.793793 58.793781 55.557018 + -58.793793 58.793781 55.557018 + -31.818974 76.817780 55.557018 + -35.355354 85.355324 38.268341 + -37.533039 90.612740 19.509033 + -69.352005 69.351982 19.509033 + -65.328156 65.328125 38.268341 + -65.328156 65.328125 38.268341 + -35.355354 85.355324 38.268341 + -37.533039 90.612740 19.509033 + -38.268360 92.387939 0.000008 + -70.710693 70.710655 0.000008 + -69.352005 69.351982 19.509033 + -69.352005 69.351982 19.509033 + -37.533039 90.612740 19.509033 + -38.268360 92.387939 0.000008 + -37.533039 90.612740 -19.509018 + -69.352005 69.351982 -19.509018 + -70.710693 70.710655 0.000008 + -70.710693 70.710655 0.000008 + -38.268360 92.387939 0.000008 + -37.533039 90.612740 -19.509018 + -35.355354 85.355331 -38.268326 + -65.328156 65.328133 -38.268326 + -69.352005 69.351982 -19.509018 + -69.352005 69.351982 -19.509018 + -37.533039 90.612740 -19.509018 + -35.355354 85.355331 -38.268326 + -31.818974 76.817780 -55.557022 + -58.793793 58.793781 -55.557022 + -65.328156 65.328133 -38.268326 + -65.328156 65.328133 -38.268326 + -35.355354 85.355331 -38.268326 + -31.818974 76.817780 -55.557022 + -27.059805 65.328140 -70.710678 + -50.000000 49.999992 -70.710678 + -58.793793 58.793781 -55.557022 + -58.793793 58.793781 -55.557022 + -31.818974 76.817780 -55.557022 + -27.059805 65.328140 -70.710678 + -21.260759 51.327976 -83.146973 + -39.284744 39.284721 -83.146973 + -50.000000 49.999992 -70.710678 + -50.000000 49.999992 -70.710678 + -27.059805 65.328140 -70.710678 + -21.260759 51.327976 -83.146973 + -14.644661 35.355316 -92.387970 + -27.059797 27.059782 -92.387970 + -39.284744 39.284721 -83.146973 + -39.284744 39.284721 -83.146973 + -21.260759 51.327976 -83.146973 + -14.644661 35.355316 -92.387970 + -7.465777 18.023970 -98.078522 + -13.794952 13.794947 -98.078522 + -27.059797 27.059782 -92.387970 + -27.059797 27.059782 -92.387970 + -14.644661 35.355316 -92.387970 + -7.465777 18.023970 -98.078522 + -0.000012 -0.000030 -100.000000 + -13.794952 13.794947 -98.078522 + -7.465777 18.023970 -98.078522 + -0.000012 -0.000030 -100.000000 + -18.023972 7.465768 -98.078522 + -13.794952 13.794947 -98.078522 + -13.794952 13.794947 -98.078522 + -18.023972 7.465768 -98.078522 + -35.355324 14.644640 -92.387970 + -35.355324 14.644640 -92.387970 + -27.059797 27.059782 -92.387970 + -13.794952 13.794947 -98.078522 + -27.059797 27.059782 -92.387970 + -35.355324 14.644640 -92.387970 + -51.327980 21.260727 -83.146973 + -51.327980 21.260727 -83.146973 + -39.284744 39.284721 -83.146973 + -27.059797 27.059782 -92.387970 + -39.284744 39.284721 -83.146973 + -51.327980 21.260727 -83.146973 + -65.328140 27.059797 -70.710678 + -65.328140 27.059797 -70.710678 + -50.000000 49.999992 -70.710678 + -39.284744 39.284721 -83.146973 + -50.000000 49.999992 -70.710678 + -65.328140 27.059797 -70.710678 + -76.817787 31.818958 -55.557022 + -76.817787 31.818958 -55.557022 + -58.793793 58.793781 -55.557022 + -50.000000 49.999992 -70.710678 + -58.793793 58.793781 -55.557022 + -76.817787 31.818958 -55.557022 + -85.355339 35.355320 -38.268326 + -85.355339 35.355320 -38.268326 + -65.328156 65.328133 -38.268326 + -58.793793 58.793781 -55.557022 + -65.328156 65.328133 -38.268326 + -85.355339 35.355320 -38.268326 + -90.612755 37.533012 -19.509018 + -90.612755 37.533012 -19.509018 + -69.352005 69.351982 -19.509018 + -65.328156 65.328133 -38.268326 + -69.352005 69.351982 -19.509018 + -90.612755 37.533012 -19.509018 + -92.387962 38.268311 0.000008 + -92.387962 38.268311 0.000008 + -70.710693 70.710655 0.000008 + -69.352005 69.351982 -19.509018 + -70.710693 70.710655 0.000008 + -92.387962 38.268311 0.000008 + -90.612755 37.533012 19.509033 + -90.612755 37.533012 19.509033 + -69.352005 69.351982 19.509033 + -70.710693 70.710655 0.000008 + -69.352005 69.351982 19.509033 + -90.612755 37.533012 19.509033 + -85.355331 35.355312 38.268341 + -85.355331 35.355312 38.268341 + -65.328156 65.328125 38.268341 + -69.352005 69.351982 19.509033 + -65.328156 65.328125 38.268341 + -85.355331 35.355312 38.268341 + -76.817787 31.818958 55.557018 + -76.817787 31.818958 55.557018 + -58.793793 58.793781 55.557018 + -65.328156 65.328125 38.268341 + -58.793793 58.793781 55.557018 + -76.817787 31.818958 55.557018 + -65.328140 27.059797 70.710678 + -65.328140 27.059797 70.710678 + -50.000000 49.999992 70.710678 + -58.793793 58.793781 55.557018 + -50.000000 49.999992 70.710678 + -65.328140 27.059797 70.710678 + -51.327995 21.260736 83.146957 + -51.327995 21.260736 83.146957 + -39.284752 39.284737 83.146957 + -50.000000 49.999992 70.710678 + -39.284752 39.284737 83.146957 + -51.327995 21.260736 83.146957 + -35.355339 14.644654 92.387955 + -35.355339 14.644654 92.387955 + -27.059807 27.059799 92.387955 + -39.284752 39.284737 83.146957 + -27.059807 27.059799 92.387955 + -35.355339 14.644654 92.387955 + -18.023993 7.465779 98.078529 + -18.023993 7.465779 98.078529 + -13.794969 13.794965 98.078529 + -27.059807 27.059799 92.387955 + -18.023993 7.465779 98.078529 + 0.000000 0.000000 100.000000 + -13.794969 13.794965 98.078529 + -19.509027 -0.000003 98.078529 + 0.000000 0.000000 100.000000 + -18.023993 7.465779 98.078529 + -35.355339 14.644654 92.387955 + -38.268341 -0.000008 92.387955 + -19.509027 -0.000003 98.078529 + -19.509027 -0.000003 98.078529 + -18.023993 7.465779 98.078529 + -35.355339 14.644654 92.387955 + -51.327995 21.260736 83.146957 + -55.557014 -0.000015 83.146957 + -38.268341 -0.000008 92.387955 + -38.268341 -0.000008 92.387955 + -35.355339 14.644654 92.387955 + -51.327995 21.260736 83.146957 + -65.328140 27.059797 70.710678 + -70.710670 -0.000006 70.710678 + -55.557014 -0.000015 83.146957 + -55.557014 -0.000015 83.146957 + -51.327995 21.260736 83.146957 + -65.328140 27.059797 70.710678 + -76.817787 31.818958 55.557018 + -83.146973 -0.000013 55.557018 + -70.710670 -0.000006 70.710678 + -70.710670 -0.000006 70.710678 + -65.328140 27.059797 70.710678 + -76.817787 31.818958 55.557018 + -85.355331 35.355312 38.268341 + -92.387932 -0.000027 38.268341 + -83.146973 -0.000013 55.557018 + -83.146973 -0.000013 55.557018 + -76.817787 31.818958 55.557018 + -85.355331 35.355312 38.268341 + -90.612755 37.533012 19.509033 + -98.078529 -0.000023 19.509033 + -92.387932 -0.000027 38.268341 + -92.387932 -0.000027 38.268341 + -85.355331 35.355312 38.268341 + -90.612755 37.533012 19.509033 + -92.387962 38.268311 0.000008 + -100.000000 -0.000034 0.000008 + -98.078529 -0.000023 19.509033 + -98.078529 -0.000023 19.509033 + -90.612755 37.533012 19.509033 + -92.387962 38.268311 0.000008 + -90.612755 37.533012 -19.509018 + -98.078529 -0.000023 -19.509018 + -100.000000 -0.000034 0.000008 + -100.000000 -0.000034 0.000008 + -92.387962 38.268311 0.000008 + -90.612755 37.533012 -19.509018 + -85.355339 35.355320 -38.268326 + -92.387939 -0.000023 -38.268326 + -98.078529 -0.000023 -19.509018 + -98.078529 -0.000023 -19.509018 + -90.612755 37.533012 -19.509018 + -85.355339 35.355320 -38.268326 + -76.817787 31.818958 -55.557022 + -83.146973 -0.000013 -55.557022 + -92.387939 -0.000023 -38.268326 + -92.387939 -0.000023 -38.268326 + -85.355339 35.355320 -38.268326 + -76.817787 31.818958 -55.557022 + -65.328140 27.059797 -70.710678 + -70.710670 -0.000006 -70.710678 + -83.146973 -0.000013 -55.557022 + -83.146973 -0.000013 -55.557022 + -76.817787 31.818958 -55.557022 + -65.328140 27.059797 -70.710678 + -51.327980 21.260727 -83.146973 + -55.556995 -0.000019 -83.146973 + -70.710670 -0.000006 -70.710678 + -70.710670 -0.000006 -70.710678 + -65.328140 27.059797 -70.710678 + -51.327980 21.260727 -83.146973 + -35.355324 14.644640 -92.387970 + -38.268318 -0.000015 -92.387970 + -55.556995 -0.000019 -83.146973 + -55.556995 -0.000019 -83.146973 + -51.327980 21.260727 -83.146973 + -35.355324 14.644640 -92.387970 + -18.023972 7.465768 -98.078522 + -19.509003 -0.000005 -98.078522 + -38.268318 -0.000015 -92.387970 + -38.268318 -0.000015 -92.387970 + -35.355324 14.644640 -92.387970 + -18.023972 7.465768 -98.078522 + -0.000012 -0.000030 -100.000000 + -19.509003 -0.000005 -98.078522 + -18.023972 7.465768 -98.078522 + -0.000012 -0.000030 -100.000000 + -18.023966 -7.465777 -98.078522 + -19.509003 -0.000005 -98.078522 + -19.509003 -0.000005 -98.078522 + -18.023966 -7.465777 -98.078522 + -35.355309 -14.644667 -92.387970 + -35.355309 -14.644667 -92.387970 + -38.268318 -0.000015 -92.387970 + -19.509003 -0.000005 -98.078522 + -38.268318 -0.000015 -92.387970 + -35.355309 -14.644667 -92.387970 + -51.327961 -21.260759 -83.146973 + -51.327961 -21.260759 -83.146973 + -55.556995 -0.000019 -83.146973 + -38.268318 -0.000015 -92.387970 + -55.556995 -0.000019 -83.146973 + -51.327961 -21.260759 -83.146973 + -65.328140 -27.059809 -70.710678 + -65.328140 -27.059809 -70.710678 + -70.710670 -0.000006 -70.710678 + -55.556995 -0.000019 -83.146973 + -70.710670 -0.000006 -70.710678 + -65.328140 -27.059809 -70.710678 + -76.817780 -31.818983 -55.557022 + -76.817780 -31.818983 -55.557022 + -83.146973 -0.000013 -55.557022 + -70.710670 -0.000006 -70.710678 + -83.146973 -0.000013 -55.557022 + -76.817780 -31.818983 -55.557022 + -85.355316 -35.355358 -38.268326 + -85.355316 -35.355358 -38.268326 + -92.387939 -0.000023 -38.268326 + -83.146973 -0.000013 -55.557022 + -92.387939 -0.000023 -38.268326 + -85.355316 -35.355358 -38.268326 + -90.612732 -37.533054 -19.509018 + -90.612732 -37.533054 -19.509018 + -98.078529 -0.000023 -19.509018 + -92.387939 -0.000023 -38.268326 + -98.078529 -0.000023 -19.509018 + -90.612732 -37.533054 -19.509018 + -92.387932 -38.268375 0.000008 + -92.387932 -38.268375 0.000008 + -100.000000 -0.000034 0.000008 + -98.078529 -0.000023 -19.509018 + -100.000000 -0.000034 0.000008 + -92.387932 -38.268375 0.000008 + -90.612732 -37.533054 19.509033 + -90.612732 -37.533054 19.509033 + -98.078529 -0.000023 19.509033 + -100.000000 -0.000034 0.000008 + -98.078529 -0.000023 19.509033 + -90.612732 -37.533054 19.509033 + -85.355309 -35.355354 38.268341 + -85.355309 -35.355354 38.268341 + -92.387932 -0.000027 38.268341 + -98.078529 -0.000023 19.509033 + -92.387932 -0.000027 38.268341 + -85.355309 -35.355354 38.268341 + -76.817780 -31.818983 55.557018 + -76.817780 -31.818983 55.557018 + -83.146973 -0.000013 55.557018 + -92.387932 -0.000027 38.268341 + -83.146973 -0.000013 55.557018 + -76.817780 -31.818983 55.557018 + -65.328140 -27.059809 70.710678 + -65.328140 -27.059809 70.710678 + -70.710670 -0.000006 70.710678 + -83.146973 -0.000013 55.557018 + -70.710670 -0.000006 70.710678 + -65.328140 -27.059809 70.710678 + -51.327980 -21.260763 83.146957 + -51.327980 -21.260763 83.146957 + -55.557014 -0.000015 83.146957 + -70.710670 -0.000006 70.710678 + -55.557014 -0.000015 83.146957 + -51.327980 -21.260763 83.146957 + -35.355331 -14.644668 92.387955 + -35.355331 -14.644668 92.387955 + -38.268341 -0.000008 92.387955 + -55.557014 -0.000015 83.146957 + -38.268341 -0.000008 92.387955 + -35.355331 -14.644668 92.387955 + -18.023989 -7.465785 98.078529 + -18.023989 -7.465785 98.078529 + -19.509027 -0.000003 98.078529 + -38.268341 -0.000008 92.387955 + -18.023989 -7.465785 98.078529 + 0.000000 0.000000 100.000000 + -19.509027 -0.000003 98.078529 + -13.794962 -13.794968 98.078529 + 0.000000 0.000000 100.000000 + -18.023989 -7.465785 98.078529 + -35.355331 -14.644668 92.387955 + -27.059795 -27.059809 92.387955 + -13.794962 -13.794968 98.078529 + -13.794962 -13.794968 98.078529 + -18.023989 -7.465785 98.078529 + -35.355331 -14.644668 92.387955 + -51.327980 -21.260763 83.146957 + -39.284725 -39.284752 83.146957 + -27.059795 -27.059809 92.387955 + -27.059795 -27.059809 92.387955 + -35.355331 -14.644668 92.387955 + -51.327980 -21.260763 83.146957 + -65.328140 -27.059809 70.710678 + -49.999992 -50.000000 70.710678 + -39.284725 -39.284752 83.146957 + -39.284725 -39.284752 83.146957 + -51.327980 -21.260763 83.146957 + -65.328140 -27.059809 70.710678 + -76.817780 -31.818983 55.557018 + -58.793777 -58.793800 55.557018 + -49.999992 -50.000000 70.710678 + -49.999992 -50.000000 70.710678 + -65.328140 -27.059809 70.710678 + -76.817780 -31.818983 55.557018 + -85.355309 -35.355354 38.268341 + -65.328110 -65.328156 38.268341 + -58.793777 -58.793800 55.557018 + -58.793777 -58.793800 55.557018 + -76.817780 -31.818983 55.557018 + -85.355309 -35.355354 38.268341 + -90.612732 -37.533054 19.509033 + -69.351967 -69.352013 19.509033 + -65.328110 -65.328156 38.268341 + -65.328110 -65.328156 38.268341 + -85.355309 -35.355354 38.268341 + -90.612732 -37.533054 19.509033 + -92.387932 -38.268375 0.000008 + -70.710640 -70.710701 0.000008 + -69.351967 -69.352013 19.509033 + -69.351967 -69.352013 19.509033 + -90.612732 -37.533054 19.509033 + -92.387932 -38.268375 0.000008 + -90.612732 -37.533054 -19.509018 + -69.351967 -69.352013 -19.509018 + -70.710640 -70.710701 0.000008 + -70.710640 -70.710701 0.000008 + -92.387932 -38.268375 0.000008 + -90.612732 -37.533054 -19.509018 + -85.355316 -35.355358 -38.268326 + -65.328110 -65.328156 -38.268326 + -69.351967 -69.352013 -19.509018 + -69.351967 -69.352013 -19.509018 + -90.612732 -37.533054 -19.509018 + -85.355316 -35.355358 -38.268326 + -76.817780 -31.818983 -55.557022 + -58.793777 -58.793800 -55.557022 + -65.328110 -65.328156 -38.268326 + -65.328110 -65.328156 -38.268326 + -85.355316 -35.355358 -38.268326 + -76.817780 -31.818983 -55.557022 + -65.328140 -27.059809 -70.710678 + -49.999992 -50.000000 -70.710678 + -58.793777 -58.793800 -55.557022 + -58.793777 -58.793800 -55.557022 + -76.817780 -31.818983 -55.557022 + -65.328140 -27.059809 -70.710678 + -51.327961 -21.260759 -83.146973 + -39.284714 -39.284740 -83.146973 + -49.999992 -50.000000 -70.710678 + -49.999992 -50.000000 -70.710678 + -65.328140 -27.059809 -70.710678 + -51.327961 -21.260759 -83.146973 + -35.355309 -14.644667 -92.387970 + -27.059772 -27.059799 -92.387970 + -39.284714 -39.284740 -83.146973 + -39.284714 -39.284740 -83.146973 + -51.327961 -21.260759 -83.146973 + -35.355309 -14.644667 -92.387970 + -18.023966 -7.465777 -98.078522 + -13.794943 -13.794952 -98.078522 + -27.059772 -27.059799 -92.387970 + -27.059772 -27.059799 -92.387970 + -35.355309 -14.644667 -92.387970 + -18.023966 -7.465777 -98.078522 + -0.000012 -0.000030 -100.000000 + -13.794943 -13.794952 -98.078522 + -18.023966 -7.465777 -98.078522 + -0.000012 -0.000030 -100.000000 + -7.465765 -18.023972 -98.078522 + -13.794943 -13.794952 -98.078522 + -13.794943 -13.794952 -98.078522 + -7.465765 -18.023972 -98.078522 + -14.644632 -35.355324 -92.387970 + -14.644632 -35.355324 -92.387970 + -27.059772 -27.059799 -92.387970 + -13.794943 -13.794952 -98.078522 + -27.059772 -27.059799 -92.387970 + -14.644632 -35.355324 -92.387970 + -21.260723 -51.327976 -83.146973 + -21.260723 -51.327976 -83.146973 + -39.284714 -39.284740 -83.146973 + -27.059772 -27.059799 -92.387970 + -39.284714 -39.284740 -83.146973 + -21.260723 -51.327976 -83.146973 + -27.059797 -65.328140 -70.710678 + -27.059797 -65.328140 -70.710678 + -49.999992 -50.000000 -70.710678 + -39.284714 -39.284740 -83.146973 + -49.999992 -50.000000 -70.710678 + -27.059797 -65.328140 -70.710678 + -31.818953 -76.817795 -55.557022 + -31.818953 -76.817795 -55.557022 + -58.793777 -58.793800 -55.557022 + -49.999992 -50.000000 -70.710678 + -58.793777 -58.793800 -55.557022 + -31.818953 -76.817795 -55.557022 + -35.355297 -85.355331 -38.268326 + -35.355297 -85.355331 -38.268326 + -65.328110 -65.328156 -38.268326 + -58.793777 -58.793800 -55.557022 + -65.328110 -65.328156 -38.268326 + -35.355297 -85.355331 -38.268326 + -37.532993 -90.612755 -19.509018 + -37.532993 -90.612755 -19.509018 + -69.351967 -69.352013 -19.509018 + -65.328110 -65.328156 -38.268326 + -69.351967 -69.352013 -19.509018 + -37.532993 -90.612755 -19.509018 + -38.268295 -92.387962 0.000008 + -38.268295 -92.387962 0.000008 + -70.710640 -70.710701 0.000008 + -69.351967 -69.352013 -19.509018 + -70.710640 -70.710701 0.000008 + -38.268295 -92.387962 0.000008 + -37.532993 -90.612755 19.509033 + -37.532993 -90.612755 19.509033 + -69.351967 -69.352013 19.509033 + -70.710640 -70.710701 0.000008 + -69.351967 -69.352013 19.509033 + -37.532993 -90.612755 19.509033 + -35.355297 -85.355331 38.268341 + -35.355297 -85.355331 38.268341 + -65.328110 -65.328156 38.268341 + -69.351967 -69.352013 19.509033 + -65.328110 -65.328156 38.268341 + -35.355297 -85.355331 38.268341 + -31.818953 -76.817795 55.557018 + -31.818953 -76.817795 55.557018 + -58.793777 -58.793800 55.557018 + -65.328110 -65.328156 38.268341 + -58.793777 -58.793800 55.557018 + -31.818953 -76.817795 55.557018 + -27.059797 -65.328140 70.710678 + -27.059797 -65.328140 70.710678 + -49.999992 -50.000000 70.710678 + -58.793777 -58.793800 55.557018 + -49.999992 -50.000000 70.710678 + -27.059797 -65.328140 70.710678 + -21.260729 -51.327991 83.146957 + -21.260729 -51.327991 83.146957 + -39.284725 -39.284752 83.146957 + -49.999992 -50.000000 70.710678 + -39.284725 -39.284752 83.146957 + -21.260729 -51.327991 83.146957 + -14.644650 -35.355339 92.387955 + -14.644650 -35.355339 92.387955 + -27.059795 -27.059809 92.387955 + -39.284725 -39.284752 83.146957 + -27.059795 -27.059809 92.387955 + -14.644650 -35.355339 92.387955 + -7.465777 -18.023993 98.078529 + -7.465777 -18.023993 98.078529 + -13.794962 -13.794968 98.078529 + -27.059795 -27.059809 92.387955 + -7.465777 -18.023993 98.078529 + 0.000000 0.000000 100.000000 + -13.794962 -13.794968 98.078529 + 0.000006 -19.509026 98.078529 + 0.000000 0.000000 100.000000 + -7.465777 -18.023993 98.078529 + -14.644650 -35.355339 92.387955 + 0.000011 -38.268341 92.387955 + 0.000006 -19.509026 98.078529 + 0.000006 -19.509026 98.078529 + -7.465777 -18.023993 98.078529 + -14.644650 -35.355339 92.387955 + -21.260729 -51.327991 83.146957 + 0.000023 -55.557007 83.146957 + 0.000011 -38.268341 92.387955 + 0.000011 -38.268341 92.387955 + -14.644650 -35.355339 92.387955 + -21.260729 -51.327991 83.146957 + -27.059797 -65.328140 70.710678 + 0.000006 -70.710670 70.710678 + 0.000023 -55.557007 83.146957 + 0.000023 -55.557007 83.146957 + -21.260729 -51.327991 83.146957 + -27.059797 -65.328140 70.710678 + -31.818953 -76.817795 55.557018 + 0.000021 -83.146973 55.557018 + 0.000006 -70.710670 70.710678 + 0.000006 -70.710670 70.710678 + -27.059797 -65.328140 70.710678 + -31.818953 -76.817795 55.557018 + -35.355297 -85.355331 38.268341 + 0.000038 -92.387924 38.268341 + 0.000021 -83.146973 55.557018 + 0.000021 -83.146973 55.557018 + -31.818953 -76.817795 55.557018 + -35.355297 -85.355331 38.268341 + -37.532993 -90.612755 19.509033 + 0.000038 -98.078522 19.509033 + 0.000038 -92.387924 38.268341 + 0.000038 -92.387924 38.268341 + -35.355297 -85.355331 38.268341 + -37.532993 -90.612755 19.509033 + -38.268295 -92.387962 0.000008 + 0.000050 -99.999992 0.000008 + 0.000038 -98.078522 19.509033 + 0.000038 -98.078522 19.509033 + -37.532993 -90.612755 19.509033 + -38.268295 -92.387962 0.000008 + -37.532993 -90.612755 -19.509018 + 0.000038 -98.078522 -19.509018 + 0.000050 -99.999992 0.000008 + 0.000050 -99.999992 0.000008 + -38.268295 -92.387962 0.000008 + -37.532993 -90.612755 -19.509018 + -35.355297 -85.355331 -38.268326 + 0.000038 -92.387924 -38.268326 + 0.000038 -98.078522 -19.509018 + 0.000038 -98.078522 -19.509018 + -37.532993 -90.612755 -19.509018 + -35.355297 -85.355331 -38.268326 + -31.818953 -76.817795 -55.557022 + 0.000021 -83.146973 -55.557022 + 0.000038 -92.387924 -38.268326 + 0.000038 -92.387924 -38.268326 + -35.355297 -85.355331 -38.268326 + -31.818953 -76.817795 -55.557022 + -27.059797 -65.328140 -70.710678 + 0.000006 -70.710670 -70.710678 + 0.000021 -83.146973 -55.557022 + 0.000021 -83.146973 -55.557022 + -31.818953 -76.817795 -55.557022 + -27.059797 -65.328140 -70.710678 + -21.260723 -51.327976 -83.146973 + 0.000021 -55.556992 -83.146973 + 0.000006 -70.710670 -70.710678 + 0.000006 -70.710670 -70.710678 + -27.059797 -65.328140 -70.710678 + -21.260723 -51.327976 -83.146973 + -14.644632 -35.355324 -92.387970 + 0.000022 -38.268318 -92.387970 + 0.000021 -55.556992 -83.146973 + 0.000021 -55.556992 -83.146973 + -21.260723 -51.327976 -83.146973 + -14.644632 -35.355324 -92.387970 + -7.465765 -18.023972 -98.078522 + 0.000008 -19.509003 -98.078522 + 0.000022 -38.268318 -92.387970 + 0.000022 -38.268318 -92.387970 + -14.644632 -35.355324 -92.387970 + -7.465765 -18.023972 -98.078522 + -0.000012 -0.000030 -100.000000 + 0.000008 -19.509003 -98.078522 + -7.465765 -18.023972 -98.078522 + -0.000012 -0.000030 -100.000000 + 7.465780 -18.023964 -98.078522 + 0.000008 -19.509003 -98.078522 + 0.000008 -19.509003 -98.078522 + 7.465780 -18.023964 -98.078522 + 14.644672 -35.355309 -92.387970 + 14.644672 -35.355309 -92.387970 + 0.000022 -38.268318 -92.387970 + 0.000008 -19.509003 -98.078522 + 0.000022 -38.268318 -92.387970 + 14.644672 -35.355309 -92.387970 + 21.260761 -51.327957 -83.146973 + 21.260761 -51.327957 -83.146973 + 0.000021 -55.556992 -83.146973 + 0.000022 -38.268318 -92.387970 + 0.000021 -55.556992 -83.146973 + 21.260761 -51.327957 -83.146973 + 27.059809 -65.328140 -70.710678 + 27.059809 -65.328140 -70.710678 + 0.000006 -70.710670 -70.710678 + 0.000021 -55.556992 -83.146973 + 0.000006 -70.710670 -70.710678 + 27.059809 -65.328140 -70.710678 + 31.818991 -76.817780 -55.557022 + 31.818991 -76.817780 -55.557022 + 0.000021 -83.146973 -55.557022 + 0.000006 -70.710670 -70.710678 + 0.000021 -83.146973 -55.557022 + 31.818991 -76.817780 -55.557022 + 35.355366 -85.355293 -38.268326 + 35.355366 -85.355293 -38.268326 + 0.000038 -92.387924 -38.268326 + 0.000021 -83.146973 -55.557022 + 0.000038 -92.387924 -38.268326 + 35.355366 -85.355293 -38.268326 + 37.533062 -90.612724 -19.509018 + 37.533062 -90.612724 -19.509018 + 0.000038 -98.078522 -19.509018 + 0.000038 -92.387924 -38.268326 + 0.000038 -98.078522 -19.509018 + 37.533062 -90.612724 -19.509018 + 38.268387 -92.387932 0.000008 + 38.268387 -92.387932 0.000008 + 0.000050 -99.999992 0.000008 + 0.000038 -98.078522 -19.509018 + 0.000050 -99.999992 0.000008 + 38.268387 -92.387932 0.000008 + 37.533062 -90.612724 19.509033 + 37.533062 -90.612724 19.509033 + 0.000038 -98.078522 19.509033 + 0.000050 -99.999992 0.000008 + 0.000038 -98.078522 19.509033 + 37.533062 -90.612724 19.509033 + 35.355366 -85.355293 38.268341 + 35.355366 -85.355293 38.268341 + 0.000038 -92.387924 38.268341 + 0.000038 -98.078522 19.509033 + 0.000038 -92.387924 38.268341 + 35.355366 -85.355293 38.268341 + 31.818991 -76.817780 55.557018 + 31.818991 -76.817780 55.557018 + 0.000021 -83.146973 55.557018 + 0.000038 -92.387924 38.268341 + 0.000021 -83.146973 55.557018 + 31.818991 -76.817780 55.557018 + 27.059809 -65.328140 70.710678 + 27.059809 -65.328140 70.710678 + 0.000006 -70.710670 70.710678 + 0.000021 -83.146973 55.557018 + 0.000006 -70.710670 70.710678 + 27.059809 -65.328140 70.710678 + 21.260769 -51.327972 83.146957 + 21.260769 -51.327972 83.146957 + 0.000023 -55.557007 83.146957 + 0.000006 -70.710670 70.710678 + 0.000023 -55.557007 83.146957 + 21.260769 -51.327972 83.146957 + 14.644671 -35.355331 92.387955 + 14.644671 -35.355331 92.387955 + 0.000011 -38.268341 92.387955 + 0.000023 -55.557007 83.146957 + 0.000011 -38.268341 92.387955 + 14.644671 -35.355331 92.387955 + 7.465786 -18.023987 98.078529 + 7.465786 -18.023987 98.078529 + 0.000006 -19.509026 98.078529 + 0.000011 -38.268341 92.387955 + 7.465786 -18.023987 98.078529 + 0.000000 0.000000 100.000000 + 0.000006 -19.509026 98.078529 + 13.794969 -13.794960 98.078529 + 0.000000 0.000000 100.000000 + 7.465786 -18.023987 98.078529 + 14.644671 -35.355331 92.387955 + 27.059813 -27.059793 92.387955 + 13.794969 -13.794960 98.078529 + 13.794969 -13.794960 98.078529 + 7.465786 -18.023987 98.078529 + 14.644671 -35.355331 92.387955 + 21.260769 -51.327972 83.146957 + 39.284756 -39.284714 83.146957 + 27.059813 -27.059793 92.387955 + 27.059813 -27.059793 92.387955 + 14.644671 -35.355331 92.387955 + 21.260769 -51.327972 83.146957 + 27.059809 -65.328140 70.710678 + 50.000000 -49.999992 70.710678 + 39.284756 -39.284714 83.146957 + 39.284756 -39.284714 83.146957 + 21.260769 -51.327972 83.146957 + 27.059809 -65.328140 70.710678 + 31.818991 -76.817780 55.557018 + 58.793808 -58.793774 55.557018 + 50.000000 -49.999992 70.710678 + 50.000000 -49.999992 70.710678 + 27.059809 -65.328140 70.710678 + 31.818991 -76.817780 55.557018 + 35.355366 -85.355293 38.268341 + 65.328156 -65.328094 38.268341 + 58.793808 -58.793774 55.557018 + 58.793808 -58.793774 55.557018 + 31.818991 -76.817780 55.557018 + 35.355366 -85.355293 38.268341 + 37.533062 -90.612724 19.509033 + 69.352020 -69.351959 19.509033 + 65.328156 -65.328094 38.268341 + 65.328156 -65.328094 38.268341 + 35.355366 -85.355293 38.268341 + 37.533062 -90.612724 19.509033 + 38.268387 -92.387932 0.000008 + 70.710709 -70.710640 0.000008 + 69.352020 -69.351959 19.509033 + 69.352020 -69.351959 19.509033 + 37.533062 -90.612724 19.509033 + 38.268387 -92.387932 0.000008 + 37.533062 -90.612724 -19.509018 + 69.352020 -69.351959 -19.509018 + 70.710709 -70.710640 0.000008 + 70.710709 -70.710640 0.000008 + 38.268387 -92.387932 0.000008 + 37.533062 -90.612724 -19.509018 + 35.355366 -85.355293 -38.268326 + 65.328156 -65.328094 -38.268326 + 69.352020 -69.351959 -19.509018 + 69.352020 -69.351959 -19.509018 + 37.533062 -90.612724 -19.509018 + 35.355366 -85.355293 -38.268326 + 31.818991 -76.817780 -55.557022 + 58.793808 -58.793774 -55.557022 + 65.328156 -65.328094 -38.268326 + 65.328156 -65.328094 -38.268326 + 35.355366 -85.355293 -38.268326 + 31.818991 -76.817780 -55.557022 + 27.059809 -65.328140 -70.710678 + 50.000000 -49.999992 -70.710678 + 58.793808 -58.793774 -55.557022 + 58.793808 -58.793774 -55.557022 + 31.818991 -76.817780 -55.557022 + 27.059809 -65.328140 -70.710678 + 21.260761 -51.327957 -83.146973 + 39.284744 -39.284706 -83.146973 + 50.000000 -49.999992 -70.710678 + 50.000000 -49.999992 -70.710678 + 27.059809 -65.328140 -70.710678 + 21.260761 -51.327957 -83.146973 + 14.644672 -35.355309 -92.387970 + 27.059805 -27.059769 -92.387970 + 39.284744 -39.284706 -83.146973 + 39.284744 -39.284706 -83.146973 + 21.260761 -51.327957 -83.146973 + 14.644672 -35.355309 -92.387970 + 7.465780 -18.023964 -98.078522 + 13.794954 -13.794939 -98.078522 + 27.059805 -27.059769 -92.387970 + 27.059805 -27.059769 -92.387970 + 14.644672 -35.355309 -92.387970 + 7.465780 -18.023964 -98.078522 + -0.000012 -0.000030 -100.000000 + 13.794954 -13.794939 -98.078522 + 7.465780 -18.023964 -98.078522 + -0.000012 -0.000030 -100.000000 + 18.023972 -7.465761 -98.078522 + 13.794954 -13.794939 -98.078522 + 13.794954 -13.794939 -98.078522 + 18.023972 -7.465761 -98.078522 + 35.355324 -14.644626 -92.387970 + 35.355324 -14.644626 -92.387970 + 27.059805 -27.059769 -92.387970 + 13.794954 -13.794939 -98.078522 + 27.059805 -27.059769 -92.387970 + 35.355324 -14.644626 -92.387970 + 51.327976 -21.260712 -83.146973 + 51.327976 -21.260712 -83.146973 + 39.284744 -39.284706 -83.146973 + 27.059805 -27.059769 -92.387970 + 39.284744 -39.284706 -83.146973 + 51.327976 -21.260712 -83.146973 + 65.328140 -27.059797 -70.710678 + 65.328140 -27.059797 -70.710678 + 50.000000 -49.999992 -70.710678 + 39.284744 -39.284706 -83.146973 + 50.000000 -49.999992 -70.710678 + 65.328140 -27.059797 -70.710678 + 76.817795 -31.818945 -55.557022 + 76.817795 -31.818945 -55.557022 + 58.793808 -58.793774 -55.557022 + 50.000000 -49.999992 -70.710678 + 58.793808 -58.793774 -55.557022 + 76.817795 -31.818945 -55.557022 + 85.355324 -35.355282 -38.268326 + 85.355324 -35.355282 -38.268326 + 65.328156 -65.328094 -38.268326 + 58.793808 -58.793774 -55.557022 + 65.328156 -65.328094 -38.268326 + 85.355324 -35.355282 -38.268326 + 90.612755 -37.532982 -19.509018 + 90.612755 -37.532982 -19.509018 + 69.352020 -69.351959 -19.509018 + 65.328156 -65.328094 -38.268326 + 69.352020 -69.351959 -19.509018 + 90.612755 -37.532982 -19.509018 + 92.387962 -38.268291 0.000008 + 92.387962 -38.268291 0.000008 + 70.710709 -70.710640 0.000008 + 69.352020 -69.351959 -19.509018 + 70.710709 -70.710640 0.000008 + 92.387962 -38.268291 0.000008 + 90.612755 -37.532982 19.509033 + 90.612755 -37.532982 19.509033 + 69.352020 -69.351959 19.509033 + 70.710709 -70.710640 0.000008 + 69.352020 -69.351959 19.509033 + 90.612755 -37.532982 19.509033 + 85.355324 -35.355282 38.268341 + 85.355324 -35.355282 38.268341 + 65.328156 -65.328094 38.268341 + 69.352020 -69.351959 19.509033 + 65.328156 -65.328094 38.268341 + 85.355324 -35.355282 38.268341 + 76.817795 -31.818945 55.557018 + 76.817795 -31.818945 55.557018 + 58.793808 -58.793774 55.557018 + 65.328156 -65.328094 38.268341 + 58.793808 -58.793774 55.557018 + 76.817795 -31.818945 55.557018 + 65.328140 -27.059797 70.710678 + 65.328140 -27.059797 70.710678 + 50.000000 -49.999992 70.710678 + 58.793808 -58.793774 55.557018 + 50.000000 -49.999992 70.710678 + 65.328140 -27.059797 70.710678 + 51.327991 -21.260715 83.146957 + 51.327991 -21.260715 83.146957 + 39.284756 -39.284714 83.146957 + 50.000000 -49.999992 70.710678 + 39.284756 -39.284714 83.146957 + 51.327991 -21.260715 83.146957 + 35.355339 -14.644646 92.387955 + 35.355339 -14.644646 92.387955 + 27.059813 -27.059793 92.387955 + 39.284756 -39.284714 83.146957 + 27.059813 -27.059793 92.387955 + 35.355339 -14.644646 92.387955 + 18.023991 -7.465775 98.078529 + 18.023991 -7.465775 98.078529 + 13.794969 -13.794960 98.078529 + 27.059813 -27.059793 92.387955 + 18.023991 -7.465775 98.078529 + 0.000000 0.000000 100.000000 + 13.794969 -13.794960 98.078529 + 19.509024 0.000007 98.078529 + 0.000000 0.000000 100.000000 + 18.023991 -7.465775 98.078529 + 35.355339 -14.644646 92.387955 + 38.268345 0.000000 92.387955 + 19.509024 0.000007 98.078529 + 19.509024 0.000007 98.078529 + 18.023991 -7.465775 98.078529 + 35.355339 -14.644646 92.387955 + 51.327991 -21.260715 83.146957 + 55.557022 0.000000 83.146957 + 38.268345 0.000000 92.387955 + 38.268345 0.000000 92.387955 + 35.355339 -14.644646 92.387955 + 51.327991 -21.260715 83.146957 + 65.328140 -27.059797 70.710678 + 70.710670 0.000006 70.710678 + 55.557022 0.000000 83.146957 + 55.557022 0.000000 83.146957 + 51.327991 -21.260715 83.146957 + 65.328140 -27.059797 70.710678 + 76.817795 -31.818945 55.557018 + 83.146965 0.000000 55.557018 + 70.710670 0.000006 70.710678 + 70.710670 0.000006 70.710678 + 65.328140 -27.059797 70.710678 + 76.817795 -31.818945 55.557018 + 85.355324 -35.355282 38.268341 + 92.387955 0.000000 38.268341 + 83.146965 0.000000 55.557018 + 83.146965 0.000000 55.557018 + 76.817795 -31.818945 55.557018 + 85.355324 -35.355282 38.268341 + 90.612755 -37.532982 19.509033 + 98.078529 0.000000 19.509035 + 92.387955 0.000000 38.268341 + 92.387955 0.000000 38.268341 + 85.355324 -35.355282 38.268341 + 90.612755 -37.532982 19.509033 + 92.387962 -38.268291 0.000008 + 100.000000 0.000000 0.000008 + 98.078529 0.000000 19.509035 + 98.078529 0.000000 19.509035 + 90.612755 -37.532982 19.509033 + 92.387962 -38.268291 0.000008 + 90.612755 -37.532982 -19.509018 + 98.078529 0.000000 -19.509022 + 100.000000 0.000000 0.000008 + 100.000000 0.000000 0.000008 + 92.387962 -38.268291 0.000008 + 90.612755 -37.532982 -19.509018 + 85.355324 -35.355282 -38.268326 + 92.387962 0.000000 -38.268330 + 98.078529 0.000000 -19.509022 + 98.078529 0.000000 -19.509022 + 90.612755 -37.532982 -19.509018 + 85.355324 -35.355282 -38.268326 + 76.817795 -31.818945 -55.557022 + 83.146965 0.000000 -55.557018 + 92.387962 0.000000 -38.268330 + 92.387962 0.000000 -38.268330 + 85.355324 -35.355282 -38.268326 + 76.817795 -31.818945 -55.557022 + 65.328140 -27.059797 -70.710678 + 70.710678 0.000000 -70.710678 + 83.146965 0.000000 -55.557018 + 83.146965 0.000000 -55.557018 + 76.817795 -31.818945 -55.557022 + 65.328140 -27.059797 -70.710678 + 51.327976 -21.260712 -83.146973 + 55.556988 0.000031 -83.146973 + 70.710678 0.000000 -70.710678 + 70.710678 0.000000 -70.710678 + 65.328140 -27.059797 -70.710678 + 51.327976 -21.260712 -83.146973 + 35.355324 -14.644626 -92.387970 + 38.268330 0.000000 -92.387962 + 55.556988 0.000031 -83.146973 + 55.556988 0.000031 -83.146973 + 51.327976 -21.260712 -83.146973 + 35.355324 -14.644626 -92.387970 + 18.023972 -7.465761 -98.078522 + 19.509008 0.000000 -98.078529 + 38.268330 0.000000 -92.387962 + 38.268330 0.000000 -92.387962 + 35.355324 -14.644626 -92.387970 + 18.023972 -7.465761 -98.078522 + -0.000012 -0.000030 -100.000000 + 19.509008 0.000000 -98.078529 + 18.023972 -7.465761 -98.078522 + + + 0.097998 0.019494 -0.994996 + 0.097998 0.019494 -0.994996 + 0.097998 0.019494 -0.994996 + 0.289801 0.057645 -0.955349 + 0.289801 0.057645 -0.955349 + 0.289801 0.057645 -0.955349 + 0.289801 0.057645 -0.955349 + 0.289801 0.057645 -0.955349 + 0.289801 0.057645 -0.955349 + 0.469338 0.093357 -0.878070 + 0.469338 0.093357 -0.878070 + 0.469338 0.093357 -0.878070 + 0.469338 0.093357 -0.878070 + 0.469338 0.093357 -0.878070 + 0.469338 0.093357 -0.878070 + 0.629402 0.125196 -0.766929 + 0.629402 0.125196 -0.766929 + 0.629402 0.125196 -0.766929 + 0.629402 0.125196 -0.766929 + 0.629402 0.125196 -0.766929 + 0.629402 0.125196 -0.766929 + 0.764031 0.151975 -0.627024 + 0.764031 0.151975 -0.627024 + 0.764031 0.151975 -0.627024 + 0.764031 0.151975 -0.627024 + 0.764031 0.151975 -0.627024 + 0.764031 0.151975 -0.627024 + 0.868657 0.172787 -0.464307 + 0.868657 0.172787 -0.464307 + 0.868657 0.172787 -0.464307 + 0.868657 0.172787 -0.464307 + 0.868657 0.172787 -0.464307 + 0.868657 0.172787 -0.464307 + 0.940062 0.186990 -0.285164 + 0.940062 0.186990 -0.285164 + 0.940062 0.186990 -0.285164 + 0.940062 0.186990 -0.285164 + 0.940062 0.186990 -0.285164 + 0.940062 0.186990 -0.285164 + 0.976241 0.194187 -0.096151 + 0.976241 0.194187 -0.096151 + 0.976241 0.194187 -0.096151 + 0.976241 0.194187 -0.096151 + 0.976241 0.194187 -0.096151 + 0.976241 0.194187 -0.096151 + 0.976241 0.194187 0.096151 + 0.976241 0.194187 0.096151 + 0.976241 0.194187 0.096151 + 0.976241 0.194187 0.096151 + 0.976241 0.194187 0.096151 + 0.976241 0.194187 0.096151 + 0.940062 0.186990 0.285165 + 0.940062 0.186990 0.285165 + 0.940062 0.186990 0.285165 + 0.940062 0.186990 0.285165 + 0.940062 0.186990 0.285165 + 0.940062 0.186990 0.285165 + 0.868657 0.172787 0.464307 + 0.868657 0.172787 0.464307 + 0.868657 0.172787 0.464307 + 0.868657 0.172787 0.464307 + 0.868657 0.172787 0.464307 + 0.868657 0.172787 0.464307 + 0.764031 0.151975 0.627024 + 0.764031 0.151975 0.627024 + 0.764031 0.151975 0.627024 + 0.764031 0.151975 0.627024 + 0.764031 0.151975 0.627024 + 0.764031 0.151975 0.627024 + 0.629402 0.125196 0.766928 + 0.629402 0.125196 0.766928 + 0.629402 0.125196 0.766928 + 0.629402 0.125196 0.766928 + 0.629402 0.125196 0.766928 + 0.629402 0.125196 0.766928 + 0.469338 0.093357 0.878070 + 0.469338 0.093357 0.878070 + 0.469338 0.093357 0.878070 + 0.469338 0.093357 0.878070 + 0.469338 0.093357 0.878070 + 0.469338 0.093357 0.878070 + 0.289802 0.057645 0.955349 + 0.289802 0.057645 0.955349 + 0.289802 0.057645 0.955349 + 0.289802 0.057645 0.955349 + 0.289802 0.057645 0.955349 + 0.289802 0.057645 0.955349 + 0.097998 0.019493 0.994996 + 0.097998 0.019493 0.994996 + 0.097998 0.019493 0.994996 + 0.083079 0.055512 0.994996 + 0.083079 0.055512 0.994996 + 0.083079 0.055512 0.994996 + 0.245682 0.164160 0.955349 + 0.245682 0.164160 0.955349 + 0.245682 0.164160 0.955349 + 0.245682 0.164160 0.955349 + 0.245682 0.164160 0.955349 + 0.245682 0.164160 0.955349 + 0.397886 0.265859 0.878070 + 0.397886 0.265859 0.878070 + 0.397886 0.265859 0.878070 + 0.397886 0.265859 0.878070 + 0.397886 0.265859 0.878070 + 0.397886 0.265859 0.878070 + 0.533581 0.356528 0.766929 + 0.533581 0.356528 0.766929 + 0.533581 0.356528 0.766929 + 0.533581 0.356528 0.766929 + 0.533581 0.356528 0.766929 + 0.533581 0.356528 0.766929 + 0.647714 0.432789 0.627024 + 0.647714 0.432789 0.627024 + 0.647714 0.432789 0.627024 + 0.647714 0.432789 0.627024 + 0.647714 0.432789 0.627024 + 0.647714 0.432789 0.627024 + 0.736411 0.492055 0.464306 + 0.736411 0.492055 0.464306 + 0.736411 0.492055 0.464306 + 0.736411 0.492055 0.464306 + 0.736411 0.492055 0.464306 + 0.736411 0.492055 0.464306 + 0.796946 0.532502 0.285165 + 0.796946 0.532502 0.285165 + 0.796946 0.532502 0.285165 + 0.796946 0.532502 0.285165 + 0.796946 0.532502 0.285165 + 0.796946 0.532502 0.285165 + 0.827617 0.552996 0.096151 + 0.827617 0.552996 0.096151 + 0.827617 0.552996 0.096151 + 0.827617 0.552996 0.096151 + 0.827617 0.552996 0.096151 + 0.827617 0.552996 0.096151 + 0.827617 0.552996 -0.096151 + 0.827617 0.552996 -0.096151 + 0.827617 0.552996 -0.096151 + 0.827617 0.552996 -0.096151 + 0.827617 0.552996 -0.096151 + 0.827617 0.552996 -0.096151 + 0.796946 0.532502 -0.285164 + 0.796946 0.532502 -0.285164 + 0.796946 0.532502 -0.285164 + 0.796946 0.532502 -0.285164 + 0.796946 0.532502 -0.285164 + 0.796946 0.532502 -0.285164 + 0.736412 0.492055 -0.464306 + 0.736412 0.492055 -0.464306 + 0.736412 0.492055 -0.464306 + 0.736412 0.492055 -0.464306 + 0.736412 0.492055 -0.464306 + 0.736412 0.492055 -0.464306 + 0.647714 0.432789 -0.627025 + 0.647714 0.432789 -0.627025 + 0.647714 0.432789 -0.627025 + 0.647714 0.432789 -0.627025 + 0.647714 0.432789 -0.627025 + 0.647714 0.432789 -0.627025 + 0.533581 0.356528 -0.766928 + 0.533581 0.356528 -0.766928 + 0.533581 0.356528 -0.766928 + 0.533581 0.356528 -0.766928 + 0.533581 0.356528 -0.766928 + 0.533581 0.356528 -0.766928 + 0.397886 0.265859 -0.878070 + 0.397886 0.265859 -0.878070 + 0.397886 0.265859 -0.878070 + 0.397886 0.265859 -0.878070 + 0.397886 0.265859 -0.878070 + 0.397886 0.265859 -0.878070 + 0.245681 0.164159 -0.955350 + 0.245681 0.164159 -0.955350 + 0.245681 0.164159 -0.955350 + 0.245681 0.164159 -0.955350 + 0.245681 0.164159 -0.955350 + 0.245681 0.164159 -0.955350 + 0.083079 0.055512 -0.994996 + 0.083079 0.055512 -0.994996 + 0.083079 0.055512 -0.994996 + 0.055512 0.083079 -0.994996 + 0.055512 0.083079 -0.994996 + 0.055512 0.083079 -0.994996 + 0.164159 0.245681 -0.955349 + 0.164159 0.245681 -0.955349 + 0.164159 0.245681 -0.955349 + 0.164159 0.245681 -0.955349 + 0.164159 0.245681 -0.955349 + 0.164159 0.245681 -0.955349 + 0.265859 0.397886 -0.878070 + 0.265859 0.397886 -0.878070 + 0.265859 0.397886 -0.878070 + 0.265859 0.397886 -0.878070 + 0.265859 0.397886 -0.878070 + 0.265859 0.397886 -0.878070 + 0.356527 0.533581 -0.766928 + 0.356527 0.533581 -0.766928 + 0.356527 0.533581 -0.766928 + 0.356527 0.533581 -0.766928 + 0.356527 0.533581 -0.766928 + 0.356527 0.533581 -0.766928 + 0.432789 0.647714 -0.627025 + 0.432789 0.647714 -0.627025 + 0.432789 0.647714 -0.627025 + 0.432789 0.647714 -0.627025 + 0.432789 0.647714 -0.627025 + 0.432789 0.647714 -0.627025 + 0.492054 0.736412 -0.464306 + 0.492054 0.736412 -0.464306 + 0.492054 0.736412 -0.464306 + 0.492054 0.736412 -0.464306 + 0.492054 0.736412 -0.464306 + 0.492054 0.736412 -0.464306 + 0.532502 0.796946 -0.285164 + 0.532502 0.796946 -0.285164 + 0.532502 0.796946 -0.285164 + 0.532502 0.796946 -0.285164 + 0.532502 0.796946 -0.285164 + 0.532502 0.796946 -0.285164 + 0.552996 0.827617 -0.096151 + 0.552996 0.827617 -0.096151 + 0.552996 0.827617 -0.096151 + 0.552996 0.827617 -0.096151 + 0.552996 0.827617 -0.096151 + 0.552996 0.827617 -0.096151 + 0.552996 0.827617 0.096151 + 0.552996 0.827617 0.096151 + 0.552996 0.827617 0.096151 + 0.552996 0.827617 0.096151 + 0.552996 0.827617 0.096151 + 0.552996 0.827617 0.096151 + 0.532502 0.796946 0.285165 + 0.532502 0.796946 0.285165 + 0.532502 0.796946 0.285165 + 0.532502 0.796946 0.285165 + 0.532502 0.796946 0.285165 + 0.532502 0.796946 0.285165 + 0.492054 0.736412 0.464306 + 0.492054 0.736412 0.464306 + 0.492054 0.736412 0.464306 + 0.492054 0.736412 0.464306 + 0.492054 0.736412 0.464306 + 0.492054 0.736412 0.464306 + 0.432789 0.647714 0.627025 + 0.432789 0.647714 0.627025 + 0.432789 0.647714 0.627025 + 0.432789 0.647714 0.627025 + 0.432789 0.647714 0.627025 + 0.432789 0.647714 0.627025 + 0.356527 0.533581 0.766928 + 0.356527 0.533581 0.766928 + 0.356527 0.533581 0.766928 + 0.356527 0.533581 0.766928 + 0.356527 0.533581 0.766928 + 0.356527 0.533581 0.766928 + 0.265859 0.397886 0.878070 + 0.265859 0.397886 0.878070 + 0.265859 0.397886 0.878070 + 0.265859 0.397886 0.878070 + 0.265859 0.397886 0.878070 + 0.265859 0.397886 0.878070 + 0.164160 0.245682 0.955349 + 0.164160 0.245682 0.955349 + 0.164160 0.245682 0.955349 + 0.164160 0.245682 0.955349 + 0.164160 0.245682 0.955349 + 0.164160 0.245682 0.955349 + 0.055512 0.083079 0.994996 + 0.055512 0.083079 0.994996 + 0.055512 0.083079 0.994996 + 0.019493 0.097998 0.994996 + 0.019493 0.097998 0.994996 + 0.019493 0.097998 0.994996 + 0.057645 0.289802 0.955349 + 0.057645 0.289802 0.955349 + 0.057645 0.289802 0.955349 + 0.057645 0.289802 0.955349 + 0.057645 0.289802 0.955349 + 0.057645 0.289802 0.955349 + 0.093357 0.469338 0.878070 + 0.093357 0.469338 0.878070 + 0.093357 0.469338 0.878070 + 0.093357 0.469338 0.878070 + 0.093357 0.469338 0.878070 + 0.093357 0.469338 0.878070 + 0.125196 0.629402 0.766928 + 0.125196 0.629402 0.766928 + 0.125196 0.629402 0.766928 + 0.125196 0.629402 0.766928 + 0.125196 0.629402 0.766928 + 0.125196 0.629402 0.766928 + 0.151975 0.764031 0.627025 + 0.151975 0.764031 0.627025 + 0.151975 0.764031 0.627025 + 0.151975 0.764031 0.627025 + 0.151975 0.764031 0.627025 + 0.151975 0.764031 0.627025 + 0.172786 0.868657 0.464306 + 0.172786 0.868657 0.464306 + 0.172786 0.868657 0.464306 + 0.172786 0.868657 0.464306 + 0.172786 0.868657 0.464306 + 0.172786 0.868657 0.464306 + 0.186990 0.940062 0.285165 + 0.186990 0.940062 0.285165 + 0.186990 0.940062 0.285165 + 0.186990 0.940062 0.285165 + 0.186990 0.940062 0.285165 + 0.186990 0.940062 0.285165 + 0.194186 0.976241 0.096151 + 0.194186 0.976241 0.096151 + 0.194186 0.976241 0.096151 + 0.194186 0.976241 0.096151 + 0.194186 0.976241 0.096151 + 0.194186 0.976241 0.096151 + 0.194186 0.976241 -0.096151 + 0.194186 0.976241 -0.096151 + 0.194186 0.976241 -0.096151 + 0.194186 0.976241 -0.096151 + 0.194186 0.976241 -0.096151 + 0.194186 0.976241 -0.096151 + 0.186990 0.940062 -0.285165 + 0.186990 0.940062 -0.285165 + 0.186990 0.940062 -0.285165 + 0.186990 0.940062 -0.285165 + 0.186990 0.940062 -0.285165 + 0.186990 0.940062 -0.285165 + 0.172786 0.868657 -0.464306 + 0.172786 0.868657 -0.464306 + 0.172786 0.868657 -0.464306 + 0.172786 0.868657 -0.464306 + 0.172786 0.868657 -0.464306 + 0.172786 0.868657 -0.464306 + 0.151975 0.764031 -0.627025 + 0.151975 0.764031 -0.627025 + 0.151975 0.764031 -0.627025 + 0.151975 0.764031 -0.627025 + 0.151975 0.764031 -0.627025 + 0.151975 0.764031 -0.627025 + 0.125196 0.629402 -0.766928 + 0.125196 0.629402 -0.766928 + 0.125196 0.629402 -0.766928 + 0.125196 0.629402 -0.766928 + 0.125196 0.629402 -0.766928 + 0.125196 0.629402 -0.766928 + 0.093357 0.469338 -0.878070 + 0.093357 0.469338 -0.878070 + 0.093357 0.469338 -0.878070 + 0.093357 0.469338 -0.878070 + 0.093357 0.469338 -0.878070 + 0.093357 0.469338 -0.878070 + 0.057645 0.289801 -0.955349 + 0.057645 0.289801 -0.955349 + 0.057645 0.289801 -0.955349 + 0.057645 0.289801 -0.955349 + 0.057645 0.289801 -0.955349 + 0.057645 0.289801 -0.955349 + 0.019493 0.097999 -0.994996 + 0.019493 0.097999 -0.994996 + 0.019493 0.097999 -0.994996 + -0.019493 0.097999 -0.994996 + -0.019493 0.097999 -0.994996 + -0.019493 0.097999 -0.994996 + -0.057645 0.289801 -0.955349 + -0.057645 0.289801 -0.955349 + -0.057645 0.289801 -0.955349 + -0.057645 0.289801 -0.955349 + -0.057645 0.289801 -0.955349 + -0.057645 0.289801 -0.955349 + -0.093357 0.469338 -0.878070 + -0.093357 0.469338 -0.878070 + -0.093357 0.469338 -0.878070 + -0.093357 0.469338 -0.878070 + -0.093357 0.469338 -0.878070 + -0.093357 0.469338 -0.878070 + -0.125196 0.629402 -0.766928 + -0.125196 0.629402 -0.766928 + -0.125196 0.629402 -0.766928 + -0.125196 0.629402 -0.766928 + -0.125196 0.629402 -0.766928 + -0.125196 0.629402 -0.766928 + -0.151975 0.764031 -0.627025 + -0.151975 0.764031 -0.627025 + -0.151975 0.764031 -0.627025 + -0.151975 0.764031 -0.627025 + -0.151975 0.764031 -0.627025 + -0.151975 0.764031 -0.627025 + -0.172787 0.868657 -0.464306 + -0.172787 0.868657 -0.464306 + -0.172787 0.868657 -0.464306 + -0.172787 0.868657 -0.464306 + -0.172787 0.868657 -0.464306 + -0.172787 0.868657 -0.464306 + -0.186990 0.940062 -0.285165 + -0.186990 0.940062 -0.285165 + -0.186990 0.940062 -0.285165 + -0.186990 0.940062 -0.285165 + -0.186990 0.940062 -0.285165 + -0.186990 0.940062 -0.285165 + -0.194187 0.976241 -0.096151 + -0.194187 0.976241 -0.096151 + -0.194187 0.976241 -0.096151 + -0.194187 0.976241 -0.096151 + -0.194187 0.976241 -0.096151 + -0.194187 0.976241 -0.096151 + -0.194187 0.976241 0.096151 + -0.194187 0.976241 0.096151 + -0.194187 0.976241 0.096151 + -0.194187 0.976241 0.096151 + -0.194187 0.976241 0.096151 + -0.194187 0.976241 0.096151 + -0.186990 0.940062 0.285165 + -0.186990 0.940062 0.285165 + -0.186990 0.940062 0.285165 + -0.186990 0.940062 0.285165 + -0.186990 0.940062 0.285165 + -0.186990 0.940062 0.285165 + -0.172787 0.868657 0.464306 + -0.172787 0.868657 0.464306 + -0.172787 0.868657 0.464306 + -0.172787 0.868657 0.464306 + -0.172787 0.868657 0.464306 + -0.172787 0.868657 0.464306 + -0.151975 0.764031 0.627025 + -0.151975 0.764031 0.627025 + -0.151975 0.764031 0.627025 + -0.151975 0.764031 0.627025 + -0.151975 0.764031 0.627025 + -0.151975 0.764031 0.627025 + -0.125196 0.629402 0.766929 + -0.125196 0.629402 0.766929 + -0.125196 0.629402 0.766929 + -0.125196 0.629402 0.766929 + -0.125196 0.629402 0.766929 + -0.125196 0.629402 0.766929 + -0.093357 0.469338 0.878070 + -0.093357 0.469338 0.878070 + -0.093357 0.469338 0.878070 + -0.093357 0.469338 0.878070 + -0.093357 0.469338 0.878070 + -0.093357 0.469338 0.878070 + -0.057645 0.289802 0.955349 + -0.057645 0.289802 0.955349 + -0.057645 0.289802 0.955349 + -0.057645 0.289802 0.955349 + -0.057645 0.289802 0.955349 + -0.057645 0.289802 0.955349 + -0.019493 0.097998 0.994996 + -0.019493 0.097998 0.994996 + -0.019493 0.097998 0.994996 + -0.055512 0.083079 0.994996 + -0.055512 0.083079 0.994996 + -0.055512 0.083079 0.994996 + -0.164160 0.245682 0.955349 + -0.164160 0.245682 0.955349 + -0.164160 0.245682 0.955349 + -0.164160 0.245682 0.955349 + -0.164160 0.245682 0.955349 + -0.164160 0.245682 0.955349 + -0.265859 0.397886 0.878070 + -0.265859 0.397886 0.878070 + -0.265859 0.397886 0.878070 + -0.265859 0.397886 0.878070 + -0.265859 0.397886 0.878070 + -0.265859 0.397886 0.878070 + -0.356528 0.533581 0.766929 + -0.356528 0.533581 0.766929 + -0.356528 0.533581 0.766929 + -0.356528 0.533581 0.766929 + -0.356528 0.533581 0.766929 + -0.356528 0.533581 0.766929 + -0.432789 0.647714 0.627025 + -0.432789 0.647714 0.627025 + -0.432789 0.647714 0.627025 + -0.432789 0.647714 0.627025 + -0.432789 0.647714 0.627025 + -0.432789 0.647714 0.627025 + -0.492055 0.736412 0.464306 + -0.492055 0.736412 0.464306 + -0.492055 0.736412 0.464306 + -0.492055 0.736412 0.464306 + -0.492055 0.736412 0.464306 + -0.492055 0.736412 0.464306 + -0.532502 0.796946 0.285165 + -0.532502 0.796946 0.285165 + -0.532502 0.796946 0.285165 + -0.532502 0.796946 0.285165 + -0.532502 0.796946 0.285165 + -0.532502 0.796946 0.285165 + -0.552996 0.827617 0.096151 + -0.552996 0.827617 0.096151 + -0.552996 0.827617 0.096151 + -0.552996 0.827617 0.096151 + -0.552996 0.827617 0.096151 + -0.552996 0.827617 0.096151 + -0.552996 0.827617 -0.096151 + -0.552996 0.827617 -0.096151 + -0.552996 0.827617 -0.096151 + -0.552996 0.827617 -0.096151 + -0.552996 0.827617 -0.096151 + -0.552996 0.827617 -0.096151 + -0.532502 0.796946 -0.285165 + -0.532502 0.796946 -0.285165 + -0.532502 0.796946 -0.285165 + -0.532502 0.796946 -0.285165 + -0.532502 0.796946 -0.285165 + -0.532502 0.796946 -0.285165 + -0.492055 0.736412 -0.464306 + -0.492055 0.736412 -0.464306 + -0.492055 0.736412 -0.464306 + -0.492055 0.736412 -0.464306 + -0.492055 0.736412 -0.464306 + -0.492055 0.736412 -0.464306 + -0.432789 0.647714 -0.627025 + -0.432789 0.647714 -0.627025 + -0.432789 0.647714 -0.627025 + -0.432789 0.647714 -0.627025 + -0.432789 0.647714 -0.627025 + -0.432789 0.647714 -0.627025 + -0.356528 0.533581 -0.766928 + -0.356528 0.533581 -0.766928 + -0.356528 0.533581 -0.766928 + -0.356528 0.533581 -0.766928 + -0.356528 0.533581 -0.766928 + -0.356528 0.533581 -0.766928 + -0.265859 0.397886 -0.878070 + -0.265859 0.397886 -0.878070 + -0.265859 0.397886 -0.878070 + -0.265859 0.397886 -0.878070 + -0.265859 0.397886 -0.878070 + -0.265859 0.397886 -0.878070 + -0.164159 0.245681 -0.955349 + -0.164159 0.245681 -0.955349 + -0.164159 0.245681 -0.955349 + -0.164159 0.245681 -0.955349 + -0.164159 0.245681 -0.955349 + -0.164159 0.245681 -0.955349 + -0.055512 0.083079 -0.994996 + -0.055512 0.083079 -0.994996 + -0.055512 0.083079 -0.994996 + -0.083080 0.055512 -0.994996 + -0.083080 0.055512 -0.994996 + -0.083080 0.055512 -0.994996 + -0.245681 0.164159 -0.955349 + -0.245681 0.164159 -0.955349 + -0.245681 0.164159 -0.955349 + -0.245681 0.164159 -0.955349 + -0.245681 0.164159 -0.955349 + -0.245681 0.164159 -0.955349 + -0.397886 0.265859 -0.878069 + -0.397886 0.265859 -0.878069 + -0.397886 0.265859 -0.878069 + -0.397886 0.265859 -0.878069 + -0.397886 0.265859 -0.878069 + -0.397886 0.265859 -0.878069 + -0.533581 0.356527 -0.766928 + -0.533581 0.356527 -0.766928 + -0.533581 0.356527 -0.766928 + -0.533581 0.356527 -0.766928 + -0.533581 0.356527 -0.766928 + -0.533581 0.356527 -0.766928 + -0.647714 0.432789 -0.627025 + -0.647714 0.432789 -0.627025 + -0.647714 0.432789 -0.627025 + -0.647714 0.432789 -0.627025 + -0.647714 0.432789 -0.627025 + -0.647714 0.432789 -0.627025 + -0.736412 0.492055 -0.464306 + -0.736412 0.492055 -0.464306 + -0.736412 0.492055 -0.464306 + -0.736412 0.492055 -0.464306 + -0.736412 0.492055 -0.464306 + -0.736412 0.492055 -0.464306 + -0.796946 0.532502 -0.285165 + -0.796946 0.532502 -0.285165 + -0.796946 0.532502 -0.285165 + -0.796946 0.532502 -0.285165 + -0.796946 0.532502 -0.285165 + -0.796946 0.532502 -0.285165 + -0.827617 0.552996 -0.096151 + -0.827617 0.552996 -0.096151 + -0.827617 0.552996 -0.096151 + -0.827617 0.552996 -0.096151 + -0.827617 0.552996 -0.096151 + -0.827617 0.552996 -0.096151 + -0.827617 0.552996 0.096151 + -0.827617 0.552996 0.096151 + -0.827617 0.552996 0.096151 + -0.827617 0.552996 0.096151 + -0.827617 0.552996 0.096151 + -0.827617 0.552996 0.096151 + -0.796946 0.532502 0.285165 + -0.796946 0.532502 0.285165 + -0.796946 0.532502 0.285165 + -0.796946 0.532502 0.285165 + -0.796946 0.532502 0.285165 + -0.796946 0.532502 0.285165 + -0.736412 0.492054 0.464306 + -0.736412 0.492054 0.464306 + -0.736412 0.492054 0.464306 + -0.736412 0.492054 0.464306 + -0.736412 0.492054 0.464306 + -0.736412 0.492054 0.464306 + -0.647714 0.432789 0.627025 + -0.647714 0.432789 0.627025 + -0.647714 0.432789 0.627025 + -0.647714 0.432789 0.627025 + -0.647714 0.432789 0.627025 + -0.647714 0.432789 0.627025 + -0.533581 0.356527 0.766928 + -0.533581 0.356527 0.766928 + -0.533581 0.356527 0.766928 + -0.533581 0.356527 0.766928 + -0.533581 0.356527 0.766928 + -0.533581 0.356527 0.766928 + -0.397886 0.265859 0.878070 + -0.397886 0.265859 0.878070 + -0.397886 0.265859 0.878070 + -0.397886 0.265859 0.878070 + -0.397886 0.265859 0.878070 + -0.397886 0.265859 0.878070 + -0.245682 0.164160 0.955349 + -0.245682 0.164160 0.955349 + -0.245682 0.164160 0.955349 + -0.245682 0.164160 0.955349 + -0.245682 0.164160 0.955349 + -0.245682 0.164160 0.955349 + -0.083079 0.055512 0.994996 + -0.083079 0.055512 0.994996 + -0.083079 0.055512 0.994996 + -0.097998 0.019493 0.994996 + -0.097998 0.019493 0.994996 + -0.097998 0.019493 0.994996 + -0.289802 0.057645 0.955349 + -0.289802 0.057645 0.955349 + -0.289802 0.057645 0.955349 + -0.289802 0.057645 0.955349 + -0.289802 0.057645 0.955349 + -0.289802 0.057645 0.955349 + -0.469338 0.093357 0.878069 + -0.469338 0.093357 0.878069 + -0.469338 0.093357 0.878069 + -0.469338 0.093357 0.878069 + -0.469338 0.093357 0.878069 + -0.469338 0.093357 0.878069 + -0.629402 0.125196 0.766929 + -0.629402 0.125196 0.766929 + -0.629402 0.125196 0.766929 + -0.629402 0.125196 0.766929 + -0.629402 0.125196 0.766929 + -0.629402 0.125196 0.766929 + -0.764031 0.151975 0.627025 + -0.764031 0.151975 0.627025 + -0.764031 0.151975 0.627025 + -0.764031 0.151975 0.627025 + -0.764031 0.151975 0.627025 + -0.764031 0.151975 0.627025 + -0.868657 0.172786 0.464305 + -0.868657 0.172786 0.464305 + -0.868657 0.172786 0.464305 + -0.868657 0.172786 0.464305 + -0.868657 0.172786 0.464305 + -0.868657 0.172786 0.464305 + -0.940061 0.186990 0.285166 + -0.940061 0.186990 0.285166 + -0.940061 0.186990 0.285166 + -0.940061 0.186990 0.285166 + -0.940061 0.186990 0.285166 + -0.940061 0.186990 0.285166 + -0.976241 0.194186 0.096151 + -0.976241 0.194186 0.096151 + -0.976241 0.194186 0.096151 + -0.976241 0.194186 0.096151 + -0.976241 0.194186 0.096151 + -0.976241 0.194186 0.096151 + -0.976241 0.194186 -0.096151 + -0.976241 0.194186 -0.096151 + -0.976241 0.194186 -0.096151 + -0.976241 0.194186 -0.096151 + -0.976241 0.194186 -0.096151 + -0.976241 0.194186 -0.096151 + -0.940062 0.186990 -0.285165 + -0.940062 0.186990 -0.285165 + -0.940062 0.186990 -0.285165 + -0.940062 0.186990 -0.285165 + -0.940062 0.186990 -0.285165 + -0.940062 0.186990 -0.285165 + -0.868657 0.172786 -0.464305 + -0.868657 0.172786 -0.464305 + -0.868657 0.172786 -0.464305 + -0.868657 0.172786 -0.464305 + -0.868657 0.172786 -0.464305 + -0.868657 0.172786 -0.464305 + -0.764031 0.151975 -0.627025 + -0.764031 0.151975 -0.627025 + -0.764031 0.151975 -0.627025 + -0.764031 0.151975 -0.627025 + -0.764031 0.151975 -0.627025 + -0.764031 0.151975 -0.627025 + -0.629402 0.125196 -0.766929 + -0.629402 0.125196 -0.766929 + -0.629402 0.125196 -0.766929 + -0.629402 0.125196 -0.766929 + -0.629402 0.125196 -0.766929 + -0.629402 0.125196 -0.766929 + -0.469338 0.093357 -0.878069 + -0.469338 0.093357 -0.878069 + -0.469338 0.093357 -0.878069 + -0.469338 0.093357 -0.878069 + -0.469338 0.093357 -0.878069 + -0.469338 0.093357 -0.878069 + -0.289801 0.057645 -0.955349 + -0.289801 0.057645 -0.955349 + -0.289801 0.057645 -0.955349 + -0.289801 0.057645 -0.955349 + -0.289801 0.057645 -0.955349 + -0.289801 0.057645 -0.955349 + -0.097999 0.019493 -0.994996 + -0.097999 0.019493 -0.994996 + -0.097999 0.019493 -0.994996 + -0.097999 -0.019493 -0.994996 + -0.097999 -0.019493 -0.994996 + -0.097999 -0.019493 -0.994996 + -0.289801 -0.057645 -0.955349 + -0.289801 -0.057645 -0.955349 + -0.289801 -0.057645 -0.955349 + -0.289801 -0.057645 -0.955349 + -0.289801 -0.057645 -0.955349 + -0.289801 -0.057645 -0.955349 + -0.469338 -0.093357 -0.878070 + -0.469338 -0.093357 -0.878070 + -0.469338 -0.093357 -0.878070 + -0.469338 -0.093357 -0.878070 + -0.469338 -0.093357 -0.878070 + -0.469338 -0.093357 -0.878070 + -0.629402 -0.125196 -0.766929 + -0.629402 -0.125196 -0.766929 + -0.629402 -0.125196 -0.766929 + -0.629402 -0.125196 -0.766929 + -0.629402 -0.125196 -0.766929 + -0.629402 -0.125196 -0.766929 + -0.764031 -0.151975 -0.627025 + -0.764031 -0.151975 -0.627025 + -0.764031 -0.151975 -0.627025 + -0.764031 -0.151975 -0.627025 + -0.764031 -0.151975 -0.627025 + -0.764031 -0.151975 -0.627025 + -0.868657 -0.172787 -0.464305 + -0.868657 -0.172787 -0.464305 + -0.868657 -0.172787 -0.464305 + -0.868657 -0.172787 -0.464305 + -0.868657 -0.172787 -0.464305 + -0.868657 -0.172787 -0.464305 + -0.940061 -0.186990 -0.285165 + -0.940061 -0.186990 -0.285165 + -0.940061 -0.186990 -0.285165 + -0.940061 -0.186990 -0.285165 + -0.940061 -0.186990 -0.285165 + -0.940061 -0.186990 -0.285165 + -0.976241 -0.194187 -0.096151 + -0.976241 -0.194187 -0.096151 + -0.976241 -0.194187 -0.096151 + -0.976241 -0.194187 -0.096151 + -0.976241 -0.194187 -0.096151 + -0.976241 -0.194187 -0.096151 + -0.976241 -0.194187 0.096151 + -0.976241 -0.194187 0.096151 + -0.976241 -0.194187 0.096151 + -0.976241 -0.194187 0.096151 + -0.976241 -0.194187 0.096151 + -0.976241 -0.194187 0.096151 + -0.940061 -0.186990 0.285166 + -0.940061 -0.186990 0.285166 + -0.940061 -0.186990 0.285166 + -0.940061 -0.186990 0.285166 + -0.940061 -0.186990 0.285166 + -0.940061 -0.186990 0.285166 + -0.868657 -0.172787 0.464305 + -0.868657 -0.172787 0.464305 + -0.868657 -0.172787 0.464305 + -0.868657 -0.172787 0.464305 + -0.868657 -0.172787 0.464305 + -0.868657 -0.172787 0.464305 + -0.764031 -0.151975 0.627025 + -0.764031 -0.151975 0.627025 + -0.764031 -0.151975 0.627025 + -0.764031 -0.151975 0.627025 + -0.764031 -0.151975 0.627025 + -0.764031 -0.151975 0.627025 + -0.629402 -0.125196 0.766929 + -0.629402 -0.125196 0.766929 + -0.629402 -0.125196 0.766929 + -0.629402 -0.125196 0.766929 + -0.629402 -0.125196 0.766929 + -0.629402 -0.125196 0.766929 + -0.469338 -0.093357 0.878069 + -0.469338 -0.093357 0.878069 + -0.469338 -0.093357 0.878069 + -0.469338 -0.093357 0.878069 + -0.469338 -0.093357 0.878069 + -0.469338 -0.093357 0.878069 + -0.289802 -0.057645 0.955349 + -0.289802 -0.057645 0.955349 + -0.289802 -0.057645 0.955349 + -0.289802 -0.057645 0.955349 + -0.289802 -0.057645 0.955349 + -0.289802 -0.057645 0.955349 + -0.097998 -0.019493 0.994996 + -0.097998 -0.019493 0.994996 + -0.097998 -0.019493 0.994996 + -0.083079 -0.055512 0.994996 + -0.083079 -0.055512 0.994996 + -0.083079 -0.055512 0.994996 + -0.245682 -0.164160 0.955349 + -0.245682 -0.164160 0.955349 + -0.245682 -0.164160 0.955349 + -0.245682 -0.164160 0.955349 + -0.245682 -0.164160 0.955349 + -0.245682 -0.164160 0.955349 + -0.397886 -0.265859 0.878069 + -0.397886 -0.265859 0.878069 + -0.397886 -0.265859 0.878069 + -0.397886 -0.265859 0.878069 + -0.397886 -0.265859 0.878069 + -0.397886 -0.265859 0.878069 + -0.533581 -0.356527 0.766929 + -0.533581 -0.356527 0.766929 + -0.533581 -0.356527 0.766929 + -0.533581 -0.356527 0.766929 + -0.533581 -0.356527 0.766929 + -0.533581 -0.356527 0.766929 + -0.647714 -0.432789 0.627025 + -0.647714 -0.432789 0.627025 + -0.647714 -0.432789 0.627025 + -0.647714 -0.432789 0.627025 + -0.647714 -0.432789 0.627025 + -0.647714 -0.432789 0.627025 + -0.736412 -0.492055 0.464305 + -0.736412 -0.492055 0.464305 + -0.736412 -0.492055 0.464305 + -0.736412 -0.492055 0.464305 + -0.736412 -0.492055 0.464305 + -0.736412 -0.492055 0.464305 + -0.796945 -0.532502 0.285166 + -0.796945 -0.532502 0.285166 + -0.796945 -0.532502 0.285166 + -0.796945 -0.532502 0.285166 + -0.796945 -0.532502 0.285166 + -0.796945 -0.532502 0.285166 + -0.827617 -0.552997 0.096151 + -0.827617 -0.552997 0.096151 + -0.827617 -0.552997 0.096151 + -0.827617 -0.552997 0.096151 + -0.827617 -0.552997 0.096151 + -0.827617 -0.552997 0.096151 + -0.827617 -0.552997 -0.096151 + -0.827617 -0.552997 -0.096151 + -0.827617 -0.552997 -0.096151 + -0.827617 -0.552997 -0.096151 + -0.827617 -0.552997 -0.096151 + -0.827617 -0.552997 -0.096151 + -0.796945 -0.532502 -0.285165 + -0.796945 -0.532502 -0.285165 + -0.796945 -0.532502 -0.285165 + -0.796945 -0.532502 -0.285165 + -0.796945 -0.532502 -0.285165 + -0.796945 -0.532502 -0.285165 + -0.736412 -0.492055 -0.464305 + -0.736412 -0.492055 -0.464305 + -0.736412 -0.492055 -0.464305 + -0.736412 -0.492055 -0.464305 + -0.736412 -0.492055 -0.464305 + -0.736412 -0.492055 -0.464305 + -0.647714 -0.432789 -0.627025 + -0.647714 -0.432789 -0.627025 + -0.647714 -0.432789 -0.627025 + -0.647714 -0.432789 -0.627025 + -0.647714 -0.432789 -0.627025 + -0.647714 -0.432789 -0.627025 + -0.533581 -0.356528 -0.766929 + -0.533581 -0.356528 -0.766929 + -0.533581 -0.356528 -0.766929 + -0.533581 -0.356528 -0.766929 + -0.533581 -0.356528 -0.766929 + -0.533581 -0.356528 -0.766929 + -0.397886 -0.265859 -0.878070 + -0.397886 -0.265859 -0.878070 + -0.397886 -0.265859 -0.878070 + -0.397886 -0.265859 -0.878070 + -0.397886 -0.265859 -0.878070 + -0.397886 -0.265859 -0.878070 + -0.245681 -0.164159 -0.955349 + -0.245681 -0.164159 -0.955349 + -0.245681 -0.164159 -0.955349 + -0.245681 -0.164159 -0.955349 + -0.245681 -0.164159 -0.955349 + -0.245681 -0.164159 -0.955349 + -0.083080 -0.055512 -0.994996 + -0.083080 -0.055512 -0.994996 + -0.083080 -0.055512 -0.994996 + -0.055512 -0.083080 -0.994996 + -0.055512 -0.083080 -0.994996 + -0.055512 -0.083080 -0.994996 + -0.164159 -0.245681 -0.955349 + -0.164159 -0.245681 -0.955349 + -0.164159 -0.245681 -0.955349 + -0.164159 -0.245681 -0.955349 + -0.164159 -0.245681 -0.955349 + -0.164159 -0.245681 -0.955349 + -0.265859 -0.397886 -0.878069 + -0.265859 -0.397886 -0.878069 + -0.265859 -0.397886 -0.878069 + -0.265859 -0.397886 -0.878069 + -0.265859 -0.397886 -0.878069 + -0.265859 -0.397886 -0.878069 + -0.356527 -0.533581 -0.766929 + -0.356527 -0.533581 -0.766929 + -0.356527 -0.533581 -0.766929 + -0.356527 -0.533581 -0.766929 + -0.356527 -0.533581 -0.766929 + -0.356527 -0.533581 -0.766929 + -0.432789 -0.647714 -0.627025 + -0.432789 -0.647714 -0.627025 + -0.432789 -0.647714 -0.627025 + -0.432789 -0.647714 -0.627025 + -0.432789 -0.647714 -0.627025 + -0.432789 -0.647714 -0.627025 + -0.492055 -0.736412 -0.464305 + -0.492055 -0.736412 -0.464305 + -0.492055 -0.736412 -0.464305 + -0.492055 -0.736412 -0.464305 + -0.492055 -0.736412 -0.464305 + -0.492055 -0.736412 -0.464305 + -0.532502 -0.796946 -0.285165 + -0.532502 -0.796946 -0.285165 + -0.532502 -0.796946 -0.285165 + -0.532502 -0.796946 -0.285165 + -0.532502 -0.796946 -0.285165 + -0.532502 -0.796946 -0.285165 + -0.552996 -0.827617 -0.096151 + -0.552996 -0.827617 -0.096151 + -0.552996 -0.827617 -0.096151 + -0.552996 -0.827617 -0.096151 + -0.552996 -0.827617 -0.096151 + -0.552996 -0.827617 -0.096151 + -0.552996 -0.827617 0.096151 + -0.552996 -0.827617 0.096151 + -0.552996 -0.827617 0.096151 + -0.552996 -0.827617 0.096151 + -0.552996 -0.827617 0.096151 + -0.552996 -0.827617 0.096151 + -0.532502 -0.796946 0.285165 + -0.532502 -0.796946 0.285165 + -0.532502 -0.796946 0.285165 + -0.532502 -0.796946 0.285165 + -0.532502 -0.796946 0.285165 + -0.532502 -0.796946 0.285165 + -0.492055 -0.736412 0.464305 + -0.492055 -0.736412 0.464305 + -0.492055 -0.736412 0.464305 + -0.492055 -0.736412 0.464305 + -0.492055 -0.736412 0.464305 + -0.492055 -0.736412 0.464305 + -0.432789 -0.647714 0.627025 + -0.432789 -0.647714 0.627025 + -0.432789 -0.647714 0.627025 + -0.432789 -0.647714 0.627025 + -0.432789 -0.647714 0.627025 + -0.432789 -0.647714 0.627025 + -0.356527 -0.533581 0.766929 + -0.356527 -0.533581 0.766929 + -0.356527 -0.533581 0.766929 + -0.356527 -0.533581 0.766929 + -0.356527 -0.533581 0.766929 + -0.356527 -0.533581 0.766929 + -0.265859 -0.397886 0.878069 + -0.265859 -0.397886 0.878069 + -0.265859 -0.397886 0.878069 + -0.265859 -0.397886 0.878069 + -0.265859 -0.397886 0.878069 + -0.265859 -0.397886 0.878069 + -0.164160 -0.245682 0.955349 + -0.164160 -0.245682 0.955349 + -0.164160 -0.245682 0.955349 + -0.164160 -0.245682 0.955349 + -0.164160 -0.245682 0.955349 + -0.164160 -0.245682 0.955349 + -0.055512 -0.083079 0.994996 + -0.055512 -0.083079 0.994996 + -0.055512 -0.083079 0.994996 + -0.019493 -0.097998 0.994996 + -0.019493 -0.097998 0.994996 + -0.019493 -0.097998 0.994996 + -0.057645 -0.289802 0.955349 + -0.057645 -0.289802 0.955349 + -0.057645 -0.289802 0.955349 + -0.057645 -0.289802 0.955349 + -0.057645 -0.289802 0.955349 + -0.057645 -0.289802 0.955349 + -0.093357 -0.469339 0.878069 + -0.093357 -0.469339 0.878069 + -0.093357 -0.469339 0.878069 + -0.093357 -0.469339 0.878069 + -0.093357 -0.469339 0.878069 + -0.093357 -0.469339 0.878069 + -0.125196 -0.629402 0.766929 + -0.125196 -0.629402 0.766929 + -0.125196 -0.629402 0.766929 + -0.125196 -0.629402 0.766929 + -0.125196 -0.629402 0.766929 + -0.125196 -0.629402 0.766929 + -0.151975 -0.764031 0.627025 + -0.151975 -0.764031 0.627025 + -0.151975 -0.764031 0.627025 + -0.151975 -0.764031 0.627025 + -0.151975 -0.764031 0.627025 + -0.151975 -0.764031 0.627025 + -0.172786 -0.868657 0.464305 + -0.172786 -0.868657 0.464305 + -0.172786 -0.868657 0.464305 + -0.172786 -0.868657 0.464305 + -0.172786 -0.868657 0.464305 + -0.172786 -0.868657 0.464305 + -0.186989 -0.940061 0.285166 + -0.186989 -0.940061 0.285166 + -0.186989 -0.940061 0.285166 + -0.186989 -0.940061 0.285166 + -0.186989 -0.940061 0.285166 + -0.186989 -0.940061 0.285166 + -0.194186 -0.976241 0.096151 + -0.194186 -0.976241 0.096151 + -0.194186 -0.976241 0.096151 + -0.194186 -0.976241 0.096151 + -0.194186 -0.976241 0.096151 + -0.194186 -0.976241 0.096151 + -0.194186 -0.976241 -0.096151 + -0.194186 -0.976241 -0.096151 + -0.194186 -0.976241 -0.096151 + -0.194186 -0.976241 -0.096151 + -0.194186 -0.976241 -0.096151 + -0.194186 -0.976241 -0.096151 + -0.186989 -0.940061 -0.285166 + -0.186989 -0.940061 -0.285166 + -0.186989 -0.940061 -0.285166 + -0.186989 -0.940061 -0.285166 + -0.186989 -0.940061 -0.285166 + -0.186989 -0.940061 -0.285166 + -0.172786 -0.868658 -0.464305 + -0.172786 -0.868658 -0.464305 + -0.172786 -0.868658 -0.464305 + -0.172786 -0.868658 -0.464305 + -0.172786 -0.868658 -0.464305 + -0.172786 -0.868658 -0.464305 + -0.151975 -0.764031 -0.627025 + -0.151975 -0.764031 -0.627025 + -0.151975 -0.764031 -0.627025 + -0.151975 -0.764031 -0.627025 + -0.151975 -0.764031 -0.627025 + -0.151975 -0.764031 -0.627025 + -0.125196 -0.629402 -0.766929 + -0.125196 -0.629402 -0.766929 + -0.125196 -0.629402 -0.766929 + -0.125196 -0.629402 -0.766929 + -0.125196 -0.629402 -0.766929 + -0.125196 -0.629402 -0.766929 + -0.093357 -0.469338 -0.878069 + -0.093357 -0.469338 -0.878069 + -0.093357 -0.469338 -0.878069 + -0.093357 -0.469338 -0.878069 + -0.093357 -0.469338 -0.878069 + -0.093357 -0.469338 -0.878069 + -0.057645 -0.289801 -0.955349 + -0.057645 -0.289801 -0.955349 + -0.057645 -0.289801 -0.955349 + -0.057645 -0.289801 -0.955349 + -0.057645 -0.289801 -0.955349 + -0.057645 -0.289801 -0.955349 + -0.019493 -0.097999 -0.994996 + -0.019493 -0.097999 -0.994996 + -0.019493 -0.097999 -0.994996 + 0.019493 -0.097999 -0.994996 + 0.019493 -0.097999 -0.994996 + 0.019493 -0.097999 -0.994996 + 0.057645 -0.289801 -0.955349 + 0.057645 -0.289801 -0.955349 + 0.057645 -0.289801 -0.955349 + 0.057645 -0.289801 -0.955349 + 0.057645 -0.289801 -0.955349 + 0.057645 -0.289801 -0.955349 + 0.093357 -0.469338 -0.878069 + 0.093357 -0.469338 -0.878069 + 0.093357 -0.469338 -0.878069 + 0.093357 -0.469338 -0.878069 + 0.093357 -0.469338 -0.878069 + 0.093357 -0.469338 -0.878069 + 0.125196 -0.629402 -0.766929 + 0.125196 -0.629402 -0.766929 + 0.125196 -0.629402 -0.766929 + 0.125196 -0.629402 -0.766929 + 0.125196 -0.629402 -0.766929 + 0.125196 -0.629402 -0.766929 + 0.151975 -0.764031 -0.627025 + 0.151975 -0.764031 -0.627025 + 0.151975 -0.764031 -0.627025 + 0.151975 -0.764031 -0.627025 + 0.151975 -0.764031 -0.627025 + 0.151975 -0.764031 -0.627025 + 0.172787 -0.868658 -0.464305 + 0.172787 -0.868658 -0.464305 + 0.172787 -0.868658 -0.464305 + 0.172787 -0.868658 -0.464305 + 0.172787 -0.868658 -0.464305 + 0.172787 -0.868658 -0.464305 + 0.186990 -0.940061 -0.285166 + 0.186990 -0.940061 -0.285166 + 0.186990 -0.940061 -0.285166 + 0.186990 -0.940061 -0.285166 + 0.186990 -0.940061 -0.285166 + 0.186990 -0.940061 -0.285166 + 0.194187 -0.976241 -0.096151 + 0.194187 -0.976241 -0.096151 + 0.194187 -0.976241 -0.096151 + 0.194187 -0.976241 -0.096151 + 0.194187 -0.976241 -0.096151 + 0.194187 -0.976241 -0.096151 + 0.194187 -0.976241 0.096151 + 0.194187 -0.976241 0.096151 + 0.194187 -0.976241 0.096151 + 0.194187 -0.976241 0.096151 + 0.194187 -0.976241 0.096151 + 0.194187 -0.976241 0.096151 + 0.186990 -0.940061 0.285166 + 0.186990 -0.940061 0.285166 + 0.186990 -0.940061 0.285166 + 0.186990 -0.940061 0.285166 + 0.186990 -0.940061 0.285166 + 0.186990 -0.940061 0.285166 + 0.172787 -0.868657 0.464305 + 0.172787 -0.868657 0.464305 + 0.172787 -0.868657 0.464305 + 0.172787 -0.868657 0.464305 + 0.172787 -0.868657 0.464305 + 0.172787 -0.868657 0.464305 + 0.151975 -0.764031 0.627025 + 0.151975 -0.764031 0.627025 + 0.151975 -0.764031 0.627025 + 0.151975 -0.764031 0.627025 + 0.151975 -0.764031 0.627025 + 0.151975 -0.764031 0.627025 + 0.125196 -0.629402 0.766929 + 0.125196 -0.629402 0.766929 + 0.125196 -0.629402 0.766929 + 0.125196 -0.629402 0.766929 + 0.125196 -0.629402 0.766929 + 0.125196 -0.629402 0.766929 + 0.093357 -0.469338 0.878069 + 0.093357 -0.469338 0.878069 + 0.093357 -0.469338 0.878069 + 0.093357 -0.469338 0.878069 + 0.093357 -0.469338 0.878069 + 0.093357 -0.469338 0.878069 + 0.057645 -0.289802 0.955349 + 0.057645 -0.289802 0.955349 + 0.057645 -0.289802 0.955349 + 0.057645 -0.289802 0.955349 + 0.057645 -0.289802 0.955349 + 0.057645 -0.289802 0.955349 + 0.019493 -0.097998 0.994996 + 0.019493 -0.097998 0.994996 + 0.019493 -0.097998 0.994996 + 0.055512 -0.083079 0.994996 + 0.055512 -0.083079 0.994996 + 0.055512 -0.083079 0.994996 + 0.164160 -0.245682 0.955349 + 0.164160 -0.245682 0.955349 + 0.164160 -0.245682 0.955349 + 0.164160 -0.245682 0.955349 + 0.164160 -0.245682 0.955349 + 0.164160 -0.245682 0.955349 + 0.265859 -0.397886 0.878069 + 0.265859 -0.397886 0.878069 + 0.265859 -0.397886 0.878069 + 0.265859 -0.397886 0.878069 + 0.265859 -0.397886 0.878069 + 0.265859 -0.397886 0.878069 + 0.356527 -0.533581 0.766929 + 0.356527 -0.533581 0.766929 + 0.356527 -0.533581 0.766929 + 0.356527 -0.533581 0.766929 + 0.356527 -0.533581 0.766929 + 0.356527 -0.533581 0.766929 + 0.432789 -0.647714 0.627025 + 0.432789 -0.647714 0.627025 + 0.432789 -0.647714 0.627025 + 0.432789 -0.647714 0.627025 + 0.432789 -0.647714 0.627025 + 0.432789 -0.647714 0.627025 + 0.492055 -0.736412 0.464305 + 0.492055 -0.736412 0.464305 + 0.492055 -0.736412 0.464305 + 0.492055 -0.736412 0.464305 + 0.492055 -0.736412 0.464305 + 0.492055 -0.736412 0.464305 + 0.532502 -0.796945 0.285166 + 0.532502 -0.796945 0.285166 + 0.532502 -0.796945 0.285166 + 0.532502 -0.796945 0.285166 + 0.532502 -0.796945 0.285166 + 0.532502 -0.796945 0.285166 + 0.552997 -0.827617 0.096151 + 0.552997 -0.827617 0.096151 + 0.552997 -0.827617 0.096151 + 0.552997 -0.827617 0.096151 + 0.552997 -0.827617 0.096151 + 0.552997 -0.827617 0.096151 + 0.552997 -0.827617 -0.096151 + 0.552997 -0.827617 -0.096151 + 0.552997 -0.827617 -0.096151 + 0.552997 -0.827617 -0.096151 + 0.552997 -0.827617 -0.096151 + 0.552997 -0.827617 -0.096151 + 0.532502 -0.796945 -0.285166 + 0.532502 -0.796945 -0.285166 + 0.532502 -0.796945 -0.285166 + 0.532502 -0.796945 -0.285166 + 0.532502 -0.796945 -0.285166 + 0.532502 -0.796945 -0.285166 + 0.492055 -0.736412 -0.464304 + 0.492055 -0.736412 -0.464304 + 0.492055 -0.736412 -0.464304 + 0.492055 -0.736412 -0.464304 + 0.492055 -0.736412 -0.464304 + 0.492055 -0.736412 -0.464304 + 0.432789 -0.647714 -0.627025 + 0.432789 -0.647714 -0.627025 + 0.432789 -0.647714 -0.627025 + 0.432789 -0.647714 -0.627025 + 0.432789 -0.647714 -0.627025 + 0.432789 -0.647714 -0.627025 + 0.356527 -0.533581 -0.766929 + 0.356527 -0.533581 -0.766929 + 0.356527 -0.533581 -0.766929 + 0.356527 -0.533581 -0.766929 + 0.356527 -0.533581 -0.766929 + 0.356527 -0.533581 -0.766929 + 0.265859 -0.397886 -0.878069 + 0.265859 -0.397886 -0.878069 + 0.265859 -0.397886 -0.878069 + 0.265859 -0.397886 -0.878069 + 0.265859 -0.397886 -0.878069 + 0.265859 -0.397886 -0.878069 + 0.164159 -0.245681 -0.955349 + 0.164159 -0.245681 -0.955349 + 0.164159 -0.245681 -0.955349 + 0.164159 -0.245681 -0.955349 + 0.164159 -0.245681 -0.955349 + 0.164159 -0.245681 -0.955349 + 0.055512 -0.083080 -0.994996 + 0.055512 -0.083080 -0.994996 + 0.055512 -0.083080 -0.994996 + 0.083080 -0.055512 -0.994996 + 0.083080 -0.055512 -0.994996 + 0.083080 -0.055512 -0.994996 + 0.245681 -0.164159 -0.955349 + 0.245681 -0.164159 -0.955349 + 0.245681 -0.164159 -0.955349 + 0.245681 -0.164159 -0.955349 + 0.245681 -0.164159 -0.955349 + 0.245681 -0.164159 -0.955349 + 0.397886 -0.265859 -0.878069 + 0.397886 -0.265859 -0.878069 + 0.397886 -0.265859 -0.878069 + 0.397886 -0.265859 -0.878069 + 0.397886 -0.265859 -0.878069 + 0.397886 -0.265859 -0.878069 + 0.533581 -0.356527 -0.766929 + 0.533581 -0.356527 -0.766929 + 0.533581 -0.356527 -0.766929 + 0.533581 -0.356527 -0.766929 + 0.533581 -0.356527 -0.766929 + 0.533581 -0.356527 -0.766929 + 0.647714 -0.432789 -0.627025 + 0.647714 -0.432789 -0.627025 + 0.647714 -0.432789 -0.627025 + 0.647714 -0.432789 -0.627025 + 0.647714 -0.432789 -0.627025 + 0.647714 -0.432789 -0.627025 + 0.736413 -0.492055 -0.464304 + 0.736413 -0.492055 -0.464304 + 0.736413 -0.492055 -0.464304 + 0.736413 -0.492055 -0.464304 + 0.736413 -0.492055 -0.464304 + 0.736413 -0.492055 -0.464304 + 0.796946 -0.532502 -0.285166 + 0.796946 -0.532502 -0.285166 + 0.796946 -0.532502 -0.285166 + 0.796946 -0.532502 -0.285166 + 0.796946 -0.532502 -0.285166 + 0.796946 -0.532502 -0.285166 + 0.827617 -0.552996 -0.096151 + 0.827617 -0.552996 -0.096151 + 0.827617 -0.552996 -0.096151 + 0.827617 -0.552996 -0.096151 + 0.827617 -0.552996 -0.096151 + 0.827617 -0.552996 -0.096151 + 0.827617 -0.552996 0.096151 + 0.827617 -0.552996 0.096151 + 0.827617 -0.552996 0.096151 + 0.827617 -0.552996 0.096151 + 0.827617 -0.552996 0.096151 + 0.827617 -0.552996 0.096151 + 0.796946 -0.532502 0.285166 + 0.796946 -0.532502 0.285166 + 0.796946 -0.532502 0.285166 + 0.796946 -0.532502 0.285166 + 0.796946 -0.532502 0.285166 + 0.796946 -0.532502 0.285166 + 0.736413 -0.492055 0.464305 + 0.736413 -0.492055 0.464305 + 0.736413 -0.492055 0.464305 + 0.736413 -0.492055 0.464305 + 0.736413 -0.492055 0.464305 + 0.736413 -0.492055 0.464305 + 0.647714 -0.432789 0.627025 + 0.647714 -0.432789 0.627025 + 0.647714 -0.432789 0.627025 + 0.647714 -0.432789 0.627025 + 0.647714 -0.432789 0.627025 + 0.647714 -0.432789 0.627025 + 0.533581 -0.356527 0.766929 + 0.533581 -0.356527 0.766929 + 0.533581 -0.356527 0.766929 + 0.533581 -0.356527 0.766929 + 0.533581 -0.356527 0.766929 + 0.533581 -0.356527 0.766929 + 0.397886 -0.265859 0.878069 + 0.397886 -0.265859 0.878069 + 0.397886 -0.265859 0.878069 + 0.397886 -0.265859 0.878069 + 0.397886 -0.265859 0.878069 + 0.397886 -0.265859 0.878069 + 0.245682 -0.164159 0.955349 + 0.245682 -0.164159 0.955349 + 0.245682 -0.164159 0.955349 + 0.245682 -0.164159 0.955349 + 0.245682 -0.164159 0.955349 + 0.245682 -0.164159 0.955349 + 0.083079 -0.055512 0.994996 + 0.083079 -0.055512 0.994996 + 0.083079 -0.055512 0.994996 + 0.097998 -0.019493 0.994996 + 0.097998 -0.019493 0.994996 + 0.097998 -0.019493 0.994996 + 0.289802 -0.057645 0.955349 + 0.289802 -0.057645 0.955349 + 0.289802 -0.057645 0.955349 + 0.289802 -0.057645 0.955349 + 0.289802 -0.057645 0.955349 + 0.289802 -0.057645 0.955349 + 0.469338 -0.093357 0.878069 + 0.469338 -0.093357 0.878069 + 0.469338 -0.093357 0.878069 + 0.469338 -0.093357 0.878069 + 0.469338 -0.093357 0.878069 + 0.469338 -0.093357 0.878069 + 0.629402 -0.125196 0.766928 + 0.629402 -0.125196 0.766928 + 0.629402 -0.125196 0.766928 + 0.629402 -0.125196 0.766928 + 0.629402 -0.125196 0.766928 + 0.629402 -0.125196 0.766928 + 0.764031 -0.151975 0.627025 + 0.764031 -0.151975 0.627025 + 0.764031 -0.151975 0.627025 + 0.764031 -0.151975 0.627025 + 0.764031 -0.151975 0.627025 + 0.764031 -0.151975 0.627025 + 0.868657 -0.172787 0.464306 + 0.868657 -0.172787 0.464306 + 0.868657 -0.172787 0.464306 + 0.868657 -0.172787 0.464306 + 0.868657 -0.172787 0.464306 + 0.868657 -0.172787 0.464306 + 0.940061 -0.186990 0.285165 + 0.940061 -0.186990 0.285165 + 0.940061 -0.186990 0.285165 + 0.940061 -0.186990 0.285165 + 0.940061 -0.186990 0.285165 + 0.940061 -0.186990 0.285165 + 0.976241 -0.194186 0.096151 + 0.976241 -0.194186 0.096151 + 0.976241 -0.194186 0.096151 + 0.976241 -0.194186 0.096151 + 0.976241 -0.194186 0.096151 + 0.976241 -0.194186 0.096151 + 0.976241 -0.194186 -0.096151 + 0.976241 -0.194186 -0.096151 + 0.976241 -0.194186 -0.096151 + 0.976241 -0.194186 -0.096151 + 0.976241 -0.194186 -0.096151 + 0.976241 -0.194186 -0.096151 + 0.940061 -0.186990 -0.285165 + 0.940061 -0.186990 -0.285165 + 0.940061 -0.186990 -0.285165 + 0.940061 -0.186990 -0.285165 + 0.940061 -0.186990 -0.285165 + 0.940061 -0.186990 -0.285165 + 0.868657 -0.172787 -0.464306 + 0.868657 -0.172787 -0.464306 + 0.868657 -0.172787 -0.464306 + 0.868657 -0.172787 -0.464306 + 0.868657 -0.172787 -0.464306 + 0.868657 -0.172787 -0.464306 + 0.764031 -0.151975 -0.627025 + 0.764031 -0.151975 -0.627025 + 0.764031 -0.151975 -0.627025 + 0.764031 -0.151975 -0.627025 + 0.764031 -0.151975 -0.627025 + 0.764031 -0.151975 -0.627025 + 0.629402 -0.125196 -0.766929 + 0.629402 -0.125196 -0.766929 + 0.629402 -0.125196 -0.766929 + 0.629402 -0.125196 -0.766929 + 0.629402 -0.125196 -0.766929 + 0.629402 -0.125196 -0.766929 + 0.469339 -0.093357 -0.878069 + 0.469339 -0.093357 -0.878069 + 0.469339 -0.093357 -0.878069 + 0.469339 -0.093357 -0.878069 + 0.469339 -0.093357 -0.878069 + 0.469339 -0.093357 -0.878069 + 0.289801 -0.057645 -0.955349 + 0.289801 -0.057645 -0.955349 + 0.289801 -0.057645 -0.955349 + 0.289801 -0.057645 -0.955349 + 0.289801 -0.057645 -0.955349 + 0.289801 -0.057645 -0.955349 + 0.097999 -0.019494 -0.994996 + 0.097999 -0.019494 -0.994996 + 0.097999 -0.019494 -0.994996 + + + 0.000000 0.000000 0.000000 + + + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + 1.000000 1.000000 + 0.000000 1.000000 + 0.000000 0.000000 + 0.000000 0.000000 + 1.000000 0.000000 + 1.000000 1.000000 + + + /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a + HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy + MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAQABADASIA + AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA + AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 + ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm + p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA + AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx + BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK + U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 + uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDyWiii + vLPuT//Z + + + \ No newline at end of file diff -r 7e112b536f0a -r edf80c055589 kinect.xml --- a/kinect.xml Tue Feb 01 06:37:06 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff -r 7e112b536f0a -r edf80c055589 main.cc --- a/main.cc Tue Feb 01 06:37:06 2011 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -#include -#include -#include -#include - -#include "KinectTrack.h" - -#define INIT_XML_PATH "./kinect.xml" - -void checkRC(const XnStatus &rc, const char *what) { - if (rc != XN_STATUS_OK) { - printf("%s faild: %s\n", what, xnGetStatusString(rc)); - } -} - -void checkErrors(XnStatus &rc, xn::EnumerationErrors &errors, const char *what) { - if (rc == XN_STATUS_NO_NODE_PRESENT) { - XnChar strError[1024]; - errors.ToString(strError, 1024); - printf("%s\n", strError); - } -} - -SessionState NIState::gSessionState = NOT_IN_SESSION; -XnBool NIState::gBDrawDepthMap = true; -void NIState::XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt) { - printf("Session start: (%f, %f, %f)\n", ptPosition.X, ptPosition.Y, ptPosition.Z); - gSessionState = IN_SESSION; -} -void NIState::XN_CALLBACK_TYPE sessionEnding(void *userCxt) { - printf("Session end\n"); - gSessionState = NOT_IN_SESSION; -} -void NIState::XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition, - XnFloat fProgress, void *userCxt) { - printf("Focus progress: %s @(%f, %f, %f): %f\n", strFocus, ptPosition.X, ptPosition.Y, ptPosition.Z, fProgress); -} -void NIState::XN_CALLBACK_TYPE noHands(void *UserCxt) { - if (gSessionState != NOT_IN_SESSION) { - printf("Quick refocus\n"); - gSessionState = QUICK_REFOCUS; - } -} - -int main(int argc, char *argv[]) { - xn::Context gContext; - xn::EnumerationErrors errors; - XnStatus rc = gContext.InitFromXmlFile(INIT_XML_PATH, &errors); - checkErrors(rc, errors, "InitFromXMLFile"); - checkRC(rc, "InitFromXMLFile"); - - xn::DepthGenerator gDepthGenerator; - rc = gContext.FindExistingNode(XN_NODE_TYPE_DEPTH, gDepthGenerator); - checkRC(rc, "Find depth generator"); - - xn::HandsGenerator gHandsGenerator; - rc = gContext.FindExistingNode(XN_NODE_TYPE_HANDS, gHandsGenerator); - checkRC(rc, "Find hands generator"); - XnVSessionManager *gPSessionManager = new XnVSessionManager(); - rc = gPSessionManager->Initialize(&gContext, "Click,Wave", "RaiseHand"); - checkRC(rc, "SessionManager::Initialize"); - - gPSessionManager->RegisterSession(NULL, NIState::sessionStarting, NIState::sessionEnding, NIState::focusProgress); - - XnVPointDrawer *gPDrawer = new XnVPointDrawer(20, gDepthGenerator); - XnVFlowRouter *gPFlowRouter = new XnVFlowRouter; - gPFlowRouter->SetActive(gPDrawer); - - gPSessionManager->AddListener(gPFlowRouter); - - gPDrawer->RegisterNoPoints(NULL, NIState::noHands); - gPDrawer->setDepthMap(NIState::gBDrawDepthMap); - - rc = gContext.StartGeneratingAll(); - checkRC(rc, "StartGenerating"); - - while (true) { - gContext.WaitAndUpdateAll(); - gPSessionManager->Update(&gContext); - float x, y, z; - int error = gPDrawer->getPosition(x, y, z); - if (error > 0) { - printf("%f, %f, %f\n", x, y, z); - } - - //usleep(10); - } - - return 0; -} diff -r 7e112b536f0a -r edf80c055589 test/KinectTrack.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/KinectTrack.cc Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,144 @@ +#include +#include + +#include "KinectTrack.h" + +#define N_COLORS 6 + +XnVPointDrawer::XnVPointDrawer(XnUInt32 nHistory, xn::DepthGenerator depthGenerator) : + XnVPointControl("XnVPointDrawer"), + mNHistorySize(nHistory), mDepthGenerator(depthGenerator), mBDrawDM(false), mBFrameID(false) { + mPFPositionBuffer = new XnFloat[nHistory*3]; +} + +XnVPointDrawer::~XnVPointDrawer() { + std::map >::iterator iter; + for (iter = mHistory.begin(); iter != mHistory.end(); ++iter) + { + iter->second.clear(); + } + mHistory.clear(); + + delete []mPFPositionBuffer; +} + +void XnVPointDrawer::setDepthMap(XnBool bDrawDM) { + mBDrawDM = bDrawDM; +} + +void XnVPointDrawer::Update(XnVMessage* pMessage) { + // PointControl's Update calls all callbacks for each hand + XnVPointControl::Update(pMessage); + + if (mBDrawDM) + { + // Draw depth map + xn::DepthMetaData depthMD; + mDepthGenerator.GetMetaData(depthMD); + //drawDepthMap(depthMD); + } + if (mBFrameID) + { + // Print out frame ID + xn::DepthMetaData depthMD; + mDepthGenerator.GetMetaData(depthMD); + //DrawFrameID(depthMD.FrameID()); + } + + // Draw hands + Draw(); +} + +int XnVPointDrawer::getPosition(float &x, float &y, float &z) const { + std::map >::const_iterator itr; + itr = mHistory.begin(); + if (itr == mHistory.end()) return -1; + std::list::const_iterator itr2; + itr2 = itr->second.begin(); + if (itr2 == itr->second.end()) return -1; + XnPoint3D pt(*itr2); + x = pt.X; + y = pt.Y; + z = pt.Z; + return 1; +} +void XnVPointDrawer::Draw() const { + std::map >::const_iterator itr; + itr = mHistory.begin(); + if (itr == mHistory.end()) return; + std::list::const_iterator itr2; + itr2 = itr->second.begin(); + if (itr2 == itr->second.end()) return; + XnPoint3D pt(*itr2); +// printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z); + + + // std::map >::const_iterator PointIterator; + + // // Go over each existing hand + // for (PointIterator = mHistory.begin(); + // PointIterator != mHistory.end(); + // ++PointIterator) + // { + // // Clear buffer + // XnUInt32 nPoints = 0; + // XnUInt32 i = 0; + // XnUInt32 Id = PointIterator->first; + + // // Go over all previous positions of current hand + // std::list::const_iterator PositionIterator; + // for (PositionIterator = PointIterator->second.begin(); + // PositionIterator != PointIterator->second.end(); + // ++PositionIterator, ++i) + // { + // // Add position to buffer + // XnPoint3D pt(*PositionIterator); + // printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z); + // mPFPositionBuffer[3*i] = pt.X; + // mPFPositionBuffer[3*i + 1] = pt.Y; + // mPFPositionBuffer[3*i + 2] = 0;//pt.Z(); + // break; + // } + + // // Set color + // XnUInt32 nColor = Id % N_COLORS; + // //XnUInt32 nSingle = GetPrimaryID(); + // if (Id == GetPrimaryID()) + // nColor = 6; + // } +} + +static XnBool bShouldPrint = false; +void XnVPointDrawer::OnPointCreate(const XnVHandPointContext* cxt) +{ + printf("** %d\n", cxt->nID); + // Create entry for the hand + mHistory[cxt->nID].clear(); + bShouldPrint = true; + OnPointUpdate(cxt); + bShouldPrint = true; +} +// Handle new position of an existing hand +void XnVPointDrawer::OnPointUpdate(const XnVHandPointContext* cxt) +{ + // positions are kept in projective coordinates, since they are only used for drawing + XnPoint3D ptProjective(cxt->ptPosition); + + if (bShouldPrint)printf("Point (%f,%f,%f)", ptProjective.X, ptProjective.Y, ptProjective.Z); + mDepthGenerator.ConvertRealWorldToProjective(1, &ptProjective, &ptProjective); + if (bShouldPrint)printf(" -> (%f,%f,%f)\n", ptProjective.X, ptProjective.Y, ptProjective.Z); + + // Add new position to the history buffer + mHistory[cxt->nID].push_front(ptProjective); + // Keep size of history buffer + if (mHistory[cxt->nID].size() > mNHistorySize) + mHistory[cxt->nID].pop_back(); + bShouldPrint = false; +} + +// Handle destruction of an existing hand +void XnVPointDrawer::OnPointDestroy(XnUInt32 nID) +{ + // No need for the history buffer + mHistory.erase(nID); +} diff -r 7e112b536f0a -r edf80c055589 test/KinectTrack.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/KinectTrack.h Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,42 @@ +#include +#include +#include +#include + +typedef enum { + IN_SESSION, + NOT_IN_SESSION, + QUICK_REFOCUS +} SessionState; + +class NIState { +public: + static SessionState gSessionState; + static XnBool gBDrawDepthMap; + static void XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt); + static void XN_CALLBACK_TYPE sessionEnding(void *userCxt); + static void XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition, + XnFloat fProgress, void *userCxt); + static void XN_CALLBACK_TYPE noHands(void *UserCxt); +}; + +class XnVPointDrawer : public XnVPointControl { +public: + XnVPointDrawer(XnUInt32 nHistorySize, xn::DepthGenerator depthGenerator); + virtual ~XnVPointDrawer(); + void Update(XnVMessage *pMessage); + void OnPointCreate(const XnVHandPointContext *cxt); + void OnPointUpdate(const XnVHandPointContext *cxt); + void OnPointDestroy(XnUInt32 nID); + void Draw() const; + void setDepthMap(XnBool bDrawDM); + void setFrameID(XnBool bFrameID); + int getPosition(float &x, float &y, float &z) const; +protected: + XnUInt32 mNHistorySize; + std::map > mHistory; + xn::DepthGenerator mDepthGenerator; + XnFloat *mPFPositionBuffer; + XnBool mBDrawDM; + XnBool mBFrameID; +}; diff -r 7e112b536f0a -r edf80c055589 test/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/Makefile Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,16 @@ +CC = g++ +CFLAGS = -Wall -g -O2 +INCLUDE = -I/usr/include/ni -I/usr/include/nite +LIBS = -lOpenNI -lXnVNite +OBJS = main.o KinectTrack.o +TARGET = kinect + +.SUFFIXES: .cc .o + +all: $(OBJS) + $(CC) $(CFLAGS) $(INCLUDE) $(LIBS) $(OBJS) -o $(TARGET) +.cc.o: + $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ +clean: + rm *.o + rm $(TARGET) diff -r 7e112b536f0a -r edf80c055589 test/kinect.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/kinect.xml Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7e112b536f0a -r edf80c055589 test/main.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/main.cc Tue Feb 01 14:44:56 2011 +0900 @@ -0,0 +1,90 @@ +#include +#include +#include +#include + +#include "KinectTrack.h" + +#define INIT_XML_PATH "./kinect.xml" + +void checkRC(const XnStatus &rc, const char *what) { + if (rc != XN_STATUS_OK) { + printf("%s faild: %s\n", what, xnGetStatusString(rc)); + } +} + +void checkErrors(XnStatus &rc, xn::EnumerationErrors &errors, const char *what) { + if (rc == XN_STATUS_NO_NODE_PRESENT) { + XnChar strError[1024]; + errors.ToString(strError, 1024); + printf("%s\n", strError); + } +} + +SessionState NIState::gSessionState = NOT_IN_SESSION; +XnBool NIState::gBDrawDepthMap = true; +void NIState::XN_CALLBACK_TYPE sessionStarting(const XnPoint3D &ptPosition, void *userCxt) { + printf("Session start: (%f, %f, %f)\n", ptPosition.X, ptPosition.Y, ptPosition.Z); + gSessionState = IN_SESSION; +} +void NIState::XN_CALLBACK_TYPE sessionEnding(void *userCxt) { + printf("Session end\n"); + gSessionState = NOT_IN_SESSION; +} +void NIState::XN_CALLBACK_TYPE focusProgress(const XnChar *strFocus, const XnPoint3D &ptPosition, + XnFloat fProgress, void *userCxt) { + printf("Focus progress: %s @(%f, %f, %f): %f\n", strFocus, ptPosition.X, ptPosition.Y, ptPosition.Z, fProgress); +} +void NIState::XN_CALLBACK_TYPE noHands(void *UserCxt) { + if (gSessionState != NOT_IN_SESSION) { + printf("Quick refocus\n"); + gSessionState = QUICK_REFOCUS; + } +} + +int main(int argc, char *argv[]) { + xn::Context gContext; + xn::EnumerationErrors errors; + XnStatus rc = gContext.InitFromXmlFile(INIT_XML_PATH, &errors); + checkErrors(rc, errors, "InitFromXMLFile"); + checkRC(rc, "InitFromXMLFile"); + + xn::DepthGenerator gDepthGenerator; + rc = gContext.FindExistingNode(XN_NODE_TYPE_DEPTH, gDepthGenerator); + checkRC(rc, "Find depth generator"); + + xn::HandsGenerator gHandsGenerator; + rc = gContext.FindExistingNode(XN_NODE_TYPE_HANDS, gHandsGenerator); + checkRC(rc, "Find hands generator"); + XnVSessionManager *gPSessionManager = new XnVSessionManager(); + rc = gPSessionManager->Initialize(&gContext, "Click,Wave", "RaiseHand"); + checkRC(rc, "SessionManager::Initialize"); + + gPSessionManager->RegisterSession(NULL, NIState::sessionStarting, NIState::sessionEnding, NIState::focusProgress); + + XnVPointDrawer *gPDrawer = new XnVPointDrawer(20, gDepthGenerator); + XnVFlowRouter *gPFlowRouter = new XnVFlowRouter; + gPFlowRouter->SetActive(gPDrawer); + + gPSessionManager->AddListener(gPFlowRouter); + + gPDrawer->RegisterNoPoints(NULL, NIState::noHands); + gPDrawer->setDepthMap(NIState::gBDrawDepthMap); + + rc = gContext.StartGeneratingAll(); + checkRC(rc, "StartGenerating"); + + while (true) { + gContext.WaitAndUpdateAll(); + gPSessionManager->Update(&gContext); + float x, y, z; + int error = gPDrawer->getPosition(x, y, z); + if (error > 0) { + printf("%f, %f, %f\n", x, y, z); + } + + //usleep(10); + } + + return 0; +}