From 1b2236b9c672a27108ddc2f9cddf7fe107d0b0a9 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Mon, 16 Nov 2015 14:30:06 +0100 Subject: [PATCH 001/135] Do not require Geant4 and Geant3 in modular builds Those can actually be optional components, so I dropped the REQUIRED statement from the CMakeFile also for the modular build case. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 733f9f0806582..df68e39cf14cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,8 +112,8 @@ find_package(Pythia8) find_package(Pythia6) if(ALICEO2_MODULAR_BUILD) # Geant3, Geant4 installed via cmake - find_package(Geant3 REQUIRED) - find_package(Geant4 REQUIRED) + find_package(Geant3) + find_package(Geant4) else(ALICEO2_MODULAR_BUILD) # For old versions of VMC packages (to be removed) find_package(GEANT3) From 2cd79643e6daeb58af0214390eaf6813ca6236f7 Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Wed, 11 Nov 2015 10:09:03 +0100 Subject: [PATCH 002/135] Use smart pointer methods for the flp2epn and flp2epn-distributed devices --- devices/flp2epn-distributed/EPNReceiver.cxx | 70 ++++++++----------- devices/flp2epn-distributed/EPNReceiver.h | 2 +- devices/flp2epn-distributed/FLPSender.cxx | 43 +++++------- devices/flp2epn-distributed/FLPSender.h | 7 +- .../flp2epn-distributed/FLPSyncSampler.cxx | 10 +-- devices/flp2epn/O2EPNex.cxx | 22 +++--- devices/flp2epn/O2EPNex.h | 9 +-- devices/flp2epn/O2EpnMerger.cxx | 39 +++-------- devices/flp2epn/O2EpnMerger.h | 9 +-- devices/flp2epn/O2FLPex.cxx | 67 +++++++++--------- devices/flp2epn/O2FLPex.h | 10 --- devices/flp2epn/O2Merger.cxx | 23 +++--- devices/flp2epn/O2Merger.h | 1 + devices/flp2epn/O2Proxy.cxx | 22 +++--- devices/flp2epn/O2Proxy.h | 1 + 15 files changed, 134 insertions(+), 201 deletions(-) diff --git a/devices/flp2epn-distributed/EPNReceiver.cxx b/devices/flp2epn-distributed/EPNReceiver.cxx index 9ce59e478fea6..9300487dae943 100644 --- a/devices/flp2epn-distributed/EPNReceiver.cxx +++ b/devices/flp2epn-distributed/EPNReceiver.cxx @@ -66,7 +66,7 @@ void EPNReceiver::DiscardIncompleteTimeframes() LOG(WARN) << "Timeframe #" << it->first << " incomplete after " << fBufferTimeoutInMs << " milliseconds, discarding"; fDiscardedSet.insert(it->first); for (int i = 0; i < (it->second).parts.size(); ++i) { - delete (it->second).parts.at(i); + (it->second).parts.at(i).reset(); } it->second.parts.clear(); fTimeframeBuffer.erase(it++); @@ -82,10 +82,7 @@ void EPNReceiver::Run() { // boost::thread heartbeatSender(boost::bind(&EPNReceiver::sendHeartbeats, this)); - FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels.at("data-in")); - - int SNDMORE = fChannels.at("data-in").at(0).fSocket->SNDMORE; - int NOBLOCK = fChannels.at("data-in").at(0).fSocket->NOBLOCK; + unique_ptr poller(fTransportFactory->CreatePoller(fChannels.at("data-in"))); // DEBUG: store receive intervals per FLP // vector> rcvIntervals(fNumFLPs, vector()); @@ -104,7 +101,7 @@ void EPNReceiver::Run() poller->Poll(100); if (poller->CheckInput(0)) { - FairMQMessage* headerPart = fTransportFactory->CreateMessage(); + unique_ptr headerPart(fTransportFactory->CreateMessage()); if (dataInputChannel.Receive(headerPart) > 0) { // store the received ID @@ -123,61 +120,55 @@ void EPNReceiver::Run() // } // end DEBUG - FairMQMessage* dataPart = fTransportFactory->CreateMessage(); - rcvDataSize = dataInputChannel.Receive(dataPart); + unique_ptr dataPart(fTransportFactory->CreateMessage()); - if (fDiscardedSet.find(id) == fDiscardedSet.end()) { - // if received ID has not previously been discarded. - if (fTimeframeBuffer.find(id) == fTimeframeBuffer.end()) { - // if received ID is not yet in the buffer. - if (rcvDataSize > 0) { - // receive data, store it in the buffer, save the receive time. - fTimeframeBuffer[id].parts.push_back(dataPart); + // receive the data part + if (dataInputChannel.Receive(dataPart) > 0) + { + if (fDiscardedSet.find(id) == fDiscardedSet.end()) + { + if (fTimeframeBuffer.find(id) == fTimeframeBuffer.end()) + { + // if this is the first part with this ID, save the receive time. fTimeframeBuffer[id].startTime = boost::posix_time::microsec_clock::local_time(); - } else { - LOG(ERROR) << "no data received from input socket"; - delete dataPart; - } - // PrintBuffer(fTimeframeBuffer); - } else { - // if received ID is already in the buffer - if (rcvDataSize > 0) { - fTimeframeBuffer[id].parts.push_back(dataPart); - } else { - LOG(ERROR) << "no data received from input socket"; - delete dataPart; } + // if the received ID has not previously been discarded, + // store the data part in the buffer + fTimeframeBuffer[id].parts.push_back(move(dataPart)); // PrintBuffer(fTimeframeBuffer); } - } else { - // if received ID has been previously discarded. - LOG(WARN) << "Received part from an already discarded timeframe with id " << id; - delete dataPart; + else + { + // if received ID has been previously discarded. + LOG(WARN) << "Received part from an already discarded timeframe with id " << id; + } + } + else + { + LOG(ERROR) << "no data received from input socket"; } if (fTimeframeBuffer[id].parts.size() == fNumFLPs) { // LOG(INFO) << "Collected all parts for timeframe #" << id; // when all parts are collected send all except last one with 'snd-more' flag, and last one without the flag. for (int i = 0; i < fNumFLPs - 1; ++i) { - dataOutChannel.Send(fTimeframeBuffer[id].parts.at(i), SNDMORE); + dataOutChannel.SendPart(fTimeframeBuffer[id].parts.at(i)); } dataOutChannel.Send(fTimeframeBuffer[id].parts.at(fNumFLPs - 1)); if (fTestMode > 0) { // Send an acknowledgement back to the sampler to measure the round trip time - FairMQMessage* ack = fTransportFactory->CreateMessage(sizeof(uint16_t)); + unique_ptr ack(fTransportFactory->CreateMessage(sizeof(uint16_t))); memcpy(ack->GetData(), &id, sizeof(uint16_t)); - if (ackOutChannel.Send(ack, NOBLOCK) <= 0) { + if (ackOutChannel.SendAsync(ack) <= 0) { LOG(ERROR) << "Could not send acknowledgement without blocking"; } - - delete ack; } // let transport know that the data is no longer needed. transport will clean up after it is sent out. for (int i = 0; i < fTimeframeBuffer[id].parts.size(); ++i) { - delete fTimeframeBuffer[id].parts.at(i); + fTimeframeBuffer[id].parts.at(i).reset(); } fTimeframeBuffer[id].parts.clear(); @@ -188,7 +179,6 @@ void EPNReceiver::Run() // LOG(WARN) << "Buffer size: " << fTimeframeBuffer.size(); } - delete headerPart; } // check if any incomplete timeframes in the buffer are older than timeout period, and discard them if they are @@ -220,12 +210,10 @@ void EPNReceiver::sendHeartbeats() while (CheckCurrentState(RUNNING)) { try { for (int i = 0; i < fNumFLPs; ++i) { - FairMQMessage* heartbeatMsg = fTransportFactory->CreateMessage(ownAddressSize); + unique_ptr heartbeatMsg(fTransportFactory->CreateMessage(ownAddressSize)); memcpy(heartbeatMsg->GetData(), ownAddress.c_str(), ownAddressSize); fChannels.at("heartbeat-out").at(i).Send(heartbeatMsg); - - delete heartbeatMsg; } boost::this_thread::sleep(boost::posix_time::milliseconds(fHeartbeatIntervalInMs)); } catch (boost::thread_interrupted&) { diff --git a/devices/flp2epn-distributed/EPNReceiver.h b/devices/flp2epn-distributed/EPNReceiver.h index 97315be1bf23e..7236a2eea5eac 100644 --- a/devices/flp2epn-distributed/EPNReceiver.h +++ b/devices/flp2epn-distributed/EPNReceiver.h @@ -23,7 +23,7 @@ namespace Devices { struct TFBuffer { - std::vector parts; + std::vector> parts; boost::posix_time::ptime startTime; boost::posix_time::ptime endTime; }; diff --git a/devices/flp2epn-distributed/FLPSender.cxx b/devices/flp2epn-distributed/FLPSender.cxx index 6bc28ddcd3498..8b0f4d93c17ce 100644 --- a/devices/flp2epn-distributed/FLPSender.cxx +++ b/devices/flp2epn-distributed/FLPSender.cxx @@ -34,8 +34,6 @@ FLPSender::FLPSender() , fHeaderBuffer() , fDataBuffer() , fArrivalTime() - , fSndMoreFlag(0) - , fNoBlockFlag(0) , fNumEPNs(0) , fHeartbeatTimeoutInMs(20000) , fHeartbeats() @@ -66,7 +64,7 @@ void FLPSender::receiveHeartbeats() while (CheckCurrentState(RUNNING)) { try { - FairMQMessage* hbMsg = fTransportFactory->CreateMessage(); + unique_ptr hbMsg(fTransportFactory->CreateMessage()); if (hbChannel.Receive(hbMsg) > 0) { string address = string(static_cast(hbMsg->GetData()), hbMsg->GetSize()); @@ -87,8 +85,6 @@ void FLPSender::receiveHeartbeats() LOG(ERROR) << "IP " << address << " unknown, not provided at execution time"; } } - - delete hbMsg; } catch (boost::thread_interrupted&) { LOG(INFO) << "FLPSender::receiveHeartbeats() interrupted"; break; @@ -100,15 +96,13 @@ void FLPSender::Run() { // boost::thread heartbeatReceiver(boost::bind(&FLPSender::receiveHeartbeats, this)); - // base buffer, to be copied from for every timeframe body + // base buffer, to be copied from for every timeframe body (zero-copy) void* buffer = operator new[](fEventSize); - FairMQMessage* baseMsg = fTransportFactory->CreateMessage(buffer, fEventSize); - - fSndMoreFlag = fChannels.at("data-in").at(0).fSocket->SNDMORE; - fNoBlockFlag = fChannels.at("data-in").at(0).fSocket->NOBLOCK; + unique_ptr baseMsg(fTransportFactory->CreateMessage(buffer, fEventSize)); uint16_t timeFrameId = 0; + // store the channel reference to avoid traversing the map on every loop iteration FairMQChannel& dataInChannel = fChannels.at("data-in").at(0); while (CheckCurrentState(RUNNING)) { @@ -117,7 +111,7 @@ void FLPSender::Run() if (fTestMode > 0) { // test-mode: receive and store id part in the buffer. - FairMQMessage* idPart = fTransportFactory->CreateMessage(); + unique_ptr idPart(fTransportFactory->CreateMessage()); if (dataInChannel.Receive(idPart) > 0) { h->timeFrameId = *(static_cast(idPart->GetData())); h->flpIndex = fIndex; @@ -126,8 +120,6 @@ void FLPSender::Run() delete h; continue; } - - delete idPart; } else { // regular mode: use the id generated locally h->timeFrameId = timeFrameId; @@ -138,8 +130,8 @@ void FLPSender::Run() } } - FairMQMessage* headerPart = fTransportFactory->CreateMessage(h, sizeof(f2eHeader)); - FairMQMessage* dataPart = fTransportFactory->CreateMessage(); + unique_ptr headerPart(fTransportFactory->CreateMessage(h, sizeof(f2eHeader))); + unique_ptr dataPart(fTransportFactory->CreateMessage()); // save the arrival time of the message. fArrivalTime.push(boost::posix_time::microsec_clock::local_time()); @@ -147,13 +139,13 @@ void FLPSender::Run() if (fTestMode > 0) { // test-mode: initialize and store data part in the buffer. dataPart->Copy(baseMsg); - fHeaderBuffer.push(headerPart); - fDataBuffer.push(dataPart); + fHeaderBuffer.push(move(headerPart)); + fDataBuffer.push(move(dataPart)); } else { // regular mode: receive data part from input if (dataInChannel.Receive(dataPart) >= 0) { - fHeaderBuffer.push(headerPart); - fDataBuffer.push(dataPart); + fHeaderBuffer.push(move(headerPart)); + fDataBuffer.push(move(dataPart)); } else { // if nothing was received, try again continue; @@ -176,8 +168,6 @@ void FLPSender::Run() } } - delete baseMsg; - // heartbeatReceiver.interrupt(); // heartbeatReceiver.join(); } @@ -207,11 +197,12 @@ inline void FLPSender::sendFrontData() // fArrivalTime.pop(); // fDataBuffer.pop(); // } else { // if the heartbeat from the corresponding EPN is within timeout period, send the data. - if (fChannels.at("data-out").at(direction).Send(fHeaderBuffer.front(), fSndMoreFlag|fNoBlockFlag) <= 0) { - LOG(ERROR) << "Could not queue ID part of event #" << currentTimeframeId << " without blocking"; - } - if (fChannels.at("data-out").at(direction).Send(fDataBuffer.front(), fNoBlockFlag) <= 0) { - LOG(ERROR) << "Could not send message with event #" << currentTimeframeId << " without blocking"; + if (fChannels.at("data-out").at(direction).SendPartAsync(fHeaderBuffer.front()) < 0) { + LOG(ERROR) << "Failed to queue ID part of event #" << currentTimeframeId; + } else { + if (fChannels.at("data-out").at(direction).SendAsync(fDataBuffer.front()) < 0) { + LOG(ERROR) << "Could not send message with event #" << currentTimeframeId << " without blocking"; + } } fHeaderBuffer.pop(); fArrivalTime.pop(); diff --git a/devices/flp2epn-distributed/FLPSender.h b/devices/flp2epn-distributed/FLPSender.h index 573ae5838d0be..91fe98057a35d 100644 --- a/devices/flp2epn-distributed/FLPSender.h +++ b/devices/flp2epn-distributed/FLPSender.h @@ -75,8 +75,8 @@ class FLPSender : public FairMQDevice /// Sends the "oldest" element from the sub-timeframe container void sendFrontData(); - std::queue fHeaderBuffer; ///< Stores sub-timeframe headers - std::queue fDataBuffer; ///< Stores sub-timeframe bodies + std::queue> fHeaderBuffer; ///< Stores sub-timeframe headers + std::queue> fDataBuffer; ///< Stores sub-timeframe bodies std::queue fArrivalTime; ///< Stores arrival times of sub-timeframes int fNumEPNs; ///< Number of epnReceivers @@ -84,9 +84,6 @@ class FLPSender : public FairMQDevice unsigned int fSendOffset; ///< Offset for staggering output unsigned int fSendDelay; ///< Delay for staggering output - int fSndMoreFlag; ///< Flag for faster access to multipart sending - int fNoBlockFlag; ///< Flag for faster access to sending without blocking - int fEventSize; ///< Size of the sub-timeframe body (only for test mode) int fTestMode; ///< Run the device in test mode (only syncSampler+flpSender+epnReceiver) diff --git a/devices/flp2epn-distributed/FLPSyncSampler.cxx b/devices/flp2epn-distributed/FLPSyncSampler.cxx index 4cdd7a760d28e..c13dcb2fdb6f0 100644 --- a/devices/flp2epn-distributed/FLPSyncSampler.cxx +++ b/devices/flp2epn-distributed/FLPSyncSampler.cxx @@ -42,17 +42,15 @@ void FLPSyncSampler::Run() boost::thread resetEventCounter(boost::bind(&FLPSyncSampler::ResetEventCounter, this)); boost::thread ackListener(boost::bind(&FLPSyncSampler::ListenForAcks, this)); - int NOBLOCK = fChannels.at("data-out").at(0).fSocket->NOBLOCK; - uint16_t timeFrameId = 1; FairMQChannel& dataOutputChannel = fChannels.at("data-out").at(0); while (CheckCurrentState(RUNNING)) { - FairMQMessage* msg = fTransportFactory->CreateMessage(sizeof(uint16_t)); + unique_ptr msg(fTransportFactory->CreateMessage(sizeof(uint16_t))); memcpy(msg->GetData(), &timeFrameId, sizeof(uint16_t)); - if (dataOutputChannel.Send(msg, NOBLOCK) > 0) { + if (dataOutputChannel.SendAsync(msg) > 0) { fTimeframeRTT[timeFrameId].start = boost::posix_time::microsec_clock::local_time(); if (++timeFrameId == UINT16_MAX - 1) { @@ -65,8 +63,6 @@ void FLPSyncSampler::Run() while (fEventCounter == 0) { boost::this_thread::sleep(boost::posix_time::milliseconds(1)); } - - delete msg; } try { @@ -89,7 +85,7 @@ void FLPSyncSampler::ListenForAcks() while (CheckCurrentState(RUNNING)) { try { - FairMQMessage* idMsg = fTransportFactory->CreateMessage(); + unique_ptr idMsg(fTransportFactory->CreateMessage()); if (fChannels.at("ack-in").at(0).Receive(idMsg) > 0) { id = *(static_cast(idMsg->GetData())); diff --git a/devices/flp2epn/O2EPNex.cxx b/devices/flp2epn/O2EPNex.cxx index 3e0520b25ee47..5dca87e2dabdd 100644 --- a/devices/flp2epn/O2EPNex.cxx +++ b/devices/flp2epn/O2EPNex.cxx @@ -7,8 +7,17 @@ #include #include -#include "O2EPNex.h" + #include "FairMQLogger.h" +#include "O2EPNex.h" + +struct Content { + double a; + double b; + int x; + int y; + int z; +}; O2EPNex::O2EPNex() { @@ -17,19 +26,16 @@ O2EPNex::O2EPNex() void O2EPNex::Run() { while (CheckCurrentState(RUNNING)) { - FairMQMessage* msg = fTransportFactory->CreateMessage(); + std::unique_ptr msg(fTransportFactory->CreateMessage()); - fChannels["data-in"].at(0).Receive(msg); + fChannels.at("data-in").at(0).Receive(msg); - int inputSize = msg->GetSize(); - int numInput = inputSize / sizeof(Content); - Content* input = reinterpret_cast(msg->GetData()); + int numInput = msg->GetSize() / sizeof(Content); + Content* input = static_cast(msg->GetData()); // for (int i = 0; i < numInput; ++i) { // LOG(INFO) << (&input[i])->x << " " << (&input[i])->y << " " << (&input[i])->z << " " << (&input[i])->a << " " << (&input[i])->b; // } - - delete msg; } } diff --git a/devices/flp2epn/O2EPNex.h b/devices/flp2epn/O2EPNex.h index 4afe029502b4b..291ccb9ca3fc4 100644 --- a/devices/flp2epn/O2EPNex.h +++ b/devices/flp2epn/O2EPNex.h @@ -10,19 +10,12 @@ #include "FairMQDevice.h" -struct Content { - double a; - double b; - int x; - int y; - int z; -}; - class O2EPNex : public FairMQDevice { public: O2EPNex(); virtual ~O2EPNex(); + protected: virtual void Run(); }; diff --git a/devices/flp2epn/O2EpnMerger.cxx b/devices/flp2epn/O2EpnMerger.cxx index 4960b1b3aa5fb..26ed10d05bfdb 100644 --- a/devices/flp2epn/O2EpnMerger.cxx +++ b/devices/flp2epn/O2EpnMerger.cxx @@ -17,53 +17,30 @@ O2EpnMerger::O2EpnMerger() void O2EpnMerger::Run() { - FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data-in"]); + std::unique_ptr poller(fTransportFactory->CreatePoller(fChannels.at("data-in"))); - bool received = false; - int NoOfMsgParts = fChannels["data-in"].size() - 1; + int numParts = fChannels.at("data-in").size() - 1; while (CheckCurrentState(RUNNING)) { - FairMQMessage* msg = fTransportFactory->CreateMessage(); + std::unique_ptr msg(fTransportFactory->CreateMessage()); poller->Poll(100); - for (int i = 0; i < fChannels["data-in"].size(); i++) { + for (int i = 0; i < fChannels.at("data-in").size(); i++) { if (poller->CheckInput(i)) { - if (fChannels["data-in"].at(i).Receive(msg)) { + if (fChannels.at("data-in").at(i).Receive(msg)) { // LOG(INFO) << "------ recieve Msg from " << i ; - if (i < NoOfMsgParts) { - fChannels["data-out"].at(0).Send(msg, "snd-more"); + if (i < numParts) { + fChannels.at("data-out").at(0).SendPart(msg); // LOG(INFO) << "------ Send Msg Part " << i ; } else { - fChannels["data-out"].at(0).Send(msg); + fChannels.at("data-out").at(0).Send(msg); // LOG(INFO) << "------ Send last Msg Part " << i ; } } } } - - delete msg; } - - delete poller; - -//-------------------- - - // while (CheckCurrentState(RUNNING)) { - // FairMQMessage* msg = fTransportFactory->CreateMessage(); - - // fChannels["data-in"].at(0).Receive(msg); - - // int inputSize = msg->GetSize(); - // int numInput = inputSize / sizeof(Content); - // Content* input = reinterpret_cast(msg->GetData()); - - // // for (int i = 0; i < numInput; ++i) { - // // LOG(INFO) << (&input[i])->x << " " << (&input[i])->y << " " << (&input[i])->z << " " << (&input[i])->a << " " << (&input[i])->b; - // // } - - // delete msg; - // } } O2EpnMerger::~O2EpnMerger() diff --git a/devices/flp2epn/O2EpnMerger.h b/devices/flp2epn/O2EpnMerger.h index 92a2b8f71006a..6cca142822b9d 100644 --- a/devices/flp2epn/O2EpnMerger.h +++ b/devices/flp2epn/O2EpnMerger.h @@ -10,19 +10,12 @@ #include "FairMQDevice.h" -struct Content { - double a; - double b; - int x; - int y; - int z; -}; - class O2EpnMerger: public FairMQDevice { public: O2EpnMerger(); virtual ~O2EpnMerger(); + protected: virtual void Run(); }; diff --git a/devices/flp2epn/O2FLPex.cxx b/devices/flp2epn/O2FLPex.cxx index 59a2239d27bcf..6eed815b2daaa 100644 --- a/devices/flp2epn/O2FLPex.cxx +++ b/devices/flp2epn/O2FLPex.cxx @@ -17,6 +17,15 @@ using namespace std; +struct Content { + int id; + double a; + double b; + int x; + int y; + int z; +}; + O2FLPex::O2FLPex() : fEventSize(10000) { @@ -26,74 +35,68 @@ O2FLPex::~O2FLPex() { } -void O2FLPex::Init() -{ - FairMQDevice::Init(); -} - void O2FLPex::Run() { srand(time(NULL)); + FairMQChannel& outChannel = fChannels.at("data-out").at(0); + LOG(DEBUG) << "Message size: " << fEventSize * sizeof(Content) << " bytes."; while (CheckCurrentState(RUNNING)) { - Content* payload = new Content[fEventSize]; + vector payload(fEventSize); for (int i = 0; i < fEventSize; ++i) { - (&payload[i])->x = rand() % 100 + 1; - (&payload[i])->y = rand() % 100 + 1; - (&payload[i])->z = rand() % 100 + 1; - (&payload[i])->a = (rand() % 100 + 1) / (rand() % 100 + 1); - (&payload[i])->b = (rand() % 100 + 1) / (rand() % 100 + 1); + payload.at(i).x = rand() % 100 + 1; + payload.at(i).y = rand() % 100 + 1; + payload.at(i).z = rand() % 100 + 1; + payload.at(i).a = (rand() % 100 + 1) / (rand() % 100 + 1); + payload.at(i).b = (rand() % 100 + 1) / (rand() % 100 + 1); // LOG(INFO) << (&payload[i])->x << " " << (&payload[i])->y << " " << (&payload[i])->z << " " << (&payload[i])->a << " " << (&payload[i])->b; } - FairMQMessage* msg = fTransportFactory->CreateMessage(fEventSize * sizeof(Content)); - memcpy(msg->GetData(), payload, fEventSize * sizeof(Content)); - - fChannels["data-out"].at(0).Send(msg); + unique_ptr msg(fTransportFactory->CreateMessage(fEventSize * sizeof(Content))); + memcpy(msg->GetData(), payload.data(), fEventSize * sizeof(Content)); - delete[] payload; - delete msg; + outChannel.Send(msg); } } void O2FLPex::SetProperty(const int key, const string& value) { switch (key) { - default: - FairMQDevice::SetProperty(key, value); - break; + default: + FairMQDevice::SetProperty(key, value); + break; } } string O2FLPex::GetProperty(const int key, const string& default_/*= ""*/) { switch (key) { - default: - return FairMQDevice::GetProperty(key, default_); + default: + return FairMQDevice::GetProperty(key, default_); } } void O2FLPex::SetProperty(const int key, const int value) { switch (key) { - case EventSize: - fEventSize = value; - break; - default: - FairMQDevice::SetProperty(key, value); - break; + case EventSize: + fEventSize = value; + break; + default: + FairMQDevice::SetProperty(key, value); + break; } } int O2FLPex::GetProperty(const int key, const int default_/*= 0*/) { switch (key) { - case EventSize: - return fEventSize; - default: - return FairMQDevice::GetProperty(key, default_); + case EventSize: + return fEventSize; + default: + return FairMQDevice::GetProperty(key, default_); } } diff --git a/devices/flp2epn/O2FLPex.h b/devices/flp2epn/O2FLPex.h index e4613559807b6..bef7be48f2a90 100644 --- a/devices/flp2epn/O2FLPex.h +++ b/devices/flp2epn/O2FLPex.h @@ -12,15 +12,6 @@ #include "FairMQDevice.h" -struct Content { - int id; - double a; - double b; - int x; - int y; - int z; -}; - class O2FLPex : public FairMQDevice { public: @@ -41,7 +32,6 @@ class O2FLPex : public FairMQDevice protected: int fEventSize; - virtual void Init(); virtual void Run(); }; diff --git a/devices/flp2epn/O2Merger.cxx b/devices/flp2epn/O2Merger.cxx index b116dc0693438..e02d563d2e4ca 100644 --- a/devices/flp2epn/O2Merger.cxx +++ b/devices/flp2epn/O2Merger.cxx @@ -9,8 +9,9 @@ #include #include "FairMQLogger.h" -#include "O2Merger.h" #include "FairMQPoller.h" +#include "O2Merger.h" + O2Merger::O2Merger() { } @@ -21,33 +22,29 @@ O2Merger::~O2Merger() void O2Merger::Run() { - FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data-in"]); + std::unique_ptr poller(fTransportFactory->CreatePoller(fChannels.at("data-in"))); - int NoOfMsgParts = fChannels["data-in"].size() - 1; + int numParts = fChannels.at("data-in").size() - 1; while (CheckCurrentState(RUNNING)) { - FairMQMessage* msg = fTransportFactory->CreateMessage(); + std::unique_ptr msg(fTransportFactory->CreateMessage()); poller->Poll(100); - for (int i = 0; i < fChannels["data-in"].size(); i++) { + for (int i = 0; i < fChannels.at("data-in").size(); i++) { if (poller->CheckInput(i)) { - if (fChannels["data-in"].at(i).Receive(msg)) { + if (fChannels.at("data-in").at(i).Receive(msg) >= 0) { // LOG(INFO) << "------ recieve Msg from " << i ; - if (i < NoOfMsgParts) { - fChannels["data-out"].at(0).Send(msg, "snd-more"); + if (i < numParts) { + fChannels.at("data-out").at(0).SendPart(msg); // LOG(INFO) << "------ Send Msg Part " << i ; } else { - fChannels["data-out"].at(0).Send(msg); + fChannels.at("data-out").at(0).Send(msg); // LOG(INFO) << "------ Send last Msg Part " << i ; } } } } - - delete msg; } - - delete poller; } diff --git a/devices/flp2epn/O2Merger.h b/devices/flp2epn/O2Merger.h index 6925e14b4b17d..02d9a0e9a834d 100644 --- a/devices/flp2epn/O2Merger.h +++ b/devices/flp2epn/O2Merger.h @@ -16,6 +16,7 @@ class O2Merger: public FairMQDevice public: O2Merger(); virtual ~O2Merger(); + protected: virtual void Run(); }; diff --git a/devices/flp2epn/O2Proxy.cxx b/devices/flp2epn/O2Proxy.cxx index 4db1a009e389f..cb75d8f267ecd 100644 --- a/devices/flp2epn/O2Proxy.cxx +++ b/devices/flp2epn/O2Proxy.cxx @@ -11,8 +11,6 @@ #include "FairMQLogger.h" #include "O2Proxy.h" - - O2Proxy::O2Proxy() { } @@ -23,24 +21,26 @@ O2Proxy::~O2Proxy() void O2Proxy::Run() { + FairMQChannel& inChannel = fChannels.at("data-in").at(0); + FairMQChannel& outChannel = fChannels.at("data-out").at(0); + while (CheckCurrentState(RUNNING)) { // int i = 0; - int64_t more = 0; - size_t more_size = sizeof more; + bool more = false; + do { - /* Create an empty ØMQ message to hold the message part */ - FairMQMessage* msgpart = fTransportFactory->CreateMessage(); + /* Create an empty message to hold the message part */ + std::unique_ptr part(fTransportFactory->CreateMessage()); /* Block until a message is available to be received from socket */ - fChannels["data-in"].at(0).Receive(msgpart); + inChannel.Receive(part); /* Determine if more message parts are to follow */ - fChannels["data-in"].at(0).fSocket->GetOption("rcv-more", &more, &more_size); + more = inChannel.ExpectsAnotherPart(); // LOG(INFO) << "------ Get Msg Part "<< " more = " << more << " counter " << i++ ; if (more) { - fChannels["data-out"].at(0).Send(msgpart, "snd-more"); + outChannel.SendPart(part); } else { - fChannels["data-out"].at(0).Send(msgpart); + outChannel.Send(part); } - delete msgpart; } while (more); // i = 0; } diff --git a/devices/flp2epn/O2Proxy.h b/devices/flp2epn/O2Proxy.h index 8d496b3e0890c..c3b7faef70d61 100644 --- a/devices/flp2epn/O2Proxy.h +++ b/devices/flp2epn/O2Proxy.h @@ -16,6 +16,7 @@ class O2Proxy: public FairMQDevice public: O2Proxy(); virtual ~O2Proxy(); + protected: virtual void Run(); }; From 85abc19db131c735c0deedba79f7df55669b3e1e Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Tue, 17 Nov 2015 13:46:37 +0100 Subject: [PATCH 003/135] Add integration test for flp2epn-distributed Test starts a chain of flpSyncSampler, 2 flpSenders and 2 epnReceivers. 100 time frames are generated. Test succeeds if the timeframes are correctly distributed, merged and acknowledged. --- devices/flp2epn-distributed/CMakeLists.txt | 11 +- devices/flp2epn-distributed/FLPSender.cxx | 3 +- .../flp2epn-distributed/FLPSyncSampler.cxx | 70 +++++++++--- devices/flp2epn-distributed/FLPSyncSampler.h | 4 + .../run/runEPNReceiver.cxx | 17 ++- .../flp2epn-distributed/run/runFLPSender.cxx | 75 ++++++++----- .../run/runFLPSyncSampler.cxx | 41 +++++-- .../runO2Prototype/runFLPSyncSampler.cxx | 22 ++-- .../test/testFLP2EPN-distributed.sh.in | 103 ++++++++++++++++++ 9 files changed, 277 insertions(+), 69 deletions(-) create mode 100755 devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in diff --git a/devices/flp2epn-distributed/CMakeLists.txt b/devices/flp2epn-distributed/CMakeLists.txt index 06bd1cca49659..e3a6b251d5e31 100644 --- a/devices/flp2epn-distributed/CMakeLists.txt +++ b/devices/flp2epn-distributed/CMakeLists.txt @@ -1,3 +1,6 @@ +configure_file(${CMAKE_SOURCE_DIR}/devices/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN-distributed.sh) +configure_file(${CMAKE_SOURCE_DIR}/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in ${CMAKE_BINARY_DIR}/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh) + set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/devices/flp2epn-distributed ) @@ -22,10 +25,6 @@ endif() include_directories(${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) -configure_file( - ${CMAKE_SOURCE_DIR}/devices/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN-distributed.sh -) - set(LINK_DIRECTORIES ${Boost_LIBRARY_DIRS} ${FAIRROOT_LIBRARY_DIR} @@ -115,3 +114,7 @@ ForEach(_file RANGE 0 ${_length}) set(DEPENDENCIES FLP2EPNex_distributed) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) + +add_test(NAME run_flp2epn_distributed COMMAND ${CMAKE_BINARY_DIR}/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh) +set_tests_properties(run_flp2epn_distributed PROPERTIES TIMEOUT "30") +set_tests_properties(run_flp2epn_distributed PROPERTIES PASS_REGULAR_EXPRESSION "acknowledged after") diff --git a/devices/flp2epn-distributed/FLPSender.cxx b/devices/flp2epn-distributed/FLPSender.cxx index 8b0f4d93c17ce..2bd65489c6c6c 100644 --- a/devices/flp2epn-distributed/FLPSender.cxx +++ b/devices/flp2epn-distributed/FLPSender.cxx @@ -197,7 +197,8 @@ inline void FLPSender::sendFrontData() // fArrivalTime.pop(); // fDataBuffer.pop(); // } else { // if the heartbeat from the corresponding EPN is within timeout period, send the data. - if (fChannels.at("data-out").at(direction).SendPartAsync(fHeaderBuffer.front()) < 0) { + if (fChannels.at("data-out").at(direction).SendPart(fHeaderBuffer.front()) < 0) { + // TODO: replace SendPart() with SendPartAsync() after nov15 fairroot release LOG(ERROR) << "Failed to queue ID part of event #" << currentTimeframeId; } else { if (fChannels.at("data-out").at(direction).SendAsync(fDataBuffer.front()) < 0) { diff --git a/devices/flp2epn-distributed/FLPSyncSampler.cxx b/devices/flp2epn-distributed/FLPSyncSampler.cxx index c13dcb2fdb6f0..e8f91af7c571d 100644 --- a/devices/flp2epn-distributed/FLPSyncSampler.cxx +++ b/devices/flp2epn-distributed/FLPSyncSampler.cxx @@ -21,6 +21,8 @@ using namespace AliceO2::Devices; FLPSyncSampler::FLPSyncSampler() : fEventRate(1) + , fMaxEvents(0) + , fStoreRTTinFile(0) , fEventCounter(0) , fTimeframeRTT() { @@ -42,7 +44,7 @@ void FLPSyncSampler::Run() boost::thread resetEventCounter(boost::bind(&FLPSyncSampler::ResetEventCounter, this)); boost::thread ackListener(boost::bind(&FLPSyncSampler::ListenForAcks, this)); - uint16_t timeFrameId = 1; + uint16_t timeFrameId = 0; FairMQChannel& dataOutputChannel = fChannels.at("data-out").at(0); @@ -50,11 +52,11 @@ void FLPSyncSampler::Run() unique_ptr msg(fTransportFactory->CreateMessage(sizeof(uint16_t))); memcpy(msg->GetData(), &timeFrameId, sizeof(uint16_t)); - if (dataOutputChannel.SendAsync(msg) > 0) { + if (dataOutputChannel.Send(msg) >= 0) { fTimeframeRTT[timeFrameId].start = boost::posix_time::microsec_clock::local_time(); if (++timeFrameId == UINT16_MAX - 1) { - timeFrameId = 1; + timeFrameId = 0; } } @@ -63,6 +65,11 @@ void FLPSyncSampler::Run() while (fEventCounter == 0) { boost::this_thread::sleep(boost::posix_time::milliseconds(1)); } + + if (fMaxEvents > 0 && timeFrameId >= fMaxEvents) { + LOG(INFO) << "Reached configured maximum number of events (" << fMaxEvents << "). Exiting Run()."; + break; + } } try { @@ -79,32 +86,51 @@ void FLPSyncSampler::ListenForAcks() { uint16_t id = 0; - string name = to_iso_string(boost::posix_time::microsec_clock::local_time()).substr(0, 20); - ofstream ofsFrames(name + "-frames.log"); - ofstream ofsTimes(name + "-times.log"); + unique_ptr poller(fTransportFactory->CreatePoller(fChannels.at("ack-in"))); + + ofstream ofsFrames; + ofstream ofsTimes; + + // store round trip time measurements in a file + if (fStoreRTTinFile > 0) { + string name = to_iso_string(boost::posix_time::microsec_clock::local_time()).substr(0, 20); + ofsFrames.open(name + "-frames.log"); + ofsTimes.open(name + "-times.log"); + } while (CheckCurrentState(RUNNING)) { try { - unique_ptr idMsg(fTransportFactory->CreateMessage()); + poller->Poll(100); - if (fChannels.at("ack-in").at(0).Receive(idMsg) > 0) { - id = *(static_cast(idMsg->GetData())); - fTimeframeRTT.at(id).end = boost::posix_time::microsec_clock::local_time(); - // store values in a file - ofsFrames << id << "\n"; - ofsTimes << (fTimeframeRTT.at(id).end - fTimeframeRTT.at(id).start).total_microseconds() << "\n"; + unique_ptr idMsg(fTransportFactory->CreateMessage()); - LOG(INFO) << "Timeframe #" << id << " acknowledged after " - << (fTimeframeRTT.at(id).end - fTimeframeRTT.at(id).start).total_microseconds() << " μs."; + if (poller->CheckInput(0)) { + if (fChannels.at("ack-in").at(0).Receive(idMsg) >= 0) { + id = *(static_cast(idMsg->GetData())); + fTimeframeRTT.at(id).end = boost::posix_time::microsec_clock::local_time(); + // store values in a file + if (fStoreRTTinFile > 0) { + ofsFrames << id << "\n"; + ofsTimes << (fTimeframeRTT.at(id).end - fTimeframeRTT.at(id).start).total_microseconds() << "\n"; + } + + LOG(INFO) << "Timeframe #" << id << " acknowledged after " + << (fTimeframeRTT.at(id).end - fTimeframeRTT.at(id).start).total_microseconds() << " μs."; + } } + + boost::this_thread::interruption_point(); } catch (boost::thread_interrupted&) { LOG(DEBUG) << "Acknowledgement listener thread interrupted"; break; } } - ofsFrames.close(); - ofsTimes.close(); + // store round trip time measurements in a file + if (fStoreRTTinFile > 0) { + ofsFrames.close(); + ofsTimes.close(); + } } void FLPSyncSampler::ResetEventCounter() @@ -143,6 +169,12 @@ void FLPSyncSampler::SetProperty(const int key, const int value) case EventRate: fEventRate = value; break; + case MaxEvents: + fMaxEvents = value; + break; + case StoreRTTinFile: + fStoreRTTinFile = value; + break; default: FairMQDevice::SetProperty(key, value); break; @@ -154,6 +186,10 @@ int FLPSyncSampler::GetProperty(const int key, const int default_ /*= 0*/) switch (key) { case EventRate: return fEventRate; + case MaxEvents: + return fMaxEvents; + case StoreRTTinFile: + return fStoreRTTinFile; default: return FairMQDevice::GetProperty(key, default_); } diff --git a/devices/flp2epn-distributed/FLPSyncSampler.h b/devices/flp2epn-distributed/FLPSyncSampler.h index 77f634f3e0894..a6b7a93272ad6 100644 --- a/devices/flp2epn-distributed/FLPSyncSampler.h +++ b/devices/flp2epn-distributed/FLPSyncSampler.h @@ -33,6 +33,8 @@ class FLPSyncSampler : public FairMQDevice public: enum { EventRate = FairMQDevice::Last, ///< Publishing rate of the timeframe IDs + MaxEvents, ///< Maximum number of events to send (0 - unlimited) + StoreRTTinFile, ///< Store round trip time measurements in a file Last }; @@ -74,6 +76,8 @@ class FLPSyncSampler : public FairMQDevice std::array fTimeframeRTT; ///< Container for the roundtrip values per timeframe ID int fEventRate; ///< Publishing rate of the timeframe IDs + int fMaxEvents; ///< Maximum number of events to send (0 - unlimited) + int fStoreRTTinFile; ///< Store round trip time measurements in a file. int fEventCounter; ///< Controls the send rate of the timeframe IDs }; diff --git a/devices/flp2epn-distributed/run/runEPNReceiver.cxx b/devices/flp2epn-distributed/run/runEPNReceiver.cxx index b6484604060f9..575bb220ac25e 100644 --- a/devices/flp2epn-distributed/run/runEPNReceiver.cxx +++ b/devices/flp2epn-distributed/run/runEPNReceiver.cxx @@ -25,6 +25,7 @@ typedef struct DeviceOptions int bufferTimeoutInMs; int numFLPs; int testMode; + int interactive; string dataInSocketType; int dataInBufSize; @@ -65,6 +66,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) ("buffer-timeout", bpo::value()->default_value(1000), "Buffer timeout in milliseconds") ("num-flps", bpo::value()->required(), "Number of FLPs") ("test-mode", bpo::value()->default_value(0), "Run in test mode") + ("interactive", bpo::value()->default_value(1), "Run in interactive mode (1/0)") ("data-in-socket-type", bpo::value()->default_value("pull"), "Data input socket type: sub/pull") ("data-in-buff-size", bpo::value()->default_value(10), "Data input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") @@ -108,6 +110,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) if (vm.count("buffer-timeout")) { _options->bufferTimeoutInMs = vm["buffer-timeout"].as(); } if (vm.count("num-flps")) { _options->numFLPs = vm["num-flps"].as(); } if (vm.count("test-mode")) { _options->testMode = vm["test-mode"].as(); } + if (vm.count("interactive")) { _options->interactive = vm["interactive"].as(); } if (vm.count("data-in-socket-type")) { _options->dataInSocketType = vm["data-in-socket-type"].as(); } if (vm.count("data-in-buff-size")) { _options->dataInBufSize = vm["data-in-buff-size"].as(); } @@ -214,7 +217,19 @@ int main(int argc, char** argv) // run the device epn.ChangeState("RUN"); - epn.InteractiveStateLoop(); + if (options.interactive > 0) { + epn.InteractiveStateLoop(); + } else { + epn.WaitForEndOfState("RUN"); + + epn.ChangeState("RESET_TASK"); + epn.WaitForEndOfState("RESET_TASK"); + + epn.ChangeState("RESET_DEVICE"); + epn.WaitForEndOfState("RESET_DEVICE"); + + epn.ChangeState("END"); + } return 0; } diff --git a/devices/flp2epn-distributed/run/runFLPSender.cxx b/devices/flp2epn-distributed/run/runFLPSender.cxx index 889fa3ef26523..2fa049b2b8bd2 100644 --- a/devices/flp2epn-distributed/run/runFLPSender.cxx +++ b/devices/flp2epn-distributed/run/runFLPSender.cxx @@ -26,6 +26,7 @@ typedef struct DeviceOptions int numEPNs; int heartbeatTimeoutInMs; int testMode; + int interactive; int sendOffset; int sendDelay; @@ -64,6 +65,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) ("num-epns", bpo::value()->required(), "Number of EPNs") ("heartbeat-timeout", bpo::value()->default_value(20000), "Heartbeat timeout in milliseconds") ("test-mode", bpo::value()->default_value(0), "Run in test mode") + ("interactive", bpo::value()->default_value(1), "Run in interactive mode (1/0)") ("send-offset", bpo::value()->default_value(0), "Offset for staggered sending") ("send-delay", bpo::value()->default_value(8), "Delay for staggered sending") @@ -97,35 +99,36 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("flp-index")) { _options->flpIndex = vm["flp-index"].as(); } - if (vm.count("event-size")) { _options->eventSize = vm["event-size"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } - - if (vm.count("num-epns")) { _options->numEPNs = vm["num-epns"].as(); } - - if (vm.count("heartbeat-timeout")) { _options->heartbeatTimeoutInMs = vm["heartbeat-timeout"].as(); } - if (vm.count("test-mode")) { _options->testMode = vm["test-mode"].as(); } - if (vm.count("send-offset")) { _options->sendOffset = vm["send-offset"].as(); } - if (vm.count("send-delay")) { _options->sendDelay = vm["send-delay"].as(); } - - if (vm.count("data-in-socket-type")) { _options->dataInSocketType = vm["data-in-socket-type"].as(); } - if (vm.count("data-in-buff-size")) { _options->dataInBufSize = vm["data-in-buff-size"].as(); } - if (vm.count("data-in-method")) { _options->dataInMethod = vm["data-in-method"].as(); } - if (vm.count("data-in-address")) { _options->dataInAddress = vm["data-in-address"].as(); } - if (vm.count("data-in-rate-logging")) { _options->dataInRateLogging = vm["data-in-rate-logging"].as(); } - - if (vm.count("data-out-socket-type")) { _options->dataOutSocketType = vm["data-out-socket-type"].as(); } - if (vm.count("data-out-buff-size")) { _options->dataOutBufSize = vm["data-out-buff-size"].as(); } - if (vm.count("data-out-method")) { _options->dataOutMethod = vm["data-out-method"].as(); } - if (vm.count("data-out-address")) { _options->dataOutAddress = vm["data-out-address"].as>(); } - if (vm.count("data-out-rate-logging")) { _options->dataOutRateLogging = vm["data-out-rate-logging"].as(); } - - if (vm.count("hb-in-socket-type")) { _options->hbInSocketType = vm["hb-in-socket-type"].as(); } - if (vm.count("hb-in-buff-size")) { _options->hbInBufSize = vm["hb-in-buff-size"].as(); } - if (vm.count("hb-in-method")) { _options->hbInMethod = vm["hb-in-method"].as(); } - if (vm.count("hb-in-address")) { _options->hbInAddress = vm["hb-in-address"].as(); } - if (vm.count("hb-in-rate-logging")) { _options->hbInRateLogging = vm["hb-in-rate-logging"].as(); } + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("flp-index")) { _options->flpIndex = vm["flp-index"].as(); } + if (vm.count("event-size")) { _options->eventSize = vm["event-size"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + + if (vm.count("num-epns")) { _options->numEPNs = vm["num-epns"].as(); } + + if (vm.count("heartbeat-timeout")) { _options->heartbeatTimeoutInMs = vm["heartbeat-timeout"].as(); } + if (vm.count("test-mode")) { _options->testMode = vm["test-mode"].as(); } + if (vm.count("interactive")) { _options->interactive = vm["interactive"].as(); } + if (vm.count("send-offset")) { _options->sendOffset = vm["send-offset"].as(); } + if (vm.count("send-delay")) { _options->sendDelay = vm["send-delay"].as(); } + + if (vm.count("data-in-socket-type")) { _options->dataInSocketType = vm["data-in-socket-type"].as(); } + if (vm.count("data-in-buff-size")) { _options->dataInBufSize = vm["data-in-buff-size"].as(); } + if (vm.count("data-in-method")) { _options->dataInMethod = vm["data-in-method"].as(); } + if (vm.count("data-in-address")) { _options->dataInAddress = vm["data-in-address"].as(); } + if (vm.count("data-in-rate-logging")) { _options->dataInRateLogging = vm["data-in-rate-logging"].as(); } + + if (vm.count("data-out-socket-type")) { _options->dataOutSocketType = vm["data-out-socket-type"].as(); } + if (vm.count("data-out-buff-size")) { _options->dataOutBufSize = vm["data-out-buff-size"].as(); } + if (vm.count("data-out-method")) { _options->dataOutMethod = vm["data-out-method"].as(); } + if (vm.count("data-out-address")) { _options->dataOutAddress = vm["data-out-address"].as>(); } + if (vm.count("data-out-rate-logging")) { _options->dataOutRateLogging = vm["data-out-rate-logging"].as(); } + + if (vm.count("hb-in-socket-type")) { _options->hbInSocketType = vm["hb-in-socket-type"].as(); } + if (vm.count("hb-in-buff-size")) { _options->hbInBufSize = vm["hb-in-buff-size"].as(); } + if (vm.count("hb-in-method")) { _options->hbInMethod = vm["hb-in-method"].as(); } + if (vm.count("hb-in-address")) { _options->hbInAddress = vm["hb-in-address"].as(); } + if (vm.count("hb-in-rate-logging")) { _options->hbInRateLogging = vm["hb-in-rate-logging"].as(); } return true; } @@ -204,7 +207,19 @@ int main(int argc, char** argv) // run the device flp.ChangeState("RUN"); - flp.InteractiveStateLoop(); + if (options.interactive > 0) { + flp.InteractiveStateLoop(); + } else { + flp.WaitForEndOfState("RUN"); + + flp.ChangeState("RESET_TASK"); + flp.WaitForEndOfState("RESET_TASK"); + + flp.ChangeState("RESET_DEVICE"); + flp.WaitForEndOfState("RESET_DEVICE"); + + flp.ChangeState("END"); + } return 0; } diff --git a/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx b/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx index a23aabc82df62..e9aeb7729032a 100644 --- a/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx +++ b/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx @@ -21,7 +21,10 @@ typedef struct DeviceOptions { string id; int eventRate; + int maxEvents; int ioThreads; + int interactive; + int storeRTTinFile; string dataOutSocketType; int dataOutBufSize; @@ -46,7 +49,10 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) desc.add_options() ("id", bpo::value()->required(), "Device ID") ("event-rate", bpo::value()->default_value(0), "Event rate limit in maximum number of events per second") + ("max-events", bpo::value()->default_value(0), "Maximum number of events to send (0 - unlimited)") ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") + ("interactive", bpo::value()->default_value(1), "Run in interactive mode (1/0)") + ("store-rtt-in-file", bpo::value()->default_value(0), "Store round trip time measurements in a file (1/0)") ("data-out-socket-type", bpo::value()->default_value("pub"), "Data output socket type: pub/push") ("data-out-buff-size", bpo::value()->default_value(100), "Data output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") @@ -72,9 +78,12 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("event-rate")) { _options->eventRate = vm["event-rate"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("event-rate")) { _options->eventRate = vm["event-rate"].as(); } + if (vm.count("max-events")) { _options->maxEvents = vm["max-events"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("interactive")) { _options->interactive = vm["interactive"].as(); } + if (vm.count("store-rtt-in-file")) { _options->storeRTTinFile = vm["store-rtt-in-file"].as(); } if (vm.count("data-out-socket-type")) { _options->dataOutSocketType = vm["data-out-socket-type"].as(); } if (vm.count("data-out-buff-size")) { _options->dataOutBufSize = vm["data-out-buff-size"].as(); } @@ -82,11 +91,11 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) if (vm.count("data-out-address")) { _options->dataOutAddress = vm["data-out-address"].as(); } if (vm.count("data-out-rate-logging")) { _options->dataOutRateLogging = vm["data-out-rate-logging"].as(); } - if (vm.count("ack-in-socket-type")) { _options->ackInSocketType = vm["ack-in-socket-type"].as(); } - if (vm.count("ack-in-buff-size")) { _options->ackInBufSize = vm["ack-in-buff-size"].as(); } - if (vm.count("ack-in-method")) { _options->ackInMethod = vm["ack-in-method"].as(); } - if (vm.count("ack-in-address")) { _options->ackInAddress = vm["ack-in-address"].as(); } - if (vm.count("ack-in-rate-logging")) { _options->ackInRateLogging = vm["ack-in-rate-logging"].as(); } + if (vm.count("ack-in-socket-type")) { _options->ackInSocketType = vm["ack-in-socket-type"].as(); } + if (vm.count("ack-in-buff-size")) { _options->ackInBufSize = vm["ack-in-buff-size"].as(); } + if (vm.count("ack-in-method")) { _options->ackInMethod = vm["ack-in-method"].as(); } + if (vm.count("ack-in-address")) { _options->ackInAddress = vm["ack-in-address"].as(); } + if (vm.count("ack-in-rate-logging")) { _options->ackInRateLogging = vm["ack-in-rate-logging"].as(); } return true; } @@ -119,6 +128,8 @@ int main(int argc, char** argv) sampler.SetProperty(FLPSyncSampler::Id, options.id); sampler.SetProperty(FLPSyncSampler::NumIoThreads, options.ioThreads); sampler.SetProperty(FLPSyncSampler::EventRate, options.eventRate); + sampler.SetProperty(FLPSyncSampler::MaxEvents, options.maxEvents); + sampler.SetProperty(FLPSyncSampler::StoreRTTinFile, options.storeRTTinFile); // configure data output channel FairMQChannel dataOutChannel(options.dataOutSocketType, options.dataOutMethod, options.dataOutAddress); @@ -144,7 +155,19 @@ int main(int argc, char** argv) // run the device sampler.ChangeState("RUN"); - sampler.InteractiveStateLoop(); + if (options.interactive > 0) { + sampler.InteractiveStateLoop(); + } else { + sampler.WaitForEndOfState("RUN"); + + sampler.ChangeState("RESET_TASK"); + sampler.WaitForEndOfState("RESET_TASK"); + + sampler.ChangeState("RESET_DEVICE"); + sampler.WaitForEndOfState("RESET_DEVICE"); + + sampler.ChangeState("END"); + } return 0; } diff --git a/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx b/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx index dd90d82ca3b79..1736dfc340c3e 100644 --- a/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx +++ b/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx @@ -29,6 +29,8 @@ typedef struct DeviceOptions { string id; int eventRate; + int maxEvents; + int storeRTTinFile; int ioThreads; string dataOutSocketType; @@ -54,6 +56,8 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) desc.add_options() ("id", bpo::value()->required(), "Device ID") ("event-rate", bpo::value()->default_value(100), "Event rate limit in maximum number of events per second") + ("max-events", bpo::value()->default_value(0), "Maximum number of events to send (0 - unlimited)") + ("store-rtt-in-file", bpo::value()->default_value(0), "Store round trip time measurements in a file (1/0)") ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") ("data-out-socket-type", bpo::value()->default_value("pub"), "Data output socket type: pub/push") @@ -80,9 +84,11 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("event-rate")) { _options->eventRate = vm["event-rate"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("event-rate")) { _options->eventRate = vm["event-rate"].as(); } + if (vm.count("max-events")) { _options->maxEvents = vm["max-events"].as(); } + if (vm.count("store-rtt-in-file")) { _options->storeRTTinFile = vm["store-rtt-in-file"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } if (vm.count("data-out-socket-type")) { _options->dataOutSocketType = vm["data-out-socket-type"].as(); } if (vm.count("data-out-buff-size")) { _options->dataOutBufSize = vm["data-out-buff-size"].as(); } @@ -90,11 +96,11 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) // if (vm.count("data-out-address")) { _options->dataOutAddress = vm["data-out-address"].as(); } if (vm.count("data-out-rate-logging")) { _options->dataOutRateLogging = vm["data-out-rate-logging"].as(); } - if (vm.count("ack-in-socket-type")) { _options->ackInSocketType = vm["ack-in-socket-type"].as(); } - if (vm.count("ack-in-buff-size")) { _options->ackInBufSize = vm["ack-in-buff-size"].as(); } - if (vm.count("ack-in-method")) { _options->ackInMethod = vm["ack-in-method"].as(); } + if (vm.count("ack-in-socket-type")) { _options->ackInSocketType = vm["ack-in-socket-type"].as(); } + if (vm.count("ack-in-buff-size")) { _options->ackInBufSize = vm["ack-in-buff-size"].as(); } + if (vm.count("ack-in-method")) { _options->ackInMethod = vm["ack-in-method"].as(); } // if (vm.count("ack-in-address")) { _options->ackInAddress = vm["ack-in-address"].as(); } - if (vm.count("ack-in-rate-logging")) { _options->ackInRateLogging = vm["ack-in-rate-logging"].as(); } + if (vm.count("ack-in-rate-logging")) { _options->ackInRateLogging = vm["ack-in-rate-logging"].as(); } return true; } @@ -148,6 +154,8 @@ int main(int argc, char** argv) sampler.SetProperty(FLPSyncSampler::Id, options.id); sampler.SetProperty(FLPSyncSampler::NumIoThreads, options.ioThreads); sampler.SetProperty(FLPSyncSampler::EventRate, options.eventRate); + sampler.SetProperty(FLPSyncSampler::MaxEvents, options.maxEvents); + sampler.SetProperty(FLPSyncSampler::StoreRTTinFile, options.storeRTTinFile); FairMQChannel dataOutChannel(options.dataOutSocketType, options.dataOutMethod, ownAddress); dataOutChannel.UpdateSndBufSize(options.dataOutBufSize); diff --git a/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in b/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in new file mode 100755 index 0000000000000..72a07e707c36b --- /dev/null +++ b/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in @@ -0,0 +1,103 @@ +#!/bin/bash + +# setup a trap to kill everything if the test fails/timeouts + +trap 'kill -TERM $FLP0_PID; kill -TERM $FLP1_PID; kill -TERM $EPN0_PID; kill -TERM $EPN1_PID; kill -TERM $SAMPLER_PID; wait $FLP0_PID; wait $FLP1_PID; wait $EPN0_PID; wait $EPN1_PID; wait $SAMPLER_PID;' TERM + +# start 2 flpSenders in non-interactive mode + +FLP0="flpSender" +FLP0+=" --id FLP1" +FLP0+=" --interactive 0" +FLP0+=" --flp-index 0" +FLP0+=" --event-size 1000000" +FLP0+=" --num-epns 2" +FLP0+=" --heartbeat-timeout 20000" +FLP0+=" --test-mode 1" +FLP0+=" --send-offset 0" +FLP0+=" --hb-in-address tcp://127.0.0.1:7580" +FLP0+=" --data-in-socket-type sub --data-in-method connect --data-in-address tcp://127.0.0.1:7550" # non-default socket type and method for test mode, default is pull/bind +FLP0+=" --data-out-address tcp://127.0.0.1:7560" +FLP0+=" --data-out-address tcp://127.0.0.1:7561" +@CMAKE_BINARY_DIR@/bin/$FLP0 & +FLP0_PID=$! + +FLP1="flpSender" +FLP1+=" --id FLP2" +FLP1+=" --interactive 0" +FLP1+=" --flp-index 1" +FLP1+=" --event-size 1000000" +FLP1+=" --num-epns 2" +FLP1+=" --heartbeat-timeout 20000" +FLP1+=" --test-mode 1" +FLP1+=" --send-offset 0" +FLP1+=" --hb-in-address tcp://127.0.0.1:7581" +FLP1+=" --data-in-socket-type sub --data-in-method connect --data-in-address tcp://127.0.0.1:7550" # non-default socket type and method for test mode, default is pull/bind +FLP1+=" --data-out-address tcp://127.0.0.1:7560" +FLP1+=" --data-out-address tcp://127.0.0.1:7561" +@CMAKE_BINARY_DIR@/bin/$FLP1 & +FLP1_PID=$! + +# start 2 epnReceivers in non-interactive mode + +EPN0="epnReceiver" +EPN0+=" --id EPN1" +EPN0+=" --interactive 0" +EPN0+=" --heartbeat-interval 5000" +EPN0+=" --num-flps 2" +EPN0+=" --test-mode 1" +EPN0+=" --data-in-address tcp://127.0.0.1:7560" +EPN0+=" --data-out-address tcp://*:7590 --data-out-socket-type pub" # non-default socket type for test mode (because no receiver - do pub), default is push. +EPN0+=" --hb-out-address tcp://127.0.0.1:7580" +EPN0+=" --hb-out-address tcp://127.0.0.1:7581" +EPN0+=" --ack-out-address tcp://127.0.0.1:7990" +@CMAKE_BINARY_DIR@/bin/$EPN0 & +EPN0_PID=$! + +EPN1="epnReceiver" +EPN1+=" --id EPN2" +EPN1+=" --interactive 0" +EPN1+=" --heartbeat-interval 5000" +EPN1+=" --num-flps 2" +EPN1+=" --test-mode 1" +EPN1+=" --data-in-address tcp://127.0.0.1:7561" +EPN1+=" --data-out-address tcp://*:7591 --data-out-socket-type pub" # non-default socket type for test mode (because no receiver - do pub), default is push. +EPN1+=" --hb-out-address tcp://127.0.0.1:7580" +EPN1+=" --hb-out-address tcp://127.0.0.1:7581" +EPN1+=" --ack-out-address tcp://127.0.0.1:7990" +@CMAKE_BINARY_DIR@/bin/$EPN1 & +EPN1_PID=$! + +# give them some time to initialize before starting flpSyncSampler + +sleep 2 + +# start flpSyncSampler in non-interactive mode + +SAMPLER="flpSyncSampler" +SAMPLER+=" --id 101" +SAMPLER+=" --event-rate 100" +SAMPLER+=" --max-events 100" +SAMPLER+=" --interactive 0" +SAMPLER+=" --ack-in-address tcp://*:7990" +SAMPLER+=" --data-out-address tcp://*:7550" +@CMAKE_BINARY_DIR@/bin/$SAMPLER & +SAMPLER_PID=$! + +# wait for the flpSyncSampler process to finish + +wait $SAMPLER_PID + +# stop the flpSenders and epnReceivers + +kill -SIGINT $FLP0_PID +kill -SIGINT $FLP1_PID +kill -SIGINT $EPN0_PID +kill -SIGINT $EPN1_PID + +# wait for everything to finish + +wait $FLP0_PID +wait $FLP1_PID +wait $EPN0_PID +wait $EPN1_PID From a0f1a43d6c45086d85fc6ed30ae7413e01d1a197 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 25 Nov 2015 09:42:43 +0100 Subject: [PATCH 004/135] Changing the dependency of the aliceHLTwrapper module aliceHLTwrapper does not depend on AliRoot, so this dependency is removed. AliRoot libraries are added at runtime as plugins. --- devices/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/CMakeLists.txt b/devices/CMakeLists.txt index 1ca43ce47d1c2..4c02cc22bc5eb 100644 --- a/devices/CMakeLists.txt +++ b/devices/CMakeLists.txt @@ -2,5 +2,5 @@ add_subdirectory (flp2epn) add_subdirectory (flp2epn-distributed) if(ALIROOT) add_subdirectory (hough) - add_subdirectory (aliceHLTwrapper) endif(ALIROOT) +add_subdirectory (aliceHLTwrapper) From 15a27d5c2c1d661871ee5a70dca50b82068350e3 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 25 Nov 2015 09:46:14 +0100 Subject: [PATCH 005/135] Fixing compilation problem due to the changed FairMQDevice interface. Shutdown has become private. --- devices/aliceHLTwrapper/EventSampler.cxx | 10 ---------- devices/aliceHLTwrapper/EventSampler.h | 2 -- 2 files changed, 12 deletions(-) diff --git a/devices/aliceHLTwrapper/EventSampler.cxx b/devices/aliceHLTwrapper/EventSampler.cxx index 5defe1f668431..81833833dd28f 100644 --- a/devices/aliceHLTwrapper/EventSampler.cxx +++ b/devices/aliceHLTwrapper/EventSampler.cxx @@ -175,16 +175,6 @@ void EventSampler::Pause() FairMQDevice::Pause(); } -void EventSampler::Shutdown() -{ - /// inherited from FairMQDevice - - int iResult=0; - // TODO: shutdown component and delete instance - - FairMQDevice::Shutdown(); -} - void EventSampler::SetProperty(const int key, const string& value) { /// inherited from FairMQDevice diff --git a/devices/aliceHLTwrapper/EventSampler.h b/devices/aliceHLTwrapper/EventSampler.h index 9908e4c6aaf62..29dcca7e0bbe6 100644 --- a/devices/aliceHLTwrapper/EventSampler.h +++ b/devices/aliceHLTwrapper/EventSampler.h @@ -48,8 +48,6 @@ class EventSampler : public FairMQDevice { /// inherited from FairMQDevice virtual void Pause(); /// inherited from FairMQDevice - virtual void Shutdown(); - /// inherited from FairMQDevice /// handle device specific properties and forward to FairMQDevice::SetProperty virtual void SetProperty(const int key, const std::string& value); /// inherited from FairMQDevice From 352d8a37bfeb8bd44373e96ecffef99f5859da52 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 25 Nov 2015 10:35:06 +0100 Subject: [PATCH 006/135] Fix for GH issue #90 Removing tautological comparison which was introduced in commit a658a3584ce66cfe1e036a59f4e1ba33b03aab51 Author: Matthias Richter Date: Thu Mar 19 21:55:30 2015 +0100 forwarding event header also if there are no output blocks; adjusting conditions for warning messages --- devices/aliceHLTwrapper/Component.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/aliceHLTwrapper/Component.cxx b/devices/aliceHLTwrapper/Component.cxx index e0f173f4afef1..64dd44e4b8930 100644 --- a/devices/aliceHLTwrapper/Component.cxx +++ b/devices/aliceHLTwrapper/Component.cxx @@ -264,7 +264,7 @@ int Component::process(vector& dataArray, } while (iResult == ENOSPC && --nofTrials > 0); // prepare output - if (outputBlockCnt >= 0) { + { // keep this after removing condition to preserve formatting AliHLTUInt8_t* pOutputBufferStart = &mOutputBuffer[0]; AliHLTUInt8_t* pOutputBufferEnd = pOutputBufferStart + mOutputBuffer.size(); // consistency check for data blocks From f8c5ec36320ea22dbd96b6bda2c3860c390ed966 Mon Sep 17 00:00:00 2001 From: Raffaele Grosso Date: Wed, 13 Jan 2016 11:09:40 +0100 Subject: [PATCH 007/135] MQ client and server interfacing O2CDB The user can run an MQ server/client passing CDB objects. The client request CDB objects by specifying in the request the calibration type ("DET/Calib/Histo" in the example) followed by the run number. The server replies with the corresponding CDB object (an instance of the Condition class) wrapped in a TMessage. Pre-emptyvely a local O2CDB must be filled with some objects by running a macro. This and how to run the server and the client is detailed in the README. The server (ConditionsMQServer) and the client (ConditionsMQClient) classes are adapted from the corresponding server and client classes in FairRoot (parmq/ParameterMQServer and examples/MQ/7-parameters/FairMQExample7Client). --- .gitignore | 1 + Generators/Pythia6Generator.h | 4 + o2cdb/CMakeLists.txt | 42 +++++- o2cdb/ConditionsMQClient.cxx | 132 +++++++++++++++++++ o2cdb/ConditionsMQClient.h | 53 ++++++++ o2cdb/ConditionsMQServer.cxx | 233 ++++++++++++++++++++++++++++++++++ o2cdb/ConditionsMQServer.h | 69 ++++++++++ o2cdb/README | 14 ++ o2cdb/conditions-client.json | 23 ++++ o2cdb/conditions-server.json | 22 ++++ o2cdb/fill_local_ocdb.C | 17 +++ o2cdb/runConditionsClient.cxx | 100 +++++++++++++++ o2cdb/runConditionsServer.cxx | 113 +++++++++++++++++ 13 files changed, 818 insertions(+), 5 deletions(-) create mode 100644 o2cdb/ConditionsMQClient.cxx create mode 100644 o2cdb/ConditionsMQClient.h create mode 100644 o2cdb/ConditionsMQServer.cxx create mode 100644 o2cdb/ConditionsMQServer.h create mode 100644 o2cdb/README create mode 100644 o2cdb/conditions-client.json create mode 100644 o2cdb/conditions-server.json create mode 100644 o2cdb/fill_local_ocdb.C create mode 100644 o2cdb/runConditionsClient.cxx create mode 100644 o2cdb/runConditionsServer.cxx diff --git a/.gitignore b/.gitignore index d2f5055609da9..c59147e5b6487 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ # build directory build/ +build_o2/ # common editor backups *.swp diff --git a/Generators/Pythia6Generator.h b/Generators/Pythia6Generator.h index 4fa08703c3cf3..9d822646e35d0 100644 --- a/Generators/Pythia6Generator.h +++ b/Generators/Pythia6Generator.h @@ -61,6 +61,10 @@ #ifndef PND_PYTHIAGENERATOR_H #define PND_PYTHIAGENERATOR_H +#ifdef __CINT__ +#define _DLFCN_H_ +#define _DLFCN_H +#endif #include // for FILE #include "FairGenerator.h" // for FairGenerator diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt index 23527baf72d59..db089dd6a31eb 100644 --- a/o2cdb/CMakeLists.txt +++ b/o2cdb/CMakeLists.txt @@ -1,20 +1,27 @@ +configure_file(${CMAKE_SOURCE_DIR}/o2cdb/conditions-server.json ${CMAKE_BINARY_DIR}/bin/config/conditions-server.json) +configure_file(${CMAKE_SOURCE_DIR}/o2cdb/conditions-client.json ${CMAKE_BINARY_DIR}/bin/config/conditions-client.json) +configure_file(${CMAKE_SOURCE_DIR}/o2cdb/fill_local_ocdb.C ${CMAKE_BINARY_DIR}/bin/config/fill_local_ocdb.C) + set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/o2cdb ) set(SYSTEM_INCLUDE_DIRECTORIES - ${BASE_INCLUDE_DIRECTORIES} + ${BASE_INCLUDE_DIRECTORIES} ${Boost_INCLUDE_DIR} ${ROOT_INCLUDE_DIR} ${FAIRROOT_INCLUDE_DIR} + ${AlFa_DIR}/include ) include_directories(${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${FAIRROOT_LIBRARY_DIR} + ${AlFa_DIR}/lib ) link_directories(${LINK_DIRECTORIES}) @@ -32,12 +39,37 @@ set(SRCS XmlHandler.cxx ) +Set(NO_DICT_SRCS + ConditionsMQServer.cxx + ConditionsMQClient.cxx +) + set(DEPENDENCIES - ${DEPENDENCIES} - ${CMAKE_THREAD_LIBS_INIT} - boost_thread boost_system FairMQ + Base ParBase FairMQ boost_thread boost_program_options boost_system boost_log fairmq_logger pthread Core Tree XMLParser ) set(LIBRARY_NAME AliceO2Cdb) -Set(LINKDEF O2CdbLinkDef.h) +set(LINKDEF O2CdbLinkDef.h) GENERATE_LIBRARY() + +Set(Exe_Names + conditions-server + conditions-client +) + +Set(Exe_Source + runConditionsServer.cxx + runConditionsClient.cxx +) + +list(LENGTH Exe_Names _length) +math(EXPR _length ${_length}-1) + +ForEach(_file RANGE 0 ${_length}) + list(GET Exe_Names ${_file} _name) + list(GET Exe_Source ${_file} _src) + Set(EXE_NAME ${_name}) + Set(SRCS ${_src}) + Set(DEPENDENCIES AliceO2Cdb) + GENERATE_EXECUTABLE() +EndForEach(_file RANGE 0 ${_length}) diff --git a/o2cdb/ConditionsMQClient.cxx b/o2cdb/ConditionsMQClient.cxx new file mode 100644 index 0000000000000..acd1267bb91bc --- /dev/null +++ b/o2cdb/ConditionsMQClient.cxx @@ -0,0 +1,132 @@ +/******************************************************************************** + * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * * + * This software is distributed under the terms of the * + * GNU Lesser General Public Licence version 3 (LGPL) version 3, * + * copied verbatim in the file "LICENSE" * + ********************************************************************************/ +/** + * ConditionsMQClient.cpp + * + * @since 2016-01-11 + * @author R. Grosso, from examples/MQ/7-parameters/FairMQExample7Client.cxx + */ + +#include +#include + +#include "FairMQLogger.h" +#include "ConditionsMQClient.h" + +#include "TMessage.h" +#include "Rtypes.h" + +#include "Condition.h" + +using namespace AliceO2::CDB; +using namespace std; + +ConditionsMQClient::ConditionsMQClient() + : fRunId(0), + fParameterName() +{ +} + +ConditionsMQClient::~ConditionsMQClient() +{ +} + +void ConditionsMQClient::CustomCleanup(void *data, void *hint) +{ + delete (string*)hint; +} + +// special class to expose protected TMessage constructor +class WrapTMessage : public TMessage +{ + public: + WrapTMessage(void* buf, Int_t len) + : TMessage(buf, len) + { + ResetBit(kIsOwner); + } +}; + +void ConditionsMQClient::Run() +{ + int runId = 2000; + + while (CheckCurrentState(RUNNING)) + { + boost::this_thread::sleep(boost::posix_time::milliseconds(1000)); + + string* reqStr = new string(fParameterName + "," + to_string(runId)); + + LOG(INFO) << "Requesting parameter \"" << fParameterName << "\" for Run ID " << runId << "."; + + unique_ptr req(fTransportFactory->CreateMessage(const_cast(reqStr->c_str()), reqStr->length(), CustomCleanup, reqStr)); + unique_ptr rep(fTransportFactory->CreateMessage()); + + if (fChannels.at("data").at(0).Send(req) > 0) + { + if (fChannels.at("data").at(0).Receive(rep) > 0) + { + WrapTMessage tmsg(rep->GetData(), rep->GetSize()); + Condition* aCondition = (Condition*)(tmsg.ReadObject(tmsg.GetClass())); + LOG(INFO) << "Received a condition from the server:"; + aCondition->printConditionMetaData(); + } + } + + runId++; + if (runId == 2101) + { + runId = 2001; + } + } +} + + +void ConditionsMQClient::SetProperty(const int key, const string& value) +{ + switch (key) + { + case ParameterName: + fParameterName = value; + break; + default: + FairMQDevice::SetProperty(key, value); + break; + } +} + +string ConditionsMQClient::GetProperty(const int key, const string& default_ /*= ""*/) +{ + switch (key) + { + case ParameterName: + return fParameterName; + break; + default: + return FairMQDevice::GetProperty(key, default_); + } +} + +void ConditionsMQClient::SetProperty(const int key, const int value) +{ + switch (key) + { + default: + FairMQDevice::SetProperty(key, value); + break; + } +} + +int ConditionsMQClient::GetProperty(const int key, const int default_ /*= 0*/) +{ + switch (key) + { + default: + return FairMQDevice::GetProperty(key, default_); + } +} diff --git a/o2cdb/ConditionsMQClient.h b/o2cdb/ConditionsMQClient.h new file mode 100644 index 0000000000000..6c4f0e420f522 --- /dev/null +++ b/o2cdb/ConditionsMQClient.h @@ -0,0 +1,53 @@ +/******************************************************************************** + * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * * + * This software is distributed under the terms of the * + * GNU Lesser General Public Licence version 3 (LGPL) version 3, * + * copied verbatim in the file "LICENSE" * + ********************************************************************************/ +/** + * ConditionsMQClient.h + * + * @since 2016-01-11 + * @author R. Grosso, from examples/MQ/7-parameters/FairMQExample7Client.h + */ + +#ifndef ALICEO2_CDB_CONDITIONSMQCLIENT_H_ +#define ALICEO2_CDB_CONDITIONSMQCLIENT_H_ + +#include + +#include "FairMQDevice.h" + +namespace AliceO2 { +namespace CDB { + +class ConditionsMQClient : public FairMQDevice +{ + public: + enum + { + ParameterName = FairMQDevice::Last, + Last + }; + ConditionsMQClient(); + virtual ~ConditionsMQClient(); + + static void CustomCleanup(void* data, void* hint); + + virtual void SetProperty(const int key, const std::string& value); + virtual std::string GetProperty(const int key, const std::string& default_ = ""); + virtual void SetProperty(const int key, const int value); + virtual int GetProperty(const int key, const int default_ = 0); + + protected: + virtual void Run(); + + private: + int fRunId; + std::string fParameterName; +}; +} +} + +#endif /* ALICEO2_CDB_CONDITIONSMQCLIENT_H_ */ diff --git a/o2cdb/ConditionsMQServer.cxx b/o2cdb/ConditionsMQServer.cxx new file mode 100644 index 0000000000000..b2e336599231b --- /dev/null +++ b/o2cdb/ConditionsMQServer.cxx @@ -0,0 +1,233 @@ +/******************************************************************************** + * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * * + * This software is distributed under the terms of the * + * GNU Lesser General Public Licence version 3 (LGPL) version 3, * + * copied verbatim in the file "LICENSE" * + ********************************************************************************/ +/** + * ConditionsMQServer.cxx + * + * @since 2016-01-11 + * @author R. Grosso, from parmq/ParameterMQServer.cxx + */ + +#include "TMessage.h" +#include "Rtypes.h" + +#include "FairRuntimeDb.h" +#include "FairParAsciiFileIo.h" +#include "FairParRootFileIo.h" + +#include "ConditionsMQServer.h" +#include "FairMQLogger.h" +#include "FairParGenericSet.h" + +#include "IdPath.h" +#include "Condition.h" + +using namespace AliceO2::CDB; +using std::endl; +using std::cout; +using std::string; + +ConditionsMQServer::ConditionsMQServer() + : fRtdb(FairRuntimeDb::instance()), + fCdbManager(AliceO2::CDB::Manager::Instance()), + fFirstInputName("first_input.root"), + fFirstInputType("ROOT"), + fSecondInputName(""), + fSecondInputType("ROOT"), + fOutputName(""), + fOutputType("ROOT") +{ +} + +void ConditionsMQServer::InitTask() +{ + if (fRtdb != 0) { + // Set first input + if (fFirstInputType == "ROOT") { + FairParRootFileIo* par1R = new FairParRootFileIo(); + par1R->open(fFirstInputName.data(), "UPDATE"); + fRtdb->setFirstInput(par1R); + } + else if (fFirstInputType == "ASCII") { + FairParAsciiFileIo* par1A = new FairParAsciiFileIo(); + par1A->open(fFirstInputName.data(), "in"); + fRtdb->setFirstInput(par1A); + } + else if (fFirstInputType == "OCDB") { + fCdbManager->setDefaultStorage(fFirstInputName.c_str()); + } + + // Set second input + if (fSecondInputName != "") { + if (fSecondInputType == "ROOT") { + FairParRootFileIo* par2R = new FairParRootFileIo(); + par2R->open(fSecondInputName.data(), "UPDATE"); + fRtdb->setSecondInput(par2R); + } + else if (fSecondInputType == "ASCII") { + FairParAsciiFileIo* par2A = new FairParAsciiFileIo(); + par2A->open(fSecondInputName.data(), "in"); + fRtdb->setSecondInput(par2A); + } + else if (fSecondInputType == "OCDB") { + fCdbManager->setDefaultStorage(fSecondInputName.c_str()); + } + } + + // Set output + if (fOutputName != "") { + if (fOutputType == "ROOT") { + FairParRootFileIo* parOut = new FairParRootFileIo(kTRUE); + parOut->open(fOutputName.data()); + fRtdb->setOutput(parOut); + } + else if (fOutputType == "OCDB") { + fCdbManager->setDefaultStorage(fOutputName.c_str()); + } + + fRtdb->saveOutput(); + } + } +} + +void free_tmessage(void* data, void* hint) { delete static_cast(hint); } + +void ConditionsMQServer::Run() +{ + std::string parameterName = ""; + FairParGenericSet* par = nullptr; + Condition* aCondition = nullptr; + + while (CheckCurrentState(RUNNING)) { + std::unique_ptr req(fTransportFactory->CreateMessage()); + + if (fChannels.at("data").at(0).Receive(req) > 0) { + std::string reqStr(static_cast(req->GetData()), req->GetSize()); + LOG(INFO) << "Received parameter request from client: \"" << reqStr << "\""; + + size_t pos = reqStr.rfind(","); + string newParameterName = reqStr.substr(0, pos); + int runId = std::stoi(reqStr.substr(pos + 1)); + LOG(INFO) << "Parameter name: " << newParameterName; + LOG(INFO) << "Run ID: " << runId; + + LOG(INFO) << "Retrieving parameter..."; + // Check if the parameter name has changed to avoid getting same container repeatedly + if (fFirstInputType != "OCDB") { + if (newParameterName != parameterName) { + parameterName = newParameterName; + par = static_cast(fRtdb->getContainer(parameterName.c_str())); + } + fRtdb->initContainers(runId); + } + else { + fCdbManager->setRun(runId); + aCondition = fCdbManager->getObject(IdPath(newParameterName), runId); + } + + LOG(INFO) << "Sending following parameter to the client:"; + if (par) { + par->print(); + + TMessage* tmsg = new TMessage(kMESS_OBJECT); + tmsg->WriteObject(par); + + std::unique_ptr reply( + fTransportFactory->CreateMessage(tmsg->Buffer(), tmsg->BufferSize(), free_tmessage, tmsg)); + + fChannels.at("data").at(0).Send(reply); + } + else if (aCondition) { + aCondition->printConditionMetaData(); + TMessage* tmsg = new TMessage(kMESS_OBJECT); + tmsg->WriteObject(aCondition); + + std::unique_ptr reply( + fTransportFactory->CreateMessage(tmsg->Buffer(), tmsg->BufferSize(), free_tmessage, tmsg)); + + fChannels.at("data").at(0).Send(reply); + } + else { + LOG(ERROR) << "Parameter uninitialized!"; + } + } + } +} + +void ConditionsMQServer::SetProperty(const int key, const std::string& value) +{ + switch (key) { + case FirstInputName: + fFirstInputName = value; + break; + case FirstInputType: + fFirstInputType = value; + break; + case SecondInputName: + fSecondInputName = value; + break; + case SecondInputType: + fSecondInputType = value; + break; + case OutputName: + fOutputName = value; + break; + case OutputType: + fOutputType = value; + break; + default: + FairMQDevice::SetProperty(key, value); + break; + } +} + +string ConditionsMQServer::GetProperty(const int key, const string& default_ /*= ""*/) +{ + switch (key) { + case FirstInputName: + return fFirstInputName; + case FirstInputType: + return fFirstInputType; + case SecondInputName: + return fSecondInputName; + case SecondInputType: + return fSecondInputType; + case OutputName: + return fOutputName; + case OutputType: + return fOutputType; + default: + return FairMQDevice::GetProperty(key, default_); + } +} + +void ConditionsMQServer::SetProperty(const int key, const int value) +{ + switch (key) { + default: + FairMQDevice::SetProperty(key, value); + break; + } +} + +int ConditionsMQServer::GetProperty(const int key, const int default_ /*= 0*/) +{ + switch (key) { + default: + return FairMQDevice::GetProperty(key, default_); + } +} + +ConditionsMQServer::~ConditionsMQServer() +{ + if (fRtdb) { + delete fRtdb; + } + if (fCdbManager) { + delete fCdbManager; + } +} diff --git a/o2cdb/ConditionsMQServer.h b/o2cdb/ConditionsMQServer.h new file mode 100644 index 0000000000000..83a3ab1846425 --- /dev/null +++ b/o2cdb/ConditionsMQServer.h @@ -0,0 +1,69 @@ +/******************************************************************************** + * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * * + * This software is distributed under the terms of the * + * GNU Lesser General Public Licence version 3 (LGPL) version 3, * + * copied verbatim in the file "LICENSE" * + ********************************************************************************/ +/** + * ConditionsMQServer.h + * + * @since 2016-01-11 + * @author R. Grosso, from parmq/ParameterMQServer.h + */ + +#ifndef ALICEO2_CDB_CONDITIONSMQSERVER_H_ +#define ALICEO2_CDB_CONDITIONSMQSERVER_H_ + +#include + +#include "FairMQDevice.h" +#include "Manager.h" + +class FairRuntimeDb; + +namespace AliceO2 { +namespace CDB { + +class ConditionsMQServer : public FairMQDevice +{ + public: + enum + { + FirstInputName = FairMQDevice::Last, + FirstInputType, + SecondInputName, + SecondInputType, + OutputName, + OutputType, + Last + }; + + ConditionsMQServer(); + virtual ~ConditionsMQServer(); + + virtual void Run(); + virtual void InitTask(); + + static void CustomCleanup(void *data, void* hint); + + virtual void SetProperty(const int key, const std::string& value); + virtual std::string GetProperty(const int key, const std::string& default_ = ""); + virtual void SetProperty(const int key, const int value); + virtual int GetProperty(const int key, const int default_ = 0); + + private: + FairRuntimeDb* fRtdb; + Manager* fCdbManager; + + std::string fFirstInputName; + std::string fFirstInputType; + std::string fSecondInputName; + std::string fSecondInputType; + std::string fOutputName; + std::string fOutputType; +}; +} +} + +#endif /* ALICEO2_CDB_CONDITIONSMQSERVER_H_ */ diff --git a/o2cdb/README b/o2cdb/README new file mode 100644 index 0000000000000..295c5ec73ec90 --- /dev/null +++ b/o2cdb/README @@ -0,0 +1,14 @@ +To run the MQ server-client example with the MQ server replying with CDB objects to the client requests, follow the following steps: + +0) In each shell configure the AliceO2 environment: source /config.sh + +1) To create a local O2CDB instance run the macro + root -l bin/config/fill_local_ocdb.C + under your build directory. This will create "DET/Calib/Histo" calibration objects in bin/config/O2CDB for a hundred of runs + +2a) In one shell run the server example: +/bin/conditions-server --id parmq-server --config-json-file /bin/config/conditions-server.json + --first-input-name local:///bin/config/O2CDB --first-input-type OCDB + +2b) In a separate shell run the client example: +/bin/conditions-client --id parmq-client --config-json-file /bin/config/conditions-client.json diff --git a/o2cdb/conditions-client.json b/o2cdb/conditions-client.json new file mode 100644 index 0000000000000..3d7890f64010d --- /dev/null +++ b/o2cdb/conditions-client.json @@ -0,0 +1,23 @@ +{ + "fairMQOptions": + { + "device": + { + "id": "parmq-client", + "channel": + { + "name": "data", + "socket": + { + "type": "req", + "method": "connect", + "address": "tcp://localhost:5005", + "sndBufSize": "1000", + "rcvBufSize": "1000", + "rateLogging": "0" + } + } + } + } +} + diff --git a/o2cdb/conditions-server.json b/o2cdb/conditions-server.json new file mode 100644 index 0000000000000..284bafa9fb5f4 --- /dev/null +++ b/o2cdb/conditions-server.json @@ -0,0 +1,22 @@ +{ + "fairMQOptions": + { + "device": + { + "id": "parmq-server", + "channel": + { + "name": "data", + "socket": + { + "type": "rep", + "method": "bind", + "address": "tcp://*:5005", + "sndBufSize": "1000", + "rcvBufSize": "1000", + "rateLogging": "0" + } + } + } + } +} diff --git a/o2cdb/fill_local_ocdb.C b/o2cdb/fill_local_ocdb.C new file mode 100644 index 0000000000000..156786d4b0b84 --- /dev/null +++ b/o2cdb/fill_local_ocdb.C @@ -0,0 +1,17 @@ +void fill_local_ocdb() +{ + gSystem->Load("libAliceO2Base"); + gSystem->Load("libAliceO2Cdb"); + AliceO2::CDB::Manager* cdb = AliceO2::CDB::Manager::Instance(); + cdb->setDefaultStorage("local://O2CDB"); + TH1F* h = 0; + for (int run = 2000; run < 2100; run++) { + cdb->setRun(run); + h = new TH1F("aHisto", "gauss", 100, -5, 5); + h->FillRandom("gaus", 1000); + AliceO2::CDB::ConditionId* id = new AliceO2::CDB::ConditionId("DET/Calib/Histo", run, run, 1, 0); + AliceO2::CDB::ConditionMetaData* md = new AliceO2::CDB::ConditionMetaData(); + cdb->putObject(h, *id, md); + h = 0; + } +} diff --git a/o2cdb/runConditionsClient.cxx b/o2cdb/runConditionsClient.cxx new file mode 100644 index 0000000000000..7d465eb1a61e4 --- /dev/null +++ b/o2cdb/runConditionsClient.cxx @@ -0,0 +1,100 @@ +/******************************************************************************** + * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * * + * This software is distributed under the terms of the * + * GNU Lesser General Public Licence version 3 (LGPL) version 3, * + * copied verbatim in the file "LICENSE" * + ********************************************************************************/ +/** + * runConditionsClient.cxx + * + * @since 2013-04-23 + * @author D. Klein, A. Rybalchenko + */ + +#include + +#include "FairMQLogger.h" +#include "FairMQParser.h" +#include "FairMQProgOptions.h" +#include "ConditionsMQClient.h" + +#ifdef NANOMSG +#include "FairMQTransportFactoryNN.h" +#else +#include "FairMQTransportFactoryZMQ.h" +#endif + +using namespace std; +using namespace boost::program_options; +using namespace AliceO2::CDB; + +int main(int argc, char** argv) +{ + ConditionsMQClient client; + client.CatchSignals(); + + FairMQProgOptions config; + + try + { + string parameterName; + + options_description clientOptions("Parameter Client options"); + clientOptions.add_options() + ("parameter-name", value(¶meterName)->default_value("DET/Calib/Histo"), "Parameter Name"); + + config.AddToCmdLineOptions(clientOptions); + + if (config.ParseAll(argc, argv)) + { + return 0; + } + + string file = config.GetValue("config-json-file"); + string id = config.GetValue("id"); + + config.UserParser(file, id); + + client.fChannels = config.GetFairMQMap(); + + LOG(INFO) << "PID: " << getpid(); + +#ifdef NANOMSG + FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); +#else + FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); +#endif + + client.SetTransport(transportFactory); + + client.SetProperty(ConditionsMQClient::Id, "client"); + client.SetProperty(ConditionsMQClient::ParameterName, parameterName); + client.SetProperty(ConditionsMQClient::NumIoThreads, 1); + + FairMQChannel requestChannel("req", "connect", "tcp://localhost:5005"); + requestChannel.UpdateSndBufSize(10000); + requestChannel.UpdateRcvBufSize(10000); + requestChannel.UpdateRateLogging(0); + + client.fChannels["data"].push_back(requestChannel); + + client.ChangeState("INIT_DEVICE"); + client.WaitForEndOfState("INIT_DEVICE"); + + client.ChangeState("INIT_TASK"); + client.WaitForEndOfState("INIT_TASK"); + + client.ChangeState("RUN"); + client.InteractiveStateLoop(); + } + catch (exception& e) + { + LOG(ERROR) << e.what(); + LOG(INFO) << "Command line options are the following: "; + config.PrintHelp(); + return 1; + } + + return 0; +} diff --git a/o2cdb/runConditionsServer.cxx b/o2cdb/runConditionsServer.cxx new file mode 100644 index 0000000000000..af8dd6ff898f4 --- /dev/null +++ b/o2cdb/runConditionsServer.cxx @@ -0,0 +1,113 @@ +/******************************************************************************** + * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * * + * This software is distributed under the terms of the * + * GNU Lesser General Public Licence version 3 (LGPL) version 3, * + * copied verbatim in the file "LICENSE" * + ********************************************************************************/ +/** + * runConditionsServer.cxx + * + * @since 2015-12-10 + * @author D. Klein, A. Rybalchenko, R. Grosso + */ + +#include + +#include "FairMQLogger.h" +#include "FairMQParser.h" +#include "FairMQProgOptions.h" +#include "ConditionsMQServer.h" +#include "TApplication.h" + +#ifdef NANOMSG +#include "FairMQTransportFactoryNN.h" +#else +#include "FairMQTransportFactoryZMQ.h" +#endif + +using namespace std; +using namespace boost::program_options; +using namespace AliceO2::CDB; + +int main(int argc, char** argv) +{ + ConditionsMQServer server; + server.CatchSignals(); + + FairMQProgOptions config; + + try + { + string firstInputName; + string firstInputType; + string secondInputName; + string secondInputType; + string outputName; + string outputType; + + options_description serverOptions("Parameter MQ Server options"); + serverOptions.add_options() + ("first-input-name", value(&firstInputName)->default_value("first_input.root"), "First input file name") + ("first-input-type", value(&firstInputType)->default_value("ROOT"), "First input file type (ROOT/ASCII)") + ("second-input-name", value(&secondInputName)->default_value(""), "Second input file name") + ("second-input-type", value(&secondInputType)->default_value("ROOT"), "Second input file type (ROOT/ASCII)") + ("output-name", value(&outputName)->default_value(""), "Output file name") + ("output-type", value(&outputType)->default_value("ROOT"), "Output file type"); + + config.AddToCmdLineOptions(serverOptions); + + if (config.ParseAll(argc, argv)) + { + return 0; + } + + string file = config.GetValue("config-json-file"); + string id = config.GetValue("id"); + + config.UserParser(file, id); + + server.fChannels = config.GetFairMQMap(); + + LOG(INFO) << "PID: " << getpid(); + + TApplication app("ConditionsMQServer", 0, 0); + +#ifdef NANOMSG + FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); +#else + FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); +#endif + server.SetTransport(transportFactory); + + server.SetProperty(ConditionsMQServer::Id, id); + server.SetProperty(ConditionsMQServer::NumIoThreads, config.GetValue("io-threads")); + + server.SetProperty(ConditionsMQServer::FirstInputName, firstInputName); + server.SetProperty(ConditionsMQServer::FirstInputType, firstInputType); + server.SetProperty(ConditionsMQServer::SecondInputName, secondInputName); + server.SetProperty(ConditionsMQServer::SecondInputType, secondInputType); + server.SetProperty(ConditionsMQServer::OutputName, outputName); + server.SetProperty(ConditionsMQServer::OutputType, outputType); + + server.ChangeState("INIT_DEVICE"); + server.WaitForEndOfState("INIT_DEVICE"); + + server.ChangeState("INIT_TASK"); + server.WaitForEndOfState("INIT_TASK"); + + server.ChangeState("RUN"); + server.InteractiveStateLoop(); + + gApplication->Terminate(); + } + catch (exception& e) + { + LOG(ERROR) << e.what(); + LOG(INFO) << "Command line options are the following: "; + config.PrintHelp(); + return 1; + } + + return 0; +} From 31a419aedfcc36076b8b973ba86dd0d7c9866e29 Mon Sep 17 00:00:00 2001 From: Raffaele Grosso Date: Wed, 13 Jan 2016 14:05:19 +0100 Subject: [PATCH 008/135] Let getAllObjects be aware of specific version Modify getAllObjects so that it is aware of a specific (subversion) set via setSpecificStorage, as was already the case with getObject. If both the arguments passed to GetAllObjects and a previous call to setSpecificStorage specify a (sub)version, then precedence is given to the one specified via setSpecificStorage. --- o2cdb/Manager.cxx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/o2cdb/Manager.cxx b/o2cdb/Manager.cxx index 1b5412d4dd492..81b35a663553e 100644 --- a/o2cdb/Manager.cxx +++ b/o2cdb/Manager.cxx @@ -1325,10 +1325,23 @@ TList* Manager::getAllObjects(const ConditionId& query) Storage* chkStorage = getStorage(chkPar); LOG(DEBUG) << "Found specific storage! " << chkPar->getUri().Data() << FairLogger::endl; - Condition* newCondition = 0; chkId.setIdRunRange(query.getFirstRun(), query.getLastRun()); - chkId.setVersion(query.getVersion()); - chkId.setSubVersion(query.getSubVersion()); + UInt_t uId = chkPar->GetUniqueID(); + Int_t version = -1, subVersion = -1; + version = Int_t(uId&0xffff) - 1; + subVersion = Int_t(uId>>16) - 1; + if(version!=-1){ + chkId.setVersion(version); + }else{ + chkId.setVersion(query.getVersion()); + } + if(subVersion!=-1){ + chkId.setSubVersion(subVersion); + }else{ + chkId.setSubVersion(query.getSubVersion()); + } + + Condition *newCondition = 0; if (chkStorage) newCondition = chkStorage->getObject(chkId); From 23819649f6f44cd0f351465517e643225c5b6003 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Thu, 14 Jan 2016 11:55:40 +0100 Subject: [PATCH 009/135] Add missing library On Linux the libHist was missing in the ocdb CMakeList.txt --- o2cdb/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt index db089dd6a31eb..23a4128c831ae 100644 --- a/o2cdb/CMakeLists.txt +++ b/o2cdb/CMakeLists.txt @@ -45,7 +45,7 @@ Set(NO_DICT_SRCS ) set(DEPENDENCIES - Base ParBase FairMQ boost_thread boost_program_options boost_system boost_log fairmq_logger pthread Core Tree XMLParser + Base ParBase FairMQ boost_thread boost_program_options boost_system boost_log fairmq_logger pthread Core Tree XMLParser Hist ) set(LIBRARY_NAME AliceO2Cdb) From 3be6dc094e623380e64b12228f2dee50679e8280 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Tue, 9 Feb 2016 13:02:34 +0100 Subject: [PATCH 010/135] Fix warnings --- devices/aliceHLTwrapper/MessageFormat.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/devices/aliceHLTwrapper/MessageFormat.cxx b/devices/aliceHLTwrapper/MessageFormat.cxx index 6140487b8b8ef..50d60de1bc21c 100644 --- a/devices/aliceHLTwrapper/MessageFormat.cxx +++ b/devices/aliceHLTwrapper/MessageFormat.cxx @@ -83,10 +83,10 @@ int MessageFormat::addMessage(AliHLTUInt8_t* buffer, unsigned size) break; } if (readBlockSequence(buffer+position, size-position, mBlockDescriptors) < 0 || - evtData!=NULL && ((mBlockDescriptors.size()-count) != evtData->fBlockCnt)) { + (evtData!=NULL && ((mBlockDescriptors.size()-count) != evtData->fBlockCnt))) { // not in the format of a single block, check if its a HOMER block if (readHOMERFormat(buffer+position, size-position, mBlockDescriptors) < 0 || - evtData!=NULL && ((mBlockDescriptors.size()-count) != evtData->fBlockCnt)) { + (evtData!=NULL && ((mBlockDescriptors.size()-count) != evtData->fBlockCnt))) { // not in HOMER format either if (position>0) { // try once more without the assumption of event data header @@ -127,6 +127,7 @@ int MessageFormat::addMessages(const vector& list) cerr << "warning: ignoring message " << i << " with payload of size 0" << endl; } } + return 0; } int MessageFormat::readBlockSequence(AliHLTUInt8_t* buffer, unsigned size, From fd4858b939a35a035dc447e520b4b06b516442be Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Mon, 11 Jan 2016 13:47:46 +0100 Subject: [PATCH 011/135] Avoid the inclusion of dlfcn.h by Pyhtia.h that CINT is not able to process --- Generators/Pythia8Generator.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Generators/Pythia8Generator.h b/Generators/Pythia8Generator.h index 4fd3b6c1ed7b2..4086965166e56 100644 --- a/Generators/Pythia8Generator.h +++ b/Generators/Pythia8Generator.h @@ -13,6 +13,12 @@ #ifndef PNDP8GENERATOR_H #define PNDP8GENERATOR_H 1 +// Avoid the inclusion of dlfcn.h by Pyhtia.h that CINT is not able to process (avoid compile error on GCC > 5) +#ifdef __CINT__ +#define _DLFCN_H_ +#define _DLFCN_H +#endif + #include "Basics.h" // for RndmEngine #include "FairGenerator.h" // for FairGenerator #include "Pythia8/Pythia.h" // for Pythia From f3e3f74aef96a3811fe1f2f38151f4579aba4fc8 Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Mon, 8 Feb 2016 15:43:16 +0100 Subject: [PATCH 012/135] fix warnings --- devices/flp2epn-distributed/EPNReceiver.cxx | 25 ++++----- devices/flp2epn-distributed/FLPSender.cxx | 12 ++-- .../flp2epn-distributed/FLPSyncSampler.cxx | 4 +- .../run/runEPNReceiver.cxx | 13 ++++- .../flp2epn-distributed/run/runFLPSender.cxx | 12 +++- .../run/runFLPSyncSampler.cxx | 11 +++- .../runO2Prototype/runEPNReceiver.cxx | 13 ++++- .../runO2Prototype/runFLPSender.cxx | 12 +++- .../runO2Prototype/runFLPSyncSampler.cxx | 11 +++- devices/flp2epn/O2EPNex.cxx | 4 +- devices/flp2epn/O2EpnMerger.cxx | 2 +- devices/flp2epn/O2Merger.cxx | 2 +- devices/flp2epn/run/runEPN.cxx | 35 +++++------- devices/flp2epn/run/runEPN_M.cxx | 35 +++++------- devices/flp2epn/run/runFLP.cxx | 39 +++++-------- devices/flp2epn/run/runMerger.cxx | 56 +++++++------------ devices/flp2epn/run/runProxy.cxx | 52 +++++++---------- 17 files changed, 160 insertions(+), 178 deletions(-) diff --git a/devices/flp2epn-distributed/EPNReceiver.cxx b/devices/flp2epn-distributed/EPNReceiver.cxx index 9300487dae943..769c07aef57ce 100644 --- a/devices/flp2epn-distributed/EPNReceiver.cxx +++ b/devices/flp2epn-distributed/EPNReceiver.cxx @@ -24,12 +24,12 @@ struct f2eHeader { }; EPNReceiver::EPNReceiver() - : fHeartbeatIntervalInMs(3000) - , fBufferTimeoutInMs(5000) + : fTimeframeBuffer() + , fDiscardedSet() , fNumFLPs(0) + , fBufferTimeoutInMs(5000) , fTestMode(0) - , fTimeframeBuffer() - , fDiscardedSet() + , fHeartbeatIntervalInMs(3000) { } @@ -51,7 +51,7 @@ void EPNReceiver::PrintBuffer(const unordered_map& buffer) c for (auto& it : buffer) { string stars = ""; - for (int j = 1; j <= (it.second).parts.size(); ++j) { + for (unsigned int j = 1; j <= (it.second).parts.size(); ++j) { stars += "*"; } LOG(INFO) << setw(4) << it.first << ": " << stars; @@ -65,7 +65,7 @@ void EPNReceiver::DiscardIncompleteTimeframes() if ((boost::posix_time::microsec_clock::local_time() - (it->second).startTime).total_milliseconds() > fBufferTimeoutInMs) { LOG(WARN) << "Timeframe #" << it->first << " incomplete after " << fBufferTimeoutInMs << " milliseconds, discarding"; fDiscardedSet.insert(it->first); - for (int i = 0; i < (it->second).parts.size(); ++i) { + for (unsigned int i = 0; i < (it->second).parts.size(); ++i) { (it->second).parts.at(i).reset(); } it->second.parts.clear(); @@ -89,9 +89,8 @@ void EPNReceiver::Run() // vector rcvTimestamp(fNumFLPs); // end DEBUG - f2eHeader* h; // holds the header of the currently arrived message. + // f2eHeader* header; // holds the header of the currently arrived message. uint16_t id = 0; // holds the timeframe id of the currently arrived sub-timeframe. - int rcvDataSize = 0; FairMQChannel& dataInputChannel = fChannels.at("data-in").at(0); FairMQChannel& dataOutChannel = fChannels.at("data-out").at(0); @@ -105,13 +104,13 @@ void EPNReceiver::Run() if (dataInputChannel.Receive(headerPart) > 0) { // store the received ID - h = static_cast(headerPart->GetData()); - id = h->timeFrameId; - // LOG(INFO) << "Received sub-time frame #" << id << " from FLP" << h->flpIndex; + f2eHeader& header = *(static_cast(headerPart->GetData())); + id = header.timeFrameId; + // LOG(INFO) << "Received sub-time frame #" << id << " from FLP" << header.flpIndex; // DEBUG:: store receive intervals per FLP // if (fTestMode > 0) { - // int flp_id = h->flpIndex; + // int flp_id = header.flpIndex; // if (to_simple_string(rcvTimestamp.at(flp_id)) != "not_a_date_time") { // rcvIntervals.at(flp_id).push_back( (boost::posix_time::microsec_clock::local_time() - rcvTimestamp.at(flp_id)).total_microseconds() ); // // LOG(WARN) << rcvIntervals.at(flp_id).back(); @@ -167,7 +166,7 @@ void EPNReceiver::Run() } // let transport know that the data is no longer needed. transport will clean up after it is sent out. - for (int i = 0; i < fTimeframeBuffer[id].parts.size(); ++i) { + for (unsigned int i = 0; i < fTimeframeBuffer[id].parts.size(); ++i) { fTimeframeBuffer[id].parts.at(i).reset(); } fTimeframeBuffer[id].parts.clear(); diff --git a/devices/flp2epn-distributed/FLPSender.cxx b/devices/flp2epn-distributed/FLPSender.cxx index 2bd65489c6c6c..fc2ce3135831a 100644 --- a/devices/flp2epn-distributed/FLPSender.cxx +++ b/devices/flp2epn-distributed/FLPSender.cxx @@ -28,18 +28,18 @@ struct f2eHeader { }; FLPSender::FLPSender() - : fIndex(0) - , fSendOffset(0) - , fSendDelay(8) - , fHeaderBuffer() + : fHeaderBuffer() , fDataBuffer() , fArrivalTime() , fNumEPNs(0) + , fIndex(0) + , fSendOffset(0) + , fSendDelay(8) + , fEventSize(10000) + , fTestMode(0) , fHeartbeatTimeoutInMs(20000) , fHeartbeats() , fHeartbeatMutex() - , fEventSize(10000) - , fTestMode(0) { } diff --git a/devices/flp2epn-distributed/FLPSyncSampler.cxx b/devices/flp2epn-distributed/FLPSyncSampler.cxx index e8f91af7c571d..9f70dd046fa4f 100644 --- a/devices/flp2epn-distributed/FLPSyncSampler.cxx +++ b/devices/flp2epn-distributed/FLPSyncSampler.cxx @@ -20,11 +20,11 @@ using boost::posix_time::ptime; using namespace AliceO2::Devices; FLPSyncSampler::FLPSyncSampler() - : fEventRate(1) + : fTimeframeRTT() + , fEventRate(1) , fMaxEvents(0) , fStoreRTTinFile(0) , fEventCounter(0) - , fTimeframeRTT() { } diff --git a/devices/flp2epn-distributed/run/runEPNReceiver.cxx b/devices/flp2epn-distributed/run/runEPNReceiver.cxx index 575bb220ac25e..80e5eee52a0eb 100644 --- a/devices/flp2epn-distributed/run/runEPNReceiver.cxx +++ b/devices/flp2epn-distributed/run/runEPNReceiver.cxx @@ -17,8 +17,15 @@ using namespace std; using namespace AliceO2::Devices; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), ioThreads(0), heartbeatIntervalInMs(0), bufferTimeoutInMs(0), numFLPs(0), testMode(0), interactive(0), + dataInSocketType(), dataInBufSize(1000), dataInMethod(), dataInAddress(), dataInRateLogging(0), + dataOutSocketType(), dataOutBufSize(1000), dataOutMethod(), dataOutAddress(), dataOutRateLogging(0), + hbOutSocketType(), hbOutBufSize(1000), hbOutMethod(), hbOutAddress(), hbOutRateLogging(0), + ackOutSocketType(), ackOutBufSize(1000), ackOutMethod(), ackOutAddress(), ackOutRateLogging(0) {} + string id; int ioThreads; int heartbeatIntervalInMs; @@ -50,7 +57,7 @@ typedef struct DeviceOptions string ackOutMethod; string ackOutAddress; int ackOutRateLogging; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -147,7 +154,7 @@ int main(int argc, char** argv) epn.CatchSignals(); // container for the command line options - DeviceOptions_t options; + DeviceOptions options; // parse the command line options and fill the container try { if (!parse_cmd_line(argc, argv, &options)) diff --git a/devices/flp2epn-distributed/run/runFLPSender.cxx b/devices/flp2epn-distributed/run/runFLPSender.cxx index 2fa049b2b8bd2..9926f5d5762d4 100644 --- a/devices/flp2epn-distributed/run/runFLPSender.cxx +++ b/devices/flp2epn-distributed/run/runFLPSender.cxx @@ -17,8 +17,14 @@ using namespace std; using namespace AliceO2::Devices; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), flpIndex(0), eventSize(0), ioThreads(0), numEPNs(0), heartbeatTimeoutInMs(0), testMode(0), interactive(0), sendOffset(0), sendDelay(0), + dataInSocketType(), dataInBufSize(0), dataInMethod(), dataInAddress(), dataInRateLogging(0), + dataOutSocketType(), dataOutBufSize(0), dataOutMethod(), dataOutAddress(), dataOutRateLogging(0), + hbInSocketType(), hbInBufSize(0), hbInMethod(), hbInAddress(), hbInRateLogging(0) {} + string id; int flpIndex; int eventSize; @@ -47,7 +53,7 @@ typedef struct DeviceOptions string hbInMethod; string hbInAddress; int hbInRateLogging; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -141,7 +147,7 @@ int main(int argc, char** argv) flp.CatchSignals(); // container for the command line options - DeviceOptions_t options; + DeviceOptions options; // parse the command line options and fill the container try { if (!parse_cmd_line(argc, argv, &options)) { diff --git a/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx b/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx index e9aeb7729032a..226e05d196681 100644 --- a/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx +++ b/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx @@ -17,8 +17,13 @@ using namespace std; using namespace AliceO2::Devices; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), eventRate(0), maxEvents(0), ioThreads(0), interactive(0), storeRTTinFile(0), + dataOutSocketType(), dataOutBufSize(0), dataOutMethod(), dataOutAddress(), dataOutRateLogging(0), + ackInSocketType(), ackInBufSize(0), ackInMethod(), ackInAddress(), ackInRateLogging(0) {} + string id; int eventRate; int maxEvents; @@ -37,7 +42,7 @@ typedef struct DeviceOptions string ackInMethod; string ackInAddress; int ackInRateLogging; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -108,7 +113,7 @@ int main(int argc, char** argv) sampler.CatchSignals(); // container for the command line options - DeviceOptions_t options; + DeviceOptions options; // parse the command line options and fill the container try { if (!parse_cmd_line(argc, argv, &options)) diff --git a/devices/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx b/devices/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx index 1e819ea2a033f..ee99173e4ff8a 100644 --- a/devices/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx +++ b/devices/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx @@ -25,8 +25,15 @@ using namespace std; using namespace AliceO2::Devices; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), ioThreads(0), heartbeatIntervalInMs(0), bufferTimeoutInMs(0), numFLPs(0), testMode(0), + dataInSocketType(), dataInBufSize(1000), dataInMethod(), dataInRateLogging(0), + dataOutSocketType(), dataOutBufSize(1000), dataOutMethod(), dataOutRateLogging(0), + hbOutSocketType(), hbOutBufSize(1000), hbOutMethod(), hbOutRateLogging(0), + ackOutSocketType(), ackOutBufSize(1000), ackOutMethod(), ackOutRateLogging(0) {} + string id; int ioThreads; int heartbeatIntervalInMs; @@ -57,7 +64,7 @@ typedef struct DeviceOptions string ackOutMethod; // string ackOutAddress; int ackOutRateLogging; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -152,7 +159,7 @@ int main(int argc, char** argv) epn.CatchSignals(); // create container for command line options and fill it - DeviceOptions_t options; + DeviceOptions options; try { if (!parse_cmd_line(argc, argv, &options)) return 0; diff --git a/devices/flp2epn-distributed/runO2Prototype/runFLPSender.cxx b/devices/flp2epn-distributed/runO2Prototype/runFLPSender.cxx index 151d4f825a1da..4b1cdbe27823e 100644 --- a/devices/flp2epn-distributed/runO2Prototype/runFLPSender.cxx +++ b/devices/flp2epn-distributed/runO2Prototype/runFLPSender.cxx @@ -25,8 +25,14 @@ using namespace std; using namespace AliceO2::Devices; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), flpIndex(0), eventSize(0), ioThreads(0), numEPNs(0), heartbeatTimeoutInMs(0), testMode(0), sendOffset(0), sendDelay(0), + dataInSocketType(), dataInBufSize(0), dataInMethod(), dataInRateLogging(0), + dataOutSocketType(), dataOutBufSize(0), dataOutMethod(), dataOutRateLogging(0), + hbInSocketType(), hbInBufSize(0), hbInMethod(), hbInRateLogging(0) {} + string id; int flpIndex; int eventSize; @@ -54,7 +60,7 @@ typedef struct DeviceOptions string hbInMethod; // string hbInAddress; int hbInRateLogging; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -143,7 +149,7 @@ int main(int argc, char** argv) flp.CatchSignals(); // container for the command line options - DeviceOptions_t options; + DeviceOptions options; // parse the command line options and fill the container try { if (!parse_cmd_line(argc, argv, &options)) diff --git a/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx b/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx index 1736dfc340c3e..e610e81b6f48d 100644 --- a/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx +++ b/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx @@ -25,8 +25,13 @@ using namespace std; using namespace AliceO2::Devices; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), eventRate(0), maxEvents(0), ioThreads(0), storeRTTinFile(0), + dataOutSocketType(), dataOutBufSize(0), dataOutMethod(), dataOutRateLogging(0), + ackInSocketType(), ackInBufSize(0), ackInMethod(), ackInRateLogging(0) {} + string id; int eventRate; int maxEvents; @@ -44,7 +49,7 @@ typedef struct DeviceOptions string ackInMethod; // string ackInAddress; int ackInRateLogging; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -113,7 +118,7 @@ int main(int argc, char** argv) sampler.CatchSignals(); // create container for command line options and fill it - DeviceOptions_t options; + DeviceOptions options; try { if (!parse_cmd_line(argc, argv, &options)) return 0; diff --git a/devices/flp2epn/O2EPNex.cxx b/devices/flp2epn/O2EPNex.cxx index 5dca87e2dabdd..5b2917454504d 100644 --- a/devices/flp2epn/O2EPNex.cxx +++ b/devices/flp2epn/O2EPNex.cxx @@ -30,8 +30,8 @@ void O2EPNex::Run() fChannels.at("data-in").at(0).Receive(msg); - int numInput = msg->GetSize() / sizeof(Content); - Content* input = static_cast(msg->GetData()); + // int numInput = msg->GetSize() / sizeof(Content); + // Content* input = static_cast(msg->GetData()); // for (int i = 0; i < numInput; ++i) { // LOG(INFO) << (&input[i])->x << " " << (&input[i])->y << " " << (&input[i])->z << " " << (&input[i])->a << " " << (&input[i])->b; diff --git a/devices/flp2epn/O2EpnMerger.cxx b/devices/flp2epn/O2EpnMerger.cxx index 26ed10d05bfdb..c29598dcf13e8 100644 --- a/devices/flp2epn/O2EpnMerger.cxx +++ b/devices/flp2epn/O2EpnMerger.cxx @@ -26,7 +26,7 @@ void O2EpnMerger::Run() poller->Poll(100); - for (int i = 0; i < fChannels.at("data-in").size(); i++) { + for (unsigned int i = 0; i < fChannels.at("data-in").size(); i++) { if (poller->CheckInput(i)) { if (fChannels.at("data-in").at(i).Receive(msg)) { // LOG(INFO) << "------ recieve Msg from " << i ; diff --git a/devices/flp2epn/O2Merger.cxx b/devices/flp2epn/O2Merger.cxx index e02d563d2e4ca..590ba7da151b3 100644 --- a/devices/flp2epn/O2Merger.cxx +++ b/devices/flp2epn/O2Merger.cxx @@ -31,7 +31,7 @@ void O2Merger::Run() poller->Poll(100); - for (int i = 0; i < fChannels.at("data-in").size(); i++) { + for (unsigned int i = 0; i < fChannels.at("data-in").size(); i++) { if (poller->CheckInput(i)) { if (fChannels.at("data-in").at(i).Receive(msg) >= 0) { // LOG(INFO) << "------ recieve Msg from " << i ; diff --git a/devices/flp2epn/run/runEPN.cxx b/devices/flp2epn/run/runEPN.cxx index a5011ef0b8f35..e543cef2ce3d4 100644 --- a/devices/flp2epn/run/runEPN.cxx +++ b/devices/flp2epn/run/runEPN.cxx @@ -20,15 +20,19 @@ using namespace std; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), ioThreads(1), + inputSocketType(), inputBufSize(1000), inputMethod(), inputAddress() {} + string id; int ioThreads; string inputSocketType; int inputBufSize; string inputMethod; string inputAddress; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -49,7 +53,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::variables_map vm; bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - if ( vm.count("help") ) + if (vm.count("help")) { LOG(INFO) << "EPN" << endl << desc; return false; @@ -57,23 +61,12 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if ( vm.count("id") ) - _options->id = vm["id"].as(); - - if ( vm.count("io-threads") ) - _options->ioThreads = vm["io-threads"].as(); - - if ( vm.count("input-socket-type") ) - _options->inputSocketType = vm["input-socket-type"].as(); - - if ( vm.count("input-buff-size") ) - _options->inputBufSize = vm["input-buff-size"].as(); - - if ( vm.count("input-method") ) - _options->inputMethod = vm["input-method"].as(); - - if ( vm.count("input-address") ) - _options->inputAddress = vm["input-address"].as(); + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as(); } + if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as(); } + if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as(); } + if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as(); } return true; } @@ -83,7 +76,7 @@ int main(int argc, char** argv) O2EPNex epn; epn.CatchSignals(); - DeviceOptions_t options; + DeviceOptions options; try { if (!parse_cmd_line(argc, argv, &options)) diff --git a/devices/flp2epn/run/runEPN_M.cxx b/devices/flp2epn/run/runEPN_M.cxx index 719b892b4b1cd..5850941dfe3bc 100644 --- a/devices/flp2epn/run/runEPN_M.cxx +++ b/devices/flp2epn/run/runEPN_M.cxx @@ -20,15 +20,19 @@ using namespace std; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), ioThreads(1), + inputSocketType(), inputBufSize(1000), inputMethod(), inputAddress() {} + string id; int ioThreads; string inputSocketType; int inputBufSize; string inputMethod; string inputAddress; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -49,7 +53,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::variables_map vm; bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - if ( vm.count("help") ) + if (vm.count("help")) { LOG(INFO) << "EPN Merger" << endl << desc; return false; @@ -57,23 +61,12 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if ( vm.count("id") ) - _options->id = vm["id"].as(); - - if ( vm.count("io-threads") ) - _options->ioThreads = vm["io-threads"].as(); - - if ( vm.count("input-socket-type") ) - _options->inputSocketType = vm["input-socket-type"].as(); - - if ( vm.count("input-buff-size") ) - _options->inputBufSize = vm["input-buff-size"].as(); - - if ( vm.count("input-method") ) - _options->inputMethod = vm["input-method"].as(); - - if ( vm.count("input-address") ) - _options->inputAddress = vm["input-address"].as(); + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as(); } + if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as(); } + if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as(); } + if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as(); } return true; } @@ -83,7 +76,7 @@ int main(int argc, char** argv) O2EpnMerger epn; epn.CatchSignals(); - DeviceOptions_t options; + DeviceOptions options; try { if (!parse_cmd_line(argc, argv, &options)) diff --git a/devices/flp2epn/run/runFLP.cxx b/devices/flp2epn/run/runFLP.cxx index 0499d68256f79..a3830e3dbc6b3 100644 --- a/devices/flp2epn/run/runFLP.cxx +++ b/devices/flp2epn/run/runFLP.cxx @@ -20,8 +20,12 @@ using namespace std; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), ioThreads(1), + outputSocketType(), outputBufSize(1000), outputMethod(), outputAddress() {} + string id; int eventSize; int ioThreads; @@ -29,7 +33,7 @@ typedef struct DeviceOptions int outputBufSize; string outputMethod; string outputAddress; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -51,7 +55,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::variables_map vm; bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - if ( vm.count("help") ) + if (vm.count("help")) { LOG(INFO) << "FLP" << endl << desc; return false; @@ -59,26 +63,13 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if ( vm.count("id") ) - _options->id = vm["id"].as(); - - if ( vm.count("event-size") ) - _options->eventSize = vm["event-size"].as(); - - if ( vm.count("io-threads") ) - _options->ioThreads = vm["io-threads"].as(); - - if ( vm.count("output-socket-type") ) - _options->outputSocketType = vm["output-socket-type"].as(); - - if ( vm.count("output-buff-size") ) - _options->outputBufSize = vm["output-buff-size"].as(); - - if ( vm.count("output-method") ) - _options->outputMethod = vm["output-method"].as(); - - if ( vm.count("output-address") ) - _options->outputAddress = vm["output-address"].as(); + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("event-size")) { _options->eventSize = vm["event-size"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("output-socket-type")) { _options->outputSocketType = vm["output-socket-type"].as(); } + if (vm.count("output-buff-size")) { _options->outputBufSize = vm["output-buff-size"].as(); } + if (vm.count("output-method")) { _options->outputMethod = vm["output-method"].as(); } + if (vm.count("output-address")) { _options->outputAddress = vm["output-address"].as(); } return true; } @@ -88,7 +79,7 @@ int main(int argc, char** argv) O2FLPex flp; flp.CatchSignals(); - DeviceOptions_t options; + DeviceOptions options; try { if (!parse_cmd_line(argc, argv, &options)) diff --git a/devices/flp2epn/run/runMerger.cxx b/devices/flp2epn/run/runMerger.cxx index 73c1bddef1ce1..a6a74db1587f4 100644 --- a/devices/flp2epn/run/runMerger.cxx +++ b/devices/flp2epn/run/runMerger.cxx @@ -20,8 +20,13 @@ using namespace std; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), ioThreads(1), numInputs(0), + inputSocketType(), inputBufSize(), inputMethod(), inputAddress(), + outputSocketType(), outputBufSize(1000), outputMethod(), outputAddress() {} + string id; int ioThreads; int numInputs; @@ -33,7 +38,7 @@ typedef struct DeviceOptions int outputBufSize; string outputMethod; string outputAddress; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -59,7 +64,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::variables_map vm; bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - if ( vm.count("help") ) + if (vm.count("help")) { LOG(INFO) << "MERGER" << endl << desc; return false; @@ -67,38 +72,17 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if ( vm.count("id") ) - _options->id = vm["id"].as(); - - if ( vm.count("io-threads") ) - _options->ioThreads = vm["io-threads"].as(); - - if ( vm.count("num-inputs") ) - _options->numInputs = vm["num-inputs"].as(); - - if ( vm.count("input-socket-type") ) - _options->inputSocketType = vm["input-socket-type"].as< vector >(); - - if ( vm.count("input-buff-size") ) - _options->inputBufSize = vm["input-buff-size"].as< vector >(); - - if ( vm.count("input-method") ) - _options->inputMethod = vm["input-method"].as< vector >(); - - if ( vm.count("input-address") ) - _options->inputAddress = vm["input-address"].as< vector >(); - - if ( vm.count("output-socket-type") ) - _options->outputSocketType = vm["output-socket-type"].as(); - - if ( vm.count("output-buff-size") ) - _options->outputBufSize = vm["output-buff-size"].as(); - - if ( vm.count("output-method") ) - _options->outputMethod = vm["output-method"].as(); - - if ( vm.count("output-address") ) - _options->outputAddress = vm["output-address"].as(); + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("num-inputs")) { _options->numInputs = vm["num-inputs"].as(); } + if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as< vector >(); } + if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as< vector >(); } + if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as< vector >(); } + if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as< vector >(); } + if (vm.count("output-socket-type")) { _options->outputSocketType = vm["output-socket-type"].as(); } + if (vm.count("output-buff-size")) { _options->outputBufSize = vm["output-buff-size"].as(); } + if (vm.count("output-method")) { _options->outputMethod = vm["output-method"].as(); } + if (vm.count("output-address")) { _options->outputAddress = vm["output-address"].as(); } return true; } @@ -108,7 +92,7 @@ int main(int argc, char** argv) O2Merger merger; merger.CatchSignals(); - DeviceOptions_t options; + DeviceOptions options; try { if (!parse_cmd_line(argc, argv, &options)) diff --git a/devices/flp2epn/run/runProxy.cxx b/devices/flp2epn/run/runProxy.cxx index 0aa65ef99a182..f105f0735b6a4 100644 --- a/devices/flp2epn/run/runProxy.cxx +++ b/devices/flp2epn/run/runProxy.cxx @@ -20,8 +20,13 @@ using namespace std; -typedef struct DeviceOptions +struct DeviceOptions { + DeviceOptions() : + id(), ioThreads(1), + inputSocketType(), inputBufSize(1000), inputMethod(), inputAddress(), + outputSocketType(), outputBufSize(1000), outputMethod(), outputAddress() {} + string id; int ioThreads; string inputSocketType; @@ -32,7 +37,7 @@ typedef struct DeviceOptions int outputBufSize; string outputMethod; string outputAddress; -} DeviceOptions_t; +}; inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) { @@ -57,7 +62,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::variables_map vm; bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - if ( vm.count("help") ) + if (vm.count("help")) { LOG(INFO) << "Proxy" << endl << desc; return false; @@ -65,35 +70,16 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) bpo::notify(vm); - if ( vm.count("id") ) - _options->id = vm["id"].as(); - - if ( vm.count("io-threads") ) - _options->ioThreads = vm["io-threads"].as(); - - if ( vm.count("input-socket-type") ) - _options->inputSocketType = vm["input-socket-type"].as(); - - if ( vm.count("input-buff-size") ) - _options->inputBufSize = vm["input-buff-size"].as(); - - if ( vm.count("input-method") ) - _options->inputMethod = vm["input-method"].as(); - - if ( vm.count("input-address") ) - _options->inputAddress = vm["input-address"].as(); - - if ( vm.count("output-socket-type") ) - _options->outputSocketType = vm["output-socket-type"].as(); - - if ( vm.count("output-buff-size") ) - _options->outputBufSize = vm["output-buff-size"].as(); - - if ( vm.count("output-method") ) - _options->outputMethod = vm["output-method"].as(); - - if ( vm.count("output-address") ) - _options->outputAddress = vm["output-address"].as(); + if (vm.count("id")) { _options->id = vm["id"].as(); } + if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } + if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as(); } + if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as(); } + if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as(); } + if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as(); } + if (vm.count("output-socket-type")) { _options->outputSocketType = vm["output-socket-type"].as(); } + if (vm.count("output-buff-size")) { _options->outputBufSize = vm["output-buff-size"].as(); } + if (vm.count("output-method")) { _options->outputMethod = vm["output-method"].as(); } + if (vm.count("output-address")) { _options->outputAddress = vm["output-address"].as(); } return true; } @@ -103,7 +89,7 @@ int main(int argc, char** argv) O2Proxy proxy; proxy.CatchSignals(); - DeviceOptions_t options; + DeviceOptions options; try { if (!parse_cmd_line(argc, argv, &options)) From b7025db118af7e3ae6a2cd795e9a547dce2e87f9 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Thu, 25 Feb 2016 11:58:15 +0100 Subject: [PATCH 013/135] Add missing include path for ZeroMQ --- o2cdb/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt index 23a4128c831ae..9be5a25ef427f 100644 --- a/o2cdb/CMakeLists.txt +++ b/o2cdb/CMakeLists.txt @@ -11,6 +11,7 @@ set(SYSTEM_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR} ${ROOT_INCLUDE_DIR} ${FAIRROOT_INCLUDE_DIR} + ${ZMQ_INCLUDE_DIR} ${AlFa_DIR}/include ) From 136c02d93693a3eae64c99c1640e54cd7602dafd Mon Sep 17 00:00:00 2001 From: Patryk Lesiak Date: Fri, 19 Feb 2016 21:45:07 +0100 Subject: [PATCH 014/135] Qualitty assurance prototype initialization --- CMakeLists.txt | 1 + o2qa/CMakeLists.txt | 77 ++++++++ o2qa/HistogramTMessage.h | 17 ++ o2qa/Merger/HistogramMerger.cxx | 216 +++++++++++++++++++++ o2qa/Merger/HistogramMerger.h | 46 +++++ o2qa/Merger/HistogramMergerTestSuite.cxx | 26 +++ o2qa/Merger/MergeStrategy.h | 14 ++ o2qa/Producer/HistogramProducer.cxx | 20 ++ o2qa/Producer/HistogramProducer.h | 18 ++ o2qa/Producer/Producer.h | 7 + o2qa/Producer/ProducerStateMachine.cxx | 83 ++++++++ o2qa/Producer/ProducerStateMachine.h | 26 +++ o2qa/Producer/TreeProducer.cxx | 1 + o2qa/Producer/TreeProducer.h | 1 + o2qa/SystemController/SystemController.cxx | 112 +++++++++++ o2qa/SystemController/SystemController.h | 27 +++ o2qa/Viewer/HistogramViewer.cxx | 147 ++++++++++++++ o2qa/Viewer/HistogramViewer.h | 41 ++++ o2qa/runHistogramMerger.cxx | 49 +++++ o2qa/runHistogramViewer.cxx | 49 +++++ o2qa/runProducer.cxx | 59 ++++++ o2qa/runSystemController.cxx | 43 ++++ 22 files changed, 1080 insertions(+) create mode 100755 o2qa/CMakeLists.txt create mode 100755 o2qa/HistogramTMessage.h create mode 100755 o2qa/Merger/HistogramMerger.cxx create mode 100755 o2qa/Merger/HistogramMerger.h create mode 100755 o2qa/Merger/HistogramMergerTestSuite.cxx create mode 100755 o2qa/Merger/MergeStrategy.h create mode 100644 o2qa/Producer/HistogramProducer.cxx create mode 100644 o2qa/Producer/HistogramProducer.h create mode 100644 o2qa/Producer/Producer.h create mode 100755 o2qa/Producer/ProducerStateMachine.cxx create mode 100755 o2qa/Producer/ProducerStateMachine.h create mode 100644 o2qa/Producer/TreeProducer.cxx create mode 100644 o2qa/Producer/TreeProducer.h create mode 100755 o2qa/SystemController/SystemController.cxx create mode 100755 o2qa/SystemController/SystemController.h create mode 100755 o2qa/Viewer/HistogramViewer.cxx create mode 100755 o2qa/Viewer/HistogramViewer.h create mode 100755 o2qa/runHistogramMerger.cxx create mode 100755 o2qa/runHistogramViewer.cxx create mode 100755 o2qa/runProducer.cxx create mode 100755 o2qa/runSystemController.cxx diff --git a/CMakeLists.txt b/CMakeLists.txt index df68e39cf14cc..9b16f0f93e59c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -221,6 +221,7 @@ add_subdirectory (devices) add_subdirectory (macro) add_subdirectory (o2cdb) add_subdirectory (test) +add_subdirectory (o2qa) Option(BUILD_DOXYGEN "Build Doxygen" OFF) diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt new file mode 100755 index 0000000000000..68e86132144da --- /dev/null +++ b/o2qa/CMakeLists.txt @@ -0,0 +1,77 @@ +Set(INCLUDE_DIRECTORIES + ${ROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIR} + ${FAIRROOT_INCLUDE_DIR} + ${AlFa_DIR}/include + ${CMAKE_SOURCE_DIR}/o2qa + ${CMAKE_SOURCE_DIR}/o2qa/Merger + ${CMAKE_SOURCE_DIR}/o2qa/Producer + ${CMAKE_SOURCE_DIR}/o2qa/Viewer + ${CMAKE_SOURCE_DIR}/o2qa/SystemController + ${SIMPATH}/include/root +) + +Set(SYSTEM_INCLUDE_DIRECTORIES + ${Boost_INCLUDE_DIR} +) + +Include_Directories(${INCLUDE_DIRECTORIES}) +Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${Boost_LIBRARY_DIRS} + ${FAIRROOT_LIBRARY_DIR} + ${ALIROOT}/lib + ${AlFa_DIR}/lib + ${SIMPATH}/lib/root +) + +Link_Directories(${LINK_DIRECTORIES}) + +set(SRCS + Producer/ProducerStateMachine.cxx + Producer/HistogramProducer.cxx + Merger/HistogramMerger.cxx + Viewer/HistogramViewer.cxx + SystemController/SystemController.cxx +) + +set(DEPENDENCIES + ${CMAKE_THREAD_LIBS_INIT} + boost_thread boost_system boost_program_options boost_unit_test_framework +) + +set(LIBRARY_NAME o2qaLibrary) + +GENERATE_LIBRARY() + +ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) + +Set(Exe_Names + runHistogramMerger + runProducer + runHistogramViewer + runSystemController + histogramMerget_UT +) + +Set(Exe_Source + runHistogramMerger.cxx + runProducer.cxx + runHistogramViewer.cxx + runSystemController.cxx + Merger/HistogramMergerTestSuite.cxx +) + +list(LENGTH Exe_Names _length) +math(EXPR _length ${_length}-1) + +ForEach(_file RANGE 0 ${_length}) + list(GET Exe_Names ${_file} _name) + list(GET Exe_Source ${_file} _src) + set(EXE_NAME ${_name}) + set(SRCS ${_src}) + set(DEPENDENCIES dl Core Base Hist o2qaLibrary FairMQ) + GENERATE_EXECUTABLE() +EndForEach(_file RANGE 0 ${_length}) diff --git a/o2qa/HistogramTMessage.h b/o2qa/HistogramTMessage.h new file mode 100755 index 0000000000000..c88aab21c8689 --- /dev/null +++ b/o2qa/HistogramTMessage.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include + +using namespace std; + +class HistogramTMessage : public TMessage +{ +public: + HistogramTMessage(void* buf, Int_t len) + : TMessage(buf, len) + { + ResetBit(kIsOwner); + } +}; + diff --git a/o2qa/Merger/HistogramMerger.cxx b/o2qa/Merger/HistogramMerger.cxx new file mode 100755 index 0000000000000..fa812fed8766c --- /dev/null +++ b/o2qa/Merger/HistogramMerger.cxx @@ -0,0 +1,216 @@ +/** + * HistogramMerger.cxx + * + * @since 2014-10-10 + * @author Patryk Lesiak + */ + +#include +#include +#include +#include + +#include + +#include "HistogramMerger.h" +#include "HistogramTMessage.h" + +using namespace std; + +void freeTMessage_sec(void* data, void* hint) +{ + delete static_cast(hint); +} + +HistogramMerger::HistogramMerger(std::string mergerId, int numIoThreads) +{ + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(HistogramMerger::Id, mergerId); + this->SetProperty(HistogramMerger::NumIoThreads, numIoThreads); +} + +void HistogramMerger::CustomCleanup(void* data, void* hint) +{ + delete (string*)hint; +} + +void HistogramMerger::establishChannel(std::string type, + std::string method, + std::string address, + std::string channelName) +{ + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(1000); + requestChannel.UpdateRcvBufSize(1000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); +} + +void HistogramMerger::executeRunLoop() +{ + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); + + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); + + ChangeState("RUN"); + InteractiveStateLoop(); +} + +void HistogramMerger::Run() +{ + const int producerChannel = 0; + const int controllerChannel = 2; + unique_ptr poller(fTransportFactory->CreatePoller(fChannels["data"])); + + while (GetCurrentState() == RUNNING) { + poller->Poll(100); + + if (poller->CheckInput(producerChannel)) { + LOG(INFO) << "Received histogram from Producer"; + handleReceivedHistograms(); + } + + if (poller->CheckInput(controllerChannel)) { + LOG(INFO) << "Received controll message"; + handleSystemCommunicationWithController(); + } + } +} + +void HistogramMerger::handleReceivedHistograms() +{ + this_thread::sleep_for(chrono::milliseconds(1000)); + + TH1F* receivedHistogram = receiveHistogramFromProducer(); + + if (receivedHistogram != nullptr) { + TCollection* currentHistogramsList = addReceivedObjectToMapByName(receivedHistogram); + TMessage * viewerMessage = createTMessageForViewer(receivedHistogram, currentHistogramsList); + unique_ptr viewerReply(fTransportFactory->CreateMessage()); + + sendHistogramToViewer(viewerMessage, move(viewerReply)); + sendReplyToProducer(new string("MERGER_OK")); + } +} + +void HistogramMerger::handleSystemCommunicationWithController() +{ + this_thread::sleep_for(chrono::milliseconds(1000)); + + unique_ptr request(fTransportFactory->CreateMessage()); + fChannels["data"].at(2).Receive(request); + string* text = new string(GetProperty(HistogramMerger::Id, "default_id") + "_ALIVE"); + + FairMQMessage* reply = fTransportFactory->CreateMessage(const_cast(text->c_str()), + text->length(), + CustomCleanup, + text); + fChannels["data"].at(2).Send(reply); +} + +TCollection* HistogramMerger::addReceivedObjectToMapByName(TObject* receivedObject) +{ + auto foundList = mHistogramIdTohistogramMap.find(receivedObject->GetName()); + + if (foundList != mHistogramIdTohistogramMap.end()) { + foundList->second->Add(receivedObject); + return foundList->second.get(); + } + else { + auto newItemIterator = mHistogramIdTohistogramMap.insert(make_pair(receivedObject->GetName(), + make_shared())); + newItemIterator.first->second->SetOwner(); + newItemIterator.first->second->Add(receivedObject); + return newItemIterator.first->second.get(); + } +} + +TMessage* HistogramMerger::createTMessageForViewer(TH1F* receivedHistogram, TCollection* histogramsList) +{ + TMessage* viewerMessage = new TMessage(kMESS_OBJECT); + shared_ptr mergedHistogram(mergeObjectWithGivenCollection(receivedHistogram, histogramsList)); + viewerMessage->WriteObject(mergedHistogram.get()); + return viewerMessage; +} + +TObject* HistogramMerger::mergeObjectWithGivenCollection(TObject* object, TCollection* mergeList) +{ + TObject* mergedObject = object->Clone(object->GetName()); + + if (!mergedObject->IsA()->GetMethodWithPrototype("Merge", "TCollection*")) + { + LOG(ERROR) << "Object does not implement a merge function!"; + return nullptr; + } + Int_t error = 0; + TString listHargs; + listHargs.Form("((TCollection*)0x%lx)", (ULong_t) mergeList); + + mergedObject->Execute("Merge", listHargs.Data(), &error); + if (error) + { + LOG(ERROR) << "Error " << error << "running merge!"; + return nullptr; + } + + return mergedObject; +} + +TH1F* HistogramMerger::receiveHistogramFromProducer() +{ + TH1F* receivedHistogram; + unique_ptr request(fTransportFactory->CreateMessage()); + fChannels["data"].at(0).Receive(request); + + if (request->GetSize() != 0) { + LOG(INFO) << "Received histogram from histogram producer"; + HistogramTMessage tm(request->GetData(), request->GetSize()); + receivedHistogram = static_cast(tm.ReadObject(tm.GetClass())); + LOG(INFO) << "Received histogram name: " << receivedHistogram->GetName(); + } + else { + LOG(ERROR) << "Received empty message from producer, skipping RUN procedure"; + receivedHistogram = nullptr; + } + + return receivedHistogram; +} + +void HistogramMerger::sendHistogramToViewer(TMessage* viewerMessage, unique_ptr viewerReply) +{ + unique_ptr viewerRequest(fTransportFactory->CreateMessage(viewerMessage->Buffer(), + viewerMessage->BufferSize(), + freeTMessage_sec, + viewerMessage)); + LOG(INFO) << "Sending new histogram to viewer"; + + fChannels["data"].at(1).Send(viewerRequest); + fChannels["data"].at(1).Receive(viewerReply); + + if (viewerReply->GetSize() != 0) { + LOG(INFO) << "Received reply from VIEWER: \"" << string(static_cast(viewerReply->GetData()), + viewerReply->GetSize()) << "\""; + } + else { + LOG(ERROR) << "Received empty message from viewer, skipping RUN procedure"; + } +} + +void HistogramMerger::sendReplyToProducer(std::string* message) +{ + LOG(INFO) << "Sending reply to producer."; + unique_ptr reply(fTransportFactory->CreateMessage(const_cast(message->c_str()), + message->length(), + CustomCleanup, + message)); + fChannels["data"].at(0).Send(reply); +} + +HistogramMerger::~HistogramMerger() +{ + for (auto const& entry : mHistogramIdTohistogramMap) { + entry.second->Delete(); + } +} diff --git a/o2qa/Merger/HistogramMerger.h b/o2qa/Merger/HistogramMerger.h new file mode 100755 index 0000000000000..c9ad1bbb28438 --- /dev/null +++ b/o2qa/Merger/HistogramMerger.h @@ -0,0 +1,46 @@ +/** + * HistogramMerger.h + * + * @since 2014-10-10 + * @author Patryk Lesiak + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +class HistogramMerger : public FairMQDevice +{ +public: + HistogramMerger(std::string producerId, int numIoThreads); + virtual ~HistogramMerger(); + + static void CustomCleanup(void* data, void* hint); + void establishChannel(std::string type, + std::string method, + std::string address, + std::string channelName); + void executeRunLoop(); + +protected: + virtual void Run(); + +private: + TObject* mergeObjectWithGivenCollection(TObject* receivedHistogram, TCollection* mergeList); + TH1F* receiveHistogramFromProducer(); + void sendHistogramToViewer(TMessage* viewerMessage, std::unique_ptr viewerReply); + void sendReplyToProducer(std::string* message); + TCollection* addReceivedObjectToMapByName(TObject* receivedObject); + TMessage* createTMessageForViewer(TH1F* receivedHistogram, TCollection* histogramsList); + void handleSystemCommunicationWithController(); + void handleReceivedHistograms(); + + std::map> mHistogramIdTohistogramMap; +}; + diff --git a/o2qa/Merger/HistogramMergerTestSuite.cxx b/o2qa/Merger/HistogramMergerTestSuite.cxx new file mode 100755 index 0000000000000..5d53f8aaddd5e --- /dev/null +++ b/o2qa/Merger/HistogramMergerTestSuite.cxx @@ -0,0 +1,26 @@ +#define BOOST_TEST_MODULE Merger +#define BOOST_TEST_MAIN + +#include +#include + +#include "Merger/HistogramMerger.h" + + +BOOST_AUTO_TEST_SUITE(HistogramMergerTestSuite) + +BOOST_AUTO_TEST_CASE(createMergerWithGivenIdAndNumberOfThreads) +{ + std::string mergerId = "Test_merger"; + unsigned short numberOfThreads = 1; + + HistogramMerger *merger = new HistogramMerger(mergerId, numberOfThreads); + + BOOST_CHECK(merger != nullptr); + BOOST_CHECK(merger->GetProperty(HistogramMerger::Id, "default_id") == mergerId); + BOOST_CHECK(merger->GetProperty(HistogramMerger::NumIoThreads, 0) == numberOfThreads); + + delete merger; +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Merger/MergeStrategy.h b/o2qa/Merger/MergeStrategy.h new file mode 100755 index 0000000000000..b8c6bec78acf9 --- /dev/null +++ b/o2qa/Merger/MergeStrategy.h @@ -0,0 +1,14 @@ +/** + * MergeStategy.h + * + * @since 2015-12-02 + * @author Patryk Lesiak + */ + +#pragma once + +class MergeStrategy +{ + public: + virtual void merge() = 0; +}; diff --git a/o2qa/Producer/HistogramProducer.cxx b/o2qa/Producer/HistogramProducer.cxx new file mode 100644 index 0000000000000..dd43571934373 --- /dev/null +++ b/o2qa/Producer/HistogramProducer.cxx @@ -0,0 +1,20 @@ +#include + +#include "HistogramProducer.h" + +using namespace std; + +HistogramProducer::HistogramProducer(string histogramId, float xLow, float xUp) +{ + mHistogramProducerId = histogramId; + mBeansNumber = 100; + mXLow = xLow; + mXUp = xUp; +} + +TObject* HistogramProducer::produceData() +{ + auto histogram = new TH1F(mHistogramProducerId.c_str(), "Gauss distribution", mBeansNumber, mXLow, mXUp); + histogram->FillRandom("gaus", 1000); + return histogram; +} \ No newline at end of file diff --git a/o2qa/Producer/HistogramProducer.h b/o2qa/Producer/HistogramProducer.h new file mode 100644 index 0000000000000..64262ffad5fde --- /dev/null +++ b/o2qa/Producer/HistogramProducer.h @@ -0,0 +1,18 @@ +#pragma once + +#include "Producer.h" + +#include + +class HistogramProducer : public Producer +{ +public: + HistogramProducer(std::string histogramId, float xLow, float xUp); + TObject* produceData() override; + +private: + std::string mHistogramProducerId; + int mBeansNumber; + double mXLow; + double mXUp; +}; \ No newline at end of file diff --git a/o2qa/Producer/Producer.h b/o2qa/Producer/Producer.h new file mode 100644 index 0000000000000..26d6d470cad4d --- /dev/null +++ b/o2qa/Producer/Producer.h @@ -0,0 +1,7 @@ +#pragma once + +class Producer +{ + public: + virtual TObject* produceData() = 0; +}; \ No newline at end of file diff --git a/o2qa/Producer/ProducerStateMachine.cxx b/o2qa/Producer/ProducerStateMachine.cxx new file mode 100755 index 0000000000000..683b61bfa0917 --- /dev/null +++ b/o2qa/Producer/ProducerStateMachine.cxx @@ -0,0 +1,83 @@ +#include +#include +#include +#include +#include +#include + +#include "ProducerStateMachine.h" +#include "HistogramProducer.h" + +using namespace std; + +ProducerStateMachine::ProducerStateMachine(string producerId, string histogramId, float xLow, float xUp, int numIoThreads) +{ + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(ProducerStateMachine::Id, producerId); + this->SetProperty(ProducerStateMachine::NumIoThreads, numIoThreads); + mProducer = make_shared(histogramId, xLow, xUp); +} + +void freeTMessage(void* data, void* hint) +{ + delete static_cast(hint); +} + +void ProducerStateMachine::Run() +{ + while (GetCurrentState() == RUNNING) { + this_thread::sleep_for(chrono::milliseconds(1000)); + + TObject* newDataObject = mProducer->produceData(); + TMessage * message = new TMessage(kMESS_OBJECT); + message->WriteObject(newDataObject); + delete newDataObject; + + unique_ptr request(fTransportFactory->CreateMessage(message->Buffer(), + message->BufferSize(), + freeTMessage, + message)); + unique_ptr reply(fTransportFactory->CreateMessage()); + + LOG(INFO) << "Sending new histogram to merger"; + + fChannels["data"].at(0).Send(request); + fChannels["data"].at(0).Receive(reply); + + if (reply->GetSize() != 0) { + LOG(INFO) << "Received reply from merger: \"" + << string(static_cast(reply->GetData()), reply->GetSize()) + << "\""; + } + else { + LOG(ERROR) << "Did not Receive reply from merger"; + } + } +} + +void ProducerStateMachine::establishChannel(std::string type, std::string method, std::string address, std::string channelName) +{ + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(10000); + requestChannel.UpdateRcvBufSize(10000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); +} + +void ProducerStateMachine::executeRunLoop() +{ + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); + + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); + + ChangeState("RUN"); + InteractiveStateLoop(); +} + +void ProducerStateMachine::CustomCleanup(void* data, void* hint) +{ + delete (string*)hint; +} + diff --git a/o2qa/Producer/ProducerStateMachine.h b/o2qa/Producer/ProducerStateMachine.h new file mode 100755 index 0000000000000..f6838e4e384c5 --- /dev/null +++ b/o2qa/Producer/ProducerStateMachine.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include +#include +#include "Producer.h" + +class ProducerStateMachine : public FairMQDevice +{ +public: + ProducerStateMachine(std::string producerId, std::string histogramId, float xLow, float xUp, int numIoThreads); + virtual ~ProducerStateMachine() = default; + + void executeRunLoop(); + void establishChannel(std::string type, std::string method, std::string address, std::string channelName); + +protected: + ProducerStateMachine() = default; + virtual void Run(); + TH1F* createHistogram(); + static void CustomCleanup(void* data, void* hint); + +private: + std::shared_ptr mProducer; +}; diff --git a/o2qa/Producer/TreeProducer.cxx b/o2qa/Producer/TreeProducer.cxx new file mode 100644 index 0000000000000..9025c56ce78d3 --- /dev/null +++ b/o2qa/Producer/TreeProducer.cxx @@ -0,0 +1 @@ +#include "TreeProducer.h" \ No newline at end of file diff --git a/o2qa/Producer/TreeProducer.h b/o2qa/Producer/TreeProducer.h new file mode 100644 index 0000000000000..50e96676b7027 --- /dev/null +++ b/o2qa/Producer/TreeProducer.h @@ -0,0 +1 @@ +#pragma once diff --git a/o2qa/SystemController/SystemController.cxx b/o2qa/SystemController/SystemController.cxx new file mode 100755 index 0000000000000..3a33862b875a2 --- /dev/null +++ b/o2qa/SystemController/SystemController.cxx @@ -0,0 +1,112 @@ +#include + +#include "SystemController.h" + +#include +#include + +using namespace std; + +SystemController::SystemController(std::string controllerId, std::string logFileName, int numIoThreads) +{ + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(SystemController::Id, controllerId); + this->SetProperty(SystemController::NumIoThreads, numIoThreads); + mLogFile.open(logFileName); +} + +SystemController::~SystemController() +{ + mLogFile.close(); +} + +void SystemController::establishChannel(std::string type, std::string method, std::string address, std::string channelName) +{ + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(5000); + requestChannel.UpdateRcvBufSize(1000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); +} + +void SystemController::executeRunLoop() +{ + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); + + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); + + ChangeState("RUN"); + InteractiveStateLoop(); +} + +void SystemController::CustomCleanup(void *data, void *hint) +{ + delete (string*)hint; +} + +void SystemController::Run() +{ + FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data"]); + poller->Poll(0); + + while (GetCurrentState() == RUNNING) { + mLogFile << getCurrentTime() << "\tSending status request at 5001 tcp port " << endl; + + chrono::time_point startTime; + startTime = chrono::system_clock::now(); + + FairMQMessage* request = sendMessageToNodes(); + + while (chrono::system_clock::now() < (startTime + chrono::seconds(5))) { + if (poller->CheckInput(0)) { + getStatusFromSystemNodes(); + } + } + + + } +} + +FairMQMessage* SystemController::sendMessageToNodes() +{ + string* text = new string("report_status"); + + FairMQMessage* request = fTransportFactory->CreateMessage(const_cast(text->c_str()), + text->length(), + CustomCleanup, + text); + LOG(INFO) << "Sending status request"; + fChannels["data"].at(0).Send(request, "no-block"); +} + +void SystemController::getStatusFromSystemNodes() +{ + FairMQMessage* reply = fTransportFactory->CreateMessage(); + fChannels["data"].at(0).Receive(reply); + + if (reply->GetSize() != 0) { + auto replyContent = string(static_cast(reply->GetData()), reply->GetSize()); + LOG(INFO) << "Received reply from node: " << replyContent.c_str(); + + if (reply->GetSize() != 0) { + mLogFile << getCurrentTime() << "\tReceived:\t" << replyContent.c_str() << endl; + } + } + + delete reply; +} + +string SystemController::getCurrentTime() +{ + time_t rawtime; + struct tm * timeinfo; + char buffer [80]; + + time (&rawtime); + timeinfo = localtime (&rawtime); + strftime (buffer, 80, "%H:%M:%S %F", timeinfo); + + return string(buffer); +} diff --git a/o2qa/SystemController/SystemController.h b/o2qa/SystemController/SystemController.h new file mode 100755 index 0000000000000..5c6e3658e34e7 --- /dev/null +++ b/o2qa/SystemController/SystemController.h @@ -0,0 +1,27 @@ +#pragma once + +#include +#include +#include +#include + +class SystemController : public FairMQDevice +{ +public: + SystemController(std::string controllerId, std::string logFileName, int numIoThreads); + virtual ~SystemController(); + + void establishChannel(std::string type, std::string method, std::string address, std::string channelName); + void executeRunLoop(); + static void CustomCleanup(void* data, void* hint); + +protected: + virtual void Run(); + +private: + std::ofstream mLogFile; + + void getStatusFromSystemNodes(); + std::string getCurrentTime(); + FairMQMessage* sendMessageToNodes(); +}; diff --git a/o2qa/Viewer/HistogramViewer.cxx b/o2qa/Viewer/HistogramViewer.cxx new file mode 100755 index 0000000000000..433231e562f31 --- /dev/null +++ b/o2qa/Viewer/HistogramViewer.cxx @@ -0,0 +1,147 @@ +/** + * HistogramViewer.cxx + * + * @since 2014-10-10 + * @author Patryk Lesiak + */ + +#include +#include +#include +#include +#include + +#include "HistogramViewer.h" +#include "HistogramTMessage.h" + +using namespace std; + +HistogramViewer::HistogramViewer(std::string viewerId, int numIoThreads) +{ + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(HistogramViewer::Id, viewerId); + this->SetProperty(HistogramViewer::NumIoThreads, numIoThreads); +} + +HistogramViewer::HistogramViewer() +{ +} + +void HistogramViewer::CustomCleanup(void *data, void *hint) +{ + delete (string*)hint; +} + +void HistogramViewer::Run() +{ + mHistogramCanvas = new TCanvas("mHistogramCanvas", "Gauss histogram", 100, 10, 1200, 800); + + while (GetCurrentState() == RUNNING) { + this_thread::sleep_for(chrono::milliseconds(1000)); + + TH1F* receivedHistogram = receiveHistogramFromMerger(); + + if (receivedHistogram != nullptr) { + updateCanvas(receivedHistogram); + updateHistogramCanvas(receivedHistogram); + sendReplyToMerger(new string("VIEWER_OK")); + } + } + + delete mHistogramCanvas; +} + +void HistogramViewer::updateCanvas(TH1F* receivedHistogra) +{ + if (mNamesOfHistogramsToDraw.find(receivedHistogra->GetName()) == mNamesOfHistogramsToDraw.end()) { + + mNamesOfHistogramsToDraw.insert(receivedHistogra->GetName()); + + mHistogramCanvas->Clear(); + mHistogramCanvas->Divide(mNamesOfHistogramsToDraw.size(), 1); + mHistogramCanvas->cd(mNamesOfHistogramsToDraw.size()); + mHistogramCanvas->Update(); + + LOG(DEBUG) << "DODANO NOWY DIAGRAM, liczba: " << mNamesOfHistogramsToDraw.size(); + } + else { + unsigned padId = mNamesOfHistogramsToDraw.size(); + for (auto const & name : mNamesOfHistogramsToDraw) { + if (receivedHistogra->GetName() == name) { + break; + } + padId--; + } + mHistogramCanvas->cd(padId); + LOG(DEBUG) <<"NIC NIE DODANO"; + + } +} + +void HistogramViewer::sendReplyToMerger(string* message) +{ + LOG(INFO) << "Sending reply to merger"; + FairMQMessage* reply = fTransportFactory->CreateMessage(const_cast(message->c_str()), + message->length(), + CustomCleanup, + message); + fChannels["data"].at(0).Send(reply); +} + +TH1F* HistogramViewer::receiveHistogramFromMerger() +{ + TH1F* receivedHistogram; + unique_ptr request(move(receiveMessageFromMerger())); + + if (request->GetSize() != 0) { + HistogramTMessage tm(request->GetData(), request->GetSize()); + receivedHistogram = static_cast(tm.ReadObject(tm.GetClass())); + } + else { + LOG(ERROR) << "Received empty request from merger"; + receivedHistogram = nullptr; + } + + return receivedHistogram; +} + +unique_ptr HistogramViewer::receiveMessageFromMerger() +{ + unique_ptr request(fTransportFactory->CreateMessage()); + fChannels["data"].at(0).Receive(&(*request)); + LOG(INFO) << "Received histogram from merger"; + return request; +} + +void HistogramViewer::updateHistogramCanvas(TH1F* receivedHistogram) +{ + receivedHistogram->Draw(); + mHistogramCanvas->Modified(); + mHistogramCanvas->Update(); + gSystem->ProcessEvents(); +} + +void HistogramViewer::executeRunLoop() +{ + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); + + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); + + ChangeState("RUN"); + InteractiveStateLoop(); +} + +void HistogramViewer::establishChannel(string type, string method, string address, string channelName) +{ + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(1000); + requestChannel.UpdateRcvBufSize(1000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); +} + +HistogramViewer::~HistogramViewer() +{ +} diff --git a/o2qa/Viewer/HistogramViewer.h b/o2qa/Viewer/HistogramViewer.h new file mode 100755 index 0000000000000..7ecad8145a9f5 --- /dev/null +++ b/o2qa/Viewer/HistogramViewer.h @@ -0,0 +1,41 @@ +/** + * HistogramViewer.h + * + * @since 2014-10-10 + * @author Patryk Lesiak + */ + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include + +class HistogramViewer : public FairMQDevice +{ +public: + HistogramViewer(std::string viewerId, int numIoThreads); + virtual ~HistogramViewer(); + + static void CustomCleanup(void *data, void* hint); + void executeRunLoop(); + void establishChannel(std::string type, std::string method, std::string address, std::string channelName); +protected: + HistogramViewer(); + virtual void Run(); + +private: + TCanvas* mHistogramCanvas; + std::unordered_set mNamesOfHistogramsToDraw; + + std::unique_ptr receiveMessageFromMerger(); + void sendReplyToMerger(std::string* message); + TH1F* receiveHistogramFromMerger(); + void updateHistogramCanvas(TH1F* receivedHistogram); + void updateCanvas(TH1F* receivedHistogra); +}; + diff --git a/o2qa/runHistogramMerger.cxx b/o2qa/runHistogramMerger.cxx new file mode 100755 index 0000000000000..d395cf69496aa --- /dev/null +++ b/o2qa/runHistogramMerger.cxx @@ -0,0 +1,49 @@ +/** + * runHistogramMerger.cxx + * + * @since 2013-04-23 + * @author Patryk Lesiak + */ + +#include +#include +#include +#include + +#include "HistogramMerger.h" +#include "HistogramTMessage.h" + +using namespace std; + +HistogramMerger histogramMerger("Merger_1", 1); + +namespace +{ + +void signalHandler(int signal) +{ + LOG(INFO) << "Caught signal " << signal; + histogramMerger.ChangeState(HistogramMerger::END); + LOG(INFO) << "Caught signal " << signal; +} + +} + +int main(int argc, char** argv) +{ + std::signal(SIGINT, signalHandler); + std::signal(SIGTERM, signalHandler); + + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "Merger id: " + << histogramMerger.GetProperty(HistogramMerger::Id, "default_id"); + + histogramMerger.establishChannel("rep", "bind", "tcp://*:5005", "data"); + histogramMerger.establishChannel("req", "connect", "tcp://localhost:5004", "data"); + // histogramMerger.establishChannel("rep", "bind", "tcp://*:5001", "data"); // controller + histogramMerger.executeRunLoop(); + + LOG(INFO) << "END OF runHistogramMerger"; + + return 0; +} diff --git a/o2qa/runHistogramViewer.cxx b/o2qa/runHistogramViewer.cxx new file mode 100755 index 0000000000000..20c274877c67e --- /dev/null +++ b/o2qa/runHistogramViewer.cxx @@ -0,0 +1,49 @@ +/** + * runHistogramViewer.cxx + * + * @since 2013-04-23 + * @author Patryk Lesiak + */ + +#include +#include +#include + +#include "HistogramViewer.h" + +using namespace std; + +HistogramViewer histogramViewer("Viewer_1", 1); + +namespace +{ + +void signalHandler(int signal) +{ + LOG(INFO) << "Caught signal " << signal; + histogramViewer.ChangeState(HistogramViewer::END); + LOG(INFO) << "Caught signal " << signal; +} + +} + +int main(int argc, char** argv) +{ + TApplication *app; + app = new TApplication("app1", &argc, argv); + + std::signal(SIGINT, signalHandler); + std::signal(SIGTERM, signalHandler); + + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "Viewer id: " + << histogramViewer.GetProperty(HistogramViewer::Id, "default_id"); + + histogramViewer.establishChannel("rep", "bind", "tcp://*:5004", "data"); + + histogramViewer.executeRunLoop(); + + LOG(INFO) << "END OF runHistogramViewer"; + + return 0; +} diff --git a/o2qa/runProducer.cxx b/o2qa/runProducer.cxx new file mode 100755 index 0000000000000..5a471f95bc153 --- /dev/null +++ b/o2qa/runProducer.cxx @@ -0,0 +1,59 @@ +/** + * runProducerStateMachine.cxx + * + * @since 2015-09-30 + * @author Patryk Lesiak + */ + +#include +#include +#include +#include + +#include "ProducerStateMachine.h" + +namespace +{ + +std::vector producerStateMachines; + +void signalHandler(int signal) +{ + LOG(INFO) << "Caught signal " << signal; + + for (auto ProducerStateMachine : producerStateMachines) { + ProducerStateMachine->ChangeState(ProducerStateMachine::END); + } + + LOG(INFO) << "Shutdown complete."; +} + +} + +int main(int argc, char** argv) +{ + constexpr int requiredNumberOfProgramParameters{4}; + + if (argc != requiredNumberOfProgramParameters) { + LOG(ERROR) << "Wrong number of program parameters, required three parameters: histogram xLow, xUp and Id"; + return -1; + } + + ProducerStateMachine ProducerStateMachine("Producer", argv[3], atof(argv[1]), atof(argv[2]), 1); + producerStateMachines.push_back(&ProducerStateMachine); + + std::signal(SIGINT, signalHandler); + std::signal(SIGTERM, signalHandler); + + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "Producer id: " + << producerStateMachines[0]->GetProperty(ProducerStateMachine::Id, "default_id"); + + producerStateMachines[0]->establishChannel("req", "connect", "tcp://localhost:5005", "data"); + + producerStateMachines[0]->executeRunLoop(); + + LOG(INFO) << "END OF runProducerStateMachine"; + + return 0; +} diff --git a/o2qa/runSystemController.cxx b/o2qa/runSystemController.cxx new file mode 100755 index 0000000000000..660ddc7155584 --- /dev/null +++ b/o2qa/runSystemController.cxx @@ -0,0 +1,43 @@ +/** + * runSystemController.cxx + * + * @since 2015-10-21 + * @author Patryk Lesiak + */ + +#include +#include + +#include "SystemController.h" + +using namespace std; + +SystemController systemController("CentralSystemController", "systemController_log.txt", 1); + +namespace +{ + +void signal_handler(int signal) +{ + LOG(INFO) << "Caught signal " << signal; + systemController.ChangeState(SystemController::END); + LOG(INFO) << "Caught signal " << signal; +} + +} + +int main(int argc, char** argv) +{ + + std::signal(SIGINT, signal_handler); + std::signal(SIGTERM, signal_handler); + + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "SystemController id: " + << systemController.GetProperty(SystemController::Id, "default_id"); + + systemController.establishChannel("req", "connect", "tcp://localhost:5001", "data"); + + systemController.executeRunLoop(); + +} From 5f4c594e2d06227c878a150c97d1bdfd5ffb7ce1 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Fri, 19 Feb 2016 22:07:41 +0100 Subject: [PATCH 015/135] Deleted unnecessary signal handlers --- o2qa/runHistogramMerger.cxx | 15 --------------- o2qa/runHistogramViewer.cxx | 15 --------------- o2qa/runProducer.cxx | 16 ---------------- o2qa/runSystemController.cxx | 16 ---------------- 4 files changed, 62 deletions(-) diff --git a/o2qa/runHistogramMerger.cxx b/o2qa/runHistogramMerger.cxx index d395cf69496aa..b439b212f7f73 100755 --- a/o2qa/runHistogramMerger.cxx +++ b/o2qa/runHistogramMerger.cxx @@ -17,23 +17,8 @@ using namespace std; HistogramMerger histogramMerger("Merger_1", 1); -namespace -{ - -void signalHandler(int signal) -{ - LOG(INFO) << "Caught signal " << signal; - histogramMerger.ChangeState(HistogramMerger::END); - LOG(INFO) << "Caught signal " << signal; -} - -} - int main(int argc, char** argv) { - std::signal(SIGINT, signalHandler); - std::signal(SIGTERM, signalHandler); - LOG(INFO) << "PID: " << getpid(); LOG(INFO) << "Merger id: " << histogramMerger.GetProperty(HistogramMerger::Id, "default_id"); diff --git a/o2qa/runHistogramViewer.cxx b/o2qa/runHistogramViewer.cxx index 20c274877c67e..8b8be8ddbe40f 100755 --- a/o2qa/runHistogramViewer.cxx +++ b/o2qa/runHistogramViewer.cxx @@ -15,26 +15,11 @@ using namespace std; HistogramViewer histogramViewer("Viewer_1", 1); -namespace -{ - -void signalHandler(int signal) -{ - LOG(INFO) << "Caught signal " << signal; - histogramViewer.ChangeState(HistogramViewer::END); - LOG(INFO) << "Caught signal " << signal; -} - -} - int main(int argc, char** argv) { TApplication *app; app = new TApplication("app1", &argc, argv); - std::signal(SIGINT, signalHandler); - std::signal(SIGTERM, signalHandler); - LOG(INFO) << "PID: " << getpid(); LOG(INFO) << "Viewer id: " << histogramViewer.GetProperty(HistogramViewer::Id, "default_id"); diff --git a/o2qa/runProducer.cxx b/o2qa/runProducer.cxx index 5a471f95bc153..b14e8c579d4f5 100755 --- a/o2qa/runProducer.cxx +++ b/o2qa/runProducer.cxx @@ -14,20 +14,7 @@ namespace { - std::vector producerStateMachines; - -void signalHandler(int signal) -{ - LOG(INFO) << "Caught signal " << signal; - - for (auto ProducerStateMachine : producerStateMachines) { - ProducerStateMachine->ChangeState(ProducerStateMachine::END); - } - - LOG(INFO) << "Shutdown complete."; -} - } int main(int argc, char** argv) @@ -41,9 +28,6 @@ int main(int argc, char** argv) ProducerStateMachine ProducerStateMachine("Producer", argv[3], atof(argv[1]), atof(argv[2]), 1); producerStateMachines.push_back(&ProducerStateMachine); - - std::signal(SIGINT, signalHandler); - std::signal(SIGTERM, signalHandler); LOG(INFO) << "PID: " << getpid(); LOG(INFO) << "Producer id: " diff --git a/o2qa/runSystemController.cxx b/o2qa/runSystemController.cxx index 660ddc7155584..0235538d08662 100755 --- a/o2qa/runSystemController.cxx +++ b/o2qa/runSystemController.cxx @@ -14,24 +14,8 @@ using namespace std; SystemController systemController("CentralSystemController", "systemController_log.txt", 1); -namespace -{ - -void signal_handler(int signal) -{ - LOG(INFO) << "Caught signal " << signal; - systemController.ChangeState(SystemController::END); - LOG(INFO) << "Caught signal " << signal; -} - -} - int main(int argc, char** argv) { - - std::signal(SIGINT, signal_handler); - std::signal(SIGTERM, signal_handler); - LOG(INFO) << "PID: " << getpid(); LOG(INFO) << "SystemController id: " << systemController.GetProperty(SystemController::Id, "default_id"); From d5dadb5f1c3ec2ccbe4dd59e279652e4f37d76b4 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Sat, 20 Feb 2016 19:41:37 +0100 Subject: [PATCH 016/135] Major refactoring, added tests for producer device, added fakeit framework for mocking purpose --- o2qa/CMakeLists.txt | 33 +- o2qa/Merger/HistogramMerger.h | 4 +- .../MergerTestSuite.cxx} | 26 +- o2qa/Producer/HistogramProducer.cxx | 6 +- o2qa/Producer/HistogramProducer.h | 4 +- o2qa/Producer/Producer.h | 6 +- ...cerStateMachine.cxx => ProducerDevice.cxx} | 20 +- ...roducerStateMachine.h => ProducerDevice.h} | 10 +- o2qa/Producer/Tests/ProducerTestSuite.cxx | 46 + o2qa/Viewer/HistogramViewer.cxx | 6 +- o2qa/fakeit.hpp | 9201 +++++++++++++++++ o2qa/runProducer.cxx | 18 +- 12 files changed, 9322 insertions(+), 58 deletions(-) rename o2qa/Merger/{HistogramMergerTestSuite.cxx => Tests/MergerTestSuite.cxx} (54%) rename o2qa/Producer/{ProducerStateMachine.cxx => ProducerDevice.cxx} (77%) rename o2qa/Producer/{ProducerStateMachine.h => ProducerDevice.h} (51%) create mode 100644 o2qa/Producer/Tests/ProducerTestSuite.cxx create mode 100644 o2qa/fakeit.hpp diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index 68e86132144da..f3fa5b7ab8156 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -1,15 +1,13 @@ Set(INCLUDE_DIRECTORIES ${ROOT_INCLUDE_DIR} ${BASE_INCLUDE_DIRECTORIES} - ${Boost_INCLUDE_DIR} ${FAIRROOT_INCLUDE_DIR} ${AlFa_DIR}/include ${CMAKE_SOURCE_DIR}/o2qa ${CMAKE_SOURCE_DIR}/o2qa/Merger ${CMAKE_SOURCE_DIR}/o2qa/Producer ${CMAKE_SOURCE_DIR}/o2qa/Viewer - ${CMAKE_SOURCE_DIR}/o2qa/SystemController - ${SIMPATH}/include/root +# ${CMAKE_SOURCE_DIR}/o2qa/SystemController ) Set(SYSTEM_INCLUDE_DIRECTORIES @@ -22,7 +20,6 @@ Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES ${Boost_LIBRARY_DIRS} ${FAIRROOT_LIBRARY_DIR} - ${ALIROOT}/lib ${AlFa_DIR}/lib ${SIMPATH}/lib/root ) @@ -30,38 +27,33 @@ set(LINK_DIRECTORIES Link_Directories(${LINK_DIRECTORIES}) set(SRCS - Producer/ProducerStateMachine.cxx + Producer/ProducerDevice.cxx Producer/HistogramProducer.cxx Merger/HistogramMerger.cxx Viewer/HistogramViewer.cxx - SystemController/SystemController.cxx +# SystemController/SystemController.cxx ) set(DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT} - boost_thread boost_system boost_program_options boost_unit_test_framework + boost_unit_test_framework ) set(LIBRARY_NAME o2qaLibrary) - GENERATE_LIBRARY() -ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) - Set(Exe_Names runHistogramMerger runProducer runHistogramViewer - runSystemController - histogramMerget_UT +# runSystemController ) Set(Exe_Source runHistogramMerger.cxx runProducer.cxx runHistogramViewer.cxx - runSystemController.cxx - Merger/HistogramMergerTestSuite.cxx +# runSystemController.cxx ) list(LENGTH Exe_Names _length) @@ -75,3 +67,16 @@ ForEach(_file RANGE 0 ${_length}) set(DEPENDENCIES dl Core Base Hist o2qaLibrary FairMQ) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) + +ENABLE_TESTING() +ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) +SET(EXECUTABLE_PATH ${CMAKE_SOURCE_DIR}/build_o2/bin) + +add_executable(testQaProducer Producer/Tests/ProducerTestSuite.cxx) +add_executable(testQaMerger Merger/Tests/MergerTestSuite.cxx) + +target_link_libraries(testQaProducer dl Core Base Hist o2qaLibrary FairMQ) +target_link_libraries(testQaMerger dl Core Base Hist o2qaLibrary FairMQ) + +add_test(ProducerTest ${EXECUTABLE_PATH}/testQaProducer) +add_test(MergerTest ${EXECUTABLE_PATH}/testQaMerger) diff --git a/o2qa/Merger/HistogramMerger.h b/o2qa/Merger/HistogramMerger.h index c9ad1bbb28438..5593551d4c7f7 100755 --- a/o2qa/Merger/HistogramMerger.h +++ b/o2qa/Merger/HistogramMerger.h @@ -13,7 +13,7 @@ #include #include #include -#include +#include class HistogramMerger : public FairMQDevice { @@ -41,6 +41,6 @@ class HistogramMerger : public FairMQDevice void handleSystemCommunicationWithController(); void handleReceivedHistograms(); - std::map> mHistogramIdTohistogramMap; + std::unordered_map> mHistogramIdTohistogramMap; }; diff --git a/o2qa/Merger/HistogramMergerTestSuite.cxx b/o2qa/Merger/Tests/MergerTestSuite.cxx similarity index 54% rename from o2qa/Merger/HistogramMergerTestSuite.cxx rename to o2qa/Merger/Tests/MergerTestSuite.cxx index 5d53f8aaddd5e..59b8a6f7e6a75 100755 --- a/o2qa/Merger/HistogramMergerTestSuite.cxx +++ b/o2qa/Merger/Tests/MergerTestSuite.cxx @@ -3,9 +3,15 @@ #include #include +#include #include "Merger/HistogramMerger.h" +#include "fakeit.hpp" +class Dummy { +public: + virtual int returnThree() {return 3;} +}; BOOST_AUTO_TEST_SUITE(HistogramMergerTestSuite) @@ -14,13 +20,29 @@ BOOST_AUTO_TEST_CASE(createMergerWithGivenIdAndNumberOfThreads) std::string mergerId = "Test_merger"; unsigned short numberOfThreads = 1; - HistogramMerger *merger = new HistogramMerger(mergerId, numberOfThreads); + std::unique_ptr merger(new HistogramMerger(mergerId, numberOfThreads)); BOOST_CHECK(merger != nullptr); BOOST_CHECK(merger->GetProperty(HistogramMerger::Id, "default_id") == mergerId); BOOST_CHECK(merger->GetProperty(HistogramMerger::NumIoThreads, 0) == numberOfThreads); +} + +BOOST_AUTO_TEST_CASE(checkClass) +{ + Dummy dummy = Dummy(); + BOOST_CHECK(dummy.returnThree() == 3); +} + +BOOST_AUTO_TEST_CASE(CheckFakeIt) +{ + using namespace fakeit; + Mock mock; + + When(Method(mock, returnThree)).Return(1); + + Dummy &ref = mock.get(); - delete merger; + BOOST_CHECK(ref.returnThree() == 1); } BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Producer/HistogramProducer.cxx b/o2qa/Producer/HistogramProducer.cxx index dd43571934373..d28e1ddb8a551 100644 --- a/o2qa/Producer/HistogramProducer.cxx +++ b/o2qa/Producer/HistogramProducer.cxx @@ -6,15 +6,15 @@ using namespace std; HistogramProducer::HistogramProducer(string histogramId, float xLow, float xUp) { - mHistogramProducerId = histogramId; + mHistogramId = histogramId; mBeansNumber = 100; mXLow = xLow; mXUp = xUp; } -TObject* HistogramProducer::produceData() +TObject* HistogramProducer::produceData() const { - auto histogram = new TH1F(mHistogramProducerId.c_str(), "Gauss distribution", mBeansNumber, mXLow, mXUp); + TH1F* histogram = new TH1F(mHistogramId.c_str(), "Gauss distribution", mBeansNumber, mXLow, mXUp); histogram->FillRandom("gaus", 1000); return histogram; } \ No newline at end of file diff --git a/o2qa/Producer/HistogramProducer.h b/o2qa/Producer/HistogramProducer.h index 64262ffad5fde..52e30723acf2d 100644 --- a/o2qa/Producer/HistogramProducer.h +++ b/o2qa/Producer/HistogramProducer.h @@ -8,10 +8,10 @@ class HistogramProducer : public Producer { public: HistogramProducer(std::string histogramId, float xLow, float xUp); - TObject* produceData() override; + TObject* produceData() const override; private: - std::string mHistogramProducerId; + std::string mHistogramId; int mBeansNumber; double mXLow; double mXUp; diff --git a/o2qa/Producer/Producer.h b/o2qa/Producer/Producer.h index 26d6d470cad4d..0b05eaebef4c6 100644 --- a/o2qa/Producer/Producer.h +++ b/o2qa/Producer/Producer.h @@ -1,7 +1,9 @@ #pragma once +class TObject; + class Producer { public: - virtual TObject* produceData() = 0; -}; \ No newline at end of file + virtual TObject* produceData() const = 0; +}; diff --git a/o2qa/Producer/ProducerStateMachine.cxx b/o2qa/Producer/ProducerDevice.cxx similarity index 77% rename from o2qa/Producer/ProducerStateMachine.cxx rename to o2qa/Producer/ProducerDevice.cxx index 683b61bfa0917..2b73dd27d35af 100755 --- a/o2qa/Producer/ProducerStateMachine.cxx +++ b/o2qa/Producer/ProducerDevice.cxx @@ -5,16 +5,16 @@ #include #include -#include "ProducerStateMachine.h" +#include "ProducerDevice.h" #include "HistogramProducer.h" using namespace std; -ProducerStateMachine::ProducerStateMachine(string producerId, string histogramId, float xLow, float xUp, int numIoThreads) +ProducerDevice::ProducerDevice(string producerId, string histogramId, float xLow, float xUp, int numIoThreads) { this->SetTransport(new FairMQTransportFactoryZMQ); - this->SetProperty(ProducerStateMachine::Id, producerId); - this->SetProperty(ProducerStateMachine::NumIoThreads, numIoThreads); + this->SetProperty(ProducerDevice::Id, producerId); + this->SetProperty(ProducerDevice::NumIoThreads, numIoThreads); mProducer = make_shared(histogramId, xLow, xUp); } @@ -23,7 +23,7 @@ void freeTMessage(void* data, void* hint) delete static_cast(hint); } -void ProducerStateMachine::Run() +void ProducerDevice::Run() { while (GetCurrentState() == RUNNING) { this_thread::sleep_for(chrono::milliseconds(1000)); @@ -55,7 +55,7 @@ void ProducerStateMachine::Run() } } -void ProducerStateMachine::establishChannel(std::string type, std::string method, std::string address, std::string channelName) +void ProducerDevice::establishChannel(std::string type, std::string method, std::string address, std::string channelName) { FairMQChannel requestChannel(type, method, address); requestChannel.UpdateSndBufSize(10000); @@ -64,7 +64,7 @@ void ProducerStateMachine::establishChannel(std::string type, std::string method fChannels[channelName].push_back(requestChannel); } -void ProducerStateMachine::executeRunLoop() +void ProducerDevice::executeRunLoop() { ChangeState("INIT_DEVICE"); WaitForEndOfState("INIT_DEVICE"); @@ -75,9 +75,3 @@ void ProducerStateMachine::executeRunLoop() ChangeState("RUN"); InteractiveStateLoop(); } - -void ProducerStateMachine::CustomCleanup(void* data, void* hint) -{ - delete (string*)hint; -} - diff --git a/o2qa/Producer/ProducerStateMachine.h b/o2qa/Producer/ProducerDevice.h similarity index 51% rename from o2qa/Producer/ProducerStateMachine.h rename to o2qa/Producer/ProducerDevice.h index f6838e4e384c5..b713c7b7e003c 100755 --- a/o2qa/Producer/ProducerStateMachine.h +++ b/o2qa/Producer/ProducerDevice.h @@ -6,20 +6,18 @@ #include #include "Producer.h" -class ProducerStateMachine : public FairMQDevice +class ProducerDevice : public FairMQDevice { public: - ProducerStateMachine(std::string producerId, std::string histogramId, float xLow, float xUp, int numIoThreads); - virtual ~ProducerStateMachine() = default; + ProducerDevice(std::string producerId, std::string histogramId, float xLow, float xUp, int numIoThreads); + virtual ~ProducerDevice() = default; void executeRunLoop(); void establishChannel(std::string type, std::string method, std::string address, std::string channelName); protected: - ProducerStateMachine() = default; + ProducerDevice() = default; virtual void Run(); - TH1F* createHistogram(); - static void CustomCleanup(void* data, void* hint); private: std::shared_ptr mProducer; diff --git a/o2qa/Producer/Tests/ProducerTestSuite.cxx b/o2qa/Producer/Tests/ProducerTestSuite.cxx new file mode 100644 index 0000000000000..8f3d07c0ff81f --- /dev/null +++ b/o2qa/Producer/Tests/ProducerTestSuite.cxx @@ -0,0 +1,46 @@ +#define BOOST_TEST_MODULE Producer +#define BOOST_TEST_MAIN + +#include +#include +#include +#include +#include +#include + +#include "Producer/HistogramProducer.h" +#include "Producer/ProducerDevice.h" +#include "fakeit.hpp" + +using namespace std; + +BOOST_AUTO_TEST_SUITE(ProducerTestSuite) + +BOOST_AUTO_TEST_CASE(produceHistogramWithGivenParameters) +{ + string histogramId = "TestId"; + float xLow = -10.0; + float xUp = 10.0; + const int expectedNumberOfEntries = 1000; + const int expectedNumberOfBins = 100; + + unique_ptr histogramProducer(new HistogramProducer(histogramId, xLow, xUp)); + unique_ptr histogram(dynamic_cast(histogramProducer->produceData())); + + BOOST_TEST(histogram->GetEntries() == expectedNumberOfEntries, "Invalid number of entries"); + BOOST_TEST(histogram->GetName() == histogramId, "Invalid name of histogram"); + BOOST_TEST(histogram->GetXaxis()->GetXmin() == xLow, "Invalid minimal value for x axis"); + BOOST_TEST(histogram->GetXaxis()->GetXmax() == xUp, "Invalid maximal value for x axis"); + BOOST_TEST(histogram->GetNbinsX() == expectedNumberOfBins, "Invalid number of bins"); +} + +BOOST_AUTO_TEST_CASE(establishChannelByProducerDevice) +{ + unique_ptr producer(new ProducerDevice("Producer", "Hist", -10.0, 10.0, 1)); + BOOST_TEST(producer->fChannels.size() == 0, "Producer device has a channel connected at startup"); + + producer->establishChannel("req", "connect", "tcp://localhost:5005", "data"); + BOOST_TEST(producer->fChannels.size() == 1, "Producer device did not establish channel"); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Viewer/HistogramViewer.cxx b/o2qa/Viewer/HistogramViewer.cxx index 433231e562f31..1cc0c81cd6f36 100755 --- a/o2qa/Viewer/HistogramViewer.cxx +++ b/o2qa/Viewer/HistogramViewer.cxx @@ -61,8 +61,6 @@ void HistogramViewer::updateCanvas(TH1F* receivedHistogra) mHistogramCanvas->Divide(mNamesOfHistogramsToDraw.size(), 1); mHistogramCanvas->cd(mNamesOfHistogramsToDraw.size()); mHistogramCanvas->Update(); - - LOG(DEBUG) << "DODANO NOWY DIAGRAM, liczba: " << mNamesOfHistogramsToDraw.size(); } else { unsigned padId = mNamesOfHistogramsToDraw.size(); @@ -72,9 +70,7 @@ void HistogramViewer::updateCanvas(TH1F* receivedHistogra) } padId--; } - mHistogramCanvas->cd(padId); - LOG(DEBUG) <<"NIC NIE DODANO"; - + mHistogramCanvas->cd(padId); } } diff --git a/o2qa/fakeit.hpp b/o2qa/fakeit.hpp new file mode 100644 index 0000000000000..7fbe7836f4c89 --- /dev/null +++ b/o2qa/fakeit.hpp @@ -0,0 +1,9201 @@ +#pragma once +/* + * FakeIt - A Simplified C++ Mocking Framework + * Copyright (c) Eran Pe'er 2013 + * Generated: 2015-10-29 23:45:30.560000 + * Distributed under the MIT License. Please refer to the LICENSE file at: + * https://github.com/eranpeer/FakeIt + */ + +#ifndef fakeit_h__ +#define fakeit_h__ + + + +#include +#include +#include +#include +#include +#if defined (__GNUG__) || _MSC_VER >= 1900 +#define THROWS noexcept(false) +#define NO_THROWS noexcept(true) +#elif defined (_MSC_VER) +#define THROWS throw(...) +#define NO_THROWS +#endif +#include +#include +#include +#include +#include +#include +#include + + +namespace fakeit { + + template + struct naked_type { + typedef typename std::remove_cv::type>::type type; + }; + + template< class T > struct tuple_arg { typedef T type; }; + template< class T > struct tuple_arg < T& > { typedef T& type; }; + template< class T > struct tuple_arg < T&& > { typedef T&& type; }; + + + + + template + using ArgumentsTuple = std::tuple < arglist... > ; + + template< class T > struct test_arg { typedef T& type; }; + template< class T > struct test_arg< T& > { typedef T& type; }; + template< class T > struct test_arg< T&& > { typedef T& type; }; + + template< class T > struct production_arg { typedef T& type; }; + template< class T > struct production_arg< T& > { typedef T& type; }; + template< class T > struct production_arg< T&& > { typedef T&& type; }; + + template + class is_ostreamable { + struct no {}; + template + static auto test(std::ostream &s, const T1 &t) -> decltype(s << t); + static no test(...); + public: + static const bool value = std::is_same())), std::ostream &>::value; + }; + + template + struct VTableMethodType { +#if defined (__GNUG__) + typedef R(*type)(void *, arglist...); +#elif defined (_MSC_VER) + typedef R(__thiscall *type)(void *, arglist...); +#endif + }; +} +#include +#include +#include +#include +#include +#include + +namespace fakeit { + + struct FakeitContext; + + template + struct MockObject { + virtual ~MockObject() THROWS { }; + + virtual C &get() = 0; + + virtual FakeitContext &getFakeIt() = 0; + }; + + struct MethodInfo { + + static unsigned int nextMethodOrdinal() { + static std::atomic_uint ordinal{0}; + return ++ordinal; + } + + MethodInfo(unsigned int anId, std::string aName) : + _id(anId), _name(aName) { } + + unsigned int id() const { + return _id; + } + + std::string name() const { + return _name; + } + + void setName(const std::string &value) { + _name = value; + } + + private: + unsigned int _id; + std::string _name; + }; + + struct UnknownMethod { + + static MethodInfo &instance() { + static MethodInfo instance(MethodInfo::nextMethodOrdinal(), "unknown"); + return instance; + } + + }; + +} +namespace fakeit { + class Destructible { + public: + virtual ~Destructible() {} + }; +} + +namespace fakeit { + + struct Invocation : Destructible { + + static unsigned int nextInvocationOrdinal() { + static std::atomic_uint invocationOrdinal{0}; + return ++invocationOrdinal; + } + + struct Matcher { + + virtual ~Matcher() THROWS { + } + + virtual bool matches(Invocation &invocation) = 0; + + virtual std::string format() const = 0; + }; + + Invocation(unsigned int ordinal, MethodInfo &method) : + _ordinal(ordinal), _method(method), _isVerified(false) { + } + + virtual ~Invocation() override = default; + + unsigned int getOrdinal() const { + return _ordinal; + } + + MethodInfo &getMethod() const { + return _method; + } + + void markAsVerified() { + _isVerified = true; + } + + bool isVerified() const { + return _isVerified; + } + + virtual std::string format() const = 0; + + private: + const unsigned int _ordinal; + MethodInfo &_method; + bool _isVerified; + }; + +} +#include +#include +#include +#include +#include + +namespace fakeit { + + template + struct Formatter; + + template <> + struct Formatter + { + static std::string format(bool const &val) + { + return val ? "true" : "false"; + } + }; + + template <> + struct Formatter + { + static std::string format(char const &val) + { + std::string s; + s += "'"; + s += val; + s += "'"; + return s; + } + }; + + template + struct Formatter::value>::type> { + static std::string format(C const &) + { + return "?"; + } + }; + + template + struct Formatter::value>::type> { + static std::string format(C const &val) + { + std::ostringstream os; + os << val; + return os.str(); + } + }; + + + template + using TypeFormatter = Formatter::type>; +} + +namespace fakeit { + + + template + struct TuplePrinter { + static void print(std::ostream &strm, const Tuple &t) { + TuplePrinter::print(strm, t); + strm << ", " << fakeit::TypeFormatter(t))>::format(std::get(t)); + } + }; + + template + struct TuplePrinter { + static void print(std::ostream &strm, const Tuple &t) { + strm << fakeit::TypeFormatter(t))>::format(std::get<0>(t)); + } + }; + + template + struct TuplePrinter { + static void print(std::ostream &, const Tuple &) { + } + }; + + template + void print(std::ostream &strm, const std::tuple &t) { + strm << "("; + TuplePrinter::print(strm, t); + strm << ")"; + } + + template + std::ostream &operator<<(std::ostream &strm, const std::tuple &t) { + print(strm, t); + return strm; + } + +} + + +namespace fakeit { + + + + + + + + + + + + + + + + + + + template + struct ActualInvocation : public Invocation { + + struct Matcher : public virtual Destructible { + virtual bool matches(ActualInvocation &actualInvocation) = 0; + + virtual std::string format() const = 0; + }; + + ActualInvocation(unsigned int ordinal, MethodInfo &method, const typename fakeit::production_arg::type... args) : + Invocation(ordinal, method), _matcher{ nullptr } + , actualArguments{ std::forward::type>(args)... } + { + } + + ArgumentsTuple & getActualArguments() { + return actualArguments; + } + + + void setActualMatcher(Matcher *matcher) { + this->_matcher = matcher; + } + + Matcher *getActualMatcher() { + return _matcher; + } + + virtual std::string format() const override { + std::ostringstream out; + out << getMethod().name(); + print(out, actualArguments); + return out.str(); + } + + private: + + Matcher *_matcher; + ArgumentsTuple actualArguments; + }; + + template + std::ostream &operator<<(std::ostream &strm, const ActualInvocation &ai) { + strm << ai.format(); + return strm; + } + +} + + + + + +#include + +namespace fakeit { + + struct ActualInvocationsSource { + virtual void getActualInvocations(std::unordered_set &into) const = 0; + + virtual ~ActualInvocationsSource() NO_THROWS { }; + }; + + struct InvocationsSourceProxy : public ActualInvocationsSource { + + InvocationsSourceProxy(ActualInvocationsSource *inner) : + _inner(inner) { + } + + void getActualInvocations(std::unordered_set &into) const override { + _inner->getActualInvocations(into); + } + + private: + std::shared_ptr _inner; + }; + + struct UnverifiedInvocationsSource : public ActualInvocationsSource { + + UnverifiedInvocationsSource(InvocationsSourceProxy decorated) : _decorated(decorated) { + } + + void getActualInvocations(std::unordered_set &into) const override { + std::unordered_set all; + _decorated.getActualInvocations(all); + for (fakeit::Invocation *i : all) { + if (!i->isVerified()) { + into.insert(i); + } + } + } + + private: + InvocationsSourceProxy _decorated; + }; + + struct AggregateInvocationsSource : public ActualInvocationsSource { + + AggregateInvocationsSource(std::vector &sources) : _sources(sources) { + } + + void getActualInvocations(std::unordered_set &into) const override { + std::unordered_set tmp; + for (ActualInvocationsSource *source : _sources) { + source->getActualInvocations(tmp); + } + filter(tmp, into); + } + + protected: + bool shouldInclude(fakeit::Invocation *) const { + return true; + } + + private: + std::vector _sources; + + void filter(std::unordered_set &source, std::unordered_set &target) const { + for (Invocation *i:source) { + if (shouldInclude(i)) { + target.insert(i); + } + } + } + }; +} + +namespace fakeit { + + class Sequence { + private: + + protected: + + Sequence() { + } + + virtual ~Sequence() THROWS { + } + + public: + + + virtual void getExpectedSequence(std::vector &into) const = 0; + + + virtual void getInvolvedMocks(std::vector &into) const = 0; + + virtual unsigned int size() const = 0; + + friend class VerifyFunctor; + }; + + class ConcatenatedSequence : public virtual Sequence { + private: + const Sequence &s1; + const Sequence &s2; + + protected: + ConcatenatedSequence(const Sequence &seq1, const Sequence &seq2) : + s1(seq1), s2(seq2) { + } + + public: + + virtual ~ConcatenatedSequence() { + } + + unsigned int size() const override { + return s1.size() + s2.size(); + } + + const Sequence &getLeft() const { + return s1; + } + + const Sequence &getRight() const { + return s2; + } + + void getExpectedSequence(std::vector &into) const override { + s1.getExpectedSequence(into); + s2.getExpectedSequence(into); + } + + virtual void getInvolvedMocks(std::vector &into) const override { + s1.getInvolvedMocks(into); + s2.getInvolvedMocks(into); + } + + friend inline ConcatenatedSequence operator+(const Sequence &s1, const Sequence &s2); + }; + + class RepeatedSequence : public virtual Sequence { + private: + const Sequence &_s; + const int times; + + protected: + RepeatedSequence(const Sequence &s, const int t) : + _s(s), times(t) { + } + + public: + + ~RepeatedSequence() { + } + + unsigned int size() const override { + return _s.size() * times; + } + + friend inline RepeatedSequence operator*(const Sequence &s, int times); + + friend inline RepeatedSequence operator*(int times, const Sequence &s); + + void getInvolvedMocks(std::vector &into) const override { + _s.getInvolvedMocks(into); + } + + void getExpectedSequence(std::vector &into) const override { + for (int i = 0; i < times; i++) + _s.getExpectedSequence(into); + } + + int getTimes() const { + return times; + } + + const Sequence &getSequence() const { + return _s; + } + }; + + inline ConcatenatedSequence operator+(const Sequence &s1, const Sequence &s2) { + return ConcatenatedSequence(s1, s2); + } + + inline RepeatedSequence operator*(const Sequence &s, int times) { + if (times <= 0) + throw std::invalid_argument("times"); + return RepeatedSequence(s, times); + } + + inline RepeatedSequence operator*(int times, const Sequence &s) { + if (times <= 0) + throw std::invalid_argument("times"); + return RepeatedSequence(s, times); + } + +} + +namespace fakeit { + + enum class VerificationType { + Exact, AtLeast, NoMoreInvocations + }; + + enum class UnexpectedType { + Unmocked, Unmatched + }; + + struct VerificationEvent { + + VerificationEvent(VerificationType aVerificationType) : + _verificationType(aVerificationType), _line(0) { + } + + virtual ~VerificationEvent() = default; + + VerificationType verificationType() const { + return _verificationType; + } + + void setFileInfo(std::string aFile, int aLine, std::string aCallingMethod) { + _file = aFile; + _callingMethod = aCallingMethod; + _line = aLine; + } + + std::string file() const { + return _file; + } + + int line() const { + return _line; + } + + const std::string &callingMethod() const { + return _callingMethod; + } + + private: + VerificationType _verificationType; + std::string _file; + int _line; + std::string _callingMethod; + }; + + struct NoMoreInvocationsVerificationEvent : public VerificationEvent { + + ~NoMoreInvocationsVerificationEvent() = default; + + NoMoreInvocationsVerificationEvent( + std::vector &allTheIvocations, + std::vector &anUnverifedIvocations) : + VerificationEvent(VerificationType::NoMoreInvocations), + _allIvocations(allTheIvocations), + _unverifedIvocations(anUnverifedIvocations) { + } + + const std::vector &allIvocations() const { + return _allIvocations; + } + + const std::vector &unverifedIvocations() const { + return _unverifedIvocations; + } + + private: + const std::vector _allIvocations; + const std::vector _unverifedIvocations; + }; + + struct SequenceVerificationEvent : public VerificationEvent { + + ~SequenceVerificationEvent() = default; + + SequenceVerificationEvent(VerificationType aVerificationType, + std::vector &anExpectedPattern, + std::vector &anActualSequence, + int anExpectedCount, + int anActualCount) : + VerificationEvent(aVerificationType), + _expectedPattern(anExpectedPattern), + _actualSequence(anActualSequence), + _expectedCount(anExpectedCount), + _actualCount(anActualCount) + { + } + + const std::vector &expectedPattern() const { + return _expectedPattern; + } + + const std::vector &actualSequence() const { + return _actualSequence; + } + + int expectedCount() const { + return _expectedCount; + } + + int actualCount() const { + return _actualCount; + } + + private: + const std::vector _expectedPattern; + const std::vector _actualSequence; + const int _expectedCount; + const int _actualCount; + }; + + struct UnexpectedMethodCallEvent { + UnexpectedMethodCallEvent(UnexpectedType unexpectedType, const Invocation &invocation) : + _unexpectedType(unexpectedType), _invocation(invocation) { + } + + const Invocation &getInvocation() const { + return _invocation; + } + + UnexpectedType getUnexpectedType() const { + return _unexpectedType; + } + + const UnexpectedType _unexpectedType; + const Invocation &_invocation; + }; + +} + +namespace fakeit { + + struct VerificationEventHandler { + virtual void handle(const SequenceVerificationEvent &e) = 0; + + virtual void handle(const NoMoreInvocationsVerificationEvent &e) = 0; + }; + + struct EventHandler : public VerificationEventHandler { + using VerificationEventHandler::handle; + + virtual void handle(const UnexpectedMethodCallEvent &e) = 0; + }; + +} +#include +#include + +namespace fakeit { + + struct UnexpectedMethodCallEvent; + struct SequenceVerificationEvent; + struct NoMoreInvocationsVerificationEvent; + + struct EventFormatter { + + virtual std::string format(const fakeit::UnexpectedMethodCallEvent &e) = 0; + + virtual std::string format(const fakeit::SequenceVerificationEvent &e) = 0; + + virtual std::string format(const fakeit::NoMoreInvocationsVerificationEvent &e) = 0; + + }; + +} + +namespace fakeit { + + struct FakeitContext : public EventHandler, protected EventFormatter { + + virtual ~FakeitContext() = default; + + void handle(const UnexpectedMethodCallEvent &e) override { + fireEvent(e); + auto &eh = getTestingFrameworkAdapter(); + eh.handle(e); + } + + void handle(const SequenceVerificationEvent &e) override { + fireEvent(e); + auto &eh = getTestingFrameworkAdapter(); + return eh.handle(e); + } + + void handle(const NoMoreInvocationsVerificationEvent &e) override { + fireEvent(e); + auto &eh = getTestingFrameworkAdapter(); + return eh.handle(e); + } + + std::string format(const UnexpectedMethodCallEvent &e) override { + auto &eventFormatter = getEventFormatter(); + return eventFormatter.format(e); + } + + std::string format(const SequenceVerificationEvent &e) override { + auto &eventFormatter = getEventFormatter(); + return eventFormatter.format(e); + } + + std::string format(const NoMoreInvocationsVerificationEvent &e) override { + auto &eventFormatter = getEventFormatter(); + return eventFormatter.format(e); + } + + void addEventHandler(EventHandler &eventListener) { + _eventListeners.push_back(&eventListener); + } + + void clearEventHandlers() { + _eventListeners.clear(); + } + + protected: + virtual EventHandler &getTestingFrameworkAdapter() = 0; + + virtual EventFormatter &getEventFormatter() = 0; + + private: + std::vector _eventListeners; + + void fireEvent(const NoMoreInvocationsVerificationEvent &evt) { + for (auto listener : _eventListeners) + listener->handle(evt); + } + + void fireEvent(const UnexpectedMethodCallEvent &evt) { + for (auto listener : _eventListeners) + listener->handle(evt); + } + + void fireEvent(const SequenceVerificationEvent &evt) { + for (auto listener : _eventListeners) + listener->handle(evt); + } + + }; + +} +#include +#include + +namespace fakeit { + + struct DefaultEventFormatter : public EventFormatter { + + virtual std::string format(const UnexpectedMethodCallEvent &e) override { + std::ostringstream out; + out << "Unexpected method invocation: "; + out << e.getInvocation().format() << std::endl; + if (UnexpectedType::Unmatched == e.getUnexpectedType()) { + out << " Could not find Any recorded behavior to support this method call."; + } else { + out << " An unmocked method was invoked. All used virtual methods must be stubbed!"; + } + return out.str(); + } + + + virtual std::string format(const SequenceVerificationEvent &e) override { + std::ostringstream out; + out << "Verification error" << std::endl; + + out << "Expected pattern: "; + const std::vector expectedPattern = e.expectedPattern(); + out << formatExpectedPattern(expectedPattern) << std::endl; + + out << "Expected matches: "; + formatExpectedCount(out, e.verificationType(), e.expectedCount()); + out << std::endl; + + out << "Actual matches : " << e.actualCount() << std::endl; + + auto actualSequence = e.actualSequence(); + out << "Actual sequence : total of " << actualSequence.size() << " actual invocations"; + if (actualSequence.size() == 0) { + out << "."; + } else { + out << ":" << std::endl; + } + formatInvocationList(out, actualSequence); + + return out.str(); + } + + virtual std::string format(const NoMoreInvocationsVerificationEvent &e) override { + std::ostringstream out; + out << "Verification error" << std::endl; + out << "Expected no more invocations!! But the following unverified invocations were found:" << std::endl; + formatInvocationList(out, e.unverifedIvocations()); + return out.str(); + } + + private: + + static std::string formatSequence(const Sequence &val) { + const ConcatenatedSequence *cs = dynamic_cast(&val); + if (cs) { + return format(*cs); + } + const RepeatedSequence *rs = dynamic_cast(&val); + if (rs) { + return format(*rs); + } + + + std::vector vec; + val.getExpectedSequence(vec); + return vec[0]->format(); + } + + static void formatExpectedCount(std::ostream &out, fakeit::VerificationType verificationType, + int expectedCount) { + if (verificationType == fakeit::VerificationType::Exact) + out << "exactly "; + + if (verificationType == fakeit::VerificationType::AtLeast) + out << "at least "; + + out << expectedCount; + } + + static void formatInvocationList(std::ostream &out, const std::vector &actualSequence) { + size_t max_size = actualSequence.size(); + if (max_size > 5) + max_size = 5; + + for (unsigned int i = 0; i < max_size; i++) { + out << " "; + auto invocation = actualSequence[i]; + out << invocation->format(); + if (i < max_size - 1) + out << std::endl; + } + + if (actualSequence.size() > max_size) + out << std::endl << " ..."; + } + + static std::string format(const ConcatenatedSequence &val) { + std::ostringstream out; + out << formatSequence(val.getLeft()) << " + " << formatSequence(val.getRight()); + return out.str(); + } + + static std::string format(const RepeatedSequence &val) { + std::ostringstream out; + const ConcatenatedSequence *cs = dynamic_cast(&val.getSequence()); + const RepeatedSequence *rs = dynamic_cast(&val.getSequence()); + if (rs || cs) + out << '('; + out << formatSequence(val.getSequence()); + if (rs || cs) + out << ')'; + + out << " * " << val.getTimes(); + return out.str(); + } + + static std::string formatExpectedPattern(const std::vector &expectedPattern) { + std::string expectedPatternStr; + for (unsigned int i = 0; i < expectedPattern.size(); i++) { + Sequence *s = expectedPattern[i]; + expectedPatternStr += formatSequence(*s); + if (i < expectedPattern.size() - 1) + expectedPatternStr += " ... "; + } + return expectedPatternStr; + } + }; +} +namespace fakeit { + + struct FakeitException { + std::exception err; + + virtual ~FakeitException() = default; + + virtual std::string what() const = 0; + + friend std::ostream &operator<<(std::ostream &os, const FakeitException &val) { + os << val.what(); + return os; + } + }; + + + + + struct UnexpectedMethodCallException : public FakeitException { + + UnexpectedMethodCallException(std::string format) : + _format(format) { + } + + virtual std::string what() const override { + return _format; + } + + private: + std::string _format; + }; + +} + +namespace fakeit { + + struct DefaultEventLogger : public fakeit::EventHandler { + + DefaultEventLogger(EventFormatter &formatter) : _formatter(formatter), _out(std::cout) { } + + virtual void handle(const UnexpectedMethodCallEvent &e) override { + _out << _formatter.format(e) << std::endl; + } + + virtual void handle(const SequenceVerificationEvent &e) override { + _out << _formatter.format(e) << std::endl; + } + + virtual void handle(const NoMoreInvocationsVerificationEvent &e) override { + _out << _formatter.format(e) << std::endl; + } + + private: + EventFormatter &_formatter; + std::ostream &_out; + }; + +} + +namespace fakeit { + + class AbstractFakeit : public FakeitContext { + public: + virtual ~AbstractFakeit() = default; + + protected: + + virtual fakeit::EventHandler &accessTestingFrameworkAdapter() = 0; + + virtual EventFormatter &accessEventFormatter() = 0; + }; + + class DefaultFakeit : public AbstractFakeit { + DefaultEventFormatter _formatter; + fakeit::EventFormatter *_customFormatter; + fakeit::EventHandler *_testingFrameworkAdapter; + + public: + + DefaultFakeit() : _formatter(), + _customFormatter(nullptr), + _testingFrameworkAdapter(nullptr) { + } + + virtual ~DefaultFakeit() = default; + + void setCustomEventFormatter(fakeit::EventFormatter &customEventFormatter) { + _customFormatter = &customEventFormatter; + } + + void resetCustomEventFormatter() { + _customFormatter = nullptr; + } + + void setTestingFrameworkAdapter(fakeit::EventHandler &testingFrameforkAdapter) { + _testingFrameworkAdapter = &testingFrameforkAdapter; + } + + void resetTestingFrameworkAdapter() { + _testingFrameworkAdapter = nullptr; + } + + protected: + + fakeit::EventHandler &getTestingFrameworkAdapter() override { + if (_testingFrameworkAdapter) + return *_testingFrameworkAdapter; + return accessTestingFrameworkAdapter(); + } + + EventFormatter &getEventFormatter() override { + if (_customFormatter) + return *_customFormatter; + return accessEventFormatter(); + } + + EventFormatter &accessEventFormatter() override { + return _formatter; + } + + }; +} +#include + +#define BOOST_TEST_TOOL_IMPL2( func, P, check_descr, TL, CT, F, L ) \ + ::boost::test_tools::tt_detail::func( \ + P, \ + ::boost::unit_test::lazy_ostream::instance() << check_descr, \ + F, \ + static_cast(L), \ + ::boost::test_tools::tt_detail::TL, \ + ::boost::test_tools::tt_detail::CT , 0) \ + +namespace fakeit { + + struct BoostTestAdapter : public EventHandler { + virtual ~BoostTestAdapter() = default; + + BoostTestAdapter(EventFormatter &formatter) + : _formatter(formatter) { + } + + virtual void handle(const UnexpectedMethodCallEvent &evt) override { + std::string format = _formatter.format(evt); + throw format; + } + + virtual void handle(const SequenceVerificationEvent &evt) override { + std::string format = _formatter.format(evt); + boost_fail(evt.file(), evt.line(), format); + } + + virtual void handle(const NoMoreInvocationsVerificationEvent &evt) override { + std::string format = _formatter.format(evt); + boost_fail(evt.file(), evt.line(), format); + } + + + private: + EventFormatter &_formatter; + + void boost_fail(std::string file, int line, std::string format){ + +#if (BOOST_VERSION >= 105900) + ::boost::test_tools::tt_detail:: + BOOST_PP_IF(2, report_assertion, 2) ( + false, + BOOST_TEST_LAZY_MSG(format), + file, + static_cast(line), + ::boost::test_tools::tt_detail::REQUIRE, + ::boost::test_tools::tt_detail::CHECK_MSG, + 0); +#else + ::boost::test_tools::tt_detail::check_impl( + false, + ::boost::unit_test::lazy_ostream::instance() << format, + file, + static_cast(line), + ::boost::test_tools::tt_detail::CHECK, + ::boost::test_tools::tt_detail::CHECK_MSG, + 0); +#endif + + } + }; + + class BoostTestFakeit : public DefaultFakeit { + + public: + virtual ~BoostTestFakeit() = default; + + BoostTestFakeit(): _boostTestAdapter(*this) { + } + + static BoostTestFakeit &getInstance() { + static BoostTestFakeit instance; + return instance; + } + + protected: + + fakeit::EventHandler &accessTestingFrameworkAdapter() override { + return _boostTestAdapter; + } + + private: + + BoostTestAdapter _boostTestAdapter; + }; +} + +static fakeit::DefaultFakeit& Fakeit = fakeit::BoostTestFakeit::getInstance(); + + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +namespace fakeit { + + struct VirtualOffsetSelector { + + unsigned int offset; + + virtual unsigned int offset0(int) { + return offset = 0; + } + + virtual unsigned int offset1(int) { + return offset = 1; + } + + virtual unsigned int offset2(int) { + return offset = 2; + } + + virtual unsigned int offset3(int) { + return offset = 3; + } + + virtual unsigned int offset4(int) { + return offset = 4; + } + + virtual unsigned int offset5(int) { + return offset = 5; + } + + virtual unsigned int offset6(int) { + return offset = 6; + } + + virtual unsigned int offset7(int) { + return offset = 7; + } + + virtual unsigned int offset8(int) { + return offset = 8; + } + + virtual unsigned int offset9(int) { + return offset = 9; + } + + virtual unsigned int offset10(int) { + return offset = 10; + } + + virtual unsigned int offset11(int) { + return offset = 11; + } + + virtual unsigned int offset12(int) { + return offset = 12; + } + + virtual unsigned int offset13(int) { + return offset = 13; + } + + virtual unsigned int offset14(int) { + return offset = 14; + } + + virtual unsigned int offset15(int) { + return offset = 15; + } + + virtual unsigned int offset16(int) { + return offset = 16; + } + + virtual unsigned int offset17(int) { + return offset = 17; + } + + virtual unsigned int offset18(int) { + return offset = 18; + } + + virtual unsigned int offset19(int) { + return offset = 19; + } + + virtual unsigned int offset20(int) { + return offset = 20; + } + + virtual unsigned int offset21(int) { + return offset = 21; + } + + virtual unsigned int offset22(int) { + return offset = 22; + } + + virtual unsigned int offset23(int) { + return offset = 23; + } + + virtual unsigned int offset24(int) { + return offset = 24; + } + + virtual unsigned int offset25(int) { + return offset = 25; + } + + virtual unsigned int offset26(int) { + return offset = 26; + } + + virtual unsigned int offset27(int) { + return offset = 27; + } + + virtual unsigned int offset28(int) { + return offset = 28; + } + + virtual unsigned int offset29(int) { + return offset = 29; + } + + virtual unsigned int offset30(int) { + return offset = 30; + } + + virtual unsigned int offset31(int) { + return offset = 31; + } + + virtual unsigned int offset32(int) { + return offset = 32; + } + + virtual unsigned int offset33(int) { + return offset = 33; + } + + virtual unsigned int offset34(int) { + return offset = 34; + } + + virtual unsigned int offset35(int) { + return offset = 35; + } + + virtual unsigned int offset36(int) { + return offset = 36; + } + + virtual unsigned int offset37(int) { + return offset = 37; + } + + virtual unsigned int offset38(int) { + return offset = 38; + } + + virtual unsigned int offset39(int) { + return offset = 39; + } + + virtual unsigned int offset40(int) { + return offset = 40; + } + + virtual unsigned int offset41(int) { + return offset = 41; + } + + virtual unsigned int offset42(int) { + return offset = 42; + } + + virtual unsigned int offset43(int) { + return offset = 43; + } + + virtual unsigned int offset44(int) { + return offset = 44; + } + + virtual unsigned int offset45(int) { + return offset = 45; + } + + virtual unsigned int offset46(int) { + return offset = 46; + } + + virtual unsigned int offset47(int) { + return offset = 47; + } + + virtual unsigned int offset48(int) { + return offset = 48; + } + + virtual unsigned int offset49(int) { + return offset = 49; + } + + virtual unsigned int offset50(int) { + return offset = 50; + } + + virtual unsigned int offset51(int) { + return offset = 51; + } + + virtual unsigned int offset52(int) { + return offset = 52; + } + + virtual unsigned int offset53(int) { + return offset = 53; + } + + virtual unsigned int offset54(int) { + return offset = 54; + } + + virtual unsigned int offset55(int) { + return offset = 55; + } + + virtual unsigned int offset56(int) { + return offset = 56; + } + + virtual unsigned int offset57(int) { + return offset = 57; + } + + virtual unsigned int offset58(int) { + return offset = 58; + } + + virtual unsigned int offset59(int) { + return offset = 59; + } + + virtual unsigned int offset60(int) { + return offset = 60; + } + + virtual unsigned int offset61(int) { + return offset = 61; + } + + virtual unsigned int offset62(int) { + return offset = 62; + } + + virtual unsigned int offset63(int) { + return offset = 63; + } + + virtual unsigned int offset64(int) { + return offset = 64; + } + + virtual unsigned int offset65(int) { + return offset = 65; + } + + virtual unsigned int offset66(int) { + return offset = 66; + } + + virtual unsigned int offset67(int) { + return offset = 67; + } + + virtual unsigned int offset68(int) { + return offset = 68; + } + + virtual unsigned int offset69(int) { + return offset = 69; + } + + virtual unsigned int offset70(int) { + return offset = 70; + } + + virtual unsigned int offset71(int) { + return offset = 71; + } + + virtual unsigned int offset72(int) { + return offset = 72; + } + + virtual unsigned int offset73(int) { + return offset = 73; + } + + virtual unsigned int offset74(int) { + return offset = 74; + } + + virtual unsigned int offset75(int) { + return offset = 75; + } + + virtual unsigned int offset76(int) { + return offset = 76; + } + + virtual unsigned int offset77(int) { + return offset = 77; + } + + virtual unsigned int offset78(int) { + return offset = 78; + } + + virtual unsigned int offset79(int) { + return offset = 79; + } + + virtual unsigned int offset80(int) { + return offset = 80; + } + + virtual unsigned int offset81(int) { + return offset = 81; + } + + virtual unsigned int offset82(int) { + return offset = 82; + } + + virtual unsigned int offset83(int) { + return offset = 83; + } + + virtual unsigned int offset84(int) { + return offset = 84; + } + + virtual unsigned int offset85(int) { + return offset = 85; + } + + virtual unsigned int offset86(int) { + return offset = 86; + } + + virtual unsigned int offset87(int) { + return offset = 87; + } + + virtual unsigned int offset88(int) { + return offset = 88; + } + + virtual unsigned int offset89(int) { + return offset = 89; + } + + virtual unsigned int offset90(int) { + return offset = 90; + } + + virtual unsigned int offset91(int) { + return offset = 91; + } + + virtual unsigned int offset92(int) { + return offset = 92; + } + + virtual unsigned int offset93(int) { + return offset = 93; + } + + virtual unsigned int offset94(int) { + return offset = 94; + } + + virtual unsigned int offset95(int) { + return offset = 95; + } + + virtual unsigned int offset96(int) { + return offset = 96; + } + + virtual unsigned int offset97(int) { + return offset = 97; + } + + virtual unsigned int offset98(int) { + return offset = 98; + } + + virtual unsigned int offset99(int) { + return offset = 99; + } + + virtual unsigned int offset100(int) { + return offset = 100; + } + + virtual unsigned int offset101(int) { + return offset = 101; + } + + virtual unsigned int offset102(int) { + return offset = 102; + } + + virtual unsigned int offset103(int) { + return offset = 103; + } + + virtual unsigned int offset104(int) { + return offset = 104; + } + + virtual unsigned int offset105(int) { + return offset = 105; + } + + virtual unsigned int offset106(int) { + return offset = 106; + } + + virtual unsigned int offset107(int) { + return offset = 107; + } + + virtual unsigned int offset108(int) { + return offset = 108; + } + + virtual unsigned int offset109(int) { + return offset = 109; + } + + virtual unsigned int offset110(int) { + return offset = 110; + } + + virtual unsigned int offset111(int) { + return offset = 111; + } + + virtual unsigned int offset112(int) { + return offset = 112; + } + + virtual unsigned int offset113(int) { + return offset = 113; + } + + virtual unsigned int offset114(int) { + return offset = 114; + } + + virtual unsigned int offset115(int) { + return offset = 115; + } + + virtual unsigned int offset116(int) { + return offset = 116; + } + + virtual unsigned int offset117(int) { + return offset = 117; + } + + virtual unsigned int offset118(int) { + return offset = 118; + } + + virtual unsigned int offset119(int) { + return offset = 119; + } + + virtual unsigned int offset120(int) { + return offset = 120; + } + + virtual unsigned int offset121(int) { + return offset = 121; + } + + virtual unsigned int offset122(int) { + return offset = 122; + } + + virtual unsigned int offset123(int) { + return offset = 123; + } + + virtual unsigned int offset124(int) { + return offset = 124; + } + + virtual unsigned int offset125(int) { + return offset = 125; + } + + virtual unsigned int offset126(int) { + return offset = 126; + } + + virtual unsigned int offset127(int) { + return offset = 127; + } + + virtual unsigned int offset128(int) { + return offset = 128; + } + + virtual unsigned int offset129(int) { + return offset = 129; + } + + virtual unsigned int offset130(int) { + return offset = 130; + } + + virtual unsigned int offset131(int) { + return offset = 131; + } + + virtual unsigned int offset132(int) { + return offset = 132; + } + + virtual unsigned int offset133(int) { + return offset = 133; + } + + virtual unsigned int offset134(int) { + return offset = 134; + } + + virtual unsigned int offset135(int) { + return offset = 135; + } + + virtual unsigned int offset136(int) { + return offset = 136; + } + + virtual unsigned int offset137(int) { + return offset = 137; + } + + virtual unsigned int offset138(int) { + return offset = 138; + } + + virtual unsigned int offset139(int) { + return offset = 139; + } + + virtual unsigned int offset140(int) { + return offset = 140; + } + + virtual unsigned int offset141(int) { + return offset = 141; + } + + virtual unsigned int offset142(int) { + return offset = 142; + } + + virtual unsigned int offset143(int) { + return offset = 143; + } + + virtual unsigned int offset144(int) { + return offset = 144; + } + + virtual unsigned int offset145(int) { + return offset = 145; + } + + virtual unsigned int offset146(int) { + return offset = 146; + } + + virtual unsigned int offset147(int) { + return offset = 147; + } + + virtual unsigned int offset148(int) { + return offset = 148; + } + + virtual unsigned int offset149(int) { + return offset = 149; + } + + virtual unsigned int offset150(int) { + return offset = 150; + } + + virtual unsigned int offset151(int) { + return offset = 151; + } + + virtual unsigned int offset152(int) { + return offset = 152; + } + + virtual unsigned int offset153(int) { + return offset = 153; + } + + virtual unsigned int offset154(int) { + return offset = 154; + } + + virtual unsigned int offset155(int) { + return offset = 155; + } + + virtual unsigned int offset156(int) { + return offset = 156; + } + + virtual unsigned int offset157(int) { + return offset = 157; + } + + virtual unsigned int offset158(int) { + return offset = 158; + } + + virtual unsigned int offset159(int) { + return offset = 159; + } + + virtual unsigned int offset160(int) { + return offset = 160; + } + + virtual unsigned int offset161(int) { + return offset = 161; + } + + virtual unsigned int offset162(int) { + return offset = 162; + } + + virtual unsigned int offset163(int) { + return offset = 163; + } + + virtual unsigned int offset164(int) { + return offset = 164; + } + + virtual unsigned int offset165(int) { + return offset = 165; + } + + virtual unsigned int offset166(int) { + return offset = 166; + } + + virtual unsigned int offset167(int) { + return offset = 167; + } + + virtual unsigned int offset168(int) { + return offset = 168; + } + + virtual unsigned int offset169(int) { + return offset = 169; + } + + virtual unsigned int offset170(int) { + return offset = 170; + } + + virtual unsigned int offset171(int) { + return offset = 171; + } + + virtual unsigned int offset172(int) { + return offset = 172; + } + + virtual unsigned int offset173(int) { + return offset = 173; + } + + virtual unsigned int offset174(int) { + return offset = 174; + } + + virtual unsigned int offset175(int) { + return offset = 175; + } + + virtual unsigned int offset176(int) { + return offset = 176; + } + + virtual unsigned int offset177(int) { + return offset = 177; + } + + virtual unsigned int offset178(int) { + return offset = 178; + } + + virtual unsigned int offset179(int) { + return offset = 179; + } + + virtual unsigned int offset180(int) { + return offset = 180; + } + + virtual unsigned int offset181(int) { + return offset = 181; + } + + virtual unsigned int offset182(int) { + return offset = 182; + } + + virtual unsigned int offset183(int) { + return offset = 183; + } + + virtual unsigned int offset184(int) { + return offset = 184; + } + + virtual unsigned int offset185(int) { + return offset = 185; + } + + virtual unsigned int offset186(int) { + return offset = 186; + } + + virtual unsigned int offset187(int) { + return offset = 187; + } + + virtual unsigned int offset188(int) { + return offset = 188; + } + + virtual unsigned int offset189(int) { + return offset = 189; + } + + virtual unsigned int offset190(int) { + return offset = 190; + } + + virtual unsigned int offset191(int) { + return offset = 191; + } + + virtual unsigned int offset192(int) { + return offset = 192; + } + + virtual unsigned int offset193(int) { + return offset = 193; + } + + virtual unsigned int offset194(int) { + return offset = 194; + } + + virtual unsigned int offset195(int) { + return offset = 195; + } + + virtual unsigned int offset196(int) { + return offset = 196; + } + + virtual unsigned int offset197(int) { + return offset = 197; + } + + virtual unsigned int offset198(int) { + return offset = 198; + } + + virtual unsigned int offset199(int) { + return offset = 199; + } + + + virtual unsigned int offset200(int) { + return offset = 200; + } + + virtual unsigned int offset201(int) { + return offset = 201; + } + + virtual unsigned int offset202(int) { + return offset = 202; + } + + virtual unsigned int offset203(int) { + return offset = 203; + } + + virtual unsigned int offset204(int) { + return offset = 204; + } + + virtual unsigned int offset205(int) { + return offset = 205; + } + + virtual unsigned int offset206(int) { + return offset = 206; + } + + virtual unsigned int offset207(int) { + return offset = 207; + } + + virtual unsigned int offset208(int) { + return offset = 208; + } + + virtual unsigned int offset209(int) { + return offset = 209; + } + + virtual unsigned int offset210(int) { + return offset = 210; + } + + virtual unsigned int offset211(int) { + return offset = 211; + } + + virtual unsigned int offset212(int) { + return offset = 212; + } + + virtual unsigned int offset213(int) { + return offset = 213; + } + + virtual unsigned int offset214(int) { + return offset = 214; + } + + virtual unsigned int offset215(int) { + return offset = 215; + } + + virtual unsigned int offset216(int) { + return offset = 216; + } + + virtual unsigned int offset217(int) { + return offset = 217; + } + + virtual unsigned int offset218(int) { + return offset = 218; + } + + virtual unsigned int offset219(int) { + return offset = 219; + } + + virtual unsigned int offset220(int) { + return offset = 220; + } + + virtual unsigned int offset221(int) { + return offset = 221; + } + + virtual unsigned int offset222(int) { + return offset = 222; + } + + virtual unsigned int offset223(int) { + return offset = 223; + } + + virtual unsigned int offset224(int) { + return offset = 224; + } + + virtual unsigned int offset225(int) { + return offset = 225; + } + + virtual unsigned int offset226(int) { + return offset = 226; + } + + virtual unsigned int offset227(int) { + return offset = 227; + } + + virtual unsigned int offset228(int) { + return offset = 228; + } + + virtual unsigned int offset229(int) { + return offset = 229; + } + + virtual unsigned int offset230(int) { + return offset = 230; + } + + virtual unsigned int offset231(int) { + return offset = 231; + } + + virtual unsigned int offset232(int) { + return offset = 232; + } + + virtual unsigned int offset233(int) { + return offset = 233; + } + + virtual unsigned int offset234(int) { + return offset = 234; + } + + virtual unsigned int offset235(int) { + return offset = 235; + } + + virtual unsigned int offset236(int) { + return offset = 236; + } + + virtual unsigned int offset237(int) { + return offset = 237; + } + + virtual unsigned int offset238(int) { + return offset = 238; + } + + virtual unsigned int offset239(int) { + return offset = 239; + } + + virtual unsigned int offset240(int) { + return offset = 240; + } + + virtual unsigned int offset241(int) { + return offset = 241; + } + + virtual unsigned int offset242(int) { + return offset = 242; + } + + virtual unsigned int offset243(int) { + return offset = 243; + } + + virtual unsigned int offset244(int) { + return offset = 244; + } + + virtual unsigned int offset245(int) { + return offset = 245; + } + + virtual unsigned int offset246(int) { + return offset = 246; + } + + virtual unsigned int offset247(int) { + return offset = 247; + } + + virtual unsigned int offset248(int) { + return offset = 248; + } + + virtual unsigned int offset249(int) { + return offset = 249; + } + + virtual unsigned int offset250(int) { + return offset = 250; + } + + virtual unsigned int offset251(int) { + return offset = 251; + } + + virtual unsigned int offset252(int) { + return offset = 252; + } + + virtual unsigned int offset253(int) { + return offset = 253; + } + + virtual unsigned int offset254(int) { + return offset = 254; + } + + virtual unsigned int offset255(int) { + return offset = 255; + } + + virtual unsigned int offset256(int) { + return offset = 256; + } + + virtual unsigned int offset257(int) { + return offset = 257; + } + + virtual unsigned int offset258(int) { + return offset = 258; + } + + virtual unsigned int offset259(int) { + return offset = 259; + } + + virtual unsigned int offset260(int) { + return offset = 260; + } + + virtual unsigned int offset261(int) { + return offset = 261; + } + + virtual unsigned int offset262(int) { + return offset = 262; + } + + virtual unsigned int offset263(int) { + return offset = 263; + } + + virtual unsigned int offset264(int) { + return offset = 264; + } + + virtual unsigned int offset265(int) { + return offset = 265; + } + + virtual unsigned int offset266(int) { + return offset = 266; + } + + virtual unsigned int offset267(int) { + return offset = 267; + } + + virtual unsigned int offset268(int) { + return offset = 268; + } + + virtual unsigned int offset269(int) { + return offset = 269; + } + + virtual unsigned int offset270(int) { + return offset = 270; + } + + virtual unsigned int offset271(int) { + return offset = 271; + } + + virtual unsigned int offset272(int) { + return offset = 272; + } + + virtual unsigned int offset273(int) { + return offset = 273; + } + + virtual unsigned int offset274(int) { + return offset = 274; + } + + virtual unsigned int offset275(int) { + return offset = 275; + } + + virtual unsigned int offset276(int) { + return offset = 276; + } + + virtual unsigned int offset277(int) { + return offset = 277; + } + + virtual unsigned int offset278(int) { + return offset = 278; + } + + virtual unsigned int offset279(int) { + return offset = 279; + } + + virtual unsigned int offset280(int) { + return offset = 280; + } + + virtual unsigned int offset281(int) { + return offset = 281; + } + + virtual unsigned int offset282(int) { + return offset = 282; + } + + virtual unsigned int offset283(int) { + return offset = 283; + } + + virtual unsigned int offset284(int) { + return offset = 284; + } + + virtual unsigned int offset285(int) { + return offset = 285; + } + + virtual unsigned int offset286(int) { + return offset = 286; + } + + virtual unsigned int offset287(int) { + return offset = 287; + } + + virtual unsigned int offset288(int) { + return offset = 288; + } + + virtual unsigned int offset289(int) { + return offset = 289; + } + + virtual unsigned int offset290(int) { + return offset = 290; + } + + virtual unsigned int offset291(int) { + return offset = 291; + } + + virtual unsigned int offset292(int) { + return offset = 292; + } + + virtual unsigned int offset293(int) { + return offset = 293; + } + + virtual unsigned int offset294(int) { + return offset = 294; + } + + virtual unsigned int offset295(int) { + return offset = 295; + } + + virtual unsigned int offset296(int) { + return offset = 296; + } + + virtual unsigned int offset297(int) { + return offset = 297; + } + + virtual unsigned int offset298(int) { + return offset = 298; + } + + virtual unsigned int offset299(int) { + return offset = 299; + } + + + virtual unsigned int offset300(int) { + return offset = 300; + } + + virtual unsigned int offset301(int) { + return offset = 301; + } + + virtual unsigned int offset302(int) { + return offset = 302; + } + + virtual unsigned int offset303(int) { + return offset = 303; + } + + virtual unsigned int offset304(int) { + return offset = 304; + } + + virtual unsigned int offset305(int) { + return offset = 305; + } + + virtual unsigned int offset306(int) { + return offset = 306; + } + + virtual unsigned int offset307(int) { + return offset = 307; + } + + virtual unsigned int offset308(int) { + return offset = 308; + } + + virtual unsigned int offset309(int) { + return offset = 309; + } + + virtual unsigned int offset310(int) { + return offset = 310; + } + + virtual unsigned int offset311(int) { + return offset = 311; + } + + virtual unsigned int offset312(int) { + return offset = 312; + } + + virtual unsigned int offset313(int) { + return offset = 313; + } + + virtual unsigned int offset314(int) { + return offset = 314; + } + + virtual unsigned int offset315(int) { + return offset = 315; + } + + virtual unsigned int offset316(int) { + return offset = 316; + } + + virtual unsigned int offset317(int) { + return offset = 317; + } + + virtual unsigned int offset318(int) { + return offset = 318; + } + + virtual unsigned int offset319(int) { + return offset = 319; + } + + virtual unsigned int offset320(int) { + return offset = 320; + } + + virtual unsigned int offset321(int) { + return offset = 321; + } + + virtual unsigned int offset322(int) { + return offset = 322; + } + + virtual unsigned int offset323(int) { + return offset = 323; + } + + virtual unsigned int offset324(int) { + return offset = 324; + } + + virtual unsigned int offset325(int) { + return offset = 325; + } + + virtual unsigned int offset326(int) { + return offset = 326; + } + + virtual unsigned int offset327(int) { + return offset = 327; + } + + virtual unsigned int offset328(int) { + return offset = 328; + } + + virtual unsigned int offset329(int) { + return offset = 329; + } + + virtual unsigned int offset330(int) { + return offset = 330; + } + + virtual unsigned int offset331(int) { + return offset = 331; + } + + virtual unsigned int offset332(int) { + return offset = 332; + } + + virtual unsigned int offset333(int) { + return offset = 333; + } + + virtual unsigned int offset334(int) { + return offset = 334; + } + + virtual unsigned int offset335(int) { + return offset = 335; + } + + virtual unsigned int offset336(int) { + return offset = 336; + } + + virtual unsigned int offset337(int) { + return offset = 337; + } + + virtual unsigned int offset338(int) { + return offset = 338; + } + + virtual unsigned int offset339(int) { + return offset = 339; + } + + virtual unsigned int offset340(int) { + return offset = 340; + } + + virtual unsigned int offset341(int) { + return offset = 341; + } + + virtual unsigned int offset342(int) { + return offset = 342; + } + + virtual unsigned int offset343(int) { + return offset = 343; + } + + virtual unsigned int offset344(int) { + return offset = 344; + } + + virtual unsigned int offset345(int) { + return offset = 345; + } + + virtual unsigned int offset346(int) { + return offset = 346; + } + + virtual unsigned int offset347(int) { + return offset = 347; + } + + virtual unsigned int offset348(int) { + return offset = 348; + } + + virtual unsigned int offset349(int) { + return offset = 349; + } + + virtual unsigned int offset350(int) { + return offset = 350; + } + + virtual unsigned int offset351(int) { + return offset = 351; + } + + virtual unsigned int offset352(int) { + return offset = 352; + } + + virtual unsigned int offset353(int) { + return offset = 353; + } + + virtual unsigned int offset354(int) { + return offset = 354; + } + + virtual unsigned int offset355(int) { + return offset = 355; + } + + virtual unsigned int offset356(int) { + return offset = 356; + } + + virtual unsigned int offset357(int) { + return offset = 357; + } + + virtual unsigned int offset358(int) { + return offset = 358; + } + + virtual unsigned int offset359(int) { + return offset = 359; + } + + virtual unsigned int offset360(int) { + return offset = 360; + } + + virtual unsigned int offset361(int) { + return offset = 361; + } + + virtual unsigned int offset362(int) { + return offset = 362; + } + + virtual unsigned int offset363(int) { + return offset = 363; + } + + virtual unsigned int offset364(int) { + return offset = 364; + } + + virtual unsigned int offset365(int) { + return offset = 365; + } + + virtual unsigned int offset366(int) { + return offset = 366; + } + + virtual unsigned int offset367(int) { + return offset = 367; + } + + virtual unsigned int offset368(int) { + return offset = 368; + } + + virtual unsigned int offset369(int) { + return offset = 369; + } + + virtual unsigned int offset370(int) { + return offset = 370; + } + + virtual unsigned int offset371(int) { + return offset = 371; + } + + virtual unsigned int offset372(int) { + return offset = 372; + } + + virtual unsigned int offset373(int) { + return offset = 373; + } + + virtual unsigned int offset374(int) { + return offset = 374; + } + + virtual unsigned int offset375(int) { + return offset = 375; + } + + virtual unsigned int offset376(int) { + return offset = 376; + } + + virtual unsigned int offset377(int) { + return offset = 377; + } + + virtual unsigned int offset378(int) { + return offset = 378; + } + + virtual unsigned int offset379(int) { + return offset = 379; + } + + virtual unsigned int offset380(int) { + return offset = 380; + } + + virtual unsigned int offset381(int) { + return offset = 381; + } + + virtual unsigned int offset382(int) { + return offset = 382; + } + + virtual unsigned int offset383(int) { + return offset = 383; + } + + virtual unsigned int offset384(int) { + return offset = 384; + } + + virtual unsigned int offset385(int) { + return offset = 385; + } + + virtual unsigned int offset386(int) { + return offset = 386; + } + + virtual unsigned int offset387(int) { + return offset = 387; + } + + virtual unsigned int offset388(int) { + return offset = 388; + } + + virtual unsigned int offset389(int) { + return offset = 389; + } + + virtual unsigned int offset390(int) { + return offset = 390; + } + + virtual unsigned int offset391(int) { + return offset = 391; + } + + virtual unsigned int offset392(int) { + return offset = 392; + } + + virtual unsigned int offset393(int) { + return offset = 393; + } + + virtual unsigned int offset394(int) { + return offset = 394; + } + + virtual unsigned int offset395(int) { + return offset = 395; + } + + virtual unsigned int offset396(int) { + return offset = 396; + } + + virtual unsigned int offset397(int) { + return offset = 397; + } + + virtual unsigned int offset398(int) { + return offset = 398; + } + + virtual unsigned int offset399(int) { + return offset = 399; + } + + + virtual unsigned int offset400(int) { + return offset = 400; + } + + virtual unsigned int offset401(int) { + return offset = 401; + } + + virtual unsigned int offset402(int) { + return offset = 402; + } + + virtual unsigned int offset403(int) { + return offset = 403; + } + + virtual unsigned int offset404(int) { + return offset = 404; + } + + virtual unsigned int offset405(int) { + return offset = 405; + } + + virtual unsigned int offset406(int) { + return offset = 406; + } + + virtual unsigned int offset407(int) { + return offset = 407; + } + + virtual unsigned int offset408(int) { + return offset = 408; + } + + virtual unsigned int offset409(int) { + return offset = 409; + } + + virtual unsigned int offset410(int) { + return offset = 410; + } + + virtual unsigned int offset411(int) { + return offset = 411; + } + + virtual unsigned int offset412(int) { + return offset = 412; + } + + virtual unsigned int offset413(int) { + return offset = 413; + } + + virtual unsigned int offset414(int) { + return offset = 414; + } + + virtual unsigned int offset415(int) { + return offset = 415; + } + + virtual unsigned int offset416(int) { + return offset = 416; + } + + virtual unsigned int offset417(int) { + return offset = 417; + } + + virtual unsigned int offset418(int) { + return offset = 418; + } + + virtual unsigned int offset419(int) { + return offset = 419; + } + + virtual unsigned int offset420(int) { + return offset = 420; + } + + virtual unsigned int offset421(int) { + return offset = 421; + } + + virtual unsigned int offset422(int) { + return offset = 422; + } + + virtual unsigned int offset423(int) { + return offset = 423; + } + + virtual unsigned int offset424(int) { + return offset = 424; + } + + virtual unsigned int offset425(int) { + return offset = 425; + } + + virtual unsigned int offset426(int) { + return offset = 426; + } + + virtual unsigned int offset427(int) { + return offset = 427; + } + + virtual unsigned int offset428(int) { + return offset = 428; + } + + virtual unsigned int offset429(int) { + return offset = 429; + } + + virtual unsigned int offset430(int) { + return offset = 430; + } + + virtual unsigned int offset431(int) { + return offset = 431; + } + + virtual unsigned int offset432(int) { + return offset = 432; + } + + virtual unsigned int offset433(int) { + return offset = 433; + } + + virtual unsigned int offset434(int) { + return offset = 434; + } + + virtual unsigned int offset435(int) { + return offset = 435; + } + + virtual unsigned int offset436(int) { + return offset = 436; + } + + virtual unsigned int offset437(int) { + return offset = 437; + } + + virtual unsigned int offset438(int) { + return offset = 438; + } + + virtual unsigned int offset439(int) { + return offset = 439; + } + + virtual unsigned int offset440(int) { + return offset = 440; + } + + virtual unsigned int offset441(int) { + return offset = 441; + } + + virtual unsigned int offset442(int) { + return offset = 442; + } + + virtual unsigned int offset443(int) { + return offset = 443; + } + + virtual unsigned int offset444(int) { + return offset = 444; + } + + virtual unsigned int offset445(int) { + return offset = 445; + } + + virtual unsigned int offset446(int) { + return offset = 446; + } + + virtual unsigned int offset447(int) { + return offset = 447; + } + + virtual unsigned int offset448(int) { + return offset = 448; + } + + virtual unsigned int offset449(int) { + return offset = 449; + } + + virtual unsigned int offset450(int) { + return offset = 450; + } + + virtual unsigned int offset451(int) { + return offset = 451; + } + + virtual unsigned int offset452(int) { + return offset = 452; + } + + virtual unsigned int offset453(int) { + return offset = 453; + } + + virtual unsigned int offset454(int) { + return offset = 454; + } + + virtual unsigned int offset455(int) { + return offset = 455; + } + + virtual unsigned int offset456(int) { + return offset = 456; + } + + virtual unsigned int offset457(int) { + return offset = 457; + } + + virtual unsigned int offset458(int) { + return offset = 458; + } + + virtual unsigned int offset459(int) { + return offset = 459; + } + + virtual unsigned int offset460(int) { + return offset = 460; + } + + virtual unsigned int offset461(int) { + return offset = 461; + } + + virtual unsigned int offset462(int) { + return offset = 462; + } + + virtual unsigned int offset463(int) { + return offset = 463; + } + + virtual unsigned int offset464(int) { + return offset = 464; + } + + virtual unsigned int offset465(int) { + return offset = 465; + } + + virtual unsigned int offset466(int) { + return offset = 466; + } + + virtual unsigned int offset467(int) { + return offset = 467; + } + + virtual unsigned int offset468(int) { + return offset = 468; + } + + virtual unsigned int offset469(int) { + return offset = 469; + } + + virtual unsigned int offset470(int) { + return offset = 470; + } + + virtual unsigned int offset471(int) { + return offset = 471; + } + + virtual unsigned int offset472(int) { + return offset = 472; + } + + virtual unsigned int offset473(int) { + return offset = 473; + } + + virtual unsigned int offset474(int) { + return offset = 474; + } + + virtual unsigned int offset475(int) { + return offset = 475; + } + + virtual unsigned int offset476(int) { + return offset = 476; + } + + virtual unsigned int offset477(int) { + return offset = 477; + } + + virtual unsigned int offset478(int) { + return offset = 478; + } + + virtual unsigned int offset479(int) { + return offset = 479; + } + + virtual unsigned int offset480(int) { + return offset = 480; + } + + virtual unsigned int offset481(int) { + return offset = 481; + } + + virtual unsigned int offset482(int) { + return offset = 482; + } + + virtual unsigned int offset483(int) { + return offset = 483; + } + + virtual unsigned int offset484(int) { + return offset = 484; + } + + virtual unsigned int offset485(int) { + return offset = 485; + } + + virtual unsigned int offset486(int) { + return offset = 486; + } + + virtual unsigned int offset487(int) { + return offset = 487; + } + + virtual unsigned int offset488(int) { + return offset = 488; + } + + virtual unsigned int offset489(int) { + return offset = 489; + } + + virtual unsigned int offset490(int) { + return offset = 490; + } + + virtual unsigned int offset491(int) { + return offset = 491; + } + + virtual unsigned int offset492(int) { + return offset = 492; + } + + virtual unsigned int offset493(int) { + return offset = 493; + } + + virtual unsigned int offset494(int) { + return offset = 494; + } + + virtual unsigned int offset495(int) { + return offset = 495; + } + + virtual unsigned int offset496(int) { + return offset = 496; + } + + virtual unsigned int offset497(int) { + return offset = 497; + } + + virtual unsigned int offset498(int) { + return offset = 498; + } + + virtual unsigned int offset499(int) { + return offset = 499; + } + + + virtual unsigned int offset500(int) { + return offset = 500; + } + + virtual unsigned int offset501(int) { + return offset = 501; + } + + virtual unsigned int offset502(int) { + return offset = 502; + } + + virtual unsigned int offset503(int) { + return offset = 503; + } + + virtual unsigned int offset504(int) { + return offset = 504; + } + + virtual unsigned int offset505(int) { + return offset = 505; + } + + virtual unsigned int offset506(int) { + return offset = 506; + } + + virtual unsigned int offset507(int) { + return offset = 507; + } + + virtual unsigned int offset508(int) { + return offset = 508; + } + + virtual unsigned int offset509(int) { + return offset = 509; + } + + virtual unsigned int offset510(int) { + return offset = 510; + } + + virtual unsigned int offset511(int) { + return offset = 511; + } + + virtual unsigned int offset512(int) { + return offset = 512; + } + + virtual unsigned int offset513(int) { + return offset = 513; + } + + virtual unsigned int offset514(int) { + return offset = 514; + } + + virtual unsigned int offset515(int) { + return offset = 515; + } + + virtual unsigned int offset516(int) { + return offset = 516; + } + + virtual unsigned int offset517(int) { + return offset = 517; + } + + virtual unsigned int offset518(int) { + return offset = 518; + } + + virtual unsigned int offset519(int) { + return offset = 519; + } + + virtual unsigned int offset520(int) { + return offset = 520; + } + + virtual unsigned int offset521(int) { + return offset = 521; + } + + virtual unsigned int offset522(int) { + return offset = 522; + } + + virtual unsigned int offset523(int) { + return offset = 523; + } + + virtual unsigned int offset524(int) { + return offset = 524; + } + + virtual unsigned int offset525(int) { + return offset = 525; + } + + virtual unsigned int offset526(int) { + return offset = 526; + } + + virtual unsigned int offset527(int) { + return offset = 527; + } + + virtual unsigned int offset528(int) { + return offset = 528; + } + + virtual unsigned int offset529(int) { + return offset = 529; + } + + virtual unsigned int offset530(int) { + return offset = 530; + } + + virtual unsigned int offset531(int) { + return offset = 531; + } + + virtual unsigned int offset532(int) { + return offset = 532; + } + + virtual unsigned int offset533(int) { + return offset = 533; + } + + virtual unsigned int offset534(int) { + return offset = 534; + } + + virtual unsigned int offset535(int) { + return offset = 535; + } + + virtual unsigned int offset536(int) { + return offset = 536; + } + + virtual unsigned int offset537(int) { + return offset = 537; + } + + virtual unsigned int offset538(int) { + return offset = 538; + } + + virtual unsigned int offset539(int) { + return offset = 539; + } + + virtual unsigned int offset540(int) { + return offset = 540; + } + + virtual unsigned int offset541(int) { + return offset = 541; + } + + virtual unsigned int offset542(int) { + return offset = 542; + } + + virtual unsigned int offset543(int) { + return offset = 543; + } + + virtual unsigned int offset544(int) { + return offset = 544; + } + + virtual unsigned int offset545(int) { + return offset = 545; + } + + virtual unsigned int offset546(int) { + return offset = 546; + } + + virtual unsigned int offset547(int) { + return offset = 547; + } + + virtual unsigned int offset548(int) { + return offset = 548; + } + + virtual unsigned int offset549(int) { + return offset = 549; + } + + virtual unsigned int offset550(int) { + return offset = 550; + } + + virtual unsigned int offset551(int) { + return offset = 551; + } + + virtual unsigned int offset552(int) { + return offset = 552; + } + + virtual unsigned int offset553(int) { + return offset = 553; + } + + virtual unsigned int offset554(int) { + return offset = 554; + } + + virtual unsigned int offset555(int) { + return offset = 555; + } + + virtual unsigned int offset556(int) { + return offset = 556; + } + + virtual unsigned int offset557(int) { + return offset = 557; + } + + virtual unsigned int offset558(int) { + return offset = 558; + } + + virtual unsigned int offset559(int) { + return offset = 559; + } + + virtual unsigned int offset560(int) { + return offset = 560; + } + + virtual unsigned int offset561(int) { + return offset = 561; + } + + virtual unsigned int offset562(int) { + return offset = 562; + } + + virtual unsigned int offset563(int) { + return offset = 563; + } + + virtual unsigned int offset564(int) { + return offset = 564; + } + + virtual unsigned int offset565(int) { + return offset = 565; + } + + virtual unsigned int offset566(int) { + return offset = 566; + } + + virtual unsigned int offset567(int) { + return offset = 567; + } + + virtual unsigned int offset568(int) { + return offset = 568; + } + + virtual unsigned int offset569(int) { + return offset = 569; + } + + virtual unsigned int offset570(int) { + return offset = 570; + } + + virtual unsigned int offset571(int) { + return offset = 571; + } + + virtual unsigned int offset572(int) { + return offset = 572; + } + + virtual unsigned int offset573(int) { + return offset = 573; + } + + virtual unsigned int offset574(int) { + return offset = 574; + } + + virtual unsigned int offset575(int) { + return offset = 575; + } + + virtual unsigned int offset576(int) { + return offset = 576; + } + + virtual unsigned int offset577(int) { + return offset = 577; + } + + virtual unsigned int offset578(int) { + return offset = 578; + } + + virtual unsigned int offset579(int) { + return offset = 579; + } + + virtual unsigned int offset580(int) { + return offset = 580; + } + + virtual unsigned int offset581(int) { + return offset = 581; + } + + virtual unsigned int offset582(int) { + return offset = 582; + } + + virtual unsigned int offset583(int) { + return offset = 583; + } + + virtual unsigned int offset584(int) { + return offset = 584; + } + + virtual unsigned int offset585(int) { + return offset = 585; + } + + virtual unsigned int offset586(int) { + return offset = 586; + } + + virtual unsigned int offset587(int) { + return offset = 587; + } + + virtual unsigned int offset588(int) { + return offset = 588; + } + + virtual unsigned int offset589(int) { + return offset = 589; + } + + virtual unsigned int offset590(int) { + return offset = 590; + } + + virtual unsigned int offset591(int) { + return offset = 591; + } + + virtual unsigned int offset592(int) { + return offset = 592; + } + + virtual unsigned int offset593(int) { + return offset = 593; + } + + virtual unsigned int offset594(int) { + return offset = 594; + } + + virtual unsigned int offset595(int) { + return offset = 595; + } + + virtual unsigned int offset596(int) { + return offset = 596; + } + + virtual unsigned int offset597(int) { + return offset = 597; + } + + virtual unsigned int offset598(int) { + return offset = 598; + } + + virtual unsigned int offset599(int) { + return offset = 599; + } + + + virtual unsigned int offset600(int) { + return offset = 600; + } + + virtual unsigned int offset601(int) { + return offset = 601; + } + + virtual unsigned int offset602(int) { + return offset = 602; + } + + virtual unsigned int offset603(int) { + return offset = 603; + } + + virtual unsigned int offset604(int) { + return offset = 604; + } + + virtual unsigned int offset605(int) { + return offset = 605; + } + + virtual unsigned int offset606(int) { + return offset = 606; + } + + virtual unsigned int offset607(int) { + return offset = 607; + } + + virtual unsigned int offset608(int) { + return offset = 608; + } + + virtual unsigned int offset609(int) { + return offset = 609; + } + + virtual unsigned int offset610(int) { + return offset = 610; + } + + virtual unsigned int offset611(int) { + return offset = 611; + } + + virtual unsigned int offset612(int) { + return offset = 612; + } + + virtual unsigned int offset613(int) { + return offset = 613; + } + + virtual unsigned int offset614(int) { + return offset = 614; + } + + virtual unsigned int offset615(int) { + return offset = 615; + } + + virtual unsigned int offset616(int) { + return offset = 616; + } + + virtual unsigned int offset617(int) { + return offset = 617; + } + + virtual unsigned int offset618(int) { + return offset = 618; + } + + virtual unsigned int offset619(int) { + return offset = 619; + } + + virtual unsigned int offset620(int) { + return offset = 620; + } + + virtual unsigned int offset621(int) { + return offset = 621; + } + + virtual unsigned int offset622(int) { + return offset = 622; + } + + virtual unsigned int offset623(int) { + return offset = 623; + } + + virtual unsigned int offset624(int) { + return offset = 624; + } + + virtual unsigned int offset625(int) { + return offset = 625; + } + + virtual unsigned int offset626(int) { + return offset = 626; + } + + virtual unsigned int offset627(int) { + return offset = 627; + } + + virtual unsigned int offset628(int) { + return offset = 628; + } + + virtual unsigned int offset629(int) { + return offset = 629; + } + + virtual unsigned int offset630(int) { + return offset = 630; + } + + virtual unsigned int offset631(int) { + return offset = 631; + } + + virtual unsigned int offset632(int) { + return offset = 632; + } + + virtual unsigned int offset633(int) { + return offset = 633; + } + + virtual unsigned int offset634(int) { + return offset = 634; + } + + virtual unsigned int offset635(int) { + return offset = 635; + } + + virtual unsigned int offset636(int) { + return offset = 636; + } + + virtual unsigned int offset637(int) { + return offset = 637; + } + + virtual unsigned int offset638(int) { + return offset = 638; + } + + virtual unsigned int offset639(int) { + return offset = 639; + } + + virtual unsigned int offset640(int) { + return offset = 640; + } + + virtual unsigned int offset641(int) { + return offset = 641; + } + + virtual unsigned int offset642(int) { + return offset = 642; + } + + virtual unsigned int offset643(int) { + return offset = 643; + } + + virtual unsigned int offset644(int) { + return offset = 644; + } + + virtual unsigned int offset645(int) { + return offset = 645; + } + + virtual unsigned int offset646(int) { + return offset = 646; + } + + virtual unsigned int offset647(int) { + return offset = 647; + } + + virtual unsigned int offset648(int) { + return offset = 648; + } + + virtual unsigned int offset649(int) { + return offset = 649; + } + + virtual unsigned int offset650(int) { + return offset = 650; + } + + virtual unsigned int offset651(int) { + return offset = 651; + } + + virtual unsigned int offset652(int) { + return offset = 652; + } + + virtual unsigned int offset653(int) { + return offset = 653; + } + + virtual unsigned int offset654(int) { + return offset = 654; + } + + virtual unsigned int offset655(int) { + return offset = 655; + } + + virtual unsigned int offset656(int) { + return offset = 656; + } + + virtual unsigned int offset657(int) { + return offset = 657; + } + + virtual unsigned int offset658(int) { + return offset = 658; + } + + virtual unsigned int offset659(int) { + return offset = 659; + } + + virtual unsigned int offset660(int) { + return offset = 660; + } + + virtual unsigned int offset661(int) { + return offset = 661; + } + + virtual unsigned int offset662(int) { + return offset = 662; + } + + virtual unsigned int offset663(int) { + return offset = 663; + } + + virtual unsigned int offset664(int) { + return offset = 664; + } + + virtual unsigned int offset665(int) { + return offset = 665; + } + + virtual unsigned int offset666(int) { + return offset = 666; + } + + virtual unsigned int offset667(int) { + return offset = 667; + } + + virtual unsigned int offset668(int) { + return offset = 668; + } + + virtual unsigned int offset669(int) { + return offset = 669; + } + + virtual unsigned int offset670(int) { + return offset = 670; + } + + virtual unsigned int offset671(int) { + return offset = 671; + } + + virtual unsigned int offset672(int) { + return offset = 672; + } + + virtual unsigned int offset673(int) { + return offset = 673; + } + + virtual unsigned int offset674(int) { + return offset = 674; + } + + virtual unsigned int offset675(int) { + return offset = 675; + } + + virtual unsigned int offset676(int) { + return offset = 676; + } + + virtual unsigned int offset677(int) { + return offset = 677; + } + + virtual unsigned int offset678(int) { + return offset = 678; + } + + virtual unsigned int offset679(int) { + return offset = 679; + } + + virtual unsigned int offset680(int) { + return offset = 680; + } + + virtual unsigned int offset681(int) { + return offset = 681; + } + + virtual unsigned int offset682(int) { + return offset = 682; + } + + virtual unsigned int offset683(int) { + return offset = 683; + } + + virtual unsigned int offset684(int) { + return offset = 684; + } + + virtual unsigned int offset685(int) { + return offset = 685; + } + + virtual unsigned int offset686(int) { + return offset = 686; + } + + virtual unsigned int offset687(int) { + return offset = 687; + } + + virtual unsigned int offset688(int) { + return offset = 688; + } + + virtual unsigned int offset689(int) { + return offset = 689; + } + + virtual unsigned int offset690(int) { + return offset = 690; + } + + virtual unsigned int offset691(int) { + return offset = 691; + } + + virtual unsigned int offset692(int) { + return offset = 692; + } + + virtual unsigned int offset693(int) { + return offset = 693; + } + + virtual unsigned int offset694(int) { + return offset = 694; + } + + virtual unsigned int offset695(int) { + return offset = 695; + } + + virtual unsigned int offset696(int) { + return offset = 696; + } + + virtual unsigned int offset697(int) { + return offset = 697; + } + + virtual unsigned int offset698(int) { + return offset = 698; + } + + virtual unsigned int offset699(int) { + return offset = 699; + } + + + virtual unsigned int offset700(int) { + return offset = 700; + } + + virtual unsigned int offset701(int) { + return offset = 701; + } + + virtual unsigned int offset702(int) { + return offset = 702; + } + + virtual unsigned int offset703(int) { + return offset = 703; + } + + virtual unsigned int offset704(int) { + return offset = 704; + } + + virtual unsigned int offset705(int) { + return offset = 705; + } + + virtual unsigned int offset706(int) { + return offset = 706; + } + + virtual unsigned int offset707(int) { + return offset = 707; + } + + virtual unsigned int offset708(int) { + return offset = 708; + } + + virtual unsigned int offset709(int) { + return offset = 709; + } + + virtual unsigned int offset710(int) { + return offset = 710; + } + + virtual unsigned int offset711(int) { + return offset = 711; + } + + virtual unsigned int offset712(int) { + return offset = 712; + } + + virtual unsigned int offset713(int) { + return offset = 713; + } + + virtual unsigned int offset714(int) { + return offset = 714; + } + + virtual unsigned int offset715(int) { + return offset = 715; + } + + virtual unsigned int offset716(int) { + return offset = 716; + } + + virtual unsigned int offset717(int) { + return offset = 717; + } + + virtual unsigned int offset718(int) { + return offset = 718; + } + + virtual unsigned int offset719(int) { + return offset = 719; + } + + virtual unsigned int offset720(int) { + return offset = 720; + } + + virtual unsigned int offset721(int) { + return offset = 721; + } + + virtual unsigned int offset722(int) { + return offset = 722; + } + + virtual unsigned int offset723(int) { + return offset = 723; + } + + virtual unsigned int offset724(int) { + return offset = 724; + } + + virtual unsigned int offset725(int) { + return offset = 725; + } + + virtual unsigned int offset726(int) { + return offset = 726; + } + + virtual unsigned int offset727(int) { + return offset = 727; + } + + virtual unsigned int offset728(int) { + return offset = 728; + } + + virtual unsigned int offset729(int) { + return offset = 729; + } + + virtual unsigned int offset730(int) { + return offset = 730; + } + + virtual unsigned int offset731(int) { + return offset = 731; + } + + virtual unsigned int offset732(int) { + return offset = 732; + } + + virtual unsigned int offset733(int) { + return offset = 733; + } + + virtual unsigned int offset734(int) { + return offset = 734; + } + + virtual unsigned int offset735(int) { + return offset = 735; + } + + virtual unsigned int offset736(int) { + return offset = 736; + } + + virtual unsigned int offset737(int) { + return offset = 737; + } + + virtual unsigned int offset738(int) { + return offset = 738; + } + + virtual unsigned int offset739(int) { + return offset = 739; + } + + virtual unsigned int offset740(int) { + return offset = 740; + } + + virtual unsigned int offset741(int) { + return offset = 741; + } + + virtual unsigned int offset742(int) { + return offset = 742; + } + + virtual unsigned int offset743(int) { + return offset = 743; + } + + virtual unsigned int offset744(int) { + return offset = 744; + } + + virtual unsigned int offset745(int) { + return offset = 745; + } + + virtual unsigned int offset746(int) { + return offset = 746; + } + + virtual unsigned int offset747(int) { + return offset = 747; + } + + virtual unsigned int offset748(int) { + return offset = 748; + } + + virtual unsigned int offset749(int) { + return offset = 749; + } + + virtual unsigned int offset750(int) { + return offset = 750; + } + + virtual unsigned int offset751(int) { + return offset = 751; + } + + virtual unsigned int offset752(int) { + return offset = 752; + } + + virtual unsigned int offset753(int) { + return offset = 753; + } + + virtual unsigned int offset754(int) { + return offset = 754; + } + + virtual unsigned int offset755(int) { + return offset = 755; + } + + virtual unsigned int offset756(int) { + return offset = 756; + } + + virtual unsigned int offset757(int) { + return offset = 757; + } + + virtual unsigned int offset758(int) { + return offset = 758; + } + + virtual unsigned int offset759(int) { + return offset = 759; + } + + virtual unsigned int offset760(int) { + return offset = 760; + } + + virtual unsigned int offset761(int) { + return offset = 761; + } + + virtual unsigned int offset762(int) { + return offset = 762; + } + + virtual unsigned int offset763(int) { + return offset = 763; + } + + virtual unsigned int offset764(int) { + return offset = 764; + } + + virtual unsigned int offset765(int) { + return offset = 765; + } + + virtual unsigned int offset766(int) { + return offset = 766; + } + + virtual unsigned int offset767(int) { + return offset = 767; + } + + virtual unsigned int offset768(int) { + return offset = 768; + } + + virtual unsigned int offset769(int) { + return offset = 769; + } + + virtual unsigned int offset770(int) { + return offset = 770; + } + + virtual unsigned int offset771(int) { + return offset = 771; + } + + virtual unsigned int offset772(int) { + return offset = 772; + } + + virtual unsigned int offset773(int) { + return offset = 773; + } + + virtual unsigned int offset774(int) { + return offset = 774; + } + + virtual unsigned int offset775(int) { + return offset = 775; + } + + virtual unsigned int offset776(int) { + return offset = 776; + } + + virtual unsigned int offset777(int) { + return offset = 777; + } + + virtual unsigned int offset778(int) { + return offset = 778; + } + + virtual unsigned int offset779(int) { + return offset = 779; + } + + virtual unsigned int offset780(int) { + return offset = 780; + } + + virtual unsigned int offset781(int) { + return offset = 781; + } + + virtual unsigned int offset782(int) { + return offset = 782; + } + + virtual unsigned int offset783(int) { + return offset = 783; + } + + virtual unsigned int offset784(int) { + return offset = 784; + } + + virtual unsigned int offset785(int) { + return offset = 785; + } + + virtual unsigned int offset786(int) { + return offset = 786; + } + + virtual unsigned int offset787(int) { + return offset = 787; + } + + virtual unsigned int offset788(int) { + return offset = 788; + } + + virtual unsigned int offset789(int) { + return offset = 789; + } + + virtual unsigned int offset790(int) { + return offset = 790; + } + + virtual unsigned int offset791(int) { + return offset = 791; + } + + virtual unsigned int offset792(int) { + return offset = 792; + } + + virtual unsigned int offset793(int) { + return offset = 793; + } + + virtual unsigned int offset794(int) { + return offset = 794; + } + + virtual unsigned int offset795(int) { + return offset = 795; + } + + virtual unsigned int offset796(int) { + return offset = 796; + } + + virtual unsigned int offset797(int) { + return offset = 797; + } + + virtual unsigned int offset798(int) { + return offset = 798; + } + + virtual unsigned int offset799(int) { + return offset = 799; + } + + + virtual unsigned int offset800(int) { + return offset = 800; + } + + virtual unsigned int offset801(int) { + return offset = 801; + } + + virtual unsigned int offset802(int) { + return offset = 802; + } + + virtual unsigned int offset803(int) { + return offset = 803; + } + + virtual unsigned int offset804(int) { + return offset = 804; + } + + virtual unsigned int offset805(int) { + return offset = 805; + } + + virtual unsigned int offset806(int) { + return offset = 806; + } + + virtual unsigned int offset807(int) { + return offset = 807; + } + + virtual unsigned int offset808(int) { + return offset = 808; + } + + virtual unsigned int offset809(int) { + return offset = 809; + } + + virtual unsigned int offset810(int) { + return offset = 810; + } + + virtual unsigned int offset811(int) { + return offset = 811; + } + + virtual unsigned int offset812(int) { + return offset = 812; + } + + virtual unsigned int offset813(int) { + return offset = 813; + } + + virtual unsigned int offset814(int) { + return offset = 814; + } + + virtual unsigned int offset815(int) { + return offset = 815; + } + + virtual unsigned int offset816(int) { + return offset = 816; + } + + virtual unsigned int offset817(int) { + return offset = 817; + } + + virtual unsigned int offset818(int) { + return offset = 818; + } + + virtual unsigned int offset819(int) { + return offset = 819; + } + + virtual unsigned int offset820(int) { + return offset = 820; + } + + virtual unsigned int offset821(int) { + return offset = 821; + } + + virtual unsigned int offset822(int) { + return offset = 822; + } + + virtual unsigned int offset823(int) { + return offset = 823; + } + + virtual unsigned int offset824(int) { + return offset = 824; + } + + virtual unsigned int offset825(int) { + return offset = 825; + } + + virtual unsigned int offset826(int) { + return offset = 826; + } + + virtual unsigned int offset827(int) { + return offset = 827; + } + + virtual unsigned int offset828(int) { + return offset = 828; + } + + virtual unsigned int offset829(int) { + return offset = 829; + } + + virtual unsigned int offset830(int) { + return offset = 830; + } + + virtual unsigned int offset831(int) { + return offset = 831; + } + + virtual unsigned int offset832(int) { + return offset = 832; + } + + virtual unsigned int offset833(int) { + return offset = 833; + } + + virtual unsigned int offset834(int) { + return offset = 834; + } + + virtual unsigned int offset835(int) { + return offset = 835; + } + + virtual unsigned int offset836(int) { + return offset = 836; + } + + virtual unsigned int offset837(int) { + return offset = 837; + } + + virtual unsigned int offset838(int) { + return offset = 838; + } + + virtual unsigned int offset839(int) { + return offset = 839; + } + + virtual unsigned int offset840(int) { + return offset = 840; + } + + virtual unsigned int offset841(int) { + return offset = 841; + } + + virtual unsigned int offset842(int) { + return offset = 842; + } + + virtual unsigned int offset843(int) { + return offset = 843; + } + + virtual unsigned int offset844(int) { + return offset = 844; + } + + virtual unsigned int offset845(int) { + return offset = 845; + } + + virtual unsigned int offset846(int) { + return offset = 846; + } + + virtual unsigned int offset847(int) { + return offset = 847; + } + + virtual unsigned int offset848(int) { + return offset = 848; + } + + virtual unsigned int offset849(int) { + return offset = 849; + } + + virtual unsigned int offset850(int) { + return offset = 850; + } + + virtual unsigned int offset851(int) { + return offset = 851; + } + + virtual unsigned int offset852(int) { + return offset = 852; + } + + virtual unsigned int offset853(int) { + return offset = 853; + } + + virtual unsigned int offset854(int) { + return offset = 854; + } + + virtual unsigned int offset855(int) { + return offset = 855; + } + + virtual unsigned int offset856(int) { + return offset = 856; + } + + virtual unsigned int offset857(int) { + return offset = 857; + } + + virtual unsigned int offset858(int) { + return offset = 858; + } + + virtual unsigned int offset859(int) { + return offset = 859; + } + + virtual unsigned int offset860(int) { + return offset = 860; + } + + virtual unsigned int offset861(int) { + return offset = 861; + } + + virtual unsigned int offset862(int) { + return offset = 862; + } + + virtual unsigned int offset863(int) { + return offset = 863; + } + + virtual unsigned int offset864(int) { + return offset = 864; + } + + virtual unsigned int offset865(int) { + return offset = 865; + } + + virtual unsigned int offset866(int) { + return offset = 866; + } + + virtual unsigned int offset867(int) { + return offset = 867; + } + + virtual unsigned int offset868(int) { + return offset = 868; + } + + virtual unsigned int offset869(int) { + return offset = 869; + } + + virtual unsigned int offset870(int) { + return offset = 870; + } + + virtual unsigned int offset871(int) { + return offset = 871; + } + + virtual unsigned int offset872(int) { + return offset = 872; + } + + virtual unsigned int offset873(int) { + return offset = 873; + } + + virtual unsigned int offset874(int) { + return offset = 874; + } + + virtual unsigned int offset875(int) { + return offset = 875; + } + + virtual unsigned int offset876(int) { + return offset = 876; + } + + virtual unsigned int offset877(int) { + return offset = 877; + } + + virtual unsigned int offset878(int) { + return offset = 878; + } + + virtual unsigned int offset879(int) { + return offset = 879; + } + + virtual unsigned int offset880(int) { + return offset = 880; + } + + virtual unsigned int offset881(int) { + return offset = 881; + } + + virtual unsigned int offset882(int) { + return offset = 882; + } + + virtual unsigned int offset883(int) { + return offset = 883; + } + + virtual unsigned int offset884(int) { + return offset = 884; + } + + virtual unsigned int offset885(int) { + return offset = 885; + } + + virtual unsigned int offset886(int) { + return offset = 886; + } + + virtual unsigned int offset887(int) { + return offset = 887; + } + + virtual unsigned int offset888(int) { + return offset = 888; + } + + virtual unsigned int offset889(int) { + return offset = 889; + } + + virtual unsigned int offset890(int) { + return offset = 890; + } + + virtual unsigned int offset891(int) { + return offset = 891; + } + + virtual unsigned int offset892(int) { + return offset = 892; + } + + virtual unsigned int offset893(int) { + return offset = 893; + } + + virtual unsigned int offset894(int) { + return offset = 894; + } + + virtual unsigned int offset895(int) { + return offset = 895; + } + + virtual unsigned int offset896(int) { + return offset = 896; + } + + virtual unsigned int offset897(int) { + return offset = 897; + } + + virtual unsigned int offset898(int) { + return offset = 898; + } + + virtual unsigned int offset899(int) { + return offset = 899; + } + + + virtual unsigned int offset900(int) { + return offset = 900; + } + + virtual unsigned int offset901(int) { + return offset = 901; + } + + virtual unsigned int offset902(int) { + return offset = 902; + } + + virtual unsigned int offset903(int) { + return offset = 903; + } + + virtual unsigned int offset904(int) { + return offset = 904; + } + + virtual unsigned int offset905(int) { + return offset = 905; + } + + virtual unsigned int offset906(int) { + return offset = 906; + } + + virtual unsigned int offset907(int) { + return offset = 907; + } + + virtual unsigned int offset908(int) { + return offset = 908; + } + + virtual unsigned int offset909(int) { + return offset = 909; + } + + virtual unsigned int offset910(int) { + return offset = 910; + } + + virtual unsigned int offset911(int) { + return offset = 911; + } + + virtual unsigned int offset912(int) { + return offset = 912; + } + + virtual unsigned int offset913(int) { + return offset = 913; + } + + virtual unsigned int offset914(int) { + return offset = 914; + } + + virtual unsigned int offset915(int) { + return offset = 915; + } + + virtual unsigned int offset916(int) { + return offset = 916; + } + + virtual unsigned int offset917(int) { + return offset = 917; + } + + virtual unsigned int offset918(int) { + return offset = 918; + } + + virtual unsigned int offset919(int) { + return offset = 919; + } + + virtual unsigned int offset920(int) { + return offset = 920; + } + + virtual unsigned int offset921(int) { + return offset = 921; + } + + virtual unsigned int offset922(int) { + return offset = 922; + } + + virtual unsigned int offset923(int) { + return offset = 923; + } + + virtual unsigned int offset924(int) { + return offset = 924; + } + + virtual unsigned int offset925(int) { + return offset = 925; + } + + virtual unsigned int offset926(int) { + return offset = 926; + } + + virtual unsigned int offset927(int) { + return offset = 927; + } + + virtual unsigned int offset928(int) { + return offset = 928; + } + + virtual unsigned int offset929(int) { + return offset = 929; + } + + virtual unsigned int offset930(int) { + return offset = 930; + } + + virtual unsigned int offset931(int) { + return offset = 931; + } + + virtual unsigned int offset932(int) { + return offset = 932; + } + + virtual unsigned int offset933(int) { + return offset = 933; + } + + virtual unsigned int offset934(int) { + return offset = 934; + } + + virtual unsigned int offset935(int) { + return offset = 935; + } + + virtual unsigned int offset936(int) { + return offset = 936; + } + + virtual unsigned int offset937(int) { + return offset = 937; + } + + virtual unsigned int offset938(int) { + return offset = 938; + } + + virtual unsigned int offset939(int) { + return offset = 939; + } + + virtual unsigned int offset940(int) { + return offset = 940; + } + + virtual unsigned int offset941(int) { + return offset = 941; + } + + virtual unsigned int offset942(int) { + return offset = 942; + } + + virtual unsigned int offset943(int) { + return offset = 943; + } + + virtual unsigned int offset944(int) { + return offset = 944; + } + + virtual unsigned int offset945(int) { + return offset = 945; + } + + virtual unsigned int offset946(int) { + return offset = 946; + } + + virtual unsigned int offset947(int) { + return offset = 947; + } + + virtual unsigned int offset948(int) { + return offset = 948; + } + + virtual unsigned int offset949(int) { + return offset = 949; + } + + virtual unsigned int offset950(int) { + return offset = 950; + } + + virtual unsigned int offset951(int) { + return offset = 951; + } + + virtual unsigned int offset952(int) { + return offset = 952; + } + + virtual unsigned int offset953(int) { + return offset = 953; + } + + virtual unsigned int offset954(int) { + return offset = 954; + } + + virtual unsigned int offset955(int) { + return offset = 955; + } + + virtual unsigned int offset956(int) { + return offset = 956; + } + + virtual unsigned int offset957(int) { + return offset = 957; + } + + virtual unsigned int offset958(int) { + return offset = 958; + } + + virtual unsigned int offset959(int) { + return offset = 959; + } + + virtual unsigned int offset960(int) { + return offset = 960; + } + + virtual unsigned int offset961(int) { + return offset = 961; + } + + virtual unsigned int offset962(int) { + return offset = 962; + } + + virtual unsigned int offset963(int) { + return offset = 963; + } + + virtual unsigned int offset964(int) { + return offset = 964; + } + + virtual unsigned int offset965(int) { + return offset = 965; + } + + virtual unsigned int offset966(int) { + return offset = 966; + } + + virtual unsigned int offset967(int) { + return offset = 967; + } + + virtual unsigned int offset968(int) { + return offset = 968; + } + + virtual unsigned int offset969(int) { + return offset = 969; + } + + virtual unsigned int offset970(int) { + return offset = 970; + } + + virtual unsigned int offset971(int) { + return offset = 971; + } + + virtual unsigned int offset972(int) { + return offset = 972; + } + + virtual unsigned int offset973(int) { + return offset = 973; + } + + virtual unsigned int offset974(int) { + return offset = 974; + } + + virtual unsigned int offset975(int) { + return offset = 975; + } + + virtual unsigned int offset976(int) { + return offset = 976; + } + + virtual unsigned int offset977(int) { + return offset = 977; + } + + virtual unsigned int offset978(int) { + return offset = 978; + } + + virtual unsigned int offset979(int) { + return offset = 979; + } + + virtual unsigned int offset980(int) { + return offset = 980; + } + + virtual unsigned int offset981(int) { + return offset = 981; + } + + virtual unsigned int offset982(int) { + return offset = 982; + } + + virtual unsigned int offset983(int) { + return offset = 983; + } + + virtual unsigned int offset984(int) { + return offset = 984; + } + + virtual unsigned int offset985(int) { + return offset = 985; + } + + virtual unsigned int offset986(int) { + return offset = 986; + } + + virtual unsigned int offset987(int) { + return offset = 987; + } + + virtual unsigned int offset988(int) { + return offset = 988; + } + + virtual unsigned int offset989(int) { + return offset = 989; + } + + virtual unsigned int offset990(int) { + return offset = 990; + } + + virtual unsigned int offset991(int) { + return offset = 991; + } + + virtual unsigned int offset992(int) { + return offset = 992; + } + + virtual unsigned int offset993(int) { + return offset = 993; + } + + virtual unsigned int offset994(int) { + return offset = 994; + } + + virtual unsigned int offset995(int) { + return offset = 995; + } + + virtual unsigned int offset996(int) { + return offset = 996; + } + + virtual unsigned int offset997(int) { + return offset = 997; + } + + virtual unsigned int offset998(int) { + return offset = 998; + } + + virtual unsigned int offset999(int) { + return offset = 999; + } + + virtual unsigned int offset1000(int) { + return offset = 1000; + } + + }; +} +namespace fakeit { + + template + TARGET union_cast(SOURCE source) { + + union { + SOURCE source; + TARGET target; + } u; + u.source = source; + return u.target; + } + +} + +namespace fakeit { + class NoVirtualDtor { + }; + + class VTUtils { + public: + + template + static unsigned int getOffset(R (C::*vMethod)(arglist...)) { + auto sMethod = reinterpret_cast(vMethod); + VirtualOffsetSelector offsetSelctor; + return (offsetSelctor.*sMethod)(0); + } + + template + static typename std::enable_if::value, unsigned int>::type + getDestructorOffset() { + VirtualOffsetSelector offsetSelctor; + union_cast(&offsetSelctor)->~C(); + return offsetSelctor.offset; + } + + template + static typename std::enable_if::value, unsigned int>::type + getDestructorOffset() { + throw NoVirtualDtor(); + } + + template + static unsigned int getVTSize() { + struct Derrived : public C { + virtual void endOfVt() { + } + }; + + unsigned int vtSize = getOffset(&Derrived::endOfVt); + return vtSize; + } + }; + + +} +#ifdef _MSC_VER +namespace fakeit { + + typedef unsigned long DWORD; + + struct TypeDescriptor { + TypeDescriptor() : + ptrToVTable(0), spare(0) { + + int **tiVFTPtr = (int **) (&typeid(void)); + int *i = (int *) tiVFTPtr[0]; + char *type_info_vft_ptr = (char *) i; + ptrToVTable = type_info_vft_ptr; + } + + char *ptrToVTable; + DWORD spare; + char name[8]; + }; + + struct PMD { + + + + int mdisp; + + int pdisp; + int vdisp; + + PMD() : + mdisp(0), pdisp(-1), vdisp(0) { + } + }; + + struct RTTIBaseClassDescriptor { + RTTIBaseClassDescriptor() : + pTypeDescriptor(nullptr), numContainedBases(0), attributes(0) { + } + + const std::type_info *pTypeDescriptor; + DWORD numContainedBases; + struct PMD where; + DWORD attributes; + }; + + template + struct RTTIClassHierarchyDescriptor { + RTTIClassHierarchyDescriptor() : + signature(0), + attributes(0), + numBaseClasses(0), + pBaseClassArray(nullptr) { + pBaseClassArray = new RTTIBaseClassDescriptor *[1 + sizeof...(baseclasses)]; + addBaseClass < C, baseclasses...>(); + } + + ~RTTIClassHierarchyDescriptor() { + for (int i = 0; i < 1 + sizeof...(baseclasses); i++) { + RTTIBaseClassDescriptor *desc = pBaseClassArray[i]; + delete desc; + } + delete[] pBaseClassArray; + } + + DWORD signature; + DWORD attributes; + DWORD numBaseClasses; + RTTIBaseClassDescriptor **pBaseClassArray; + + template + void addBaseClass() { + static_assert(std::is_base_of::value, "C must be a derived class of BaseType"); + RTTIBaseClassDescriptor *desc = new RTTIBaseClassDescriptor(); + desc->pTypeDescriptor = &typeid(BaseType); + pBaseClassArray[numBaseClasses] = desc; + for (unsigned int i = 0; i < numBaseClasses; i++) { + pBaseClassArray[i]->numContainedBases++; + } + numBaseClasses++; + } + + template + void addBaseClass() { + static_assert(std::is_base_of::value, "invalid inheritance list"); + addBaseClass(); + addBaseClass(); + } + + }; + + template + struct RTTICompleteObjectLocator { +#ifdef _WIN64 + RTTICompleteObjectLocator(const std::type_info &unused) : + signature(0), offset(0), cdOffset(0), + typeDescriptorOffset(0), classDescriptorOffset(0) + { + } + + DWORD signature; + DWORD offset; + DWORD cdOffset; + DWORD typeDescriptorOffset; + DWORD classDescriptorOffset; +#else + RTTICompleteObjectLocator(const std::type_info &info) : + signature(0), offset(0), cdOffset(0), + pTypeDescriptor(&info), + pClassDescriptor(new RTTIClassHierarchyDescriptor()) { + } + + ~RTTICompleteObjectLocator() { + delete pClassDescriptor; + } + + DWORD signature; + DWORD offset; + DWORD cdOffset; + const std::type_info *pTypeDescriptor; + struct RTTIClassHierarchyDescriptor *pClassDescriptor; +#endif + }; + + + struct VirtualTableBase { + + static VirtualTableBase &getVTable(void *instance) { + fakeit::VirtualTableBase *vt = (fakeit::VirtualTableBase *) (instance); + return *vt; + } + + VirtualTableBase(void **firstMethod) : _firstMethod(firstMethod) { } + + void *getCookie(int index) { + return _firstMethod[-2 - index]; + } + + void setCookie(int index, void *value) { + _firstMethod[-2 - index] = value; + } + + void *getMethod(unsigned int index) const { + return _firstMethod[index]; + } + + void setMethod(unsigned int index, void *method) { + _firstMethod[index] = method; + } + + protected: + void **_firstMethod; + }; + + template + struct VirtualTable : public VirtualTableBase { + + class Handle { + + friend struct VirtualTable; + + void **firstMethod; + + Handle(void **method) : firstMethod(method) { } + + public: + + VirtualTable &restore() { + VirtualTable *vt = (VirtualTable *) this; + return *vt; + } + }; + + static VirtualTable &getVTable(C &instance) { + fakeit::VirtualTable *vt = (fakeit::VirtualTable *) (&instance); + return *vt; + } + + void copyFrom(VirtualTable &from) { + unsigned int size = VTUtils::getVTSize(); + for (unsigned int i = 0; i < size; i++) { + _firstMethod[i] = from.getMethod(i); + } + } + + VirtualTable() : VirtualTable(buildVTArray()) { + } + + ~VirtualTable() { + + } + + void dispose() { + _firstMethod--; + RTTICompleteObjectLocator *locator = (RTTICompleteObjectLocator *) _firstMethod[0]; + delete locator; + _firstMethod -= numOfCookies; + delete[] _firstMethod; + } + + + unsigned int dtor(int) { + C *c = (C *) this; + C &cRef = *c; + auto vt = VirtualTable::getVTable(cRef); + void *dtorPtr = vt.getCookie(numOfCookies - 1); + void(*method)(C *) = reinterpret_cast(dtorPtr); + method(c); + return 0; + } + + void setDtor(void *method) { + + + + + + void *dtorPtr = union_cast(&VirtualTable::dtor); + unsigned int index = VTUtils::getDestructorOffset(); + _firstMethod[index] = dtorPtr; + setCookie(numOfCookies - 1, method); + } + + unsigned int getSize() { + return VTUtils::getVTSize(); + } + + void initAll(void *value) { + auto size = getSize(); + for (unsigned int i = 0; i < size; i++) { + setMethod(i, value); + } + } + + Handle createHandle() { + Handle h(_firstMethod); + return h; + } + + private: + + class SimpleType { + }; + + static_assert(sizeof(unsigned int (SimpleType::*)()) == sizeof(unsigned int (C::*)()), + "Can't mock a type with multiple inheritance or with non-polymorphic base class"); + static const unsigned int numOfCookies = 3; + + static void **buildVTArray() { + int vtSize = VTUtils::getVTSize(); + auto array = new void *[vtSize + numOfCookies + 1]{}; + RTTICompleteObjectLocator *objectLocator = new RTTICompleteObjectLocator( + typeid(C)); + array += numOfCookies; + array[0] = objectLocator; + array++; + return array; + } + + VirtualTable(void **firstMethod) : VirtualTableBase(firstMethod) { + } + }; +} +#else +#ifndef __clang__ +#include +#include + +namespace fakeit { + template + class has_one_base { + }; + + template + class has_one_base> : public std::false_type { + }; + + template + class has_one_base> + : public has_one_base::type> { + }; + + template<> + class has_one_base> : public std::true_type { + }; + + template + class is_simple_inheritance_layout : public has_one_base::type> { + }; +} + +#endif + +namespace fakeit { + + struct VirtualTableBase { + + static VirtualTableBase &getVTable(void *instance) { + fakeit::VirtualTableBase *vt = (fakeit::VirtualTableBase *) (instance); + return *vt; + } + + VirtualTableBase(void **firstMethod) : _firstMethod(firstMethod) { } + + void *getCookie(int index) { + return _firstMethod[-3 - index]; + } + + void setCookie(int index, void *value) { + _firstMethod[-3 - index] = value; + } + + void *getMethod(unsigned int index) const { + return _firstMethod[index]; + } + + void setMethod(unsigned int index, void *method) { + _firstMethod[index] = method; + } + + protected: + void **_firstMethod; + }; + + template + struct VirtualTable : public VirtualTableBase { + +#ifndef __clang__ + static_assert(is_simple_inheritance_layout::value, "Can't mock a type with multiple inheritance"); +#endif + + class Handle { + + friend struct VirtualTable; + void **firstMethod; + + Handle(void **method) : + firstMethod(method) { + } + + public: + + VirtualTable &restore() { + VirtualTable *vt = (VirtualTable *) this; + return *vt; + } + }; + + static VirtualTable &getVTable(C &instance) { + fakeit::VirtualTable *vt = (fakeit::VirtualTable *) (&instance); + return *vt; + } + + void copyFrom(VirtualTable &from) { + unsigned int size = VTUtils::getVTSize(); + + for (size_t i = 0; i < size; ++i) { + _firstMethod[i] = from.getMethod(i); + } + } + + VirtualTable() : + VirtualTable(buildVTArray()) { + } + + void dispose() { + _firstMethod--; + _firstMethod--; + _firstMethod -= numOfCookies; + delete[] _firstMethod; + } + + unsigned int dtor(int) { + C *c = (C *) this; + C &cRef = *c; + auto vt = VirtualTable::getVTable(cRef); + unsigned int index = VTUtils::getDestructorOffset(); + void *dtorPtr = vt.getMethod(index); + void(*method)(C *) = union_cast(dtorPtr); + method(c); + return 0; + } + + + void setDtor(void *method) { + unsigned int index = VTUtils::getDestructorOffset(); + void *dtorPtr = union_cast(&VirtualTable::dtor); + + + _firstMethod[index] = method; + + _firstMethod[index + 1] = dtorPtr; + } + + + unsigned int getSize() { + return VTUtils::getVTSize(); + } + + void initAll(void *value) { + unsigned int size = getSize(); + for (unsigned int i = 0; i < size; i++) { + setMethod(i, value); + } + } + + const std::type_info *getTypeId() { + return (const std::type_info *) (_firstMethod[-1]); + } + + Handle createHandle() { + Handle h(_firstMethod); + return h; + } + + private: + static const unsigned int numOfCookies = 2; + + static void **buildVTArray() { + int size = VTUtils::getVTSize(); + auto array = new void *[size + 2 + numOfCookies]{}; + array += numOfCookies; + array++; + array[0] = const_cast(&typeid(C)); + array++; + return array; + } + + VirtualTable(void **firstMethod) : VirtualTableBase(firstMethod) { + } + + }; +} +#endif +namespace fakeit { + + struct NoMoreRecordedActionException { + }; + + template + struct MethodInvocationHandler : Destructible { + virtual R handleMethodInvocation(const typename fakeit::production_arg::type... args) = 0; + }; + +} +#include + +namespace fakeit { + +#ifdef __GNUG__ +#ifndef __clang__ +#pragma GCC diagnostic ignored "-Wpedantic" +#endif +#endif + + +#ifdef _MSC_VER +#pragma warning( push ) +#pragma warning( disable : 4200 ) +#endif + + + template + class FakeObject { + + VirtualTable vtable; + + static const size_t SIZE = sizeof(C) - sizeof(VirtualTable); + char instanceArea[SIZE ? SIZE : 0]; + + FakeObject(FakeObject const &) = delete; + FakeObject &operator=(FakeObject const &) = delete; + + public: + + FakeObject() : vtable() { + initializeDataMembersArea(); + } + + ~FakeObject() { + vtable.dispose(); + } + + void initializeDataMembersArea() { + for (size_t i = 0; i < SIZE; ++i) instanceArea[i] = (char) 0; + } + + void setMethod(unsigned int index, void *method) { + vtable.setMethod(index, method); + } + + VirtualTable &getVirtualTable() { + return vtable; + } + + void setVirtualTable(VirtualTable &t) { + vtable = t; + } + + void setDtor(void *dtor) { + vtable.setDtor(dtor); + } + }; + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +#ifdef __GNUG__ +#ifndef __clang__ +#pragma GCC diagnostic pop +#endif +#endif + +} +namespace fakeit { + + struct MethodProxy { + + MethodProxy(unsigned int id, unsigned int offset, void *vMethod) : + _id(id), + _offset(offset), + _vMethod(vMethod) { + } + + unsigned int getOffset() const { + return _offset; + } + + unsigned int getId() const { + return _id; + } + + void *getProxy() const { + return union_cast(_vMethod); + } + + private: + unsigned int _id; + unsigned int _offset; + void *_vMethod; + }; +} +#include + + +namespace fakeit { + + struct InvocationHandlerCollection { + static const unsigned int VT_COOKIE_INDEX = 0; + + virtual Destructible *getInvocatoinHandlerPtrById(unsigned int index) = 0; + + static InvocationHandlerCollection *getInvocationHandlerCollection(void *instance) { + VirtualTableBase &vt = VirtualTableBase::getVTable(instance); + InvocationHandlerCollection *invocationHandlerCollection = (InvocationHandlerCollection *) vt.getCookie( + InvocationHandlerCollection::VT_COOKIE_INDEX); + return invocationHandlerCollection; + } + }; + + + template + class MethodProxyCreator { + + + + public: + + template + MethodProxy createMethodProxy(unsigned int offset) { + return MethodProxy(id, offset, union_cast(&MethodProxyCreator::methodProxyX < id > )); + } + + protected: + + R methodProxy(unsigned int id, const typename fakeit::production_arg::type... args) { + InvocationHandlerCollection *invocationHandlerCollection = InvocationHandlerCollection::getInvocationHandlerCollection( + this); + MethodInvocationHandler *invocationHandler = + (MethodInvocationHandler *) invocationHandlerCollection->getInvocatoinHandlerPtrById( + id); + return invocationHandler->handleMethodInvocation(std::forward::type>(args)...); + } + + template + R methodProxyX(arglist ... args) { + return methodProxy(id, std::forward::type>(args)...); + } + }; +} + +namespace fakeit { + + class InvocationHandlers : public InvocationHandlerCollection { + std::vector> &_methodMocks; + std::vector &_offsets; + + unsigned int getOffset(unsigned int id) { + unsigned int offset = 0; + for (; offset < _offsets.size(); offset++) { + if (_offsets[offset] == id) { + break; + } + } + return offset; + } + + public: + InvocationHandlers( + std::vector> &methodMocks, + std::vector &offsets) : + _methodMocks(methodMocks), _offsets(offsets) { + } + + Destructible *getInvocatoinHandlerPtrById(unsigned int id) override { + unsigned int offset = getOffset(id); + std::shared_ptr ptr = _methodMocks[offset]; + return ptr.get(); + } + + }; + + template + struct DynamicProxy { + + static_assert(std::is_polymorphic::value, "DynamicProxy requires a polymorphic type"); + + DynamicProxy(C &inst) : + instance(inst), + originalVtHandle(VirtualTable::getVTable(instance).createHandle()), + _methodMocks(VTUtils::getVTSize()), + _offsets(VTUtils::getVTSize()), + _invocationHandlers(_methodMocks, _offsets) { + _cloneVt.copyFrom(originalVtHandle.restore()); + _cloneVt.setCookie(InvocationHandlerCollection::VT_COOKIE_INDEX, &_invocationHandlers); + getFake().setVirtualTable(_cloneVt); + } + + void detach() { + getFake().setVirtualTable(originalVtHandle.restore()); + } + + ~DynamicProxy() { + _cloneVt.dispose(); + } + + C &get() { + return instance; + } + + void Reset() { + _methodMocks = {{}}; + _methodMocks.resize(VTUtils::getVTSize()); + _members = {}; + _cloneVt.copyFrom(originalVtHandle.restore()); + } + + template + void stubMethod(R(C::*vMethod)(arglist...), MethodInvocationHandler *methodInvocationHandler) { + auto offset = VTUtils::getOffset(vMethod); + MethodProxyCreator creator; + bind(creator.template createMethodProxy(offset), methodInvocationHandler); + } + + void stubDtor(MethodInvocationHandler *methodInvocationHandler) { + auto offset = VTUtils::getDestructorOffset(); + MethodProxyCreator creator; + bindDtor(creator.createMethodProxy<0>(offset), methodInvocationHandler); + } + + template + bool isMethodStubbed(R(C::*vMethod)(arglist...)) { + unsigned int offset = VTUtils::getOffset(vMethod); + return isBinded(offset); + } + + bool isDtorStubbed() { + unsigned int offset = VTUtils::getDestructorOffset(); + return isBinded(offset); + } + + template + Destructible *getMethodMock(R(C::*vMethod)(arglist...)) { + auto offset = VTUtils::getOffset(vMethod); + std::shared_ptr ptr = _methodMocks[offset]; + return ptr.get(); + } + + Destructible *getDtorMock() { + auto offset = VTUtils::getDestructorOffset(); + std::shared_ptr ptr = _methodMocks[offset]; + return ptr.get(); + } + + template + void stubDataMember(DATA_TYPE C::*member, const arglist &... initargs) { + DATA_TYPE C::*theMember = (DATA_TYPE C::*) member; + C &mock = get(); + DATA_TYPE *memberPtr = &(mock.*theMember); + _members.push_back( + std::shared_ptr > + {new DataMemeberWrapper < DATA_TYPE, arglist...>(memberPtr, + initargs...)}); + } + + template + void getMethodMocks(std::vector &into) const { + for (std::shared_ptr ptr : _methodMocks) { + DATA_TYPE p = dynamic_cast(ptr.get()); + if (p) { + into.push_back(p); + } + } + } + + VirtualTable &getOriginalVT() { + VirtualTable &vt = originalVtHandle.restore(); + return vt; + } + + private: + + template + class DataMemeberWrapper : public Destructible { + private: + DATA_TYPE *dataMember; + public: + DataMemeberWrapper(DATA_TYPE *dataMem, const arglist &... initargs) : + dataMember(dataMem) { + new(dataMember) DATA_TYPE{initargs ...}; + } + + ~DataMemeberWrapper() override + { + dataMember->~DATA_TYPE(); + } + }; + + static_assert(sizeof(C) == sizeof(FakeObject), "This is a problem"); + + C &instance; + typename VirtualTable::Handle originalVtHandle; + VirtualTable _cloneVt; + + std::vector> _methodMocks; + std::vector> _members; + std::vector _offsets; + InvocationHandlers _invocationHandlers; + + FakeObject &getFake() { + return reinterpret_cast &>(instance); + } + + void bind(const MethodProxy &methodProxy, Destructible *invocationHandler) { + getFake().setMethod(methodProxy.getOffset(), methodProxy.getProxy()); + _methodMocks[methodProxy.getOffset()].reset(invocationHandler); + _offsets[methodProxy.getOffset()] = methodProxy.getId(); + } + + void bindDtor(const MethodProxy &methodProxy, Destructible *invocationHandler) { + getFake().setDtor(methodProxy.getProxy()); + _methodMocks[methodProxy.getOffset()].reset(invocationHandler); + _offsets[methodProxy.getOffset()] = methodProxy.getId(); + } + + template + DATA_TYPE getMethodMock(unsigned int offset) { + std::shared_ptr ptr = _methodMocks[offset]; + return dynamic_cast(ptr.get()); + } + + template + void checkMultipleInheritance() { + C *ptr = (C *) (unsigned int) 1; + BaseClass *basePtr = ptr; + int delta = (unsigned long) basePtr - (unsigned long) ptr; + if (delta > 0) { + + + throw std::invalid_argument(std::string("multiple inheritance is not supported")); + } + } + + bool isBinded(unsigned int offset) { + std::shared_ptr ptr = _methodMocks[offset]; + return ptr.get() != nullptr; + } + + }; +} +#include +#include +#include +#include +#include +#include +#include +#include + +namespace fakeit { + + template + struct apply_func { + template + static R applyTuple(std::function f, std::tuple &t, Args &... args) { + return apply_func::template applyTuple(f, t, std::get(t), args...); + } + }; + + template<> + struct apply_func < 0 > { + template + static R applyTuple(std::function f, std::tuple & , Args &... args) { + return f(args...); + } + }; + + struct TupleDispatcher { + + template + static R applyTuple(std::function f, std::tuple &t) { + return apply_func::template applyTuple(f, t); + } + + template + static R invoke(std::function func, const std::tuple &arguments) { + std::tuple &args = const_cast &>(arguments); + return applyTuple(func, args); + } + + template + static void for_each(TupleType &&, FunctionType &, + std::integral_constant::type>::value>) { + } + + template::type>::value>::type> + static void for_each(TupleType &&t, FunctionType &f, std::integral_constant) { + f(I, std::get < I >(t)); + for_each(std::forward < TupleType >(t), f, std::integral_constant()); + } + + template + static void for_each(TupleType &&t, FunctionType &f) { + for_each(std::forward < TupleType >(t), f, std::integral_constant()); + } + + template + static void for_each(TupleType1 &&, TupleType2 &&, FunctionType &, + std::integral_constant::type>::value>) { + } + + template::type>::value>::type> + static void for_each(TupleType1 &&t, TupleType2 &&t2, FunctionType &f, std::integral_constant) { + f(I, std::get < I >(t), std::get < I >(t2)); + for_each(std::forward < TupleType1 >(t), std::forward < TupleType2 >(t2), f, std::integral_constant()); + } + + template + static void for_each(TupleType1 &&t, TupleType2 &&t2, FunctionType &f) { + for_each(std::forward < TupleType1 >(t), std::forward < TupleType2 >(t2), f, std::integral_constant()); + } + }; +} +namespace fakeit { + + template + struct ActualInvocationHandler : Destructible { + virtual R handleMethodInvocation(ArgumentsTuple & args) = 0; + }; + +} +#include +#include +#include +#include +#include +#include + +namespace fakeit { + + struct DefaultValueInstatiationException { + virtual ~DefaultValueInstatiationException() = default; + + virtual std::string what() const = 0; + }; + + + template + struct is_constructible_type { + static const bool value = + std::is_default_constructible::type>::value + && !std::is_abstract::type>::value; + }; + + template + struct DefaultValue; + + template + struct DefaultValue::value>::type> { + static C &value() { + if (std::is_reference::value) { + typename naked_type::type *ptr = nullptr; + return *ptr; + } + + class Exception : public DefaultValueInstatiationException { + virtual std::string what() const + + override { + return (std::string("Type ") + std::string(typeid(C).name()) + + std::string( + " is not default constructible. Could not instantiate a default return value")).c_str(); + } + }; + + throw Exception(); + } + }; + + template + struct DefaultValue::value>::type> { + static C &value() { + static typename naked_type::type val{}; + return val; + } + }; + + + template<> + struct DefaultValue { + static void value() { + return; + } + }; + + template<> + struct DefaultValue { + static bool &value() { + static bool value{false}; + return value; + } + }; + + template<> + struct DefaultValue { + static char &value() { + static char value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static char16_t &value() { + static char16_t value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static char32_t &value() { + static char32_t value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static wchar_t &value() { + static wchar_t value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static short &value() { + static short value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static int &value() { + static int value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static long &value() { + static long value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static long long &value() { + static long long value{0}; + return value; + } + }; + + template<> + struct DefaultValue { + static std::string &value() { + static std::string value{}; + return value; + } + }; + +} +namespace fakeit { + + struct IMatcher : Destructible { + ~IMatcher() = default; + virtual std::string format() const = 0; + }; + + template + struct TypedMatcher : IMatcher { + virtual bool matches(const T &actual) const = 0; + }; + + template + struct TypedMatcherCreator { + + virtual ~TypedMatcherCreator() = default; + + virtual TypedMatcher *createMatcher() const = 0; + }; + + template + struct ComparisonMatcherCreator : public TypedMatcherCreator { + + virtual ~ComparisonMatcherCreator() = default; + + ComparisonMatcherCreator(const T &arg) + : _expected(arg) { + } + + struct Matcher : public TypedMatcher { + Matcher(const T &expected) + : _expected(expected) { + } + + const T _expected; + }; + + const T &_expected; + }; + + namespace internal { + template + struct TypedAnyMatcher : public TypedMatcherCreator { + + virtual ~TypedAnyMatcher() = default; + + TypedAnyMatcher() { + } + + struct Matcher : public TypedMatcher { + virtual bool matches(const T &) const { + return true; + } + + virtual std::string format() const override { + return "Any"; + } + }; + + virtual TypedMatcher *createMatcher() const override { + return new Matcher(); + } + + }; + + template + struct EqMatcherCreator : public ComparisonMatcherCreator { + + virtual ~EqMatcherCreator() = default; + + EqMatcherCreator(const T &expected) + : ComparisonMatcherCreator(expected) { + } + + struct Matcher : public ComparisonMatcherCreator::Matcher { + Matcher(const T &expected) + : ComparisonMatcherCreator::Matcher(expected) { + } + + virtual std::string format() const override { + return TypeFormatter::format(this->_expected); + } + + virtual bool matches(const T &actual) const override { + return actual == this->_expected; + } + }; + + virtual TypedMatcher *createMatcher() const { + return new Matcher(this->_expected); + } + + }; + + template + struct GtMatcherCreator : public ComparisonMatcherCreator { + + virtual ~GtMatcherCreator() = default; + + GtMatcherCreator(const T &expected) + : ComparisonMatcherCreator(expected) { + } + + struct Matcher : public ComparisonMatcherCreator::Matcher { + Matcher(const T &expected) + : ComparisonMatcherCreator::Matcher(expected) { + } + + virtual bool matches(const T &actual) const override { + return actual > this->_expected; + } + + virtual std::string format() const override { + return std::string(">") + TypeFormatter::format(this->_expected); + } + }; + + virtual TypedMatcher *createMatcher() const override { + return new Matcher(this->_expected); + } + }; + + template + struct GeMatcherCreator : public ComparisonMatcherCreator { + + virtual ~GeMatcherCreator() = default; + + GeMatcherCreator(const T &expected) + : ComparisonMatcherCreator(expected) { + } + + struct Matcher : public ComparisonMatcherCreator::Matcher { + Matcher(const T &expected) + : ComparisonMatcherCreator::Matcher(expected) { + } + + virtual bool matches(const T &actual) const override { + return actual >= this->_expected; + } + + virtual std::string format() const override { + return std::string(">=") + TypeFormatter::format(this->_expected); + } + }; + + virtual TypedMatcher *createMatcher() const override { + return new Matcher(this->_expected); + } + }; + + template + struct LtMatcherCreator : public ComparisonMatcherCreator { + + virtual ~LtMatcherCreator() = default; + + LtMatcherCreator(const T &expected) + : ComparisonMatcherCreator(expected) { + } + + struct Matcher : public ComparisonMatcherCreator::Matcher { + Matcher(const T &expected) + : ComparisonMatcherCreator::Matcher(expected) { + } + + virtual bool matches(const T &actual) const override { + return actual < this->_expected; + } + + virtual std::string format() const override { + return std::string("<") + TypeFormatter::format(this->_expected); + } + }; + + virtual TypedMatcher *createMatcher() const override { + return new Matcher(this->_expected); + } + + }; + + template + struct LeMatcherCreator : public ComparisonMatcherCreator { + + virtual ~LeMatcherCreator() = default; + + LeMatcherCreator(const T &expected) + : ComparisonMatcherCreator(expected) { + } + + struct Matcher : public ComparisonMatcherCreator::Matcher { + Matcher(const T &expected) + : ComparisonMatcherCreator::Matcher(expected) { + } + + virtual bool matches(const T &actual) const override { + return actual <= this->_expected; + } + + virtual std::string format() const override { + return std::string("<=") + TypeFormatter::format(this->_expected); + } + }; + + virtual TypedMatcher *createMatcher() const override { + return new Matcher(this->_expected); + } + + }; + + template + struct NeMatcherCreator : public ComparisonMatcherCreator { + + virtual ~NeMatcherCreator() = default; + + NeMatcherCreator(const T &expected) + : ComparisonMatcherCreator(expected) { + } + + struct Matcher : public ComparisonMatcherCreator::Matcher { + Matcher(const T &expected) + : ComparisonMatcherCreator::Matcher(expected) { + } + + virtual bool matches(const T &actual) const override { + return actual != this->_expected; + } + + virtual std::string format() const override { + return std::string("!=") + TypeFormatter::format(this->_expected); + } + + }; + + virtual TypedMatcher *createMatcher() const override { + return new Matcher(this->_expected); + } + + }; + } + + struct AnyMatcher { + } static _; + + template + internal::TypedAnyMatcher Any() { + internal::TypedAnyMatcher rv; + return rv; + } + + template + internal::EqMatcherCreator Eq(const T &arg) { + internal::EqMatcherCreator rv(arg); + return rv; + } + + template + internal::GtMatcherCreator Gt(const T &arg) { + internal::GtMatcherCreator rv(arg); + return rv; + } + + template + internal::GeMatcherCreator Ge(const T &arg) { + internal::GeMatcherCreator rv(arg); + return rv; + } + + template + internal::LtMatcherCreator Lt(const T &arg) { + internal::LtMatcherCreator rv(arg); + return rv; + } + + template + internal::LeMatcherCreator Le(const T &arg) { + internal::LeMatcherCreator rv(arg); + return rv; + } + + template + internal::NeMatcherCreator Ne(const T &arg) { + internal::NeMatcherCreator rv(arg); + return rv; + } + +} + +namespace fakeit { + + template + struct ArgumentsMatcherInvocationMatcher : public ActualInvocation::Matcher { + + virtual ~ArgumentsMatcherInvocationMatcher() { + for (unsigned int i = 0; i < _matchers.size(); i++) + delete _matchers[i]; + } + + ArgumentsMatcherInvocationMatcher(const std::vector &args) + : _matchers(args) { + } + + virtual bool matches(ActualInvocation &invocation) override { + if (invocation.getActualMatcher() == this) + return true; + return matches(invocation.getActualArguments()); + } + + virtual std::string format() const override { + std::ostringstream out; + out << "("; + for (unsigned int i = 0; i < _matchers.size(); i++) { + if (i > 0) out << ", "; + IMatcher *m = dynamic_cast(_matchers[i]); + out << m->format(); + } + out << ")"; + return out.str(); + } + + private: + + struct MatchingLambda { + MatchingLambda(const std::vector &matchers) + : _matchers(matchers) { + } + + template + void operator()(int index, A &actualArg) { + TypedMatcher::type> *matcher = + dynamic_cast::type> *>(_matchers[index]); + if (_matching) + _matching = matcher->matches(actualArg); + } + + bool isMatching() { + return _matching; + } + + private: + bool _matching = true; + const std::vector &_matchers; + }; + + virtual bool matches(ArgumentsTuple& actualArguments) { + MatchingLambda l(_matchers); + fakeit::TupleDispatcher::for_each(actualArguments, l); + return l.isMatching(); + } + + const std::vector _matchers; + }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + template + struct UserDefinedInvocationMatcher : ActualInvocation::Matcher { + virtual ~UserDefinedInvocationMatcher() = default; + + UserDefinedInvocationMatcher(std::function match) + : matcher{match} { + } + + virtual bool matches(ActualInvocation &invocation) override { + if (invocation.getActualMatcher() == this) + return true; + return matches(invocation.getActualArguments()); + } + + virtual std::string format() const override { + return {"( user defined matcher )"}; + } + + private: + virtual bool matches(ArgumentsTuple& actualArguments) { + return TupleDispatcher::invoke::type...>(matcher, actualArguments); + } + + const std::function matcher; + }; + + template + struct DefaultInvocationMatcher : public ActualInvocation::Matcher { + + virtual ~DefaultInvocationMatcher() = default; + + DefaultInvocationMatcher() { + } + + virtual bool matches(ActualInvocation &invocation) override { + return matches(invocation.getActualArguments()); + } + + virtual std::string format() const override { + return {"( Any arguments )"}; + } + + private: + + virtual bool matches(const ArgumentsTuple&) { + return true; + } + }; + +} + +namespace fakeit { + + + template + class RecordedMethodBody : public MethodInvocationHandler, public ActualInvocationsSource { + + struct MatchedInvocationHandler : ActualInvocationHandler { + + virtual ~MatchedInvocationHandler() = default; + + MatchedInvocationHandler(typename ActualInvocation::Matcher *matcher, + ActualInvocationHandler *invocationHandler) : + _matcher{matcher}, _invocationHandler{invocationHandler} { + } + + virtual R handleMethodInvocation(ArgumentsTuple & args) override + { + Destructible &destructable = *_invocationHandler; + ActualInvocationHandler &invocationHandler = dynamic_cast &>(destructable); + return invocationHandler.handleMethodInvocation(args); + } + + typename ActualInvocation::Matcher &getMatcher() const { + Destructible &destructable = *_matcher; + typename ActualInvocation::Matcher &matcher = dynamic_cast::Matcher &>(destructable); + return matcher; + } + + private: + std::shared_ptr _matcher; + std::shared_ptr _invocationHandler; + }; + + + FakeitContext &_fakeit; + MethodInfo _method; + + std::vector> _invocationHandlers; + std::vector> _actualInvocations; + + MatchedInvocationHandler *buildMatchedInvocationHandler( + typename ActualInvocation::Matcher *invocationMatcher, + ActualInvocationHandler *invocationHandler) { + return new MatchedInvocationHandler(invocationMatcher, invocationHandler); + } + + MatchedInvocationHandler *getInvocationHandlerForActualArgs(ActualInvocation &invocation) { + for (auto i = _invocationHandlers.rbegin(); i != _invocationHandlers.rend(); ++i) { + std::shared_ptr curr = *i; + Destructible &destructable = *curr; + MatchedInvocationHandler &im = asMatchedInvocationHandler(destructable); + if (im.getMatcher().matches(invocation)) { + return &im; + } + } + return nullptr; + } + + MatchedInvocationHandler &asMatchedInvocationHandler(Destructible &destructable) { + MatchedInvocationHandler &im = dynamic_cast(destructable); + return im; + } + + ActualInvocation &asActualInvocation(Destructible &destructable) const { + ActualInvocation &invocation = dynamic_cast &>(destructable); + return invocation; + } + + public: + + RecordedMethodBody(FakeitContext &fakeit, std::string name) : + _fakeit(fakeit), _method{MethodInfo::nextMethodOrdinal(), name} { } + + virtual ~RecordedMethodBody() NO_THROWS { + } + + MethodInfo &getMethod() { + return _method; + } + + bool isOfMethod(MethodInfo &method) { + + return method.id() == _method.id(); + } + + void addMethodInvocationHandler(typename ActualInvocation::Matcher *matcher, + ActualInvocationHandler *invocationHandler) { + ActualInvocationHandler *mock = buildMatchedInvocationHandler(matcher, invocationHandler); + std::shared_ptr destructable{mock}; + _invocationHandlers.push_back(destructable); + } + + void clear() { + _invocationHandlers.clear(); + _actualInvocations.clear(); + } + + + R handleMethodInvocation(const typename fakeit::production_arg::type... args) override { + unsigned int ordinal = Invocation::nextInvocationOrdinal(); + MethodInfo &method = this->getMethod(); + auto actualInvocation = new ActualInvocation(ordinal, method, std::forward::type>(args)...); + + + std::shared_ptr actualInvocationDtor{actualInvocation}; + + auto invocationHandler = getInvocationHandlerForActualArgs(*actualInvocation); + if (invocationHandler) { + auto &matcher = invocationHandler->getMatcher(); + actualInvocation->setActualMatcher(&matcher); + _actualInvocations.push_back(actualInvocationDtor); + try { + return invocationHandler->handleMethodInvocation(actualInvocation->getActualArguments()); + } catch (NoMoreRecordedActionException &) { + } + } + + UnexpectedMethodCallEvent event(UnexpectedType::Unmatched, *actualInvocation); + _fakeit.handle(event); + std::string format{_fakeit.format(event)}; + UnexpectedMethodCallException e(format); + throw e; + } + + void scanActualInvocations(const std::function &)> &scanner) { + for (auto destructablePtr : _actualInvocations) { + ActualInvocation &invocation = asActualInvocation(*destructablePtr); + scanner(invocation); + } + } + + void getActualInvocations(std::unordered_set &into) const override { + for (auto destructablePtr : _actualInvocations) { + Invocation &invocation = asActualInvocation(*destructablePtr); + into.insert(&invocation); + } + } + + void setMethodDetails(const std::string &mockName, const std::string &methodName) { + const std::string fullName{mockName + "." + methodName}; + _method.setName(fullName); + } + + }; + +} +#include +#include +#include +#include +#include +#include + +namespace fakeit { + + struct Quantity { + Quantity(const int q) : + quantity(q) { + } + + const int quantity; + } static Once(1); + + template + struct Quantifier : public Quantity { + Quantifier(const int q, const R &val) : + Quantity(q), value(val) { + } + + const R &value; + }; + + template<> + struct Quantifier : public Quantity { + explicit Quantifier(const int q) : + Quantity(q) { + } + }; + + struct QuantifierFunctor : public Quantifier { + QuantifierFunctor(const int q) : + Quantifier(q) { + } + + template + Quantifier operator()(const R &value) { + return Quantifier(quantity, value); + } + }; + + template + struct Times : public Quantity { + + Times() : Quantity(q) { } + + template + static Quantifier of(const R &value) { + return Quantifier(q, value); + } + + static Quantifier Void() { + return Quantifier(q); + } + }; + +#if defined (__GNUG__) || (_MSC_VER >= 1900) + + inline QuantifierFunctor operator + "" + + _Times(unsigned long long n) { + return QuantifierFunctor((int) n); + } + + inline QuantifierFunctor operator + "" + + _Time(unsigned long long n) { + if (n != 1) + throw std::invalid_argument("Only 1_Time is supported. Use X_Times (with s) if X is bigger than 1"); + return QuantifierFunctor((int) n); + } + +#endif + +} +#include +#include +#include +#include + + +namespace fakeit { + + template + struct Action : Destructible { + virtual R invoke(const ArgumentsTuple &) = 0; + + virtual bool isDone() = 0; + }; + + template + struct Repeat : Action { + virtual ~Repeat() = default; + + Repeat(std::function::type...)> func) : + f(func), times(1) { + } + + Repeat(std::function::type...)> func, long t) : + f(func), times(t) { + } + + virtual R invoke(const ArgumentsTuple & args) override { + times--; + return TupleDispatcher::invoke(f, args); + } + + virtual bool isDone() override { + return times == 0; + } + + private: + std::function::type...)> f; + long times; + }; + + template + struct RepeatForever : public Action { + + virtual ~RepeatForever() = default; + + RepeatForever(std::function::type...)> func) : + f(func) { + } + + virtual R invoke(const ArgumentsTuple & args) override { + return TupleDispatcher::invoke(f, args); + } + + virtual bool isDone() override { + return false; + } + + private: + std::function::type...)> f; + }; + + template + struct ReturnDefaultValue : public Action { + virtual ~ReturnDefaultValue() = default; + + virtual R invoke(const ArgumentsTuple &) override { + return DefaultValue::value(); + } + + virtual bool isDone() override { + return false; + } + }; + + template + struct ReturnDelegateValue : public Action { + + ReturnDelegateValue(std::function::type...)> delegate) : _delegate(delegate) { } + + virtual ~ReturnDelegateValue() = default; + + virtual R invoke(const ArgumentsTuple & args) override { + return TupleDispatcher::invoke(_delegate, args); + } + + virtual bool isDone() override { + return false; + } + + private: + std::function::type...)> _delegate; + }; + +} + +namespace fakeit { + + template + struct MethodStubbingProgress { + + virtual ~MethodStubbingProgress() THROWS { + } + + template + typename std::enable_if::value, MethodStubbingProgress &>::type + Return(const R &r) { + return Do([r](const typename fakeit::test_arg::type...) -> R { return r; }); + } + + template + typename std::enable_if::value, MethodStubbingProgress &>::type + Return(const R &r) { + return Do([&r](const typename fakeit::test_arg::type...) -> R { return r; }); + } + + MethodStubbingProgress & + Return(const Quantifier &q) { + const R &value = q.value; + auto method = [value](const arglist &...) -> R { return value; }; + return DoImpl(new Repeat(method, q.quantity)); + } + + template + MethodStubbingProgress & + Return(const first &f, const second &s, const tail &... t) { + Return(f); + return Return(s, t...); + } + + + template + typename std::enable_if::value, void>::type + AlwaysReturn(const R &r) { + return AlwaysDo([r](const typename fakeit::test_arg::type...) -> R { return r; }); + } + + template + typename std::enable_if::value, void>::type + AlwaysReturn(const R &r) { + return AlwaysDo([&r](const typename fakeit::test_arg::type...) -> R { return r; }); + } + + MethodStubbingProgress & + Return() { + return Do([](const typename fakeit::test_arg::type...) -> R { return DefaultValue::value(); }); + } + + void AlwaysReturn() { + return AlwaysDo([](const typename fakeit::test_arg::type...) -> R { return DefaultValue::value(); }); + } + + template + MethodStubbingProgress &Throw(const E &e) { + return Do([e](const typename fakeit::test_arg::type...) -> R { throw e; }); + } + + template + MethodStubbingProgress & + Throw(const Quantifier &q) { + const E &value = q.value; + auto method = [value](const arglist &...) -> R { throw value; }; + return DoImpl(new Repeat(method, q.quantity)); + } + + template + MethodStubbingProgress & + Throw(const first &f, const second &s, const tail &... t) { + Throw(f); + return Throw(s, t...); + } + + template + void AlwaysThrow(const E &e) { + return AlwaysDo([e](const typename fakeit::test_arg::type...) -> R { throw e; }); + } + + virtual MethodStubbingProgress & + Do(std::function::type...)> method) { + return DoImpl(new Repeat(method)); + } + + template + MethodStubbingProgress & + Do(const Quantifier &q) { + return DoImpl(new Repeat(q.value, q.quantity)); + } + + template + MethodStubbingProgress & + Do(const first &f, const second &s, const tail &... t) { + Do(f); + return Do(s, t...); + } + + virtual void AlwaysDo(std::function::type...)> method) { + DoImpl(new RepeatForever(method)); + } + + protected: + + virtual MethodStubbingProgress &DoImpl(Action *action) = 0; + + private: + MethodStubbingProgress &operator=(const MethodStubbingProgress &other) = delete; + }; + + + template + struct MethodStubbingProgress { + + virtual ~MethodStubbingProgress() THROWS { + } + + MethodStubbingProgress &Return() { + auto lambda = [](const typename fakeit::test_arg::type...) -> void { + return DefaultValue::value(); + }; + return Do(lambda); + } + + virtual MethodStubbingProgress &Do( + std::function::type...)> method) { + return DoImpl(new Repeat(method)); + } + + + void AlwaysReturn() { + return AlwaysDo([](const typename fakeit::test_arg::type...) -> void { return DefaultValue::value(); }); + } + + MethodStubbingProgress & + Return(const Quantifier &q) { + auto method = [](const arglist &...) -> void { return DefaultValue::value(); }; + return DoImpl(new Repeat(method, q.quantity)); + } + + template + MethodStubbingProgress &Throw(const E &e) { + return Do([e](const typename fakeit::test_arg::type...) -> void { throw e; }); + } + + template + MethodStubbingProgress & + Throw(const Quantifier &q) { + const E &value = q.value; + auto method = [value](const typename fakeit::test_arg::type...) -> void { throw value; }; + return DoImpl(new Repeat(method, q.quantity)); + } + + template + MethodStubbingProgress & + Throw(const first &f, const second &s, const tail &... t) { + Throw(f); + return Throw(s, t...); + } + + template + void AlwaysThrow(const E e) { + return AlwaysDo([e](const typename fakeit::test_arg::type...) -> void { throw e; }); + } + + template + MethodStubbingProgress & + Do(const Quantifier &q) { + return DoImpl(new Repeat(q.value, q.quantity)); + } + + template + MethodStubbingProgress & + Do(const first &f, const second &s, const tail &... t) { + Do(f); + return Do(s, t...); + } + + virtual void AlwaysDo(std::function::type...)> method) { + DoImpl(new RepeatForever(method)); + } + + protected: + + virtual MethodStubbingProgress &DoImpl(Action *action) = 0; + + private: + MethodStubbingProgress &operator=(const MethodStubbingProgress &other) = delete; + }; + + +} +#include +#include + +namespace fakeit { + + class Finally { + private: + std::function _finallyClause; + + Finally(const Finally &); + + Finally &operator=(const Finally &); + + public: + explicit Finally(std::function f) : + _finallyClause(f) { + } + + ~Finally() { + _finallyClause(); + } + }; +} + +namespace fakeit { + + + template + struct ActionSequence : ActualInvocationHandler { + + ActionSequence() { + clear(); + } + + void AppendDo(Action *action) { + append(action); + } + + virtual R handleMethodInvocation(ArgumentsTuple & args) override + { + std::shared_ptr destructablePtr = _recordedActions.front(); + Destructible &destructable = *destructablePtr; + Action &action = dynamic_cast &>(destructable); + std::function finallyClause = [&]() -> void { + if (action.isDone()) + _recordedActions.erase(_recordedActions.begin()); + }; + Finally onExit(finallyClause); + return action.invoke(args); + } + + private: + + struct NoMoreRecordedAction : Action { + + + + + + + + virtual R invoke(const ArgumentsTuple &) override { + throw NoMoreRecordedActionException(); + } + + virtual bool isDone() override { + return false; + } + }; + + void append(Action *action) { + std::shared_ptr destructable{action}; + _recordedActions.insert(_recordedActions.end() - 1, destructable); + } + + void clear() { + _recordedActions.clear(); + auto actionPtr = std::shared_ptr {new NoMoreRecordedAction()}; + _recordedActions.push_back(actionPtr); + } + + std::vector> _recordedActions; + }; + +} + +namespace fakeit { + + template + class DataMemberStubbingRoot { + private: + + public: + DataMemberStubbingRoot(const DataMemberStubbingRoot &) = default; + + DataMemberStubbingRoot() = default; + + void operator=(const DATA_TYPE&) { + } + }; + +} +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace fakeit { + + struct Xaction { + virtual void commit() = 0; + }; +} + +namespace fakeit { + + + template + struct SpyingContext : Xaction { + virtual void appendAction(Action *action) = 0; + + virtual std::function getOriginalMethod() = 0; + }; +} +namespace fakeit { + + + template + struct StubbingContext : public Xaction { + virtual void appendAction(Action *action) = 0; + }; +} +#include +#include +#include +#include +#include +#include + + +namespace fakeit { + + template + class MatchersCollector { + + std::vector &_matchers; + + public: + + + template + using ArgType = typename std::tuple_element>::type; + + template + using NakedArgType = typename naked_type>::type; + + template + using ArgMatcherCreatorType = decltype(std::declval>>()); + + MatchersCollector(std::vector &matchers) + : _matchers(matchers) { + } + + void CollectMatchers() { + } + + template + typename std::enable_if< + std::is_constructible, Head>::value, void> + ::type CollectMatchers(const Head &value) { + + TypedMatcher> *d = Eq>(value).createMatcher(); + _matchers.push_back(d); + } + + template + typename std::enable_if< + std::is_constructible, Head>::value + , void> + ::type CollectMatchers(const Head &head, const Tail &... tail) { + CollectMatchers(head); + MatchersCollector c(_matchers); + c.CollectMatchers(tail...); + } + + template + typename std::enable_if< + std::is_base_of>, Head>::value, void> + ::type CollectMatchers(const Head &creator) { + TypedMatcher> *d = creator.createMatcher(); + _matchers.push_back(d); + } + + template + + typename std::enable_if< + std::is_base_of>, Head>::value, void> + ::type CollectMatchers(const Head &head, const Tail &... tail) { + CollectMatchers(head); + MatchersCollector c(_matchers); + c.CollectMatchers(tail...); + } + + template + typename std::enable_if< + std::is_same::value, void> + ::type CollectMatchers(const Head &) { + TypedMatcher> *d = Any>().createMatcher(); + _matchers.push_back(d); + } + + template + typename std::enable_if< + std::is_same::value, void> + ::type CollectMatchers(const Head &head, const Tail &... tail) { + CollectMatchers(head); + MatchersCollector c(_matchers); + c.CollectMatchers(tail...); + } + + }; + +} + +namespace fakeit { + + template + class MethodMockingContext : + public Sequence, + public ActualInvocationsSource, + public virtual StubbingContext, + public virtual SpyingContext, + private Invocation::Matcher { + public: + + struct Context : Destructible { + + + virtual typename std::function getOriginalMethod() = 0; + + virtual std::string getMethodName() = 0; + + virtual void addMethodInvocationHandler(typename ActualInvocation::Matcher *matcher, + ActualInvocationHandler *invocationHandler) = 0; + + virtual void scanActualInvocations(const std::function &)> &scanner) = 0; + + virtual void setMethodDetails(std::string mockName, std::string methodName) = 0; + + virtual bool isOfMethod(MethodInfo &method) = 0; + + virtual ActualInvocationsSource &getInvolvedMock() = 0; + }; + + private: + class Implementation { + + Context *_stubbingContext; + ActionSequence *_recordedActionSequence; + typename ActualInvocation::Matcher *_invocationMatcher; + bool _commited; + + Context &getStubbingContext() const { + return *_stubbingContext; + } + + public: + + Implementation(Context *stubbingContext) + : _stubbingContext(stubbingContext), + _recordedActionSequence(new ActionSequence()), + _invocationMatcher + { + new DefaultInvocationMatcher()}, _commited(false) { + } + + ~Implementation() { + delete _stubbingContext; + if (!_commited) { + + delete _recordedActionSequence; + delete _invocationMatcher; + } + } + + ActionSequence &getRecordedActionSequence() { + return *_recordedActionSequence; + } + + std::string format() const { + std::string s = getStubbingContext().getMethodName(); + s += _invocationMatcher->format(); + return s; + } + + void getActualInvocations(std::unordered_set &into) const { + auto scanner = [&](ActualInvocation &a) { + if (_invocationMatcher->matches(a)) { + into.insert(&a); + } + }; + getStubbingContext().scanActualInvocations(scanner); + } + + + bool matches(Invocation &invocation) { + MethodInfo &actualMethod = invocation.getMethod(); + if (!getStubbingContext().isOfMethod(actualMethod)) { + return false; + } + + ActualInvocation &actualInvocation = dynamic_cast &>(invocation); + return _invocationMatcher->matches(actualInvocation); + } + + void commit() { + getStubbingContext().addMethodInvocationHandler(_invocationMatcher, _recordedActionSequence); + _commited = true; + } + + void appendAction(Action *action) { + getRecordedActionSequence().AppendDo(action); + } + + void setMethodBodyByAssignment(std::function::type...)> method) { + appendAction(new RepeatForever(method)); + commit(); + } + + void setMethodDetails(std::string mockName, std::string methodName) { + getStubbingContext().setMethodDetails(mockName, methodName); + } + + void getInvolvedMocks(std::vector &into) const { + into.push_back(&getStubbingContext().getInvolvedMock()); + } + + typename std::function getOriginalMethod() { + return getStubbingContext().getOriginalMethod(); + } + + void setInvocationMatcher(typename ActualInvocation::Matcher *matcher) { + delete _invocationMatcher; + _invocationMatcher = matcher; + } + }; + + protected: + + MethodMockingContext(Context *stubbingContext) + : _impl{new Implementation(stubbingContext)} { + } + + MethodMockingContext(MethodMockingContext &) = default; + + + + MethodMockingContext(MethodMockingContext &&other) + : _impl(std::move(other._impl)) { + } + + virtual ~MethodMockingContext() NO_THROWS { } + + std::string format() const override { + return _impl->format(); + } + + unsigned int size() const override { + return 1; + } + + + void getInvolvedMocks(std::vector &into) const override { + _impl->getInvolvedMocks(into); + } + + void getExpectedSequence(std::vector &into) const override { + const Invocation::Matcher *b = this; + Invocation::Matcher *c = const_cast(b); + into.push_back(c); + } + + + void getActualInvocations(std::unordered_set &into) const override { + _impl->getActualInvocations(into); + } + + + bool matches(Invocation &invocation) override { + return _impl->matches(invocation); + } + + void commit() override { + _impl->commit(); + } + + void setMethodDetails(std::string mockName, std::string methodName) { + _impl->setMethodDetails(mockName, methodName); + } + + void setMatchingCriteria(std::function predicate) { + typename ActualInvocation::Matcher *matcher{ + new UserDefinedInvocationMatcher(predicate)}; + _impl->setInvocationMatcher(matcher); + } + + void setMatchingCriteria(const std::vector &matchers) { + typename ActualInvocation::Matcher *matcher{ + new ArgumentsMatcherInvocationMatcher(matchers)}; + _impl->setInvocationMatcher(matcher); + } + + + void appendAction(Action *action) override { + _impl->appendAction(action); + } + + void setMethodBodyByAssignment(std::function::type...)> method) { + _impl->setMethodBodyByAssignment(method); + } + + template::type> + void setMatchingCriteria(const matcherCreators &... matcherCreator) { + std::vector matchers; + + MatchersCollector<0, arglist...> c(matchers); + c.CollectMatchers(matcherCreator...); + + MethodMockingContext::setMatchingCriteria(matchers); + } + + private: + + typename std::function getOriginalMethod() override { + return _impl->getOriginalMethod(); + } + + std::shared_ptr _impl; + }; + + template + class MockingContext : + public MethodMockingContext { + MockingContext &operator=(const MockingContext &) = delete; + + public: + + MockingContext(typename MethodMockingContext::Context *stubbingContext) + : MethodMockingContext(stubbingContext) { + } + + MockingContext(MockingContext &) = default; + + MockingContext(MockingContext &&other) + : MethodMockingContext(std::move(other)) { + } + + MockingContext &setMethodDetails(std::string mockName, std::string methodName) { + MethodMockingContext::setMethodDetails(mockName, methodName); + return *this; + } + + MockingContext &Using(const arglist &... args) { + MethodMockingContext::setMatchingCriteria(args...); + return *this; + } + + template + MockingContext &Using(const arg_matcher &... arg_matchers) { + MethodMockingContext::setMatchingCriteria(arg_matchers...); + return *this; + } + + MockingContext &Matching(std::function matcher) { + MethodMockingContext::setMatchingCriteria(matcher); + return *this; + } + + MockingContext &operator()(const arglist &... args) { + MethodMockingContext::setMatchingCriteria(args...); + return *this; + } + + MockingContext &operator()(std::function matcher) { + MethodMockingContext::setMatchingCriteria(matcher); + return *this; + } + + void operator=(std::function method) { + MethodMockingContext::setMethodBodyByAssignment(method); + } + + template + typename std::enable_if::value, void>::type operator=(const R &r) { + auto method = [r](const typename fakeit::test_arg::type...) -> R { return r; }; + MethodMockingContext::setMethodBodyByAssignment(method); + } + + template + typename std::enable_if::value, void>::type operator=(const R &r) { + auto method = [&r](const typename fakeit::test_arg::type...) -> R { return r; }; + MethodMockingContext::setMethodBodyByAssignment(method); + } + }; + + template + class MockingContext : + public MethodMockingContext { + MockingContext &operator=(const MockingContext &) = delete; + + public: + + MockingContext(typename MethodMockingContext::Context *stubbingContext) + : MethodMockingContext(stubbingContext) { + } + + MockingContext(MockingContext &) = default; + + MockingContext(MockingContext &&other) + : MethodMockingContext(std::move(other)) { + } + + MockingContext &setMethodDetails(std::string mockName, std::string methodName) { + MethodMockingContext::setMethodDetails(mockName, methodName); + return *this; + } + + MockingContext &Using(const arglist &... args) { + MethodMockingContext::setMatchingCriteria(args...); + return *this; + } + + template + MockingContext &Using(const arg_matcher &... arg_matchers) { + MethodMockingContext::setMatchingCriteria(arg_matchers...); + return *this; + } + + MockingContext &Matching(std::function matcher) { + MethodMockingContext::setMatchingCriteria(matcher); + return *this; + } + + MockingContext &operator()(const arglist &... args) { + MethodMockingContext::setMatchingCriteria(args...); + return *this; + } + + MockingContext &operator()(std::function matcher) { + MethodMockingContext::setMatchingCriteria(matcher); + return *this; + } + + void operator=(std::function method) { + MethodMockingContext::setMethodBodyByAssignment(method); + } + + }; + + class DtorMockingContext : public MethodMockingContext { + public: + + DtorMockingContext(MethodMockingContext::Context *stubbingContext) + : MethodMockingContext(stubbingContext) { + } + + DtorMockingContext(DtorMockingContext &other) : MethodMockingContext(other) { + } + + DtorMockingContext(DtorMockingContext &&other) : MethodMockingContext(std::move(other)) { + } + + void operator=(std::function method) { + MethodMockingContext::setMethodBodyByAssignment(method); + } + + DtorMockingContext &setMethodDetails(std::string mockName, std::string methodName) { + MethodMockingContext::setMethodDetails(mockName, methodName); + return *this; + } + }; + +} + +namespace fakeit { + + + template + class MockImpl : private MockObject, public virtual ActualInvocationsSource { + public: + + MockImpl(FakeitContext &fakeit, C &obj) + : MockImpl(fakeit, obj, true) { + } + + MockImpl(FakeitContext &fakeit) + : MockImpl(fakeit, *(createFakeInstance()), false) { + FakeObject *fake = reinterpret_cast *>(_instance); + fake->getVirtualTable().setCookie(1, this); + } + + virtual ~MockImpl() NO_THROWS { + _proxy.detach(); + if (_isOwner) { + FakeObject *fake = reinterpret_cast *>(_instance); + delete fake; + } + } + + void detach() { + _isOwner = false; + _proxy.detach(); + } + + + void getActualInvocations(std::unordered_set &into) const override { + std::vector vec; + _proxy.getMethodMocks(vec); + for (ActualInvocationsSource *s : vec) { + s->getActualInvocations(into); + } + } + + void reset() { + _proxy.Reset(); + if (_isOwner) { + FakeObject *fake = reinterpret_cast *>(_instance); + fake->initializeDataMembersArea(); + } + } + + virtual C &get() override { + return _proxy.get(); + } + + virtual FakeitContext &getFakeIt() override { + return _fakeit; + } + + template::value>::type> + DataMemberStubbingRoot stubDataMember(DATA_TYPE T::*member, const arglist &... ctorargs) { + _proxy.stubDataMember(member, ctorargs...); + return DataMemberStubbingRoot(); + } + + template::value>::type> + MockingContext stubMethod(R(T::*vMethod)(arglist...)) { + return MockingContext(new UniqueMethodMockingContextImpl < id, R, arglist... > + (*this, vMethod)); + } + + DtorMockingContext stubDtor() { + return DtorMockingContext(new DtorMockingContextImpl(*this)); + } + + private: + DynamicProxy _proxy; + C *_instance; + bool _isOwner; + FakeitContext &_fakeit; + + template + class MethodMockingContextBase : public MethodMockingContext::Context { + protected: + MockImpl &_mock; + + virtual RecordedMethodBody &getRecordedMethodBody() = 0; + + public: + MethodMockingContextBase(MockImpl &mock) : _mock(mock) { } + + virtual ~MethodMockingContextBase() = default; + + void addMethodInvocationHandler(typename ActualInvocation::Matcher *matcher, + ActualInvocationHandler *invocationHandler) { + getRecordedMethodBody().addMethodInvocationHandler(matcher, invocationHandler); + } + + void scanActualInvocations(const std::function &)> &scanner) { + getRecordedMethodBody().scanActualInvocations(scanner); + } + + void setMethodDetails(std::string mockName, std::string methodName) { + getRecordedMethodBody().setMethodDetails(mockName, methodName); + } + + bool isOfMethod(MethodInfo &method) { + return getRecordedMethodBody().isOfMethod(method); + } + + ActualInvocationsSource &getInvolvedMock() { + return _mock; + } + + std::string getMethodName() { + return getRecordedMethodBody().getMethod().name(); + } + + }; + + template + class MethodMockingContextImpl : public MethodMockingContextBase { + protected: + + R (C::*_vMethod)(arglist...); + + public: + virtual ~MethodMockingContextImpl() = default; + + MethodMockingContextImpl(MockImpl &mock, R (C::*vMethod)(arglist...)) + : MethodMockingContextBase(mock), _vMethod(vMethod) { + } + + + virtual std::function getOriginalMethod() override { + void *mPtr = MethodMockingContextBase::_mock.getOriginalMethod(_vMethod); + C * instance = &(MethodMockingContextBase::_mock.get()); + return [=](arglist&... args) -> R { + auto m = union_cast::type>(mPtr); + return m(instance, std::forward(args)...); + }; + } + }; + + + template + class UniqueMethodMockingContextImpl : public MethodMockingContextImpl { + protected: + + virtual RecordedMethodBody &getRecordedMethodBody() override { + return MethodMockingContextBase::_mock.template stubMethodIfNotStubbed( + MethodMockingContextBase::_mock._proxy, + MethodMockingContextImpl::_vMethod); + } + + public: + + UniqueMethodMockingContextImpl(MockImpl &mock, R (C::*vMethod)(arglist...)) + : MethodMockingContextImpl(mock, vMethod) { + } + }; + + class DtorMockingContextImpl : public MethodMockingContextBase { + + protected: + + virtual RecordedMethodBody &getRecordedMethodBody() override { + return MethodMockingContextBase::_mock.stubDtorIfNotStubbed( + MethodMockingContextBase::_mock._proxy); + } + + public: + virtual ~DtorMockingContextImpl() = default; + + DtorMockingContextImpl(MockImpl &mock) + : MethodMockingContextBase(mock) { + } + + virtual std::function getOriginalMethod() override { + C &instance = MethodMockingContextBase::_mock.get(); + return [=, &instance]() -> void { + }; + } + + }; + + static MockImpl *getMockImpl(void *instance) { + FakeObject *fake = reinterpret_cast *>(instance); + MockImpl *mock = reinterpret_cast *>(fake->getVirtualTable().getCookie( + 1)); + return mock; + } + + void unmocked() { + ActualInvocation<> invocation(Invocation::nextInvocationOrdinal(), UnknownMethod::instance()); + UnexpectedMethodCallEvent event(UnexpectedType::Unmocked, invocation); + auto &fakeit = getMockImpl(this)->_fakeit; + fakeit.handle(event); + + std::string format = fakeit.format(event); + UnexpectedMethodCallException e(format); + throw e; + } + + static C *createFakeInstance() { + FakeObject *fake = new FakeObject(); + void *unmockedMethodStubPtr = union_cast(&MockImpl::unmocked); + fake->getVirtualTable().initAll(unmockedMethodStubPtr); + return reinterpret_cast(fake); + } + + template + void *getOriginalMethod(R (C::*vMethod)(arglist...)) { + auto vt = _proxy.getOriginalVT(); + auto offset = VTUtils::getOffset(vMethod); + void *origMethodPtr = vt.getMethod(offset); + return origMethodPtr; + } + + void *getOriginalDtor() { + auto vt = _proxy.getOriginalVT(); + auto offset = VTUtils::getDestructorOffset(); + void *origMethodPtr = vt.getMethod(offset); + return origMethodPtr; + } + + template + RecordedMethodBody &stubMethodIfNotStubbed(DynamicProxy &proxy, + R (C::*vMethod)(arglist...)) { + if (!proxy.isMethodStubbed(vMethod)) { + proxy.template stubMethod(vMethod, createRecordedMethodBody < R, arglist... > (*this, vMethod)); + } + Destructible *d = proxy.getMethodMock(vMethod); + RecordedMethodBody *methodMock = dynamic_cast *>(d); + return *methodMock; + } + + RecordedMethodBody &stubDtorIfNotStubbed(DynamicProxy &proxy) { + if (!proxy.isDtorStubbed()) { + proxy.stubDtor(createRecordedDtorBody(*this)); + } + Destructible *d = proxy.getDtorMock(); + RecordedMethodBody *dtorMock = dynamic_cast *>(d); + return *dtorMock; + } + + MockImpl(FakeitContext &fakeit, C &obj, bool isSpy) + : _proxy{obj}, _instance(&obj), _isOwner(!isSpy), _fakeit(fakeit) { + } + + template + static RecordedMethodBody *createRecordedMethodBody(MockObject &mock, + R(C::*vMethod)(arglist...)) { + return new RecordedMethodBody(mock.getFakeIt(), typeid(vMethod).name()); + } + + static RecordedMethodBody *createRecordedDtorBody(MockObject &mock) { + return new RecordedMethodBody(mock.getFakeIt(), "dtor"); + } + + }; +} +namespace fakeit { + + template + struct Prototype; + + template + struct Prototype { + + typedef R Type(Args...); + + typedef R ConstType(Args...) const; + + template + struct MemberType { + + typedef Type(C::*type); + typedef ConstType(C::*cosntType); + + static type get(type t) { + return t; + } + + static cosntType getconst(cosntType t) { + return t; + } + + }; + + }; + + template + struct UniqueMethod { + R (C::*method)(arglist...); + + UniqueMethod(R (C::*vMethod)(arglist...)) : method(vMethod) { } + + int uniqueId() { + return X; + } + + + + + }; + +} + + +namespace fakeit { + namespace internal { + } + using namespace fakeit; + using namespace fakeit::internal; + + template + class Mock : public ActualInvocationsSource { + MockImpl impl; + public: + virtual ~Mock() = default; + + static_assert(std::is_polymorphic::value, "Can only mock a polymorphic type"); + + Mock() : impl(Fakeit) { + } + + explicit Mock(C &obj) : impl(Fakeit, obj) { + } + + virtual C &get() { + return impl.get(); + } + + C &operator()() { + return get(); + } + + void Reset() { + impl.reset(); + } + + template::value>::type> + DataMemberStubbingRoot Stub(DATA_TYPE C::* member, const arglist &... ctorargs) { + return impl.stubDataMember(member, ctorargs...); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R (T::*vMethod)(arglist...) const) { + auto methodWithoutConstVolatile = reinterpret_cast(vMethod); + return impl.template stubMethod(methodWithoutConstVolatile); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R(T::*vMethod)(arglist...) volatile) { + auto methodWithoutConstVolatile = reinterpret_cast(vMethod); + return impl.template stubMethod(methodWithoutConstVolatile); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R(T::*vMethod)(arglist...) const volatile) { + auto methodWithoutConstVolatile = reinterpret_cast(vMethod); + return impl.template stubMethod(methodWithoutConstVolatile); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R(T::*vMethod)(arglist...)) { + return impl.template stubMethod(vMethod); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R(T::*vMethod)(arglist...) const) { + auto methodWithoutConstVolatile = reinterpret_cast(vMethod); + return impl.template stubMethod(methodWithoutConstVolatile); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R(T::*vMethod)(arglist...) volatile) { + auto methodWithoutConstVolatile = reinterpret_cast(vMethod); + return impl.template stubMethod(methodWithoutConstVolatile); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R(T::*vMethod)(arglist...) const volatile) { + auto methodWithoutConstVolatile = reinterpret_cast(vMethod); + return impl.template stubMethod(methodWithoutConstVolatile); + } + + template::value && std::is_base_of::value>::type> + MockingContext stub(R(T::*vMethod)(arglist...)) { + auto methodWithoutConstVolatile = reinterpret_cast(vMethod); + return impl.template stubMethod(methodWithoutConstVolatile); + } + + DtorMockingContext dtor() { + return impl.stubDtor(); + } + + void getActualInvocations(std::unordered_set &into) const override { + impl.getActualInvocations(into); + } + + }; + +} + +#include + +namespace fakeit { + + class RefCount { + private: + int count; + + public: + void AddRef() { + count++; + } + + int Release() { + return --count; + } + }; + + template + class smart_ptr { + private: + T *pData; + RefCount *reference; + + public: + smart_ptr() : pData(0), reference(0) { + reference = new RefCount(); + reference->AddRef(); + } + + smart_ptr(T *pValue) : pData(pValue), reference(0) { + reference = new RefCount(); + reference->AddRef(); + } + + smart_ptr(const smart_ptr &sp) : pData(sp.pData), reference(sp.reference) { + reference->AddRef(); + } + + ~smart_ptr() THROWS { + if (reference->Release() == 0) { + delete reference; + delete pData; + } + } + + T &operator*() { + return *pData; + } + + T *operator->() { + return pData; + } + + smart_ptr &operator=(const smart_ptr &sp) { + if (this != &sp) { + + + if (reference->Release() == 0) { + delete reference; + delete pData; + } + + + + pData = sp.pData; + reference = sp.reference; + reference->AddRef(); + } + return *this; + } + }; + +} + +namespace fakeit { + + class WhenFunctor { + + struct StubbingChange { + + friend class WhenFunctor; + + virtual ~StubbingChange() THROWS { + + if (std::uncaught_exception()) { + return; + } + + _xaction.commit(); + } + + StubbingChange(StubbingChange &other) : + _xaction(other._xaction) { + } + + private: + + StubbingChange(Xaction &xaction) + : _xaction(xaction) { + } + + Xaction &_xaction; + }; + + public: + + template + struct MethodProgress : MethodStubbingProgress { + + friend class WhenFunctor; + + virtual ~MethodProgress() override = default; + + MethodProgress(MethodProgress &other) : + _progress(other._progress), _context(other._context) { + } + + MethodProgress(StubbingContext &xaction) : + _progress(new StubbingChange(xaction)), _context(xaction) { + } + + protected: + + virtual MethodStubbingProgress &DoImpl(Action *action) override { + _context.appendAction(action); + return *this; + } + + private: + smart_ptr _progress; + StubbingContext &_context; + }; + + + WhenFunctor() { + } + + template + MethodProgress operator()(const StubbingContext &stubbingContext) { + StubbingContext &rootWithoutConst = const_cast &>(stubbingContext); + MethodProgress progress(rootWithoutConst); + return progress; + } + + }; + +} +namespace fakeit { + + class FakeFunctor { + private: + template + void fake(const StubbingContext &root) { + StubbingContext &rootWithoutConst = const_cast &>(root); + rootWithoutConst.appendAction(new ReturnDefaultValue()); + rootWithoutConst.commit(); + } + + void operator()() { + } + + public: + + template + void operator()(const H &head, const M &... tail) { + fake(head); + this->operator()(tail...); + } + + }; + +} +#include +#include + + +namespace fakeit { + + struct InvocationUtils { + + static void sortByInvocationOrder(std::unordered_set &ivocations, + std::vector &result) { + auto comparator = [](Invocation *a, Invocation *b) -> bool { + return a->getOrdinal() < b->getOrdinal(); + }; + std::set sortedIvocations(comparator); + for (auto i : ivocations) + sortedIvocations.insert(i); + + for (auto i : sortedIvocations) + result.push_back(i); + } + + static void collectActualInvocations(std::unordered_set &actualInvocations, + std::vector &invocationSources) { + for (auto source : invocationSources) { + source->getActualInvocations(actualInvocations); + } + } + + static void selectNonVerifiedInvocations(std::unordered_set &actualInvocations, + std::unordered_set &into) { + for (auto invocation : actualInvocations) { + if (!invocation->isVerified()) { + into.insert(invocation); + } + } + } + + static void collectInvocationSources(std::vector &) { + } + + template + static void collectInvocationSources(std::vector &into, + const ActualInvocationsSource &mock, + const list &... tail) { + into.push_back(const_cast(&mock)); + collectInvocationSources(into, tail...); + } + + static void collectSequences(std::vector &) { + } + + template + static void collectSequences(std::vector &vec, const Sequence &sequence, const list &... tail) { + vec.push_back(&const_cast(sequence)); + collectSequences(vec, tail...); + } + + static void collectInvolvedMocks(std::vector &allSequences, + std::vector &involvedMocks) { + for (auto sequence : allSequences) { + sequence->getInvolvedMocks(involvedMocks); + } + } + + template + static T &remove_const(const T &s) { + return const_cast(s); + } + + }; + +} + +#include + +#include +#include + +namespace fakeit { + struct MatchAnalysis { + std::vector actualSequence; + std::vector matchedInvocations; + int count; + + void run(InvocationsSourceProxy &involvedInvocationSources, std::vector &expectedPattern) { + getActualInvocationSequence(involvedInvocationSources, actualSequence); + count = countMatches(expectedPattern, actualSequence, matchedInvocations); + } + + private: + static void getActualInvocationSequence(InvocationsSourceProxy &involvedMocks, + std::vector &actualSequence) { + std::unordered_set actualInvocations; + collectActualInvocations(involvedMocks, actualInvocations); + InvocationUtils::sortByInvocationOrder(actualInvocations, actualSequence); + } + + static int countMatches(std::vector &pattern, std::vector &actualSequence, + std::vector &matchedInvocations) { + int end = -1; + int count = 0; + int startSearchIndex = 0; + while (findNextMatch(pattern, actualSequence, startSearchIndex, end, matchedInvocations)) { + count++; + startSearchIndex = end; + } + return count; + } + + static void collectActualInvocations(InvocationsSourceProxy &involvedMocks, + std::unordered_set &actualInvocations) { + involvedMocks.getActualInvocations(actualInvocations); + } + + static bool findNextMatch(std::vector &pattern, std::vector &actualSequence, + int startSearchIndex, int &end, + std::vector &matchedInvocations) { + for (auto sequence : pattern) { + int index = findNextMatch(sequence, actualSequence, startSearchIndex); + if (index == -1) { + return false; + } + collectMatchedInvocations(actualSequence, matchedInvocations, index, sequence->size()); + startSearchIndex = index + sequence->size(); + } + end = startSearchIndex; + return true; + } + + + static void collectMatchedInvocations(std::vector &actualSequence, + std::vector &matchedInvocations, int start, + int length) { + int indexAfterMatchedPattern = start + length; + for (; start < indexAfterMatchedPattern; start++) { + matchedInvocations.push_back(actualSequence[start]); + } + } + + + static bool isMatch(std::vector &actualSequence, + std::vector &expectedSequence, int start) { + bool found = true; + for (unsigned int j = 0; found && j < expectedSequence.size(); j++) { + Invocation *actual = actualSequence[start + j]; + Invocation::Matcher *expected = expectedSequence[j]; + found = found && expected->matches(*actual); + } + return found; + } + + static int findNextMatch(Sequence *&pattern, std::vector &actualSequence, int startSearchIndex) { + std::vector expectedSequence; + pattern->getExpectedSequence(expectedSequence); + for (int i = startSearchIndex; i < ((int) actualSequence.size() - (int) expectedSequence.size() + 1); i++) { + if (isMatch(actualSequence, expectedSequence, i)) { + return i; + } + } + return -1; + } + + }; +} + +namespace fakeit { + + struct SequenceVerificationExpectation { + + friend class SequenceVerificationProgress; + + ~SequenceVerificationExpectation() THROWS { + if (std::uncaught_exception()) { + return; + } + VerifyExpectation(_fakeit); + } + + void setExpectedPattern(std::vector expectedPattern) { + _expectedPattern = expectedPattern; + } + + void setExpectedCount(const int count) { + _expectedCount = count; + } + + void setFileInfo(std::string file, int line, std::string callingMethod) { + _file = file; + _line = line; + _testMethod = callingMethod; + } + + private: + + VerificationEventHandler &_fakeit; + InvocationsSourceProxy _involvedInvocationSources; + std::vector _expectedPattern; + int _expectedCount; + + std::string _file; + int _line; + std::string _testMethod; + bool _isVerified; + + SequenceVerificationExpectation( + VerificationEventHandler &fakeit, + InvocationsSourceProxy mocks, + std::vector &expectedPattern) : + _fakeit(fakeit), + _involvedInvocationSources(mocks), + _expectedPattern(expectedPattern), + _expectedCount(-1), + _line(0), + _isVerified(false) { + } + + + void VerifyExpectation(VerificationEventHandler &verificationErrorHandler) { + if (_isVerified) + return; + _isVerified = true; + + MatchAnalysis ma; + ma.run(_involvedInvocationSources, _expectedPattern); + + if (isAtLeastVerification() && atLeastLimitNotReached(ma.count)) { + return handleAtLeastVerificationEvent(verificationErrorHandler, ma.actualSequence, ma.count); + } + + if (isExactVerification() && exactLimitNotMatched(ma.count)) { + return handleExactVerificationEvent(verificationErrorHandler, ma.actualSequence, ma.count); + } + + markAsVerified(ma.matchedInvocations); + } + + std::vector &collectSequences(std::vector &vec) { + return vec; + } + + template + std::vector &collectSequences(std::vector &vec, const Sequence &sequence, + const list &... tail) { + vec.push_back(&const_cast(sequence)); + return collectSequences(vec, tail...); + } + + + static void markAsVerified(std::vector &matchedInvocations) { + for (auto i : matchedInvocations) { + i->markAsVerified(); + } + } + + bool isAtLeastVerification() { + + return _expectedCount < 0; + } + + bool isExactVerification() { + return !isAtLeastVerification(); + } + + bool atLeastLimitNotReached(int count) { + return count < -_expectedCount; + } + + bool exactLimitNotMatched(int count) { + return count != _expectedCount; + } + + void handleExactVerificationEvent(VerificationEventHandler &verificationErrorHandler, + std::vector actualSequence, int count) { + SequenceVerificationEvent evt(VerificationType::Exact, _expectedPattern, actualSequence, _expectedCount, + count); + evt.setFileInfo(_file, _line, _testMethod); + return verificationErrorHandler.handle(evt); + } + + void handleAtLeastVerificationEvent(VerificationEventHandler &verificationErrorHandler, + std::vector actualSequence, int count) { + SequenceVerificationEvent evt(VerificationType::AtLeast, _expectedPattern, actualSequence, -_expectedCount, + count); + evt.setFileInfo(_file, _line, _testMethod); + return verificationErrorHandler.handle(evt); + } + + }; + +} +namespace fakeit { + class ThrowFalseEventHandler : public VerificationEventHandler { + + void handle(const SequenceVerificationEvent &) override { + throw false; + } + + void handle(const NoMoreInvocationsVerificationEvent &) override { + throw false; + } + }; +} +#include +#include +#include + +namespace fakeit { + + template + static std::string to_string(const T &n) { + std::ostringstream stm; + stm << n; + return stm.str(); + } + +} + + +namespace fakeit { + + struct FakeitContext; + + class SequenceVerificationProgress { + + friend class UsingFunctor; + + friend class VerifyFunctor; + + friend class UsingProgress; + + smart_ptr _expectationPtr; + + SequenceVerificationProgress(SequenceVerificationExpectation *ptr) : _expectationPtr(ptr) { + } + + SequenceVerificationProgress( + FakeitContext &fakeit, + InvocationsSourceProxy sources, + std::vector &allSequences) : + SequenceVerificationProgress(new SequenceVerificationExpectation(fakeit, sources, allSequences)) { + } + + virtual void verifyInvocations(const int times) { + _expectationPtr->setExpectedCount(times); + } + + class Terminator { + smart_ptr _expectationPtr; + + bool toBool() { + try { + ThrowFalseEventHandler eh; + _expectationPtr->VerifyExpectation(eh); + return true; + } + catch (bool e) { + return e; + } + } + + public: + Terminator(smart_ptr expectationPtr) : _expectationPtr(expectationPtr) { }; + + operator bool() { + return toBool(); + } + + bool operator!() const { return !const_cast(this)->toBool(); } + }; + + public: + + ~SequenceVerificationProgress() THROWS { }; + + operator bool() { + return Terminator(_expectationPtr); + } + + bool operator!() const { return !Terminator(_expectationPtr); } + + Terminator Never() { + Exactly(0); + return Terminator(_expectationPtr); + } + + Terminator Once() { + Exactly(1); + return Terminator(_expectationPtr); + } + + Terminator Twice() { + Exactly(2); + return Terminator(_expectationPtr); + } + + Terminator AtLeastOnce() { + verifyInvocations(-1); + return Terminator(_expectationPtr); + } + + Terminator Exactly(const int times) { + if (times < 0) { + throw std::invalid_argument(std::string("bad argument times:").append(fakeit::to_string(times))); + } + verifyInvocations(times); + return Terminator(_expectationPtr); + } + + Terminator Exactly(const Quantity &q) { + Exactly(q.quantity); + return Terminator(_expectationPtr); + } + + Terminator AtLeast(const int times) { + if (times < 0) { + throw std::invalid_argument(std::string("bad argument times:").append(fakeit::to_string(times))); + } + verifyInvocations(-times); + return Terminator(_expectationPtr); + } + + Terminator AtLeast(const Quantity &q) { + AtLeast(q.quantity); + return Terminator(_expectationPtr); + } + + SequenceVerificationProgress setFileInfo(std::string file, int line, std::string callingMethod) { + _expectationPtr->setFileInfo(file, line, callingMethod); + return *this; + } + }; +} + +namespace fakeit { + + class UsingProgress { + fakeit::FakeitContext &_fakeit; + InvocationsSourceProxy _sources; + + void collectSequences(std::vector &) { + } + + template + void collectSequences(std::vector &vec, const fakeit::Sequence &sequence, + const list &... tail) { + vec.push_back(&const_cast(sequence)); + collectSequences(vec, tail...); + } + + public: + + UsingProgress(fakeit::FakeitContext &fakeit, InvocationsSourceProxy source) : + _fakeit(fakeit), + _sources(source) { + } + + template + SequenceVerificationProgress Verify(const fakeit::Sequence &sequence, const list &... tail) { + std::vector allSequences; + collectSequences(allSequences, sequence, tail...); + SequenceVerificationProgress progress(_fakeit, _sources, allSequences); + return progress; + } + + }; +} + +namespace fakeit { + + class UsingFunctor { + + friend class VerifyFunctor; + + FakeitContext &_fakeit; + + public: + + UsingFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { + } + + template + UsingProgress operator()(const ActualInvocationsSource &head, const list &... tail) { + std::vector allMocks{&InvocationUtils::remove_const(head), + &InvocationUtils::remove_const(tail)...}; + InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(allMocks)}; + UsingProgress progress(_fakeit, aggregateInvocationsSource); + return progress; + } + + }; +} +#include + +namespace fakeit { + + class VerifyFunctor { + + FakeitContext &_fakeit; + + + public: + + VerifyFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { + } + + template + SequenceVerificationProgress operator()(const Sequence &sequence, const list &... tail) { + std::vector allSequences{&InvocationUtils::remove_const(sequence), + &InvocationUtils::remove_const(tail)...}; + + std::vector involvedSources; + InvocationUtils::collectInvolvedMocks(allSequences, involvedSources); + InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(involvedSources)}; + + UsingProgress usingProgress(_fakeit, aggregateInvocationsSource); + return usingProgress.Verify(sequence, tail...); + } + + }; + +} +#include +#include +namespace fakeit { + + class VerifyNoOtherInvocationsVerificationProgress { + + friend class VerifyNoOtherInvocationsFunctor; + + struct VerifyNoOtherInvocationsExpectation { + + friend class VerifyNoOtherInvocationsVerificationProgress; + + ~VerifyNoOtherInvocationsExpectation() THROWS { + if (std::uncaught_exception()) { + return; + } + + VerifyExpectation(_fakeit); + } + + void setFileInfo(std::string file, int line, std::string callingMethod) { + _file = file; + _line = line; + _callingMethod = callingMethod; + } + + private: + + VerificationEventHandler &_fakeit; + std::vector _mocks; + + std::string _file; + int _line; + std::string _callingMethod; + bool _isVerified; + + VerifyNoOtherInvocationsExpectation(VerificationEventHandler &fakeit, + std::vector mocks) : + _fakeit(fakeit), + _mocks(mocks), + _line(0), + _isVerified(false) { + } + + VerifyNoOtherInvocationsExpectation(VerifyNoOtherInvocationsExpectation &other) = default; + + void VerifyExpectation(VerificationEventHandler &verificationErrorHandler) { + if (_isVerified) + return; + _isVerified = true; + + std::unordered_set actualInvocations; + InvocationUtils::collectActualInvocations(actualInvocations, _mocks); + + std::unordered_set nonVerifiedInvocations; + InvocationUtils::selectNonVerifiedInvocations(actualInvocations, nonVerifiedInvocations); + + if (nonVerifiedInvocations.size() > 0) { + std::vector sortedNonVerifiedInvocations; + InvocationUtils::sortByInvocationOrder(nonVerifiedInvocations, sortedNonVerifiedInvocations); + + std::vector sortedActualInvocations; + InvocationUtils::sortByInvocationOrder(actualInvocations, sortedActualInvocations); + + NoMoreInvocationsVerificationEvent evt(sortedActualInvocations, sortedNonVerifiedInvocations); + evt.setFileInfo(_file, _line, _callingMethod); + return verificationErrorHandler.handle(evt); + } + } + + }; + + fakeit::smart_ptr _ptr; + + VerifyNoOtherInvocationsVerificationProgress(VerifyNoOtherInvocationsExpectation *ptr) : + _ptr(ptr) { + } + + VerifyNoOtherInvocationsVerificationProgress(FakeitContext &fakeit, + std::vector &invocationSources) + : VerifyNoOtherInvocationsVerificationProgress( + new VerifyNoOtherInvocationsExpectation(fakeit, invocationSources) + ) { + } + + bool toBool() { + try { + ThrowFalseEventHandler ev; + _ptr->VerifyExpectation(ev); + return true; + } + catch (bool e) { + return e; + } + } + + public: + + + ~VerifyNoOtherInvocationsVerificationProgress() THROWS { + }; + + VerifyNoOtherInvocationsVerificationProgress setFileInfo(std::string file, int line, + std::string callingMethod) { + _ptr->setFileInfo(file, line, callingMethod); + return *this; + } + + operator bool() { + return toBool(); + } + + bool operator!() const { return !const_cast(this)->toBool(); } + + }; + +} + + +namespace fakeit { + class VerifyNoOtherInvocationsFunctor { + + FakeitContext &_fakeit; + + public: + + VerifyNoOtherInvocationsFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { + } + + void operator()() { + } + + template + VerifyNoOtherInvocationsVerificationProgress operator()(const ActualInvocationsSource &head, + const list &... tail) { + std::vector invocationSources{&InvocationUtils::remove_const(head), + &InvocationUtils::remove_const(tail)...}; + VerifyNoOtherInvocationsVerificationProgress progress{_fakeit, invocationSources}; + return progress; + } + }; + +} +namespace fakeit { + + class SpyFunctor { + private: + + template + void spy(const SpyingContext &root) { + SpyingContext &rootWithoutConst = const_cast &>(root); + auto methodFromOriginalVT = rootWithoutConst.getOriginalMethod(); + rootWithoutConst.appendAction(new ReturnDelegateValue(methodFromOriginalVT)); + rootWithoutConst.commit(); + } + + void operator()() { + } + + public: + + template + void operator()(const H &head, const M &... tail) { + spy(head); + this->operator()(tail...); + } + + }; + +} + +#include +#include + +namespace fakeit { + class VerifyUnverifiedFunctor { + + FakeitContext &_fakeit; + + public: + + VerifyUnverifiedFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { + } + + template + SequenceVerificationProgress operator()(const Sequence &sequence, const list &... tail) { + std::vector allSequences{&InvocationUtils::remove_const(sequence), + &InvocationUtils::remove_const(tail)...}; + + std::vector involvedSources; + InvocationUtils::collectInvolvedMocks(allSequences, involvedSources); + + InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(involvedSources)}; + InvocationsSourceProxy unverifiedInvocationsSource{ + new UnverifiedInvocationsSource(aggregateInvocationsSource)}; + + UsingProgress usingProgress(_fakeit, unverifiedInvocationsSource); + return usingProgress.Verify(sequence, tail...); + } + + }; + + class UnverifiedFunctor { + public: + UnverifiedFunctor(FakeitContext &fakeit) : Verify(fakeit) { + } + + VerifyUnverifiedFunctor Verify; + + template + UnverifiedInvocationsSource operator()(const ActualInvocationsSource &head, const list &... tail) { + std::vector allMocks{&InvocationUtils::remove_const(head), + &InvocationUtils::remove_const(tail)...}; + InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(allMocks)}; + UnverifiedInvocationsSource unverifiedInvocationsSource{aggregateInvocationsSource}; + return unverifiedInvocationsSource; + } + + + + + + + + + + + + + + }; +} + +namespace fakeit { + + static UsingFunctor Using(Fakeit); + static VerifyFunctor Verify(Fakeit); + static VerifyNoOtherInvocationsFunctor VerifyNoOtherInvocations(Fakeit); + static UnverifiedFunctor Unverified(Fakeit); + static SpyFunctor Spy; + static FakeFunctor Fake; + static WhenFunctor When; + + template + class SilenceUnusedVariableWarnings { + + void use(void *) { + } + + SilenceUnusedVariableWarnings() { + use(&Fake); + use(&When); + use(&Spy); + use(&Using); + use(&Verify); + use(&VerifyNoOtherInvocations); + use(&_); + } + }; + +} +#ifdef _MSC_VER +#define __func__ __FUNCTION__ +#endif + +#define MOCK_TYPE(mock) \ + std::remove_reference::type + +#define OVERLOADED_METHOD_PTR(mock, method, prototype) \ + fakeit::Prototype::MemberType::get(&MOCK_TYPE(mock)::method) + +#define CONST_OVERLOADED_METHOD_PTR(mock, method, prototype) \ + fakeit::Prototype::MemberType::getconst(&MOCK_TYPE(mock)::method) + +#define Dtor(mock) \ + mock.dtor().setMethodDetails(#mock,"destructor") + +#define Method(mock, method) \ + mock.template stub<__COUNTER__>(&MOCK_TYPE(mock)::method).setMethodDetails(#mock,#method) + +#define OverloadedMethod(mock, method, prototype) \ + mock.template stub<__COUNTER__>(OVERLOADED_METHOD_PTR( mock , method, prototype )).setMethodDetails(#mock,#method) + +#define ConstOverloadedMethod(mock, method, prototype) \ + mock.template stub<__COUNTER__>(CONST_OVERLOADED_METHOD_PTR( mock , method, prototype )).setMethodDetails(#mock,#method) + +#define Verify(...) \ + Verify( __VA_ARGS__ ).setFileInfo(__FILE__, __LINE__, __func__) + +#define Using(...) \ + Using( __VA_ARGS__ ) + +#define VerifyNoOtherInvocations(...) \ + VerifyNoOtherInvocations( __VA_ARGS__ ).setFileInfo(__FILE__, __LINE__, __func__) + +#define Fake(...) \ + Fake( __VA_ARGS__ ) + +#define When(call) \ + When(call) + + +#endif diff --git a/o2qa/runProducer.cxx b/o2qa/runProducer.cxx index b14e8c579d4f5..aa2d4223c6e63 100755 --- a/o2qa/runProducer.cxx +++ b/o2qa/runProducer.cxx @@ -1,5 +1,5 @@ /** - * runProducerStateMachine.cxx + * runProducerDevice.cxx * * @since 2015-09-30 * @author Patryk Lesiak @@ -10,11 +10,11 @@ #include #include -#include "ProducerStateMachine.h" +#include "ProducerDevice.h" namespace { -std::vector producerStateMachines; +std::vector producerDevices; } int main(int argc, char** argv) @@ -26,18 +26,18 @@ int main(int argc, char** argv) return -1; } - ProducerStateMachine ProducerStateMachine("Producer", argv[3], atof(argv[1]), atof(argv[2]), 1); - producerStateMachines.push_back(&ProducerStateMachine); + ProducerDevice producerDevice("Producer", argv[3], atof(argv[1]), atof(argv[2]), 1); + producerDevices.push_back(&producerDevice); LOG(INFO) << "PID: " << getpid(); LOG(INFO) << "Producer id: " - << producerStateMachines[0]->GetProperty(ProducerStateMachine::Id, "default_id"); + << producerDevices[0]->GetProperty(ProducerDevice::Id, "default_id"); - producerStateMachines[0]->establishChannel("req", "connect", "tcp://localhost:5005", "data"); + producerDevices[0]->establishChannel("req", "connect", "tcp://localhost:5005", "data"); - producerStateMachines[0]->executeRunLoop(); + producerDevices[0]->executeRunLoop(); - LOG(INFO) << "END OF runProducerStateMachine"; + LOG(INFO) << "END OF runProducerDevice"; return 0; } From 7fe64bf229cdd509b316c199c7a46de9e53e5efd Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Sun, 21 Feb 2016 23:25:29 +0100 Subject: [PATCH 017/135] Merger refactoring, added merger tests --- o2qa/CMakeLists.txt | 8 +- o2qa/Merger/HistogramMerger.h | 46 ------- o2qa/Merger/MergeStrategy.h | 14 -- o2qa/Merger/Merger.cxx | 58 ++++++++ o2qa/Merger/Merger.h | 18 +++ .../{HistogramMerger.cxx => MergerDevice.cxx} | 125 +++++------------- o2qa/Merger/MergerDevice.h | 40 ++++++ o2qa/Merger/Tests/MergerTestSuite.cxx | 50 ++++--- o2qa/Producer/ProducerDevice.cxx | 2 + o2qa/Producer/ProducerDevice.h | 1 + o2qa/Producer/TreeProducer.cxx | 32 ++++- o2qa/Producer/TreeProducer.h | 16 +++ o2qa/runHistogramMerger.cxx | 34 ----- o2qa/runMerger.cxx | 28 ++++ 14 files changed, 261 insertions(+), 211 deletions(-) delete mode 100755 o2qa/Merger/HistogramMerger.h delete mode 100755 o2qa/Merger/MergeStrategy.h create mode 100644 o2qa/Merger/Merger.cxx create mode 100644 o2qa/Merger/Merger.h rename o2qa/Merger/{HistogramMerger.cxx => MergerDevice.cxx} (53%) create mode 100755 o2qa/Merger/MergerDevice.h delete mode 100755 o2qa/runHistogramMerger.cxx create mode 100755 o2qa/runMerger.cxx diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index f3fa5b7ab8156..6bb0f50db6f9e 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -29,7 +29,9 @@ Link_Directories(${LINK_DIRECTORIES}) set(SRCS Producer/ProducerDevice.cxx Producer/HistogramProducer.cxx - Merger/HistogramMerger.cxx + Producer/TreeProducer.cxx + Merger/MergerDevice.cxx + Merger/Merger.cxx Viewer/HistogramViewer.cxx # SystemController/SystemController.cxx ) @@ -43,14 +45,14 @@ set(LIBRARY_NAME o2qaLibrary) GENERATE_LIBRARY() Set(Exe_Names - runHistogramMerger + runMergerDevice runProducer runHistogramViewer # runSystemController ) Set(Exe_Source - runHistogramMerger.cxx + runMerger.cxx runProducer.cxx runHistogramViewer.cxx # runSystemController.cxx diff --git a/o2qa/Merger/HistogramMerger.h b/o2qa/Merger/HistogramMerger.h deleted file mode 100755 index 5593551d4c7f7..0000000000000 --- a/o2qa/Merger/HistogramMerger.h +++ /dev/null @@ -1,46 +0,0 @@ -/** - * HistogramMerger.h - * - * @since 2014-10-10 - * @author Patryk Lesiak - */ - -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -class HistogramMerger : public FairMQDevice -{ -public: - HistogramMerger(std::string producerId, int numIoThreads); - virtual ~HistogramMerger(); - - static void CustomCleanup(void* data, void* hint); - void establishChannel(std::string type, - std::string method, - std::string address, - std::string channelName); - void executeRunLoop(); - -protected: - virtual void Run(); - -private: - TObject* mergeObjectWithGivenCollection(TObject* receivedHistogram, TCollection* mergeList); - TH1F* receiveHistogramFromProducer(); - void sendHistogramToViewer(TMessage* viewerMessage, std::unique_ptr viewerReply); - void sendReplyToProducer(std::string* message); - TCollection* addReceivedObjectToMapByName(TObject* receivedObject); - TMessage* createTMessageForViewer(TH1F* receivedHistogram, TCollection* histogramsList); - void handleSystemCommunicationWithController(); - void handleReceivedHistograms(); - - std::unordered_map> mHistogramIdTohistogramMap; -}; - diff --git a/o2qa/Merger/MergeStrategy.h b/o2qa/Merger/MergeStrategy.h deleted file mode 100755 index b8c6bec78acf9..0000000000000 --- a/o2qa/Merger/MergeStrategy.h +++ /dev/null @@ -1,14 +0,0 @@ -/** - * MergeStategy.h - * - * @since 2015-12-02 - * @author Patryk Lesiak - */ - -#pragma once - -class MergeStrategy -{ - public: - virtual void merge() = 0; -}; diff --git a/o2qa/Merger/Merger.cxx b/o2qa/Merger/Merger.cxx new file mode 100644 index 0000000000000..05e7382b8d651 --- /dev/null +++ b/o2qa/Merger/Merger.cxx @@ -0,0 +1,58 @@ +#include "Merger.h" +#include +#include + +using namespace std; + +TObject* Merger::mergeObject(TObject* object) +{ + TCollection* currentHistogramsList = addReceivedObjectToMapByName(object); + TObject* mergedHistogram = mergeObjectWithGivenCollection(object, currentHistogramsList); + return mergedHistogram; +} + +TCollection* Merger::addReceivedObjectToMapByName(TObject* receivedObject) +{ + auto foundList = mHistogramIdTohistogramMap.find(receivedObject->GetName()); + + if (foundList != mHistogramIdTohistogramMap.end()) { + foundList->second->Add(receivedObject); + return foundList->second.get(); + } + else { + auto newItemIterator = mHistogramIdTohistogramMap.insert(make_pair(receivedObject->GetName(), + make_shared())); + newItemIterator.first->second->SetOwner(); + return newItemIterator.first->second.get(); + } +} + +TObject* Merger::mergeObjectWithGivenCollection(TObject* object, TCollection* mergeList) +{ + TObject* mergedObject = object->Clone(object->GetName()); + + if (!mergedObject->IsA()->GetMethodWithPrototype("Merge", "TCollection*")) + { + LOG(ERROR) << "Object does not implement a merge function!"; + return nullptr; + } + Int_t errorCode = 0; + TString listHargs; + listHargs.Form("((TCollection*)0x%lx)", (ULong_t) mergeList); + + mergedObject->Execute("Merge", listHargs.Data(), &errorCode); + if (errorCode) + { + LOG(ERROR) << "Error " << errorCode << "running merge!"; + return nullptr; + } + + return mergedObject; +} + +Merger::~Merger() +{ + for (auto const& entry : mHistogramIdTohistogramMap) { + entry.second->Delete(); + } +} \ No newline at end of file diff --git a/o2qa/Merger/Merger.h b/o2qa/Merger/Merger.h new file mode 100644 index 0000000000000..0bcf7a65c0a0e --- /dev/null +++ b/o2qa/Merger/Merger.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include +#include +#include + +class Merger +{ +public: + virtual ~Merger(); + TObject* mergeObject(TObject* object); + TObject* mergeObjectWithGivenCollection(TObject* object, TCollection* mergeList); + TCollection* addReceivedObjectToMapByName(TObject* receivedObject); + +private: + std::unordered_map> mHistogramIdTohistogramMap; +}; \ No newline at end of file diff --git a/o2qa/Merger/HistogramMerger.cxx b/o2qa/Merger/MergerDevice.cxx similarity index 53% rename from o2qa/Merger/HistogramMerger.cxx rename to o2qa/Merger/MergerDevice.cxx index fa812fed8766c..a78e1b77c269b 100755 --- a/o2qa/Merger/HistogramMerger.cxx +++ b/o2qa/Merger/MergerDevice.cxx @@ -1,18 +1,9 @@ -/** - * HistogramMerger.cxx - * - * @since 2014-10-10 - * @author Patryk Lesiak - */ - #include #include #include #include -#include - -#include "HistogramMerger.h" +#include "MergerDevice.h" #include "HistogramTMessage.h" using namespace std; @@ -22,22 +13,19 @@ void freeTMessage_sec(void* data, void* hint) delete static_cast(hint); } -HistogramMerger::HistogramMerger(std::string mergerId, int numIoThreads) +MergerDevice::MergerDevice(unique_ptr merger, std::string mergerId, int numIoThreads) : mMerger(move(merger)) { this->SetTransport(new FairMQTransportFactoryZMQ); - this->SetProperty(HistogramMerger::Id, mergerId); - this->SetProperty(HistogramMerger::NumIoThreads, numIoThreads); + this->SetProperty(MergerDevice::Id, mergerId); + this->SetProperty(MergerDevice::NumIoThreads, numIoThreads); } -void HistogramMerger::CustomCleanup(void* data, void* hint) +void MergerDevice::CustomCleanup(void* data, void* hint) { delete (string*)hint; } -void HistogramMerger::establishChannel(std::string type, - std::string method, - std::string address, - std::string channelName) +void MergerDevice::establishChannel(std::string type, std::string method, std::string address, std::string channelName) { FairMQChannel requestChannel(type, method, address); requestChannel.UpdateSndBufSize(1000); @@ -46,7 +34,7 @@ void HistogramMerger::establishChannel(std::string type, fChannels[channelName].push_back(requestChannel); } -void HistogramMerger::executeRunLoop() +void MergerDevice::executeRunLoop() { ChangeState("INIT_DEVICE"); WaitForEndOfState("INIT_DEVICE"); @@ -58,7 +46,7 @@ void HistogramMerger::executeRunLoop() InteractiveStateLoop(); } -void HistogramMerger::Run() +void MergerDevice::Run() { const int producerChannel = 0; const int controllerChannel = 2; @@ -69,7 +57,7 @@ void HistogramMerger::Run() if (poller->CheckInput(producerChannel)) { LOG(INFO) << "Received histogram from Producer"; - handleReceivedHistograms(); + handleReceivedDataObject(); } if (poller->CheckInput(controllerChannel)) { @@ -79,29 +67,37 @@ void HistogramMerger::Run() } } -void HistogramMerger::handleReceivedHistograms() +void MergerDevice::handleReceivedDataObject() { this_thread::sleep_for(chrono::milliseconds(1000)); - TH1F* receivedHistogram = receiveHistogramFromProducer(); + TObject* receivedObject = receiveDataObjectFromProducer(); - if (receivedHistogram != nullptr) { - TCollection* currentHistogramsList = addReceivedObjectToMapByName(receivedHistogram); - TMessage * viewerMessage = createTMessageForViewer(receivedHistogram, currentHistogramsList); + if (receivedObject != nullptr) { + shared_ptr mergedHistogram(mMerger->mergeObject(receivedObject)); + + TMessage* viewerMessage = createTMessageForViewer(mergedHistogram); unique_ptr viewerReply(fTransportFactory->CreateMessage()); - sendHistogramToViewer(viewerMessage, move(viewerReply)); + sendMergedObjectToViewer(viewerMessage, move(viewerReply)); sendReplyToProducer(new string("MERGER_OK")); } } -void HistogramMerger::handleSystemCommunicationWithController() +TMessage* MergerDevice::createTMessageForViewer(shared_ptr objectToSend) +{ + TMessage* viewerMessage = new TMessage(kMESS_OBJECT); + viewerMessage->WriteObject(objectToSend.get()); + return viewerMessage; +} + +void MergerDevice::handleSystemCommunicationWithController() { this_thread::sleep_for(chrono::milliseconds(1000)); unique_ptr request(fTransportFactory->CreateMessage()); fChannels["data"].at(2).Receive(request); - string* text = new string(GetProperty(HistogramMerger::Id, "default_id") + "_ALIVE"); + string* text = new string(GetProperty(MergerDevice::Id, "default_id") + "_ALIVE"); FairMQMessage* reply = fTransportFactory->CreateMessage(const_cast(text->c_str()), text->length(), @@ -110,75 +106,27 @@ void HistogramMerger::handleSystemCommunicationWithController() fChannels["data"].at(2).Send(reply); } -TCollection* HistogramMerger::addReceivedObjectToMapByName(TObject* receivedObject) +TObject* MergerDevice::receiveDataObjectFromProducer() { - auto foundList = mHistogramIdTohistogramMap.find(receivedObject->GetName()); - - if (foundList != mHistogramIdTohistogramMap.end()) { - foundList->second->Add(receivedObject); - return foundList->second.get(); - } - else { - auto newItemIterator = mHistogramIdTohistogramMap.insert(make_pair(receivedObject->GetName(), - make_shared())); - newItemIterator.first->second->SetOwner(); - newItemIterator.first->second->Add(receivedObject); - return newItemIterator.first->second.get(); - } -} - -TMessage* HistogramMerger::createTMessageForViewer(TH1F* receivedHistogram, TCollection* histogramsList) -{ - TMessage* viewerMessage = new TMessage(kMESS_OBJECT); - shared_ptr mergedHistogram(mergeObjectWithGivenCollection(receivedHistogram, histogramsList)); - viewerMessage->WriteObject(mergedHistogram.get()); - return viewerMessage; -} - -TObject* HistogramMerger::mergeObjectWithGivenCollection(TObject* object, TCollection* mergeList) -{ - TObject* mergedObject = object->Clone(object->GetName()); - - if (!mergedObject->IsA()->GetMethodWithPrototype("Merge", "TCollection*")) - { - LOG(ERROR) << "Object does not implement a merge function!"; - return nullptr; - } - Int_t error = 0; - TString listHargs; - listHargs.Form("((TCollection*)0x%lx)", (ULong_t) mergeList); - - mergedObject->Execute("Merge", listHargs.Data(), &error); - if (error) - { - LOG(ERROR) << "Error " << error << "running merge!"; - return nullptr; - } - - return mergedObject; -} - -TH1F* HistogramMerger::receiveHistogramFromProducer() -{ - TH1F* receivedHistogram; + TObject* receivedDataObject; unique_ptr request(fTransportFactory->CreateMessage()); fChannels["data"].at(0).Receive(request); if (request->GetSize() != 0) { LOG(INFO) << "Received histogram from histogram producer"; HistogramTMessage tm(request->GetData(), request->GetSize()); - receivedHistogram = static_cast(tm.ReadObject(tm.GetClass())); - LOG(INFO) << "Received histogram name: " << receivedHistogram->GetName(); + receivedDataObject = static_cast(tm.ReadObject(tm.GetClass())); + LOG(INFO) << "Received histogram name: " << receivedDataObject->GetName(); } else { LOG(ERROR) << "Received empty message from producer, skipping RUN procedure"; - receivedHistogram = nullptr; + receivedDataObject = nullptr; } - return receivedHistogram; + return receivedDataObject; } -void HistogramMerger::sendHistogramToViewer(TMessage* viewerMessage, unique_ptr viewerReply) +void MergerDevice::sendMergedObjectToViewer(TMessage* viewerMessage, unique_ptr viewerReply) { unique_ptr viewerRequest(fTransportFactory->CreateMessage(viewerMessage->Buffer(), viewerMessage->BufferSize(), @@ -198,7 +146,7 @@ void HistogramMerger::sendHistogramToViewer(TMessage* viewerMessage, unique_ptr< } } -void HistogramMerger::sendReplyToProducer(std::string* message) +void MergerDevice::sendReplyToProducer(std::string* message) { LOG(INFO) << "Sending reply to producer."; unique_ptr reply(fTransportFactory->CreateMessage(const_cast(message->c_str()), @@ -208,9 +156,4 @@ void HistogramMerger::sendReplyToProducer(std::string* message) fChannels["data"].at(0).Send(reply); } -HistogramMerger::~HistogramMerger() -{ - for (auto const& entry : mHistogramIdTohistogramMap) { - entry.second->Delete(); - } -} + diff --git a/o2qa/Merger/MergerDevice.h b/o2qa/Merger/MergerDevice.h new file mode 100755 index 0000000000000..9f80760269fe4 --- /dev/null +++ b/o2qa/Merger/MergerDevice.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +#include "Merger.h" + +class MergerDevice : public FairMQDevice +{ +public: + MergerDevice(std::unique_ptr merger, std::string producerId, int numIoThreads); + virtual ~MergerDevice() = default; + + static void CustomCleanup(void* data, void* hint); + void establishChannel(std::string type, + std::string method, + std::string address, + std::string channelName); + void executeRunLoop(); + +protected: + virtual void Run(); + +private: + TObject* receiveDataObjectFromProducer(); + void sendReplyToProducer(std::string* message); + + TMessage* createTMessageForViewer(std::shared_ptr objectToSend); + void sendMergedObjectToViewer(TMessage* viewerMessage, std::unique_ptr viewerReply); + + void handleSystemCommunicationWithController(); + void handleReceivedDataObject(); + + std::unique_ptr mMerger; +}; + diff --git a/o2qa/Merger/Tests/MergerTestSuite.cxx b/o2qa/Merger/Tests/MergerTestSuite.cxx index 59b8a6f7e6a75..1283e99344b29 100755 --- a/o2qa/Merger/Tests/MergerTestSuite.cxx +++ b/o2qa/Merger/Tests/MergerTestSuite.cxx @@ -4,45 +4,51 @@ #include #include #include +#include +#include +#include -#include "Merger/HistogramMerger.h" +#include "Merger/MergerDevice.h" +#include "Merger.h" #include "fakeit.hpp" -class Dummy { -public: - virtual int returnThree() {return 3;} -}; +BOOST_AUTO_TEST_SUITE(MergerDeviceTestSuite) -BOOST_AUTO_TEST_SUITE(HistogramMergerTestSuite) - -BOOST_AUTO_TEST_CASE(createMergerWithGivenIdAndNumberOfThreads) +BOOST_AUTO_TEST_CASE(createMergerDeviceWithGivenIdAndNumberOfThreads) { std::string mergerId = "Test_merger"; unsigned short numberOfThreads = 1; - std::unique_ptr merger(new HistogramMerger(mergerId, numberOfThreads)); + std::unique_ptr merger(new MergerDevice(std::unique_ptr(new Merger()), mergerId, numberOfThreads)); BOOST_CHECK(merger != nullptr); - BOOST_CHECK(merger->GetProperty(HistogramMerger::Id, "default_id") == mergerId); - BOOST_CHECK(merger->GetProperty(HistogramMerger::NumIoThreads, 0) == numberOfThreads); + BOOST_CHECK(merger->GetProperty(MergerDevice::Id, "default_id") == mergerId); + BOOST_CHECK(merger->GetProperty(MergerDevice::NumIoThreads, 0) == numberOfThreads); } -BOOST_AUTO_TEST_CASE(checkClass) +BOOST_AUTO_TEST_CASE(mergeTwoHistograms) { - Dummy dummy = Dummy(); - BOOST_CHECK(dummy.returnThree() == 3); -} + using namespace std; -BOOST_AUTO_TEST_CASE(CheckFakeIt) -{ - using namespace fakeit; - Mock mock; + const unsigned numberOfHistogramsToTest = 2; + Merger* merger = new Merger(); + vector histograms; + + for(int i = 0; i < numberOfHistogramsToTest; ++i) { + histograms.push_back(TH1F("test_histogram", "Gauss distribution", 100, -10.0, 10.0)); + histograms.at(i).FillRandom("gaus", 1000); + + TH1* histogram = dynamic_cast(merger->mergeObject(&(histograms.at(i)))); + + ostringstream errorMessage; + errorMessage << "Expected: " << (1000 * (i + 1)) << " entries, received: " << histogram->GetEntries(); + BOOST_TEST(histogram->GetEntries() == (1000 * (i + 1)), errorMessage.str().c_str()); - When(Method(mock, returnThree)).Return(1); + delete histogram; + } - Dummy &ref = mock.get(); + delete merger; - BOOST_CHECK(ref.returnThree() == 1); } BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Producer/ProducerDevice.cxx b/o2qa/Producer/ProducerDevice.cxx index 2b73dd27d35af..a0a35895f6e58 100755 --- a/o2qa/Producer/ProducerDevice.cxx +++ b/o2qa/Producer/ProducerDevice.cxx @@ -7,6 +7,7 @@ #include "ProducerDevice.h" #include "HistogramProducer.h" +#include "TreeProducer.h" using namespace std; @@ -16,6 +17,7 @@ ProducerDevice::ProducerDevice(string producerId, string histogramId, float xLow this->SetProperty(ProducerDevice::Id, producerId); this->SetProperty(ProducerDevice::NumIoThreads, numIoThreads); mProducer = make_shared(histogramId, xLow, xUp); + //mProducer = make_shared(histogramId); } void freeTMessage(void* data, void* hint) diff --git a/o2qa/Producer/ProducerDevice.h b/o2qa/Producer/ProducerDevice.h index b713c7b7e003c..6be70ce6a3950 100755 --- a/o2qa/Producer/ProducerDevice.h +++ b/o2qa/Producer/ProducerDevice.h @@ -4,6 +4,7 @@ #include #include #include + #include "Producer.h" class ProducerDevice : public FairMQDevice diff --git a/o2qa/Producer/TreeProducer.cxx b/o2qa/Producer/TreeProducer.cxx index 9025c56ce78d3..00ba8649b161a 100644 --- a/o2qa/Producer/TreeProducer.cxx +++ b/o2qa/Producer/TreeProducer.cxx @@ -1 +1,31 @@ -#include "TreeProducer.h" \ No newline at end of file +#include +#include "TRandom.h" + +#include "TreeProducer.h" + +using namespace std; + +TreeProducer::TreeProducer(string treeId) +{ + mTreeId = treeId; +} + +TObject* TreeProducer::produceData() const +{ + TTree* tree = new TTree(mTreeId.c_str(), "TestTree"); + //createBranch(tree); + return tree; +} + +void TreeProducer::createBranch(TTree* tree) const +{ + Float_t new_v; + TBranch *newBranch = tree->Branch("new_v", &new_v, "new_v/F"); + + for (int i = 0; i < 10; ++i) { + new_v = gRandom->Gaus(0, 1); + newBranch->Fill(); + } + + tree->AddBranchToCache(newBranch); +} \ No newline at end of file diff --git a/o2qa/Producer/TreeProducer.h b/o2qa/Producer/TreeProducer.h index 50e96676b7027..d19d44fda8b7c 100644 --- a/o2qa/Producer/TreeProducer.h +++ b/o2qa/Producer/TreeProducer.h @@ -1 +1,17 @@ #pragma once + +#include "Producer.h" + +#include +#include + +class TreeProducer : public Producer +{ +public: + TreeProducer(std::string treeId); + TObject* produceData() const override; + +private: + std::string mTreeId; + void createBranch(TTree* tree) const; +}; diff --git a/o2qa/runHistogramMerger.cxx b/o2qa/runHistogramMerger.cxx deleted file mode 100755 index b439b212f7f73..0000000000000 --- a/o2qa/runHistogramMerger.cxx +++ /dev/null @@ -1,34 +0,0 @@ -/** - * runHistogramMerger.cxx - * - * @since 2013-04-23 - * @author Patryk Lesiak - */ - -#include -#include -#include -#include - -#include "HistogramMerger.h" -#include "HistogramTMessage.h" - -using namespace std; - -HistogramMerger histogramMerger("Merger_1", 1); - -int main(int argc, char** argv) -{ - LOG(INFO) << "PID: " << getpid(); - LOG(INFO) << "Merger id: " - << histogramMerger.GetProperty(HistogramMerger::Id, "default_id"); - - histogramMerger.establishChannel("rep", "bind", "tcp://*:5005", "data"); - histogramMerger.establishChannel("req", "connect", "tcp://localhost:5004", "data"); - // histogramMerger.establishChannel("rep", "bind", "tcp://*:5001", "data"); // controller - histogramMerger.executeRunLoop(); - - LOG(INFO) << "END OF runHistogramMerger"; - - return 0; -} diff --git a/o2qa/runMerger.cxx b/o2qa/runMerger.cxx new file mode 100755 index 0000000000000..140c29f2e95b7 --- /dev/null +++ b/o2qa/runMerger.cxx @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +#include "MergerDevice.h" +#include "HistogramTMessage.h" +#include "Merger.h" + +using namespace std; + +MergerDevice mergerDevice(unique_ptr(new Merger()), "Merger_1", 1); + +int main(int argc, char** argv) +{ + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "Merger id: " + << mergerDevice.GetProperty(MergerDevice::Id, "default_id"); + + mergerDevice.establishChannel("rep", "bind", "tcp://*:5005", "data"); + mergerDevice.establishChannel("req", "connect", "tcp://localhost:5004", "data"); + // mergerDevice.establishChannel("rep", "bind", "tcp://*:5001", "data"); // controller + mergerDevice.executeRunLoop(); + + LOG(INFO) << "END OF runHistogramMerger"; + + return 0; +} From 278fd49b64b1e0444175b435d34427613dd4319e Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Mon, 22 Feb 2016 23:34:16 +0100 Subject: [PATCH 018/135] Merger refactoring and unit tests --- o2qa/Merger/Merger.cxx | 8 ++-- o2qa/Merger/Tests/MergerTestSuite.cxx | 58 +++++++++++++++++++---- o2qa/Producer/HistogramProducer.cxx | 15 ++++-- o2qa/Producer/HistogramProducer.h | 8 ++-- o2qa/Producer/Producer.h | 2 +- o2qa/Producer/ProducerDevice.cxx | 4 +- o2qa/Producer/ProducerDevice.h | 7 ++- o2qa/Producer/Tests/ProducerTestSuite.cxx | 14 ++++-- o2qa/Producer/TreeProducer.cxx | 2 +- o2qa/Producer/TreeProducer.h | 2 +- o2qa/Viewer/HistogramViewer.cxx | 21 ++------ o2qa/Viewer/HistogramViewer.h | 12 ++--- o2qa/runHistogramViewer.cxx | 7 --- o2qa/runProducer.cxx | 13 ++--- o2qa/runSystemController.cxx | 7 --- 15 files changed, 101 insertions(+), 79 deletions(-) diff --git a/o2qa/Merger/Merger.cxx b/o2qa/Merger/Merger.cxx index 05e7382b8d651..b495967c64662 100644 --- a/o2qa/Merger/Merger.cxx +++ b/o2qa/Merger/Merger.cxx @@ -13,14 +13,14 @@ TObject* Merger::mergeObject(TObject* object) TCollection* Merger::addReceivedObjectToMapByName(TObject* receivedObject) { - auto foundList = mHistogramIdTohistogramMap.find(receivedObject->GetName()); + auto foundList = mHistogramIdTohistogramMap.find(receivedObject->GetTitle()); if (foundList != mHistogramIdTohistogramMap.end()) { foundList->second->Add(receivedObject); return foundList->second.get(); } else { - auto newItemIterator = mHistogramIdTohistogramMap.insert(make_pair(receivedObject->GetName(), + auto newItemIterator = mHistogramIdTohistogramMap.insert(make_pair(receivedObject->GetTitle(), make_shared())); newItemIterator.first->second->SetOwner(); return newItemIterator.first->second.get(); @@ -29,7 +29,9 @@ TCollection* Merger::addReceivedObjectToMapByName(TObject* receivedObject) TObject* Merger::mergeObjectWithGivenCollection(TObject* object, TCollection* mergeList) { - TObject* mergedObject = object->Clone(object->GetName()); + ostringstream newName; + newName << object->GetName() << "clone"; + TObject* mergedObject = object->Clone(newName.str().c_str()); if (!mergedObject->IsA()->GetMethodWithPrototype("Merge", "TCollection*")) { diff --git a/o2qa/Merger/Tests/MergerTestSuite.cxx b/o2qa/Merger/Tests/MergerTestSuite.cxx index 1283e99344b29..e422d354a7eba 100755 --- a/o2qa/Merger/Tests/MergerTestSuite.cxx +++ b/o2qa/Merger/Tests/MergerTestSuite.cxx @@ -19,26 +19,31 @@ BOOST_AUTO_TEST_CASE(createMergerDeviceWithGivenIdAndNumberOfThreads) std::string mergerId = "Test_merger"; unsigned short numberOfThreads = 1; - std::unique_ptr merger(new MergerDevice(std::unique_ptr(new Merger()), mergerId, numberOfThreads)); + std::unique_ptr merger(new MergerDevice(std::unique_ptr(new Merger()), + mergerId, + numberOfThreads)); BOOST_CHECK(merger != nullptr); BOOST_CHECK(merger->GetProperty(MergerDevice::Id, "default_id") == mergerId); BOOST_CHECK(merger->GetProperty(MergerDevice::NumIoThreads, 0) == numberOfThreads); } -BOOST_AUTO_TEST_CASE(mergeTwoHistograms) +BOOST_AUTO_TEST_CASE(mergeFiveHistogramsWithTheSameTitle) { using namespace std; - const unsigned numberOfHistogramsToTest = 2; + const unsigned numberOfHistogramsToTest = 5; Merger* merger = new Merger(); - vector histograms; + vector> histograms; - for(int i = 0; i < numberOfHistogramsToTest; ++i) { - histograms.push_back(TH1F("test_histogram", "Gauss distribution", 100, -10.0, 10.0)); - histograms.at(i).FillRandom("gaus", 1000); + for (int i = 0; i < numberOfHistogramsToTest; ++i) { + ostringstream histogramName; + histogramName << "test_histogram_" << i; + + histograms.push_back(make_shared(histogramName.str().c_str(), "Gauss_distribution", 100, -10.0, 10.0)); + histograms.at(i)->FillRandom("gaus", 1000); - TH1* histogram = dynamic_cast(merger->mergeObject(&(histograms.at(i)))); + TH1* histogram = dynamic_cast(merger->mergeObject(histograms.at(i).get())); ostringstream errorMessage; errorMessage << "Expected: " << (1000 * (i + 1)) << " entries, received: " << histogram->GetEntries(); @@ -48,7 +53,44 @@ BOOST_AUTO_TEST_CASE(mergeTwoHistograms) } delete merger; +} + +BOOST_AUTO_TEST_CASE(mergeFourHistogramsWithTwoDifferentTitles) +{ + using namespace std; + + const unsigned histogramsToMerge = 4; + const unsigned numberOfHistogramsWithTheSameTitle = 2; + unsigned histogramNameIndex = 0; + Merger* merger = new Merger(); + vector> histograms; + + histograms.push_back(make_shared("test_histogram_0", "first_title", 100, -10.0, 10.0)); + histograms.push_back(make_shared("test_histogram_1", "first_title", 100, -10.0, 10.0)); + histograms.push_back(make_shared("test_histogram_2", "second_title", 100, -10.0, 10.0)); + histograms.push_back(make_shared("test_histogram_3", "second_title", 100, -10.0, 10.0)); + + for (int i = 0; i < histogramsToMerge; ++i) { + histograms.at(i)->FillRandom("gaus", 1000); + TH1* histogram = dynamic_cast(merger->mergeObject(histograms.at(i).get())); + if (i < numberOfHistogramsWithTheSameTitle) { + ostringstream errorMessage; + errorMessage << "Expected: " << (1000 * (i + 1)) << " entries, received: " << histogram->GetEntries(); + BOOST_TEST(histogram->GetEntries() == (1000 * (i + 1)), errorMessage.str().c_str()); + BOOST_TEST(histogram->GetTitle() == "first_title", "Invalid title of histogram"); + } + else { + ostringstream errorMessage; + errorMessage << "Expected: " << (1000 * (i - 1)) << " entries, received: " << histogram->GetEntries(); + BOOST_TEST(histogram->GetEntries() == (1000 * (i - 1)), errorMessage.str().c_str()); + BOOST_TEST(histogram->GetTitle() == "second_title", "Invalid title of histogram"); + } + + delete histogram; + } + + delete merger; } BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Producer/HistogramProducer.cxx b/o2qa/Producer/HistogramProducer.cxx index d28e1ddb8a551..d954129ccd929 100644 --- a/o2qa/Producer/HistogramProducer.cxx +++ b/o2qa/Producer/HistogramProducer.cxx @@ -1,20 +1,27 @@ #include +#include #include "HistogramProducer.h" using namespace std; -HistogramProducer::HistogramProducer(string histogramId, float xLow, float xUp) +HistogramProducer::HistogramProducer(string histogramNamePrefix, string histogramTitle, float xLow, float xUp) : producedHistogramNumber(0) { - mHistogramId = histogramId; + mHistogramNamePrefix = histogramNamePrefix; + mHistogramTitle = histogramTitle; mBeansNumber = 100; mXLow = xLow; mXUp = xUp; } -TObject* HistogramProducer::produceData() const +TObject* HistogramProducer::produceData() { - TH1F* histogram = new TH1F(mHistogramId.c_str(), "Gauss distribution", mBeansNumber, mXLow, mXUp); + ostringstream histogramName; + string histogramTitle = "Gauss_distribution"; + + histogramName << mHistogramNamePrefix << producedHistogramNumber++; + + TH1F* histogram = new TH1F(histogramName.str().c_str(), mHistogramTitle.c_str(), mBeansNumber, mXLow, mXUp); histogram->FillRandom("gaus", 1000); return histogram; } \ No newline at end of file diff --git a/o2qa/Producer/HistogramProducer.h b/o2qa/Producer/HistogramProducer.h index 52e30723acf2d..50363a6210271 100644 --- a/o2qa/Producer/HistogramProducer.h +++ b/o2qa/Producer/HistogramProducer.h @@ -7,12 +7,14 @@ class HistogramProducer : public Producer { public: - HistogramProducer(std::string histogramId, float xLow, float xUp); - TObject* produceData() const override; + HistogramProducer(std::string histogramNamePrefix, std::string histogramTitle, float xLow, float xUp); + TObject* produceData() override; private: - std::string mHistogramId; + std::string mHistogramNamePrefix; + std::string mHistogramTitle; int mBeansNumber; double mXLow; double mXUp; + int producedHistogramNumber; }; \ No newline at end of file diff --git a/o2qa/Producer/Producer.h b/o2qa/Producer/Producer.h index 0b05eaebef4c6..4815aff66af99 100644 --- a/o2qa/Producer/Producer.h +++ b/o2qa/Producer/Producer.h @@ -5,5 +5,5 @@ class TObject; class Producer { public: - virtual TObject* produceData() const = 0; + virtual TObject* produceData() = 0; }; diff --git a/o2qa/Producer/ProducerDevice.cxx b/o2qa/Producer/ProducerDevice.cxx index a0a35895f6e58..a7275934402a4 100755 --- a/o2qa/Producer/ProducerDevice.cxx +++ b/o2qa/Producer/ProducerDevice.cxx @@ -11,12 +11,12 @@ using namespace std; -ProducerDevice::ProducerDevice(string producerId, string histogramId, float xLow, float xUp, int numIoThreads) +ProducerDevice::ProducerDevice(string producerId, string histogramNamePrefix, string histogramTitle, float xLow, float xUp, int numIoThreads) { this->SetTransport(new FairMQTransportFactoryZMQ); this->SetProperty(ProducerDevice::Id, producerId); this->SetProperty(ProducerDevice::NumIoThreads, numIoThreads); - mProducer = make_shared(histogramId, xLow, xUp); + mProducer = make_shared(histogramNamePrefix, histogramTitle, xLow, xUp); //mProducer = make_shared(histogramId); } diff --git a/o2qa/Producer/ProducerDevice.h b/o2qa/Producer/ProducerDevice.h index 6be70ce6a3950..9043ef2bfec33 100755 --- a/o2qa/Producer/ProducerDevice.h +++ b/o2qa/Producer/ProducerDevice.h @@ -10,7 +10,12 @@ class ProducerDevice : public FairMQDevice { public: - ProducerDevice(std::string producerId, std::string histogramId, float xLow, float xUp, int numIoThreads); + ProducerDevice(std::string producerId, + std::string histogramNamePrefix, + std::string histogramTitle, + float xLow, + float xUp, + int numIoThreads); virtual ~ProducerDevice() = default; void executeRunLoop(); diff --git a/o2qa/Producer/Tests/ProducerTestSuite.cxx b/o2qa/Producer/Tests/ProducerTestSuite.cxx index 8f3d07c0ff81f..7fa19c254e1b8 100644 --- a/o2qa/Producer/Tests/ProducerTestSuite.cxx +++ b/o2qa/Producer/Tests/ProducerTestSuite.cxx @@ -18,17 +18,23 @@ BOOST_AUTO_TEST_SUITE(ProducerTestSuite) BOOST_AUTO_TEST_CASE(produceHistogramWithGivenParameters) { - string histogramId = "TestId"; + string histogramNamePrefix = "TestId_"; + string histogramTitle = "Gauss_distribution"; float xLow = -10.0; float xUp = 10.0; const int expectedNumberOfEntries = 1000; const int expectedNumberOfBins = 100; - unique_ptr histogramProducer(new HistogramProducer(histogramId, xLow, xUp)); + unique_ptr histogramProducer(new HistogramProducer(histogramNamePrefix, + histogramTitle, + xLow, + xUp)); + unique_ptr histogram(dynamic_cast(histogramProducer->produceData())); BOOST_TEST(histogram->GetEntries() == expectedNumberOfEntries, "Invalid number of entries"); - BOOST_TEST(histogram->GetName() == histogramId, "Invalid name of histogram"); + BOOST_TEST(histogram->GetName() == "TestId_0", "Invalid name of histogram"); + BOOST_TEST(histogram->GetTitle() == histogramTitle, "Invalid title of histogram"); BOOST_TEST(histogram->GetXaxis()->GetXmin() == xLow, "Invalid minimal value for x axis"); BOOST_TEST(histogram->GetXaxis()->GetXmax() == xUp, "Invalid maximal value for x axis"); BOOST_TEST(histogram->GetNbinsX() == expectedNumberOfBins, "Invalid number of bins"); @@ -36,7 +42,7 @@ BOOST_AUTO_TEST_CASE(produceHistogramWithGivenParameters) BOOST_AUTO_TEST_CASE(establishChannelByProducerDevice) { - unique_ptr producer(new ProducerDevice("Producer", "Hist", -10.0, 10.0, 1)); + unique_ptr producer(new ProducerDevice("Producer", "HistName_", "HistTitle_", -10.0, 10.0, 1)); BOOST_TEST(producer->fChannels.size() == 0, "Producer device has a channel connected at startup"); producer->establishChannel("req", "connect", "tcp://localhost:5005", "data"); diff --git a/o2qa/Producer/TreeProducer.cxx b/o2qa/Producer/TreeProducer.cxx index 00ba8649b161a..4f375e34d631c 100644 --- a/o2qa/Producer/TreeProducer.cxx +++ b/o2qa/Producer/TreeProducer.cxx @@ -10,7 +10,7 @@ TreeProducer::TreeProducer(string treeId) mTreeId = treeId; } -TObject* TreeProducer::produceData() const +TObject* TreeProducer::produceData() { TTree* tree = new TTree(mTreeId.c_str(), "TestTree"); //createBranch(tree); diff --git a/o2qa/Producer/TreeProducer.h b/o2qa/Producer/TreeProducer.h index d19d44fda8b7c..e72e176b3e059 100644 --- a/o2qa/Producer/TreeProducer.h +++ b/o2qa/Producer/TreeProducer.h @@ -9,7 +9,7 @@ class TreeProducer : public Producer { public: TreeProducer(std::string treeId); - TObject* produceData() const override; + TObject* produceData() override; private: std::string mTreeId; diff --git a/o2qa/Viewer/HistogramViewer.cxx b/o2qa/Viewer/HistogramViewer.cxx index 1cc0c81cd6f36..61cee89959391 100755 --- a/o2qa/Viewer/HistogramViewer.cxx +++ b/o2qa/Viewer/HistogramViewer.cxx @@ -1,10 +1,3 @@ -/** - * HistogramViewer.cxx - * - * @since 2014-10-10 - * @author Patryk Lesiak - */ - #include #include #include @@ -23,10 +16,6 @@ HistogramViewer::HistogramViewer(std::string viewerId, int numIoThreads) this->SetProperty(HistogramViewer::NumIoThreads, numIoThreads); } -HistogramViewer::HistogramViewer() -{ -} - void HistogramViewer::CustomCleanup(void *data, void *hint) { delete (string*)hint; @@ -53,9 +42,9 @@ void HistogramViewer::Run() void HistogramViewer::updateCanvas(TH1F* receivedHistogra) { - if (mNamesOfHistogramsToDraw.find(receivedHistogra->GetName()) == mNamesOfHistogramsToDraw.end()) { + if (mNamesOfHistogramsToDraw.find(receivedHistogra->GetTitle()) == mNamesOfHistogramsToDraw.end()) { - mNamesOfHistogramsToDraw.insert(receivedHistogra->GetName()); + mNamesOfHistogramsToDraw.insert(receivedHistogra->GetTitle()); mHistogramCanvas->Clear(); mHistogramCanvas->Divide(mNamesOfHistogramsToDraw.size(), 1); @@ -65,7 +54,7 @@ void HistogramViewer::updateCanvas(TH1F* receivedHistogra) else { unsigned padId = mNamesOfHistogramsToDraw.size(); for (auto const & name : mNamesOfHistogramsToDraw) { - if (receivedHistogra->GetName() == name) { + if (receivedHistogra->GetTitle() == name) { break; } padId--; @@ -137,7 +126,3 @@ void HistogramViewer::establishChannel(string type, string method, string addres requestChannel.UpdateRateLogging(1); fChannels[channelName].push_back(requestChannel); } - -HistogramViewer::~HistogramViewer() -{ -} diff --git a/o2qa/Viewer/HistogramViewer.h b/o2qa/Viewer/HistogramViewer.h index 7ecad8145a9f5..5f27a9a1d3ad1 100755 --- a/o2qa/Viewer/HistogramViewer.h +++ b/o2qa/Viewer/HistogramViewer.h @@ -1,11 +1,5 @@ -/** - * HistogramViewer.h - * - * @since 2014-10-10 - * @author Patryk Lesiak - */ - #pragma once + #include #include #include @@ -19,13 +13,13 @@ class HistogramViewer : public FairMQDevice { public: HistogramViewer(std::string viewerId, int numIoThreads); - virtual ~HistogramViewer(); + virtual ~HistogramViewer() = default; static void CustomCleanup(void *data, void* hint); void executeRunLoop(); void establishChannel(std::string type, std::string method, std::string address, std::string channelName); protected: - HistogramViewer(); + HistogramViewer() = default; virtual void Run(); private: diff --git a/o2qa/runHistogramViewer.cxx b/o2qa/runHistogramViewer.cxx index 8b8be8ddbe40f..87bb3101ce101 100755 --- a/o2qa/runHistogramViewer.cxx +++ b/o2qa/runHistogramViewer.cxx @@ -1,10 +1,3 @@ -/** - * runHistogramViewer.cxx - * - * @since 2013-04-23 - * @author Patryk Lesiak - */ - #include #include #include diff --git a/o2qa/runProducer.cxx b/o2qa/runProducer.cxx index aa2d4223c6e63..7c9df9b4f0d74 100755 --- a/o2qa/runProducer.cxx +++ b/o2qa/runProducer.cxx @@ -1,10 +1,3 @@ -/** - * runProducerDevice.cxx - * - * @since 2015-09-30 - * @author Patryk Lesiak - */ - #include #include #include @@ -19,14 +12,14 @@ std::vector producerDevices; int main(int argc, char** argv) { - constexpr int requiredNumberOfProgramParameters{4}; + constexpr int requiredNumberOfProgramParameters{5}; if (argc != requiredNumberOfProgramParameters) { - LOG(ERROR) << "Wrong number of program parameters, required three parameters: histogram xLow, xUp and Id"; + LOG(ERROR) << "Wrong number of program parameters, required four parameters: xLow, xUp, name prefix and title"; return -1; } - ProducerDevice producerDevice("Producer", argv[3], atof(argv[1]), atof(argv[2]), 1); + ProducerDevice producerDevice("Producer", argv[3], argv[4], atof(argv[1]), atof(argv[2]), 1); producerDevices.push_back(&producerDevice); LOG(INFO) << "PID: " << getpid(); diff --git a/o2qa/runSystemController.cxx b/o2qa/runSystemController.cxx index 0235538d08662..ba0ceecc426b2 100755 --- a/o2qa/runSystemController.cxx +++ b/o2qa/runSystemController.cxx @@ -1,10 +1,3 @@ -/** - * runSystemController.cxx - * - * @since 2015-10-21 - * @author Patryk Lesiak - */ - #include #include From 3217089885ce1e6f5d4266a770e1f0ed1b4bff46 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Tue, 23 Feb 2016 21:47:26 +0100 Subject: [PATCH 019/135] Major viewer module refactoring, added unit tests for viewer module, minor global refactoring --- o2qa/CMakeLists.txt | 16 +- o2qa/HistogramTMessage.h | 4 +- o2qa/Merger/Merger.cxx | 76 +++++---- o2qa/Merger/Merger.h | 4 +- o2qa/Merger/MergerDevice.cxx | 181 ++++++++++----------- o2qa/Merger/MergerDevice.h | 35 ++-- o2qa/Merger/Tests/MergerTestSuite.cxx | 117 +++++++------ o2qa/Producer/HistogramProducer.cxx | 2 +- o2qa/Producer/HistogramProducer.h | 12 +- o2qa/Producer/Producer.h | 4 +- o2qa/Producer/ProducerDevice.cxx | 79 +++++---- o2qa/Producer/ProducerDevice.h | 24 +-- o2qa/Producer/Tests/ProducerTestSuite.cxx | 42 +++-- o2qa/Producer/TreeProducer.cxx | 9 +- o2qa/Producer/TreeProducer.h | 4 +- o2qa/README.md | 41 +++++ o2qa/SystemController/SystemController.cxx | 120 +++++++------- o2qa/SystemController/SystemController.h | 20 +-- o2qa/Viewer/HistogramViewer.cxx | 128 --------------- o2qa/Viewer/HistogramViewer.h | 35 ---- o2qa/Viewer/Tests/ViewerTestSuite.cxx | 33 ++++ o2qa/Viewer/ViewerDevice.cxx | 127 +++++++++++++++ o2qa/Viewer/ViewerDevice.h | 33 ++++ o2qa/runHistogramViewer.cxx | 27 --- o2qa/runMerger.cxx | 21 +-- o2qa/runProducer.cxx | 34 ++-- o2qa/runSystemController.cxx | 15 +- o2qa/runViewerDevice.cxx | 22 +++ 28 files changed, 651 insertions(+), 614 deletions(-) create mode 100644 o2qa/README.md delete mode 100755 o2qa/Viewer/HistogramViewer.cxx delete mode 100755 o2qa/Viewer/HistogramViewer.h create mode 100644 o2qa/Viewer/Tests/ViewerTestSuite.cxx create mode 100755 o2qa/Viewer/ViewerDevice.cxx create mode 100755 o2qa/Viewer/ViewerDevice.h delete mode 100755 o2qa/runHistogramViewer.cxx create mode 100755 o2qa/runViewerDevice.cxx diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index 6bb0f50db6f9e..f7b1cefbe4dc6 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -1,6 +1,6 @@ Set(INCLUDE_DIRECTORIES - ${ROOT_INCLUDE_DIR} - ${BASE_INCLUDE_DIRECTORIES} + ${ROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} ${FAIRROOT_INCLUDE_DIR} ${AlFa_DIR}/include ${CMAKE_SOURCE_DIR}/o2qa @@ -32,8 +32,7 @@ set(SRCS Producer/TreeProducer.cxx Merger/MergerDevice.cxx Merger/Merger.cxx - Viewer/HistogramViewer.cxx -# SystemController/SystemController.cxx + Viewer/ViewerDevice.cxx ) set(DEPENDENCIES @@ -47,15 +46,13 @@ GENERATE_LIBRARY() Set(Exe_Names runMergerDevice runProducer - runHistogramViewer -# runSystemController + runViewerDevice ) Set(Exe_Source runMerger.cxx runProducer.cxx - runHistogramViewer.cxx -# runSystemController.cxx + runViewerDevice.cxx ) list(LENGTH Exe_Names _length) @@ -76,9 +73,12 @@ SET(EXECUTABLE_PATH ${CMAKE_SOURCE_DIR}/build_o2/bin) add_executable(testQaProducer Producer/Tests/ProducerTestSuite.cxx) add_executable(testQaMerger Merger/Tests/MergerTestSuite.cxx) +add_executable(testQaViewer Viewer/Tests/ViewerTestSuite.cxx) target_link_libraries(testQaProducer dl Core Base Hist o2qaLibrary FairMQ) target_link_libraries(testQaMerger dl Core Base Hist o2qaLibrary FairMQ) +target_link_libraries(testQaViewer dl Core Base Hist o2qaLibrary FairMQ) add_test(ProducerTest ${EXECUTABLE_PATH}/testQaProducer) add_test(MergerTest ${EXECUTABLE_PATH}/testQaMerger) +add_test(ViewerTest ${EXECUTABLE_PATH}/testQaViewer) diff --git a/o2qa/HistogramTMessage.h b/o2qa/HistogramTMessage.h index c88aab21c8689..cbd1e23730620 100755 --- a/o2qa/HistogramTMessage.h +++ b/o2qa/HistogramTMessage.h @@ -8,10 +8,8 @@ using namespace std; class HistogramTMessage : public TMessage { public: - HistogramTMessage(void* buf, Int_t len) - : TMessage(buf, len) + HistogramTMessage(void* buf, Int_t len) : TMessage(buf, len) { ResetBit(kIsOwner); } }; - diff --git a/o2qa/Merger/Merger.cxx b/o2qa/Merger/Merger.cxx index b495967c64662..aa3898715f11b 100644 --- a/o2qa/Merger/Merger.cxx +++ b/o2qa/Merger/Merger.cxx @@ -6,55 +6,53 @@ using namespace std; TObject* Merger::mergeObject(TObject* object) { - TCollection* currentHistogramsList = addReceivedObjectToMapByName(object); - TObject* mergedHistogram = mergeObjectWithGivenCollection(object, currentHistogramsList); - return mergedHistogram; + TCollection* currentDataObjectsList = addReceivedObjectToMapByName(object); + return mergeObjectWithGivenCollection(object, currentDataObjectsList); } TCollection* Merger::addReceivedObjectToMapByName(TObject* receivedObject) { - auto foundList = mHistogramIdTohistogramMap.find(receivedObject->GetTitle()); - - if (foundList != mHistogramIdTohistogramMap.end()) { - foundList->second->Add(receivedObject); - return foundList->second.get(); - } - else { - auto newItemIterator = mHistogramIdTohistogramMap.insert(make_pair(receivedObject->GetTitle(), + auto foundList = mTitlesToDataObjectsMap.find(receivedObject->GetTitle()); + + if (foundList != mTitlesToDataObjectsMap.end()) { + foundList->second->Add(receivedObject); + return foundList->second.get(); + } + else { + auto newItemIterator = mTitlesToDataObjectsMap.insert(make_pair(receivedObject->GetTitle(), make_shared())); - newItemIterator.first->second->SetOwner(); - return newItemIterator.first->second.get(); - } + newItemIterator.first->second->SetOwner(); + return newItemIterator.first->second.get(); + } } -TObject* Merger::mergeObjectWithGivenCollection(TObject* object, TCollection* mergeList) +TObject* Merger::mergeObjectWithGivenCollection(TObject* object, TCollection* mergeList) { - ostringstream newName; + ostringstream newName; newName << object->GetName() << "clone"; - TObject* mergedObject = object->Clone(newName.str().c_str()); - - if (!mergedObject->IsA()->GetMethodWithPrototype("Merge", "TCollection*")) - { - LOG(ERROR) << "Object does not implement a merge function!"; - return nullptr; - } - Int_t errorCode = 0; - TString listHargs; - listHargs.Form("((TCollection*)0x%lx)", (ULong_t) mergeList); - - mergedObject->Execute("Merge", listHargs.Data(), &errorCode); - if (errorCode) - { - LOG(ERROR) << "Error " << errorCode << "running merge!"; - return nullptr; - } - - return mergedObject; + TObject* mergedObject = object->Clone(newName.str().c_str()); + + if (!mergedObject->IsA()->GetMethodWithPrototype("Merge", "TCollection*")) { + LOG(ERROR) << "Object does not implement a merge function!"; + return nullptr; + } + + Int_t errorCode = 0; + TString listHargs; + listHargs.Form("((TCollection*)0x%lx)", (ULong_t) mergeList); + + mergedObject->Execute("Merge", listHargs.Data(), &errorCode); + if (errorCode) { + LOG(ERROR) << "Error " << errorCode << "running merge!"; + return nullptr; + } + + return mergedObject; } Merger::~Merger() { - for (auto const& entry : mHistogramIdTohistogramMap) { - entry.second->Delete(); - } -} \ No newline at end of file + for (auto const& entry : mTitlesToDataObjectsMap) { + entry.second->Delete(); + } +} diff --git a/o2qa/Merger/Merger.h b/o2qa/Merger/Merger.h index 0bcf7a65c0a0e..5dabe0033efb3 100644 --- a/o2qa/Merger/Merger.h +++ b/o2qa/Merger/Merger.h @@ -14,5 +14,5 @@ class Merger TCollection* addReceivedObjectToMapByName(TObject* receivedObject); private: - std::unordered_map> mHistogramIdTohistogramMap; -}; \ No newline at end of file + std::unordered_map> mTitlesToDataObjectsMap; +}; diff --git a/o2qa/Merger/MergerDevice.cxx b/o2qa/Merger/MergerDevice.cxx index a78e1b77c269b..ed5de70b50bc6 100755 --- a/o2qa/Merger/MergerDevice.cxx +++ b/o2qa/Merger/MergerDevice.cxx @@ -10,150 +10,147 @@ using namespace std; void freeTMessage_sec(void* data, void* hint) { - delete static_cast(hint); + delete static_cast(hint); } MergerDevice::MergerDevice(unique_ptr merger, std::string mergerId, int numIoThreads) : mMerger(move(merger)) { - this->SetTransport(new FairMQTransportFactoryZMQ); - this->SetProperty(MergerDevice::Id, mergerId); - this->SetProperty(MergerDevice::NumIoThreads, numIoThreads); + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(MergerDevice::Id, mergerId); + this->SetProperty(MergerDevice::NumIoThreads, numIoThreads); } void MergerDevice::CustomCleanup(void* data, void* hint) { - delete (string*)hint; + delete (string*)hint; } void MergerDevice::establishChannel(std::string type, std::string method, std::string address, std::string channelName) { - FairMQChannel requestChannel(type, method, address); - requestChannel.UpdateSndBufSize(1000); - requestChannel.UpdateRcvBufSize(1000); - requestChannel.UpdateRateLogging(1); - fChannels[channelName].push_back(requestChannel); + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(1000); + requestChannel.UpdateRcvBufSize(1000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); } void MergerDevice::executeRunLoop() { - ChangeState("INIT_DEVICE"); - WaitForEndOfState("INIT_DEVICE"); + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); - ChangeState("INIT_TASK"); - WaitForEndOfState("INIT_TASK"); + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); - ChangeState("RUN"); - InteractiveStateLoop(); + ChangeState("RUN"); + InteractiveStateLoop(); } void MergerDevice::Run() { - const int producerChannel = 0; - const int controllerChannel = 2; - unique_ptr poller(fTransportFactory->CreatePoller(fChannels["data"])); - - while (GetCurrentState() == RUNNING) { - poller->Poll(100); - - if (poller->CheckInput(producerChannel)) { - LOG(INFO) << "Received histogram from Producer"; - handleReceivedDataObject(); - } - - if (poller->CheckInput(controllerChannel)) { - LOG(INFO) << "Received controll message"; - handleSystemCommunicationWithController(); - } + const int producerChannel = 0; + const int controllerChannel = 2; + unique_ptr poller(fTransportFactory->CreatePoller(fChannels["data"])); + + while (GetCurrentState() == RUNNING) { + poller->Poll(100); + + if (poller->CheckInput(producerChannel)) { + LOG(INFO) << "Received data object from Producer"; + handleReceivedDataObject(); + } + if (poller->CheckInput(controllerChannel)) { + LOG(INFO) << "Received controll message"; + handleSystemCommunicationWithController(); } + } } void MergerDevice::handleReceivedDataObject() { - this_thread::sleep_for(chrono::milliseconds(1000)); + this_thread::sleep_for(chrono::milliseconds(1000)); - TObject* receivedObject = receiveDataObjectFromProducer(); + TObject* receivedObject = receiveDataObjectFromProducer(); - if (receivedObject != nullptr) { - shared_ptr mergedHistogram(mMerger->mergeObject(receivedObject)); + if (receivedObject != nullptr) { + shared_ptr mergedObject(mMerger->mergeObject(receivedObject)); - TMessage* viewerMessage = createTMessageForViewer(mergedHistogram); - unique_ptr viewerReply(fTransportFactory->CreateMessage()); + TMessage* viewerMessage = createTMessageForViewer(mergedObject); + unique_ptr viewerReply(fTransportFactory->CreateMessage()); - sendMergedObjectToViewer(viewerMessage, move(viewerReply)); - sendReplyToProducer(new string("MERGER_OK")); - } + sendMergedObjectToViewer(viewerMessage, move(viewerReply)); + sendReplyToProducer(new string("MERGER_OK")); + } } TMessage* MergerDevice::createTMessageForViewer(shared_ptr objectToSend) { - TMessage* viewerMessage = new TMessage(kMESS_OBJECT); - viewerMessage->WriteObject(objectToSend.get()); - return viewerMessage; + TMessage* viewerMessage = new TMessage(kMESS_OBJECT); + viewerMessage->WriteObject(objectToSend.get()); + return viewerMessage; } void MergerDevice::handleSystemCommunicationWithController() { - this_thread::sleep_for(chrono::milliseconds(1000)); + this_thread::sleep_for(chrono::milliseconds(1000)); - unique_ptr request(fTransportFactory->CreateMessage()); - fChannels["data"].at(2).Receive(request); - string* text = new string(GetProperty(MergerDevice::Id, "default_id") + "_ALIVE"); + unique_ptr request(fTransportFactory->CreateMessage()); + fChannels["data"].at(2).Receive(request); + string* text = new string(GetProperty(MergerDevice::Id, "default_id") + "_ALIVE"); - FairMQMessage* reply = fTransportFactory->CreateMessage(const_cast(text->c_str()), - text->length(), - CustomCleanup, - text); - fChannels["data"].at(2).Send(reply); + FairMQMessage* reply = fTransportFactory->CreateMessage(const_cast(text->c_str()), + text->length(), + CustomCleanup, + text); + fChannels["data"].at(2).Send(reply); } TObject* MergerDevice::receiveDataObjectFromProducer() { - TObject* receivedDataObject; - unique_ptr request(fTransportFactory->CreateMessage()); - fChannels["data"].at(0).Receive(request); - - if (request->GetSize() != 0) { - LOG(INFO) << "Received histogram from histogram producer"; - HistogramTMessage tm(request->GetData(), request->GetSize()); - receivedDataObject = static_cast(tm.ReadObject(tm.GetClass())); - LOG(INFO) << "Received histogram name: " << receivedDataObject->GetName(); - } - else { - LOG(ERROR) << "Received empty message from producer, skipping RUN procedure"; - receivedDataObject = nullptr; - } - - return receivedDataObject; + TObject* receivedDataObject; + unique_ptr request(fTransportFactory->CreateMessage()); + fChannels["data"].at(0).Receive(request); + + if (request->GetSize() != 0) { + LOG(INFO) << "Received data object from producer"; + HistogramTMessage tm(request->GetData(), request->GetSize()); + receivedDataObject = static_cast(tm.ReadObject(tm.GetClass())); + LOG(INFO) << "Received data object name: " << receivedDataObject->GetName(); + } + else { + LOG(ERROR) << "Received empty message from producer, skipping RUN procedure"; + receivedDataObject = nullptr; + } + + return receivedDataObject; } void MergerDevice::sendMergedObjectToViewer(TMessage* viewerMessage, unique_ptr viewerReply) { - unique_ptr viewerRequest(fTransportFactory->CreateMessage(viewerMessage->Buffer(), - viewerMessage->BufferSize(), - freeTMessage_sec, - viewerMessage)); - LOG(INFO) << "Sending new histogram to viewer"; - - fChannels["data"].at(1).Send(viewerRequest); - fChannels["data"].at(1).Receive(viewerReply); - - if (viewerReply->GetSize() != 0) { - LOG(INFO) << "Received reply from VIEWER: \"" << string(static_cast(viewerReply->GetData()), + unique_ptr viewerRequest(fTransportFactory->CreateMessage(viewerMessage->Buffer(), + viewerMessage->BufferSize(), + freeTMessage_sec, + viewerMessage)); + LOG(INFO) << "Sending new data object to viewer"; + + fChannels["data"].at(1).Send(viewerRequest); + fChannels["data"].at(1).Receive(viewerReply); + + if (viewerReply->GetSize() != 0) { + LOG(INFO) << "Received reply from VIEWER: \"" << string(static_cast(viewerReply->GetData()), viewerReply->GetSize()) << "\""; - } - else { - LOG(ERROR) << "Received empty message from viewer, skipping RUN procedure"; - } + } + else { + LOG(ERROR) << "Received empty message from viewer, skipping RUN procedure"; + } } void MergerDevice::sendReplyToProducer(std::string* message) { - LOG(INFO) << "Sending reply to producer."; - unique_ptr reply(fTransportFactory->CreateMessage(const_cast(message->c_str()), - message->length(), - CustomCleanup, - message)); - fChannels["data"].at(0).Send(reply); + LOG(INFO) << "Sending reply to producer."; + unique_ptr reply(fTransportFactory->CreateMessage(const_cast(message->c_str()), + message->length(), + CustomCleanup, + message)); + fChannels["data"].at(0).Send(reply); } - - diff --git a/o2qa/Merger/MergerDevice.h b/o2qa/Merger/MergerDevice.h index 9f80760269fe4..1c9763489f1b4 100755 --- a/o2qa/Merger/MergerDevice.h +++ b/o2qa/Merger/MergerDevice.h @@ -6,35 +6,34 @@ #include #include #include - + #include "Merger.h" class MergerDevice : public FairMQDevice { public: - MergerDevice(std::unique_ptr merger, std::string producerId, int numIoThreads); - virtual ~MergerDevice() = default; + MergerDevice(std::unique_ptr merger, std::string producerId, int numIoThreads); + virtual ~MergerDevice() = default; - static void CustomCleanup(void* data, void* hint); - void establishChannel(std::string type, - std::string method, - std::string address, - std::string channelName); - void executeRunLoop(); + static void CustomCleanup(void* data, void* hint); + void establishChannel(std::string type, + std::string method, + std::string address, + std::string channelName); + void executeRunLoop(); protected: - virtual void Run(); + virtual void Run(); private: - TObject* receiveDataObjectFromProducer(); - void sendReplyToProducer(std::string* message); + TObject* receiveDataObjectFromProducer(); + void sendReplyToProducer(std::string* message); - TMessage* createTMessageForViewer(std::shared_ptr objectToSend); - void sendMergedObjectToViewer(TMessage* viewerMessage, std::unique_ptr viewerReply); + TMessage* createTMessageForViewer(std::shared_ptr objectToSend); + void sendMergedObjectToViewer(TMessage* viewerMessage, std::unique_ptr viewerReply); - void handleSystemCommunicationWithController(); - void handleReceivedDataObject(); + void handleSystemCommunicationWithController(); + void handleReceivedDataObject(); - std::unique_ptr mMerger; + std::unique_ptr mMerger; }; - diff --git a/o2qa/Merger/Tests/MergerTestSuite.cxx b/o2qa/Merger/Tests/MergerTestSuite.cxx index e422d354a7eba..a53bbe4a90adc 100755 --- a/o2qa/Merger/Tests/MergerTestSuite.cxx +++ b/o2qa/Merger/Tests/MergerTestSuite.cxx @@ -16,81 +16,80 @@ BOOST_AUTO_TEST_SUITE(MergerDeviceTestSuite) BOOST_AUTO_TEST_CASE(createMergerDeviceWithGivenIdAndNumberOfThreads) { - std::string mergerId = "Test_merger"; - unsigned short numberOfThreads = 1; + std::string mergerId = "Test_merger"; + unsigned short numberOfThreads = 1; - std::unique_ptr merger(new MergerDevice(std::unique_ptr(new Merger()), - mergerId, - numberOfThreads)); + MergerDevice merger(std::unique_ptr(new Merger()), + mergerId, + numberOfThreads); - BOOST_CHECK(merger != nullptr); - BOOST_CHECK(merger->GetProperty(MergerDevice::Id, "default_id") == mergerId); - BOOST_CHECK(merger->GetProperty(MergerDevice::NumIoThreads, 0) == numberOfThreads); + BOOST_CHECK(merger.GetProperty(MergerDevice::Id, "default_id") == mergerId); + BOOST_CHECK(merger.GetProperty(MergerDevice::NumIoThreads, 0) == numberOfThreads); } BOOST_AUTO_TEST_CASE(mergeFiveHistogramsWithTheSameTitle) { - using namespace std; + using namespace std; - const unsigned numberOfHistogramsToTest = 5; - Merger* merger = new Merger(); - vector> histograms; + const unsigned numberOfHistogramsToTest = 5; + Merger* merger = new Merger(); + vector> histograms; - for (int i = 0; i < numberOfHistogramsToTest; ++i) { - ostringstream histogramName; - histogramName << "test_histogram_" << i; - - histograms.push_back(make_shared(histogramName.str().c_str(), "Gauss_distribution", 100, -10.0, 10.0)); - histograms.at(i)->FillRandom("gaus", 1000); + for (int i = 0; i < numberOfHistogramsToTest; ++i) { + ostringstream histogramName; + histogramName << "test_histogram_" << i; - TH1* histogram = dynamic_cast(merger->mergeObject(histograms.at(i).get())); + histograms.push_back(make_shared(histogramName.str().c_str(), "Gauss_distribution", 100, -10.0, 10.0)); + histograms.at(i)->FillRandom("gaus", 1000); - ostringstream errorMessage; - errorMessage << "Expected: " << (1000 * (i + 1)) << " entries, received: " << histogram->GetEntries(); - BOOST_TEST(histogram->GetEntries() == (1000 * (i + 1)), errorMessage.str().c_str()); + TH1* histogram = dynamic_cast(merger->mergeObject(histograms.at(i).get())); - delete histogram; - } + ostringstream errorMessage; + errorMessage << "Expected: " << (1000 * (i + 1)) << " entries, received: " << histogram->GetEntries(); + BOOST_TEST(histogram->GetEntries() == (1000 * (i + 1)), errorMessage.str().c_str()); - delete merger; + delete histogram; + } + + delete merger; } BOOST_AUTO_TEST_CASE(mergeFourHistogramsWithTwoDifferentTitles) { - using namespace std; - - const unsigned histogramsToMerge = 4; - const unsigned numberOfHistogramsWithTheSameTitle = 2; - unsigned histogramNameIndex = 0; - Merger* merger = new Merger(); - vector> histograms; - - histograms.push_back(make_shared("test_histogram_0", "first_title", 100, -10.0, 10.0)); - histograms.push_back(make_shared("test_histogram_1", "first_title", 100, -10.0, 10.0)); - histograms.push_back(make_shared("test_histogram_2", "second_title", 100, -10.0, 10.0)); - histograms.push_back(make_shared("test_histogram_3", "second_title", 100, -10.0, 10.0)); - - for (int i = 0; i < histogramsToMerge; ++i) { - histograms.at(i)->FillRandom("gaus", 1000); - TH1* histogram = dynamic_cast(merger->mergeObject(histograms.at(i).get())); - - if (i < numberOfHistogramsWithTheSameTitle) { - ostringstream errorMessage; - errorMessage << "Expected: " << (1000 * (i + 1)) << " entries, received: " << histogram->GetEntries(); - BOOST_TEST(histogram->GetEntries() == (1000 * (i + 1)), errorMessage.str().c_str()); - BOOST_TEST(histogram->GetTitle() == "first_title", "Invalid title of histogram"); - } - else { - ostringstream errorMessage; - errorMessage << "Expected: " << (1000 * (i - 1)) << " entries, received: " << histogram->GetEntries(); - BOOST_TEST(histogram->GetEntries() == (1000 * (i - 1)), errorMessage.str().c_str()); - BOOST_TEST(histogram->GetTitle() == "second_title", "Invalid title of histogram"); - } - - delete histogram; - } - - delete merger; + using namespace std; + + const unsigned histogramsToMerge = 4; + const unsigned numberOfHistogramsWithTheSameTitle = 2; + unsigned histogramNameIndex = 0; + Merger* merger = new Merger(); + vector> histograms; + + histograms.push_back(make_shared("test_histogram_0", "first_title", 100, -10.0, 10.0)); + histograms.push_back(make_shared("test_histogram_1", "first_title", 100, -10.0, 10.0)); + histograms.push_back(make_shared("test_histogram_2", "second_title", 100, -10.0, 10.0)); + histograms.push_back(make_shared("test_histogram_3", "second_title", 100, -10.0, 10.0)); + + for (int i = 0; i < histogramsToMerge; ++i) { + histograms.at(i)->FillRandom("gaus", 1000); + TH1* histogram = dynamic_cast(merger->mergeObject(histograms.at(i).get())); + + if (i < numberOfHistogramsWithTheSameTitle) { + ostringstream errorMessage; + errorMessage << "Expected: " << (1000 * (i + 1)) << " entries, received: " << histogram->GetEntries(); + BOOST_TEST(histogram->GetEntries() == (1000 * (i + 1)), errorMessage.str().c_str()); + BOOST_TEST(histogram->GetTitle() == "first_title", "Invalid title of histogram"); + } + else { + ostringstream errorMessage; + errorMessage << "Expected: " << (1000 * (i - 1)) << " entries, received: " << histogram->GetEntries(); + BOOST_TEST(histogram->GetEntries() == (1000 * (i - 1)), errorMessage.str().c_str()); + BOOST_TEST(histogram->GetTitle() == "second_title", "Invalid title of histogram"); + } + + delete histogram; + } + + delete merger; } BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Producer/HistogramProducer.cxx b/o2qa/Producer/HistogramProducer.cxx index d954129ccd929..d34ffc92f4de3 100644 --- a/o2qa/Producer/HistogramProducer.cxx +++ b/o2qa/Producer/HistogramProducer.cxx @@ -24,4 +24,4 @@ TObject* HistogramProducer::produceData() TH1F* histogram = new TH1F(histogramName.str().c_str(), mHistogramTitle.c_str(), mBeansNumber, mXLow, mXUp); histogram->FillRandom("gaus", 1000); return histogram; -} \ No newline at end of file +} diff --git a/o2qa/Producer/HistogramProducer.h b/o2qa/Producer/HistogramProducer.h index 50363a6210271..1a9b11d6a8114 100644 --- a/o2qa/Producer/HistogramProducer.h +++ b/o2qa/Producer/HistogramProducer.h @@ -1,9 +1,9 @@ #pragma once -#include "Producer.h" - #include +#include "Producer.h" + class HistogramProducer : public Producer { public: @@ -14,7 +14,7 @@ class HistogramProducer : public Producer std::string mHistogramNamePrefix; std::string mHistogramTitle; int mBeansNumber; - double mXLow; - double mXUp; - int producedHistogramNumber; -}; \ No newline at end of file + double mXLow; + double mXUp; + int producedHistogramNumber; +}; diff --git a/o2qa/Producer/Producer.h b/o2qa/Producer/Producer.h index 4815aff66af99..926563cf556aa 100644 --- a/o2qa/Producer/Producer.h +++ b/o2qa/Producer/Producer.h @@ -4,6 +4,6 @@ class TObject; class Producer { - public: - virtual TObject* produceData() = 0; +public: + virtual TObject* produceData() = 0; }; diff --git a/o2qa/Producer/ProducerDevice.cxx b/o2qa/Producer/ProducerDevice.cxx index a7275934402a4..81ec26e30fb31 100755 --- a/o2qa/Producer/ProducerDevice.cxx +++ b/o2qa/Producer/ProducerDevice.cxx @@ -11,69 +11,68 @@ using namespace std; -ProducerDevice::ProducerDevice(string producerId, string histogramNamePrefix, string histogramTitle, float xLow, float xUp, int numIoThreads) +ProducerDevice::ProducerDevice(string producerId, string namePrefix, string title, float xLow, float xUp, int numIoThreads) { - this->SetTransport(new FairMQTransportFactoryZMQ); - this->SetProperty(ProducerDevice::Id, producerId); - this->SetProperty(ProducerDevice::NumIoThreads, numIoThreads); - mProducer = make_shared(histogramNamePrefix, histogramTitle, xLow, xUp); - //mProducer = make_shared(histogramId); + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(ProducerDevice::Id, producerId); + this->SetProperty(ProducerDevice::NumIoThreads, numIoThreads); + mProducer = make_shared(namePrefix, title, xLow, xUp); } void freeTMessage(void* data, void* hint) { - delete static_cast(hint); + delete static_cast(hint); } void ProducerDevice::Run() { - while (GetCurrentState() == RUNNING) { - this_thread::sleep_for(chrono::milliseconds(1000)); + while (GetCurrentState() == RUNNING) { + this_thread::sleep_for(chrono::milliseconds(1000)); - TObject* newDataObject = mProducer->produceData(); - TMessage * message = new TMessage(kMESS_OBJECT); - message->WriteObject(newDataObject); - delete newDataObject; + TObject* newDataObject = mProducer->produceData(); + TMessage * message = new TMessage(kMESS_OBJECT); + message->WriteObject(newDataObject); + delete newDataObject; - unique_ptr request(fTransportFactory->CreateMessage(message->Buffer(), - message->BufferSize(), - freeTMessage, - message)); - unique_ptr reply(fTransportFactory->CreateMessage()); + unique_ptr request(fTransportFactory->CreateMessage(message->Buffer(), + message->BufferSize(), + freeTMessage, + message)); + unique_ptr reply(fTransportFactory->CreateMessage()); - LOG(INFO) << "Sending new histogram to merger"; + LOG(INFO) << "Sending new histogram to merger"; - fChannels["data"].at(0).Send(request); - fChannels["data"].at(0).Receive(reply); + fChannels["data"].at(0).Send(request); + fChannels["data"].at(0).Receive(reply); - if (reply->GetSize() != 0) { - LOG(INFO) << "Received reply from merger: \"" - << string(static_cast(reply->GetData()), reply->GetSize()) - << "\""; - } - else { - LOG(ERROR) << "Did not Receive reply from merger"; - } + if (reply->GetSize() != 0) { + LOG(INFO) << "Received reply from merger: \"" + << string(static_cast(reply->GetData()), reply->GetSize()) + << "\""; } + else { + LOG(ERROR) << "Did not Receive reply from merger"; + } + } } void ProducerDevice::establishChannel(std::string type, std::string method, std::string address, std::string channelName) { - FairMQChannel requestChannel(type, method, address); - requestChannel.UpdateSndBufSize(10000); - requestChannel.UpdateRcvBufSize(10000); - requestChannel.UpdateRateLogging(1); - fChannels[channelName].push_back(requestChannel); + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(10000); + requestChannel.UpdateRcvBufSize(10000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); } void ProducerDevice::executeRunLoop() { - ChangeState("INIT_DEVICE"); - WaitForEndOfState("INIT_DEVICE"); + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); - ChangeState("INIT_TASK"); - WaitForEndOfState("INIT_TASK"); + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); - ChangeState("RUN"); - InteractiveStateLoop(); + ChangeState("RUN"); + InteractiveStateLoop(); } diff --git a/o2qa/Producer/ProducerDevice.h b/o2qa/Producer/ProducerDevice.h index 9043ef2bfec33..36917d2e057df 100755 --- a/o2qa/Producer/ProducerDevice.h +++ b/o2qa/Producer/ProducerDevice.h @@ -10,21 +10,21 @@ class ProducerDevice : public FairMQDevice { public: - ProducerDevice(std::string producerId, - std::string histogramNamePrefix, - std::string histogramTitle, - float xLow, - float xUp, - int numIoThreads); - virtual ~ProducerDevice() = default; + ProducerDevice(std::string producerId, + std::string namePrefix, + std::string title, + float xLow, + float xUp, + int numIoThreads); + virtual ~ProducerDevice() = default; - void executeRunLoop(); - void establishChannel(std::string type, std::string method, std::string address, std::string channelName); + void executeRunLoop(); + void establishChannel(std::string type, std::string method, std::string address, std::string channelName); protected: - ProducerDevice() = default; - virtual void Run(); + ProducerDevice() = default; + virtual void Run(); private: - std::shared_ptr mProducer; + std::shared_ptr mProducer; }; diff --git a/o2qa/Producer/Tests/ProducerTestSuite.cxx b/o2qa/Producer/Tests/ProducerTestSuite.cxx index 7fa19c254e1b8..81b468afaa2a0 100644 --- a/o2qa/Producer/Tests/ProducerTestSuite.cxx +++ b/o2qa/Producer/Tests/ProducerTestSuite.cxx @@ -6,11 +6,9 @@ #include #include #include -#include #include "Producer/HistogramProducer.h" #include "Producer/ProducerDevice.h" -#include "fakeit.hpp" using namespace std; @@ -18,26 +16,26 @@ BOOST_AUTO_TEST_SUITE(ProducerTestSuite) BOOST_AUTO_TEST_CASE(produceHistogramWithGivenParameters) { - string histogramNamePrefix = "TestId_"; - string histogramTitle = "Gauss_distribution"; - float xLow = -10.0; - float xUp = 10.0; - const int expectedNumberOfEntries = 1000; - const int expectedNumberOfBins = 100; - - unique_ptr histogramProducer(new HistogramProducer(histogramNamePrefix, - histogramTitle, - xLow, - xUp)); - - unique_ptr histogram(dynamic_cast(histogramProducer->produceData())); - - BOOST_TEST(histogram->GetEntries() == expectedNumberOfEntries, "Invalid number of entries"); - BOOST_TEST(histogram->GetName() == "TestId_0", "Invalid name of histogram"); - BOOST_TEST(histogram->GetTitle() == histogramTitle, "Invalid title of histogram"); - BOOST_TEST(histogram->GetXaxis()->GetXmin() == xLow, "Invalid minimal value for x axis"); - BOOST_TEST(histogram->GetXaxis()->GetXmax() == xUp, "Invalid maximal value for x axis"); - BOOST_TEST(histogram->GetNbinsX() == expectedNumberOfBins, "Invalid number of bins"); + string histogramNamePrefix = "TestId_"; + string histogramTitle = "Gauss_distribution"; + float xLow = -10.0; + float xUp = 10.0; + const int expectedNumberOfEntries = 1000; + const int expectedNumberOfBins = 100; + + unique_ptr histogramProducer(new HistogramProducer(histogramNamePrefix, + histogramTitle, + xLow, + xUp)); + + unique_ptr histogram(dynamic_cast(histogramProducer->produceData())); + + BOOST_TEST(histogram->GetEntries() == expectedNumberOfEntries, "Invalid number of entries"); + BOOST_TEST(histogram->GetName() == "TestId_0", "Invalid name of histogram"); + BOOST_TEST(histogram->GetTitle() == histogramTitle, "Invalid title of histogram"); + BOOST_TEST(histogram->GetXaxis()->GetXmin() == xLow, "Invalid minimal value for x axis"); + BOOST_TEST(histogram->GetXaxis()->GetXmax() == xUp, "Invalid maximal value for x axis"); + BOOST_TEST(histogram->GetNbinsX() == expectedNumberOfBins, "Invalid number of bins"); } BOOST_AUTO_TEST_CASE(establishChannelByProducerDevice) diff --git a/o2qa/Producer/TreeProducer.cxx b/o2qa/Producer/TreeProducer.cxx index 4f375e34d631c..7857c8c5716ab 100644 --- a/o2qa/Producer/TreeProducer.cxx +++ b/o2qa/Producer/TreeProducer.cxx @@ -1,5 +1,5 @@ #include -#include "TRandom.h" +#include #include "TreeProducer.h" @@ -12,9 +12,8 @@ TreeProducer::TreeProducer(string treeId) TObject* TreeProducer::produceData() { - TTree* tree = new TTree(mTreeId.c_str(), "TestTree"); - //createBranch(tree); - return tree; + TTree* tree = new TTree(mTreeId.c_str(), "TestTree"); + return tree; } void TreeProducer::createBranch(TTree* tree) const @@ -28,4 +27,4 @@ void TreeProducer::createBranch(TTree* tree) const } tree->AddBranchToCache(newBranch); -} \ No newline at end of file +} diff --git a/o2qa/Producer/TreeProducer.h b/o2qa/Producer/TreeProducer.h index e72e176b3e059..fd0185fd9cb14 100644 --- a/o2qa/Producer/TreeProducer.h +++ b/o2qa/Producer/TreeProducer.h @@ -1,10 +1,10 @@ #pragma once -#include "Producer.h" - #include #include +#include "Producer.h" + class TreeProducer : public Producer { public: diff --git a/o2qa/README.md b/o2qa/README.md new file mode 100644 index 0000000000000..ab0d559bd6f6d --- /dev/null +++ b/o2qa/README.md @@ -0,0 +1,41 @@ +O2qa +======= + +Quality assurance software prototype. + +### Prerequisites +0. Installed AliceO2 software. +1. Set the environment variable SIMPATH to your FairSoft installation directory. +2. Set the environment variable FAIRROOTPATH to your FairRoot installation directory. + +It is a good practice to run config.sh script from AliceO2 build directory to set all others variables as PATH etc. + +### Overwiev +This is a quality assurance software prototype for AliceO2 software. It uses FairMQ framework to provide distributed environment. + +Project consists of three modules: +## Producer - produces histograms and trees +Run example: +```bash +runProducer -10 10 exampleHistogramPrefixName exampleHistogramTitle +``` +First two arguments provides information about x axis range. +## Merger - merges received objects by titles +Run example: +```bash +runMergerDevice +``` +## Viewer - provides visualization of merged objects +Run example: +```bash +runViewerDevice +``` +### Compile software +1. Go to build folder of AliceO2 software +2. cmake ../ +3. cd o2qa +4. make + +### Unit tests +All modules are provided with unit tests written in BOOST test framework. Each module has it's tests in "Tests" directory. +To run all unit tests type ```bash ctest ``` \ No newline at end of file diff --git a/o2qa/SystemController/SystemController.cxx b/o2qa/SystemController/SystemController.cxx index 3a33862b875a2..ab8eaa19aa6be 100755 --- a/o2qa/SystemController/SystemController.cxx +++ b/o2qa/SystemController/SystemController.cxx @@ -1,112 +1,108 @@ #include - -#include "SystemController.h" - #include #include +#include "SystemController.h" + using namespace std; SystemController::SystemController(std::string controllerId, std::string logFileName, int numIoThreads) { - this->SetTransport(new FairMQTransportFactoryZMQ); - this->SetProperty(SystemController::Id, controllerId); - this->SetProperty(SystemController::NumIoThreads, numIoThreads); - mLogFile.open(logFileName); + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(SystemController::Id, controllerId); + this->SetProperty(SystemController::NumIoThreads, numIoThreads); + mLogFile.open(logFileName); } SystemController::~SystemController() { - mLogFile.close(); + mLogFile.close(); } void SystemController::establishChannel(std::string type, std::string method, std::string address, std::string channelName) { - FairMQChannel requestChannel(type, method, address); - requestChannel.UpdateSndBufSize(5000); - requestChannel.UpdateRcvBufSize(1000); - requestChannel.UpdateRateLogging(1); - fChannels[channelName].push_back(requestChannel); + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(5000); + requestChannel.UpdateRcvBufSize(1000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); } void SystemController::executeRunLoop() { - ChangeState("INIT_DEVICE"); - WaitForEndOfState("INIT_DEVICE"); + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); - ChangeState("INIT_TASK"); - WaitForEndOfState("INIT_TASK"); + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); - ChangeState("RUN"); - InteractiveStateLoop(); + ChangeState("RUN"); + InteractiveStateLoop(); } void SystemController::CustomCleanup(void *data, void *hint) { - delete (string*)hint; + delete (string*)hint; } void SystemController::Run() { - FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data"]); - poller->Poll(0); - - while (GetCurrentState() == RUNNING) { - mLogFile << getCurrentTime() << "\tSending status request at 5001 tcp port " << endl; + FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data"]); + poller->Poll(0); - chrono::time_point startTime; - startTime = chrono::system_clock::now(); + while (GetCurrentState() == RUNNING) { + mLogFile << getCurrentTime() << "\tSending status request at 5001 tcp port " << endl; - FairMQMessage* request = sendMessageToNodes(); - - while (chrono::system_clock::now() < (startTime + chrono::seconds(5))) { - if (poller->CheckInput(0)) { - getStatusFromSystemNodes(); - } - } + chrono::time_point startTime; + startTime = chrono::system_clock::now(); + FairMQMessage* request = sendMessageToNodes(); + while (chrono::system_clock::now() < (startTime + chrono::seconds(5))) { + if (poller->CheckInput(0)) { + getStatusFromSystemNodes(); + } } + } } FairMQMessage* SystemController::sendMessageToNodes() { - string* text = new string("report_status"); - - FairMQMessage* request = fTransportFactory->CreateMessage(const_cast(text->c_str()), - text->length(), - CustomCleanup, - text); - LOG(INFO) << "Sending status request"; - fChannels["data"].at(0).Send(request, "no-block"); + string* text = new string("report_status"); + + FairMQMessage* request = fTransportFactory->CreateMessage(const_cast(text->c_str()), + text->length(), + CustomCleanup, + text); + LOG(INFO) << "Sending status request"; + fChannels["data"].at(0).Send(request, "no-block"); } void SystemController::getStatusFromSystemNodes() { - FairMQMessage* reply = fTransportFactory->CreateMessage(); - fChannels["data"].at(0).Receive(reply); + FairMQMessage* reply = fTransportFactory->CreateMessage(); + fChannels["data"].at(0).Receive(reply); - if (reply->GetSize() != 0) { - auto replyContent = string(static_cast(reply->GetData()), reply->GetSize()); - LOG(INFO) << "Received reply from node: " << replyContent.c_str(); + if (reply->GetSize() != 0) { + auto replyContent = string(static_cast(reply->GetData()), reply->GetSize()); + LOG(INFO) << "Received reply from node: " << replyContent.c_str(); - if (reply->GetSize() != 0) { - mLogFile << getCurrentTime() << "\tReceived:\t" << replyContent.c_str() << endl; - } + if (reply->GetSize() != 0) { + mLogFile << getCurrentTime() << "\tReceived:\t" << replyContent.c_str() << endl; } - - delete reply; + } + delete reply; } -string SystemController::getCurrentTime() +string SystemController::getCurrentTime() { - time_t rawtime; - struct tm * timeinfo; - char buffer [80]; - - time (&rawtime); - timeinfo = localtime (&rawtime); - strftime (buffer, 80, "%H:%M:%S %F", timeinfo); - - return string(buffer); + time_t rawtime; + struct tm * timeinfo; + char buffer [80]; + + time (&rawtime); + timeinfo = localtime (&rawtime); + strftime (buffer, 80, "%H:%M:%S %F", timeinfo); + + return string(buffer); } diff --git a/o2qa/SystemController/SystemController.h b/o2qa/SystemController/SystemController.h index 5c6e3658e34e7..69e4fb96473a7 100755 --- a/o2qa/SystemController/SystemController.h +++ b/o2qa/SystemController/SystemController.h @@ -8,20 +8,20 @@ class SystemController : public FairMQDevice { public: - SystemController(std::string controllerId, std::string logFileName, int numIoThreads); - virtual ~SystemController(); + SystemController(std::string controllerId, std::string logFileName, int numIoThreads); + virtual ~SystemController(); - void establishChannel(std::string type, std::string method, std::string address, std::string channelName); - void executeRunLoop(); - static void CustomCleanup(void* data, void* hint); + void establishChannel(std::string type, std::string method, std::string address, std::string channelName); + void executeRunLoop(); + static void CustomCleanup(void* data, void* hint); protected: - virtual void Run(); + virtual void Run(); private: - std::ofstream mLogFile; + std::ofstream mLogFile; - void getStatusFromSystemNodes(); - std::string getCurrentTime(); - FairMQMessage* sendMessageToNodes(); + void getStatusFromSystemNodes(); + std::string getCurrentTime(); + FairMQMessage* sendMessageToNodes(); }; diff --git a/o2qa/Viewer/HistogramViewer.cxx b/o2qa/Viewer/HistogramViewer.cxx deleted file mode 100755 index 61cee89959391..0000000000000 --- a/o2qa/Viewer/HistogramViewer.cxx +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include -#include -#include -#include - -#include "HistogramViewer.h" -#include "HistogramTMessage.h" - -using namespace std; - -HistogramViewer::HistogramViewer(std::string viewerId, int numIoThreads) -{ - this->SetTransport(new FairMQTransportFactoryZMQ); - this->SetProperty(HistogramViewer::Id, viewerId); - this->SetProperty(HistogramViewer::NumIoThreads, numIoThreads); -} - -void HistogramViewer::CustomCleanup(void *data, void *hint) -{ - delete (string*)hint; -} - -void HistogramViewer::Run() -{ - mHistogramCanvas = new TCanvas("mHistogramCanvas", "Gauss histogram", 100, 10, 1200, 800); - - while (GetCurrentState() == RUNNING) { - this_thread::sleep_for(chrono::milliseconds(1000)); - - TH1F* receivedHistogram = receiveHistogramFromMerger(); - - if (receivedHistogram != nullptr) { - updateCanvas(receivedHistogram); - updateHistogramCanvas(receivedHistogram); - sendReplyToMerger(new string("VIEWER_OK")); - } - } - - delete mHistogramCanvas; -} - -void HistogramViewer::updateCanvas(TH1F* receivedHistogra) -{ - if (mNamesOfHistogramsToDraw.find(receivedHistogra->GetTitle()) == mNamesOfHistogramsToDraw.end()) { - - mNamesOfHistogramsToDraw.insert(receivedHistogra->GetTitle()); - - mHistogramCanvas->Clear(); - mHistogramCanvas->Divide(mNamesOfHistogramsToDraw.size(), 1); - mHistogramCanvas->cd(mNamesOfHistogramsToDraw.size()); - mHistogramCanvas->Update(); - } - else { - unsigned padId = mNamesOfHistogramsToDraw.size(); - for (auto const & name : mNamesOfHistogramsToDraw) { - if (receivedHistogra->GetTitle() == name) { - break; - } - padId--; - } - mHistogramCanvas->cd(padId); - } -} - -void HistogramViewer::sendReplyToMerger(string* message) -{ - LOG(INFO) << "Sending reply to merger"; - FairMQMessage* reply = fTransportFactory->CreateMessage(const_cast(message->c_str()), - message->length(), - CustomCleanup, - message); - fChannels["data"].at(0).Send(reply); -} - -TH1F* HistogramViewer::receiveHistogramFromMerger() -{ - TH1F* receivedHistogram; - unique_ptr request(move(receiveMessageFromMerger())); - - if (request->GetSize() != 0) { - HistogramTMessage tm(request->GetData(), request->GetSize()); - receivedHistogram = static_cast(tm.ReadObject(tm.GetClass())); - } - else { - LOG(ERROR) << "Received empty request from merger"; - receivedHistogram = nullptr; - } - - return receivedHistogram; -} - -unique_ptr HistogramViewer::receiveMessageFromMerger() -{ - unique_ptr request(fTransportFactory->CreateMessage()); - fChannels["data"].at(0).Receive(&(*request)); - LOG(INFO) << "Received histogram from merger"; - return request; -} - -void HistogramViewer::updateHistogramCanvas(TH1F* receivedHistogram) -{ - receivedHistogram->Draw(); - mHistogramCanvas->Modified(); - mHistogramCanvas->Update(); - gSystem->ProcessEvents(); -} - -void HistogramViewer::executeRunLoop() -{ - ChangeState("INIT_DEVICE"); - WaitForEndOfState("INIT_DEVICE"); - - ChangeState("INIT_TASK"); - WaitForEndOfState("INIT_TASK"); - - ChangeState("RUN"); - InteractiveStateLoop(); -} - -void HistogramViewer::establishChannel(string type, string method, string address, string channelName) -{ - FairMQChannel requestChannel(type, method, address); - requestChannel.UpdateSndBufSize(1000); - requestChannel.UpdateRcvBufSize(1000); - requestChannel.UpdateRateLogging(1); - fChannels[channelName].push_back(requestChannel); -} diff --git a/o2qa/Viewer/HistogramViewer.h b/o2qa/Viewer/HistogramViewer.h deleted file mode 100755 index 5f27a9a1d3ad1..0000000000000 --- a/o2qa/Viewer/HistogramViewer.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -class HistogramViewer : public FairMQDevice -{ -public: - HistogramViewer(std::string viewerId, int numIoThreads); - virtual ~HistogramViewer() = default; - - static void CustomCleanup(void *data, void* hint); - void executeRunLoop(); - void establishChannel(std::string type, std::string method, std::string address, std::string channelName); -protected: - HistogramViewer() = default; - virtual void Run(); - -private: - TCanvas* mHistogramCanvas; - std::unordered_set mNamesOfHistogramsToDraw; - - std::unique_ptr receiveMessageFromMerger(); - void sendReplyToMerger(std::string* message); - TH1F* receiveHistogramFromMerger(); - void updateHistogramCanvas(TH1F* receivedHistogram); - void updateCanvas(TH1F* receivedHistogra); -}; - diff --git a/o2qa/Viewer/Tests/ViewerTestSuite.cxx b/o2qa/Viewer/Tests/ViewerTestSuite.cxx new file mode 100644 index 0000000000000..a495d93c90ecd --- /dev/null +++ b/o2qa/Viewer/Tests/ViewerTestSuite.cxx @@ -0,0 +1,33 @@ +#define BOOST_TEST_MODULE Viewer +#define BOOST_TEST_MAIN + +#include +#include + +#include "ViewerDevice.h" + +BOOST_AUTO_TEST_SUITE(ViewerTestSuite) + +BOOST_AUTO_TEST_CASE(createViewerDevice) +{ + const std::string viewerId = "Viewer_1"; + const int numberOfThreads = 1; + + ViewerDevice viewer(viewerId, numberOfThreads); + + BOOST_TEST(viewer.GetProperty(ViewerDevice::Id, "default_id") == viewerId); +} + +BOOST_AUTO_TEST_CASE(establishChannelByViewerDevice) +{ + const std::string viewerId = "Viewer_1"; + const int numberOfThreads = 1; + ViewerDevice viewer(viewerId, numberOfThreads); + + BOOST_TEST(viewer.fChannels.size() == 0, "Viewer device has a channel connected at startup"); + + viewer.establishChannel("req", "connect", "tcp://localhost:5005", "data"); + BOOST_TEST(viewer.fChannels.size() == 1, "Viewer device did not establish channel"); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Viewer/ViewerDevice.cxx b/o2qa/Viewer/ViewerDevice.cxx new file mode 100755 index 0000000000000..505bc04c47bcc --- /dev/null +++ b/o2qa/Viewer/ViewerDevice.cxx @@ -0,0 +1,127 @@ +#include +#include +#include +#include +#include + +#include "ViewerDevice.h" +#include "HistogramTMessage.h" + +using namespace std; + +ViewerDevice::ViewerDevice(std::string viewerId, int numIoThreads) +{ + this->SetTransport(new FairMQTransportFactoryZMQ); + this->SetProperty(ViewerDevice::Id, viewerId); + this->SetProperty(ViewerDevice::NumIoThreads, numIoThreads); +} + +void ViewerDevice::CustomCleanup(void *data, void *hint) +{ + delete (string*)hint; +} + +void ViewerDevice::Run() +{ + mObjectCanvas = new TCanvas("mObjectCanvas", "Object canvas", 100, 10, 1200, 800); + + while (GetCurrentState() == RUNNING) { + this_thread::sleep_for(chrono::milliseconds(1000)); + + TObject* receivedObject = receiveDataObjectFromMerger(); + + if (receivedObject != nullptr) { + updateCanvas(receivedObject); + updateObjectCanvas(receivedObject); + sendReplyToMerger(new string("VIEWER_OK")); + } + } + delete mObjectCanvas; +} + +void ViewerDevice::updateCanvas(TObject* receivedObject) +{ + if (mNamesOfObjectsToDraw.find(receivedObject->GetTitle()) == mNamesOfObjectsToDraw.end()) { + + mNamesOfObjectsToDraw.insert(receivedObject->GetTitle()); + + mObjectCanvas->Clear(); + mObjectCanvas->Divide(mNamesOfObjectsToDraw.size(), 1); + mObjectCanvas->cd(mNamesOfObjectsToDraw.size()); + mObjectCanvas->Update(); + } + else { + unsigned padId = mNamesOfObjectsToDraw.size(); + for (auto const & name : mNamesOfObjectsToDraw) { + if (receivedObject->GetTitle() == name) { + break; + } + padId--; + } + mObjectCanvas->cd(padId); + } +} + +void ViewerDevice::sendReplyToMerger(string* message) +{ + LOG(INFO) << "Sending reply to merger"; + FairMQMessage* reply = fTransportFactory->CreateMessage(const_cast(message->c_str()), + message->length(), + CustomCleanup, + message); + fChannels["data"].at(0).Send(reply); +} + +TObject* ViewerDevice::receiveDataObjectFromMerger() +{ + TObject* receivedObject; + unique_ptr request(move(receiveMessageFromMerger())); + + if (request->GetSize() != 0) { + HistogramTMessage tm(request->GetData(), request->GetSize()); + receivedObject = static_cast(tm.ReadObject(tm.GetClass())); + } + else { + LOG(ERROR) << "Received empty request from merger"; + receivedObject = nullptr; + } + + return receivedObject; +} + +unique_ptr ViewerDevice::receiveMessageFromMerger() +{ + unique_ptr request(fTransportFactory->CreateMessage()); + fChannels["data"].at(0).Receive(&(*request)); + LOG(INFO) << "Received data object from merger"; + return request; +} + +void ViewerDevice::updateObjectCanvas(TObject* receivedObject) +{ + receivedObject->Draw(); + mObjectCanvas->Modified(); + mObjectCanvas->Update(); + gSystem->ProcessEvents(); +} + +void ViewerDevice::executeRunLoop() +{ + ChangeState("INIT_DEVICE"); + WaitForEndOfState("INIT_DEVICE"); + + ChangeState("INIT_TASK"); + WaitForEndOfState("INIT_TASK"); + + ChangeState("RUN"); + InteractiveStateLoop(); +} + +void ViewerDevice::establishChannel(string type, string method, string address, string channelName) +{ + FairMQChannel requestChannel(type, method, address); + requestChannel.UpdateSndBufSize(1000); + requestChannel.UpdateRcvBufSize(1000); + requestChannel.UpdateRateLogging(1); + fChannels[channelName].push_back(requestChannel); +} diff --git a/o2qa/Viewer/ViewerDevice.h b/o2qa/Viewer/ViewerDevice.h new file mode 100755 index 0000000000000..3d15620b85f07 --- /dev/null +++ b/o2qa/Viewer/ViewerDevice.h @@ -0,0 +1,33 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +class ViewerDevice : public FairMQDevice +{ +public: + ViewerDevice(std::string viewerId, int numIoThreads); + virtual ~ViewerDevice() = default; + + static void CustomCleanup(void *data, void* hint); + void executeRunLoop(); + void establishChannel(std::string type, std::string method, std::string address, std::string channelName); +protected: + ViewerDevice() = default; + virtual void Run(); + +private: + TCanvas* mObjectCanvas; + std::unordered_set mNamesOfObjectsToDraw; + + std::unique_ptr receiveMessageFromMerger(); + void sendReplyToMerger(std::string* message); + TObject* receiveDataObjectFromMerger(); + void updateObjectCanvas(TObject* receivedObject); + void updateCanvas(TObject* receivedObject); +}; diff --git a/o2qa/runHistogramViewer.cxx b/o2qa/runHistogramViewer.cxx deleted file mode 100755 index 87bb3101ce101..0000000000000 --- a/o2qa/runHistogramViewer.cxx +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - -#include "HistogramViewer.h" - -using namespace std; - -HistogramViewer histogramViewer("Viewer_1", 1); - -int main(int argc, char** argv) -{ - TApplication *app; - app = new TApplication("app1", &argc, argv); - - LOG(INFO) << "PID: " << getpid(); - LOG(INFO) << "Viewer id: " - << histogramViewer.GetProperty(HistogramViewer::Id, "default_id"); - - histogramViewer.establishChannel("rep", "bind", "tcp://*:5004", "data"); - - histogramViewer.executeRunLoop(); - - LOG(INFO) << "END OF runHistogramViewer"; - - return 0; -} diff --git a/o2qa/runMerger.cxx b/o2qa/runMerger.cxx index 140c29f2e95b7..e7dea55994439 100755 --- a/o2qa/runMerger.cxx +++ b/o2qa/runMerger.cxx @@ -9,20 +9,17 @@ using namespace std; -MergerDevice mergerDevice(unique_ptr(new Merger()), "Merger_1", 1); - int main(int argc, char** argv) -{ - LOG(INFO) << "PID: " << getpid(); - LOG(INFO) << "Merger id: " - << mergerDevice.GetProperty(MergerDevice::Id, "default_id"); +{ + MergerDevice mergerDevice(unique_ptr(new Merger()), "Merger_1", 1); - mergerDevice.establishChannel("rep", "bind", "tcp://*:5005", "data"); - mergerDevice.establishChannel("req", "connect", "tcp://localhost:5004", "data"); - // mergerDevice.establishChannel("rep", "bind", "tcp://*:5001", "data"); // controller - mergerDevice.executeRunLoop(); + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "Merger id: " + << mergerDevice.GetProperty(MergerDevice::Id, "default_id"); - LOG(INFO) << "END OF runHistogramMerger"; + mergerDevice.establishChannel("rep", "bind", "tcp://*:5005", "data"); + mergerDevice.establishChannel("req", "connect", "tcp://localhost:5004", "data"); + mergerDevice.executeRunLoop(); - return 0; + LOG(INFO) << "END OF runHistogramMerger"; } diff --git a/o2qa/runProducer.cxx b/o2qa/runProducer.cxx index 7c9df9b4f0d74..7a44dd9194310 100755 --- a/o2qa/runProducer.cxx +++ b/o2qa/runProducer.cxx @@ -5,32 +5,26 @@ #include "ProducerDevice.h" -namespace -{ -std::vector producerDevices; -} int main(int argc, char** argv) { - constexpr int requiredNumberOfProgramParameters{5}; - - if (argc != requiredNumberOfProgramParameters) { - LOG(ERROR) << "Wrong number of program parameters, required four parameters: xLow, xUp, name prefix and title"; - return -1; - } - - ProducerDevice producerDevice("Producer", argv[3], argv[4], atof(argv[1]), atof(argv[2]), 1); - producerDevices.push_back(&producerDevice); + std::vector producerDevices; + constexpr int requiredNumberOfProgramParameters{5}; - LOG(INFO) << "PID: " << getpid(); - LOG(INFO) << "Producer id: " - << producerDevices[0]->GetProperty(ProducerDevice::Id, "default_id"); + if (argc != requiredNumberOfProgramParameters) { + LOG(ERROR) << "Wrong number of program parameters, required four parameters: xLow, xUp, name prefix and title"; + return -1; + } - producerDevices[0]->establishChannel("req", "connect", "tcp://localhost:5005", "data"); + ProducerDevice producerDevice("Producer", argv[3], argv[4], atof(argv[1]), atof(argv[2]), 1); + producerDevices.push_back(&producerDevice); - producerDevices[0]->executeRunLoop(); + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "Producer id: " + << producerDevices[0]->GetProperty(ProducerDevice::Id, "default_id"); - LOG(INFO) << "END OF runProducerDevice"; + producerDevices[0]->establishChannel("req", "connect", "tcp://localhost:5005", "data"); + producerDevices[0]->executeRunLoop(); - return 0; + LOG(INFO) << "END OF runProducerDevice"; } diff --git a/o2qa/runSystemController.cxx b/o2qa/runSystemController.cxx index ba0ceecc426b2..224984e60eb9a 100755 --- a/o2qa/runSystemController.cxx +++ b/o2qa/runSystemController.cxx @@ -5,16 +5,13 @@ using namespace std; -SystemController systemController("CentralSystemController", "systemController_log.txt", 1); - int main(int argc, char** argv) { - LOG(INFO) << "PID: " << getpid(); - LOG(INFO) << "SystemController id: " - << systemController.GetProperty(SystemController::Id, "default_id"); - - systemController.establishChannel("req", "connect", "tcp://localhost:5001", "data"); + SystemController systemController("CentralSystemController", "systemController_log.txt", 1); + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "SystemController id: " + << systemController.GetProperty(SystemController::Id, "default_id"); - systemController.executeRunLoop(); - + systemController.establishChannel("req", "connect", "tcp://localhost:5001", "data"); + systemController.executeRunLoop(); } diff --git a/o2qa/runViewerDevice.cxx b/o2qa/runViewerDevice.cxx new file mode 100755 index 0000000000000..f654485fc11ac --- /dev/null +++ b/o2qa/runViewerDevice.cxx @@ -0,0 +1,22 @@ +#include +#include +#include + +#include "ViewerDevice.h" + +using namespace std; + +int main(int argc, char** argv) +{ + ViewerDevice viewerDevice("Viewer_1", 1); + TApplication *app = new TApplication("app1", &argc, argv); + + LOG(INFO) << "PID: " << getpid(); + LOG(INFO) << "Viewer id: " + << viewerDevice.GetProperty(ViewerDevice::Id, "default_id"); + + viewerDevice.establishChannel("rep", "bind", "tcp://*:5004", "data"); + viewerDevice.executeRunLoop(); + + LOG(INFO) << "END OF runHistogramViewer"; +} From 90d0d590bf3b912a5460f21275fdada73ce16d49 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Tue, 23 Feb 2016 21:51:10 +0100 Subject: [PATCH 020/135] Removed underdevelop SystemController module and fakeit framework --- o2qa/SystemController/SystemController.cxx | 108 - o2qa/SystemController/SystemController.h | 27 - o2qa/fakeit.hpp | 9201 -------------------- o2qa/runSystemController.cxx | 17 - 4 files changed, 9353 deletions(-) delete mode 100755 o2qa/SystemController/SystemController.cxx delete mode 100755 o2qa/SystemController/SystemController.h delete mode 100644 o2qa/fakeit.hpp delete mode 100755 o2qa/runSystemController.cxx diff --git a/o2qa/SystemController/SystemController.cxx b/o2qa/SystemController/SystemController.cxx deleted file mode 100755 index ab8eaa19aa6be..0000000000000 --- a/o2qa/SystemController/SystemController.cxx +++ /dev/null @@ -1,108 +0,0 @@ -#include -#include -#include - -#include "SystemController.h" - -using namespace std; - -SystemController::SystemController(std::string controllerId, std::string logFileName, int numIoThreads) -{ - this->SetTransport(new FairMQTransportFactoryZMQ); - this->SetProperty(SystemController::Id, controllerId); - this->SetProperty(SystemController::NumIoThreads, numIoThreads); - mLogFile.open(logFileName); -} - -SystemController::~SystemController() -{ - mLogFile.close(); -} - -void SystemController::establishChannel(std::string type, std::string method, std::string address, std::string channelName) -{ - FairMQChannel requestChannel(type, method, address); - requestChannel.UpdateSndBufSize(5000); - requestChannel.UpdateRcvBufSize(1000); - requestChannel.UpdateRateLogging(1); - fChannels[channelName].push_back(requestChannel); -} - -void SystemController::executeRunLoop() -{ - ChangeState("INIT_DEVICE"); - WaitForEndOfState("INIT_DEVICE"); - - ChangeState("INIT_TASK"); - WaitForEndOfState("INIT_TASK"); - - ChangeState("RUN"); - InteractiveStateLoop(); -} - -void SystemController::CustomCleanup(void *data, void *hint) -{ - delete (string*)hint; -} - -void SystemController::Run() -{ - FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data"]); - poller->Poll(0); - - while (GetCurrentState() == RUNNING) { - mLogFile << getCurrentTime() << "\tSending status request at 5001 tcp port " << endl; - - chrono::time_point startTime; - startTime = chrono::system_clock::now(); - - FairMQMessage* request = sendMessageToNodes(); - - while (chrono::system_clock::now() < (startTime + chrono::seconds(5))) { - if (poller->CheckInput(0)) { - getStatusFromSystemNodes(); - } - } - } -} - -FairMQMessage* SystemController::sendMessageToNodes() -{ - string* text = new string("report_status"); - - FairMQMessage* request = fTransportFactory->CreateMessage(const_cast(text->c_str()), - text->length(), - CustomCleanup, - text); - LOG(INFO) << "Sending status request"; - fChannels["data"].at(0).Send(request, "no-block"); -} - -void SystemController::getStatusFromSystemNodes() -{ - FairMQMessage* reply = fTransportFactory->CreateMessage(); - fChannels["data"].at(0).Receive(reply); - - if (reply->GetSize() != 0) { - auto replyContent = string(static_cast(reply->GetData()), reply->GetSize()); - LOG(INFO) << "Received reply from node: " << replyContent.c_str(); - - if (reply->GetSize() != 0) { - mLogFile << getCurrentTime() << "\tReceived:\t" << replyContent.c_str() << endl; - } - } - delete reply; -} - -string SystemController::getCurrentTime() -{ - time_t rawtime; - struct tm * timeinfo; - char buffer [80]; - - time (&rawtime); - timeinfo = localtime (&rawtime); - strftime (buffer, 80, "%H:%M:%S %F", timeinfo); - - return string(buffer); -} diff --git a/o2qa/SystemController/SystemController.h b/o2qa/SystemController/SystemController.h deleted file mode 100755 index 69e4fb96473a7..0000000000000 --- a/o2qa/SystemController/SystemController.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -class SystemController : public FairMQDevice -{ -public: - SystemController(std::string controllerId, std::string logFileName, int numIoThreads); - virtual ~SystemController(); - - void establishChannel(std::string type, std::string method, std::string address, std::string channelName); - void executeRunLoop(); - static void CustomCleanup(void* data, void* hint); - -protected: - virtual void Run(); - -private: - std::ofstream mLogFile; - - void getStatusFromSystemNodes(); - std::string getCurrentTime(); - FairMQMessage* sendMessageToNodes(); -}; diff --git a/o2qa/fakeit.hpp b/o2qa/fakeit.hpp deleted file mode 100644 index 7fbe7836f4c89..0000000000000 --- a/o2qa/fakeit.hpp +++ /dev/null @@ -1,9201 +0,0 @@ -#pragma once -/* - * FakeIt - A Simplified C++ Mocking Framework - * Copyright (c) Eran Pe'er 2013 - * Generated: 2015-10-29 23:45:30.560000 - * Distributed under the MIT License. Please refer to the LICENSE file at: - * https://github.com/eranpeer/FakeIt - */ - -#ifndef fakeit_h__ -#define fakeit_h__ - - - -#include -#include -#include -#include -#include -#if defined (__GNUG__) || _MSC_VER >= 1900 -#define THROWS noexcept(false) -#define NO_THROWS noexcept(true) -#elif defined (_MSC_VER) -#define THROWS throw(...) -#define NO_THROWS -#endif -#include -#include -#include -#include -#include -#include -#include - - -namespace fakeit { - - template - struct naked_type { - typedef typename std::remove_cv::type>::type type; - }; - - template< class T > struct tuple_arg { typedef T type; }; - template< class T > struct tuple_arg < T& > { typedef T& type; }; - template< class T > struct tuple_arg < T&& > { typedef T&& type; }; - - - - - template - using ArgumentsTuple = std::tuple < arglist... > ; - - template< class T > struct test_arg { typedef T& type; }; - template< class T > struct test_arg< T& > { typedef T& type; }; - template< class T > struct test_arg< T&& > { typedef T& type; }; - - template< class T > struct production_arg { typedef T& type; }; - template< class T > struct production_arg< T& > { typedef T& type; }; - template< class T > struct production_arg< T&& > { typedef T&& type; }; - - template - class is_ostreamable { - struct no {}; - template - static auto test(std::ostream &s, const T1 &t) -> decltype(s << t); - static no test(...); - public: - static const bool value = std::is_same())), std::ostream &>::value; - }; - - template - struct VTableMethodType { -#if defined (__GNUG__) - typedef R(*type)(void *, arglist...); -#elif defined (_MSC_VER) - typedef R(__thiscall *type)(void *, arglist...); -#endif - }; -} -#include -#include -#include -#include -#include -#include - -namespace fakeit { - - struct FakeitContext; - - template - struct MockObject { - virtual ~MockObject() THROWS { }; - - virtual C &get() = 0; - - virtual FakeitContext &getFakeIt() = 0; - }; - - struct MethodInfo { - - static unsigned int nextMethodOrdinal() { - static std::atomic_uint ordinal{0}; - return ++ordinal; - } - - MethodInfo(unsigned int anId, std::string aName) : - _id(anId), _name(aName) { } - - unsigned int id() const { - return _id; - } - - std::string name() const { - return _name; - } - - void setName(const std::string &value) { - _name = value; - } - - private: - unsigned int _id; - std::string _name; - }; - - struct UnknownMethod { - - static MethodInfo &instance() { - static MethodInfo instance(MethodInfo::nextMethodOrdinal(), "unknown"); - return instance; - } - - }; - -} -namespace fakeit { - class Destructible { - public: - virtual ~Destructible() {} - }; -} - -namespace fakeit { - - struct Invocation : Destructible { - - static unsigned int nextInvocationOrdinal() { - static std::atomic_uint invocationOrdinal{0}; - return ++invocationOrdinal; - } - - struct Matcher { - - virtual ~Matcher() THROWS { - } - - virtual bool matches(Invocation &invocation) = 0; - - virtual std::string format() const = 0; - }; - - Invocation(unsigned int ordinal, MethodInfo &method) : - _ordinal(ordinal), _method(method), _isVerified(false) { - } - - virtual ~Invocation() override = default; - - unsigned int getOrdinal() const { - return _ordinal; - } - - MethodInfo &getMethod() const { - return _method; - } - - void markAsVerified() { - _isVerified = true; - } - - bool isVerified() const { - return _isVerified; - } - - virtual std::string format() const = 0; - - private: - const unsigned int _ordinal; - MethodInfo &_method; - bool _isVerified; - }; - -} -#include -#include -#include -#include -#include - -namespace fakeit { - - template - struct Formatter; - - template <> - struct Formatter - { - static std::string format(bool const &val) - { - return val ? "true" : "false"; - } - }; - - template <> - struct Formatter - { - static std::string format(char const &val) - { - std::string s; - s += "'"; - s += val; - s += "'"; - return s; - } - }; - - template - struct Formatter::value>::type> { - static std::string format(C const &) - { - return "?"; - } - }; - - template - struct Formatter::value>::type> { - static std::string format(C const &val) - { - std::ostringstream os; - os << val; - return os.str(); - } - }; - - - template - using TypeFormatter = Formatter::type>; -} - -namespace fakeit { - - - template - struct TuplePrinter { - static void print(std::ostream &strm, const Tuple &t) { - TuplePrinter::print(strm, t); - strm << ", " << fakeit::TypeFormatter(t))>::format(std::get(t)); - } - }; - - template - struct TuplePrinter { - static void print(std::ostream &strm, const Tuple &t) { - strm << fakeit::TypeFormatter(t))>::format(std::get<0>(t)); - } - }; - - template - struct TuplePrinter { - static void print(std::ostream &, const Tuple &) { - } - }; - - template - void print(std::ostream &strm, const std::tuple &t) { - strm << "("; - TuplePrinter::print(strm, t); - strm << ")"; - } - - template - std::ostream &operator<<(std::ostream &strm, const std::tuple &t) { - print(strm, t); - return strm; - } - -} - - -namespace fakeit { - - - - - - - - - - - - - - - - - - - template - struct ActualInvocation : public Invocation { - - struct Matcher : public virtual Destructible { - virtual bool matches(ActualInvocation &actualInvocation) = 0; - - virtual std::string format() const = 0; - }; - - ActualInvocation(unsigned int ordinal, MethodInfo &method, const typename fakeit::production_arg::type... args) : - Invocation(ordinal, method), _matcher{ nullptr } - , actualArguments{ std::forward::type>(args)... } - { - } - - ArgumentsTuple & getActualArguments() { - return actualArguments; - } - - - void setActualMatcher(Matcher *matcher) { - this->_matcher = matcher; - } - - Matcher *getActualMatcher() { - return _matcher; - } - - virtual std::string format() const override { - std::ostringstream out; - out << getMethod().name(); - print(out, actualArguments); - return out.str(); - } - - private: - - Matcher *_matcher; - ArgumentsTuple actualArguments; - }; - - template - std::ostream &operator<<(std::ostream &strm, const ActualInvocation &ai) { - strm << ai.format(); - return strm; - } - -} - - - - - -#include - -namespace fakeit { - - struct ActualInvocationsSource { - virtual void getActualInvocations(std::unordered_set &into) const = 0; - - virtual ~ActualInvocationsSource() NO_THROWS { }; - }; - - struct InvocationsSourceProxy : public ActualInvocationsSource { - - InvocationsSourceProxy(ActualInvocationsSource *inner) : - _inner(inner) { - } - - void getActualInvocations(std::unordered_set &into) const override { - _inner->getActualInvocations(into); - } - - private: - std::shared_ptr _inner; - }; - - struct UnverifiedInvocationsSource : public ActualInvocationsSource { - - UnverifiedInvocationsSource(InvocationsSourceProxy decorated) : _decorated(decorated) { - } - - void getActualInvocations(std::unordered_set &into) const override { - std::unordered_set all; - _decorated.getActualInvocations(all); - for (fakeit::Invocation *i : all) { - if (!i->isVerified()) { - into.insert(i); - } - } - } - - private: - InvocationsSourceProxy _decorated; - }; - - struct AggregateInvocationsSource : public ActualInvocationsSource { - - AggregateInvocationsSource(std::vector &sources) : _sources(sources) { - } - - void getActualInvocations(std::unordered_set &into) const override { - std::unordered_set tmp; - for (ActualInvocationsSource *source : _sources) { - source->getActualInvocations(tmp); - } - filter(tmp, into); - } - - protected: - bool shouldInclude(fakeit::Invocation *) const { - return true; - } - - private: - std::vector _sources; - - void filter(std::unordered_set &source, std::unordered_set &target) const { - for (Invocation *i:source) { - if (shouldInclude(i)) { - target.insert(i); - } - } - } - }; -} - -namespace fakeit { - - class Sequence { - private: - - protected: - - Sequence() { - } - - virtual ~Sequence() THROWS { - } - - public: - - - virtual void getExpectedSequence(std::vector &into) const = 0; - - - virtual void getInvolvedMocks(std::vector &into) const = 0; - - virtual unsigned int size() const = 0; - - friend class VerifyFunctor; - }; - - class ConcatenatedSequence : public virtual Sequence { - private: - const Sequence &s1; - const Sequence &s2; - - protected: - ConcatenatedSequence(const Sequence &seq1, const Sequence &seq2) : - s1(seq1), s2(seq2) { - } - - public: - - virtual ~ConcatenatedSequence() { - } - - unsigned int size() const override { - return s1.size() + s2.size(); - } - - const Sequence &getLeft() const { - return s1; - } - - const Sequence &getRight() const { - return s2; - } - - void getExpectedSequence(std::vector &into) const override { - s1.getExpectedSequence(into); - s2.getExpectedSequence(into); - } - - virtual void getInvolvedMocks(std::vector &into) const override { - s1.getInvolvedMocks(into); - s2.getInvolvedMocks(into); - } - - friend inline ConcatenatedSequence operator+(const Sequence &s1, const Sequence &s2); - }; - - class RepeatedSequence : public virtual Sequence { - private: - const Sequence &_s; - const int times; - - protected: - RepeatedSequence(const Sequence &s, const int t) : - _s(s), times(t) { - } - - public: - - ~RepeatedSequence() { - } - - unsigned int size() const override { - return _s.size() * times; - } - - friend inline RepeatedSequence operator*(const Sequence &s, int times); - - friend inline RepeatedSequence operator*(int times, const Sequence &s); - - void getInvolvedMocks(std::vector &into) const override { - _s.getInvolvedMocks(into); - } - - void getExpectedSequence(std::vector &into) const override { - for (int i = 0; i < times; i++) - _s.getExpectedSequence(into); - } - - int getTimes() const { - return times; - } - - const Sequence &getSequence() const { - return _s; - } - }; - - inline ConcatenatedSequence operator+(const Sequence &s1, const Sequence &s2) { - return ConcatenatedSequence(s1, s2); - } - - inline RepeatedSequence operator*(const Sequence &s, int times) { - if (times <= 0) - throw std::invalid_argument("times"); - return RepeatedSequence(s, times); - } - - inline RepeatedSequence operator*(int times, const Sequence &s) { - if (times <= 0) - throw std::invalid_argument("times"); - return RepeatedSequence(s, times); - } - -} - -namespace fakeit { - - enum class VerificationType { - Exact, AtLeast, NoMoreInvocations - }; - - enum class UnexpectedType { - Unmocked, Unmatched - }; - - struct VerificationEvent { - - VerificationEvent(VerificationType aVerificationType) : - _verificationType(aVerificationType), _line(0) { - } - - virtual ~VerificationEvent() = default; - - VerificationType verificationType() const { - return _verificationType; - } - - void setFileInfo(std::string aFile, int aLine, std::string aCallingMethod) { - _file = aFile; - _callingMethod = aCallingMethod; - _line = aLine; - } - - std::string file() const { - return _file; - } - - int line() const { - return _line; - } - - const std::string &callingMethod() const { - return _callingMethod; - } - - private: - VerificationType _verificationType; - std::string _file; - int _line; - std::string _callingMethod; - }; - - struct NoMoreInvocationsVerificationEvent : public VerificationEvent { - - ~NoMoreInvocationsVerificationEvent() = default; - - NoMoreInvocationsVerificationEvent( - std::vector &allTheIvocations, - std::vector &anUnverifedIvocations) : - VerificationEvent(VerificationType::NoMoreInvocations), - _allIvocations(allTheIvocations), - _unverifedIvocations(anUnverifedIvocations) { - } - - const std::vector &allIvocations() const { - return _allIvocations; - } - - const std::vector &unverifedIvocations() const { - return _unverifedIvocations; - } - - private: - const std::vector _allIvocations; - const std::vector _unverifedIvocations; - }; - - struct SequenceVerificationEvent : public VerificationEvent { - - ~SequenceVerificationEvent() = default; - - SequenceVerificationEvent(VerificationType aVerificationType, - std::vector &anExpectedPattern, - std::vector &anActualSequence, - int anExpectedCount, - int anActualCount) : - VerificationEvent(aVerificationType), - _expectedPattern(anExpectedPattern), - _actualSequence(anActualSequence), - _expectedCount(anExpectedCount), - _actualCount(anActualCount) - { - } - - const std::vector &expectedPattern() const { - return _expectedPattern; - } - - const std::vector &actualSequence() const { - return _actualSequence; - } - - int expectedCount() const { - return _expectedCount; - } - - int actualCount() const { - return _actualCount; - } - - private: - const std::vector _expectedPattern; - const std::vector _actualSequence; - const int _expectedCount; - const int _actualCount; - }; - - struct UnexpectedMethodCallEvent { - UnexpectedMethodCallEvent(UnexpectedType unexpectedType, const Invocation &invocation) : - _unexpectedType(unexpectedType), _invocation(invocation) { - } - - const Invocation &getInvocation() const { - return _invocation; - } - - UnexpectedType getUnexpectedType() const { - return _unexpectedType; - } - - const UnexpectedType _unexpectedType; - const Invocation &_invocation; - }; - -} - -namespace fakeit { - - struct VerificationEventHandler { - virtual void handle(const SequenceVerificationEvent &e) = 0; - - virtual void handle(const NoMoreInvocationsVerificationEvent &e) = 0; - }; - - struct EventHandler : public VerificationEventHandler { - using VerificationEventHandler::handle; - - virtual void handle(const UnexpectedMethodCallEvent &e) = 0; - }; - -} -#include -#include - -namespace fakeit { - - struct UnexpectedMethodCallEvent; - struct SequenceVerificationEvent; - struct NoMoreInvocationsVerificationEvent; - - struct EventFormatter { - - virtual std::string format(const fakeit::UnexpectedMethodCallEvent &e) = 0; - - virtual std::string format(const fakeit::SequenceVerificationEvent &e) = 0; - - virtual std::string format(const fakeit::NoMoreInvocationsVerificationEvent &e) = 0; - - }; - -} - -namespace fakeit { - - struct FakeitContext : public EventHandler, protected EventFormatter { - - virtual ~FakeitContext() = default; - - void handle(const UnexpectedMethodCallEvent &e) override { - fireEvent(e); - auto &eh = getTestingFrameworkAdapter(); - eh.handle(e); - } - - void handle(const SequenceVerificationEvent &e) override { - fireEvent(e); - auto &eh = getTestingFrameworkAdapter(); - return eh.handle(e); - } - - void handle(const NoMoreInvocationsVerificationEvent &e) override { - fireEvent(e); - auto &eh = getTestingFrameworkAdapter(); - return eh.handle(e); - } - - std::string format(const UnexpectedMethodCallEvent &e) override { - auto &eventFormatter = getEventFormatter(); - return eventFormatter.format(e); - } - - std::string format(const SequenceVerificationEvent &e) override { - auto &eventFormatter = getEventFormatter(); - return eventFormatter.format(e); - } - - std::string format(const NoMoreInvocationsVerificationEvent &e) override { - auto &eventFormatter = getEventFormatter(); - return eventFormatter.format(e); - } - - void addEventHandler(EventHandler &eventListener) { - _eventListeners.push_back(&eventListener); - } - - void clearEventHandlers() { - _eventListeners.clear(); - } - - protected: - virtual EventHandler &getTestingFrameworkAdapter() = 0; - - virtual EventFormatter &getEventFormatter() = 0; - - private: - std::vector _eventListeners; - - void fireEvent(const NoMoreInvocationsVerificationEvent &evt) { - for (auto listener : _eventListeners) - listener->handle(evt); - } - - void fireEvent(const UnexpectedMethodCallEvent &evt) { - for (auto listener : _eventListeners) - listener->handle(evt); - } - - void fireEvent(const SequenceVerificationEvent &evt) { - for (auto listener : _eventListeners) - listener->handle(evt); - } - - }; - -} -#include -#include - -namespace fakeit { - - struct DefaultEventFormatter : public EventFormatter { - - virtual std::string format(const UnexpectedMethodCallEvent &e) override { - std::ostringstream out; - out << "Unexpected method invocation: "; - out << e.getInvocation().format() << std::endl; - if (UnexpectedType::Unmatched == e.getUnexpectedType()) { - out << " Could not find Any recorded behavior to support this method call."; - } else { - out << " An unmocked method was invoked. All used virtual methods must be stubbed!"; - } - return out.str(); - } - - - virtual std::string format(const SequenceVerificationEvent &e) override { - std::ostringstream out; - out << "Verification error" << std::endl; - - out << "Expected pattern: "; - const std::vector expectedPattern = e.expectedPattern(); - out << formatExpectedPattern(expectedPattern) << std::endl; - - out << "Expected matches: "; - formatExpectedCount(out, e.verificationType(), e.expectedCount()); - out << std::endl; - - out << "Actual matches : " << e.actualCount() << std::endl; - - auto actualSequence = e.actualSequence(); - out << "Actual sequence : total of " << actualSequence.size() << " actual invocations"; - if (actualSequence.size() == 0) { - out << "."; - } else { - out << ":" << std::endl; - } - formatInvocationList(out, actualSequence); - - return out.str(); - } - - virtual std::string format(const NoMoreInvocationsVerificationEvent &e) override { - std::ostringstream out; - out << "Verification error" << std::endl; - out << "Expected no more invocations!! But the following unverified invocations were found:" << std::endl; - formatInvocationList(out, e.unverifedIvocations()); - return out.str(); - } - - private: - - static std::string formatSequence(const Sequence &val) { - const ConcatenatedSequence *cs = dynamic_cast(&val); - if (cs) { - return format(*cs); - } - const RepeatedSequence *rs = dynamic_cast(&val); - if (rs) { - return format(*rs); - } - - - std::vector vec; - val.getExpectedSequence(vec); - return vec[0]->format(); - } - - static void formatExpectedCount(std::ostream &out, fakeit::VerificationType verificationType, - int expectedCount) { - if (verificationType == fakeit::VerificationType::Exact) - out << "exactly "; - - if (verificationType == fakeit::VerificationType::AtLeast) - out << "at least "; - - out << expectedCount; - } - - static void formatInvocationList(std::ostream &out, const std::vector &actualSequence) { - size_t max_size = actualSequence.size(); - if (max_size > 5) - max_size = 5; - - for (unsigned int i = 0; i < max_size; i++) { - out << " "; - auto invocation = actualSequence[i]; - out << invocation->format(); - if (i < max_size - 1) - out << std::endl; - } - - if (actualSequence.size() > max_size) - out << std::endl << " ..."; - } - - static std::string format(const ConcatenatedSequence &val) { - std::ostringstream out; - out << formatSequence(val.getLeft()) << " + " << formatSequence(val.getRight()); - return out.str(); - } - - static std::string format(const RepeatedSequence &val) { - std::ostringstream out; - const ConcatenatedSequence *cs = dynamic_cast(&val.getSequence()); - const RepeatedSequence *rs = dynamic_cast(&val.getSequence()); - if (rs || cs) - out << '('; - out << formatSequence(val.getSequence()); - if (rs || cs) - out << ')'; - - out << " * " << val.getTimes(); - return out.str(); - } - - static std::string formatExpectedPattern(const std::vector &expectedPattern) { - std::string expectedPatternStr; - for (unsigned int i = 0; i < expectedPattern.size(); i++) { - Sequence *s = expectedPattern[i]; - expectedPatternStr += formatSequence(*s); - if (i < expectedPattern.size() - 1) - expectedPatternStr += " ... "; - } - return expectedPatternStr; - } - }; -} -namespace fakeit { - - struct FakeitException { - std::exception err; - - virtual ~FakeitException() = default; - - virtual std::string what() const = 0; - - friend std::ostream &operator<<(std::ostream &os, const FakeitException &val) { - os << val.what(); - return os; - } - }; - - - - - struct UnexpectedMethodCallException : public FakeitException { - - UnexpectedMethodCallException(std::string format) : - _format(format) { - } - - virtual std::string what() const override { - return _format; - } - - private: - std::string _format; - }; - -} - -namespace fakeit { - - struct DefaultEventLogger : public fakeit::EventHandler { - - DefaultEventLogger(EventFormatter &formatter) : _formatter(formatter), _out(std::cout) { } - - virtual void handle(const UnexpectedMethodCallEvent &e) override { - _out << _formatter.format(e) << std::endl; - } - - virtual void handle(const SequenceVerificationEvent &e) override { - _out << _formatter.format(e) << std::endl; - } - - virtual void handle(const NoMoreInvocationsVerificationEvent &e) override { - _out << _formatter.format(e) << std::endl; - } - - private: - EventFormatter &_formatter; - std::ostream &_out; - }; - -} - -namespace fakeit { - - class AbstractFakeit : public FakeitContext { - public: - virtual ~AbstractFakeit() = default; - - protected: - - virtual fakeit::EventHandler &accessTestingFrameworkAdapter() = 0; - - virtual EventFormatter &accessEventFormatter() = 0; - }; - - class DefaultFakeit : public AbstractFakeit { - DefaultEventFormatter _formatter; - fakeit::EventFormatter *_customFormatter; - fakeit::EventHandler *_testingFrameworkAdapter; - - public: - - DefaultFakeit() : _formatter(), - _customFormatter(nullptr), - _testingFrameworkAdapter(nullptr) { - } - - virtual ~DefaultFakeit() = default; - - void setCustomEventFormatter(fakeit::EventFormatter &customEventFormatter) { - _customFormatter = &customEventFormatter; - } - - void resetCustomEventFormatter() { - _customFormatter = nullptr; - } - - void setTestingFrameworkAdapter(fakeit::EventHandler &testingFrameforkAdapter) { - _testingFrameworkAdapter = &testingFrameforkAdapter; - } - - void resetTestingFrameworkAdapter() { - _testingFrameworkAdapter = nullptr; - } - - protected: - - fakeit::EventHandler &getTestingFrameworkAdapter() override { - if (_testingFrameworkAdapter) - return *_testingFrameworkAdapter; - return accessTestingFrameworkAdapter(); - } - - EventFormatter &getEventFormatter() override { - if (_customFormatter) - return *_customFormatter; - return accessEventFormatter(); - } - - EventFormatter &accessEventFormatter() override { - return _formatter; - } - - }; -} -#include - -#define BOOST_TEST_TOOL_IMPL2( func, P, check_descr, TL, CT, F, L ) \ - ::boost::test_tools::tt_detail::func( \ - P, \ - ::boost::unit_test::lazy_ostream::instance() << check_descr, \ - F, \ - static_cast(L), \ - ::boost::test_tools::tt_detail::TL, \ - ::boost::test_tools::tt_detail::CT , 0) \ - -namespace fakeit { - - struct BoostTestAdapter : public EventHandler { - virtual ~BoostTestAdapter() = default; - - BoostTestAdapter(EventFormatter &formatter) - : _formatter(formatter) { - } - - virtual void handle(const UnexpectedMethodCallEvent &evt) override { - std::string format = _formatter.format(evt); - throw format; - } - - virtual void handle(const SequenceVerificationEvent &evt) override { - std::string format = _formatter.format(evt); - boost_fail(evt.file(), evt.line(), format); - } - - virtual void handle(const NoMoreInvocationsVerificationEvent &evt) override { - std::string format = _formatter.format(evt); - boost_fail(evt.file(), evt.line(), format); - } - - - private: - EventFormatter &_formatter; - - void boost_fail(std::string file, int line, std::string format){ - -#if (BOOST_VERSION >= 105900) - ::boost::test_tools::tt_detail:: - BOOST_PP_IF(2, report_assertion, 2) ( - false, - BOOST_TEST_LAZY_MSG(format), - file, - static_cast(line), - ::boost::test_tools::tt_detail::REQUIRE, - ::boost::test_tools::tt_detail::CHECK_MSG, - 0); -#else - ::boost::test_tools::tt_detail::check_impl( - false, - ::boost::unit_test::lazy_ostream::instance() << format, - file, - static_cast(line), - ::boost::test_tools::tt_detail::CHECK, - ::boost::test_tools::tt_detail::CHECK_MSG, - 0); -#endif - - } - }; - - class BoostTestFakeit : public DefaultFakeit { - - public: - virtual ~BoostTestFakeit() = default; - - BoostTestFakeit(): _boostTestAdapter(*this) { - } - - static BoostTestFakeit &getInstance() { - static BoostTestFakeit instance; - return instance; - } - - protected: - - fakeit::EventHandler &accessTestingFrameworkAdapter() override { - return _boostTestAdapter; - } - - private: - - BoostTestAdapter _boostTestAdapter; - }; -} - -static fakeit::DefaultFakeit& Fakeit = fakeit::BoostTestFakeit::getInstance(); - - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -namespace fakeit { - - struct VirtualOffsetSelector { - - unsigned int offset; - - virtual unsigned int offset0(int) { - return offset = 0; - } - - virtual unsigned int offset1(int) { - return offset = 1; - } - - virtual unsigned int offset2(int) { - return offset = 2; - } - - virtual unsigned int offset3(int) { - return offset = 3; - } - - virtual unsigned int offset4(int) { - return offset = 4; - } - - virtual unsigned int offset5(int) { - return offset = 5; - } - - virtual unsigned int offset6(int) { - return offset = 6; - } - - virtual unsigned int offset7(int) { - return offset = 7; - } - - virtual unsigned int offset8(int) { - return offset = 8; - } - - virtual unsigned int offset9(int) { - return offset = 9; - } - - virtual unsigned int offset10(int) { - return offset = 10; - } - - virtual unsigned int offset11(int) { - return offset = 11; - } - - virtual unsigned int offset12(int) { - return offset = 12; - } - - virtual unsigned int offset13(int) { - return offset = 13; - } - - virtual unsigned int offset14(int) { - return offset = 14; - } - - virtual unsigned int offset15(int) { - return offset = 15; - } - - virtual unsigned int offset16(int) { - return offset = 16; - } - - virtual unsigned int offset17(int) { - return offset = 17; - } - - virtual unsigned int offset18(int) { - return offset = 18; - } - - virtual unsigned int offset19(int) { - return offset = 19; - } - - virtual unsigned int offset20(int) { - return offset = 20; - } - - virtual unsigned int offset21(int) { - return offset = 21; - } - - virtual unsigned int offset22(int) { - return offset = 22; - } - - virtual unsigned int offset23(int) { - return offset = 23; - } - - virtual unsigned int offset24(int) { - return offset = 24; - } - - virtual unsigned int offset25(int) { - return offset = 25; - } - - virtual unsigned int offset26(int) { - return offset = 26; - } - - virtual unsigned int offset27(int) { - return offset = 27; - } - - virtual unsigned int offset28(int) { - return offset = 28; - } - - virtual unsigned int offset29(int) { - return offset = 29; - } - - virtual unsigned int offset30(int) { - return offset = 30; - } - - virtual unsigned int offset31(int) { - return offset = 31; - } - - virtual unsigned int offset32(int) { - return offset = 32; - } - - virtual unsigned int offset33(int) { - return offset = 33; - } - - virtual unsigned int offset34(int) { - return offset = 34; - } - - virtual unsigned int offset35(int) { - return offset = 35; - } - - virtual unsigned int offset36(int) { - return offset = 36; - } - - virtual unsigned int offset37(int) { - return offset = 37; - } - - virtual unsigned int offset38(int) { - return offset = 38; - } - - virtual unsigned int offset39(int) { - return offset = 39; - } - - virtual unsigned int offset40(int) { - return offset = 40; - } - - virtual unsigned int offset41(int) { - return offset = 41; - } - - virtual unsigned int offset42(int) { - return offset = 42; - } - - virtual unsigned int offset43(int) { - return offset = 43; - } - - virtual unsigned int offset44(int) { - return offset = 44; - } - - virtual unsigned int offset45(int) { - return offset = 45; - } - - virtual unsigned int offset46(int) { - return offset = 46; - } - - virtual unsigned int offset47(int) { - return offset = 47; - } - - virtual unsigned int offset48(int) { - return offset = 48; - } - - virtual unsigned int offset49(int) { - return offset = 49; - } - - virtual unsigned int offset50(int) { - return offset = 50; - } - - virtual unsigned int offset51(int) { - return offset = 51; - } - - virtual unsigned int offset52(int) { - return offset = 52; - } - - virtual unsigned int offset53(int) { - return offset = 53; - } - - virtual unsigned int offset54(int) { - return offset = 54; - } - - virtual unsigned int offset55(int) { - return offset = 55; - } - - virtual unsigned int offset56(int) { - return offset = 56; - } - - virtual unsigned int offset57(int) { - return offset = 57; - } - - virtual unsigned int offset58(int) { - return offset = 58; - } - - virtual unsigned int offset59(int) { - return offset = 59; - } - - virtual unsigned int offset60(int) { - return offset = 60; - } - - virtual unsigned int offset61(int) { - return offset = 61; - } - - virtual unsigned int offset62(int) { - return offset = 62; - } - - virtual unsigned int offset63(int) { - return offset = 63; - } - - virtual unsigned int offset64(int) { - return offset = 64; - } - - virtual unsigned int offset65(int) { - return offset = 65; - } - - virtual unsigned int offset66(int) { - return offset = 66; - } - - virtual unsigned int offset67(int) { - return offset = 67; - } - - virtual unsigned int offset68(int) { - return offset = 68; - } - - virtual unsigned int offset69(int) { - return offset = 69; - } - - virtual unsigned int offset70(int) { - return offset = 70; - } - - virtual unsigned int offset71(int) { - return offset = 71; - } - - virtual unsigned int offset72(int) { - return offset = 72; - } - - virtual unsigned int offset73(int) { - return offset = 73; - } - - virtual unsigned int offset74(int) { - return offset = 74; - } - - virtual unsigned int offset75(int) { - return offset = 75; - } - - virtual unsigned int offset76(int) { - return offset = 76; - } - - virtual unsigned int offset77(int) { - return offset = 77; - } - - virtual unsigned int offset78(int) { - return offset = 78; - } - - virtual unsigned int offset79(int) { - return offset = 79; - } - - virtual unsigned int offset80(int) { - return offset = 80; - } - - virtual unsigned int offset81(int) { - return offset = 81; - } - - virtual unsigned int offset82(int) { - return offset = 82; - } - - virtual unsigned int offset83(int) { - return offset = 83; - } - - virtual unsigned int offset84(int) { - return offset = 84; - } - - virtual unsigned int offset85(int) { - return offset = 85; - } - - virtual unsigned int offset86(int) { - return offset = 86; - } - - virtual unsigned int offset87(int) { - return offset = 87; - } - - virtual unsigned int offset88(int) { - return offset = 88; - } - - virtual unsigned int offset89(int) { - return offset = 89; - } - - virtual unsigned int offset90(int) { - return offset = 90; - } - - virtual unsigned int offset91(int) { - return offset = 91; - } - - virtual unsigned int offset92(int) { - return offset = 92; - } - - virtual unsigned int offset93(int) { - return offset = 93; - } - - virtual unsigned int offset94(int) { - return offset = 94; - } - - virtual unsigned int offset95(int) { - return offset = 95; - } - - virtual unsigned int offset96(int) { - return offset = 96; - } - - virtual unsigned int offset97(int) { - return offset = 97; - } - - virtual unsigned int offset98(int) { - return offset = 98; - } - - virtual unsigned int offset99(int) { - return offset = 99; - } - - virtual unsigned int offset100(int) { - return offset = 100; - } - - virtual unsigned int offset101(int) { - return offset = 101; - } - - virtual unsigned int offset102(int) { - return offset = 102; - } - - virtual unsigned int offset103(int) { - return offset = 103; - } - - virtual unsigned int offset104(int) { - return offset = 104; - } - - virtual unsigned int offset105(int) { - return offset = 105; - } - - virtual unsigned int offset106(int) { - return offset = 106; - } - - virtual unsigned int offset107(int) { - return offset = 107; - } - - virtual unsigned int offset108(int) { - return offset = 108; - } - - virtual unsigned int offset109(int) { - return offset = 109; - } - - virtual unsigned int offset110(int) { - return offset = 110; - } - - virtual unsigned int offset111(int) { - return offset = 111; - } - - virtual unsigned int offset112(int) { - return offset = 112; - } - - virtual unsigned int offset113(int) { - return offset = 113; - } - - virtual unsigned int offset114(int) { - return offset = 114; - } - - virtual unsigned int offset115(int) { - return offset = 115; - } - - virtual unsigned int offset116(int) { - return offset = 116; - } - - virtual unsigned int offset117(int) { - return offset = 117; - } - - virtual unsigned int offset118(int) { - return offset = 118; - } - - virtual unsigned int offset119(int) { - return offset = 119; - } - - virtual unsigned int offset120(int) { - return offset = 120; - } - - virtual unsigned int offset121(int) { - return offset = 121; - } - - virtual unsigned int offset122(int) { - return offset = 122; - } - - virtual unsigned int offset123(int) { - return offset = 123; - } - - virtual unsigned int offset124(int) { - return offset = 124; - } - - virtual unsigned int offset125(int) { - return offset = 125; - } - - virtual unsigned int offset126(int) { - return offset = 126; - } - - virtual unsigned int offset127(int) { - return offset = 127; - } - - virtual unsigned int offset128(int) { - return offset = 128; - } - - virtual unsigned int offset129(int) { - return offset = 129; - } - - virtual unsigned int offset130(int) { - return offset = 130; - } - - virtual unsigned int offset131(int) { - return offset = 131; - } - - virtual unsigned int offset132(int) { - return offset = 132; - } - - virtual unsigned int offset133(int) { - return offset = 133; - } - - virtual unsigned int offset134(int) { - return offset = 134; - } - - virtual unsigned int offset135(int) { - return offset = 135; - } - - virtual unsigned int offset136(int) { - return offset = 136; - } - - virtual unsigned int offset137(int) { - return offset = 137; - } - - virtual unsigned int offset138(int) { - return offset = 138; - } - - virtual unsigned int offset139(int) { - return offset = 139; - } - - virtual unsigned int offset140(int) { - return offset = 140; - } - - virtual unsigned int offset141(int) { - return offset = 141; - } - - virtual unsigned int offset142(int) { - return offset = 142; - } - - virtual unsigned int offset143(int) { - return offset = 143; - } - - virtual unsigned int offset144(int) { - return offset = 144; - } - - virtual unsigned int offset145(int) { - return offset = 145; - } - - virtual unsigned int offset146(int) { - return offset = 146; - } - - virtual unsigned int offset147(int) { - return offset = 147; - } - - virtual unsigned int offset148(int) { - return offset = 148; - } - - virtual unsigned int offset149(int) { - return offset = 149; - } - - virtual unsigned int offset150(int) { - return offset = 150; - } - - virtual unsigned int offset151(int) { - return offset = 151; - } - - virtual unsigned int offset152(int) { - return offset = 152; - } - - virtual unsigned int offset153(int) { - return offset = 153; - } - - virtual unsigned int offset154(int) { - return offset = 154; - } - - virtual unsigned int offset155(int) { - return offset = 155; - } - - virtual unsigned int offset156(int) { - return offset = 156; - } - - virtual unsigned int offset157(int) { - return offset = 157; - } - - virtual unsigned int offset158(int) { - return offset = 158; - } - - virtual unsigned int offset159(int) { - return offset = 159; - } - - virtual unsigned int offset160(int) { - return offset = 160; - } - - virtual unsigned int offset161(int) { - return offset = 161; - } - - virtual unsigned int offset162(int) { - return offset = 162; - } - - virtual unsigned int offset163(int) { - return offset = 163; - } - - virtual unsigned int offset164(int) { - return offset = 164; - } - - virtual unsigned int offset165(int) { - return offset = 165; - } - - virtual unsigned int offset166(int) { - return offset = 166; - } - - virtual unsigned int offset167(int) { - return offset = 167; - } - - virtual unsigned int offset168(int) { - return offset = 168; - } - - virtual unsigned int offset169(int) { - return offset = 169; - } - - virtual unsigned int offset170(int) { - return offset = 170; - } - - virtual unsigned int offset171(int) { - return offset = 171; - } - - virtual unsigned int offset172(int) { - return offset = 172; - } - - virtual unsigned int offset173(int) { - return offset = 173; - } - - virtual unsigned int offset174(int) { - return offset = 174; - } - - virtual unsigned int offset175(int) { - return offset = 175; - } - - virtual unsigned int offset176(int) { - return offset = 176; - } - - virtual unsigned int offset177(int) { - return offset = 177; - } - - virtual unsigned int offset178(int) { - return offset = 178; - } - - virtual unsigned int offset179(int) { - return offset = 179; - } - - virtual unsigned int offset180(int) { - return offset = 180; - } - - virtual unsigned int offset181(int) { - return offset = 181; - } - - virtual unsigned int offset182(int) { - return offset = 182; - } - - virtual unsigned int offset183(int) { - return offset = 183; - } - - virtual unsigned int offset184(int) { - return offset = 184; - } - - virtual unsigned int offset185(int) { - return offset = 185; - } - - virtual unsigned int offset186(int) { - return offset = 186; - } - - virtual unsigned int offset187(int) { - return offset = 187; - } - - virtual unsigned int offset188(int) { - return offset = 188; - } - - virtual unsigned int offset189(int) { - return offset = 189; - } - - virtual unsigned int offset190(int) { - return offset = 190; - } - - virtual unsigned int offset191(int) { - return offset = 191; - } - - virtual unsigned int offset192(int) { - return offset = 192; - } - - virtual unsigned int offset193(int) { - return offset = 193; - } - - virtual unsigned int offset194(int) { - return offset = 194; - } - - virtual unsigned int offset195(int) { - return offset = 195; - } - - virtual unsigned int offset196(int) { - return offset = 196; - } - - virtual unsigned int offset197(int) { - return offset = 197; - } - - virtual unsigned int offset198(int) { - return offset = 198; - } - - virtual unsigned int offset199(int) { - return offset = 199; - } - - - virtual unsigned int offset200(int) { - return offset = 200; - } - - virtual unsigned int offset201(int) { - return offset = 201; - } - - virtual unsigned int offset202(int) { - return offset = 202; - } - - virtual unsigned int offset203(int) { - return offset = 203; - } - - virtual unsigned int offset204(int) { - return offset = 204; - } - - virtual unsigned int offset205(int) { - return offset = 205; - } - - virtual unsigned int offset206(int) { - return offset = 206; - } - - virtual unsigned int offset207(int) { - return offset = 207; - } - - virtual unsigned int offset208(int) { - return offset = 208; - } - - virtual unsigned int offset209(int) { - return offset = 209; - } - - virtual unsigned int offset210(int) { - return offset = 210; - } - - virtual unsigned int offset211(int) { - return offset = 211; - } - - virtual unsigned int offset212(int) { - return offset = 212; - } - - virtual unsigned int offset213(int) { - return offset = 213; - } - - virtual unsigned int offset214(int) { - return offset = 214; - } - - virtual unsigned int offset215(int) { - return offset = 215; - } - - virtual unsigned int offset216(int) { - return offset = 216; - } - - virtual unsigned int offset217(int) { - return offset = 217; - } - - virtual unsigned int offset218(int) { - return offset = 218; - } - - virtual unsigned int offset219(int) { - return offset = 219; - } - - virtual unsigned int offset220(int) { - return offset = 220; - } - - virtual unsigned int offset221(int) { - return offset = 221; - } - - virtual unsigned int offset222(int) { - return offset = 222; - } - - virtual unsigned int offset223(int) { - return offset = 223; - } - - virtual unsigned int offset224(int) { - return offset = 224; - } - - virtual unsigned int offset225(int) { - return offset = 225; - } - - virtual unsigned int offset226(int) { - return offset = 226; - } - - virtual unsigned int offset227(int) { - return offset = 227; - } - - virtual unsigned int offset228(int) { - return offset = 228; - } - - virtual unsigned int offset229(int) { - return offset = 229; - } - - virtual unsigned int offset230(int) { - return offset = 230; - } - - virtual unsigned int offset231(int) { - return offset = 231; - } - - virtual unsigned int offset232(int) { - return offset = 232; - } - - virtual unsigned int offset233(int) { - return offset = 233; - } - - virtual unsigned int offset234(int) { - return offset = 234; - } - - virtual unsigned int offset235(int) { - return offset = 235; - } - - virtual unsigned int offset236(int) { - return offset = 236; - } - - virtual unsigned int offset237(int) { - return offset = 237; - } - - virtual unsigned int offset238(int) { - return offset = 238; - } - - virtual unsigned int offset239(int) { - return offset = 239; - } - - virtual unsigned int offset240(int) { - return offset = 240; - } - - virtual unsigned int offset241(int) { - return offset = 241; - } - - virtual unsigned int offset242(int) { - return offset = 242; - } - - virtual unsigned int offset243(int) { - return offset = 243; - } - - virtual unsigned int offset244(int) { - return offset = 244; - } - - virtual unsigned int offset245(int) { - return offset = 245; - } - - virtual unsigned int offset246(int) { - return offset = 246; - } - - virtual unsigned int offset247(int) { - return offset = 247; - } - - virtual unsigned int offset248(int) { - return offset = 248; - } - - virtual unsigned int offset249(int) { - return offset = 249; - } - - virtual unsigned int offset250(int) { - return offset = 250; - } - - virtual unsigned int offset251(int) { - return offset = 251; - } - - virtual unsigned int offset252(int) { - return offset = 252; - } - - virtual unsigned int offset253(int) { - return offset = 253; - } - - virtual unsigned int offset254(int) { - return offset = 254; - } - - virtual unsigned int offset255(int) { - return offset = 255; - } - - virtual unsigned int offset256(int) { - return offset = 256; - } - - virtual unsigned int offset257(int) { - return offset = 257; - } - - virtual unsigned int offset258(int) { - return offset = 258; - } - - virtual unsigned int offset259(int) { - return offset = 259; - } - - virtual unsigned int offset260(int) { - return offset = 260; - } - - virtual unsigned int offset261(int) { - return offset = 261; - } - - virtual unsigned int offset262(int) { - return offset = 262; - } - - virtual unsigned int offset263(int) { - return offset = 263; - } - - virtual unsigned int offset264(int) { - return offset = 264; - } - - virtual unsigned int offset265(int) { - return offset = 265; - } - - virtual unsigned int offset266(int) { - return offset = 266; - } - - virtual unsigned int offset267(int) { - return offset = 267; - } - - virtual unsigned int offset268(int) { - return offset = 268; - } - - virtual unsigned int offset269(int) { - return offset = 269; - } - - virtual unsigned int offset270(int) { - return offset = 270; - } - - virtual unsigned int offset271(int) { - return offset = 271; - } - - virtual unsigned int offset272(int) { - return offset = 272; - } - - virtual unsigned int offset273(int) { - return offset = 273; - } - - virtual unsigned int offset274(int) { - return offset = 274; - } - - virtual unsigned int offset275(int) { - return offset = 275; - } - - virtual unsigned int offset276(int) { - return offset = 276; - } - - virtual unsigned int offset277(int) { - return offset = 277; - } - - virtual unsigned int offset278(int) { - return offset = 278; - } - - virtual unsigned int offset279(int) { - return offset = 279; - } - - virtual unsigned int offset280(int) { - return offset = 280; - } - - virtual unsigned int offset281(int) { - return offset = 281; - } - - virtual unsigned int offset282(int) { - return offset = 282; - } - - virtual unsigned int offset283(int) { - return offset = 283; - } - - virtual unsigned int offset284(int) { - return offset = 284; - } - - virtual unsigned int offset285(int) { - return offset = 285; - } - - virtual unsigned int offset286(int) { - return offset = 286; - } - - virtual unsigned int offset287(int) { - return offset = 287; - } - - virtual unsigned int offset288(int) { - return offset = 288; - } - - virtual unsigned int offset289(int) { - return offset = 289; - } - - virtual unsigned int offset290(int) { - return offset = 290; - } - - virtual unsigned int offset291(int) { - return offset = 291; - } - - virtual unsigned int offset292(int) { - return offset = 292; - } - - virtual unsigned int offset293(int) { - return offset = 293; - } - - virtual unsigned int offset294(int) { - return offset = 294; - } - - virtual unsigned int offset295(int) { - return offset = 295; - } - - virtual unsigned int offset296(int) { - return offset = 296; - } - - virtual unsigned int offset297(int) { - return offset = 297; - } - - virtual unsigned int offset298(int) { - return offset = 298; - } - - virtual unsigned int offset299(int) { - return offset = 299; - } - - - virtual unsigned int offset300(int) { - return offset = 300; - } - - virtual unsigned int offset301(int) { - return offset = 301; - } - - virtual unsigned int offset302(int) { - return offset = 302; - } - - virtual unsigned int offset303(int) { - return offset = 303; - } - - virtual unsigned int offset304(int) { - return offset = 304; - } - - virtual unsigned int offset305(int) { - return offset = 305; - } - - virtual unsigned int offset306(int) { - return offset = 306; - } - - virtual unsigned int offset307(int) { - return offset = 307; - } - - virtual unsigned int offset308(int) { - return offset = 308; - } - - virtual unsigned int offset309(int) { - return offset = 309; - } - - virtual unsigned int offset310(int) { - return offset = 310; - } - - virtual unsigned int offset311(int) { - return offset = 311; - } - - virtual unsigned int offset312(int) { - return offset = 312; - } - - virtual unsigned int offset313(int) { - return offset = 313; - } - - virtual unsigned int offset314(int) { - return offset = 314; - } - - virtual unsigned int offset315(int) { - return offset = 315; - } - - virtual unsigned int offset316(int) { - return offset = 316; - } - - virtual unsigned int offset317(int) { - return offset = 317; - } - - virtual unsigned int offset318(int) { - return offset = 318; - } - - virtual unsigned int offset319(int) { - return offset = 319; - } - - virtual unsigned int offset320(int) { - return offset = 320; - } - - virtual unsigned int offset321(int) { - return offset = 321; - } - - virtual unsigned int offset322(int) { - return offset = 322; - } - - virtual unsigned int offset323(int) { - return offset = 323; - } - - virtual unsigned int offset324(int) { - return offset = 324; - } - - virtual unsigned int offset325(int) { - return offset = 325; - } - - virtual unsigned int offset326(int) { - return offset = 326; - } - - virtual unsigned int offset327(int) { - return offset = 327; - } - - virtual unsigned int offset328(int) { - return offset = 328; - } - - virtual unsigned int offset329(int) { - return offset = 329; - } - - virtual unsigned int offset330(int) { - return offset = 330; - } - - virtual unsigned int offset331(int) { - return offset = 331; - } - - virtual unsigned int offset332(int) { - return offset = 332; - } - - virtual unsigned int offset333(int) { - return offset = 333; - } - - virtual unsigned int offset334(int) { - return offset = 334; - } - - virtual unsigned int offset335(int) { - return offset = 335; - } - - virtual unsigned int offset336(int) { - return offset = 336; - } - - virtual unsigned int offset337(int) { - return offset = 337; - } - - virtual unsigned int offset338(int) { - return offset = 338; - } - - virtual unsigned int offset339(int) { - return offset = 339; - } - - virtual unsigned int offset340(int) { - return offset = 340; - } - - virtual unsigned int offset341(int) { - return offset = 341; - } - - virtual unsigned int offset342(int) { - return offset = 342; - } - - virtual unsigned int offset343(int) { - return offset = 343; - } - - virtual unsigned int offset344(int) { - return offset = 344; - } - - virtual unsigned int offset345(int) { - return offset = 345; - } - - virtual unsigned int offset346(int) { - return offset = 346; - } - - virtual unsigned int offset347(int) { - return offset = 347; - } - - virtual unsigned int offset348(int) { - return offset = 348; - } - - virtual unsigned int offset349(int) { - return offset = 349; - } - - virtual unsigned int offset350(int) { - return offset = 350; - } - - virtual unsigned int offset351(int) { - return offset = 351; - } - - virtual unsigned int offset352(int) { - return offset = 352; - } - - virtual unsigned int offset353(int) { - return offset = 353; - } - - virtual unsigned int offset354(int) { - return offset = 354; - } - - virtual unsigned int offset355(int) { - return offset = 355; - } - - virtual unsigned int offset356(int) { - return offset = 356; - } - - virtual unsigned int offset357(int) { - return offset = 357; - } - - virtual unsigned int offset358(int) { - return offset = 358; - } - - virtual unsigned int offset359(int) { - return offset = 359; - } - - virtual unsigned int offset360(int) { - return offset = 360; - } - - virtual unsigned int offset361(int) { - return offset = 361; - } - - virtual unsigned int offset362(int) { - return offset = 362; - } - - virtual unsigned int offset363(int) { - return offset = 363; - } - - virtual unsigned int offset364(int) { - return offset = 364; - } - - virtual unsigned int offset365(int) { - return offset = 365; - } - - virtual unsigned int offset366(int) { - return offset = 366; - } - - virtual unsigned int offset367(int) { - return offset = 367; - } - - virtual unsigned int offset368(int) { - return offset = 368; - } - - virtual unsigned int offset369(int) { - return offset = 369; - } - - virtual unsigned int offset370(int) { - return offset = 370; - } - - virtual unsigned int offset371(int) { - return offset = 371; - } - - virtual unsigned int offset372(int) { - return offset = 372; - } - - virtual unsigned int offset373(int) { - return offset = 373; - } - - virtual unsigned int offset374(int) { - return offset = 374; - } - - virtual unsigned int offset375(int) { - return offset = 375; - } - - virtual unsigned int offset376(int) { - return offset = 376; - } - - virtual unsigned int offset377(int) { - return offset = 377; - } - - virtual unsigned int offset378(int) { - return offset = 378; - } - - virtual unsigned int offset379(int) { - return offset = 379; - } - - virtual unsigned int offset380(int) { - return offset = 380; - } - - virtual unsigned int offset381(int) { - return offset = 381; - } - - virtual unsigned int offset382(int) { - return offset = 382; - } - - virtual unsigned int offset383(int) { - return offset = 383; - } - - virtual unsigned int offset384(int) { - return offset = 384; - } - - virtual unsigned int offset385(int) { - return offset = 385; - } - - virtual unsigned int offset386(int) { - return offset = 386; - } - - virtual unsigned int offset387(int) { - return offset = 387; - } - - virtual unsigned int offset388(int) { - return offset = 388; - } - - virtual unsigned int offset389(int) { - return offset = 389; - } - - virtual unsigned int offset390(int) { - return offset = 390; - } - - virtual unsigned int offset391(int) { - return offset = 391; - } - - virtual unsigned int offset392(int) { - return offset = 392; - } - - virtual unsigned int offset393(int) { - return offset = 393; - } - - virtual unsigned int offset394(int) { - return offset = 394; - } - - virtual unsigned int offset395(int) { - return offset = 395; - } - - virtual unsigned int offset396(int) { - return offset = 396; - } - - virtual unsigned int offset397(int) { - return offset = 397; - } - - virtual unsigned int offset398(int) { - return offset = 398; - } - - virtual unsigned int offset399(int) { - return offset = 399; - } - - - virtual unsigned int offset400(int) { - return offset = 400; - } - - virtual unsigned int offset401(int) { - return offset = 401; - } - - virtual unsigned int offset402(int) { - return offset = 402; - } - - virtual unsigned int offset403(int) { - return offset = 403; - } - - virtual unsigned int offset404(int) { - return offset = 404; - } - - virtual unsigned int offset405(int) { - return offset = 405; - } - - virtual unsigned int offset406(int) { - return offset = 406; - } - - virtual unsigned int offset407(int) { - return offset = 407; - } - - virtual unsigned int offset408(int) { - return offset = 408; - } - - virtual unsigned int offset409(int) { - return offset = 409; - } - - virtual unsigned int offset410(int) { - return offset = 410; - } - - virtual unsigned int offset411(int) { - return offset = 411; - } - - virtual unsigned int offset412(int) { - return offset = 412; - } - - virtual unsigned int offset413(int) { - return offset = 413; - } - - virtual unsigned int offset414(int) { - return offset = 414; - } - - virtual unsigned int offset415(int) { - return offset = 415; - } - - virtual unsigned int offset416(int) { - return offset = 416; - } - - virtual unsigned int offset417(int) { - return offset = 417; - } - - virtual unsigned int offset418(int) { - return offset = 418; - } - - virtual unsigned int offset419(int) { - return offset = 419; - } - - virtual unsigned int offset420(int) { - return offset = 420; - } - - virtual unsigned int offset421(int) { - return offset = 421; - } - - virtual unsigned int offset422(int) { - return offset = 422; - } - - virtual unsigned int offset423(int) { - return offset = 423; - } - - virtual unsigned int offset424(int) { - return offset = 424; - } - - virtual unsigned int offset425(int) { - return offset = 425; - } - - virtual unsigned int offset426(int) { - return offset = 426; - } - - virtual unsigned int offset427(int) { - return offset = 427; - } - - virtual unsigned int offset428(int) { - return offset = 428; - } - - virtual unsigned int offset429(int) { - return offset = 429; - } - - virtual unsigned int offset430(int) { - return offset = 430; - } - - virtual unsigned int offset431(int) { - return offset = 431; - } - - virtual unsigned int offset432(int) { - return offset = 432; - } - - virtual unsigned int offset433(int) { - return offset = 433; - } - - virtual unsigned int offset434(int) { - return offset = 434; - } - - virtual unsigned int offset435(int) { - return offset = 435; - } - - virtual unsigned int offset436(int) { - return offset = 436; - } - - virtual unsigned int offset437(int) { - return offset = 437; - } - - virtual unsigned int offset438(int) { - return offset = 438; - } - - virtual unsigned int offset439(int) { - return offset = 439; - } - - virtual unsigned int offset440(int) { - return offset = 440; - } - - virtual unsigned int offset441(int) { - return offset = 441; - } - - virtual unsigned int offset442(int) { - return offset = 442; - } - - virtual unsigned int offset443(int) { - return offset = 443; - } - - virtual unsigned int offset444(int) { - return offset = 444; - } - - virtual unsigned int offset445(int) { - return offset = 445; - } - - virtual unsigned int offset446(int) { - return offset = 446; - } - - virtual unsigned int offset447(int) { - return offset = 447; - } - - virtual unsigned int offset448(int) { - return offset = 448; - } - - virtual unsigned int offset449(int) { - return offset = 449; - } - - virtual unsigned int offset450(int) { - return offset = 450; - } - - virtual unsigned int offset451(int) { - return offset = 451; - } - - virtual unsigned int offset452(int) { - return offset = 452; - } - - virtual unsigned int offset453(int) { - return offset = 453; - } - - virtual unsigned int offset454(int) { - return offset = 454; - } - - virtual unsigned int offset455(int) { - return offset = 455; - } - - virtual unsigned int offset456(int) { - return offset = 456; - } - - virtual unsigned int offset457(int) { - return offset = 457; - } - - virtual unsigned int offset458(int) { - return offset = 458; - } - - virtual unsigned int offset459(int) { - return offset = 459; - } - - virtual unsigned int offset460(int) { - return offset = 460; - } - - virtual unsigned int offset461(int) { - return offset = 461; - } - - virtual unsigned int offset462(int) { - return offset = 462; - } - - virtual unsigned int offset463(int) { - return offset = 463; - } - - virtual unsigned int offset464(int) { - return offset = 464; - } - - virtual unsigned int offset465(int) { - return offset = 465; - } - - virtual unsigned int offset466(int) { - return offset = 466; - } - - virtual unsigned int offset467(int) { - return offset = 467; - } - - virtual unsigned int offset468(int) { - return offset = 468; - } - - virtual unsigned int offset469(int) { - return offset = 469; - } - - virtual unsigned int offset470(int) { - return offset = 470; - } - - virtual unsigned int offset471(int) { - return offset = 471; - } - - virtual unsigned int offset472(int) { - return offset = 472; - } - - virtual unsigned int offset473(int) { - return offset = 473; - } - - virtual unsigned int offset474(int) { - return offset = 474; - } - - virtual unsigned int offset475(int) { - return offset = 475; - } - - virtual unsigned int offset476(int) { - return offset = 476; - } - - virtual unsigned int offset477(int) { - return offset = 477; - } - - virtual unsigned int offset478(int) { - return offset = 478; - } - - virtual unsigned int offset479(int) { - return offset = 479; - } - - virtual unsigned int offset480(int) { - return offset = 480; - } - - virtual unsigned int offset481(int) { - return offset = 481; - } - - virtual unsigned int offset482(int) { - return offset = 482; - } - - virtual unsigned int offset483(int) { - return offset = 483; - } - - virtual unsigned int offset484(int) { - return offset = 484; - } - - virtual unsigned int offset485(int) { - return offset = 485; - } - - virtual unsigned int offset486(int) { - return offset = 486; - } - - virtual unsigned int offset487(int) { - return offset = 487; - } - - virtual unsigned int offset488(int) { - return offset = 488; - } - - virtual unsigned int offset489(int) { - return offset = 489; - } - - virtual unsigned int offset490(int) { - return offset = 490; - } - - virtual unsigned int offset491(int) { - return offset = 491; - } - - virtual unsigned int offset492(int) { - return offset = 492; - } - - virtual unsigned int offset493(int) { - return offset = 493; - } - - virtual unsigned int offset494(int) { - return offset = 494; - } - - virtual unsigned int offset495(int) { - return offset = 495; - } - - virtual unsigned int offset496(int) { - return offset = 496; - } - - virtual unsigned int offset497(int) { - return offset = 497; - } - - virtual unsigned int offset498(int) { - return offset = 498; - } - - virtual unsigned int offset499(int) { - return offset = 499; - } - - - virtual unsigned int offset500(int) { - return offset = 500; - } - - virtual unsigned int offset501(int) { - return offset = 501; - } - - virtual unsigned int offset502(int) { - return offset = 502; - } - - virtual unsigned int offset503(int) { - return offset = 503; - } - - virtual unsigned int offset504(int) { - return offset = 504; - } - - virtual unsigned int offset505(int) { - return offset = 505; - } - - virtual unsigned int offset506(int) { - return offset = 506; - } - - virtual unsigned int offset507(int) { - return offset = 507; - } - - virtual unsigned int offset508(int) { - return offset = 508; - } - - virtual unsigned int offset509(int) { - return offset = 509; - } - - virtual unsigned int offset510(int) { - return offset = 510; - } - - virtual unsigned int offset511(int) { - return offset = 511; - } - - virtual unsigned int offset512(int) { - return offset = 512; - } - - virtual unsigned int offset513(int) { - return offset = 513; - } - - virtual unsigned int offset514(int) { - return offset = 514; - } - - virtual unsigned int offset515(int) { - return offset = 515; - } - - virtual unsigned int offset516(int) { - return offset = 516; - } - - virtual unsigned int offset517(int) { - return offset = 517; - } - - virtual unsigned int offset518(int) { - return offset = 518; - } - - virtual unsigned int offset519(int) { - return offset = 519; - } - - virtual unsigned int offset520(int) { - return offset = 520; - } - - virtual unsigned int offset521(int) { - return offset = 521; - } - - virtual unsigned int offset522(int) { - return offset = 522; - } - - virtual unsigned int offset523(int) { - return offset = 523; - } - - virtual unsigned int offset524(int) { - return offset = 524; - } - - virtual unsigned int offset525(int) { - return offset = 525; - } - - virtual unsigned int offset526(int) { - return offset = 526; - } - - virtual unsigned int offset527(int) { - return offset = 527; - } - - virtual unsigned int offset528(int) { - return offset = 528; - } - - virtual unsigned int offset529(int) { - return offset = 529; - } - - virtual unsigned int offset530(int) { - return offset = 530; - } - - virtual unsigned int offset531(int) { - return offset = 531; - } - - virtual unsigned int offset532(int) { - return offset = 532; - } - - virtual unsigned int offset533(int) { - return offset = 533; - } - - virtual unsigned int offset534(int) { - return offset = 534; - } - - virtual unsigned int offset535(int) { - return offset = 535; - } - - virtual unsigned int offset536(int) { - return offset = 536; - } - - virtual unsigned int offset537(int) { - return offset = 537; - } - - virtual unsigned int offset538(int) { - return offset = 538; - } - - virtual unsigned int offset539(int) { - return offset = 539; - } - - virtual unsigned int offset540(int) { - return offset = 540; - } - - virtual unsigned int offset541(int) { - return offset = 541; - } - - virtual unsigned int offset542(int) { - return offset = 542; - } - - virtual unsigned int offset543(int) { - return offset = 543; - } - - virtual unsigned int offset544(int) { - return offset = 544; - } - - virtual unsigned int offset545(int) { - return offset = 545; - } - - virtual unsigned int offset546(int) { - return offset = 546; - } - - virtual unsigned int offset547(int) { - return offset = 547; - } - - virtual unsigned int offset548(int) { - return offset = 548; - } - - virtual unsigned int offset549(int) { - return offset = 549; - } - - virtual unsigned int offset550(int) { - return offset = 550; - } - - virtual unsigned int offset551(int) { - return offset = 551; - } - - virtual unsigned int offset552(int) { - return offset = 552; - } - - virtual unsigned int offset553(int) { - return offset = 553; - } - - virtual unsigned int offset554(int) { - return offset = 554; - } - - virtual unsigned int offset555(int) { - return offset = 555; - } - - virtual unsigned int offset556(int) { - return offset = 556; - } - - virtual unsigned int offset557(int) { - return offset = 557; - } - - virtual unsigned int offset558(int) { - return offset = 558; - } - - virtual unsigned int offset559(int) { - return offset = 559; - } - - virtual unsigned int offset560(int) { - return offset = 560; - } - - virtual unsigned int offset561(int) { - return offset = 561; - } - - virtual unsigned int offset562(int) { - return offset = 562; - } - - virtual unsigned int offset563(int) { - return offset = 563; - } - - virtual unsigned int offset564(int) { - return offset = 564; - } - - virtual unsigned int offset565(int) { - return offset = 565; - } - - virtual unsigned int offset566(int) { - return offset = 566; - } - - virtual unsigned int offset567(int) { - return offset = 567; - } - - virtual unsigned int offset568(int) { - return offset = 568; - } - - virtual unsigned int offset569(int) { - return offset = 569; - } - - virtual unsigned int offset570(int) { - return offset = 570; - } - - virtual unsigned int offset571(int) { - return offset = 571; - } - - virtual unsigned int offset572(int) { - return offset = 572; - } - - virtual unsigned int offset573(int) { - return offset = 573; - } - - virtual unsigned int offset574(int) { - return offset = 574; - } - - virtual unsigned int offset575(int) { - return offset = 575; - } - - virtual unsigned int offset576(int) { - return offset = 576; - } - - virtual unsigned int offset577(int) { - return offset = 577; - } - - virtual unsigned int offset578(int) { - return offset = 578; - } - - virtual unsigned int offset579(int) { - return offset = 579; - } - - virtual unsigned int offset580(int) { - return offset = 580; - } - - virtual unsigned int offset581(int) { - return offset = 581; - } - - virtual unsigned int offset582(int) { - return offset = 582; - } - - virtual unsigned int offset583(int) { - return offset = 583; - } - - virtual unsigned int offset584(int) { - return offset = 584; - } - - virtual unsigned int offset585(int) { - return offset = 585; - } - - virtual unsigned int offset586(int) { - return offset = 586; - } - - virtual unsigned int offset587(int) { - return offset = 587; - } - - virtual unsigned int offset588(int) { - return offset = 588; - } - - virtual unsigned int offset589(int) { - return offset = 589; - } - - virtual unsigned int offset590(int) { - return offset = 590; - } - - virtual unsigned int offset591(int) { - return offset = 591; - } - - virtual unsigned int offset592(int) { - return offset = 592; - } - - virtual unsigned int offset593(int) { - return offset = 593; - } - - virtual unsigned int offset594(int) { - return offset = 594; - } - - virtual unsigned int offset595(int) { - return offset = 595; - } - - virtual unsigned int offset596(int) { - return offset = 596; - } - - virtual unsigned int offset597(int) { - return offset = 597; - } - - virtual unsigned int offset598(int) { - return offset = 598; - } - - virtual unsigned int offset599(int) { - return offset = 599; - } - - - virtual unsigned int offset600(int) { - return offset = 600; - } - - virtual unsigned int offset601(int) { - return offset = 601; - } - - virtual unsigned int offset602(int) { - return offset = 602; - } - - virtual unsigned int offset603(int) { - return offset = 603; - } - - virtual unsigned int offset604(int) { - return offset = 604; - } - - virtual unsigned int offset605(int) { - return offset = 605; - } - - virtual unsigned int offset606(int) { - return offset = 606; - } - - virtual unsigned int offset607(int) { - return offset = 607; - } - - virtual unsigned int offset608(int) { - return offset = 608; - } - - virtual unsigned int offset609(int) { - return offset = 609; - } - - virtual unsigned int offset610(int) { - return offset = 610; - } - - virtual unsigned int offset611(int) { - return offset = 611; - } - - virtual unsigned int offset612(int) { - return offset = 612; - } - - virtual unsigned int offset613(int) { - return offset = 613; - } - - virtual unsigned int offset614(int) { - return offset = 614; - } - - virtual unsigned int offset615(int) { - return offset = 615; - } - - virtual unsigned int offset616(int) { - return offset = 616; - } - - virtual unsigned int offset617(int) { - return offset = 617; - } - - virtual unsigned int offset618(int) { - return offset = 618; - } - - virtual unsigned int offset619(int) { - return offset = 619; - } - - virtual unsigned int offset620(int) { - return offset = 620; - } - - virtual unsigned int offset621(int) { - return offset = 621; - } - - virtual unsigned int offset622(int) { - return offset = 622; - } - - virtual unsigned int offset623(int) { - return offset = 623; - } - - virtual unsigned int offset624(int) { - return offset = 624; - } - - virtual unsigned int offset625(int) { - return offset = 625; - } - - virtual unsigned int offset626(int) { - return offset = 626; - } - - virtual unsigned int offset627(int) { - return offset = 627; - } - - virtual unsigned int offset628(int) { - return offset = 628; - } - - virtual unsigned int offset629(int) { - return offset = 629; - } - - virtual unsigned int offset630(int) { - return offset = 630; - } - - virtual unsigned int offset631(int) { - return offset = 631; - } - - virtual unsigned int offset632(int) { - return offset = 632; - } - - virtual unsigned int offset633(int) { - return offset = 633; - } - - virtual unsigned int offset634(int) { - return offset = 634; - } - - virtual unsigned int offset635(int) { - return offset = 635; - } - - virtual unsigned int offset636(int) { - return offset = 636; - } - - virtual unsigned int offset637(int) { - return offset = 637; - } - - virtual unsigned int offset638(int) { - return offset = 638; - } - - virtual unsigned int offset639(int) { - return offset = 639; - } - - virtual unsigned int offset640(int) { - return offset = 640; - } - - virtual unsigned int offset641(int) { - return offset = 641; - } - - virtual unsigned int offset642(int) { - return offset = 642; - } - - virtual unsigned int offset643(int) { - return offset = 643; - } - - virtual unsigned int offset644(int) { - return offset = 644; - } - - virtual unsigned int offset645(int) { - return offset = 645; - } - - virtual unsigned int offset646(int) { - return offset = 646; - } - - virtual unsigned int offset647(int) { - return offset = 647; - } - - virtual unsigned int offset648(int) { - return offset = 648; - } - - virtual unsigned int offset649(int) { - return offset = 649; - } - - virtual unsigned int offset650(int) { - return offset = 650; - } - - virtual unsigned int offset651(int) { - return offset = 651; - } - - virtual unsigned int offset652(int) { - return offset = 652; - } - - virtual unsigned int offset653(int) { - return offset = 653; - } - - virtual unsigned int offset654(int) { - return offset = 654; - } - - virtual unsigned int offset655(int) { - return offset = 655; - } - - virtual unsigned int offset656(int) { - return offset = 656; - } - - virtual unsigned int offset657(int) { - return offset = 657; - } - - virtual unsigned int offset658(int) { - return offset = 658; - } - - virtual unsigned int offset659(int) { - return offset = 659; - } - - virtual unsigned int offset660(int) { - return offset = 660; - } - - virtual unsigned int offset661(int) { - return offset = 661; - } - - virtual unsigned int offset662(int) { - return offset = 662; - } - - virtual unsigned int offset663(int) { - return offset = 663; - } - - virtual unsigned int offset664(int) { - return offset = 664; - } - - virtual unsigned int offset665(int) { - return offset = 665; - } - - virtual unsigned int offset666(int) { - return offset = 666; - } - - virtual unsigned int offset667(int) { - return offset = 667; - } - - virtual unsigned int offset668(int) { - return offset = 668; - } - - virtual unsigned int offset669(int) { - return offset = 669; - } - - virtual unsigned int offset670(int) { - return offset = 670; - } - - virtual unsigned int offset671(int) { - return offset = 671; - } - - virtual unsigned int offset672(int) { - return offset = 672; - } - - virtual unsigned int offset673(int) { - return offset = 673; - } - - virtual unsigned int offset674(int) { - return offset = 674; - } - - virtual unsigned int offset675(int) { - return offset = 675; - } - - virtual unsigned int offset676(int) { - return offset = 676; - } - - virtual unsigned int offset677(int) { - return offset = 677; - } - - virtual unsigned int offset678(int) { - return offset = 678; - } - - virtual unsigned int offset679(int) { - return offset = 679; - } - - virtual unsigned int offset680(int) { - return offset = 680; - } - - virtual unsigned int offset681(int) { - return offset = 681; - } - - virtual unsigned int offset682(int) { - return offset = 682; - } - - virtual unsigned int offset683(int) { - return offset = 683; - } - - virtual unsigned int offset684(int) { - return offset = 684; - } - - virtual unsigned int offset685(int) { - return offset = 685; - } - - virtual unsigned int offset686(int) { - return offset = 686; - } - - virtual unsigned int offset687(int) { - return offset = 687; - } - - virtual unsigned int offset688(int) { - return offset = 688; - } - - virtual unsigned int offset689(int) { - return offset = 689; - } - - virtual unsigned int offset690(int) { - return offset = 690; - } - - virtual unsigned int offset691(int) { - return offset = 691; - } - - virtual unsigned int offset692(int) { - return offset = 692; - } - - virtual unsigned int offset693(int) { - return offset = 693; - } - - virtual unsigned int offset694(int) { - return offset = 694; - } - - virtual unsigned int offset695(int) { - return offset = 695; - } - - virtual unsigned int offset696(int) { - return offset = 696; - } - - virtual unsigned int offset697(int) { - return offset = 697; - } - - virtual unsigned int offset698(int) { - return offset = 698; - } - - virtual unsigned int offset699(int) { - return offset = 699; - } - - - virtual unsigned int offset700(int) { - return offset = 700; - } - - virtual unsigned int offset701(int) { - return offset = 701; - } - - virtual unsigned int offset702(int) { - return offset = 702; - } - - virtual unsigned int offset703(int) { - return offset = 703; - } - - virtual unsigned int offset704(int) { - return offset = 704; - } - - virtual unsigned int offset705(int) { - return offset = 705; - } - - virtual unsigned int offset706(int) { - return offset = 706; - } - - virtual unsigned int offset707(int) { - return offset = 707; - } - - virtual unsigned int offset708(int) { - return offset = 708; - } - - virtual unsigned int offset709(int) { - return offset = 709; - } - - virtual unsigned int offset710(int) { - return offset = 710; - } - - virtual unsigned int offset711(int) { - return offset = 711; - } - - virtual unsigned int offset712(int) { - return offset = 712; - } - - virtual unsigned int offset713(int) { - return offset = 713; - } - - virtual unsigned int offset714(int) { - return offset = 714; - } - - virtual unsigned int offset715(int) { - return offset = 715; - } - - virtual unsigned int offset716(int) { - return offset = 716; - } - - virtual unsigned int offset717(int) { - return offset = 717; - } - - virtual unsigned int offset718(int) { - return offset = 718; - } - - virtual unsigned int offset719(int) { - return offset = 719; - } - - virtual unsigned int offset720(int) { - return offset = 720; - } - - virtual unsigned int offset721(int) { - return offset = 721; - } - - virtual unsigned int offset722(int) { - return offset = 722; - } - - virtual unsigned int offset723(int) { - return offset = 723; - } - - virtual unsigned int offset724(int) { - return offset = 724; - } - - virtual unsigned int offset725(int) { - return offset = 725; - } - - virtual unsigned int offset726(int) { - return offset = 726; - } - - virtual unsigned int offset727(int) { - return offset = 727; - } - - virtual unsigned int offset728(int) { - return offset = 728; - } - - virtual unsigned int offset729(int) { - return offset = 729; - } - - virtual unsigned int offset730(int) { - return offset = 730; - } - - virtual unsigned int offset731(int) { - return offset = 731; - } - - virtual unsigned int offset732(int) { - return offset = 732; - } - - virtual unsigned int offset733(int) { - return offset = 733; - } - - virtual unsigned int offset734(int) { - return offset = 734; - } - - virtual unsigned int offset735(int) { - return offset = 735; - } - - virtual unsigned int offset736(int) { - return offset = 736; - } - - virtual unsigned int offset737(int) { - return offset = 737; - } - - virtual unsigned int offset738(int) { - return offset = 738; - } - - virtual unsigned int offset739(int) { - return offset = 739; - } - - virtual unsigned int offset740(int) { - return offset = 740; - } - - virtual unsigned int offset741(int) { - return offset = 741; - } - - virtual unsigned int offset742(int) { - return offset = 742; - } - - virtual unsigned int offset743(int) { - return offset = 743; - } - - virtual unsigned int offset744(int) { - return offset = 744; - } - - virtual unsigned int offset745(int) { - return offset = 745; - } - - virtual unsigned int offset746(int) { - return offset = 746; - } - - virtual unsigned int offset747(int) { - return offset = 747; - } - - virtual unsigned int offset748(int) { - return offset = 748; - } - - virtual unsigned int offset749(int) { - return offset = 749; - } - - virtual unsigned int offset750(int) { - return offset = 750; - } - - virtual unsigned int offset751(int) { - return offset = 751; - } - - virtual unsigned int offset752(int) { - return offset = 752; - } - - virtual unsigned int offset753(int) { - return offset = 753; - } - - virtual unsigned int offset754(int) { - return offset = 754; - } - - virtual unsigned int offset755(int) { - return offset = 755; - } - - virtual unsigned int offset756(int) { - return offset = 756; - } - - virtual unsigned int offset757(int) { - return offset = 757; - } - - virtual unsigned int offset758(int) { - return offset = 758; - } - - virtual unsigned int offset759(int) { - return offset = 759; - } - - virtual unsigned int offset760(int) { - return offset = 760; - } - - virtual unsigned int offset761(int) { - return offset = 761; - } - - virtual unsigned int offset762(int) { - return offset = 762; - } - - virtual unsigned int offset763(int) { - return offset = 763; - } - - virtual unsigned int offset764(int) { - return offset = 764; - } - - virtual unsigned int offset765(int) { - return offset = 765; - } - - virtual unsigned int offset766(int) { - return offset = 766; - } - - virtual unsigned int offset767(int) { - return offset = 767; - } - - virtual unsigned int offset768(int) { - return offset = 768; - } - - virtual unsigned int offset769(int) { - return offset = 769; - } - - virtual unsigned int offset770(int) { - return offset = 770; - } - - virtual unsigned int offset771(int) { - return offset = 771; - } - - virtual unsigned int offset772(int) { - return offset = 772; - } - - virtual unsigned int offset773(int) { - return offset = 773; - } - - virtual unsigned int offset774(int) { - return offset = 774; - } - - virtual unsigned int offset775(int) { - return offset = 775; - } - - virtual unsigned int offset776(int) { - return offset = 776; - } - - virtual unsigned int offset777(int) { - return offset = 777; - } - - virtual unsigned int offset778(int) { - return offset = 778; - } - - virtual unsigned int offset779(int) { - return offset = 779; - } - - virtual unsigned int offset780(int) { - return offset = 780; - } - - virtual unsigned int offset781(int) { - return offset = 781; - } - - virtual unsigned int offset782(int) { - return offset = 782; - } - - virtual unsigned int offset783(int) { - return offset = 783; - } - - virtual unsigned int offset784(int) { - return offset = 784; - } - - virtual unsigned int offset785(int) { - return offset = 785; - } - - virtual unsigned int offset786(int) { - return offset = 786; - } - - virtual unsigned int offset787(int) { - return offset = 787; - } - - virtual unsigned int offset788(int) { - return offset = 788; - } - - virtual unsigned int offset789(int) { - return offset = 789; - } - - virtual unsigned int offset790(int) { - return offset = 790; - } - - virtual unsigned int offset791(int) { - return offset = 791; - } - - virtual unsigned int offset792(int) { - return offset = 792; - } - - virtual unsigned int offset793(int) { - return offset = 793; - } - - virtual unsigned int offset794(int) { - return offset = 794; - } - - virtual unsigned int offset795(int) { - return offset = 795; - } - - virtual unsigned int offset796(int) { - return offset = 796; - } - - virtual unsigned int offset797(int) { - return offset = 797; - } - - virtual unsigned int offset798(int) { - return offset = 798; - } - - virtual unsigned int offset799(int) { - return offset = 799; - } - - - virtual unsigned int offset800(int) { - return offset = 800; - } - - virtual unsigned int offset801(int) { - return offset = 801; - } - - virtual unsigned int offset802(int) { - return offset = 802; - } - - virtual unsigned int offset803(int) { - return offset = 803; - } - - virtual unsigned int offset804(int) { - return offset = 804; - } - - virtual unsigned int offset805(int) { - return offset = 805; - } - - virtual unsigned int offset806(int) { - return offset = 806; - } - - virtual unsigned int offset807(int) { - return offset = 807; - } - - virtual unsigned int offset808(int) { - return offset = 808; - } - - virtual unsigned int offset809(int) { - return offset = 809; - } - - virtual unsigned int offset810(int) { - return offset = 810; - } - - virtual unsigned int offset811(int) { - return offset = 811; - } - - virtual unsigned int offset812(int) { - return offset = 812; - } - - virtual unsigned int offset813(int) { - return offset = 813; - } - - virtual unsigned int offset814(int) { - return offset = 814; - } - - virtual unsigned int offset815(int) { - return offset = 815; - } - - virtual unsigned int offset816(int) { - return offset = 816; - } - - virtual unsigned int offset817(int) { - return offset = 817; - } - - virtual unsigned int offset818(int) { - return offset = 818; - } - - virtual unsigned int offset819(int) { - return offset = 819; - } - - virtual unsigned int offset820(int) { - return offset = 820; - } - - virtual unsigned int offset821(int) { - return offset = 821; - } - - virtual unsigned int offset822(int) { - return offset = 822; - } - - virtual unsigned int offset823(int) { - return offset = 823; - } - - virtual unsigned int offset824(int) { - return offset = 824; - } - - virtual unsigned int offset825(int) { - return offset = 825; - } - - virtual unsigned int offset826(int) { - return offset = 826; - } - - virtual unsigned int offset827(int) { - return offset = 827; - } - - virtual unsigned int offset828(int) { - return offset = 828; - } - - virtual unsigned int offset829(int) { - return offset = 829; - } - - virtual unsigned int offset830(int) { - return offset = 830; - } - - virtual unsigned int offset831(int) { - return offset = 831; - } - - virtual unsigned int offset832(int) { - return offset = 832; - } - - virtual unsigned int offset833(int) { - return offset = 833; - } - - virtual unsigned int offset834(int) { - return offset = 834; - } - - virtual unsigned int offset835(int) { - return offset = 835; - } - - virtual unsigned int offset836(int) { - return offset = 836; - } - - virtual unsigned int offset837(int) { - return offset = 837; - } - - virtual unsigned int offset838(int) { - return offset = 838; - } - - virtual unsigned int offset839(int) { - return offset = 839; - } - - virtual unsigned int offset840(int) { - return offset = 840; - } - - virtual unsigned int offset841(int) { - return offset = 841; - } - - virtual unsigned int offset842(int) { - return offset = 842; - } - - virtual unsigned int offset843(int) { - return offset = 843; - } - - virtual unsigned int offset844(int) { - return offset = 844; - } - - virtual unsigned int offset845(int) { - return offset = 845; - } - - virtual unsigned int offset846(int) { - return offset = 846; - } - - virtual unsigned int offset847(int) { - return offset = 847; - } - - virtual unsigned int offset848(int) { - return offset = 848; - } - - virtual unsigned int offset849(int) { - return offset = 849; - } - - virtual unsigned int offset850(int) { - return offset = 850; - } - - virtual unsigned int offset851(int) { - return offset = 851; - } - - virtual unsigned int offset852(int) { - return offset = 852; - } - - virtual unsigned int offset853(int) { - return offset = 853; - } - - virtual unsigned int offset854(int) { - return offset = 854; - } - - virtual unsigned int offset855(int) { - return offset = 855; - } - - virtual unsigned int offset856(int) { - return offset = 856; - } - - virtual unsigned int offset857(int) { - return offset = 857; - } - - virtual unsigned int offset858(int) { - return offset = 858; - } - - virtual unsigned int offset859(int) { - return offset = 859; - } - - virtual unsigned int offset860(int) { - return offset = 860; - } - - virtual unsigned int offset861(int) { - return offset = 861; - } - - virtual unsigned int offset862(int) { - return offset = 862; - } - - virtual unsigned int offset863(int) { - return offset = 863; - } - - virtual unsigned int offset864(int) { - return offset = 864; - } - - virtual unsigned int offset865(int) { - return offset = 865; - } - - virtual unsigned int offset866(int) { - return offset = 866; - } - - virtual unsigned int offset867(int) { - return offset = 867; - } - - virtual unsigned int offset868(int) { - return offset = 868; - } - - virtual unsigned int offset869(int) { - return offset = 869; - } - - virtual unsigned int offset870(int) { - return offset = 870; - } - - virtual unsigned int offset871(int) { - return offset = 871; - } - - virtual unsigned int offset872(int) { - return offset = 872; - } - - virtual unsigned int offset873(int) { - return offset = 873; - } - - virtual unsigned int offset874(int) { - return offset = 874; - } - - virtual unsigned int offset875(int) { - return offset = 875; - } - - virtual unsigned int offset876(int) { - return offset = 876; - } - - virtual unsigned int offset877(int) { - return offset = 877; - } - - virtual unsigned int offset878(int) { - return offset = 878; - } - - virtual unsigned int offset879(int) { - return offset = 879; - } - - virtual unsigned int offset880(int) { - return offset = 880; - } - - virtual unsigned int offset881(int) { - return offset = 881; - } - - virtual unsigned int offset882(int) { - return offset = 882; - } - - virtual unsigned int offset883(int) { - return offset = 883; - } - - virtual unsigned int offset884(int) { - return offset = 884; - } - - virtual unsigned int offset885(int) { - return offset = 885; - } - - virtual unsigned int offset886(int) { - return offset = 886; - } - - virtual unsigned int offset887(int) { - return offset = 887; - } - - virtual unsigned int offset888(int) { - return offset = 888; - } - - virtual unsigned int offset889(int) { - return offset = 889; - } - - virtual unsigned int offset890(int) { - return offset = 890; - } - - virtual unsigned int offset891(int) { - return offset = 891; - } - - virtual unsigned int offset892(int) { - return offset = 892; - } - - virtual unsigned int offset893(int) { - return offset = 893; - } - - virtual unsigned int offset894(int) { - return offset = 894; - } - - virtual unsigned int offset895(int) { - return offset = 895; - } - - virtual unsigned int offset896(int) { - return offset = 896; - } - - virtual unsigned int offset897(int) { - return offset = 897; - } - - virtual unsigned int offset898(int) { - return offset = 898; - } - - virtual unsigned int offset899(int) { - return offset = 899; - } - - - virtual unsigned int offset900(int) { - return offset = 900; - } - - virtual unsigned int offset901(int) { - return offset = 901; - } - - virtual unsigned int offset902(int) { - return offset = 902; - } - - virtual unsigned int offset903(int) { - return offset = 903; - } - - virtual unsigned int offset904(int) { - return offset = 904; - } - - virtual unsigned int offset905(int) { - return offset = 905; - } - - virtual unsigned int offset906(int) { - return offset = 906; - } - - virtual unsigned int offset907(int) { - return offset = 907; - } - - virtual unsigned int offset908(int) { - return offset = 908; - } - - virtual unsigned int offset909(int) { - return offset = 909; - } - - virtual unsigned int offset910(int) { - return offset = 910; - } - - virtual unsigned int offset911(int) { - return offset = 911; - } - - virtual unsigned int offset912(int) { - return offset = 912; - } - - virtual unsigned int offset913(int) { - return offset = 913; - } - - virtual unsigned int offset914(int) { - return offset = 914; - } - - virtual unsigned int offset915(int) { - return offset = 915; - } - - virtual unsigned int offset916(int) { - return offset = 916; - } - - virtual unsigned int offset917(int) { - return offset = 917; - } - - virtual unsigned int offset918(int) { - return offset = 918; - } - - virtual unsigned int offset919(int) { - return offset = 919; - } - - virtual unsigned int offset920(int) { - return offset = 920; - } - - virtual unsigned int offset921(int) { - return offset = 921; - } - - virtual unsigned int offset922(int) { - return offset = 922; - } - - virtual unsigned int offset923(int) { - return offset = 923; - } - - virtual unsigned int offset924(int) { - return offset = 924; - } - - virtual unsigned int offset925(int) { - return offset = 925; - } - - virtual unsigned int offset926(int) { - return offset = 926; - } - - virtual unsigned int offset927(int) { - return offset = 927; - } - - virtual unsigned int offset928(int) { - return offset = 928; - } - - virtual unsigned int offset929(int) { - return offset = 929; - } - - virtual unsigned int offset930(int) { - return offset = 930; - } - - virtual unsigned int offset931(int) { - return offset = 931; - } - - virtual unsigned int offset932(int) { - return offset = 932; - } - - virtual unsigned int offset933(int) { - return offset = 933; - } - - virtual unsigned int offset934(int) { - return offset = 934; - } - - virtual unsigned int offset935(int) { - return offset = 935; - } - - virtual unsigned int offset936(int) { - return offset = 936; - } - - virtual unsigned int offset937(int) { - return offset = 937; - } - - virtual unsigned int offset938(int) { - return offset = 938; - } - - virtual unsigned int offset939(int) { - return offset = 939; - } - - virtual unsigned int offset940(int) { - return offset = 940; - } - - virtual unsigned int offset941(int) { - return offset = 941; - } - - virtual unsigned int offset942(int) { - return offset = 942; - } - - virtual unsigned int offset943(int) { - return offset = 943; - } - - virtual unsigned int offset944(int) { - return offset = 944; - } - - virtual unsigned int offset945(int) { - return offset = 945; - } - - virtual unsigned int offset946(int) { - return offset = 946; - } - - virtual unsigned int offset947(int) { - return offset = 947; - } - - virtual unsigned int offset948(int) { - return offset = 948; - } - - virtual unsigned int offset949(int) { - return offset = 949; - } - - virtual unsigned int offset950(int) { - return offset = 950; - } - - virtual unsigned int offset951(int) { - return offset = 951; - } - - virtual unsigned int offset952(int) { - return offset = 952; - } - - virtual unsigned int offset953(int) { - return offset = 953; - } - - virtual unsigned int offset954(int) { - return offset = 954; - } - - virtual unsigned int offset955(int) { - return offset = 955; - } - - virtual unsigned int offset956(int) { - return offset = 956; - } - - virtual unsigned int offset957(int) { - return offset = 957; - } - - virtual unsigned int offset958(int) { - return offset = 958; - } - - virtual unsigned int offset959(int) { - return offset = 959; - } - - virtual unsigned int offset960(int) { - return offset = 960; - } - - virtual unsigned int offset961(int) { - return offset = 961; - } - - virtual unsigned int offset962(int) { - return offset = 962; - } - - virtual unsigned int offset963(int) { - return offset = 963; - } - - virtual unsigned int offset964(int) { - return offset = 964; - } - - virtual unsigned int offset965(int) { - return offset = 965; - } - - virtual unsigned int offset966(int) { - return offset = 966; - } - - virtual unsigned int offset967(int) { - return offset = 967; - } - - virtual unsigned int offset968(int) { - return offset = 968; - } - - virtual unsigned int offset969(int) { - return offset = 969; - } - - virtual unsigned int offset970(int) { - return offset = 970; - } - - virtual unsigned int offset971(int) { - return offset = 971; - } - - virtual unsigned int offset972(int) { - return offset = 972; - } - - virtual unsigned int offset973(int) { - return offset = 973; - } - - virtual unsigned int offset974(int) { - return offset = 974; - } - - virtual unsigned int offset975(int) { - return offset = 975; - } - - virtual unsigned int offset976(int) { - return offset = 976; - } - - virtual unsigned int offset977(int) { - return offset = 977; - } - - virtual unsigned int offset978(int) { - return offset = 978; - } - - virtual unsigned int offset979(int) { - return offset = 979; - } - - virtual unsigned int offset980(int) { - return offset = 980; - } - - virtual unsigned int offset981(int) { - return offset = 981; - } - - virtual unsigned int offset982(int) { - return offset = 982; - } - - virtual unsigned int offset983(int) { - return offset = 983; - } - - virtual unsigned int offset984(int) { - return offset = 984; - } - - virtual unsigned int offset985(int) { - return offset = 985; - } - - virtual unsigned int offset986(int) { - return offset = 986; - } - - virtual unsigned int offset987(int) { - return offset = 987; - } - - virtual unsigned int offset988(int) { - return offset = 988; - } - - virtual unsigned int offset989(int) { - return offset = 989; - } - - virtual unsigned int offset990(int) { - return offset = 990; - } - - virtual unsigned int offset991(int) { - return offset = 991; - } - - virtual unsigned int offset992(int) { - return offset = 992; - } - - virtual unsigned int offset993(int) { - return offset = 993; - } - - virtual unsigned int offset994(int) { - return offset = 994; - } - - virtual unsigned int offset995(int) { - return offset = 995; - } - - virtual unsigned int offset996(int) { - return offset = 996; - } - - virtual unsigned int offset997(int) { - return offset = 997; - } - - virtual unsigned int offset998(int) { - return offset = 998; - } - - virtual unsigned int offset999(int) { - return offset = 999; - } - - virtual unsigned int offset1000(int) { - return offset = 1000; - } - - }; -} -namespace fakeit { - - template - TARGET union_cast(SOURCE source) { - - union { - SOURCE source; - TARGET target; - } u; - u.source = source; - return u.target; - } - -} - -namespace fakeit { - class NoVirtualDtor { - }; - - class VTUtils { - public: - - template - static unsigned int getOffset(R (C::*vMethod)(arglist...)) { - auto sMethod = reinterpret_cast(vMethod); - VirtualOffsetSelector offsetSelctor; - return (offsetSelctor.*sMethod)(0); - } - - template - static typename std::enable_if::value, unsigned int>::type - getDestructorOffset() { - VirtualOffsetSelector offsetSelctor; - union_cast(&offsetSelctor)->~C(); - return offsetSelctor.offset; - } - - template - static typename std::enable_if::value, unsigned int>::type - getDestructorOffset() { - throw NoVirtualDtor(); - } - - template - static unsigned int getVTSize() { - struct Derrived : public C { - virtual void endOfVt() { - } - }; - - unsigned int vtSize = getOffset(&Derrived::endOfVt); - return vtSize; - } - }; - - -} -#ifdef _MSC_VER -namespace fakeit { - - typedef unsigned long DWORD; - - struct TypeDescriptor { - TypeDescriptor() : - ptrToVTable(0), spare(0) { - - int **tiVFTPtr = (int **) (&typeid(void)); - int *i = (int *) tiVFTPtr[0]; - char *type_info_vft_ptr = (char *) i; - ptrToVTable = type_info_vft_ptr; - } - - char *ptrToVTable; - DWORD spare; - char name[8]; - }; - - struct PMD { - - - - int mdisp; - - int pdisp; - int vdisp; - - PMD() : - mdisp(0), pdisp(-1), vdisp(0) { - } - }; - - struct RTTIBaseClassDescriptor { - RTTIBaseClassDescriptor() : - pTypeDescriptor(nullptr), numContainedBases(0), attributes(0) { - } - - const std::type_info *pTypeDescriptor; - DWORD numContainedBases; - struct PMD where; - DWORD attributes; - }; - - template - struct RTTIClassHierarchyDescriptor { - RTTIClassHierarchyDescriptor() : - signature(0), - attributes(0), - numBaseClasses(0), - pBaseClassArray(nullptr) { - pBaseClassArray = new RTTIBaseClassDescriptor *[1 + sizeof...(baseclasses)]; - addBaseClass < C, baseclasses...>(); - } - - ~RTTIClassHierarchyDescriptor() { - for (int i = 0; i < 1 + sizeof...(baseclasses); i++) { - RTTIBaseClassDescriptor *desc = pBaseClassArray[i]; - delete desc; - } - delete[] pBaseClassArray; - } - - DWORD signature; - DWORD attributes; - DWORD numBaseClasses; - RTTIBaseClassDescriptor **pBaseClassArray; - - template - void addBaseClass() { - static_assert(std::is_base_of::value, "C must be a derived class of BaseType"); - RTTIBaseClassDescriptor *desc = new RTTIBaseClassDescriptor(); - desc->pTypeDescriptor = &typeid(BaseType); - pBaseClassArray[numBaseClasses] = desc; - for (unsigned int i = 0; i < numBaseClasses; i++) { - pBaseClassArray[i]->numContainedBases++; - } - numBaseClasses++; - } - - template - void addBaseClass() { - static_assert(std::is_base_of::value, "invalid inheritance list"); - addBaseClass(); - addBaseClass(); - } - - }; - - template - struct RTTICompleteObjectLocator { -#ifdef _WIN64 - RTTICompleteObjectLocator(const std::type_info &unused) : - signature(0), offset(0), cdOffset(0), - typeDescriptorOffset(0), classDescriptorOffset(0) - { - } - - DWORD signature; - DWORD offset; - DWORD cdOffset; - DWORD typeDescriptorOffset; - DWORD classDescriptorOffset; -#else - RTTICompleteObjectLocator(const std::type_info &info) : - signature(0), offset(0), cdOffset(0), - pTypeDescriptor(&info), - pClassDescriptor(new RTTIClassHierarchyDescriptor()) { - } - - ~RTTICompleteObjectLocator() { - delete pClassDescriptor; - } - - DWORD signature; - DWORD offset; - DWORD cdOffset; - const std::type_info *pTypeDescriptor; - struct RTTIClassHierarchyDescriptor *pClassDescriptor; -#endif - }; - - - struct VirtualTableBase { - - static VirtualTableBase &getVTable(void *instance) { - fakeit::VirtualTableBase *vt = (fakeit::VirtualTableBase *) (instance); - return *vt; - } - - VirtualTableBase(void **firstMethod) : _firstMethod(firstMethod) { } - - void *getCookie(int index) { - return _firstMethod[-2 - index]; - } - - void setCookie(int index, void *value) { - _firstMethod[-2 - index] = value; - } - - void *getMethod(unsigned int index) const { - return _firstMethod[index]; - } - - void setMethod(unsigned int index, void *method) { - _firstMethod[index] = method; - } - - protected: - void **_firstMethod; - }; - - template - struct VirtualTable : public VirtualTableBase { - - class Handle { - - friend struct VirtualTable; - - void **firstMethod; - - Handle(void **method) : firstMethod(method) { } - - public: - - VirtualTable &restore() { - VirtualTable *vt = (VirtualTable *) this; - return *vt; - } - }; - - static VirtualTable &getVTable(C &instance) { - fakeit::VirtualTable *vt = (fakeit::VirtualTable *) (&instance); - return *vt; - } - - void copyFrom(VirtualTable &from) { - unsigned int size = VTUtils::getVTSize(); - for (unsigned int i = 0; i < size; i++) { - _firstMethod[i] = from.getMethod(i); - } - } - - VirtualTable() : VirtualTable(buildVTArray()) { - } - - ~VirtualTable() { - - } - - void dispose() { - _firstMethod--; - RTTICompleteObjectLocator *locator = (RTTICompleteObjectLocator *) _firstMethod[0]; - delete locator; - _firstMethod -= numOfCookies; - delete[] _firstMethod; - } - - - unsigned int dtor(int) { - C *c = (C *) this; - C &cRef = *c; - auto vt = VirtualTable::getVTable(cRef); - void *dtorPtr = vt.getCookie(numOfCookies - 1); - void(*method)(C *) = reinterpret_cast(dtorPtr); - method(c); - return 0; - } - - void setDtor(void *method) { - - - - - - void *dtorPtr = union_cast(&VirtualTable::dtor); - unsigned int index = VTUtils::getDestructorOffset(); - _firstMethod[index] = dtorPtr; - setCookie(numOfCookies - 1, method); - } - - unsigned int getSize() { - return VTUtils::getVTSize(); - } - - void initAll(void *value) { - auto size = getSize(); - for (unsigned int i = 0; i < size; i++) { - setMethod(i, value); - } - } - - Handle createHandle() { - Handle h(_firstMethod); - return h; - } - - private: - - class SimpleType { - }; - - static_assert(sizeof(unsigned int (SimpleType::*)()) == sizeof(unsigned int (C::*)()), - "Can't mock a type with multiple inheritance or with non-polymorphic base class"); - static const unsigned int numOfCookies = 3; - - static void **buildVTArray() { - int vtSize = VTUtils::getVTSize(); - auto array = new void *[vtSize + numOfCookies + 1]{}; - RTTICompleteObjectLocator *objectLocator = new RTTICompleteObjectLocator( - typeid(C)); - array += numOfCookies; - array[0] = objectLocator; - array++; - return array; - } - - VirtualTable(void **firstMethod) : VirtualTableBase(firstMethod) { - } - }; -} -#else -#ifndef __clang__ -#include -#include - -namespace fakeit { - template - class has_one_base { - }; - - template - class has_one_base> : public std::false_type { - }; - - template - class has_one_base> - : public has_one_base::type> { - }; - - template<> - class has_one_base> : public std::true_type { - }; - - template - class is_simple_inheritance_layout : public has_one_base::type> { - }; -} - -#endif - -namespace fakeit { - - struct VirtualTableBase { - - static VirtualTableBase &getVTable(void *instance) { - fakeit::VirtualTableBase *vt = (fakeit::VirtualTableBase *) (instance); - return *vt; - } - - VirtualTableBase(void **firstMethod) : _firstMethod(firstMethod) { } - - void *getCookie(int index) { - return _firstMethod[-3 - index]; - } - - void setCookie(int index, void *value) { - _firstMethod[-3 - index] = value; - } - - void *getMethod(unsigned int index) const { - return _firstMethod[index]; - } - - void setMethod(unsigned int index, void *method) { - _firstMethod[index] = method; - } - - protected: - void **_firstMethod; - }; - - template - struct VirtualTable : public VirtualTableBase { - -#ifndef __clang__ - static_assert(is_simple_inheritance_layout::value, "Can't mock a type with multiple inheritance"); -#endif - - class Handle { - - friend struct VirtualTable; - void **firstMethod; - - Handle(void **method) : - firstMethod(method) { - } - - public: - - VirtualTable &restore() { - VirtualTable *vt = (VirtualTable *) this; - return *vt; - } - }; - - static VirtualTable &getVTable(C &instance) { - fakeit::VirtualTable *vt = (fakeit::VirtualTable *) (&instance); - return *vt; - } - - void copyFrom(VirtualTable &from) { - unsigned int size = VTUtils::getVTSize(); - - for (size_t i = 0; i < size; ++i) { - _firstMethod[i] = from.getMethod(i); - } - } - - VirtualTable() : - VirtualTable(buildVTArray()) { - } - - void dispose() { - _firstMethod--; - _firstMethod--; - _firstMethod -= numOfCookies; - delete[] _firstMethod; - } - - unsigned int dtor(int) { - C *c = (C *) this; - C &cRef = *c; - auto vt = VirtualTable::getVTable(cRef); - unsigned int index = VTUtils::getDestructorOffset(); - void *dtorPtr = vt.getMethod(index); - void(*method)(C *) = union_cast(dtorPtr); - method(c); - return 0; - } - - - void setDtor(void *method) { - unsigned int index = VTUtils::getDestructorOffset(); - void *dtorPtr = union_cast(&VirtualTable::dtor); - - - _firstMethod[index] = method; - - _firstMethod[index + 1] = dtorPtr; - } - - - unsigned int getSize() { - return VTUtils::getVTSize(); - } - - void initAll(void *value) { - unsigned int size = getSize(); - for (unsigned int i = 0; i < size; i++) { - setMethod(i, value); - } - } - - const std::type_info *getTypeId() { - return (const std::type_info *) (_firstMethod[-1]); - } - - Handle createHandle() { - Handle h(_firstMethod); - return h; - } - - private: - static const unsigned int numOfCookies = 2; - - static void **buildVTArray() { - int size = VTUtils::getVTSize(); - auto array = new void *[size + 2 + numOfCookies]{}; - array += numOfCookies; - array++; - array[0] = const_cast(&typeid(C)); - array++; - return array; - } - - VirtualTable(void **firstMethod) : VirtualTableBase(firstMethod) { - } - - }; -} -#endif -namespace fakeit { - - struct NoMoreRecordedActionException { - }; - - template - struct MethodInvocationHandler : Destructible { - virtual R handleMethodInvocation(const typename fakeit::production_arg::type... args) = 0; - }; - -} -#include - -namespace fakeit { - -#ifdef __GNUG__ -#ifndef __clang__ -#pragma GCC diagnostic ignored "-Wpedantic" -#endif -#endif - - -#ifdef _MSC_VER -#pragma warning( push ) -#pragma warning( disable : 4200 ) -#endif - - - template - class FakeObject { - - VirtualTable vtable; - - static const size_t SIZE = sizeof(C) - sizeof(VirtualTable); - char instanceArea[SIZE ? SIZE : 0]; - - FakeObject(FakeObject const &) = delete; - FakeObject &operator=(FakeObject const &) = delete; - - public: - - FakeObject() : vtable() { - initializeDataMembersArea(); - } - - ~FakeObject() { - vtable.dispose(); - } - - void initializeDataMembersArea() { - for (size_t i = 0; i < SIZE; ++i) instanceArea[i] = (char) 0; - } - - void setMethod(unsigned int index, void *method) { - vtable.setMethod(index, method); - } - - VirtualTable &getVirtualTable() { - return vtable; - } - - void setVirtualTable(VirtualTable &t) { - vtable = t; - } - - void setDtor(void *dtor) { - vtable.setDtor(dtor); - } - }; - -#ifdef _MSC_VER -#pragma warning( pop ) -#endif - -#ifdef __GNUG__ -#ifndef __clang__ -#pragma GCC diagnostic pop -#endif -#endif - -} -namespace fakeit { - - struct MethodProxy { - - MethodProxy(unsigned int id, unsigned int offset, void *vMethod) : - _id(id), - _offset(offset), - _vMethod(vMethod) { - } - - unsigned int getOffset() const { - return _offset; - } - - unsigned int getId() const { - return _id; - } - - void *getProxy() const { - return union_cast(_vMethod); - } - - private: - unsigned int _id; - unsigned int _offset; - void *_vMethod; - }; -} -#include - - -namespace fakeit { - - struct InvocationHandlerCollection { - static const unsigned int VT_COOKIE_INDEX = 0; - - virtual Destructible *getInvocatoinHandlerPtrById(unsigned int index) = 0; - - static InvocationHandlerCollection *getInvocationHandlerCollection(void *instance) { - VirtualTableBase &vt = VirtualTableBase::getVTable(instance); - InvocationHandlerCollection *invocationHandlerCollection = (InvocationHandlerCollection *) vt.getCookie( - InvocationHandlerCollection::VT_COOKIE_INDEX); - return invocationHandlerCollection; - } - }; - - - template - class MethodProxyCreator { - - - - public: - - template - MethodProxy createMethodProxy(unsigned int offset) { - return MethodProxy(id, offset, union_cast(&MethodProxyCreator::methodProxyX < id > )); - } - - protected: - - R methodProxy(unsigned int id, const typename fakeit::production_arg::type... args) { - InvocationHandlerCollection *invocationHandlerCollection = InvocationHandlerCollection::getInvocationHandlerCollection( - this); - MethodInvocationHandler *invocationHandler = - (MethodInvocationHandler *) invocationHandlerCollection->getInvocatoinHandlerPtrById( - id); - return invocationHandler->handleMethodInvocation(std::forward::type>(args)...); - } - - template - R methodProxyX(arglist ... args) { - return methodProxy(id, std::forward::type>(args)...); - } - }; -} - -namespace fakeit { - - class InvocationHandlers : public InvocationHandlerCollection { - std::vector> &_methodMocks; - std::vector &_offsets; - - unsigned int getOffset(unsigned int id) { - unsigned int offset = 0; - for (; offset < _offsets.size(); offset++) { - if (_offsets[offset] == id) { - break; - } - } - return offset; - } - - public: - InvocationHandlers( - std::vector> &methodMocks, - std::vector &offsets) : - _methodMocks(methodMocks), _offsets(offsets) { - } - - Destructible *getInvocatoinHandlerPtrById(unsigned int id) override { - unsigned int offset = getOffset(id); - std::shared_ptr ptr = _methodMocks[offset]; - return ptr.get(); - } - - }; - - template - struct DynamicProxy { - - static_assert(std::is_polymorphic::value, "DynamicProxy requires a polymorphic type"); - - DynamicProxy(C &inst) : - instance(inst), - originalVtHandle(VirtualTable::getVTable(instance).createHandle()), - _methodMocks(VTUtils::getVTSize()), - _offsets(VTUtils::getVTSize()), - _invocationHandlers(_methodMocks, _offsets) { - _cloneVt.copyFrom(originalVtHandle.restore()); - _cloneVt.setCookie(InvocationHandlerCollection::VT_COOKIE_INDEX, &_invocationHandlers); - getFake().setVirtualTable(_cloneVt); - } - - void detach() { - getFake().setVirtualTable(originalVtHandle.restore()); - } - - ~DynamicProxy() { - _cloneVt.dispose(); - } - - C &get() { - return instance; - } - - void Reset() { - _methodMocks = {{}}; - _methodMocks.resize(VTUtils::getVTSize()); - _members = {}; - _cloneVt.copyFrom(originalVtHandle.restore()); - } - - template - void stubMethod(R(C::*vMethod)(arglist...), MethodInvocationHandler *methodInvocationHandler) { - auto offset = VTUtils::getOffset(vMethod); - MethodProxyCreator creator; - bind(creator.template createMethodProxy(offset), methodInvocationHandler); - } - - void stubDtor(MethodInvocationHandler *methodInvocationHandler) { - auto offset = VTUtils::getDestructorOffset(); - MethodProxyCreator creator; - bindDtor(creator.createMethodProxy<0>(offset), methodInvocationHandler); - } - - template - bool isMethodStubbed(R(C::*vMethod)(arglist...)) { - unsigned int offset = VTUtils::getOffset(vMethod); - return isBinded(offset); - } - - bool isDtorStubbed() { - unsigned int offset = VTUtils::getDestructorOffset(); - return isBinded(offset); - } - - template - Destructible *getMethodMock(R(C::*vMethod)(arglist...)) { - auto offset = VTUtils::getOffset(vMethod); - std::shared_ptr ptr = _methodMocks[offset]; - return ptr.get(); - } - - Destructible *getDtorMock() { - auto offset = VTUtils::getDestructorOffset(); - std::shared_ptr ptr = _methodMocks[offset]; - return ptr.get(); - } - - template - void stubDataMember(DATA_TYPE C::*member, const arglist &... initargs) { - DATA_TYPE C::*theMember = (DATA_TYPE C::*) member; - C &mock = get(); - DATA_TYPE *memberPtr = &(mock.*theMember); - _members.push_back( - std::shared_ptr > - {new DataMemeberWrapper < DATA_TYPE, arglist...>(memberPtr, - initargs...)}); - } - - template - void getMethodMocks(std::vector &into) const { - for (std::shared_ptr ptr : _methodMocks) { - DATA_TYPE p = dynamic_cast(ptr.get()); - if (p) { - into.push_back(p); - } - } - } - - VirtualTable &getOriginalVT() { - VirtualTable &vt = originalVtHandle.restore(); - return vt; - } - - private: - - template - class DataMemeberWrapper : public Destructible { - private: - DATA_TYPE *dataMember; - public: - DataMemeberWrapper(DATA_TYPE *dataMem, const arglist &... initargs) : - dataMember(dataMem) { - new(dataMember) DATA_TYPE{initargs ...}; - } - - ~DataMemeberWrapper() override - { - dataMember->~DATA_TYPE(); - } - }; - - static_assert(sizeof(C) == sizeof(FakeObject), "This is a problem"); - - C &instance; - typename VirtualTable::Handle originalVtHandle; - VirtualTable _cloneVt; - - std::vector> _methodMocks; - std::vector> _members; - std::vector _offsets; - InvocationHandlers _invocationHandlers; - - FakeObject &getFake() { - return reinterpret_cast &>(instance); - } - - void bind(const MethodProxy &methodProxy, Destructible *invocationHandler) { - getFake().setMethod(methodProxy.getOffset(), methodProxy.getProxy()); - _methodMocks[methodProxy.getOffset()].reset(invocationHandler); - _offsets[methodProxy.getOffset()] = methodProxy.getId(); - } - - void bindDtor(const MethodProxy &methodProxy, Destructible *invocationHandler) { - getFake().setDtor(methodProxy.getProxy()); - _methodMocks[methodProxy.getOffset()].reset(invocationHandler); - _offsets[methodProxy.getOffset()] = methodProxy.getId(); - } - - template - DATA_TYPE getMethodMock(unsigned int offset) { - std::shared_ptr ptr = _methodMocks[offset]; - return dynamic_cast(ptr.get()); - } - - template - void checkMultipleInheritance() { - C *ptr = (C *) (unsigned int) 1; - BaseClass *basePtr = ptr; - int delta = (unsigned long) basePtr - (unsigned long) ptr; - if (delta > 0) { - - - throw std::invalid_argument(std::string("multiple inheritance is not supported")); - } - } - - bool isBinded(unsigned int offset) { - std::shared_ptr ptr = _methodMocks[offset]; - return ptr.get() != nullptr; - } - - }; -} -#include -#include -#include -#include -#include -#include -#include -#include - -namespace fakeit { - - template - struct apply_func { - template - static R applyTuple(std::function f, std::tuple &t, Args &... args) { - return apply_func::template applyTuple(f, t, std::get(t), args...); - } - }; - - template<> - struct apply_func < 0 > { - template - static R applyTuple(std::function f, std::tuple & , Args &... args) { - return f(args...); - } - }; - - struct TupleDispatcher { - - template - static R applyTuple(std::function f, std::tuple &t) { - return apply_func::template applyTuple(f, t); - } - - template - static R invoke(std::function func, const std::tuple &arguments) { - std::tuple &args = const_cast &>(arguments); - return applyTuple(func, args); - } - - template - static void for_each(TupleType &&, FunctionType &, - std::integral_constant::type>::value>) { - } - - template::type>::value>::type> - static void for_each(TupleType &&t, FunctionType &f, std::integral_constant) { - f(I, std::get < I >(t)); - for_each(std::forward < TupleType >(t), f, std::integral_constant()); - } - - template - static void for_each(TupleType &&t, FunctionType &f) { - for_each(std::forward < TupleType >(t), f, std::integral_constant()); - } - - template - static void for_each(TupleType1 &&, TupleType2 &&, FunctionType &, - std::integral_constant::type>::value>) { - } - - template::type>::value>::type> - static void for_each(TupleType1 &&t, TupleType2 &&t2, FunctionType &f, std::integral_constant) { - f(I, std::get < I >(t), std::get < I >(t2)); - for_each(std::forward < TupleType1 >(t), std::forward < TupleType2 >(t2), f, std::integral_constant()); - } - - template - static void for_each(TupleType1 &&t, TupleType2 &&t2, FunctionType &f) { - for_each(std::forward < TupleType1 >(t), std::forward < TupleType2 >(t2), f, std::integral_constant()); - } - }; -} -namespace fakeit { - - template - struct ActualInvocationHandler : Destructible { - virtual R handleMethodInvocation(ArgumentsTuple & args) = 0; - }; - -} -#include -#include -#include -#include -#include -#include - -namespace fakeit { - - struct DefaultValueInstatiationException { - virtual ~DefaultValueInstatiationException() = default; - - virtual std::string what() const = 0; - }; - - - template - struct is_constructible_type { - static const bool value = - std::is_default_constructible::type>::value - && !std::is_abstract::type>::value; - }; - - template - struct DefaultValue; - - template - struct DefaultValue::value>::type> { - static C &value() { - if (std::is_reference::value) { - typename naked_type::type *ptr = nullptr; - return *ptr; - } - - class Exception : public DefaultValueInstatiationException { - virtual std::string what() const - - override { - return (std::string("Type ") + std::string(typeid(C).name()) - + std::string( - " is not default constructible. Could not instantiate a default return value")).c_str(); - } - }; - - throw Exception(); - } - }; - - template - struct DefaultValue::value>::type> { - static C &value() { - static typename naked_type::type val{}; - return val; - } - }; - - - template<> - struct DefaultValue { - static void value() { - return; - } - }; - - template<> - struct DefaultValue { - static bool &value() { - static bool value{false}; - return value; - } - }; - - template<> - struct DefaultValue { - static char &value() { - static char value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static char16_t &value() { - static char16_t value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static char32_t &value() { - static char32_t value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static wchar_t &value() { - static wchar_t value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static short &value() { - static short value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static int &value() { - static int value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static long &value() { - static long value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static long long &value() { - static long long value{0}; - return value; - } - }; - - template<> - struct DefaultValue { - static std::string &value() { - static std::string value{}; - return value; - } - }; - -} -namespace fakeit { - - struct IMatcher : Destructible { - ~IMatcher() = default; - virtual std::string format() const = 0; - }; - - template - struct TypedMatcher : IMatcher { - virtual bool matches(const T &actual) const = 0; - }; - - template - struct TypedMatcherCreator { - - virtual ~TypedMatcherCreator() = default; - - virtual TypedMatcher *createMatcher() const = 0; - }; - - template - struct ComparisonMatcherCreator : public TypedMatcherCreator { - - virtual ~ComparisonMatcherCreator() = default; - - ComparisonMatcherCreator(const T &arg) - : _expected(arg) { - } - - struct Matcher : public TypedMatcher { - Matcher(const T &expected) - : _expected(expected) { - } - - const T _expected; - }; - - const T &_expected; - }; - - namespace internal { - template - struct TypedAnyMatcher : public TypedMatcherCreator { - - virtual ~TypedAnyMatcher() = default; - - TypedAnyMatcher() { - } - - struct Matcher : public TypedMatcher { - virtual bool matches(const T &) const { - return true; - } - - virtual std::string format() const override { - return "Any"; - } - }; - - virtual TypedMatcher *createMatcher() const override { - return new Matcher(); - } - - }; - - template - struct EqMatcherCreator : public ComparisonMatcherCreator { - - virtual ~EqMatcherCreator() = default; - - EqMatcherCreator(const T &expected) - : ComparisonMatcherCreator(expected) { - } - - struct Matcher : public ComparisonMatcherCreator::Matcher { - Matcher(const T &expected) - : ComparisonMatcherCreator::Matcher(expected) { - } - - virtual std::string format() const override { - return TypeFormatter::format(this->_expected); - } - - virtual bool matches(const T &actual) const override { - return actual == this->_expected; - } - }; - - virtual TypedMatcher *createMatcher() const { - return new Matcher(this->_expected); - } - - }; - - template - struct GtMatcherCreator : public ComparisonMatcherCreator { - - virtual ~GtMatcherCreator() = default; - - GtMatcherCreator(const T &expected) - : ComparisonMatcherCreator(expected) { - } - - struct Matcher : public ComparisonMatcherCreator::Matcher { - Matcher(const T &expected) - : ComparisonMatcherCreator::Matcher(expected) { - } - - virtual bool matches(const T &actual) const override { - return actual > this->_expected; - } - - virtual std::string format() const override { - return std::string(">") + TypeFormatter::format(this->_expected); - } - }; - - virtual TypedMatcher *createMatcher() const override { - return new Matcher(this->_expected); - } - }; - - template - struct GeMatcherCreator : public ComparisonMatcherCreator { - - virtual ~GeMatcherCreator() = default; - - GeMatcherCreator(const T &expected) - : ComparisonMatcherCreator(expected) { - } - - struct Matcher : public ComparisonMatcherCreator::Matcher { - Matcher(const T &expected) - : ComparisonMatcherCreator::Matcher(expected) { - } - - virtual bool matches(const T &actual) const override { - return actual >= this->_expected; - } - - virtual std::string format() const override { - return std::string(">=") + TypeFormatter::format(this->_expected); - } - }; - - virtual TypedMatcher *createMatcher() const override { - return new Matcher(this->_expected); - } - }; - - template - struct LtMatcherCreator : public ComparisonMatcherCreator { - - virtual ~LtMatcherCreator() = default; - - LtMatcherCreator(const T &expected) - : ComparisonMatcherCreator(expected) { - } - - struct Matcher : public ComparisonMatcherCreator::Matcher { - Matcher(const T &expected) - : ComparisonMatcherCreator::Matcher(expected) { - } - - virtual bool matches(const T &actual) const override { - return actual < this->_expected; - } - - virtual std::string format() const override { - return std::string("<") + TypeFormatter::format(this->_expected); - } - }; - - virtual TypedMatcher *createMatcher() const override { - return new Matcher(this->_expected); - } - - }; - - template - struct LeMatcherCreator : public ComparisonMatcherCreator { - - virtual ~LeMatcherCreator() = default; - - LeMatcherCreator(const T &expected) - : ComparisonMatcherCreator(expected) { - } - - struct Matcher : public ComparisonMatcherCreator::Matcher { - Matcher(const T &expected) - : ComparisonMatcherCreator::Matcher(expected) { - } - - virtual bool matches(const T &actual) const override { - return actual <= this->_expected; - } - - virtual std::string format() const override { - return std::string("<=") + TypeFormatter::format(this->_expected); - } - }; - - virtual TypedMatcher *createMatcher() const override { - return new Matcher(this->_expected); - } - - }; - - template - struct NeMatcherCreator : public ComparisonMatcherCreator { - - virtual ~NeMatcherCreator() = default; - - NeMatcherCreator(const T &expected) - : ComparisonMatcherCreator(expected) { - } - - struct Matcher : public ComparisonMatcherCreator::Matcher { - Matcher(const T &expected) - : ComparisonMatcherCreator::Matcher(expected) { - } - - virtual bool matches(const T &actual) const override { - return actual != this->_expected; - } - - virtual std::string format() const override { - return std::string("!=") + TypeFormatter::format(this->_expected); - } - - }; - - virtual TypedMatcher *createMatcher() const override { - return new Matcher(this->_expected); - } - - }; - } - - struct AnyMatcher { - } static _; - - template - internal::TypedAnyMatcher Any() { - internal::TypedAnyMatcher rv; - return rv; - } - - template - internal::EqMatcherCreator Eq(const T &arg) { - internal::EqMatcherCreator rv(arg); - return rv; - } - - template - internal::GtMatcherCreator Gt(const T &arg) { - internal::GtMatcherCreator rv(arg); - return rv; - } - - template - internal::GeMatcherCreator Ge(const T &arg) { - internal::GeMatcherCreator rv(arg); - return rv; - } - - template - internal::LtMatcherCreator Lt(const T &arg) { - internal::LtMatcherCreator rv(arg); - return rv; - } - - template - internal::LeMatcherCreator Le(const T &arg) { - internal::LeMatcherCreator rv(arg); - return rv; - } - - template - internal::NeMatcherCreator Ne(const T &arg) { - internal::NeMatcherCreator rv(arg); - return rv; - } - -} - -namespace fakeit { - - template - struct ArgumentsMatcherInvocationMatcher : public ActualInvocation::Matcher { - - virtual ~ArgumentsMatcherInvocationMatcher() { - for (unsigned int i = 0; i < _matchers.size(); i++) - delete _matchers[i]; - } - - ArgumentsMatcherInvocationMatcher(const std::vector &args) - : _matchers(args) { - } - - virtual bool matches(ActualInvocation &invocation) override { - if (invocation.getActualMatcher() == this) - return true; - return matches(invocation.getActualArguments()); - } - - virtual std::string format() const override { - std::ostringstream out; - out << "("; - for (unsigned int i = 0; i < _matchers.size(); i++) { - if (i > 0) out << ", "; - IMatcher *m = dynamic_cast(_matchers[i]); - out << m->format(); - } - out << ")"; - return out.str(); - } - - private: - - struct MatchingLambda { - MatchingLambda(const std::vector &matchers) - : _matchers(matchers) { - } - - template - void operator()(int index, A &actualArg) { - TypedMatcher::type> *matcher = - dynamic_cast::type> *>(_matchers[index]); - if (_matching) - _matching = matcher->matches(actualArg); - } - - bool isMatching() { - return _matching; - } - - private: - bool _matching = true; - const std::vector &_matchers; - }; - - virtual bool matches(ArgumentsTuple& actualArguments) { - MatchingLambda l(_matchers); - fakeit::TupleDispatcher::for_each(actualArguments, l); - return l.isMatching(); - } - - const std::vector _matchers; - }; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - template - struct UserDefinedInvocationMatcher : ActualInvocation::Matcher { - virtual ~UserDefinedInvocationMatcher() = default; - - UserDefinedInvocationMatcher(std::function match) - : matcher{match} { - } - - virtual bool matches(ActualInvocation &invocation) override { - if (invocation.getActualMatcher() == this) - return true; - return matches(invocation.getActualArguments()); - } - - virtual std::string format() const override { - return {"( user defined matcher )"}; - } - - private: - virtual bool matches(ArgumentsTuple& actualArguments) { - return TupleDispatcher::invoke::type...>(matcher, actualArguments); - } - - const std::function matcher; - }; - - template - struct DefaultInvocationMatcher : public ActualInvocation::Matcher { - - virtual ~DefaultInvocationMatcher() = default; - - DefaultInvocationMatcher() { - } - - virtual bool matches(ActualInvocation &invocation) override { - return matches(invocation.getActualArguments()); - } - - virtual std::string format() const override { - return {"( Any arguments )"}; - } - - private: - - virtual bool matches(const ArgumentsTuple&) { - return true; - } - }; - -} - -namespace fakeit { - - - template - class RecordedMethodBody : public MethodInvocationHandler, public ActualInvocationsSource { - - struct MatchedInvocationHandler : ActualInvocationHandler { - - virtual ~MatchedInvocationHandler() = default; - - MatchedInvocationHandler(typename ActualInvocation::Matcher *matcher, - ActualInvocationHandler *invocationHandler) : - _matcher{matcher}, _invocationHandler{invocationHandler} { - } - - virtual R handleMethodInvocation(ArgumentsTuple & args) override - { - Destructible &destructable = *_invocationHandler; - ActualInvocationHandler &invocationHandler = dynamic_cast &>(destructable); - return invocationHandler.handleMethodInvocation(args); - } - - typename ActualInvocation::Matcher &getMatcher() const { - Destructible &destructable = *_matcher; - typename ActualInvocation::Matcher &matcher = dynamic_cast::Matcher &>(destructable); - return matcher; - } - - private: - std::shared_ptr _matcher; - std::shared_ptr _invocationHandler; - }; - - - FakeitContext &_fakeit; - MethodInfo _method; - - std::vector> _invocationHandlers; - std::vector> _actualInvocations; - - MatchedInvocationHandler *buildMatchedInvocationHandler( - typename ActualInvocation::Matcher *invocationMatcher, - ActualInvocationHandler *invocationHandler) { - return new MatchedInvocationHandler(invocationMatcher, invocationHandler); - } - - MatchedInvocationHandler *getInvocationHandlerForActualArgs(ActualInvocation &invocation) { - for (auto i = _invocationHandlers.rbegin(); i != _invocationHandlers.rend(); ++i) { - std::shared_ptr curr = *i; - Destructible &destructable = *curr; - MatchedInvocationHandler &im = asMatchedInvocationHandler(destructable); - if (im.getMatcher().matches(invocation)) { - return &im; - } - } - return nullptr; - } - - MatchedInvocationHandler &asMatchedInvocationHandler(Destructible &destructable) { - MatchedInvocationHandler &im = dynamic_cast(destructable); - return im; - } - - ActualInvocation &asActualInvocation(Destructible &destructable) const { - ActualInvocation &invocation = dynamic_cast &>(destructable); - return invocation; - } - - public: - - RecordedMethodBody(FakeitContext &fakeit, std::string name) : - _fakeit(fakeit), _method{MethodInfo::nextMethodOrdinal(), name} { } - - virtual ~RecordedMethodBody() NO_THROWS { - } - - MethodInfo &getMethod() { - return _method; - } - - bool isOfMethod(MethodInfo &method) { - - return method.id() == _method.id(); - } - - void addMethodInvocationHandler(typename ActualInvocation::Matcher *matcher, - ActualInvocationHandler *invocationHandler) { - ActualInvocationHandler *mock = buildMatchedInvocationHandler(matcher, invocationHandler); - std::shared_ptr destructable{mock}; - _invocationHandlers.push_back(destructable); - } - - void clear() { - _invocationHandlers.clear(); - _actualInvocations.clear(); - } - - - R handleMethodInvocation(const typename fakeit::production_arg::type... args) override { - unsigned int ordinal = Invocation::nextInvocationOrdinal(); - MethodInfo &method = this->getMethod(); - auto actualInvocation = new ActualInvocation(ordinal, method, std::forward::type>(args)...); - - - std::shared_ptr actualInvocationDtor{actualInvocation}; - - auto invocationHandler = getInvocationHandlerForActualArgs(*actualInvocation); - if (invocationHandler) { - auto &matcher = invocationHandler->getMatcher(); - actualInvocation->setActualMatcher(&matcher); - _actualInvocations.push_back(actualInvocationDtor); - try { - return invocationHandler->handleMethodInvocation(actualInvocation->getActualArguments()); - } catch (NoMoreRecordedActionException &) { - } - } - - UnexpectedMethodCallEvent event(UnexpectedType::Unmatched, *actualInvocation); - _fakeit.handle(event); - std::string format{_fakeit.format(event)}; - UnexpectedMethodCallException e(format); - throw e; - } - - void scanActualInvocations(const std::function &)> &scanner) { - for (auto destructablePtr : _actualInvocations) { - ActualInvocation &invocation = asActualInvocation(*destructablePtr); - scanner(invocation); - } - } - - void getActualInvocations(std::unordered_set &into) const override { - for (auto destructablePtr : _actualInvocations) { - Invocation &invocation = asActualInvocation(*destructablePtr); - into.insert(&invocation); - } - } - - void setMethodDetails(const std::string &mockName, const std::string &methodName) { - const std::string fullName{mockName + "." + methodName}; - _method.setName(fullName); - } - - }; - -} -#include -#include -#include -#include -#include -#include - -namespace fakeit { - - struct Quantity { - Quantity(const int q) : - quantity(q) { - } - - const int quantity; - } static Once(1); - - template - struct Quantifier : public Quantity { - Quantifier(const int q, const R &val) : - Quantity(q), value(val) { - } - - const R &value; - }; - - template<> - struct Quantifier : public Quantity { - explicit Quantifier(const int q) : - Quantity(q) { - } - }; - - struct QuantifierFunctor : public Quantifier { - QuantifierFunctor(const int q) : - Quantifier(q) { - } - - template - Quantifier operator()(const R &value) { - return Quantifier(quantity, value); - } - }; - - template - struct Times : public Quantity { - - Times() : Quantity(q) { } - - template - static Quantifier of(const R &value) { - return Quantifier(q, value); - } - - static Quantifier Void() { - return Quantifier(q); - } - }; - -#if defined (__GNUG__) || (_MSC_VER >= 1900) - - inline QuantifierFunctor operator - "" - - _Times(unsigned long long n) { - return QuantifierFunctor((int) n); - } - - inline QuantifierFunctor operator - "" - - _Time(unsigned long long n) { - if (n != 1) - throw std::invalid_argument("Only 1_Time is supported. Use X_Times (with s) if X is bigger than 1"); - return QuantifierFunctor((int) n); - } - -#endif - -} -#include -#include -#include -#include - - -namespace fakeit { - - template - struct Action : Destructible { - virtual R invoke(const ArgumentsTuple &) = 0; - - virtual bool isDone() = 0; - }; - - template - struct Repeat : Action { - virtual ~Repeat() = default; - - Repeat(std::function::type...)> func) : - f(func), times(1) { - } - - Repeat(std::function::type...)> func, long t) : - f(func), times(t) { - } - - virtual R invoke(const ArgumentsTuple & args) override { - times--; - return TupleDispatcher::invoke(f, args); - } - - virtual bool isDone() override { - return times == 0; - } - - private: - std::function::type...)> f; - long times; - }; - - template - struct RepeatForever : public Action { - - virtual ~RepeatForever() = default; - - RepeatForever(std::function::type...)> func) : - f(func) { - } - - virtual R invoke(const ArgumentsTuple & args) override { - return TupleDispatcher::invoke(f, args); - } - - virtual bool isDone() override { - return false; - } - - private: - std::function::type...)> f; - }; - - template - struct ReturnDefaultValue : public Action { - virtual ~ReturnDefaultValue() = default; - - virtual R invoke(const ArgumentsTuple &) override { - return DefaultValue::value(); - } - - virtual bool isDone() override { - return false; - } - }; - - template - struct ReturnDelegateValue : public Action { - - ReturnDelegateValue(std::function::type...)> delegate) : _delegate(delegate) { } - - virtual ~ReturnDelegateValue() = default; - - virtual R invoke(const ArgumentsTuple & args) override { - return TupleDispatcher::invoke(_delegate, args); - } - - virtual bool isDone() override { - return false; - } - - private: - std::function::type...)> _delegate; - }; - -} - -namespace fakeit { - - template - struct MethodStubbingProgress { - - virtual ~MethodStubbingProgress() THROWS { - } - - template - typename std::enable_if::value, MethodStubbingProgress &>::type - Return(const R &r) { - return Do([r](const typename fakeit::test_arg::type...) -> R { return r; }); - } - - template - typename std::enable_if::value, MethodStubbingProgress &>::type - Return(const R &r) { - return Do([&r](const typename fakeit::test_arg::type...) -> R { return r; }); - } - - MethodStubbingProgress & - Return(const Quantifier &q) { - const R &value = q.value; - auto method = [value](const arglist &...) -> R { return value; }; - return DoImpl(new Repeat(method, q.quantity)); - } - - template - MethodStubbingProgress & - Return(const first &f, const second &s, const tail &... t) { - Return(f); - return Return(s, t...); - } - - - template - typename std::enable_if::value, void>::type - AlwaysReturn(const R &r) { - return AlwaysDo([r](const typename fakeit::test_arg::type...) -> R { return r; }); - } - - template - typename std::enable_if::value, void>::type - AlwaysReturn(const R &r) { - return AlwaysDo([&r](const typename fakeit::test_arg::type...) -> R { return r; }); - } - - MethodStubbingProgress & - Return() { - return Do([](const typename fakeit::test_arg::type...) -> R { return DefaultValue::value(); }); - } - - void AlwaysReturn() { - return AlwaysDo([](const typename fakeit::test_arg::type...) -> R { return DefaultValue::value(); }); - } - - template - MethodStubbingProgress &Throw(const E &e) { - return Do([e](const typename fakeit::test_arg::type...) -> R { throw e; }); - } - - template - MethodStubbingProgress & - Throw(const Quantifier &q) { - const E &value = q.value; - auto method = [value](const arglist &...) -> R { throw value; }; - return DoImpl(new Repeat(method, q.quantity)); - } - - template - MethodStubbingProgress & - Throw(const first &f, const second &s, const tail &... t) { - Throw(f); - return Throw(s, t...); - } - - template - void AlwaysThrow(const E &e) { - return AlwaysDo([e](const typename fakeit::test_arg::type...) -> R { throw e; }); - } - - virtual MethodStubbingProgress & - Do(std::function::type...)> method) { - return DoImpl(new Repeat(method)); - } - - template - MethodStubbingProgress & - Do(const Quantifier &q) { - return DoImpl(new Repeat(q.value, q.quantity)); - } - - template - MethodStubbingProgress & - Do(const first &f, const second &s, const tail &... t) { - Do(f); - return Do(s, t...); - } - - virtual void AlwaysDo(std::function::type...)> method) { - DoImpl(new RepeatForever(method)); - } - - protected: - - virtual MethodStubbingProgress &DoImpl(Action *action) = 0; - - private: - MethodStubbingProgress &operator=(const MethodStubbingProgress &other) = delete; - }; - - - template - struct MethodStubbingProgress { - - virtual ~MethodStubbingProgress() THROWS { - } - - MethodStubbingProgress &Return() { - auto lambda = [](const typename fakeit::test_arg::type...) -> void { - return DefaultValue::value(); - }; - return Do(lambda); - } - - virtual MethodStubbingProgress &Do( - std::function::type...)> method) { - return DoImpl(new Repeat(method)); - } - - - void AlwaysReturn() { - return AlwaysDo([](const typename fakeit::test_arg::type...) -> void { return DefaultValue::value(); }); - } - - MethodStubbingProgress & - Return(const Quantifier &q) { - auto method = [](const arglist &...) -> void { return DefaultValue::value(); }; - return DoImpl(new Repeat(method, q.quantity)); - } - - template - MethodStubbingProgress &Throw(const E &e) { - return Do([e](const typename fakeit::test_arg::type...) -> void { throw e; }); - } - - template - MethodStubbingProgress & - Throw(const Quantifier &q) { - const E &value = q.value; - auto method = [value](const typename fakeit::test_arg::type...) -> void { throw value; }; - return DoImpl(new Repeat(method, q.quantity)); - } - - template - MethodStubbingProgress & - Throw(const first &f, const second &s, const tail &... t) { - Throw(f); - return Throw(s, t...); - } - - template - void AlwaysThrow(const E e) { - return AlwaysDo([e](const typename fakeit::test_arg::type...) -> void { throw e; }); - } - - template - MethodStubbingProgress & - Do(const Quantifier &q) { - return DoImpl(new Repeat(q.value, q.quantity)); - } - - template - MethodStubbingProgress & - Do(const first &f, const second &s, const tail &... t) { - Do(f); - return Do(s, t...); - } - - virtual void AlwaysDo(std::function::type...)> method) { - DoImpl(new RepeatForever(method)); - } - - protected: - - virtual MethodStubbingProgress &DoImpl(Action *action) = 0; - - private: - MethodStubbingProgress &operator=(const MethodStubbingProgress &other) = delete; - }; - - -} -#include -#include - -namespace fakeit { - - class Finally { - private: - std::function _finallyClause; - - Finally(const Finally &); - - Finally &operator=(const Finally &); - - public: - explicit Finally(std::function f) : - _finallyClause(f) { - } - - ~Finally() { - _finallyClause(); - } - }; -} - -namespace fakeit { - - - template - struct ActionSequence : ActualInvocationHandler { - - ActionSequence() { - clear(); - } - - void AppendDo(Action *action) { - append(action); - } - - virtual R handleMethodInvocation(ArgumentsTuple & args) override - { - std::shared_ptr destructablePtr = _recordedActions.front(); - Destructible &destructable = *destructablePtr; - Action &action = dynamic_cast &>(destructable); - std::function finallyClause = [&]() -> void { - if (action.isDone()) - _recordedActions.erase(_recordedActions.begin()); - }; - Finally onExit(finallyClause); - return action.invoke(args); - } - - private: - - struct NoMoreRecordedAction : Action { - - - - - - - - virtual R invoke(const ArgumentsTuple &) override { - throw NoMoreRecordedActionException(); - } - - virtual bool isDone() override { - return false; - } - }; - - void append(Action *action) { - std::shared_ptr destructable{action}; - _recordedActions.insert(_recordedActions.end() - 1, destructable); - } - - void clear() { - _recordedActions.clear(); - auto actionPtr = std::shared_ptr {new NoMoreRecordedAction()}; - _recordedActions.push_back(actionPtr); - } - - std::vector> _recordedActions; - }; - -} - -namespace fakeit { - - template - class DataMemberStubbingRoot { - private: - - public: - DataMemberStubbingRoot(const DataMemberStubbingRoot &) = default; - - DataMemberStubbingRoot() = default; - - void operator=(const DATA_TYPE&) { - } - }; - -} -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace fakeit { - - struct Xaction { - virtual void commit() = 0; - }; -} - -namespace fakeit { - - - template - struct SpyingContext : Xaction { - virtual void appendAction(Action *action) = 0; - - virtual std::function getOriginalMethod() = 0; - }; -} -namespace fakeit { - - - template - struct StubbingContext : public Xaction { - virtual void appendAction(Action *action) = 0; - }; -} -#include -#include -#include -#include -#include -#include - - -namespace fakeit { - - template - class MatchersCollector { - - std::vector &_matchers; - - public: - - - template - using ArgType = typename std::tuple_element>::type; - - template - using NakedArgType = typename naked_type>::type; - - template - using ArgMatcherCreatorType = decltype(std::declval>>()); - - MatchersCollector(std::vector &matchers) - : _matchers(matchers) { - } - - void CollectMatchers() { - } - - template - typename std::enable_if< - std::is_constructible, Head>::value, void> - ::type CollectMatchers(const Head &value) { - - TypedMatcher> *d = Eq>(value).createMatcher(); - _matchers.push_back(d); - } - - template - typename std::enable_if< - std::is_constructible, Head>::value - , void> - ::type CollectMatchers(const Head &head, const Tail &... tail) { - CollectMatchers(head); - MatchersCollector c(_matchers); - c.CollectMatchers(tail...); - } - - template - typename std::enable_if< - std::is_base_of>, Head>::value, void> - ::type CollectMatchers(const Head &creator) { - TypedMatcher> *d = creator.createMatcher(); - _matchers.push_back(d); - } - - template - - typename std::enable_if< - std::is_base_of>, Head>::value, void> - ::type CollectMatchers(const Head &head, const Tail &... tail) { - CollectMatchers(head); - MatchersCollector c(_matchers); - c.CollectMatchers(tail...); - } - - template - typename std::enable_if< - std::is_same::value, void> - ::type CollectMatchers(const Head &) { - TypedMatcher> *d = Any>().createMatcher(); - _matchers.push_back(d); - } - - template - typename std::enable_if< - std::is_same::value, void> - ::type CollectMatchers(const Head &head, const Tail &... tail) { - CollectMatchers(head); - MatchersCollector c(_matchers); - c.CollectMatchers(tail...); - } - - }; - -} - -namespace fakeit { - - template - class MethodMockingContext : - public Sequence, - public ActualInvocationsSource, - public virtual StubbingContext, - public virtual SpyingContext, - private Invocation::Matcher { - public: - - struct Context : Destructible { - - - virtual typename std::function getOriginalMethod() = 0; - - virtual std::string getMethodName() = 0; - - virtual void addMethodInvocationHandler(typename ActualInvocation::Matcher *matcher, - ActualInvocationHandler *invocationHandler) = 0; - - virtual void scanActualInvocations(const std::function &)> &scanner) = 0; - - virtual void setMethodDetails(std::string mockName, std::string methodName) = 0; - - virtual bool isOfMethod(MethodInfo &method) = 0; - - virtual ActualInvocationsSource &getInvolvedMock() = 0; - }; - - private: - class Implementation { - - Context *_stubbingContext; - ActionSequence *_recordedActionSequence; - typename ActualInvocation::Matcher *_invocationMatcher; - bool _commited; - - Context &getStubbingContext() const { - return *_stubbingContext; - } - - public: - - Implementation(Context *stubbingContext) - : _stubbingContext(stubbingContext), - _recordedActionSequence(new ActionSequence()), - _invocationMatcher - { - new DefaultInvocationMatcher()}, _commited(false) { - } - - ~Implementation() { - delete _stubbingContext; - if (!_commited) { - - delete _recordedActionSequence; - delete _invocationMatcher; - } - } - - ActionSequence &getRecordedActionSequence() { - return *_recordedActionSequence; - } - - std::string format() const { - std::string s = getStubbingContext().getMethodName(); - s += _invocationMatcher->format(); - return s; - } - - void getActualInvocations(std::unordered_set &into) const { - auto scanner = [&](ActualInvocation &a) { - if (_invocationMatcher->matches(a)) { - into.insert(&a); - } - }; - getStubbingContext().scanActualInvocations(scanner); - } - - - bool matches(Invocation &invocation) { - MethodInfo &actualMethod = invocation.getMethod(); - if (!getStubbingContext().isOfMethod(actualMethod)) { - return false; - } - - ActualInvocation &actualInvocation = dynamic_cast &>(invocation); - return _invocationMatcher->matches(actualInvocation); - } - - void commit() { - getStubbingContext().addMethodInvocationHandler(_invocationMatcher, _recordedActionSequence); - _commited = true; - } - - void appendAction(Action *action) { - getRecordedActionSequence().AppendDo(action); - } - - void setMethodBodyByAssignment(std::function::type...)> method) { - appendAction(new RepeatForever(method)); - commit(); - } - - void setMethodDetails(std::string mockName, std::string methodName) { - getStubbingContext().setMethodDetails(mockName, methodName); - } - - void getInvolvedMocks(std::vector &into) const { - into.push_back(&getStubbingContext().getInvolvedMock()); - } - - typename std::function getOriginalMethod() { - return getStubbingContext().getOriginalMethod(); - } - - void setInvocationMatcher(typename ActualInvocation::Matcher *matcher) { - delete _invocationMatcher; - _invocationMatcher = matcher; - } - }; - - protected: - - MethodMockingContext(Context *stubbingContext) - : _impl{new Implementation(stubbingContext)} { - } - - MethodMockingContext(MethodMockingContext &) = default; - - - - MethodMockingContext(MethodMockingContext &&other) - : _impl(std::move(other._impl)) { - } - - virtual ~MethodMockingContext() NO_THROWS { } - - std::string format() const override { - return _impl->format(); - } - - unsigned int size() const override { - return 1; - } - - - void getInvolvedMocks(std::vector &into) const override { - _impl->getInvolvedMocks(into); - } - - void getExpectedSequence(std::vector &into) const override { - const Invocation::Matcher *b = this; - Invocation::Matcher *c = const_cast(b); - into.push_back(c); - } - - - void getActualInvocations(std::unordered_set &into) const override { - _impl->getActualInvocations(into); - } - - - bool matches(Invocation &invocation) override { - return _impl->matches(invocation); - } - - void commit() override { - _impl->commit(); - } - - void setMethodDetails(std::string mockName, std::string methodName) { - _impl->setMethodDetails(mockName, methodName); - } - - void setMatchingCriteria(std::function predicate) { - typename ActualInvocation::Matcher *matcher{ - new UserDefinedInvocationMatcher(predicate)}; - _impl->setInvocationMatcher(matcher); - } - - void setMatchingCriteria(const std::vector &matchers) { - typename ActualInvocation::Matcher *matcher{ - new ArgumentsMatcherInvocationMatcher(matchers)}; - _impl->setInvocationMatcher(matcher); - } - - - void appendAction(Action *action) override { - _impl->appendAction(action); - } - - void setMethodBodyByAssignment(std::function::type...)> method) { - _impl->setMethodBodyByAssignment(method); - } - - template::type> - void setMatchingCriteria(const matcherCreators &... matcherCreator) { - std::vector matchers; - - MatchersCollector<0, arglist...> c(matchers); - c.CollectMatchers(matcherCreator...); - - MethodMockingContext::setMatchingCriteria(matchers); - } - - private: - - typename std::function getOriginalMethod() override { - return _impl->getOriginalMethod(); - } - - std::shared_ptr _impl; - }; - - template - class MockingContext : - public MethodMockingContext { - MockingContext &operator=(const MockingContext &) = delete; - - public: - - MockingContext(typename MethodMockingContext::Context *stubbingContext) - : MethodMockingContext(stubbingContext) { - } - - MockingContext(MockingContext &) = default; - - MockingContext(MockingContext &&other) - : MethodMockingContext(std::move(other)) { - } - - MockingContext &setMethodDetails(std::string mockName, std::string methodName) { - MethodMockingContext::setMethodDetails(mockName, methodName); - return *this; - } - - MockingContext &Using(const arglist &... args) { - MethodMockingContext::setMatchingCriteria(args...); - return *this; - } - - template - MockingContext &Using(const arg_matcher &... arg_matchers) { - MethodMockingContext::setMatchingCriteria(arg_matchers...); - return *this; - } - - MockingContext &Matching(std::function matcher) { - MethodMockingContext::setMatchingCriteria(matcher); - return *this; - } - - MockingContext &operator()(const arglist &... args) { - MethodMockingContext::setMatchingCriteria(args...); - return *this; - } - - MockingContext &operator()(std::function matcher) { - MethodMockingContext::setMatchingCriteria(matcher); - return *this; - } - - void operator=(std::function method) { - MethodMockingContext::setMethodBodyByAssignment(method); - } - - template - typename std::enable_if::value, void>::type operator=(const R &r) { - auto method = [r](const typename fakeit::test_arg::type...) -> R { return r; }; - MethodMockingContext::setMethodBodyByAssignment(method); - } - - template - typename std::enable_if::value, void>::type operator=(const R &r) { - auto method = [&r](const typename fakeit::test_arg::type...) -> R { return r; }; - MethodMockingContext::setMethodBodyByAssignment(method); - } - }; - - template - class MockingContext : - public MethodMockingContext { - MockingContext &operator=(const MockingContext &) = delete; - - public: - - MockingContext(typename MethodMockingContext::Context *stubbingContext) - : MethodMockingContext(stubbingContext) { - } - - MockingContext(MockingContext &) = default; - - MockingContext(MockingContext &&other) - : MethodMockingContext(std::move(other)) { - } - - MockingContext &setMethodDetails(std::string mockName, std::string methodName) { - MethodMockingContext::setMethodDetails(mockName, methodName); - return *this; - } - - MockingContext &Using(const arglist &... args) { - MethodMockingContext::setMatchingCriteria(args...); - return *this; - } - - template - MockingContext &Using(const arg_matcher &... arg_matchers) { - MethodMockingContext::setMatchingCriteria(arg_matchers...); - return *this; - } - - MockingContext &Matching(std::function matcher) { - MethodMockingContext::setMatchingCriteria(matcher); - return *this; - } - - MockingContext &operator()(const arglist &... args) { - MethodMockingContext::setMatchingCriteria(args...); - return *this; - } - - MockingContext &operator()(std::function matcher) { - MethodMockingContext::setMatchingCriteria(matcher); - return *this; - } - - void operator=(std::function method) { - MethodMockingContext::setMethodBodyByAssignment(method); - } - - }; - - class DtorMockingContext : public MethodMockingContext { - public: - - DtorMockingContext(MethodMockingContext::Context *stubbingContext) - : MethodMockingContext(stubbingContext) { - } - - DtorMockingContext(DtorMockingContext &other) : MethodMockingContext(other) { - } - - DtorMockingContext(DtorMockingContext &&other) : MethodMockingContext(std::move(other)) { - } - - void operator=(std::function method) { - MethodMockingContext::setMethodBodyByAssignment(method); - } - - DtorMockingContext &setMethodDetails(std::string mockName, std::string methodName) { - MethodMockingContext::setMethodDetails(mockName, methodName); - return *this; - } - }; - -} - -namespace fakeit { - - - template - class MockImpl : private MockObject, public virtual ActualInvocationsSource { - public: - - MockImpl(FakeitContext &fakeit, C &obj) - : MockImpl(fakeit, obj, true) { - } - - MockImpl(FakeitContext &fakeit) - : MockImpl(fakeit, *(createFakeInstance()), false) { - FakeObject *fake = reinterpret_cast *>(_instance); - fake->getVirtualTable().setCookie(1, this); - } - - virtual ~MockImpl() NO_THROWS { - _proxy.detach(); - if (_isOwner) { - FakeObject *fake = reinterpret_cast *>(_instance); - delete fake; - } - } - - void detach() { - _isOwner = false; - _proxy.detach(); - } - - - void getActualInvocations(std::unordered_set &into) const override { - std::vector vec; - _proxy.getMethodMocks(vec); - for (ActualInvocationsSource *s : vec) { - s->getActualInvocations(into); - } - } - - void reset() { - _proxy.Reset(); - if (_isOwner) { - FakeObject *fake = reinterpret_cast *>(_instance); - fake->initializeDataMembersArea(); - } - } - - virtual C &get() override { - return _proxy.get(); - } - - virtual FakeitContext &getFakeIt() override { - return _fakeit; - } - - template::value>::type> - DataMemberStubbingRoot stubDataMember(DATA_TYPE T::*member, const arglist &... ctorargs) { - _proxy.stubDataMember(member, ctorargs...); - return DataMemberStubbingRoot(); - } - - template::value>::type> - MockingContext stubMethod(R(T::*vMethod)(arglist...)) { - return MockingContext(new UniqueMethodMockingContextImpl < id, R, arglist... > - (*this, vMethod)); - } - - DtorMockingContext stubDtor() { - return DtorMockingContext(new DtorMockingContextImpl(*this)); - } - - private: - DynamicProxy _proxy; - C *_instance; - bool _isOwner; - FakeitContext &_fakeit; - - template - class MethodMockingContextBase : public MethodMockingContext::Context { - protected: - MockImpl &_mock; - - virtual RecordedMethodBody &getRecordedMethodBody() = 0; - - public: - MethodMockingContextBase(MockImpl &mock) : _mock(mock) { } - - virtual ~MethodMockingContextBase() = default; - - void addMethodInvocationHandler(typename ActualInvocation::Matcher *matcher, - ActualInvocationHandler *invocationHandler) { - getRecordedMethodBody().addMethodInvocationHandler(matcher, invocationHandler); - } - - void scanActualInvocations(const std::function &)> &scanner) { - getRecordedMethodBody().scanActualInvocations(scanner); - } - - void setMethodDetails(std::string mockName, std::string methodName) { - getRecordedMethodBody().setMethodDetails(mockName, methodName); - } - - bool isOfMethod(MethodInfo &method) { - return getRecordedMethodBody().isOfMethod(method); - } - - ActualInvocationsSource &getInvolvedMock() { - return _mock; - } - - std::string getMethodName() { - return getRecordedMethodBody().getMethod().name(); - } - - }; - - template - class MethodMockingContextImpl : public MethodMockingContextBase { - protected: - - R (C::*_vMethod)(arglist...); - - public: - virtual ~MethodMockingContextImpl() = default; - - MethodMockingContextImpl(MockImpl &mock, R (C::*vMethod)(arglist...)) - : MethodMockingContextBase(mock), _vMethod(vMethod) { - } - - - virtual std::function getOriginalMethod() override { - void *mPtr = MethodMockingContextBase::_mock.getOriginalMethod(_vMethod); - C * instance = &(MethodMockingContextBase::_mock.get()); - return [=](arglist&... args) -> R { - auto m = union_cast::type>(mPtr); - return m(instance, std::forward(args)...); - }; - } - }; - - - template - class UniqueMethodMockingContextImpl : public MethodMockingContextImpl { - protected: - - virtual RecordedMethodBody &getRecordedMethodBody() override { - return MethodMockingContextBase::_mock.template stubMethodIfNotStubbed( - MethodMockingContextBase::_mock._proxy, - MethodMockingContextImpl::_vMethod); - } - - public: - - UniqueMethodMockingContextImpl(MockImpl &mock, R (C::*vMethod)(arglist...)) - : MethodMockingContextImpl(mock, vMethod) { - } - }; - - class DtorMockingContextImpl : public MethodMockingContextBase { - - protected: - - virtual RecordedMethodBody &getRecordedMethodBody() override { - return MethodMockingContextBase::_mock.stubDtorIfNotStubbed( - MethodMockingContextBase::_mock._proxy); - } - - public: - virtual ~DtorMockingContextImpl() = default; - - DtorMockingContextImpl(MockImpl &mock) - : MethodMockingContextBase(mock) { - } - - virtual std::function getOriginalMethod() override { - C &instance = MethodMockingContextBase::_mock.get(); - return [=, &instance]() -> void { - }; - } - - }; - - static MockImpl *getMockImpl(void *instance) { - FakeObject *fake = reinterpret_cast *>(instance); - MockImpl *mock = reinterpret_cast *>(fake->getVirtualTable().getCookie( - 1)); - return mock; - } - - void unmocked() { - ActualInvocation<> invocation(Invocation::nextInvocationOrdinal(), UnknownMethod::instance()); - UnexpectedMethodCallEvent event(UnexpectedType::Unmocked, invocation); - auto &fakeit = getMockImpl(this)->_fakeit; - fakeit.handle(event); - - std::string format = fakeit.format(event); - UnexpectedMethodCallException e(format); - throw e; - } - - static C *createFakeInstance() { - FakeObject *fake = new FakeObject(); - void *unmockedMethodStubPtr = union_cast(&MockImpl::unmocked); - fake->getVirtualTable().initAll(unmockedMethodStubPtr); - return reinterpret_cast(fake); - } - - template - void *getOriginalMethod(R (C::*vMethod)(arglist...)) { - auto vt = _proxy.getOriginalVT(); - auto offset = VTUtils::getOffset(vMethod); - void *origMethodPtr = vt.getMethod(offset); - return origMethodPtr; - } - - void *getOriginalDtor() { - auto vt = _proxy.getOriginalVT(); - auto offset = VTUtils::getDestructorOffset(); - void *origMethodPtr = vt.getMethod(offset); - return origMethodPtr; - } - - template - RecordedMethodBody &stubMethodIfNotStubbed(DynamicProxy &proxy, - R (C::*vMethod)(arglist...)) { - if (!proxy.isMethodStubbed(vMethod)) { - proxy.template stubMethod(vMethod, createRecordedMethodBody < R, arglist... > (*this, vMethod)); - } - Destructible *d = proxy.getMethodMock(vMethod); - RecordedMethodBody *methodMock = dynamic_cast *>(d); - return *methodMock; - } - - RecordedMethodBody &stubDtorIfNotStubbed(DynamicProxy &proxy) { - if (!proxy.isDtorStubbed()) { - proxy.stubDtor(createRecordedDtorBody(*this)); - } - Destructible *d = proxy.getDtorMock(); - RecordedMethodBody *dtorMock = dynamic_cast *>(d); - return *dtorMock; - } - - MockImpl(FakeitContext &fakeit, C &obj, bool isSpy) - : _proxy{obj}, _instance(&obj), _isOwner(!isSpy), _fakeit(fakeit) { - } - - template - static RecordedMethodBody *createRecordedMethodBody(MockObject &mock, - R(C::*vMethod)(arglist...)) { - return new RecordedMethodBody(mock.getFakeIt(), typeid(vMethod).name()); - } - - static RecordedMethodBody *createRecordedDtorBody(MockObject &mock) { - return new RecordedMethodBody(mock.getFakeIt(), "dtor"); - } - - }; -} -namespace fakeit { - - template - struct Prototype; - - template - struct Prototype { - - typedef R Type(Args...); - - typedef R ConstType(Args...) const; - - template - struct MemberType { - - typedef Type(C::*type); - typedef ConstType(C::*cosntType); - - static type get(type t) { - return t; - } - - static cosntType getconst(cosntType t) { - return t; - } - - }; - - }; - - template - struct UniqueMethod { - R (C::*method)(arglist...); - - UniqueMethod(R (C::*vMethod)(arglist...)) : method(vMethod) { } - - int uniqueId() { - return X; - } - - - - - }; - -} - - -namespace fakeit { - namespace internal { - } - using namespace fakeit; - using namespace fakeit::internal; - - template - class Mock : public ActualInvocationsSource { - MockImpl impl; - public: - virtual ~Mock() = default; - - static_assert(std::is_polymorphic::value, "Can only mock a polymorphic type"); - - Mock() : impl(Fakeit) { - } - - explicit Mock(C &obj) : impl(Fakeit, obj) { - } - - virtual C &get() { - return impl.get(); - } - - C &operator()() { - return get(); - } - - void Reset() { - impl.reset(); - } - - template::value>::type> - DataMemberStubbingRoot Stub(DATA_TYPE C::* member, const arglist &... ctorargs) { - return impl.stubDataMember(member, ctorargs...); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R (T::*vMethod)(arglist...) const) { - auto methodWithoutConstVolatile = reinterpret_cast(vMethod); - return impl.template stubMethod(methodWithoutConstVolatile); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R(T::*vMethod)(arglist...) volatile) { - auto methodWithoutConstVolatile = reinterpret_cast(vMethod); - return impl.template stubMethod(methodWithoutConstVolatile); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R(T::*vMethod)(arglist...) const volatile) { - auto methodWithoutConstVolatile = reinterpret_cast(vMethod); - return impl.template stubMethod(methodWithoutConstVolatile); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R(T::*vMethod)(arglist...)) { - return impl.template stubMethod(vMethod); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R(T::*vMethod)(arglist...) const) { - auto methodWithoutConstVolatile = reinterpret_cast(vMethod); - return impl.template stubMethod(methodWithoutConstVolatile); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R(T::*vMethod)(arglist...) volatile) { - auto methodWithoutConstVolatile = reinterpret_cast(vMethod); - return impl.template stubMethod(methodWithoutConstVolatile); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R(T::*vMethod)(arglist...) const volatile) { - auto methodWithoutConstVolatile = reinterpret_cast(vMethod); - return impl.template stubMethod(methodWithoutConstVolatile); - } - - template::value && std::is_base_of::value>::type> - MockingContext stub(R(T::*vMethod)(arglist...)) { - auto methodWithoutConstVolatile = reinterpret_cast(vMethod); - return impl.template stubMethod(methodWithoutConstVolatile); - } - - DtorMockingContext dtor() { - return impl.stubDtor(); - } - - void getActualInvocations(std::unordered_set &into) const override { - impl.getActualInvocations(into); - } - - }; - -} - -#include - -namespace fakeit { - - class RefCount { - private: - int count; - - public: - void AddRef() { - count++; - } - - int Release() { - return --count; - } - }; - - template - class smart_ptr { - private: - T *pData; - RefCount *reference; - - public: - smart_ptr() : pData(0), reference(0) { - reference = new RefCount(); - reference->AddRef(); - } - - smart_ptr(T *pValue) : pData(pValue), reference(0) { - reference = new RefCount(); - reference->AddRef(); - } - - smart_ptr(const smart_ptr &sp) : pData(sp.pData), reference(sp.reference) { - reference->AddRef(); - } - - ~smart_ptr() THROWS { - if (reference->Release() == 0) { - delete reference; - delete pData; - } - } - - T &operator*() { - return *pData; - } - - T *operator->() { - return pData; - } - - smart_ptr &operator=(const smart_ptr &sp) { - if (this != &sp) { - - - if (reference->Release() == 0) { - delete reference; - delete pData; - } - - - - pData = sp.pData; - reference = sp.reference; - reference->AddRef(); - } - return *this; - } - }; - -} - -namespace fakeit { - - class WhenFunctor { - - struct StubbingChange { - - friend class WhenFunctor; - - virtual ~StubbingChange() THROWS { - - if (std::uncaught_exception()) { - return; - } - - _xaction.commit(); - } - - StubbingChange(StubbingChange &other) : - _xaction(other._xaction) { - } - - private: - - StubbingChange(Xaction &xaction) - : _xaction(xaction) { - } - - Xaction &_xaction; - }; - - public: - - template - struct MethodProgress : MethodStubbingProgress { - - friend class WhenFunctor; - - virtual ~MethodProgress() override = default; - - MethodProgress(MethodProgress &other) : - _progress(other._progress), _context(other._context) { - } - - MethodProgress(StubbingContext &xaction) : - _progress(new StubbingChange(xaction)), _context(xaction) { - } - - protected: - - virtual MethodStubbingProgress &DoImpl(Action *action) override { - _context.appendAction(action); - return *this; - } - - private: - smart_ptr _progress; - StubbingContext &_context; - }; - - - WhenFunctor() { - } - - template - MethodProgress operator()(const StubbingContext &stubbingContext) { - StubbingContext &rootWithoutConst = const_cast &>(stubbingContext); - MethodProgress progress(rootWithoutConst); - return progress; - } - - }; - -} -namespace fakeit { - - class FakeFunctor { - private: - template - void fake(const StubbingContext &root) { - StubbingContext &rootWithoutConst = const_cast &>(root); - rootWithoutConst.appendAction(new ReturnDefaultValue()); - rootWithoutConst.commit(); - } - - void operator()() { - } - - public: - - template - void operator()(const H &head, const M &... tail) { - fake(head); - this->operator()(tail...); - } - - }; - -} -#include -#include - - -namespace fakeit { - - struct InvocationUtils { - - static void sortByInvocationOrder(std::unordered_set &ivocations, - std::vector &result) { - auto comparator = [](Invocation *a, Invocation *b) -> bool { - return a->getOrdinal() < b->getOrdinal(); - }; - std::set sortedIvocations(comparator); - for (auto i : ivocations) - sortedIvocations.insert(i); - - for (auto i : sortedIvocations) - result.push_back(i); - } - - static void collectActualInvocations(std::unordered_set &actualInvocations, - std::vector &invocationSources) { - for (auto source : invocationSources) { - source->getActualInvocations(actualInvocations); - } - } - - static void selectNonVerifiedInvocations(std::unordered_set &actualInvocations, - std::unordered_set &into) { - for (auto invocation : actualInvocations) { - if (!invocation->isVerified()) { - into.insert(invocation); - } - } - } - - static void collectInvocationSources(std::vector &) { - } - - template - static void collectInvocationSources(std::vector &into, - const ActualInvocationsSource &mock, - const list &... tail) { - into.push_back(const_cast(&mock)); - collectInvocationSources(into, tail...); - } - - static void collectSequences(std::vector &) { - } - - template - static void collectSequences(std::vector &vec, const Sequence &sequence, const list &... tail) { - vec.push_back(&const_cast(sequence)); - collectSequences(vec, tail...); - } - - static void collectInvolvedMocks(std::vector &allSequences, - std::vector &involvedMocks) { - for (auto sequence : allSequences) { - sequence->getInvolvedMocks(involvedMocks); - } - } - - template - static T &remove_const(const T &s) { - return const_cast(s); - } - - }; - -} - -#include - -#include -#include - -namespace fakeit { - struct MatchAnalysis { - std::vector actualSequence; - std::vector matchedInvocations; - int count; - - void run(InvocationsSourceProxy &involvedInvocationSources, std::vector &expectedPattern) { - getActualInvocationSequence(involvedInvocationSources, actualSequence); - count = countMatches(expectedPattern, actualSequence, matchedInvocations); - } - - private: - static void getActualInvocationSequence(InvocationsSourceProxy &involvedMocks, - std::vector &actualSequence) { - std::unordered_set actualInvocations; - collectActualInvocations(involvedMocks, actualInvocations); - InvocationUtils::sortByInvocationOrder(actualInvocations, actualSequence); - } - - static int countMatches(std::vector &pattern, std::vector &actualSequence, - std::vector &matchedInvocations) { - int end = -1; - int count = 0; - int startSearchIndex = 0; - while (findNextMatch(pattern, actualSequence, startSearchIndex, end, matchedInvocations)) { - count++; - startSearchIndex = end; - } - return count; - } - - static void collectActualInvocations(InvocationsSourceProxy &involvedMocks, - std::unordered_set &actualInvocations) { - involvedMocks.getActualInvocations(actualInvocations); - } - - static bool findNextMatch(std::vector &pattern, std::vector &actualSequence, - int startSearchIndex, int &end, - std::vector &matchedInvocations) { - for (auto sequence : pattern) { - int index = findNextMatch(sequence, actualSequence, startSearchIndex); - if (index == -1) { - return false; - } - collectMatchedInvocations(actualSequence, matchedInvocations, index, sequence->size()); - startSearchIndex = index + sequence->size(); - } - end = startSearchIndex; - return true; - } - - - static void collectMatchedInvocations(std::vector &actualSequence, - std::vector &matchedInvocations, int start, - int length) { - int indexAfterMatchedPattern = start + length; - for (; start < indexAfterMatchedPattern; start++) { - matchedInvocations.push_back(actualSequence[start]); - } - } - - - static bool isMatch(std::vector &actualSequence, - std::vector &expectedSequence, int start) { - bool found = true; - for (unsigned int j = 0; found && j < expectedSequence.size(); j++) { - Invocation *actual = actualSequence[start + j]; - Invocation::Matcher *expected = expectedSequence[j]; - found = found && expected->matches(*actual); - } - return found; - } - - static int findNextMatch(Sequence *&pattern, std::vector &actualSequence, int startSearchIndex) { - std::vector expectedSequence; - pattern->getExpectedSequence(expectedSequence); - for (int i = startSearchIndex; i < ((int) actualSequence.size() - (int) expectedSequence.size() + 1); i++) { - if (isMatch(actualSequence, expectedSequence, i)) { - return i; - } - } - return -1; - } - - }; -} - -namespace fakeit { - - struct SequenceVerificationExpectation { - - friend class SequenceVerificationProgress; - - ~SequenceVerificationExpectation() THROWS { - if (std::uncaught_exception()) { - return; - } - VerifyExpectation(_fakeit); - } - - void setExpectedPattern(std::vector expectedPattern) { - _expectedPattern = expectedPattern; - } - - void setExpectedCount(const int count) { - _expectedCount = count; - } - - void setFileInfo(std::string file, int line, std::string callingMethod) { - _file = file; - _line = line; - _testMethod = callingMethod; - } - - private: - - VerificationEventHandler &_fakeit; - InvocationsSourceProxy _involvedInvocationSources; - std::vector _expectedPattern; - int _expectedCount; - - std::string _file; - int _line; - std::string _testMethod; - bool _isVerified; - - SequenceVerificationExpectation( - VerificationEventHandler &fakeit, - InvocationsSourceProxy mocks, - std::vector &expectedPattern) : - _fakeit(fakeit), - _involvedInvocationSources(mocks), - _expectedPattern(expectedPattern), - _expectedCount(-1), - _line(0), - _isVerified(false) { - } - - - void VerifyExpectation(VerificationEventHandler &verificationErrorHandler) { - if (_isVerified) - return; - _isVerified = true; - - MatchAnalysis ma; - ma.run(_involvedInvocationSources, _expectedPattern); - - if (isAtLeastVerification() && atLeastLimitNotReached(ma.count)) { - return handleAtLeastVerificationEvent(verificationErrorHandler, ma.actualSequence, ma.count); - } - - if (isExactVerification() && exactLimitNotMatched(ma.count)) { - return handleExactVerificationEvent(verificationErrorHandler, ma.actualSequence, ma.count); - } - - markAsVerified(ma.matchedInvocations); - } - - std::vector &collectSequences(std::vector &vec) { - return vec; - } - - template - std::vector &collectSequences(std::vector &vec, const Sequence &sequence, - const list &... tail) { - vec.push_back(&const_cast(sequence)); - return collectSequences(vec, tail...); - } - - - static void markAsVerified(std::vector &matchedInvocations) { - for (auto i : matchedInvocations) { - i->markAsVerified(); - } - } - - bool isAtLeastVerification() { - - return _expectedCount < 0; - } - - bool isExactVerification() { - return !isAtLeastVerification(); - } - - bool atLeastLimitNotReached(int count) { - return count < -_expectedCount; - } - - bool exactLimitNotMatched(int count) { - return count != _expectedCount; - } - - void handleExactVerificationEvent(VerificationEventHandler &verificationErrorHandler, - std::vector actualSequence, int count) { - SequenceVerificationEvent evt(VerificationType::Exact, _expectedPattern, actualSequence, _expectedCount, - count); - evt.setFileInfo(_file, _line, _testMethod); - return verificationErrorHandler.handle(evt); - } - - void handleAtLeastVerificationEvent(VerificationEventHandler &verificationErrorHandler, - std::vector actualSequence, int count) { - SequenceVerificationEvent evt(VerificationType::AtLeast, _expectedPattern, actualSequence, -_expectedCount, - count); - evt.setFileInfo(_file, _line, _testMethod); - return verificationErrorHandler.handle(evt); - } - - }; - -} -namespace fakeit { - class ThrowFalseEventHandler : public VerificationEventHandler { - - void handle(const SequenceVerificationEvent &) override { - throw false; - } - - void handle(const NoMoreInvocationsVerificationEvent &) override { - throw false; - } - }; -} -#include -#include -#include - -namespace fakeit { - - template - static std::string to_string(const T &n) { - std::ostringstream stm; - stm << n; - return stm.str(); - } - -} - - -namespace fakeit { - - struct FakeitContext; - - class SequenceVerificationProgress { - - friend class UsingFunctor; - - friend class VerifyFunctor; - - friend class UsingProgress; - - smart_ptr _expectationPtr; - - SequenceVerificationProgress(SequenceVerificationExpectation *ptr) : _expectationPtr(ptr) { - } - - SequenceVerificationProgress( - FakeitContext &fakeit, - InvocationsSourceProxy sources, - std::vector &allSequences) : - SequenceVerificationProgress(new SequenceVerificationExpectation(fakeit, sources, allSequences)) { - } - - virtual void verifyInvocations(const int times) { - _expectationPtr->setExpectedCount(times); - } - - class Terminator { - smart_ptr _expectationPtr; - - bool toBool() { - try { - ThrowFalseEventHandler eh; - _expectationPtr->VerifyExpectation(eh); - return true; - } - catch (bool e) { - return e; - } - } - - public: - Terminator(smart_ptr expectationPtr) : _expectationPtr(expectationPtr) { }; - - operator bool() { - return toBool(); - } - - bool operator!() const { return !const_cast(this)->toBool(); } - }; - - public: - - ~SequenceVerificationProgress() THROWS { }; - - operator bool() { - return Terminator(_expectationPtr); - } - - bool operator!() const { return !Terminator(_expectationPtr); } - - Terminator Never() { - Exactly(0); - return Terminator(_expectationPtr); - } - - Terminator Once() { - Exactly(1); - return Terminator(_expectationPtr); - } - - Terminator Twice() { - Exactly(2); - return Terminator(_expectationPtr); - } - - Terminator AtLeastOnce() { - verifyInvocations(-1); - return Terminator(_expectationPtr); - } - - Terminator Exactly(const int times) { - if (times < 0) { - throw std::invalid_argument(std::string("bad argument times:").append(fakeit::to_string(times))); - } - verifyInvocations(times); - return Terminator(_expectationPtr); - } - - Terminator Exactly(const Quantity &q) { - Exactly(q.quantity); - return Terminator(_expectationPtr); - } - - Terminator AtLeast(const int times) { - if (times < 0) { - throw std::invalid_argument(std::string("bad argument times:").append(fakeit::to_string(times))); - } - verifyInvocations(-times); - return Terminator(_expectationPtr); - } - - Terminator AtLeast(const Quantity &q) { - AtLeast(q.quantity); - return Terminator(_expectationPtr); - } - - SequenceVerificationProgress setFileInfo(std::string file, int line, std::string callingMethod) { - _expectationPtr->setFileInfo(file, line, callingMethod); - return *this; - } - }; -} - -namespace fakeit { - - class UsingProgress { - fakeit::FakeitContext &_fakeit; - InvocationsSourceProxy _sources; - - void collectSequences(std::vector &) { - } - - template - void collectSequences(std::vector &vec, const fakeit::Sequence &sequence, - const list &... tail) { - vec.push_back(&const_cast(sequence)); - collectSequences(vec, tail...); - } - - public: - - UsingProgress(fakeit::FakeitContext &fakeit, InvocationsSourceProxy source) : - _fakeit(fakeit), - _sources(source) { - } - - template - SequenceVerificationProgress Verify(const fakeit::Sequence &sequence, const list &... tail) { - std::vector allSequences; - collectSequences(allSequences, sequence, tail...); - SequenceVerificationProgress progress(_fakeit, _sources, allSequences); - return progress; - } - - }; -} - -namespace fakeit { - - class UsingFunctor { - - friend class VerifyFunctor; - - FakeitContext &_fakeit; - - public: - - UsingFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { - } - - template - UsingProgress operator()(const ActualInvocationsSource &head, const list &... tail) { - std::vector allMocks{&InvocationUtils::remove_const(head), - &InvocationUtils::remove_const(tail)...}; - InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(allMocks)}; - UsingProgress progress(_fakeit, aggregateInvocationsSource); - return progress; - } - - }; -} -#include - -namespace fakeit { - - class VerifyFunctor { - - FakeitContext &_fakeit; - - - public: - - VerifyFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { - } - - template - SequenceVerificationProgress operator()(const Sequence &sequence, const list &... tail) { - std::vector allSequences{&InvocationUtils::remove_const(sequence), - &InvocationUtils::remove_const(tail)...}; - - std::vector involvedSources; - InvocationUtils::collectInvolvedMocks(allSequences, involvedSources); - InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(involvedSources)}; - - UsingProgress usingProgress(_fakeit, aggregateInvocationsSource); - return usingProgress.Verify(sequence, tail...); - } - - }; - -} -#include -#include -namespace fakeit { - - class VerifyNoOtherInvocationsVerificationProgress { - - friend class VerifyNoOtherInvocationsFunctor; - - struct VerifyNoOtherInvocationsExpectation { - - friend class VerifyNoOtherInvocationsVerificationProgress; - - ~VerifyNoOtherInvocationsExpectation() THROWS { - if (std::uncaught_exception()) { - return; - } - - VerifyExpectation(_fakeit); - } - - void setFileInfo(std::string file, int line, std::string callingMethod) { - _file = file; - _line = line; - _callingMethod = callingMethod; - } - - private: - - VerificationEventHandler &_fakeit; - std::vector _mocks; - - std::string _file; - int _line; - std::string _callingMethod; - bool _isVerified; - - VerifyNoOtherInvocationsExpectation(VerificationEventHandler &fakeit, - std::vector mocks) : - _fakeit(fakeit), - _mocks(mocks), - _line(0), - _isVerified(false) { - } - - VerifyNoOtherInvocationsExpectation(VerifyNoOtherInvocationsExpectation &other) = default; - - void VerifyExpectation(VerificationEventHandler &verificationErrorHandler) { - if (_isVerified) - return; - _isVerified = true; - - std::unordered_set actualInvocations; - InvocationUtils::collectActualInvocations(actualInvocations, _mocks); - - std::unordered_set nonVerifiedInvocations; - InvocationUtils::selectNonVerifiedInvocations(actualInvocations, nonVerifiedInvocations); - - if (nonVerifiedInvocations.size() > 0) { - std::vector sortedNonVerifiedInvocations; - InvocationUtils::sortByInvocationOrder(nonVerifiedInvocations, sortedNonVerifiedInvocations); - - std::vector sortedActualInvocations; - InvocationUtils::sortByInvocationOrder(actualInvocations, sortedActualInvocations); - - NoMoreInvocationsVerificationEvent evt(sortedActualInvocations, sortedNonVerifiedInvocations); - evt.setFileInfo(_file, _line, _callingMethod); - return verificationErrorHandler.handle(evt); - } - } - - }; - - fakeit::smart_ptr _ptr; - - VerifyNoOtherInvocationsVerificationProgress(VerifyNoOtherInvocationsExpectation *ptr) : - _ptr(ptr) { - } - - VerifyNoOtherInvocationsVerificationProgress(FakeitContext &fakeit, - std::vector &invocationSources) - : VerifyNoOtherInvocationsVerificationProgress( - new VerifyNoOtherInvocationsExpectation(fakeit, invocationSources) - ) { - } - - bool toBool() { - try { - ThrowFalseEventHandler ev; - _ptr->VerifyExpectation(ev); - return true; - } - catch (bool e) { - return e; - } - } - - public: - - - ~VerifyNoOtherInvocationsVerificationProgress() THROWS { - }; - - VerifyNoOtherInvocationsVerificationProgress setFileInfo(std::string file, int line, - std::string callingMethod) { - _ptr->setFileInfo(file, line, callingMethod); - return *this; - } - - operator bool() { - return toBool(); - } - - bool operator!() const { return !const_cast(this)->toBool(); } - - }; - -} - - -namespace fakeit { - class VerifyNoOtherInvocationsFunctor { - - FakeitContext &_fakeit; - - public: - - VerifyNoOtherInvocationsFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { - } - - void operator()() { - } - - template - VerifyNoOtherInvocationsVerificationProgress operator()(const ActualInvocationsSource &head, - const list &... tail) { - std::vector invocationSources{&InvocationUtils::remove_const(head), - &InvocationUtils::remove_const(tail)...}; - VerifyNoOtherInvocationsVerificationProgress progress{_fakeit, invocationSources}; - return progress; - } - }; - -} -namespace fakeit { - - class SpyFunctor { - private: - - template - void spy(const SpyingContext &root) { - SpyingContext &rootWithoutConst = const_cast &>(root); - auto methodFromOriginalVT = rootWithoutConst.getOriginalMethod(); - rootWithoutConst.appendAction(new ReturnDelegateValue(methodFromOriginalVT)); - rootWithoutConst.commit(); - } - - void operator()() { - } - - public: - - template - void operator()(const H &head, const M &... tail) { - spy(head); - this->operator()(tail...); - } - - }; - -} - -#include -#include - -namespace fakeit { - class VerifyUnverifiedFunctor { - - FakeitContext &_fakeit; - - public: - - VerifyUnverifiedFunctor(FakeitContext &fakeit) : _fakeit(fakeit) { - } - - template - SequenceVerificationProgress operator()(const Sequence &sequence, const list &... tail) { - std::vector allSequences{&InvocationUtils::remove_const(sequence), - &InvocationUtils::remove_const(tail)...}; - - std::vector involvedSources; - InvocationUtils::collectInvolvedMocks(allSequences, involvedSources); - - InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(involvedSources)}; - InvocationsSourceProxy unverifiedInvocationsSource{ - new UnverifiedInvocationsSource(aggregateInvocationsSource)}; - - UsingProgress usingProgress(_fakeit, unverifiedInvocationsSource); - return usingProgress.Verify(sequence, tail...); - } - - }; - - class UnverifiedFunctor { - public: - UnverifiedFunctor(FakeitContext &fakeit) : Verify(fakeit) { - } - - VerifyUnverifiedFunctor Verify; - - template - UnverifiedInvocationsSource operator()(const ActualInvocationsSource &head, const list &... tail) { - std::vector allMocks{&InvocationUtils::remove_const(head), - &InvocationUtils::remove_const(tail)...}; - InvocationsSourceProxy aggregateInvocationsSource{new AggregateInvocationsSource(allMocks)}; - UnverifiedInvocationsSource unverifiedInvocationsSource{aggregateInvocationsSource}; - return unverifiedInvocationsSource; - } - - - - - - - - - - - - - - }; -} - -namespace fakeit { - - static UsingFunctor Using(Fakeit); - static VerifyFunctor Verify(Fakeit); - static VerifyNoOtherInvocationsFunctor VerifyNoOtherInvocations(Fakeit); - static UnverifiedFunctor Unverified(Fakeit); - static SpyFunctor Spy; - static FakeFunctor Fake; - static WhenFunctor When; - - template - class SilenceUnusedVariableWarnings { - - void use(void *) { - } - - SilenceUnusedVariableWarnings() { - use(&Fake); - use(&When); - use(&Spy); - use(&Using); - use(&Verify); - use(&VerifyNoOtherInvocations); - use(&_); - } - }; - -} -#ifdef _MSC_VER -#define __func__ __FUNCTION__ -#endif - -#define MOCK_TYPE(mock) \ - std::remove_reference::type - -#define OVERLOADED_METHOD_PTR(mock, method, prototype) \ - fakeit::Prototype::MemberType::get(&MOCK_TYPE(mock)::method) - -#define CONST_OVERLOADED_METHOD_PTR(mock, method, prototype) \ - fakeit::Prototype::MemberType::getconst(&MOCK_TYPE(mock)::method) - -#define Dtor(mock) \ - mock.dtor().setMethodDetails(#mock,"destructor") - -#define Method(mock, method) \ - mock.template stub<__COUNTER__>(&MOCK_TYPE(mock)::method).setMethodDetails(#mock,#method) - -#define OverloadedMethod(mock, method, prototype) \ - mock.template stub<__COUNTER__>(OVERLOADED_METHOD_PTR( mock , method, prototype )).setMethodDetails(#mock,#method) - -#define ConstOverloadedMethod(mock, method, prototype) \ - mock.template stub<__COUNTER__>(CONST_OVERLOADED_METHOD_PTR( mock , method, prototype )).setMethodDetails(#mock,#method) - -#define Verify(...) \ - Verify( __VA_ARGS__ ).setFileInfo(__FILE__, __LINE__, __func__) - -#define Using(...) \ - Using( __VA_ARGS__ ) - -#define VerifyNoOtherInvocations(...) \ - VerifyNoOtherInvocations( __VA_ARGS__ ).setFileInfo(__FILE__, __LINE__, __func__) - -#define Fake(...) \ - Fake( __VA_ARGS__ ) - -#define When(call) \ - When(call) - - -#endif diff --git a/o2qa/runSystemController.cxx b/o2qa/runSystemController.cxx deleted file mode 100755 index 224984e60eb9a..0000000000000 --- a/o2qa/runSystemController.cxx +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -#include "SystemController.h" - -using namespace std; - -int main(int argc, char** argv) -{ - SystemController systemController("CentralSystemController", "systemController_log.txt", 1); - LOG(INFO) << "PID: " << getpid(); - LOG(INFO) << "SystemController id: " - << systemController.GetProperty(SystemController::Id, "default_id"); - - systemController.establishChannel("req", "connect", "tcp://localhost:5001", "data"); - systemController.executeRunLoop(); -} From 47daddfe2c4f789906e9189f19379ba260b7fb99 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Tue, 23 Feb 2016 21:53:23 +0100 Subject: [PATCH 021/135] README update --- o2qa/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/o2qa/README.md b/o2qa/README.md index ab0d559bd6f6d..4914b1f19343a 100644 --- a/o2qa/README.md +++ b/o2qa/README.md @@ -8,7 +8,7 @@ Quality assurance software prototype. 1. Set the environment variable SIMPATH to your FairSoft installation directory. 2. Set the environment variable FAIRROOTPATH to your FairRoot installation directory. -It is a good practice to run config.sh script from AliceO2 build directory to set all others variables as PATH etc. +It is a good practice to run config.sh script from AliceO2 build directory to set all others variables such as PATH etc. ### Overwiev This is a quality assurance software prototype for AliceO2 software. It uses FairMQ framework to provide distributed environment. @@ -38,4 +38,4 @@ runViewerDevice ### Unit tests All modules are provided with unit tests written in BOOST test framework. Each module has it's tests in "Tests" directory. -To run all unit tests type ```bash ctest ``` \ No newline at end of file +To run all unit tests type ```ctest ``` \ No newline at end of file From 428401898f223a6f1368588b7407028fe637af15 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Wed, 2 Mar 2016 22:30:19 +0100 Subject: [PATCH 022/135] Added tree producer functionality with unit test + minor refactoring --- o2qa/Merger/Tests/MergerTestSuite.cxx | 1 - o2qa/Producer/HistogramProducer.cxx | 10 +++--- o2qa/Producer/HistogramProducer.h | 2 +- o2qa/Producer/ProducerDevice.cxx | 8 ++--- o2qa/Producer/ProducerDevice.h | 7 +--- o2qa/Producer/Tests/ProducerTestSuite.cxx | 29 +++++++++++++--- o2qa/Producer/TreeProducer.cxx | 37 +++++++++++++++------ o2qa/Producer/TreeProducer.h | 14 ++++++-- o2qa/Viewer/Tests/ViewerTestSuite.cxx | 8 ++++- o2qa/Viewer/ViewerDevice.cxx | 6 ++-- o2qa/Viewer/ViewerDevice.h | 3 +- o2qa/runMerger.cxx | 2 +- o2qa/runProducer.cxx | 40 ++++++++++++++++------- o2qa/runViewerDevice.cxx | 6 +++- 14 files changed, 120 insertions(+), 53 deletions(-) diff --git a/o2qa/Merger/Tests/MergerTestSuite.cxx b/o2qa/Merger/Tests/MergerTestSuite.cxx index a53bbe4a90adc..807ecc077aaee 100755 --- a/o2qa/Merger/Tests/MergerTestSuite.cxx +++ b/o2qa/Merger/Tests/MergerTestSuite.cxx @@ -10,7 +10,6 @@ #include "Merger/MergerDevice.h" #include "Merger.h" -#include "fakeit.hpp" BOOST_AUTO_TEST_SUITE(MergerDeviceTestSuite) diff --git a/o2qa/Producer/HistogramProducer.cxx b/o2qa/Producer/HistogramProducer.cxx index d34ffc92f4de3..7f852bf4546d9 100644 --- a/o2qa/Producer/HistogramProducer.cxx +++ b/o2qa/Producer/HistogramProducer.cxx @@ -5,7 +5,7 @@ using namespace std; -HistogramProducer::HistogramProducer(string histogramNamePrefix, string histogramTitle, float xLow, float xUp) : producedHistogramNumber(0) +HistogramProducer::HistogramProducer(string histogramNamePrefix, string histogramTitle, float xLow, float xUp) : mProducedHistogramNumber(0) { mHistogramNamePrefix = histogramNamePrefix; mHistogramTitle = histogramTitle; @@ -19,9 +19,9 @@ TObject* HistogramProducer::produceData() ostringstream histogramName; string histogramTitle = "Gauss_distribution"; - histogramName << mHistogramNamePrefix << producedHistogramNumber++; + histogramName << mHistogramNamePrefix << mProducedHistogramNumber++; - TH1F* histogram = new TH1F(histogramName.str().c_str(), mHistogramTitle.c_str(), mBeansNumber, mXLow, mXUp); - histogram->FillRandom("gaus", 1000); - return histogram; + TH1F* histogram = new TH1F(histogramName.str().c_str(), mHistogramTitle.c_str(), mBeansNumber, mXLow, mXUp); + histogram->FillRandom("gaus", 1000); + return histogram; } diff --git a/o2qa/Producer/HistogramProducer.h b/o2qa/Producer/HistogramProducer.h index 1a9b11d6a8114..b51268ef8ebcf 100644 --- a/o2qa/Producer/HistogramProducer.h +++ b/o2qa/Producer/HistogramProducer.h @@ -16,5 +16,5 @@ class HistogramProducer : public Producer int mBeansNumber; double mXLow; double mXUp; - int producedHistogramNumber; + int mProducedHistogramNumber; }; diff --git a/o2qa/Producer/ProducerDevice.cxx b/o2qa/Producer/ProducerDevice.cxx index 81ec26e30fb31..6693a33f21d1a 100755 --- a/o2qa/Producer/ProducerDevice.cxx +++ b/o2qa/Producer/ProducerDevice.cxx @@ -6,17 +6,15 @@ #include #include "ProducerDevice.h" -#include "HistogramProducer.h" -#include "TreeProducer.h" using namespace std; -ProducerDevice::ProducerDevice(string producerId, string namePrefix, string title, float xLow, float xUp, int numIoThreads) +ProducerDevice::ProducerDevice(string producerId, int numIoThreads, shared_ptr & producer) { this->SetTransport(new FairMQTransportFactoryZMQ); this->SetProperty(ProducerDevice::Id, producerId); this->SetProperty(ProducerDevice::NumIoThreads, numIoThreads); - mProducer = make_shared(namePrefix, title, xLow, xUp); + mProducer = producer; } void freeTMessage(void* data, void* hint) @@ -40,7 +38,7 @@ void ProducerDevice::Run() message)); unique_ptr reply(fTransportFactory->CreateMessage()); - LOG(INFO) << "Sending new histogram to merger"; + LOG(INFO) << "Sending new data object to merger"; fChannels["data"].at(0).Send(request); fChannels["data"].at(0).Receive(reply); diff --git a/o2qa/Producer/ProducerDevice.h b/o2qa/Producer/ProducerDevice.h index 36917d2e057df..11e55ae26cd99 100755 --- a/o2qa/Producer/ProducerDevice.h +++ b/o2qa/Producer/ProducerDevice.h @@ -10,12 +10,7 @@ class ProducerDevice : public FairMQDevice { public: - ProducerDevice(std::string producerId, - std::string namePrefix, - std::string title, - float xLow, - float xUp, - int numIoThreads); + ProducerDevice(std::string producerId, int numIoThreads, std::shared_ptr & producer); virtual ~ProducerDevice() = default; void executeRunLoop(); diff --git a/o2qa/Producer/Tests/ProducerTestSuite.cxx b/o2qa/Producer/Tests/ProducerTestSuite.cxx index 81b468afaa2a0..df657eb775fc0 100644 --- a/o2qa/Producer/Tests/ProducerTestSuite.cxx +++ b/o2qa/Producer/Tests/ProducerTestSuite.cxx @@ -8,6 +8,7 @@ #include #include "Producer/HistogramProducer.h" +#include "TreeProducer.h" #include "Producer/ProducerDevice.h" using namespace std; @@ -38,13 +39,33 @@ BOOST_AUTO_TEST_CASE(produceHistogramWithGivenParameters) BOOST_TEST(histogram->GetNbinsX() == expectedNumberOfBins, "Invalid number of bins"); } +BOOST_AUTO_TEST_CASE(produceTreeWithGivenParameters) +{ + string treeNamePrefix = "test_tree_prefix"; + string treeTitle = "test_tree_title"; + double numberOfBranches = 2; + double numberOfEntriesInEachBranch = 1000; + + unique_ptr treeProducer(new TreeProducer(treeNamePrefix, + treeTitle, + numberOfBranches, + numberOfEntriesInEachBranch)); + + unique_ptr tree(dynamic_cast(treeProducer->produceData())); + + BOOST_TEST(tree->GetTitle() == treeTitle, "Invalid title of tree"); + BOOST_TEST(tree->GetEntries() == numberOfBranches * numberOfEntriesInEachBranch, "Invalid number of entries in tree"); +} + BOOST_AUTO_TEST_CASE(establishChannelByProducerDevice) { - unique_ptr producer(new ProducerDevice("Producer", "HistName_", "HistTitle_", -10.0, 10.0, 1)); - BOOST_TEST(producer->fChannels.size() == 0, "Producer device has a channel connected at startup"); + std::shared_ptr producer = std::make_shared("HistName_", "HistTitle_", -10.0, 10.0); + unique_ptr producerDevice(new ProducerDevice("Producer", 1, producer)); + + BOOST_TEST(producerDevice->fChannels.size() == 0, "Producer device has a channel connected at startup"); - producer->establishChannel("req", "connect", "tcp://localhost:5005", "data"); - BOOST_TEST(producer->fChannels.size() == 1, "Producer device did not establish channel"); + producerDevice->establishChannel("req", "connect", "tcp://localhost:5005", "data"); + BOOST_TEST(producerDevice->fChannels.size() == 1, "Producer device did not establish channel"); } BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Producer/TreeProducer.cxx b/o2qa/Producer/TreeProducer.cxx index 7857c8c5716ab..9b9e9d1356e09 100644 --- a/o2qa/Producer/TreeProducer.cxx +++ b/o2qa/Producer/TreeProducer.cxx @@ -1,30 +1,47 @@ +#include #include #include +#include #include "TreeProducer.h" using namespace std; -TreeProducer::TreeProducer(string treeId) +TreeProducer::TreeProducer(string treeNamePrefix, + string treeTitle, + double numberOfBranches, + double numberOfEntriesInEachBranch) : mProducedTreeNumber(0) { - mTreeId = treeId; + mTreeNamePrefix = treeNamePrefix; + mTreeTitle = treeTitle; + mNumberOfBranches = numberOfBranches; + mNumberOfEntriesInEachBranch = numberOfEntriesInEachBranch; } TObject* TreeProducer::produceData() { - TTree* tree = new TTree(mTreeId.c_str(), "TestTree"); + ostringstream treeName; + treeName << mTreeNamePrefix << mProducedTreeNumber++; + TTree* tree = new TTree(treeName.str().c_str(), mTreeTitle.c_str()); + + for (int i = 0; i < mNumberOfBranches; ++i) { + createBranch(tree, i); + } + return tree; } -void TreeProducer::createBranch(TTree* tree) const +void TreeProducer::createBranch(TTree* tree, int brunchNumber) const { Float_t new_v; - TBranch *newBranch = tree->Branch("new_v", &new_v, "new_v/F"); + string branchNamePrefix = "default_branch_name_"; + ostringstream branchName; - for (int i = 0; i < 10; ++i) { - new_v = gRandom->Gaus(0, 1); - newBranch->Fill(); - } + branchName << branchNamePrefix << brunchNumber; + tree->Branch(branchName.str().c_str(), &new_v, "new_values"); - tree->AddBranchToCache(newBranch); + for (int i = 0; i < mNumberOfEntriesInEachBranch; ++i) { + new_v = gRandom->Gaus(0, 1); + tree->Fill(); + } } diff --git a/o2qa/Producer/TreeProducer.h b/o2qa/Producer/TreeProducer.h index fd0185fd9cb14..5fa82f9678344 100644 --- a/o2qa/Producer/TreeProducer.h +++ b/o2qa/Producer/TreeProducer.h @@ -8,10 +8,18 @@ class TreeProducer : public Producer { public: - TreeProducer(std::string treeId); + TreeProducer(std::string treeNamePrefix, + std::string treeTitle, + double numberOfBranches, + double numberOfEntriesInEachBranch); TObject* produceData() override; private: - std::string mTreeId; - void createBranch(TTree* tree) const; + std::string mTreeNamePrefix; + std::string mTreeTitle; + double mNumberOfBranches; + double mNumberOfEntriesInEachBranch; + int mProducedTreeNumber; + + void createBranch(TTree* tree, int brunchNumber) const; }; diff --git a/o2qa/Viewer/Tests/ViewerTestSuite.cxx b/o2qa/Viewer/Tests/ViewerTestSuite.cxx index a495d93c90ecd..32d6f0368a80a 100644 --- a/o2qa/Viewer/Tests/ViewerTestSuite.cxx +++ b/o2qa/Viewer/Tests/ViewerTestSuite.cxx @@ -8,7 +8,7 @@ BOOST_AUTO_TEST_SUITE(ViewerTestSuite) -BOOST_AUTO_TEST_CASE(createViewerDevice) +/*BOOST_AUTO_TEST_CASE(createViewerDevice) { const std::string viewerId = "Viewer_1"; const int numberOfThreads = 1; @@ -28,6 +28,12 @@ BOOST_AUTO_TEST_CASE(establishChannelByViewerDevice) viewer.establishChannel("req", "connect", "tcp://localhost:5005", "data"); BOOST_TEST(viewer.fChannels.size() == 1, "Viewer device did not establish channel"); +}*/ + +BOOST_AUTO_TEST_CASE(valgrind) +{ + TObject* object = new TObject(); + delete object; } BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Viewer/ViewerDevice.cxx b/o2qa/Viewer/ViewerDevice.cxx index 505bc04c47bcc..a78cb18729c2e 100755 --- a/o2qa/Viewer/ViewerDevice.cxx +++ b/o2qa/Viewer/ViewerDevice.cxx @@ -9,11 +9,12 @@ using namespace std; -ViewerDevice::ViewerDevice(std::string viewerId, int numIoThreads) +ViewerDevice::ViewerDevice(std::string viewerId, int numIoThreads, string drawingOptions) { this->SetTransport(new FairMQTransportFactoryZMQ); this->SetProperty(ViewerDevice::Id, viewerId); this->SetProperty(ViewerDevice::NumIoThreads, numIoThreads); + mDrawingOptions = drawingOptions; } void ViewerDevice::CustomCleanup(void *data, void *hint) @@ -99,7 +100,8 @@ unique_ptr ViewerDevice::receiveMessageFromMerger() void ViewerDevice::updateObjectCanvas(TObject* receivedObject) { - receivedObject->Draw(); + mObjectCanvas->Update(); + receivedObject->Draw(mDrawingOptions.c_str()); mObjectCanvas->Modified(); mObjectCanvas->Update(); gSystem->ProcessEvents(); diff --git a/o2qa/Viewer/ViewerDevice.h b/o2qa/Viewer/ViewerDevice.h index 3d15620b85f07..d0bf7b117a4e7 100755 --- a/o2qa/Viewer/ViewerDevice.h +++ b/o2qa/Viewer/ViewerDevice.h @@ -11,7 +11,7 @@ class ViewerDevice : public FairMQDevice { public: - ViewerDevice(std::string viewerId, int numIoThreads); + ViewerDevice(std::string viewerId, int numIoThreads, std::string drawingOptions); virtual ~ViewerDevice() = default; static void CustomCleanup(void *data, void* hint); @@ -24,6 +24,7 @@ class ViewerDevice : public FairMQDevice private: TCanvas* mObjectCanvas; std::unordered_set mNamesOfObjectsToDraw; + std::string mDrawingOptions; std::unique_ptr receiveMessageFromMerger(); void sendReplyToMerger(std::string* message); diff --git a/o2qa/runMerger.cxx b/o2qa/runMerger.cxx index e7dea55994439..090a651feefcd 100755 --- a/o2qa/runMerger.cxx +++ b/o2qa/runMerger.cxx @@ -21,5 +21,5 @@ int main(int argc, char** argv) mergerDevice.establishChannel("req", "connect", "tcp://localhost:5004", "data"); mergerDevice.executeRunLoop(); - LOG(INFO) << "END OF runHistogramMerger"; + LOG(INFO) << "END OF runMergerDevice"; } diff --git a/o2qa/runProducer.cxx b/o2qa/runProducer.cxx index 7a44dd9194310..6743ef1e6a26e 100755 --- a/o2qa/runProducer.cxx +++ b/o2qa/runProducer.cxx @@ -1,30 +1,46 @@ #include #include #include -#include #include "ProducerDevice.h" +#include "HistogramProducer.h" +#include "TreeProducer.h" int main(int argc, char** argv) { - std::vector producerDevices; - constexpr int requiredNumberOfProgramParameters{5}; + const int requiredNumberOfParametersForTrees = 6; + const int requiredNumberOfParametersForHistograms = 6; - if (argc != requiredNumberOfProgramParameters) { - LOG(ERROR) << "Wrong number of program parameters, required four parameters: xLow, xUp, name prefix and title"; + int numberOfIoThreads = 1; + std::string producerType = argv[1]; + + std::string namePrefix = argv[2]; + std::string title = argv[3]; + + std::shared_ptr producer; + + if (producerType == "-histogram") { + float xLow = atof(argv[4]); + float xUp = atof(argv[5]); + producer = std::make_shared(namePrefix, title, xLow, xUp); + } + else if (producerType == "-tree" && argc == requiredNumberOfParametersForTrees) { + float numberOfBranches = atof(argv[4]); + float numberOfEntriesInEachBranch = atof(argv[5]); + producer = std::make_shared(namePrefix, title, numberOfBranches, numberOfEntriesInEachBranch); + } + else { + LOG(ERROR) << "Unknown type of producer: " << producerType; return -1; } - ProducerDevice producerDevice("Producer", argv[3], argv[4], atof(argv[1]), atof(argv[2]), 1); - producerDevices.push_back(&producerDevice); + ProducerDevice producerDevice("Producer", numberOfIoThreads, producer); - LOG(INFO) << "PID: " << getpid(); - LOG(INFO) << "Producer id: " - << producerDevices[0]->GetProperty(ProducerDevice::Id, "default_id"); + LOG(INFO) << "PID: " << getpid() << "Producer id: " << producerDevice.GetProperty(ProducerDevice::Id, "default_id"); - producerDevices[0]->establishChannel("req", "connect", "tcp://localhost:5005", "data"); - producerDevices[0]->executeRunLoop(); + producerDevice.establishChannel("req", "connect", "tcp://localhost:5005", "data"); + producerDevice.executeRunLoop(); LOG(INFO) << "END OF runProducerDevice"; } diff --git a/o2qa/runViewerDevice.cxx b/o2qa/runViewerDevice.cxx index f654485fc11ac..d5a308cbbea77 100755 --- a/o2qa/runViewerDevice.cxx +++ b/o2qa/runViewerDevice.cxx @@ -8,7 +8,11 @@ using namespace std; int main(int argc, char** argv) { - ViewerDevice viewerDevice("Viewer_1", 1); + string drawingOptions = ""; + if (argc == 2) { + drawingOptions = argv[1]; + } + ViewerDevice viewerDevice("Viewer_1", 1, drawingOptions); TApplication *app = new TApplication("app1", &argc, argv); LOG(INFO) << "PID: " << getpid(); From 00dc9568c3737243af1394f33b27e2ba16f1c4e1 Mon Sep 17 00:00:00 2001 From: Patryk Date: Wed, 2 Mar 2016 22:44:46 +0100 Subject: [PATCH 023/135] Update README.md --- o2qa/README.md | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/o2qa/README.md b/o2qa/README.md index 4914b1f19343a..881c7806b6aa0 100644 --- a/o2qa/README.md +++ b/o2qa/README.md @@ -11,16 +11,24 @@ Quality assurance software prototype. It is a good practice to run config.sh script from AliceO2 build directory to set all others variables such as PATH etc. ### Overwiev -This is a quality assurance software prototype for AliceO2 software. It uses FairMQ framework to provide distributed environment. +This is a quality assurance software prototype for AliceO2 project. It uses FairMQ framework to provide distributed environment. Project consists of three modules: -## Producer - produces histograms and trees -Run example: +## Producer - produces histograms or trees +Run example for histogram: +```bash +runProducer -histogram exampleHistogramPrefixName exampleHistogramTitle -10 10 +``` +The last two parameters describes minimal and maximal values of x axis. + +Run example for tree: ```bash -runProducer -10 10 exampleHistogramPrefixName exampleHistogramTitle +runProducer -tree treeName_ treeTitle_ 4 1000 ``` -First two arguments provides information about x axis range. -## Merger - merges received objects by titles +The fourth parameter gives number of branches created in the tree. +The last parameter is the number of entries in each branch. + +## Merger - merges received objects by titles. It can merge both trees and histograms with the same title. Run example: ```bash runMergerDevice @@ -30,6 +38,8 @@ Run example: ```bash runViewerDevice ``` +Viewer can received additional parameter which describes drawing option given to Draw function of TObject class. + ### Compile software 1. Go to build folder of AliceO2 software 2. cmake ../ @@ -38,4 +48,4 @@ runViewerDevice ### Unit tests All modules are provided with unit tests written in BOOST test framework. Each module has it's tests in "Tests" directory. -To run all unit tests type ```ctest ``` \ No newline at end of file +To run all unit tests type ```ctest ``` From 2441b55e3b74efa1a2dd64d7256c4479b64bde45 Mon Sep 17 00:00:00 2001 From: Patryk Date: Wed, 2 Mar 2016 22:45:16 +0100 Subject: [PATCH 024/135] Update README.md --- o2qa/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/o2qa/README.md b/o2qa/README.md index 881c7806b6aa0..a064071d1df32 100644 --- a/o2qa/README.md +++ b/o2qa/README.md @@ -28,7 +28,8 @@ runProducer -tree treeName_ treeTitle_ 4 1000 The fourth parameter gives number of branches created in the tree. The last parameter is the number of entries in each branch. -## Merger - merges received objects by titles. It can merge both trees and histograms with the same title. +## Merger - merges received objects by titles. +It can merge both trees and histograms with the same title. Run example: ```bash runMergerDevice From 02a5345b527a8ccc21661f367074281915fa471e Mon Sep 17 00:00:00 2001 From: Patryk Date: Wed, 2 Mar 2016 22:45:47 +0100 Subject: [PATCH 025/135] Update README.md --- o2qa/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/o2qa/README.md b/o2qa/README.md index a064071d1df32..ba5dc27ba857a 100644 --- a/o2qa/README.md +++ b/o2qa/README.md @@ -30,6 +30,7 @@ The last parameter is the number of entries in each branch. ## Merger - merges received objects by titles. It can merge both trees and histograms with the same title. + Run example: ```bash runMergerDevice From 315094955c7789bd7f7d3b52b9ad3c9b2c0269a5 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Tue, 8 Mar 2016 23:21:57 +0100 Subject: [PATCH 026/135] Removed global freeTMessage function from Merger device --- o2qa/Merger/MergerDevice.cxx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/o2qa/Merger/MergerDevice.cxx b/o2qa/Merger/MergerDevice.cxx index ed5de70b50bc6..d0fb14d35d823 100755 --- a/o2qa/Merger/MergerDevice.cxx +++ b/o2qa/Merger/MergerDevice.cxx @@ -8,11 +8,6 @@ using namespace std; -void freeTMessage_sec(void* data, void* hint) -{ - delete static_cast(hint); -} - MergerDevice::MergerDevice(unique_ptr merger, std::string mergerId, int numIoThreads) : mMerger(move(merger)) { this->SetTransport(new FairMQTransportFactoryZMQ); @@ -129,7 +124,7 @@ void MergerDevice::sendMergedObjectToViewer(TMessage* viewerMessage, unique_ptr< { unique_ptr viewerRequest(fTransportFactory->CreateMessage(viewerMessage->Buffer(), viewerMessage->BufferSize(), - freeTMessage_sec, + CustomCleanup, viewerMessage)); LOG(INFO) << "Sending new data object to viewer"; From 39aacaa9c40d9d8f34b352d78084bf49678b5430 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Tue, 8 Mar 2016 23:40:21 +0100 Subject: [PATCH 027/135] Uncommented tests for viewer --- o2qa/Viewer/Tests/ViewerTestSuite.cxx | 8 +------- o2qa/Viewer/ViewerDevice.h | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/o2qa/Viewer/Tests/ViewerTestSuite.cxx b/o2qa/Viewer/Tests/ViewerTestSuite.cxx index 32d6f0368a80a..a495d93c90ecd 100644 --- a/o2qa/Viewer/Tests/ViewerTestSuite.cxx +++ b/o2qa/Viewer/Tests/ViewerTestSuite.cxx @@ -8,7 +8,7 @@ BOOST_AUTO_TEST_SUITE(ViewerTestSuite) -/*BOOST_AUTO_TEST_CASE(createViewerDevice) +BOOST_AUTO_TEST_CASE(createViewerDevice) { const std::string viewerId = "Viewer_1"; const int numberOfThreads = 1; @@ -28,12 +28,6 @@ BOOST_AUTO_TEST_CASE(establishChannelByViewerDevice) viewer.establishChannel("req", "connect", "tcp://localhost:5005", "data"); BOOST_TEST(viewer.fChannels.size() == 1, "Viewer device did not establish channel"); -}*/ - -BOOST_AUTO_TEST_CASE(valgrind) -{ - TObject* object = new TObject(); - delete object; } BOOST_AUTO_TEST_SUITE_END() diff --git a/o2qa/Viewer/ViewerDevice.h b/o2qa/Viewer/ViewerDevice.h index d0bf7b117a4e7..111f376030bcd 100755 --- a/o2qa/Viewer/ViewerDevice.h +++ b/o2qa/Viewer/ViewerDevice.h @@ -11,7 +11,7 @@ class ViewerDevice : public FairMQDevice { public: - ViewerDevice(std::string viewerId, int numIoThreads, std::string drawingOptions); + ViewerDevice(std::string viewerId, int numIoThreads, std::string drawingOptions = ""); virtual ~ViewerDevice() = default; static void CustomCleanup(void *data, void* hint); From 00fda55343b85c4258d1d269279ca9ccd35980e0 Mon Sep 17 00:00:00 2001 From: Patryk Date: Tue, 8 Mar 2016 23:26:55 +0100 Subject: [PATCH 028/135] Update README.md --- o2qa/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/o2qa/README.md b/o2qa/README.md index ba5dc27ba857a..075df3352a7af 100644 --- a/o2qa/README.md +++ b/o2qa/README.md @@ -35,12 +35,11 @@ Run example: ```bash runMergerDevice ``` -## Viewer - provides visualization of merged objects +## Viewer - provides visualization of merged objects. Its optional parameter describes drawing option given to Draw function of TObject class. Run example: ```bash runViewerDevice ``` -Viewer can received additional parameter which describes drawing option given to Draw function of TObject class. ### Compile software 1. Go to build folder of AliceO2 software From 97e6076213051eec11379547f459395aea03d629 Mon Sep 17 00:00:00 2001 From: Patryk Date: Tue, 8 Mar 2016 23:27:43 +0100 Subject: [PATCH 029/135] Update README.md --- o2qa/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/o2qa/README.md b/o2qa/README.md index 075df3352a7af..551fdd7256f47 100644 --- a/o2qa/README.md +++ b/o2qa/README.md @@ -35,10 +35,11 @@ Run example: ```bash runMergerDevice ``` -## Viewer - provides visualization of merged objects. Its optional parameter describes drawing option given to Draw function of TObject class. +## Viewer - provides visualization of merged objects. +Its optional parameter describes drawing option given to Draw function of TObject class. Run example: ```bash -runViewerDevice +runViewerDevice branchToDrawName ``` ### Compile software From 94d0b7b5890f404ff0d00ebb3552f651d7dcab42 Mon Sep 17 00:00:00 2001 From: Patryk Date: Tue, 8 Mar 2016 23:28:19 +0100 Subject: [PATCH 030/135] Update README.md --- o2qa/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/o2qa/README.md b/o2qa/README.md index 551fdd7256f47..dba2f71a25813 100644 --- a/o2qa/README.md +++ b/o2qa/README.md @@ -37,6 +37,7 @@ runMergerDevice ``` ## Viewer - provides visualization of merged objects. Its optional parameter describes drawing option given to Draw function of TObject class. + Run example: ```bash runViewerDevice branchToDrawName From 2ca2f05b864deae7ae897d219d25e4980e2f4a37 Mon Sep 17 00:00:00 2001 From: PatrykLesiak Date: Tue, 8 Mar 2016 23:43:36 +0100 Subject: [PATCH 031/135] Removed comment from CMakeList file --- o2qa/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index f7b1cefbe4dc6..5f7f063f51c67 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -7,7 +7,6 @@ Set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/o2qa/Merger ${CMAKE_SOURCE_DIR}/o2qa/Producer ${CMAKE_SOURCE_DIR}/o2qa/Viewer -# ${CMAKE_SOURCE_DIR}/o2qa/SystemController ) Set(SYSTEM_INCLUDE_DIRECTORIES From 347f2637a2a8815f318fd62d6cee247162d88222 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 9 Mar 2016 14:10:48 +0100 Subject: [PATCH 032/135] add missing libraries --- o2qa/CMakeLists.txt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index 5f7f063f51c67..a1a409733162b 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -37,6 +37,13 @@ set(SRCS set(DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT} boost_unit_test_framework + RIO + Core + MathMore + Net + Hist + Tree + Gpad ) set(LIBRARY_NAME o2qaLibrary) @@ -62,7 +69,7 @@ ForEach(_file RANGE 0 ${_length}) list(GET Exe_Source ${_file} _src) set(EXE_NAME ${_name}) set(SRCS ${_src}) - set(DEPENDENCIES dl Core Base Hist o2qaLibrary FairMQ) + set(DEPENDENCIES dl Core Base Hist o2qaLibrary FairMQ pthread fairmq_logger boost_system boost_log ) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) @@ -74,9 +81,9 @@ add_executable(testQaProducer Producer/Tests/ProducerTestSuite.cxx) add_executable(testQaMerger Merger/Tests/MergerTestSuite.cxx) add_executable(testQaViewer Viewer/Tests/ViewerTestSuite.cxx) -target_link_libraries(testQaProducer dl Core Base Hist o2qaLibrary FairMQ) -target_link_libraries(testQaMerger dl Core Base Hist o2qaLibrary FairMQ) -target_link_libraries(testQaViewer dl Core Base Hist o2qaLibrary FairMQ) +target_link_libraries(testQaProducer dl Core Base Hist o2qaLibrary FairMQ boost_system ) +target_link_libraries(testQaMerger dl Core Base Hist o2qaLibrary FairMQ boost_system ) +target_link_libraries(testQaViewer dl Core Base Hist o2qaLibrary FairMQ boost_system ) add_test(ProducerTest ${EXECUTABLE_PATH}/testQaProducer) add_test(MergerTest ${EXECUTABLE_PATH}/testQaMerger) From c2c748e4e924bbbbbee4496598a610315fded8d4 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 9 Mar 2016 14:21:53 +0100 Subject: [PATCH 033/135] remove hardcodded bin path --- o2qa/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index a1a409733162b..a8e046223f0f0 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -75,7 +75,7 @@ EndForEach(_file RANGE 0 ${_length}) ENABLE_TESTING() ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) -SET(EXECUTABLE_PATH ${CMAKE_SOURCE_DIR}/build_o2/bin) +SET(EXECUTABLE_PATH ${CMAKE_BINARY_DIR}/bin) add_executable(testQaProducer Producer/Tests/ProducerTestSuite.cxx) add_executable(testQaMerger Merger/Tests/MergerTestSuite.cxx) From f5a63b99bc1db8798841fb3ef2294c8df83cc9c9 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Fri, 11 Mar 2016 09:27:31 +0100 Subject: [PATCH 034/135] Revert "Removed global freeTMessage function from Merger device" This reverts commit 315094955c7789bd7f7d3b52b9ad3c9b2c0269a5. --- o2qa/Merger/MergerDevice.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/o2qa/Merger/MergerDevice.cxx b/o2qa/Merger/MergerDevice.cxx index d0fb14d35d823..ed5de70b50bc6 100755 --- a/o2qa/Merger/MergerDevice.cxx +++ b/o2qa/Merger/MergerDevice.cxx @@ -8,6 +8,11 @@ using namespace std; +void freeTMessage_sec(void* data, void* hint) +{ + delete static_cast(hint); +} + MergerDevice::MergerDevice(unique_ptr merger, std::string mergerId, int numIoThreads) : mMerger(move(merger)) { this->SetTransport(new FairMQTransportFactoryZMQ); @@ -124,7 +129,7 @@ void MergerDevice::sendMergedObjectToViewer(TMessage* viewerMessage, unique_ptr< { unique_ptr viewerRequest(fTransportFactory->CreateMessage(viewerMessage->Buffer(), viewerMessage->BufferSize(), - CustomCleanup, + freeTMessage_sec, viewerMessage)); LOG(INFO) << "Sending new data object to viewer"; From d2da5551fd8a01cf3bd88076c6d371ac486f6f25 Mon Sep 17 00:00:00 2001 From: Ivana Hrivnacova Date: Fri, 11 Mar 2016 16:45:52 +0100 Subject: [PATCH 035/135] Fixed linking ROOT --- o2qa/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index a8e046223f0f0..fc8a2ef123b0c 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -20,7 +20,7 @@ set(LINK_DIRECTORIES ${Boost_LIBRARY_DIRS} ${FAIRROOT_LIBRARY_DIR} ${AlFa_DIR}/lib - ${SIMPATH}/lib/root + ${ROOT_LIBRARY_DIR} ) Link_Directories(${LINK_DIRECTORIES}) From 960541cb99bb46f0793b5744648eff527a9b7ca8 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 15 Mar 2016 10:42:11 +0100 Subject: [PATCH 036/135] Require boost 1.59 The new QA package uses unit tests that are only available from BOOST 1.59 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b16f0f93e59c..d9df2c79b2ee2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,7 +146,7 @@ if(NOT BOOST_ROOT) Unset(Boost_INCLUDE_DIR CACHE) Unset(Boost_LIBRARY_DIRS CACHE) endif(NOT BOOST_ROOT) -find_package(Boost 1.41) +find_package(Boost 1.59 REQUIRED) If (Boost_FOUND) Set(Boost_Avail 1) Else (Boost_FOUND) From 0ad93448a398c59ebd99f2bd86dfdb82641ff2a3 Mon Sep 17 00:00:00 2001 From: laphecet Date: Thu, 17 Mar 2016 19:47:43 +0100 Subject: [PATCH 037/135] Add --interactive option --- devices/aliceHLTwrapper/aliceHLTWrapper.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/devices/aliceHLTwrapper/aliceHLTWrapper.cxx b/devices/aliceHLTwrapper/aliceHLTWrapper.cxx index 3a46fbd58ecb8..6caf171db7937 100644 --- a/devices/aliceHLTwrapper/aliceHLTWrapper.cxx +++ b/devices/aliceHLTwrapper/aliceHLTWrapper.cxx @@ -158,6 +158,7 @@ int main(int argc, char** argv) int skipProcessing = 0; bool bUseDDS = false; int timeout=-1; + bool bInteractive = false; static struct option programOptions[] = { { "input", required_argument, 0, 'i' }, // input socket @@ -169,6 +170,7 @@ int main(int argc, char** argv) { "dry-run", no_argument , 0, 'n' }, // skip the component processing { "dds", no_argument , 0, 'd' }, // run in dds mode { "timeout", required_argument, 0, 't' }, // polling period of the device in ms + { "interactive", no_argument , 0, 'x' }, // enter interactive mode (from terminal only) { 0, 0, 0, 0 } }; @@ -253,6 +255,9 @@ int main(int argc, char** argv) case 'n': skipProcessing = 1; break; + case 'x': + bInteractive = true; + break; case 'd': bUseDDS = true; break; @@ -450,6 +455,11 @@ int main(int argc, char** argv) device.ChangeState("RUN"); + if (bInteractive) { + device.InteractiveStateLoop(); + } + else { // identation not changed in the following to avoid fake diffs + auto refTime = boost::chrono::system_clock::now(); while (device.GetCurrentStateName() == "RUNNING") { @@ -470,7 +480,7 @@ int main(int argc, char** argv) } } } - + } device.ChangeState("RESET_TASK"); device.WaitForEndOfState("RESET_TASK"); From ff08a8020accc17b9804e6b922b37dbbfe657a4f Mon Sep 17 00:00:00 2001 From: Raffaele Grosso Date: Thu, 17 Mar 2016 15:01:50 +0100 Subject: [PATCH 038/135] Let ConditionsMQServer derive from ParameterMQServer Let ConditionsMQServer derive from FairRoot/parmq/ParameterMQServer and change name for histograms in fill_local_ocdb.C to avoid the warning related to a possible memory leak. --- o2cdb/CMakeLists.txt | 2 +- o2cdb/ConditionsMQServer.cxx | 183 +++++------------------------------ o2cdb/ConditionsMQServer.h | 32 +----- o2cdb/README | 4 +- o2cdb/fill_local_ocdb.C | 2 +- 5 files changed, 28 insertions(+), 195 deletions(-) diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt index 9be5a25ef427f..337d3a38f16b1 100644 --- a/o2cdb/CMakeLists.txt +++ b/o2cdb/CMakeLists.txt @@ -46,7 +46,7 @@ Set(NO_DICT_SRCS ) set(DEPENDENCIES - Base ParBase FairMQ boost_thread boost_program_options boost_system boost_log fairmq_logger pthread Core Tree XMLParser Hist + Base ParBase FairMQ ParMQ boost_program_options boost_system boost_log fairmq_logger pthread Core Tree XMLParser Hist ) set(LIBRARY_NAME AliceO2Cdb) diff --git a/o2cdb/ConditionsMQServer.cxx b/o2cdb/ConditionsMQServer.cxx index b2e336599231b..121e7976950e0 100644 --- a/o2cdb/ConditionsMQServer.cxx +++ b/o2cdb/ConditionsMQServer.cxx @@ -15,13 +15,8 @@ #include "TMessage.h" #include "Rtypes.h" -#include "FairRuntimeDb.h" -#include "FairParAsciiFileIo.h" -#include "FairParRootFileIo.h" - #include "ConditionsMQServer.h" #include "FairMQLogger.h" -#include "FairParGenericSet.h" #include "IdPath.h" #include "Condition.h" @@ -31,65 +26,25 @@ using std::endl; using std::cout; using std::string; -ConditionsMQServer::ConditionsMQServer() - : fRtdb(FairRuntimeDb::instance()), - fCdbManager(AliceO2::CDB::Manager::Instance()), - fFirstInputName("first_input.root"), - fFirstInputType("ROOT"), - fSecondInputName(""), - fSecondInputType("ROOT"), - fOutputName(""), - fOutputType("ROOT") -{ -} +ConditionsMQServer::ConditionsMQServer() : ParameterMQServer(), fCdbManager(AliceO2::CDB::Manager::Instance()) {} void ConditionsMQServer::InitTask() { - if (fRtdb != 0) { - // Set first input - if (fFirstInputType == "ROOT") { - FairParRootFileIo* par1R = new FairParRootFileIo(); - par1R->open(fFirstInputName.data(), "UPDATE"); - fRtdb->setFirstInput(par1R); - } - else if (fFirstInputType == "ASCII") { - FairParAsciiFileIo* par1A = new FairParAsciiFileIo(); - par1A->open(fFirstInputName.data(), "in"); - fRtdb->setFirstInput(par1A); - } - else if (fFirstInputType == "OCDB") { - fCdbManager->setDefaultStorage(fFirstInputName.c_str()); - } - - // Set second input - if (fSecondInputName != "") { - if (fSecondInputType == "ROOT") { - FairParRootFileIo* par2R = new FairParRootFileIo(); - par2R->open(fSecondInputName.data(), "UPDATE"); - fRtdb->setSecondInput(par2R); - } - else if (fSecondInputType == "ASCII") { - FairParAsciiFileIo* par2A = new FairParAsciiFileIo(); - par2A->open(fSecondInputName.data(), "in"); - fRtdb->setSecondInput(par2A); - } - else if (fSecondInputType == "OCDB") { - fCdbManager->setDefaultStorage(fSecondInputName.c_str()); - } - } + ParameterMQServer::InitTask(); + // Set first input + if (GetProperty(FirstInputType, "") == "OCDB") { + fCdbManager->setDefaultStorage(GetProperty(FirstInputName, "").c_str()); + } - // Set output - if (fOutputName != "") { - if (fOutputType == "ROOT") { - FairParRootFileIo* parOut = new FairParRootFileIo(kTRUE); - parOut->open(fOutputName.data()); - fRtdb->setOutput(parOut); - } - else if (fOutputType == "OCDB") { - fCdbManager->setDefaultStorage(fOutputName.c_str()); - } + // Set second input + if (GetProperty(SecondInputType, "") == "OCDB") { + fCdbManager->setDefaultStorage(GetProperty(SecondInputName, "").c_str()); + } - fRtdb->saveOutput(); + // Set output + if (GetProperty(OutputName, "") != "") { + if (GetProperty(OutputType, "") == "OCDB") { + fCdbManager->setDefaultStorage(GetProperty(OutputName, "").c_str()); } } } @@ -99,7 +54,6 @@ void free_tmessage(void* data, void* hint) { delete static_cast(hint) void ConditionsMQServer::Run() { std::string parameterName = ""; - FairParGenericSet* par = nullptr; Condition* aCondition = nullptr; while (CheckCurrentState(RUNNING)) { @@ -116,35 +70,14 @@ void ConditionsMQServer::Run() LOG(INFO) << "Run ID: " << runId; LOG(INFO) << "Retrieving parameter..."; - // Check if the parameter name has changed to avoid getting same container repeatedly - if (fFirstInputType != "OCDB") { - if (newParameterName != parameterName) { - parameterName = newParameterName; - par = static_cast(fRtdb->getContainer(parameterName.c_str())); - } - fRtdb->initContainers(runId); - } - else { - fCdbManager->setRun(runId); - aCondition = fCdbManager->getObject(IdPath(newParameterName), runId); - } - - LOG(INFO) << "Sending following parameter to the client:"; - if (par) { - par->print(); + fCdbManager->setRun(runId); + aCondition = fCdbManager->getObject(IdPath(newParameterName), runId); + if (aCondition) { + LOG(INFO) << "Sending following parameter to the client:"; + aCondition->printConditionMetaData(); TMessage* tmsg = new TMessage(kMESS_OBJECT); - tmsg->WriteObject(par); - - std::unique_ptr reply( - fTransportFactory->CreateMessage(tmsg->Buffer(), tmsg->BufferSize(), free_tmessage, tmsg)); - - fChannels.at("data").at(0).Send(reply); - } - else if (aCondition) { - aCondition->printConditionMetaData(); - TMessage* tmsg = new TMessage(kMESS_OBJECT); - tmsg->WriteObject(aCondition); + tmsg->WriteObject(aCondition); std::unique_ptr reply( fTransportFactory->CreateMessage(tmsg->Buffer(), tmsg->BufferSize(), free_tmessage, tmsg)); @@ -152,82 +85,10 @@ void ConditionsMQServer::Run() fChannels.at("data").at(0).Send(reply); } else { - LOG(ERROR) << "Parameter uninitialized!"; + LOG(ERROR) << "Could not get a condition for \"" << parameterName << "\" and run " << runId << "!"; } } } } -void ConditionsMQServer::SetProperty(const int key, const std::string& value) -{ - switch (key) { - case FirstInputName: - fFirstInputName = value; - break; - case FirstInputType: - fFirstInputType = value; - break; - case SecondInputName: - fSecondInputName = value; - break; - case SecondInputType: - fSecondInputType = value; - break; - case OutputName: - fOutputName = value; - break; - case OutputType: - fOutputType = value; - break; - default: - FairMQDevice::SetProperty(key, value); - break; - } -} - -string ConditionsMQServer::GetProperty(const int key, const string& default_ /*= ""*/) -{ - switch (key) { - case FirstInputName: - return fFirstInputName; - case FirstInputType: - return fFirstInputType; - case SecondInputName: - return fSecondInputName; - case SecondInputType: - return fSecondInputType; - case OutputName: - return fOutputName; - case OutputType: - return fOutputType; - default: - return FairMQDevice::GetProperty(key, default_); - } -} - -void ConditionsMQServer::SetProperty(const int key, const int value) -{ - switch (key) { - default: - FairMQDevice::SetProperty(key, value); - break; - } -} - -int ConditionsMQServer::GetProperty(const int key, const int default_ /*= 0*/) -{ - switch (key) { - default: - return FairMQDevice::GetProperty(key, default_); - } -} - -ConditionsMQServer::~ConditionsMQServer() -{ - if (fRtdb) { - delete fRtdb; - } - if (fCdbManager) { - delete fCdbManager; - } -} +ConditionsMQServer::~ConditionsMQServer() { delete fCdbManager; } diff --git a/o2cdb/ConditionsMQServer.h b/o2cdb/ConditionsMQServer.h index 83a3ab1846425..8f9309fd1b544 100644 --- a/o2cdb/ConditionsMQServer.h +++ b/o2cdb/ConditionsMQServer.h @@ -17,51 +17,23 @@ #include -#include "FairMQDevice.h" +#include "ParameterMQServer.h" #include "Manager.h" -class FairRuntimeDb; - namespace AliceO2 { namespace CDB { -class ConditionsMQServer : public FairMQDevice +class ConditionsMQServer : public ParameterMQServer { public: - enum - { - FirstInputName = FairMQDevice::Last, - FirstInputType, - SecondInputName, - SecondInputType, - OutputName, - OutputType, - Last - }; - ConditionsMQServer(); virtual ~ConditionsMQServer(); virtual void Run(); virtual void InitTask(); - static void CustomCleanup(void *data, void* hint); - - virtual void SetProperty(const int key, const std::string& value); - virtual std::string GetProperty(const int key, const std::string& default_ = ""); - virtual void SetProperty(const int key, const int value); - virtual int GetProperty(const int key, const int default_ = 0); - private: - FairRuntimeDb* fRtdb; Manager* fCdbManager; - - std::string fFirstInputName; - std::string fFirstInputType; - std::string fSecondInputName; - std::string fSecondInputType; - std::string fOutputName; - std::string fOutputType; }; } } diff --git a/o2cdb/README b/o2cdb/README index 295c5ec73ec90..a6a6948a01a18 100644 --- a/o2cdb/README +++ b/o2cdb/README @@ -3,8 +3,8 @@ To run the MQ server-client example with the MQ server replying with CDB objects 0) In each shell configure the AliceO2 environment: source /config.sh 1) To create a local O2CDB instance run the macro - root -l bin/config/fill_local_ocdb.C - under your build directory. This will create "DET/Calib/Histo" calibration objects in bin/config/O2CDB for a hundred of runs + root -l fill_local_ocdb.C + in ${CMAKE_BINARY_DIR}/bin/config/. This will create "DET/Calib/Histo" calibration objects for a hundred runs in the same directory/O2CDB/. 2a) In one shell run the server example: /bin/conditions-server --id parmq-server --config-json-file /bin/config/conditions-server.json diff --git a/o2cdb/fill_local_ocdb.C b/o2cdb/fill_local_ocdb.C index 156786d4b0b84..7d23b72a85dd7 100644 --- a/o2cdb/fill_local_ocdb.C +++ b/o2cdb/fill_local_ocdb.C @@ -7,7 +7,7 @@ void fill_local_ocdb() TH1F* h = 0; for (int run = 2000; run < 2100; run++) { cdb->setRun(run); - h = new TH1F("aHisto", "gauss", 100, -5, 5); + h = new TH1F(Form("histo for %d run", run), "gauss", 100, -5, 5); h->FillRandom("gaus", 1000); AliceO2::CDB::ConditionId* id = new AliceO2::CDB::ConditionId("DET/Calib/Histo", run, run, 1, 0); AliceO2::CDB::ConditionMetaData* md = new AliceO2::CDB::ConditionMetaData(); From 0fbcb6a7dc6a8b863bdcb335fbc1978f44f0bbc9 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 30 Mar 2016 09:30:45 +0200 Subject: [PATCH 039/135] Adapt to the changed API n FairMQ --- devices/flp2epn-distributed/FLPSender.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/flp2epn-distributed/FLPSender.cxx b/devices/flp2epn-distributed/FLPSender.cxx index fc2ce3135831a..3b1cb157416cb 100644 --- a/devices/flp2epn-distributed/FLPSender.cxx +++ b/devices/flp2epn-distributed/FLPSender.cxx @@ -98,7 +98,7 @@ void FLPSender::Run() // base buffer, to be copied from for every timeframe body (zero-copy) void* buffer = operator new[](fEventSize); - unique_ptr baseMsg(fTransportFactory->CreateMessage(buffer, fEventSize)); + unique_ptr baseMsg(fTransportFactory->CreateMessage(fEventSize)); uint16_t timeFrameId = 0; @@ -130,7 +130,7 @@ void FLPSender::Run() } } - unique_ptr headerPart(fTransportFactory->CreateMessage(h, sizeof(f2eHeader))); + unique_ptr headerPart(fTransportFactory->CreateMessage(sizeof(f2eHeader))); unique_ptr dataPart(fTransportFactory->CreateMessage()); // save the arrival time of the message. From 65a7af9fb8e53b312a0e6e97191bbbf851323dc8 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 30 Mar 2016 09:58:32 +0200 Subject: [PATCH 040/135] Remove the explicit boost libraries names from the CMakefile.txt and used the ones found by cmake --- CMakeLists.txt | 4 +++- devices/aliceHLTwrapper/CMakeLists.txt | 4 ++-- devices/flp2epn-distributed/CMakeLists.txt | 2 +- devices/flp2epn/CMakeLists.txt | 2 +- o2cdb/CMakeLists.txt | 2 +- o2qa/CMakeLists.txt | 10 +++++----- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d9df2c79b2ee2..c0f4191ef9397 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,7 +146,9 @@ if(NOT BOOST_ROOT) Unset(Boost_INCLUDE_DIR CACHE) Unset(Boost_LIBRARY_DIRS CACHE) endif(NOT BOOST_ROOT) -find_package(Boost 1.59 REQUIRED) + +find_package(Boost 1.59 COMPONENTS thread system timer program_options random filesystem chrono exception regex serialization log log_setup unit_test_framework) + If (Boost_FOUND) Set(Boost_Avail 1) Else (Boost_FOUND) diff --git a/devices/aliceHLTwrapper/CMakeLists.txt b/devices/aliceHLTwrapper/CMakeLists.txt index 9b9a297509b7d..35d7cc05c0a58 100644 --- a/devices/aliceHLTwrapper/CMakeLists.txt +++ b/devices/aliceHLTwrapper/CMakeLists.txt @@ -67,14 +67,14 @@ if(FAIRMQ_DEPENDENCIES) ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} ${FAIRMQ_DEPENDENCIES} - boost_chrono + ${Boost_CHRONO_LIBRARY} FairMQ ) else(FAIRMQ_DEPENDENCIES) set(DEPENDENCIES ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} - boost_chrono boost_date_time boost_thread boost_timer boost_system boost_program_options FairMQ + ${Boost_CHRONO_LIBRARY} ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} FairMQ ) endif(FAIRMQ_DEPENDENCIES) diff --git a/devices/flp2epn-distributed/CMakeLists.txt b/devices/flp2epn-distributed/CMakeLists.txt index e3a6b251d5e31..263bc5e2fb519 100644 --- a/devices/flp2epn-distributed/CMakeLists.txt +++ b/devices/flp2epn-distributed/CMakeLists.txt @@ -57,7 +57,7 @@ else(FAIRMQ_DEPENDENCIES) set(DEPENDENCIES ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} - boost_date_time boost_thread boost_timer boost_system boost_program_options boost_chrono FairMQ + ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_CHRONO_LIBRARY} FairMQ ) endif(FAIRMQ_DEPENDENCIES) diff --git a/devices/flp2epn/CMakeLists.txt b/devices/flp2epn/CMakeLists.txt index 95c654203df63..02260d3c01cad 100644 --- a/devices/flp2epn/CMakeLists.txt +++ b/devices/flp2epn/CMakeLists.txt @@ -43,7 +43,7 @@ else(FAIRMQ_DEPENDENCIES) set(DEPENDENCIES ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} - boost_date_time boost_thread boost_timer boost_system boost_program_options boost_chrono FairMQ + ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_CHRONO_LIBRARY} FairMQ ) endif(FAIRMQ_DEPENDENCIES) diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt index 337d3a38f16b1..89935f74aefe4 100644 --- a/o2cdb/CMakeLists.txt +++ b/o2cdb/CMakeLists.txt @@ -46,7 +46,7 @@ Set(NO_DICT_SRCS ) set(DEPENDENCIES - Base ParBase FairMQ ParMQ boost_program_options boost_system boost_log fairmq_logger pthread Core Tree XMLParser Hist + Base ParBase FairMQ ParMQ ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} fairmq_logger pthread Core Tree XMLParser Hist ) set(LIBRARY_NAME AliceO2Cdb) diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index fc8a2ef123b0c..83d014cb9225c 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -36,7 +36,7 @@ set(SRCS set(DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT} - boost_unit_test_framework + ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} RIO Core MathMore @@ -69,7 +69,7 @@ ForEach(_file RANGE 0 ${_length}) list(GET Exe_Source ${_file} _src) set(EXE_NAME ${_name}) set(SRCS ${_src}) - set(DEPENDENCIES dl Core Base Hist o2qaLibrary FairMQ pthread fairmq_logger boost_system boost_log ) + set(DEPENDENCIES dl Core Base Hist o2qaLibrary FairMQ pthread fairmq_logger ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} ) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) @@ -81,9 +81,9 @@ add_executable(testQaProducer Producer/Tests/ProducerTestSuite.cxx) add_executable(testQaMerger Merger/Tests/MergerTestSuite.cxx) add_executable(testQaViewer Viewer/Tests/ViewerTestSuite.cxx) -target_link_libraries(testQaProducer dl Core Base Hist o2qaLibrary FairMQ boost_system ) -target_link_libraries(testQaMerger dl Core Base Hist o2qaLibrary FairMQ boost_system ) -target_link_libraries(testQaViewer dl Core Base Hist o2qaLibrary FairMQ boost_system ) +target_link_libraries(testQaProducer dl Core Base Hist o2qaLibrary FairMQ ${Boost_SYSTEM_LIBRARY} ) +target_link_libraries(testQaMerger dl Core Base Hist o2qaLibrary FairMQ ${Boost_SYSTEM_LIBRARY} ) +target_link_libraries(testQaViewer dl Core Base Hist o2qaLibrary FairMQ ${Boost_SYSTEM_LIBRARY} ) add_test(ProducerTest ${EXECUTABLE_PATH}/testQaProducer) add_test(MergerTest ${EXECUTABLE_PATH}/testQaMerger) From f44efbde42504bd4956c1e486e92236f29ea1245 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 30 Mar 2016 10:21:01 +0200 Subject: [PATCH 041/135] Adapt to the changed API n FairMQ remove memory leak --- devices/flp2epn-distributed/FLPSender.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/flp2epn-distributed/FLPSender.cxx b/devices/flp2epn-distributed/FLPSender.cxx index 3b1cb157416cb..dfe6fd65fa28f 100644 --- a/devices/flp2epn-distributed/FLPSender.cxx +++ b/devices/flp2epn-distributed/FLPSender.cxx @@ -97,7 +97,6 @@ void FLPSender::Run() // boost::thread heartbeatReceiver(boost::bind(&FLPSender::receiveHeartbeats, this)); // base buffer, to be copied from for every timeframe body (zero-copy) - void* buffer = operator new[](fEventSize); unique_ptr baseMsg(fTransportFactory->CreateMessage(fEventSize)); uint16_t timeFrameId = 0; @@ -130,7 +129,8 @@ void FLPSender::Run() } } - unique_ptr headerPart(fTransportFactory->CreateMessage(sizeof(f2eHeader))); + // unique_ptr headerPart(fTransportFactory->CreateMessage(sizeof(f2eHeader))); + unique_ptr headerPart(fTransportFactory->CreateMessage(h, sizeof(f2eHeader), [](void* data, void* hint){ delete static_cast(hint); }, h)); unique_ptr dataPart(fTransportFactory->CreateMessage()); // save the arrival time of the message. From d6c4bcaeb4c3fb6004bae749ffc671060400e36f Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Thu, 31 Mar 2016 12:05:16 +0200 Subject: [PATCH 042/135] Remove gMC Use the static TVirualMC::GetMC() method instead of the global pointer --- Base/Detector.cxx | 8 +++--- Base/TrackReference.cxx | 24 ++++++++--------- gconfig/DecayConfig.C | 8 +++--- gconfig/SetCuts.C | 48 +++++++++++++++++----------------- gconfig/UserDecay.C | 2 +- itsmft/its/Detector.cxx | 44 +++++++++++++++---------------- itsmft/its/GeometryHandler.cxx | 10 +++---- tpc/Detector.cxx | 22 ++++++++-------- 8 files changed, 83 insertions(+), 83 deletions(-) diff --git a/Base/Detector.cxx b/Base/Detector.cxx index 743314dcb454b..26ec81e43b848 100644 --- a/Base/Detector.cxx +++ b/Base/Detector.cxx @@ -52,7 +52,7 @@ void Detector::Material(Int_t imat, const char* name, Float_t a, Float_t z, Floa uniquename.Append(name); // Check this!!! - gMC->Material(imat, uniquename.Data(), a, z, dens * mDensityFactor, radl, absl, buf, nwbuf); + TVirtualMC::GetMC()->Material(imat, uniquename.Data(), a, z, dens * mDensityFactor, radl, absl, buf, nwbuf); } void Detector::Mixture(Int_t imat, const char* name, Float_t* a, Float_t* z, Float_t dens, @@ -63,7 +63,7 @@ void Detector::Mixture(Int_t imat, const char* name, Float_t* a, Float_t* z, Flo uniquename.Append(name); // Check this!!! - gMC->Mixture(imat, uniquename.Data(), a, z, dens * mDensityFactor, nlmat, wmat); + TVirtualMC::GetMC()->Mixture(imat, uniquename.Data(), a, z, dens * mDensityFactor, nlmat, wmat); } void Detector::Medium(Int_t numed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, @@ -75,14 +75,14 @@ void Detector::Medium(Int_t numed, const char* name, Int_t nmat, Int_t isvol, In uniquename.Append(name); // Check this!!! - gMC->Medium(numed, uniquename.Data(), nmat, isvol, ifield, fieldm, tmaxfd, stemax, deemax, epsil, + TVirtualMC::GetMC()->Medium(numed, uniquename.Data(), nmat, isvol, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin, ubuf, nbuf); } void Detector::Matrix(Int_t& nmat, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2, Float_t theta3, Float_t phi3) const { - gMC->Matrix(nmat, theta1, phi1, theta2, phi2, theta3, phi3); + TVirtualMC::GetMC()->Matrix(nmat, theta1, phi1, theta2, phi2, theta3, phi3); } void Detector::defineWrapperVolume(Int_t id, Double_t rmin, Double_t rmax, Double_t zspan) diff --git a/Base/TrackReference.cxx b/Base/TrackReference.cxx index 56ce9317da3e0..7ff07edb3ca0a 100644 --- a/Base/TrackReference.cxx +++ b/Base/TrackReference.cxx @@ -63,8 +63,8 @@ TrackReference::TrackReference(Int_t label, Int_t id) , mMomentumX(0) , mMomentumY(0) , mMomentumZ(0) - , mTrackLength(gMC->TrackLength()) - , mTof(gMC->TrackTime()) + , mTrackLength(TVirtualMC::GetMC()->TrackLength()) + , mTof(TVirtualMC::GetMC()->TrackTime()) , mUserId(0) , mDetectorId(id) { @@ -80,13 +80,13 @@ TrackReference::TrackReference(Int_t label, Int_t id) Double_t vec[4]; - gMC->TrackPosition(vec[0], vec[1], vec[2]); + TVirtualMC::GetMC()->TrackPosition(vec[0], vec[1], vec[2]); mReferencePositionX = vec[0]; mReferencePositionY = vec[1]; mReferencePositionZ = vec[2]; - gMC->TrackMomentum(vec[0], vec[1], vec[2], vec[3]); + TVirtualMC::GetMC()->TrackMomentum(vec[0], vec[1], vec[2], vec[3]); mMomentumX = vec[0]; mMomentumY = vec[1]; @@ -99,14 +99,14 @@ TrackReference::TrackReference(Int_t label, Int_t id) ResetBit(BIT(i)); } - SetBit(BIT(14), gMC->IsNewTrack()); - SetBit(BIT(15), gMC->IsTrackAlive()); - SetBit(BIT(16), gMC->IsTrackDisappeared()); - SetBit(BIT(17), gMC->IsTrackEntering()); - SetBit(BIT(18), gMC->IsTrackExiting()); - SetBit(BIT(19), gMC->IsTrackInside()); - SetBit(BIT(20), gMC->IsTrackOut()); - SetBit(BIT(21), gMC->IsTrackStop()); + SetBit(BIT(14), TVirtualMC::GetMC()->IsNewTrack()); + SetBit(BIT(15), TVirtualMC::GetMC()->IsTrackAlive()); + SetBit(BIT(16), TVirtualMC::GetMC()->IsTrackDisappeared()); + SetBit(BIT(17), TVirtualMC::GetMC()->IsTrackEntering()); + SetBit(BIT(18), TVirtualMC::GetMC()->IsTrackExiting()); + SetBit(BIT(19), TVirtualMC::GetMC()->IsTrackInside()); + SetBit(BIT(20), TVirtualMC::GetMC()->IsTrackOut()); + SetBit(BIT(21), TVirtualMC::GetMC()->IsTrackStop()); // This particle has to be kept } diff --git a/gconfig/DecayConfig.C b/gconfig/DecayConfig.C index 00b562b8d4bc0..4761c0b1aebf9 100644 --- a/gconfig/DecayConfig.C +++ b/gconfig/DecayConfig.C @@ -39,11 +39,11 @@ void DecayConfig() { // i)particle decays not defined in concrete monte carlo, or //ii)particles for which the concrete monte carlo is told // to use the external decayer for its type via: - // gMC->SetUserDecay(pdgId); + // TVirtualMC::GetMC()->SetUserDecay(pdgId); // If this is invoked, the external decayer will be used for particles // of type pdgId even if the concrete monte carlo has a decay mode // already defined for that particle type. - gMC->SetExternalDecayer(decayer); + TVirtualMC::GetMC()->SetExternalDecayer(decayer); TPythia6& pythia6 = *(TPythia6::Instance()); @@ -57,7 +57,7 @@ void DecayConfig() { for ( Int_t ipartnf = 0; ipartnf < npartnf; ipartnf++ ) { Int_t ipdg = pdgnf[ipartnf]; - if (TString(gMC->GetName()) == "TGeant3") gMC->SetUserDecay(ipdg);// Force the decay to be done w/external decayer + if (TString(TVirtualMC::GetMC()->GetName()) == "TGeant3") TVirtualMC::GetMC()->SetUserDecay(ipdg);// Force the decay to be done w/external decayer pythia6.SetMDCY(pythia6.Pycomp(ipdg),1,1); // Activate decay in pythia } @@ -76,7 +76,7 @@ void DecayConfig() { Int_t pdghq[nparthq] = {421,3122,-3122}; for ( Int_t iparthq = 0; iparthq < nparthq; iparthq++ ) { Int_t ipdg = pdghq[iparthq]; - if (TString(gMC->GetName()) == "TGeant3") gMC->SetUserDecay(ipdg); // Force the decay to be done w/external decayer + if (TString(TVirtualMC::GetMC()->GetName()) == "TGeant3") TVirtualMC::GetMC()->SetUserDecay(ipdg); // Force the decay to be done w/external decayer pythia6.SetMDCY(pythia6.Pycomp(ipdg),1,1); // Activate decay in pythia } // Set pi0 to be stable in pythia6 so that Geant3 can handle decay. diff --git a/gconfig/SetCuts.C b/gconfig/SetCuts.C index 5835dfc49d521..fef4acd856e8c 100755 --- a/gconfig/SetCuts.C +++ b/gconfig/SetCuts.C @@ -25,20 +25,20 @@ void SetCuts() // or to message #5362 in the PandaRoot Forum >> Monte Carlo Engines >> g3Config.C thread) // // The default settings refer to a complete simulation which generates and follows also the secondary particles. + - - gMC->SetProcess("PAIR",1); /** pair production*/ - gMC->SetProcess("COMP",1); /**Compton scattering*/ - gMC->SetProcess("PHOT",1); /** photo electric effect */ - gMC->SetProcess("PFIS",0); /**photofission*/ - gMC->SetProcess("DRAY",0); /**delta-ray*/ - gMC->SetProcess("ANNI",1); /**annihilation*/ - gMC->SetProcess("BREM",1); /**bremsstrahlung*/ - gMC->SetProcess("HADR",1); /**hadronic process*/ - gMC->SetProcess("MUNU",1); /**muon nuclear interaction*/ - gMC->SetProcess("DCAY",1); /**decay*/ - gMC->SetProcess("LOSS",2); /**energy loss*/ - gMC->SetProcess("MULS",1); /**multiple scattering*/ + TVirtualMC::GetMC()->SetProcess("PAIR",1); /** pair production*/ + TVirtualMC::GetMC()->SetProcess("COMP",1); /**Compton scattering*/ + TVirtualMC::GetMC()->SetProcess("PHOT",1); /** photo electric effect */ + TVirtualMC::GetMC()->SetProcess("PFIS",0); /**photofission*/ + TVirtualMC::GetMC()->SetProcess("DRAY",0); /**delta-ray*/ + TVirtualMC::GetMC()->SetProcess("ANNI",1); /**annihilation*/ + TVirtualMC::GetMC()->SetProcess("BREM",1); /**bremsstrahlung*/ + TVirtualMC::GetMC()->SetProcess("HADR",1); /**hadronic process*/ + TVirtualMC::GetMC()->SetProcess("MUNU",1); /**muon nuclear interaction*/ + TVirtualMC::GetMC()->SetProcess("DCAY",1); /**decay*/ + TVirtualMC::GetMC()->SetProcess("LOSS",2); /**energy loss*/ + TVirtualMC::GetMC()->SetProcess("MULS",1); /**multiple scattering*/ @@ -48,17 +48,17 @@ void SetCuts() Double_t tofmax = 1.E10; // seconds cout << "SetCuts Macro: Setting cuts.." <SetCut("CUTGAM",cut1); /** gammas (GeV)*/ - gMC->SetCut("CUTELE",cut1); /** electrons (GeV)*/ - gMC->SetCut("CUTNEU",cut1); /** neutral hadrons (GeV)*/ - gMC->SetCut("CUTHAD",cut1); /** charged hadrons (GeV)*/ - gMC->SetCut("CUTMUO",cut1); /** muons (GeV)*/ - gMC->SetCut("BCUTE",cut1); /** electron bremsstrahlung (GeV)*/ - gMC->SetCut("BCUTM",cut1); /** muon and hadron bremsstrahlung(GeV)*/ - gMC->SetCut("DCUTE",cut1); /** delta-rays by electrons (GeV)*/ - gMC->SetCut("DCUTM",cut1); /** delta-rays by muons (GeV)*/ - gMC->SetCut("PPCUTM",cut1); /** direct pair production by muons (GeV)*/ - gMC->SetCut("TOFMAX",tofmax); /**time of flight cut in seconds*/ + TVirtualMC::GetMC()->SetCut("CUTGAM",cut1); /** gammas (GeV)*/ + TVirtualMC::GetMC()->SetCut("CUTELE",cut1); /** electrons (GeV)*/ + TVirtualMC::GetMC()->SetCut("CUTNEU",cut1); /** neutral hadrons (GeV)*/ + TVirtualMC::GetMC()->SetCut("CUTHAD",cut1); /** charged hadrons (GeV)*/ + TVirtualMC::GetMC()->SetCut("CUTMUO",cut1); /** muons (GeV)*/ + TVirtualMC::GetMC()->SetCut("BCUTE",cut1); /** electron bremsstrahlung (GeV)*/ + TVirtualMC::GetMC()->SetCut("BCUTM",cut1); /** muon and hadron bremsstrahlung(GeV)*/ + TVirtualMC::GetMC()->SetCut("DCUTE",cut1); /** delta-rays by electrons (GeV)*/ + TVirtualMC::GetMC()->SetCut("DCUTM",cut1); /** delta-rays by muons (GeV)*/ + TVirtualMC::GetMC()->SetCut("PPCUTM",cut1); /** direct pair production by muons (GeV)*/ + TVirtualMC::GetMC()->SetCut("TOFMAX",tofmax); /**time of flight cut in seconds*/ } diff --git a/gconfig/UserDecay.C b/gconfig/UserDecay.C index 7e75ad38ba141..2e5818afed538 100644 --- a/gconfig/UserDecay.C +++ b/gconfig/UserDecay.C @@ -35,7 +35,7 @@ void UserDecayConfig() { mode[1][1] =AlphaPDG ; */ - gMC->SetDecayMode(He5PDG,bratio,mode); + TVirtualMC::GetMC()->SetDecayMode(He5PDG,bratio,mode); diff --git a/itsmft/its/Detector.cxx b/itsmft/its/Detector.cxx index 57d8f7fa6caca..f034604495e89 100644 --- a/itsmft/its/Detector.cxx +++ b/itsmft/its/Detector.cxx @@ -365,7 +365,7 @@ void Detector::Initialize() } for (int i = 0; i < mNumberLayers; i++) { - mLayerID[i] = gMC ? gMC->VolId(mLayerName[i]) : 0; + mLayerID[i] = gMC ? TVirtualMC::GetMC()->VolId(mLayerName[i]) : 0; } mGeometryTGeo = new UpgradeGeometryTGeo(kTRUE); @@ -403,7 +403,7 @@ void Detector::setParameterContainers() Bool_t Detector::ProcessHits(FairVolume* vol) { // This method is called from the MC stepping - if (!(gMC->TrackCharge())) { + if (!(TVirtualMC::GetMC()->TrackCharge())) { return kFALSE; } @@ -418,40 +418,40 @@ Bool_t Detector::ProcessHits(FairVolume* vol) } // FIXME: Is it needed to keep a track reference when the outer ITS volume is encountered? - // if(gMC->IsTrackExiting()) { + // if(TVirtualMC::GetMC()->IsTrackExiting()) { // AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kITS); // } // if Outer ITS mother Volume // Retrieve the indices with the volume path int stave(0), halfstave(0), chipinmodule(0), module; - gMC->CurrentVolOffID(1, chipinmodule); - gMC->CurrentVolOffID(2, module); - gMC->CurrentVolOffID(3, halfstave); - gMC->CurrentVolOffID(4, stave); + TVirtualMC::GetMC()->CurrentVolOffID(1, chipinmodule); + TVirtualMC::GetMC()->CurrentVolOffID(2, module); + TVirtualMC::GetMC()->CurrentVolOffID(3, halfstave); + TVirtualMC::GetMC()->CurrentVolOffID(4, stave); int chipindex = mGeometryTGeo->getChipIndex(lay, stave, halfstave, module, chipinmodule); // Record information on the points - mEnergyLoss = gMC->Edep(); - mTime = gMC->TrackTime(); - mTrackNumberID = gMC->GetStack()->GetCurrentTrackNumber(); + mEnergyLoss = TVirtualMC::GetMC()->Edep(); + mTime = TVirtualMC::GetMC()->TrackTime(); + mTrackNumberID = TVirtualMC::GetMC()->GetStack()->GetCurrentTrackNumber(); mVolumeID = vol->getMCid(); // FIXME: Set a temporary value to mShunt for now, determine its use at a later stage Int_t trackStatus = 0; - if (gMC->IsTrackEntering()) trackStatus |= 1 << Point::kTrackEntering; - if (gMC->IsTrackInside()) trackStatus |= 1 << Point::kTrackInside; - if (gMC->IsTrackExiting()) trackStatus |= 1 << Point::kTrackExiting; - if (gMC->IsTrackOut()) trackStatus |= 1 << Point::kTrackOut; - if (gMC->IsTrackStop()) trackStatus |= 1 << Point::kTrackStopped; - if (gMC->IsTrackAlive()) trackStatus |= 1 << Point::kTrackAlive; + if (TVirtualMC::GetMC()->IsTrackEntering()) trackStatus |= 1 << Point::kTrackEntering; + if (TVirtualMC::GetMC()->IsTrackInside()) trackStatus |= 1 << Point::kTrackInside; + if (TVirtualMC::GetMC()->IsTrackExiting()) trackStatus |= 1 << Point::kTrackExiting; + if (TVirtualMC::GetMC()->IsTrackOut()) trackStatus |= 1 << Point::kTrackOut; + if (TVirtualMC::GetMC()->IsTrackStop()) trackStatus |= 1 << Point::kTrackStopped; + if (TVirtualMC::GetMC()->IsTrackAlive()) trackStatus |= 1 << Point::kTrackAlive; mStatus = trackStatus; - gMC->TrackPosition(mPosition); - gMC->TrackMomentum(mMomentum); + TVirtualMC::GetMC()->TrackPosition(mPosition); + TVirtualMC::GetMC()->TrackMomentum(mMomentum); - // mLength = gMC->TrackLength(); + // mLength = TVirtualMC::GetMC()->TrackLength(); - if (gMC->IsTrackEntering()) { + if (TVirtualMC::GetMC()->IsTrackEntering()) { mEntrancePosition = mPosition; mEntranceTime = mTime; mStatus0 = mStatus; @@ -466,7 +466,7 @@ Bool_t Detector::ProcessHits(FairVolume* vol) mEnergyLoss, mShunt, mStatus, mStatus0); // Increment number of Detector det points in TParticle - AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)gMC->GetStack(); + AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)TVirtualMC::GetMC()->GetStack(); stack->AddPoint(kAliIts); // Save old position for the next hit. @@ -1061,7 +1061,7 @@ TParticle* Detector::GetParticle() const // Return: // The TParticle of the track that created this hit. - return ((AliceO2::Data::Stack*)gMC->GetStack())->GetParticle(GetTrack()); + return ((AliceO2::Data::Stack*)TVirtualMC::GetMC()->GetStack())->GetParticle(GetTrack()); } void Detector::Print(std::ostream* os) const diff --git a/itsmft/its/GeometryHandler.cxx b/itsmft/its/GeometryHandler.cxx index 4576479452276..19d35a740ad11 100644 --- a/itsmft/its/GeometryHandler.cxx +++ b/itsmft/its/GeometryHandler.cxx @@ -91,7 +91,7 @@ Int_t GeometryHandler::volumeIdGeo(const char* name) const Int_t GeometryHandler::volumeId(const Text_t* name) const { if (mIsSimulation) { - return gMC->VolId(name); + return TVirtualMC::GetMC()->VolId(name); } else { char sname[20]; Int_t length = strlen(name) - 1; @@ -109,7 +109,7 @@ Int_t GeometryHandler::volumeId(const Text_t* name) const Int_t GeometryHandler::currentVolumeId(Int_t& copy) const { if (mIsSimulation) { - return gMC->CurrentVolID(copy); + return TVirtualMC::GetMC()->CurrentVolID(copy); } else { if (gGeoManager->IsOutside()) { return 0; @@ -125,7 +125,7 @@ Int_t GeometryHandler::currentVolumeId(Int_t& copy) const Int_t GeometryHandler::currentVolumeOffId(Int_t off, Int_t& copy) const { if (mIsSimulation) { - return gMC->CurrentVolOffID(off, copy); + return TVirtualMC::GetMC()->CurrentVolOffID(off, copy); } else { if (off < 0 || off > gGeoManager->GetLevel()) { return 0; @@ -149,7 +149,7 @@ Int_t GeometryHandler::currentVolumeOffId(Int_t off, Int_t& copy) const const char* GeometryHandler::currentVolumeName() const { if (mIsSimulation) { - return gMC->CurrentVolName(); + return TVirtualMC::GetMC()->CurrentVolName(); } else { if (gGeoManager->IsOutside()) { return gGeoManager->GetTopVolume()->GetName(); @@ -162,7 +162,7 @@ const char* GeometryHandler::currentVolumeName() const const char* GeometryHandler::currentVolumeOffName(Int_t off) const { if (mIsSimulation) { - return gMC->CurrentVolOffName(off); + return TVirtualMC::GetMC()->CurrentVolOffName(off); } else { if (off < 0 || off > gGeoManager->GetLevel()) { return 0; diff --git a/tpc/Detector.cxx b/tpc/Detector.cxx index 5aff6805363e1..b2474a8625f88 100644 --- a/tpc/Detector.cxx +++ b/tpc/Detector.cxx @@ -59,22 +59,22 @@ Bool_t Detector::ProcessHits(FairVolume* vol) /** This method is called from the MC stepping */ //Set parameters at entrance of volume. Reset ELoss. - if ( gMC->IsTrackEntering() ) { + if ( TVirtualMC::GetMC()->IsTrackEntering() ) { mEnergyLoss = 0.; - mTime = gMC->TrackTime() * 1.0e09; - mLength = gMC->TrackLength(); - gMC->TrackPosition(mPosition); - gMC->TrackMomentum(mMomentum); + mTime = TVirtualMC::GetMC()->TrackTime() * 1.0e09; + mLength = TVirtualMC::GetMC()->TrackLength(); + TVirtualMC::GetMC()->TrackPosition(mPosition); + TVirtualMC::GetMC()->TrackMomentum(mMomentum); } // Sum energy loss for all steps in the active volume - mEnergyLoss += gMC->Edep(); + mEnergyLoss += TVirtualMC::GetMC()->Edep(); // Create DetectorPoint at exit of active volume - if ( gMC->IsTrackExiting() || - gMC->IsTrackStop() || - gMC->IsTrackDisappeared() ) { - mTrackNumberID = gMC->GetStack()->GetCurrentTrackNumber(); + if ( TVirtualMC::GetMC()->IsTrackExiting() || + TVirtualMC::GetMC()->IsTrackStop() || + TVirtualMC::GetMC()->IsTrackDisappeared() ) { + mTrackNumberID = TVirtualMC::GetMC()->GetStack()->GetCurrentTrackNumber(); mVolumeID = vol->getMCid(); if (mEnergyLoss == 0. ) { return kFALSE; } AddHit(mTrackNumberID, mVolumeID, TVector3(mPosition.X(), mPosition.Y(), mPosition.Z()), @@ -82,7 +82,7 @@ Bool_t Detector::ProcessHits(FairVolume* vol) mEnergyLoss); // Increment number of Detector det points in TParticle - AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)gMC->GetStack(); + AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)TVirtualMC::GetMC()->GetStack(); stack->AddPoint(kAliTpc); } From 7fcec304cafdfdeeaa2b9dc0ef6980f6a9af6c17 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 25 Nov 2015 11:21:38 +0100 Subject: [PATCH 043/135] Removing obsolete variable AlFa_DIR --- devices/aliceHLTwrapper/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/devices/aliceHLTwrapper/CMakeLists.txt b/devices/aliceHLTwrapper/CMakeLists.txt index 35d7cc05c0a58..f01eff6b2fbf7 100644 --- a/devices/aliceHLTwrapper/CMakeLists.txt +++ b/devices/aliceHLTwrapper/CMakeLists.txt @@ -29,7 +29,6 @@ include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES ${FAIRROOT_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} - ${AlFa_DIR}/lib ) if(DDS_FOUND) From 57a936751a7bbcc650aa306826063bacee74da07 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 27 Jan 2016 16:12:37 +0100 Subject: [PATCH 044/135] Removing unused include directories from cmake setup --- devices/aliceHLTwrapper/CMakeLists.txt | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/devices/aliceHLTwrapper/CMakeLists.txt b/devices/aliceHLTwrapper/CMakeLists.txt index f01eff6b2fbf7..c041a7f163047 100644 --- a/devices/aliceHLTwrapper/CMakeLists.txt +++ b/devices/aliceHLTwrapper/CMakeLists.txt @@ -1,13 +1,14 @@ +# @author Matthias Richter +# @brief cmake setup for module devices/aliceHLTwrapper + set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/devices/aliceHLTwrapper ) set(SYSTEM_INCLUDE_DIRECTORIES ${BASE_INCLUDE_DIRECTORIES} - ${ZMQ_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${FAIRROOT_INCLUDE_DIR} - ${AlFa_DIR}/include ) if(DDS_FOUND) @@ -21,10 +22,6 @@ endif() include_directories(${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) -# set(CXXOPT "-O0 -g -ggdb") -# set(CXXFLAGS "-O0 -g -ggdb") - -#configure_file( ${CMAKE_SOURCE_DIR}/example/flp2epn/run/startSomething.sh.in ${CMAKE_BINARY_DIR}/bin/startSomething.sh ) set(LINK_DIRECTORIES ${FAIRROOT_LIBRARY_DIR} @@ -58,7 +55,6 @@ endif() set(DEPENDENCIES ${DEPENDENCIES} - # ${ZMQ_LIBRARY_SHARED} ) if(FAIRMQ_DEPENDENCIES) @@ -105,4 +101,3 @@ ForEach(_file RANGE 0 ${_length}) set(DEPENDENCIES ALICEHLT dl) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) - From 10f2b102885e8974333cedafdd4df3facfbab037 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Thu, 28 Jan 2016 11:35:10 +0100 Subject: [PATCH 045/135] adding a first draft of the in-memory primitive structures --- format/memory-format.h | 69 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 format/memory-format.h diff --git a/format/memory-format.h b/format/memory-format.h new file mode 100644 index 0000000000000..410f118263074 --- /dev/null +++ b/format/memory-format.h @@ -0,0 +1,69 @@ +#ifndef MEMORY_FORMAT_H +#define MEMORY_FORMAT_H +//**************************************************************************** +//* This file is free software: you can redistribute it and/or modify * +//* it under the terms of the GNU General Public License as published by * +//* the Free Software Foundation, either version 3 of the License, or * +//* (at your option) any later version. * +//* * +//* Primary Authors: Matthias Richter * +//* * +//* The authors make no claims about the suitability of this software for * +//* any purpose. It is provided "as is" without express or implied warranty. * +//**************************************************************************** + +// @file memory_format.h +// @author Matthias Richter +// @since 2016-01-28 +// @brief Primitives for the ALICE O2 in-memory format + +// use the standard definitions of int variables +#include + +namespace AliceO2 { +namespace Format { + /** + * Basic struct for the data block meta data + * + * In total 24 byte are used per data block to descibe meta data + */ + struct BlockMetaData_t { + /** Size and version of the struct */ + int16_t mStructSize; + /** Subsystem or detector */ + char mDataOrigin[3+1]; // find if there is a consistent 3-letter naming scheme in ALICE, enforce 0 at the end + /** Main specification, e.g. raw, clusters, tracks */ + char mDataDescriptor[8]; + /** A system or detector specific sub specification */ + int32_t mSubSpec; + }; + + /** + * Block data header to be commonly used for all in-memory data blocks + * + * To be decided: use unions to fit different members for transfer and in-memory? + * + * The struct size could be handled by the transport layer in the multi-header + * approach, having the size as member keeps the possibility of sub headers + */ + struct BlockData_t + { + /** 4 bytes of a magic string */ + int32_t mMagicString; + /** size and version of the struct */ + int16_t mStructSize; + /** flags, one of the bits to indicate that a sub header is following */ + int16_t mFlags; + /** size of the data block in memory */ + int64_t mPayloadSize; // keep it for storage on disk + /** header serialization method for transfer */ + int64_t mHeaderSerializationMethod; // use string + /** payload serialization method for transfer */ + int64_t mPayloadSerializationMethod; // use string + /** data block meta data: type, origin, specification */ + BlockMetaData_t mMetaData; + }; + +}; // namespace Format +}; // namespace AliceO2 +#endif From 65f92566cc5053629763c70453dd9fda5083561d Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Mon, 8 Feb 2016 12:33:13 +0100 Subject: [PATCH 046/135] Updating the primitive data headers The update concludes the discussion in the CWG4 meeting --- format/header_versions.h | 5 ++ format/memory-format.h | 103 +++++++++++++++++++++++++++------------ 2 files changed, 77 insertions(+), 31 deletions(-) create mode 100644 format/header_versions.h diff --git a/format/header_versions.h b/format/header_versions.h new file mode 100644 index 0000000000000..2c902f01af21c --- /dev/null +++ b/format/header_versions.h @@ -0,0 +1,5 @@ +#ifndef HEADER_VERSIONS_H +#define HEADER_VERSIONS_H +#endif + +//TODO: to be filled diff --git a/format/memory-format.h b/format/memory-format.h index 410f118263074..8a54706ffe847 100644 --- a/format/memory-format.h +++ b/format/memory-format.h @@ -19,49 +19,90 @@ // use the standard definitions of int variables #include +#include "header_versions.h" +/** +The defined headers are a tradeoff to provide the necessary information in a lightweight way and to allow for evolution and compatibility. + +General header format +- Starts with basic header information, never serialized, with unique version number +- Strict policy enforced: no changes to members (e.g. width) or sequence of members +- New members can be appended +- All basic header structs are defined with fixed endianess and padding +- Header-stack concept: optional headers can follow the basic header +*/ namespace AliceO2 { namespace Format { /** - * Basic struct for the data block meta data + * Data header to be commonly used for all in-memory data blocks + * + * Unique header version; struct size included for consistency check + * and to facilitate later implementation of conversion handlers. + * + * A magic string makes identification of header simpler, e.g. after + * a data corruption; great help for low level debugging + * + * PayloadSize is a redundant information, to be used for integrity + * check and mandatory for disk dumped data * - * In total 24 byte are used per data block to descibe meta data + * Payload serialization method defined in the header, allows to build + * common functionality. Framework can choose the right tool for + * de-serialization */ - struct BlockMetaData_t { - /** Size and version of the struct */ - int16_t mStructSize; + struct DataHeader_t { + /** 4 bytes of a magic string */ + int32_t mMagicString; + /** size of the struct */ + int32_t mStructSize; + /** header version, bookkeeping in the software */ + int32_t mHeaderVersion; + /** Flags field, valid bits and their meaning defined by the header version */ + int32_t mFlags; + /** size of payload in memory */ + int64_t mPayloadSize; + /** payload serialization method for transfer */ + char mPayloadSerializationMethod[7+1]; + /** Payload meta data: Subsystem or detector */ + char mDataOrigin[3+1]; + /** Payload meta data: Data description, e.g. raw, clusters, tracks */ + char mDataDescriptor[15+1]; + /** Payload meta data: A system or detector specific sub specification */ + int64_t mSubSpec; + }; + + /** + * Helper struct for the payload meta data + * + * This struct is an addition to DataHeader_t to allow implementation + * of operators. All meta data members are directly included in DataHeader_t + * for easier access and consistency. + */ + struct PayloadMetaData_t { /** Subsystem or detector */ - char mDataOrigin[3+1]; // find if there is a consistent 3-letter naming scheme in ALICE, enforce 0 at the end - /** Main specification, e.g. raw, clusters, tracks */ - char mDataDescriptor[8]; + char mDataOrigin[3+1]; + /** Data description, e.g. raw, clusters, tracks */ + char mDataDescriptor[15+1]; /** A system or detector specific sub specification */ - int32_t mSubSpec; + int64_t mSubSpec; }; /** - * Block data header to be commonly used for all in-memory data blocks - * - * To be decided: use unions to fit different members for transfer and in-memory? - * - * The struct size could be handled by the transport layer in the multi-header - * approach, having the size as member keeps the possibility of sub headers + * Header-stack:: optional headers can follow the basic header + * A next header is indicated in the flag member of preceeding header + * Optional headers consist of a fixed NextHeaderDescription and a variable + * NextHeaderContent */ - struct BlockData_t - { - /** 4 bytes of a magic string */ - int32_t mMagicString; - /** size and version of the struct */ - int16_t mStructSize; - /** flags, one of the bits to indicate that a sub header is following */ - int16_t mFlags; - /** size of the data block in memory */ - int64_t mPayloadSize; // keep it for storage on disk - /** header serialization method for transfer */ - int64_t mHeaderSerializationMethod; // use string - /** payload serialization method for transfer */ - int64_t mPayloadSerializationMethod; // use string - /** data block meta data: type, origin, specification */ - BlockMetaData_t mMetaData; + struct NextHeaderDescription_t { + /** size of this next header description */ + int32_t mStructSize; + /** size of the next header payload */ + int32_t mNextHeaderContentSize; + /** Common flags for all next-headers, includes next-header flag */ + int32_t mFlags; + /** Descriptor */ + char mHeaderDescriptor[15+1]; + /** serialization method */ + char mSerializationMethod[7+1]; }; }; // namespace Format From 7301a7de0f675f56c6e22c6b89d7eb0cdc886e31 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Mon, 8 Feb 2016 23:27:09 +0100 Subject: [PATCH 047/135] first draft of messageList class and iterator API --- format/message_list.h | 112 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 format/message_list.h diff --git a/format/message_list.h b/format/message_list.h new file mode 100644 index 0000000000000..4157a88fcccaf --- /dev/null +++ b/format/message_list.h @@ -0,0 +1,112 @@ +//-*- Mode: C++ -*- + +#ifndef MESSAGELIST_H +#define MESSAGELIST_H +//**************************************************************************** +//* This file is free software: you can redistribute it and/or modify * +//* it under the terms of the GNU General Public License as published by * +//* the Free Software Foundation, either version 3 of the License, or * +//* (at your option) any later version. * +//* * +//* Primary Authors: Matthias Richter * +//* * +//* The authors make no claims about the suitability of this software for * +//* any purpose. It is provided "as is" without express or implied warranty. * +//**************************************************************************** + +// @file messageList.h +// @author Matthias Richter +// @since 2016-02-11 +// @brief Container class for messages in the O2 framework + +#include "memory-format.h" + +namespace AliceO2 { +namespace Format { + +// Ideally it does not matter for the implementation of the container class +// whether the type is the message container or the pointer to the payload +template +class messageList { + public: + messageList(); + messageList(const messageList& other); + messageList& operator=(const messageList& other); + ~messageList(); + + /** add data block to list */ + int add(T* headerMsg, T* payloadMsg); + /** number of data blocks in the list */ + size_t size() {return mDataArray.size();} + /** clear the list */ + void clear() {mDataArray.clear();} + /** check if list is empty */ + bool empty() {mDataArray.empty();} + + /** + * messagePair describes the two sequential messages for header and payload + * of a data block + * + * TODO: decide whether to use pointer to message or pointer to payload in the + * message. Whith the template approach and appropriate conversion operators in the + * message class possibly both ways can be served at the same time + */ + struct messagePair { + DataHeader_t header; + T* payload; + }; + typedef vector::iterator pairIt_t + + class iterator { + public: + typedef iterator self_type; + typedef T value_type; + + iterator(pairIt_t& dataIterator) : mDataIterator(dataIterator) { } + // prefix increment + self_type operator++() { mDataIterator++; return *this; } + // postfix increment + self_type operator++(int unused) {self_type copy(*this); ++*this; return copy;} + // TODO: given the fact that the data which is hold is a pointer, it always needs to be + // valid for dereference + T& operator*() { return *this.operator->();} + T* operator->() { return (*mDataIterator).payload;} + + bool operator==(const self_type& other) { return mDataIterator == other.mDataIterator; } + bool operator!=(const self_type& other) { return mDataIterator != other.mDataIterator; } + + bool operator==(const PayloadMetaData_t& md) { return (*mDataIterator).header == md } + bool operator!=(const PayloadMetaData_t& md) { return (*mDataIterator).header != md } + + /** conversion operator to PayloadMetaData_t struct */ + operator PayloadMetaData_t() {return (*mDataIterator).header;} + /** return size of payload */ + size_t size() {return (*mDataIterator).header.mPayloadSize;} + + private: + pairIt_t mDataIterator; + }; + + /** to be defined + class const_iterator + { + }; + */ + + private: + vector mDataArray; +}; + +template +int messageList::add(T& headerMsg, T& payloadMsg) +{ + // following conversion relies on the conversion operator for complex types + uint* headerData = static_cast(headerMsg); + + DataHeader_t* srcHeader = reinterpret_cast(headerData); + DataHeader_t tgtHeader(*srcHeader); +} + +}; // namespace Format +}; // namespace AliceO2 +#endif From 4cdf46e319fc9c50d9ccccf5e6e775a675253423 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 30 Mar 2016 14:49:09 +0200 Subject: [PATCH 048/135] Extending message list class to allow two template parameters Introducing template parameters for the header message and the payload message. Correcting some typos. --- format/message_list.cxx | 10 +++++ format/message_list.h | 99 ++++++++++++++++++++++++++++------------- 2 files changed, 77 insertions(+), 32 deletions(-) create mode 100644 format/message_list.cxx diff --git a/format/message_list.cxx b/format/message_list.cxx new file mode 100644 index 0000000000000..ffbabc3f93fc6 --- /dev/null +++ b/format/message_list.cxx @@ -0,0 +1,10 @@ +// @file message_list.cxx +// @author Matthias Richter +// @since 2016-02-11 +// @brief Container class for messages in the O2 framework + +#include "message_list.h" +#include "memory-format.h" + +using namespace AliceO2; +using namespace Format; diff --git a/format/message_list.h b/format/message_list.h index 4157a88fcccaf..5dc4f1172fbba 100644 --- a/format/message_list.h +++ b/format/message_list.h @@ -14,11 +14,15 @@ //* any purpose. It is provided "as is" without express or implied warranty. * //**************************************************************************** -// @file messageList.h +// @file message_list.h // @author Matthias Richter // @since 2016-02-11 // @brief Container class for messages in the O2 framework +#include +#include +#include +#include // memset #include "memory-format.h" namespace AliceO2 { @@ -26,16 +30,26 @@ namespace Format { // Ideally it does not matter for the implementation of the container class // whether the type is the message container or the pointer to the payload -template +template class messageList { public: - messageList(); - messageList(const messageList& other); - messageList& operator=(const messageList& other); - ~messageList(); + typedef MsgT message_type; + typedef HdrT header_type; + + messageList() {} + messageList(const messageList& other); // not yet implemented + messageList& operator=(const messageList& other); // not yet implemented + ~messageList() {} /** add data block to list */ - int add(T* headerMsg, T* payloadMsg); + int add(MsgT& headerMsg, MsgT& payloadMsg) { + // conversion relies on the conversion operator for complex types + const uint8_t* headerData = headerMsg; + + const HdrT* srcHeader = reinterpret_cast(headerData); + // TODO: consistency check + mDataArray.push_back(messagePair(*srcHeader, payloadMsg)); + } /** number of data blocks in the list */ size_t size() {return mDataArray.size();} /** clear the list */ @@ -44,44 +58,65 @@ class messageList { bool empty() {mDataArray.empty();} /** - * messagePair describes the two sequential messages for header and payload - * of a data block + * messagePair describes the two sequential message parts for header and payload + * respectively. * * TODO: decide whether to use pointer to message or pointer to payload in the * message. Whith the template approach and appropriate conversion operators in the * message class possibly both ways can be served at the same time */ struct messagePair { - DataHeader_t header; - T* payload; + HdrT mHeader; + MsgT* mPayload; + + messagePair(MsgT& payload) : mHeader(), mPayload(&payload) { + memset(&mHeader, 0, sizeof(HdrT)); + } + + messagePair(const HdrT& header, MsgT& payload) : mHeader(), mPayload(&payload) { + memcpy(&mHeader, &header, sizeof(HdrT)); + } }; - typedef vector::iterator pairIt_t + typedef typename std::vector::iterator pairIt_t; + // TODO: operators inside a class can only have one parameter + // check whether to create a functor class + //bool operator==(const messageList::pairIt_t& first, const messageList::pairIt_t& second) { + // return (first->mHeader == second->mHeader) && (first->mPayload == second->mPayload); + //} + // + //bool operator!=(const messageList::pairIt_t& first, const messageList::pairIt_t& second) { + // return (first->mHeader != second->mHeader) || (first->mPayload != second->mPayload); + //} class iterator { public: typedef iterator self_type; - typedef T value_type; + typedef MsgT value_type; - iterator(pairIt_t& dataIterator) : mDataIterator(dataIterator) { } + iterator(const pairIt_t& dataIterator) : mDataIterator(dataIterator) { } // prefix increment - self_type operator++() { mDataIterator++; return *this; } + self_type operator++() { ++mDataIterator; return *this; } // postfix increment self_type operator++(int unused) {self_type copy(*this); ++*this; return copy;} // TODO: given the fact that the data which is hold is a pointer, it always needs to be // valid for dereference - T& operator*() { return *this.operator->();} - T* operator->() { return (*mDataIterator).payload;} + MsgT& operator*() { return *((*mDataIterator).mPayload);} + MsgT* operator->() { return (*mDataIterator).mPayload;} + + HdrT& getHdr() const {return (*mDataIterator).mHeader;} bool operator==(const self_type& other) { return mDataIterator == other.mDataIterator; } bool operator!=(const self_type& other) { return mDataIterator != other.mDataIterator; } - bool operator==(const PayloadMetaData_t& md) { return (*mDataIterator).header == md } - bool operator!=(const PayloadMetaData_t& md) { return (*mDataIterator).header != md } + /** TODO: comparison object to be used + bool operator==(const PayloadMetaData_t& md) { return (*mDataIterator).mHeader == md; } + bool operator!=(const PayloadMetaData_t& md) { return (*mDataIterator).mHeader != md; } + */ /** conversion operator to PayloadMetaData_t struct */ - operator PayloadMetaData_t() {return (*mDataIterator).header;} + operator HdrT() {return (*mDataIterator).mHeader;} /** return size of payload */ - size_t size() {return (*mDataIterator).header.mPayloadSize;} + size_t size() {return (*mDataIterator).mHeader.mPayloadSize;} private: pairIt_t mDataIterator; @@ -93,19 +128,19 @@ class messageList { }; */ - private: - vector mDataArray; -}; + iterator begin() { + pairIt_t it = mDataArray.begin(); + return iterator(it); + } -template -int messageList::add(T& headerMsg, T& payloadMsg) -{ - // following conversion relies on the conversion operator for complex types - uint* headerData = static_cast(headerMsg); + iterator end() { + pairIt_t it = mDataArray.end(); + return iterator(it); + } - DataHeader_t* srcHeader = reinterpret_cast(headerData); - DataHeader_t tgtHeader(*srcHeader); -} + private: + std::vector mDataArray; +}; }; // namespace Format }; // namespace AliceO2 From 41ea1d63c76f18fed68e486883a45824c9b19d4a Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 30 Mar 2016 14:53:24 +0200 Subject: [PATCH 049/135] Adding test executable for message_list template The test is to first extend a compilation check and can be later extended to a unit test --- format/testFormat.cxx | 105 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 format/testFormat.cxx diff --git a/format/testFormat.cxx b/format/testFormat.cxx new file mode 100644 index 0000000000000..299add41f99b1 --- /dev/null +++ b/format/testFormat.cxx @@ -0,0 +1,105 @@ +#include "message_list.h" +#include "memory-format.h" + +#include // memset +#include + +using namespace AliceO2; +using namespace Format; + +typedef const uint8_t* SimpleMsg_t; + +struct SimpleHeader_t { + uint32_t id; + uint32_t specification; + + SimpleHeader_t() : id(0), specification(0) {} + SimpleHeader_t(uint32_t _id, uint32_t _spec) : id(_id), specification(_spec) {} +}; + +std::ostream& operator<<(std::ostream& stream, SimpleHeader_t header) { + stream << "Header ID: " << header.id << std::endl; + stream << "Header Specification: " << std::hex << header.specification; +} + +class TestMsg { +public: + TestMsg() : mBuffer(nullptr), mBufferSize(0) {} + TestMsg(const uint8_t* buffer, unsigned size) : mBuffer(new uint8_t[size]), mBufferSize(size) { + memcpy(mBuffer, buffer, size); + } + ~TestMsg() {clear();} + + int alloc(int size) { + } + + uint8_t* get() const { + return mBuffer; + } + + operator uint8_t*() { return get();} + + void clear() { + if (mBuffer) { + delete mBuffer; + } + mBuffer = NULL; + mBufferSize = 0; + } + +private: + uint8_t* mBuffer; + unsigned mBufferSize; +}; + +template +void print_list(ListType& list) { + for (typename ListType::iterator it = list.begin(); + it != list.end(); + ++it) { + // the iterator defines a conversion operator to the header type + std::cout << static_cast(it) << std::endl; + // dereferencing of the iterator gives the payload + std::cout << *it << std::endl; + } +} + +int main(int argc, char** argv) +{ + int iResult = 0; + + typedef messageList SimpleList_t; + SimpleList_t input; + input.size(); + + SimpleHeader_t hdr1(1, 0xdeadbeef); + const char* payload1="payload1"; + SimpleMsg_t headerMsg1 = reinterpret_cast(&hdr1); + SimpleMsg_t payloadMsg1 = reinterpret_cast(payload1); + input.add(headerMsg1, payloadMsg1); + + SimpleHeader_t hdr2(2, 0xf00); + const char* payload2="payload2"; + SimpleMsg_t headerMsg2 = reinterpret_cast(&hdr2); + SimpleMsg_t payloadMsg2 = reinterpret_cast(payload2); + input.add(headerMsg2, payloadMsg2); + + std::cout << "simple list:" << std::endl; + print_list(input); + std::cout << std::endl; + + typedef messageList TestMsgList_t; + TestMsgList_t msglist; + TestMsg testHeaderMsg1((uint8_t*)&hdr1, sizeof(hdr1)); + TestMsg testPayloadMsg1((uint8_t*)payload1, strlen(payload1)+1); + msglist.add(testHeaderMsg1, testPayloadMsg1); + TestMsg testHeaderMsg2((uint8_t*)&hdr2, sizeof(hdr2)); + TestMsg testPayloadMsg2((uint8_t*)payload2, strlen(payload2)+1); + msglist.add(testHeaderMsg2, testPayloadMsg2); + + std::cout << "message class list:" << std::endl; + print_list(msglist); + std::cout << std::endl; + + return 0; +} From df1a68d2519582f7a219e56d0fa05e974db7b3db Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 30 Mar 2016 14:54:58 +0200 Subject: [PATCH 050/135] adding format test to build --- CMakeLists.txt | 1 + format/CMakeLists.txt | 63 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 format/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index c0f4191ef9397..73686d21727f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -224,6 +224,7 @@ add_subdirectory (macro) add_subdirectory (o2cdb) add_subdirectory (test) add_subdirectory (o2qa) +add_subdirectory (format) Option(BUILD_DOXYGEN "Build Doxygen" OFF) diff --git a/format/CMakeLists.txt b/format/CMakeLists.txt new file mode 100644 index 0000000000000..fcd82768b0289 --- /dev/null +++ b/format/CMakeLists.txt @@ -0,0 +1,63 @@ +# @author Matthias Richter +# @brief cmake setup for the test of format implementation + +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR}/format +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIR} + ${FAIRROOT_INCLUDE_DIR} +) + +include_directories(${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${FAIRROOT_LIBRARY_DIR} + ${Boost_LIBRARY_DIRS} +) + +link_directories(${LINK_DIRECTORIES}) + +#library source +set(SRCS +) + +set(DEPENDENCIES + ${DEPENDENCIES} + ) + +set(DEPENDENCIES + ${DEPENDENCIES} + ${CMAKE_THREAD_LIBS_INIT} +) + +set(SRCS + message_list.cxx +) + +set(LIBRARY_NAME aliceo2format) + +GENERATE_LIBRARY() + +Set(Exe_Names + testFormat +) + +set(Exe_Source + testFormat.cxx +) + +list(LENGTH Exe_Names _length) +math(EXPR _length ${_length}-1) + +ForEach(_file RANGE 0 ${_length}) + list(GET Exe_Names ${_file} _name) + list(GET Exe_Source ${_file} _src) + set(EXE_NAME ${_name}) + set(SRCS ${_src}) + set(DEPENDENCIES ALICEHLT dl) + GENERATE_EXECUTABLE() +EndForEach(_file RANGE 0 ${_length}) From 54d57492f50f99ef39e3f7b62ee4e000d184b7de Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 6 Apr 2016 13:47:49 +0200 Subject: [PATCH 051/135] Introducing conditional search in the list iterator --- format/message_list.h | 66 +++++++++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 15 deletions(-) diff --git a/format/message_list.h b/format/message_list.h index 5dc4f1172fbba..cb5c323c3ee93 100644 --- a/format/message_list.h +++ b/format/message_list.h @@ -23,7 +23,7 @@ #include #include #include // memset -#include "memory-format.h" +#include // std::function namespace AliceO2 { namespace Format { @@ -35,13 +35,20 @@ class messageList { public: typedef MsgT message_type; typedef HdrT header_type; + /// comparison metric for selection of elements + /// an external function can be defined by the caller of begin() to + /// apply a selection of elements + typedef std::function HdrComparison; messageList() {} messageList(const messageList& other); // not yet implemented messageList& operator=(const messageList& other); // not yet implemented ~messageList() {} - /** add data block to list */ + /// add data block to list + /// both header and payload message parts are required to add an entry + /// the actual header of type HdrT is extracted from the header + /// message part. int add(MsgT& headerMsg, MsgT& payloadMsg) { // conversion relies on the conversion operator for complex types const uint8_t* headerData = headerMsg; @@ -88,14 +95,40 @@ class messageList { // return (first->mHeader != second->mHeader) || (first->mPayload != second->mPayload); //} + /** + * @class iterator + * Implementation of navigation through the list and access to elements. + * + * An optional comparison metric @ref HdrComparison can be used to provide + * a selection of elements. + */ class iterator { public: typedef iterator self_type; typedef MsgT value_type; - - iterator(const pairIt_t& dataIterator) : mDataIterator(dataIterator) { } + + iterator(const pairIt_t& dataIterator, const pairIt_t& iteratorRange, + const HdrComparison hdrsel = HdrComparison()) + : mDataIterator(dataIterator) + , mEnd(iteratorRange) + , mHdrSelection(hdrsel) + { } + iterator(const pairIt_t& dataIterator) + : mDataIterator(dataIterator) + , mEnd(dataIterator) + , mHdrSelection(HdrComparison()) + { } // prefix increment - self_type operator++() { ++mDataIterator; return *this; } + self_type& operator++() { + while (++mDataIterator != mEnd) { + // operator bool() of std::function is used to determine whether + // a selector is set or not, the default is not callable. + // if the std::function container has an assigned target, this is + // called with the header as parameter + if (!mHdrSelection || mHdrSelection(mDataIterator->mHeader)) break; + } + return *this; + } // postfix increment self_type operator++(int unused) {self_type copy(*this); ++*this; return copy;} // TODO: given the fact that the data which is hold is a pointer, it always needs to be @@ -103,16 +136,12 @@ class messageList { MsgT& operator*() { return *((*mDataIterator).mPayload);} MsgT* operator->() { return (*mDataIterator).mPayload;} + /** return header at iterator position */ HdrT& getHdr() const {return (*mDataIterator).mHeader;} bool operator==(const self_type& other) { return mDataIterator == other.mDataIterator; } bool operator!=(const self_type& other) { return mDataIterator != other.mDataIterator; } - /** TODO: comparison object to be used - bool operator==(const PayloadMetaData_t& md) { return (*mDataIterator).mHeader == md; } - bool operator!=(const PayloadMetaData_t& md) { return (*mDataIterator).mHeader != md; } - */ - /** conversion operator to PayloadMetaData_t struct */ operator HdrT() {return (*mDataIterator).mHeader;} /** return size of payload */ @@ -120,6 +149,8 @@ class messageList { private: pairIt_t mDataIterator; + pairIt_t mEnd; + HdrComparison mHdrSelection; }; /** to be defined @@ -128,14 +159,19 @@ class messageList { }; */ - iterator begin() { - pairIt_t it = mDataArray.begin(); - return iterator(it); + iterator begin(const HdrComparison hdrsel = HdrComparison()) { + iterator ret(mDataArray.begin(), mDataArray.end(), hdrsel); + // if the std::function container has an assigned target, this is + // is used used to check whether the iterator matches the selection + // further checks are in the increment operator. + // the iterator class implements a type cast operator which allows + // to use it directly in the HdrComparison + if (hdrsel && !hdrsel(ret)) ++ret; + return ret; } iterator end() { - pairIt_t it = mDataArray.end(); - return iterator(it); + return iterator(mDataArray.end()); } private: From 42e76a3f48f261ffbee7269bdc4ad7f0e8e8f649 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 6 Apr 2016 17:13:48 +0200 Subject: [PATCH 052/135] Using a mockup of the list element selector --- format/testFormat.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/format/testFormat.cxx b/format/testFormat.cxx index 299add41f99b1..c13c1e83450f2 100644 --- a/format/testFormat.cxx +++ b/format/testFormat.cxx @@ -53,8 +53,8 @@ class TestMsg { }; template -void print_list(ListType& list) { - for (typename ListType::iterator it = list.begin(); +void print_list(ListType& list, typename ListType::HdrComparison hdrsel = typename ListType::HdrComparison()) { + for (typename ListType::iterator it = list.begin(hdrsel); it != list.end(); ++it) { // the iterator defines a conversion operator to the header type @@ -98,7 +98,7 @@ int main(int argc, char** argv) msglist.add(testHeaderMsg2, testPayloadMsg2); std::cout << "message class list:" << std::endl; - print_list(msglist); + print_list(msglist, [](const TestMsgList_t::header_type& hdr){return hdr.specification==0xf00;} ); std::cout << std::endl; return 0; From e03f1f7864c333843f5b9c4a98aac8618ee0c28e Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 13 Apr 2016 11:56:46 +0200 Subject: [PATCH 053/135] Adjusting new development to the proposed directory structure Creating new module 'DataFormats' on top level. The recent development regarding data formats goes into DataFormats/Generic. --- CMakeLists.txt | 2 +- DataFormats/CMakeLists.txt | 3 +++ DataFormats/Generic/CMakeLists.txt | 3 +++ {format => DataFormats/Generic}/message_list.cxx | 0 {format => DataFormats/Generic}/message_list.h | 0 {format => DataFormats/Generic/test}/CMakeLists.txt | 10 +--------- {format => DataFormats/Generic/test}/header_versions.h | 0 {format => DataFormats/Generic/test}/memory-format.h | 0 {format => DataFormats/Generic/test}/testFormat.cxx | 0 9 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 DataFormats/CMakeLists.txt create mode 100644 DataFormats/Generic/CMakeLists.txt rename {format => DataFormats/Generic}/message_list.cxx (100%) rename {format => DataFormats/Generic}/message_list.h (100%) rename {format => DataFormats/Generic/test}/CMakeLists.txt (82%) rename {format => DataFormats/Generic/test}/header_versions.h (100%) rename {format => DataFormats/Generic/test}/memory-format.h (100%) rename {format => DataFormats/Generic/test}/testFormat.cxx (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 73686d21727f4..01ae1f7216365 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -224,7 +224,7 @@ add_subdirectory (macro) add_subdirectory (o2cdb) add_subdirectory (test) add_subdirectory (o2qa) -add_subdirectory (format) +add_subdirectory (DataFormats) Option(BUILD_DOXYGEN "Build Doxygen" OFF) diff --git a/DataFormats/CMakeLists.txt b/DataFormats/CMakeLists.txt new file mode 100644 index 0000000000000..ea3c28753faeb --- /dev/null +++ b/DataFormats/CMakeLists.txt @@ -0,0 +1,3 @@ +# @brief cmake setup for the DataFormats module of AliceO2 + +add_subdirectory (Generic) diff --git a/DataFormats/Generic/CMakeLists.txt b/DataFormats/Generic/CMakeLists.txt new file mode 100644 index 0000000000000..326b52234a511 --- /dev/null +++ b/DataFormats/Generic/CMakeLists.txt @@ -0,0 +1,3 @@ +# @brief cmake setup for DataFormats/Generic of AliceO2 + +add_subdirectory (test) diff --git a/format/message_list.cxx b/DataFormats/Generic/message_list.cxx similarity index 100% rename from format/message_list.cxx rename to DataFormats/Generic/message_list.cxx diff --git a/format/message_list.h b/DataFormats/Generic/message_list.h similarity index 100% rename from format/message_list.h rename to DataFormats/Generic/message_list.h diff --git a/format/CMakeLists.txt b/DataFormats/Generic/test/CMakeLists.txt similarity index 82% rename from format/CMakeLists.txt rename to DataFormats/Generic/test/CMakeLists.txt index fcd82768b0289..5f79e337bd77a 100644 --- a/format/CMakeLists.txt +++ b/DataFormats/Generic/test/CMakeLists.txt @@ -2,20 +2,17 @@ # @brief cmake setup for the test of format implementation set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/format + ${CMAKE_CURRENT_SOURCE_DIR}/.. ) set(SYSTEM_INCLUDE_DIRECTORIES - ${BASE_INCLUDE_DIRECTORIES} ${Boost_INCLUDE_DIR} - ${FAIRROOT_INCLUDE_DIR} ) include_directories(${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES - ${FAIRROOT_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ) @@ -35,13 +32,8 @@ set(DEPENDENCIES ) set(SRCS - message_list.cxx ) -set(LIBRARY_NAME aliceo2format) - -GENERATE_LIBRARY() - Set(Exe_Names testFormat ) diff --git a/format/header_versions.h b/DataFormats/Generic/test/header_versions.h similarity index 100% rename from format/header_versions.h rename to DataFormats/Generic/test/header_versions.h diff --git a/format/memory-format.h b/DataFormats/Generic/test/memory-format.h similarity index 100% rename from format/memory-format.h rename to DataFormats/Generic/test/memory-format.h diff --git a/format/testFormat.cxx b/DataFormats/Generic/test/testFormat.cxx similarity index 100% rename from format/testFormat.cxx rename to DataFormats/Generic/test/testFormat.cxx From 64e43d1942d019b8b593cb723acca4cf81836439 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 13 Apr 2016 15:05:44 +0200 Subject: [PATCH 054/135] Rename unit test exe and add as test to cmake configuration --- DataFormats/Generic/test/CMakeLists.txt | 12 ++++++++---- .../test/{testFormat.cxx => testMessageList.cxx} | 0 2 files changed, 8 insertions(+), 4 deletions(-) rename DataFormats/Generic/test/{testFormat.cxx => testMessageList.cxx} (100%) diff --git a/DataFormats/Generic/test/CMakeLists.txt b/DataFormats/Generic/test/CMakeLists.txt index 5f79e337bd77a..2460a5565406e 100644 --- a/DataFormats/Generic/test/CMakeLists.txt +++ b/DataFormats/Generic/test/CMakeLists.txt @@ -1,5 +1,5 @@ # @author Matthias Richter -# @brief cmake setup for the test of format implementation +# @brief cmake setup for the test of generic format implementation set(INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/.. @@ -35,16 +35,15 @@ set(SRCS ) Set(Exe_Names - testFormat ) set(Exe_Source - testFormat.cxx ) list(LENGTH Exe_Names _length) -math(EXPR _length ${_length}-1) +if(${_length}) +math(EXPR _length ${_length}-1) ForEach(_file RANGE 0 ${_length}) list(GET Exe_Names ${_file} _name) list(GET Exe_Source ${_file} _src) @@ -53,3 +52,8 @@ ForEach(_file RANGE 0 ${_length}) set(DEPENDENCIES ALICEHLT dl) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) +endif(${_length}) + +# avoid installation of test exe by not using macro GENERATE_EXECUTABLE +add_executable(testMessageList testMessageList.cxx) +add_test(testMessageList ${CMAKE_BINARY_DIR}/bin/testMessageList) diff --git a/DataFormats/Generic/test/testFormat.cxx b/DataFormats/Generic/test/testMessageList.cxx similarity index 100% rename from DataFormats/Generic/test/testFormat.cxx rename to DataFormats/Generic/test/testMessageList.cxx From 59891b26cde40f356f11f4225c74c26e143c70ff Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 13 Apr 2016 16:27:41 +0200 Subject: [PATCH 055/135] adding documentation --- DataFormats/Generic/test/testMessageList.cxx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/DataFormats/Generic/test/testMessageList.cxx b/DataFormats/Generic/test/testMessageList.cxx index c13c1e83450f2..d0c4f510ad90e 100644 --- a/DataFormats/Generic/test/testMessageList.cxx +++ b/DataFormats/Generic/test/testMessageList.cxx @@ -1,3 +1,11 @@ +/// @file testMessageList.cxx +/// @brief Unit test for message_list.h template class + +// TODO: this is for the moment only testing compilation +// ideally, this test program is only compiled when the test +// is going to be executed. By using add_executable in the cmake +// configuartion, the program is always build (though not installed) + #include "message_list.h" #include "memory-format.h" @@ -7,8 +15,10 @@ using namespace AliceO2; using namespace Format; +// a simple message type, just a pointer to some payload typedef const uint8_t* SimpleMsg_t; +// a simple header definition struct SimpleHeader_t { uint32_t id; uint32_t specification; @@ -17,11 +27,15 @@ struct SimpleHeader_t { SimpleHeader_t(uint32_t _id, uint32_t _spec) : id(_id), specification(_spec) {} }; +// print operator for the simple header std::ostream& operator<<(std::ostream& stream, SimpleHeader_t header) { stream << "Header ID: " << header.id << std::endl; stream << "Header Specification: " << std::hex << header.specification; } +// more complex message type, some class which wraps around payload +// implements type conversion operator to return pointer to payload +// buffer class TestMsg { public: TestMsg() : mBuffer(nullptr), mBufferSize(0) {} @@ -52,6 +66,8 @@ class TestMsg { unsigned mBufferSize; }; +// helper function to print entries of the message list by using +// iterator template void print_list(ListType& list, typename ListType::HdrComparison hdrsel = typename ListType::HdrComparison()) { for (typename ListType::iterator it = list.begin(hdrsel); From 11423a912ed5933bc7df7a5f78013b5198880cdb Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Thu, 14 Apr 2016 10:24:37 +0200 Subject: [PATCH 056/135] Adding notice about usage of the data format header in the unit test The original header definition has served as basis for the discussion, the final definition has been developed elsewhere and is soon to be merged. The very early definition is temporarily kept for the unit test. --- DataFormats/Generic/test/memory-format.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/DataFormats/Generic/test/memory-format.h b/DataFormats/Generic/test/memory-format.h index 8a54706ffe847..d216cf5657e43 100644 --- a/DataFormats/Generic/test/memory-format.h +++ b/DataFormats/Generic/test/memory-format.h @@ -12,10 +12,14 @@ //* any purpose. It is provided "as is" without express or implied warranty. * //**************************************************************************** -// @file memory_format.h -// @author Matthias Richter -// @since 2016-01-28 -// @brief Primitives for the ALICE O2 in-memory format +/// @file memory_format.h +/// @author Matthias Richter +/// @since 2016-01-28 +/// @brief Helper structs for the ALICE O2 generic format API test +/// @note DO NOT USE OUTSIDE UNIT TEST OF FORMAT API +/// This definitions have been a first draft during discussion of +/// in memory data formats, the final header file has been placed +/// elsewhere, but this file is temporarily kept for the unit test // use the standard definitions of int variables #include From d525a090af6eb016c7d92783b9dc3cc1478d2d72 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Tue, 19 Apr 2016 13:50:48 +0200 Subject: [PATCH 057/135] Bugfix: replace static_cast by local variable for type conversion Type conversion is supposed to use the iterators type cast operator. Crash on mac architecture probably due to inappropriate use of static_cast with the intention that operator HdrT() of the iterator is invoked. But static_cast expects that the new type can be declared and initialized from the expression. It seems to be undefined what takes precedence. Crash log * thread #1: tid = 0x597d9, 0x0000000100001f7f testMessageList`void print_list >(list=, hdrsel=) + 191 at testMessageList.cxx:77, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) frame #0: 0x0000000100001f7f testMessageList`void print_list >(list=, hdrsel=) + 191 at testMessageList.cxx:77 74 it != list.end(); 75 ++it) { 76 // the iterator defines a conversion operator to the header type -> 77 std::cout << static_cast(it) << std::end; 78 // dereferencing of the iterator gives the payload 79 std::cout << *it << std::end; 80 } --- DataFormats/Generic/test/testMessageList.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DataFormats/Generic/test/testMessageList.cxx b/DataFormats/Generic/test/testMessageList.cxx index d0c4f510ad90e..76dc5e6df4e7b 100644 --- a/DataFormats/Generic/test/testMessageList.cxx +++ b/DataFormats/Generic/test/testMessageList.cxx @@ -74,7 +74,8 @@ void print_list(ListType& list, typename ListType::HdrComparison hdrsel = typena it != list.end(); ++it) { // the iterator defines a conversion operator to the header type - std::cout << static_cast(it) << std::endl; + typename ListType::header_type hdr = it; + std::cout << hdr << std::endl; // dereferencing of the iterator gives the payload std::cout << *it << std::endl; } From 1d861af3443ca093cc4b8b7a59d060ae506e2866 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Tue, 19 Apr 2016 13:50:48 +0200 Subject: [PATCH 058/135] Bugfix: missing return statement in custom ostream operator<< added When using clang, writing to output stream caused segmentation violation because the stream object was not returned by the operator which has been used just before. Adding also some other return statements (though irrelevant for the crash). Crash log * thread #1: tid = 0x597d9, 0x0000000100001f7f testMessageList`void print_list >(list=, hdrsel=) + 191 at testMessageList.cxx:77, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) frame #0: 0x0000000100001f7f testMessageList`void print_list >(list=, hdrsel=) + 191 at testMessageList.cxx:77 74 it != list.end(); 75 ++it) { 76 // the iterator defines a conversion operator to the header type -> 77 std::cout << static_cast(it) << std::end; 78 // dereferencing of the iterator gives the payload 79 std::cout << *it << std::end; 80 } --- DataFormats/Generic/message_list.h | 2 ++ DataFormats/Generic/test/testMessageList.cxx | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/DataFormats/Generic/message_list.h b/DataFormats/Generic/message_list.h index cb5c323c3ee93..068cffa1bee47 100644 --- a/DataFormats/Generic/message_list.h +++ b/DataFormats/Generic/message_list.h @@ -56,6 +56,8 @@ class messageList { const HdrT* srcHeader = reinterpret_cast(headerData); // TODO: consistency check mDataArray.push_back(messagePair(*srcHeader, payloadMsg)); + + return mDataArray.size(); } /** number of data blocks in the list */ size_t size() {return mDataArray.size();} diff --git a/DataFormats/Generic/test/testMessageList.cxx b/DataFormats/Generic/test/testMessageList.cxx index 76dc5e6df4e7b..e187f6b613cab 100644 --- a/DataFormats/Generic/test/testMessageList.cxx +++ b/DataFormats/Generic/test/testMessageList.cxx @@ -31,6 +31,8 @@ struct SimpleHeader_t { std::ostream& operator<<(std::ostream& stream, SimpleHeader_t header) { stream << "Header ID: " << header.id << std::endl; stream << "Header Specification: " << std::hex << header.specification; + + return stream; } // more complex message type, some class which wraps around payload @@ -45,6 +47,8 @@ class TestMsg { ~TestMsg() {clear();} int alloc(int size) { + // not yet implemented + return 0; } uint8_t* get() const { From 4838970ae496fcf614b13cbceabcef55e1baeb46 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 20 Apr 2016 10:29:36 +0200 Subject: [PATCH 059/135] Revert "Bugfix: replace static_cast by local variable for type conversion" This reverts commit d525a090af6eb016c7d92783b9dc3cc1478d2d72. The type cast has not been the problem. This commit was not part of the pull request in the end but got accidentally merged. --- DataFormats/Generic/test/testMessageList.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/DataFormats/Generic/test/testMessageList.cxx b/DataFormats/Generic/test/testMessageList.cxx index e187f6b613cab..f7726975c8ac9 100644 --- a/DataFormats/Generic/test/testMessageList.cxx +++ b/DataFormats/Generic/test/testMessageList.cxx @@ -78,8 +78,7 @@ void print_list(ListType& list, typename ListType::HdrComparison hdrsel = typena it != list.end(); ++it) { // the iterator defines a conversion operator to the header type - typename ListType::header_type hdr = it; - std::cout << hdr << std::endl; + std::cout << static_cast(it) << std::endl; // dereferencing of the iterator gives the payload std::cout << *it << std::endl; } From 88b26b55ba855fa3b046146e373018c2cb0fec48 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Thu, 21 Apr 2016 20:11:45 +0200 Subject: [PATCH 060/135] Jenkinsfile for automated PR testing This Jenkinsfile will trigger an automated build of AliceO2 sources for each pull request done to the repository. --- Jenkinsfile | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000000..f40d43a818c29 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,66 @@ +#!groovy + +node { + stage "Verify author" + def power_users = ["ktf", + "dberzano", + "MohammadAlTurany", + "matthiasrichter", + "rbx"] + echo "Changeset from " + env.CHANGE_AUTHOR + if (power_users.contains(env.CHANGE_AUTHOR)) { + currentBuild.displayName = "Testing ${env.BRANCH_NAME} from ${env.CHANGE_AUTHOR}" + echo "PR comes from power user. Testing" + } else { + currentBuild.displayName = "Feedback needed for ${env.BRANCH_NAME} from ${env.CHANGE_AUTHOR}" + input "Do you want to test this change?" + } + currentBuild.displayName = "Testing ${env.BRANCH_NAME} from ${env.CHANGE_AUTHOR}" + + stage "Build AliceO2" + def test_script = ''' + rm -fr alibuild alidist + git clone https://github.com/alisw/alibuild + git clone -b IB/v5-08/next https://github.com/alisw/alidist + x=`date +"%s"` + WORKAREA=/build/workarea/pr/`echo $(( $x / 3600 / 24 / 7))` + + # Make sure we have only one builder per directory + CURRENT_SLAVE=unknown + while [[ "$CURRENT_SLAVE" != '' ]]; do + WORKAREA_INDEX=$((WORKAREA_INDEX+1)) + CURRENT_SLAVE=$(cat $WORKAREA/$WORKAREA_INDEX/current_slave 2> /dev/null || true) + [[ "$CURRENT_SLAVE" == "$NODE_NAME" ]] && CURRENT_SLAVE= + done + + mkdir -p $WORKAREA/$WORKAREA_INDEX + echo $NODE_NAME > $WORKAREA/$WORKAREA_INDEX/current_slave + + alibuild/aliBuild --work-dir $WORKAREA/$WORKAREA_INDEX \ + --reference-sources /build/mirror \ + --debug \ + --jobs 16 \ + --remote-store rsync://repo.marathon.mesos/store/ \ + --disable DDS \ + -d build O2 || BUILDERR=$? + + rm -f $WORKAREA/$WORKAREA_INDEX/current_slave + if [ ! "X$BUILDERR" = X ]; then + exit $BUILDERR + fi + ''' + + currentBuild.displayName = "Testing ${env.BRANCH_NAME}" + parallel( + "slc7": { + node ("slc7_x86-64-large") { + dir ("O2") { + checkout scm + } + withEnv (["CHANGE_TARGET=${env.CHANGE_TARGET}"]) { + sh test_script + } + } + } + ) +} From 9e415c6b12ff437e2a543797b7459cecc00516b7 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Thu, 21 Apr 2016 23:22:41 +0200 Subject: [PATCH 061/135] Add missing ZeroMQ directory These are required for the case in which ZeroMQ does not come from the system. --- devices/aliceHLTwrapper/CMakeLists.txt | 1 + o2qa/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/devices/aliceHLTwrapper/CMakeLists.txt b/devices/aliceHLTwrapper/CMakeLists.txt index c041a7f163047..bd69a78d711e1 100644 --- a/devices/aliceHLTwrapper/CMakeLists.txt +++ b/devices/aliceHLTwrapper/CMakeLists.txt @@ -9,6 +9,7 @@ set(SYSTEM_INCLUDE_DIRECTORIES ${BASE_INCLUDE_DIRECTORIES} ${Boost_INCLUDE_DIR} ${FAIRROOT_INCLUDE_DIR} + ${ZMQ_INCLUDE_DIR} ) if(DDS_FOUND) diff --git a/o2qa/CMakeLists.txt b/o2qa/CMakeLists.txt index 83d014cb9225c..83751b3a69df3 100755 --- a/o2qa/CMakeLists.txt +++ b/o2qa/CMakeLists.txt @@ -11,6 +11,7 @@ Set(INCLUDE_DIRECTORIES Set(SYSTEM_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR} + ${ZMQ_INCLUDE_DIR} ) Include_Directories(${INCLUDE_DIRECTORIES}) From db8f917b2b751b23fca989febae9922b34ab45a0 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 25 Apr 2016 10:42:02 +0200 Subject: [PATCH 062/135] Require Boost 1.59 as minimum version --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 01ae1f7216365..c0f436eccde6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,7 +147,7 @@ if(NOT BOOST_ROOT) Unset(Boost_LIBRARY_DIRS CACHE) endif(NOT BOOST_ROOT) -find_package(Boost 1.59 COMPONENTS thread system timer program_options random filesystem chrono exception regex serialization log log_setup unit_test_framework) +find_package(Boost 1.59 COMPONENTS thread system timer program_options random filesystem chrono exception regex serialization log log_setup unit_test_framework REQUIRED) If (Boost_FOUND) Set(Boost_Avail 1) @@ -235,7 +235,7 @@ endif(BUILD_DOXYGEN) If(IWYU_FOUND) - ADD_CUSTOM_TARGET(checkHEADERS + ADD_CUSTOM_TARGET(checkHEADERS DEPENDS $ENV{ALL_HEADER_RULES} ) EndIf() From c9cb4a4f73b68da28cd3bd3808747cae3ed8da53 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 25 Apr 2016 13:56:26 +0200 Subject: [PATCH 063/135] Re-arrange the repository Create new folders in base and ITS Add README.md to all new directories Modify the CMakeList.txt for ITS and BASE --- Base/CMakeLists.txt | 28 ++++--- Base/{ => include}/Detector.h | 0 Base/{ => include}/TrackReference.h | 0 Base/{ => src}/BaseLinkDef.h | 0 Base/{ => src}/Detector.cxx | 0 Base/{ => src}/TrackReference.cxx | 0 itsmft/common/README.md | 1 + itsmft/its/CMakeLists.txt | 73 +++++-------------- itsmft/its/base/CMakeLists.txt | 41 +++++++++++ itsmft/its/base/README.md | 1 + .../its/{ => base/include}/ContainerFactory.h | 0 .../include}/MisalignmentParameter.h | 0 itsmft/its/base/include/README.md | 0 .../its/{ => base/src}/ContainerFactory.cxx | 0 .../{ => base/src}/MisalignmentParameter.cxx | 0 itsmft/its/base/src/README.md | 2 + itsmft/its/base/src/itsBaseLinkDef.h | 10 +++ itsmft/its/reconstruction/CMakeLists.txt | 38 ++++++++++ itsmft/its/reconstruction/include/README.md | 2 + itsmft/its/reconstruction/src/README.md | 2 + .../src/itsReconstructionLinkDef.h | 9 +++ itsmft/its/simulation/CMakeLists.txt | 73 +++++++++++++++++++ itsmft/its/{ => simulation/include}/Chip.h | 0 .../its/{ => simulation/include}/Detector.h | 0 itsmft/its/{ => simulation/include}/Digit.h | 0 .../{ => simulation/include}/DigitContainer.h | 0 .../its/{ => simulation/include}/DigitLayer.h | 0 .../its/{ => simulation/include}/DigitStave.h | 0 .../include}/DigitWriteoutBuffer.h | 0 .../its/{ => simulation/include}/Digitizer.h | 0 .../{ => simulation/include}/DigitizerTask.h | 0 .../include}/GeometryHandler.h | 0 .../include}/GeometryManager.h | 0 itsmft/its/{ => simulation/include}/Point.h | 0 itsmft/its/simulation/include/README.md | 2 + .../{ => simulation/include}/Segmentation.h | 0 .../include}/UpgradeGeometryTGeo.h | 0 .../include}/UpgradeSegmentationPixel.h | 0 .../{ => simulation/include}/UpgradeV1Layer.h | 0 .../{ => simulation/include}/V11Geometry.h | 0 itsmft/its/{ => simulation/src}/Chip.cxx | 0 itsmft/its/{ => simulation/src}/Detector.cxx | 0 itsmft/its/{ => simulation/src}/Digit.cxx | 0 .../{ => simulation/src}/DigitContainer.cxx | 0 .../its/{ => simulation/src}/DigitLayer.cxx | 0 .../its/{ => simulation/src}/DigitStave.cxx | 0 .../src}/DigitWriteoutBuffer.cxx | 0 itsmft/its/{ => simulation/src}/Digitizer.cxx | 0 .../{ => simulation/src}/DigitizerTask.cxx | 0 .../{ => simulation/src}/GeometryHandler.cxx | 0 .../{ => simulation/src}/GeometryManager.cxx | 0 itsmft/its/{ => simulation/src}/Point.cxx | 0 itsmft/its/simulation/src/README.md | 2 + .../its/{ => simulation/src}/Segmentation.cxx | 0 .../src}/UpgradeGeometryTGeo.cxx | 0 .../src}/UpgradeSegmentationPixel.cxx | 0 .../{ => simulation/src}/UpgradeV1Layer.cxx | 0 .../its/{ => simulation/src}/V11Geometry.cxx | 0 .../src/itsSimLinkDef.h} | 2 - 59 files changed, 217 insertions(+), 69 deletions(-) rename Base/{ => include}/Detector.h (100%) rename Base/{ => include}/TrackReference.h (100%) rename Base/{ => src}/BaseLinkDef.h (100%) rename Base/{ => src}/Detector.cxx (100%) rename Base/{ => src}/TrackReference.cxx (100%) create mode 100644 itsmft/common/README.md create mode 100644 itsmft/its/base/CMakeLists.txt create mode 100644 itsmft/its/base/README.md rename itsmft/its/{ => base/include}/ContainerFactory.h (100%) rename itsmft/its/{ => base/include}/MisalignmentParameter.h (100%) create mode 100644 itsmft/its/base/include/README.md rename itsmft/its/{ => base/src}/ContainerFactory.cxx (100%) rename itsmft/its/{ => base/src}/MisalignmentParameter.cxx (100%) create mode 100644 itsmft/its/base/src/README.md create mode 100644 itsmft/its/base/src/itsBaseLinkDef.h create mode 100644 itsmft/its/reconstruction/CMakeLists.txt create mode 100644 itsmft/its/reconstruction/include/README.md create mode 100644 itsmft/its/reconstruction/src/README.md create mode 100644 itsmft/its/reconstruction/src/itsReconstructionLinkDef.h create mode 100644 itsmft/its/simulation/CMakeLists.txt rename itsmft/its/{ => simulation/include}/Chip.h (100%) rename itsmft/its/{ => simulation/include}/Detector.h (100%) rename itsmft/its/{ => simulation/include}/Digit.h (100%) rename itsmft/its/{ => simulation/include}/DigitContainer.h (100%) rename itsmft/its/{ => simulation/include}/DigitLayer.h (100%) rename itsmft/its/{ => simulation/include}/DigitStave.h (100%) rename itsmft/its/{ => simulation/include}/DigitWriteoutBuffer.h (100%) rename itsmft/its/{ => simulation/include}/Digitizer.h (100%) rename itsmft/its/{ => simulation/include}/DigitizerTask.h (100%) rename itsmft/its/{ => simulation/include}/GeometryHandler.h (100%) rename itsmft/its/{ => simulation/include}/GeometryManager.h (100%) rename itsmft/its/{ => simulation/include}/Point.h (100%) create mode 100644 itsmft/its/simulation/include/README.md rename itsmft/its/{ => simulation/include}/Segmentation.h (100%) rename itsmft/its/{ => simulation/include}/UpgradeGeometryTGeo.h (100%) rename itsmft/its/{ => simulation/include}/UpgradeSegmentationPixel.h (100%) rename itsmft/its/{ => simulation/include}/UpgradeV1Layer.h (100%) rename itsmft/its/{ => simulation/include}/V11Geometry.h (100%) rename itsmft/its/{ => simulation/src}/Chip.cxx (100%) rename itsmft/its/{ => simulation/src}/Detector.cxx (100%) rename itsmft/its/{ => simulation/src}/Digit.cxx (100%) rename itsmft/its/{ => simulation/src}/DigitContainer.cxx (100%) rename itsmft/its/{ => simulation/src}/DigitLayer.cxx (100%) rename itsmft/its/{ => simulation/src}/DigitStave.cxx (100%) rename itsmft/its/{ => simulation/src}/DigitWriteoutBuffer.cxx (100%) rename itsmft/its/{ => simulation/src}/Digitizer.cxx (100%) rename itsmft/its/{ => simulation/src}/DigitizerTask.cxx (100%) rename itsmft/its/{ => simulation/src}/GeometryHandler.cxx (100%) rename itsmft/its/{ => simulation/src}/GeometryManager.cxx (100%) rename itsmft/its/{ => simulation/src}/Point.cxx (100%) create mode 100644 itsmft/its/simulation/src/README.md rename itsmft/its/{ => simulation/src}/Segmentation.cxx (100%) rename itsmft/its/{ => simulation/src}/UpgradeGeometryTGeo.cxx (100%) rename itsmft/its/{ => simulation/src}/UpgradeSegmentationPixel.cxx (100%) rename itsmft/its/{ => simulation/src}/UpgradeV1Layer.cxx (100%) rename itsmft/its/{ => simulation/src}/V11Geometry.cxx (100%) rename itsmft/its/{itsLinkDef.h => simulation/src/itsSimLinkDef.h} (88%) diff --git a/Base/CMakeLists.txt b/Base/CMakeLists.txt index c02162da80a47..e15605f27c4be 100644 --- a/Base/CMakeLists.txt +++ b/Base/CMakeLists.txt @@ -1,32 +1,36 @@ set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/Base + ${CMAKE_SOURCE_DIR}/Base/src + ${CMAKE_SOURCE_DIR}/Base/include ) set(SYSTEM_INCLUDE_DIRECTORIES -${Boost_INCLUDE_DIRS} -${FAIRROOT_INCLUDE_DIR} -${BASE_INCLUDE_DIRECTORIES} -${ROOT_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${ROOT_INCLUDE_DIR} ) include_directories( ${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES -${CMAKE_SOURCE_DIR}/Base -${FAIRROOT_LIBRARY_DIR} -${ROOT_LIBRARY_DIR} + ${CMAKE_SOURCE_DIR}/Base + ${FAIRROOT_LIBRARY_DIR} + ${ROOT_LIBRARY_DIR} ) link_directories( ${LINK_DIRECTORIES}) set(SRCS -Detector.cxx -TrackReference.cxx + src/Detector.cxx + src/TrackReference.cxx ) -Set(HEADERS) -Set(LINKDEF BaseLinkDef.h) +Set(HEADERS + include/TrackReference.h + include/Detector.h +) +Set(LINKDEF src/BaseLinkDef.h) Set(LIBRARY_NAME AliceO2Base) Set(DEPENDENCIES Base EG Physics Core) diff --git a/Base/Detector.h b/Base/include/Detector.h similarity index 100% rename from Base/Detector.h rename to Base/include/Detector.h diff --git a/Base/TrackReference.h b/Base/include/TrackReference.h similarity index 100% rename from Base/TrackReference.h rename to Base/include/TrackReference.h diff --git a/Base/BaseLinkDef.h b/Base/src/BaseLinkDef.h similarity index 100% rename from Base/BaseLinkDef.h rename to Base/src/BaseLinkDef.h diff --git a/Base/Detector.cxx b/Base/src/Detector.cxx similarity index 100% rename from Base/Detector.cxx rename to Base/src/Detector.cxx diff --git a/Base/TrackReference.cxx b/Base/src/TrackReference.cxx similarity index 100% rename from Base/TrackReference.cxx rename to Base/src/TrackReference.cxx diff --git a/itsmft/common/README.md b/itsmft/common/README.md new file mode 100644 index 0000000000000..4901064b3913d --- /dev/null +++ b/itsmft/common/README.md @@ -0,0 +1 @@ +Common files diff --git a/itsmft/its/CMakeLists.txt b/itsmft/its/CMakeLists.txt index d986fa0cb2739..39c06988a462c 100644 --- a/itsmft/its/CMakeLists.txt +++ b/itsmft/its/CMakeLists.txt @@ -1,56 +1,19 @@ -set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR} -${CMAKE_SOURCE_DIR}/itsmft/its -${CMAKE_SOURCE_DIR}/header -) +# ************************************************************************** +# * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. * +# * * +# * Author: The ALICE Off-line Project. * +# * Contributors are mentioned in the code where appropriate. * +# * * +# * Permission to use, copy, modify and distribute this software and its * +# * documentation strictly for non-commercial purposes is hereby granted * +# * without fee, provided that the above copyright notice appears in all * +# * copies and that both the copyright notice and this permission notice * +# * appear in the supporting documentation. The authors make no claims * +# * about the suitability of this software for any purpose. It is * +# * provided "as is" without express or implied warranty. * +# ************************************************************************** -set(SYSTEM_INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR} -${CMAKE_SOURCE_DIR}/itsmft/its -${CMAKE_SOURCE_DIR}/header -${BASE_INCLUDE_DIRECTORIES} -${Boost_INCLUDE_DIRS} -${FAIRROOT_INCLUDE_DIR} -${AlFa_DIR}/include -${ROOT_INCLUDE_DIR} -) - -include_directories( ${INCLUDE_DIRECTORIES}) -include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) - -set(LINK_DIRECTORIES -${ROOT_LIBRARY_DIR} -${FAIRROOT_LIBRARY_DIR} -) - -link_directories( ${LINK_DIRECTORIES}) - -set(SRCS -UpgradeGeometryTGeo.cxx -V11Geometry.cxx -UpgradeV1Layer.cxx -Segmentation.cxx -UpgradeSegmentationPixel.cxx -GeometryManager.cxx -Detector.cxx -ContainerFactory.cxx -GeometryHandler.cxx -MisalignmentParameter.cxx -Point.cxx -Chip.cxx -Digit.cxx -Digitizer.cxx -DigitizerTask.cxx -DigitWriteoutBuffer.cxx -DigitContainer.cxx -DigitLayer.cxx -DigitStave.cxx -) - -Set(LINKDEF itsLinkDef.h) -Set(LIBRARY_NAME its) -Set(DEPENDENCIES - AliceO2Base -) - -GENERATE_LIBRARY() +# Libraries +add_subdirectory(base) +add_subdirectory(reconstruction) +add_subdirectory(simulation) diff --git a/itsmft/its/base/CMakeLists.txt b/itsmft/its/base/CMakeLists.txt new file mode 100644 index 0000000000000..005e78b41a79d --- /dev/null +++ b/itsmft/its/base/CMakeLists.txt @@ -0,0 +1,41 @@ +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/itsmft/its/base/include + ${CMAKE_SOURCE_DIR}/itsmft/its/base/src +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + src/ContainerFactory.cxx + src/MisalignmentParameter.cxx +) + +set(HEADERS + includes/ContainerFactory.h + includes/MisalignmentParameter.h +) + + +Set(LINKDEF itsBaseLinkDef.h) +Set(LIBRARY_NAME itsBase) +Set(DEPENDENCIES + AliceO2Base +) + +GENERATE_LIBRARY() diff --git a/itsmft/its/base/README.md b/itsmft/its/base/README.md new file mode 100644 index 0000000000000..ec5c9be244ccf --- /dev/null +++ b/itsmft/its/base/README.md @@ -0,0 +1 @@ +# Base classes diff --git a/itsmft/its/ContainerFactory.h b/itsmft/its/base/include/ContainerFactory.h similarity index 100% rename from itsmft/its/ContainerFactory.h rename to itsmft/its/base/include/ContainerFactory.h diff --git a/itsmft/its/MisalignmentParameter.h b/itsmft/its/base/include/MisalignmentParameter.h similarity index 100% rename from itsmft/its/MisalignmentParameter.h rename to itsmft/its/base/include/MisalignmentParameter.h diff --git a/itsmft/its/base/include/README.md b/itsmft/its/base/include/README.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/itsmft/its/ContainerFactory.cxx b/itsmft/its/base/src/ContainerFactory.cxx similarity index 100% rename from itsmft/its/ContainerFactory.cxx rename to itsmft/its/base/src/ContainerFactory.cxx diff --git a/itsmft/its/MisalignmentParameter.cxx b/itsmft/its/base/src/MisalignmentParameter.cxx similarity index 100% rename from itsmft/its/MisalignmentParameter.cxx rename to itsmft/its/base/src/MisalignmentParameter.cxx diff --git a/itsmft/its/base/src/README.md b/itsmft/its/base/src/README.md new file mode 100644 index 0000000000000..cefd65a356cbc --- /dev/null +++ b/itsmft/its/base/src/README.md @@ -0,0 +1,2 @@ +# Src directory: +Here you find the source files and the private headers diff --git a/itsmft/its/base/src/itsBaseLinkDef.h b/itsmft/its/base/src/itsBaseLinkDef.h new file mode 100644 index 0000000000000..9d7f861b39a0b --- /dev/null +++ b/itsmft/its/base/src/itsBaseLinkDef.h @@ -0,0 +1,10 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class AliceO2::ITS::ContainerFactory; +#pragma link C++ class AliceO2::ITS::MisalignmentParameter+; + +#endif diff --git a/itsmft/its/reconstruction/CMakeLists.txt b/itsmft/its/reconstruction/CMakeLists.txt new file mode 100644 index 0000000000000..30b213e4151b2 --- /dev/null +++ b/itsmft/its/reconstruction/CMakeLists.txt @@ -0,0 +1,38 @@ +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/itsmft/its/reconstruction/src + ${CMAKE_SOURCE_DIR}/itsmft/its/reconstruction/include +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + +) + +set(HEADERS + +) +Set(LINKDEF src/itsReconstructioLinkDef.h) +Set(LIBRARY_NAME its) +Set(DEPENDENCIES + AliceO2Base +) + +GENERATE_LIBRARY() diff --git a/itsmft/its/reconstruction/include/README.md b/itsmft/its/reconstruction/include/README.md new file mode 100644 index 0000000000000..cefd65a356cbc --- /dev/null +++ b/itsmft/its/reconstruction/include/README.md @@ -0,0 +1,2 @@ +# Src directory: +Here you find the source files and the private headers diff --git a/itsmft/its/reconstruction/src/README.md b/itsmft/its/reconstruction/src/README.md new file mode 100644 index 0000000000000..cefd65a356cbc --- /dev/null +++ b/itsmft/its/reconstruction/src/README.md @@ -0,0 +1,2 @@ +# Src directory: +Here you find the source files and the private headers diff --git a/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h b/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h new file mode 100644 index 0000000000000..e757f31c18a60 --- /dev/null +++ b/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h @@ -0,0 +1,9 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + + + +#endif diff --git a/itsmft/its/simulation/CMakeLists.txt b/itsmft/its/simulation/CMakeLists.txt new file mode 100644 index 0000000000000..679c43425f555 --- /dev/null +++ b/itsmft/its/simulation/CMakeLists.txt @@ -0,0 +1,73 @@ +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/include + ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/src + ${CMAKE_SOURCE_DIR}/itsmft/its/base/include + ${CMAKE_SOURCE_DIR}/itsmft/its/base/src +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + UpgradeGeometryTGeo.cxx + V11Geometry.cxx + UpgradeV1Layer.cxx + Segmentation.cxx + UpgradeSegmentationPixel.cxx + GeometryManager.cxx + Detector.cxx + GeometryHandler.cxx + Point.cxx + Chip.cxx + Digit.cxx + Digitizer.cxx + DigitizerTask.cxx + DigitWriteoutBuffer.cxx + DigitContainer.cxx + DigitLayer.cxx + DigitStave.cxx +) +set(HEADERS + UpgradeGeometryTGeo.h + V11Geometry.h + UpgradeV1Layer.h + Segmentation.h + UpgradeSegmentationPixel.h + GeometryManager.h + Detector.h + GeometryHandler.h + Point.h + Chip.h + Digit.h + Digitizer.h + DigitizerTask.h + DigitWriteoutBuffer.h + DigitContainer.h + DigitLayer.h + DigitStave.h +) + +Set(LINKDEF src/itsSimualationLinkDef.h) +Set(LIBRARY_NAME itsSimulation) +Set(DEPENDENCIES + itsBase + AliceO2Base +) + +GENERATE_LIBRARY() diff --git a/itsmft/its/Chip.h b/itsmft/its/simulation/include/Chip.h similarity index 100% rename from itsmft/its/Chip.h rename to itsmft/its/simulation/include/Chip.h diff --git a/itsmft/its/Detector.h b/itsmft/its/simulation/include/Detector.h similarity index 100% rename from itsmft/its/Detector.h rename to itsmft/its/simulation/include/Detector.h diff --git a/itsmft/its/Digit.h b/itsmft/its/simulation/include/Digit.h similarity index 100% rename from itsmft/its/Digit.h rename to itsmft/its/simulation/include/Digit.h diff --git a/itsmft/its/DigitContainer.h b/itsmft/its/simulation/include/DigitContainer.h similarity index 100% rename from itsmft/its/DigitContainer.h rename to itsmft/its/simulation/include/DigitContainer.h diff --git a/itsmft/its/DigitLayer.h b/itsmft/its/simulation/include/DigitLayer.h similarity index 100% rename from itsmft/its/DigitLayer.h rename to itsmft/its/simulation/include/DigitLayer.h diff --git a/itsmft/its/DigitStave.h b/itsmft/its/simulation/include/DigitStave.h similarity index 100% rename from itsmft/its/DigitStave.h rename to itsmft/its/simulation/include/DigitStave.h diff --git a/itsmft/its/DigitWriteoutBuffer.h b/itsmft/its/simulation/include/DigitWriteoutBuffer.h similarity index 100% rename from itsmft/its/DigitWriteoutBuffer.h rename to itsmft/its/simulation/include/DigitWriteoutBuffer.h diff --git a/itsmft/its/Digitizer.h b/itsmft/its/simulation/include/Digitizer.h similarity index 100% rename from itsmft/its/Digitizer.h rename to itsmft/its/simulation/include/Digitizer.h diff --git a/itsmft/its/DigitizerTask.h b/itsmft/its/simulation/include/DigitizerTask.h similarity index 100% rename from itsmft/its/DigitizerTask.h rename to itsmft/its/simulation/include/DigitizerTask.h diff --git a/itsmft/its/GeometryHandler.h b/itsmft/its/simulation/include/GeometryHandler.h similarity index 100% rename from itsmft/its/GeometryHandler.h rename to itsmft/its/simulation/include/GeometryHandler.h diff --git a/itsmft/its/GeometryManager.h b/itsmft/its/simulation/include/GeometryManager.h similarity index 100% rename from itsmft/its/GeometryManager.h rename to itsmft/its/simulation/include/GeometryManager.h diff --git a/itsmft/its/Point.h b/itsmft/its/simulation/include/Point.h similarity index 100% rename from itsmft/its/Point.h rename to itsmft/its/simulation/include/Point.h diff --git a/itsmft/its/simulation/include/README.md b/itsmft/its/simulation/include/README.md new file mode 100644 index 0000000000000..165ad88d88ec8 --- /dev/null +++ b/itsmft/its/simulation/include/README.md @@ -0,0 +1,2 @@ +# Include directory: +Here you find interfaces (Public headers) diff --git a/itsmft/its/Segmentation.h b/itsmft/its/simulation/include/Segmentation.h similarity index 100% rename from itsmft/its/Segmentation.h rename to itsmft/its/simulation/include/Segmentation.h diff --git a/itsmft/its/UpgradeGeometryTGeo.h b/itsmft/its/simulation/include/UpgradeGeometryTGeo.h similarity index 100% rename from itsmft/its/UpgradeGeometryTGeo.h rename to itsmft/its/simulation/include/UpgradeGeometryTGeo.h diff --git a/itsmft/its/UpgradeSegmentationPixel.h b/itsmft/its/simulation/include/UpgradeSegmentationPixel.h similarity index 100% rename from itsmft/its/UpgradeSegmentationPixel.h rename to itsmft/its/simulation/include/UpgradeSegmentationPixel.h diff --git a/itsmft/its/UpgradeV1Layer.h b/itsmft/its/simulation/include/UpgradeV1Layer.h similarity index 100% rename from itsmft/its/UpgradeV1Layer.h rename to itsmft/its/simulation/include/UpgradeV1Layer.h diff --git a/itsmft/its/V11Geometry.h b/itsmft/its/simulation/include/V11Geometry.h similarity index 100% rename from itsmft/its/V11Geometry.h rename to itsmft/its/simulation/include/V11Geometry.h diff --git a/itsmft/its/Chip.cxx b/itsmft/its/simulation/src/Chip.cxx similarity index 100% rename from itsmft/its/Chip.cxx rename to itsmft/its/simulation/src/Chip.cxx diff --git a/itsmft/its/Detector.cxx b/itsmft/its/simulation/src/Detector.cxx similarity index 100% rename from itsmft/its/Detector.cxx rename to itsmft/its/simulation/src/Detector.cxx diff --git a/itsmft/its/Digit.cxx b/itsmft/its/simulation/src/Digit.cxx similarity index 100% rename from itsmft/its/Digit.cxx rename to itsmft/its/simulation/src/Digit.cxx diff --git a/itsmft/its/DigitContainer.cxx b/itsmft/its/simulation/src/DigitContainer.cxx similarity index 100% rename from itsmft/its/DigitContainer.cxx rename to itsmft/its/simulation/src/DigitContainer.cxx diff --git a/itsmft/its/DigitLayer.cxx b/itsmft/its/simulation/src/DigitLayer.cxx similarity index 100% rename from itsmft/its/DigitLayer.cxx rename to itsmft/its/simulation/src/DigitLayer.cxx diff --git a/itsmft/its/DigitStave.cxx b/itsmft/its/simulation/src/DigitStave.cxx similarity index 100% rename from itsmft/its/DigitStave.cxx rename to itsmft/its/simulation/src/DigitStave.cxx diff --git a/itsmft/its/DigitWriteoutBuffer.cxx b/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx similarity index 100% rename from itsmft/its/DigitWriteoutBuffer.cxx rename to itsmft/its/simulation/src/DigitWriteoutBuffer.cxx diff --git a/itsmft/its/Digitizer.cxx b/itsmft/its/simulation/src/Digitizer.cxx similarity index 100% rename from itsmft/its/Digitizer.cxx rename to itsmft/its/simulation/src/Digitizer.cxx diff --git a/itsmft/its/DigitizerTask.cxx b/itsmft/its/simulation/src/DigitizerTask.cxx similarity index 100% rename from itsmft/its/DigitizerTask.cxx rename to itsmft/its/simulation/src/DigitizerTask.cxx diff --git a/itsmft/its/GeometryHandler.cxx b/itsmft/its/simulation/src/GeometryHandler.cxx similarity index 100% rename from itsmft/its/GeometryHandler.cxx rename to itsmft/its/simulation/src/GeometryHandler.cxx diff --git a/itsmft/its/GeometryManager.cxx b/itsmft/its/simulation/src/GeometryManager.cxx similarity index 100% rename from itsmft/its/GeometryManager.cxx rename to itsmft/its/simulation/src/GeometryManager.cxx diff --git a/itsmft/its/Point.cxx b/itsmft/its/simulation/src/Point.cxx similarity index 100% rename from itsmft/its/Point.cxx rename to itsmft/its/simulation/src/Point.cxx diff --git a/itsmft/its/simulation/src/README.md b/itsmft/its/simulation/src/README.md new file mode 100644 index 0000000000000..cefd65a356cbc --- /dev/null +++ b/itsmft/its/simulation/src/README.md @@ -0,0 +1,2 @@ +# Src directory: +Here you find the source files and the private headers diff --git a/itsmft/its/Segmentation.cxx b/itsmft/its/simulation/src/Segmentation.cxx similarity index 100% rename from itsmft/its/Segmentation.cxx rename to itsmft/its/simulation/src/Segmentation.cxx diff --git a/itsmft/its/UpgradeGeometryTGeo.cxx b/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx similarity index 100% rename from itsmft/its/UpgradeGeometryTGeo.cxx rename to itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx diff --git a/itsmft/its/UpgradeSegmentationPixel.cxx b/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx similarity index 100% rename from itsmft/its/UpgradeSegmentationPixel.cxx rename to itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx diff --git a/itsmft/its/UpgradeV1Layer.cxx b/itsmft/its/simulation/src/UpgradeV1Layer.cxx similarity index 100% rename from itsmft/its/UpgradeV1Layer.cxx rename to itsmft/its/simulation/src/UpgradeV1Layer.cxx diff --git a/itsmft/its/V11Geometry.cxx b/itsmft/its/simulation/src/V11Geometry.cxx similarity index 100% rename from itsmft/its/V11Geometry.cxx rename to itsmft/its/simulation/src/V11Geometry.cxx diff --git a/itsmft/its/itsLinkDef.h b/itsmft/its/simulation/src/itsSimLinkDef.h similarity index 88% rename from itsmft/its/itsLinkDef.h rename to itsmft/its/simulation/src/itsSimLinkDef.h index 8096da1adac34..cecccbb3e7054 100644 --- a/itsmft/its/itsLinkDef.h +++ b/itsmft/its/simulation/src/itsSimLinkDef.h @@ -11,9 +11,7 @@ #pragma link C++ class AliceO2::ITS::UpgradeSegmentationPixel+; #pragma link C++ class AliceO2::ITS::GeometryManager+; #pragma link C++ class AliceO2::ITS::Detector+; -#pragma link C++ class AliceO2::ITS::ContainerFactory; #pragma link C++ class AliceO2::ITS::GeometryHandler+; -#pragma link C++ class AliceO2::ITS::MisalignmentParameter+; #pragma link C++ class AliceO2::ITS::Point+; #pragma link C++ class AliceO2::ITS::Chip+; #pragma link C++ class AliceO2::ITS::Digit+; From 8ec1403d787971bdfd70fac445955c76d611a842 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 25 Apr 2016 14:32:44 +0200 Subject: [PATCH 064/135] Re-arrange the repository Adapt the includes to the new structure in its --- itsmft/its/CMakeLists.txt | 2 +- itsmft/its/base/CMakeLists.txt | 9 +-- itsmft/its/base/src/ContainerFactory.cxx | 2 +- itsmft/its/base/src/MisalignmentParameter.cxx | 2 +- itsmft/its/reconstruction/CMakeLists.txt | 2 +- itsmft/its/simulation/CMakeLists.txt | 79 +++++++++---------- itsmft/its/simulation/include/Detector.h | 2 +- .../simulation/include/DigitWriteoutBuffer.h | 8 +- itsmft/its/simulation/include/Digitizer.h | 26 +++--- .../its/simulation/include/UpgradeV1Layer.h | 2 +- itsmft/its/simulation/src/Chip.cxx | 24 +++--- itsmft/its/simulation/src/Detector.cxx | 29 ++++--- itsmft/its/simulation/src/Digit.cxx | 6 +- itsmft/its/simulation/src/DigitContainer.cxx | 12 +-- itsmft/its/simulation/src/DigitLayer.cxx | 7 +- itsmft/its/simulation/src/DigitStave.cxx | 8 +- .../simulation/src/DigitWriteoutBuffer.cxx | 12 +-- itsmft/its/simulation/src/Digitizer.cxx | 22 +++--- itsmft/its/simulation/src/DigitizerTask.cxx | 20 ++--- itsmft/its/simulation/src/GeometryHandler.cxx | 2 +- itsmft/its/simulation/src/GeometryManager.cxx | 14 ++-- itsmft/its/simulation/src/Point.cxx | 2 +- itsmft/its/simulation/src/Segmentation.cxx | 4 +- .../simulation/src/UpgradeGeometryTGeo.cxx | 21 +++-- .../src/UpgradeSegmentationPixel.cxx | 5 +- itsmft/its/simulation/src/UpgradeV1Layer.cxx | 16 ++-- itsmft/its/simulation/src/V11Geometry.cxx | 11 ++- ...itsSimLinkDef.h => itsSimulationLinkDef.h} | 0 28 files changed, 190 insertions(+), 159 deletions(-) rename itsmft/its/simulation/src/{itsSimLinkDef.h => itsSimulationLinkDef.h} (100%) diff --git a/itsmft/its/CMakeLists.txt b/itsmft/its/CMakeLists.txt index 39c06988a462c..1763c35665f45 100644 --- a/itsmft/its/CMakeLists.txt +++ b/itsmft/its/CMakeLists.txt @@ -15,5 +15,5 @@ # Libraries add_subdirectory(base) -add_subdirectory(reconstruction) +#add_subdirectory(reconstruction) add_subdirectory(simulation) diff --git a/itsmft/its/base/CMakeLists.txt b/itsmft/its/base/CMakeLists.txt index 005e78b41a79d..691f932654fec 100644 --- a/itsmft/its/base/CMakeLists.txt +++ b/itsmft/its/base/CMakeLists.txt @@ -1,7 +1,6 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/itsmft/its/base/include - ${CMAKE_SOURCE_DIR}/itsmft/its/base/src + ${CMAKE_SOURCE_DIR}/itsmft/its/base/ ) set(SYSTEM_INCLUDE_DIRECTORIES @@ -27,12 +26,12 @@ set(SRCS ) set(HEADERS - includes/ContainerFactory.h - includes/MisalignmentParameter.h + include/ContainerFactory.h + include/MisalignmentParameter.h ) -Set(LINKDEF itsBaseLinkDef.h) +Set(LINKDEF src/itsBaseLinkDef.h) Set(LIBRARY_NAME itsBase) Set(DEPENDENCIES AliceO2Base diff --git a/itsmft/its/base/src/ContainerFactory.cxx b/itsmft/its/base/src/ContainerFactory.cxx index 360cfcf4fad7f..f711bf14ecbd1 100644 --- a/itsmft/its/base/src/ContainerFactory.cxx +++ b/itsmft/its/base/src/ContainerFactory.cxx @@ -1,7 +1,7 @@ /// \file ContainerFactory.cxx /// \brief Implementation of the ContainerFactory class -#include "ContainerFactory.h" +#include "include/ContainerFactory.h" #include "FairRuntimeDb.h" // for FairRuntimeDb #include "TString.h" // for TString class FairParSet; diff --git a/itsmft/its/base/src/MisalignmentParameter.cxx b/itsmft/its/base/src/MisalignmentParameter.cxx index 38ef20bb2211f..4ef9f28580976 100644 --- a/itsmft/its/base/src/MisalignmentParameter.cxx +++ b/itsmft/its/base/src/MisalignmentParameter.cxx @@ -1,7 +1,7 @@ /// \file MisalignmentParameter.cxx /// \brief Implementation of the MisalignmentParameter class -#include "MisalignmentParameter.h" +#include "include/MisalignmentParameter.h" #include "FairParamList.h" diff --git a/itsmft/its/reconstruction/CMakeLists.txt b/itsmft/its/reconstruction/CMakeLists.txt index 30b213e4151b2..e22e412666ec1 100644 --- a/itsmft/its/reconstruction/CMakeLists.txt +++ b/itsmft/its/reconstruction/CMakeLists.txt @@ -29,7 +29,7 @@ set(SRCS set(HEADERS ) -Set(LINKDEF src/itsReconstructioLinkDef.h) +Set(LINKDEF src/itsReconstructionLinkDef.h) Set(LIBRARY_NAME its) Set(DEPENDENCIES AliceO2Base diff --git a/itsmft/its/simulation/CMakeLists.txt b/itsmft/its/simulation/CMakeLists.txt index 679c43425f555..391264208942f 100644 --- a/itsmft/its/simulation/CMakeLists.txt +++ b/itsmft/its/simulation/CMakeLists.txt @@ -1,10 +1,9 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/include - ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/src - ${CMAKE_SOURCE_DIR}/itsmft/its/base/include - ${CMAKE_SOURCE_DIR}/itsmft/its/base/src -) + ${CMAKE_SOURCE_DIR}/itsmft/its/base/ + ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/ + + ) set(SYSTEM_INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} @@ -25,45 +24,45 @@ set(LINK_DIRECTORIES link_directories( ${LINK_DIRECTORIES}) set(SRCS - UpgradeGeometryTGeo.cxx - V11Geometry.cxx - UpgradeV1Layer.cxx - Segmentation.cxx - UpgradeSegmentationPixel.cxx - GeometryManager.cxx - Detector.cxx - GeometryHandler.cxx - Point.cxx - Chip.cxx - Digit.cxx - Digitizer.cxx - DigitizerTask.cxx - DigitWriteoutBuffer.cxx - DigitContainer.cxx - DigitLayer.cxx - DigitStave.cxx + src/UpgradeGeometryTGeo.cxx + src/V11Geometry.cxx + src/UpgradeV1Layer.cxx + src/Segmentation.cxx + src/UpgradeSegmentationPixel.cxx + src/GeometryManager.cxx + src/Detector.cxx + src/GeometryHandler.cxx + src/Point.cxx + src/Chip.cxx + src/Digit.cxx + src/Digitizer.cxx + src/DigitizerTask.cxx + src/DigitWriteoutBuffer.cxx + src/DigitContainer.cxx + src/DigitLayer.cxx + src/DigitStave.cxx ) set(HEADERS - UpgradeGeometryTGeo.h - V11Geometry.h - UpgradeV1Layer.h - Segmentation.h - UpgradeSegmentationPixel.h - GeometryManager.h - Detector.h - GeometryHandler.h - Point.h - Chip.h - Digit.h - Digitizer.h - DigitizerTask.h - DigitWriteoutBuffer.h - DigitContainer.h - DigitLayer.h - DigitStave.h + include/UpgradeGeometryTGeo.h + include/V11Geometry.h + include/UpgradeV1Layer.h + include/Segmentation.h + include/UpgradeSegmentationPixel.h + include/GeometryManager.h + include/Detector.h + include/GeometryHandler.h + include/Point.h + include/Chip.h + include/Digit.h + include/Digitizer.h + include/DigitizerTask.h + include/DigitWriteoutBuffer.h + include/DigitContainer.h + include/DigitLayer.h + include/DigitStave.h ) -Set(LINKDEF src/itsSimualationLinkDef.h) +Set(LINKDEF src/itsSimulationLinkDef.h) Set(LIBRARY_NAME itsSimulation) Set(DEPENDENCIES itsBase diff --git a/itsmft/its/simulation/include/Detector.h b/itsmft/its/simulation/include/Detector.h index 21df9c41653a5..fb5dfa0c9f519 100644 --- a/itsmft/its/simulation/include/Detector.h +++ b/itsmft/its/simulation/include/Detector.h @@ -4,7 +4,7 @@ #ifndef ALICEO2_ITS_DETECTOR_H_ #define ALICEO2_ITS_DETECTOR_H_ -#include "Base/Detector.h" // for Detector +#include "Base/include/Detector.h" // for Detector #include "Rtypes.h" // for Int_t, Double_t, Float_t, Bool_t, etc #include "TArrayD.h" // for TArrayD #include "TGeoManager.h" // for gGeoManager, TGeoManager (ptr only) diff --git a/itsmft/its/simulation/include/DigitWriteoutBuffer.h b/itsmft/its/simulation/include/DigitWriteoutBuffer.h index 454f05eedcb37..655d4f26eee66 100644 --- a/itsmft/its/simulation/include/DigitWriteoutBuffer.h +++ b/itsmft/its/simulation/include/DigitWriteoutBuffer.h @@ -13,7 +13,7 @@ #include // for TString #include "FairWriteoutBuffer.h" // for FairWriteoutBuffer #include "Rtypes.h" // for DigitWriteoutBuffer::Class, Bool_t, etc -#include "itsmft/its/Digit.h" // for Digit +#include "include/Digit.h" // for Digit namespace AliceO2 { namespace ITS { @@ -22,16 +22,16 @@ namespace AliceO2 { DigitWriteoutBuffer(); DigitWriteoutBuffer(TString branchname, TString foldername, Bool_t persistance); virtual ~DigitWriteoutBuffer(); - + // Implementation of virtual function required by the interface void AddNewDataToTClonesArray(FairTimeStamp *); virtual double FindTimeForData(FairTimeStamp *); virtual void FillDataMap(FairTimeStamp *data, double activeTime); virtual void EraseDataFromDataMap(FairTimeStamp *data); - + protected: std::map fData_map; - + ClassDef(DigitWriteoutBuffer, 1); }; } diff --git a/itsmft/its/simulation/include/Digitizer.h b/itsmft/its/simulation/include/Digitizer.h index 25aaf364eed6b..8465c1fca9d73 100644 --- a/itsmft/its/simulation/include/Digitizer.h +++ b/itsmft/its/simulation/include/Digitizer.h @@ -5,7 +5,7 @@ #include "Rtypes.h" // for Digitizer::Class, Double_t, ClassDef, etc #include "TObject.h" // for TObject -#include "itsmft/its/Chip.h" +#include "include/Chip.h" class TClonesArray; // lines 13-13 namespace AliceO2 { namespace ITS { class DigitContainer; } } // lines 19-19 @@ -14,39 +14,39 @@ namespace AliceO2 { namespace ITS { class UpgradeGeometryTGeo; } } // lines 20- namespace AliceO2{ namespace ITS { - + class DigitContainer; class UpgradeGeometryTGeo; - + class Digitizer : public TObject { public: Digitizer(); - + /// Destructor ~Digitizer(); - + void Init(); - + /// Steer conversion of points to digits /// @param points Container with ITS points /// @return digits container DigitContainer *Process(TClonesArray *points); - + void SetGainFactor(Double_t gain) { fGain = gain; } - + void ClearChips(); - + private: Digitizer(const Digitizer &); Digitizer &operator=(const Digitizer &); - + std::vector fChipContainer; ///< Container for ITS chip - + DigitContainer *fDigitContainer; ///< Internal digit storage UpgradeGeometryTGeo *fGeometry; ///< ITS upgrade geometry - + Double_t fGain; ///< pad gain factor (global for the moment) - + ClassDef(Digitizer, 1); }; } diff --git a/itsmft/its/simulation/include/UpgradeV1Layer.h b/itsmft/its/simulation/include/UpgradeV1Layer.h index 956b98e8d45de..d4e03b2290243 100644 --- a/itsmft/its/simulation/include/UpgradeV1Layer.h +++ b/itsmft/its/simulation/include/UpgradeV1Layer.h @@ -9,7 +9,7 @@ #include // for gGeoManager #include "Rtypes.h" // for Double_t, Int_t, Bool_t, etc #include "V11Geometry.h" // for V11Geometry -#include "itsmft/its/Detector.h" // for Detector, Detector::UpgradeModel +#include "include/Detector.h" // for Detector, Detector::UpgradeModel class TGeoArb8; class TGeoCombiTrans; class TGeoVolume; // lines 15-15 diff --git a/itsmft/its/simulation/src/Chip.cxx b/itsmft/its/simulation/src/Chip.cxx index 394690b297a1f..749550690971b 100644 --- a/itsmft/its/simulation/src/Chip.cxx +++ b/itsmft/its/simulation/src/Chip.cxx @@ -6,12 +6,12 @@ // Adapted from AliITSUChip by Massimo Masera // -#include "itsmft/its/Chip.h" +#include "include/Chip.h" #include // for Sqrt #include // for memset #include "TObjArray.h" // for TObjArray -#include "itsmft/its/Point.h" // for Point -#include "itsmft/its/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "include/Point.h" // for Point +#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo ClassImp(AliceO2::ITS::Chip) @@ -70,7 +70,7 @@ Point *Chip::operator[](Int_t i) const { } Chip::~Chip(){ - + } void Chip::InsertPoint(Point *p){ @@ -105,11 +105,11 @@ Bool_t Chip::LineSegmentLocal(Int_t hitindex, Double_t &xstart, Double_t &xpoint posloc[3], poslocStart[3]; memset(posloc, 0, sizeof(Double_t)*3); memset(poslocStart, 0, sizeof(Double_t)*3); - + // convert to local position fGeometry->globalToLocal(fChipIndex, posglob, posloc); fGeometry->globalToLocal(fChipIndex, posglobStart, poslocStart); - + // Prepare output, hit point relative to starting point xstart = poslocStart[0]; ystart = poslocStart[1]; @@ -117,10 +117,10 @@ Bool_t Chip::LineSegmentLocal(Int_t hitindex, Double_t &xstart, Double_t &xpoint xpoint = posloc[0] - poslocStart[0]; ypoint = posloc[1] - poslocStart[1]; zpoint = posloc[2] - poslocStart[2]; - + timestart = tmp->GetStartTime(); eloss = tmp->GetEnergyLoss(); - + return kTRUE; } @@ -132,7 +132,7 @@ Bool_t Chip::LineSegmentGlobal(Int_t hitindex, Double_t &xstart, Double_t &xpoin if (tmp->IsEntering()) { return kFALSE; } - + // Fill output fields xstart = tmp->GetStartX(); ystart = tmp->GetStartY(); @@ -142,7 +142,7 @@ Bool_t Chip::LineSegmentGlobal(Int_t hitindex, Double_t &xstart, Double_t &xpoin zpoint = tmp->GetY() - zstart; timestart = tmp->GetStartTime(); eloss = tmp->GetEnergyLoss(); - + return kTRUE; } @@ -157,7 +157,7 @@ void Chip::MedianHitGlobal(const Point *p1, const Point *p2, Double_t &x, Double // Get hit positions in global coordinates Double_t pos1Glob[3] = {p1->GetX(), p1->GetY(), p1->GetZ()}, pos2Glob[3] = {p2->GetX(), p2->GetY(), p2->GetZ()}, posMedianLocal[3], posMedianGlobal[3]; - + // Calculate mean positions posMedianLocal[1] = 0.; if ((pos1Glob[1] * pos2Glob[1]) < 0.) { @@ -181,7 +181,7 @@ void Chip::MedianHitLocal(const Point *p1, const Point *p2, Double_t &x, Double_ pos2Glob[3] = {p2->GetX(), p2->GetY(), p2->GetZ()}, pos1Loc[3], pos2Loc[3]; fGeometry->globalToLocal(fChipIndex, pos1Glob, pos1Loc); fGeometry->globalToLocal(fChipIndex, pos2Glob, pos2Loc); - + // Calculate mean positions y = 0.; if ((pos1Loc[1] * pos2Loc[1]) < 0.) { diff --git a/itsmft/its/simulation/src/Detector.cxx b/itsmft/its/simulation/src/Detector.cxx index f034604495e89..819a2aee9c815 100644 --- a/itsmft/its/simulation/src/Detector.cxx +++ b/itsmft/its/simulation/src/Detector.cxx @@ -1,19 +1,26 @@ /// \file Detector.cxx /// \brief Implementation of the Detector class -#include "itsmft/its/Detector.h" -#include // for NULL, snprintf +#include "include/Detector.h" +#include "include/GeometryHandler.h" // for GeometryHandler +#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "include/UpgradeV1Layer.h" // for UpgradeV1Layer +#include "include/Point.h" // for Point, etc + +#include "include/MisalignmentParameter.h" // for MisalignmentParameter + #include "Data/DetectorList.h" // for DetectorId::kAliIts #include "Data/Stack.h" // for Stack + +//FairRoot includes #include "FairDetector.h" // for FairDetector #include "FairLogger.h" // for LOG, LOG_IF #include "FairRootManager.h" // for FairRootManager #include "FairRun.h" // for FairRun #include "FairRuntimeDb.h" // for FairRuntimeDb #include "FairVolume.h" // for FairVolume -#include "GeometryHandler.h" // for GeometryHandler -#include "MisalignmentParameter.h" // for MisalignmentParameter -#include "Point.h" // for Point, etc + + #include "TClonesArray.h" // for TClonesArray #include "TGeoManager.h" // for TGeoManager, gGeoManager #include "TGeoTube.h" // for TGeoTube @@ -21,8 +28,10 @@ #include "TString.h" // for TString, operator+ #include "TVirtualMC.h" // for gMC, TVirtualMC #include "TVirtualMCStack.h" // for TVirtualMCStack -#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo -#include "UpgradeV1Layer.h" // for UpgradeV1Layer + + +#include // for NULL, snprintf + class FairModule; class TGeoMedium; class TParticle; @@ -429,7 +438,7 @@ Bool_t Detector::ProcessHits(FairVolume* vol) TVirtualMC::GetMC()->CurrentVolOffID(3, halfstave); TVirtualMC::GetMC()->CurrentVolOffID(4, stave); int chipindex = mGeometryTGeo->getChipIndex(lay, stave, halfstave, module, chipinmodule); - + // Record information on the points mEnergyLoss = TVirtualMC::GetMC()->Edep(); mTime = TVirtualMC::GetMC()->TrackTime(); @@ -445,7 +454,7 @@ Bool_t Detector::ProcessHits(FairVolume* vol) if (TVirtualMC::GetMC()->IsTrackStop()) trackStatus |= 1 << Point::kTrackStopped; if (TVirtualMC::GetMC()->IsTrackAlive()) trackStatus |= 1 << Point::kTrackAlive; mStatus = trackStatus; - + TVirtualMC::GetMC()->TrackPosition(mPosition); TVirtualMC::GetMC()->TrackMomentum(mMomentum); @@ -473,7 +482,7 @@ Bool_t Detector::ProcessHits(FairVolume* vol) mEntrancePosition = mPosition; mEntranceTime = mTime; mStatus0 = mStatus; - + return kTRUE; } diff --git a/itsmft/its/simulation/src/Digit.cxx b/itsmft/its/simulation/src/Digit.cxx index 0431abc71da4c..256008d323a6a 100644 --- a/itsmft/its/simulation/src/Digit.cxx +++ b/itsmft/its/simulation/src/Digit.cxx @@ -1,7 +1,7 @@ /// \file AliITSUpgradeDigi.cxx /// \brief Digits structure for ITS digits -#include "Digit.h" +#include "include/Digit.h" ClassImp(AliceO2::ITS::Digit) @@ -16,7 +16,7 @@ fCharge(0.), fLabels() { } - + Digit::Digit(Int_t chipindex, Double_t pixelindex, Double_t charge, Double_t time): FairTimeStamp(time), fChipIndex(chipindex), @@ -25,7 +25,7 @@ fCharge(charge), fLabels() { } - + Digit::~Digit(){} Digit &Digit::operator+=(const Digit &other){ diff --git a/itsmft/its/simulation/src/DigitContainer.cxx b/itsmft/its/simulation/src/DigitContainer.cxx index 6851d0bde7c60..4813fdaa82e69 100644 --- a/itsmft/its/simulation/src/DigitContainer.cxx +++ b/itsmft/its/simulation/src/DigitContainer.cxx @@ -5,13 +5,13 @@ // Created by Markus Fasel on 25.03.15. // // -#include "itsmft/its/DigitContainer.h" +#include "include/DigitContainer.h" +#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "include/Digit.h" // for Digit +#include "include//DigitLayer.h" // for DigitLayer + #include "FairLogger.h" // for LOG #include "Rtypes.h" // for Int_t, nullptr -#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo -#include "itsmft/its/Digit.h" // for Digit -#include "itsmft/its/DigitLayer.h" // for DigitLayer - using namespace AliceO2::ITS; @@ -45,7 +45,7 @@ void DigitContainer::AddDigit(Digit *digi){ Int_t layer = fGeometry->getLayer(digi->GetChipIndex()), stave = fGeometry->getStave(digi->GetChipIndex()), pixel = fGeometry->getChipIdInStave(digi->GetChipIndex()); - + if(layer >= 7){ LOG(ERROR) << "Layer index out of range : " << layer << ", max 6" << FairLogger::endl; return; diff --git a/itsmft/its/simulation/src/DigitLayer.cxx b/itsmft/its/simulation/src/DigitLayer.cxx index 5cad6e92bb6ac..de06c07e137b1 100644 --- a/itsmft/its/simulation/src/DigitLayer.cxx +++ b/itsmft/its/simulation/src/DigitLayer.cxx @@ -6,11 +6,12 @@ // // -#include "FairLogger.h" -#include "itsmft/its/DigitLayer.h" -#include "itsmft/its/DigitStave.h" +#include "include/DigitLayer.h" +#include "include/DigitStave.h" + +#include "FairLogger.h" using namespace AliceO2::ITS; DigitLayer::DigitLayer(Int_t layerID, Int_t nstaves): diff --git a/itsmft/its/simulation/src/DigitStave.cxx b/itsmft/its/simulation/src/DigitStave.cxx index e0d7a7ae35a0b..476dfe981bf7b 100644 --- a/itsmft/its/simulation/src/DigitStave.cxx +++ b/itsmft/its/simulation/src/DigitStave.cxx @@ -5,15 +5,17 @@ // Created by Markus Fasel on 26.03.15. // // -#include "itsmft/its/DigitStave.h" +#include "include/DigitStave.h" +#include "include/Digit.h" // for Digit + #include "FairLogger.h" // for LOG -#include "itsmft/its/Digit.h" // for Digit + #include "TClonesArray.h" using namespace AliceO2::ITS; DigitStave::DigitStave(){ - + } DigitStave::~DigitStave() {} diff --git a/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx b/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx index 2f61986d439a1..fd5b5e88398c2 100644 --- a/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx +++ b/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx @@ -5,9 +5,9 @@ // Created by Markus Fasel on 21.07.15. // // -#include "itsmft/its/DigitWriteoutBuffer.h" -#include // for TClonesArray +#include "include/DigitWriteoutBuffer.h" #include "FairRootManager.h" // for FairRootManager +#include "TClonesArray.h" // for TClonesArray #include "TString.h" // for TString class FairTimeStamp; @@ -19,24 +19,24 @@ DigitWriteoutBuffer::DigitWriteoutBuffer(): FairWriteoutBuffer(), fData_map() { - + } DigitWriteoutBuffer::DigitWriteoutBuffer(TString branchname, TString foldername, Bool_t persistance): FairWriteoutBuffer(branchname, "AliceO2::ITS::Digit", foldername, persistance), fData_map() { - + } DigitWriteoutBuffer::~DigitWriteoutBuffer(){ - + } void DigitWriteoutBuffer::AddNewDataToTClonesArray(FairTimeStamp *timestamp){ FairRootManager *iohandler = FairRootManager::Instance(); TClonesArray *outputarray = iohandler->GetTClonesArray(fBranchName); - + new ((*outputarray)[outputarray->GetEntries()])Digit(*(static_cast(timestamp))); } diff --git a/itsmft/its/simulation/src/Digitizer.cxx b/itsmft/its/simulation/src/Digitizer.cxx index c38006009802a..6e9305865a73d 100644 --- a/itsmft/its/simulation/src/Digitizer.cxx +++ b/itsmft/its/simulation/src/Digitizer.cxx @@ -1,14 +1,16 @@ /// \file AliITSUpgradeDigitizer.cxx /// \brief Digitizer for the upgrated ITS -#include -#include "itsmft/its/Digitizer.h" +#include "include/Digitizer.h" +#include "include/Point.h" // for Point +#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "include/Digit.h" // for Digit +#include "include/DigitContainer.h" // for DigitContainer + #include "FairLogger.h" // for LOG -#include "Point.h" // for Point #include "TClonesArray.h" // for TClonesArray #include "TCollection.h" // for TIter -#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo -#include "itsmft/its/Digit.h" // for Digit -#include "itsmft/its/DigitContainer.h" // for DigitContainer + +#include ClassImp(AliceO2::ITS::Digitizer) @@ -22,7 +24,7 @@ fGain(1.) { fGeometry = new UpgradeGeometryTGeo(kTRUE, kTRUE); } - + Digitizer::~Digitizer(){ delete fGeometry; if(fDigitContainer) delete fDigitContainer; @@ -30,7 +32,7 @@ Digitizer::~Digitizer(){ void Digitizer::Init(){ fDigitContainer = new DigitContainer(fGeometry); - + for (int i = 0; i < fGeometry->getNumberOfChips(); i++) { fChipContainer.push_back(Chip(i, fGeometry)); } @@ -39,7 +41,7 @@ void Digitizer::Init(){ DigitContainer *Digitizer::Process(TClonesArray *points){ fDigitContainer->Reset(); ClearChips(); - + // Assign points to chips for (TIter pointiter = TIter(points).Begin(); pointiter != TIter::End(); ++pointiter) { Point *itspoint = dynamic_cast(*pointiter); @@ -49,7 +51,7 @@ DigitContainer *Digitizer::Process(TClonesArray *points){ } fChipContainer[itspoint->GetDetectorID()].InsertPoint(itspoint); } - + // Convert points to summable digits for (TIter pointiter = TIter(points).Begin(); pointiter != TIter::End(); ++pointiter) { Point *inputpoint = dynamic_cast(*pointiter); diff --git a/itsmft/its/simulation/src/DigitizerTask.cxx b/itsmft/its/simulation/src/DigitizerTask.cxx index 27bdfb5ce928e..2eec2b4071fcc 100644 --- a/itsmft/its/simulation/src/DigitizerTask.cxx +++ b/itsmft/its/simulation/src/DigitizerTask.cxx @@ -6,13 +6,14 @@ // // -#include "itsmft/its/DigitizerTask.h" -#include // for TClonesArray +#include "include/DigitizerTask.h" +#include "include/DigitContainer.h" // for DigitContainer +#include "include/Digitizer.h" // for Digitizer + +#include "TObject.h" // for TObject +#include "TClonesArray.h" // for TClonesArray #include "FairLogger.h" // for LOG #include "FairRootManager.h" // for FairRootManager -#include "TObject.h" // for TObject -#include "itsmft/its/DigitContainer.h" // for DigitContainer -#include "itsmft/its/Digitizer.h" // for Digitizer ClassImp(AliceO2::ITS::DigitizerTask) @@ -41,17 +42,17 @@ InitStatus DigitizerTask::Init(){ LOG(ERROR) << "Could not instantiate FairRootManager. Exiting ..." << FairLogger::endl; return kERROR; } - + fPointsArray = dynamic_cast(mgr->GetObject("ITSPoint")); if (!fPointsArray) { LOG(ERROR) << "ITS points not registered in the FairRootManager. Exiting ..." << FairLogger::endl; return kERROR; } - + // Register output container fDigitsArray = new TClonesArray("AliceO2::ITS::Digit"); mgr->Register("ITSDigit", "ITS", fDigitsArray, kTRUE); - + fDigitizer->Init(); return kSUCCESS; } @@ -59,8 +60,7 @@ InitStatus DigitizerTask::Init(){ void DigitizerTask::Exec(Option_t *option){ fDigitsArray->Delete(); LOG(DEBUG) << "Running digitization on new event" << FairLogger::endl; - + DigitContainer *digits = fDigitizer->Process(fPointsArray); digits->FillOutputContainer(fDigitsArray); } - diff --git a/itsmft/its/simulation/src/GeometryHandler.cxx b/itsmft/its/simulation/src/GeometryHandler.cxx index 19d35a740ad11..b378949b20e9b 100644 --- a/itsmft/its/simulation/src/GeometryHandler.cxx +++ b/itsmft/its/simulation/src/GeometryHandler.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the GeometryHandler class /// \author F. Uhlig -#include "GeometryHandler.h" +#include "include/GeometryHandler.h" #include "FairLogger.h" // for FairLogger, etc diff --git a/itsmft/its/simulation/src/GeometryManager.cxx b/itsmft/its/simulation/src/GeometryManager.cxx index bf90869caa404..8a4697297683e 100644 --- a/itsmft/its/simulation/src/GeometryManager.cxx +++ b/itsmft/its/simulation/src/GeometryManager.cxx @@ -1,17 +1,21 @@ /// \file GeometryManager.cxx /// \brief Implementation of the GeometryManager class -#include "GeometryManager.h" -#include // for TGeoManager -#include // for TGeoHMatrix -#include // for TGeoPhysicalNode, TGeoPNEntry -#include // for NULL +#include "include/GeometryManager.h" + #include "FairLogger.h" // for LOG + +#include "TGeoManager.h" // for TGeoManager +#include "TGeoMatrix.h" // for TGeoHMatrix +#include "TGeoPhysicalNode.h" // for TGeoPhysicalNode, TGeoPNEntry #include "TCollection.h" // for TIter #include "TGeoNode.h" // for TGeoNode #include "TObjArray.h" // for TObjArray #include "TObject.h" // for TObject + +#include "stddef.h" // for NULL + using namespace AliceO2::ITS; ClassImp(AliceO2::ITS::GeometryManager) diff --git a/itsmft/its/simulation/src/Point.cxx b/itsmft/its/simulation/src/Point.cxx index 5062e1cd5abd7..9b7c4d9e3680a 100644 --- a/itsmft/its/simulation/src/Point.cxx +++ b/itsmft/its/simulation/src/Point.cxx @@ -1,7 +1,7 @@ /// \file Point.cxx /// \brief Implementation of the Point class -#include "Point.h" +#include "include/Point.h" #include diff --git a/itsmft/its/simulation/src/Segmentation.cxx b/itsmft/its/simulation/src/Segmentation.cxx index 029c0429202b1..e0e07aed8a3e7 100644 --- a/itsmft/its/simulation/src/Segmentation.cxx +++ b/itsmft/its/simulation/src/Segmentation.cxx @@ -1,8 +1,8 @@ /// \file Segmentation.cxx /// \brief Implementation of the Segmentation class -#include "Segmentation.h" -#include // for TF1 +#include "include/Segmentation.h" +#include "TF1.h" // for TF1 using namespace AliceO2::ITS; diff --git a/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx b/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx index 2892c5f4f9bf5..2531382c8c484 100644 --- a/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx +++ b/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx @@ -4,28 +4,33 @@ /// \author ruben.shahoyan@cern.ch - adapted to ITSupg 18/07/2012 // ATTENTION: In opposite to old AliITSgeomTGeo, all indices start from 0, not from 1!!! -#include "UpgradeGeometryTGeo.h" +#include "include/UpgradeGeometryTGeo.h" +#include "include/UpgradeSegmentationPixel.h" // for UpgradeSegmentationPixel +#include "include/GeometryManager.h" // for GeometryManager +#include "include/Segmentation.h" // for Segmentation + + +#include "FairLogger.h" // for LOG + #include // for TGeoBBox #include // for gGeoManager, TGeoManager #include // for TGeoPNEntry, TGeoPhysicalNode #include // for TGeoShape #include // for Nint, ATan2, RadToDeg #include // for TString, Form -#include // for isdigit -#include // for snprintf, NULL, printf -#include // for strstr, strlen -#include "FairLogger.h" // for LOG -#include "GeometryManager.h" // for GeometryManager -#include "Segmentation.h" // for Segmentation #include "TGeoMatrix.h" // for TGeoHMatrix #include "TGeoNode.h" // for TGeoNode, TGeoNodeMatrix #include "TGeoVolume.h" // for TGeoVolume #include "TMathBase.h" // for Max #include "TObjArray.h" // for TObjArray #include "TObject.h" // for TObject -#include "UpgradeSegmentationPixel.h" // for UpgradeSegmentationPixel #include "TClass.h" // for TClass +#include // for isdigit +#include // for snprintf, NULL, printf +#include // for strstr, strlen + + using namespace TMath; using namespace AliceO2::ITS; diff --git a/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx b/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx index ff0e06fba8c76..c03934e5353f1 100644 --- a/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx +++ b/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx @@ -1,7 +1,9 @@ /// \file UpgradeSegmentationPixel.cxx /// \brief Implementation of the UpgradeSegmentationPixel class -#include "UpgradeSegmentationPixel.h" +#include "include/UpgradeSegmentationPixel.h" +#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo + #include // for TFile #include // for TObjArray #include // for TString @@ -9,7 +11,6 @@ #include // for printf #include "TMathBase.h" // for Abs, Max, Min #include "TObject.h" // for TObject -#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo using namespace TMath; using namespace AliceO2::ITS; diff --git a/itsmft/its/simulation/src/UpgradeV1Layer.cxx b/itsmft/its/simulation/src/UpgradeV1Layer.cxx index e25379dab2e63..659262b092c8e 100644 --- a/itsmft/its/simulation/src/UpgradeV1Layer.cxx +++ b/itsmft/its/simulation/src/UpgradeV1Layer.cxx @@ -3,7 +3,12 @@ /// \author Mario Sitta /// \author Chinorat Kobdaj (kobdaj@g.sut.ac.th) -#include "UpgradeV1Layer.h" +#include "include/UpgradeV1Layer.h" +#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "include/Detector.h" // for Detector, etc + +#include "FairLogger.h" // for LOG + #include // for TGeoArb8 #include // for TGeoBBox #include // for TGeoConeSeg, TGeoCone @@ -13,12 +18,13 @@ #include // for TGeoTube, TGeoTubeSeg #include // for TGeoVolume, TGeoVolumeAssembly #include // for TGeoXtru +#include "TMathBase.h" // for Abs #include // for Sin, RadToDeg, DegToRad, Cos, Tan, etc + + + #include // for snprintf -#include "Detector.h" // for Detector, etc -#include "FairLogger.h" // for LOG -#include "TMathBase.h" // for Abs -#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo + class TGeoMedium; using namespace TMath; diff --git a/itsmft/its/simulation/src/V11Geometry.cxx b/itsmft/its/simulation/src/V11Geometry.cxx index 7e7629ca770a4..43d5868724ddd 100644 --- a/itsmft/its/simulation/src/V11Geometry.cxx +++ b/itsmft/its/simulation/src/V11Geometry.cxx @@ -2,7 +2,11 @@ /// \brief Implementation of the V11Geometry class -#include "V11Geometry.h" +#include "include/V11Geometry.h" + +#include "FairLogger.h" // for LOG + + #include // for TArc #include // for TArrow #include // for TCanvas @@ -15,14 +19,13 @@ #include // for TPolyLine #include // for TPolyMarker #include // for TText -#include // for printf, snprintf -#include "FairLogger.h" // for LOG #include "TMath.h" // for DegToRad, Cos, Sqrt, ATan2, Sin, Tan, Pi, etc #include "TMathBase.h" // for Max, Min, Abs +#include // for TGeoTubeSeg +#include // for printf, snprintf #include -#include // for TGeoTubeSeg using std::endl; diff --git a/itsmft/its/simulation/src/itsSimLinkDef.h b/itsmft/its/simulation/src/itsSimulationLinkDef.h similarity index 100% rename from itsmft/its/simulation/src/itsSimLinkDef.h rename to itsmft/its/simulation/src/itsSimulationLinkDef.h From c3f9cf00261ba6db0fc2c57b447a2306b80e5537 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 25 Apr 2016 14:42:00 +0200 Subject: [PATCH 065/135] Re-arrange the repository adapt the includes to the new structure in tpc --- Base/CMakeLists.txt | 3 +- Base/src/Detector.cxx | 2 +- Base/src/TrackReference.cxx | 2 +- tpc/CMakeLists.txt | 56 ++++++------------- tpc/base/CMakeLists.txt | 36 ++++++++++++ tpc/{ => base/include}/ContainerFactory.h | 2 +- tpc/{ => base/src}/ContainerFactory.cxx | 2 +- tpc/base/src/tpcBaseLinkDef.h | 9 +++ tpc/reconstruction/CMakeLists.txt | 37 ++++++++++++ tpc/reconstruction/include/README.md | 2 + tpc/reconstruction/src/README.md | 2 + .../src/tpcReconstructionLinkDef.h | 9 +++ tpc/simulation/CMakeLists.txt | 38 +++++++++++++ tpc/{ => simulation/include}/Detector.h | 4 +- tpc/{ => simulation/include}/Point.h | 0 tpc/{ => simulation/src}/Detector.cxx | 11 ++-- tpc/{ => simulation/src}/Point.cxx | 3 +- .../src/tpcSimulationLinkDef.h} | 2 +- 18 files changed, 167 insertions(+), 53 deletions(-) create mode 100644 tpc/base/CMakeLists.txt rename tpc/{ => base/include}/ContainerFactory.h (99%) rename tpc/{ => base/src}/ContainerFactory.cxx (97%) create mode 100644 tpc/base/src/tpcBaseLinkDef.h create mode 100644 tpc/reconstruction/CMakeLists.txt create mode 100644 tpc/reconstruction/include/README.md create mode 100644 tpc/reconstruction/src/README.md create mode 100644 tpc/reconstruction/src/tpcReconstructionLinkDef.h create mode 100644 tpc/simulation/CMakeLists.txt rename tpc/{ => simulation/include}/Detector.h (98%) rename tpc/{ => simulation/include}/Point.h (100%) rename tpc/{ => simulation/src}/Detector.cxx (97%) rename tpc/{ => simulation/src}/Point.cxx (98%) rename tpc/{TpcLinkDef.h => simulation/src/tpcSimulationLinkDef.h} (79%) diff --git a/Base/CMakeLists.txt b/Base/CMakeLists.txt index e15605f27c4be..9b912d6b760e2 100644 --- a/Base/CMakeLists.txt +++ b/Base/CMakeLists.txt @@ -1,6 +1,5 @@ set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/Base/src - ${CMAKE_SOURCE_DIR}/Base/include + ${CMAKE_SOURCE_DIR}/Base ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Base/src/Detector.cxx b/Base/src/Detector.cxx index 26ec81e43b848..59d74d3089c77 100644 --- a/Base/src/Detector.cxx +++ b/Base/src/Detector.cxx @@ -1,7 +1,7 @@ /// \file Detector.cxx /// \brief Implementation of the Detector class -#include "Detector.h" +#include "include/Detector.h" #include // for TVirtualMC, gMC #include "TString.h" // for TString diff --git a/Base/src/TrackReference.cxx b/Base/src/TrackReference.cxx index 7ff07edb3ca0a..d22dcde4a738e 100644 --- a/Base/src/TrackReference.cxx +++ b/Base/src/TrackReference.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the TrackReference class /// \author Sylwester Radomski (S.Radomski@gsi.de) GSI, Jan 31, 2003 -#include "TrackReference.h" +#include "include/TrackReference.h" #include "TVirtualMC.h" // for TVirtualMC, gMC #include diff --git a/tpc/CMakeLists.txt b/tpc/CMakeLists.txt index 51ea455c6c9de..1763c35665f45 100644 --- a/tpc/CMakeLists.txt +++ b/tpc/CMakeLists.txt @@ -1,39 +1,19 @@ -# Create a library called "libO2tpc" which includes the source files given in -# the array . -# The extension is already found. Any number of sources could be listed here. +# ************************************************************************** +# * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. * +# * * +# * Author: The ALICE Off-line Project. * +# * Contributors are mentioned in the code where appropriate. * +# * * +# * Permission to use, copy, modify and distribute this software and its * +# * documentation strictly for non-commercial purposes is hereby granted * +# * without fee, provided that the above copyright notice appears in all * +# * copies and that both the copyright notice and this permission notice * +# * appear in the supporting documentation. The authors make no claims * +# * about the suitability of this software for any purpose. It is * +# * provided "as is" without express or implied warranty. * +# ************************************************************************** -set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/ -${CMAKE_SOURCE_DIR}/tpc -) - -set(SYSTEM_INCLUDE_DIRECTORIES -${ROOT_INCLUDE_DIR} -${BASE_INCLUDE_DIRECTORIES} -${Boost_INCLUDE_DIRS} -${FAIRROOT_INCLUDE_DIR} -${AlFa_DIR}/include -) - -include_directories( ${INCLUDE_DIRECTORIES}) -include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) - -set(LINK_DIRECTORIES -${ROOT_LIBRARY_DIR} -${FAIRROOT_LIBRARY_DIR} -) - -link_directories( ${LINK_DIRECTORIES}) - -set(SRCS -ContainerFactory.cxx -Point.cxx -Detector.cxx -) - -Set(LINKDEF TpcLinkDef.h) -Set(LIBRARY_NAME tpc) -Set(DEPENDENCIES - Base -) -GENERATE_LIBRARY() +# Libraries +add_subdirectory(base) +#add_subdirectory(reconstruction) +add_subdirectory(simulation) diff --git a/tpc/base/CMakeLists.txt b/tpc/base/CMakeLists.txt new file mode 100644 index 0000000000000..fa1d040e31e76 --- /dev/null +++ b/tpc/base/CMakeLists.txt @@ -0,0 +1,36 @@ + +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR}/ + ${CMAKE_SOURCE_DIR}/tpc/base +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${ROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} +) +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + src/ContainerFactory.cxx +) + + +set(HEADERS + include/ContainerFactory.h +) +Set(LINKDEF src/tpcBaseLinkDef.h) +Set(LIBRARY_NAME tpcBase) +Set(DEPENDENCIES + Base +) +GENERATE_LIBRARY() diff --git a/tpc/ContainerFactory.h b/tpc/base/include/ContainerFactory.h similarity index 99% rename from tpc/ContainerFactory.h rename to tpc/base/include/ContainerFactory.h index f8cc182345efd..725e7a843a76b 100644 --- a/tpc/ContainerFactory.h +++ b/tpc/base/include/ContainerFactory.h @@ -9,7 +9,7 @@ class FairContainer; namespace AliceO2 { namespace TPC { - + class ContainerFactory : public FairContFact diff --git a/tpc/ContainerFactory.cxx b/tpc/base/src/ContainerFactory.cxx similarity index 97% rename from tpc/ContainerFactory.cxx rename to tpc/base/src/ContainerFactory.cxx index 75e8b5fe063f0..4385d4074ec18 100644 --- a/tpc/ContainerFactory.cxx +++ b/tpc/base/src/ContainerFactory.cxx @@ -1,5 +1,5 @@ -#include "ContainerFactory.h" +#include "include/ContainerFactory.h" #include "FairRuntimeDb.h" // for FairRuntimeDb #include "TString.h" // for TString #include diff --git a/tpc/base/src/tpcBaseLinkDef.h b/tpc/base/src/tpcBaseLinkDef.h new file mode 100644 index 0000000000000..96d2e4cde696d --- /dev/null +++ b/tpc/base/src/tpcBaseLinkDef.h @@ -0,0 +1,9 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class AliceO2::TPC::ContainerFactory; + +#endif diff --git a/tpc/reconstruction/CMakeLists.txt b/tpc/reconstruction/CMakeLists.txt new file mode 100644 index 0000000000000..d6ce66428e157 --- /dev/null +++ b/tpc/reconstruction/CMakeLists.txt @@ -0,0 +1,37 @@ +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/tpc +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + +) + +set(HEADERS + +) +Set(LINKDEF src/tpcReconstructionLinkDef.h) +Set(LIBRARY_NAME tpcReconstruction) +Set(DEPENDENCIES + tpcBase +) + +GENERATE_LIBRARY() diff --git a/tpc/reconstruction/include/README.md b/tpc/reconstruction/include/README.md new file mode 100644 index 0000000000000..cefd65a356cbc --- /dev/null +++ b/tpc/reconstruction/include/README.md @@ -0,0 +1,2 @@ +# Src directory: +Here you find the source files and the private headers diff --git a/tpc/reconstruction/src/README.md b/tpc/reconstruction/src/README.md new file mode 100644 index 0000000000000..cefd65a356cbc --- /dev/null +++ b/tpc/reconstruction/src/README.md @@ -0,0 +1,2 @@ +# Src directory: +Here you find the source files and the private headers diff --git a/tpc/reconstruction/src/tpcReconstructionLinkDef.h b/tpc/reconstruction/src/tpcReconstructionLinkDef.h new file mode 100644 index 0000000000000..e757f31c18a60 --- /dev/null +++ b/tpc/reconstruction/src/tpcReconstructionLinkDef.h @@ -0,0 +1,9 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + + + +#endif diff --git a/tpc/simulation/CMakeLists.txt b/tpc/simulation/CMakeLists.txt new file mode 100644 index 0000000000000..4d5f5d212abe0 --- /dev/null +++ b/tpc/simulation/CMakeLists.txt @@ -0,0 +1,38 @@ + +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR}/ + ${CMAKE_SOURCE_DIR}/tpc +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${ROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} +) +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + src/Detector.cxx + src/Point.cxx + +) + +set(HEADERS + include/Detector.h + include/Point.h +) +Set(LINKDEF src/tpcSimulationLinkDef.h) +Set(LIBRARY_NAME tpcSimulation) +Set(DEPENDENCIES + tpcBase +) +GENERATE_LIBRARY() diff --git a/tpc/Detector.h b/tpc/simulation/include/Detector.h similarity index 98% rename from tpc/Detector.h rename to tpc/simulation/include/Detector.h index 03a0d2f9f8f3d..fe307bc2516e3 100644 --- a/tpc/Detector.h +++ b/tpc/simulation/include/Detector.h @@ -1,7 +1,7 @@ #ifndef AliceO2_TPC_Detector_H_ #define AliceO2_TPC_Detector_H_ -#include "Base/Detector.h" // for Detector +#include "Base/include/Detector.h" // for Detector #include "Rtypes.h" // for Int_t, Double32_t, Double_t, Bool_t, etc #include "TLorentzVector.h" // for TLorentzVector #include "TVector3.h" // for TVector3 @@ -14,7 +14,7 @@ namespace AliceO2 { namespace TPC { class Point; } } // lines 15-15 namespace AliceO2 { namespace TPC { class Point; - + class Detector: public AliceO2::Base::Detector { public: diff --git a/tpc/Point.h b/tpc/simulation/include/Point.h similarity index 100% rename from tpc/Point.h rename to tpc/simulation/include/Point.h diff --git a/tpc/Detector.cxx b/tpc/simulation/src/Detector.cxx similarity index 97% rename from tpc/Detector.cxx rename to tpc/simulation/src/Detector.cxx index b2474a8625f88..097e08ae5d3cd 100644 --- a/tpc/Detector.cxx +++ b/tpc/simulation/src/Detector.cxx @@ -1,14 +1,17 @@ -#include "Detector.h" -#include // for NULL +#include "include/Detector.h" +#include "include/Point.h" // for Point + #include "Data/DetectorList.h" // for DetectorId::kAliTpc #include "Data/Stack.h" // for Stack + #include "FairRootManager.h" // for FairRootManager #include "FairVolume.h" // for FairVolume -#include "Point.h" // for Point + #include "TClonesArray.h" // for TClonesArray #include "TVirtualMC.h" // for TVirtualMC, gMC #include "TVirtualMCStack.h" // for TVirtualMCStack +#include // for NULL #include using std::cout; using std::endl; @@ -84,7 +87,7 @@ Bool_t Detector::ProcessHits(FairVolume* vol) // Increment number of Detector det points in TParticle AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)TVirtualMC::GetMC()->GetStack(); stack->AddPoint(kAliTpc); - + } return kTRUE; diff --git a/tpc/Point.cxx b/tpc/simulation/src/Point.cxx similarity index 98% rename from tpc/Point.cxx rename to tpc/simulation/src/Point.cxx index 6b74b52f068cc..30793319a2c59 100644 --- a/tpc/Point.cxx +++ b/tpc/simulation/src/Point.cxx @@ -1,4 +1,4 @@ -#include "Point.h" +#include "include/Point.h" #include using std::cout; @@ -42,4 +42,3 @@ void Point::Print(const Option_t* opt) const // ------------------------------------------------------------------------- ClassImp(Point) - diff --git a/tpc/TpcLinkDef.h b/tpc/simulation/src/tpcSimulationLinkDef.h similarity index 79% rename from tpc/TpcLinkDef.h rename to tpc/simulation/src/tpcSimulationLinkDef.h index 257b9636072c2..e3830d7790d5a 100644 --- a/tpc/TpcLinkDef.h +++ b/tpc/simulation/src/tpcSimulationLinkDef.h @@ -4,7 +4,7 @@ #pragma link off all classes; #pragma link off all functions; -#pragma link C++ class AliceO2::TPC::ContainerFactory; + #pragma link C++ class AliceO2::TPC::Detector+; #pragma link C++ class AliceO2::TPC::Point+; From 40eb83326b520510c39f6566c3e91a7415a045b6 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 25 Apr 2016 14:42:00 +0200 Subject: [PATCH 066/135] Re-arrange the repository move the its test to itsmft directory and re-arrange the structure --- CMakeLists.txt | 1 - itsmft/CMakeLists.txt | 1 + itsmft/test/CMakeLists.txt | 1 + itsmft/test/HitAnalysis/CMakeLists.txt | 35 ++++++++++++ .../test/HitAnalysis/include}/HitAnalysis.h | 0 .../test/HitAnalysis/src}/HitAnalysis.cxx | 55 ++++++++++--------- .../test/HitAnalysis/src}/testitsLinkDef.h | 0 test/CMakeLists.txt | 1 - test/its/CMakeLists.txt | 33 ----------- tpc/simulation/CMakeLists.txt | 4 ++ 10 files changed, 71 insertions(+), 60 deletions(-) create mode 100644 itsmft/test/CMakeLists.txt create mode 100644 itsmft/test/HitAnalysis/CMakeLists.txt rename {test/its => itsmft/test/HitAnalysis/include}/HitAnalysis.h (100%) rename {test/its => itsmft/test/HitAnalysis/src}/HitAnalysis.cxx (93%) rename {test/its => itsmft/test/HitAnalysis/src}/testitsLinkDef.h (100%) delete mode 100644 test/CMakeLists.txt delete mode 100644 test/its/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index c0f436eccde6f..e478ce03d2dbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,7 +222,6 @@ add_subdirectory (field) add_subdirectory (devices) add_subdirectory (macro) add_subdirectory (o2cdb) -add_subdirectory (test) add_subdirectory (o2qa) add_subdirectory (DataFormats) diff --git a/itsmft/CMakeLists.txt b/itsmft/CMakeLists.txt index 5ec32d316b9e1..ae754e8e80946 100644 --- a/itsmft/CMakeLists.txt +++ b/itsmft/CMakeLists.txt @@ -17,5 +17,6 @@ add_subdirectory(common) add_subdirectory(its) add_subdirectory(mft) +add_subdirectory(test) message(STATUS "itsmft enabled") diff --git a/itsmft/test/CMakeLists.txt b/itsmft/test/CMakeLists.txt new file mode 100644 index 0000000000000..24abf8234a11e --- /dev/null +++ b/itsmft/test/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(HitAnalysis) diff --git a/itsmft/test/HitAnalysis/CMakeLists.txt b/itsmft/test/HitAnalysis/CMakeLists.txt new file mode 100644 index 0000000000000..67c302a17ac8c --- /dev/null +++ b/itsmft/test/HitAnalysis/CMakeLists.txt @@ -0,0 +1,35 @@ +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/include + ${CMAKE_SOURCE_DIR}/itsmft/test/HitAnalysis +) +set(SYSTEM_INCLUDE_DIRECTORIES + ${ROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + src/HitAnalysis.cxx +) +set(HEADERS + include/HitAnalysis.h +) +Set(LINKDEF src/testitsLinkDef.h) +Set(LIBRARY_NAME testits) +Set(DEPENDENCIES + AliceO2Base its +) + +GENERATE_LIBRARY() diff --git a/test/its/HitAnalysis.h b/itsmft/test/HitAnalysis/include/HitAnalysis.h similarity index 100% rename from test/its/HitAnalysis.h rename to itsmft/test/HitAnalysis/include/HitAnalysis.h diff --git a/test/its/HitAnalysis.cxx b/itsmft/test/HitAnalysis/src/HitAnalysis.cxx similarity index 93% rename from test/its/HitAnalysis.cxx rename to itsmft/test/HitAnalysis/src/HitAnalysis.cxx index 2d662b33aa02d..8270666db70ee 100644 --- a/test/its/HitAnalysis.cxx +++ b/itsmft/test/HitAnalysis/src/HitAnalysis.cxx @@ -6,20 +6,26 @@ // // -#include -#include "TMath.h" -#include "test/its/HitAnalysis.h" -#include // for TClonesArray -#include // for TFile -#include // for TH1, TH1D, TH1F +#include "include/HitAnalysis.h" + #include "FairLogger.h" // for LOG #include "FairRootManager.h" // for FairRootManager + + +#include "TClonesArray.h" // for TClonesArray +#include "TFile.h" // for TFile +#include "TH1.h" // for TH1, TH1D, TH1F #include "TCollection.h" // for TIter #include "TObject.h" // for TObject -#include "itsmft/its/Chip.h" // for Chip, Chip::IndexException -#include "itsmft/its/Point.h" // for Point -#include "itsmft/its/Segmentation.h" // for Segmentation -#include "itsmft/its/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "TMath.h" + + +#include "itsmft/its/simulation/include/Chip.h" // for Chip, Chip::IndexException +#include "itsmft/its/simulation/include/Point.h" // for Point +#include "itsmft/its/simulation/include/Segmentation.h" // for Segmentation +#include "itsmft/its/simulation/include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo + +#include using namespace AliceO2::ITS; @@ -61,22 +67,22 @@ InitStatus HitAnalysis::Init(){ LOG(ERROR) << "Could not instantiate FairRootManager. Exiting ..." << FairLogger::endl; return kERROR; } - + fPointsArray = dynamic_cast(mgr->GetObject("ITSPoint")); if (!fPointsArray) { LOG(ERROR) << "ITS points not registered in the FairRootManager. Exiting ..." << FairLogger::endl; return kERROR; } - + // Create geometry, initialize chip array fGeometry = new UpgradeGeometryTGeo(kTRUE, kTRUE); - + if (fProcessChips){ for (int chipid = 0; chipid < fGeometry->getNumberOfChips(); chipid++) { fChips[chipid] = new Chip(chipid, fGeometry); } LOG(DEBUG) << "Created " << fChips.size() << " chips." << FairLogger::endl; - + // Test whether indices match: LOG(DEBUG) << "Testing for integrity of chip indices" << FairLogger::endl; for (int i = 0; i < fGeometry->getNumberOfChips(); i++) { @@ -86,7 +92,7 @@ InitStatus HitAnalysis::Init(){ } LOG(DEBUG) << "Test for chip index integrity finished" << FairLogger::endl; } - + // Create histograms // Ranges to be adjusted Double_t maxLengthX(-1.), maxLengthY(-1.), maxLengthZ(-1.); @@ -118,10 +124,10 @@ void HitAnalysis::Exec(Option_t *option){ //for (auto chipiter : fChips) { // chipiter.second.Clear(); //} - + // Add test: Count number of hits in the points array (cannot be larger then the entries in the tree) fHitCounter->Fill(1., fPointsArray->GetEntries()); - + if (fProcessChips) { ProcessChips(); } else { @@ -145,7 +151,7 @@ void HitAnalysis::ProcessChips(){ LOG(ERROR) << "Chip index " << inditer << FairLogger::endl; } } - + // Assign hits to chips for (TIter pointIter = TIter(fPointsArray).Begin(); pointIter != TIter::End(); ++pointIter) { Point *point = static_cast(*pointIter); @@ -155,7 +161,7 @@ void HitAnalysis::ProcessChips(){ LOG(ERROR) << e.what() << FairLogger::endl; } } - + // Add test: Total number of hits assigned to chips must be the same as the size of the points array Int_t nHitsAssigned(0); for (auto chipiter : fChips) { @@ -164,10 +170,10 @@ void HitAnalysis::ProcessChips(){ if (nHitsAssigned != fPointsArray->GetEntries()) { LOG(ERROR) << "Number of points mismatch: Read(" << fPointsArray->GetEntries() << "), Assigned(" <GetX(), p->GetY(), p->GetZ()}, pstartglob[3] = {p->GetStartX(), p->GetStartY(), p->GetStartZ()}; - + //fGeometry->GetMatrix(p->GetDetectorID())->MasterToLocal(phitglob, phitloc); //fGeometry->GetMatrix(p->GetDetectorID())->MasterToLocal(pstartglob, pstartloc); fGeometry->globalToLocal(p->GetDetectorID(), phitglob, phitloc); fGeometry->globalToLocal(p->GetDetectorID(), pstartglob, pstartloc); - + fLocalX0->Fill(pstartloc[0]); fLocalY0->Fill(pstartloc[1]); fLocalZ0->Fill(pstartloc[2]); @@ -221,7 +227,7 @@ void HitAnalysis::ProcessHits(){ void HitAnalysis::FinishTask(){ if( !fIsInitialized ) return; - + TFile *outfile = TFile::Open("hitanalysis.root", "RECREATE"); outfile->cd(); fLineSegment->Write(); @@ -235,4 +241,3 @@ void HitAnalysis::FinishTask(){ outfile->Close(); delete outfile; } - diff --git a/test/its/testitsLinkDef.h b/itsmft/test/HitAnalysis/src/testitsLinkDef.h similarity index 100% rename from test/its/testitsLinkDef.h rename to itsmft/test/HitAnalysis/src/testitsLinkDef.h diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt deleted file mode 100644 index ba9ae3dd06fd2..0000000000000 --- a/test/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(its) diff --git a/test/its/CMakeLists.txt b/test/its/CMakeLists.txt deleted file mode 100644 index fdfccbde25c56..0000000000000 --- a/test/its/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR} -${CMAKE_SOURCE_DIR}/its -${CMAKE_SOURCE_DIR}/header -${CMAKE_SOURCE_DIR}/test/its -${BASE_INCLUDE_DIRECTORIES} -${Boost_INCLUDE_DIRS} -${FAIRROOT_INCLUDE_DIR} -${AlFa_DIR}/include -${ROOT_INCLUDE_DIR} -) - -include_directories( ${INCLUDE_DIRECTORIES}) - -set(LINK_DIRECTORIES -${ROOT_LIBRARY_DIR} -${FAIRROOT_LIBRARY_DIR} -) - -link_directories( ${LINK_DIRECTORIES}) - -set(SRCS -HitAnalysis.cxx -) - -Set(LINKDEF testitsLinkDef.h) -Set(LIBRARY_NAME testits) -Set(DEPENDENCIES - AliceO2Base its -) - -GENERATE_LIBRARY() - diff --git a/tpc/simulation/CMakeLists.txt b/tpc/simulation/CMakeLists.txt index 4d5f5d212abe0..4494a7b928d73 100644 --- a/tpc/simulation/CMakeLists.txt +++ b/tpc/simulation/CMakeLists.txt @@ -1,7 +1,11 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ +<<<<<<< HEAD ${CMAKE_SOURCE_DIR}/tpc +======= + ${CMAKE_SOURCE_DIR}/tpc/simulation +>>>>>>> Re-arrange the repository ) set(SYSTEM_INCLUDE_DIRECTORIES From f8a8f07012ee3ae49bf54c39092a77327575e465 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 26 Apr 2016 10:28:35 +0200 Subject: [PATCH 067/135] Re-arrange the repository Adapt the libraries names --- itsmft/test/HitAnalysis/CMakeLists.txt | 2 +- tpc/simulation/CMakeLists.txt | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/itsmft/test/HitAnalysis/CMakeLists.txt b/itsmft/test/HitAnalysis/CMakeLists.txt index 67c302a17ac8c..bb184933285aa 100644 --- a/itsmft/test/HitAnalysis/CMakeLists.txt +++ b/itsmft/test/HitAnalysis/CMakeLists.txt @@ -29,7 +29,7 @@ set(HEADERS Set(LINKDEF src/testitsLinkDef.h) Set(LIBRARY_NAME testits) Set(DEPENDENCIES - AliceO2Base its + AliceO2Base itsSimulation itsBase ) GENERATE_LIBRARY() diff --git a/tpc/simulation/CMakeLists.txt b/tpc/simulation/CMakeLists.txt index 4494a7b928d73..fe7f24662979e 100644 --- a/tpc/simulation/CMakeLists.txt +++ b/tpc/simulation/CMakeLists.txt @@ -1,11 +1,8 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ -<<<<<<< HEAD ${CMAKE_SOURCE_DIR}/tpc -======= ${CMAKE_SOURCE_DIR}/tpc/simulation ->>>>>>> Re-arrange the repository ) set(SYSTEM_INCLUDE_DIRECTORIES From 5d4a802b56437d0852ee79ff3b27ed6e3c745034 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Thu, 28 Apr 2016 14:44:17 +0200 Subject: [PATCH 068/135] Re-arrange the repository correct includes in CMakelists for dictionary generation --- itsmft/its/simulation/CMakeLists.txt | 1 + tpc/simulation/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/itsmft/its/simulation/CMakeLists.txt b/itsmft/its/simulation/CMakeLists.txt index 391264208942f..d63eb7718c034 100644 --- a/itsmft/its/simulation/CMakeLists.txt +++ b/itsmft/its/simulation/CMakeLists.txt @@ -2,6 +2,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/itsmft/its/base/ ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/ + ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/include ) diff --git a/tpc/simulation/CMakeLists.txt b/tpc/simulation/CMakeLists.txt index fe7f24662979e..0a758791f824a 100644 --- a/tpc/simulation/CMakeLists.txt +++ b/tpc/simulation/CMakeLists.txt @@ -3,6 +3,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ ${CMAKE_SOURCE_DIR}/tpc ${CMAKE_SOURCE_DIR}/tpc/simulation + ${CMAKE_SOURCE_DIR}/tpc/simulation/include ) set(SYSTEM_INCLUDE_DIRECTORIES From b6a0d35805b5c2bf686fcbafb81cb02c8c866082 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Thu, 28 Apr 2016 15:08:29 +0200 Subject: [PATCH 069/135] Re-arrange the repository Re-arrange the data directory fro simulation --- CMakeLists.txt | 1 - Data/CMakeLists.txt | 34 ----------------- DataFormats/CMakeLists.txt | 1 + DataFormats/simulation/CMakeLists.txt | 37 +++++++++++++++++++ .../simulation/include}/DetectorList.h | 0 .../simulation/include}/MCTrack.h | 0 .../simulation/include}/Stack.h | 4 +- .../simulation/src}/MCTrack.cxx | 2 +- .../simulation/src/SimulationDataLinkDef.h | 0 .../simulation/src}/Stack.cxx | 10 +++-- Generators/CMakeLists.txt | 2 +- itsmft/its/simulation/src/Detector.cxx | 4 +- tpc/simulation/src/Detector.cxx | 4 +- 13 files changed, 53 insertions(+), 46 deletions(-) delete mode 100644 Data/CMakeLists.txt create mode 100644 DataFormats/simulation/CMakeLists.txt rename {Data => DataFormats/simulation/include}/DetectorList.h (100%) rename {Data => DataFormats/simulation/include}/MCTrack.h (100%) rename {Data => DataFormats/simulation/include}/Stack.h (100%) rename {Data => DataFormats/simulation/src}/MCTrack.cxx (99%) rename Data/DataLinkDef.h => DataFormats/simulation/src/SimulationDataLinkDef.h (100%) rename {Data => DataFormats/simulation/src}/Stack.cxx (99%) diff --git a/CMakeLists.txt b/CMakeLists.txt index e478ce03d2dbe..e32738eca2107 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -210,7 +210,6 @@ endif(NOT ALICEO2_MODULAR_BUILD) # the project's entire directory structure. add_subdirectory (Base) -add_subdirectory (Data) if (PYTHIA8_FOUND AND Pythia6_FOUND) add_subdirectory (Generators) Endif () diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt deleted file mode 100644 index 44a39ca9d552c..0000000000000 --- a/Data/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/Data -) - -set(SYSTEM_INCLUDE_DIRECTORIES -${Boost_INCLUDE_DIRS} -${FAIRROOT_INCLUDE_DIR} -${AlFa_DIR}/include -${BASE_INCLUDE_DIRECTORIES} -${ROOT_INCLUDE_DIR} -) - -include_directories( ${INCLUDE_DIRECTORIES}) -include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) - -set(LINK_DIRECTORIES -${CMAKE_SOURCE_DIR}/Data -${FAIRROOT_LIBRARY_DIR} -${ROOT_LIBRARY_DIR} -) - -link_directories( ${LINK_DIRECTORIES}) - -set(SRCS -Stack.cxx -MCTrack.cxx -) - -Set(HEADERS ) -Set(LINKDEF DataLinkDef.h) -Set(LIBRARY_NAME O2Data) -Set(DEPENDENCIES Base EG Physics Core) - -GENERATE_LIBRARY() diff --git a/DataFormats/CMakeLists.txt b/DataFormats/CMakeLists.txt index ea3c28753faeb..7bc0855aca5a3 100644 --- a/DataFormats/CMakeLists.txt +++ b/DataFormats/CMakeLists.txt @@ -1,3 +1,4 @@ # @brief cmake setup for the DataFormats module of AliceO2 add_subdirectory (Generic) +add_subdirectory (simulation) diff --git a/DataFormats/simulation/CMakeLists.txt b/DataFormats/simulation/CMakeLists.txt new file mode 100644 index 0000000000000..5ad86f48ab6ba --- /dev/null +++ b/DataFormats/simulation/CMakeLists.txt @@ -0,0 +1,37 @@ +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR}/DataFormats/simulation + ${CMAKE_SOURCE_DIR}/DataFormats/simulation/include +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${Boost_INCLUDE_DIRS} + ${FAIRROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${ROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${CMAKE_SOURCE_DIR}/DataFormats/simulation/ + ${FAIRROOT_LIBRARY_DIR} + ${ROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS + src/Stack.cxx + src/MCTrack.cxx +) + +Set(HEADERS + include/Stack.h + include/MCTrack.h +) +Set(LINKDEF src/SimulationDataLinkDef.h) +Set(LIBRARY_NAME O2SimulationDataFormat) +Set(DEPENDENCIES Base EG Physics Core) + +GENERATE_LIBRARY() diff --git a/Data/DetectorList.h b/DataFormats/simulation/include/DetectorList.h similarity index 100% rename from Data/DetectorList.h rename to DataFormats/simulation/include/DetectorList.h diff --git a/Data/MCTrack.h b/DataFormats/simulation/include/MCTrack.h similarity index 100% rename from Data/MCTrack.h rename to DataFormats/simulation/include/MCTrack.h diff --git a/Data/Stack.h b/DataFormats/simulation/include/Stack.h similarity index 100% rename from Data/Stack.h rename to DataFormats/simulation/include/Stack.h index dcc7677ee21cc..5d05f28254d1a 100644 --- a/Data/Stack.h +++ b/DataFormats/simulation/include/Stack.h @@ -5,10 +5,10 @@ #ifndef ALICEO2_DATA_STACK_H_ #define ALICEO2_DATA_STACK_H_ -#include "FairGenericStack.h" - #include "DetectorList.h" +#include "FairGenericStack.h" + #include "Rtypes.h" #include "TMCProcess.h" diff --git a/Data/MCTrack.cxx b/DataFormats/simulation/src/MCTrack.cxx similarity index 99% rename from Data/MCTrack.cxx rename to DataFormats/simulation/src/MCTrack.cxx index 049ce9970127f..9a0b0e7eb023f 100644 --- a/Data/MCTrack.cxx +++ b/DataFormats/simulation/src/MCTrack.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the MCTrack class /// \author M. Al-Turany - June 2014 -#include "MCTrack.h" +#include "include/MCTrack.h" #include "FairLogger.h" #include "TDatabasePDG.h" diff --git a/Data/DataLinkDef.h b/DataFormats/simulation/src/SimulationDataLinkDef.h similarity index 100% rename from Data/DataLinkDef.h rename to DataFormats/simulation/src/SimulationDataLinkDef.h diff --git a/Data/Stack.cxx b/DataFormats/simulation/src/Stack.cxx similarity index 99% rename from Data/Stack.cxx rename to DataFormats/simulation/src/Stack.cxx index e0b02d2df1ca7..fff951972831c 100644 --- a/Data/Stack.cxx +++ b/DataFormats/simulation/src/Stack.cxx @@ -2,19 +2,23 @@ /// \brief Implementation of the Stack class /// \author M. Al-Turany - June 2014 -#include "Stack.h" -#include // for NULL +#include "include/Stack.h" +#include "include/MCTrack.h" // for MCTrack + #include "FairDetector.h" // for FairDetector #include "FairLogger.h" // for MESSAGE_ORIGIN, FairLogger #include "FairMCPoint.h" // for FairMCPoint #include "FairRootManager.h" // for FairRootManager -#include "MCTrack.h" // for MCTrack + + #include "TClonesArray.h" // for TClonesArray #include "TIterator.h" // for TIterator #include "TLorentzVector.h" // for TLorentzVector #include "TParticle.h" // for TParticle #include "TRefArray.h" // for TRefArray +#include // for NULL + using std::cout; using std::endl; using std::pair; diff --git a/Generators/CMakeLists.txt b/Generators/CMakeLists.txt index bc59b0825b7c4..54e181613b065 100644 --- a/Generators/CMakeLists.txt +++ b/Generators/CMakeLists.txt @@ -38,7 +38,7 @@ Pythia8Generator.cxx set(LINKDEF GeneratorsLinkDef.h) set(LIBRARY_NAME O2Gen) -set(DEPENDENCIES Base O2Data pythia8 Pythia6) +set(DEPENDENCIES Base O2SimulationDataFormat pythia8 Pythia6) GENERATE_LIBRARY() else(PYTHIA8_INCLUDE_DIR) diff --git a/itsmft/its/simulation/src/Detector.cxx b/itsmft/its/simulation/src/Detector.cxx index 819a2aee9c815..7acf763e889ea 100644 --- a/itsmft/its/simulation/src/Detector.cxx +++ b/itsmft/its/simulation/src/Detector.cxx @@ -9,8 +9,8 @@ #include "include/MisalignmentParameter.h" // for MisalignmentParameter -#include "Data/DetectorList.h" // for DetectorId::kAliIts -#include "Data/Stack.h" // for Stack +#include "DataFormats/simulation/include/DetectorList.h" // for DetectorId::kAliIts +#include "DataFormats/simulation/include/Stack.h" // for Stack //FairRoot includes #include "FairDetector.h" // for FairDetector diff --git a/tpc/simulation/src/Detector.cxx b/tpc/simulation/src/Detector.cxx index 097e08ae5d3cd..f268a35da609f 100644 --- a/tpc/simulation/src/Detector.cxx +++ b/tpc/simulation/src/Detector.cxx @@ -1,8 +1,8 @@ #include "include/Detector.h" #include "include/Point.h" // for Point -#include "Data/DetectorList.h" // for DetectorId::kAliTpc -#include "Data/Stack.h" // for Stack +#include "DataFormats/simulation/include/DetectorList.h" // for DetectorId::kAliTpc +#include "DataFormats/simulation/include/Stack.h" // for Stack #include "FairRootManager.h" // for FairRootManager #include "FairVolume.h" // for FairVolume From eb49527a8d386c521c3122c8ac07d61816420318 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Fri, 29 Apr 2016 14:46:24 +0200 Subject: [PATCH 070/135] Re-arrange the repository rearrange the generators --- Base/CMakeLists.txt | 2 +- Generators/CMakeLists.txt | 38 +++++---- Generators/{ => include}/Pythia6Generator.h | 0 Generators/{ => include}/Pythia8Generator.h | 0 Generators/rename.sh | 82 ------------------- .../EventGeneratorLinkDef.h} | 0 Generators/{ => src}/Pythia6Generator.cxx | 0 Generators/{ => src}/Pythia8Generator.cxx | 0 8 files changed, 22 insertions(+), 100 deletions(-) rename Generators/{ => include}/Pythia6Generator.h (100%) rename Generators/{ => include}/Pythia8Generator.h (100%) delete mode 100644 Generators/rename.sh rename Generators/{GeneratorsLinkDef.h => src/EventGeneratorLinkDef.h} (100%) rename Generators/{ => src}/Pythia6Generator.cxx (100%) rename Generators/{ => src}/Pythia8Generator.cxx (100%) diff --git a/Base/CMakeLists.txt b/Base/CMakeLists.txt index 9b912d6b760e2..944b1903e4ce1 100644 --- a/Base/CMakeLists.txt +++ b/Base/CMakeLists.txt @@ -31,6 +31,6 @@ Set(HEADERS ) Set(LINKDEF src/BaseLinkDef.h) Set(LIBRARY_NAME AliceO2Base) -Set(DEPENDENCIES Base EG Physics Core) +Set(DEPENDENCIES Base parbase EG Physics Core ) GENERATE_LIBRARY() diff --git a/Generators/CMakeLists.txt b/Generators/CMakeLists.txt index 54e181613b065..10b5e80ccb30c 100644 --- a/Generators/CMakeLists.txt +++ b/Generators/CMakeLists.txt @@ -4,39 +4,43 @@ if(PYTHIA8_INCLUDE_DIR) set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/Generators + ${CMAKE_SOURCE_DIR}/Generators/include + ${CMAKE_SOURCE_DIR}/Generators/ ) set(SYSTEM_INCLUDE_DIRECTORIES -${ROOT_INCLUDE_DIR} -${FAIRROOT_INCLUDE_DIR} -${AlFa_DIR}/include -${PYTHIA8_INCLUDE_DIR} -${SIMPATH}/include -${BASE_INCLUDE_DIRECTORIES} + ${ROOT_INCLUDE_DIR} + ${FAIRROOT_INCLUDE_DIR} + ${PYTHIA8_INCLUDE_DIR} + ${SIMPATH}/include + ${BASE_INCLUDE_DIRECTORIES} ) include_directories( ${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES -${ROOT_LIBRARY_DIR} -${FAIRROOT_LIBRARY_DIR} -${Pythia6_LIBRARY_DIR} -${PYTHIA8_LIBRARY_DIR} -${AlFa_DIR}/lib -${SIMPATH}/lib + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ${Pythia6_LIBRARY_DIR} + ${PYTHIA8_LIBRARY_DIR} + ${SIMPATH}/lib ) link_directories( ${LINK_DIRECTORIES}) set(SRCS -Pythia6Generator.cxx -Pythia8Generator.cxx + src/Pythia6Generator.cxx + src/Pythia8Generator.cxx ) -set(LINKDEF GeneratorsLinkDef.h) -set(LIBRARY_NAME O2Gen) +set( HEADERS + include/Pythia6Generator.h + include/Pythia8Generator.h +) + +set(LINKDEF src/EventGeneratorLinkDef.h) +set(LIBRARY_NAME EvntGenerator) set(DEPENDENCIES Base O2SimulationDataFormat pythia8 Pythia6) diff --git a/Generators/Pythia6Generator.h b/Generators/include/Pythia6Generator.h similarity index 100% rename from Generators/Pythia6Generator.h rename to Generators/include/Pythia6Generator.h diff --git a/Generators/Pythia8Generator.h b/Generators/include/Pythia8Generator.h similarity index 100% rename from Generators/Pythia8Generator.h rename to Generators/include/Pythia8Generator.h diff --git a/Generators/rename.sh b/Generators/rename.sh deleted file mode 100644 index 108a9514ba633..0000000000000 --- a/Generators/rename.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -# The rename script exchange all occurence of PndPythia or PndPythia -# by the name given by the first parameter. If the detector is for example -# the Trd of the Cbm experiment a good name is CbmTrd. Normaly one should -# use the naming convention of the experiment. -# Also the filenames any many more things are changed automatically. In the -# end there are only some small changes which have to be done by hand. - -#set -xv - -if [ $# -ne 3 ]; then - echo "Please call the script with three parameters. The first one is the" - echo "name of the detector. The second is the name of the project. This" - echo "name can be found in the main CMakeLists.txt as argument for" - echo "Project()). The third parameter is the prefix in front" - echo "the class names. For CBM this is for example Cbm, for Panda Pnd." - echo "If you're not sure check in already existing detectors." - echo "The script will exchange all default names by the new name" - exit 1 -fi - -DetectorName=$1 -DetectorNameUpper=$(echo $DetectorName | tr [:lower:] [:upper:]) - -ProjectName=$(echo $2 | tr [:lower:] [:upper:]) -ProjectSourceDir=${ProjectName}_SOURCE_DIR -RelativeDir=$(basename $PWD) -Prefix=$3 -for i in $(ls PndPythia*); do - oldfile=$i - newfile=$(echo $oldfile | sed "s/PndPythia/$DetectorName/") - mv $oldfile $newfile -done - -arch=`uname -s | tr '[A-Z]' '[a-z]'` -case "$arch" in - linux) - sedstring="-i " - ;; - darwin) - sedstring="-i .bak" - ;; - *) - echo "Platform not supported" - exit 1 - ;; -esac - -find . -name "*.h" -exec sed -e "s/PndPythia/$DetectorName/g" $sedstring "{}" ";" -find . -name "*.h" -exec sed -e "s/PndPythia/$DetectorNameUpper/g" $sedstring "{}" ";" -find . -name "*.cxx" -exec sed -e "s/PndPythia/$DetectorName/g" $sedstring "{}" ";" -find . -name "*.cxx" -exec sed -e "s/PndPythia/$DetectorNameUpper/g" $sedstring "{}" ";" -find . -name "*.cxx" -exec sed -e "s/FairDetectorList/${Prefix}DetectorList/g" $sedstring "{}" ";" -find . -name "*.cxx" -exec sed -e "s/FairStack/${Prefix}Stack/g" $sedstring "{}" ";" -find . -name "*.h" -exec sed -e "s/FairDetectorList/${Prefix}DetectorList/g" $sedstring "{}" ";" -find . -name "*.h" -exec sed -e "s/FairStack/${Prefix}Stack/g" $sedstring "{}" ";" - -sed -e "s#tutorial/PndPythia#$RelativeDir#g" $sedstring CMakeLists.txt -sed -e "s/PndPythia/$DetectorName/g" $sedstring CMakeLists.txt -sed -e "s/PndPythia/$DetectorNameUpper/g" $sedstring CMakeLists.txt -sed -e "s/FAIRROOT_SOURCE_DIR/$ProjectSourceDir/g" $sedstring CMakeLists.txt - -if [ -d .svn ]; then - echo "Please remove the .svn directory." - echo " This directory was also copied from templates." - echo "##" -fi - -echo "Please add the directories which contain the Stack and" -echo "DetectorList classes to the include directories in CMakeLists.txt" -echo "##" - -echo "Please add the new detector to the detector list. This iist can be" -echo "found in the DetectorList class. The name to be added is" -echo "k${DetectorName}." - -echo "##" -echo "edit ${DetectorName}Geo.h and ${DetectorName}Geo.cxx according to the" -echo "comments in the files." - -#set +xvx \ No newline at end of file diff --git a/Generators/GeneratorsLinkDef.h b/Generators/src/EventGeneratorLinkDef.h similarity index 100% rename from Generators/GeneratorsLinkDef.h rename to Generators/src/EventGeneratorLinkDef.h diff --git a/Generators/Pythia6Generator.cxx b/Generators/src/Pythia6Generator.cxx similarity index 100% rename from Generators/Pythia6Generator.cxx rename to Generators/src/Pythia6Generator.cxx diff --git a/Generators/Pythia8Generator.cxx b/Generators/src/Pythia8Generator.cxx similarity index 100% rename from Generators/Pythia8Generator.cxx rename to Generators/src/Pythia8Generator.cxx From c378b5a2b78efd786f6d0b4d142bf356f26d151c Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 2 May 2016 10:55:42 +0200 Subject: [PATCH 071/135] Re-arrange the repository collecte detector code in detector sub-directory --- CMakeLists.txt | 4 +--- {geometry => detectors/geometry}/cave.geo | 0 {geometry => detectors/geometry}/media.geo | 0 {itsmft => detectors/itsmft}/CMakeLists.txt | 6 ++---- {itsmft => detectors/itsmft}/common/CMakeLists.txt | 0 {itsmft => detectors/itsmft}/common/README.md | 0 {itsmft => detectors/itsmft}/its/CMakeLists.txt | 0 .../itsmft}/its/base/CMakeLists.txt | 2 +- {itsmft => detectors/itsmft}/its/base/README.md | 0 .../itsmft}/its/base/include/ContainerFactory.h | 0 .../its/base/include/MisalignmentParameter.h | 0 .../itsmft}/its/base/include/README.md | 0 .../itsmft}/its/base/src/ContainerFactory.cxx | 0 .../itsmft}/its/base/src/MisalignmentParameter.cxx | 0 .../itsmft}/its/base/src/README.md | 0 .../itsmft}/its/base/src/itsBaseLinkDef.h | 0 .../itsmft}/its/reconstruction/CMakeLists.txt | 4 ++-- .../itsmft}/its/reconstruction/include/README.md | 0 .../itsmft}/its/reconstruction/src/README.md | 0 .../reconstruction/src/itsReconstructionLinkDef.h | 0 .../itsmft}/its/simulation/CMakeLists.txt | 6 +++--- .../itsmft}/its/simulation/include/Chip.h | 0 .../itsmft}/its/simulation/include/Detector.h | 0 .../itsmft}/its/simulation/include/Digit.h | 0 .../its/simulation/include/DigitContainer.h | 0 .../itsmft}/its/simulation/include/DigitLayer.h | 0 .../itsmft}/its/simulation/include/DigitStave.h | 0 .../its/simulation/include/DigitWriteoutBuffer.h | 0 .../itsmft}/its/simulation/include/Digitizer.h | 0 .../itsmft}/its/simulation/include/DigitizerTask.h | 0 .../its/simulation/include/GeometryHandler.h | 0 .../its/simulation/include/GeometryManager.h | 0 .../itsmft}/its/simulation/include/Point.h | 0 .../itsmft}/its/simulation/include/README.md | 0 .../itsmft}/its/simulation/include/Segmentation.h | 0 .../its/simulation/include/UpgradeGeometryTGeo.h | 0 .../simulation/include/UpgradeSegmentationPixel.h | 0 .../its/simulation/include/UpgradeV1Layer.h | 0 .../itsmft}/its/simulation/include/V11Geometry.h | 0 .../itsmft}/its/simulation/src/Chip.cxx | 0 .../itsmft}/its/simulation/src/Detector.cxx | 0 .../itsmft}/its/simulation/src/Digit.cxx | 0 .../itsmft}/its/simulation/src/DigitContainer.cxx | 0 .../itsmft}/its/simulation/src/DigitLayer.cxx | 0 .../itsmft}/its/simulation/src/DigitStave.cxx | 0 .../its/simulation/src/DigitWriteoutBuffer.cxx | 0 .../itsmft}/its/simulation/src/Digitizer.cxx | 0 .../itsmft}/its/simulation/src/DigitizerTask.cxx | 0 .../itsmft}/its/simulation/src/GeometryHandler.cxx | 0 .../itsmft}/its/simulation/src/GeometryManager.cxx | 0 .../itsmft}/its/simulation/src/Point.cxx | 0 .../itsmft}/its/simulation/src/README.md | 0 .../itsmft}/its/simulation/src/Segmentation.cxx | 0 .../its/simulation/src/UpgradeGeometryTGeo.cxx | 0 .../simulation/src/UpgradeSegmentationPixel.cxx | 0 .../itsmft}/its/simulation/src/UpgradeV1Layer.cxx | 0 .../itsmft}/its/simulation/src/V11Geometry.cxx | 0 .../its/simulation/src/itsSimulationLinkDef.h | 0 {itsmft => detectors/itsmft}/mft/CMakeLists.txt | 0 {itsmft => detectors/itsmft}/test/CMakeLists.txt | 0 .../itsmft}/test/HitAnalysis/CMakeLists.txt | 4 ++-- .../itsmft}/test/HitAnalysis/include/HitAnalysis.h | 0 .../itsmft}/test/HitAnalysis/src/HitAnalysis.cxx | 8 ++++---- .../itsmft}/test/HitAnalysis/src/testitsLinkDef.h | 0 {passive => detectors/passive}/CMakeLists.txt | 14 +++++++------- {passive => detectors/passive}/Cave.cxx | 0 {passive => detectors/passive}/Cave.h | 0 {passive => detectors/passive}/GeoCave.cxx | 0 {passive => detectors/passive}/GeoCave.h | 0 {passive => detectors/passive}/Magnet.cxx | 0 {passive => detectors/passive}/Magnet.h | 0 {passive => detectors/passive}/PassiveContFact.cxx | 0 {passive => detectors/passive}/PassiveContFact.h | 0 {passive => detectors/passive}/PassiveLinkDef.h | 0 {passive => detectors/passive}/Pipe.cxx | 0 {passive => detectors/passive}/Pipe.h | 0 {tpc => detectors/tpc}/CMakeLists.txt | 0 {tpc => detectors/tpc}/base/CMakeLists.txt | 2 +- .../tpc}/base/include/ContainerFactory.h | 0 .../tpc}/base/src/ContainerFactory.cxx | 0 {tpc => detectors/tpc}/base/src/tpcBaseLinkDef.h | 0 .../tpc}/reconstruction/CMakeLists.txt | 2 +- .../tpc}/reconstruction/include/README.md | 0 .../tpc}/reconstruction/src/README.md | 0 .../reconstruction/src/tpcReconstructionLinkDef.h | 0 {tpc => detectors/tpc}/simulation/CMakeLists.txt | 6 +++--- .../tpc}/simulation/include/Detector.h | 0 {tpc => detectors/tpc}/simulation/include/Point.h | 0 {tpc => detectors/tpc}/simulation/src/Detector.cxx | 0 {tpc => detectors/tpc}/simulation/src/Point.cxx | 0 .../tpc}/simulation/src/tpcSimulationLinkDef.h | 0 91 files changed, 27 insertions(+), 31 deletions(-) rename {geometry => detectors/geometry}/cave.geo (100%) rename {geometry => detectors/geometry}/media.geo (100%) rename {itsmft => detectors/itsmft}/CMakeLists.txt (97%) rename {itsmft => detectors/itsmft}/common/CMakeLists.txt (100%) rename {itsmft => detectors/itsmft}/common/README.md (100%) rename {itsmft => detectors/itsmft}/its/CMakeLists.txt (100%) rename {itsmft => detectors/itsmft}/its/base/CMakeLists.txt (93%) rename {itsmft => detectors/itsmft}/its/base/README.md (100%) rename {itsmft => detectors/itsmft}/its/base/include/ContainerFactory.h (100%) rename {itsmft => detectors/itsmft}/its/base/include/MisalignmentParameter.h (100%) rename {itsmft => detectors/itsmft}/its/base/include/README.md (100%) rename {itsmft => detectors/itsmft}/its/base/src/ContainerFactory.cxx (100%) rename {itsmft => detectors/itsmft}/its/base/src/MisalignmentParameter.cxx (100%) rename {itsmft => detectors/itsmft}/its/base/src/README.md (100%) rename {itsmft => detectors/itsmft}/its/base/src/itsBaseLinkDef.h (100%) rename {itsmft => detectors/itsmft}/its/reconstruction/CMakeLists.txt (81%) rename {itsmft => detectors/itsmft}/its/reconstruction/include/README.md (100%) rename {itsmft => detectors/itsmft}/its/reconstruction/src/README.md (100%) rename {itsmft => detectors/itsmft}/its/reconstruction/src/itsReconstructionLinkDef.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/CMakeLists.txt (89%) rename {itsmft => detectors/itsmft}/its/simulation/include/Chip.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/Detector.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/Digit.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/DigitContainer.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/DigitLayer.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/DigitStave.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/DigitWriteoutBuffer.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/Digitizer.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/DigitizerTask.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/GeometryHandler.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/GeometryManager.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/Point.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/README.md (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/Segmentation.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/UpgradeGeometryTGeo.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/UpgradeSegmentationPixel.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/UpgradeV1Layer.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/include/V11Geometry.h (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/Chip.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/Detector.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/Digit.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/DigitContainer.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/DigitLayer.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/DigitStave.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/DigitWriteoutBuffer.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/Digitizer.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/DigitizerTask.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/GeometryHandler.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/GeometryManager.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/Point.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/README.md (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/Segmentation.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/UpgradeGeometryTGeo.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/UpgradeSegmentationPixel.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/UpgradeV1Layer.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/V11Geometry.cxx (100%) rename {itsmft => detectors/itsmft}/its/simulation/src/itsSimulationLinkDef.h (100%) rename {itsmft => detectors/itsmft}/mft/CMakeLists.txt (100%) rename {itsmft => detectors/itsmft}/test/CMakeLists.txt (100%) rename {itsmft => detectors/itsmft}/test/HitAnalysis/CMakeLists.txt (83%) rename {itsmft => detectors/itsmft}/test/HitAnalysis/include/HitAnalysis.h (100%) rename {itsmft => detectors/itsmft}/test/HitAnalysis/src/HitAnalysis.cxx (95%) rename {itsmft => detectors/itsmft}/test/HitAnalysis/src/testitsLinkDef.h (100%) rename {passive => detectors/passive}/CMakeLists.txt (85%) rename {passive => detectors/passive}/Cave.cxx (100%) rename {passive => detectors/passive}/Cave.h (100%) rename {passive => detectors/passive}/GeoCave.cxx (100%) rename {passive => detectors/passive}/GeoCave.h (100%) rename {passive => detectors/passive}/Magnet.cxx (100%) rename {passive => detectors/passive}/Magnet.h (100%) rename {passive => detectors/passive}/PassiveContFact.cxx (100%) rename {passive => detectors/passive}/PassiveContFact.h (100%) rename {passive => detectors/passive}/PassiveLinkDef.h (100%) rename {passive => detectors/passive}/Pipe.cxx (100%) rename {passive => detectors/passive}/Pipe.h (100%) rename {tpc => detectors/tpc}/CMakeLists.txt (100%) rename {tpc => detectors/tpc}/base/CMakeLists.txt (93%) rename {tpc => detectors/tpc}/base/include/ContainerFactory.h (100%) rename {tpc => detectors/tpc}/base/src/ContainerFactory.cxx (100%) rename {tpc => detectors/tpc}/base/src/tpcBaseLinkDef.h (100%) rename {tpc => detectors/tpc}/reconstruction/CMakeLists.txt (94%) rename {tpc => detectors/tpc}/reconstruction/include/README.md (100%) rename {tpc => detectors/tpc}/reconstruction/src/README.md (100%) rename {tpc => detectors/tpc}/reconstruction/src/tpcReconstructionLinkDef.h (100%) rename {tpc => detectors/tpc}/simulation/CMakeLists.txt (82%) rename {tpc => detectors/tpc}/simulation/include/Detector.h (100%) rename {tpc => detectors/tpc}/simulation/include/Point.h (100%) rename {tpc => detectors/tpc}/simulation/src/Detector.cxx (100%) rename {tpc => detectors/tpc}/simulation/src/Point.cxx (100%) rename {tpc => detectors/tpc}/simulation/src/tpcSimulationLinkDef.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index e32738eca2107..d794029081e25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,15 +213,13 @@ add_subdirectory (Base) if (PYTHIA8_FOUND AND Pythia6_FOUND) add_subdirectory (Generators) Endif () -add_subdirectory (itsmft) -add_subdirectory (tpc) -add_subdirectory (passive) add_subdirectory (MathUtils) add_subdirectory (field) add_subdirectory (devices) add_subdirectory (macro) add_subdirectory (o2cdb) add_subdirectory (o2qa) +add_subdirectory (detectors) add_subdirectory (DataFormats) diff --git a/geometry/cave.geo b/detectors/geometry/cave.geo similarity index 100% rename from geometry/cave.geo rename to detectors/geometry/cave.geo diff --git a/geometry/media.geo b/detectors/geometry/media.geo similarity index 100% rename from geometry/media.geo rename to detectors/geometry/media.geo diff --git a/itsmft/CMakeLists.txt b/detectors/itsmft/CMakeLists.txt similarity index 97% rename from itsmft/CMakeLists.txt rename to detectors/itsmft/CMakeLists.txt index ae754e8e80946..ab6b867bd03cc 100644 --- a/itsmft/CMakeLists.txt +++ b/detectors/itsmft/CMakeLists.txt @@ -14,9 +14,7 @@ # ************************************************************************** # Libraries -add_subdirectory(common) add_subdirectory(its) -add_subdirectory(mft) +add_subdirectory(common) add_subdirectory(test) - -message(STATUS "itsmft enabled") +add_subdirectory(mft) diff --git a/itsmft/common/CMakeLists.txt b/detectors/itsmft/common/CMakeLists.txt similarity index 100% rename from itsmft/common/CMakeLists.txt rename to detectors/itsmft/common/CMakeLists.txt diff --git a/itsmft/common/README.md b/detectors/itsmft/common/README.md similarity index 100% rename from itsmft/common/README.md rename to detectors/itsmft/common/README.md diff --git a/itsmft/its/CMakeLists.txt b/detectors/itsmft/its/CMakeLists.txt similarity index 100% rename from itsmft/its/CMakeLists.txt rename to detectors/itsmft/its/CMakeLists.txt diff --git a/itsmft/its/base/CMakeLists.txt b/detectors/itsmft/its/base/CMakeLists.txt similarity index 93% rename from itsmft/its/base/CMakeLists.txt rename to detectors/itsmft/its/base/CMakeLists.txt index 691f932654fec..af5787adba98f 100644 --- a/itsmft/its/base/CMakeLists.txt +++ b/detectors/itsmft/its/base/CMakeLists.txt @@ -1,6 +1,6 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/itsmft/its/base/ + ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/base/ ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/itsmft/its/base/README.md b/detectors/itsmft/its/base/README.md similarity index 100% rename from itsmft/its/base/README.md rename to detectors/itsmft/its/base/README.md diff --git a/itsmft/its/base/include/ContainerFactory.h b/detectors/itsmft/its/base/include/ContainerFactory.h similarity index 100% rename from itsmft/its/base/include/ContainerFactory.h rename to detectors/itsmft/its/base/include/ContainerFactory.h diff --git a/itsmft/its/base/include/MisalignmentParameter.h b/detectors/itsmft/its/base/include/MisalignmentParameter.h similarity index 100% rename from itsmft/its/base/include/MisalignmentParameter.h rename to detectors/itsmft/its/base/include/MisalignmentParameter.h diff --git a/itsmft/its/base/include/README.md b/detectors/itsmft/its/base/include/README.md similarity index 100% rename from itsmft/its/base/include/README.md rename to detectors/itsmft/its/base/include/README.md diff --git a/itsmft/its/base/src/ContainerFactory.cxx b/detectors/itsmft/its/base/src/ContainerFactory.cxx similarity index 100% rename from itsmft/its/base/src/ContainerFactory.cxx rename to detectors/itsmft/its/base/src/ContainerFactory.cxx diff --git a/itsmft/its/base/src/MisalignmentParameter.cxx b/detectors/itsmft/its/base/src/MisalignmentParameter.cxx similarity index 100% rename from itsmft/its/base/src/MisalignmentParameter.cxx rename to detectors/itsmft/its/base/src/MisalignmentParameter.cxx diff --git a/itsmft/its/base/src/README.md b/detectors/itsmft/its/base/src/README.md similarity index 100% rename from itsmft/its/base/src/README.md rename to detectors/itsmft/its/base/src/README.md diff --git a/itsmft/its/base/src/itsBaseLinkDef.h b/detectors/itsmft/its/base/src/itsBaseLinkDef.h similarity index 100% rename from itsmft/its/base/src/itsBaseLinkDef.h rename to detectors/itsmft/its/base/src/itsBaseLinkDef.h diff --git a/itsmft/its/reconstruction/CMakeLists.txt b/detectors/itsmft/its/reconstruction/CMakeLists.txt similarity index 81% rename from itsmft/its/reconstruction/CMakeLists.txt rename to detectors/itsmft/its/reconstruction/CMakeLists.txt index e22e412666ec1..bd57cb2508764 100644 --- a/itsmft/its/reconstruction/CMakeLists.txt +++ b/detectors/itsmft/its/reconstruction/CMakeLists.txt @@ -1,7 +1,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/itsmft/its/reconstruction/src - ${CMAKE_SOURCE_DIR}/itsmft/its/reconstruction/include + ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/reconstruction/src + ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/reconstruction/include ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/itsmft/its/reconstruction/include/README.md b/detectors/itsmft/its/reconstruction/include/README.md similarity index 100% rename from itsmft/its/reconstruction/include/README.md rename to detectors/itsmft/its/reconstruction/include/README.md diff --git a/itsmft/its/reconstruction/src/README.md b/detectors/itsmft/its/reconstruction/src/README.md similarity index 100% rename from itsmft/its/reconstruction/src/README.md rename to detectors/itsmft/its/reconstruction/src/README.md diff --git a/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h b/detectors/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h similarity index 100% rename from itsmft/its/reconstruction/src/itsReconstructionLinkDef.h rename to detectors/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h diff --git a/itsmft/its/simulation/CMakeLists.txt b/detectors/itsmft/its/simulation/CMakeLists.txt similarity index 89% rename from itsmft/its/simulation/CMakeLists.txt rename to detectors/itsmft/its/simulation/CMakeLists.txt index d63eb7718c034..e417d0bfab6cf 100644 --- a/itsmft/its/simulation/CMakeLists.txt +++ b/detectors/itsmft/its/simulation/CMakeLists.txt @@ -1,8 +1,8 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/itsmft/its/base/ - ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/ - ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/include + ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/base/ + ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/simulation/ + ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/simulation/include ) diff --git a/itsmft/its/simulation/include/Chip.h b/detectors/itsmft/its/simulation/include/Chip.h similarity index 100% rename from itsmft/its/simulation/include/Chip.h rename to detectors/itsmft/its/simulation/include/Chip.h diff --git a/itsmft/its/simulation/include/Detector.h b/detectors/itsmft/its/simulation/include/Detector.h similarity index 100% rename from itsmft/its/simulation/include/Detector.h rename to detectors/itsmft/its/simulation/include/Detector.h diff --git a/itsmft/its/simulation/include/Digit.h b/detectors/itsmft/its/simulation/include/Digit.h similarity index 100% rename from itsmft/its/simulation/include/Digit.h rename to detectors/itsmft/its/simulation/include/Digit.h diff --git a/itsmft/its/simulation/include/DigitContainer.h b/detectors/itsmft/its/simulation/include/DigitContainer.h similarity index 100% rename from itsmft/its/simulation/include/DigitContainer.h rename to detectors/itsmft/its/simulation/include/DigitContainer.h diff --git a/itsmft/its/simulation/include/DigitLayer.h b/detectors/itsmft/its/simulation/include/DigitLayer.h similarity index 100% rename from itsmft/its/simulation/include/DigitLayer.h rename to detectors/itsmft/its/simulation/include/DigitLayer.h diff --git a/itsmft/its/simulation/include/DigitStave.h b/detectors/itsmft/its/simulation/include/DigitStave.h similarity index 100% rename from itsmft/its/simulation/include/DigitStave.h rename to detectors/itsmft/its/simulation/include/DigitStave.h diff --git a/itsmft/its/simulation/include/DigitWriteoutBuffer.h b/detectors/itsmft/its/simulation/include/DigitWriteoutBuffer.h similarity index 100% rename from itsmft/its/simulation/include/DigitWriteoutBuffer.h rename to detectors/itsmft/its/simulation/include/DigitWriteoutBuffer.h diff --git a/itsmft/its/simulation/include/Digitizer.h b/detectors/itsmft/its/simulation/include/Digitizer.h similarity index 100% rename from itsmft/its/simulation/include/Digitizer.h rename to detectors/itsmft/its/simulation/include/Digitizer.h diff --git a/itsmft/its/simulation/include/DigitizerTask.h b/detectors/itsmft/its/simulation/include/DigitizerTask.h similarity index 100% rename from itsmft/its/simulation/include/DigitizerTask.h rename to detectors/itsmft/its/simulation/include/DigitizerTask.h diff --git a/itsmft/its/simulation/include/GeometryHandler.h b/detectors/itsmft/its/simulation/include/GeometryHandler.h similarity index 100% rename from itsmft/its/simulation/include/GeometryHandler.h rename to detectors/itsmft/its/simulation/include/GeometryHandler.h diff --git a/itsmft/its/simulation/include/GeometryManager.h b/detectors/itsmft/its/simulation/include/GeometryManager.h similarity index 100% rename from itsmft/its/simulation/include/GeometryManager.h rename to detectors/itsmft/its/simulation/include/GeometryManager.h diff --git a/itsmft/its/simulation/include/Point.h b/detectors/itsmft/its/simulation/include/Point.h similarity index 100% rename from itsmft/its/simulation/include/Point.h rename to detectors/itsmft/its/simulation/include/Point.h diff --git a/itsmft/its/simulation/include/README.md b/detectors/itsmft/its/simulation/include/README.md similarity index 100% rename from itsmft/its/simulation/include/README.md rename to detectors/itsmft/its/simulation/include/README.md diff --git a/itsmft/its/simulation/include/Segmentation.h b/detectors/itsmft/its/simulation/include/Segmentation.h similarity index 100% rename from itsmft/its/simulation/include/Segmentation.h rename to detectors/itsmft/its/simulation/include/Segmentation.h diff --git a/itsmft/its/simulation/include/UpgradeGeometryTGeo.h b/detectors/itsmft/its/simulation/include/UpgradeGeometryTGeo.h similarity index 100% rename from itsmft/its/simulation/include/UpgradeGeometryTGeo.h rename to detectors/itsmft/its/simulation/include/UpgradeGeometryTGeo.h diff --git a/itsmft/its/simulation/include/UpgradeSegmentationPixel.h b/detectors/itsmft/its/simulation/include/UpgradeSegmentationPixel.h similarity index 100% rename from itsmft/its/simulation/include/UpgradeSegmentationPixel.h rename to detectors/itsmft/its/simulation/include/UpgradeSegmentationPixel.h diff --git a/itsmft/its/simulation/include/UpgradeV1Layer.h b/detectors/itsmft/its/simulation/include/UpgradeV1Layer.h similarity index 100% rename from itsmft/its/simulation/include/UpgradeV1Layer.h rename to detectors/itsmft/its/simulation/include/UpgradeV1Layer.h diff --git a/itsmft/its/simulation/include/V11Geometry.h b/detectors/itsmft/its/simulation/include/V11Geometry.h similarity index 100% rename from itsmft/its/simulation/include/V11Geometry.h rename to detectors/itsmft/its/simulation/include/V11Geometry.h diff --git a/itsmft/its/simulation/src/Chip.cxx b/detectors/itsmft/its/simulation/src/Chip.cxx similarity index 100% rename from itsmft/its/simulation/src/Chip.cxx rename to detectors/itsmft/its/simulation/src/Chip.cxx diff --git a/itsmft/its/simulation/src/Detector.cxx b/detectors/itsmft/its/simulation/src/Detector.cxx similarity index 100% rename from itsmft/its/simulation/src/Detector.cxx rename to detectors/itsmft/its/simulation/src/Detector.cxx diff --git a/itsmft/its/simulation/src/Digit.cxx b/detectors/itsmft/its/simulation/src/Digit.cxx similarity index 100% rename from itsmft/its/simulation/src/Digit.cxx rename to detectors/itsmft/its/simulation/src/Digit.cxx diff --git a/itsmft/its/simulation/src/DigitContainer.cxx b/detectors/itsmft/its/simulation/src/DigitContainer.cxx similarity index 100% rename from itsmft/its/simulation/src/DigitContainer.cxx rename to detectors/itsmft/its/simulation/src/DigitContainer.cxx diff --git a/itsmft/its/simulation/src/DigitLayer.cxx b/detectors/itsmft/its/simulation/src/DigitLayer.cxx similarity index 100% rename from itsmft/its/simulation/src/DigitLayer.cxx rename to detectors/itsmft/its/simulation/src/DigitLayer.cxx diff --git a/itsmft/its/simulation/src/DigitStave.cxx b/detectors/itsmft/its/simulation/src/DigitStave.cxx similarity index 100% rename from itsmft/its/simulation/src/DigitStave.cxx rename to detectors/itsmft/its/simulation/src/DigitStave.cxx diff --git a/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx b/detectors/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx similarity index 100% rename from itsmft/its/simulation/src/DigitWriteoutBuffer.cxx rename to detectors/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx diff --git a/itsmft/its/simulation/src/Digitizer.cxx b/detectors/itsmft/its/simulation/src/Digitizer.cxx similarity index 100% rename from itsmft/its/simulation/src/Digitizer.cxx rename to detectors/itsmft/its/simulation/src/Digitizer.cxx diff --git a/itsmft/its/simulation/src/DigitizerTask.cxx b/detectors/itsmft/its/simulation/src/DigitizerTask.cxx similarity index 100% rename from itsmft/its/simulation/src/DigitizerTask.cxx rename to detectors/itsmft/its/simulation/src/DigitizerTask.cxx diff --git a/itsmft/its/simulation/src/GeometryHandler.cxx b/detectors/itsmft/its/simulation/src/GeometryHandler.cxx similarity index 100% rename from itsmft/its/simulation/src/GeometryHandler.cxx rename to detectors/itsmft/its/simulation/src/GeometryHandler.cxx diff --git a/itsmft/its/simulation/src/GeometryManager.cxx b/detectors/itsmft/its/simulation/src/GeometryManager.cxx similarity index 100% rename from itsmft/its/simulation/src/GeometryManager.cxx rename to detectors/itsmft/its/simulation/src/GeometryManager.cxx diff --git a/itsmft/its/simulation/src/Point.cxx b/detectors/itsmft/its/simulation/src/Point.cxx similarity index 100% rename from itsmft/its/simulation/src/Point.cxx rename to detectors/itsmft/its/simulation/src/Point.cxx diff --git a/itsmft/its/simulation/src/README.md b/detectors/itsmft/its/simulation/src/README.md similarity index 100% rename from itsmft/its/simulation/src/README.md rename to detectors/itsmft/its/simulation/src/README.md diff --git a/itsmft/its/simulation/src/Segmentation.cxx b/detectors/itsmft/its/simulation/src/Segmentation.cxx similarity index 100% rename from itsmft/its/simulation/src/Segmentation.cxx rename to detectors/itsmft/its/simulation/src/Segmentation.cxx diff --git a/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx b/detectors/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx similarity index 100% rename from itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx rename to detectors/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx diff --git a/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx b/detectors/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx similarity index 100% rename from itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx rename to detectors/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx diff --git a/itsmft/its/simulation/src/UpgradeV1Layer.cxx b/detectors/itsmft/its/simulation/src/UpgradeV1Layer.cxx similarity index 100% rename from itsmft/its/simulation/src/UpgradeV1Layer.cxx rename to detectors/itsmft/its/simulation/src/UpgradeV1Layer.cxx diff --git a/itsmft/its/simulation/src/V11Geometry.cxx b/detectors/itsmft/its/simulation/src/V11Geometry.cxx similarity index 100% rename from itsmft/its/simulation/src/V11Geometry.cxx rename to detectors/itsmft/its/simulation/src/V11Geometry.cxx diff --git a/itsmft/its/simulation/src/itsSimulationLinkDef.h b/detectors/itsmft/its/simulation/src/itsSimulationLinkDef.h similarity index 100% rename from itsmft/its/simulation/src/itsSimulationLinkDef.h rename to detectors/itsmft/its/simulation/src/itsSimulationLinkDef.h diff --git a/itsmft/mft/CMakeLists.txt b/detectors/itsmft/mft/CMakeLists.txt similarity index 100% rename from itsmft/mft/CMakeLists.txt rename to detectors/itsmft/mft/CMakeLists.txt diff --git a/itsmft/test/CMakeLists.txt b/detectors/itsmft/test/CMakeLists.txt similarity index 100% rename from itsmft/test/CMakeLists.txt rename to detectors/itsmft/test/CMakeLists.txt diff --git a/itsmft/test/HitAnalysis/CMakeLists.txt b/detectors/itsmft/test/HitAnalysis/CMakeLists.txt similarity index 83% rename from itsmft/test/HitAnalysis/CMakeLists.txt rename to detectors/itsmft/test/HitAnalysis/CMakeLists.txt index bb184933285aa..f7b0291669f43 100644 --- a/itsmft/test/HitAnalysis/CMakeLists.txt +++ b/detectors/itsmft/test/HitAnalysis/CMakeLists.txt @@ -1,7 +1,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/itsmft/its/simulation/include - ${CMAKE_SOURCE_DIR}/itsmft/test/HitAnalysis + ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/simulation/include + ${CMAKE_SOURCE_DIR}/detectors/itsmft/test/HitAnalysis ) set(SYSTEM_INCLUDE_DIRECTORIES ${ROOT_INCLUDE_DIR} diff --git a/itsmft/test/HitAnalysis/include/HitAnalysis.h b/detectors/itsmft/test/HitAnalysis/include/HitAnalysis.h similarity index 100% rename from itsmft/test/HitAnalysis/include/HitAnalysis.h rename to detectors/itsmft/test/HitAnalysis/include/HitAnalysis.h diff --git a/itsmft/test/HitAnalysis/src/HitAnalysis.cxx b/detectors/itsmft/test/HitAnalysis/src/HitAnalysis.cxx similarity index 95% rename from itsmft/test/HitAnalysis/src/HitAnalysis.cxx rename to detectors/itsmft/test/HitAnalysis/src/HitAnalysis.cxx index 8270666db70ee..813906dfc2ee2 100644 --- a/itsmft/test/HitAnalysis/src/HitAnalysis.cxx +++ b/detectors/itsmft/test/HitAnalysis/src/HitAnalysis.cxx @@ -20,10 +20,10 @@ #include "TMath.h" -#include "itsmft/its/simulation/include/Chip.h" // for Chip, Chip::IndexException -#include "itsmft/its/simulation/include/Point.h" // for Point -#include "itsmft/its/simulation/include/Segmentation.h" // for Segmentation -#include "itsmft/its/simulation/include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "detectors/itsmft/its/simulation/include/Chip.h" // for Chip, Chip::IndexException +#include "detectors/itsmft/its/simulation/include/Point.h" // for Point +#include "detectors/itsmft/its/simulation/include/Segmentation.h" // for Segmentation +#include "detectors/itsmft/its/simulation/include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo #include diff --git a/itsmft/test/HitAnalysis/src/testitsLinkDef.h b/detectors/itsmft/test/HitAnalysis/src/testitsLinkDef.h similarity index 100% rename from itsmft/test/HitAnalysis/src/testitsLinkDef.h rename to detectors/itsmft/test/HitAnalysis/src/testitsLinkDef.h diff --git a/passive/CMakeLists.txt b/detectors/passive/CMakeLists.txt similarity index 85% rename from passive/CMakeLists.txt rename to detectors/passive/CMakeLists.txt index 41c6a52bc8021..5c49942b4c43b 100644 --- a/passive/CMakeLists.txt +++ b/detectors/passive/CMakeLists.txt @@ -3,13 +3,13 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/passive +${CMAKE_SOURCE_DIR}/detectors/passive ) set(SYSTEM_INCLUDE_DIRECTORIES ${BASE_INCLUDE_DIRECTORIES} ${FAIRROOT_INCLUDE_DIR} -${ROOT_INCLUDE_DIR} +${ROOT_INCLUDE_DIR} ) include_directories( ${INCLUDE_DIRECTORIES}) @@ -20,14 +20,14 @@ ${ROOT_LIBRARY_DIR} ${FAIRROOT_LIBRARY_DIR} ) - + link_directories( ${LINK_DIRECTORIES}) set(SRCS -Cave.cxx -GeoCave.cxx -Pipe.cxx -Magnet.cxx +Cave.cxx +GeoCave.cxx +Pipe.cxx +Magnet.cxx PassiveContFact.cxx ) diff --git a/passive/Cave.cxx b/detectors/passive/Cave.cxx similarity index 100% rename from passive/Cave.cxx rename to detectors/passive/Cave.cxx diff --git a/passive/Cave.h b/detectors/passive/Cave.h similarity index 100% rename from passive/Cave.h rename to detectors/passive/Cave.h diff --git a/passive/GeoCave.cxx b/detectors/passive/GeoCave.cxx similarity index 100% rename from passive/GeoCave.cxx rename to detectors/passive/GeoCave.cxx diff --git a/passive/GeoCave.h b/detectors/passive/GeoCave.h similarity index 100% rename from passive/GeoCave.h rename to detectors/passive/GeoCave.h diff --git a/passive/Magnet.cxx b/detectors/passive/Magnet.cxx similarity index 100% rename from passive/Magnet.cxx rename to detectors/passive/Magnet.cxx diff --git a/passive/Magnet.h b/detectors/passive/Magnet.h similarity index 100% rename from passive/Magnet.h rename to detectors/passive/Magnet.h diff --git a/passive/PassiveContFact.cxx b/detectors/passive/PassiveContFact.cxx similarity index 100% rename from passive/PassiveContFact.cxx rename to detectors/passive/PassiveContFact.cxx diff --git a/passive/PassiveContFact.h b/detectors/passive/PassiveContFact.h similarity index 100% rename from passive/PassiveContFact.h rename to detectors/passive/PassiveContFact.h diff --git a/passive/PassiveLinkDef.h b/detectors/passive/PassiveLinkDef.h similarity index 100% rename from passive/PassiveLinkDef.h rename to detectors/passive/PassiveLinkDef.h diff --git a/passive/Pipe.cxx b/detectors/passive/Pipe.cxx similarity index 100% rename from passive/Pipe.cxx rename to detectors/passive/Pipe.cxx diff --git a/passive/Pipe.h b/detectors/passive/Pipe.h similarity index 100% rename from passive/Pipe.h rename to detectors/passive/Pipe.h diff --git a/tpc/CMakeLists.txt b/detectors/tpc/CMakeLists.txt similarity index 100% rename from tpc/CMakeLists.txt rename to detectors/tpc/CMakeLists.txt diff --git a/tpc/base/CMakeLists.txt b/detectors/tpc/base/CMakeLists.txt similarity index 93% rename from tpc/base/CMakeLists.txt rename to detectors/tpc/base/CMakeLists.txt index fa1d040e31e76..85c33e63200b3 100644 --- a/tpc/base/CMakeLists.txt +++ b/detectors/tpc/base/CMakeLists.txt @@ -1,7 +1,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/tpc/base + ${CMAKE_SOURCE_DIR}/detectors/tpc/base ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/tpc/base/include/ContainerFactory.h b/detectors/tpc/base/include/ContainerFactory.h similarity index 100% rename from tpc/base/include/ContainerFactory.h rename to detectors/tpc/base/include/ContainerFactory.h diff --git a/tpc/base/src/ContainerFactory.cxx b/detectors/tpc/base/src/ContainerFactory.cxx similarity index 100% rename from tpc/base/src/ContainerFactory.cxx rename to detectors/tpc/base/src/ContainerFactory.cxx diff --git a/tpc/base/src/tpcBaseLinkDef.h b/detectors/tpc/base/src/tpcBaseLinkDef.h similarity index 100% rename from tpc/base/src/tpcBaseLinkDef.h rename to detectors/tpc/base/src/tpcBaseLinkDef.h diff --git a/tpc/reconstruction/CMakeLists.txt b/detectors/tpc/reconstruction/CMakeLists.txt similarity index 94% rename from tpc/reconstruction/CMakeLists.txt rename to detectors/tpc/reconstruction/CMakeLists.txt index d6ce66428e157..e2fe306b91799 100644 --- a/tpc/reconstruction/CMakeLists.txt +++ b/detectors/tpc/reconstruction/CMakeLists.txt @@ -1,6 +1,6 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/tpc + ${CMAKE_SOURCE_DIR}/detectors/tpc ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/tpc/reconstruction/include/README.md b/detectors/tpc/reconstruction/include/README.md similarity index 100% rename from tpc/reconstruction/include/README.md rename to detectors/tpc/reconstruction/include/README.md diff --git a/tpc/reconstruction/src/README.md b/detectors/tpc/reconstruction/src/README.md similarity index 100% rename from tpc/reconstruction/src/README.md rename to detectors/tpc/reconstruction/src/README.md diff --git a/tpc/reconstruction/src/tpcReconstructionLinkDef.h b/detectors/tpc/reconstruction/src/tpcReconstructionLinkDef.h similarity index 100% rename from tpc/reconstruction/src/tpcReconstructionLinkDef.h rename to detectors/tpc/reconstruction/src/tpcReconstructionLinkDef.h diff --git a/tpc/simulation/CMakeLists.txt b/detectors/tpc/simulation/CMakeLists.txt similarity index 82% rename from tpc/simulation/CMakeLists.txt rename to detectors/tpc/simulation/CMakeLists.txt index 0a758791f824a..458964185a2eb 100644 --- a/tpc/simulation/CMakeLists.txt +++ b/detectors/tpc/simulation/CMakeLists.txt @@ -1,9 +1,9 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/tpc - ${CMAKE_SOURCE_DIR}/tpc/simulation - ${CMAKE_SOURCE_DIR}/tpc/simulation/include + ${CMAKE_SOURCE_DIR}/detectors/tpc + ${CMAKE_SOURCE_DIR}/detectors/tpc/simulation + ${CMAKE_SOURCE_DIR}/detectors/tpc/simulation/include ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/tpc/simulation/include/Detector.h b/detectors/tpc/simulation/include/Detector.h similarity index 100% rename from tpc/simulation/include/Detector.h rename to detectors/tpc/simulation/include/Detector.h diff --git a/tpc/simulation/include/Point.h b/detectors/tpc/simulation/include/Point.h similarity index 100% rename from tpc/simulation/include/Point.h rename to detectors/tpc/simulation/include/Point.h diff --git a/tpc/simulation/src/Detector.cxx b/detectors/tpc/simulation/src/Detector.cxx similarity index 100% rename from tpc/simulation/src/Detector.cxx rename to detectors/tpc/simulation/src/Detector.cxx diff --git a/tpc/simulation/src/Point.cxx b/detectors/tpc/simulation/src/Point.cxx similarity index 100% rename from tpc/simulation/src/Point.cxx rename to detectors/tpc/simulation/src/Point.cxx diff --git a/tpc/simulation/src/tpcSimulationLinkDef.h b/detectors/tpc/simulation/src/tpcSimulationLinkDef.h similarity index 100% rename from tpc/simulation/src/tpcSimulationLinkDef.h rename to detectors/tpc/simulation/src/tpcSimulationLinkDef.h From f1c2839d0fd6db98176bbedb8ec642f352fe8356 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 2 May 2016 11:24:35 +0200 Subject: [PATCH 072/135] Re-arrange the repository Change the names according to the new convention --- CMakeLists.txt | 2 +- Detectors/CMakeLists.txt | 19 +++++++++++++++++++ .../geometry => Detectors/Geometry}/cave.geo | 0 .../geometry => Detectors/Geometry}/media.geo | 0 .../ITSMFT}/CMakeLists.txt | 4 ++-- .../ITSMFT/ITS}/CMakeLists.txt | 0 .../ITSMFT/ITS}/base/CMakeLists.txt | 0 .../ITSMFT/ITS}/base/README.md | 0 .../ITS}/base/include/ContainerFactory.h | 0 .../ITS}/base/include/MisalignmentParameter.h | 0 .../ITSMFT/ITS}/base/include/README.md | 0 .../ITSMFT/ITS}/base/src/ContainerFactory.cxx | 0 .../ITS}/base/src/MisalignmentParameter.cxx | 0 .../ITSMFT/ITS}/base/src/README.md | 0 .../ITSMFT/ITS}/base/src/itsBaseLinkDef.h | 0 .../ITSMFT/ITS}/reconstruction/CMakeLists.txt | 0 .../ITS}/reconstruction/include/README.md | 0 .../ITSMFT/ITS}/reconstruction/src/README.md | 0 .../src/itsReconstructionLinkDef.h | 0 .../ITSMFT/ITS}/simulation/CMakeLists.txt | 0 .../ITSMFT/ITS}/simulation/include/Chip.h | 0 .../ITSMFT/ITS}/simulation/include/Detector.h | 0 .../ITSMFT/ITS}/simulation/include/Digit.h | 0 .../ITS}/simulation/include/DigitContainer.h | 0 .../ITS}/simulation/include/DigitLayer.h | 0 .../ITS}/simulation/include/DigitStave.h | 0 .../simulation/include/DigitWriteoutBuffer.h | 0 .../ITS}/simulation/include/Digitizer.h | 0 .../ITS}/simulation/include/DigitizerTask.h | 0 .../ITS}/simulation/include/GeometryHandler.h | 0 .../ITS}/simulation/include/GeometryManager.h | 0 .../ITSMFT/ITS}/simulation/include/Point.h | 0 .../ITSMFT/ITS}/simulation/include/README.md | 0 .../ITS}/simulation/include/Segmentation.h | 0 .../simulation/include/UpgradeGeometryTGeo.h | 0 .../include/UpgradeSegmentationPixel.h | 0 .../ITS}/simulation/include/UpgradeV1Layer.h | 0 .../ITS}/simulation/include/V11Geometry.h | 0 .../ITSMFT/ITS}/simulation/src/Chip.cxx | 0 .../ITSMFT/ITS}/simulation/src/Detector.cxx | 0 .../ITSMFT/ITS}/simulation/src/Digit.cxx | 0 .../ITS}/simulation/src/DigitContainer.cxx | 0 .../ITSMFT/ITS}/simulation/src/DigitLayer.cxx | 0 .../ITSMFT/ITS}/simulation/src/DigitStave.cxx | 0 .../simulation/src/DigitWriteoutBuffer.cxx | 0 .../ITSMFT/ITS}/simulation/src/Digitizer.cxx | 0 .../ITS}/simulation/src/DigitizerTask.cxx | 0 .../ITS}/simulation/src/GeometryHandler.cxx | 0 .../ITS}/simulation/src/GeometryManager.cxx | 0 .../ITSMFT/ITS}/simulation/src/Point.cxx | 0 .../ITSMFT/ITS}/simulation/src/README.md | 0 .../ITS}/simulation/src/Segmentation.cxx | 0 .../simulation/src/UpgradeGeometryTGeo.cxx | 0 .../src/UpgradeSegmentationPixel.cxx | 0 .../ITS}/simulation/src/UpgradeV1Layer.cxx | 0 .../ITS}/simulation/src/V11Geometry.cxx | 0 .../simulation/src/itsSimulationLinkDef.h | 0 .../ITSMFT/MFT}/CMakeLists.txt | 0 .../ITSMFT/common}/CMakeLists.txt | 0 .../ITSMFT}/common/README.md | 0 .../ITSMFT}/test/CMakeLists.txt | 0 .../ITSMFT}/test/HitAnalysis/CMakeLists.txt | 0 .../test/HitAnalysis/include/HitAnalysis.h | 0 .../test/HitAnalysis/src/HitAnalysis.cxx | 0 .../test/HitAnalysis/src/testitsLinkDef.h | 0 .../Passive}/CMakeLists.txt | 0 .../passive => Detectors/Passive}/Cave.cxx | 0 .../passive => Detectors/Passive}/Cave.h | 0 .../passive => Detectors/Passive}/GeoCave.cxx | 0 .../passive => Detectors/Passive}/GeoCave.h | 0 .../passive => Detectors/Passive}/Magnet.cxx | 0 .../passive => Detectors/Passive}/Magnet.h | 0 .../Passive}/PassiveContFact.cxx | 0 .../Passive}/PassiveContFact.h | 0 .../Passive}/PassiveLinkDef.h | 0 .../passive => Detectors/Passive}/Pipe.cxx | 0 .../passive => Detectors/Passive}/Pipe.h | 0 .../tpc => Detectors/TPC}/CMakeLists.txt | 0 .../tpc => Detectors/TPC}/base/CMakeLists.txt | 0 .../TPC}/base/include/ContainerFactory.h | 0 .../TPC}/base/src/ContainerFactory.cxx | 0 .../TPC}/base/src/tpcBaseLinkDef.h | 0 .../TPC}/reconstruction/CMakeLists.txt | 0 .../TPC}/reconstruction/include/README.md | 0 .../TPC}/reconstruction/src/README.md | 0 .../src/tpcReconstructionLinkDef.h | 0 .../TPC}/simulation/CMakeLists.txt | 0 .../TPC}/simulation/include/Detector.h | 0 .../TPC}/simulation/include/Point.h | 0 .../TPC}/simulation/src/Detector.cxx | 0 .../TPC}/simulation/src/Point.cxx | 0 .../simulation/src/tpcSimulationLinkDef.h | 0 92 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 Detectors/CMakeLists.txt rename {detectors/geometry => Detectors/Geometry}/cave.geo (100%) rename {detectors/geometry => Detectors/Geometry}/media.geo (100%) rename {detectors/itsmft => Detectors/ITSMFT}/CMakeLists.txt (96%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/CMakeLists.txt (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/CMakeLists.txt (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/README.md (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/include/ContainerFactory.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/include/MisalignmentParameter.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/include/README.md (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/src/ContainerFactory.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/src/MisalignmentParameter.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/src/README.md (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/base/src/itsBaseLinkDef.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/reconstruction/CMakeLists.txt (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/reconstruction/include/README.md (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/reconstruction/src/README.md (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/reconstruction/src/itsReconstructionLinkDef.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/CMakeLists.txt (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/Chip.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/Detector.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/Digit.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/DigitContainer.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/DigitLayer.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/DigitStave.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/DigitWriteoutBuffer.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/Digitizer.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/DigitizerTask.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/GeometryHandler.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/GeometryManager.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/Point.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/README.md (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/Segmentation.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/UpgradeGeometryTGeo.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/UpgradeSegmentationPixel.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/UpgradeV1Layer.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/include/V11Geometry.h (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/Chip.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/Detector.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/Digit.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/DigitContainer.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/DigitLayer.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/DigitStave.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/DigitWriteoutBuffer.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/Digitizer.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/DigitizerTask.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/GeometryHandler.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/GeometryManager.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/Point.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/README.md (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/Segmentation.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/UpgradeGeometryTGeo.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/UpgradeSegmentationPixel.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/UpgradeV1Layer.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/V11Geometry.cxx (100%) rename {detectors/itsmft/its => Detectors/ITSMFT/ITS}/simulation/src/itsSimulationLinkDef.h (100%) rename {detectors/itsmft/common => Detectors/ITSMFT/MFT}/CMakeLists.txt (100%) rename {detectors/itsmft/mft => Detectors/ITSMFT/common}/CMakeLists.txt (100%) rename {detectors/itsmft => Detectors/ITSMFT}/common/README.md (100%) rename {detectors/itsmft => Detectors/ITSMFT}/test/CMakeLists.txt (100%) rename {detectors/itsmft => Detectors/ITSMFT}/test/HitAnalysis/CMakeLists.txt (100%) rename {detectors/itsmft => Detectors/ITSMFT}/test/HitAnalysis/include/HitAnalysis.h (100%) rename {detectors/itsmft => Detectors/ITSMFT}/test/HitAnalysis/src/HitAnalysis.cxx (100%) rename {detectors/itsmft => Detectors/ITSMFT}/test/HitAnalysis/src/testitsLinkDef.h (100%) rename {detectors/passive => Detectors/Passive}/CMakeLists.txt (100%) rename {detectors/passive => Detectors/Passive}/Cave.cxx (100%) rename {detectors/passive => Detectors/Passive}/Cave.h (100%) rename {detectors/passive => Detectors/Passive}/GeoCave.cxx (100%) rename {detectors/passive => Detectors/Passive}/GeoCave.h (100%) rename {detectors/passive => Detectors/Passive}/Magnet.cxx (100%) rename {detectors/passive => Detectors/Passive}/Magnet.h (100%) rename {detectors/passive => Detectors/Passive}/PassiveContFact.cxx (100%) rename {detectors/passive => Detectors/Passive}/PassiveContFact.h (100%) rename {detectors/passive => Detectors/Passive}/PassiveLinkDef.h (100%) rename {detectors/passive => Detectors/Passive}/Pipe.cxx (100%) rename {detectors/passive => Detectors/Passive}/Pipe.h (100%) rename {detectors/tpc => Detectors/TPC}/CMakeLists.txt (100%) rename {detectors/tpc => Detectors/TPC}/base/CMakeLists.txt (100%) rename {detectors/tpc => Detectors/TPC}/base/include/ContainerFactory.h (100%) rename {detectors/tpc => Detectors/TPC}/base/src/ContainerFactory.cxx (100%) rename {detectors/tpc => Detectors/TPC}/base/src/tpcBaseLinkDef.h (100%) rename {detectors/tpc => Detectors/TPC}/reconstruction/CMakeLists.txt (100%) rename {detectors/tpc => Detectors/TPC}/reconstruction/include/README.md (100%) rename {detectors/tpc => Detectors/TPC}/reconstruction/src/README.md (100%) rename {detectors/tpc => Detectors/TPC}/reconstruction/src/tpcReconstructionLinkDef.h (100%) rename {detectors/tpc => Detectors/TPC}/simulation/CMakeLists.txt (100%) rename {detectors/tpc => Detectors/TPC}/simulation/include/Detector.h (100%) rename {detectors/tpc => Detectors/TPC}/simulation/include/Point.h (100%) rename {detectors/tpc => Detectors/TPC}/simulation/src/Detector.cxx (100%) rename {detectors/tpc => Detectors/TPC}/simulation/src/Point.cxx (100%) rename {detectors/tpc => Detectors/TPC}/simulation/src/tpcSimulationLinkDef.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index d794029081e25..95a4fa9821b40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -219,7 +219,7 @@ add_subdirectory (devices) add_subdirectory (macro) add_subdirectory (o2cdb) add_subdirectory (o2qa) -add_subdirectory (detectors) +add_subdirectory (Detectors) add_subdirectory (DataFormats) diff --git a/Detectors/CMakeLists.txt b/Detectors/CMakeLists.txt new file mode 100644 index 0000000000000..575411aac4295 --- /dev/null +++ b/Detectors/CMakeLists.txt @@ -0,0 +1,19 @@ +# ************************************************************************** +# * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. * +# * * +# * Author: The ALICE Off-line Project. * +# * Contributors are mentioned in the code where appropriate. * +# * * +# * Permission to use, copy, modify and distribute this software and its * +# * documentation strictly for non-commercial purposes is hereby granted * +# * without fee, provided that the above copyright notice appears in all * +# * copies and that both the copyright notice and this permission notice * +# * appear in the supporting documentation. The authors make no claims * +# * about the suitability of this software for any purpose. It is * +# * provided "as is" without express or implied warranty. * +# ************************************************************************** + +# Libraries +add_subdirectory(Passive) +add_subdirectory(ITSMFT) +add_subdirectory(TPC) diff --git a/detectors/geometry/cave.geo b/Detectors/Geometry/cave.geo similarity index 100% rename from detectors/geometry/cave.geo rename to Detectors/Geometry/cave.geo diff --git a/detectors/geometry/media.geo b/Detectors/Geometry/media.geo similarity index 100% rename from detectors/geometry/media.geo rename to Detectors/Geometry/media.geo diff --git a/detectors/itsmft/CMakeLists.txt b/Detectors/ITSMFT/CMakeLists.txt similarity index 96% rename from detectors/itsmft/CMakeLists.txt rename to Detectors/ITSMFT/CMakeLists.txt index ab6b867bd03cc..b4fb37699ad3f 100644 --- a/detectors/itsmft/CMakeLists.txt +++ b/Detectors/ITSMFT/CMakeLists.txt @@ -14,7 +14,7 @@ # ************************************************************************** # Libraries -add_subdirectory(its) +add_subdirectory(ITS) add_subdirectory(common) add_subdirectory(test) -add_subdirectory(mft) +add_subdirectory(MFT) diff --git a/detectors/itsmft/its/CMakeLists.txt b/Detectors/ITSMFT/ITS/CMakeLists.txt similarity index 100% rename from detectors/itsmft/its/CMakeLists.txt rename to Detectors/ITSMFT/ITS/CMakeLists.txt diff --git a/detectors/itsmft/its/base/CMakeLists.txt b/Detectors/ITSMFT/ITS/base/CMakeLists.txt similarity index 100% rename from detectors/itsmft/its/base/CMakeLists.txt rename to Detectors/ITSMFT/ITS/base/CMakeLists.txt diff --git a/detectors/itsmft/its/base/README.md b/Detectors/ITSMFT/ITS/base/README.md similarity index 100% rename from detectors/itsmft/its/base/README.md rename to Detectors/ITSMFT/ITS/base/README.md diff --git a/detectors/itsmft/its/base/include/ContainerFactory.h b/Detectors/ITSMFT/ITS/base/include/ContainerFactory.h similarity index 100% rename from detectors/itsmft/its/base/include/ContainerFactory.h rename to Detectors/ITSMFT/ITS/base/include/ContainerFactory.h diff --git a/detectors/itsmft/its/base/include/MisalignmentParameter.h b/Detectors/ITSMFT/ITS/base/include/MisalignmentParameter.h similarity index 100% rename from detectors/itsmft/its/base/include/MisalignmentParameter.h rename to Detectors/ITSMFT/ITS/base/include/MisalignmentParameter.h diff --git a/detectors/itsmft/its/base/include/README.md b/Detectors/ITSMFT/ITS/base/include/README.md similarity index 100% rename from detectors/itsmft/its/base/include/README.md rename to Detectors/ITSMFT/ITS/base/include/README.md diff --git a/detectors/itsmft/its/base/src/ContainerFactory.cxx b/Detectors/ITSMFT/ITS/base/src/ContainerFactory.cxx similarity index 100% rename from detectors/itsmft/its/base/src/ContainerFactory.cxx rename to Detectors/ITSMFT/ITS/base/src/ContainerFactory.cxx diff --git a/detectors/itsmft/its/base/src/MisalignmentParameter.cxx b/Detectors/ITSMFT/ITS/base/src/MisalignmentParameter.cxx similarity index 100% rename from detectors/itsmft/its/base/src/MisalignmentParameter.cxx rename to Detectors/ITSMFT/ITS/base/src/MisalignmentParameter.cxx diff --git a/detectors/itsmft/its/base/src/README.md b/Detectors/ITSMFT/ITS/base/src/README.md similarity index 100% rename from detectors/itsmft/its/base/src/README.md rename to Detectors/ITSMFT/ITS/base/src/README.md diff --git a/detectors/itsmft/its/base/src/itsBaseLinkDef.h b/Detectors/ITSMFT/ITS/base/src/itsBaseLinkDef.h similarity index 100% rename from detectors/itsmft/its/base/src/itsBaseLinkDef.h rename to Detectors/ITSMFT/ITS/base/src/itsBaseLinkDef.h diff --git a/detectors/itsmft/its/reconstruction/CMakeLists.txt b/Detectors/ITSMFT/ITS/reconstruction/CMakeLists.txt similarity index 100% rename from detectors/itsmft/its/reconstruction/CMakeLists.txt rename to Detectors/ITSMFT/ITS/reconstruction/CMakeLists.txt diff --git a/detectors/itsmft/its/reconstruction/include/README.md b/Detectors/ITSMFT/ITS/reconstruction/include/README.md similarity index 100% rename from detectors/itsmft/its/reconstruction/include/README.md rename to Detectors/ITSMFT/ITS/reconstruction/include/README.md diff --git a/detectors/itsmft/its/reconstruction/src/README.md b/Detectors/ITSMFT/ITS/reconstruction/src/README.md similarity index 100% rename from detectors/itsmft/its/reconstruction/src/README.md rename to Detectors/ITSMFT/ITS/reconstruction/src/README.md diff --git a/detectors/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h b/Detectors/ITSMFT/ITS/reconstruction/src/itsReconstructionLinkDef.h similarity index 100% rename from detectors/itsmft/its/reconstruction/src/itsReconstructionLinkDef.h rename to Detectors/ITSMFT/ITS/reconstruction/src/itsReconstructionLinkDef.h diff --git a/detectors/itsmft/its/simulation/CMakeLists.txt b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt similarity index 100% rename from detectors/itsmft/its/simulation/CMakeLists.txt rename to Detectors/ITSMFT/ITS/simulation/CMakeLists.txt diff --git a/detectors/itsmft/its/simulation/include/Chip.h b/Detectors/ITSMFT/ITS/simulation/include/Chip.h similarity index 100% rename from detectors/itsmft/its/simulation/include/Chip.h rename to Detectors/ITSMFT/ITS/simulation/include/Chip.h diff --git a/detectors/itsmft/its/simulation/include/Detector.h b/Detectors/ITSMFT/ITS/simulation/include/Detector.h similarity index 100% rename from detectors/itsmft/its/simulation/include/Detector.h rename to Detectors/ITSMFT/ITS/simulation/include/Detector.h diff --git a/detectors/itsmft/its/simulation/include/Digit.h b/Detectors/ITSMFT/ITS/simulation/include/Digit.h similarity index 100% rename from detectors/itsmft/its/simulation/include/Digit.h rename to Detectors/ITSMFT/ITS/simulation/include/Digit.h diff --git a/detectors/itsmft/its/simulation/include/DigitContainer.h b/Detectors/ITSMFT/ITS/simulation/include/DigitContainer.h similarity index 100% rename from detectors/itsmft/its/simulation/include/DigitContainer.h rename to Detectors/ITSMFT/ITS/simulation/include/DigitContainer.h diff --git a/detectors/itsmft/its/simulation/include/DigitLayer.h b/Detectors/ITSMFT/ITS/simulation/include/DigitLayer.h similarity index 100% rename from detectors/itsmft/its/simulation/include/DigitLayer.h rename to Detectors/ITSMFT/ITS/simulation/include/DigitLayer.h diff --git a/detectors/itsmft/its/simulation/include/DigitStave.h b/Detectors/ITSMFT/ITS/simulation/include/DigitStave.h similarity index 100% rename from detectors/itsmft/its/simulation/include/DigitStave.h rename to Detectors/ITSMFT/ITS/simulation/include/DigitStave.h diff --git a/detectors/itsmft/its/simulation/include/DigitWriteoutBuffer.h b/Detectors/ITSMFT/ITS/simulation/include/DigitWriteoutBuffer.h similarity index 100% rename from detectors/itsmft/its/simulation/include/DigitWriteoutBuffer.h rename to Detectors/ITSMFT/ITS/simulation/include/DigitWriteoutBuffer.h diff --git a/detectors/itsmft/its/simulation/include/Digitizer.h b/Detectors/ITSMFT/ITS/simulation/include/Digitizer.h similarity index 100% rename from detectors/itsmft/its/simulation/include/Digitizer.h rename to Detectors/ITSMFT/ITS/simulation/include/Digitizer.h diff --git a/detectors/itsmft/its/simulation/include/DigitizerTask.h b/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h similarity index 100% rename from detectors/itsmft/its/simulation/include/DigitizerTask.h rename to Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h diff --git a/detectors/itsmft/its/simulation/include/GeometryHandler.h b/Detectors/ITSMFT/ITS/simulation/include/GeometryHandler.h similarity index 100% rename from detectors/itsmft/its/simulation/include/GeometryHandler.h rename to Detectors/ITSMFT/ITS/simulation/include/GeometryHandler.h diff --git a/detectors/itsmft/its/simulation/include/GeometryManager.h b/Detectors/ITSMFT/ITS/simulation/include/GeometryManager.h similarity index 100% rename from detectors/itsmft/its/simulation/include/GeometryManager.h rename to Detectors/ITSMFT/ITS/simulation/include/GeometryManager.h diff --git a/detectors/itsmft/its/simulation/include/Point.h b/Detectors/ITSMFT/ITS/simulation/include/Point.h similarity index 100% rename from detectors/itsmft/its/simulation/include/Point.h rename to Detectors/ITSMFT/ITS/simulation/include/Point.h diff --git a/detectors/itsmft/its/simulation/include/README.md b/Detectors/ITSMFT/ITS/simulation/include/README.md similarity index 100% rename from detectors/itsmft/its/simulation/include/README.md rename to Detectors/ITSMFT/ITS/simulation/include/README.md diff --git a/detectors/itsmft/its/simulation/include/Segmentation.h b/Detectors/ITSMFT/ITS/simulation/include/Segmentation.h similarity index 100% rename from detectors/itsmft/its/simulation/include/Segmentation.h rename to Detectors/ITSMFT/ITS/simulation/include/Segmentation.h diff --git a/detectors/itsmft/its/simulation/include/UpgradeGeometryTGeo.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h similarity index 100% rename from detectors/itsmft/its/simulation/include/UpgradeGeometryTGeo.h rename to Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h diff --git a/detectors/itsmft/its/simulation/include/UpgradeSegmentationPixel.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h similarity index 100% rename from detectors/itsmft/its/simulation/include/UpgradeSegmentationPixel.h rename to Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h diff --git a/detectors/itsmft/its/simulation/include/UpgradeV1Layer.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h similarity index 100% rename from detectors/itsmft/its/simulation/include/UpgradeV1Layer.h rename to Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h diff --git a/detectors/itsmft/its/simulation/include/V11Geometry.h b/Detectors/ITSMFT/ITS/simulation/include/V11Geometry.h similarity index 100% rename from detectors/itsmft/its/simulation/include/V11Geometry.h rename to Detectors/ITSMFT/ITS/simulation/include/V11Geometry.h diff --git a/detectors/itsmft/its/simulation/src/Chip.cxx b/Detectors/ITSMFT/ITS/simulation/src/Chip.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/Chip.cxx rename to Detectors/ITSMFT/ITS/simulation/src/Chip.cxx diff --git a/detectors/itsmft/its/simulation/src/Detector.cxx b/Detectors/ITSMFT/ITS/simulation/src/Detector.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/Detector.cxx rename to Detectors/ITSMFT/ITS/simulation/src/Detector.cxx diff --git a/detectors/itsmft/its/simulation/src/Digit.cxx b/Detectors/ITSMFT/ITS/simulation/src/Digit.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/Digit.cxx rename to Detectors/ITSMFT/ITS/simulation/src/Digit.cxx diff --git a/detectors/itsmft/its/simulation/src/DigitContainer.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitContainer.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/DigitContainer.cxx rename to Detectors/ITSMFT/ITS/simulation/src/DigitContainer.cxx diff --git a/detectors/itsmft/its/simulation/src/DigitLayer.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitLayer.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/DigitLayer.cxx rename to Detectors/ITSMFT/ITS/simulation/src/DigitLayer.cxx diff --git a/detectors/itsmft/its/simulation/src/DigitStave.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitStave.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/DigitStave.cxx rename to Detectors/ITSMFT/ITS/simulation/src/DigitStave.cxx diff --git a/detectors/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitWriteoutBuffer.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/DigitWriteoutBuffer.cxx rename to Detectors/ITSMFT/ITS/simulation/src/DigitWriteoutBuffer.cxx diff --git a/detectors/itsmft/its/simulation/src/Digitizer.cxx b/Detectors/ITSMFT/ITS/simulation/src/Digitizer.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/Digitizer.cxx rename to Detectors/ITSMFT/ITS/simulation/src/Digitizer.cxx diff --git a/detectors/itsmft/its/simulation/src/DigitizerTask.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitizerTask.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/DigitizerTask.cxx rename to Detectors/ITSMFT/ITS/simulation/src/DigitizerTask.cxx diff --git a/detectors/itsmft/its/simulation/src/GeometryHandler.cxx b/Detectors/ITSMFT/ITS/simulation/src/GeometryHandler.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/GeometryHandler.cxx rename to Detectors/ITSMFT/ITS/simulation/src/GeometryHandler.cxx diff --git a/detectors/itsmft/its/simulation/src/GeometryManager.cxx b/Detectors/ITSMFT/ITS/simulation/src/GeometryManager.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/GeometryManager.cxx rename to Detectors/ITSMFT/ITS/simulation/src/GeometryManager.cxx diff --git a/detectors/itsmft/its/simulation/src/Point.cxx b/Detectors/ITSMFT/ITS/simulation/src/Point.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/Point.cxx rename to Detectors/ITSMFT/ITS/simulation/src/Point.cxx diff --git a/detectors/itsmft/its/simulation/src/README.md b/Detectors/ITSMFT/ITS/simulation/src/README.md similarity index 100% rename from detectors/itsmft/its/simulation/src/README.md rename to Detectors/ITSMFT/ITS/simulation/src/README.md diff --git a/detectors/itsmft/its/simulation/src/Segmentation.cxx b/Detectors/ITSMFT/ITS/simulation/src/Segmentation.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/Segmentation.cxx rename to Detectors/ITSMFT/ITS/simulation/src/Segmentation.cxx diff --git a/detectors/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx b/Detectors/ITSMFT/ITS/simulation/src/UpgradeGeometryTGeo.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/UpgradeGeometryTGeo.cxx rename to Detectors/ITSMFT/ITS/simulation/src/UpgradeGeometryTGeo.cxx diff --git a/detectors/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx b/Detectors/ITSMFT/ITS/simulation/src/UpgradeSegmentationPixel.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/UpgradeSegmentationPixel.cxx rename to Detectors/ITSMFT/ITS/simulation/src/UpgradeSegmentationPixel.cxx diff --git a/detectors/itsmft/its/simulation/src/UpgradeV1Layer.cxx b/Detectors/ITSMFT/ITS/simulation/src/UpgradeV1Layer.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/UpgradeV1Layer.cxx rename to Detectors/ITSMFT/ITS/simulation/src/UpgradeV1Layer.cxx diff --git a/detectors/itsmft/its/simulation/src/V11Geometry.cxx b/Detectors/ITSMFT/ITS/simulation/src/V11Geometry.cxx similarity index 100% rename from detectors/itsmft/its/simulation/src/V11Geometry.cxx rename to Detectors/ITSMFT/ITS/simulation/src/V11Geometry.cxx diff --git a/detectors/itsmft/its/simulation/src/itsSimulationLinkDef.h b/Detectors/ITSMFT/ITS/simulation/src/itsSimulationLinkDef.h similarity index 100% rename from detectors/itsmft/its/simulation/src/itsSimulationLinkDef.h rename to Detectors/ITSMFT/ITS/simulation/src/itsSimulationLinkDef.h diff --git a/detectors/itsmft/common/CMakeLists.txt b/Detectors/ITSMFT/MFT/CMakeLists.txt similarity index 100% rename from detectors/itsmft/common/CMakeLists.txt rename to Detectors/ITSMFT/MFT/CMakeLists.txt diff --git a/detectors/itsmft/mft/CMakeLists.txt b/Detectors/ITSMFT/common/CMakeLists.txt similarity index 100% rename from detectors/itsmft/mft/CMakeLists.txt rename to Detectors/ITSMFT/common/CMakeLists.txt diff --git a/detectors/itsmft/common/README.md b/Detectors/ITSMFT/common/README.md similarity index 100% rename from detectors/itsmft/common/README.md rename to Detectors/ITSMFT/common/README.md diff --git a/detectors/itsmft/test/CMakeLists.txt b/Detectors/ITSMFT/test/CMakeLists.txt similarity index 100% rename from detectors/itsmft/test/CMakeLists.txt rename to Detectors/ITSMFT/test/CMakeLists.txt diff --git a/detectors/itsmft/test/HitAnalysis/CMakeLists.txt b/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt similarity index 100% rename from detectors/itsmft/test/HitAnalysis/CMakeLists.txt rename to Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt diff --git a/detectors/itsmft/test/HitAnalysis/include/HitAnalysis.h b/Detectors/ITSMFT/test/HitAnalysis/include/HitAnalysis.h similarity index 100% rename from detectors/itsmft/test/HitAnalysis/include/HitAnalysis.h rename to Detectors/ITSMFT/test/HitAnalysis/include/HitAnalysis.h diff --git a/detectors/itsmft/test/HitAnalysis/src/HitAnalysis.cxx b/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx similarity index 100% rename from detectors/itsmft/test/HitAnalysis/src/HitAnalysis.cxx rename to Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx diff --git a/detectors/itsmft/test/HitAnalysis/src/testitsLinkDef.h b/Detectors/ITSMFT/test/HitAnalysis/src/testitsLinkDef.h similarity index 100% rename from detectors/itsmft/test/HitAnalysis/src/testitsLinkDef.h rename to Detectors/ITSMFT/test/HitAnalysis/src/testitsLinkDef.h diff --git a/detectors/passive/CMakeLists.txt b/Detectors/Passive/CMakeLists.txt similarity index 100% rename from detectors/passive/CMakeLists.txt rename to Detectors/Passive/CMakeLists.txt diff --git a/detectors/passive/Cave.cxx b/Detectors/Passive/Cave.cxx similarity index 100% rename from detectors/passive/Cave.cxx rename to Detectors/Passive/Cave.cxx diff --git a/detectors/passive/Cave.h b/Detectors/Passive/Cave.h similarity index 100% rename from detectors/passive/Cave.h rename to Detectors/Passive/Cave.h diff --git a/detectors/passive/GeoCave.cxx b/Detectors/Passive/GeoCave.cxx similarity index 100% rename from detectors/passive/GeoCave.cxx rename to Detectors/Passive/GeoCave.cxx diff --git a/detectors/passive/GeoCave.h b/Detectors/Passive/GeoCave.h similarity index 100% rename from detectors/passive/GeoCave.h rename to Detectors/Passive/GeoCave.h diff --git a/detectors/passive/Magnet.cxx b/Detectors/Passive/Magnet.cxx similarity index 100% rename from detectors/passive/Magnet.cxx rename to Detectors/Passive/Magnet.cxx diff --git a/detectors/passive/Magnet.h b/Detectors/Passive/Magnet.h similarity index 100% rename from detectors/passive/Magnet.h rename to Detectors/Passive/Magnet.h diff --git a/detectors/passive/PassiveContFact.cxx b/Detectors/Passive/PassiveContFact.cxx similarity index 100% rename from detectors/passive/PassiveContFact.cxx rename to Detectors/Passive/PassiveContFact.cxx diff --git a/detectors/passive/PassiveContFact.h b/Detectors/Passive/PassiveContFact.h similarity index 100% rename from detectors/passive/PassiveContFact.h rename to Detectors/Passive/PassiveContFact.h diff --git a/detectors/passive/PassiveLinkDef.h b/Detectors/Passive/PassiveLinkDef.h similarity index 100% rename from detectors/passive/PassiveLinkDef.h rename to Detectors/Passive/PassiveLinkDef.h diff --git a/detectors/passive/Pipe.cxx b/Detectors/Passive/Pipe.cxx similarity index 100% rename from detectors/passive/Pipe.cxx rename to Detectors/Passive/Pipe.cxx diff --git a/detectors/passive/Pipe.h b/Detectors/Passive/Pipe.h similarity index 100% rename from detectors/passive/Pipe.h rename to Detectors/Passive/Pipe.h diff --git a/detectors/tpc/CMakeLists.txt b/Detectors/TPC/CMakeLists.txt similarity index 100% rename from detectors/tpc/CMakeLists.txt rename to Detectors/TPC/CMakeLists.txt diff --git a/detectors/tpc/base/CMakeLists.txt b/Detectors/TPC/base/CMakeLists.txt similarity index 100% rename from detectors/tpc/base/CMakeLists.txt rename to Detectors/TPC/base/CMakeLists.txt diff --git a/detectors/tpc/base/include/ContainerFactory.h b/Detectors/TPC/base/include/ContainerFactory.h similarity index 100% rename from detectors/tpc/base/include/ContainerFactory.h rename to Detectors/TPC/base/include/ContainerFactory.h diff --git a/detectors/tpc/base/src/ContainerFactory.cxx b/Detectors/TPC/base/src/ContainerFactory.cxx similarity index 100% rename from detectors/tpc/base/src/ContainerFactory.cxx rename to Detectors/TPC/base/src/ContainerFactory.cxx diff --git a/detectors/tpc/base/src/tpcBaseLinkDef.h b/Detectors/TPC/base/src/tpcBaseLinkDef.h similarity index 100% rename from detectors/tpc/base/src/tpcBaseLinkDef.h rename to Detectors/TPC/base/src/tpcBaseLinkDef.h diff --git a/detectors/tpc/reconstruction/CMakeLists.txt b/Detectors/TPC/reconstruction/CMakeLists.txt similarity index 100% rename from detectors/tpc/reconstruction/CMakeLists.txt rename to Detectors/TPC/reconstruction/CMakeLists.txt diff --git a/detectors/tpc/reconstruction/include/README.md b/Detectors/TPC/reconstruction/include/README.md similarity index 100% rename from detectors/tpc/reconstruction/include/README.md rename to Detectors/TPC/reconstruction/include/README.md diff --git a/detectors/tpc/reconstruction/src/README.md b/Detectors/TPC/reconstruction/src/README.md similarity index 100% rename from detectors/tpc/reconstruction/src/README.md rename to Detectors/TPC/reconstruction/src/README.md diff --git a/detectors/tpc/reconstruction/src/tpcReconstructionLinkDef.h b/Detectors/TPC/reconstruction/src/tpcReconstructionLinkDef.h similarity index 100% rename from detectors/tpc/reconstruction/src/tpcReconstructionLinkDef.h rename to Detectors/TPC/reconstruction/src/tpcReconstructionLinkDef.h diff --git a/detectors/tpc/simulation/CMakeLists.txt b/Detectors/TPC/simulation/CMakeLists.txt similarity index 100% rename from detectors/tpc/simulation/CMakeLists.txt rename to Detectors/TPC/simulation/CMakeLists.txt diff --git a/detectors/tpc/simulation/include/Detector.h b/Detectors/TPC/simulation/include/Detector.h similarity index 100% rename from detectors/tpc/simulation/include/Detector.h rename to Detectors/TPC/simulation/include/Detector.h diff --git a/detectors/tpc/simulation/include/Point.h b/Detectors/TPC/simulation/include/Point.h similarity index 100% rename from detectors/tpc/simulation/include/Point.h rename to Detectors/TPC/simulation/include/Point.h diff --git a/detectors/tpc/simulation/src/Detector.cxx b/Detectors/TPC/simulation/src/Detector.cxx similarity index 100% rename from detectors/tpc/simulation/src/Detector.cxx rename to Detectors/TPC/simulation/src/Detector.cxx diff --git a/detectors/tpc/simulation/src/Point.cxx b/Detectors/TPC/simulation/src/Point.cxx similarity index 100% rename from detectors/tpc/simulation/src/Point.cxx rename to Detectors/TPC/simulation/src/Point.cxx diff --git a/detectors/tpc/simulation/src/tpcSimulationLinkDef.h b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h similarity index 100% rename from detectors/tpc/simulation/src/tpcSimulationLinkDef.h rename to Detectors/TPC/simulation/src/tpcSimulationLinkDef.h From 9e86b416422df3fcc5fb871f10830b24ff6ee4c6 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 2 May 2016 11:34:02 +0200 Subject: [PATCH 073/135] Re-arrange the repository cintinue changing the names according to the convention --- Detectors/ITSMFT/ITS/base/CMakeLists.txt | 2 +- Detectors/ITSMFT/ITS/simulation/CMakeLists.txt | 6 +++--- Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt | 4 ++-- Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx | 8 ++++---- Detectors/Passive/CMakeLists.txt | 2 +- Detectors/TPC/base/CMakeLists.txt | 2 +- Detectors/TPC/simulation/CMakeLists.txt | 6 +++--- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Detectors/ITSMFT/ITS/base/CMakeLists.txt b/Detectors/ITSMFT/ITS/base/CMakeLists.txt index af5787adba98f..1270fe6bc8e82 100644 --- a/Detectors/ITSMFT/ITS/base/CMakeLists.txt +++ b/Detectors/ITSMFT/ITS/base/CMakeLists.txt @@ -1,6 +1,6 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/base/ + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt index e417d0bfab6cf..abeb84ec7c6ee 100644 --- a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt +++ b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt @@ -1,8 +1,8 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/base/ - ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/simulation/ - ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/simulation/include + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/ + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/include ) diff --git a/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt b/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt index f7b0291669f43..53b5fc175972e 100644 --- a/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt +++ b/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt @@ -1,7 +1,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/detectors/itsmft/its/simulation/include - ${CMAKE_SOURCE_DIR}/detectors/itsmft/test/HitAnalysis + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/include + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/test/HitAnalysis ) set(SYSTEM_INCLUDE_DIRECTORIES ${ROOT_INCLUDE_DIR} diff --git a/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx b/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx index 813906dfc2ee2..6345eeca6b007 100644 --- a/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx +++ b/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx @@ -20,10 +20,10 @@ #include "TMath.h" -#include "detectors/itsmft/its/simulation/include/Chip.h" // for Chip, Chip::IndexException -#include "detectors/itsmft/its/simulation/include/Point.h" // for Point -#include "detectors/itsmft/its/simulation/include/Segmentation.h" // for Segmentation -#include "detectors/itsmft/its/simulation/include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "detectors/ITSMFT/ITS/simulation/include/Chip.h" // for Chip, Chip::IndexException +#include "detectors/ITSMFT/ITS/simulation/include/Point.h" // for Point +#include "detectors/ITSMFT/ITS/simulation/include/Segmentation.h" // for Segmentation +#include "detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo #include diff --git a/Detectors/Passive/CMakeLists.txt b/Detectors/Passive/CMakeLists.txt index 5c49942b4c43b..dc79ea6f1a315 100644 --- a/Detectors/Passive/CMakeLists.txt +++ b/Detectors/Passive/CMakeLists.txt @@ -3,7 +3,7 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/detectors/passive +${CMAKE_SOURCE_DIR}/Detectors/passive ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/TPC/base/CMakeLists.txt b/Detectors/TPC/base/CMakeLists.txt index 85c33e63200b3..e101a65ecda75 100644 --- a/Detectors/TPC/base/CMakeLists.txt +++ b/Detectors/TPC/base/CMakeLists.txt @@ -1,7 +1,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/detectors/tpc/base + ${CMAKE_SOURCE_DIR}/Detectors/TPC/base ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/TPC/simulation/CMakeLists.txt b/Detectors/TPC/simulation/CMakeLists.txt index 458964185a2eb..e5cadf3ac0c78 100644 --- a/Detectors/TPC/simulation/CMakeLists.txt +++ b/Detectors/TPC/simulation/CMakeLists.txt @@ -1,9 +1,9 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/detectors/tpc - ${CMAKE_SOURCE_DIR}/detectors/tpc/simulation - ${CMAKE_SOURCE_DIR}/detectors/tpc/simulation/include + ${CMAKE_SOURCE_DIR}/Detectors/tpc + ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation + ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation/include ) set(SYSTEM_INCLUDE_DIRECTORIES From 6b812f20578bd7264c03464f47a0b5c9c82f6653 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 2 May 2016 11:56:57 +0200 Subject: [PATCH 074/135] Re-arrange the repository continue with the names --- Base/CMakeLists.txt | 2 +- Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx | 8 ++++---- Detectors/Passive/CMakeLists.txt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Base/CMakeLists.txt b/Base/CMakeLists.txt index 944b1903e4ce1..d4ef57a98ef30 100644 --- a/Base/CMakeLists.txt +++ b/Base/CMakeLists.txt @@ -31,6 +31,6 @@ Set(HEADERS ) Set(LINKDEF src/BaseLinkDef.h) Set(LIBRARY_NAME AliceO2Base) -Set(DEPENDENCIES Base parbase EG Physics Core ) +Set(DEPENDENCIES Base ParBase EG Physics Core ) GENERATE_LIBRARY() diff --git a/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx b/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx index 6345eeca6b007..5d2c59ce063dd 100644 --- a/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx +++ b/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx @@ -20,10 +20,10 @@ #include "TMath.h" -#include "detectors/ITSMFT/ITS/simulation/include/Chip.h" // for Chip, Chip::IndexException -#include "detectors/ITSMFT/ITS/simulation/include/Point.h" // for Point -#include "detectors/ITSMFT/ITS/simulation/include/Segmentation.h" // for Segmentation -#include "detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "Detectors/ITSMFT/ITS/simulation/include/Chip.h" // for Chip, Chip::IndexException +#include "Detectors/ITSMFT/ITS/simulation/include/Point.h" // for Point +#include "Detectors/ITSMFT/ITS/simulation/include/Segmentation.h" // for Segmentation +#include "Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo #include diff --git a/Detectors/Passive/CMakeLists.txt b/Detectors/Passive/CMakeLists.txt index dc79ea6f1a315..1d07fbde37aec 100644 --- a/Detectors/Passive/CMakeLists.txt +++ b/Detectors/Passive/CMakeLists.txt @@ -3,7 +3,7 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/Detectors/passive +${CMAKE_SOURCE_DIR}/Detectors/Passive ) set(SYSTEM_INCLUDE_DIRECTORIES From 92a3377d1de4a6ea0fc3704c61098dff459d4bc7 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 2 May 2016 12:04:22 +0200 Subject: [PATCH 075/135] Re-arrange the repository move Base to Detectors --- CMakeLists.txt | 1 - {Base => Detectors/Base}/CMakeLists.txt | 2 +- {Base => Detectors/Base}/include/Detector.h | 0 {Base => Detectors/Base}/include/TrackReference.h | 0 {Base => Detectors/Base}/src/BaseLinkDef.h | 0 {Base => Detectors/Base}/src/Detector.cxx | 0 {Base => Detectors/Base}/src/TrackReference.cxx | 0 Detectors/CMakeLists.txt | 1 + Detectors/ITSMFT/ITS/simulation/include/Detector.h | 2 +- Detectors/TPC/simulation/include/Detector.h | 2 +- 10 files changed, 4 insertions(+), 4 deletions(-) rename {Base => Detectors/Base}/CMakeLists.txt (94%) rename {Base => Detectors/Base}/include/Detector.h (100%) rename {Base => Detectors/Base}/include/TrackReference.h (100%) rename {Base => Detectors/Base}/src/BaseLinkDef.h (100%) rename {Base => Detectors/Base}/src/Detector.cxx (100%) rename {Base => Detectors/Base}/src/TrackReference.cxx (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 95a4fa9821b40..0317e4706cf72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -209,7 +209,6 @@ endif(NOT ALICEO2_MODULAR_BUILD) # cause another cmake executable to run. The same process will walk through # the project's entire directory structure. -add_subdirectory (Base) if (PYTHIA8_FOUND AND Pythia6_FOUND) add_subdirectory (Generators) Endif () diff --git a/Base/CMakeLists.txt b/Detectors/Base/CMakeLists.txt similarity index 94% rename from Base/CMakeLists.txt rename to Detectors/Base/CMakeLists.txt index d4ef57a98ef30..fcb352dbd8e73 100644 --- a/Base/CMakeLists.txt +++ b/Detectors/Base/CMakeLists.txt @@ -1,5 +1,5 @@ set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/Base + ${CMAKE_SOURCE_DIR}/Detectors/Base ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Base/include/Detector.h b/Detectors/Base/include/Detector.h similarity index 100% rename from Base/include/Detector.h rename to Detectors/Base/include/Detector.h diff --git a/Base/include/TrackReference.h b/Detectors/Base/include/TrackReference.h similarity index 100% rename from Base/include/TrackReference.h rename to Detectors/Base/include/TrackReference.h diff --git a/Base/src/BaseLinkDef.h b/Detectors/Base/src/BaseLinkDef.h similarity index 100% rename from Base/src/BaseLinkDef.h rename to Detectors/Base/src/BaseLinkDef.h diff --git a/Base/src/Detector.cxx b/Detectors/Base/src/Detector.cxx similarity index 100% rename from Base/src/Detector.cxx rename to Detectors/Base/src/Detector.cxx diff --git a/Base/src/TrackReference.cxx b/Detectors/Base/src/TrackReference.cxx similarity index 100% rename from Base/src/TrackReference.cxx rename to Detectors/Base/src/TrackReference.cxx diff --git a/Detectors/CMakeLists.txt b/Detectors/CMakeLists.txt index 575411aac4295..d58fc6f795180 100644 --- a/Detectors/CMakeLists.txt +++ b/Detectors/CMakeLists.txt @@ -17,3 +17,4 @@ add_subdirectory(Passive) add_subdirectory(ITSMFT) add_subdirectory(TPC) +add_subdirectory(Base) diff --git a/Detectors/ITSMFT/ITS/simulation/include/Detector.h b/Detectors/ITSMFT/ITS/simulation/include/Detector.h index fb5dfa0c9f519..13a5adf23f2a3 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/Detector.h +++ b/Detectors/ITSMFT/ITS/simulation/include/Detector.h @@ -4,7 +4,7 @@ #ifndef ALICEO2_ITS_DETECTOR_H_ #define ALICEO2_ITS_DETECTOR_H_ -#include "Base/include/Detector.h" // for Detector +#include "Detectors/Base/include/Detector.h" // for Detector #include "Rtypes.h" // for Int_t, Double_t, Float_t, Bool_t, etc #include "TArrayD.h" // for TArrayD #include "TGeoManager.h" // for gGeoManager, TGeoManager (ptr only) diff --git a/Detectors/TPC/simulation/include/Detector.h b/Detectors/TPC/simulation/include/Detector.h index fe307bc2516e3..593963a63e62d 100644 --- a/Detectors/TPC/simulation/include/Detector.h +++ b/Detectors/TPC/simulation/include/Detector.h @@ -1,7 +1,7 @@ #ifndef AliceO2_TPC_Detector_H_ #define AliceO2_TPC_Detector_H_ -#include "Base/include/Detector.h" // for Detector +#include "Detectors/Base/include/Detector.h" // for Detector #include "Rtypes.h" // for Int_t, Double32_t, Double_t, Bool_t, etc #include "TLorentzVector.h" // for TLorentzVector #include "TVector3.h" // for TVector3 From 99d833eb9e8715c00ade8d300ea59a44df490549 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 2 May 2016 16:24:47 +0200 Subject: [PATCH 076/135] Re-arrange the repository clean the includes --- .gitignore | 1 + Detectors/Base/include/TrackReference.h | 8 ++++---- Detectors/ITSMFT/ITS/simulation/CMakeLists.txt | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index c59147e5b6487..4acc6c0ad69c2 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ # build directory build/ build_o2/ +xbuild/ # common editor backups *.swp diff --git a/Detectors/Base/include/TrackReference.h b/Detectors/Base/include/TrackReference.h index 8f69fd0c4457b..e365055bd7c75 100644 --- a/Detectors/Base/include/TrackReference.h +++ b/Detectors/Base/include/TrackReference.h @@ -5,10 +5,10 @@ #ifndef ALICEO2_BASE_TRACKREFERENCE_H_ #define ALICEO2_BASE_TRACKREFERENCE_H_ -#include "Rtypes.h" // for Float_t, Int_t, TrackReference::Class, Bool_t, etc -#include "TMath.h" // for Pi, Sqrt, ATan2, Cos, Sin, ACos -#include "TObject.h" // for TObject - +#include "Rtypes.h" // for TrackReference::Class, ClassDef, etc +#include "RtypesCore.h" // for Float_t, Int_t, Bool_t, Option_t +#include "TMath.h" // for Pi, Sqrt, ATan2, Cos, Sin, ACos +#include "TObject.h" // for TObject namespace AliceO2 { namespace Base { diff --git a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt index abeb84ec7c6ee..7c7e133e50c4d 100644 --- a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt +++ b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt @@ -2,7 +2,6 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/ - ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/include ) From 57813851c3f01c9946dcc3db85115f3a67151cc3 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 08:29:36 +0200 Subject: [PATCH 077/135] Re-arrange the repository change the geometry default path --- Detectors/Base/include/TrackReference.h | 1 - macro/run_sim.C | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Detectors/Base/include/TrackReference.h b/Detectors/Base/include/TrackReference.h index e365055bd7c75..7ef01a4d4d088 100644 --- a/Detectors/Base/include/TrackReference.h +++ b/Detectors/Base/include/TrackReference.h @@ -6,7 +6,6 @@ #define ALICEO2_BASE_TRACKREFERENCE_H_ #include "Rtypes.h" // for TrackReference::Class, ClassDef, etc -#include "RtypesCore.h" // for Float_t, Int_t, Bool_t, Option_t #include "TMath.h" // for Pi, Sqrt, ATan2, Cos, Sin, ACos #include "TObject.h" // for TObject diff --git a/macro/run_sim.C b/macro/run_sim.C index 4b108857c4445..801bcf3426bcc 100644 --- a/macro/run_sim.C +++ b/macro/run_sim.C @@ -6,6 +6,14 @@ double radii2Turbo(double rMin, double rMid, double rMax, double sensW) void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") { + + + TString dir = getenv("VMCWORKDIR"); + TString geom_dir = dir + "/Detectors/Geometry/"; + gSystem->Setenv("GEOMPATH",geom_dir.Data()); + + + // Output file name char fileout[100]; sprintf(fileout, "AliceO2_%s.mc_%i_event.root", mcEngine.Data(), nEvents); From acfd9f5f19fdcc4cf111a1e30296c460a5f6ccb0 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 09:27:26 +0200 Subject: [PATCH 078/135] Re-arrange the repository Get the macros running again --- Detectors/ITSMFT/ITS/base/CMakeLists.txt | 2 +- .../ITSMFT/ITS/simulation/CMakeLists.txt | 26 +++++++++---------- .../simulation/include/UpgradeGeometryTGeo.h | 2 +- .../include/UpgradeSegmentationPixel.h | 2 +- .../ITS/simulation/include/UpgradeV1Layer.h | 6 ++--- .../ITSMFT/test/HitAnalysis/CMakeLists.txt | 3 ++- Detectors/TPC/simulation/CMakeLists.txt | 3 +-- Generators/CMakeLists.txt | 2 +- macro/load_all_libs.C | 12 +++++---- 9 files changed, 30 insertions(+), 28 deletions(-) diff --git a/Detectors/ITSMFT/ITS/base/CMakeLists.txt b/Detectors/ITSMFT/ITS/base/CMakeLists.txt index 1270fe6bc8e82..403ca5d8a7726 100644 --- a/Detectors/ITSMFT/ITS/base/CMakeLists.txt +++ b/Detectors/ITSMFT/ITS/base/CMakeLists.txt @@ -34,7 +34,7 @@ set(HEADERS Set(LINKDEF src/itsBaseLinkDef.h) Set(LIBRARY_NAME itsBase) Set(DEPENDENCIES - AliceO2Base + AliceO2Base ParBase ) GENERATE_LIBRARY() diff --git a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt index 7c7e133e50c4d..5d94edd0d8421 100644 --- a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt +++ b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt @@ -2,7 +2,6 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/ - ) set(SYSTEM_INCLUDE_DIRECTORIES @@ -43,23 +42,23 @@ set(SRCS src/DigitStave.cxx ) set(HEADERS - include/UpgradeGeometryTGeo.h - include/V11Geometry.h - include/UpgradeV1Layer.h - include/Segmentation.h - include/UpgradeSegmentationPixel.h - include/GeometryManager.h - include/Detector.h - include/GeometryHandler.h - include/Point.h include/Chip.h + include/Detector.h include/Digit.h - include/Digitizer.h - include/DigitizerTask.h - include/DigitWriteoutBuffer.h include/DigitContainer.h include/DigitLayer.h include/DigitStave.h + include/DigitWriteoutBuffer.h + include/Digitizer.h + include/DigitizerTask.h + include/GeometryHandler.h + include/GeometryManager.h + include/Point.h + include/Segmentation.h + include/UpgradeGeometryTGeo.h + include/UpgradeSegmentationPixel.h + include/UpgradeV1Layer.h + include/V11Geometry.h ) Set(LINKDEF src/itsSimulationLinkDef.h) @@ -67,6 +66,7 @@ Set(LIBRARY_NAME itsSimulation) Set(DEPENDENCIES itsBase AliceO2Base + Base ParBase ) GENERATE_LIBRARY() diff --git a/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h index e2be9cfd1e1b9..1876c00f0df4a 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h +++ b/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h @@ -11,7 +11,7 @@ #include // for TObject #include // for TString #include "Rtypes.h" // for Int_t, Double_t, Bool_t, UInt_t, etc -#include "Segmentation.h" // for Segmentation +#include "include/Segmentation.h" // for Segmentation class TGeoPNEntry; // lines 17-17 diff --git a/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h index 802a7c7d29702..39711cf10e0ee 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h +++ b/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h @@ -6,7 +6,7 @@ #include "FairLogger.h" // for LOG #include "Rtypes.h" // for Int_t, Float_t, Double_t, UInt_t, etc -#include "Segmentation.h" // for Segmentation +#include "include/Segmentation.h" // for Segmentation class TObjArray; namespace AliceO2 { diff --git a/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h index d4e03b2290243..31bad988cda57 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h +++ b/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h @@ -8,7 +8,7 @@ #include // for gGeoManager #include "Rtypes.h" // for Double_t, Int_t, Bool_t, etc -#include "V11Geometry.h" // for V11Geometry +#include "include/V11Geometry.h" // for V11Geometry #include "include/Detector.h" // for Detector, Detector::UpgradeModel class TGeoArb8; class TGeoCombiTrans; @@ -109,7 +109,7 @@ class UpgradeV1Layer : public V11Geometry { return mHierarchy[kChip]; } - AliceO2::ITS::Detector::UpgradeModel getStaveModel() const + Detector::UpgradeModel getStaveModel() const { return mStaveModel; } @@ -321,7 +321,7 @@ class UpgradeV1Layer : public V11Geometry { Bool_t mIsTurbo; ///< True if this layer is a "turbo" layer Int_t mBuildLevel; ///< Used for material studies - AliceO2::ITS::Detector::UpgradeModel mStaveModel; ///< The stave model + Detector::UpgradeModel mStaveModel; ///< The stave model // Parameters for the Upgrade geometry diff --git a/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt b/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt index 53b5fc175972e..c9e1d9cdca6d3 100644 --- a/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt +++ b/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt @@ -1,6 +1,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/include + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/ ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/test/HitAnalysis ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/TPC/simulation/CMakeLists.txt b/Detectors/TPC/simulation/CMakeLists.txt index e5cadf3ac0c78..a53a058c3fa0e 100644 --- a/Detectors/TPC/simulation/CMakeLists.txt +++ b/Detectors/TPC/simulation/CMakeLists.txt @@ -1,9 +1,8 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/Detectors/tpc + ${CMAKE_SOURCE_DIR}/Detectors/TPC/Base ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation - ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation/include ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Generators/CMakeLists.txt b/Generators/CMakeLists.txt index 10b5e80ccb30c..03afe15828d34 100644 --- a/Generators/CMakeLists.txt +++ b/Generators/CMakeLists.txt @@ -40,7 +40,7 @@ set( HEADERS ) set(LINKDEF src/EventGeneratorLinkDef.h) -set(LIBRARY_NAME EvntGenerator) +set(LIBRARY_NAME EvtGenerator) set(DEPENDENCIES Base O2SimulationDataFormat pythia8 Pythia6) diff --git a/macro/load_all_libs.C b/macro/load_all_libs.C index 3f9d075863f81..d75f18a4e3ab3 100644 --- a/macro/load_all_libs.C +++ b/macro/load_all_libs.C @@ -5,16 +5,18 @@ void load_all_libs() gSystem->Load("libAliceO2Cdb"); gSystem->Load("libFLP2EPNex"); gSystem->Load("libFLP2EPNex_distributed"); - gSystem->Load("libFLP2EPNex_dynamic"); gSystem->Load("libField"); gSystem->Load("libMathUtils"); - gSystem->Load("libO2Data"); - gSystem->Load("libO2Gen"); + gSystem->Load("libO2SimulationDataFormat)"); + gSystem->Load("libEvtGenerator"); gSystem->Load("libPassive"); gSystem->Load("libRoundtripTest"); gSystem->Load("libits"); - gSystem->Load("libtpc"); - + gSystem->Load("libitsBase"); + gSystem->Load("libSimulation"); + gSystem->Load("libtpcBase"); + gSystem->Load("libtpcSimulation"); + gSystem->Load("libo2qaLibrary"); cout << endl << endl; cout << "Macro finished succesfully." << endl; } From 0f3725e21d8b7a06b9474f281cdbe90ae15b30fb Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 10:12:42 +0200 Subject: [PATCH 079/135] Re-arrange the repository apply changes to passive detectors --- Detectors/Passive/CMakeLists.txt | 33 +++++++++-------- Detectors/Passive/{ => include}/Cave.h | 1 - Detectors/Passive/{ => include}/GeoCave.h | 0 Detectors/Passive/{ => include}/Magnet.h | 0 .../Passive/{ => include}/PassiveContFact.h | 0 Detectors/Passive/{ => include}/Pipe.h | 0 Detectors/Passive/{ => src}/Cave.cxx | 6 ++-- Detectors/Passive/{ => src}/GeoCave.cxx | 2 +- Detectors/Passive/{ => src}/Magnet.cxx | 36 ++++++------------- .../Passive/{ => src}/PassiveContFact.cxx | 3 +- Detectors/Passive/{ => src}/PassiveLinkDef.h | 0 Detectors/Passive/{ => src}/Pipe.cxx | 19 +++++----- 12 files changed, 44 insertions(+), 56 deletions(-) rename Detectors/Passive/{ => include}/Cave.h (99%) rename Detectors/Passive/{ => include}/GeoCave.h (100%) rename Detectors/Passive/{ => include}/Magnet.h (100%) rename Detectors/Passive/{ => include}/PassiveContFact.h (100%) rename Detectors/Passive/{ => include}/Pipe.h (100%) rename Detectors/Passive/{ => src}/Cave.cxx (96%) rename Detectors/Passive/{ => src}/GeoCave.cxx (99%) rename Detectors/Passive/{ => src}/Magnet.cxx (98%) rename Detectors/Passive/{ => src}/PassiveContFact.cxx (98%) rename Detectors/Passive/{ => src}/PassiveLinkDef.h (100%) rename Detectors/Passive/{ => src}/Pipe.cxx (98%) diff --git a/Detectors/Passive/CMakeLists.txt b/Detectors/Passive/CMakeLists.txt index 1d07fbde37aec..917f6bbe68445 100644 --- a/Detectors/Passive/CMakeLists.txt +++ b/Detectors/Passive/CMakeLists.txt @@ -3,36 +3,41 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/Detectors/Passive + ${CMAKE_SOURCE_DIR}/Detectors/Passive ) set(SYSTEM_INCLUDE_DIRECTORIES -${BASE_INCLUDE_DIRECTORIES} -${FAIRROOT_INCLUDE_DIR} -${ROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} ) include_directories( ${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES -${ROOT_LIBRARY_DIR} -${FAIRROOT_LIBRARY_DIR} - + ${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} ) link_directories( ${LINK_DIRECTORIES}) set(SRCS -Cave.cxx -GeoCave.cxx -Pipe.cxx -Magnet.cxx -PassiveContFact.cxx + src/Cave.cxx + src/GeoCave.cxx + src/Pipe.cxx + src/Magnet.cxx + src/PassiveContFact.cxx ) -Set(HEADERS ) -Set(LINKDEF PassiveLinkDef.h) +Set(HEADERS + include/Cave.h + include/GeoCave.h + include/Magnet.h + include/PassiveContFact.h + include/Pipe.h + ) +Set(LINKDEF src/PassiveLinkDef.h) Set(LIBRARY_NAME Passive) Set(DEPENDENCIES Base GeoBase ParBase Geom Core) diff --git a/Detectors/Passive/Cave.h b/Detectors/Passive/include/Cave.h similarity index 99% rename from Detectors/Passive/Cave.h rename to Detectors/Passive/include/Cave.h index 925d44398e6db..d0b3621a19fe2 100644 --- a/Detectors/Passive/Cave.h +++ b/Detectors/Passive/include/Cave.h @@ -41,4 +41,3 @@ class Cave : public FairModule } } #endif //Cave_H - diff --git a/Detectors/Passive/GeoCave.h b/Detectors/Passive/include/GeoCave.h similarity index 100% rename from Detectors/Passive/GeoCave.h rename to Detectors/Passive/include/GeoCave.h diff --git a/Detectors/Passive/Magnet.h b/Detectors/Passive/include/Magnet.h similarity index 100% rename from Detectors/Passive/Magnet.h rename to Detectors/Passive/include/Magnet.h diff --git a/Detectors/Passive/PassiveContFact.h b/Detectors/Passive/include/PassiveContFact.h similarity index 100% rename from Detectors/Passive/PassiveContFact.h rename to Detectors/Passive/include/PassiveContFact.h diff --git a/Detectors/Passive/Pipe.h b/Detectors/Passive/include/Pipe.h similarity index 100% rename from Detectors/Passive/Pipe.h rename to Detectors/Passive/include/Pipe.h diff --git a/Detectors/Passive/Cave.cxx b/Detectors/Passive/src/Cave.cxx similarity index 96% rename from Detectors/Passive/Cave.cxx rename to Detectors/Passive/src/Cave.cxx index 9b94767041fc7..de9cee872bbd6 100644 --- a/Detectors/Passive/Cave.cxx +++ b/Detectors/Passive/src/Cave.cxx @@ -11,10 +11,10 @@ // ----- Cave file ----- // ----- Created 26/03/14 by M. Al-Turany ----- // ------------------------------------------------------------------------- -#include "Cave.h" +#include "include/Cave.h" #include "FairGeoInterface.h" // for FairGeoInterface #include "FairGeoLoader.h" // for FairGeoLoader -#include "GeoCave.h" // for GeoCave +#include "include/GeoCave.h" // for GeoCave #include "TString.h" // for TString #include // for NULL @@ -33,7 +33,7 @@ void Cave::ConstructGeometry() GeoInterface->addGeoModule(MGeo); Bool_t rc = GeoInterface->readSet(MGeo); if ( rc ) { MGeo->create(loader->getGeoBuilder()); } - + } Cave::Cave() :FairModule() diff --git a/Detectors/Passive/GeoCave.cxx b/Detectors/Passive/src/GeoCave.cxx similarity index 99% rename from Detectors/Passive/GeoCave.cxx rename to Detectors/Passive/src/GeoCave.cxx index 9f63a05a2a416..a25e07c99252e 100644 --- a/Detectors/Passive/GeoCave.cxx +++ b/Detectors/Passive/src/GeoCave.cxx @@ -18,7 +18,7 @@ // ///////////////////////////////////////////////////////////// -#include "GeoCave.h" +#include "include/GeoCave.h" #include "FairGeoBasicShape.h" // for FairGeoBasicShape #include "FairGeoMedia.h" // for FairGeoMedia diff --git a/Detectors/Passive/Magnet.cxx b/Detectors/Passive/src/Magnet.cxx similarity index 98% rename from Detectors/Passive/Magnet.cxx rename to Detectors/Passive/src/Magnet.cxx index 825c19703333a..6026c3736e7b8 100644 --- a/Detectors/Passive/Magnet.cxx +++ b/Detectors/Passive/src/Magnet.cxx @@ -11,7 +11,7 @@ // ----- Created 26/03/14 by M. Al-Turany ----- // ------------------------------------------------------------------------- -#include "Magnet.h" +#include "include/Magnet.h" #include "TGeoBBox.h" // for TGeoBBox #include "TGeoCompositeShape.h" // for TGeoCompositeShape #include "TGeoManager.h" // for TGeoManager, gGeoManager @@ -57,32 +57,32 @@ Magnet& Magnet::operator=(const Magnet& rhs) void Magnet::ConstructGeometry() { - + TGeoVolume *top=gGeoManager->GetTopVolume(); - + // define some materials TGeoMaterial *matFe = new TGeoMaterial("Fe", 55.84, 26, 7.9); // define some media TGeoMedium *Fe = new TGeoMedium("Fe", 3, matFe); - + // magnet yoke TGeoBBox *magyoke1 = new TGeoBBox("magyoke1", 350, 350, 125); TGeoBBox *magyoke2 = new TGeoBBox("magyoke2", 250, 250, 126); - + TGeoCompositeShape *magyokec = new TGeoCompositeShape("magyokec", "magyoke1-magyoke2"); TGeoVolume *magyoke = new TGeoVolume("magyoke", magyokec, Fe); magyoke->SetLineColor(kBlue); //magyoke->SetTransparency(50); top->AddNode(magyoke, 1, new TGeoTranslation(0, 0, 0)); - + // magnet TGeoTubeSeg *magnet1a = new TGeoTubeSeg("magnet1a", 250, 300, 35, 45, 135); TGeoTubeSeg *magnet1b = new TGeoTubeSeg("magnet1b", 250, 300, 35, 45, 135); TGeoTubeSeg *magnet1c = new TGeoTubeSeg("magnet1c", 250, 270, 125, 45, 60); TGeoTubeSeg *magnet1d = new TGeoTubeSeg("magnet1d", 250, 270, 125, 120, 135); - + // magnet composite shape matrices TGeoTranslation *m1 = new TGeoTranslation(0, 0, 160); m1->SetName("m1"); @@ -90,20 +90,20 @@ void Magnet::ConstructGeometry() TGeoTranslation *m2 = new TGeoTranslation(0, 0, -160); m2->SetName("m2"); m2->RegisterYourself(); - + TGeoCompositeShape *magcomp1 = new TGeoCompositeShape("magcomp1", "magnet1a:m1+magnet1b:m2+magnet1c+magnet1d"); TGeoVolume *magnet1 = new TGeoVolume("magnet1", magcomp1, Fe); magnet1->SetLineColor(kYellow); top->AddNode(magnet1, 1, new TGeoTranslation(0, 0, 0)); - + TGeoRotation m3; m3.SetAngles(180, 0, 0); TGeoTranslation m4(0, 0, 0); TGeoCombiTrans m5(m4, m3); TGeoHMatrix *m6 = new TGeoHMatrix(m5); top->AddNode(magnet1, 2, m6); - - + + } FairModule* Magnet::CloneModule() const @@ -112,17 +112,3 @@ FairModule* Magnet::CloneModule() const } ClassImp(AliceO2::Passive::Magnet) - - - - - - - - - - - - - - diff --git a/Detectors/Passive/PassiveContFact.cxx b/Detectors/Passive/src/PassiveContFact.cxx similarity index 98% rename from Detectors/Passive/PassiveContFact.cxx rename to Detectors/Passive/src/PassiveContFact.cxx index a936b636a1179..3f2122574acf6 100644 --- a/Detectors/Passive/PassiveContFact.cxx +++ b/Detectors/Passive/src/PassiveContFact.cxx @@ -22,7 +22,7 @@ // Factory for the parameter containers in libPassive // ///////////////////////////////////////////////////////////// -#include "PassiveContFact.h" +#include "include/PassiveContFact.h" #include "FairRuntimeDb.h" // for FairRuntimeDb #include "TList.h" // for TList #include "TString.h" // for TString @@ -73,4 +73,3 @@ FairParSet* PassiveContFact::createContainer(FairContainer* c) */ return 0; } - diff --git a/Detectors/Passive/PassiveLinkDef.h b/Detectors/Passive/src/PassiveLinkDef.h similarity index 100% rename from Detectors/Passive/PassiveLinkDef.h rename to Detectors/Passive/src/PassiveLinkDef.h diff --git a/Detectors/Passive/Pipe.cxx b/Detectors/Passive/src/Pipe.cxx similarity index 98% rename from Detectors/Passive/Pipe.cxx rename to Detectors/Passive/src/Pipe.cxx index cdc9c7e4698d0..cfe652ca53b89 100644 --- a/Detectors/Passive/Pipe.cxx +++ b/Detectors/Passive/src/Pipe.cxx @@ -11,7 +11,7 @@ // ----- Created by M. Al-Turany June 2014 ----- // ------------------------------------------------------------------------- -#include "Pipe.h" +#include "include/Pipe.h" #include "TGeoManager.h" // for TGeoManager, gGeoManager #include "TGeoMaterial.h" // for TGeoMaterial #include "TGeoMedium.h" // for TGeoMedium @@ -53,16 +53,16 @@ Pipe& Pipe::operator=(const Pipe& rhs) void Pipe::ConstructGeometry() { TGeoVolume *top=gGeoManager->GetTopVolume(); - + // define some materials TGeoMaterial *matCarbon = new TGeoMaterial("C", 12.011, 6.0, 2.265); TGeoMaterial *matVacuum = new TGeoMaterial("Vacuum", 0, 0, 0); - + // define some media TGeoMedium *Carbon = new TGeoMedium("C", 3, matCarbon); TGeoMedium *Vacuum = new TGeoMedium("Vacuum", 4, matVacuum); - - + + Int_t nSects=2; Double_t z[] = { -100, 300}; // in cm Double_t r[] = { 2.5, 2.5}; // in cm @@ -71,19 +71,19 @@ void Pipe::ConstructGeometry() for (Int_t iSect = 0; iSect < nSects; iSect++) { shape->DefineSection(iSect, z[iSect], r[iSect], r[iSect]+Thickness); } - + // ---> Volume TGeoVolume* pipe = new TGeoVolume("Pipe", shape, Carbon); - + // --Now create the same but diameter less by Thikness and vacuum instead of Carbon TGeoPcon* Vshape = new TGeoPcon(0., 360., nSects); for (Int_t iSect = 0; iSect < nSects; iSect++) { Vshape->DefineSection(iSect, z[iSect], r[iSect], r[iSect]); } - + // ---> Volume TGeoVolume* Vpipe = new TGeoVolume("Pipe", shape, Vacuum); - + top->AddNode(pipe, 1); top->AddNode(Vpipe, 1); @@ -97,4 +97,3 @@ FairModule* Pipe::CloneModule() const } ClassImp(AliceO2::Passive::Pipe) - From 17fe692097c8b660ef3495c98030153dc05339ef Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 10:16:16 +0200 Subject: [PATCH 080/135] Re-arrange the repository correct typo --- macro/load_all_libs.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macro/load_all_libs.C b/macro/load_all_libs.C index d75f18a4e3ab3..45aa56ee1e099 100644 --- a/macro/load_all_libs.C +++ b/macro/load_all_libs.C @@ -7,7 +7,7 @@ void load_all_libs() gSystem->Load("libFLP2EPNex_distributed"); gSystem->Load("libField"); gSystem->Load("libMathUtils"); - gSystem->Load("libO2SimulationDataFormat)"); + gSystem->Load("libO2SimulationDataFormat"); gSystem->Load("libEvtGenerator"); gSystem->Load("libPassive"); gSystem->Load("libRoundtripTest"); From 329926cf6fe6062026a637e0b04080a4331ef390 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 11:35:15 +0200 Subject: [PATCH 081/135] Re-arrange the repository Change o2cdb to CCDB --- CCDB/CMakeLists.txt | 92 +++++++++++++++++++ {o2cdb => CCDB}/README | 0 {o2cdb => CCDB/config}/conditions-client.json | 0 {o2cdb => CCDB/config}/conditions-server.json | 0 {o2cdb => CCDB/example}/fill_local_ocdb.C | 0 {o2cdb => CCDB/include}/Condition.h | 0 {o2cdb => CCDB/include}/ConditionId.h | 0 {o2cdb => CCDB/include}/ConditionMetaData.h | 0 {o2cdb => CCDB/include}/ConditionsMQClient.h | 0 {o2cdb => CCDB/include}/ConditionsMQServer.h | 0 {o2cdb => CCDB/include}/FileStorage.h | 0 {o2cdb => CCDB/include}/GridStorage.h | 0 {o2cdb => CCDB/include}/IdPath.h | 0 {o2cdb => CCDB/include}/IdRunRange.h | 0 {o2cdb => CCDB/include}/LocalStorage.h | 0 {o2cdb => CCDB/include}/Manager.h | 0 {o2cdb => CCDB/include}/Storage.h | 0 {o2cdb => CCDB/include}/XmlHandler.h | 0 .../O2CdbLinkDef.h => CCDB/src/CCDBLinkDef.h | 0 {o2cdb => CCDB/src}/Condition.cxx | 0 {o2cdb => CCDB/src}/ConditionId.cxx | 0 {o2cdb => CCDB/src}/ConditionMetaData.cxx | 0 {o2cdb => CCDB/src}/ConditionsMQClient.cxx | 0 {o2cdb => CCDB/src}/ConditionsMQServer.cxx | 0 {o2cdb => CCDB/src}/FileStorage.cxx | 0 {o2cdb => CCDB/src}/GridStorage.cxx | 0 {o2cdb => CCDB/src}/IdPath.cxx | 0 {o2cdb => CCDB/src}/IdRunRange.cxx | 0 {o2cdb => CCDB/src}/LocalStorage.cxx | 0 {o2cdb => CCDB/src}/Manager.cxx | 0 {o2cdb => CCDB/src}/Storage.cxx | 0 {o2cdb => CCDB/src}/XmlHandler.cxx | 0 {o2cdb => CCDB/src}/runConditionsClient.cxx | 0 {o2cdb => CCDB/src}/runConditionsServer.cxx | 0 CMakeLists.txt | 2 +- o2cdb/CMakeLists.txt | 76 --------------- 36 files changed, 93 insertions(+), 77 deletions(-) create mode 100644 CCDB/CMakeLists.txt rename {o2cdb => CCDB}/README (100%) rename {o2cdb => CCDB/config}/conditions-client.json (100%) rename {o2cdb => CCDB/config}/conditions-server.json (100%) rename {o2cdb => CCDB/example}/fill_local_ocdb.C (100%) rename {o2cdb => CCDB/include}/Condition.h (100%) rename {o2cdb => CCDB/include}/ConditionId.h (100%) rename {o2cdb => CCDB/include}/ConditionMetaData.h (100%) rename {o2cdb => CCDB/include}/ConditionsMQClient.h (100%) rename {o2cdb => CCDB/include}/ConditionsMQServer.h (100%) rename {o2cdb => CCDB/include}/FileStorage.h (100%) rename {o2cdb => CCDB/include}/GridStorage.h (100%) rename {o2cdb => CCDB/include}/IdPath.h (100%) rename {o2cdb => CCDB/include}/IdRunRange.h (100%) rename {o2cdb => CCDB/include}/LocalStorage.h (100%) rename {o2cdb => CCDB/include}/Manager.h (100%) rename {o2cdb => CCDB/include}/Storage.h (100%) rename {o2cdb => CCDB/include}/XmlHandler.h (100%) rename o2cdb/O2CdbLinkDef.h => CCDB/src/CCDBLinkDef.h (100%) rename {o2cdb => CCDB/src}/Condition.cxx (100%) rename {o2cdb => CCDB/src}/ConditionId.cxx (100%) rename {o2cdb => CCDB/src}/ConditionMetaData.cxx (100%) rename {o2cdb => CCDB/src}/ConditionsMQClient.cxx (100%) rename {o2cdb => CCDB/src}/ConditionsMQServer.cxx (100%) rename {o2cdb => CCDB/src}/FileStorage.cxx (100%) rename {o2cdb => CCDB/src}/GridStorage.cxx (100%) rename {o2cdb => CCDB/src}/IdPath.cxx (100%) rename {o2cdb => CCDB/src}/IdRunRange.cxx (100%) rename {o2cdb => CCDB/src}/LocalStorage.cxx (100%) rename {o2cdb => CCDB/src}/Manager.cxx (100%) rename {o2cdb => CCDB/src}/Storage.cxx (100%) rename {o2cdb => CCDB/src}/XmlHandler.cxx (100%) rename {o2cdb => CCDB/src}/runConditionsClient.cxx (100%) rename {o2cdb => CCDB/src}/runConditionsServer.cxx (100%) delete mode 100644 o2cdb/CMakeLists.txt diff --git a/CCDB/CMakeLists.txt b/CCDB/CMakeLists.txt new file mode 100644 index 0000000000000..dfe8d4907a7a1 --- /dev/null +++ b/CCDB/CMakeLists.txt @@ -0,0 +1,92 @@ +configure_file(${CMAKE_SOURCE_DIR}/CCDB/config/conditions-server.json ${CMAKE_BINARY_DIR}/bin/config/conditions-server.json) +configure_file(${CMAKE_SOURCE_DIR}/CCDB/config/conditions-client.json ${CMAKE_BINARY_DIR}/bin/config/conditions-client.json) +configure_file(${CMAKE_SOURCE_DIR}/CCDB/example/fill_local_ocdb.C ${CMAKE_BINARY_DIR}/bin/config/fill_local_ocdb.C) + +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR}/CCDB/include + ${CMAKE_SOURCE_DIR}/CCDB + +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ${FAIRROOT_INCLUDE_DIR} + ${ZMQ_INCLUDE_DIR} +) + +include_directories(${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${Boost_LIBRARY_DIRS} + ${FAIRROOT_LIBRARY_DIR} +) +link_directories(${LINK_DIRECTORIES}) + +set(SRCS + src/Manager.cxx + src/Condition.cxx + src/GridStorage.cxx + src/LocalStorage.cxx + src/FileStorage.cxx + src/ConditionMetaData.cxx + src/ConditionId.cxx + src/IdPath.cxx + src/IdRunRange.cxx + src/Storage.cxx + src/XmlHandler.cxx +) + +set(HEADERS + include/Condition.h + include/ConditionId.h + include/ConditionMetaData.h + include/ConditionsMQClient.h + include/ConditionsMQServer.h + include/FileStorage.h + include/GridStorage.h + include/IdPath.h + include/IdRunRange.h + include/LocalStorage.h + include/Manager.h + include/Storage.h + include/XmlHandler.h +) + +Set(NO_DICT_SRCS + src/ConditionsMQServer.cxx + src/ConditionsMQClient.cxx +) + +set(DEPENDENCIES + Base ParBase FairMQ ParMQ ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} fairmq_logger pthread Core Tree XMLParser Hist +) + +set(LIBRARY_NAME CCDB) +set(LINKDEF src/CCDBLinkDef.h) +GENERATE_LIBRARY() + +Set(Exe_Names + conditions-server + conditions-client +) + +Set(Exe_Source + src/runConditionsServer.cxx + src/runConditionsClient.cxx +) + +list(LENGTH Exe_Names _length) +math(EXPR _length ${_length}-1) + +ForEach(_file RANGE 0 ${_length}) + list(GET Exe_Names ${_file} _name) + list(GET Exe_Source ${_file} _src) + Set(EXE_NAME ${_name}) + Set(SRCS ${_src}) + Set(DEPENDENCIES CCDB) + GENERATE_EXECUTABLE() +EndForEach(_file RANGE 0 ${_length}) diff --git a/o2cdb/README b/CCDB/README similarity index 100% rename from o2cdb/README rename to CCDB/README diff --git a/o2cdb/conditions-client.json b/CCDB/config/conditions-client.json similarity index 100% rename from o2cdb/conditions-client.json rename to CCDB/config/conditions-client.json diff --git a/o2cdb/conditions-server.json b/CCDB/config/conditions-server.json similarity index 100% rename from o2cdb/conditions-server.json rename to CCDB/config/conditions-server.json diff --git a/o2cdb/fill_local_ocdb.C b/CCDB/example/fill_local_ocdb.C similarity index 100% rename from o2cdb/fill_local_ocdb.C rename to CCDB/example/fill_local_ocdb.C diff --git a/o2cdb/Condition.h b/CCDB/include/Condition.h similarity index 100% rename from o2cdb/Condition.h rename to CCDB/include/Condition.h diff --git a/o2cdb/ConditionId.h b/CCDB/include/ConditionId.h similarity index 100% rename from o2cdb/ConditionId.h rename to CCDB/include/ConditionId.h diff --git a/o2cdb/ConditionMetaData.h b/CCDB/include/ConditionMetaData.h similarity index 100% rename from o2cdb/ConditionMetaData.h rename to CCDB/include/ConditionMetaData.h diff --git a/o2cdb/ConditionsMQClient.h b/CCDB/include/ConditionsMQClient.h similarity index 100% rename from o2cdb/ConditionsMQClient.h rename to CCDB/include/ConditionsMQClient.h diff --git a/o2cdb/ConditionsMQServer.h b/CCDB/include/ConditionsMQServer.h similarity index 100% rename from o2cdb/ConditionsMQServer.h rename to CCDB/include/ConditionsMQServer.h diff --git a/o2cdb/FileStorage.h b/CCDB/include/FileStorage.h similarity index 100% rename from o2cdb/FileStorage.h rename to CCDB/include/FileStorage.h diff --git a/o2cdb/GridStorage.h b/CCDB/include/GridStorage.h similarity index 100% rename from o2cdb/GridStorage.h rename to CCDB/include/GridStorage.h diff --git a/o2cdb/IdPath.h b/CCDB/include/IdPath.h similarity index 100% rename from o2cdb/IdPath.h rename to CCDB/include/IdPath.h diff --git a/o2cdb/IdRunRange.h b/CCDB/include/IdRunRange.h similarity index 100% rename from o2cdb/IdRunRange.h rename to CCDB/include/IdRunRange.h diff --git a/o2cdb/LocalStorage.h b/CCDB/include/LocalStorage.h similarity index 100% rename from o2cdb/LocalStorage.h rename to CCDB/include/LocalStorage.h diff --git a/o2cdb/Manager.h b/CCDB/include/Manager.h similarity index 100% rename from o2cdb/Manager.h rename to CCDB/include/Manager.h diff --git a/o2cdb/Storage.h b/CCDB/include/Storage.h similarity index 100% rename from o2cdb/Storage.h rename to CCDB/include/Storage.h diff --git a/o2cdb/XmlHandler.h b/CCDB/include/XmlHandler.h similarity index 100% rename from o2cdb/XmlHandler.h rename to CCDB/include/XmlHandler.h diff --git a/o2cdb/O2CdbLinkDef.h b/CCDB/src/CCDBLinkDef.h similarity index 100% rename from o2cdb/O2CdbLinkDef.h rename to CCDB/src/CCDBLinkDef.h diff --git a/o2cdb/Condition.cxx b/CCDB/src/Condition.cxx similarity index 100% rename from o2cdb/Condition.cxx rename to CCDB/src/Condition.cxx diff --git a/o2cdb/ConditionId.cxx b/CCDB/src/ConditionId.cxx similarity index 100% rename from o2cdb/ConditionId.cxx rename to CCDB/src/ConditionId.cxx diff --git a/o2cdb/ConditionMetaData.cxx b/CCDB/src/ConditionMetaData.cxx similarity index 100% rename from o2cdb/ConditionMetaData.cxx rename to CCDB/src/ConditionMetaData.cxx diff --git a/o2cdb/ConditionsMQClient.cxx b/CCDB/src/ConditionsMQClient.cxx similarity index 100% rename from o2cdb/ConditionsMQClient.cxx rename to CCDB/src/ConditionsMQClient.cxx diff --git a/o2cdb/ConditionsMQServer.cxx b/CCDB/src/ConditionsMQServer.cxx similarity index 100% rename from o2cdb/ConditionsMQServer.cxx rename to CCDB/src/ConditionsMQServer.cxx diff --git a/o2cdb/FileStorage.cxx b/CCDB/src/FileStorage.cxx similarity index 100% rename from o2cdb/FileStorage.cxx rename to CCDB/src/FileStorage.cxx diff --git a/o2cdb/GridStorage.cxx b/CCDB/src/GridStorage.cxx similarity index 100% rename from o2cdb/GridStorage.cxx rename to CCDB/src/GridStorage.cxx diff --git a/o2cdb/IdPath.cxx b/CCDB/src/IdPath.cxx similarity index 100% rename from o2cdb/IdPath.cxx rename to CCDB/src/IdPath.cxx diff --git a/o2cdb/IdRunRange.cxx b/CCDB/src/IdRunRange.cxx similarity index 100% rename from o2cdb/IdRunRange.cxx rename to CCDB/src/IdRunRange.cxx diff --git a/o2cdb/LocalStorage.cxx b/CCDB/src/LocalStorage.cxx similarity index 100% rename from o2cdb/LocalStorage.cxx rename to CCDB/src/LocalStorage.cxx diff --git a/o2cdb/Manager.cxx b/CCDB/src/Manager.cxx similarity index 100% rename from o2cdb/Manager.cxx rename to CCDB/src/Manager.cxx diff --git a/o2cdb/Storage.cxx b/CCDB/src/Storage.cxx similarity index 100% rename from o2cdb/Storage.cxx rename to CCDB/src/Storage.cxx diff --git a/o2cdb/XmlHandler.cxx b/CCDB/src/XmlHandler.cxx similarity index 100% rename from o2cdb/XmlHandler.cxx rename to CCDB/src/XmlHandler.cxx diff --git a/o2cdb/runConditionsClient.cxx b/CCDB/src/runConditionsClient.cxx similarity index 100% rename from o2cdb/runConditionsClient.cxx rename to CCDB/src/runConditionsClient.cxx diff --git a/o2cdb/runConditionsServer.cxx b/CCDB/src/runConditionsServer.cxx similarity index 100% rename from o2cdb/runConditionsServer.cxx rename to CCDB/src/runConditionsServer.cxx diff --git a/CMakeLists.txt b/CMakeLists.txt index 0317e4706cf72..cc1847efd3b4a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -216,7 +216,7 @@ add_subdirectory (MathUtils) add_subdirectory (field) add_subdirectory (devices) add_subdirectory (macro) -add_subdirectory (o2cdb) +add_subdirectory (CCDB) add_subdirectory (o2qa) add_subdirectory (Detectors) add_subdirectory (DataFormats) diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt deleted file mode 100644 index 89935f74aefe4..0000000000000 --- a/o2cdb/CMakeLists.txt +++ /dev/null @@ -1,76 +0,0 @@ -configure_file(${CMAKE_SOURCE_DIR}/o2cdb/conditions-server.json ${CMAKE_BINARY_DIR}/bin/config/conditions-server.json) -configure_file(${CMAKE_SOURCE_DIR}/o2cdb/conditions-client.json ${CMAKE_BINARY_DIR}/bin/config/conditions-client.json) -configure_file(${CMAKE_SOURCE_DIR}/o2cdb/fill_local_ocdb.C ${CMAKE_BINARY_DIR}/bin/config/fill_local_ocdb.C) - -set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/o2cdb -) - -set(SYSTEM_INCLUDE_DIRECTORIES - ${BASE_INCLUDE_DIRECTORIES} - ${Boost_INCLUDE_DIR} - ${ROOT_INCLUDE_DIR} - ${FAIRROOT_INCLUDE_DIR} - ${ZMQ_INCLUDE_DIR} - ${AlFa_DIR}/include -) - -include_directories(${INCLUDE_DIRECTORIES}) -include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) - -set(LINK_DIRECTORIES - ${ROOT_LIBRARY_DIR} - ${Boost_LIBRARY_DIRS} - ${FAIRROOT_LIBRARY_DIR} - ${AlFa_DIR}/lib -) -link_directories(${LINK_DIRECTORIES}) - -set(SRCS - Manager.cxx - Condition.cxx - GridStorage.cxx - LocalStorage.cxx - FileStorage.cxx - ConditionMetaData.cxx - ConditionId.cxx - IdPath.cxx - IdRunRange.cxx - Storage.cxx - XmlHandler.cxx -) - -Set(NO_DICT_SRCS - ConditionsMQServer.cxx - ConditionsMQClient.cxx -) - -set(DEPENDENCIES - Base ParBase FairMQ ParMQ ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} fairmq_logger pthread Core Tree XMLParser Hist -) - -set(LIBRARY_NAME AliceO2Cdb) -set(LINKDEF O2CdbLinkDef.h) -GENERATE_LIBRARY() - -Set(Exe_Names - conditions-server - conditions-client -) - -Set(Exe_Source - runConditionsServer.cxx - runConditionsClient.cxx -) - -list(LENGTH Exe_Names _length) -math(EXPR _length ${_length}-1) - -ForEach(_file RANGE 0 ${_length}) - list(GET Exe_Names ${_file} _name) - list(GET Exe_Source ${_file} _src) - Set(EXE_NAME ${_name}) - Set(SRCS ${_src}) - Set(DEPENDENCIES AliceO2Cdb) - GENERATE_EXECUTABLE() -EndForEach(_file RANGE 0 ${_length}) From 73af681fa75b2cdd1b2a8c53f03a5ec72ff2e725 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 11:51:18 +0200 Subject: [PATCH 082/135] Re-arrange the repository move gconfig to Detectors --- {gconfig => Detectors/gconfig}/DecayConfig.C | 0 {gconfig => Detectors/gconfig}/Geane.C | 0 {gconfig => Detectors/gconfig}/SetCuts.C | 0 {gconfig => Detectors/gconfig}/UserDecay.C | 0 {gconfig => Detectors/gconfig}/g3Config.C | 0 {gconfig => Detectors/gconfig}/g3libs.C | 0 {gconfig => Detectors/gconfig}/g4Config.C | 0 {gconfig => Detectors/gconfig}/g4config.in | 0 macro/run_sim.C | 10 +++++----- 9 files changed, 5 insertions(+), 5 deletions(-) rename {gconfig => Detectors/gconfig}/DecayConfig.C (100%) rename {gconfig => Detectors/gconfig}/Geane.C (100%) rename {gconfig => Detectors/gconfig}/SetCuts.C (100%) rename {gconfig => Detectors/gconfig}/UserDecay.C (100%) rename {gconfig => Detectors/gconfig}/g3Config.C (100%) rename {gconfig => Detectors/gconfig}/g3libs.C (100%) rename {gconfig => Detectors/gconfig}/g4Config.C (100%) rename {gconfig => Detectors/gconfig}/g4config.in (100%) diff --git a/gconfig/DecayConfig.C b/Detectors/gconfig/DecayConfig.C similarity index 100% rename from gconfig/DecayConfig.C rename to Detectors/gconfig/DecayConfig.C diff --git a/gconfig/Geane.C b/Detectors/gconfig/Geane.C similarity index 100% rename from gconfig/Geane.C rename to Detectors/gconfig/Geane.C diff --git a/gconfig/SetCuts.C b/Detectors/gconfig/SetCuts.C similarity index 100% rename from gconfig/SetCuts.C rename to Detectors/gconfig/SetCuts.C diff --git a/gconfig/UserDecay.C b/Detectors/gconfig/UserDecay.C similarity index 100% rename from gconfig/UserDecay.C rename to Detectors/gconfig/UserDecay.C diff --git a/gconfig/g3Config.C b/Detectors/gconfig/g3Config.C similarity index 100% rename from gconfig/g3Config.C rename to Detectors/gconfig/g3Config.C diff --git a/gconfig/g3libs.C b/Detectors/gconfig/g3libs.C similarity index 100% rename from gconfig/g3libs.C rename to Detectors/gconfig/g3libs.C diff --git a/gconfig/g4Config.C b/Detectors/gconfig/g4Config.C similarity index 100% rename from gconfig/g4Config.C rename to Detectors/gconfig/g4Config.C diff --git a/gconfig/g4config.in b/Detectors/gconfig/g4config.in similarity index 100% rename from gconfig/g4config.in rename to Detectors/gconfig/g4config.in diff --git a/macro/run_sim.C b/macro/run_sim.C index 801bcf3426bcc..96c6b67060916 100644 --- a/macro/run_sim.C +++ b/macro/run_sim.C @@ -6,13 +6,13 @@ double radii2Turbo(double rMin, double rMid, double rMax, double sensW) void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") { + TString dir = getenv("VMCWORKDIR"); + TString geom_dir = dir + "/Detectors/Geometry/"; + gSystem->Setenv("GEOMPATH",geom_dir.Data()); - TString dir = getenv("VMCWORKDIR"); - TString geom_dir = dir + "/Detectors/Geometry/"; - gSystem->Setenv("GEOMPATH",geom_dir.Data()); - - + TString tut_configdir = dir + "/Detectors/gconfig"; + gSystem->Setenv("CONFIG_DIR",tut_configdir.Data()); // Output file name char fileout[100]; From c7f12bc645af37068e12425516a496b07a6bbbc2 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 15:42:13 +0200 Subject: [PATCH 083/135] Re-arrange the repository change the field directory --- CCDB/CMakeLists.txt | 2 -- CMakeLists.txt | 2 +- {field => Field}/CMakeLists.txt | 28 ++++++++++--------- {field => Field/include}/MagneticField.h | 0 .../include}/MagneticWrapperChebyshev.h | 0 .../src/FieldLinkDef.h | 0 {field => Field/src}/MagneticField.cxx | 4 +-- .../src}/MagneticWrapperChebyshev.cxx | 2 +- 8 files changed, 19 insertions(+), 19 deletions(-) rename {field => Field}/CMakeLists.txt (56%) rename {field => Field/include}/MagneticField.h (100%) rename {field => Field/include}/MagneticWrapperChebyshev.h (100%) rename field/fieldLinkDef.h => Field/src/FieldLinkDef.h (100%) rename {field => Field/src}/MagneticField.cxx (99%) rename {field => Field/src}/MagneticWrapperChebyshev.cxx (99%) diff --git a/CCDB/CMakeLists.txt b/CCDB/CMakeLists.txt index dfe8d4907a7a1..db0be2dc11d41 100644 --- a/CCDB/CMakeLists.txt +++ b/CCDB/CMakeLists.txt @@ -44,8 +44,6 @@ set(HEADERS include/Condition.h include/ConditionId.h include/ConditionMetaData.h - include/ConditionsMQClient.h - include/ConditionsMQServer.h include/FileStorage.h include/GridStorage.h include/IdPath.h diff --git a/CMakeLists.txt b/CMakeLists.txt index cc1847efd3b4a..21c4d22493ee5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,7 +213,7 @@ if (PYTHIA8_FOUND AND Pythia6_FOUND) add_subdirectory (Generators) Endif () add_subdirectory (MathUtils) -add_subdirectory (field) +add_subdirectory (Field) add_subdirectory (devices) add_subdirectory (macro) add_subdirectory (CCDB) diff --git a/field/CMakeLists.txt b/Field/CMakeLists.txt similarity index 56% rename from field/CMakeLists.txt rename to Field/CMakeLists.txt index 5105bd583838b..a66b4a0d3a492 100644 --- a/field/CMakeLists.txt +++ b/Field/CMakeLists.txt @@ -3,36 +3,38 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR} -${CMAKE_SOURCE_DIR}/field -${CMAKE_SOURCE_DIR}/header + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/Field + ${CMAKE_SOURCE_DIR}/header ) set(SYSTEM_INCLUDE_DIRECTORIES -${BASE_INCLUDE_DIRECTORIES} -${FAIRROOT_INCLUDE_DIR} -${ROOT_INCLUDE_DIR} + ${BASE_INCLUDE_DIRECTORIES} + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} ) include_directories( ${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES -${FAIRROOT_LIBRARY_DIR} -${ROOT_LIBRARY_DIR} + ${FAIRROOT_LIBRARY_DIR} + ${ROOT_LIBRARY_DIR} ) link_directories( ${LINK_DIRECTORIES}) set(SRCS -MagneticWrapperChebyshev.cxx -MagneticField.cxx + src/MagneticWrapperChebyshev.cxx + src/MagneticField.cxx ) -Set(HEADERS) -Set(LINKDEF fieldLinkDef.h) +Set(HEADERS + include/MagneticWrapperChebyshev.h + include/MagneticField.h +) +Set(LINKDEF src/FieldLinkDef.h) Set(LIBRARY_NAME Field) Set(DEPENDENCIES MathUtils Core) GENERATE_LIBRARY() - diff --git a/field/MagneticField.h b/Field/include/MagneticField.h similarity index 100% rename from field/MagneticField.h rename to Field/include/MagneticField.h diff --git a/field/MagneticWrapperChebyshev.h b/Field/include/MagneticWrapperChebyshev.h similarity index 100% rename from field/MagneticWrapperChebyshev.h rename to Field/include/MagneticWrapperChebyshev.h diff --git a/field/fieldLinkDef.h b/Field/src/FieldLinkDef.h similarity index 100% rename from field/fieldLinkDef.h rename to Field/src/FieldLinkDef.h diff --git a/field/MagneticField.cxx b/Field/src/MagneticField.cxx similarity index 99% rename from field/MagneticField.cxx rename to Field/src/MagneticField.cxx index 136308487bb64..090e9ee1673fb 100644 --- a/field/MagneticField.cxx +++ b/Field/src/MagneticField.cxx @@ -2,13 +2,13 @@ /// \brief Implementation of the MagF class /// \author ruben.shahoyan@cern.ch -#include "MagneticField.h" +#include "include/MagneticField.h" +#include "include/MagneticWrapperChebyshev.h" // for MagneticWrapperChebyshev #include // for TFile #include // for TPRegexp #include // for TSystem, gSystem #include // for snprintf #include "FairLogger.h" // for FairLogger, MESSAGE_ORIGIN -#include "MagneticWrapperChebyshev.h" // for MagneticWrapperChebyshev #include "TMathBase.h" // for Abs, Sign #include "TObject.h" // for TObject #include "TString.h" // for TString diff --git a/field/MagneticWrapperChebyshev.cxx b/Field/src/MagneticWrapperChebyshev.cxx similarity index 99% rename from field/MagneticWrapperChebyshev.cxx rename to Field/src/MagneticWrapperChebyshev.cxx index abd0192834cb0..862c7fc9aee4c 100644 --- a/field/MagneticWrapperChebyshev.cxx +++ b/Field/src/MagneticWrapperChebyshev.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the MagWrapCheb class /// \author ruben.shahoyan@cern.ch 20/03/2007 -#include "MagneticWrapperChebyshev.h" +#include "include/MagneticWrapperChebyshev.h" #include // for TArrayF #include // for TArrayI #include // for TSystem, gSystem From 8c7ac57d1b8d8e0396dec5982de7d3933031a447 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 15:55:36 +0200 Subject: [PATCH 084/135] Re-arrange the repository apply the new structure to the MathUtils e --- Field/include/MagneticWrapperChebyshev.h | 4 +- MathUtils/CMakeLists.txt | 29 +- MathUtils/Chebyshev3D.cxx | 1042 ---------------------- MathUtils/Chebyshev3D.h | 401 --------- MathUtils/Chebyshev3DCalc.cxx | 528 ----------- MathUtils/Chebyshev3DCalc.h | 244 ----- MathUtils/MathUtilsLinkDef.h | 10 - 7 files changed, 17 insertions(+), 2241 deletions(-) delete mode 100644 MathUtils/Chebyshev3D.cxx delete mode 100644 MathUtils/Chebyshev3D.h delete mode 100644 MathUtils/Chebyshev3DCalc.cxx delete mode 100644 MathUtils/Chebyshev3DCalc.h delete mode 100644 MathUtils/MathUtilsLinkDef.h diff --git a/Field/include/MagneticWrapperChebyshev.h b/Field/include/MagneticWrapperChebyshev.h index 5527567af3d45..6925c345c6d1e 100644 --- a/Field/include/MagneticWrapperChebyshev.h +++ b/Field/include/MagneticWrapperChebyshev.h @@ -7,8 +7,8 @@ #include // for ATan2, Cos, Sin, Sqrt #include // for TNamed #include // for TObjArray -#include "MathUtils/Chebyshev3D.h" // for Chebyshev3D -#include "MathUtils/Chebyshev3DCalc.h" // for _INC_CREATION_Chebyshev3D_ +#include "MathUtils/include/Chebyshev3D.h" // for Chebyshev3D +#include "MathUtils/include/Chebyshev3DCalc.h" // for _INC_CREATION_Chebyshev3D_ #include "Rtypes.h" // for Double_t, Int_t, Float_t, etc class FairLogger; // lines 16-16 diff --git a/MathUtils/CMakeLists.txt b/MathUtils/CMakeLists.txt index cc792ea914dd3..9eba030dddb36 100644 --- a/MathUtils/CMakeLists.txt +++ b/MathUtils/CMakeLists.txt @@ -3,37 +3,38 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/MathUtils + ${CMAKE_SOURCE_DIR}/MathUtils/include ) set(SYSTEM_INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/MathUtils -${BASE_INCLUDE_DIRECTORIES} -${FAIRROOT_INCLUDE_DIR} -${AlFa_DIR}/include -${ROOT_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR}/MathUtils + ${BASE_INCLUDE_DIRECTORIES} + ${FAIRROOT_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} ) include_directories( ${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES -${CMAKE_SOURCE_DIR}/MathUtils -${FAIRROOT_LIBRARY_DIR} -${ROOT_LIBRARY_DIR} + ${CMAKE_SOURCE_DIR}/MathUtils + ${FAIRROOT_LIBRARY_DIR} + ${ROOT_LIBRARY_DIR} ) link_directories( ${LINK_DIRECTORIES}) set(SRCS -Chebyshev3D.cxx -Chebyshev3DCalc.cxx + src/Chebyshev3D.cxx + src/Chebyshev3DCalc.cxx ) -Set(HEADERS) -Set(LINKDEF MathUtilsLinkDef.h) +Set(HEADERS + include/Chebyshev3D.h + include/Chebyshev3DCalc.h +) +Set(LINKDEF src/MathUtilsLinkDef.h) Set(LIBRARY_NAME MathUtils) Set(DEPENDENCIES Core) GENERATE_LIBRARY() - diff --git a/MathUtils/Chebyshev3D.cxx b/MathUtils/Chebyshev3D.cxx deleted file mode 100644 index 02e9224c7c89b..0000000000000 --- a/MathUtils/Chebyshev3D.cxx +++ /dev/null @@ -1,1042 +0,0 @@ -/// \file Cheb3D.cxx -/// \brief Implementation of the Cheb3D class -/// \author ruben.shahoyan@cern.ch 09/09/2006 - -#include "Chebyshev3D.h" -#include // for TH1D, TH1 -#include // for Cos, Pi -#include // for TMethodCall -#include // for TROOT, gROOT -#include // for TRandom, gRandom -#include // for TString -#include // for TSystem, gSystem -#include // for printf, fprintf, FILE, fclose, fflush, etc -#include "Chebyshev3DCalc.h" // for Chebyshev3DCalc, etc -#include "FairLogger.h" // for FairLogger, MESSAGE_ORIGIN -#include "TMathBase.h" // for Max, Abs -#include "TNamed.h" // for TNamed -#include "TObjArray.h" // for TObjArray - -using namespace AliceO2::MathUtils; - -ClassImp(Chebyshev3D) - -const Float_t Chebyshev3D::sMinimumPrecision = 1.e-12f; - -Chebyshev3D::Chebyshev3D() - : mOutputArrayDimension(0), - mPrecision(sMinimumPrecision), - mChebyshevParameter(1), - mMaxCoefficients(0), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(""), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - // Default constructor - for (int i = 3; i--;) { - mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = - mTemporaryCoefficient[i] = 0; - mNumberOfPoints[i] = 0; - mTemporaryChebyshevGridOffs[i] = 0; - } -} - -Chebyshev3D::Chebyshev3D(const Chebyshev3D& src) - : TNamed(src), - mOutputArrayDimension(src.mOutputArrayDimension), - mPrecision(src.mPrecision), - mChebyshevParameter(1), - mMaxCoefficients(src.mMaxCoefficients), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(src.mUserFunctionName), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - // read coefs from text file - for (int i = 3; i--;) { - mMinBoundaries[i] = src.mMinBoundaries[i]; - mMaxBoundaries[i] = src.mMaxBoundaries[i]; - mBoundaryMappingScale[i] = src.mBoundaryMappingScale[i]; - mBoundaryMappingOffset[i] = src.mBoundaryMappingOffset[i]; - mNumberOfPoints[i] = src.mNumberOfPoints[i]; - mTemporaryChebyshevGridOffs[i] = src.mTemporaryChebyshevGridOffs[i]; - mTemporaryCoefficient[i] = 0; - } - for (int i = 0; i < mOutputArrayDimension; i++) { - Chebyshev3DCalc* cbc = src.getChebyshevCalc(i); - if (cbc) { - mChebyshevParameter.AddAtAndExpand(new Chebyshev3DCalc(*cbc), i); - } - } -} - -Chebyshev3D::Chebyshev3D(const char* inpFile) - : mOutputArrayDimension(0), - mPrecision(0), - mChebyshevParameter(1), - mMaxCoefficients(0), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(""), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - // read coefs from text file - for (int i = 3; i--;) { - mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; - mNumberOfPoints[i] = 0; - mTemporaryChebyshevGridOffs[i] = 0; - mTemporaryCoefficient[i] = 0; - } - loadData(inpFile); -} - -Chebyshev3D::Chebyshev3D(FILE* stream) - : mOutputArrayDimension(0), - mPrecision(0), - mChebyshevParameter(1), - mMaxCoefficients(0), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(""), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - // read coefs from stream - for (int i = 3; i--;) { - mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; - mNumberOfPoints[i] = 0; - mTemporaryChebyshevGridOffs[i] = 0; - mTemporaryCoefficient[i] = 0; - } - loadData(stream); -} - -#ifdef _INC_CREATION_Chebyshev3D_ -Chebyshev3D::Chebyshev3D(const char* funName, int dimOut, const Float_t* bmin, const Float_t* bmax, - const Int_t* npoints, Float_t prec, const Float_t* precD) - : TNamed(funName, funName), - mOutputArrayDimension(0), - mPrecision(TMath::Max(sMinimumPrecision, prec)), - mChebyshevParameter(1), - mMaxCoefficients(0), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(""), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - if (dimOut < 1) { - Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); - exit(1); - } - for (int i = 3; i--;) { - mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; - mNumberOfPoints[i] = 0; - mTemporaryChebyshevGridOffs[i] = 0.; - mTemporaryCoefficient[i] = 0; - } - setDimOut(dimOut,precD); - prepareBoundaries(bmin, bmax); - defineGrid(npoints); - setuserFunction(funName); - chebyshevFit(); -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -Chebyshev3D::Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, - const Int_t* npoints, Float_t prec, const Float_t* precD) - : mOutputArrayDimension(0), - mPrecision(TMath::Max(sMinimumPrecision, prec)), - mChebyshevParameter(1), - mMaxCoefficients(0), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(""), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - if (dimOut < 1) { - Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); - exit(1); - } - for (int i = 3; i--;) { - mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; - mNumberOfPoints[i] = 0; - mTemporaryChebyshevGridOffs[i] = 0.; - mTemporaryCoefficient[i] = 0; - } - setDimOut(dimOut,precD); - prepareBoundaries(bmin, bmax); - defineGrid(npoints); - setuserFunction(ptr); - chebyshevFit(); -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -Chebyshev3D::Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, - const Int_t* npX, const Int_t* npY, const Int_t* npZ, Float_t prec, const Float_t* precD) - : mOutputArrayDimension(0), - mPrecision(TMath::Max(sMinimumPrecision, prec)), - mChebyshevParameter(1), - mMaxCoefficients(0), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(""), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - if (dimOut < 1) { - Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); - exit(1); - } - for (int i = 3; i--;) { - mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; - mNumberOfPoints[i] = 0; - mTemporaryChebyshevGridOffs[i] = 0.; - mTemporaryCoefficient[i] = 0; - } - setDimOut(dimOut,precD); - prepareBoundaries(bmin, bmax); - setuserFunction(ptr); - - defineGrid(npX); - chebyshevFit(0); - defineGrid(npY); - chebyshevFit(1); - defineGrid(npZ); - chebyshevFit(2); -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -Chebyshev3D::Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, - Float_t prec, Bool_t run, const Float_t* precD) - : mOutputArrayDimension(0), - mPrecision(TMath::Max(sMinimumPrecision, prec)), - mChebyshevParameter(1), - mMaxCoefficients(0), - mTemporaryUserResults(0), - mTemporaryChebyshevGrid(0), - mUserFunctionName(""), - mUserMacro(0), - mLogger(FairLogger::GetLogger()) -{ - if (dimOut != 3) { - Error("Chebyshev3D", "This constructor works only for 3D fits, %dD fit was requested\n", mOutputArrayDimension); - exit(1); - } - if (dimOut < 1) { - Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); - exit(1); - } - for (int i = 3; i--;) { - mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; - mNumberOfPoints[i] = 0; - mTemporaryChebyshevGridOffs[i] = 0.; - mTemporaryCoefficient[i] = 0; - } - setDimOut(dimOut, precD); - prepareBoundaries(bmin, bmax); - setuserFunction(ptr); - - if (run) { - int gridNC[3][3]; - estimateNumberOfPoints(prec, gridNC); - defineGrid(gridNC[0]); - chebyshevFit(0); - defineGrid(gridNC[1]); - chebyshevFit(1); - defineGrid(gridNC[2]); - chebyshevFit(2); - } -} -#endif - -Chebyshev3D& Chebyshev3D::operator=(const Chebyshev3D& rhs) -{ - // assignment operator - if (this != &rhs) { - Clear(); - mOutputArrayDimension = rhs.mOutputArrayDimension; - mPrecision = rhs.mPrecision; - mMaxCoefficients = rhs.mMaxCoefficients; - mUserFunctionName = rhs.mUserFunctionName; - mUserMacro = 0; - for (int i = 3; i--;) { - mMinBoundaries[i] = rhs.mMinBoundaries[i]; - mMaxBoundaries[i] = rhs.mMaxBoundaries[i]; - mBoundaryMappingScale[i] = rhs.mBoundaryMappingScale[i]; - mBoundaryMappingOffset[i] = rhs.mBoundaryMappingOffset[i]; - mNumberOfPoints[i] = rhs.mNumberOfPoints[i]; - } - for (int i = 0; i < mOutputArrayDimension; i++) { - Chebyshev3DCalc* cbc = rhs.getChebyshevCalc(i); - if (cbc) { - mChebyshevParameter.AddAtAndExpand(new Chebyshev3DCalc(*cbc), i); - } - } - } - return *this; -} - -void Chebyshev3D::Clear(const Option_t*) -{ - // clear all dynamic structures - if (mTemporaryUserResults) { - delete[] mTemporaryUserResults; - mTemporaryUserResults = 0; - } - if (mTemporaryChebyshevGrid) { - delete[] mTemporaryChebyshevGrid; - mTemporaryChebyshevGrid = 0; - } - if (mUserMacro) { - delete mUserMacro; - mUserMacro = 0; - } - mChebyshevParameter.SetOwner(kTRUE); - mChebyshevParameter.Delete(); -} - -void Chebyshev3D::Print(const Option_t* opt) const -{ - // print info - printf("%s: Chebyshev parameterization for 3D->%dD function. Precision: %e\n", GetName(), mOutputArrayDimension, - mPrecision); - printf("Region of validity: [%+.5e:%+.5e] [%+.5e:%+.5e] [%+.5e:%+.5e]\n", mMinBoundaries[0], mMaxBoundaries[0], - mMinBoundaries[1], mMaxBoundaries[1], mMinBoundaries[2], mMaxBoundaries[2]); - TString opts = opt; - opts.ToLower(); - if (opts.Contains("l")) { - for (int i = 0; i < mOutputArrayDimension; i++) { - printf("Output dimension %d:\n", i + 1); - getChebyshevCalc(i)->Print(); - } - } -} - -void Chebyshev3D::prepareBoundaries(const Float_t* bmin, const Float_t* bmax) -{ - // Set and check boundaries defined by user, prepare coefficients for their conversion to [-1:1] interval - for (int i = 3; i--;) { - mMinBoundaries[i] = bmin[i]; - mMaxBoundaries[i] = bmax[i]; - mBoundaryMappingScale[i] = bmax[i] - bmin[i]; - if (mBoundaryMappingScale[i] <= 0) { - mLogger->Fatal(MESSAGE_ORIGIN, "Boundaries for %d-th dimension are not increasing: %+.4e %+.4e\nStop\n", i, - mMinBoundaries[i], mMaxBoundaries[i]); - } - mBoundaryMappingOffset[i] = bmin[i] + mBoundaryMappingScale[i] / 2.0; - mBoundaryMappingScale[i] = 2. / mBoundaryMappingScale[i]; - } -} - -#ifdef _INC_CREATION_Chebyshev3D_ - -// Pointer on user function (faster altrnative to TMethodCall) -void (*gUsrFunChebyshev3D)(float*, float*); - -void Chebyshev3D::evaluateUserFunction() -{ - // call user supplied function - if (gUsrFunChebyshev3D) { - gUsrFunChebyshev3D(mTemporaryCoefficient, mTemporaryUserResults); - } - else { - mUserMacro->Execute(); - } -} - -void Chebyshev3D::setuserFunction(const char* name) -{ - // load user macro with function definition and compile it - gUsrFunChebyshev3D = 0; - mUserFunctionName = name; - gSystem->ExpandPathName(mUserFunctionName); - - if (mUserMacro) { - delete mUserMacro; - } - - TString tmpst = mUserFunctionName; - tmpst += "+"; // prepare filename to compile - - if (gROOT->LoadMacro(tmpst.Data())) { - Error("SetUsrFunction", "Failed to load user function from %s\nStop\n", name); - exit(1); - } - - mUserMacro = new TMethodCall(); - tmpst = tmpst.Data() + tmpst.Last('/') + 1; // Strip away any path preceding the macro file name - int dot = tmpst.Last('.'); - - if (dot > 0) { - tmpst.Resize(dot); - } - mUserMacro->InitWithPrototype(tmpst.Data(), "Float_t *,Float_t *"); - long args[2]; - args[0] = (long)mTemporaryCoefficient; - args[1] = (long)mTemporaryUserResults; - mUserMacro->SetParamPtrs(args); -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -void Chebyshev3D::setuserFunction(void (*ptr)(float*, float*)) -{ - // assign user training function - if (mUserMacro) { - delete mUserMacro; - } - mUserMacro = 0; - mUserFunctionName = ""; - gUsrFunChebyshev3D = ptr; -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -void Chebyshev3D::evaluateUserFunction(const Float_t* x, Float_t* res) -{ - // evaluate user function value - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = x[i]; - } - - if (gUsrFunChebyshev3D) { - gUsrFunChebyshev3D(mTemporaryCoefficient, mTemporaryUserResults); - } else { - mUserMacro->Execute(); - } - - for (int i = mOutputArrayDimension; i--;) { - res[i] = mTemporaryUserResults[i]; - } -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -Int_t Chebyshev3D::calculateChebyshevCoefficients(const Float_t* funval, int np, Float_t* outCoefs, Float_t prec) -{ - // Calculate Chebyshev coeffs using precomputed function values at np roots. - // If prec>0, estimate the highest coeff number providing the needed precision - double sm; // do summations in double to minimize the roundoff error - for (int ic = 0; ic < np; ic++) { // compute coeffs - sm = 0; - for (int ir = 0; ir < np; ir++) { - float rt = TMath::Cos(ic * (ir + 0.5) * TMath::Pi() / np); - sm += funval[ir] * rt; - } - outCoefs[ic] = Float_t(sm * ((ic == 0) ? 1. / np : 2. / np)); - } - - if (prec <= 0) { - return np; - } - - sm = 0; - int cfMax = 0; - for (cfMax = np; cfMax--;) { - sm += TMath::Abs(outCoefs[cfMax]); - if (sm >= prec) { - break; - } - } - if (++cfMax == 0) { - cfMax = 1; - } - return cfMax; -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -void Chebyshev3D::defineGrid(const Int_t* npoints) -{ - // prepare the grid of Chebyshev roots in each dimension - const int kMinPoints = 1; - int ntot = 0; - mMaxCoefficients = 1; - for (int id = 3; id--;) { - mNumberOfPoints[id] = npoints[id]; - if (mNumberOfPoints[id] < kMinPoints) { - Error("DefineGrid", "at %d-th dimension %d point is requested, at least %d is needed\nStop\n", id, - mNumberOfPoints[id], kMinPoints); - exit(1); - } - ntot += mNumberOfPoints[id]; - mMaxCoefficients *= mNumberOfPoints[id]; - } - printf("Computing Chebyshev nodes on [%2d/%2d/%2d] grid\n", npoints[0], npoints[1], npoints[2]); - if (mTemporaryChebyshevGrid) { - delete[] mTemporaryChebyshevGrid; - } - mTemporaryChebyshevGrid = new Float_t[ntot]; - - int curp = 0; - for (int id = 3; id--;) { - int np = mNumberOfPoints[id]; - mTemporaryChebyshevGridOffs[id] = curp; - for (int ip = 0; ip < np; ip++) { - Float_t x = TMath::Cos(TMath::Pi() * (ip + 0.5) / np); - mTemporaryChebyshevGrid[curp++] = mapToExternal(x, id); - } - } -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -Int_t Chebyshev3D::chebyshevFit() -{ - // prepare parameterization for all output dimensions - int ir = 0; - for (int i = mOutputArrayDimension; i--;) { - ir += chebyshevFit(i); - } - return ir; -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -Int_t Chebyshev3D::chebyshevFit(int dmOut) -{ - // prepare paramaterization of 3D function for dmOut-th dimension - int maxDim = 0; - for (int i = 0; i < 3; i++) { - if (maxDim < mNumberOfPoints[i]) { - maxDim = mNumberOfPoints[i]; - } - } - Float_t* fvals = new Float_t[mNumberOfPoints[0]]; - Float_t* tmpCoef3D = new Float_t[mNumberOfPoints[0] * mNumberOfPoints[1] * mNumberOfPoints[2]]; - Float_t* tmpCoef2D = new Float_t[mNumberOfPoints[0] * mNumberOfPoints[1]]; - Float_t* tmpCoef1D = new Float_t[maxDim]; - - // 1D Cheb.fit for 0-th dimension at current steps of remaining dimensions - int ncmax = 0; - - printf("Dim%d : 00.00%% Done", dmOut); - fflush(stdout); - Chebyshev3DCalc* cheb = getChebyshevCalc(dmOut); - - Float_t prec = cheb->getPrecision(); - if (prec= fracStep) { - frac = fr; - printf("\b\b\b\b\b\b\b\b\b\b\b"); - printf("%05.2f%% Done", fr * 100); - fflush(stdout); - } - } - int nc = calculateChebyshevCoefficients(fvals, mNumberOfPoints[0], tmpCoef1D, prec); - for (int id0 = mNumberOfPoints[0]; id0--;) { - tmpCoef2D[id1 + id0 * mNumberOfPoints[1]] = tmpCoef1D[id0]; - } - if (ncmax < nc) { - ncmax = nc; // max coefs to be kept in dim0 to guarantee needed precision - } - } - // once each 1d slice of given 2d slice is parametrized, parametrize the Cheb.coeffs - for (int id0 = mNumberOfPoints[0]; id0--;) { - calculateChebyshevCoefficients(tmpCoef2D + id0 * mNumberOfPoints[1], mNumberOfPoints[1], tmpCoef1D, -1); - for (int id1 = mNumberOfPoints[1]; id1--;) { - tmpCoef3D[id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1])] = tmpCoef1D[id1]; - } - } - } - // now fit the last dimensions Cheb.coefs - for (int id0 = mNumberOfPoints[0]; id0--;) { - for (int id1 = mNumberOfPoints[1]; id1--;) { - calculateChebyshevCoefficients(tmpCoef3D + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1]), - mNumberOfPoints[2], tmpCoef1D, -1); - for (int id2 = mNumberOfPoints[2]; id2--;) { - tmpCoef3D[id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1])] = tmpCoef1D[id2]; // store on place - } - } - } - - // now find 2D surface which separates significant coefficients of 3D matrix from nonsignificant ones (up to - // prec) - UShort_t* tmpCoefSurf = new UShort_t[mNumberOfPoints[0] * mNumberOfPoints[1]]; - for (int id0 = mNumberOfPoints[0]; id0--;) { - for (int id1 = mNumberOfPoints[1]; id1--;) { - tmpCoefSurf[id1 + id0 * mNumberOfPoints[1]] = 0; - } - } - Double_t resid = 0; - for (int id0 = mNumberOfPoints[0]; id0--;) { - for (int id1 = mNumberOfPoints[1]; id1--;) { - for (int id2 = mNumberOfPoints[2]; id2--;) { - int id = id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1]); - Float_t cfa = TMath::Abs(tmpCoef3D[id]); - if (cfa < rTiny) { - tmpCoef3D[id] = 0; - continue; - } // neglect coefs below the threshold - resid += cfa; - if (resid < prec) { - continue; // this coeff is negligible - } - // otherwise go back 1 step - resid -= cfa; - tmpCoefSurf[id1 + id0 * mNumberOfPoints[1]] = id2 + 1; // how many coefs to keep - break; - } - } - } - - // printf("\n\nCoeffs\n"); - // int cnt = 0; - // for (int id0=0;id0 0 && tmpCoefSurf[(id1 - 1) + id0 * mNumberOfPoints[1]] == 0) { - id1--; - } - tmpCols[id0] = id1; - } - // find max significant row - for (int id0 = nRows; id0--;) { - if (tmpCols[id0] > 0) { - break; - } - nRows--; - } - // find max significant column and fill the permanent storage for the max sigificant column of each row - cheb->initializeRows(nRows); // create needed arrays; - UShort_t* nColsAtRow = cheb->getNumberOfColumnsAtRow(); - UShort_t* colAtRowBg = cheb->getColAtRowBg(); - int nCols = 0; - int nElemBound2D = 0; - for (int id0 = 0; id0 < nRows; id0++) { - nColsAtRow[id0] = tmpCols[id0]; // number of columns to store for this row - colAtRowBg[id0] = nElemBound2D; // begining of this row in 2D boundary surface - nElemBound2D += tmpCols[id0]; - if (nCols < nColsAtRow[id0]) { - nCols = nColsAtRow[id0]; - } - } - cheb->initializeColumns(nCols); - delete[] tmpCols; - - // create the 2D matrix defining the boundary of significance for 3D coeffs.matrix - // and count the number of siginifacnt coefficients - cheb->initializeElementBound2D(nElemBound2D); - UShort_t* coefBound2D0 = cheb->getCoefficientBound2D0(); - UShort_t* coefBound2D1 = cheb->getCoefficientBound2D1(); - mMaxCoefficients = 0; // redefine number of coeffs - for (int id0 = 0; id0 < nRows; id0++) { - int nCLoc = nColsAtRow[id0]; - int col0 = colAtRowBg[id0]; - for (int id1 = 0; id1 < nCLoc; id1++) { - coefBound2D0[col0 + id1] = - tmpCoefSurf[id1 + id0 * mNumberOfPoints[1]]; // number of coefs to store for 3-d dimension - coefBound2D1[col0 + id1] = mMaxCoefficients; - mMaxCoefficients += coefBound2D0[col0 + id1]; - } - } - - // create final compressed 3D matrix for significant coeffs - cheb->initializeCoefficients(mMaxCoefficients); - Float_t* coefs = cheb->getCoefficients(); - int count = 0; - for (int id0 = 0; id0 < nRows; id0++) { - int ncLoc = nColsAtRow[id0]; - int col0 = colAtRowBg[id0]; - for (int id1 = 0; id1 < ncLoc; id1++) { - int ncf2 = coefBound2D0[col0 + id1]; - for (int id2 = 0; id2 < ncf2; id2++) { - coefs[count++] = tmpCoef3D[id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1])]; - } - } - } - - // printf("\n\nNewSurf\n"); - // for (int id0=0;id0ExpandPathName(strf); - FILE* stream = fopen(strf, append ? "a" : "w"); - saveData(stream); - fclose(stream); -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -void Chebyshev3D::saveData(FILE* stream) const -{ - // writes coefficients data to existing output stream - fprintf(stream, "\n# These are automatically generated data for the Chebyshev interpolation of 3D->%dD function\n", - mOutputArrayDimension); - fprintf(stream, "#\nSTART %s\n", GetName()); - fprintf(stream, "# Dimensionality of the output\n%d\n", mOutputArrayDimension); - fprintf(stream, "# Interpolation abs. precision\n%+.8e\n", mPrecision); - - fprintf(stream, "# Lower boundaries of interpolation region\n"); - for (int i = 0; i < 3; i++) { - fprintf(stream, "%+.8e\n", mMinBoundaries[i]); - } - fprintf(stream, "# Upper boundaries of interpolation region\n"); - for (int i = 0; i < 3; i++) { - fprintf(stream, "%+.8e\n", mMaxBoundaries[i]); - } - fprintf(stream, "# Parameterization for each output dimension follows:\n"); - - for (int i = 0; i < mOutputArrayDimension; i++) { - getChebyshevCalc(i)->saveData(stream); - } - fprintf(stream, "#\nEND %s\n#\n", GetName()); -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -void Chebyshev3D::invertSign() -{ - // invert the sign of all parameterizations - for (int i = mOutputArrayDimension; i--;) { - Chebyshev3DCalc* par = getChebyshevCalc(i); - int ncf = par->getNumberOfCoefficients(); - float* coefs = par->getCoefficients(); - for (int j = ncf; j--;) { - coefs[j] = -coefs[j]; - } - } -} -#endif - -void Chebyshev3D::loadData(const char* inpFile) -{ - // load coefficients data from txt file - TString strf = inpFile; - gSystem->ExpandPathName(strf); - FILE* stream = fopen(strf.Data(), "r"); - loadData(stream); - fclose(stream); -} - -void Chebyshev3D::loadData(FILE* stream) -{ - // load coefficients data from stream - if (!stream) { - mLogger->Fatal(MESSAGE_ORIGIN, "No stream provided.\nStop"); - } - TString buffs; - Clear(); - Chebyshev3DCalc::readLine(buffs, stream); - if (!buffs.BeginsWith("START")) { - mLogger->Fatal(MESSAGE_ORIGIN, "Expected: \"START \", found \"%s\"\nStop\n", buffs.Data()); - } - SetName(buffs.Data() + buffs.First(' ') + 1); - - Chebyshev3DCalc::readLine(buffs, stream); // N output dimensions - mOutputArrayDimension = buffs.Atoi(); - if (mOutputArrayDimension < 1) { - mLogger->Fatal(MESSAGE_ORIGIN, "Expected: '', found \"%s\"\nStop\n", buffs.Data()); - } - - setDimOut(mOutputArrayDimension); - - Chebyshev3DCalc::readLine(buffs, stream); // Interpolation abs. precision - mPrecision = buffs.Atof(); - if (mPrecision <= 0) { - mLogger->Fatal(MESSAGE_ORIGIN, "Expected: '', found \"%s\"\nStop\n", buffs.Data()); - } - - for (int i = 0; i < 3; i++) { // Lower boundaries of interpolation region - Chebyshev3DCalc::readLine(buffs, stream); - mMinBoundaries[i] = buffs.Atof(); - } - - for (int i = 0; i < 3; i++) { // Upper boundaries of interpolation region - Chebyshev3DCalc::readLine(buffs, stream); - mMaxBoundaries[i] = buffs.Atof(); - } - prepareBoundaries(mMinBoundaries, mMaxBoundaries); - - // data for each output dimension - for (int i = 0; i < mOutputArrayDimension; i++) { - getChebyshevCalc(i)->loadData(stream); - } - - // check end_of_data record - Chebyshev3DCalc::readLine(buffs, stream); - if (!buffs.BeginsWith("END") || !buffs.Contains(GetName())) { - mLogger->Fatal(MESSAGE_ORIGIN, "Expected \"END %s\", found \"%s\".\nStop\n", GetName(), buffs.Data()); - } -} - -void Chebyshev3D::setDimOut(const int d, const float* prec) -{ - // init output dimensions - mOutputArrayDimension = d; - if (mTemporaryUserResults) { - delete mTemporaryUserResults; - } - mTemporaryUserResults = new Float_t[mOutputArrayDimension]; - mChebyshevParameter.Delete(); - for (int i = 0; i < d; i++) { - Chebyshev3DCalc* clc = new Chebyshev3DCalc(); - clc->setPrecision(prec && prec[i]>sMinimumPrecision ? prec[i] : mPrecision); - mChebyshevParameter.AddAtAndExpand(new Chebyshev3DCalc(), i); - } -} - -void Chebyshev3D::shiftBound(int id, float dif) -{ - // modify the bounds of the grid - if (id < 0 || id > 2) { - printf("Maximum 3 dimensions are supported\n"); - return; - } - mMinBoundaries[id] += dif; - mMaxBoundaries[id] += dif; - mBoundaryMappingOffset[id] += dif; -} - -#ifdef _INC_CREATION_Chebyshev3D_ -TH1* Chebyshev3D::TestRMS(int idim, int npoints, TH1* histo) -{ - // fills the difference between the original function and parameterization (for idim-th component of the output) - // to supplied histogram. Calculations are done in npoints random points. - // If the hostgram was not supplied, it will be created. It is up to the user to delete it! - if (!mUserMacro) { - printf("No user function is set\n"); - return 0; - } - if (!histo) { - histo = new TH1D(GetName(), "Control: Function - Parametrization", 100, -2 * mPrecision, 2 * mPrecision); - } - - float prc = getChebyshevCalc(idim)->getPrecision(); - if (prcRndmArray(3, (Float_t*)mTemporaryCoefficient); - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mMinBoundaries[i] + mTemporaryCoefficient[i] * (mMaxBoundaries[i] - mMinBoundaries[i]); - } - evaluateUserFunction(); - Float_t valFun = mTemporaryUserResults[idim]; - Eval(mTemporaryCoefficient, mTemporaryUserResults); - Float_t valPar = mTemporaryUserResults[idim]; - histo->Fill(valFun - valPar); - } - return histo; -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ - -void Chebyshev3D::estimateNumberOfPoints(float prec, int gridBC[3][3], Int_t npd1, Int_t npd2, Int_t npd3) -{ - // Estimate number of points to generate a training data - const int kScp = 9; - const float kScl[9] = { 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 }; - - const float sclDim[2] = { 0.001, 0.999 }; - const int compDim[3][2] = { { 1, 2 }, { 2, 0 }, { 0, 1 } }; - static float xyz[3]; - Int_t npdTst[3] = { npd1, npd2, npd3 }; - - for (int i = 3; i--;) { - for (int j = 3; j--;) { - gridBC[i][j] = -1; - } - } - - for (int idim = 0; idim < 3; idim++) { - float dimMN = mMinBoundaries[idim] + sclDim[0] * (mMaxBoundaries[idim] - mMinBoundaries[idim]); - float dimMX = mMinBoundaries[idim] + sclDim[1] * (mMaxBoundaries[idim] - mMinBoundaries[idim]); - - int id1 = compDim[idim][0]; // 1st fixed dim - int id2 = compDim[idim][1]; // 2nd fixed dim - for (int i1 = 0; i1 < kScp; i1++) { - xyz[id1] = mMinBoundaries[id1] + kScl[i1] * (mMaxBoundaries[id1] - mMinBoundaries[id1]); - for (int i2 = 0; i2 < kScp; i2++) { - xyz[id2] = mMinBoundaries[id2] + kScl[i2] * (mMaxBoundaries[id2] - mMinBoundaries[id2]); - int* npt = getNcNeeded(xyz, idim, dimMN, dimMX, prec, npdTst[idim]); // npoints for Bx,By,Bz - for (int ib = 0; ib < 3; ib++) { - if (npt[ib] > gridBC[ib][idim]) { - gridBC[ib][idim] = npt[ib]; - } - } - } - } - } -} - -// void Chebyshev3D::estimateNumberOfPoints(float Prec, int gridBC[3][3]) -// { -// // Estimate number of points to generate a training data -// -// const float sclA[9] = {0.1, 0.5, 0.9, 0.1, 0.5, 0.9, 0.1, 0.5, 0.9} ; -// const float sclB[9] = {0.1, 0.1, 0.1, 0.5, 0.5, 0.5, 0.9, 0.9, 0.9} ; -// const float sclDim[2] = {0.01,0.99}; -// const int compDim[3][2] = { {1,2}, {2,0}, {0,1} }; -// static float xyz[3]; -// -// for (int i=3;i--;)for (int j=3;j--;) gridBC[i][j] = -1; -// -// for (int idim=0;idim<3;idim++) { -// float dimMN = mMinBoundaries[idim] + sclDim[0]*(mMaxBoundaries[idim]-mMinBoundaries[idim]); -// float dimMX = mMinBoundaries[idim] + sclDim[1]*(mMaxBoundaries[idim]-mMinBoundaries[idim]); -// -// for (int it=0;it<9;it++) { // test in 9 points -// int id1 = compDim[idim][0]; // 1st fixed dim -// int id2 = compDim[idim][1]; // 2nd fixed dim -// xyz[ id1 ] = mMinBoundaries[id1] + sclA[it]*( mMaxBoundaries[id1]-mMinBoundaries[id1] ); -// xyz[ id2 ] = mMinBoundaries[id2] + sclB[it]*( mMaxBoundaries[id2]-mMinBoundaries[id2] ); -// -// int* npt = getNcNeeded(xyz,idim, dimMN,dimMX, Prec); // npoints for Bx,By,Bz -// for (int ib=0;ib<3;ib++) if (npt[ib]>gridBC[ib][idim]) gridBC[ib][idim] = npt[ib];//+2; -// -// } -// } -// } -// -// -// int* Chebyshev3D::getNcNeeded(float xyz[3],int DimVar, float mn,float mx, float prec) -// { -// // estimate needed number of chebyshev coefs for given function description in DimVar dimension -// // The values for two other dimensions must be set beforehand -// -// static int curNC[3]; -// static int retNC[3]; -// const int kMaxPoint = 400; -// float* gridVal = new float[3*kMaxPoint]; -// float* coefs = new float[3*kMaxPoint]; -// -// float scale = mx-mn; -// float offs = mn + scale/2.0; -// scale = 2./scale; -// -// int curNP; -// int maxNC=-1; -// int maxNCPrev=-1; -// for (int i=0;i<3;i++) retNC[i] = -1; -// for (int i=0;i<3;i++) mTemporaryCoefficient[i] = xyz[i]; -// -// for (curNP=3; curNP3 && (maxNC-maxNCPrev)<1 ) break; -// maxNCPrev = maxNC; -// -// } -// delete[] gridVal; -// delete[] coefs; -// return retNC; -// } - -int* Chebyshev3D::getNcNeeded(float xyz[3], int DimVar, float mn, float mx, float prec, Int_t npCheck) -{ - // estimate needed number of chebyshev coefs for given function description in DimVar dimension - // The values for two other dimensions must be set beforehand - static int retNC[3]; - static int npChLast = 0; - static float* gridVal = 0, *coefs = 0; - if (npCheck < 3) { - npCheck = 3; - } - if (npChLast < npCheck) { - if (gridVal) { - delete[] gridVal; - } - if (coefs) { - delete[] coefs; - } - gridVal = new float[3 * npCheck]; - coefs = new float[3 * npCheck]; - npChLast = npCheck; - } - float scale = mx - mn; - float offs = mn + scale / 2.0; - scale = 2. / scale; - - for (int i = 0; i < 3; i++) { - mTemporaryCoefficient[i] = xyz[i]; - } - for (int i = 0; i < npCheck; i++) { - mTemporaryCoefficient[DimVar] = - TMath::Cos(TMath::Pi() * (i + 0.5) / npCheck) / scale + offs; // map to requested interval - evaluateUserFunction(); - for (int ib = 3; ib--;) { - gridVal[ib * npCheck + i] = mTemporaryUserResults[ib]; - } - } - for (int ib = 0; ib < 3; ib++) { - retNC[ib] = - Chebyshev3D::calculateChebyshevCoefficients(&gridVal[ib * npCheck], npCheck, &coefs[ib * npCheck], prec); - } - return retNC; -} - -#endif diff --git a/MathUtils/Chebyshev3D.h b/MathUtils/Chebyshev3D.h deleted file mode 100644 index acee048aa7989..0000000000000 --- a/MathUtils/Chebyshev3D.h +++ /dev/null @@ -1,401 +0,0 @@ -/// \file Cheb3D.h -/// \brief Definition of the Cheb3D class -/// \author ruben.shahoyan@cern.ch 09/09/2006 - -#ifndef ALICEO2_MATHUTILS_CHEBYSHEV3D_H_ -#define ALICEO2_MATHUTILS_CHEBYSHEV3D_H_ - -#include // for TNamed -#include // for TObjArray -#include // for FILE, stdout -#include "Chebyshev3DCalc.h" // for Chebyshev3DCalc, etc -#include "Rtypes.h" // for Float_t, Int_t, Double_t, Bool_t, etc -#include "TString.h" // for TString -class FairLogger; // lines 20-20 -class TH1; // lines 15-15 -class TMethodCall; // lines 16-16 - - -namespace AliceO2 { -namespace MathUtils { - -/// Chebyshev3D produces the interpolation of the user 3D->NDimOut arbitrary function supplied in -/// "void (*fcn)(float* inp,float* out)" format either in a separate macro file or as a function pointer. Only -/// coefficients needed to guarantee the requested precision are kept. The user-callable methods are: -/// To create the interpolation use: -/// Cheb3D(const char* funName, // name of the file with user function or -/// Cheb3D(void (*ptr)(float*,float*) // pointer on the user function -/// \param Int_t DimOut dimensionality of the function's output -/// \param Float_t *bmin lower 3D bounds of interpolation domain -/// \param Float_t *bmax upper 3D bounds of interpolation domain -/// \param Int_t *npoints number of points in each of 3 input dimension, defining the interpolation grid -/// \param Float_t prec=1E-6); requested max.absolute difference between the interpolation and any point on grid -/// To test obtained parameterization use the method TH1* TestRMS(int idim,int npoints = 1000,TH1* histo=0); -/// it will compare the user output of the user function and interpolation for idim-th output dimension and -/// fill the difference in the supplied histogram. If no histogram is supplied, it will be created. -/// To save the interpolation data: saveData(const char* filename, Bool_t append ) write text file with data. -/// If append is kTRUE and the output file already exists, data will be added in the end of the file. -/// Alternatively, saveData(FILE* stream) will write the data to already existing stream. -/// To read back already stored interpolation use either the constructor Chebyshev3D(const char* inpFile); -/// or the default constructor Chebyshev3D() followed by Chebyshev3D::loadData(const char* inpFile); -/// To compute the interpolation use Eval(float* par,float *res) method, with par being 3D vector of arguments -/// (inside the validity region) and res is the array of DimOut elements for the output. -/// If only one component (say, idim-th) of the output is needed, use faster Float_t Eval(Float_t *par,int idim) method -/// void Print(option="") will print the name, the ranges of validity and the absolute precision of the -/// parameterization. Option "l" will also print the information about the number of coefficients for each output -/// dimension. -/// NOTE: during the evaluation no check is done for parameter vector being outside the interpolation region. -/// If there is such a risk, use Bool_t isInside(float *par) method. Chebyshev parameterization is not -/// good for extrapolation! -/// For the properties of Chebyshev parameterization see: -/// H.Wind, CERN EP Internal Report, 81-12/Rev. -class Chebyshev3D : public TNamed { -public: - - Chebyshev3D(); - Chebyshev3D(const Chebyshev3D& src); - Chebyshev3D(const char* inpFile); - Chebyshev3D(FILE* stream); - -#ifdef _INC_CREATION_Chebyshev3D_ - /// Construct the parameterization for the function - /// \param funName : name of the file containing the function: void funName(Float_t * inp,Float_t * out) - /// \param DimOut : dimension of the vector computed by the user function - /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined - /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined - /// \param npoints : array of 3 elements with the number of points to compute in each of 3 dimension - /// \param prec : max allowed absolute difference between the user function and computed parameterization on the - /// requested grid, common for all 1D components - /// \param precD : optional precison per component - Chebyshev3D(const char* funName, Int_t dimOut, const Float_t* bmin, const Float_t* bmax, const Int_t* npoints, - Float_t prec = 1E-6, const Float_t* precD=0); - /// Construct the parameterization for the function - /// \param ptr : pointer on the function: void fun(Float_t * inp,Float_t * out) - /// \param DimOut : dimension of the vector computed by the user function - /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined - /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined - /// \param npoints : array of 3 elements with the number of points to compute in each of 3 dimension - /// \param prec : max allowed absolute difference between the user function and computed parameterization on the - /// requested grid, common for all 1D components - /// \param precD : optional precison per component - Chebyshev3D(void (*ptr)(float*, float*), Int_t dimOut, const Float_t* bmin, const Float_t* bmax, const Int_t* npoints, - Float_t prec = 1E-6, const Float_t* precD=0); - /// Construct very economic parameterization for the function - /// \param ptr : pointer on the function: void fun(Float_t * inp,Float_t * out) - /// \param DimOut : dimension of the vector computed by the user function - /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined - /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined - /// \param npX : array of 3 elements with the number of points to compute in each dimension for 1st component - /// \param npY : array of 3 elements with the number of points to compute in each dimension for 2nd component - /// \param npZ : array of 3 elements with the number of points to compute in each dimension for 3d component - /// \param prec : max allowed absolute difference between the user function and computed parameterization on the - /// requested grid, common for all 1D components - /// \param precD : optional precison per component - Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, - const Int_t* npX, const Int_t* npY, const Int_t* npZ, - Float_t prec = 1E-6, const Float_t* precD=0); - /// Construct very economic parameterization for the function with automatic calculation of the root's grid - /// \param ptr : pointer on the function: void fun(Float_t * inp,Float_t * out) - /// \param DimOut : dimension of the vector computed by the user function - /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined - /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined - /// \param prec : max allowed absolute difference between the user function and computed parameterization on the - /// \param requested grid, common for all 1D components - /// \param precD : optional precison per component - Chebyshev3D(void (*ptr)(float*, float*), int DimOut, const Float_t* bmin, const Float_t* bmax, Float_t prec = 1E-6, - Bool_t run = kTRUE, const Float_t* precD=0); -#endif - - ~Chebyshev3D() - { - Clear(); - } - - Chebyshev3D& operator=(const Chebyshev3D& rhs); - void Eval(const Float_t* par, Float_t* res); - Float_t Eval(const Float_t* par, int idim); - void Eval(const Double_t* par, Double_t* res); - Double_t Eval(const Double_t* par, int idim); - - void evaluateDerivative(int dimd, const Float_t* par, Float_t* res); - void evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, Float_t* res); - Float_t evaluateDerivative(int dimd, const Float_t* par, int idim); - Float_t evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, int idim); - void evaluateDerivative3D(const Float_t* par, Float_t dbdr[3][3]); - void evaluateDerivative3D2(const Float_t* par, Float_t dbdrdr[3][3][3]); - void Print(const Option_t* opt = "") const; - Bool_t isInside(const Float_t* par) const; - Bool_t isInside(const Double_t* par) const; - - Chebyshev3DCalc* getChebyshevCalc(int i) const - { - return (Chebyshev3DCalc*)mChebyshevParameter.UncheckedAt(i); - } - - Float_t getBoundMin(int i) const - { - return mMinBoundaries[i]; - } - - Float_t getBoundMax(int i) const - { - return mMaxBoundaries[i]; - } - - Float_t* getBoundMin() const - { - return (float*)mMinBoundaries; - } - - Float_t* getBoundMax() const - { - return (float*)mMaxBoundaries; - } - - Float_t getPrecision() const - { - return mPrecision; - } - - void shiftBound(int id, float dif); - - void loadData(const char* inpFile); - void loadData(FILE* stream); - -#ifdef _INC_CREATION_Chebyshev3D_ - void invertSign(); - int* getNcNeeded(float xyz[3], int dimVar, float mn, float mx, float prec, Int_t npCheck = 30); - void estimateNumberOfPoints(float prec, int gridBC[3][3], Int_t npd1 = 30, Int_t npd2 = 30, Int_t npd3 = 30); - void saveData(const char* outfile, Bool_t append = kFALSE) const; - void saveData(FILE* stream = stdout) const; - - void setuserFunction(const char* name); - void setuserFunction(void (*ptr)(float*, float*)); - void evaluateUserFunction(const Float_t* x, Float_t* res); - TH1* TestRMS(int idim, int npoints = 1000, TH1* histo = 0); - static Int_t calculateChebyshevCoefficients(const Float_t* funval, int np, Float_t* outCoefs, Float_t prec = -1); -#endif - -protected: - void Clear(const Option_t* option = ""); - void setDimOut(const int d, const float* prec=0); - void prepareBoundaries(const Float_t* bmin, const Float_t* bmax); - -#ifdef _INC_CREATION_Chebyshev3D_ - void evaluateUserFunction(); - void defineGrid(const Int_t* npoints); - Int_t chebyshevFit(); // fit all output dimensions - Int_t chebyshevFit(int dmOut); - void setPrecision(float prec) - { - mPrecision = prec; - } -#endif - - Float_t mapToInternal(Float_t x, Int_t d) const; // map x to [-1:1] - Float_t mapToExternal(Float_t x, Int_t d) const - { - return x / mBoundaryMappingScale[d] + mBoundaryMappingOffset[d]; - } // map from [-1:1] to x - Double_t mapToInternal(Double_t x, Int_t d) const; // map x to [-1:1] - Double_t mapToExternal(Double_t x, Int_t d) const - { - return x / mBoundaryMappingScale[d] + mBoundaryMappingOffset[d]; - } // map from [-1:1] to x - -protected: - Int_t mOutputArrayDimension; ///< dimension of the ouput array - Float_t mPrecision; ///< requested precision - Float_t mMinBoundaries[3]; ///< min boundaries in each dimension - Float_t mMaxBoundaries[3]; ///< max boundaries in each dimension - Float_t mBoundaryMappingScale[3]; ///< scale for boundary mapping to [-1:1] interval - Float_t mBoundaryMappingOffset[3]; ///< offset for boundary mapping to [-1:1] interval - TObjArray mChebyshevParameter; ///< Chebyshev parameterization for each output dimension - - Int_t mMaxCoefficients; //! max possible number of coefs per parameterization - Int_t mNumberOfPoints[3]; //! number of used points in each dimension - Float_t mTemporaryCoefficient[3]; //! temporary vector for coefs calculation - Float_t* mTemporaryUserResults; //! temporary vector for results of user function calculation - Float_t* mTemporaryChebyshevGrid; //! temporary buffer for Chebyshef roots grid - Int_t mTemporaryChebyshevGridOffs[3]; //! start of grid for each dimension - TString mUserFunctionName; //! name of user macro containing the function of "void (*fcn)(float*,float*)" format - TMethodCall* mUserMacro; //! Pointer to MethodCall for function from user macro - FairLogger* mLogger; //! - - static const Float_t sMinimumPrecision; ///< minimum precision allowed - - ClassDef(AliceO2::MathUtils::Chebyshev3D, 2) // Chebyshev parametrization for 3D->N function -}; - -/// Checks if the point is inside of the fitted box -inline Bool_t Chebyshev3D::isInside(const Float_t* par) const -{ - for (int i = 3; i--;) { - if (mMinBoundaries[i] > par[i] || par[i] > mMaxBoundaries[i]) { - return kFALSE; - } - } - return kTRUE; -} - -/// Checks if the point is inside of the fitted box -inline Bool_t Chebyshev3D::isInside(const Double_t* par) const -{ - for (int i = 3; i--;) { - if (mMinBoundaries[i] > par[i] || par[i] > mMaxBoundaries[i]) { - return kFALSE; - } - } - return kTRUE; -} - -/// Evaluates Chebyshev parameterization for 3d->DimOut function -inline void Chebyshev3D::Eval(const Float_t* par, Float_t* res) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - for (int i = mOutputArrayDimension; i--;) { - res[i] = getChebyshevCalc(i)->Eval(mTemporaryCoefficient); - } -} - -/// Evaluates Chebyshev parameterization for 3d->DimOut function -inline void Chebyshev3D::Eval(const Double_t* par, Double_t* res) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - for (int i = mOutputArrayDimension; i--;) { - res[i] = getChebyshevCalc(i)->Eval(mTemporaryCoefficient); - } -} - -/// Evaluates Chebyshev parameterization for idim-th output dimension of 3d->DimOut function -inline Double_t Chebyshev3D::Eval(const Double_t* par, int idim) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - return getChebyshevCalc(idim)->Eval(mTemporaryCoefficient); -} - -/// Evaluates Chebyshev parameterization for idim-th output dimension of 3d->DimOut function -inline Float_t Chebyshev3D::Eval(const Float_t* par, int idim) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - return getChebyshevCalc(idim)->Eval(mTemporaryCoefficient); -} - -/// Returns the gradient matrix -inline void Chebyshev3D::evaluateDerivative3D(const Float_t* par, Float_t dbdr[3][3]) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - for (int ib = 3; ib--;) { - for (int id = 3; id--;) { - dbdr[ib][id] = getChebyshevCalc(ib)->evaluateDerivative(id, mTemporaryCoefficient) * mBoundaryMappingScale[id]; - } - } -} - -/// Returns the gradient matrix -inline void Chebyshev3D::evaluateDerivative3D2(const Float_t* par, Float_t dbdrdr[3][3][3]) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - for (int ib = 3; ib--;) { - for (int id = 3; id--;) { - for (int id1 = 3; id1--;) { - dbdrdr[ib][id][id1] = getChebyshevCalc(ib)->evaluateDerivative2(id, id1, mTemporaryCoefficient) * - mBoundaryMappingScale[id] * mBoundaryMappingScale[id1]; - } - } - } -} - -// Evaluates Chebyshev parameterization derivative for 3d->DimOut function -inline void Chebyshev3D::evaluateDerivative(int dimd, const Float_t* par, Float_t* res) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - for (int i = mOutputArrayDimension; i--;) { - res[i] = getChebyshevCalc(i)->evaluateDerivative(dimd, mTemporaryCoefficient) * mBoundaryMappingScale[dimd]; - }; -} - -// Evaluates Chebyshev parameterization 2nd derivative over dimd1 and dimd2 dimensions for 3d->DimOut function -inline void Chebyshev3D::evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, Float_t* res) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - for (int i = mOutputArrayDimension; i--;) { - res[i] = getChebyshevCalc(i)->evaluateDerivative2(dimd1, dimd2, mTemporaryCoefficient) * - mBoundaryMappingScale[dimd1] * mBoundaryMappingScale[dimd2]; - } -} - -/// Evaluates Chebyshev parameterization derivative over dimd dimention for idim-th output dimension of 3d->DimOut -/// function -inline Float_t Chebyshev3D::evaluateDerivative(int dimd, const Float_t* par, int idim) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - return getChebyshevCalc(idim)->evaluateDerivative(dimd, mTemporaryCoefficient) * mBoundaryMappingScale[dimd]; -} - -/// Evaluates Chebyshev parameterization 2ns derivative over dimd1 and dimd2 dimensions for idim-th output dimension of -/// 3d->DimOut function -inline Float_t Chebyshev3D::evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, int idim) -{ - for (int i = 3; i--;) { - mTemporaryCoefficient[i] = mapToInternal(par[i], i); - } - return getChebyshevCalc(idim)->evaluateDerivative2(dimd1, dimd2, mTemporaryCoefficient) * - mBoundaryMappingScale[dimd1] * mBoundaryMappingScale[dimd2]; -} - -/// Μaps x to [-1:1] -inline Float_t Chebyshev3D::mapToInternal(Float_t x, Int_t d) const -{ -#ifdef _BRING_TO_BOUNDARY_ - T res = (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; - if (res < -1) { - return -1; - } - if (res > 1) { - return 1; - } - return res; -#else - return (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; -#endif -} - -/// Μaps x to [-1:1] -inline Double_t Chebyshev3D::mapToInternal(Double_t x, Int_t d) const -{ -#ifdef _BRING_TO_BOUNDARY_ - T res = (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; - if (res < -1) { - return -1; - } - if (res > 1) { - return 1; - } - return res; -#else - return (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; -#endif -} -} -} - -#endif diff --git a/MathUtils/Chebyshev3DCalc.cxx b/MathUtils/Chebyshev3DCalc.cxx deleted file mode 100644 index 7cbd058104dac..0000000000000 --- a/MathUtils/Chebyshev3DCalc.cxx +++ /dev/null @@ -1,528 +0,0 @@ -/// \file Cheb3DCalc.cxx -/// \brief Implementation of the Cheb3DCalc class -/// \author ruben.shahoyan@cern.ch 09/09/2006 - -#include "Chebyshev3DCalc.h" -#include // for TSystem, gSystem -#include "TNamed.h" // for TNamed -#include "TString.h" // for TString, TString::EStripType::kBoth -using namespace AliceO2::MathUtils; - -ClassImp(Chebyshev3DCalc) - -Chebyshev3DCalc::Chebyshev3DCalc() - : mNumberOfCoefficients(0), - mNumberOfRows(0), - mNumberOfColumns(0), - mNumberOfElementsBound2D(0), - mPrecision(0), - mNumberOfColumnsAtRow(0), - mColumnAtRowBeginning(0), - mCoefficientBound2D0(0), - mCoefficientBound2D1(0), - mCoefficients(0), - mTemporaryCoefficients2D(0), - mTemporaryCoefficients1D(0) -{ -} - -Chebyshev3DCalc::Chebyshev3DCalc(const Chebyshev3DCalc& src) - : TNamed(src), - mNumberOfCoefficients(src.mNumberOfCoefficients), - mNumberOfRows(src.mNumberOfRows), - mNumberOfColumns(src.mNumberOfColumns), - mNumberOfElementsBound2D(src.mNumberOfElementsBound2D), - mPrecision(src.mPrecision), - mNumberOfColumnsAtRow(0), - mColumnAtRowBeginning(0), - mCoefficientBound2D0(0), - mCoefficientBound2D1(0), - mCoefficients(0), - mTemporaryCoefficients2D(0), - mTemporaryCoefficients1D(0) -{ - if (src.mNumberOfColumnsAtRow) { - mNumberOfColumnsAtRow = new UShort_t[mNumberOfRows]; - for (int i = mNumberOfRows; i--;) { - mNumberOfColumnsAtRow[i] = src.mNumberOfColumnsAtRow[i]; - } - } - if (src.mColumnAtRowBeginning) { - mColumnAtRowBeginning = new UShort_t[mNumberOfRows]; - for (int i = mNumberOfRows; i--;) { - mColumnAtRowBeginning[i] = src.mColumnAtRowBeginning[i]; - } - } - if (src.mCoefficientBound2D0) { - mCoefficientBound2D0 = new UShort_t[mNumberOfElementsBound2D]; - for (int i = mNumberOfElementsBound2D; i--;) { - mCoefficientBound2D0[i] = src.mCoefficientBound2D0[i]; - } - } - if (src.mCoefficientBound2D1) { - mCoefficientBound2D1 = new UShort_t[mNumberOfElementsBound2D]; - for (int i = mNumberOfElementsBound2D; i--;) { - mCoefficientBound2D1[i] = src.mCoefficientBound2D1[i]; - } - } - if (src.mCoefficients) { - mCoefficients = new Float_t[mNumberOfCoefficients]; - for (int i = mNumberOfCoefficients; i--;) { - mCoefficients[i] = src.mCoefficients[i]; - } - } - if (src.mTemporaryCoefficients2D) { - mTemporaryCoefficients2D = new Float_t[mNumberOfColumns]; - } - if (src.mTemporaryCoefficients1D) { - mTemporaryCoefficients1D = new Float_t[mNumberOfRows]; - } -} - -Chebyshev3DCalc::Chebyshev3DCalc(FILE* stream) - : mNumberOfCoefficients(0), - mNumberOfRows(0), - mNumberOfColumns(0), - mNumberOfElementsBound2D(0), - mPrecision(0), - mNumberOfColumnsAtRow(0), - mColumnAtRowBeginning(0), - mCoefficientBound2D0(0), - mCoefficientBound2D1(0), - mCoefficients(0), - mTemporaryCoefficients2D(0), - mTemporaryCoefficients1D(0) -{ - loadData(stream); -} - -Chebyshev3DCalc& Chebyshev3DCalc::operator=(const Chebyshev3DCalc& rhs) -{ - if (this != &rhs) { - Clear(); - SetName(rhs.GetName()); - SetTitle(rhs.GetTitle()); - mNumberOfCoefficients = rhs.mNumberOfCoefficients; - mNumberOfRows = rhs.mNumberOfRows; - mNumberOfColumns = rhs.mNumberOfColumns; - mPrecision = rhs.mPrecision; - if (rhs.mNumberOfColumnsAtRow) { - mNumberOfColumnsAtRow = new UShort_t[mNumberOfRows]; - for (int i = mNumberOfRows; i--;) { - mNumberOfColumnsAtRow[i] = rhs.mNumberOfColumnsAtRow[i]; - } - } - if (rhs.mColumnAtRowBeginning) { - mColumnAtRowBeginning = new UShort_t[mNumberOfRows]; - for (int i = mNumberOfRows; i--;) { - mColumnAtRowBeginning[i] = rhs.mColumnAtRowBeginning[i]; - } - } - if (rhs.mCoefficientBound2D0) { - mCoefficientBound2D0 = new UShort_t[mNumberOfElementsBound2D]; - for (int i = mNumberOfElementsBound2D; i--;) { - mCoefficientBound2D0[i] = rhs.mCoefficientBound2D0[i]; - } - } - if (rhs.mCoefficientBound2D1) { - mCoefficientBound2D1 = new UShort_t[mNumberOfElementsBound2D]; - for (int i = mNumberOfElementsBound2D; i--;) { - mCoefficientBound2D1[i] = rhs.mCoefficientBound2D1[i]; - } - } - if (rhs.mCoefficients) { - mCoefficients = new Float_t[mNumberOfCoefficients]; - for (int i = mNumberOfCoefficients; i--;) { - mCoefficients[i] = rhs.mCoefficients[i]; - } - } - if (rhs.mTemporaryCoefficients2D) { - mTemporaryCoefficients2D = new Float_t[mNumberOfColumns]; - } - if (rhs.mTemporaryCoefficients1D) { - mTemporaryCoefficients1D = new Float_t[mNumberOfRows]; - } - } - return *this; -} - -void Chebyshev3DCalc::Clear(const Option_t*) -{ - if (mTemporaryCoefficients2D) { - delete[] mTemporaryCoefficients2D; - mTemporaryCoefficients2D = 0; - } - if (mTemporaryCoefficients1D) { - delete[] mTemporaryCoefficients1D; - mTemporaryCoefficients1D = 0; - } - if (mCoefficients) { - delete[] mCoefficients; - mCoefficients = 0; - } - if (mCoefficientBound2D0) { - delete[] mCoefficientBound2D0; - mCoefficientBound2D0 = 0; - } - if (mCoefficientBound2D1) { - delete[] mCoefficientBound2D1; - mCoefficientBound2D1 = 0; - } - if (mNumberOfColumnsAtRow) { - delete[] mNumberOfColumnsAtRow; - mNumberOfColumnsAtRow = 0; - } - if (mColumnAtRowBeginning) { - delete[] mColumnAtRowBeginning; - mColumnAtRowBeginning = 0; - } -} - -void Chebyshev3DCalc::Print(const Option_t*) const -{ - printf("Chebyshev parameterization data %s for 3D->1 function, precision: %e\n", - GetName(),mPrecision); - int nmax3d = 0; - for (int i = mNumberOfElementsBound2D; i--;) { - if (mCoefficientBound2D0[i] > nmax3d) { - nmax3d = mCoefficientBound2D0[i]; - } - } - printf("%d coefficients in %dx%dx%d matrix\n", mNumberOfCoefficients, mNumberOfRows, mNumberOfColumns, nmax3d); -} - -Float_t Chebyshev3DCalc::evaluateDerivative(int dim, const Float_t* par) const -{ - int ncfRC; - for (int id0 = mNumberOfRows; id0--;) { - int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row - if (!nCLoc) { - mTemporaryCoefficients1D[id0] = 0; - continue; - } - // - int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix - for (int id1 = nCLoc; id1--;) { - int id = id1 + col0; - if (!(ncfRC = mCoefficientBound2D0[id])) { - mTemporaryCoefficients2D[id1] = 0; - continue; - } - if (dim == 2) { - mTemporaryCoefficients2D[id1] = - chebyshevEvaluation1Derivative(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); - } else { - mTemporaryCoefficients2D[id1] = chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); - } - } - if (dim == 1) { - mTemporaryCoefficients1D[id0] = chebyshevEvaluation1Derivative(par[1], mTemporaryCoefficients2D, nCLoc); - } else { - mTemporaryCoefficients1D[id0] = chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc); - } - } - return (dim == 0) ? chebyshevEvaluation1Derivative(par[0], mTemporaryCoefficients1D, mNumberOfRows) - : chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); -} - -Float_t Chebyshev3DCalc::evaluateDerivative2(int dim1, int dim2, const Float_t* par) const -{ - Bool_t same = dim1 == dim2; - int ncfRC; - for (int id0 = mNumberOfRows; id0--;) { - int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row - if (!nCLoc) { - mTemporaryCoefficients1D[id0] = 0; - continue; - } - int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix - for (int id1 = nCLoc; id1--;) { - int id = id1 + col0; - if (!(ncfRC = mCoefficientBound2D0[id])) { - mTemporaryCoefficients2D[id1] = 0; - continue; - } - if (dim1 == 2 || dim2 == 2) { - mTemporaryCoefficients2D[id1] = - same ? chebyshevEvaluation1Derivative2(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC) - : chebyshevEvaluation1Derivative(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); - } else { - mTemporaryCoefficients2D[id1] = chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); - } - } - if (dim1 == 1 || dim2 == 1) { - mTemporaryCoefficients1D[id0] = same ? chebyshevEvaluation1Derivative2(par[1], mTemporaryCoefficients2D, nCLoc) - : chebyshevEvaluation1Derivative(par[1], mTemporaryCoefficients2D, nCLoc); - } else { - mTemporaryCoefficients1D[id0] = chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc); - } - } - return (dim1 == 0 || dim2 == 0) - ? (same ? chebyshevEvaluation1Derivative2(par[0], mTemporaryCoefficients1D, mNumberOfRows) - : chebyshevEvaluation1Derivative(par[0], mTemporaryCoefficients1D, mNumberOfRows)) - : chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); -} - -#ifdef _INC_CREATION_Chebyshev3D_ -void Chebyshev3DCalc::saveData(const char* outfile, Bool_t append) const -{ - TString strf = outfile; - gSystem->ExpandPathName(strf); - FILE* stream = fopen(strf, append ? "a" : "w"); - saveData(stream); - fclose(stream); -} -#endif - -#ifdef _INC_CREATION_Chebyshev3D_ -void Chebyshev3DCalc::saveData(FILE* stream) const -{ - fprintf(stream, "#\nSTART %s\n", GetName()); - fprintf(stream, "# Number of rows\n%d\n", mNumberOfRows); - - fprintf(stream, "# Number of columns per row\n"); - for (int i = 0; i < mNumberOfRows; i++) { - fprintf(stream, "%d\n", mNumberOfColumnsAtRow[i]); - } - - fprintf(stream, "# Number of Coefs in each significant block of third dimension\n"); - for (int i = 0; i < mNumberOfElementsBound2D; i++) { - fprintf(stream, "%d\n", mCoefficientBound2D0[i]); - } - - fprintf(stream, "# Coefficients\n"); - for (int i = 0; i < mNumberOfCoefficients; i++) { - fprintf(stream, "%+.8e\n", mCoefficients[i]); - } - fprintf(stream,"# Precision\n"); - fprintf(stream,"%+.8e\n",mPrecision); - // - fprintf(stream, "END %s\n", GetName()); -} -#endif - -void Chebyshev3DCalc::loadData(FILE* stream) -{ - if (!stream) { - Error("LoadData", "No stream provided.\nStop"); - exit(1); - } - TString buffs; - Clear(); - readLine(buffs, stream); - - if (!buffs.BeginsWith("START")) { - Error("LoadData", "Expected: \"START \", found \"%s\"\nStop\n", buffs.Data()); - exit(1); - } - - if (buffs.First(' ') > 0) { - SetName(buffs.Data() + buffs.First(' ') + 1); - } - - readLine(buffs, stream); // NRows - mNumberOfRows = buffs.Atoi(); - - if (mNumberOfRows < 0 || !buffs.IsDigit()) { - Error("LoadData", "Expected: '', found \"%s\"\nStop\n", buffs.Data()); - exit(1); - } - - mNumberOfColumns = 0; - mNumberOfElementsBound2D = 0; - initializeRows(mNumberOfRows); - - for (int id0 = 0; id0 < mNumberOfRows; id0++) { - readLine(buffs, stream); // n.cols at this row - mNumberOfColumnsAtRow[id0] = buffs.Atoi(); - mColumnAtRowBeginning[id0] = mNumberOfElementsBound2D; // begining of this row in 2D boundary surface - mNumberOfElementsBound2D += mNumberOfColumnsAtRow[id0]; - if (mNumberOfColumns < mNumberOfColumnsAtRow[id0]) { - mNumberOfColumns = mNumberOfColumnsAtRow[id0]; - } - } - initializeColumns(mNumberOfColumns); - - mNumberOfCoefficients = 0; - initializeElementBound2D(mNumberOfElementsBound2D); - - for (int i = 0; i < mNumberOfElementsBound2D; i++) { - readLine(buffs, stream); // n.coeffs at 3-d dimension for the given column/row - mCoefficientBound2D0[i] = buffs.Atoi(); - mCoefficientBound2D1[i] = mNumberOfCoefficients; - mNumberOfCoefficients += mCoefficientBound2D0[i]; - } - - initializeCoefficients(mNumberOfCoefficients); - for (int i = 0; i < mNumberOfCoefficients; i++) { - readLine(buffs, stream); - mCoefficients[i] = buffs.Atof(); - } - // read precision - readLine(buffs,stream); - mPrecision = buffs.Atof(); - - // check end_of_data record - readLine(buffs, stream); - if (!buffs.BeginsWith("END") || !buffs.Contains(GetName())) { - Error("LoadData", "Expected \"END %s\", found \"%s\".\nStop\n", GetName(), buffs.Data()); - exit(1); - } -} - -void Chebyshev3DCalc::readLine(TString& str, FILE* stream) -{ - while (str.Gets(stream)) { - str = str.Strip(TString::kBoth, ' '); - if (str.IsNull() || str.BeginsWith("#")) { - continue; - } - return; - } - fprintf(stderr, "Chebyshev3D::readLine: Failed to read from stream.\nStop"); - exit(1); // normally, should not reach here -} - -void Chebyshev3DCalc::initializeRows(int nr) -{ - if (mNumberOfColumnsAtRow) { - delete[] mNumberOfColumnsAtRow; - mNumberOfColumnsAtRow = 0; - } - if (mColumnAtRowBeginning) { - delete[] mColumnAtRowBeginning; - mColumnAtRowBeginning = 0; - } - if (mTemporaryCoefficients1D) { - delete[] mTemporaryCoefficients1D; - mTemporaryCoefficients1D = 0; - } - mNumberOfRows = nr; - if (mNumberOfRows) { - mNumberOfColumnsAtRow = new UShort_t[mNumberOfRows]; - mTemporaryCoefficients1D = new Float_t[mNumberOfRows]; - mColumnAtRowBeginning = new UShort_t[mNumberOfRows]; - for (int i = mNumberOfRows; i--;) { - mNumberOfColumnsAtRow[i] = mColumnAtRowBeginning[i] = 0; - } - } -} - -void Chebyshev3DCalc::initializeColumns(int nc) -{ - mNumberOfColumns = nc; - if (mTemporaryCoefficients2D) { - delete[] mTemporaryCoefficients2D; - mTemporaryCoefficients2D = 0; - } - if (mNumberOfColumns) mTemporaryCoefficients2D = new Float_t[mNumberOfColumns]; -} - -void Chebyshev3DCalc::initializeElementBound2D(int ne) -{ - if (mCoefficientBound2D0) { - delete[] mCoefficientBound2D0; - mCoefficientBound2D0 = 0; - } - if (mCoefficientBound2D1) { - delete[] mCoefficientBound2D1; - mCoefficientBound2D1 = 0; - } - mNumberOfElementsBound2D = ne; - if (mNumberOfElementsBound2D) { - mCoefficientBound2D0 = new UShort_t[mNumberOfElementsBound2D]; - mCoefficientBound2D1 = new UShort_t[mNumberOfElementsBound2D]; - for (int i = mNumberOfElementsBound2D; i--;) { - mCoefficientBound2D0[i] = mCoefficientBound2D1[i] = 0; - } - } -} - -void Chebyshev3DCalc::initializeCoefficients(int nc) -{ - if (mCoefficients) { - delete[] mCoefficients; - mCoefficients = 0; - } - mNumberOfCoefficients = nc; - if (mNumberOfCoefficients) { - mCoefficients = new Float_t[mNumberOfCoefficients]; - for (int i = mNumberOfCoefficients; i--;) { - mCoefficients[i] = 0.0; - } - } -} - -Float_t Chebyshev3DCalc::chebyshevEvaluation1Derivative(Float_t x, const Float_t* array, int ncf) -{ - if (--ncf < 1) { - return 0; - } - Float_t b0, b1, b2; - Float_t x2 = x + x; - b1 = b2 = 0; - float dcf0 = 0, dcf1, dcf2 = 0; - b0 = dcf1 = 2 * ncf * array[ncf]; - if (!(--ncf)) { - return b0 / 2; - } - - for (int i = ncf; i--;) { - b2 = b1; - b1 = b0; - dcf0 = dcf2 + 2 * (i + 1) * array[i + 1]; - b0 = dcf0 + x2 * b1 - b2; - dcf2 = dcf1; - dcf1 = dcf0; - } - - return b0 - x * b1 - dcf0 / 2; -} - -Float_t Chebyshev3DCalc::chebyshevEvaluation1Derivative2(Float_t x, const Float_t* array, int ncf) -{ - if (--ncf < 2) { - return 0; - } - Float_t b0, b1, b2; - Float_t x2 = x + x; - b1 = b2 = 0; - float dcf0 = 0, dcf1 = 0, dcf2 = 0; - float ddcf0 = 0, ddcf1, ddcf2 = 0; - - dcf2 = 2 * ncf * array[ncf]; - --ncf; - - dcf1 = 2 * ncf * array[ncf]; - b0 = ddcf1 = 2 * ncf * dcf2; - - if (!(--ncf)) { - return b0 / 2; - } - - for (int i = ncf; i--;) { - b2 = b1; - b1 = b0; - dcf0 = dcf2 + 2 * (i + 1) * array[i + 1]; - ddcf0 = ddcf2 + 2 * (i + 1) * dcf1; - b0 = ddcf0 + x2 * b1 - b2; - - ddcf2 = ddcf1; - ddcf1 = ddcf0; - - dcf2 = dcf1; - dcf1 = dcf0; - } - return b0 - x * b1 - ddcf0 / 2; -} - -Int_t Chebyshev3DCalc::getMaxColumnsAtRow() const -{ - int nmax3d = 0; - for (int i = mNumberOfElementsBound2D; i--;) { - if (mCoefficientBound2D0[i] > nmax3d) { - nmax3d = mCoefficientBound2D0[i]; - } - } - return nmax3d; -} diff --git a/MathUtils/Chebyshev3DCalc.h b/MathUtils/Chebyshev3DCalc.h deleted file mode 100644 index b1f146a0605d3..0000000000000 --- a/MathUtils/Chebyshev3DCalc.h +++ /dev/null @@ -1,244 +0,0 @@ -/// \file Cheb3DCalc.h -/// \brief Definition of the Cheb3DCalc class -/// \author ruben.shahoyan@cern.ch 09/09/2006 - -#ifndef ALICEO2_MATHUTILS_CHEBYSHEV3DCALC_H_ -#define ALICEO2_MATHUTILS_CHEBYSHEV3DCALC_H_ - -#include // for TNamed -#include // for FILE, stdout -#include "Rtypes.h" // for Float_t, UShort_t, Int_t, Double_t, etc -class TString; - - -// To decrease the compilable code size comment this define. This will exclude the routines -// used for the calculation and saving of the coefficients. -#define _INC_CREATION_Chebyshev3D_ - -// When _BRING_TO_BOUNDARY_ is defined, the point outside of the fitted folume is assumed to be on the surface -// #define _BRING_TO_BOUNDARY_ - -namespace AliceO2 { -namespace MathUtils { -class Chebyshev3DCalc : public TNamed { - -public: - - - - /// Default constructor - Chebyshev3DCalc(); - /// Copy constructor - Chebyshev3DCalc(const Chebyshev3DCalc& src); - /// Constructor from coefficients stream - Chebyshev3DCalc(FILE* stream); - /// Default destructor - ~Chebyshev3DCalc() - { - Clear(); - } - - /// Assignment operator - Chebyshev3DCalc& operator=(const Chebyshev3DCalc& rhs); - - /// Prints info - void Print(const Option_t* opt = "") const; - - /// Loads coefficients from the stream - void loadData(FILE* stream); - - /// Evaluates Chebyshev parameterization derivative in given dimension for 3D function. - /// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval - Float_t evaluateDerivative(int dim, const Float_t* par) const; - - /// Evaluates Chebyshev parameterization 2n derivative in given dimensions for 3D function. - /// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval - Float_t evaluateDerivative2(int dim1, int dim2, const Float_t* par) const; - -#ifdef _INC_CREATION_Chebyshev3D_ - /// Writes coefficients data to output text file, optionally appending on the end of existing file - void saveData(const char* outfile, Bool_t append = kFALSE) const; - - // Writes coefficients data to existing output stream - // Note: mNumberOfColumns, mNumberOfElementsBound2D and mColumnAtRowBeginning are not stored, will be computed on fly - // during the loading of this file - void saveData(FILE* stream = stdout) const; -#endif - - /// Sets maximum number of significant rows in the coefficients matrix - void initializeRows(int nr); - - /// Sets maximum number of significant columns in the coefficients matrix - void initializeColumns(int nc); - - Int_t getNumberOfCoefficients() const - { - return mNumberOfCoefficients; - } - - Int_t getNumberOfColumns() const - { - return (Int_t)mNumberOfColumns; - } - - Int_t getNumberOfRows() const - { - return (Int_t)mNumberOfRows; - } - - Int_t getNumberOfElementsBound2D() const - { - return (Int_t)mNumberOfElementsBound2D; - } - - Int_t getMaxColumnsAtRow() const; - - UShort_t* getNumberOfColumnsAtRow() const - { - return mNumberOfColumnsAtRow; - } - - UShort_t* getColAtRowBg() const - { - return mColumnAtRowBeginning; - } - - Float_t getPrecision() const - { - return mPrecision; - } - - /// Sets requested precision - void setPrecision(Float_t prc=1e-6) - { - mPrecision = prc; - } - - /// Sets maximum number of significant coefficients for given row/column of coefficients 3D matrix - void initializeElementBound2D(int ne); - - UShort_t* getCoefficientBound2D0() const - { - return mCoefficientBound2D0; - } - - UShort_t* getCoefficientBound2D1() const - { - return mCoefficientBound2D1; - } - /// Deletes all dynamically allocated structures - void Clear(const Option_t* option = ""); - - static Float_t chebyshevEvaluation1D(Float_t x, const Float_t* array, int ncf); - - /// Evaluates 1D Chebyshev parameterization's derivative. x is the argument mapped to [-1:1] interval - static Float_t chebyshevEvaluation1Derivative(Float_t x, const Float_t* array, int ncf); - - /// Evaluates 1D Chebyshev parameterization's 2nd derivative. x is the argument mapped to [-1:1] interval - static Float_t chebyshevEvaluation1Derivative2(Float_t x, const Float_t* array, int ncf); - - /// Sets total number of significant coefficients - void initializeCoefficients(int nc); - - Float_t* getCoefficients() const - { - return mCoefficients; - } - - /// Reads single line from the stream, skipping empty and commented lines. EOF is not expected - static void readLine(TString& str, FILE* stream); - - Float_t Eval(const Float_t* par) const; - - Double_t Eval(const Double_t* par) const; - -protected: - Int_t mNumberOfCoefficients; ///< total number of coeeficients - Int_t mNumberOfRows; ///< number of significant rows in the 3D coeffs matrix - Int_t mNumberOfColumns; ///< max number of significant cols in the 3D coeffs matrix - Int_t mNumberOfElementsBound2D; ///< number of elements (mNumberOfRows*mNumberOfColumns) to store for the 2D boundary - Float_t mPrecision; ///< requested precision - /// of significant coeffs - UShort_t* - mNumberOfColumnsAtRow; //[mNumberOfRows] number of sighificant columns (2nd dim) at each row of 3D coefs matrix - UShort_t* mColumnAtRowBeginning; //[mNumberOfRows] beginning of significant columns (2nd dim) for row in the 2D - // boundary matrix - UShort_t* mCoefficientBound2D0; //[mNumberOfElementsBound2D] 2D matrix defining the boundary of significance for 3D - // coeffs.matrix - //(Ncoefs for col/row) - UShort_t* mCoefficientBound2D1; //[mNumberOfElementsBound2D] 2D matrix defining the start beginning of significant - // coeffs for col/row - Float_t* mCoefficients; //[mNumberOfCoefficients] array of Chebyshev coefficients - - Float_t* mTemporaryCoefficients2D; //[mNumberOfColumns] temp. coeffs for 2d summation - Float_t* mTemporaryCoefficients1D; //[mNumberOfRows] temp. coeffs for 1d summation - - ClassDef(AliceO2::MathUtils::Chebyshev3DCalc, 2) // Class for interpolation of 3D->1 function by Chebyshev parametrization -}; - -/// Evaluates 1D Chebyshev parameterization. x is the argument mapped to [-1:1] interval -inline Float_t Chebyshev3DCalc::chebyshevEvaluation1D(Float_t x, const Float_t* array, int ncf) -{ - if (ncf <= 0) { - return 0; - } - - Float_t b0, b1, b2, x2 = x + x; - b0 = array[--ncf]; - b1 = b2 = 0; - - for (int i = ncf; i--;) { - b2 = b1; - b1 = b0; - b0 = array[i] + x2 * b1 - b2; - } - return b0 - x * b1; -} - -/// Evaluates Chebyshev parameterization for 3D function. -/// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval -inline Float_t Chebyshev3DCalc::Eval(const Float_t* par) const -{ - if (!mNumberOfRows) { - return 0.; - } - int ncfRC; - for (int id0 = mNumberOfRows; id0--;) { - int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row - int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix - for (int id1 = nCLoc; id1--;) { - int id = id1 + col0; - mTemporaryCoefficients2D[id1] = (ncfRC = mCoefficientBound2D0[id]) - ? chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC) - : 0.0; - } - mTemporaryCoefficients1D[id0] = nCLoc > 0 ? chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc) : 0.0; - } - return chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); -} - -/// Evaluates Chebyshev parameterization for 3D function. -/// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval -inline Double_t Chebyshev3DCalc::Eval(const Double_t* par) const -{ - if (!mNumberOfRows) { - return 0.; - } - int ncfRC; - for (int id0 = mNumberOfRows; id0--;) { - int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row - int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix - for (int id1 = nCLoc; id1--;) { - int id = id1 + col0; - mTemporaryCoefficients2D[id1] = (ncfRC = mCoefficientBound2D0[id]) - ? chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC) - : 0.0; - } - mTemporaryCoefficients1D[id0] = nCLoc > 0 ? chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc) : 0.0; - } - return chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); -} -} -} - -#endif diff --git a/MathUtils/MathUtilsLinkDef.h b/MathUtils/MathUtilsLinkDef.h deleted file mode 100644 index 62394e7fa058d..0000000000000 --- a/MathUtils/MathUtilsLinkDef.h +++ /dev/null @@ -1,10 +0,0 @@ - -#ifdef __CINT__ -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#pragma link C++ class AliceO2::MathUtils::Chebyshev3D+; -#pragma link C++ class AliceO2::MathUtils::Chebyshev3DCalc+; - -#endif From ef8b4fd45f6082cbf906655ad9e9127165e82f6a Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 15:57:30 +0200 Subject: [PATCH 085/135] Re-arrange the repository apply the new structure to the MathUtils --- MathUtils/include/Chebyshev3D.h | 401 +++++++++++ MathUtils/include/Chebyshev3DCalc.h | 244 +++++++ MathUtils/src/Chebyshev3D.cxx | 1042 +++++++++++++++++++++++++++ MathUtils/src/Chebyshev3DCalc.cxx | 528 ++++++++++++++ MathUtils/src/MathUtilsLinkDef.h | 10 + 5 files changed, 2225 insertions(+) create mode 100644 MathUtils/include/Chebyshev3D.h create mode 100644 MathUtils/include/Chebyshev3DCalc.h create mode 100644 MathUtils/src/Chebyshev3D.cxx create mode 100644 MathUtils/src/Chebyshev3DCalc.cxx create mode 100644 MathUtils/src/MathUtilsLinkDef.h diff --git a/MathUtils/include/Chebyshev3D.h b/MathUtils/include/Chebyshev3D.h new file mode 100644 index 0000000000000..acee048aa7989 --- /dev/null +++ b/MathUtils/include/Chebyshev3D.h @@ -0,0 +1,401 @@ +/// \file Cheb3D.h +/// \brief Definition of the Cheb3D class +/// \author ruben.shahoyan@cern.ch 09/09/2006 + +#ifndef ALICEO2_MATHUTILS_CHEBYSHEV3D_H_ +#define ALICEO2_MATHUTILS_CHEBYSHEV3D_H_ + +#include // for TNamed +#include // for TObjArray +#include // for FILE, stdout +#include "Chebyshev3DCalc.h" // for Chebyshev3DCalc, etc +#include "Rtypes.h" // for Float_t, Int_t, Double_t, Bool_t, etc +#include "TString.h" // for TString +class FairLogger; // lines 20-20 +class TH1; // lines 15-15 +class TMethodCall; // lines 16-16 + + +namespace AliceO2 { +namespace MathUtils { + +/// Chebyshev3D produces the interpolation of the user 3D->NDimOut arbitrary function supplied in +/// "void (*fcn)(float* inp,float* out)" format either in a separate macro file or as a function pointer. Only +/// coefficients needed to guarantee the requested precision are kept. The user-callable methods are: +/// To create the interpolation use: +/// Cheb3D(const char* funName, // name of the file with user function or +/// Cheb3D(void (*ptr)(float*,float*) // pointer on the user function +/// \param Int_t DimOut dimensionality of the function's output +/// \param Float_t *bmin lower 3D bounds of interpolation domain +/// \param Float_t *bmax upper 3D bounds of interpolation domain +/// \param Int_t *npoints number of points in each of 3 input dimension, defining the interpolation grid +/// \param Float_t prec=1E-6); requested max.absolute difference between the interpolation and any point on grid +/// To test obtained parameterization use the method TH1* TestRMS(int idim,int npoints = 1000,TH1* histo=0); +/// it will compare the user output of the user function and interpolation for idim-th output dimension and +/// fill the difference in the supplied histogram. If no histogram is supplied, it will be created. +/// To save the interpolation data: saveData(const char* filename, Bool_t append ) write text file with data. +/// If append is kTRUE and the output file already exists, data will be added in the end of the file. +/// Alternatively, saveData(FILE* stream) will write the data to already existing stream. +/// To read back already stored interpolation use either the constructor Chebyshev3D(const char* inpFile); +/// or the default constructor Chebyshev3D() followed by Chebyshev3D::loadData(const char* inpFile); +/// To compute the interpolation use Eval(float* par,float *res) method, with par being 3D vector of arguments +/// (inside the validity region) and res is the array of DimOut elements for the output. +/// If only one component (say, idim-th) of the output is needed, use faster Float_t Eval(Float_t *par,int idim) method +/// void Print(option="") will print the name, the ranges of validity and the absolute precision of the +/// parameterization. Option "l" will also print the information about the number of coefficients for each output +/// dimension. +/// NOTE: during the evaluation no check is done for parameter vector being outside the interpolation region. +/// If there is such a risk, use Bool_t isInside(float *par) method. Chebyshev parameterization is not +/// good for extrapolation! +/// For the properties of Chebyshev parameterization see: +/// H.Wind, CERN EP Internal Report, 81-12/Rev. +class Chebyshev3D : public TNamed { +public: + + Chebyshev3D(); + Chebyshev3D(const Chebyshev3D& src); + Chebyshev3D(const char* inpFile); + Chebyshev3D(FILE* stream); + +#ifdef _INC_CREATION_Chebyshev3D_ + /// Construct the parameterization for the function + /// \param funName : name of the file containing the function: void funName(Float_t * inp,Float_t * out) + /// \param DimOut : dimension of the vector computed by the user function + /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined + /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined + /// \param npoints : array of 3 elements with the number of points to compute in each of 3 dimension + /// \param prec : max allowed absolute difference between the user function and computed parameterization on the + /// requested grid, common for all 1D components + /// \param precD : optional precison per component + Chebyshev3D(const char* funName, Int_t dimOut, const Float_t* bmin, const Float_t* bmax, const Int_t* npoints, + Float_t prec = 1E-6, const Float_t* precD=0); + /// Construct the parameterization for the function + /// \param ptr : pointer on the function: void fun(Float_t * inp,Float_t * out) + /// \param DimOut : dimension of the vector computed by the user function + /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined + /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined + /// \param npoints : array of 3 elements with the number of points to compute in each of 3 dimension + /// \param prec : max allowed absolute difference between the user function and computed parameterization on the + /// requested grid, common for all 1D components + /// \param precD : optional precison per component + Chebyshev3D(void (*ptr)(float*, float*), Int_t dimOut, const Float_t* bmin, const Float_t* bmax, const Int_t* npoints, + Float_t prec = 1E-6, const Float_t* precD=0); + /// Construct very economic parameterization for the function + /// \param ptr : pointer on the function: void fun(Float_t * inp,Float_t * out) + /// \param DimOut : dimension of the vector computed by the user function + /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined + /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined + /// \param npX : array of 3 elements with the number of points to compute in each dimension for 1st component + /// \param npY : array of 3 elements with the number of points to compute in each dimension for 2nd component + /// \param npZ : array of 3 elements with the number of points to compute in each dimension for 3d component + /// \param prec : max allowed absolute difference between the user function and computed parameterization on the + /// requested grid, common for all 1D components + /// \param precD : optional precison per component + Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, + const Int_t* npX, const Int_t* npY, const Int_t* npZ, + Float_t prec = 1E-6, const Float_t* precD=0); + /// Construct very economic parameterization for the function with automatic calculation of the root's grid + /// \param ptr : pointer on the function: void fun(Float_t * inp,Float_t * out) + /// \param DimOut : dimension of the vector computed by the user function + /// \param bmin : array of 3 elements with the lower boundaries of the region where the function is defined + /// \param bmax : array of 3 elements with the upper boundaries of the region where the function is defined + /// \param prec : max allowed absolute difference between the user function and computed parameterization on the + /// \param requested grid, common for all 1D components + /// \param precD : optional precison per component + Chebyshev3D(void (*ptr)(float*, float*), int DimOut, const Float_t* bmin, const Float_t* bmax, Float_t prec = 1E-6, + Bool_t run = kTRUE, const Float_t* precD=0); +#endif + + ~Chebyshev3D() + { + Clear(); + } + + Chebyshev3D& operator=(const Chebyshev3D& rhs); + void Eval(const Float_t* par, Float_t* res); + Float_t Eval(const Float_t* par, int idim); + void Eval(const Double_t* par, Double_t* res); + Double_t Eval(const Double_t* par, int idim); + + void evaluateDerivative(int dimd, const Float_t* par, Float_t* res); + void evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, Float_t* res); + Float_t evaluateDerivative(int dimd, const Float_t* par, int idim); + Float_t evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, int idim); + void evaluateDerivative3D(const Float_t* par, Float_t dbdr[3][3]); + void evaluateDerivative3D2(const Float_t* par, Float_t dbdrdr[3][3][3]); + void Print(const Option_t* opt = "") const; + Bool_t isInside(const Float_t* par) const; + Bool_t isInside(const Double_t* par) const; + + Chebyshev3DCalc* getChebyshevCalc(int i) const + { + return (Chebyshev3DCalc*)mChebyshevParameter.UncheckedAt(i); + } + + Float_t getBoundMin(int i) const + { + return mMinBoundaries[i]; + } + + Float_t getBoundMax(int i) const + { + return mMaxBoundaries[i]; + } + + Float_t* getBoundMin() const + { + return (float*)mMinBoundaries; + } + + Float_t* getBoundMax() const + { + return (float*)mMaxBoundaries; + } + + Float_t getPrecision() const + { + return mPrecision; + } + + void shiftBound(int id, float dif); + + void loadData(const char* inpFile); + void loadData(FILE* stream); + +#ifdef _INC_CREATION_Chebyshev3D_ + void invertSign(); + int* getNcNeeded(float xyz[3], int dimVar, float mn, float mx, float prec, Int_t npCheck = 30); + void estimateNumberOfPoints(float prec, int gridBC[3][3], Int_t npd1 = 30, Int_t npd2 = 30, Int_t npd3 = 30); + void saveData(const char* outfile, Bool_t append = kFALSE) const; + void saveData(FILE* stream = stdout) const; + + void setuserFunction(const char* name); + void setuserFunction(void (*ptr)(float*, float*)); + void evaluateUserFunction(const Float_t* x, Float_t* res); + TH1* TestRMS(int idim, int npoints = 1000, TH1* histo = 0); + static Int_t calculateChebyshevCoefficients(const Float_t* funval, int np, Float_t* outCoefs, Float_t prec = -1); +#endif + +protected: + void Clear(const Option_t* option = ""); + void setDimOut(const int d, const float* prec=0); + void prepareBoundaries(const Float_t* bmin, const Float_t* bmax); + +#ifdef _INC_CREATION_Chebyshev3D_ + void evaluateUserFunction(); + void defineGrid(const Int_t* npoints); + Int_t chebyshevFit(); // fit all output dimensions + Int_t chebyshevFit(int dmOut); + void setPrecision(float prec) + { + mPrecision = prec; + } +#endif + + Float_t mapToInternal(Float_t x, Int_t d) const; // map x to [-1:1] + Float_t mapToExternal(Float_t x, Int_t d) const + { + return x / mBoundaryMappingScale[d] + mBoundaryMappingOffset[d]; + } // map from [-1:1] to x + Double_t mapToInternal(Double_t x, Int_t d) const; // map x to [-1:1] + Double_t mapToExternal(Double_t x, Int_t d) const + { + return x / mBoundaryMappingScale[d] + mBoundaryMappingOffset[d]; + } // map from [-1:1] to x + +protected: + Int_t mOutputArrayDimension; ///< dimension of the ouput array + Float_t mPrecision; ///< requested precision + Float_t mMinBoundaries[3]; ///< min boundaries in each dimension + Float_t mMaxBoundaries[3]; ///< max boundaries in each dimension + Float_t mBoundaryMappingScale[3]; ///< scale for boundary mapping to [-1:1] interval + Float_t mBoundaryMappingOffset[3]; ///< offset for boundary mapping to [-1:1] interval + TObjArray mChebyshevParameter; ///< Chebyshev parameterization for each output dimension + + Int_t mMaxCoefficients; //! max possible number of coefs per parameterization + Int_t mNumberOfPoints[3]; //! number of used points in each dimension + Float_t mTemporaryCoefficient[3]; //! temporary vector for coefs calculation + Float_t* mTemporaryUserResults; //! temporary vector for results of user function calculation + Float_t* mTemporaryChebyshevGrid; //! temporary buffer for Chebyshef roots grid + Int_t mTemporaryChebyshevGridOffs[3]; //! start of grid for each dimension + TString mUserFunctionName; //! name of user macro containing the function of "void (*fcn)(float*,float*)" format + TMethodCall* mUserMacro; //! Pointer to MethodCall for function from user macro + FairLogger* mLogger; //! + + static const Float_t sMinimumPrecision; ///< minimum precision allowed + + ClassDef(AliceO2::MathUtils::Chebyshev3D, 2) // Chebyshev parametrization for 3D->N function +}; + +/// Checks if the point is inside of the fitted box +inline Bool_t Chebyshev3D::isInside(const Float_t* par) const +{ + for (int i = 3; i--;) { + if (mMinBoundaries[i] > par[i] || par[i] > mMaxBoundaries[i]) { + return kFALSE; + } + } + return kTRUE; +} + +/// Checks if the point is inside of the fitted box +inline Bool_t Chebyshev3D::isInside(const Double_t* par) const +{ + for (int i = 3; i--;) { + if (mMinBoundaries[i] > par[i] || par[i] > mMaxBoundaries[i]) { + return kFALSE; + } + } + return kTRUE; +} + +/// Evaluates Chebyshev parameterization for 3d->DimOut function +inline void Chebyshev3D::Eval(const Float_t* par, Float_t* res) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + for (int i = mOutputArrayDimension; i--;) { + res[i] = getChebyshevCalc(i)->Eval(mTemporaryCoefficient); + } +} + +/// Evaluates Chebyshev parameterization for 3d->DimOut function +inline void Chebyshev3D::Eval(const Double_t* par, Double_t* res) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + for (int i = mOutputArrayDimension; i--;) { + res[i] = getChebyshevCalc(i)->Eval(mTemporaryCoefficient); + } +} + +/// Evaluates Chebyshev parameterization for idim-th output dimension of 3d->DimOut function +inline Double_t Chebyshev3D::Eval(const Double_t* par, int idim) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + return getChebyshevCalc(idim)->Eval(mTemporaryCoefficient); +} + +/// Evaluates Chebyshev parameterization for idim-th output dimension of 3d->DimOut function +inline Float_t Chebyshev3D::Eval(const Float_t* par, int idim) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + return getChebyshevCalc(idim)->Eval(mTemporaryCoefficient); +} + +/// Returns the gradient matrix +inline void Chebyshev3D::evaluateDerivative3D(const Float_t* par, Float_t dbdr[3][3]) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + for (int ib = 3; ib--;) { + for (int id = 3; id--;) { + dbdr[ib][id] = getChebyshevCalc(ib)->evaluateDerivative(id, mTemporaryCoefficient) * mBoundaryMappingScale[id]; + } + } +} + +/// Returns the gradient matrix +inline void Chebyshev3D::evaluateDerivative3D2(const Float_t* par, Float_t dbdrdr[3][3][3]) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + for (int ib = 3; ib--;) { + for (int id = 3; id--;) { + for (int id1 = 3; id1--;) { + dbdrdr[ib][id][id1] = getChebyshevCalc(ib)->evaluateDerivative2(id, id1, mTemporaryCoefficient) * + mBoundaryMappingScale[id] * mBoundaryMappingScale[id1]; + } + } + } +} + +// Evaluates Chebyshev parameterization derivative for 3d->DimOut function +inline void Chebyshev3D::evaluateDerivative(int dimd, const Float_t* par, Float_t* res) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + for (int i = mOutputArrayDimension; i--;) { + res[i] = getChebyshevCalc(i)->evaluateDerivative(dimd, mTemporaryCoefficient) * mBoundaryMappingScale[dimd]; + }; +} + +// Evaluates Chebyshev parameterization 2nd derivative over dimd1 and dimd2 dimensions for 3d->DimOut function +inline void Chebyshev3D::evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, Float_t* res) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + for (int i = mOutputArrayDimension; i--;) { + res[i] = getChebyshevCalc(i)->evaluateDerivative2(dimd1, dimd2, mTemporaryCoefficient) * + mBoundaryMappingScale[dimd1] * mBoundaryMappingScale[dimd2]; + } +} + +/// Evaluates Chebyshev parameterization derivative over dimd dimention for idim-th output dimension of 3d->DimOut +/// function +inline Float_t Chebyshev3D::evaluateDerivative(int dimd, const Float_t* par, int idim) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + return getChebyshevCalc(idim)->evaluateDerivative(dimd, mTemporaryCoefficient) * mBoundaryMappingScale[dimd]; +} + +/// Evaluates Chebyshev parameterization 2ns derivative over dimd1 and dimd2 dimensions for idim-th output dimension of +/// 3d->DimOut function +inline Float_t Chebyshev3D::evaluateDerivative2(int dimd1, int dimd2, const Float_t* par, int idim) +{ + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mapToInternal(par[i], i); + } + return getChebyshevCalc(idim)->evaluateDerivative2(dimd1, dimd2, mTemporaryCoefficient) * + mBoundaryMappingScale[dimd1] * mBoundaryMappingScale[dimd2]; +} + +/// Μaps x to [-1:1] +inline Float_t Chebyshev3D::mapToInternal(Float_t x, Int_t d) const +{ +#ifdef _BRING_TO_BOUNDARY_ + T res = (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; + if (res < -1) { + return -1; + } + if (res > 1) { + return 1; + } + return res; +#else + return (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; +#endif +} + +/// Μaps x to [-1:1] +inline Double_t Chebyshev3D::mapToInternal(Double_t x, Int_t d) const +{ +#ifdef _BRING_TO_BOUNDARY_ + T res = (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; + if (res < -1) { + return -1; + } + if (res > 1) { + return 1; + } + return res; +#else + return (x - mBoundaryMappingOffset[d]) * mBoundaryMappingScale[d]; +#endif +} +} +} + +#endif diff --git a/MathUtils/include/Chebyshev3DCalc.h b/MathUtils/include/Chebyshev3DCalc.h new file mode 100644 index 0000000000000..b1f146a0605d3 --- /dev/null +++ b/MathUtils/include/Chebyshev3DCalc.h @@ -0,0 +1,244 @@ +/// \file Cheb3DCalc.h +/// \brief Definition of the Cheb3DCalc class +/// \author ruben.shahoyan@cern.ch 09/09/2006 + +#ifndef ALICEO2_MATHUTILS_CHEBYSHEV3DCALC_H_ +#define ALICEO2_MATHUTILS_CHEBYSHEV3DCALC_H_ + +#include // for TNamed +#include // for FILE, stdout +#include "Rtypes.h" // for Float_t, UShort_t, Int_t, Double_t, etc +class TString; + + +// To decrease the compilable code size comment this define. This will exclude the routines +// used for the calculation and saving of the coefficients. +#define _INC_CREATION_Chebyshev3D_ + +// When _BRING_TO_BOUNDARY_ is defined, the point outside of the fitted folume is assumed to be on the surface +// #define _BRING_TO_BOUNDARY_ + +namespace AliceO2 { +namespace MathUtils { +class Chebyshev3DCalc : public TNamed { + +public: + + + + /// Default constructor + Chebyshev3DCalc(); + /// Copy constructor + Chebyshev3DCalc(const Chebyshev3DCalc& src); + /// Constructor from coefficients stream + Chebyshev3DCalc(FILE* stream); + /// Default destructor + ~Chebyshev3DCalc() + { + Clear(); + } + + /// Assignment operator + Chebyshev3DCalc& operator=(const Chebyshev3DCalc& rhs); + + /// Prints info + void Print(const Option_t* opt = "") const; + + /// Loads coefficients from the stream + void loadData(FILE* stream); + + /// Evaluates Chebyshev parameterization derivative in given dimension for 3D function. + /// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval + Float_t evaluateDerivative(int dim, const Float_t* par) const; + + /// Evaluates Chebyshev parameterization 2n derivative in given dimensions for 3D function. + /// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval + Float_t evaluateDerivative2(int dim1, int dim2, const Float_t* par) const; + +#ifdef _INC_CREATION_Chebyshev3D_ + /// Writes coefficients data to output text file, optionally appending on the end of existing file + void saveData(const char* outfile, Bool_t append = kFALSE) const; + + // Writes coefficients data to existing output stream + // Note: mNumberOfColumns, mNumberOfElementsBound2D and mColumnAtRowBeginning are not stored, will be computed on fly + // during the loading of this file + void saveData(FILE* stream = stdout) const; +#endif + + /// Sets maximum number of significant rows in the coefficients matrix + void initializeRows(int nr); + + /// Sets maximum number of significant columns in the coefficients matrix + void initializeColumns(int nc); + + Int_t getNumberOfCoefficients() const + { + return mNumberOfCoefficients; + } + + Int_t getNumberOfColumns() const + { + return (Int_t)mNumberOfColumns; + } + + Int_t getNumberOfRows() const + { + return (Int_t)mNumberOfRows; + } + + Int_t getNumberOfElementsBound2D() const + { + return (Int_t)mNumberOfElementsBound2D; + } + + Int_t getMaxColumnsAtRow() const; + + UShort_t* getNumberOfColumnsAtRow() const + { + return mNumberOfColumnsAtRow; + } + + UShort_t* getColAtRowBg() const + { + return mColumnAtRowBeginning; + } + + Float_t getPrecision() const + { + return mPrecision; + } + + /// Sets requested precision + void setPrecision(Float_t prc=1e-6) + { + mPrecision = prc; + } + + /// Sets maximum number of significant coefficients for given row/column of coefficients 3D matrix + void initializeElementBound2D(int ne); + + UShort_t* getCoefficientBound2D0() const + { + return mCoefficientBound2D0; + } + + UShort_t* getCoefficientBound2D1() const + { + return mCoefficientBound2D1; + } + /// Deletes all dynamically allocated structures + void Clear(const Option_t* option = ""); + + static Float_t chebyshevEvaluation1D(Float_t x, const Float_t* array, int ncf); + + /// Evaluates 1D Chebyshev parameterization's derivative. x is the argument mapped to [-1:1] interval + static Float_t chebyshevEvaluation1Derivative(Float_t x, const Float_t* array, int ncf); + + /// Evaluates 1D Chebyshev parameterization's 2nd derivative. x is the argument mapped to [-1:1] interval + static Float_t chebyshevEvaluation1Derivative2(Float_t x, const Float_t* array, int ncf); + + /// Sets total number of significant coefficients + void initializeCoefficients(int nc); + + Float_t* getCoefficients() const + { + return mCoefficients; + } + + /// Reads single line from the stream, skipping empty and commented lines. EOF is not expected + static void readLine(TString& str, FILE* stream); + + Float_t Eval(const Float_t* par) const; + + Double_t Eval(const Double_t* par) const; + +protected: + Int_t mNumberOfCoefficients; ///< total number of coeeficients + Int_t mNumberOfRows; ///< number of significant rows in the 3D coeffs matrix + Int_t mNumberOfColumns; ///< max number of significant cols in the 3D coeffs matrix + Int_t mNumberOfElementsBound2D; ///< number of elements (mNumberOfRows*mNumberOfColumns) to store for the 2D boundary + Float_t mPrecision; ///< requested precision + /// of significant coeffs + UShort_t* + mNumberOfColumnsAtRow; //[mNumberOfRows] number of sighificant columns (2nd dim) at each row of 3D coefs matrix + UShort_t* mColumnAtRowBeginning; //[mNumberOfRows] beginning of significant columns (2nd dim) for row in the 2D + // boundary matrix + UShort_t* mCoefficientBound2D0; //[mNumberOfElementsBound2D] 2D matrix defining the boundary of significance for 3D + // coeffs.matrix + //(Ncoefs for col/row) + UShort_t* mCoefficientBound2D1; //[mNumberOfElementsBound2D] 2D matrix defining the start beginning of significant + // coeffs for col/row + Float_t* mCoefficients; //[mNumberOfCoefficients] array of Chebyshev coefficients + + Float_t* mTemporaryCoefficients2D; //[mNumberOfColumns] temp. coeffs for 2d summation + Float_t* mTemporaryCoefficients1D; //[mNumberOfRows] temp. coeffs for 1d summation + + ClassDef(AliceO2::MathUtils::Chebyshev3DCalc, 2) // Class for interpolation of 3D->1 function by Chebyshev parametrization +}; + +/// Evaluates 1D Chebyshev parameterization. x is the argument mapped to [-1:1] interval +inline Float_t Chebyshev3DCalc::chebyshevEvaluation1D(Float_t x, const Float_t* array, int ncf) +{ + if (ncf <= 0) { + return 0; + } + + Float_t b0, b1, b2, x2 = x + x; + b0 = array[--ncf]; + b1 = b2 = 0; + + for (int i = ncf; i--;) { + b2 = b1; + b1 = b0; + b0 = array[i] + x2 * b1 - b2; + } + return b0 - x * b1; +} + +/// Evaluates Chebyshev parameterization for 3D function. +/// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval +inline Float_t Chebyshev3DCalc::Eval(const Float_t* par) const +{ + if (!mNumberOfRows) { + return 0.; + } + int ncfRC; + for (int id0 = mNumberOfRows; id0--;) { + int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row + int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix + for (int id1 = nCLoc; id1--;) { + int id = id1 + col0; + mTemporaryCoefficients2D[id1] = (ncfRC = mCoefficientBound2D0[id]) + ? chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC) + : 0.0; + } + mTemporaryCoefficients1D[id0] = nCLoc > 0 ? chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc) : 0.0; + } + return chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); +} + +/// Evaluates Chebyshev parameterization for 3D function. +/// VERY IMPORTANT: par must contain the function arguments ALREADY MAPPED to [-1:1] interval +inline Double_t Chebyshev3DCalc::Eval(const Double_t* par) const +{ + if (!mNumberOfRows) { + return 0.; + } + int ncfRC; + for (int id0 = mNumberOfRows; id0--;) { + int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row + int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix + for (int id1 = nCLoc; id1--;) { + int id = id1 + col0; + mTemporaryCoefficients2D[id1] = (ncfRC = mCoefficientBound2D0[id]) + ? chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC) + : 0.0; + } + mTemporaryCoefficients1D[id0] = nCLoc > 0 ? chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc) : 0.0; + } + return chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); +} +} +} + +#endif diff --git a/MathUtils/src/Chebyshev3D.cxx b/MathUtils/src/Chebyshev3D.cxx new file mode 100644 index 0000000000000..02e9224c7c89b --- /dev/null +++ b/MathUtils/src/Chebyshev3D.cxx @@ -0,0 +1,1042 @@ +/// \file Cheb3D.cxx +/// \brief Implementation of the Cheb3D class +/// \author ruben.shahoyan@cern.ch 09/09/2006 + +#include "Chebyshev3D.h" +#include // for TH1D, TH1 +#include // for Cos, Pi +#include // for TMethodCall +#include // for TROOT, gROOT +#include // for TRandom, gRandom +#include // for TString +#include // for TSystem, gSystem +#include // for printf, fprintf, FILE, fclose, fflush, etc +#include "Chebyshev3DCalc.h" // for Chebyshev3DCalc, etc +#include "FairLogger.h" // for FairLogger, MESSAGE_ORIGIN +#include "TMathBase.h" // for Max, Abs +#include "TNamed.h" // for TNamed +#include "TObjArray.h" // for TObjArray + +using namespace AliceO2::MathUtils; + +ClassImp(Chebyshev3D) + +const Float_t Chebyshev3D::sMinimumPrecision = 1.e-12f; + +Chebyshev3D::Chebyshev3D() + : mOutputArrayDimension(0), + mPrecision(sMinimumPrecision), + mChebyshevParameter(1), + mMaxCoefficients(0), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(""), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + // Default constructor + for (int i = 3; i--;) { + mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = + mTemporaryCoefficient[i] = 0; + mNumberOfPoints[i] = 0; + mTemporaryChebyshevGridOffs[i] = 0; + } +} + +Chebyshev3D::Chebyshev3D(const Chebyshev3D& src) + : TNamed(src), + mOutputArrayDimension(src.mOutputArrayDimension), + mPrecision(src.mPrecision), + mChebyshevParameter(1), + mMaxCoefficients(src.mMaxCoefficients), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(src.mUserFunctionName), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + // read coefs from text file + for (int i = 3; i--;) { + mMinBoundaries[i] = src.mMinBoundaries[i]; + mMaxBoundaries[i] = src.mMaxBoundaries[i]; + mBoundaryMappingScale[i] = src.mBoundaryMappingScale[i]; + mBoundaryMappingOffset[i] = src.mBoundaryMappingOffset[i]; + mNumberOfPoints[i] = src.mNumberOfPoints[i]; + mTemporaryChebyshevGridOffs[i] = src.mTemporaryChebyshevGridOffs[i]; + mTemporaryCoefficient[i] = 0; + } + for (int i = 0; i < mOutputArrayDimension; i++) { + Chebyshev3DCalc* cbc = src.getChebyshevCalc(i); + if (cbc) { + mChebyshevParameter.AddAtAndExpand(new Chebyshev3DCalc(*cbc), i); + } + } +} + +Chebyshev3D::Chebyshev3D(const char* inpFile) + : mOutputArrayDimension(0), + mPrecision(0), + mChebyshevParameter(1), + mMaxCoefficients(0), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(""), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + // read coefs from text file + for (int i = 3; i--;) { + mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; + mNumberOfPoints[i] = 0; + mTemporaryChebyshevGridOffs[i] = 0; + mTemporaryCoefficient[i] = 0; + } + loadData(inpFile); +} + +Chebyshev3D::Chebyshev3D(FILE* stream) + : mOutputArrayDimension(0), + mPrecision(0), + mChebyshevParameter(1), + mMaxCoefficients(0), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(""), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + // read coefs from stream + for (int i = 3; i--;) { + mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; + mNumberOfPoints[i] = 0; + mTemporaryChebyshevGridOffs[i] = 0; + mTemporaryCoefficient[i] = 0; + } + loadData(stream); +} + +#ifdef _INC_CREATION_Chebyshev3D_ +Chebyshev3D::Chebyshev3D(const char* funName, int dimOut, const Float_t* bmin, const Float_t* bmax, + const Int_t* npoints, Float_t prec, const Float_t* precD) + : TNamed(funName, funName), + mOutputArrayDimension(0), + mPrecision(TMath::Max(sMinimumPrecision, prec)), + mChebyshevParameter(1), + mMaxCoefficients(0), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(""), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + if (dimOut < 1) { + Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); + exit(1); + } + for (int i = 3; i--;) { + mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; + mNumberOfPoints[i] = 0; + mTemporaryChebyshevGridOffs[i] = 0.; + mTemporaryCoefficient[i] = 0; + } + setDimOut(dimOut,precD); + prepareBoundaries(bmin, bmax); + defineGrid(npoints); + setuserFunction(funName); + chebyshevFit(); +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +Chebyshev3D::Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, + const Int_t* npoints, Float_t prec, const Float_t* precD) + : mOutputArrayDimension(0), + mPrecision(TMath::Max(sMinimumPrecision, prec)), + mChebyshevParameter(1), + mMaxCoefficients(0), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(""), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + if (dimOut < 1) { + Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); + exit(1); + } + for (int i = 3; i--;) { + mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; + mNumberOfPoints[i] = 0; + mTemporaryChebyshevGridOffs[i] = 0.; + mTemporaryCoefficient[i] = 0; + } + setDimOut(dimOut,precD); + prepareBoundaries(bmin, bmax); + defineGrid(npoints); + setuserFunction(ptr); + chebyshevFit(); +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +Chebyshev3D::Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, + const Int_t* npX, const Int_t* npY, const Int_t* npZ, Float_t prec, const Float_t* precD) + : mOutputArrayDimension(0), + mPrecision(TMath::Max(sMinimumPrecision, prec)), + mChebyshevParameter(1), + mMaxCoefficients(0), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(""), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + if (dimOut < 1) { + Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); + exit(1); + } + for (int i = 3; i--;) { + mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; + mNumberOfPoints[i] = 0; + mTemporaryChebyshevGridOffs[i] = 0.; + mTemporaryCoefficient[i] = 0; + } + setDimOut(dimOut,precD); + prepareBoundaries(bmin, bmax); + setuserFunction(ptr); + + defineGrid(npX); + chebyshevFit(0); + defineGrid(npY); + chebyshevFit(1); + defineGrid(npZ); + chebyshevFit(2); +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +Chebyshev3D::Chebyshev3D(void (*ptr)(float*, float*), int dimOut, const Float_t* bmin, const Float_t* bmax, + Float_t prec, Bool_t run, const Float_t* precD) + : mOutputArrayDimension(0), + mPrecision(TMath::Max(sMinimumPrecision, prec)), + mChebyshevParameter(1), + mMaxCoefficients(0), + mTemporaryUserResults(0), + mTemporaryChebyshevGrid(0), + mUserFunctionName(""), + mUserMacro(0), + mLogger(FairLogger::GetLogger()) +{ + if (dimOut != 3) { + Error("Chebyshev3D", "This constructor works only for 3D fits, %dD fit was requested\n", mOutputArrayDimension); + exit(1); + } + if (dimOut < 1) { + Error("Chebyshev3D", "Requested output dimension is %d\nStop\n", mOutputArrayDimension); + exit(1); + } + for (int i = 3; i--;) { + mMinBoundaries[i] = mMaxBoundaries[i] = mBoundaryMappingScale[i] = mBoundaryMappingOffset[i] = 0; + mNumberOfPoints[i] = 0; + mTemporaryChebyshevGridOffs[i] = 0.; + mTemporaryCoefficient[i] = 0; + } + setDimOut(dimOut, precD); + prepareBoundaries(bmin, bmax); + setuserFunction(ptr); + + if (run) { + int gridNC[3][3]; + estimateNumberOfPoints(prec, gridNC); + defineGrid(gridNC[0]); + chebyshevFit(0); + defineGrid(gridNC[1]); + chebyshevFit(1); + defineGrid(gridNC[2]); + chebyshevFit(2); + } +} +#endif + +Chebyshev3D& Chebyshev3D::operator=(const Chebyshev3D& rhs) +{ + // assignment operator + if (this != &rhs) { + Clear(); + mOutputArrayDimension = rhs.mOutputArrayDimension; + mPrecision = rhs.mPrecision; + mMaxCoefficients = rhs.mMaxCoefficients; + mUserFunctionName = rhs.mUserFunctionName; + mUserMacro = 0; + for (int i = 3; i--;) { + mMinBoundaries[i] = rhs.mMinBoundaries[i]; + mMaxBoundaries[i] = rhs.mMaxBoundaries[i]; + mBoundaryMappingScale[i] = rhs.mBoundaryMappingScale[i]; + mBoundaryMappingOffset[i] = rhs.mBoundaryMappingOffset[i]; + mNumberOfPoints[i] = rhs.mNumberOfPoints[i]; + } + for (int i = 0; i < mOutputArrayDimension; i++) { + Chebyshev3DCalc* cbc = rhs.getChebyshevCalc(i); + if (cbc) { + mChebyshevParameter.AddAtAndExpand(new Chebyshev3DCalc(*cbc), i); + } + } + } + return *this; +} + +void Chebyshev3D::Clear(const Option_t*) +{ + // clear all dynamic structures + if (mTemporaryUserResults) { + delete[] mTemporaryUserResults; + mTemporaryUserResults = 0; + } + if (mTemporaryChebyshevGrid) { + delete[] mTemporaryChebyshevGrid; + mTemporaryChebyshevGrid = 0; + } + if (mUserMacro) { + delete mUserMacro; + mUserMacro = 0; + } + mChebyshevParameter.SetOwner(kTRUE); + mChebyshevParameter.Delete(); +} + +void Chebyshev3D::Print(const Option_t* opt) const +{ + // print info + printf("%s: Chebyshev parameterization for 3D->%dD function. Precision: %e\n", GetName(), mOutputArrayDimension, + mPrecision); + printf("Region of validity: [%+.5e:%+.5e] [%+.5e:%+.5e] [%+.5e:%+.5e]\n", mMinBoundaries[0], mMaxBoundaries[0], + mMinBoundaries[1], mMaxBoundaries[1], mMinBoundaries[2], mMaxBoundaries[2]); + TString opts = opt; + opts.ToLower(); + if (opts.Contains("l")) { + for (int i = 0; i < mOutputArrayDimension; i++) { + printf("Output dimension %d:\n", i + 1); + getChebyshevCalc(i)->Print(); + } + } +} + +void Chebyshev3D::prepareBoundaries(const Float_t* bmin, const Float_t* bmax) +{ + // Set and check boundaries defined by user, prepare coefficients for their conversion to [-1:1] interval + for (int i = 3; i--;) { + mMinBoundaries[i] = bmin[i]; + mMaxBoundaries[i] = bmax[i]; + mBoundaryMappingScale[i] = bmax[i] - bmin[i]; + if (mBoundaryMappingScale[i] <= 0) { + mLogger->Fatal(MESSAGE_ORIGIN, "Boundaries for %d-th dimension are not increasing: %+.4e %+.4e\nStop\n", i, + mMinBoundaries[i], mMaxBoundaries[i]); + } + mBoundaryMappingOffset[i] = bmin[i] + mBoundaryMappingScale[i] / 2.0; + mBoundaryMappingScale[i] = 2. / mBoundaryMappingScale[i]; + } +} + +#ifdef _INC_CREATION_Chebyshev3D_ + +// Pointer on user function (faster altrnative to TMethodCall) +void (*gUsrFunChebyshev3D)(float*, float*); + +void Chebyshev3D::evaluateUserFunction() +{ + // call user supplied function + if (gUsrFunChebyshev3D) { + gUsrFunChebyshev3D(mTemporaryCoefficient, mTemporaryUserResults); + } + else { + mUserMacro->Execute(); + } +} + +void Chebyshev3D::setuserFunction(const char* name) +{ + // load user macro with function definition and compile it + gUsrFunChebyshev3D = 0; + mUserFunctionName = name; + gSystem->ExpandPathName(mUserFunctionName); + + if (mUserMacro) { + delete mUserMacro; + } + + TString tmpst = mUserFunctionName; + tmpst += "+"; // prepare filename to compile + + if (gROOT->LoadMacro(tmpst.Data())) { + Error("SetUsrFunction", "Failed to load user function from %s\nStop\n", name); + exit(1); + } + + mUserMacro = new TMethodCall(); + tmpst = tmpst.Data() + tmpst.Last('/') + 1; // Strip away any path preceding the macro file name + int dot = tmpst.Last('.'); + + if (dot > 0) { + tmpst.Resize(dot); + } + mUserMacro->InitWithPrototype(tmpst.Data(), "Float_t *,Float_t *"); + long args[2]; + args[0] = (long)mTemporaryCoefficient; + args[1] = (long)mTemporaryUserResults; + mUserMacro->SetParamPtrs(args); +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +void Chebyshev3D::setuserFunction(void (*ptr)(float*, float*)) +{ + // assign user training function + if (mUserMacro) { + delete mUserMacro; + } + mUserMacro = 0; + mUserFunctionName = ""; + gUsrFunChebyshev3D = ptr; +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +void Chebyshev3D::evaluateUserFunction(const Float_t* x, Float_t* res) +{ + // evaluate user function value + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = x[i]; + } + + if (gUsrFunChebyshev3D) { + gUsrFunChebyshev3D(mTemporaryCoefficient, mTemporaryUserResults); + } else { + mUserMacro->Execute(); + } + + for (int i = mOutputArrayDimension; i--;) { + res[i] = mTemporaryUserResults[i]; + } +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +Int_t Chebyshev3D::calculateChebyshevCoefficients(const Float_t* funval, int np, Float_t* outCoefs, Float_t prec) +{ + // Calculate Chebyshev coeffs using precomputed function values at np roots. + // If prec>0, estimate the highest coeff number providing the needed precision + double sm; // do summations in double to minimize the roundoff error + for (int ic = 0; ic < np; ic++) { // compute coeffs + sm = 0; + for (int ir = 0; ir < np; ir++) { + float rt = TMath::Cos(ic * (ir + 0.5) * TMath::Pi() / np); + sm += funval[ir] * rt; + } + outCoefs[ic] = Float_t(sm * ((ic == 0) ? 1. / np : 2. / np)); + } + + if (prec <= 0) { + return np; + } + + sm = 0; + int cfMax = 0; + for (cfMax = np; cfMax--;) { + sm += TMath::Abs(outCoefs[cfMax]); + if (sm >= prec) { + break; + } + } + if (++cfMax == 0) { + cfMax = 1; + } + return cfMax; +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +void Chebyshev3D::defineGrid(const Int_t* npoints) +{ + // prepare the grid of Chebyshev roots in each dimension + const int kMinPoints = 1; + int ntot = 0; + mMaxCoefficients = 1; + for (int id = 3; id--;) { + mNumberOfPoints[id] = npoints[id]; + if (mNumberOfPoints[id] < kMinPoints) { + Error("DefineGrid", "at %d-th dimension %d point is requested, at least %d is needed\nStop\n", id, + mNumberOfPoints[id], kMinPoints); + exit(1); + } + ntot += mNumberOfPoints[id]; + mMaxCoefficients *= mNumberOfPoints[id]; + } + printf("Computing Chebyshev nodes on [%2d/%2d/%2d] grid\n", npoints[0], npoints[1], npoints[2]); + if (mTemporaryChebyshevGrid) { + delete[] mTemporaryChebyshevGrid; + } + mTemporaryChebyshevGrid = new Float_t[ntot]; + + int curp = 0; + for (int id = 3; id--;) { + int np = mNumberOfPoints[id]; + mTemporaryChebyshevGridOffs[id] = curp; + for (int ip = 0; ip < np; ip++) { + Float_t x = TMath::Cos(TMath::Pi() * (ip + 0.5) / np); + mTemporaryChebyshevGrid[curp++] = mapToExternal(x, id); + } + } +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +Int_t Chebyshev3D::chebyshevFit() +{ + // prepare parameterization for all output dimensions + int ir = 0; + for (int i = mOutputArrayDimension; i--;) { + ir += chebyshevFit(i); + } + return ir; +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +Int_t Chebyshev3D::chebyshevFit(int dmOut) +{ + // prepare paramaterization of 3D function for dmOut-th dimension + int maxDim = 0; + for (int i = 0; i < 3; i++) { + if (maxDim < mNumberOfPoints[i]) { + maxDim = mNumberOfPoints[i]; + } + } + Float_t* fvals = new Float_t[mNumberOfPoints[0]]; + Float_t* tmpCoef3D = new Float_t[mNumberOfPoints[0] * mNumberOfPoints[1] * mNumberOfPoints[2]]; + Float_t* tmpCoef2D = new Float_t[mNumberOfPoints[0] * mNumberOfPoints[1]]; + Float_t* tmpCoef1D = new Float_t[maxDim]; + + // 1D Cheb.fit for 0-th dimension at current steps of remaining dimensions + int ncmax = 0; + + printf("Dim%d : 00.00%% Done", dmOut); + fflush(stdout); + Chebyshev3DCalc* cheb = getChebyshevCalc(dmOut); + + Float_t prec = cheb->getPrecision(); + if (prec= fracStep) { + frac = fr; + printf("\b\b\b\b\b\b\b\b\b\b\b"); + printf("%05.2f%% Done", fr * 100); + fflush(stdout); + } + } + int nc = calculateChebyshevCoefficients(fvals, mNumberOfPoints[0], tmpCoef1D, prec); + for (int id0 = mNumberOfPoints[0]; id0--;) { + tmpCoef2D[id1 + id0 * mNumberOfPoints[1]] = tmpCoef1D[id0]; + } + if (ncmax < nc) { + ncmax = nc; // max coefs to be kept in dim0 to guarantee needed precision + } + } + // once each 1d slice of given 2d slice is parametrized, parametrize the Cheb.coeffs + for (int id0 = mNumberOfPoints[0]; id0--;) { + calculateChebyshevCoefficients(tmpCoef2D + id0 * mNumberOfPoints[1], mNumberOfPoints[1], tmpCoef1D, -1); + for (int id1 = mNumberOfPoints[1]; id1--;) { + tmpCoef3D[id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1])] = tmpCoef1D[id1]; + } + } + } + // now fit the last dimensions Cheb.coefs + for (int id0 = mNumberOfPoints[0]; id0--;) { + for (int id1 = mNumberOfPoints[1]; id1--;) { + calculateChebyshevCoefficients(tmpCoef3D + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1]), + mNumberOfPoints[2], tmpCoef1D, -1); + for (int id2 = mNumberOfPoints[2]; id2--;) { + tmpCoef3D[id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1])] = tmpCoef1D[id2]; // store on place + } + } + } + + // now find 2D surface which separates significant coefficients of 3D matrix from nonsignificant ones (up to + // prec) + UShort_t* tmpCoefSurf = new UShort_t[mNumberOfPoints[0] * mNumberOfPoints[1]]; + for (int id0 = mNumberOfPoints[0]; id0--;) { + for (int id1 = mNumberOfPoints[1]; id1--;) { + tmpCoefSurf[id1 + id0 * mNumberOfPoints[1]] = 0; + } + } + Double_t resid = 0; + for (int id0 = mNumberOfPoints[0]; id0--;) { + for (int id1 = mNumberOfPoints[1]; id1--;) { + for (int id2 = mNumberOfPoints[2]; id2--;) { + int id = id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1]); + Float_t cfa = TMath::Abs(tmpCoef3D[id]); + if (cfa < rTiny) { + tmpCoef3D[id] = 0; + continue; + } // neglect coefs below the threshold + resid += cfa; + if (resid < prec) { + continue; // this coeff is negligible + } + // otherwise go back 1 step + resid -= cfa; + tmpCoefSurf[id1 + id0 * mNumberOfPoints[1]] = id2 + 1; // how many coefs to keep + break; + } + } + } + + // printf("\n\nCoeffs\n"); + // int cnt = 0; + // for (int id0=0;id0 0 && tmpCoefSurf[(id1 - 1) + id0 * mNumberOfPoints[1]] == 0) { + id1--; + } + tmpCols[id0] = id1; + } + // find max significant row + for (int id0 = nRows; id0--;) { + if (tmpCols[id0] > 0) { + break; + } + nRows--; + } + // find max significant column and fill the permanent storage for the max sigificant column of each row + cheb->initializeRows(nRows); // create needed arrays; + UShort_t* nColsAtRow = cheb->getNumberOfColumnsAtRow(); + UShort_t* colAtRowBg = cheb->getColAtRowBg(); + int nCols = 0; + int nElemBound2D = 0; + for (int id0 = 0; id0 < nRows; id0++) { + nColsAtRow[id0] = tmpCols[id0]; // number of columns to store for this row + colAtRowBg[id0] = nElemBound2D; // begining of this row in 2D boundary surface + nElemBound2D += tmpCols[id0]; + if (nCols < nColsAtRow[id0]) { + nCols = nColsAtRow[id0]; + } + } + cheb->initializeColumns(nCols); + delete[] tmpCols; + + // create the 2D matrix defining the boundary of significance for 3D coeffs.matrix + // and count the number of siginifacnt coefficients + cheb->initializeElementBound2D(nElemBound2D); + UShort_t* coefBound2D0 = cheb->getCoefficientBound2D0(); + UShort_t* coefBound2D1 = cheb->getCoefficientBound2D1(); + mMaxCoefficients = 0; // redefine number of coeffs + for (int id0 = 0; id0 < nRows; id0++) { + int nCLoc = nColsAtRow[id0]; + int col0 = colAtRowBg[id0]; + for (int id1 = 0; id1 < nCLoc; id1++) { + coefBound2D0[col0 + id1] = + tmpCoefSurf[id1 + id0 * mNumberOfPoints[1]]; // number of coefs to store for 3-d dimension + coefBound2D1[col0 + id1] = mMaxCoefficients; + mMaxCoefficients += coefBound2D0[col0 + id1]; + } + } + + // create final compressed 3D matrix for significant coeffs + cheb->initializeCoefficients(mMaxCoefficients); + Float_t* coefs = cheb->getCoefficients(); + int count = 0; + for (int id0 = 0; id0 < nRows; id0++) { + int ncLoc = nColsAtRow[id0]; + int col0 = colAtRowBg[id0]; + for (int id1 = 0; id1 < ncLoc; id1++) { + int ncf2 = coefBound2D0[col0 + id1]; + for (int id2 = 0; id2 < ncf2; id2++) { + coefs[count++] = tmpCoef3D[id2 + mNumberOfPoints[2] * (id1 + id0 * mNumberOfPoints[1])]; + } + } + } + + // printf("\n\nNewSurf\n"); + // for (int id0=0;id0ExpandPathName(strf); + FILE* stream = fopen(strf, append ? "a" : "w"); + saveData(stream); + fclose(stream); +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +void Chebyshev3D::saveData(FILE* stream) const +{ + // writes coefficients data to existing output stream + fprintf(stream, "\n# These are automatically generated data for the Chebyshev interpolation of 3D->%dD function\n", + mOutputArrayDimension); + fprintf(stream, "#\nSTART %s\n", GetName()); + fprintf(stream, "# Dimensionality of the output\n%d\n", mOutputArrayDimension); + fprintf(stream, "# Interpolation abs. precision\n%+.8e\n", mPrecision); + + fprintf(stream, "# Lower boundaries of interpolation region\n"); + for (int i = 0; i < 3; i++) { + fprintf(stream, "%+.8e\n", mMinBoundaries[i]); + } + fprintf(stream, "# Upper boundaries of interpolation region\n"); + for (int i = 0; i < 3; i++) { + fprintf(stream, "%+.8e\n", mMaxBoundaries[i]); + } + fprintf(stream, "# Parameterization for each output dimension follows:\n"); + + for (int i = 0; i < mOutputArrayDimension; i++) { + getChebyshevCalc(i)->saveData(stream); + } + fprintf(stream, "#\nEND %s\n#\n", GetName()); +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +void Chebyshev3D::invertSign() +{ + // invert the sign of all parameterizations + for (int i = mOutputArrayDimension; i--;) { + Chebyshev3DCalc* par = getChebyshevCalc(i); + int ncf = par->getNumberOfCoefficients(); + float* coefs = par->getCoefficients(); + for (int j = ncf; j--;) { + coefs[j] = -coefs[j]; + } + } +} +#endif + +void Chebyshev3D::loadData(const char* inpFile) +{ + // load coefficients data from txt file + TString strf = inpFile; + gSystem->ExpandPathName(strf); + FILE* stream = fopen(strf.Data(), "r"); + loadData(stream); + fclose(stream); +} + +void Chebyshev3D::loadData(FILE* stream) +{ + // load coefficients data from stream + if (!stream) { + mLogger->Fatal(MESSAGE_ORIGIN, "No stream provided.\nStop"); + } + TString buffs; + Clear(); + Chebyshev3DCalc::readLine(buffs, stream); + if (!buffs.BeginsWith("START")) { + mLogger->Fatal(MESSAGE_ORIGIN, "Expected: \"START \", found \"%s\"\nStop\n", buffs.Data()); + } + SetName(buffs.Data() + buffs.First(' ') + 1); + + Chebyshev3DCalc::readLine(buffs, stream); // N output dimensions + mOutputArrayDimension = buffs.Atoi(); + if (mOutputArrayDimension < 1) { + mLogger->Fatal(MESSAGE_ORIGIN, "Expected: '', found \"%s\"\nStop\n", buffs.Data()); + } + + setDimOut(mOutputArrayDimension); + + Chebyshev3DCalc::readLine(buffs, stream); // Interpolation abs. precision + mPrecision = buffs.Atof(); + if (mPrecision <= 0) { + mLogger->Fatal(MESSAGE_ORIGIN, "Expected: '', found \"%s\"\nStop\n", buffs.Data()); + } + + for (int i = 0; i < 3; i++) { // Lower boundaries of interpolation region + Chebyshev3DCalc::readLine(buffs, stream); + mMinBoundaries[i] = buffs.Atof(); + } + + for (int i = 0; i < 3; i++) { // Upper boundaries of interpolation region + Chebyshev3DCalc::readLine(buffs, stream); + mMaxBoundaries[i] = buffs.Atof(); + } + prepareBoundaries(mMinBoundaries, mMaxBoundaries); + + // data for each output dimension + for (int i = 0; i < mOutputArrayDimension; i++) { + getChebyshevCalc(i)->loadData(stream); + } + + // check end_of_data record + Chebyshev3DCalc::readLine(buffs, stream); + if (!buffs.BeginsWith("END") || !buffs.Contains(GetName())) { + mLogger->Fatal(MESSAGE_ORIGIN, "Expected \"END %s\", found \"%s\".\nStop\n", GetName(), buffs.Data()); + } +} + +void Chebyshev3D::setDimOut(const int d, const float* prec) +{ + // init output dimensions + mOutputArrayDimension = d; + if (mTemporaryUserResults) { + delete mTemporaryUserResults; + } + mTemporaryUserResults = new Float_t[mOutputArrayDimension]; + mChebyshevParameter.Delete(); + for (int i = 0; i < d; i++) { + Chebyshev3DCalc* clc = new Chebyshev3DCalc(); + clc->setPrecision(prec && prec[i]>sMinimumPrecision ? prec[i] : mPrecision); + mChebyshevParameter.AddAtAndExpand(new Chebyshev3DCalc(), i); + } +} + +void Chebyshev3D::shiftBound(int id, float dif) +{ + // modify the bounds of the grid + if (id < 0 || id > 2) { + printf("Maximum 3 dimensions are supported\n"); + return; + } + mMinBoundaries[id] += dif; + mMaxBoundaries[id] += dif; + mBoundaryMappingOffset[id] += dif; +} + +#ifdef _INC_CREATION_Chebyshev3D_ +TH1* Chebyshev3D::TestRMS(int idim, int npoints, TH1* histo) +{ + // fills the difference between the original function and parameterization (for idim-th component of the output) + // to supplied histogram. Calculations are done in npoints random points. + // If the hostgram was not supplied, it will be created. It is up to the user to delete it! + if (!mUserMacro) { + printf("No user function is set\n"); + return 0; + } + if (!histo) { + histo = new TH1D(GetName(), "Control: Function - Parametrization", 100, -2 * mPrecision, 2 * mPrecision); + } + + float prc = getChebyshevCalc(idim)->getPrecision(); + if (prcRndmArray(3, (Float_t*)mTemporaryCoefficient); + for (int i = 3; i--;) { + mTemporaryCoefficient[i] = mMinBoundaries[i] + mTemporaryCoefficient[i] * (mMaxBoundaries[i] - mMinBoundaries[i]); + } + evaluateUserFunction(); + Float_t valFun = mTemporaryUserResults[idim]; + Eval(mTemporaryCoefficient, mTemporaryUserResults); + Float_t valPar = mTemporaryUserResults[idim]; + histo->Fill(valFun - valPar); + } + return histo; +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ + +void Chebyshev3D::estimateNumberOfPoints(float prec, int gridBC[3][3], Int_t npd1, Int_t npd2, Int_t npd3) +{ + // Estimate number of points to generate a training data + const int kScp = 9; + const float kScl[9] = { 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 }; + + const float sclDim[2] = { 0.001, 0.999 }; + const int compDim[3][2] = { { 1, 2 }, { 2, 0 }, { 0, 1 } }; + static float xyz[3]; + Int_t npdTst[3] = { npd1, npd2, npd3 }; + + for (int i = 3; i--;) { + for (int j = 3; j--;) { + gridBC[i][j] = -1; + } + } + + for (int idim = 0; idim < 3; idim++) { + float dimMN = mMinBoundaries[idim] + sclDim[0] * (mMaxBoundaries[idim] - mMinBoundaries[idim]); + float dimMX = mMinBoundaries[idim] + sclDim[1] * (mMaxBoundaries[idim] - mMinBoundaries[idim]); + + int id1 = compDim[idim][0]; // 1st fixed dim + int id2 = compDim[idim][1]; // 2nd fixed dim + for (int i1 = 0; i1 < kScp; i1++) { + xyz[id1] = mMinBoundaries[id1] + kScl[i1] * (mMaxBoundaries[id1] - mMinBoundaries[id1]); + for (int i2 = 0; i2 < kScp; i2++) { + xyz[id2] = mMinBoundaries[id2] + kScl[i2] * (mMaxBoundaries[id2] - mMinBoundaries[id2]); + int* npt = getNcNeeded(xyz, idim, dimMN, dimMX, prec, npdTst[idim]); // npoints for Bx,By,Bz + for (int ib = 0; ib < 3; ib++) { + if (npt[ib] > gridBC[ib][idim]) { + gridBC[ib][idim] = npt[ib]; + } + } + } + } + } +} + +// void Chebyshev3D::estimateNumberOfPoints(float Prec, int gridBC[3][3]) +// { +// // Estimate number of points to generate a training data +// +// const float sclA[9] = {0.1, 0.5, 0.9, 0.1, 0.5, 0.9, 0.1, 0.5, 0.9} ; +// const float sclB[9] = {0.1, 0.1, 0.1, 0.5, 0.5, 0.5, 0.9, 0.9, 0.9} ; +// const float sclDim[2] = {0.01,0.99}; +// const int compDim[3][2] = { {1,2}, {2,0}, {0,1} }; +// static float xyz[3]; +// +// for (int i=3;i--;)for (int j=3;j--;) gridBC[i][j] = -1; +// +// for (int idim=0;idim<3;idim++) { +// float dimMN = mMinBoundaries[idim] + sclDim[0]*(mMaxBoundaries[idim]-mMinBoundaries[idim]); +// float dimMX = mMinBoundaries[idim] + sclDim[1]*(mMaxBoundaries[idim]-mMinBoundaries[idim]); +// +// for (int it=0;it<9;it++) { // test in 9 points +// int id1 = compDim[idim][0]; // 1st fixed dim +// int id2 = compDim[idim][1]; // 2nd fixed dim +// xyz[ id1 ] = mMinBoundaries[id1] + sclA[it]*( mMaxBoundaries[id1]-mMinBoundaries[id1] ); +// xyz[ id2 ] = mMinBoundaries[id2] + sclB[it]*( mMaxBoundaries[id2]-mMinBoundaries[id2] ); +// +// int* npt = getNcNeeded(xyz,idim, dimMN,dimMX, Prec); // npoints for Bx,By,Bz +// for (int ib=0;ib<3;ib++) if (npt[ib]>gridBC[ib][idim]) gridBC[ib][idim] = npt[ib];//+2; +// +// } +// } +// } +// +// +// int* Chebyshev3D::getNcNeeded(float xyz[3],int DimVar, float mn,float mx, float prec) +// { +// // estimate needed number of chebyshev coefs for given function description in DimVar dimension +// // The values for two other dimensions must be set beforehand +// +// static int curNC[3]; +// static int retNC[3]; +// const int kMaxPoint = 400; +// float* gridVal = new float[3*kMaxPoint]; +// float* coefs = new float[3*kMaxPoint]; +// +// float scale = mx-mn; +// float offs = mn + scale/2.0; +// scale = 2./scale; +// +// int curNP; +// int maxNC=-1; +// int maxNCPrev=-1; +// for (int i=0;i<3;i++) retNC[i] = -1; +// for (int i=0;i<3;i++) mTemporaryCoefficient[i] = xyz[i]; +// +// for (curNP=3; curNP3 && (maxNC-maxNCPrev)<1 ) break; +// maxNCPrev = maxNC; +// +// } +// delete[] gridVal; +// delete[] coefs; +// return retNC; +// } + +int* Chebyshev3D::getNcNeeded(float xyz[3], int DimVar, float mn, float mx, float prec, Int_t npCheck) +{ + // estimate needed number of chebyshev coefs for given function description in DimVar dimension + // The values for two other dimensions must be set beforehand + static int retNC[3]; + static int npChLast = 0; + static float* gridVal = 0, *coefs = 0; + if (npCheck < 3) { + npCheck = 3; + } + if (npChLast < npCheck) { + if (gridVal) { + delete[] gridVal; + } + if (coefs) { + delete[] coefs; + } + gridVal = new float[3 * npCheck]; + coefs = new float[3 * npCheck]; + npChLast = npCheck; + } + float scale = mx - mn; + float offs = mn + scale / 2.0; + scale = 2. / scale; + + for (int i = 0; i < 3; i++) { + mTemporaryCoefficient[i] = xyz[i]; + } + for (int i = 0; i < npCheck; i++) { + mTemporaryCoefficient[DimVar] = + TMath::Cos(TMath::Pi() * (i + 0.5) / npCheck) / scale + offs; // map to requested interval + evaluateUserFunction(); + for (int ib = 3; ib--;) { + gridVal[ib * npCheck + i] = mTemporaryUserResults[ib]; + } + } + for (int ib = 0; ib < 3; ib++) { + retNC[ib] = + Chebyshev3D::calculateChebyshevCoefficients(&gridVal[ib * npCheck], npCheck, &coefs[ib * npCheck], prec); + } + return retNC; +} + +#endif diff --git a/MathUtils/src/Chebyshev3DCalc.cxx b/MathUtils/src/Chebyshev3DCalc.cxx new file mode 100644 index 0000000000000..7cbd058104dac --- /dev/null +++ b/MathUtils/src/Chebyshev3DCalc.cxx @@ -0,0 +1,528 @@ +/// \file Cheb3DCalc.cxx +/// \brief Implementation of the Cheb3DCalc class +/// \author ruben.shahoyan@cern.ch 09/09/2006 + +#include "Chebyshev3DCalc.h" +#include // for TSystem, gSystem +#include "TNamed.h" // for TNamed +#include "TString.h" // for TString, TString::EStripType::kBoth +using namespace AliceO2::MathUtils; + +ClassImp(Chebyshev3DCalc) + +Chebyshev3DCalc::Chebyshev3DCalc() + : mNumberOfCoefficients(0), + mNumberOfRows(0), + mNumberOfColumns(0), + mNumberOfElementsBound2D(0), + mPrecision(0), + mNumberOfColumnsAtRow(0), + mColumnAtRowBeginning(0), + mCoefficientBound2D0(0), + mCoefficientBound2D1(0), + mCoefficients(0), + mTemporaryCoefficients2D(0), + mTemporaryCoefficients1D(0) +{ +} + +Chebyshev3DCalc::Chebyshev3DCalc(const Chebyshev3DCalc& src) + : TNamed(src), + mNumberOfCoefficients(src.mNumberOfCoefficients), + mNumberOfRows(src.mNumberOfRows), + mNumberOfColumns(src.mNumberOfColumns), + mNumberOfElementsBound2D(src.mNumberOfElementsBound2D), + mPrecision(src.mPrecision), + mNumberOfColumnsAtRow(0), + mColumnAtRowBeginning(0), + mCoefficientBound2D0(0), + mCoefficientBound2D1(0), + mCoefficients(0), + mTemporaryCoefficients2D(0), + mTemporaryCoefficients1D(0) +{ + if (src.mNumberOfColumnsAtRow) { + mNumberOfColumnsAtRow = new UShort_t[mNumberOfRows]; + for (int i = mNumberOfRows; i--;) { + mNumberOfColumnsAtRow[i] = src.mNumberOfColumnsAtRow[i]; + } + } + if (src.mColumnAtRowBeginning) { + mColumnAtRowBeginning = new UShort_t[mNumberOfRows]; + for (int i = mNumberOfRows; i--;) { + mColumnAtRowBeginning[i] = src.mColumnAtRowBeginning[i]; + } + } + if (src.mCoefficientBound2D0) { + mCoefficientBound2D0 = new UShort_t[mNumberOfElementsBound2D]; + for (int i = mNumberOfElementsBound2D; i--;) { + mCoefficientBound2D0[i] = src.mCoefficientBound2D0[i]; + } + } + if (src.mCoefficientBound2D1) { + mCoefficientBound2D1 = new UShort_t[mNumberOfElementsBound2D]; + for (int i = mNumberOfElementsBound2D; i--;) { + mCoefficientBound2D1[i] = src.mCoefficientBound2D1[i]; + } + } + if (src.mCoefficients) { + mCoefficients = new Float_t[mNumberOfCoefficients]; + for (int i = mNumberOfCoefficients; i--;) { + mCoefficients[i] = src.mCoefficients[i]; + } + } + if (src.mTemporaryCoefficients2D) { + mTemporaryCoefficients2D = new Float_t[mNumberOfColumns]; + } + if (src.mTemporaryCoefficients1D) { + mTemporaryCoefficients1D = new Float_t[mNumberOfRows]; + } +} + +Chebyshev3DCalc::Chebyshev3DCalc(FILE* stream) + : mNumberOfCoefficients(0), + mNumberOfRows(0), + mNumberOfColumns(0), + mNumberOfElementsBound2D(0), + mPrecision(0), + mNumberOfColumnsAtRow(0), + mColumnAtRowBeginning(0), + mCoefficientBound2D0(0), + mCoefficientBound2D1(0), + mCoefficients(0), + mTemporaryCoefficients2D(0), + mTemporaryCoefficients1D(0) +{ + loadData(stream); +} + +Chebyshev3DCalc& Chebyshev3DCalc::operator=(const Chebyshev3DCalc& rhs) +{ + if (this != &rhs) { + Clear(); + SetName(rhs.GetName()); + SetTitle(rhs.GetTitle()); + mNumberOfCoefficients = rhs.mNumberOfCoefficients; + mNumberOfRows = rhs.mNumberOfRows; + mNumberOfColumns = rhs.mNumberOfColumns; + mPrecision = rhs.mPrecision; + if (rhs.mNumberOfColumnsAtRow) { + mNumberOfColumnsAtRow = new UShort_t[mNumberOfRows]; + for (int i = mNumberOfRows; i--;) { + mNumberOfColumnsAtRow[i] = rhs.mNumberOfColumnsAtRow[i]; + } + } + if (rhs.mColumnAtRowBeginning) { + mColumnAtRowBeginning = new UShort_t[mNumberOfRows]; + for (int i = mNumberOfRows; i--;) { + mColumnAtRowBeginning[i] = rhs.mColumnAtRowBeginning[i]; + } + } + if (rhs.mCoefficientBound2D0) { + mCoefficientBound2D0 = new UShort_t[mNumberOfElementsBound2D]; + for (int i = mNumberOfElementsBound2D; i--;) { + mCoefficientBound2D0[i] = rhs.mCoefficientBound2D0[i]; + } + } + if (rhs.mCoefficientBound2D1) { + mCoefficientBound2D1 = new UShort_t[mNumberOfElementsBound2D]; + for (int i = mNumberOfElementsBound2D; i--;) { + mCoefficientBound2D1[i] = rhs.mCoefficientBound2D1[i]; + } + } + if (rhs.mCoefficients) { + mCoefficients = new Float_t[mNumberOfCoefficients]; + for (int i = mNumberOfCoefficients; i--;) { + mCoefficients[i] = rhs.mCoefficients[i]; + } + } + if (rhs.mTemporaryCoefficients2D) { + mTemporaryCoefficients2D = new Float_t[mNumberOfColumns]; + } + if (rhs.mTemporaryCoefficients1D) { + mTemporaryCoefficients1D = new Float_t[mNumberOfRows]; + } + } + return *this; +} + +void Chebyshev3DCalc::Clear(const Option_t*) +{ + if (mTemporaryCoefficients2D) { + delete[] mTemporaryCoefficients2D; + mTemporaryCoefficients2D = 0; + } + if (mTemporaryCoefficients1D) { + delete[] mTemporaryCoefficients1D; + mTemporaryCoefficients1D = 0; + } + if (mCoefficients) { + delete[] mCoefficients; + mCoefficients = 0; + } + if (mCoefficientBound2D0) { + delete[] mCoefficientBound2D0; + mCoefficientBound2D0 = 0; + } + if (mCoefficientBound2D1) { + delete[] mCoefficientBound2D1; + mCoefficientBound2D1 = 0; + } + if (mNumberOfColumnsAtRow) { + delete[] mNumberOfColumnsAtRow; + mNumberOfColumnsAtRow = 0; + } + if (mColumnAtRowBeginning) { + delete[] mColumnAtRowBeginning; + mColumnAtRowBeginning = 0; + } +} + +void Chebyshev3DCalc::Print(const Option_t*) const +{ + printf("Chebyshev parameterization data %s for 3D->1 function, precision: %e\n", + GetName(),mPrecision); + int nmax3d = 0; + for (int i = mNumberOfElementsBound2D; i--;) { + if (mCoefficientBound2D0[i] > nmax3d) { + nmax3d = mCoefficientBound2D0[i]; + } + } + printf("%d coefficients in %dx%dx%d matrix\n", mNumberOfCoefficients, mNumberOfRows, mNumberOfColumns, nmax3d); +} + +Float_t Chebyshev3DCalc::evaluateDerivative(int dim, const Float_t* par) const +{ + int ncfRC; + for (int id0 = mNumberOfRows; id0--;) { + int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row + if (!nCLoc) { + mTemporaryCoefficients1D[id0] = 0; + continue; + } + // + int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix + for (int id1 = nCLoc; id1--;) { + int id = id1 + col0; + if (!(ncfRC = mCoefficientBound2D0[id])) { + mTemporaryCoefficients2D[id1] = 0; + continue; + } + if (dim == 2) { + mTemporaryCoefficients2D[id1] = + chebyshevEvaluation1Derivative(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); + } else { + mTemporaryCoefficients2D[id1] = chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); + } + } + if (dim == 1) { + mTemporaryCoefficients1D[id0] = chebyshevEvaluation1Derivative(par[1], mTemporaryCoefficients2D, nCLoc); + } else { + mTemporaryCoefficients1D[id0] = chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc); + } + } + return (dim == 0) ? chebyshevEvaluation1Derivative(par[0], mTemporaryCoefficients1D, mNumberOfRows) + : chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); +} + +Float_t Chebyshev3DCalc::evaluateDerivative2(int dim1, int dim2, const Float_t* par) const +{ + Bool_t same = dim1 == dim2; + int ncfRC; + for (int id0 = mNumberOfRows; id0--;) { + int nCLoc = mNumberOfColumnsAtRow[id0]; // number of significant coefs on this row + if (!nCLoc) { + mTemporaryCoefficients1D[id0] = 0; + continue; + } + int col0 = mColumnAtRowBeginning[id0]; // beginning of local column in the 2D boundary matrix + for (int id1 = nCLoc; id1--;) { + int id = id1 + col0; + if (!(ncfRC = mCoefficientBound2D0[id])) { + mTemporaryCoefficients2D[id1] = 0; + continue; + } + if (dim1 == 2 || dim2 == 2) { + mTemporaryCoefficients2D[id1] = + same ? chebyshevEvaluation1Derivative2(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC) + : chebyshevEvaluation1Derivative(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); + } else { + mTemporaryCoefficients2D[id1] = chebyshevEvaluation1D(par[2], mCoefficients + mCoefficientBound2D1[id], ncfRC); + } + } + if (dim1 == 1 || dim2 == 1) { + mTemporaryCoefficients1D[id0] = same ? chebyshevEvaluation1Derivative2(par[1], mTemporaryCoefficients2D, nCLoc) + : chebyshevEvaluation1Derivative(par[1], mTemporaryCoefficients2D, nCLoc); + } else { + mTemporaryCoefficients1D[id0] = chebyshevEvaluation1D(par[1], mTemporaryCoefficients2D, nCLoc); + } + } + return (dim1 == 0 || dim2 == 0) + ? (same ? chebyshevEvaluation1Derivative2(par[0], mTemporaryCoefficients1D, mNumberOfRows) + : chebyshevEvaluation1Derivative(par[0], mTemporaryCoefficients1D, mNumberOfRows)) + : chebyshevEvaluation1D(par[0], mTemporaryCoefficients1D, mNumberOfRows); +} + +#ifdef _INC_CREATION_Chebyshev3D_ +void Chebyshev3DCalc::saveData(const char* outfile, Bool_t append) const +{ + TString strf = outfile; + gSystem->ExpandPathName(strf); + FILE* stream = fopen(strf, append ? "a" : "w"); + saveData(stream); + fclose(stream); +} +#endif + +#ifdef _INC_CREATION_Chebyshev3D_ +void Chebyshev3DCalc::saveData(FILE* stream) const +{ + fprintf(stream, "#\nSTART %s\n", GetName()); + fprintf(stream, "# Number of rows\n%d\n", mNumberOfRows); + + fprintf(stream, "# Number of columns per row\n"); + for (int i = 0; i < mNumberOfRows; i++) { + fprintf(stream, "%d\n", mNumberOfColumnsAtRow[i]); + } + + fprintf(stream, "# Number of Coefs in each significant block of third dimension\n"); + for (int i = 0; i < mNumberOfElementsBound2D; i++) { + fprintf(stream, "%d\n", mCoefficientBound2D0[i]); + } + + fprintf(stream, "# Coefficients\n"); + for (int i = 0; i < mNumberOfCoefficients; i++) { + fprintf(stream, "%+.8e\n", mCoefficients[i]); + } + fprintf(stream,"# Precision\n"); + fprintf(stream,"%+.8e\n",mPrecision); + // + fprintf(stream, "END %s\n", GetName()); +} +#endif + +void Chebyshev3DCalc::loadData(FILE* stream) +{ + if (!stream) { + Error("LoadData", "No stream provided.\nStop"); + exit(1); + } + TString buffs; + Clear(); + readLine(buffs, stream); + + if (!buffs.BeginsWith("START")) { + Error("LoadData", "Expected: \"START \", found \"%s\"\nStop\n", buffs.Data()); + exit(1); + } + + if (buffs.First(' ') > 0) { + SetName(buffs.Data() + buffs.First(' ') + 1); + } + + readLine(buffs, stream); // NRows + mNumberOfRows = buffs.Atoi(); + + if (mNumberOfRows < 0 || !buffs.IsDigit()) { + Error("LoadData", "Expected: '', found \"%s\"\nStop\n", buffs.Data()); + exit(1); + } + + mNumberOfColumns = 0; + mNumberOfElementsBound2D = 0; + initializeRows(mNumberOfRows); + + for (int id0 = 0; id0 < mNumberOfRows; id0++) { + readLine(buffs, stream); // n.cols at this row + mNumberOfColumnsAtRow[id0] = buffs.Atoi(); + mColumnAtRowBeginning[id0] = mNumberOfElementsBound2D; // begining of this row in 2D boundary surface + mNumberOfElementsBound2D += mNumberOfColumnsAtRow[id0]; + if (mNumberOfColumns < mNumberOfColumnsAtRow[id0]) { + mNumberOfColumns = mNumberOfColumnsAtRow[id0]; + } + } + initializeColumns(mNumberOfColumns); + + mNumberOfCoefficients = 0; + initializeElementBound2D(mNumberOfElementsBound2D); + + for (int i = 0; i < mNumberOfElementsBound2D; i++) { + readLine(buffs, stream); // n.coeffs at 3-d dimension for the given column/row + mCoefficientBound2D0[i] = buffs.Atoi(); + mCoefficientBound2D1[i] = mNumberOfCoefficients; + mNumberOfCoefficients += mCoefficientBound2D0[i]; + } + + initializeCoefficients(mNumberOfCoefficients); + for (int i = 0; i < mNumberOfCoefficients; i++) { + readLine(buffs, stream); + mCoefficients[i] = buffs.Atof(); + } + // read precision + readLine(buffs,stream); + mPrecision = buffs.Atof(); + + // check end_of_data record + readLine(buffs, stream); + if (!buffs.BeginsWith("END") || !buffs.Contains(GetName())) { + Error("LoadData", "Expected \"END %s\", found \"%s\".\nStop\n", GetName(), buffs.Data()); + exit(1); + } +} + +void Chebyshev3DCalc::readLine(TString& str, FILE* stream) +{ + while (str.Gets(stream)) { + str = str.Strip(TString::kBoth, ' '); + if (str.IsNull() || str.BeginsWith("#")) { + continue; + } + return; + } + fprintf(stderr, "Chebyshev3D::readLine: Failed to read from stream.\nStop"); + exit(1); // normally, should not reach here +} + +void Chebyshev3DCalc::initializeRows(int nr) +{ + if (mNumberOfColumnsAtRow) { + delete[] mNumberOfColumnsAtRow; + mNumberOfColumnsAtRow = 0; + } + if (mColumnAtRowBeginning) { + delete[] mColumnAtRowBeginning; + mColumnAtRowBeginning = 0; + } + if (mTemporaryCoefficients1D) { + delete[] mTemporaryCoefficients1D; + mTemporaryCoefficients1D = 0; + } + mNumberOfRows = nr; + if (mNumberOfRows) { + mNumberOfColumnsAtRow = new UShort_t[mNumberOfRows]; + mTemporaryCoefficients1D = new Float_t[mNumberOfRows]; + mColumnAtRowBeginning = new UShort_t[mNumberOfRows]; + for (int i = mNumberOfRows; i--;) { + mNumberOfColumnsAtRow[i] = mColumnAtRowBeginning[i] = 0; + } + } +} + +void Chebyshev3DCalc::initializeColumns(int nc) +{ + mNumberOfColumns = nc; + if (mTemporaryCoefficients2D) { + delete[] mTemporaryCoefficients2D; + mTemporaryCoefficients2D = 0; + } + if (mNumberOfColumns) mTemporaryCoefficients2D = new Float_t[mNumberOfColumns]; +} + +void Chebyshev3DCalc::initializeElementBound2D(int ne) +{ + if (mCoefficientBound2D0) { + delete[] mCoefficientBound2D0; + mCoefficientBound2D0 = 0; + } + if (mCoefficientBound2D1) { + delete[] mCoefficientBound2D1; + mCoefficientBound2D1 = 0; + } + mNumberOfElementsBound2D = ne; + if (mNumberOfElementsBound2D) { + mCoefficientBound2D0 = new UShort_t[mNumberOfElementsBound2D]; + mCoefficientBound2D1 = new UShort_t[mNumberOfElementsBound2D]; + for (int i = mNumberOfElementsBound2D; i--;) { + mCoefficientBound2D0[i] = mCoefficientBound2D1[i] = 0; + } + } +} + +void Chebyshev3DCalc::initializeCoefficients(int nc) +{ + if (mCoefficients) { + delete[] mCoefficients; + mCoefficients = 0; + } + mNumberOfCoefficients = nc; + if (mNumberOfCoefficients) { + mCoefficients = new Float_t[mNumberOfCoefficients]; + for (int i = mNumberOfCoefficients; i--;) { + mCoefficients[i] = 0.0; + } + } +} + +Float_t Chebyshev3DCalc::chebyshevEvaluation1Derivative(Float_t x, const Float_t* array, int ncf) +{ + if (--ncf < 1) { + return 0; + } + Float_t b0, b1, b2; + Float_t x2 = x + x; + b1 = b2 = 0; + float dcf0 = 0, dcf1, dcf2 = 0; + b0 = dcf1 = 2 * ncf * array[ncf]; + if (!(--ncf)) { + return b0 / 2; + } + + for (int i = ncf; i--;) { + b2 = b1; + b1 = b0; + dcf0 = dcf2 + 2 * (i + 1) * array[i + 1]; + b0 = dcf0 + x2 * b1 - b2; + dcf2 = dcf1; + dcf1 = dcf0; + } + + return b0 - x * b1 - dcf0 / 2; +} + +Float_t Chebyshev3DCalc::chebyshevEvaluation1Derivative2(Float_t x, const Float_t* array, int ncf) +{ + if (--ncf < 2) { + return 0; + } + Float_t b0, b1, b2; + Float_t x2 = x + x; + b1 = b2 = 0; + float dcf0 = 0, dcf1 = 0, dcf2 = 0; + float ddcf0 = 0, ddcf1, ddcf2 = 0; + + dcf2 = 2 * ncf * array[ncf]; + --ncf; + + dcf1 = 2 * ncf * array[ncf]; + b0 = ddcf1 = 2 * ncf * dcf2; + + if (!(--ncf)) { + return b0 / 2; + } + + for (int i = ncf; i--;) { + b2 = b1; + b1 = b0; + dcf0 = dcf2 + 2 * (i + 1) * array[i + 1]; + ddcf0 = ddcf2 + 2 * (i + 1) * dcf1; + b0 = ddcf0 + x2 * b1 - b2; + + ddcf2 = ddcf1; + ddcf1 = ddcf0; + + dcf2 = dcf1; + dcf1 = dcf0; + } + return b0 - x * b1 - ddcf0 / 2; +} + +Int_t Chebyshev3DCalc::getMaxColumnsAtRow() const +{ + int nmax3d = 0; + for (int i = mNumberOfElementsBound2D; i--;) { + if (mCoefficientBound2D0[i] > nmax3d) { + nmax3d = mCoefficientBound2D0[i]; + } + } + return nmax3d; +} diff --git a/MathUtils/src/MathUtilsLinkDef.h b/MathUtils/src/MathUtilsLinkDef.h new file mode 100644 index 0000000000000..62394e7fa058d --- /dev/null +++ b/MathUtils/src/MathUtilsLinkDef.h @@ -0,0 +1,10 @@ + +#ifdef __CINT__ +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class AliceO2::MathUtils::Chebyshev3D+; +#pragma link C++ class AliceO2::MathUtils::Chebyshev3DCalc+; + +#endif From afb103b5a67a549ede242a4bf7f2a78e49c7620e Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 3 May 2016 16:29:38 +0200 Subject: [PATCH 086/135] Re-arrange the repository Create Common directory and move field and math to it --- CMakeLists.txt | 3 +-- Common/CMakeLists.txt | 2 ++ {Field => Common/Field}/CMakeLists.txt | 2 +- {Field => Common/Field}/include/MagneticField.h | 0 {Field => Common/Field}/include/MagneticWrapperChebyshev.h | 4 ++-- {Field => Common/Field}/src/FieldLinkDef.h | 0 {Field => Common/Field}/src/MagneticField.cxx | 0 {Field => Common/Field}/src/MagneticWrapperChebyshev.cxx | 0 {MathUtils => Common/MathUtils}/CMakeLists.txt | 5 ++--- {MathUtils => Common/MathUtils}/include/Chebyshev3D.h | 0 {MathUtils => Common/MathUtils}/include/Chebyshev3DCalc.h | 0 {MathUtils => Common/MathUtils}/src/Chebyshev3D.cxx | 0 {MathUtils => Common/MathUtils}/src/Chebyshev3DCalc.cxx | 0 {MathUtils => Common/MathUtils}/src/MathUtilsLinkDef.h | 0 14 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 Common/CMakeLists.txt rename {Field => Common/Field}/CMakeLists.txt (96%) rename {Field => Common/Field}/include/MagneticField.h (100%) rename {Field => Common/Field}/include/MagneticWrapperChebyshev.h (99%) rename {Field => Common/Field}/src/FieldLinkDef.h (100%) rename {Field => Common/Field}/src/MagneticField.cxx (100%) rename {Field => Common/Field}/src/MagneticWrapperChebyshev.cxx (100%) rename {MathUtils => Common/MathUtils}/CMakeLists.txt (87%) rename {MathUtils => Common/MathUtils}/include/Chebyshev3D.h (100%) rename {MathUtils => Common/MathUtils}/include/Chebyshev3DCalc.h (100%) rename {MathUtils => Common/MathUtils}/src/Chebyshev3D.cxx (100%) rename {MathUtils => Common/MathUtils}/src/Chebyshev3DCalc.cxx (100%) rename {MathUtils => Common/MathUtils}/src/MathUtilsLinkDef.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 21c4d22493ee5..50bf9b2161544 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,8 +212,7 @@ endif(NOT ALICEO2_MODULAR_BUILD) if (PYTHIA8_FOUND AND Pythia6_FOUND) add_subdirectory (Generators) Endif () -add_subdirectory (MathUtils) -add_subdirectory (Field) +add_subdirectory (Common) add_subdirectory (devices) add_subdirectory (macro) add_subdirectory (CCDB) diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt new file mode 100644 index 0000000000000..23ff39a91fd19 --- /dev/null +++ b/Common/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory (Field) +add_subdirectory(MathUtils) diff --git a/Field/CMakeLists.txt b/Common/Field/CMakeLists.txt similarity index 96% rename from Field/CMakeLists.txt rename to Common/Field/CMakeLists.txt index a66b4a0d3a492..0561f7d526661 100644 --- a/Field/CMakeLists.txt +++ b/Common/Field/CMakeLists.txt @@ -4,7 +4,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/Field + ${CMAKE_SOURCE_DIR}/Common/Field ${CMAKE_SOURCE_DIR}/header ) diff --git a/Field/include/MagneticField.h b/Common/Field/include/MagneticField.h similarity index 100% rename from Field/include/MagneticField.h rename to Common/Field/include/MagneticField.h diff --git a/Field/include/MagneticWrapperChebyshev.h b/Common/Field/include/MagneticWrapperChebyshev.h similarity index 99% rename from Field/include/MagneticWrapperChebyshev.h rename to Common/Field/include/MagneticWrapperChebyshev.h index 6925c345c6d1e..536ed4ad6c2d0 100644 --- a/Field/include/MagneticWrapperChebyshev.h +++ b/Common/Field/include/MagneticWrapperChebyshev.h @@ -7,8 +7,8 @@ #include // for ATan2, Cos, Sin, Sqrt #include // for TNamed #include // for TObjArray -#include "MathUtils/include/Chebyshev3D.h" // for Chebyshev3D -#include "MathUtils/include/Chebyshev3DCalc.h" // for _INC_CREATION_Chebyshev3D_ +#include "Common/MathUtils/include/Chebyshev3D.h" // for Chebyshev3D +#include "Common/MathUtils/include/Chebyshev3DCalc.h" // for _INC_CREATION_Chebyshev3D_ #include "Rtypes.h" // for Double_t, Int_t, Float_t, etc class FairLogger; // lines 16-16 diff --git a/Field/src/FieldLinkDef.h b/Common/Field/src/FieldLinkDef.h similarity index 100% rename from Field/src/FieldLinkDef.h rename to Common/Field/src/FieldLinkDef.h diff --git a/Field/src/MagneticField.cxx b/Common/Field/src/MagneticField.cxx similarity index 100% rename from Field/src/MagneticField.cxx rename to Common/Field/src/MagneticField.cxx diff --git a/Field/src/MagneticWrapperChebyshev.cxx b/Common/Field/src/MagneticWrapperChebyshev.cxx similarity index 100% rename from Field/src/MagneticWrapperChebyshev.cxx rename to Common/Field/src/MagneticWrapperChebyshev.cxx diff --git a/MathUtils/CMakeLists.txt b/Common/MathUtils/CMakeLists.txt similarity index 87% rename from MathUtils/CMakeLists.txt rename to Common/MathUtils/CMakeLists.txt index 9eba030dddb36..725e43d7c3093 100644 --- a/MathUtils/CMakeLists.txt +++ b/Common/MathUtils/CMakeLists.txt @@ -3,11 +3,11 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/MathUtils/include + ${CMAKE_SOURCE_DIR}/Common/MathUtils/ + ${CMAKE_SOURCE_DIR}/Common/MathUtils/include ) set(SYSTEM_INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/MathUtils ${BASE_INCLUDE_DIRECTORIES} ${FAIRROOT_INCLUDE_DIR} ${ROOT_INCLUDE_DIR} @@ -17,7 +17,6 @@ include_directories( ${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES - ${CMAKE_SOURCE_DIR}/MathUtils ${FAIRROOT_LIBRARY_DIR} ${ROOT_LIBRARY_DIR} ) diff --git a/MathUtils/include/Chebyshev3D.h b/Common/MathUtils/include/Chebyshev3D.h similarity index 100% rename from MathUtils/include/Chebyshev3D.h rename to Common/MathUtils/include/Chebyshev3D.h diff --git a/MathUtils/include/Chebyshev3DCalc.h b/Common/MathUtils/include/Chebyshev3DCalc.h similarity index 100% rename from MathUtils/include/Chebyshev3DCalc.h rename to Common/MathUtils/include/Chebyshev3DCalc.h diff --git a/MathUtils/src/Chebyshev3D.cxx b/Common/MathUtils/src/Chebyshev3D.cxx similarity index 100% rename from MathUtils/src/Chebyshev3D.cxx rename to Common/MathUtils/src/Chebyshev3D.cxx diff --git a/MathUtils/src/Chebyshev3DCalc.cxx b/Common/MathUtils/src/Chebyshev3DCalc.cxx similarity index 100% rename from MathUtils/src/Chebyshev3DCalc.cxx rename to Common/MathUtils/src/Chebyshev3DCalc.cxx diff --git a/MathUtils/src/MathUtilsLinkDef.h b/Common/MathUtils/src/MathUtilsLinkDef.h similarity index 100% rename from MathUtils/src/MathUtilsLinkDef.h rename to Common/MathUtils/src/MathUtilsLinkDef.h From de1458b111c0482d09b41a4935a4f007a28f1bea Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 11 May 2016 08:14:14 +0200 Subject: [PATCH 087/135] Re-arrange the repository move the devices and utilities --- CMakeLists.txt | 4 ++-- Examples/CMakeLists.txt | 2 ++ .../flp2epn-distributed/CMakeLists.txt | 8 ++++---- .../flp2epn-distributed/EPNReceiver.cxx | 0 .../flp2epn-distributed/EPNReceiver.h | 0 .../flp2epn-distributed/FLPSender.cxx | 0 {devices => Examples}/flp2epn-distributed/FLPSender.h | 0 .../flp2epn-distributed/FLPSyncSampler.cxx | 0 .../flp2epn-distributed/FLPSyncSampler.h | 0 {devices => Examples}/flp2epn-distributed/README.md | 0 .../flp2epn-distributed/run/runEPNReceiver.cxx | 0 .../flp2epn-distributed/run/runFLPSender.cxx | 0 .../flp2epn-distributed/run/runFLPSyncSampler.cxx | 0 .../run/startFLP2EPN-distributed.sh.in | 0 .../runO2Prototype/flp_epn_hosts.cfg | 0 .../runO2Prototype/flp_epn_topology.xml | 0 .../runO2Prototype/runEPNReceiver.cxx | 0 .../runO2Prototype/runFLPSender.cxx | 0 .../runO2Prototype/runFLPSyncSampler.cxx | 0 .../test/testFLP2EPN-distributed.sh.in | 0 {devices => Examples}/flp2epn/CMakeLists.txt | 10 +++++----- {devices => Examples}/flp2epn/O2EPNex.cxx | 0 {devices => Examples}/flp2epn/O2EPNex.h | 0 {devices => Examples}/flp2epn/O2EpnMerger.cxx | 0 {devices => Examples}/flp2epn/O2EpnMerger.h | 0 {devices => Examples}/flp2epn/O2FLPex.cxx | 0 {devices => Examples}/flp2epn/O2FLPex.h | 0 {devices => Examples}/flp2epn/O2Merger.cxx | 0 {devices => Examples}/flp2epn/O2Merger.h | 0 {devices => Examples}/flp2epn/O2Proxy.cxx | 0 {devices => Examples}/flp2epn/O2Proxy.h | 0 {devices => Examples}/flp2epn/run/runEPN.cxx | 0 {devices => Examples}/flp2epn/run/runEPN_M.cxx | 0 {devices => Examples}/flp2epn/run/runFLP.cxx | 0 {devices => Examples}/flp2epn/run/runMerger.cxx | 0 {devices => Examples}/flp2epn/run/runProxy.cxx | 0 {devices => Examples}/flp2epn/run/startFLP2EPN.sh.in | 0 {devices => Examples}/flp2epn/run/startMerger.sh.in | 0 {devices => Utilities}/CMakeLists.txt | 3 +-- {o2qa => Utilities/Qa}/CMakeLists.txt | 10 ++++------ {o2qa => Utilities/Qa}/HistogramTMessage.h | 0 {o2qa => Utilities/Qa}/Merger/Merger.cxx | 0 {o2qa => Utilities/Qa}/Merger/Merger.h | 0 {o2qa => Utilities/Qa}/Merger/MergerDevice.cxx | 0 {o2qa => Utilities/Qa}/Merger/MergerDevice.h | 0 .../Qa}/Merger/Tests/MergerTestSuite.cxx | 0 {o2qa => Utilities/Qa}/Producer/HistogramProducer.cxx | 0 {o2qa => Utilities/Qa}/Producer/HistogramProducer.h | 0 {o2qa => Utilities/Qa}/Producer/Producer.h | 0 {o2qa => Utilities/Qa}/Producer/ProducerDevice.cxx | 0 {o2qa => Utilities/Qa}/Producer/ProducerDevice.h | 0 .../Qa}/Producer/Tests/ProducerTestSuite.cxx | 0 {o2qa => Utilities/Qa}/Producer/TreeProducer.cxx | 0 {o2qa => Utilities/Qa}/Producer/TreeProducer.h | 0 {o2qa => Utilities/Qa}/README.md | 0 .../Qa}/Viewer/Tests/ViewerTestSuite.cxx | 0 {o2qa => Utilities/Qa}/Viewer/ViewerDevice.cxx | 0 {o2qa => Utilities/Qa}/Viewer/ViewerDevice.h | 0 {o2qa => Utilities/Qa}/runMerger.cxx | 0 {o2qa => Utilities/Qa}/runProducer.cxx | 0 {o2qa => Utilities/Qa}/runViewerDevice.cxx | 0 {devices => Utilities}/aliceHLTwrapper/.gitignore | 0 .../aliceHLTwrapper/AliHLTDataTypes.h | 0 .../aliceHLTwrapper/AliHLTHOMERData.h | 0 .../aliceHLTwrapper/AliHLTHOMERReader.h | 0 .../aliceHLTwrapper/AliHLTHOMERWriter.h | 0 {devices => Utilities}/aliceHLTwrapper/CMakeLists.txt | 0 {devices => Utilities}/aliceHLTwrapper/Component.cxx | 0 {devices => Utilities}/aliceHLTwrapper/Component.h | 0 .../aliceHLTwrapper/EventSampler.cxx | 0 {devices => Utilities}/aliceHLTwrapper/EventSampler.h | 0 .../aliceHLTwrapper/HOMERFactory.cxx | 0 {devices => Utilities}/aliceHLTwrapper/HOMERFactory.h | 0 .../aliceHLTwrapper/MessageFormat.cxx | 0 {devices => Utilities}/aliceHLTwrapper/MessageFormat.h | 0 {devices => Utilities}/aliceHLTwrapper/README | 0 .../aliceHLTwrapper/SystemInterface.cxx | 0 .../aliceHLTwrapper/SystemInterface.h | 0 .../aliceHLTwrapper/WrapperDevice.cxx | 0 {devices => Utilities}/aliceHLTwrapper/WrapperDevice.h | 0 .../aliceHLTwrapper/aliceHLTEventSampler.cxx | 0 .../aliceHLTwrapper/aliceHLTWrapper.cxx | 0 .../aliceHLTwrapper/cluster-relay-to-tracker.sh | 0 .../aliceHLTwrapper/launch-flp-epn.sh | 0 .../aliceHLTwrapper/launchSimpleChain.sh | 0 .../aliceHLTwrapper/macros/hltConfigurations.C | 0 .../aliceHLTwrapper/macros/overlayClusters.C | 0 .../aliceHLTwrapper/macros/overlayClusters.sh | 0 {devices => Utilities}/aliceHLTwrapper/macros/runHLT.C | 0 {devices => Utilities}/aliceHLTwrapper/nodelist.sh | 0 .../aliceHLTwrapper/runComponent.cxx | 0 {devices => Utilities}/hough/CMakeLists.txt | 0 {devices => Utilities}/hough/README.md | 0 {devices => Utilities}/hough/runHough.cxx | 0 94 files changed, 18 insertions(+), 19 deletions(-) create mode 100644 Examples/CMakeLists.txt rename {devices => Examples}/flp2epn-distributed/CMakeLists.txt (83%) rename {devices => Examples}/flp2epn-distributed/EPNReceiver.cxx (100%) rename {devices => Examples}/flp2epn-distributed/EPNReceiver.h (100%) rename {devices => Examples}/flp2epn-distributed/FLPSender.cxx (100%) rename {devices => Examples}/flp2epn-distributed/FLPSender.h (100%) rename {devices => Examples}/flp2epn-distributed/FLPSyncSampler.cxx (100%) rename {devices => Examples}/flp2epn-distributed/FLPSyncSampler.h (100%) rename {devices => Examples}/flp2epn-distributed/README.md (100%) rename {devices => Examples}/flp2epn-distributed/run/runEPNReceiver.cxx (100%) rename {devices => Examples}/flp2epn-distributed/run/runFLPSender.cxx (100%) rename {devices => Examples}/flp2epn-distributed/run/runFLPSyncSampler.cxx (100%) rename {devices => Examples}/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in (100%) rename {devices => Examples}/flp2epn-distributed/runO2Prototype/flp_epn_hosts.cfg (100%) rename {devices => Examples}/flp2epn-distributed/runO2Prototype/flp_epn_topology.xml (100%) rename {devices => Examples}/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx (100%) rename {devices => Examples}/flp2epn-distributed/runO2Prototype/runFLPSender.cxx (100%) rename {devices => Examples}/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx (100%) rename {devices => Examples}/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in (100%) rename {devices => Examples}/flp2epn/CMakeLists.txt (81%) rename {devices => Examples}/flp2epn/O2EPNex.cxx (100%) rename {devices => Examples}/flp2epn/O2EPNex.h (100%) rename {devices => Examples}/flp2epn/O2EpnMerger.cxx (100%) rename {devices => Examples}/flp2epn/O2EpnMerger.h (100%) rename {devices => Examples}/flp2epn/O2FLPex.cxx (100%) rename {devices => Examples}/flp2epn/O2FLPex.h (100%) rename {devices => Examples}/flp2epn/O2Merger.cxx (100%) rename {devices => Examples}/flp2epn/O2Merger.h (100%) rename {devices => Examples}/flp2epn/O2Proxy.cxx (100%) rename {devices => Examples}/flp2epn/O2Proxy.h (100%) rename {devices => Examples}/flp2epn/run/runEPN.cxx (100%) rename {devices => Examples}/flp2epn/run/runEPN_M.cxx (100%) rename {devices => Examples}/flp2epn/run/runFLP.cxx (100%) rename {devices => Examples}/flp2epn/run/runMerger.cxx (100%) rename {devices => Examples}/flp2epn/run/runProxy.cxx (100%) rename {devices => Examples}/flp2epn/run/startFLP2EPN.sh.in (100%) rename {devices => Examples}/flp2epn/run/startMerger.sh.in (100%) rename {devices => Utilities}/CMakeLists.txt (57%) rename {o2qa => Utilities/Qa}/CMakeLists.txt (92%) rename {o2qa => Utilities/Qa}/HistogramTMessage.h (100%) rename {o2qa => Utilities/Qa}/Merger/Merger.cxx (100%) rename {o2qa => Utilities/Qa}/Merger/Merger.h (100%) rename {o2qa => Utilities/Qa}/Merger/MergerDevice.cxx (100%) rename {o2qa => Utilities/Qa}/Merger/MergerDevice.h (100%) rename {o2qa => Utilities/Qa}/Merger/Tests/MergerTestSuite.cxx (100%) rename {o2qa => Utilities/Qa}/Producer/HistogramProducer.cxx (100%) rename {o2qa => Utilities/Qa}/Producer/HistogramProducer.h (100%) rename {o2qa => Utilities/Qa}/Producer/Producer.h (100%) rename {o2qa => Utilities/Qa}/Producer/ProducerDevice.cxx (100%) rename {o2qa => Utilities/Qa}/Producer/ProducerDevice.h (100%) rename {o2qa => Utilities/Qa}/Producer/Tests/ProducerTestSuite.cxx (100%) rename {o2qa => Utilities/Qa}/Producer/TreeProducer.cxx (100%) rename {o2qa => Utilities/Qa}/Producer/TreeProducer.h (100%) rename {o2qa => Utilities/Qa}/README.md (100%) rename {o2qa => Utilities/Qa}/Viewer/Tests/ViewerTestSuite.cxx (100%) rename {o2qa => Utilities/Qa}/Viewer/ViewerDevice.cxx (100%) rename {o2qa => Utilities/Qa}/Viewer/ViewerDevice.h (100%) rename {o2qa => Utilities/Qa}/runMerger.cxx (100%) rename {o2qa => Utilities/Qa}/runProducer.cxx (100%) rename {o2qa => Utilities/Qa}/runViewerDevice.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/.gitignore (100%) rename {devices => Utilities}/aliceHLTwrapper/AliHLTDataTypes.h (100%) rename {devices => Utilities}/aliceHLTwrapper/AliHLTHOMERData.h (100%) rename {devices => Utilities}/aliceHLTwrapper/AliHLTHOMERReader.h (100%) rename {devices => Utilities}/aliceHLTwrapper/AliHLTHOMERWriter.h (100%) rename {devices => Utilities}/aliceHLTwrapper/CMakeLists.txt (100%) rename {devices => Utilities}/aliceHLTwrapper/Component.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/Component.h (100%) rename {devices => Utilities}/aliceHLTwrapper/EventSampler.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/EventSampler.h (100%) rename {devices => Utilities}/aliceHLTwrapper/HOMERFactory.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/HOMERFactory.h (100%) rename {devices => Utilities}/aliceHLTwrapper/MessageFormat.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/MessageFormat.h (100%) rename {devices => Utilities}/aliceHLTwrapper/README (100%) rename {devices => Utilities}/aliceHLTwrapper/SystemInterface.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/SystemInterface.h (100%) rename {devices => Utilities}/aliceHLTwrapper/WrapperDevice.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/WrapperDevice.h (100%) rename {devices => Utilities}/aliceHLTwrapper/aliceHLTEventSampler.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/aliceHLTWrapper.cxx (100%) rename {devices => Utilities}/aliceHLTwrapper/cluster-relay-to-tracker.sh (100%) rename {devices => Utilities}/aliceHLTwrapper/launch-flp-epn.sh (100%) rename {devices => Utilities}/aliceHLTwrapper/launchSimpleChain.sh (100%) rename {devices => Utilities}/aliceHLTwrapper/macros/hltConfigurations.C (100%) rename {devices => Utilities}/aliceHLTwrapper/macros/overlayClusters.C (100%) rename {devices => Utilities}/aliceHLTwrapper/macros/overlayClusters.sh (100%) rename {devices => Utilities}/aliceHLTwrapper/macros/runHLT.C (100%) rename {devices => Utilities}/aliceHLTwrapper/nodelist.sh (100%) rename {devices => Utilities}/aliceHLTwrapper/runComponent.cxx (100%) rename {devices => Utilities}/hough/CMakeLists.txt (100%) rename {devices => Utilities}/hough/README.md (100%) rename {devices => Utilities}/hough/runHough.cxx (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 50bf9b2161544..865eb97b90e66 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,10 +213,10 @@ if (PYTHIA8_FOUND AND Pythia6_FOUND) add_subdirectory (Generators) Endif () add_subdirectory (Common) -add_subdirectory (devices) +add_subdirectory (Examples) add_subdirectory (macro) add_subdirectory (CCDB) -add_subdirectory (o2qa) +add_subdirectory (Utilities) add_subdirectory (Detectors) add_subdirectory (DataFormats) diff --git a/Examples/CMakeLists.txt b/Examples/CMakeLists.txt new file mode 100644 index 0000000000000..b3787818cdeb7 --- /dev/null +++ b/Examples/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory (flp2epn) +add_subdirectory (flp2epn-distributed) diff --git a/devices/flp2epn-distributed/CMakeLists.txt b/Examples/flp2epn-distributed/CMakeLists.txt similarity index 83% rename from devices/flp2epn-distributed/CMakeLists.txt rename to Examples/flp2epn-distributed/CMakeLists.txt index 263bc5e2fb519..46a0b7e3675d7 100644 --- a/devices/flp2epn-distributed/CMakeLists.txt +++ b/Examples/flp2epn-distributed/CMakeLists.txt @@ -1,8 +1,8 @@ -configure_file(${CMAKE_SOURCE_DIR}/devices/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN-distributed.sh) -configure_file(${CMAKE_SOURCE_DIR}/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in ${CMAKE_BINARY_DIR}/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh) +configure_file(${CMAKE_SOURCE_DIR}/Examples/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN-distributed.sh) +configure_file(${CMAKE_SOURCE_DIR}/Examples/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in ${CMAKE_BINARY_DIR}/Examples/flp2epn-distributed/test/testFLP2EPN-distributed.sh) set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/devices/flp2epn-distributed + ${CMAKE_SOURCE_DIR}/Examples/flp2epn-distributed ) set(SYSTEM_INCLUDE_DIRECTORIES @@ -115,6 +115,6 @@ ForEach(_file RANGE 0 ${_length}) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) -add_test(NAME run_flp2epn_distributed COMMAND ${CMAKE_BINARY_DIR}/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh) +add_test(NAME run_flp2epn_distributed COMMAND ${CMAKE_BINARY_DIR}/Examples/flp2epn-distributed/test/testFLP2EPN-distributed.sh) set_tests_properties(run_flp2epn_distributed PROPERTIES TIMEOUT "30") set_tests_properties(run_flp2epn_distributed PROPERTIES PASS_REGULAR_EXPRESSION "acknowledged after") diff --git a/devices/flp2epn-distributed/EPNReceiver.cxx b/Examples/flp2epn-distributed/EPNReceiver.cxx similarity index 100% rename from devices/flp2epn-distributed/EPNReceiver.cxx rename to Examples/flp2epn-distributed/EPNReceiver.cxx diff --git a/devices/flp2epn-distributed/EPNReceiver.h b/Examples/flp2epn-distributed/EPNReceiver.h similarity index 100% rename from devices/flp2epn-distributed/EPNReceiver.h rename to Examples/flp2epn-distributed/EPNReceiver.h diff --git a/devices/flp2epn-distributed/FLPSender.cxx b/Examples/flp2epn-distributed/FLPSender.cxx similarity index 100% rename from devices/flp2epn-distributed/FLPSender.cxx rename to Examples/flp2epn-distributed/FLPSender.cxx diff --git a/devices/flp2epn-distributed/FLPSender.h b/Examples/flp2epn-distributed/FLPSender.h similarity index 100% rename from devices/flp2epn-distributed/FLPSender.h rename to Examples/flp2epn-distributed/FLPSender.h diff --git a/devices/flp2epn-distributed/FLPSyncSampler.cxx b/Examples/flp2epn-distributed/FLPSyncSampler.cxx similarity index 100% rename from devices/flp2epn-distributed/FLPSyncSampler.cxx rename to Examples/flp2epn-distributed/FLPSyncSampler.cxx diff --git a/devices/flp2epn-distributed/FLPSyncSampler.h b/Examples/flp2epn-distributed/FLPSyncSampler.h similarity index 100% rename from devices/flp2epn-distributed/FLPSyncSampler.h rename to Examples/flp2epn-distributed/FLPSyncSampler.h diff --git a/devices/flp2epn-distributed/README.md b/Examples/flp2epn-distributed/README.md similarity index 100% rename from devices/flp2epn-distributed/README.md rename to Examples/flp2epn-distributed/README.md diff --git a/devices/flp2epn-distributed/run/runEPNReceiver.cxx b/Examples/flp2epn-distributed/run/runEPNReceiver.cxx similarity index 100% rename from devices/flp2epn-distributed/run/runEPNReceiver.cxx rename to Examples/flp2epn-distributed/run/runEPNReceiver.cxx diff --git a/devices/flp2epn-distributed/run/runFLPSender.cxx b/Examples/flp2epn-distributed/run/runFLPSender.cxx similarity index 100% rename from devices/flp2epn-distributed/run/runFLPSender.cxx rename to Examples/flp2epn-distributed/run/runFLPSender.cxx diff --git a/devices/flp2epn-distributed/run/runFLPSyncSampler.cxx b/Examples/flp2epn-distributed/run/runFLPSyncSampler.cxx similarity index 100% rename from devices/flp2epn-distributed/run/runFLPSyncSampler.cxx rename to Examples/flp2epn-distributed/run/runFLPSyncSampler.cxx diff --git a/devices/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in b/Examples/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in similarity index 100% rename from devices/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in rename to Examples/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in diff --git a/devices/flp2epn-distributed/runO2Prototype/flp_epn_hosts.cfg b/Examples/flp2epn-distributed/runO2Prototype/flp_epn_hosts.cfg similarity index 100% rename from devices/flp2epn-distributed/runO2Prototype/flp_epn_hosts.cfg rename to Examples/flp2epn-distributed/runO2Prototype/flp_epn_hosts.cfg diff --git a/devices/flp2epn-distributed/runO2Prototype/flp_epn_topology.xml b/Examples/flp2epn-distributed/runO2Prototype/flp_epn_topology.xml similarity index 100% rename from devices/flp2epn-distributed/runO2Prototype/flp_epn_topology.xml rename to Examples/flp2epn-distributed/runO2Prototype/flp_epn_topology.xml diff --git a/devices/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx b/Examples/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx similarity index 100% rename from devices/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx rename to Examples/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx diff --git a/devices/flp2epn-distributed/runO2Prototype/runFLPSender.cxx b/Examples/flp2epn-distributed/runO2Prototype/runFLPSender.cxx similarity index 100% rename from devices/flp2epn-distributed/runO2Prototype/runFLPSender.cxx rename to Examples/flp2epn-distributed/runO2Prototype/runFLPSender.cxx diff --git a/devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx b/Examples/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx similarity index 100% rename from devices/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx rename to Examples/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx diff --git a/devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in b/Examples/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in similarity index 100% rename from devices/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in rename to Examples/flp2epn-distributed/test/testFLP2EPN-distributed.sh.in diff --git a/devices/flp2epn/CMakeLists.txt b/Examples/flp2epn/CMakeLists.txt similarity index 81% rename from devices/flp2epn/CMakeLists.txt rename to Examples/flp2epn/CMakeLists.txt index 02260d3c01cad..cbafe788fdbc0 100644 --- a/devices/flp2epn/CMakeLists.txt +++ b/Examples/flp2epn/CMakeLists.txt @@ -1,9 +1,9 @@ set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/devices/flp2epn + ${CMAKE_SOURCE_DIR}/Examples/flp2epn ) set(SYSTEM_INCLUDE_DIRECTORIES - ${BASE_INCLUDE_DIRECTORIES} + ${BASE_INCLUDE_DIRECTORIES} ${Boost_INCLUDE_DIR} ${FAIRROOT_INCLUDE_DIR} ${ZMQ_INCLUDE_DIR} @@ -13,8 +13,8 @@ set(SYSTEM_INCLUDE_DIRECTORIES include_directories(${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) -configure_file( ${CMAKE_SOURCE_DIR}/devices/flp2epn/run/startFLP2EPN.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN.sh ) -configure_file( ${CMAKE_SOURCE_DIR}/devices/flp2epn/run/startMerger.sh.in ${CMAKE_BINARY_DIR}/bin/startMerger.sh ) +configure_file( ${CMAKE_SOURCE_DIR}/Examples/flp2epn/run/startFLP2EPN.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN.sh ) +configure_file( ${CMAKE_SOURCE_DIR}/Examples/flp2epn/run/startMerger.sh.in ${CMAKE_BINARY_DIR}/bin/startMerger.sh ) set(LINK_DIRECTORIES ${Boost_LIBRARY_DIRS} @@ -60,7 +60,7 @@ Set(Exe_Names testMerger ) -set(Exe_Source +set(Exe_Source run/runFLP.cxx run/runEPN.cxx run/runEPN_M.cxx diff --git a/devices/flp2epn/O2EPNex.cxx b/Examples/flp2epn/O2EPNex.cxx similarity index 100% rename from devices/flp2epn/O2EPNex.cxx rename to Examples/flp2epn/O2EPNex.cxx diff --git a/devices/flp2epn/O2EPNex.h b/Examples/flp2epn/O2EPNex.h similarity index 100% rename from devices/flp2epn/O2EPNex.h rename to Examples/flp2epn/O2EPNex.h diff --git a/devices/flp2epn/O2EpnMerger.cxx b/Examples/flp2epn/O2EpnMerger.cxx similarity index 100% rename from devices/flp2epn/O2EpnMerger.cxx rename to Examples/flp2epn/O2EpnMerger.cxx diff --git a/devices/flp2epn/O2EpnMerger.h b/Examples/flp2epn/O2EpnMerger.h similarity index 100% rename from devices/flp2epn/O2EpnMerger.h rename to Examples/flp2epn/O2EpnMerger.h diff --git a/devices/flp2epn/O2FLPex.cxx b/Examples/flp2epn/O2FLPex.cxx similarity index 100% rename from devices/flp2epn/O2FLPex.cxx rename to Examples/flp2epn/O2FLPex.cxx diff --git a/devices/flp2epn/O2FLPex.h b/Examples/flp2epn/O2FLPex.h similarity index 100% rename from devices/flp2epn/O2FLPex.h rename to Examples/flp2epn/O2FLPex.h diff --git a/devices/flp2epn/O2Merger.cxx b/Examples/flp2epn/O2Merger.cxx similarity index 100% rename from devices/flp2epn/O2Merger.cxx rename to Examples/flp2epn/O2Merger.cxx diff --git a/devices/flp2epn/O2Merger.h b/Examples/flp2epn/O2Merger.h similarity index 100% rename from devices/flp2epn/O2Merger.h rename to Examples/flp2epn/O2Merger.h diff --git a/devices/flp2epn/O2Proxy.cxx b/Examples/flp2epn/O2Proxy.cxx similarity index 100% rename from devices/flp2epn/O2Proxy.cxx rename to Examples/flp2epn/O2Proxy.cxx diff --git a/devices/flp2epn/O2Proxy.h b/Examples/flp2epn/O2Proxy.h similarity index 100% rename from devices/flp2epn/O2Proxy.h rename to Examples/flp2epn/O2Proxy.h diff --git a/devices/flp2epn/run/runEPN.cxx b/Examples/flp2epn/run/runEPN.cxx similarity index 100% rename from devices/flp2epn/run/runEPN.cxx rename to Examples/flp2epn/run/runEPN.cxx diff --git a/devices/flp2epn/run/runEPN_M.cxx b/Examples/flp2epn/run/runEPN_M.cxx similarity index 100% rename from devices/flp2epn/run/runEPN_M.cxx rename to Examples/flp2epn/run/runEPN_M.cxx diff --git a/devices/flp2epn/run/runFLP.cxx b/Examples/flp2epn/run/runFLP.cxx similarity index 100% rename from devices/flp2epn/run/runFLP.cxx rename to Examples/flp2epn/run/runFLP.cxx diff --git a/devices/flp2epn/run/runMerger.cxx b/Examples/flp2epn/run/runMerger.cxx similarity index 100% rename from devices/flp2epn/run/runMerger.cxx rename to Examples/flp2epn/run/runMerger.cxx diff --git a/devices/flp2epn/run/runProxy.cxx b/Examples/flp2epn/run/runProxy.cxx similarity index 100% rename from devices/flp2epn/run/runProxy.cxx rename to Examples/flp2epn/run/runProxy.cxx diff --git a/devices/flp2epn/run/startFLP2EPN.sh.in b/Examples/flp2epn/run/startFLP2EPN.sh.in similarity index 100% rename from devices/flp2epn/run/startFLP2EPN.sh.in rename to Examples/flp2epn/run/startFLP2EPN.sh.in diff --git a/devices/flp2epn/run/startMerger.sh.in b/Examples/flp2epn/run/startMerger.sh.in similarity index 100% rename from devices/flp2epn/run/startMerger.sh.in rename to Examples/flp2epn/run/startMerger.sh.in diff --git a/devices/CMakeLists.txt b/Utilities/CMakeLists.txt similarity index 57% rename from devices/CMakeLists.txt rename to Utilities/CMakeLists.txt index 4c02cc22bc5eb..b3a8be9f962fa 100644 --- a/devices/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -1,6 +1,5 @@ -add_subdirectory (flp2epn) -add_subdirectory (flp2epn-distributed) if(ALIROOT) add_subdirectory (hough) endif(ALIROOT) add_subdirectory (aliceHLTwrapper) +add_subdirectory (Qa) diff --git a/o2qa/CMakeLists.txt b/Utilities/Qa/CMakeLists.txt similarity index 92% rename from o2qa/CMakeLists.txt rename to Utilities/Qa/CMakeLists.txt index 83751b3a69df3..282dc7c9de992 100755 --- a/o2qa/CMakeLists.txt +++ b/Utilities/Qa/CMakeLists.txt @@ -2,11 +2,10 @@ Set(INCLUDE_DIRECTORIES ${ROOT_INCLUDE_DIR} ${BASE_INCLUDE_DIRECTORIES} ${FAIRROOT_INCLUDE_DIR} - ${AlFa_DIR}/include - ${CMAKE_SOURCE_DIR}/o2qa - ${CMAKE_SOURCE_DIR}/o2qa/Merger - ${CMAKE_SOURCE_DIR}/o2qa/Producer - ${CMAKE_SOURCE_DIR}/o2qa/Viewer + ${CMAKE_SOURCE_DIR}/Utilities/Qa + ${CMAKE_SOURCE_DIR}/Utilities/Qa/Merger + ${CMAKE_SOURCE_DIR}/Utilities/Qa/Producer + ${CMAKE_SOURCE_DIR}/Utilities/Qa/Viewer ) Set(SYSTEM_INCLUDE_DIRECTORIES @@ -20,7 +19,6 @@ Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES ${Boost_LIBRARY_DIRS} ${FAIRROOT_LIBRARY_DIR} - ${AlFa_DIR}/lib ${ROOT_LIBRARY_DIR} ) diff --git a/o2qa/HistogramTMessage.h b/Utilities/Qa/HistogramTMessage.h similarity index 100% rename from o2qa/HistogramTMessage.h rename to Utilities/Qa/HistogramTMessage.h diff --git a/o2qa/Merger/Merger.cxx b/Utilities/Qa/Merger/Merger.cxx similarity index 100% rename from o2qa/Merger/Merger.cxx rename to Utilities/Qa/Merger/Merger.cxx diff --git a/o2qa/Merger/Merger.h b/Utilities/Qa/Merger/Merger.h similarity index 100% rename from o2qa/Merger/Merger.h rename to Utilities/Qa/Merger/Merger.h diff --git a/o2qa/Merger/MergerDevice.cxx b/Utilities/Qa/Merger/MergerDevice.cxx similarity index 100% rename from o2qa/Merger/MergerDevice.cxx rename to Utilities/Qa/Merger/MergerDevice.cxx diff --git a/o2qa/Merger/MergerDevice.h b/Utilities/Qa/Merger/MergerDevice.h similarity index 100% rename from o2qa/Merger/MergerDevice.h rename to Utilities/Qa/Merger/MergerDevice.h diff --git a/o2qa/Merger/Tests/MergerTestSuite.cxx b/Utilities/Qa/Merger/Tests/MergerTestSuite.cxx similarity index 100% rename from o2qa/Merger/Tests/MergerTestSuite.cxx rename to Utilities/Qa/Merger/Tests/MergerTestSuite.cxx diff --git a/o2qa/Producer/HistogramProducer.cxx b/Utilities/Qa/Producer/HistogramProducer.cxx similarity index 100% rename from o2qa/Producer/HistogramProducer.cxx rename to Utilities/Qa/Producer/HistogramProducer.cxx diff --git a/o2qa/Producer/HistogramProducer.h b/Utilities/Qa/Producer/HistogramProducer.h similarity index 100% rename from o2qa/Producer/HistogramProducer.h rename to Utilities/Qa/Producer/HistogramProducer.h diff --git a/o2qa/Producer/Producer.h b/Utilities/Qa/Producer/Producer.h similarity index 100% rename from o2qa/Producer/Producer.h rename to Utilities/Qa/Producer/Producer.h diff --git a/o2qa/Producer/ProducerDevice.cxx b/Utilities/Qa/Producer/ProducerDevice.cxx similarity index 100% rename from o2qa/Producer/ProducerDevice.cxx rename to Utilities/Qa/Producer/ProducerDevice.cxx diff --git a/o2qa/Producer/ProducerDevice.h b/Utilities/Qa/Producer/ProducerDevice.h similarity index 100% rename from o2qa/Producer/ProducerDevice.h rename to Utilities/Qa/Producer/ProducerDevice.h diff --git a/o2qa/Producer/Tests/ProducerTestSuite.cxx b/Utilities/Qa/Producer/Tests/ProducerTestSuite.cxx similarity index 100% rename from o2qa/Producer/Tests/ProducerTestSuite.cxx rename to Utilities/Qa/Producer/Tests/ProducerTestSuite.cxx diff --git a/o2qa/Producer/TreeProducer.cxx b/Utilities/Qa/Producer/TreeProducer.cxx similarity index 100% rename from o2qa/Producer/TreeProducer.cxx rename to Utilities/Qa/Producer/TreeProducer.cxx diff --git a/o2qa/Producer/TreeProducer.h b/Utilities/Qa/Producer/TreeProducer.h similarity index 100% rename from o2qa/Producer/TreeProducer.h rename to Utilities/Qa/Producer/TreeProducer.h diff --git a/o2qa/README.md b/Utilities/Qa/README.md similarity index 100% rename from o2qa/README.md rename to Utilities/Qa/README.md diff --git a/o2qa/Viewer/Tests/ViewerTestSuite.cxx b/Utilities/Qa/Viewer/Tests/ViewerTestSuite.cxx similarity index 100% rename from o2qa/Viewer/Tests/ViewerTestSuite.cxx rename to Utilities/Qa/Viewer/Tests/ViewerTestSuite.cxx diff --git a/o2qa/Viewer/ViewerDevice.cxx b/Utilities/Qa/Viewer/ViewerDevice.cxx similarity index 100% rename from o2qa/Viewer/ViewerDevice.cxx rename to Utilities/Qa/Viewer/ViewerDevice.cxx diff --git a/o2qa/Viewer/ViewerDevice.h b/Utilities/Qa/Viewer/ViewerDevice.h similarity index 100% rename from o2qa/Viewer/ViewerDevice.h rename to Utilities/Qa/Viewer/ViewerDevice.h diff --git a/o2qa/runMerger.cxx b/Utilities/Qa/runMerger.cxx similarity index 100% rename from o2qa/runMerger.cxx rename to Utilities/Qa/runMerger.cxx diff --git a/o2qa/runProducer.cxx b/Utilities/Qa/runProducer.cxx similarity index 100% rename from o2qa/runProducer.cxx rename to Utilities/Qa/runProducer.cxx diff --git a/o2qa/runViewerDevice.cxx b/Utilities/Qa/runViewerDevice.cxx similarity index 100% rename from o2qa/runViewerDevice.cxx rename to Utilities/Qa/runViewerDevice.cxx diff --git a/devices/aliceHLTwrapper/.gitignore b/Utilities/aliceHLTwrapper/.gitignore similarity index 100% rename from devices/aliceHLTwrapper/.gitignore rename to Utilities/aliceHLTwrapper/.gitignore diff --git a/devices/aliceHLTwrapper/AliHLTDataTypes.h b/Utilities/aliceHLTwrapper/AliHLTDataTypes.h similarity index 100% rename from devices/aliceHLTwrapper/AliHLTDataTypes.h rename to Utilities/aliceHLTwrapper/AliHLTDataTypes.h diff --git a/devices/aliceHLTwrapper/AliHLTHOMERData.h b/Utilities/aliceHLTwrapper/AliHLTHOMERData.h similarity index 100% rename from devices/aliceHLTwrapper/AliHLTHOMERData.h rename to Utilities/aliceHLTwrapper/AliHLTHOMERData.h diff --git a/devices/aliceHLTwrapper/AliHLTHOMERReader.h b/Utilities/aliceHLTwrapper/AliHLTHOMERReader.h similarity index 100% rename from devices/aliceHLTwrapper/AliHLTHOMERReader.h rename to Utilities/aliceHLTwrapper/AliHLTHOMERReader.h diff --git a/devices/aliceHLTwrapper/AliHLTHOMERWriter.h b/Utilities/aliceHLTwrapper/AliHLTHOMERWriter.h similarity index 100% rename from devices/aliceHLTwrapper/AliHLTHOMERWriter.h rename to Utilities/aliceHLTwrapper/AliHLTHOMERWriter.h diff --git a/devices/aliceHLTwrapper/CMakeLists.txt b/Utilities/aliceHLTwrapper/CMakeLists.txt similarity index 100% rename from devices/aliceHLTwrapper/CMakeLists.txt rename to Utilities/aliceHLTwrapper/CMakeLists.txt diff --git a/devices/aliceHLTwrapper/Component.cxx b/Utilities/aliceHLTwrapper/Component.cxx similarity index 100% rename from devices/aliceHLTwrapper/Component.cxx rename to Utilities/aliceHLTwrapper/Component.cxx diff --git a/devices/aliceHLTwrapper/Component.h b/Utilities/aliceHLTwrapper/Component.h similarity index 100% rename from devices/aliceHLTwrapper/Component.h rename to Utilities/aliceHLTwrapper/Component.h diff --git a/devices/aliceHLTwrapper/EventSampler.cxx b/Utilities/aliceHLTwrapper/EventSampler.cxx similarity index 100% rename from devices/aliceHLTwrapper/EventSampler.cxx rename to Utilities/aliceHLTwrapper/EventSampler.cxx diff --git a/devices/aliceHLTwrapper/EventSampler.h b/Utilities/aliceHLTwrapper/EventSampler.h similarity index 100% rename from devices/aliceHLTwrapper/EventSampler.h rename to Utilities/aliceHLTwrapper/EventSampler.h diff --git a/devices/aliceHLTwrapper/HOMERFactory.cxx b/Utilities/aliceHLTwrapper/HOMERFactory.cxx similarity index 100% rename from devices/aliceHLTwrapper/HOMERFactory.cxx rename to Utilities/aliceHLTwrapper/HOMERFactory.cxx diff --git a/devices/aliceHLTwrapper/HOMERFactory.h b/Utilities/aliceHLTwrapper/HOMERFactory.h similarity index 100% rename from devices/aliceHLTwrapper/HOMERFactory.h rename to Utilities/aliceHLTwrapper/HOMERFactory.h diff --git a/devices/aliceHLTwrapper/MessageFormat.cxx b/Utilities/aliceHLTwrapper/MessageFormat.cxx similarity index 100% rename from devices/aliceHLTwrapper/MessageFormat.cxx rename to Utilities/aliceHLTwrapper/MessageFormat.cxx diff --git a/devices/aliceHLTwrapper/MessageFormat.h b/Utilities/aliceHLTwrapper/MessageFormat.h similarity index 100% rename from devices/aliceHLTwrapper/MessageFormat.h rename to Utilities/aliceHLTwrapper/MessageFormat.h diff --git a/devices/aliceHLTwrapper/README b/Utilities/aliceHLTwrapper/README similarity index 100% rename from devices/aliceHLTwrapper/README rename to Utilities/aliceHLTwrapper/README diff --git a/devices/aliceHLTwrapper/SystemInterface.cxx b/Utilities/aliceHLTwrapper/SystemInterface.cxx similarity index 100% rename from devices/aliceHLTwrapper/SystemInterface.cxx rename to Utilities/aliceHLTwrapper/SystemInterface.cxx diff --git a/devices/aliceHLTwrapper/SystemInterface.h b/Utilities/aliceHLTwrapper/SystemInterface.h similarity index 100% rename from devices/aliceHLTwrapper/SystemInterface.h rename to Utilities/aliceHLTwrapper/SystemInterface.h diff --git a/devices/aliceHLTwrapper/WrapperDevice.cxx b/Utilities/aliceHLTwrapper/WrapperDevice.cxx similarity index 100% rename from devices/aliceHLTwrapper/WrapperDevice.cxx rename to Utilities/aliceHLTwrapper/WrapperDevice.cxx diff --git a/devices/aliceHLTwrapper/WrapperDevice.h b/Utilities/aliceHLTwrapper/WrapperDevice.h similarity index 100% rename from devices/aliceHLTwrapper/WrapperDevice.h rename to Utilities/aliceHLTwrapper/WrapperDevice.h diff --git a/devices/aliceHLTwrapper/aliceHLTEventSampler.cxx b/Utilities/aliceHLTwrapper/aliceHLTEventSampler.cxx similarity index 100% rename from devices/aliceHLTwrapper/aliceHLTEventSampler.cxx rename to Utilities/aliceHLTwrapper/aliceHLTEventSampler.cxx diff --git a/devices/aliceHLTwrapper/aliceHLTWrapper.cxx b/Utilities/aliceHLTwrapper/aliceHLTWrapper.cxx similarity index 100% rename from devices/aliceHLTwrapper/aliceHLTWrapper.cxx rename to Utilities/aliceHLTwrapper/aliceHLTWrapper.cxx diff --git a/devices/aliceHLTwrapper/cluster-relay-to-tracker.sh b/Utilities/aliceHLTwrapper/cluster-relay-to-tracker.sh similarity index 100% rename from devices/aliceHLTwrapper/cluster-relay-to-tracker.sh rename to Utilities/aliceHLTwrapper/cluster-relay-to-tracker.sh diff --git a/devices/aliceHLTwrapper/launch-flp-epn.sh b/Utilities/aliceHLTwrapper/launch-flp-epn.sh similarity index 100% rename from devices/aliceHLTwrapper/launch-flp-epn.sh rename to Utilities/aliceHLTwrapper/launch-flp-epn.sh diff --git a/devices/aliceHLTwrapper/launchSimpleChain.sh b/Utilities/aliceHLTwrapper/launchSimpleChain.sh similarity index 100% rename from devices/aliceHLTwrapper/launchSimpleChain.sh rename to Utilities/aliceHLTwrapper/launchSimpleChain.sh diff --git a/devices/aliceHLTwrapper/macros/hltConfigurations.C b/Utilities/aliceHLTwrapper/macros/hltConfigurations.C similarity index 100% rename from devices/aliceHLTwrapper/macros/hltConfigurations.C rename to Utilities/aliceHLTwrapper/macros/hltConfigurations.C diff --git a/devices/aliceHLTwrapper/macros/overlayClusters.C b/Utilities/aliceHLTwrapper/macros/overlayClusters.C similarity index 100% rename from devices/aliceHLTwrapper/macros/overlayClusters.C rename to Utilities/aliceHLTwrapper/macros/overlayClusters.C diff --git a/devices/aliceHLTwrapper/macros/overlayClusters.sh b/Utilities/aliceHLTwrapper/macros/overlayClusters.sh similarity index 100% rename from devices/aliceHLTwrapper/macros/overlayClusters.sh rename to Utilities/aliceHLTwrapper/macros/overlayClusters.sh diff --git a/devices/aliceHLTwrapper/macros/runHLT.C b/Utilities/aliceHLTwrapper/macros/runHLT.C similarity index 100% rename from devices/aliceHLTwrapper/macros/runHLT.C rename to Utilities/aliceHLTwrapper/macros/runHLT.C diff --git a/devices/aliceHLTwrapper/nodelist.sh b/Utilities/aliceHLTwrapper/nodelist.sh similarity index 100% rename from devices/aliceHLTwrapper/nodelist.sh rename to Utilities/aliceHLTwrapper/nodelist.sh diff --git a/devices/aliceHLTwrapper/runComponent.cxx b/Utilities/aliceHLTwrapper/runComponent.cxx similarity index 100% rename from devices/aliceHLTwrapper/runComponent.cxx rename to Utilities/aliceHLTwrapper/runComponent.cxx diff --git a/devices/hough/CMakeLists.txt b/Utilities/hough/CMakeLists.txt similarity index 100% rename from devices/hough/CMakeLists.txt rename to Utilities/hough/CMakeLists.txt diff --git a/devices/hough/README.md b/Utilities/hough/README.md similarity index 100% rename from devices/hough/README.md rename to Utilities/hough/README.md diff --git a/devices/hough/runHough.cxx b/Utilities/hough/runHough.cxx similarity index 100% rename from devices/hough/runHough.cxx rename to Utilities/hough/runHough.cxx From 7fcbfee94ff830cc59d8d8b22e8d9c5052ec1d44 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 11 May 2016 08:30:38 +0200 Subject: [PATCH 088/135] Re-arrange the repository move the doxygen to the docs --- {doxygen => docs/doxygen}/CMakeLists.txt | 4 +- {doxygen => docs/doxygen}/README.md | 0 {doxygen => docs/doxygen}/doc_makeall.sh.in | 48 ++++++++++---------- {doxygen => docs/doxygen}/doxyfile.in | 0 {doxygen => docs/doxygen}/o2_logo.png | Bin 5 files changed, 26 insertions(+), 26 deletions(-) rename {doxygen => docs/doxygen}/CMakeLists.txt (88%) rename {doxygen => docs/doxygen}/README.md (100%) rename {doxygen => docs/doxygen}/doc_makeall.sh.in (97%) rename {doxygen => docs/doxygen}/doxyfile.in (100%) rename {doxygen => docs/doxygen}/o2_logo.png (100%) diff --git a/doxygen/CMakeLists.txt b/docs/doxygen/CMakeLists.txt similarity index 88% rename from doxygen/CMakeLists.txt rename to docs/doxygen/CMakeLists.txt index ecb447ef9fa39..7744f8f35d500 100644 --- a/doxygen/CMakeLists.txt +++ b/docs/doxygen/CMakeLists.txt @@ -17,9 +17,9 @@ IF (BUILD_DOXYGEN) SET(DOXYGEN_PROJECT_NAME AliceO2) - SET(DOXYGEN_SOURCE_DIR "${ALICEO2_SOURCE_DIR}/doxygen") + SET(DOXYGEN_SOURCE_DIR "${ALICEO2_SOURCE_DIR}/docs/doxygen") SET(DOXYGEN_PROJECT_SOURCE_DIR "${ALICEO2_SOURCE_DIR}") - SET(CBMROOT_DOXYGEN_HOME "${ALICEO2_SOURCE_DIR}/doxygen") + SET(ALICEO2_DOXYGEN_HOME "${ALICEO2_SOURCE_DIR}/docs/doxygen") SET(DOXYGEN_BINARY_LOCATIONS_DIR "${ALICEO2_SOURCE_DIR}") SET(DOXYGEN_BINARY_LOCATIONS "") diff --git a/doxygen/README.md b/docs/doxygen/README.md similarity index 100% rename from doxygen/README.md rename to docs/doxygen/README.md diff --git a/doxygen/doc_makeall.sh.in b/docs/doxygen/doc_makeall.sh.in similarity index 97% rename from doxygen/doc_makeall.sh.in rename to docs/doxygen/doc_makeall.sh.in index 34de44704066d..aba4d4e47aaab 100644 --- a/doxygen/doc_makeall.sh.in +++ b/docs/doxygen/doc_makeall.sh.in @@ -4,7 +4,7 @@ # ------------------------------------------------------------------------- # Path to several tools (_PROG to avoid the typical GZIP env var pb) -# Example: +# Example: # DOXYGEN_PROG=@DOXYGEN@ (INCLUDE(FindDoxygen.cmake)) # GZIP_PROG=@GZIP@ (INCLUDE(FindCygwin.cmake)) # HHC_PROG=@HTML_HELP_COMPILER@ (INCLUDE(FindHTMLHelp.cmake)) @@ -26,26 +26,26 @@ export WGET_PROG="@WGET@" # wget (remote file retrieval) # PROJECT_NAME: # Documentation/project name. Used in some of the resulting file names and -# xrefs to uniquify two or more projects linked together through their +# xrefs to uniquify two or more projects linked together through their # Doxygen's tag files. Mandatory for each documentation set. # Note: might be the same as the doxyfile's PROJECT_NAME -# Example: +# Example: # PROJECT_NAME=VTK # export PROJECT_NAME=@DOXYGEN_PROJECT_NAME@ # PATH_TO_VTK_DOX_SCRIPTS: # Path to the directory holding the Perl scripts used to produce the VTK doc -# in Doxygen format. You need the VTK source files or a local copy of +# in Doxygen format. You need the VTK source files or a local copy of # these scripts. -# Example: +# Example: # PATH_TO_VTK_DOX_SCRIPTS=@CMAKE_CURRENT_SOURCE_DIR@ # #export PATH_TO_VTK_DOX_SCRIPTS="@DOXYGEN_SOURCE_DIR@" # SOURCE_DIR: # Source directory. The top directory of the source files. -# Example: +# Example: # SOURCE_DIR=@DOXYGEN_PROJECT_SOURCE_DIR@ # export SOURCE_DIR="@DOXYGEN_PROJECT_SOURCE_DIR@" @@ -54,7 +54,7 @@ export SOURCE_DIR="@DOXYGEN_PROJECT_SOURCE_DIR@" # Relative path from the top directory of the source files to the directory # (or top directory) holding the files to document. Useful if several parts # of the same source directory should be documented separately. -# Example: +# Example: # REL_PATH_TO_TOP=. # REL_PATH_TO_TOP=framework/src # @@ -66,7 +66,7 @@ export REL_PATH_TO_TOP=. # This directory is erased at the end of this script, unless you comment # the corresponding line. # DOXTEMP might be used to simplify the syntax. -# Example: +# Example: # DOXTEMP=DOXTEMP=@CMAKE_CURRENT_BINARY_DIR@ # INTERMEDIATE_DOX_DIR=$DOXTEMP/dox # @@ -74,10 +74,10 @@ export DOXTEMP="@CMAKE_CURRENT_BINARY_DIR@" export INTERMEDIATE_DOX_DIR="$DOXTEMP/dox" # CVSWEB_CHECKOUT, CVSWEB_CHECKOUT_SUFFIX: -# URL to the CVSWeb of the project, in checkout mode (i.e. appending a file +# URL to the CVSWeb of the project, in checkout mode (i.e. appending a file # name to this URL will retrieve the contents of the file). In the same way # CVSWEB_CHECKOUT_SUFFIX is appended to the result. -# Example: +# Example: # CVSWEB_CHECKOUT=http://public.kitware.com/cgi-bin/cvsweb.cgi/~checkout~/VTK # CVSWEB_CHECKOUT_SUFFIX=?cvsroot=CMake # @@ -86,7 +86,7 @@ export INTERMEDIATE_DOX_DIR="$DOXTEMP/dox" # DOXYFILE: # Path to the Doxygen configuration file (i.e. doxyfile). -# Example: +# Example: # DOXYFILE=$DOXTEMP/doxyfile # export DOXYFILE="$DOXTEMP/doxyfile" @@ -96,7 +96,7 @@ export DOXYFILE="$DOXTEMP/doxyfile" # Note: should be the same as your doxyfile's OUTPUT_DIRECTORY # If ON, allows the output directory to be erased when some advanced output # file have been produced (HTML Help, or TAR archive for example). -# Example: +# Example: # OUTPUT_DIRECTORY=$DOXTEMP/doc # ALLOW_ERASE_OUTPUT_DIRECTORY=ON # @@ -104,16 +104,16 @@ export OUTPUT_DIRECTORY="$DOXTEMP/doc" export ALLOW_ERASE_OUTPUT_DIRECTORY=ON # COMPILE_HTML_HELP RESULTING_HTML_HELP_FILE: -# Compile the CHM (Compressed HTML) HTML Help file, name of the resulting -# file. If set to ON and name is non-empty these options will actually +# Compile the CHM (Compressed HTML) HTML Help file, name of the resulting +# file. If set to ON and name is non-empty these options will actually # trigger the HTML-Help compiler to create the CHM. The resulting # file (usually index.chm) will be renamed to this name. # Note: if ON, the whole $OUTPUT_DIRECTORY will be erased at the end of -# this script, since this file is considered to be one of the +# this script, since this file is considered to be one of the # advanced final output, unless ALLOW_ERASE_OUTPUT_DIRECTORY is OFF -# Note: your doxyfile should be configured to enable HTML Help creation +# Note: your doxyfile should be configured to enable HTML Help creation # (using GENERATE_HTML = YES, GENERATE_HTMLHELP = YES) -# Example: +# Example: # COMPILE_HTML_HELP=ON # COMPILE_HTML_HELP=@DOCUMENTATION_HTML_HELP@ # RESULTING_HTML_HELP_FILE=$DOXTEMP/vtk4.chm @@ -123,10 +123,10 @@ export ALLOW_ERASE_OUTPUT_DIRECTORY=ON # CREATE_HTML_TARZ_ARCHIVE RESULTING_HTML_TARZ_ARCHIVE_FILE: # Create a compressed (gzip) tar archive of the html directory (located -# under the OUTPUT_DIRECTORY), and name of the resulting archive file. -# Note: your doxyfile should be configured to enable HTML creation +# under the OUTPUT_DIRECTORY), and name of the resulting archive file. +# Note: your doxyfile should be configured to enable HTML creation # (using GENERATE_HTML = YES) -# Example: +# Example: # CREATE_HTML_TARZ_ARCHIVE=ON # CREATE_HTML_TARZ_ARCHIVE=@DOCUMENTATION_HTML_TARZ@ # RESULTING_HTML_TARZ_ARCHIVE_FILE=$DOXTEMP/vtk4-html.tar.gz @@ -137,13 +137,13 @@ export ALLOW_ERASE_OUTPUT_DIRECTORY=ON # DOWNLOAD_VTK_TAGFILE VTK_TAGFILE VTK_TAGFILE_REMOTE_DIR VTK_TAGFILE_DEST_DIR: # Download the VTK tag file, name, remote location and destination dir of this # tag file. If set to ON, the tag file is retrieved from its remote location -# using wget and stored in the destination dir. +# using wget and stored in the destination dir. # The tag file is expected to be compressed using gzip, but DO NOT include # the .gz extension in VTK_TAGFILE. # Note: your doxyfile must be tailored to make use-of or create this tag file. # (using TAGFILES = vtk4-nightly.tag=http://www.vtk.org/doc/nightly/html # or GENERATE_TAGFILE = "@FOO_BINARY_DIR@/Utilities/Doxygen/vtk4.tag") -# Example: +# Example: # DOWNLOAD_VTK_TAGFILE=OFF # VTK_TAGFILE=vtk4-nightly.tag # VTK_TAGFILE_REMOTE_DIR=http://www.vtk.org/doc/nightly/html @@ -222,8 +222,8 @@ cd "${DOXTEMP}" || echoexit "Cannot find Doxygen output directory: ${DOXTEMP}" # -O "$VTK_TAGFILE_DEST_DIR/$VTK_TAGFILE.gz" # if test "x$GZIP_PROG" != "xNOTFOUND" ; then # $GZIP_PROG -f -d "$VTK_TAGFILE_DEST_DIR/$VTK_TAGFILE.gz" -# fi -# fi +# fi +# fi # fi #fi diff --git a/doxygen/doxyfile.in b/docs/doxygen/doxyfile.in similarity index 100% rename from doxygen/doxyfile.in rename to docs/doxygen/doxyfile.in diff --git a/doxygen/o2_logo.png b/docs/doxygen/o2_logo.png similarity index 100% rename from doxygen/o2_logo.png rename to docs/doxygen/o2_logo.png From 03a5096d65b8793e9c6c1729b5bb918431f72660 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 11 May 2016 10:13:54 +0200 Subject: [PATCH 089/135] Re-arrange the repository Clean the includes --- Common/Field/CMakeLists.txt | 1 + Common/Field/src/MagneticField.cxx | 4 ++-- Common/Field/src/MagneticWrapperChebyshev.cxx | 2 +- DataFormats/simulation/src/MCTrack.cxx | 2 +- DataFormats/simulation/src/Stack.cxx | 4 ++-- Detectors/Base/CMakeLists.txt | 4 +++- Detectors/Base/src/Detector.cxx | 2 +- Detectors/Base/src/TrackReference.cxx | 2 +- Detectors/ITSMFT/ITS/base/CMakeLists.txt | 4 +++- Detectors/ITSMFT/ITS/base/src/ContainerFactory.cxx | 2 +- .../ITSMFT/ITS/base/src/MisalignmentParameter.cxx | 2 +- Detectors/ITSMFT/ITS/simulation/CMakeLists.txt | 4 +++- .../ITS/simulation/include/DigitWriteoutBuffer.h | 2 +- Detectors/ITSMFT/ITS/simulation/include/Digitizer.h | 2 +- .../ITS/simulation/include/UpgradeGeometryTGeo.h | 2 +- .../simulation/include/UpgradeSegmentationPixel.h | 2 +- .../ITSMFT/ITS/simulation/include/UpgradeV1Layer.h | 4 ++-- Detectors/ITSMFT/ITS/simulation/src/Chip.cxx | 6 +++--- Detectors/ITSMFT/ITS/simulation/src/Detector.cxx | 12 ++++++------ Detectors/ITSMFT/ITS/simulation/src/Digit.cxx | 2 +- .../ITSMFT/ITS/simulation/src/DigitContainer.cxx | 8 ++++---- Detectors/ITSMFT/ITS/simulation/src/DigitLayer.cxx | 4 ++-- Detectors/ITSMFT/ITS/simulation/src/DigitStave.cxx | 4 ++-- .../ITS/simulation/src/DigitWriteoutBuffer.cxx | 2 +- Detectors/ITSMFT/ITS/simulation/src/Digitizer.cxx | 10 +++++----- .../ITSMFT/ITS/simulation/src/DigitizerTask.cxx | 6 +++--- .../ITSMFT/ITS/simulation/src/GeometryHandler.cxx | 2 +- .../ITSMFT/ITS/simulation/src/GeometryManager.cxx | 2 +- Detectors/ITSMFT/ITS/simulation/src/Point.cxx | 2 +- Detectors/ITSMFT/ITS/simulation/src/Segmentation.cxx | 2 +- .../ITS/simulation/src/UpgradeGeometryTGeo.cxx | 8 ++++---- .../ITS/simulation/src/UpgradeSegmentationPixel.cxx | 4 ++-- .../ITSMFT/ITS/simulation/src/UpgradeV1Layer.cxx | 6 +++--- Detectors/ITSMFT/ITS/simulation/src/V11Geometry.cxx | 2 +- Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt | 8 +++++--- .../ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx | 2 +- Detectors/Passive/CMakeLists.txt | 4 +++- Detectors/Passive/src/Cave.cxx | 4 ++-- Detectors/Passive/src/GeoCave.cxx | 2 +- Detectors/Passive/src/Magnet.cxx | 2 +- Detectors/Passive/src/PassiveContFact.cxx | 2 +- Detectors/Passive/src/Pipe.cxx | 2 +- Detectors/TPC/base/CMakeLists.txt | 5 +++-- Detectors/TPC/base/src/ContainerFactory.cxx | 2 +- Detectors/TPC/simulation/CMakeLists.txt | 6 ++++-- Detectors/TPC/simulation/src/Detector.cxx | 4 ++-- Detectors/TPC/simulation/src/Point.cxx | 2 +- 47 files changed, 93 insertions(+), 79 deletions(-) diff --git a/Common/Field/CMakeLists.txt b/Common/Field/CMakeLists.txt index 0561f7d526661..fd50b6caafe3b 100644 --- a/Common/Field/CMakeLists.txt +++ b/Common/Field/CMakeLists.txt @@ -5,6 +5,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/Common/Field + ${CMAKE_SOURCE_DIR}/Common/Field/include ${CMAKE_SOURCE_DIR}/header ) diff --git a/Common/Field/src/MagneticField.cxx b/Common/Field/src/MagneticField.cxx index 090e9ee1673fb..c2ff7c9a12e2a 100644 --- a/Common/Field/src/MagneticField.cxx +++ b/Common/Field/src/MagneticField.cxx @@ -2,8 +2,8 @@ /// \brief Implementation of the MagF class /// \author ruben.shahoyan@cern.ch -#include "include/MagneticField.h" -#include "include/MagneticWrapperChebyshev.h" // for MagneticWrapperChebyshev +#include "MagneticField.h" +#include "MagneticWrapperChebyshev.h" // for MagneticWrapperChebyshev #include // for TFile #include // for TPRegexp #include // for TSystem, gSystem diff --git a/Common/Field/src/MagneticWrapperChebyshev.cxx b/Common/Field/src/MagneticWrapperChebyshev.cxx index 862c7fc9aee4c..abd0192834cb0 100644 --- a/Common/Field/src/MagneticWrapperChebyshev.cxx +++ b/Common/Field/src/MagneticWrapperChebyshev.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the MagWrapCheb class /// \author ruben.shahoyan@cern.ch 20/03/2007 -#include "include/MagneticWrapperChebyshev.h" +#include "MagneticWrapperChebyshev.h" #include // for TArrayF #include // for TArrayI #include // for TSystem, gSystem diff --git a/DataFormats/simulation/src/MCTrack.cxx b/DataFormats/simulation/src/MCTrack.cxx index 9a0b0e7eb023f..049ce9970127f 100644 --- a/DataFormats/simulation/src/MCTrack.cxx +++ b/DataFormats/simulation/src/MCTrack.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the MCTrack class /// \author M. Al-Turany - June 2014 -#include "include/MCTrack.h" +#include "MCTrack.h" #include "FairLogger.h" #include "TDatabasePDG.h" diff --git a/DataFormats/simulation/src/Stack.cxx b/DataFormats/simulation/src/Stack.cxx index fff951972831c..b36a72057224f 100644 --- a/DataFormats/simulation/src/Stack.cxx +++ b/DataFormats/simulation/src/Stack.cxx @@ -2,8 +2,8 @@ /// \brief Implementation of the Stack class /// \author M. Al-Turany - June 2014 -#include "include/Stack.h" -#include "include/MCTrack.h" // for MCTrack +#include "Stack.h" +#include "MCTrack.h" // for MCTrack #include "FairDetector.h" // for FairDetector #include "FairLogger.h" // for MESSAGE_ORIGIN, FairLogger diff --git a/Detectors/Base/CMakeLists.txt b/Detectors/Base/CMakeLists.txt index fcb352dbd8e73..091a9199fc925 100644 --- a/Detectors/Base/CMakeLists.txt +++ b/Detectors/Base/CMakeLists.txt @@ -1,5 +1,7 @@ set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/Detectors/Base + ${CMAKE_SOURCE_DIR}/Detectors/Base/ + ${CMAKE_SOURCE_DIR}/Detectors/Base/include + ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/Base/src/Detector.cxx b/Detectors/Base/src/Detector.cxx index 59d74d3089c77..26ec81e43b848 100644 --- a/Detectors/Base/src/Detector.cxx +++ b/Detectors/Base/src/Detector.cxx @@ -1,7 +1,7 @@ /// \file Detector.cxx /// \brief Implementation of the Detector class -#include "include/Detector.h" +#include "Detector.h" #include // for TVirtualMC, gMC #include "TString.h" // for TString diff --git a/Detectors/Base/src/TrackReference.cxx b/Detectors/Base/src/TrackReference.cxx index d22dcde4a738e..7ff07edb3ca0a 100644 --- a/Detectors/Base/src/TrackReference.cxx +++ b/Detectors/Base/src/TrackReference.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the TrackReference class /// \author Sylwester Radomski (S.Radomski@gsi.de) GSI, Jan 31, 2003 -#include "include/TrackReference.h" +#include "TrackReference.h" #include "TVirtualMC.h" // for TVirtualMC, gMC #include diff --git a/Detectors/ITSMFT/ITS/base/CMakeLists.txt b/Detectors/ITSMFT/ITS/base/CMakeLists.txt index 403ca5d8a7726..9fd7027c7ccf6 100644 --- a/Detectors/ITSMFT/ITS/base/CMakeLists.txt +++ b/Detectors/ITSMFT/ITS/base/CMakeLists.txt @@ -1,6 +1,8 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/include + ) set(SYSTEM_INCLUDE_DIRECTORIES @@ -34,7 +36,7 @@ set(HEADERS Set(LINKDEF src/itsBaseLinkDef.h) Set(LIBRARY_NAME itsBase) Set(DEPENDENCIES - AliceO2Base ParBase + AliceO2Base ParBase ) GENERATE_LIBRARY() diff --git a/Detectors/ITSMFT/ITS/base/src/ContainerFactory.cxx b/Detectors/ITSMFT/ITS/base/src/ContainerFactory.cxx index f711bf14ecbd1..360cfcf4fad7f 100644 --- a/Detectors/ITSMFT/ITS/base/src/ContainerFactory.cxx +++ b/Detectors/ITSMFT/ITS/base/src/ContainerFactory.cxx @@ -1,7 +1,7 @@ /// \file ContainerFactory.cxx /// \brief Implementation of the ContainerFactory class -#include "include/ContainerFactory.h" +#include "ContainerFactory.h" #include "FairRuntimeDb.h" // for FairRuntimeDb #include "TString.h" // for TString class FairParSet; diff --git a/Detectors/ITSMFT/ITS/base/src/MisalignmentParameter.cxx b/Detectors/ITSMFT/ITS/base/src/MisalignmentParameter.cxx index 4ef9f28580976..38ef20bb2211f 100644 --- a/Detectors/ITSMFT/ITS/base/src/MisalignmentParameter.cxx +++ b/Detectors/ITSMFT/ITS/base/src/MisalignmentParameter.cxx @@ -1,7 +1,7 @@ /// \file MisalignmentParameter.cxx /// \brief Implementation of the MisalignmentParameter class -#include "include/MisalignmentParameter.h" +#include "MisalignmentParameter.h" #include "FairParamList.h" diff --git a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt index 5d94edd0d8421..1a210673e1146 100644 --- a/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt +++ b/Detectors/ITSMFT/ITS/simulation/CMakeLists.txt @@ -1,7 +1,9 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/include + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/include ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/ + ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/ITSMFT/ITS/simulation/include/DigitWriteoutBuffer.h b/Detectors/ITSMFT/ITS/simulation/include/DigitWriteoutBuffer.h index 655d4f26eee66..7dbff21f82de0 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/DigitWriteoutBuffer.h +++ b/Detectors/ITSMFT/ITS/simulation/include/DigitWriteoutBuffer.h @@ -13,7 +13,7 @@ #include // for TString #include "FairWriteoutBuffer.h" // for FairWriteoutBuffer #include "Rtypes.h" // for DigitWriteoutBuffer::Class, Bool_t, etc -#include "include/Digit.h" // for Digit +#include "Digit.h" // for Digit namespace AliceO2 { namespace ITS { diff --git a/Detectors/ITSMFT/ITS/simulation/include/Digitizer.h b/Detectors/ITSMFT/ITS/simulation/include/Digitizer.h index 8465c1fca9d73..1bee10fca7ed3 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/Digitizer.h +++ b/Detectors/ITSMFT/ITS/simulation/include/Digitizer.h @@ -5,7 +5,7 @@ #include "Rtypes.h" // for Digitizer::Class, Double_t, ClassDef, etc #include "TObject.h" // for TObject -#include "include/Chip.h" +#include "Chip.h" class TClonesArray; // lines 13-13 namespace AliceO2 { namespace ITS { class DigitContainer; } } // lines 19-19 diff --git a/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h index 1876c00f0df4a..e2be9cfd1e1b9 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h +++ b/Detectors/ITSMFT/ITS/simulation/include/UpgradeGeometryTGeo.h @@ -11,7 +11,7 @@ #include // for TObject #include // for TString #include "Rtypes.h" // for Int_t, Double_t, Bool_t, UInt_t, etc -#include "include/Segmentation.h" // for Segmentation +#include "Segmentation.h" // for Segmentation class TGeoPNEntry; // lines 17-17 diff --git a/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h index 39711cf10e0ee..802a7c7d29702 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h +++ b/Detectors/ITSMFT/ITS/simulation/include/UpgradeSegmentationPixel.h @@ -6,7 +6,7 @@ #include "FairLogger.h" // for LOG #include "Rtypes.h" // for Int_t, Float_t, Double_t, UInt_t, etc -#include "include/Segmentation.h" // for Segmentation +#include "Segmentation.h" // for Segmentation class TObjArray; namespace AliceO2 { diff --git a/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h b/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h index 31bad988cda57..c572a080b74e3 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h +++ b/Detectors/ITSMFT/ITS/simulation/include/UpgradeV1Layer.h @@ -8,8 +8,8 @@ #include // for gGeoManager #include "Rtypes.h" // for Double_t, Int_t, Bool_t, etc -#include "include/V11Geometry.h" // for V11Geometry -#include "include/Detector.h" // for Detector, Detector::UpgradeModel +#include "V11Geometry.h" // for V11Geometry +#include "Detector.h" // for Detector, Detector::UpgradeModel class TGeoArb8; class TGeoCombiTrans; class TGeoVolume; // lines 15-15 diff --git a/Detectors/ITSMFT/ITS/simulation/src/Chip.cxx b/Detectors/ITSMFT/ITS/simulation/src/Chip.cxx index 749550690971b..e432a535dcb5f 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/Chip.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/Chip.cxx @@ -6,12 +6,12 @@ // Adapted from AliITSUChip by Massimo Masera // -#include "include/Chip.h" +#include "Chip.h" #include // for Sqrt #include // for memset #include "TObjArray.h" // for TObjArray -#include "include/Point.h" // for Point -#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "Point.h" // for Point +#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo ClassImp(AliceO2::ITS::Chip) diff --git a/Detectors/ITSMFT/ITS/simulation/src/Detector.cxx b/Detectors/ITSMFT/ITS/simulation/src/Detector.cxx index 7acf763e889ea..43e7ba8fd47a5 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/Detector.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/Detector.cxx @@ -1,13 +1,13 @@ /// \file Detector.cxx /// \brief Implementation of the Detector class -#include "include/Detector.h" -#include "include/GeometryHandler.h" // for GeometryHandler -#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo -#include "include/UpgradeV1Layer.h" // for UpgradeV1Layer -#include "include/Point.h" // for Point, etc +#include "Detector.h" +#include "GeometryHandler.h" // for GeometryHandler +#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "UpgradeV1Layer.h" // for UpgradeV1Layer +#include "Point.h" // for Point, etc -#include "include/MisalignmentParameter.h" // for MisalignmentParameter +#include "MisalignmentParameter.h" // for MisalignmentParameter #include "DataFormats/simulation/include/DetectorList.h" // for DetectorId::kAliIts #include "DataFormats/simulation/include/Stack.h" // for Stack diff --git a/Detectors/ITSMFT/ITS/simulation/src/Digit.cxx b/Detectors/ITSMFT/ITS/simulation/src/Digit.cxx index 256008d323a6a..1e06c5a2781af 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/Digit.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/Digit.cxx @@ -1,7 +1,7 @@ /// \file AliITSUpgradeDigi.cxx /// \brief Digits structure for ITS digits -#include "include/Digit.h" +#include "Digit.h" ClassImp(AliceO2::ITS::Digit) diff --git a/Detectors/ITSMFT/ITS/simulation/src/DigitContainer.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitContainer.cxx index 4813fdaa82e69..828122a9dc630 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/DigitContainer.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/DigitContainer.cxx @@ -5,10 +5,10 @@ // Created by Markus Fasel on 25.03.15. // // -#include "include/DigitContainer.h" -#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo -#include "include/Digit.h" // for Digit -#include "include//DigitLayer.h" // for DigitLayer +#include "DigitContainer.h" +#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "Digit.h" // for Digit +#include "DigitLayer.h" // for DigitLayer #include "FairLogger.h" // for LOG #include "Rtypes.h" // for Int_t, nullptr diff --git a/Detectors/ITSMFT/ITS/simulation/src/DigitLayer.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitLayer.cxx index de06c07e137b1..f558063446383 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/DigitLayer.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/DigitLayer.cxx @@ -8,8 +8,8 @@ -#include "include/DigitLayer.h" -#include "include/DigitStave.h" +#include "DigitLayer.h" +#include "DigitStave.h" #include "FairLogger.h" using namespace AliceO2::ITS; diff --git a/Detectors/ITSMFT/ITS/simulation/src/DigitStave.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitStave.cxx index 476dfe981bf7b..b1e668c4f03ab 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/DigitStave.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/DigitStave.cxx @@ -5,8 +5,8 @@ // Created by Markus Fasel on 26.03.15. // // -#include "include/DigitStave.h" -#include "include/Digit.h" // for Digit +#include "DigitStave.h" +#include "Digit.h" // for Digit #include "FairLogger.h" // for LOG diff --git a/Detectors/ITSMFT/ITS/simulation/src/DigitWriteoutBuffer.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitWriteoutBuffer.cxx index fd5b5e88398c2..2c1edcb68b0a9 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/DigitWriteoutBuffer.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/DigitWriteoutBuffer.cxx @@ -5,7 +5,7 @@ // Created by Markus Fasel on 21.07.15. // // -#include "include/DigitWriteoutBuffer.h" +#include "DigitWriteoutBuffer.h" #include "FairRootManager.h" // for FairRootManager #include "TClonesArray.h" // for TClonesArray #include "TString.h" // for TString diff --git a/Detectors/ITSMFT/ITS/simulation/src/Digitizer.cxx b/Detectors/ITSMFT/ITS/simulation/src/Digitizer.cxx index 6e9305865a73d..0acc71ede0618 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/Digitizer.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/Digitizer.cxx @@ -1,10 +1,10 @@ /// \file AliITSUpgradeDigitizer.cxx /// \brief Digitizer for the upgrated ITS -#include "include/Digitizer.h" -#include "include/Point.h" // for Point -#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo -#include "include/Digit.h" // for Digit -#include "include/DigitContainer.h" // for DigitContainer +#include "Digitizer.h" +#include "Point.h" // for Point +#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "Digit.h" // for Digit +#include "DigitContainer.h" // for DigitContainer #include "FairLogger.h" // for LOG #include "TClonesArray.h" // for TClonesArray diff --git a/Detectors/ITSMFT/ITS/simulation/src/DigitizerTask.cxx b/Detectors/ITSMFT/ITS/simulation/src/DigitizerTask.cxx index 2eec2b4071fcc..ecf4510a926c8 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/DigitizerTask.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/DigitizerTask.cxx @@ -6,9 +6,9 @@ // // -#include "include/DigitizerTask.h" -#include "include/DigitContainer.h" // for DigitContainer -#include "include/Digitizer.h" // for Digitizer +#include "DigitizerTask.h" +#include "DigitContainer.h" // for DigitContainer +#include "Digitizer.h" // for Digitizer #include "TObject.h" // for TObject #include "TClonesArray.h" // for TClonesArray diff --git a/Detectors/ITSMFT/ITS/simulation/src/GeometryHandler.cxx b/Detectors/ITSMFT/ITS/simulation/src/GeometryHandler.cxx index b378949b20e9b..19d35a740ad11 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/GeometryHandler.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/GeometryHandler.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the GeometryHandler class /// \author F. Uhlig -#include "include/GeometryHandler.h" +#include "GeometryHandler.h" #include "FairLogger.h" // for FairLogger, etc diff --git a/Detectors/ITSMFT/ITS/simulation/src/GeometryManager.cxx b/Detectors/ITSMFT/ITS/simulation/src/GeometryManager.cxx index 8a4697297683e..65f3b8fee832f 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/GeometryManager.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/GeometryManager.cxx @@ -1,7 +1,7 @@ /// \file GeometryManager.cxx /// \brief Implementation of the GeometryManager class -#include "include/GeometryManager.h" +#include "GeometryManager.h" #include "FairLogger.h" // for LOG diff --git a/Detectors/ITSMFT/ITS/simulation/src/Point.cxx b/Detectors/ITSMFT/ITS/simulation/src/Point.cxx index 9b7c4d9e3680a..5062e1cd5abd7 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/Point.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/Point.cxx @@ -1,7 +1,7 @@ /// \file Point.cxx /// \brief Implementation of the Point class -#include "include/Point.h" +#include "Point.h" #include diff --git a/Detectors/ITSMFT/ITS/simulation/src/Segmentation.cxx b/Detectors/ITSMFT/ITS/simulation/src/Segmentation.cxx index e0e07aed8a3e7..5ca77e7605d7a 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/Segmentation.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/Segmentation.cxx @@ -1,7 +1,7 @@ /// \file Segmentation.cxx /// \brief Implementation of the Segmentation class -#include "include/Segmentation.h" +#include "Segmentation.h" #include "TF1.h" // for TF1 diff --git a/Detectors/ITSMFT/ITS/simulation/src/UpgradeGeometryTGeo.cxx b/Detectors/ITSMFT/ITS/simulation/src/UpgradeGeometryTGeo.cxx index 2531382c8c484..b38d89d8f6061 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/UpgradeGeometryTGeo.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/UpgradeGeometryTGeo.cxx @@ -4,10 +4,10 @@ /// \author ruben.shahoyan@cern.ch - adapted to ITSupg 18/07/2012 // ATTENTION: In opposite to old AliITSgeomTGeo, all indices start from 0, not from 1!!! -#include "include/UpgradeGeometryTGeo.h" -#include "include/UpgradeSegmentationPixel.h" // for UpgradeSegmentationPixel -#include "include/GeometryManager.h" // for GeometryManager -#include "include/Segmentation.h" // for Segmentation +#include "UpgradeGeometryTGeo.h" +#include "UpgradeSegmentationPixel.h" // for UpgradeSegmentationPixel +#include "GeometryManager.h" // for GeometryManager +#include "Segmentation.h" // for Segmentation #include "FairLogger.h" // for LOG diff --git a/Detectors/ITSMFT/ITS/simulation/src/UpgradeSegmentationPixel.cxx b/Detectors/ITSMFT/ITS/simulation/src/UpgradeSegmentationPixel.cxx index c03934e5353f1..40cbe24866212 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/UpgradeSegmentationPixel.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/UpgradeSegmentationPixel.cxx @@ -1,8 +1,8 @@ /// \file UpgradeSegmentationPixel.cxx /// \brief Implementation of the UpgradeSegmentationPixel class -#include "include/UpgradeSegmentationPixel.h" -#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "UpgradeSegmentationPixel.h" +#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo #include // for TFile #include // for TObjArray diff --git a/Detectors/ITSMFT/ITS/simulation/src/UpgradeV1Layer.cxx b/Detectors/ITSMFT/ITS/simulation/src/UpgradeV1Layer.cxx index 659262b092c8e..5c44fadc6a6c6 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/UpgradeV1Layer.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/UpgradeV1Layer.cxx @@ -3,9 +3,9 @@ /// \author Mario Sitta /// \author Chinorat Kobdaj (kobdaj@g.sut.ac.th) -#include "include/UpgradeV1Layer.h" -#include "include/UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo -#include "include/Detector.h" // for Detector, etc +#include "UpgradeV1Layer.h" +#include "UpgradeGeometryTGeo.h" // for UpgradeGeometryTGeo +#include "Detector.h" // for Detector, etc #include "FairLogger.h" // for LOG diff --git a/Detectors/ITSMFT/ITS/simulation/src/V11Geometry.cxx b/Detectors/ITSMFT/ITS/simulation/src/V11Geometry.cxx index 43d5868724ddd..be3483eeefe47 100644 --- a/Detectors/ITSMFT/ITS/simulation/src/V11Geometry.cxx +++ b/Detectors/ITSMFT/ITS/simulation/src/V11Geometry.cxx @@ -2,7 +2,7 @@ /// \brief Implementation of the V11Geometry class -#include "include/V11Geometry.h" +#include "V11Geometry.h" #include "FairLogger.h" // for LOG diff --git a/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt b/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt index c9e1d9cdca6d3..73b973d6ccbbc 100644 --- a/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt +++ b/Detectors/ITSMFT/test/HitAnalysis/CMakeLists.txt @@ -1,8 +1,10 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/ - ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/ - ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/test/HitAnalysis + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/base/include + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/ITS/simulation/include + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/test/HitAnalysis/include + ${CMAKE_SOURCE_DIR}/Detectors/ITSMFT/test/HitAnalysis/ + ) set(SYSTEM_INCLUDE_DIRECTORIES ${ROOT_INCLUDE_DIR} diff --git a/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx b/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx index 5d2c59ce063dd..9bcc2f67f897e 100644 --- a/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx +++ b/Detectors/ITSMFT/test/HitAnalysis/src/HitAnalysis.cxx @@ -6,7 +6,7 @@ // // -#include "include/HitAnalysis.h" +#include "HitAnalysis.h" #include "FairLogger.h" // for LOG #include "FairRootManager.h" // for FairRootManager diff --git a/Detectors/Passive/CMakeLists.txt b/Detectors/Passive/CMakeLists.txt index 917f6bbe68445..14f28df44430b 100644 --- a/Detectors/Passive/CMakeLists.txt +++ b/Detectors/Passive/CMakeLists.txt @@ -3,7 +3,9 @@ # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/Detectors/Passive + ${CMAKE_SOURCE_DIR}/Detectors/Passive/ + ${CMAKE_SOURCE_DIR}/Detectors/Passive/include + ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/Passive/src/Cave.cxx b/Detectors/Passive/src/Cave.cxx index de9cee872bbd6..73f7872cf5d2a 100644 --- a/Detectors/Passive/src/Cave.cxx +++ b/Detectors/Passive/src/Cave.cxx @@ -11,10 +11,10 @@ // ----- Cave file ----- // ----- Created 26/03/14 by M. Al-Turany ----- // ------------------------------------------------------------------------- -#include "include/Cave.h" +#include "Cave.h" #include "FairGeoInterface.h" // for FairGeoInterface #include "FairGeoLoader.h" // for FairGeoLoader -#include "include/GeoCave.h" // for GeoCave +#include "GeoCave.h" // for GeoCave #include "TString.h" // for TString #include // for NULL diff --git a/Detectors/Passive/src/GeoCave.cxx b/Detectors/Passive/src/GeoCave.cxx index a25e07c99252e..9f63a05a2a416 100644 --- a/Detectors/Passive/src/GeoCave.cxx +++ b/Detectors/Passive/src/GeoCave.cxx @@ -18,7 +18,7 @@ // ///////////////////////////////////////////////////////////// -#include "include/GeoCave.h" +#include "GeoCave.h" #include "FairGeoBasicShape.h" // for FairGeoBasicShape #include "FairGeoMedia.h" // for FairGeoMedia diff --git a/Detectors/Passive/src/Magnet.cxx b/Detectors/Passive/src/Magnet.cxx index 6026c3736e7b8..470137154c5f8 100644 --- a/Detectors/Passive/src/Magnet.cxx +++ b/Detectors/Passive/src/Magnet.cxx @@ -11,7 +11,7 @@ // ----- Created 26/03/14 by M. Al-Turany ----- // ------------------------------------------------------------------------- -#include "include/Magnet.h" +#include "Magnet.h" #include "TGeoBBox.h" // for TGeoBBox #include "TGeoCompositeShape.h" // for TGeoCompositeShape #include "TGeoManager.h" // for TGeoManager, gGeoManager diff --git a/Detectors/Passive/src/PassiveContFact.cxx b/Detectors/Passive/src/PassiveContFact.cxx index 3f2122574acf6..bda9f8337c169 100644 --- a/Detectors/Passive/src/PassiveContFact.cxx +++ b/Detectors/Passive/src/PassiveContFact.cxx @@ -22,7 +22,7 @@ // Factory for the parameter containers in libPassive // ///////////////////////////////////////////////////////////// -#include "include/PassiveContFact.h" +#include "PassiveContFact.h" #include "FairRuntimeDb.h" // for FairRuntimeDb #include "TList.h" // for TList #include "TString.h" // for TString diff --git a/Detectors/Passive/src/Pipe.cxx b/Detectors/Passive/src/Pipe.cxx index cfe652ca53b89..f523b746c6b76 100644 --- a/Detectors/Passive/src/Pipe.cxx +++ b/Detectors/Passive/src/Pipe.cxx @@ -11,7 +11,7 @@ // ----- Created by M. Al-Turany June 2014 ----- // ------------------------------------------------------------------------- -#include "include/Pipe.h" +#include "Pipe.h" #include "TGeoManager.h" // for TGeoManager, gGeoManager #include "TGeoMaterial.h" // for TGeoMaterial #include "TGeoMedium.h" // for TGeoMedium diff --git a/Detectors/TPC/base/CMakeLists.txt b/Detectors/TPC/base/CMakeLists.txt index e101a65ecda75..a8c46ec5f2fe4 100644 --- a/Detectors/TPC/base/CMakeLists.txt +++ b/Detectors/TPC/base/CMakeLists.txt @@ -1,7 +1,8 @@ set(INCLUDE_DIRECTORIES - ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/Detectors/TPC/base + ${CMAKE_SOURCE_DIR}/Detectors/TPC/base/include + ${CMAKE_SOURCE_DIR}/Detectors/TPC/base/ + ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/TPC/base/src/ContainerFactory.cxx b/Detectors/TPC/base/src/ContainerFactory.cxx index 4385d4074ec18..75e8b5fe063f0 100644 --- a/Detectors/TPC/base/src/ContainerFactory.cxx +++ b/Detectors/TPC/base/src/ContainerFactory.cxx @@ -1,5 +1,5 @@ -#include "include/ContainerFactory.h" +#include "ContainerFactory.h" #include "FairRuntimeDb.h" // for FairRuntimeDb #include "TString.h" // for TString #include diff --git a/Detectors/TPC/simulation/CMakeLists.txt b/Detectors/TPC/simulation/CMakeLists.txt index a53a058c3fa0e..21797027c3905 100644 --- a/Detectors/TPC/simulation/CMakeLists.txt +++ b/Detectors/TPC/simulation/CMakeLists.txt @@ -1,8 +1,10 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/Detectors/TPC/Base - ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation + ${CMAKE_SOURCE_DIR}/Detectors/TPC/Base/include + ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation/ + ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation/include + ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Detectors/TPC/simulation/src/Detector.cxx b/Detectors/TPC/simulation/src/Detector.cxx index f268a35da609f..f5f317ecb4690 100644 --- a/Detectors/TPC/simulation/src/Detector.cxx +++ b/Detectors/TPC/simulation/src/Detector.cxx @@ -1,5 +1,5 @@ -#include "include/Detector.h" -#include "include/Point.h" // for Point +#include "Detector.h" +#include "Point.h" // for Point #include "DataFormats/simulation/include/DetectorList.h" // for DetectorId::kAliTpc #include "DataFormats/simulation/include/Stack.h" // for Stack diff --git a/Detectors/TPC/simulation/src/Point.cxx b/Detectors/TPC/simulation/src/Point.cxx index 30793319a2c59..74748438b0549 100644 --- a/Detectors/TPC/simulation/src/Point.cxx +++ b/Detectors/TPC/simulation/src/Point.cxx @@ -1,4 +1,4 @@ -#include "include/Point.h" +#include "Point.h" #include using std::cout; From e2779f72d08c2f22e0e976e70d6ceb716695f399 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 11 May 2016 10:33:59 +0200 Subject: [PATCH 090/135] Re-arrange the repository move common stufff to Common directory --- CMakeLists.txt | 4 ++-- Common/Field/CMakeLists.txt | 2 +- Common/Header/AliceO2Config.h.in | 2 ++ .../Resources}/maps/mfchebKGI_sym.root | Bin {topologies => Common/Topologies}/hosts.cfg | 0 .../Topologies}/o2prototype_topology.xml | 0 .../Topologies}/publisher-sink-simpletopology.xml | 0 header/AliceO2Config.h.in | 3 --- 8 files changed, 5 insertions(+), 6 deletions(-) create mode 100644 Common/Header/AliceO2Config.h.in rename {Resources => Common/Resources}/maps/mfchebKGI_sym.root (100%) rename {topologies => Common/Topologies}/hosts.cfg (100%) rename {topologies => Common/Topologies}/o2prototype_topology.xml (100%) rename {topologies => Common/Topologies}/publisher-sink-simpletopology.xml (100%) delete mode 100644 header/AliceO2Config.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 865eb97b90e66..b6568c73af709 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -242,5 +242,5 @@ configure_file(${CMAKE_SOURCE_DIR}/CTestCustom.cmake ) # Create an automatically generated config header file to pass file paths to the application -configure_file(${PROJECT_SOURCE_DIR}/header/AliceO2Config.h.in - ${CMAKE_CURRENT_SOURCE_DIR}/header/AliceO2Config.h) +configure_file(${PROJECT_SOURCE_DIR}/Common/Header/AliceO2Config.h.in + ${CMAKE_CURRENT_SOURCE_DIR}/Common/Header/AliceO2Config.h) diff --git a/Common/Field/CMakeLists.txt b/Common/Field/CMakeLists.txt index fd50b6caafe3b..8ab11e11dbbd8 100644 --- a/Common/Field/CMakeLists.txt +++ b/Common/Field/CMakeLists.txt @@ -6,7 +6,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/Common/Field ${CMAKE_SOURCE_DIR}/Common/Field/include - ${CMAKE_SOURCE_DIR}/header + ${CMAKE_SOURCE_DIR}/Common/Header ) set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Common/Header/AliceO2Config.h.in b/Common/Header/AliceO2Config.h.in new file mode 100644 index 0000000000000..4c76b5a714cd9 --- /dev/null +++ b/Common/Header/AliceO2Config.h.in @@ -0,0 +1,2 @@ +#define O2PROTO1_MAGF_DIR "@CMAKE_SOURCE_DIR@/Common/Resources/maps/mfchebKGI_sym.root" +#define O2PROTO1_MAGF_CREATEFIELDMAP_DIR "@CMAKE_SOURCE_DIR@/Common/Resources/maps/mfchebKGI_sym.root" diff --git a/Resources/maps/mfchebKGI_sym.root b/Common/Resources/maps/mfchebKGI_sym.root similarity index 100% rename from Resources/maps/mfchebKGI_sym.root rename to Common/Resources/maps/mfchebKGI_sym.root diff --git a/topologies/hosts.cfg b/Common/Topologies/hosts.cfg similarity index 100% rename from topologies/hosts.cfg rename to Common/Topologies/hosts.cfg diff --git a/topologies/o2prototype_topology.xml b/Common/Topologies/o2prototype_topology.xml similarity index 100% rename from topologies/o2prototype_topology.xml rename to Common/Topologies/o2prototype_topology.xml diff --git a/topologies/publisher-sink-simpletopology.xml b/Common/Topologies/publisher-sink-simpletopology.xml similarity index 100% rename from topologies/publisher-sink-simpletopology.xml rename to Common/Topologies/publisher-sink-simpletopology.xml diff --git a/header/AliceO2Config.h.in b/header/AliceO2Config.h.in deleted file mode 100644 index 43e9580ae22a9..0000000000000 --- a/header/AliceO2Config.h.in +++ /dev/null @@ -1,3 +0,0 @@ -#define O2PROTO1_MAGF_DIR "@CMAKE_SOURCE_DIR@/Resources/maps/mfchebKGI_sym.root" -#define O2PROTO1_MAGF_CREATEFIELDMAP_DIR "@CMAKE_SOURCE_DIR@/Resources/maps/mfchebKGI_sym.root" - From a61ae061e34b5f40c2e701291fd091f7e3ac34a0 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 11 May 2016 10:55:12 +0200 Subject: [PATCH 091/135] Re-arrange the repository Rename Qa to QA --- Utilities/CMakeLists.txt | 2 +- Utilities/{Qa => QA}/CMakeLists.txt | 8 ++++---- Utilities/{Qa => QA}/HistogramTMessage.h | 0 Utilities/{Qa => QA}/Merger/Merger.cxx | 0 Utilities/{Qa => QA}/Merger/Merger.h | 0 Utilities/{Qa => QA}/Merger/MergerDevice.cxx | 0 Utilities/{Qa => QA}/Merger/MergerDevice.h | 0 Utilities/{Qa => QA}/Merger/Tests/MergerTestSuite.cxx | 0 Utilities/{Qa => QA}/Producer/HistogramProducer.cxx | 0 Utilities/{Qa => QA}/Producer/HistogramProducer.h | 0 Utilities/{Qa => QA}/Producer/Producer.h | 0 Utilities/{Qa => QA}/Producer/ProducerDevice.cxx | 0 Utilities/{Qa => QA}/Producer/ProducerDevice.h | 0 Utilities/{Qa => QA}/Producer/Tests/ProducerTestSuite.cxx | 0 Utilities/{Qa => QA}/Producer/TreeProducer.cxx | 0 Utilities/{Qa => QA}/Producer/TreeProducer.h | 0 Utilities/{Qa => QA}/README.md | 0 Utilities/{Qa => QA}/Viewer/Tests/ViewerTestSuite.cxx | 0 Utilities/{Qa => QA}/Viewer/ViewerDevice.cxx | 0 Utilities/{Qa => QA}/Viewer/ViewerDevice.h | 0 Utilities/{Qa => QA}/runMerger.cxx | 0 Utilities/{Qa => QA}/runProducer.cxx | 0 Utilities/{Qa => QA}/runViewerDevice.cxx | 0 23 files changed, 5 insertions(+), 5 deletions(-) rename Utilities/{Qa => QA}/CMakeLists.txt (92%) rename Utilities/{Qa => QA}/HistogramTMessage.h (100%) rename Utilities/{Qa => QA}/Merger/Merger.cxx (100%) rename Utilities/{Qa => QA}/Merger/Merger.h (100%) rename Utilities/{Qa => QA}/Merger/MergerDevice.cxx (100%) rename Utilities/{Qa => QA}/Merger/MergerDevice.h (100%) rename Utilities/{Qa => QA}/Merger/Tests/MergerTestSuite.cxx (100%) rename Utilities/{Qa => QA}/Producer/HistogramProducer.cxx (100%) rename Utilities/{Qa => QA}/Producer/HistogramProducer.h (100%) rename Utilities/{Qa => QA}/Producer/Producer.h (100%) rename Utilities/{Qa => QA}/Producer/ProducerDevice.cxx (100%) rename Utilities/{Qa => QA}/Producer/ProducerDevice.h (100%) rename Utilities/{Qa => QA}/Producer/Tests/ProducerTestSuite.cxx (100%) rename Utilities/{Qa => QA}/Producer/TreeProducer.cxx (100%) rename Utilities/{Qa => QA}/Producer/TreeProducer.h (100%) rename Utilities/{Qa => QA}/README.md (100%) rename Utilities/{Qa => QA}/Viewer/Tests/ViewerTestSuite.cxx (100%) rename Utilities/{Qa => QA}/Viewer/ViewerDevice.cxx (100%) rename Utilities/{Qa => QA}/Viewer/ViewerDevice.h (100%) rename Utilities/{Qa => QA}/runMerger.cxx (100%) rename Utilities/{Qa => QA}/runProducer.cxx (100%) rename Utilities/{Qa => QA}/runViewerDevice.cxx (100%) diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index b3a8be9f962fa..3968cf1a93077 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -2,4 +2,4 @@ if(ALIROOT) add_subdirectory (hough) endif(ALIROOT) add_subdirectory (aliceHLTwrapper) -add_subdirectory (Qa) +add_subdirectory (QA) diff --git a/Utilities/Qa/CMakeLists.txt b/Utilities/QA/CMakeLists.txt similarity index 92% rename from Utilities/Qa/CMakeLists.txt rename to Utilities/QA/CMakeLists.txt index 282dc7c9de992..7393ea7253477 100755 --- a/Utilities/Qa/CMakeLists.txt +++ b/Utilities/QA/CMakeLists.txt @@ -2,10 +2,10 @@ Set(INCLUDE_DIRECTORIES ${ROOT_INCLUDE_DIR} ${BASE_INCLUDE_DIRECTORIES} ${FAIRROOT_INCLUDE_DIR} - ${CMAKE_SOURCE_DIR}/Utilities/Qa - ${CMAKE_SOURCE_DIR}/Utilities/Qa/Merger - ${CMAKE_SOURCE_DIR}/Utilities/Qa/Producer - ${CMAKE_SOURCE_DIR}/Utilities/Qa/Viewer + ${CMAKE_SOURCE_DIR}/Utilities/QA + ${CMAKE_SOURCE_DIR}/Utilities/QA/Merger + ${CMAKE_SOURCE_DIR}/Utilities/QA/Producer + ${CMAKE_SOURCE_DIR}/Utilities/QA/Viewer ) Set(SYSTEM_INCLUDE_DIRECTORIES diff --git a/Utilities/Qa/HistogramTMessage.h b/Utilities/QA/HistogramTMessage.h similarity index 100% rename from Utilities/Qa/HistogramTMessage.h rename to Utilities/QA/HistogramTMessage.h diff --git a/Utilities/Qa/Merger/Merger.cxx b/Utilities/QA/Merger/Merger.cxx similarity index 100% rename from Utilities/Qa/Merger/Merger.cxx rename to Utilities/QA/Merger/Merger.cxx diff --git a/Utilities/Qa/Merger/Merger.h b/Utilities/QA/Merger/Merger.h similarity index 100% rename from Utilities/Qa/Merger/Merger.h rename to Utilities/QA/Merger/Merger.h diff --git a/Utilities/Qa/Merger/MergerDevice.cxx b/Utilities/QA/Merger/MergerDevice.cxx similarity index 100% rename from Utilities/Qa/Merger/MergerDevice.cxx rename to Utilities/QA/Merger/MergerDevice.cxx diff --git a/Utilities/Qa/Merger/MergerDevice.h b/Utilities/QA/Merger/MergerDevice.h similarity index 100% rename from Utilities/Qa/Merger/MergerDevice.h rename to Utilities/QA/Merger/MergerDevice.h diff --git a/Utilities/Qa/Merger/Tests/MergerTestSuite.cxx b/Utilities/QA/Merger/Tests/MergerTestSuite.cxx similarity index 100% rename from Utilities/Qa/Merger/Tests/MergerTestSuite.cxx rename to Utilities/QA/Merger/Tests/MergerTestSuite.cxx diff --git a/Utilities/Qa/Producer/HistogramProducer.cxx b/Utilities/QA/Producer/HistogramProducer.cxx similarity index 100% rename from Utilities/Qa/Producer/HistogramProducer.cxx rename to Utilities/QA/Producer/HistogramProducer.cxx diff --git a/Utilities/Qa/Producer/HistogramProducer.h b/Utilities/QA/Producer/HistogramProducer.h similarity index 100% rename from Utilities/Qa/Producer/HistogramProducer.h rename to Utilities/QA/Producer/HistogramProducer.h diff --git a/Utilities/Qa/Producer/Producer.h b/Utilities/QA/Producer/Producer.h similarity index 100% rename from Utilities/Qa/Producer/Producer.h rename to Utilities/QA/Producer/Producer.h diff --git a/Utilities/Qa/Producer/ProducerDevice.cxx b/Utilities/QA/Producer/ProducerDevice.cxx similarity index 100% rename from Utilities/Qa/Producer/ProducerDevice.cxx rename to Utilities/QA/Producer/ProducerDevice.cxx diff --git a/Utilities/Qa/Producer/ProducerDevice.h b/Utilities/QA/Producer/ProducerDevice.h similarity index 100% rename from Utilities/Qa/Producer/ProducerDevice.h rename to Utilities/QA/Producer/ProducerDevice.h diff --git a/Utilities/Qa/Producer/Tests/ProducerTestSuite.cxx b/Utilities/QA/Producer/Tests/ProducerTestSuite.cxx similarity index 100% rename from Utilities/Qa/Producer/Tests/ProducerTestSuite.cxx rename to Utilities/QA/Producer/Tests/ProducerTestSuite.cxx diff --git a/Utilities/Qa/Producer/TreeProducer.cxx b/Utilities/QA/Producer/TreeProducer.cxx similarity index 100% rename from Utilities/Qa/Producer/TreeProducer.cxx rename to Utilities/QA/Producer/TreeProducer.cxx diff --git a/Utilities/Qa/Producer/TreeProducer.h b/Utilities/QA/Producer/TreeProducer.h similarity index 100% rename from Utilities/Qa/Producer/TreeProducer.h rename to Utilities/QA/Producer/TreeProducer.h diff --git a/Utilities/Qa/README.md b/Utilities/QA/README.md similarity index 100% rename from Utilities/Qa/README.md rename to Utilities/QA/README.md diff --git a/Utilities/Qa/Viewer/Tests/ViewerTestSuite.cxx b/Utilities/QA/Viewer/Tests/ViewerTestSuite.cxx similarity index 100% rename from Utilities/Qa/Viewer/Tests/ViewerTestSuite.cxx rename to Utilities/QA/Viewer/Tests/ViewerTestSuite.cxx diff --git a/Utilities/Qa/Viewer/ViewerDevice.cxx b/Utilities/QA/Viewer/ViewerDevice.cxx similarity index 100% rename from Utilities/Qa/Viewer/ViewerDevice.cxx rename to Utilities/QA/Viewer/ViewerDevice.cxx diff --git a/Utilities/Qa/Viewer/ViewerDevice.h b/Utilities/QA/Viewer/ViewerDevice.h similarity index 100% rename from Utilities/Qa/Viewer/ViewerDevice.h rename to Utilities/QA/Viewer/ViewerDevice.h diff --git a/Utilities/Qa/runMerger.cxx b/Utilities/QA/runMerger.cxx similarity index 100% rename from Utilities/Qa/runMerger.cxx rename to Utilities/QA/runMerger.cxx diff --git a/Utilities/Qa/runProducer.cxx b/Utilities/QA/runProducer.cxx similarity index 100% rename from Utilities/Qa/runProducer.cxx rename to Utilities/QA/runProducer.cxx diff --git a/Utilities/Qa/runViewerDevice.cxx b/Utilities/QA/runViewerDevice.cxx similarity index 100% rename from Utilities/Qa/runViewerDevice.cxx rename to Utilities/QA/runViewerDevice.cxx From d8cc891fa06d744e094eeeff527fe75660072c7d Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Thu, 21 Apr 2016 20:11:45 +0200 Subject: [PATCH 092/135] Add Barth as power users @Barthelemy can now trigger PR checks without approval. --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index f40d43a818c29..542a7704482e9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,6 +6,7 @@ node { "dberzano", "MohammadAlTurany", "matthiasrichter", + "Barthelemy", "rbx"] echo "Changeset from " + env.CHANGE_AUTHOR if (power_users.contains(env.CHANGE_AUTHOR)) { From f102d4a612123bc83b53fa00dc099794721533d2 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Mon, 23 May 2016 10:16:03 +0200 Subject: [PATCH 093/135] Move to the IB/v5-08/o2 branch for tests --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 542a7704482e9..2cbb459ddda7f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,7 +22,7 @@ node { def test_script = ''' rm -fr alibuild alidist git clone https://github.com/alisw/alibuild - git clone -b IB/v5-08/next https://github.com/alisw/alidist + git clone -b IB/v5-08/o2 https://github.com/alisw/alidist x=`date +"%s"` WORKAREA=/build/workarea/pr/`echo $(( $x / 3600 / 24 / 7))` From 4a49013feecefc806c83b8fc4e880a434448ff24 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 31 May 2016 13:46:53 +0200 Subject: [PATCH 094/135] Remove if Statment when calling ParseAll --- CCDB/src/runConditionsClient.cxx | 5 +---- CCDB/src/runConditionsServer.cxx | 7 ++----- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/CCDB/src/runConditionsClient.cxx b/CCDB/src/runConditionsClient.cxx index 7d465eb1a61e4..824e4b5b505d8 100644 --- a/CCDB/src/runConditionsClient.cxx +++ b/CCDB/src/runConditionsClient.cxx @@ -46,10 +46,7 @@ int main(int argc, char** argv) config.AddToCmdLineOptions(clientOptions); - if (config.ParseAll(argc, argv)) - { - return 0; - } + config.ParseAll(argc, argv); string file = config.GetValue("config-json-file"); string id = config.GetValue("id"); diff --git a/CCDB/src/runConditionsServer.cxx b/CCDB/src/runConditionsServer.cxx index af8dd6ff898f4..275ebc5fc9ce8 100644 --- a/CCDB/src/runConditionsServer.cxx +++ b/CCDB/src/runConditionsServer.cxx @@ -57,11 +57,8 @@ int main(int argc, char** argv) config.AddToCmdLineOptions(serverOptions); - if (config.ParseAll(argc, argv)) - { - return 0; - } - + config.ParseAll(argc, argv); + string file = config.GetValue("config-json-file"); string id = config.GetValue("id"); From cab9f8523117a20afe1992715e3cd652fb647c2c Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 31 May 2016 13:55:31 +0200 Subject: [PATCH 095/135] Remove ifdef for transport interface --- CCDB/src/runConditionsClient.cxx | 15 --------------- CCDB/src/runConditionsServer.cxx | 14 -------------- 2 files changed, 29 deletions(-) diff --git a/CCDB/src/runConditionsClient.cxx b/CCDB/src/runConditionsClient.cxx index 824e4b5b505d8..267e6650cc7b2 100644 --- a/CCDB/src/runConditionsClient.cxx +++ b/CCDB/src/runConditionsClient.cxx @@ -18,13 +18,6 @@ #include "FairMQParser.h" #include "FairMQProgOptions.h" #include "ConditionsMQClient.h" - -#ifdef NANOMSG -#include "FairMQTransportFactoryNN.h" -#else -#include "FairMQTransportFactoryZMQ.h" -#endif - using namespace std; using namespace boost::program_options; using namespace AliceO2::CDB; @@ -57,14 +50,6 @@ int main(int argc, char** argv) LOG(INFO) << "PID: " << getpid(); -#ifdef NANOMSG - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); -#else - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); -#endif - - client.SetTransport(transportFactory); - client.SetProperty(ConditionsMQClient::Id, "client"); client.SetProperty(ConditionsMQClient::ParameterName, parameterName); client.SetProperty(ConditionsMQClient::NumIoThreads, 1); diff --git a/CCDB/src/runConditionsServer.cxx b/CCDB/src/runConditionsServer.cxx index 275ebc5fc9ce8..b184d2cd10fa5 100644 --- a/CCDB/src/runConditionsServer.cxx +++ b/CCDB/src/runConditionsServer.cxx @@ -19,13 +19,6 @@ #include "FairMQProgOptions.h" #include "ConditionsMQServer.h" #include "TApplication.h" - -#ifdef NANOMSG -#include "FairMQTransportFactoryNN.h" -#else -#include "FairMQTransportFactoryZMQ.h" -#endif - using namespace std; using namespace boost::program_options; using namespace AliceO2::CDB; @@ -70,13 +63,6 @@ int main(int argc, char** argv) TApplication app("ConditionsMQServer", 0, 0); -#ifdef NANOMSG - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); -#else - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); -#endif - server.SetTransport(transportFactory); - server.SetProperty(ConditionsMQServer::Id, id); server.SetProperty(ConditionsMQServer::NumIoThreads, config.GetValue("io-threads")); From c049e906e550a5318a38c73dfd6316d98d0142d2 Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Tue, 22 Mar 2016 11:43:50 +0100 Subject: [PATCH 096/135] Update prototype devices - Use the new Multipart API for the prototype devices. - Update the FLP/EPN examples to use the new configuration system. - Update the DDS calls with the API (dds::intercom_api instead of dds::key_value). - Remove obsolete Merger device. --- CCDB/src/runConditionsServer.cxx | 3 +- Examples/flp2epn-distributed/CMakeLists.txt | 17 +- Examples/flp2epn-distributed/EPNReceiver.cxx | 65 ++--- Examples/flp2epn-distributed/EPNReceiver.h | 2 +- Examples/flp2epn-distributed/FLPSender.cxx | 70 +++--- Examples/flp2epn-distributed/FLPSender.h | 3 +- .../run/flp2epn-prototype.json | 229 ++++++++++++++++++ .../run/runEPNReceiver.cxx | 11 +- .../flp2epn-distributed/run/runFLPSender.cxx | 9 +- .../run/runFLPSyncSampler.cxx | 11 +- .../run/startFLP2EPN-distributed.sh.in | 25 +- .../runO2Prototype/runEPNReceiver.cxx | 6 +- .../runO2Prototype/runFLPSender.cxx | 8 +- .../runO2Prototype/runFLPSyncSampler.cxx | 4 +- Examples/flp2epn/CMakeLists.txt | 22 +- Examples/flp2epn/O2EPNex.cxx | 17 +- Examples/flp2epn/O2EpnMerger.cxx | 48 ---- Examples/flp2epn/O2EpnMerger.h | 23 -- Examples/flp2epn/O2FLPExContent.h | 13 + Examples/flp2epn/O2FLPex.cxx | 32 +-- Examples/flp2epn/O2FLPex.h | 6 +- Examples/flp2epn/O2Merger.cxx | 50 ---- Examples/flp2epn/O2Merger.h | 24 -- Examples/flp2epn/O2Proxy.cxx | 47 ---- Examples/flp2epn/O2Proxy.h | 24 -- Examples/flp2epn/README.md | 15 ++ Examples/flp2epn/run/flp2epn.json | 65 +++++ Examples/flp2epn/run/runEPN.cxx | 108 ++------- Examples/flp2epn/run/runEPN_M.cxx | 121 --------- Examples/flp2epn/run/runFLP.cxx | 117 ++------- Examples/flp2epn/run/runMerger.cxx | 148 ----------- Examples/flp2epn/run/runProxy.cxx | 149 ++---------- Examples/flp2epn/run/startFLP2EPN.sh.in | 28 ++- Examples/flp2epn/run/startMerger.sh.in | 57 ----- Utilities/aliceHLTwrapper/CMakeLists.txt | 11 +- Utilities/aliceHLTwrapper/EventSampler.cxx | 25 +- Utilities/aliceHLTwrapper/WrapperDevice.cxx | 54 ++--- Utilities/aliceHLTwrapper/WrapperDevice.h | 2 +- .../aliceHLTwrapper/aliceHLTEventSampler.cxx | 10 +- Utilities/aliceHLTwrapper/aliceHLTWrapper.cxx | 10 +- 40 files changed, 585 insertions(+), 1104 deletions(-) create mode 100644 Examples/flp2epn-distributed/run/flp2epn-prototype.json delete mode 100644 Examples/flp2epn/O2EpnMerger.cxx delete mode 100644 Examples/flp2epn/O2EpnMerger.h create mode 100644 Examples/flp2epn/O2FLPExContent.h delete mode 100644 Examples/flp2epn/O2Merger.cxx delete mode 100644 Examples/flp2epn/O2Merger.h delete mode 100644 Examples/flp2epn/O2Proxy.cxx delete mode 100644 Examples/flp2epn/O2Proxy.h create mode 100644 Examples/flp2epn/README.md create mode 100644 Examples/flp2epn/run/flp2epn.json delete mode 100644 Examples/flp2epn/run/runEPN_M.cxx delete mode 100644 Examples/flp2epn/run/runMerger.cxx delete mode 100755 Examples/flp2epn/run/startMerger.sh.in diff --git a/CCDB/src/runConditionsServer.cxx b/CCDB/src/runConditionsServer.cxx index b184d2cd10fa5..02e66e84a3ad0 100644 --- a/CCDB/src/runConditionsServer.cxx +++ b/CCDB/src/runConditionsServer.cxx @@ -49,9 +49,8 @@ int main(int argc, char** argv) ("output-type", value(&outputType)->default_value("ROOT"), "Output file type"); config.AddToCmdLineOptions(serverOptions); + config.ParseAll(argc, argv); - config.ParseAll(argc, argv); - string file = config.GetValue("config-json-file"); string id = config.GetValue("id"); diff --git a/Examples/flp2epn-distributed/CMakeLists.txt b/Examples/flp2epn-distributed/CMakeLists.txt index 46a0b7e3675d7..f250f5979573d 100644 --- a/Examples/flp2epn-distributed/CMakeLists.txt +++ b/Examples/flp2epn-distributed/CMakeLists.txt @@ -51,20 +51,33 @@ if(FAIRMQ_DEPENDENCIES) ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} ${FAIRMQ_DEPENDENCIES} + ${Boost_RANDOM_LIBRARY} + ${Boost_CHRONO_LIBRARY} + ${Boost_REGEX_LIBRARY} FairMQ ) else(FAIRMQ_DEPENDENCIES) set(DEPENDENCIES ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} - ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_CHRONO_LIBRARY} FairMQ + ${Boost_DATE_TIME_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_CHRONO_LIBRARY} + ${Boost_RANDOM_LIBRARY} + ${Boost_REGEX_LIBRARY} + FairMQ ) endif(FAIRMQ_DEPENDENCIES) if(DDS_FOUND) set(DEPENDENCIES ${DEPENDENCIES} - dds-key-value-lib + ${DDS_INTERCOM_LIBRARY_SHARED} + ${DDS_PROTOCOL_LIBRARY_SHARED} # also link the two DDS dependency libraries to avoid linking issues on some osx systems + ${DDS_USER_DEFAULTS_LIBRARY_SHARED} ) endif() diff --git a/Examples/flp2epn-distributed/EPNReceiver.cxx b/Examples/flp2epn-distributed/EPNReceiver.cxx index 769c07aef57ce..1be729480a61a 100644 --- a/Examples/flp2epn-distributed/EPNReceiver.cxx +++ b/Examples/flp2epn-distributed/EPNReceiver.cxx @@ -51,7 +51,7 @@ void EPNReceiver::PrintBuffer(const unordered_map& buffer) c for (auto& it : buffer) { string stars = ""; - for (unsigned int j = 1; j <= (it.second).parts.size(); ++j) { + for (unsigned int j = 1; j <= (it.second).parts.Size(); ++j) { stars += "*"; } LOG(INFO) << setw(4) << it.first << ": " << stars; @@ -65,10 +65,6 @@ void EPNReceiver::DiscardIncompleteTimeframes() if ((boost::posix_time::microsec_clock::local_time() - (it->second).startTime).total_milliseconds() > fBufferTimeoutInMs) { LOG(WARN) << "Timeframe #" << it->first << " incomplete after " << fBufferTimeoutInMs << " milliseconds, discarding"; fDiscardedSet.insert(it->first); - for (unsigned int i = 0; i < (it->second).parts.size(); ++i) { - (it->second).parts.at(i).reset(); - } - it->second.parts.clear(); fTimeframeBuffer.erase(it++); LOG(WARN) << "Number of discarded timeframes: " << fDiscardedSet.size(); } else { @@ -92,19 +88,17 @@ void EPNReceiver::Run() // f2eHeader* header; // holds the header of the currently arrived message. uint16_t id = 0; // holds the timeframe id of the currently arrived sub-timeframe. - FairMQChannel& dataInputChannel = fChannels.at("data-in").at(0); - FairMQChannel& dataOutChannel = fChannels.at("data-out").at(0); FairMQChannel& ackOutChannel = fChannels.at("ack-out").at(0); while (CheckCurrentState(RUNNING)) { poller->Poll(100); if (poller->CheckInput(0)) { - unique_ptr headerPart(fTransportFactory->CreateMessage()); + FairMQParts parts; - if (dataInputChannel.Receive(headerPart) > 0) { + if (Receive(parts, "data-in") > 0) { // store the received ID - f2eHeader& header = *(static_cast(headerPart->GetData())); + f2eHeader& header = *(static_cast(parts.At(0)->GetData())); id = header.timeFrameId; // LOG(INFO) << "Received sub-time frame #" << id << " from FLP" << header.flpIndex; @@ -119,45 +113,32 @@ void EPNReceiver::Run() // } // end DEBUG - unique_ptr dataPart(fTransportFactory->CreateMessage()); - - // receive the data part - if (dataInputChannel.Receive(dataPart) > 0) + if (fDiscardedSet.find(id) == fDiscardedSet.end()) { - if (fDiscardedSet.find(id) == fDiscardedSet.end()) - { - if (fTimeframeBuffer.find(id) == fTimeframeBuffer.end()) - { - // if this is the first part with this ID, save the receive time. - fTimeframeBuffer[id].startTime = boost::posix_time::microsec_clock::local_time(); - } - // if the received ID has not previously been discarded, - // store the data part in the buffer - fTimeframeBuffer[id].parts.push_back(move(dataPart)); - // PrintBuffer(fTimeframeBuffer); - } - else + if (fTimeframeBuffer.find(id) == fTimeframeBuffer.end()) { - // if received ID has been previously discarded. - LOG(WARN) << "Received part from an already discarded timeframe with id " << id; + // if this is the first part with this ID, save the receive time. + fTimeframeBuffer[id].startTime = boost::posix_time::microsec_clock::local_time(); } + // if the received ID has not previously been discarded, + // store the data part in the buffer + fTimeframeBuffer[id].parts.AddPart(move(parts.At(1))); + // PrintBuffer(fTimeframeBuffer); } else { - LOG(ERROR) << "no data received from input socket"; + // if received ID has been previously discarded. + LOG(WARN) << "Received part from an already discarded timeframe with id " << id; } - if (fTimeframeBuffer[id].parts.size() == fNumFLPs) { + if (fTimeframeBuffer[id].parts.Size() == fNumFLPs) { // LOG(INFO) << "Collected all parts for timeframe #" << id; - // when all parts are collected send all except last one with 'snd-more' flag, and last one without the flag. - for (int i = 0; i < fNumFLPs - 1; ++i) { - dataOutChannel.SendPart(fTimeframeBuffer[id].parts.at(i)); - } - dataOutChannel.Send(fTimeframeBuffer[id].parts.at(fNumFLPs - 1)); + // when all parts are collected send then to the output channel + Send(fTimeframeBuffer[id].parts, "data-out"); if (fTestMode > 0) { // Send an acknowledgement back to the sampler to measure the round trip time - unique_ptr ack(fTransportFactory->CreateMessage(sizeof(uint16_t))); + unique_ptr ack(NewMessage(sizeof(uint16_t))); memcpy(ack->GetData(), &id, sizeof(uint16_t)); if (ackOutChannel.SendAsync(ack) <= 0) { @@ -165,14 +146,8 @@ void EPNReceiver::Run() } } - // let transport know that the data is no longer needed. transport will clean up after it is sent out. - for (unsigned int i = 0; i < fTimeframeBuffer[id].parts.size(); ++i) { - fTimeframeBuffer[id].parts.at(i).reset(); - } - fTimeframeBuffer[id].parts.clear(); - // fTimeframeBuffer[id].endTime = boost::posix_time::microsec_clock::local_time(); - // do something with time here ... + fTimeframeBuffer.erase(id); } @@ -209,7 +184,7 @@ void EPNReceiver::sendHeartbeats() while (CheckCurrentState(RUNNING)) { try { for (int i = 0; i < fNumFLPs; ++i) { - unique_ptr heartbeatMsg(fTransportFactory->CreateMessage(ownAddressSize)); + unique_ptr heartbeatMsg(NewMessage(ownAddressSize)); memcpy(heartbeatMsg->GetData(), ownAddress.c_str(), ownAddressSize); fChannels.at("heartbeat-out").at(i).Send(heartbeatMsg); diff --git a/Examples/flp2epn-distributed/EPNReceiver.h b/Examples/flp2epn-distributed/EPNReceiver.h index 7236a2eea5eac..a508c63d50587 100644 --- a/Examples/flp2epn-distributed/EPNReceiver.h +++ b/Examples/flp2epn-distributed/EPNReceiver.h @@ -23,7 +23,7 @@ namespace Devices { struct TFBuffer { - std::vector> parts; + FairMQParts parts; boost::posix_time::ptime startTime; boost::posix_time::ptime endTime; }; diff --git a/Examples/flp2epn-distributed/FLPSender.cxx b/Examples/flp2epn-distributed/FLPSender.cxx index dfe6fd65fa28f..2fb1d734b562b 100644 --- a/Examples/flp2epn-distributed/FLPSender.cxx +++ b/Examples/flp2epn-distributed/FLPSender.cxx @@ -28,8 +28,7 @@ struct f2eHeader { }; FLPSender::FLPSender() - : fHeaderBuffer() - , fDataBuffer() + : fSTFBuffer() , fArrivalTime() , fNumEPNs(0) , fIndex(0) @@ -64,10 +63,10 @@ void FLPSender::receiveHeartbeats() while (CheckCurrentState(RUNNING)) { try { - unique_ptr hbMsg(fTransportFactory->CreateMessage()); + unique_ptr heartbeat(NewMessage()); - if (hbChannel.Receive(hbMsg) > 0) { - string address = string(static_cast(hbMsg->GetData()), hbMsg->GetSize()); + if (hbChannel.Receive(heartbeat) > 0) { + string address = string(static_cast(heartbeat->GetData()), heartbeat->GetSize()); if (fHeartbeats.find(address) != fHeartbeats.end()) { ptime now = boost::posix_time::microsec_clock::local_time(); @@ -97,7 +96,7 @@ void FLPSender::Run() // boost::thread heartbeatReceiver(boost::bind(&FLPSender::receiveHeartbeats, this)); // base buffer, to be copied from for every timeframe body (zero-copy) - unique_ptr baseMsg(fTransportFactory->CreateMessage(fEventSize)); + unique_ptr baseMsg(NewMessage(fEventSize)); uint16_t timeFrameId = 0; @@ -106,59 +105,55 @@ void FLPSender::Run() while (CheckCurrentState(RUNNING)) { // initialize f2e header - f2eHeader* h = new f2eHeader; + f2eHeader* header = new f2eHeader; if (fTestMode > 0) { // test-mode: receive and store id part in the buffer. - unique_ptr idPart(fTransportFactory->CreateMessage()); - if (dataInChannel.Receive(idPart) > 0) { - h->timeFrameId = *(static_cast(idPart->GetData())); - h->flpIndex = fIndex; + unique_ptr id(NewMessage()); + if (dataInChannel.Receive(id) > 0) { + header->timeFrameId = *(static_cast(id->GetData())); + header->flpIndex = fIndex; } else { // if nothing was received, try again - delete h; + delete header; continue; } } else { // regular mode: use the id generated locally - h->timeFrameId = timeFrameId; - h->flpIndex = fIndex; + header->timeFrameId = timeFrameId; + header->flpIndex = fIndex; if (++timeFrameId == UINT16_MAX - 1) { timeFrameId = 0; } } - // unique_ptr headerPart(fTransportFactory->CreateMessage(sizeof(f2eHeader))); - unique_ptr headerPart(fTransportFactory->CreateMessage(h, sizeof(f2eHeader), [](void* data, void* hint){ delete static_cast(hint); }, h)); - unique_ptr dataPart(fTransportFactory->CreateMessage()); + FairMQParts parts; + + parts.AddPart(NewMessage(header, sizeof(f2eHeader), [](void* data, void* hint){ delete static_cast(hint); }, header)); + parts.AddPart(NewMessage()); // save the arrival time of the message. fArrivalTime.push(boost::posix_time::microsec_clock::local_time()); if (fTestMode > 0) { // test-mode: initialize and store data part in the buffer. - dataPart->Copy(baseMsg); - fHeaderBuffer.push(move(headerPart)); - fDataBuffer.push(move(dataPart)); + parts.At(1)->Copy(baseMsg); + fSTFBuffer.push(move(parts)); } else { // regular mode: receive data part from input - if (dataInChannel.Receive(dataPart) >= 0) { - fHeaderBuffer.push(move(headerPart)); - fDataBuffer.push(move(dataPart)); + if (dataInChannel.Receive(parts.At(1)) >= 0) { + fSTFBuffer.push(move(parts)); } else { // if nothing was received, try again continue; } } - // LOG(INFO) << fDataBuffer.size(); - // if offset is 0 - send data out without staggering. - if (fSendOffset == 0 && fDataBuffer.size() > 0) { + if (fSendOffset == 0 && fSTFBuffer.size() > 0) { sendFrontData(); - } else if (fDataBuffer.size() > 0) { - // size_t dataSize = fDataBuffer.front()->GetSize(); + } else if (fSTFBuffer.size() > 0) { ptime now = boost::posix_time::microsec_clock::local_time(); if ((now - fArrivalTime.front()).total_milliseconds() >= (fSendDelay * fSendOffset)) { sendFrontData(); @@ -174,8 +169,8 @@ void FLPSender::Run() inline void FLPSender::sendFrontData() { - f2eHeader h = *(static_cast(fHeaderBuffer.front()->GetData())); - uint16_t currentTimeframeId = h.timeFrameId; + f2eHeader header = *(static_cast(fSTFBuffer.front().At(0)->GetData())); + uint16_t currentTimeframeId = header.timeFrameId; // for which EPN is the message? int direction = currentTimeframeId % fNumEPNs; @@ -193,21 +188,14 @@ inline void FLPSender::sendFrontData() // if (to_simple_string(storedHeartbeat) == "not-a-date-time" || // (currentTime - storedHeartbeat).total_milliseconds() > fHeartbeatTimeoutInMs) { // LOG(WARN) << "Heartbeat too old for EPN#" << direction << ", discarding message."; - // fHeaderBuffer.pop(); + // fSTFBuffer.pop(); // fArrivalTime.pop(); - // fDataBuffer.pop(); // } else { // if the heartbeat from the corresponding EPN is within timeout period, send the data. - if (fChannels.at("data-out").at(direction).SendPart(fHeaderBuffer.front()) < 0) { - // TODO: replace SendPart() with SendPartAsync() after nov15 fairroot release - LOG(ERROR) << "Failed to queue ID part of event #" << currentTimeframeId; - } else { - if (fChannels.at("data-out").at(direction).SendAsync(fDataBuffer.front()) < 0) { - LOG(ERROR) << "Could not send message with event #" << currentTimeframeId << " without blocking"; - } + if (SendAsync(fSTFBuffer.front(), "data-out", direction) < 0) { + LOG(ERROR) << "Failed to queue sub-timeframe #" << currentTimeframeId; } - fHeaderBuffer.pop(); + fSTFBuffer.pop(); fArrivalTime.pop(); - fDataBuffer.pop(); // } } diff --git a/Examples/flp2epn-distributed/FLPSender.h b/Examples/flp2epn-distributed/FLPSender.h index 91fe98057a35d..cf9a65aad10c1 100644 --- a/Examples/flp2epn-distributed/FLPSender.h +++ b/Examples/flp2epn-distributed/FLPSender.h @@ -75,8 +75,7 @@ class FLPSender : public FairMQDevice /// Sends the "oldest" element from the sub-timeframe container void sendFrontData(); - std::queue> fHeaderBuffer; ///< Stores sub-timeframe headers - std::queue> fDataBuffer; ///< Stores sub-timeframe bodies + std::queue fSTFBuffer; ///< Buffer for sub-timeframes std::queue fArrivalTime; ///< Stores arrival times of sub-timeframes int fNumEPNs; ///< Number of epnReceivers diff --git a/Examples/flp2epn-distributed/run/flp2epn-prototype.json b/Examples/flp2epn-distributed/run/flp2epn-prototype.json new file mode 100644 index 0000000000000..a4b49d09e2ef2 --- /dev/null +++ b/Examples/flp2epn-distributed/run/flp2epn-prototype.json @@ -0,0 +1,229 @@ +{ + "fairMQOptions": + { + "devices": + [{ + "id": "flpSyncSampler", + "channels": + [{ + "name": "data", + "type": "pub", + "method": "bind", + "address": "tcp://127.0.0.1:5550", + "rateLogging": "0" + }, + { + "name": "ack", + "type": "pull", + "method": "bind", + "address": "tcp://127.0.0.1:5990", + "rateLogging": "0" + }] + }, + + + { + "id": "flpSender1", + "channels": + [{ + "name": "data-in", + "type": "sub", + "method": "connect", + "address": "tcp://127.0.0.1:5550", + "rcvBufSize": "10" + }, + { + "name": "hb-in", + "type": "sub", + "method": "bind", + "address": "tcp://127.0.0.1:5581", + "rateLogging": "0" + }, + { + "name": "data-out", + "type": "push", + "method": "connect", + "sockets": + [ + { "address": "tcp://127.0.0.1:5561" }, + { "address": "tcp://127.0.0.1:5562" }, + { "address": "tcp://127.0.0.1:5563" } + ], + "sndBufSize": "10" + }] + }, + { + "id": "flpSender2", + "channels": + [{ + "name": "data-in", + "type": "sub", + "method": "connect", + "address": "tcp://127.0.0.1:5550", + "rcvBufSize": "10" + }, + { + "name": "hb-in", + "type": "sub", + "method": "bind", + "address": "tcp://127.0.0.1:5582", + "rateLogging": "0" + }, + { + "name": "data-out", + "type": "push", + "method": "connect", + "sockets": + [ + { "address": "tcp://127.0.0.1:5561" }, + { "address": "tcp://127.0.0.1:5562" }, + { "address": "tcp://127.0.0.1:5563" } + ], + "sndBufSize": "10" + }] + }, + { + "id": "flpSender3", + "channels": + [{ + "name": "data-in", + "type": "sub", + "method": "connect", + "address": "tcp://127.0.0.1:5550", + "rcvBufSize": "10" + }, + { + "name": "hb-in", + "type": "sub", + "method": "bind", + "address": "tcp://127.0.0.1:5583", + "rateLogging": "0" + }, + { + "name": "data-out", + "type": "push", + "method": "connect", + "sockets": + [ + { "address": "tcp://127.0.0.1:5561" }, + { "address": "tcp://127.0.0.1:5562" }, + { "address": "tcp://127.0.0.1:5563" } + ], + "sndBufSize": "10" + }] + }, + + + { + "id": "epnReceiver1", + "channels": + [{ + "name": "data-in", + "type": "pull", + "method": "connect", + "address": "tcp://127.0.0.1:5561", + "rcvBufSize": "10" + }, + { + "name": "data-out", + "type": "pub", + "method": "bind", + "address": "tcp://127.0.0.1:5591", + "sndBufSize": "10" + }, + { + "name": "hb-out", + "type": "pub", + "method": "connect", + "sockets": + [ + { "address": "tcp://127.0.0.1:5581" }, + { "address": "tcp://127.0.0.1:5582" }, + { "address": "tcp://127.0.0.1:5583" } + ], + "rateLogging": "0" + }, + { + "name": "ack", + "type": "push", + "method": "connect", + "address": "tcp://127.0.0.1:5990", + "rateLogging": "0" + }] + }, + { + "id": "epnReceiver2", + "channels": + [{ + "name": "data-in", + "type": "pull", + "method": "connect", + "address": "tcp://127.0.0.1:5562", + "rcvBufSize": "10" + }, + { + "name": "data-out", + "type": "pub", + "method": "bind", + "address": "tcp://127.0.0.1:5592", + "sndBufSize": "10" + }, + { + "name": "hb-out", + "type": "pub", + "method": "connect", + "sockets": + [ + { "address": "tcp://127.0.0.1:5581" }, + { "address": "tcp://127.0.0.1:5582" }, + { "address": "tcp://127.0.0.1:5583" } + ], + "rateLogging": "0" + }, + { + "name": "ack", + "type": "push", + "method": "connect", + "address": "tcp://127.0.0.1:5990", + "rateLogging": "0" + }] + }, + { + "id": "epnReceiver3", + "channels": + [{ + "name": "data-in", + "type": "pull", + "method": "connect", + "address": "tcp://127.0.0.1:5563", + "rcvBufSize": "10" + }, + { + "name": "data-out", + "type": "pub", + "method": "bind", + "address": "tcp://127.0.0.1:5593", + "sndBufSize": "10" + }, + { + "name": "hb-out", + "type": "pub", + "method": "connect", + "sockets": + [ + { "address": "tcp://127.0.0.1:5581" }, + { "address": "tcp://127.0.0.1:5582" }, + { "address": "tcp://127.0.0.1:5583" } + ], + "rateLogging": "0" + }, + { + "name": "ack", + "type": "push", + "method": "connect", + "address": "tcp://127.0.0.1:5990", + "rateLogging": "0" + }] + }] + } +} diff --git a/Examples/flp2epn-distributed/run/runEPNReceiver.cxx b/Examples/flp2epn-distributed/run/runEPNReceiver.cxx index 80e5eee52a0eb..5bf8d0f82c46f 100644 --- a/Examples/flp2epn-distributed/run/runEPNReceiver.cxx +++ b/Examples/flp2epn-distributed/run/runEPNReceiver.cxx @@ -10,7 +10,6 @@ #include "boost/program_options.hpp" #include "FairMQLogger.h" -#include "FairMQTransportFactoryZMQ.h" #include "EPNReceiver.h" @@ -33,6 +32,7 @@ struct DeviceOptions int numFLPs; int testMode; int interactive; + string transport; string dataInSocketType; int dataInBufSize; @@ -74,6 +74,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) ("num-flps", bpo::value()->required(), "Number of FLPs") ("test-mode", bpo::value()->default_value(0), "Run in test mode") ("interactive", bpo::value()->default_value(1), "Run in interactive mode (1/0)") + ("transport", bpo::value()->default_value("zeromq"), "Transport (zeromq/nanomsg)") ("data-in-socket-type", bpo::value()->default_value("pull"), "Data input socket type: sub/pull") ("data-in-buff-size", bpo::value()->default_value(10), "Data input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") @@ -88,13 +89,13 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) ("data-out-rate-logging", bpo::value()->default_value(1), "Log output rate on data socket, 1/0") ("hb-out-socket-type", bpo::value()->default_value("pub"), "Heartbeat output socket type: pub/push") - ("hb-out-buff-size", bpo::value()->default_value(100), "Heartbeat output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") + ("hb-out-buff-size", bpo::value()->default_value(10), "Heartbeat output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") ("hb-out-method", bpo::value()->default_value("connect"), "Heartbeat output method: bind/connect") ("hb-out-address", bpo::value>()->required(), "Heartbeat output address, e.g.: \"tcp://localhost:5555\"") ("hb-out-rate-logging", bpo::value()->default_value(0), "Log output rate on heartbeat socket, 1/0") ("ack-out-socket-type", bpo::value()->default_value("push"), "Acknowledgement output socket type: pub/push") - ("ack-out-buff-size", bpo::value()->default_value(100), "Acknowledgement output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") + ("ack-out-buff-size", bpo::value()->default_value(10), "Acknowledgement output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") ("ack-out-method", bpo::value()->default_value("connect"), "Acknowledgement output method: bind/connect") ("ack-out-address", bpo::value()->required(), "Acknowledgement output address, e.g.: \"tcp://localhost:5555\"") ("ack-out-rate-logging", bpo::value()->default_value(0), "Log output rate on acknowledgement socket, 1/0") @@ -118,6 +119,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) if (vm.count("num-flps")) { _options->numFLPs = vm["num-flps"].as(); } if (vm.count("test-mode")) { _options->testMode = vm["test-mode"].as(); } if (vm.count("interactive")) { _options->interactive = vm["interactive"].as(); } + if (vm.count("transport")) { _options->transport = vm["transport"].as(); } if (vm.count("data-in-socket-type")) { _options->dataInSocketType = vm["data-in-socket-type"].as(); } if (vm.count("data-in-buff-size")) { _options->dataInBufSize = vm["data-in-buff-size"].as(); } @@ -173,8 +175,7 @@ int main(int argc, char** argv) LOG(INFO) << "EPN Receiver, ID: " << options.id << " (PID: " << getpid() << ")"; // configure the transport interface - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); - epn.SetTransport(transportFactory); + epn.SetTransport(options.transport); // set device properties epn.SetProperty(EPNReceiver::Id, options.id); diff --git a/Examples/flp2epn-distributed/run/runFLPSender.cxx b/Examples/flp2epn-distributed/run/runFLPSender.cxx index 9926f5d5762d4..233ec0443e997 100644 --- a/Examples/flp2epn-distributed/run/runFLPSender.cxx +++ b/Examples/flp2epn-distributed/run/runFLPSender.cxx @@ -10,7 +10,6 @@ #include "boost/program_options.hpp" #include "FairMQLogger.h" -#include "FairMQTransportFactoryZMQ.h" #include "FLPSender.h" @@ -35,6 +34,7 @@ struct DeviceOptions int interactive; int sendOffset; int sendDelay; + string transport; string dataInSocketType; int dataInBufSize; @@ -72,6 +72,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) ("heartbeat-timeout", bpo::value()->default_value(20000), "Heartbeat timeout in milliseconds") ("test-mode", bpo::value()->default_value(0), "Run in test mode") ("interactive", bpo::value()->default_value(1), "Run in interactive mode (1/0)") + ("transport", bpo::value()->default_value("zeromq"), "Transport (zeromq/nanomsg)") ("send-offset", bpo::value()->default_value(0), "Offset for staggered sending") ("send-delay", bpo::value()->default_value(8), "Delay for staggered sending") @@ -88,7 +89,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) ("data-out-rate-logging", bpo::value()->default_value(1), "Log output rate on socket, 1/0") ("hb-in-socket-type", bpo::value()->default_value("sub"), "Heartbeat in socket type: sub/pull") - ("hb-in-buff-size", bpo::value()->default_value(100), "Heartbeat in buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") + ("hb-in-buff-size", bpo::value()->default_value(10), "Heartbeat in buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") ("hb-in-method", bpo::value()->default_value("bind"), "Heartbeat in method: bind/connect") ("hb-in-address", bpo::value()->required(), "Heartbeat in address, e.g.: \"tcp://localhost:5555\"") ("hb-in-rate-logging", bpo::value()->default_value(0), "Log heartbeat in rate on socket, 1/0") @@ -115,6 +116,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) if (vm.count("heartbeat-timeout")) { _options->heartbeatTimeoutInMs = vm["heartbeat-timeout"].as(); } if (vm.count("test-mode")) { _options->testMode = vm["test-mode"].as(); } if (vm.count("interactive")) { _options->interactive = vm["interactive"].as(); } + if (vm.count("transport")) { _options->transport = vm["transport"].as(); } if (vm.count("send-offset")) { _options->sendOffset = vm["send-offset"].as(); } if (vm.count("send-delay")) { _options->sendDelay = vm["send-delay"].as(); } @@ -167,8 +169,7 @@ int main(int argc, char** argv) LOG(INFO) << "FLP Sender, ID: " << options.id << " (PID: " << getpid() << ")"; // configure the transport interface - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); - flp.SetTransport(transportFactory); + flp.SetTransport(options.transport); // set device properties flp.SetProperty(FLPSender::Id, options.id); diff --git a/Examples/flp2epn-distributed/run/runFLPSyncSampler.cxx b/Examples/flp2epn-distributed/run/runFLPSyncSampler.cxx index 226e05d196681..c1d71e56680fc 100644 --- a/Examples/flp2epn-distributed/run/runFLPSyncSampler.cxx +++ b/Examples/flp2epn-distributed/run/runFLPSyncSampler.cxx @@ -10,7 +10,6 @@ #include "boost/program_options.hpp" #include "FairMQLogger.h" -#include "FairMQTransportFactoryZMQ.h" #include "FLPSyncSampler.h" @@ -30,6 +29,7 @@ struct DeviceOptions int ioThreads; int interactive; int storeRTTinFile; + string transport; string dataOutSocketType; int dataOutBufSize; @@ -57,16 +57,17 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) ("max-events", bpo::value()->default_value(0), "Maximum number of events to send (0 - unlimited)") ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") ("interactive", bpo::value()->default_value(1), "Run in interactive mode (1/0)") + ("transport", bpo::value()->default_value("zeromq"), "Transport (zeromq/nanomsg)") ("store-rtt-in-file", bpo::value()->default_value(0), "Store round trip time measurements in a file (1/0)") ("data-out-socket-type", bpo::value()->default_value("pub"), "Data output socket type: pub/push") - ("data-out-buff-size", bpo::value()->default_value(100), "Data output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") + ("data-out-buff-size", bpo::value()->default_value(10), "Data output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") ("data-out-method", bpo::value()->default_value("bind"), "Data output method: bind/connect") ("data-out-address", bpo::value()->required(), "Data output address, e.g.: \"tcp://localhost:5555\"") ("data-out-rate-logging", bpo::value()->default_value(0), "Log output rate on data socket, 1/0") ("ack-in-socket-type", bpo::value()->default_value("pull"), "Acknowledgement Input socket type: sub/pull") - ("ack-in-buff-size", bpo::value()->default_value(100), "Acknowledgement Input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") + ("ack-in-buff-size", bpo::value()->default_value(10), "Acknowledgement Input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") ("ack-in-method", bpo::value()->default_value("bind"), "Acknowledgement Input method: bind/connect") ("ack-in-address", bpo::value()->required(), "Acknowledgement Input address, e.g.: \"tcp://localhost:5555\"") ("ack-in-rate-logging", bpo::value()->default_value(0), "Log input rate on Acknowledgement socket, 1/0") @@ -88,6 +89,7 @@ inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) if (vm.count("max-events")) { _options->maxEvents = vm["max-events"].as(); } if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } if (vm.count("interactive")) { _options->interactive = vm["interactive"].as(); } + if (vm.count("transport")) { _options->transport = vm["transport"].as(); } if (vm.count("store-rtt-in-file")) { _options->storeRTTinFile = vm["store-rtt-in-file"].as(); } if (vm.count("data-out-socket-type")) { _options->dataOutSocketType = vm["data-out-socket-type"].as(); } @@ -126,8 +128,7 @@ int main(int argc, char** argv) LOG(INFO) << "FLP Sync Sampler, ID: " << options.id << " (PID: " << getpid() << ")"; // configure the transport interface - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); - sampler.SetTransport(transportFactory); + sampler.SetTransport(options.transport); // set device properties sampler.SetProperty(FLPSyncSampler::Id, options.id); diff --git a/Examples/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in b/Examples/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in index 6e51cfd38e75d..c22fd750df368 100755 --- a/Examples/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in +++ b/Examples/flp2epn-distributed/run/startFLP2EPN-distributed.sh.in @@ -1,18 +1,18 @@ #!/bin/bash -buffSize="2" # zeromq high-water mark is in messages -#buffSize="50000000" # nanomsg buffer size is in bytes -signalBuffSize="100" +cfg="@CMAKE_BINARY_DIR@/bin/config/flp2epn-prototype.json" SAMPLER="flpSyncSampler" -SAMPLER+=" --id 101" +SAMPLER+=" --id flpSyncSampler" +# SAMPLER+=" --mq-config $cfg" SAMPLER+=" --event-rate 100" SAMPLER+=" --ack-in-address tcp://*:5990" SAMPLER+=" --data-out-address tcp://*:5550" xterm -geometry 80x25+0+0 -hold -e @CMAKE_BINARY_DIR@/bin/$SAMPLER & FLP0="flpSender" -FLP0+=" --id FLP1" +FLP0+=" --id flpSender1" +# FLP0+=" --mq-config $cfg" FLP0+=" --flp-index 0" FLP0+=" --event-size 1000000" FLP0+=" --num-epns 3" @@ -27,7 +27,8 @@ FLP0+=" --data-out-address tcp://127.0.0.1:5562" xterm -geometry 80x25+500+0 -hold -e @CMAKE_BINARY_DIR@/bin/$FLP0 & FLP1="flpSender" -FLP1+=" --id FLP2" +FLP1+=" --id flpSender2" +# FLP1+=" --mq-config $cfg" FLP1+=" --flp-index 1" FLP1+=" --event-size 1000000" FLP1+=" --num-epns 3" @@ -42,7 +43,8 @@ FLP1+=" --data-out-address tcp://127.0.0.1:5562" xterm -geometry 80x25+500+350 -hold -e @CMAKE_BINARY_DIR@/bin/$FLP1 & FLP2="flpSender" -FLP2+=" --id FLP3" +FLP2+=" --id flpSender3" +# FLP2+=" --mq-config $cfg" FLP2+=" --flp-index 2" FLP2+=" --event-size 1000000" FLP2+=" --num-epns 3" @@ -57,7 +59,8 @@ FLP2+=" --data-out-address tcp://127.0.0.1:5562" xterm -geometry 80x25+500+700 -hold -e @CMAKE_BINARY_DIR@/bin/$FLP2 & EPN0="epnReceiver" -EPN0+=" --id EPN1" +EPN0+=" --id epnReceiver1" +# EPN0+=" --mq-config $cfg" EPN0+=" --heartbeat-interval 5000" EPN0+=" --num-flps 3" EPN0+=" --test-mode 1" @@ -70,7 +73,8 @@ EPN0+=" --ack-out-address tcp://127.0.0.1:5990" xterm -geometry 80x25+1000+0 -hold -e @CMAKE_BINARY_DIR@/bin/$EPN0 & EPN1="epnReceiver" -EPN1+=" --id EPN2" +EPN1+=" --id epnReceiver2" +# EPN1+=" --mq-config $cfg" EPN1+=" --heartbeat-interval 5000" EPN1+=" --num-flps 3" EPN1+=" --test-mode 1" @@ -83,7 +87,8 @@ EPN1+=" --ack-out-address tcp://127.0.0.1:5990" xterm -geometry 80x25+1000+350 -hold -e @CMAKE_BINARY_DIR@/bin/$EPN1 & EPN2="epnReceiver" -EPN2+=" --id EPN3" +EPN2+=" --id epnReceiver3" +# EPN2+=" --mq-config $cfg" EPN2+=" --heartbeat-interval 5000" EPN2+=" --num-flps 3" EPN2+=" --test-mode 1" diff --git a/Examples/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx b/Examples/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx index ee99173e4ff8a..e42e56322a014 100644 --- a/Examples/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx +++ b/Examples/flp2epn-distributed/runO2Prototype/runEPNReceiver.cxx @@ -20,7 +20,7 @@ #include "EPNReceiver.h" -#include "KeyValue.h" // DDS +#include "dds_intercom.h" // DDS using namespace std; using namespace AliceO2::Devices; @@ -244,7 +244,7 @@ int main(int argc, char** argv) epn.WaitForInitialValidation(); // create DDS key value store - dds::key_value::CKeyValue ddsKeyValue; + dds::intercom_api::CKeyValue ddsKeyValue; // Advertise the bound data input address via DDS. ddsKeyValue.putValue("EPNReceiverInputAddress", epn.fChannels["data-in"].at(0).GetAddress()); @@ -254,7 +254,7 @@ int main(int argc, char** argv) } // Initialize DDS store to receive properties - dds::key_value::CKeyValue::valuesMap_t values; + dds::intercom_api::CKeyValue::valuesMap_t values; { mutex keyMutex; condition_variable keyCondition; diff --git a/Examples/flp2epn-distributed/runO2Prototype/runFLPSender.cxx b/Examples/flp2epn-distributed/runO2Prototype/runFLPSender.cxx index 4b1cdbe27823e..1292c22ae829b 100644 --- a/Examples/flp2epn-distributed/runO2Prototype/runFLPSender.cxx +++ b/Examples/flp2epn-distributed/runO2Prototype/runFLPSender.cxx @@ -20,7 +20,7 @@ #include "FLPSender.h" -#include "KeyValue.h" // DDS +#include "dds_intercom.h" // DDS using namespace std; using namespace AliceO2::Devices; @@ -195,7 +195,7 @@ int main(int argc, char** argv) flp.SetTransport(transportFactory); // initialize DDS key value store - dds::key_value::CKeyValue ddsKeyValue; + dds::intercom_api::CKeyValue ddsKeyValue; // set device properties flp.SetProperty(FLPSender::Id, options.id); @@ -231,7 +231,7 @@ int main(int argc, char** argv) if (options.testMode == 1) { // in test mode, retreive the output address of FLPSyncSampler to connect to and assign it to device - dds::key_value::CKeyValue::valuesMap_t values; + dds::intercom_api::CKeyValue::valuesMap_t values; { mutex keyMutex; condition_variable keyCondition; @@ -262,7 +262,7 @@ int main(int argc, char** argv) // advertise the heartbeat input address via DDS ddsKeyValue.putValue("FLPSenderHeartbeatInputAddress", flp.fChannels["heartbeat-in"].at(0).GetAddress()); - dds::key_value::CKeyValue::valuesMap_t epn_addr_values; + dds::intercom_api::CKeyValue::valuesMap_t epn_addr_values; // receive the EPNReceiver input addresses from DDS. { diff --git a/Examples/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx b/Examples/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx index e610e81b6f48d..799b9da73a232 100644 --- a/Examples/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx +++ b/Examples/flp2epn-distributed/runO2Prototype/runFLPSyncSampler.cxx @@ -20,7 +20,7 @@ #include "FLPSyncSampler.h" -#include "KeyValue.h" // DDS +#include "dds_intercom.h" // DDS using namespace std; using namespace AliceO2::Devices; @@ -178,7 +178,7 @@ int main(int argc, char** argv) sampler.WaitForInitialValidation(); // Advertise the bound addresses via DDS properties - dds::key_value::CKeyValue ddsKeyValue; + dds::intercom_api::CKeyValue ddsKeyValue; ddsKeyValue.putValue("FLPSyncSamplerOutputAddress", sampler.fChannels["data-out"].at(0).GetAddress()); ddsKeyValue.putValue("FLPSyncSamplerInputAddress", sampler.fChannels["ack-in"].at(0).GetAddress()); diff --git a/Examples/flp2epn/CMakeLists.txt b/Examples/flp2epn/CMakeLists.txt index cbafe788fdbc0..8ef05ae223279 100644 --- a/Examples/flp2epn/CMakeLists.txt +++ b/Examples/flp2epn/CMakeLists.txt @@ -13,8 +13,8 @@ set(SYSTEM_INCLUDE_DIRECTORIES include_directories(${INCLUDE_DIRECTORIES}) include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) -configure_file( ${CMAKE_SOURCE_DIR}/Examples/flp2epn/run/startFLP2EPN.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN.sh ) -configure_file( ${CMAKE_SOURCE_DIR}/Examples/flp2epn/run/startMerger.sh.in ${CMAKE_BINARY_DIR}/bin/startMerger.sh ) +configure_file(${CMAKE_SOURCE_DIR}/Examples/flp2epn/run/startFLP2EPN.sh.in ${CMAKE_BINARY_DIR}/bin/startFLP2EPN.sh) +configure_file(${CMAKE_SOURCE_DIR}/Examples/flp2epn/run/flp2epn.json ${CMAKE_BINARY_DIR}/bin/config/flp2epn.json) set(LINK_DIRECTORIES ${Boost_LIBRARY_DIRS} @@ -27,9 +27,6 @@ link_directories(${LINK_DIRECTORIES}) set(SRCS O2FLPex.cxx O2EPNex.cxx - O2Proxy.cxx - O2Merger.cxx - O2EpnMerger.cxx ) if(FAIRMQ_DEPENDENCIES) @@ -38,12 +35,21 @@ if(FAIRMQ_DEPENDENCIES) ${CMAKE_THREAD_LIBS_INIT} ${FAIRMQ_DEPENDENCIES} FairMQ + ${Boost_RANDOM_LIBRARY} + ${Boost_CHRONO_LIBRARY} + ${Boost_REGEX_LIBRARY} ) else(FAIRMQ_DEPENDENCIES) set(DEPENDENCIES ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} - ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_CHRONO_LIBRARY} FairMQ + ${Boost_DATE_TIME_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_CHRONO_LIBRARY} + FairMQ ) endif(FAIRMQ_DEPENDENCIES) @@ -55,17 +61,13 @@ Set(Exe_Names ${Exe_Names} testFLP testEPN - testEPN_M testProxy - testMerger ) set(Exe_Source run/runFLP.cxx run/runEPN.cxx - run/runEPN_M.cxx run/runProxy.cxx - run/runMerger.cxx ) list(LENGTH Exe_Names _length) diff --git a/Examples/flp2epn/O2EPNex.cxx b/Examples/flp2epn/O2EPNex.cxx index 5b2917454504d..54d7f6d7b74a5 100644 --- a/Examples/flp2epn/O2EPNex.cxx +++ b/Examples/flp2epn/O2EPNex.cxx @@ -10,14 +10,9 @@ #include "FairMQLogger.h" #include "O2EPNex.h" +#include "O2FLPExContent.h" -struct Content { - double a; - double b; - int x; - int y; - int z; -}; +using namespace std; O2EPNex::O2EPNex() { @@ -26,12 +21,12 @@ O2EPNex::O2EPNex() void O2EPNex::Run() { while (CheckCurrentState(RUNNING)) { - std::unique_ptr msg(fTransportFactory->CreateMessage()); + unique_ptr msg(NewMessage()); - fChannels.at("data-in").at(0).Receive(msg); + fChannels.at("data").at(0).Receive(msg); - // int numInput = msg->GetSize() / sizeof(Content); - // Content* input = static_cast(msg->GetData()); + // int numInput = msg->GetSize() / sizeof(O2FLPExContent); + // O2FLPExContent* input = static_cast(msg->GetData()); // for (int i = 0; i < numInput; ++i) { // LOG(INFO) << (&input[i])->x << " " << (&input[i])->y << " " << (&input[i])->z << " " << (&input[i])->a << " " << (&input[i])->b; diff --git a/Examples/flp2epn/O2EpnMerger.cxx b/Examples/flp2epn/O2EpnMerger.cxx deleted file mode 100644 index c29598dcf13e8..0000000000000 --- a/Examples/flp2epn/O2EpnMerger.cxx +++ /dev/null @@ -1,48 +0,0 @@ -/** - * O2EpnMerger.cxx - * - * @since 2013-01-09 - * @author D. Klein, A. Rybalchenko, M.Al-Turany - */ - -#include -#include - -#include "O2EpnMerger.h" -#include "FairMQLogger.h" - -O2EpnMerger::O2EpnMerger() -{ -} - -void O2EpnMerger::Run() -{ - std::unique_ptr poller(fTransportFactory->CreatePoller(fChannels.at("data-in"))); - - int numParts = fChannels.at("data-in").size() - 1; - - while (CheckCurrentState(RUNNING)) { - std::unique_ptr msg(fTransportFactory->CreateMessage()); - - poller->Poll(100); - - for (unsigned int i = 0; i < fChannels.at("data-in").size(); i++) { - if (poller->CheckInput(i)) { - if (fChannels.at("data-in").at(i).Receive(msg)) { - // LOG(INFO) << "------ recieve Msg from " << i ; - if (i < numParts) { - fChannels.at("data-out").at(0).SendPart(msg); - // LOG(INFO) << "------ Send Msg Part " << i ; - } else { - fChannels.at("data-out").at(0).Send(msg); - // LOG(INFO) << "------ Send last Msg Part " << i ; - } - } - } - } - } -} - -O2EpnMerger::~O2EpnMerger() -{ -} diff --git a/Examples/flp2epn/O2EpnMerger.h b/Examples/flp2epn/O2EpnMerger.h deleted file mode 100644 index 6cca142822b9d..0000000000000 --- a/Examples/flp2epn/O2EpnMerger.h +++ /dev/null @@ -1,23 +0,0 @@ -/** - * O2EpnMerger.h - * - * @since 2013-01-09 - * @author D. Klein, A. Rybalchenko, M.Al-Turany - */ - -#ifndef O2EpnMerger_H_ -#define O2EpnMerger_H_ - -#include "FairMQDevice.h" - -class O2EpnMerger: public FairMQDevice -{ - public: - O2EpnMerger(); - virtual ~O2EpnMerger(); - - protected: - virtual void Run(); -}; - -#endif /* O2EpnMerger_H_ */ diff --git a/Examples/flp2epn/O2FLPExContent.h b/Examples/flp2epn/O2FLPExContent.h new file mode 100644 index 0000000000000..0912f0d4e4993 --- /dev/null +++ b/Examples/flp2epn/O2FLPExContent.h @@ -0,0 +1,13 @@ +#ifndef O2FLPEXCONTENT_H_ +#define O2FLPEXCONTENT_H_ + +struct O2FLPExContent { + int id; + double a; + double b; + int x; + int y; + int z; +}; + +#endif /* O2FLPEXCONTENT_H_ */ diff --git a/Examples/flp2epn/O2FLPex.cxx b/Examples/flp2epn/O2FLPex.cxx index 6eed815b2daaa..d0bc3f5f1e003 100644 --- a/Examples/flp2epn/O2FLPex.cxx +++ b/Examples/flp2epn/O2FLPex.cxx @@ -14,20 +14,12 @@ #include "FairMQLogger.h" #include "O2FLPex.h" +#include "O2FLPExContent.h" using namespace std; -struct Content { - int id; - double a; - double b; - int x; - int y; - int z; -}; - O2FLPex::O2FLPex() : - fEventSize(10000) + fNumContent(10000) { } @@ -39,14 +31,14 @@ void O2FLPex::Run() { srand(time(NULL)); - FairMQChannel& outChannel = fChannels.at("data-out").at(0); + FairMQChannel& outChannel = fChannels.at("data").at(0); - LOG(DEBUG) << "Message size: " << fEventSize * sizeof(Content) << " bytes."; + LOG(DEBUG) << "Message size: " << fNumContent * sizeof(O2FLPExContent) << " bytes."; while (CheckCurrentState(RUNNING)) { - vector payload(fEventSize); + vector payload(fNumContent); - for (int i = 0; i < fEventSize; ++i) { + for (int i = 0; i < fNumContent; ++i) { payload.at(i).x = rand() % 100 + 1; payload.at(i).y = rand() % 100 + 1; payload.at(i).z = rand() % 100 + 1; @@ -55,8 +47,8 @@ void O2FLPex::Run() // LOG(INFO) << (&payload[i])->x << " " << (&payload[i])->y << " " << (&payload[i])->z << " " << (&payload[i])->a << " " << (&payload[i])->b; } - unique_ptr msg(fTransportFactory->CreateMessage(fEventSize * sizeof(Content))); - memcpy(msg->GetData(), payload.data(), fEventSize * sizeof(Content)); + unique_ptr msg(NewMessage(fNumContent * sizeof(O2FLPExContent))); + memcpy(msg->GetData(), payload.data(), fNumContent * sizeof(O2FLPExContent)); outChannel.Send(msg); } @@ -82,8 +74,8 @@ string O2FLPex::GetProperty(const int key, const string& default_/*= ""*/) void O2FLPex::SetProperty(const int key, const int value) { switch (key) { - case EventSize: - fEventSize = value; + case NumContent: + fNumContent = value; break; default: FairMQDevice::SetProperty(key, value); @@ -94,8 +86,8 @@ void O2FLPex::SetProperty(const int key, const int value) int O2FLPex::GetProperty(const int key, const int default_/*= 0*/) { switch (key) { - case EventSize: - return fEventSize; + case NumContent: + return fNumContent; default: return FairMQDevice::GetProperty(key, default_); } diff --git a/Examples/flp2epn/O2FLPex.h b/Examples/flp2epn/O2FLPex.h index bef7be48f2a90..04bae34e67b8a 100644 --- a/Examples/flp2epn/O2FLPex.h +++ b/Examples/flp2epn/O2FLPex.h @@ -16,13 +16,11 @@ class O2FLPex : public FairMQDevice { public: enum { - InputFile = FairMQDevice::Last, - EventSize, + NumContent = FairMQDevice::Last, Last }; O2FLPex(); virtual ~O2FLPex(); - void Log(int intervalInMs); virtual void SetProperty(const int key, const std::string& value); virtual std::string GetProperty(const int key, const std::string& default_ = ""); @@ -30,7 +28,7 @@ class O2FLPex : public FairMQDevice virtual int GetProperty(const int key, const int default_ = 0); protected: - int fEventSize; + int fNumContent; virtual void Run(); }; diff --git a/Examples/flp2epn/O2Merger.cxx b/Examples/flp2epn/O2Merger.cxx deleted file mode 100644 index 590ba7da151b3..0000000000000 --- a/Examples/flp2epn/O2Merger.cxx +++ /dev/null @@ -1,50 +0,0 @@ -/** - * O2Merger.cxx - * - * @since 2012-12-06 - * @author D. Klein, A. Rybalchenko, M. Al-Turany - */ - -#include -#include - -#include "FairMQLogger.h" -#include "FairMQPoller.h" -#include "O2Merger.h" - -O2Merger::O2Merger() -{ -} - -O2Merger::~O2Merger() -{ -} - -void O2Merger::Run() -{ - std::unique_ptr poller(fTransportFactory->CreatePoller(fChannels.at("data-in"))); - - int numParts = fChannels.at("data-in").size() - 1; - - while (CheckCurrentState(RUNNING)) { - std::unique_ptr msg(fTransportFactory->CreateMessage()); - - poller->Poll(100); - - for (unsigned int i = 0; i < fChannels.at("data-in").size(); i++) { - if (poller->CheckInput(i)) { - if (fChannels.at("data-in").at(i).Receive(msg) >= 0) { - // LOG(INFO) << "------ recieve Msg from " << i ; - if (i < numParts) { - fChannels.at("data-out").at(0).SendPart(msg); - // LOG(INFO) << "------ Send Msg Part " << i ; - } else { - fChannels.at("data-out").at(0).Send(msg); - // LOG(INFO) << "------ Send last Msg Part " << i ; - } - } - } - } - } -} - diff --git a/Examples/flp2epn/O2Merger.h b/Examples/flp2epn/O2Merger.h deleted file mode 100644 index 02d9a0e9a834d..0000000000000 --- a/Examples/flp2epn/O2Merger.h +++ /dev/null @@ -1,24 +0,0 @@ -/** - * O2Merger.h - * - * @since 2012-12-06 - * @author D. Klein, A. Rybalchenko, M. Al-Turany - */ - -#ifndef O2Merger_H_ -#define O2Merger_H_ - -#include "FairMQDevice.h" - - -class O2Merger: public FairMQDevice -{ - public: - O2Merger(); - virtual ~O2Merger(); - - protected: - virtual void Run(); -}; - -#endif /* O2Merger_H_ */ diff --git a/Examples/flp2epn/O2Proxy.cxx b/Examples/flp2epn/O2Proxy.cxx deleted file mode 100644 index cb75d8f267ecd..0000000000000 --- a/Examples/flp2epn/O2Proxy.cxx +++ /dev/null @@ -1,47 +0,0 @@ -/** - * O2Proxy.cxx - * - * @since 2013-10-02 - * @author A. Rybalchenko, M.Al-Turany - */ - -#include -#include - -#include "FairMQLogger.h" -#include "O2Proxy.h" - -O2Proxy::O2Proxy() -{ -} - -O2Proxy::~O2Proxy() -{ -} - -void O2Proxy::Run() -{ - FairMQChannel& inChannel = fChannels.at("data-in").at(0); - FairMQChannel& outChannel = fChannels.at("data-out").at(0); - - while (CheckCurrentState(RUNNING)) { - // int i = 0; - bool more = false; - - do { - /* Create an empty message to hold the message part */ - std::unique_ptr part(fTransportFactory->CreateMessage()); - /* Block until a message is available to be received from socket */ - inChannel.Receive(part); - /* Determine if more message parts are to follow */ - more = inChannel.ExpectsAnotherPart(); - // LOG(INFO) << "------ Get Msg Part "<< " more = " << more << " counter " << i++ ; - if (more) { - outChannel.SendPart(part); - } else { - outChannel.Send(part); - } - } while (more); - // i = 0; - } -} diff --git a/Examples/flp2epn/O2Proxy.h b/Examples/flp2epn/O2Proxy.h deleted file mode 100644 index c3b7faef70d61..0000000000000 --- a/Examples/flp2epn/O2Proxy.h +++ /dev/null @@ -1,24 +0,0 @@ -/** - * O2Proxy.h - * - * @since 2013-10-02 - * @author A. Rybalchenko, , M.Al-Turany - */ - -#ifndef O2Proxy_H_ -#define O2Proxy_H_ - -#include "FairMQDevice.h" - - -class O2Proxy: public FairMQDevice -{ - public: - O2Proxy(); - virtual ~O2Proxy(); - - protected: - virtual void Run(); -}; - -#endif /* O2Proxy_H_ */ diff --git a/Examples/flp2epn/README.md b/Examples/flp2epn/README.md new file mode 100644 index 0000000000000..2aa8bf63cd390 --- /dev/null +++ b/Examples/flp2epn/README.md @@ -0,0 +1,15 @@ +#### Example devices - testFLP and testEPN +-------------------------------------------------------------- + +#### General + +Two simple devices - testFLP and testEPN, showing basic FairMQ usage. +For more complex scenario, refer to the prototype flp2epn topology in `devices/flp2epn-prototype`. + +For more basic FairMQ examples, take a look at the MQ examples in the [FairRoot repository](https://github.com/FairRootGroup/FairRoot). + +#### Device configuration + +The devices are started by the `startFLP2EPN.sh` script, which configures the devices via command line options and their communication channels via a JSON configuration file. + +To list *all* available device command line options, run the executable with `--help`. diff --git a/Examples/flp2epn/run/flp2epn.json b/Examples/flp2epn/run/flp2epn.json new file mode 100644 index 0000000000000..7ab9f4eb6fd02 --- /dev/null +++ b/Examples/flp2epn/run/flp2epn.json @@ -0,0 +1,65 @@ +{ + "fairMQOptions": + { + "devices": + [{ + "id": "flpEx", + "channel": + { + "name": "data", + "socket": + { + "type": "push", + "method": "connect", + "address": "tcp://127.0.0.1:5565", + "sndBufSize": "1000", + "rcvBufSize": "1000", + "rateLogging": "1" + } + } + }, + { + "id": "proxy", + "channels": + [{ + "name": "data-in", + "socket": + { + "type": "pull", + "method": "bind", + "address": "tcp://*:5565", + "sndBufSize": "1000", + "rcvBufSize": "1000", + "rateLogging": "1" + } + },{ + "name": "data-out", + "socket": + { + "type": "push", + "method": "bind", + "address": "tcp://*:5566", + "sndBufSize": "1000", + "rcvBufSize": "1000", + "rateLogging": "1" + } + }] + }, + { + "id": "epnEx", + "channel": + { + "name": "data", + "socket": + { + "type": "pull", + "method": "connect", + "address": "tcp://127.0.0.1:5566", + "sndBufSize": "1000", + "rcvBufSize": "1000", + "rateLogging": "1" + } + } + }] + } +} diff --git a/Examples/flp2epn/run/runEPN.cxx b/Examples/flp2epn/run/runEPN.cxx index e543cef2ce3d4..aef5e466da176 100644 --- a/Examples/flp2epn/run/runEPN.cxx +++ b/Examples/flp2epn/run/runEPN.cxx @@ -7,105 +7,23 @@ #include -#include "boost/program_options.hpp" - #include "FairMQLogger.h" +#include "FairMQParser.h" +#include "FairMQProgOptions.h" #include "O2EPNex.h" -#ifdef NANOMSG - #include "FairMQTransportFactoryNN.h" -#else - #include "FairMQTransportFactoryZMQ.h" -#endif - using namespace std; -struct DeviceOptions -{ - DeviceOptions() : - id(), ioThreads(1), - inputSocketType(), inputBufSize(1000), inputMethod(), inputAddress() {} - - string id; - int ioThreads; - string inputSocketType; - int inputBufSize; - string inputMethod; - string inputAddress; -}; - -inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) -{ - if (_options == NULL) - throw std::runtime_error("Internal error: options' container is empty."); - - namespace bpo = boost::program_options; - bpo::options_description desc("Options"); - desc.add_options() - ("id", bpo::value()->required(), "Device ID") - ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") - ("input-socket-type", bpo::value()->required(), "Input socket type: sub/pull") - ("input-buff-size", bpo::value()->required(), "Input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") - ("input-method", bpo::value()->required(), "Input method: bind/connect") - ("input-address", bpo::value()->required(), "Input address, e.g.: \"tcp://localhost:5555\"") - ("help", "Print help messages"); - - bpo::variables_map vm; - bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - - if (vm.count("help")) - { - LOG(INFO) << "EPN" << endl << desc; - return false; - } - - bpo::notify(vm); - - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } - if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as(); } - if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as(); } - if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as(); } - if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as(); } - - return true; -} - int main(int argc, char** argv) { - O2EPNex epn; - epn.CatchSignals(); - - DeviceOptions options; - try - { - if (!parse_cmd_line(argc, argv, &options)) - return 0; - } - catch (exception& e) - { - LOG(ERROR) << e.what(); - return 1; - } + O2EPNex epn; + epn.CatchSignals(); - LOG(INFO) << "PID: " << getpid(); + FairMQProgOptions config; -#ifdef NANOMSG - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); -#else - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); -#endif - - epn.SetTransport(transportFactory); - - epn.SetProperty(O2EPNex::Id, options.id); - epn.SetProperty(O2EPNex::NumIoThreads, options.ioThreads); - - FairMQChannel inputChannel(options.inputSocketType, options.inputMethod, options.inputAddress); - inputChannel.UpdateSndBufSize(options.inputBufSize); - inputChannel.UpdateRcvBufSize(options.inputBufSize); - - epn.fChannels["data-in"].push_back(inputChannel); + try { + config.ParseAll(argc, argv); + epn.SetConfig(config); epn.ChangeState("INIT_DEVICE"); epn.WaitForEndOfState("INIT_DEVICE"); @@ -115,6 +33,12 @@ int main(int argc, char** argv) epn.ChangeState("RUN"); epn.InteractiveStateLoop(); - - return 0; + } catch (std::exception& e) { + LOG(ERROR) << e.what(); + LOG(INFO) << "Command line options are the following: "; + config.PrintHelp(); + return 1; + } + + return 0; } diff --git a/Examples/flp2epn/run/runEPN_M.cxx b/Examples/flp2epn/run/runEPN_M.cxx deleted file mode 100644 index 5850941dfe3bc..0000000000000 --- a/Examples/flp2epn/run/runEPN_M.cxx +++ /dev/null @@ -1,121 +0,0 @@ -/** - * runEPN.cxx - * - * @since 2013-01-21 - * @author D. Klein, A. Rybalchenko, M.Al-Turany - */ - -#include - -#include "boost/program_options.hpp" - -#include "FairMQLogger.h" -#include "O2EpnMerger.h" - -#ifdef NANOMSG - #include "FairMQTransportFactoryNN.h" -#else - #include "FairMQTransportFactoryZMQ.h" -#endif - -using namespace std; - -struct DeviceOptions -{ - DeviceOptions() : - id(), ioThreads(1), - inputSocketType(), inputBufSize(1000), inputMethod(), inputAddress() {} - - string id; - int ioThreads; - string inputSocketType; - int inputBufSize; - string inputMethod; - string inputAddress; -}; - -inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) -{ - if (_options == NULL) - throw std::runtime_error("Internal error: options' container is empty."); - - namespace bpo = boost::program_options; - bpo::options_description desc("Options"); - desc.add_options() - ("id", bpo::value()->required(), "Device ID") - ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") - ("input-socket-type", bpo::value()->required(), "Input socket type: sub/pull") - ("input-buff-size", bpo::value()->required(), "Input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") - ("input-method", bpo::value()->required(), "Input method: bind/connect") - ("input-address", bpo::value()->required(), "Input address, e.g.: \"tcp://localhost:5555\"") - ("help", "Print help messages"); - - bpo::variables_map vm; - bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - - if (vm.count("help")) - { - LOG(INFO) << "EPN Merger" << endl << desc; - return false; - } - - bpo::notify(vm); - - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } - if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as(); } - if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as(); } - if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as(); } - if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as(); } - - return true; -} - -int main(int argc, char** argv) -{ - O2EpnMerger epn; - epn.CatchSignals(); - - DeviceOptions options; - try - { - if (!parse_cmd_line(argc, argv, &options)) - return 0; - } - catch (exception& e) - { - LOG(ERROR) << e.what(); - return 1; - } - - LOG(INFO) << "PID: " << getpid(); - -#ifdef NANOMSG - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); -#else - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); -#endif - - epn.SetTransport(transportFactory); - - epn.SetProperty(O2EpnMerger::Id, options.id); - epn.SetProperty(O2EpnMerger::NumIoThreads, options.ioThreads); - - FairMQChannel inputChannel(options.inputSocketType, options.inputMethod, options.inputAddress); - inputChannel.UpdateSndBufSize(options.inputBufSize); - inputChannel.UpdateRcvBufSize(options.inputBufSize); - - epn.fChannels["data-in"].push_back(inputChannel); - - epn.ChangeState("INIT_DEVICE"); - epn.WaitForEndOfState("INIT_DEVICE"); - - epn.ChangeState("INIT_TASK"); - epn.WaitForEndOfState("INIT_TASK"); - - epn.ChangeState("RUN"); - epn.InteractiveStateLoop(); - - return 0; -} - diff --git a/Examples/flp2epn/run/runFLP.cxx b/Examples/flp2epn/run/runFLP.cxx index a3830e3dbc6b3..14d76756d1149 100644 --- a/Examples/flp2epn/run/runFLP.cxx +++ b/Examples/flp2epn/run/runFLP.cxx @@ -10,106 +10,31 @@ #include "boost/program_options.hpp" #include "FairMQLogger.h" +#include "FairMQParser.h" +#include "FairMQProgOptions.h" #include "O2FLPex.h" -#ifdef NANOMSG - #include "FairMQTransportFactoryNN.h" -#else - #include "FairMQTransportFactoryZMQ.h" -#endif - -using namespace std; - -struct DeviceOptions -{ - DeviceOptions() : - id(), ioThreads(1), - outputSocketType(), outputBufSize(1000), outputMethod(), outputAddress() {} - - string id; - int eventSize; - int ioThreads; - string outputSocketType; - int outputBufSize; - string outputMethod; - string outputAddress; -}; - -inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) -{ - if (_options == NULL) - throw std::runtime_error("Internal error: options' container is empty."); - - namespace bpo = boost::program_options; - bpo::options_description desc("Options"); - desc.add_options() - ("id", bpo::value()->required(), "Device ID") - ("event-size", bpo::value()->default_value(1000), "Event size in bytes") - ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") - ("output-socket-type", bpo::value()->required(), "Output socket type: pub/push") - ("output-buff-size", bpo::value()->required(), "Output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") - ("output-method", bpo::value()->required(), "Output method: bind/connect") - ("output-address", bpo::value()->required(), "Output address, e.g.: \"tcp://localhost:5555\"") - ("help", "Print help messages"); - - bpo::variables_map vm; - bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - - if (vm.count("help")) - { - LOG(INFO) << "FLP" << endl << desc; - return false; - } - - bpo::notify(vm); - - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("event-size")) { _options->eventSize = vm["event-size"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } - if (vm.count("output-socket-type")) { _options->outputSocketType = vm["output-socket-type"].as(); } - if (vm.count("output-buff-size")) { _options->outputBufSize = vm["output-buff-size"].as(); } - if (vm.count("output-method")) { _options->outputMethod = vm["output-method"].as(); } - if (vm.count("output-address")) { _options->outputAddress = vm["output-address"].as(); } - - return true; -} +using namespace boost::program_options; int main(int argc, char** argv) { - O2FLPex flp; - flp.CatchSignals(); + O2FLPex flp; + flp.CatchSignals(); - DeviceOptions options; - try - { - if (!parse_cmd_line(argc, argv, &options)) - return 0; - } - catch (exception& e) - { - LOG(ERROR) << e.what(); - return 1; - } + FairMQProgOptions config; - LOG(INFO) << "PID: " << getpid(); + try { + int numContent; -#ifdef NANOMSG - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); -#else - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); -#endif + options_description flpOptions("FLPex options"); + flpOptions.add_options() + ("num-content", value(&numContent)->default_value(1000), "Event size in bytes"); - flp.SetTransport(transportFactory); + config.AddToCmdLineOptions(flpOptions); - flp.SetProperty(O2FLPex::Id, options.id); - flp.SetProperty(O2FLPex::NumIoThreads, options.ioThreads); - flp.SetProperty(O2FLPex::EventSize, options.eventSize); - - FairMQChannel outputChannel(options.outputSocketType, options.outputMethod, options.outputAddress); - outputChannel.UpdateSndBufSize(options.outputBufSize); - outputChannel.UpdateRcvBufSize(options.outputBufSize); - - flp.fChannels["data-out"].push_back(outputChannel); + config.ParseAll(argc, argv); + flp.SetConfig(config); + flp.SetProperty(O2FLPex::NumContent, numContent); flp.ChangeState("INIT_DEVICE"); flp.WaitForEndOfState("INIT_DEVICE"); @@ -119,6 +44,12 @@ int main(int argc, char** argv) flp.ChangeState("RUN"); flp.InteractiveStateLoop(); - - return 0; -} + } catch (std::exception& e) { + LOG(ERROR) << e.what(); + LOG(INFO) << "Command line options are the following: "; + config.PrintHelp(); + return 1; + } + + return 0; +} \ No newline at end of file diff --git a/Examples/flp2epn/run/runMerger.cxx b/Examples/flp2epn/run/runMerger.cxx deleted file mode 100644 index a6a74db1587f4..0000000000000 --- a/Examples/flp2epn/run/runMerger.cxx +++ /dev/null @@ -1,148 +0,0 @@ -/** - * runMerger.cxx - * - * @since 2012-12-06 - * @author D. Klein, A. Rybalchenko, M.Al-Turany - */ - -#include - -#include "boost/program_options.hpp" - -#include "FairMQLogger.h" -#include "O2Merger.h" - -#ifdef NANOMSG - #include "FairMQTransportFactoryNN.h" -#else - #include "FairMQTransportFactoryZMQ.h" -#endif - -using namespace std; - -struct DeviceOptions -{ - DeviceOptions() : - id(), ioThreads(1), numInputs(0), - inputSocketType(), inputBufSize(), inputMethod(), inputAddress(), - outputSocketType(), outputBufSize(1000), outputMethod(), outputAddress() {} - - string id; - int ioThreads; - int numInputs; - vector inputSocketType; - vector inputBufSize; - vector inputMethod; - vector inputAddress; - string outputSocketType; - int outputBufSize; - string outputMethod; - string outputAddress; -}; - -inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) -{ - if (_options == NULL) - throw std::runtime_error("Internal error: options' container is empty."); - - namespace bpo = boost::program_options; - bpo::options_description desc("Options"); - desc.add_options() - ("id", bpo::value()->required(), "Device ID") - ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") - ("num-inputs", bpo::value()->required(), "Number of input sockets") - ("input-socket-type", bpo::value< vector >()->required(), "Input socket type: sub/pull") - ("input-buff-size", bpo::value< vector >()->required(), "Input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") - ("input-method", bpo::value< vector >()->required(), "Input method: bind/connect") - ("input-address", bpo::value< vector >()->required(), "Input address, e.g.: \"tcp://localhost:5555\"") - ("output-socket-type", bpo::value()->required(), "Output socket type: pub/push") - ("output-buff-size", bpo::value()->required(), "Output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") - ("output-method", bpo::value()->required(), "Output method: bind/connect") - ("output-address", bpo::value()->required(), "Output address, e.g.: \"tcp://localhost:5555\"") - ("help", "Print help messages"); - - bpo::variables_map vm; - bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - - if (vm.count("help")) - { - LOG(INFO) << "MERGER" << endl << desc; - return false; - } - - bpo::notify(vm); - - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } - if (vm.count("num-inputs")) { _options->numInputs = vm["num-inputs"].as(); } - if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as< vector >(); } - if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as< vector >(); } - if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as< vector >(); } - if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as< vector >(); } - if (vm.count("output-socket-type")) { _options->outputSocketType = vm["output-socket-type"].as(); } - if (vm.count("output-buff-size")) { _options->outputBufSize = vm["output-buff-size"].as(); } - if (vm.count("output-method")) { _options->outputMethod = vm["output-method"].as(); } - if (vm.count("output-address")) { _options->outputAddress = vm["output-address"].as(); } - - return true; -} - -int main(int argc, char** argv) -{ - O2Merger merger; - merger.CatchSignals(); - - DeviceOptions options; - try - { - if (!parse_cmd_line(argc, argv, &options)) - return 0; - } - catch (exception& e) - { - LOG(ERROR) << e.what(); - return 1; - } - - LOG(INFO) << "PID: " << getpid(); - -#ifdef NANOMSG - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); -#else - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); -#endif - - merger.SetTransport(transportFactory); - - merger.SetProperty(O2Merger::Id, options.id); - merger.SetProperty(O2Merger::NumIoThreads, options.ioThreads); - - for (int i = 0; i < options.inputAddress.size(); ++i) - { - FairMQChannel inputChannel(options.inputSocketType.at(i), options.inputMethod.at(i), options.inputAddress.at(i)); - inputChannel.UpdateSndBufSize(options.inputBufSize.at(i)); - inputChannel.UpdateRcvBufSize(options.inputBufSize.at(i)); - inputChannel.UpdateRateLogging(1); - - merger.fChannels["data-in"].push_back(inputChannel); - } - - FairMQChannel outputChannel(options.outputSocketType, options.outputMethod, options.outputAddress); - outputChannel.UpdateSndBufSize(options.outputBufSize); - outputChannel.UpdateRcvBufSize(options.outputBufSize); - outputChannel.UpdateRateLogging(1); - - merger.fChannels["data-out"].push_back(outputChannel); - - merger.ChangeState("INIT_DEVICE"); - merger.WaitForEndOfState("INIT_DEVICE"); - - merger.ChangeState("INIT_TASK"); - merger.WaitForEndOfState("INIT_TASK"); - - merger.ChangeState("RUN"); - merger.InteractiveStateLoop(); - - return 0; -} - diff --git a/Examples/flp2epn/run/runProxy.cxx b/Examples/flp2epn/run/runProxy.cxx index f105f0735b6a4..277308e08e1bb 100644 --- a/Examples/flp2epn/run/runProxy.cxx +++ b/Examples/flp2epn/run/runProxy.cxx @@ -10,133 +10,32 @@ #include "boost/program_options.hpp" #include "FairMQLogger.h" -#include "O2Proxy.h" +#include "FairMQProgOptions.h" +#include "FairMQProxy.h" +#include "runSimpleMQStateMachine.h" -#ifdef NANOMSG - #include "FairMQTransportFactoryNN.h" -#else - #include "FairMQTransportFactoryZMQ.h" -#endif - -using namespace std; - -struct DeviceOptions -{ - DeviceOptions() : - id(), ioThreads(1), - inputSocketType(), inputBufSize(1000), inputMethod(), inputAddress(), - outputSocketType(), outputBufSize(1000), outputMethod(), outputAddress() {} - - string id; - int ioThreads; - string inputSocketType; - int inputBufSize; - string inputMethod; - string inputAddress; - string outputSocketType; - int outputBufSize; - string outputMethod; - string outputAddress; -}; - -inline bool parse_cmd_line(int _argc, char* _argv[], DeviceOptions* _options) -{ - if (_options == NULL) - throw std::runtime_error("Internal error: options' container is empty."); - - namespace bpo = boost::program_options; - bpo::options_description desc("Options"); - desc.add_options() - ("id", bpo::value()->required(), "Device ID") - ("io-threads", bpo::value()->default_value(1), "Number of I/O threads") - ("input-socket-type", bpo::value()->required(), "Input socket type: sub/pull") - ("input-buff-size", bpo::value()->required(), "Input buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") - ("input-method", bpo::value()->required(), "Input method: bind/connect") - ("input-address", bpo::value()->required(), "Input address, e.g.: \"tcp://localhost:5555\"") - ("output-socket-type", bpo::value()->required(), "Output socket type: pub/push") - ("output-buff-size", bpo::value()->required(), "Output buffer size in number of messages (ZeroMQ)/bytes(nanomsg)") - ("output-method", bpo::value()->required(), "Output method: bind/connect") - ("output-address", bpo::value()->required(), "Output address, e.g.: \"tcp://localhost:5555\"") - ("help", "Print help messages"); - - bpo::variables_map vm; - bpo::store(bpo::parse_command_line(_argc, _argv, desc), vm); - - if (vm.count("help")) - { - LOG(INFO) << "Proxy" << endl << desc; - return false; - } - - bpo::notify(vm); - - if (vm.count("id")) { _options->id = vm["id"].as(); } - if (vm.count("io-threads")) { _options->ioThreads = vm["io-threads"].as(); } - if (vm.count("input-socket-type")) { _options->inputSocketType = vm["input-socket-type"].as(); } - if (vm.count("input-buff-size")) { _options->inputBufSize = vm["input-buff-size"].as(); } - if (vm.count("input-method")) { _options->inputMethod = vm["input-method"].as(); } - if (vm.count("input-address")) { _options->inputAddress = vm["input-address"].as(); } - if (vm.count("output-socket-type")) { _options->outputSocketType = vm["output-socket-type"].as(); } - if (vm.count("output-buff-size")) { _options->outputBufSize = vm["output-buff-size"].as(); } - if (vm.count("output-method")) { _options->outputMethod = vm["output-method"].as(); } - if (vm.count("output-address")) { _options->outputAddress = vm["output-address"].as(); } - - return true; -} +using namespace boost::program_options; int main(int argc, char** argv) { - O2Proxy proxy; - proxy.CatchSignals(); - - DeviceOptions options; - try - { - if (!parse_cmd_line(argc, argv, &options)) - return 0; - } - catch (exception& e) - { - LOG(ERROR) << e.what(); - return 1; - } - - LOG(INFO) << "PID: " << getpid(); - -#ifdef NANOMSG - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN(); -#else - FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ(); -#endif - - proxy.SetTransport(transportFactory); - - proxy.SetProperty(O2Proxy::Id, options.id); - proxy.SetProperty(O2Proxy::NumIoThreads, options.ioThreads); - - FairMQChannel inputChannel(options.inputSocketType, options.inputMethod, options.inputAddress); - inputChannel.UpdateSndBufSize(options.inputBufSize); - inputChannel.UpdateRcvBufSize(options.inputBufSize); - inputChannel.UpdateRateLogging(1); - - proxy.fChannels["data-in"].push_back(inputChannel); - - FairMQChannel outputChannel(options.outputSocketType, options.outputMethod, options.outputAddress); - outputChannel.UpdateSndBufSize(options.outputBufSize); - outputChannel.UpdateRcvBufSize(options.outputBufSize); - outputChannel.UpdateRateLogging(1); - - proxy.fChannels["data-out"].push_back(outputChannel); - - proxy.ChangeState("INIT_DEVICE"); - proxy.WaitForEndOfState("INIT_DEVICE"); - - proxy.ChangeState("INIT_TASK"); - proxy.WaitForEndOfState("INIT_TASK"); - - proxy.ChangeState("RUN"); - proxy.InteractiveStateLoop(); - - return 0; + try { + int multipart; + + options_description proxyOptions("Proxy options"); + proxyOptions.add_options() + ("multipart", value(&multipart)->default_value(1), "Handle multipart payloads"); + + FairMQProgOptions config; + config.AddToCmdLineOptions(proxyOptions); + config.ParseAll(argc, argv); + + FairMQProxy proxy; + proxy.SetProperty(FairMQProxy::Multipart, multipart); + runStateMachine(proxy, config); + } catch (std::exception& e) { + LOG(ERROR) << "Unhandled Exception reached the top of main: " << e.what() << ", application will now exit"; + return 1; + } + + return 0; } - diff --git a/Examples/flp2epn/run/startFLP2EPN.sh.in b/Examples/flp2epn/run/startFLP2EPN.sh.in index f36ada84d6516..0abd7db5f39d7 100755 --- a/Examples/flp2epn/run/startFLP2EPN.sh.in +++ b/Examples/flp2epn/run/startFLP2EPN.sh.in @@ -1,21 +1,23 @@ #!/bin/bash -buffSize="1000" # zeromq high-water mark is in messages -#buffSize="50000000" # nanomsg buffer size is in bytes +flp2epnEx1config="@CMAKE_BINARY_DIR@/bin/config/flp2epn.json" FLP0="testFLP" -FLP0+=" --id 101" -FLP0+=" --event-size 10000" -FLP0+=" --output-socket-type push --output-buff-size $buffSize --output-method connect --output-address tcp://127.0.0.1:5565" -xterm -e @CMAKE_BINARY_DIR@/bin/$FLP0 & +FLP0+=" --id flpEx" +# FLP0+=" --transport nanomsg" +FLP0+=" --num-content 10000" +FLP0+=" --mq-config $flp2epnEx1config" +xterm -geometry 80x23+0+0 -hold -e @CMAKE_BINARY_DIR@/bin/$FLP0 & PROXY="testProxy" -PROXY+=" --id 201" -PROXY+=" --input-socket-type pull --input-buff-size $buffSize --input-method bind --input-address tcp://*:5565" -PROXY+=" --output-socket-type push --output-buff-size $buffSize --output-method bind --output-address tcp://*:5566" -xterm -e @CMAKE_BINARY_DIR@/bin/$PROXY & +PROXY+=" --id proxy" +# PROXY+=" --transport nanomsg" +# PROXY+=" --multipart 0" +PROXY+=" --mq-config $flp2epnEx1config" +xterm -geometry 80x23+500+0 -hold -e @CMAKE_BINARY_DIR@/bin/$PROXY & EPN0="testEPN" -EPN0+=" --id 301" -EPN0+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://127.0.0.1:5566" -xterm -e @CMAKE_BINARY_DIR@/bin/$EPN0 & +EPN0+=" --id epnEx" +# EPN0+=" --transport nanomsg" +EPN0+=" --mq-config $flp2epnEx1config" +xterm -geometry 80x23+1000+0 -hold -e @CMAKE_BINARY_DIR@/bin/$EPN0 & diff --git a/Examples/flp2epn/run/startMerger.sh.in b/Examples/flp2epn/run/startMerger.sh.in deleted file mode 100755 index 57456400f4d60..0000000000000 --- a/Examples/flp2epn/run/startMerger.sh.in +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash - -buffSize="1000" # zeromq high-water mark is in messages -#buffSize="50000000" # nanomsg buffer size is in bytes - -FLP0="testFLP" -FLP0+=" --id 101" -FLP0+=" --event-size 10000" -FLP0+=" --output-socket-type push --output-buff-size $buffSize --output-method bind --output-address tcp://*:5565" -xterm -e @CMAKE_BINARY_DIR@/bin/$FLP0 & - -FLP1="testFLP" -FLP1+=" --id 102" -FLP1+=" --event-size 10000" -FLP1+=" --output-socket-type push --output-buff-size $buffSize --output-method bind --output-address tcp://*:5566" -xterm -e @CMAKE_BINARY_DIR@/bin/$FLP1 & - -FLP2="testFLP" -FLP2+=" --id 103" -FLP2+=" --event-size 10000" -FLP2+=" --output-socket-type push --output-buff-size $buffSize --output-method bind --output-address tcp://*:5567" -xterm -e @CMAKE_BINARY_DIR@/bin/$FLP2 & - -MERGER="testMerger" -MERGER+=" --id 501" -MERGER+=" --num-inputs 3" -MERGER+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5565" -MERGER+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5566" -MERGER+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5567" -MERGER+=" --output-socket-type push --output-buff-size $buffSize --output-method bind --output-address tcp://*:5581" -xterm -e @CMAKE_BINARY_DIR@/bin/$MERGER & - -PROXY="testProxy" -PROXY+=" --id 201" -PROXY+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5581" -PROXY+=" --output-socket-type push --output-buff-size $buffSize --output-method bind --output-address tcp://*:5582" -xterm -e @CMAKE_BINARY_DIR@/bin/$PROXY & - -EPN0="testEPN" -EPN0+=" --id 301" -EPN0+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5582" -xterm -e @CMAKE_BINARY_DIR@/bin/$EPN0 & - -EPN1="testEPN" -EPN1+=" --id 302" -EPN1+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5582" -xterm -e @CMAKE_BINARY_DIR@/bin/$EPN1 & - -EPN2="testEPN" -EPN2+=" --id 303" -EPN2+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5582" -xterm -e @CMAKE_BINARY_DIR@/bin/$EPN2 & - -EPN3="testEPN" -EPN3+=" --id 304" -EPN3+=" --input-socket-type pull --input-buff-size $buffSize --input-method connect --input-address tcp://localhost:5582" -xterm -e @CMAKE_BINARY_DIR@/bin/$EPN3 & diff --git a/Utilities/aliceHLTwrapper/CMakeLists.txt b/Utilities/aliceHLTwrapper/CMakeLists.txt index bd69a78d711e1..b1f2bfd58c6e3 100644 --- a/Utilities/aliceHLTwrapper/CMakeLists.txt +++ b/Utilities/aliceHLTwrapper/CMakeLists.txt @@ -50,7 +50,7 @@ set(SRCS if(DDS_FOUND) set(DEPENDENCIES ${DEPENDENCIES} - dds-key-value-lib + dds_intercom_lib ) endif() @@ -64,13 +64,20 @@ if(FAIRMQ_DEPENDENCIES) ${CMAKE_THREAD_LIBS_INIT} ${FAIRMQ_DEPENDENCIES} ${Boost_CHRONO_LIBRARY} + ${Boost_RANDOM_LIBRARY} + ${Boost_REGEX_LIBRARY} FairMQ ) else(FAIRMQ_DEPENDENCIES) set(DEPENDENCIES ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} - ${Boost_CHRONO_LIBRARY} ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} FairMQ + ${Boost_CHRONO_LIBRARY} + ${Boost_DATE_TIME_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_PROGRAM_OPTIONS_LIBRARY} + FairMQ ) endif(FAIRMQ_DEPENDENCIES) diff --git a/Utilities/aliceHLTwrapper/EventSampler.cxx b/Utilities/aliceHLTwrapper/EventSampler.cxx index 81833833dd28f..958821587b0d2 100644 --- a/Utilities/aliceHLTwrapper/EventSampler.cxx +++ b/Utilities/aliceHLTwrapper/EventSampler.cxx @@ -68,7 +68,7 @@ void EventSampler::Run() boost::thread samplerThread(boost::bind(&EventSampler::samplerLoop, this)); - FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data-in"]); + unique_ptr poller(fTransportFactory->CreatePoller(fChannels["data-in"])); bool received = false; @@ -80,7 +80,7 @@ void EventSampler::Run() int errorCount=0; const int maxError=10; - vector inputMessages; + vector> inputMessages; vector inputMessageCntPerSocket(numInputs, 0); int nReadCycles=0; @@ -92,17 +92,12 @@ void EventSampler::Run() poller->Poll(mPollingTimeout); for(int i = 0; i < numInputs; i++) { if (poller->CheckInput(i)) { - do { - unique_ptr msg(fTransportFactory->CreateMessage()); - received = fChannels.at("data-in").at(i).Receive(msg.get()); - if (received) { - inputMessages.push_back(msg.release()); - inputMessageCntPerSocket[i]++; - if (mVerbosity > 3) { - LOG(INFO) << " |---- receive Msg from socket " << i; - } + if (fChannels.at("data-in").at(i).Receive(inputMessages)) { + inputMessageCntPerSocket[i] = inputMessages.size(); + if (mVerbosity > 3) { + LOG(INFO) << " |---- receive Msgs from socket " << i; } - } while (fChannels.at("data-in").at(i).ExpectsAnotherPart()); + } if (mVerbosity > 2) { LOG(INFO) << "------ received " << inputMessageCntPerSocket[i] << " message(s) from socket " << i; } @@ -113,7 +108,7 @@ void EventSampler::Run() auto seconds = std::chrono::duration_cast(timestamp - dayref); auto useconds = std::chrono::duration_cast(timestamp - dayref - seconds); - for (vector::iterator mit=inputMessages.begin(); + for (vector>::iterator mit=inputMessages.begin(); mit!=inputMessages.end(); mit++) { AliHLTComponentEventData* evtData=reinterpret_cast((*mit)->GetData()); if ((*mit)->GetSize() >= sizeof(AliHLTComponentEventData) && @@ -147,8 +142,6 @@ void EventSampler::Run() latencyLog << evtData->fEventID << " " << latencyUSeconds << endl; } } - - delete *mit; } inputMessages.clear(); for (vector::iterator mcit=inputMessageCntPerSocket.begin(); @@ -161,8 +154,6 @@ void EventSampler::Run() latencyLog.close(); } - delete poller; - samplerThread.interrupt(); samplerThread.join(); } diff --git a/Utilities/aliceHLTwrapper/WrapperDevice.cxx b/Utilities/aliceHLTwrapper/WrapperDevice.cxx index b6711f16c187e..995ca890cfa71 100644 --- a/Utilities/aliceHLTwrapper/WrapperDevice.cxx +++ b/Utilities/aliceHLTwrapper/WrapperDevice.cxx @@ -112,7 +112,7 @@ void WrapperDevice::Run() static system_clock::time_point refTime = system_clock::now(); #endif // USE_CHRONO - FairMQPoller* poller = fTransportFactory->CreatePoller(fChannels["data-in"]); + unique_ptr poller(fTransportFactory->CreatePoller(fChannels["data-in"])); // inherited variables of FairMQDevice: // fChannels @@ -122,7 +122,7 @@ void WrapperDevice::Run() int errorCount=0; const int maxError=10; - vector inputMessages; + vector> inputMessages; vector inputMessageCntPerSocket(numInputs, 0); int nReadCycles=0; while (CheckCurrentState(RUNNING)) { @@ -137,19 +137,14 @@ void WrapperDevice::Run() continue; } if (poller->CheckInput(i)) { - do { - unique_ptr msg(fTransportFactory->CreateMessage()); - if (fChannels.at("data-in").at(i).Receive(msg.get())) { - receivedAtLeastOneMessage = true; - inputMessages.push_back(msg.release()); - if (inputMessageCntPerSocket[i] == 0) - inputsReceived++; // count only the first message on that socket - inputMessageCntPerSocket[i]++; - if (mVerbosity > 3) { - LOG(INFO) << " |---- receive Msg from socket " << i; - } + if (fChannels.at("data-in").at(i).Receive(inputMessages)) { + receivedAtLeastOneMessage = true; + inputsReceived++; // count only the first message on that socket + inputMessageCntPerSocket[i] = inputMessages.size(); + if (mVerbosity > 3) { + LOG(INFO) << " |---- receive Msgs from socket " << i; } - } while (fChannels.at("data-in").at(i).ExpectsAnotherPart()); + } if (mVerbosity > 2) { LOG(INFO) << "------ received " << inputMessageCntPerSocket[i] << " message(s) from socket " << i; } @@ -199,7 +194,7 @@ void WrapperDevice::Run() if (!mSkipProcessing) { // prepare input from messages vector dataArray; - for (vector::iterator msg=inputMessages.begin(); + for (vector>::iterator msg=inputMessages.begin(); msg!=inputMessages.end(); msg++) { void* buffer=(*msg)->GetData(); dataArray.push_back(AliceO2::AliceHLT::MessageFormat::BufferDesc_t(reinterpret_cast(buffer), (*msg)->GetSize())); @@ -227,7 +222,7 @@ void WrapperDevice::Run() for (auto premsg = begin(mMessages); premsg != end(mMessages); premsg++) { if ((*premsg)->GetData() == opayload.mP && (*premsg)->GetSize() == opayload.mSize) { - omsg=*premsg; + omsg=(*premsg).get(); if (mVerbosity > 2) { LOG(DEBUG) << "using pre-allocated message of size " << opayload.mSize; } @@ -247,7 +242,7 @@ void WrapperDevice::Run() } AliHLTUInt8_t* pTarget = reinterpret_cast(msg->GetData()); memcpy(pTarget, opayload.mP, opayload.mSize); - mMessages.push_back(msg.release()); + mMessages.push_back(move(msg)); } else { if (errorCount == maxError && errorCount++ > 0) LOG(ERROR) << "persistent error, suppressing further output"; @@ -261,19 +256,9 @@ void WrapperDevice::Run() if (mMessages.size()>0) { if (fChannels.find("data-out") != fChannels.end() && fChannels["data-out"].size() > 0) { - for (auto sendmsg = begin(mMessages); sendmsg != end(mMessages); sendmsg++) { - if (sendmsg + 1 == end(mMessages)) { - // this is the last data block - if (mVerbosity > 2) { - LOG(DEBUG) << "sending last message, size " << (*sendmsg)->GetSize(); - } - fChannels["data-out"].at(0).Send(*sendmsg); - } else { - if (mVerbosity > 2) { - LOG(DEBUG) << "sending multipart message, size " << (*sendmsg)->GetSize(); - } - fChannels["data-out"].at(0).Send(*sendmsg, "snd-more"); - } + fChannels["data-out"].at(0).Send(mMessages); + if (mVerbosity > 2) { + LOG(DEBUG) << "sending multipart message with " << mMessages.size() << " parts"; } } else { if (errorCount == maxError && errorCount++ > 0) @@ -282,24 +267,17 @@ void WrapperDevice::Run() LOG(ERROR) << "no output slot available (" << (fChannels.find("data-out") == fChannels.end() ? "uninitialized" : "0 slots") << ")"; } - for (auto sendmsg : mMessages) delete sendmsg; mMessages.clear(); } } // cleanup - for (vector::iterator mit=inputMessages.begin(); - mit!=inputMessages.end(); mit++) { - delete *mit; - } inputMessages.clear(); for (vector::iterator mcit=inputMessageCntPerSocket.begin(); mcit!=inputMessageCntPerSocket.end(); mcit++) { *mcit=0; } } - - delete poller; } void WrapperDevice::Pause() @@ -365,6 +343,6 @@ unsigned char* WrapperDevice::createMessageBuffer(unsigned size) if (mVerbosity > 2) { LOG(DEBUG) << "allocating message of size " << size; } - mMessages.push_back(msg.release()); + mMessages.push_back(move(msg)); return reinterpret_cast(mMessages.back()->GetData()); } diff --git a/Utilities/aliceHLTwrapper/WrapperDevice.h b/Utilities/aliceHLTwrapper/WrapperDevice.h index 49dbad53ed777..0dcdc9eb4ee94 100644 --- a/Utilities/aliceHLTwrapper/WrapperDevice.h +++ b/Utilities/aliceHLTwrapper/WrapperDevice.h @@ -83,7 +83,7 @@ class WrapperDevice : public FairMQDevice { Component* mComponent; // component instance std::vector mArgv; // array of arguments for the component - std::vector mMessages; // array of output messages + std::vector> mMessages; // array of output messages int mPollingPeriod; // period of polling on input sockets in ms int mSkipProcessing; // skip component processing diff --git a/Utilities/aliceHLTwrapper/aliceHLTEventSampler.cxx b/Utilities/aliceHLTwrapper/aliceHLTEventSampler.cxx index 7e6fb65665b3e..bbf400187a6d8 100644 --- a/Utilities/aliceHLTwrapper/aliceHLTEventSampler.cxx +++ b/Utilities/aliceHLTwrapper/aliceHLTEventSampler.cxx @@ -38,7 +38,7 @@ #ifdef ENABLE_DDS #include #include -#include "KeyValue.h" // DDS +#include "dds_intercom.h" // DDS #include // boost::lock #endif @@ -522,7 +522,7 @@ int sendSocketPropertiesDDS(vector& sockets) ddsmsg << sit->address; #ifdef ENABLE_DDS - dds::key_value::CKeyValue ddsKeyValue; + dds::intercom_api::CKeyValue ddsKeyValue; ddsKeyValue.putValue(sit->ddsprop, ddsmsg.str()); #endif @@ -540,8 +540,8 @@ int readSocketPropertiesDDS(vector& sockets) if (sit->ddscount==0) continue; // the previously inserted duplicates #ifdef ENABLE_DDS - dds::key_value::CKeyValue ddsKeyValue; - dds::key_value::CKeyValue::valuesMap_t values; + dds::intercom_api::CKeyValue ddsKeyValue; + dds::intercom_api::CKeyValue::valuesMap_t values; std::string hostaddress=sit->address; vector::iterator workit=sit; @@ -561,7 +561,7 @@ int readSocketPropertiesDDS(vector& sockets) ddsKeyValue.getValues(sit->ddsprop.c_str(), &values); cout << "Info: DDS getValues received " << values.size() << " value(s) of property " << sit->ddsprop << " " << sit->ddscount-socketPropertiesToRead << " of " << sit->ddscount << " sockets processed" << endl; - for (dds::key_value::CKeyValue::valuesMap_t::const_iterator vit = values.begin(); + for (dds::intercom_api::CKeyValue::valuesMap_t::const_iterator vit = values.begin(); vit!=values.end(); vit++) { if (usedProperties.find(vit->first)!=usedProperties.end()) continue; // already processed cout << "Info: processing property " << vit->first << ", value " << vit->second << " on host " << hostaddress << endl; diff --git a/Utilities/aliceHLTwrapper/aliceHLTWrapper.cxx b/Utilities/aliceHLTwrapper/aliceHLTWrapper.cxx index 6caf171db7937..425c2eb7345fe 100644 --- a/Utilities/aliceHLTwrapper/aliceHLTWrapper.cxx +++ b/Utilities/aliceHLTwrapper/aliceHLTWrapper.cxx @@ -38,7 +38,7 @@ #ifdef ENABLE_DDS #include #include -#include "KeyValue.h" // DDS +#include "dds_intercom.h" // DDS #include // boost::lock #endif @@ -589,7 +589,7 @@ int sendSocketPropertiesDDS(vector& sockets) ddsmsg << sit->address; #ifdef ENABLE_DDS - dds::key_value::CKeyValue ddsKeyValue; + dds::intercom_api::CKeyValue ddsKeyValue; ddsKeyValue.putValue(sit->ddsprop, ddsmsg.str()); #endif @@ -607,8 +607,8 @@ int readSocketPropertiesDDS(vector& sockets) if (sit->ddscount==0) continue; // the previously inserted duplicates #ifdef ENABLE_DDS - dds::key_value::CKeyValue ddsKeyValue; - dds::key_value::CKeyValue::valuesMap_t values; + dds::intercom_api::CKeyValue ddsKeyValue; + dds::intercom_api::CKeyValue::valuesMap_t values; std::string hostaddress=sit->address; vector::iterator workit=sit; @@ -628,7 +628,7 @@ int readSocketPropertiesDDS(vector& sockets) ddsKeyValue.getValues(sit->ddsprop.c_str(), &values); cout << "Info: DDS getValues received " << values.size() << " value(s) of property " << sit->ddsprop << " " << sit->ddscount-socketPropertiesToRead << " of " << sit->ddscount << " sockets processed" << endl; - for (dds::key_value::CKeyValue::valuesMap_t::const_iterator vit = values.begin(); + for (dds::intercom_api::CKeyValue::valuesMap_t::const_iterator vit = values.begin(); vit!=values.end(); vit++) { if (usedProperties.find(vit->first)!=usedProperties.end()) continue; // already processed cout << "Info: processing property " << vit->first << ", value " << vit->second << " on host " << hostaddress << endl; From 3c3da3f5cd2455e3eb55bb519a2183f5e38a7412 Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 2 Jul 2015 14:33:00 +0200 Subject: [PATCH 097/135] Dirty TPC classes to be cleaned up o First working version for hit creation o ATO-157 --- tpc/dirty/AliDetectorParam.cxx | 78 ++ tpc/dirty/AliDetectorParam.h | 45 + tpc/dirty/AliH2F.cxx | 303 +++++ tpc/dirty/AliH2F.h | 53 + tpc/dirty/AliLog.cxx | 1175 +++++++++++++++++ tpc/dirty/AliLog.h | 664 ++++++++++ tpc/dirty/AliMathBase.cxx | 717 ++++++++++ tpc/dirty/AliMathBase.h | 59 + tpc/dirty/AliTPCPRF2D.cxx | 976 ++++++++++++++ tpc/dirty/AliTPCPRF2D.h | 132 ++ tpc/dirty/AliTPCParam.cxx | 1047 +++++++++++++++ tpc/dirty/AliTPCParam.h | 834 ++++++++++++ tpc/dirty/AliTPCParamSR.cxx | 605 +++++++++ tpc/dirty/AliTPCParamSR.h | 90 ++ tpc/dirty/AliTPCRF1D.cxx | 404 ++++++ tpc/dirty/AliTPCRF1D.h | 80 ++ tpc/dirty/AliTPCROC.cxx | 450 +++++++ tpc/dirty/AliTPCROC.h | 137 ++ tpc/dirty/files/MakeCDBEntry.C | 39 + .../Parameters/Run0_999999999_v0_s0.root | Bin 0 -> 13491 bytes 20 files changed, 7888 insertions(+) create mode 100644 tpc/dirty/AliDetectorParam.cxx create mode 100644 tpc/dirty/AliDetectorParam.h create mode 100644 tpc/dirty/AliH2F.cxx create mode 100644 tpc/dirty/AliH2F.h create mode 100644 tpc/dirty/AliLog.cxx create mode 100644 tpc/dirty/AliLog.h create mode 100644 tpc/dirty/AliMathBase.cxx create mode 100644 tpc/dirty/AliMathBase.h create mode 100644 tpc/dirty/AliTPCPRF2D.cxx create mode 100644 tpc/dirty/AliTPCPRF2D.h create mode 100644 tpc/dirty/AliTPCParam.cxx create mode 100644 tpc/dirty/AliTPCParam.h create mode 100644 tpc/dirty/AliTPCParamSR.cxx create mode 100644 tpc/dirty/AliTPCParamSR.h create mode 100644 tpc/dirty/AliTPCRF1D.cxx create mode 100644 tpc/dirty/AliTPCRF1D.h create mode 100644 tpc/dirty/AliTPCROC.cxx create mode 100644 tpc/dirty/AliTPCROC.h create mode 100644 tpc/dirty/files/MakeCDBEntry.C create mode 100644 tpc/dirty/o2cdb/TPC/Calib/Parameters/Run0_999999999_v0_s0.root diff --git a/tpc/dirty/AliDetectorParam.cxx b/tpc/dirty/AliDetectorParam.cxx new file mode 100644 index 0000000000000..8b940987bdb84 --- /dev/null +++ b/tpc/dirty/AliDetectorParam.cxx @@ -0,0 +1,78 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +/* $Id$ */ + +/////////////////////////////////////////////////////////////////////// +// Paramter class for AliDetector // +// // +// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // +// // +/////////////////////////////////////////////////////////////////////// + +#include +#include + +#include "AliDetectorParam.h" + + +AliDetectorParam::AliDetectorParam() + :TNamed(), + fBField(0.), + fNPrimLoss(0.), + fNTotalLoss(0.) +{ + // + // default constructor + // +} + +Float_t * AliDetectorParam::GetAnglesAccMomentum(Float_t *x, Int_t * /*index*/, Float_t *momentum, Float_t *angle) +{ + // + //calculates deflection angle of particle with longitudinal + //longitudinal momentum[0] and transversal momentum momentum[1] + //at position (x,y,z) = (x[0],x[1],x[2]) + //angle[0] - deep angle + //angle[1] - magnetic deflection angle + if (momentum==0) { + Float_t rtotal =TMath::Sqrt(x[0]*x[0]+x[1]*x[1]); + if (rtotal==0) angle[0]=0; + else + angle[0] = TMath::ATan(x[2]/rtotal); + angle[1]=0; + return angle; + } + Float_t mtotal =TMath::Sqrt(momentum[0]*momentum[0]+momentum[1]*momentum[1]); + if (mtotal==0) { + angle[0]= 0; + angle[1]=0; + return angle; + } + angle[0]= TMath::ATan(momentum[2]/mtotal); + Float_t radius1 = TMath::Sqrt(x[0]*x[0]+x[1]*x[1]); //axial symetry in z + Float_t radius2 = 1000*mtotal/(3*fBField); + if (radius1 +class AliDetectorParam : public TNamed { +public: + AliDetectorParam(); + virtual Int_t GetNSegmentsTotal() const {return 0;} //get total nuber of segments + virtual Bool_t Get1DIndex(Int_t */*index*/, const Int_t * /*arrindex*/) {return kFALSE;} + //transform multidimensional index to one dimesional + virtual Bool_t GetNDIndex(const Int_t * /*index1*/, Int_t * /*arrIndex*/) {return kFALSE;} + //trasnform one dimesional index to multidimesional + virtual Float_t GetPrimaryLoss(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/){return 0;} + virtual Float_t GetTotalLoss(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/){return 0;} + virtual void GetClusterSize(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/, Int_t /*mode*/, Float_t */*sigma*/){;} + virtual void GetSpaceResolution(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/, Float_t /*amplitude*/, Int_t /*mode*/, + Float_t */*sigma*/){;} + virtual Float_t * GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle); + + void SetBField(Float_t b){fBField=b;} //set magnetic field intensity + void SetNPrimLoss(Float_t loss) {fNPrimLoss = loss;} + void SetNTotalLoss(Float_t loss) {fNTotalLoss = loss;} + Float_t GetBFiled() {return fBField;} + Float_t GetNPrimLoss() {return fNPrimLoss;} + Float_t GetNTotalLoss() {return fNTotalLoss;} +protected: + Float_t fBField; //intensity of magnetic field + Float_t fNPrimLoss; //number of produced primary electrons per cm + Float_t fNTotalLoss; //total number of produced electrons per cm + + ClassDef(AliDetectorParam,1) //parameter object for set:TPC +}; + + + + +#endif //ALIDPARAM_H diff --git a/tpc/dirty/AliH2F.cxx b/tpc/dirty/AliH2F.cxx new file mode 100644 index 0000000000000..ec6143ce97f8a --- /dev/null +++ b/tpc/dirty/AliH2F.cxx @@ -0,0 +1,303 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +/* $Id$ */ + +//---------------------------------------------------------------------------- +// Author: Marian Ivanov +// +// Implementation of class AliH2F +// +//----------------------------------------------------------------------------- + +#include +#include +#include + +#include "AliH2F.h" + + +ClassImp(AliH2F) +//*********************************************************************** +//*********************************************************************** +//*********************************************************************** +//*********************************************************************** +AliH2F::AliH2F():TH2F() +{ + // + +} +AliH2F::AliH2F(const Text_t *name,const Text_t *title, + Int_t nbinsx,Axis_t xlow,Axis_t xup + ,Int_t nbinsy,Axis_t ylow,Axis_t yup): + TH2F(name,title,nbinsx,xlow,xup + ,nbinsy,ylow,yup) +{ + // + +} + +AliH2F::~AliH2F() +{ + // +} + +AliH2F::AliH2F(const AliH2F &his) : + TH2F(his) +{ + // + +} + +AliH2F & AliH2F::operator = (const AliH2F & /*his*/) +{ + // + return *this; +} + +/* +TClonesArray * AliH2F::FindPeaks(Float_t threshold, Float_t noise) +{ + //find peaks and write it in form of AliTPCcluster to array + + //firstly we need to create object for cluster finding + //and fill it with contents of histogram + AliTPCClusterFinder cfinder; + cfinder.SetThreshold(threshold); + cfinder.SetNoise(noise); + cfinder.GetHisto(this); + return cfinder.FindPeaks3(); +} +*/ + +void AliH2F::ClearSpectrum() +{ + //clera histogram + Int_t dimx = fXaxis.GetNbins(); + Int_t dimy = fYaxis.GetNbins(); + for (Int_t i = 0 ;iGaus(0,sn); + Float_t oldv =GetBinContent(GetBin(i,j)); + Float_t olds =GetBinError(GetBin(i,j)); + if (noise >0) + { + SetBinContent(GetBin(i,j),noise+oldv); + SetBinError(GetBin(i,j),TMath::Sqrt((noise*noise+olds*olds))); + } + } +} +void AliH2F::AddGauss(Float_t x, Float_t y, + Float_t sx, Float_t sy, Float_t max) +{ + //transform to histogram coordinata + Int_t dimx = fXaxis.GetNbins(); + Int_t dimy = fYaxis.GetNbins(); + Float_t dx =(GetXaxis()->GetXmax()-GetXaxis()->GetXmin())/Float_t(dimx); + Float_t dy =(GetYaxis()->GetXmax()-GetYaxis()->GetXmin())/Float_t(dimy); + // x=(x-GetXaxis()->GetXmin())/dx; + //y=(y-GetYaxis()->GetXmin())/dy; + sx/=dx; + sy/=dy; + + + for (Int_t i = 0 ;iGetBinCenter(i+1); + Float_t y2 =GetYaxis()->GetBinCenter(j+1); + Float_t dx2 = (x2-x)*(x2-x); + Float_t dy2 = (y2-y)*(y2-y); + Float_t amp =max*exp(-(dx2/(2*sx*sx)+dy2/(2*sy*sy))); + //Float_t oldv =GetBinContent(GetBin(i+1,j+1)); + // SetBinContent(GetBin(i+1,j+1),amp+oldv); + Fill(x2,y2,amp); + } +} + +void AliH2F::ClearUnderTh(Int_t threshold) +{ + //clear histogram for bin under threshold + Int_t dimx = fXaxis.GetNbins(); + Int_t dimy = fYaxis.GetNbins(); + for (Int_t i = 0 ;i<=dimx;i++) + for (Int_t j = 0 ;j<=dimy;j++) + { + Float_t oldv =GetBinContent(GetBin(i,j)); + if (oldv GetBin(i,j); + Float_t val = GetBinContent(index1); + // sub->SetBinContent(index2,val); + // Float_t err = GetBinError(index1); + //sub->SetBinError(index2,GetBinError(index1)); + sub->SetBinContent(GetBin(i,j),val); + } + return sub; +} + +TH1F *AliH2F::GetAmplitudes(Float_t zmin, Float_t zmax, Float_t th, Float_t xmin, Float_t xmax, + Float_t ymin, Float_t ymax) +{ + //this function return pointer to the new created + //histogram which is subhistogram of the + //calculate number + //subhistogram range must be inside histogram + + if (xmax<=xmin) { + xmin=fXaxis.GetXmin(); + xmax=fXaxis.GetXmax(); + } + if (ymax<=ymin) { + ymin=fYaxis.GetXmin(); + ymax=fYaxis.GetXmax(); + } + Int_t nx = Int_t((xmax-xmin)/(fXaxis.GetXmax()-fXaxis.GetXmin()) * + Float_t(fXaxis.GetNbins())); + Int_t ny = Int_t((ymax-ymin)/(fYaxis.GetXmax()-fYaxis.GetXmin()) * + Float_t(fYaxis.GetNbins())); + TString t1 = fName ; + TString t2 = fTitle ; + t1+="_amplitudes"; + t2+="_amplitudes"; + const Text_t *ktt1 = t1; + const Text_t *ktt2 = t2; + + TH1F * h = new TH1F(ktt1,ktt2,100,zmin,zmax); + + Int_t i1 = Int_t( Float_t(fXaxis.GetNbins())*(xmin-fXaxis.GetXmin())/ + (fXaxis.GetXmax()-fXaxis.GetXmin()) ) ; + Int_t i2 = Int_t( Float_t(fYaxis.GetNbins())*(ymin-fYaxis.GetXmin())/ + (fYaxis.GetXmax()-fYaxis.GetXmin()) ) ; + for (Int_t i=0;ith) h->Fill(val); + } + return h; +} + +Float_t AliH2F::GetOccupancy(Float_t th , Float_t xmin, Float_t xmax, + Float_t ymin, Float_t ymax) +{ + //this function return pointer to the new created + //histogram which is subhistogram of the + //calculate number + //subhistogram range must be inside histogram + + if (xmax<=xmin) { + xmin=fXaxis.GetXmin(); + xmax=fXaxis.GetXmax(); + } + if (ymax<=ymin) { + ymin=fYaxis.GetXmin(); + ymax=fYaxis.GetXmax(); + } + Int_t nx = Int_t((xmax-xmin)/(fXaxis.GetXmax()-fXaxis.GetXmin()) * + Float_t(fXaxis.GetNbins())); + Int_t ny = Int_t((ymax-ymin)/(fYaxis.GetXmax()-fYaxis.GetXmin()) * + Float_t(fYaxis.GetNbins())); + + Int_t over =0; + Int_t i1 = Int_t( Float_t(fXaxis.GetNbins())*(xmin-fXaxis.GetXmin())/ + (fXaxis.GetXmax()-fXaxis.GetXmin()) ) ; + Int_t i2 = Int_t( Float_t(fYaxis.GetNbins())*(ymin-fYaxis.GetXmin())/ + (fYaxis.GetXmax()-fYaxis.GetXmin()) ) ; + for (Int_t i=0;ith) over++; + } + Int_t all = nx*ny; + if (all>0) return Float_t(over)/Float_t(all); + else + return 0; +} diff --git a/tpc/dirty/AliH2F.h b/tpc/dirty/AliH2F.h new file mode 100644 index 0000000000000..552a01159c656 --- /dev/null +++ b/tpc/dirty/AliH2F.h @@ -0,0 +1,53 @@ +#ifndef ALIH2F_H +#define ALIH2F_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ + +// include files and class forward declarations + +#include "TH2.h" + +class TH1F; +class TClonesArray; + +class AliH2F : public TH2F { +public: + AliH2F(); + AliH2F(const Text_t *name,const Text_t *title,Int_t nbinsx, + Axis_t xlow,Axis_t xup,Int_t nbinsy,Axis_t ylow,Axis_t yup); + ~AliH2F(); + +public: + AliH2F(const AliH2F &his); + AliH2F & operator = (const AliH2F &his); +// TClonesArray * FindPeaks(Float_t threshold, Float_t noise); + //find peaks and write it in form of AliTPCcluster to array + void ClearSpectrum(); + void AddGauss(Float_t x,Float_t y,Float_t sx, Float_t sy, Float_t max); + void AddNoise(Float_t sn); + void ClearUnderTh(Int_t threshold); + void Round(); + //round float values to integer values + + AliH2F * GetSubrange2d(Float_t xmin, Float_t xmax, + Float_t ymin, Float_t ymax); + //create new 2D histogram + Float_t GetOccupancy(Float_t th=1. , Float_t xmin=0, Float_t xmax=0, + Float_t ymin=0, Float_t ymax=0); + //calculate ration of channel over threshold to all channels + TH1F * GetAmplitudes(Float_t zmin, Float_t zmax, Float_t th=1. , Float_t xmin=0, Float_t xmax=0, + Float_t ymin=0, Float_t ymax=0); + //generate one dim histogram of amplitudes + +public: + +protected: + +private: + + ClassDef(AliH2F,1) +}; + +#endif /*TH2FSMOOTH_H */ diff --git a/tpc/dirty/AliLog.cxx b/tpc/dirty/AliLog.cxx new file mode 100644 index 0000000000000..3622162a59427 --- /dev/null +++ b/tpc/dirty/AliLog.cxx @@ -0,0 +1,1175 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +/* $Id: AliLog.cxx 56875 2012-06-05 16:02:14Z fca $ */ + +/////////////////////////////////////////////////////////////////////////////// +// // +// class for logging debug, info and error messages // +// // +// The AliLog class is a singleton class. It allows to steer the output // +// level and output streams for different types of messages via static // +// methods. // +// // +// It also handles the messages produces by the preprocessor macros defined // +// in the header file: AliDebug, AliInfo, AliWarning, AliError, AliFatal. // +// // +// More details about the message logging can be found on the ALICE Offline // +// web page. // +// // +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include +#include +#include // platform independent definition of va_copy + +#include "AliLog.h" + +using std::endl; +using std::cout; +using std::ostream; +using std::cerr; +using std::ofstream; +using std::ios; +ClassImp(AliLog) + +// implementation of a singleton here +AliLog* AliLog::fgInstance = NULL; + +Bool_t AliLog::fgDebugEnabled = kTRUE; + +/** + * get root logger singleton instance + */ +AliLog *AliLog::GetRootLogger() +{ + if (fgInstance == NULL) + { + // creating singleton + fgInstance = new AliLog; + } + + return fgInstance; +} + +/** + * delete the root logger singleton instance + */ +void AliLog::DeleteRootLogger() +{ + if (fgInstance != NULL) + { + delete fgInstance; + fgInstance = NULL; + } +} + +/** + * default private constructor + */ +AliLog::AliLog() : + TObject(), + fGlobalLogLevel(kInfo), + fModuleDebugLevels(), + fClassDebugLevels(), + fPrintRepetitions(kTRUE), + fRepetitions(0), + fLastType(0), + fLastMessage(), + fLastModule(), + fLastClassName(), + fLastFunction(), + fLastFile(), + fLastLine(0) +{ +// default constructor: set default values + + for (Int_t iType = kFatal; iType < kMaxType; iType++) + { + fOutputTypes[iType] = 0; + fFileNames[iType] = ""; + fOutputFiles[iType] = NULL; + fOutputStreams[iType] = NULL; + fCallBacks[iType]=NULL; + + fPrintType[iType] = kTRUE; + fPrintModule[iType] = kFALSE; + fPrintScope[iType] = kTRUE; + fPrintLocation[iType] = (iType == kDebug); + } + + // TO BE REVIEWED + // replace the previous instance by this one + if (fgInstance) delete fgInstance; + fgInstance = this; + + SetHandleRootMessages(kTRUE); + + // read the .rootrc settings + ReadEnvSettings(); +} + +/** + * private destructor + */ +AliLog::~AliLog() +{ +// destructor: clean up and reset instance pointer + + if (fRepetitions > 0) PrintRepetitions(); + + for (Int_t i = 0; i < fModuleDebugLevels.GetEntriesFast(); i++) + { + if (fModuleDebugLevels[i]) fModuleDebugLevels[i]->Delete(); + } + + fClassDebugLevels.Delete(); + + for (Int_t i = 0; i < fClassDebugLevels.GetEntriesFast(); i++) + { + if (fClassDebugLevels[i]) fClassDebugLevels[i]->Delete(); + } + + fClassDebugLevels.Delete(); + + for (Int_t iType = kFatal; iType < kMaxType; iType++) + { + CloseFile(iType); + } + + fflush(stderr); + fflush(stdout); + + fgInstance = NULL; +} + +// NOT IMPLEMENTED!? +//_____________________________________________________________________________ +AliLog::AliLog(const AliLog& log) : + TObject(log), + fGlobalLogLevel(log.fGlobalLogLevel), + fModuleDebugLevels(log.fModuleDebugLevels), + fClassDebugLevels(log.fClassDebugLevels), + fPrintRepetitions(log.fPrintRepetitions), + fRepetitions(log.fRepetitions), + fLastType(log.fLastType), + fLastMessage(log.fLastMessage), + fLastModule(log.fLastModule), + fLastClassName(log.fLastClassName), + fLastFunction(log.fLastFunction), + fLastFile(log.fLastFile), + fLastLine(log.fLastLine) +{ +// copy constructor + + Fatal("AliLog", "copy constructor not implemented"); +} + +// NOT IMPLEMENTED!? +//_____________________________________________________________________________ +AliLog& AliLog::operator = (const AliLog& /*log*/) +{ +// assignment operator + + Fatal("operator =", "assignment operator not implemented"); + return *this; +} + + +/** + * gSystem see TSystem.h + * gEnv see TEnv.h + * + * LOG_NO_DEBUG: fgDebugEnabled <- false + * AliRoot.AliLog.EnableDebug + * AliRoot.AliLog.GlobalLogLevel + */ +//_____________________________________________________________________________ +void AliLog::ReadEnvSettings() +{ +// load settings from the root configuration file (.rootrc) +// and from environment variables + + static const char* typeNames[kMaxType] = {"kFatal", "kError", "kWarning", "kInfo", "kDebug"}; + + // debug en- or disabling + if (gSystem->Getenv("LOG_NO_DEBUG")) + { + fgDebugEnabled = kFALSE; + } + else if (gEnv->Defined("AliRoot.AliLog.EnableDebug")) + { + fgDebugEnabled = gEnv->GetValue("AliRoot.AliLog.EnableDebug", fgDebugEnabled); + AliInfo(Form("debug %sabled", ((fgDebugEnabled) ? "en" : "dis"))); + } + + // global log level + if (gEnv->Defined("AliRoot.AliLog.GlobalLogLevel")) + { + const char* type = gEnv->GetValue("AliRoot.AliLog.GlobalLogLevel", ""); + + for (Int_t iType = kFatal; iType < kMaxType; iType++) + { + if (strcmp(type, typeNames[iType]) == 0) fGlobalLogLevel = iType; + } + + AliDebug(3, Form("global log level set to %d", fGlobalLogLevel)); + } + + // global debug level + if (gEnv->Defined("AliRoot.AliLog.GlobalDebugLevel")) + { + Int_t level = gEnv->GetValue("AliRoot.AliLog.GlobalDebugLevel", Int_t(fGlobalLogLevel - kDebugOffset)); + if (level < -kDebugOffset) level = kDebugOffset; + fGlobalLogLevel = kDebugOffset + level; + AliDebug(3, Form("global debug level set to %d", fGlobalLogLevel - kDebugOffset)); + } + + // module debug level + if (gEnv->Defined("AliRoot.AliLog.ModuleDebugLevel")) + { + TString levels = gEnv->GetValue("AliRoot.AliLog.ModuleDebugLevel", ""); + char* p = const_cast(levels.Data()); + + while (const char* module = strtok(p, " ")) + { + p = NULL; + char* pos = const_cast(index(module, ':')); + if (!pos) continue; + *(pos++) = '\0'; + Int_t level = atoi(pos); + SetModuleDebugLevel(module, level); + AliDebug(3, Form("debug level for module %s set to %d", module, level)); + } + } + + // class debug level + if (gEnv->Defined("AliRoot.AliLog.ClassDebugLevel")) + { + TString levels = gEnv->GetValue("AliRoot.AliLog.ClassDebugLevel", ""); + char* p = const_cast(levels.Data()); + + while (const char* className = strtok(p, " ")) + { + p = NULL; + char* pos = const_cast(index(className, ':')); + if (!pos) continue; + *(pos++) = '\0'; + Int_t level = atoi(pos); + SetClassDebugLevel(className, level); + AliDebug(3, Form("debug level for class %s set to %d", className, level)); + } + } + + // general output stream + if (gEnv->Defined("AliRoot.AliLog.Output")) + { + TString stream = gEnv->GetValue("AliRoot.AliLog.Output", "Standard"); + + if (stream.CompareTo("standard", TString::kIgnoreCase) == 0) + { + SetStandardOutput(); + AliDebug(3, "output stream set to standard output for all types"); + } + else if (stream.CompareTo("error", TString::kIgnoreCase) == 0) + { + SetErrorOutput(); + AliDebug(3, "output stream set to error output for all types"); + } + else if (!stream.IsNull()) + { + SetFileOutput(stream); + AliDebug(3, Form("output stream set to file %s for all types", stream.Data())); + } + } + + // individual output streams + for (Int_t iType = kFatal; iType < kMaxType; iType++) + { + TString name("AliRoot.AliLog.Output."); + name += &typeNames[iType][1]; + + if (gEnv->Defined(name)) + { + TString stream = gEnv->GetValue(name, "Standard"); + + if (stream.CompareTo("standard", TString::kIgnoreCase) == 0) + { + SetStandardOutput(EType_t(iType)); + AliDebug(3, Form("output stream set to standard output for type %s", typeNames[iType])); + } + else if (stream.CompareTo("error", TString::kIgnoreCase) == 0) + { + SetErrorOutput(EType_t(iType)); + AliDebug(3, Form("output stream set to error output for type %s", typeNames[iType])); + } + else if (!stream.IsNull()) + { + SetFileOutput(EType_t(iType), stream); + AliDebug(3, Form("output stream set to file %s for type %s", stream.Data(), typeNames[iType])); + } + } + } + + // handling of root error messages + if (gEnv->Defined("AliRoot.AliLog.HandleRootMessages")) + { + Bool_t on = gEnv->GetValue("AliRoot.AliLog.HandleRootMessages", kTRUE); + SetHandleRootMessages(on); + AliDebug(3, Form("handling of root messages %sabled", ((on) ? "en" : "dis"))); + } + + // printout settings + static const char* settingNames[4] = {"Type", "Module", "Scope", "Location"}; + Bool_t* settings[] = {fPrintType, fPrintModule, fPrintScope, fPrintLocation}; + + for (Int_t iSetting = 0; iSetting < 4; iSetting++) + { + TString name("AliRoot.AliLog.Print"); + name += settingNames[iSetting]; + + if (gEnv->Defined(name)) + { + Bool_t on = gEnv->GetValue(name, settings[iSetting][0]); + + for (Int_t iType = kFatal; iType < kMaxType; iType++) + { + settings[iSetting][iType] = on; + } + AliDebug(3, Form("printing of %s %sabled for all types", settingNames[iSetting], ((on) ? "en" : "dis"))); + } + + for (Int_t iType = kFatal; iType < kMaxType; iType++) + { + TString nameType = name + "." + &typeNames[iType][1]; + + if (gEnv->Defined(nameType)) + { + Bool_t on = gEnv->GetValue(nameType, settings[iSetting][iType]); + settings[iSetting][iType] = on; + AliDebug(3, Form("printing of %s %sabled for type %s", settingNames[iSetting], ((on) ? "en" : "dis"), typeNames[iType])); + } + } + } + + // repetition of messages + if (gEnv->Defined("AliRoot.AliLog.PrintRepetitions")) + { + Bool_t on = gEnv->GetValue("AliRoot.AliLog.PrintRepetitions", kTRUE); + fPrintRepetitions = on; + AliDebug(3, Form("printing of message repetitions %sabled", ((on) ? "en" : "dis"))); + } +} + + +//_____________________________________________________________________________ +void AliLog::RootErrorHandler(Int_t level, Bool_t abort, + const char* location, const char* message) +{ +// new error handler for messages from root + + switch (level) + { + case ::kFatal : level = kFatal; break; + case ::kSysError : + DefaultErrorHandler(level, abort, location, message); + return; + case ::kBreak : + DefaultErrorHandler(level, abort, location, message); + return; + case ::kError : level = kError; break; + case ::kWarning : level = kWarning; break; + case ::kInfo : level = kInfo; break; + default : level = kDebug; break; + } + AliLog::Message(level, message, "ROOT", NULL, location, NULL, 0); +} + + +// DEPRECATED: USE A CONFIGURATION FILE INSTEAD +//_____________________________________________________________________________ +void AliLog::EnableDebug(Bool_t enabled) +{ +// enable or disable debug output + + fgDebugEnabled = enabled; +} + +//_____________________________________________________________________________ +void AliLog::SetGlobalLogLevel(EType_t type) +{ +// set the global debug level + + // TO BE DELETED + if (!fgInstance) new AliLog; + fgInstance->fGlobalLogLevel = type; +} + +//_____________________________________________________________________________ +Int_t AliLog::GetGlobalLogLevel() +{ +// get the global debug level + + if (!fgInstance) new AliLog; + return fgInstance->fGlobalLogLevel; +} + +//_____________________________________________________________________________ +void AliLog::SetGlobalDebugLevel(Int_t level) +{ +// set the global debug level + + if (!fgInstance) new AliLog; + if (level < -kDebugOffset) level = -kDebugOffset; + fgInstance->fGlobalLogLevel = kDebugOffset + level; +} + +//_____________________________________________________________________________ +Int_t AliLog::GetGlobalDebugLevel() +{ +// get the global debug level + + if (!fgInstance) new AliLog; + return fgInstance->fGlobalLogLevel - kDebugOffset; +} + +//_____________________________________________________________________________ +void AliLog::SetModuleDebugLevel(const char* module, Int_t level) +{ +// set the debug level for the given module + + if (!module) return; + if (!fgInstance) new AliLog; + TObject* obj = fgInstance->fModuleDebugLevels.FindObject(module); + if (!obj) { + obj = new TNamed(module, module); + fgInstance->fModuleDebugLevels.Add(obj); + } + level += kDebugOffset; + if (level < kFatal) level = kFatal; + obj->SetUniqueID(level); +} + +//_____________________________________________________________________________ +void AliLog::ClearModuleDebugLevel(const char* module) +{ +// remove the setting of the debug level for the given module + + if (!module) return; + if (!fgInstance) new AliLog; + TObject* obj = fgInstance->fModuleDebugLevels.FindObject(module); + if (obj) delete fgInstance->fModuleDebugLevels.Remove(obj); +} + +//_____________________________________________________________________________ +void AliLog::SetClassDebugLevel(const char* className, Int_t level) +{ +// set the debug level for the given class + + if (!className) return; + if (!fgInstance) new AliLog; + TObject* obj = fgInstance->fClassDebugLevels.FindObject(className); + if (!obj) { + obj = new TNamed(className, className); + fgInstance->fClassDebugLevels.Add(obj); + } + level += kDebugOffset; + if (level < kFatal) level = kFatal; + obj->SetUniqueID(level); +} + +//_____________________________________________________________________________ +void AliLog::ClearClassDebugLevel(const char* className) +{ +// remove the setting of the debug level for the given class + + if (!className) return; + if (!fgInstance) new AliLog; + TObject* obj = fgInstance->fClassDebugLevels.FindObject(className); + if (obj) delete fgInstance->fClassDebugLevels.Remove(obj); +} + + +//_____________________________________________________________________________ +void AliLog::SetStandardOutput() +{ +// write all log messages to the standard output (stdout) + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + fgInstance->CloseFile(iType); + fgInstance->fOutputTypes[iType] = 0; + } +} + +//_____________________________________________________________________________ +void AliLog::SetStandardOutput(EType_t type) +{ +// write log messages of the given type to the standard output (stdout) + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + fgInstance->CloseFile(type); + fgInstance->fOutputTypes[type] = 0; +} + +//_____________________________________________________________________________ +void AliLog::SetErrorOutput() +{ +// write all log messages to the error output (stderr) + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + fgInstance->CloseFile(iType); + fgInstance->fOutputTypes[iType] = 1; + } +} + +//_____________________________________________________________________________ +void AliLog::SetErrorOutput(EType_t type) +{ +// write log messages of the given type to the error output (stderr) + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + fgInstance->CloseFile(type); + fgInstance->fOutputTypes[type] = 1; +} + +//_____________________________________________________________________________ +void AliLog::SetFileOutput(const char* fileName) +{ +// write all log messages to the given file + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + if ((fgInstance->fOutputTypes[iType] == 2) && + (fgInstance->fFileNames[iType].CompareTo(fileName) != 0)) { + fgInstance->CloseFile(iType); + } + fgInstance->fOutputTypes[iType] = 2; + fgInstance->fFileNames[iType] = fileName; + fgInstance->fOutputFiles[iType] = NULL; + fgInstance->fOutputStreams[iType] = NULL; + } +} + +//_____________________________________________________________________________ +void AliLog::SetFileOutput(EType_t type, const char* fileName) +{ +// write log messages of the given type to the given file + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + if ((fgInstance->fOutputTypes[type] == 2) && + (fgInstance->fFileNames[type].CompareTo(fileName) != 0)) { + fgInstance->CloseFile(type); + } + fgInstance->fOutputTypes[type] = 2; + fgInstance->fFileNames[type] = fileName; + fgInstance->fOutputFiles[type] = NULL; + fgInstance->fOutputStreams[type] = NULL; +} + +//_____________________________________________________________________________ +void AliLog::CloseFile(Int_t type) +{ +// close the file for the given type if needed + + if ((fOutputTypes[type] == 2) && fOutputFiles[type]) { + Bool_t closeFile = kTRUE; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + if ((iType != type) && (fOutputFiles[iType] == fOutputFiles[type])) { + closeFile = kFALSE; + } + } + if (closeFile) { + fclose(fOutputFiles[type]); + ofstream* stream=reinterpret_cast(fOutputStreams[type]); + stream->close(); + delete fOutputStreams[type]; + } + } + fOutputFiles[type] = NULL; + fOutputStreams[type] = NULL; + fFileNames[type] = ""; + fOutputTypes[type] = 0; +} + +//_____________________________________________________________________________ +FILE* AliLog::GetOutputStream(Int_t type) +{ +// get the output stream for the given type of messages + + if (type > kDebug) type = kDebug; + if (fOutputTypes[type] == 0) return stdout; + else if (fOutputTypes[type] == 1) return stderr; + else if (fOutputTypes[type] == 2) { + if (!fOutputFiles[type]) { + FILE* file = NULL; + ostream* stream = NULL; + if (!fFileNames[type].IsNull()) { + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + if ((iType != type) && + (fFileNames[iType].CompareTo(fFileNames[type]) == 0) && + fOutputFiles[iType]) { + file = fOutputFiles[iType]; + stream = fOutputStreams[iType]; + break; + } + } + if (!file) { + file = fopen(fFileNames[type], "a"); + stream = new ofstream(fFileNames[type], ios::app); + } + } + fOutputFiles[type] = file; + fOutputStreams[type] = stream; + if (!file) CloseFile(type); + } + if (fOutputFiles[type]) return fOutputFiles[type]; + } + + return stdout; +} + +//_____________________________________________________________________________ +void AliLog::Flush() +{ +// flush the output streams + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + if (fgInstance->fOutputFiles[iType]) { + fflush(fgInstance->fOutputFiles[iType]); + fgInstance->fOutputStreams[iType]->flush(); + } + } + fflush(stderr); + fflush(stdout); +} + + +//_____________________________________________________________________________ +void AliLog::SetHandleRootMessages(Bool_t on) +{ +// enable or disable the handling of messages form root + + if (!fgInstance) new AliLog; + if (on) { + SetErrorHandler(RootErrorHandler); + } else { + SetErrorHandler(DefaultErrorHandler); + } +} + + +//_____________________________________________________________________________ +void AliLog::SetPrintType(Bool_t on) +{ +// switch on or off the printing of the message type for all message types + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + fgInstance->fPrintType[iType] = on; + } +} + +//_____________________________________________________________________________ +void AliLog::SetPrintType(EType_t type, Bool_t on) +{ +// switch on or off the printing of the message type for the given message type + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + fgInstance->fPrintType[type] = on; +} + +//_____________________________________________________________________________ +void AliLog::SetPrintModule(Bool_t on) +{ +// switch on or off the printing of the module for all message types + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + fgInstance->fPrintModule[iType] = on; + } +} + +//_____________________________________________________________________________ +void AliLog::SetPrintModule(EType_t type, Bool_t on) +{ +// switch on or off the printing of the module for the given message type + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + fgInstance->fPrintModule[type] = on; +} + +//_____________________________________________________________________________ +void AliLog::SetPrintScope(Bool_t on) +{ +// switch on or off the printing of the scope/class name for all message types + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + fgInstance->fPrintScope[iType] = on; + } +} + +//_____________________________________________________________________________ +void AliLog::SetPrintScope(EType_t type, Bool_t on) +{ +// switch on or off the printing of the scope/class name +// for the given message type + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + fgInstance->fPrintScope[type] = on; +} + +//_____________________________________________________________________________ +void AliLog::SetPrintLocation(Bool_t on) +{ +// switch on or off the printing of the file name and line number +// for all message types + + if (!fgInstance) new AliLog; + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + fgInstance->fPrintLocation[iType] = on; + } +} + +//_____________________________________________________________________________ +void AliLog::SetPrintLocation(EType_t type, Bool_t on) +{ +// switch on or off the printing of the file name and line number +// for the given message type + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + fgInstance->fPrintLocation[type] = on; +} + + +//_____________________________________________________________________________ +void AliLog::SetPrintRepetitions(Bool_t on) +{ +// switch on or off the printing of the number of repetitions of a message +// instead of repeating the same message + + if (!fgInstance) new AliLog; + if (!on && (fgInstance->fRepetitions > 0)) fgInstance->PrintRepetitions(); + fgInstance->fPrintRepetitions = on; +} + + +//_____________________________________________________________________________ +void AliLog::WriteToFile(const char* name, Int_t option) +{ +// write the log object with the given name and option to the current file + + if (!fgInstance) new AliLog; + fgInstance->TObject::Write(name, option); +} + + +//_____________________________________________________________________________ +UInt_t AliLog::GetLogLevel(const char* module, const char* className) const +{ +// get the logging level for the given module and class + + if (!fgInstance) new AliLog; + if (className) { + TObject* obj = fgInstance->fClassDebugLevels.FindObject(className); + if (obj) return obj->GetUniqueID(); + } + if (module) { + TObject* obj = fgInstance->fModuleDebugLevels.FindObject(module); + if (obj) return obj->GetUniqueID(); + } + return fgInstance->fGlobalLogLevel; +} + +//_____________________________________________________________________________ +Int_t AliLog::GetDebugLevel(const char* module, const char* className) +{ +// get the debug level for the given module and class + + if (!fgInstance) new AliLog; + return fgInstance->GetLogLevel(module, className) - kDebugOffset; +} + +//_____________________________________________________________________________ +void AliLog::PrintMessage(UInt_t type, const char* message, + const char* module, const char* className, + const char* function, const char* file, Int_t line) +{ +// print the given message + + // don't print the message if it is repeated + if (fPrintRepetitions && + (fLastType == type) && + (message && (fLastMessage.CompareTo(message) == 0)) && + ((module && (fLastModule.CompareTo(module) == 0)) || + (!module && fLastModule.IsNull())) && + ((className && (fLastClassName.CompareTo(className) == 0)) || + (!className && fLastClassName.IsNull())) && + ((function && (fLastFunction.CompareTo(function) == 0)) || + (!function && fLastFunction.IsNull()))&& + ((file && (fLastFile.CompareTo(file) == 0)) || + (!file && fLastFile.IsNull())) && + (fLastLine == line)) { + fRepetitions++; + return; + } + + // print number of repetitions + if (fRepetitions > 0) PrintRepetitions(); + + // remember this message + fRepetitions = 0; + fLastType = type; + fLastMessage = message; + fLastModule = module; + fLastClassName = className; + fLastFunction = function; + fLastFile = file; + fLastLine = line; + + // print the message + FILE* stream = GetOutputStream(type); + static const char* typeNames[kMaxType] = + {"Fatal", "Error", "Warning", "Info", "Debug"}; + + if (fPrintType[type]) { + PrintString(type, stream, "%c-", typeNames[type][0]); + } + if (fPrintModule[type] && module) { + PrintString(type, stream, "%s/", module); + } + if (fPrintScope[type] && className) { + PrintString(type, stream, "%s::", className); + } + if (message) { + PrintString(type, stream, "%s: %s", function, message); + } else { + PrintString(type, stream, "%s", function); + } + if (fPrintLocation[type] && file) { + PrintString(type, stream, " (%s:%.0d)", file, line); + } + if (message) { + PrintString(type, stream, "\n"); + } else { + PrintString(type, stream, ": "); + } + if (fCallBacks[type]) (*(fCallBacks[type]))((EType_t)type, NULL); +} + +//_____________________________________________________________________________ +void AliLog::PrintRepetitions() +{ +// print number of repetitions + + PrintString(fLastType, GetOutputStream(fLastType), " \n", + fRepetitions, (fRepetitions > 1) ? "s" : ""); + if (fCallBacks[fLastType]) (*(fCallBacks[fLastType]))((EType_t)fLastType, NULL); +} + +//_____________________________________________________________________________ +void AliLog::Message(UInt_t level, const char* message, + const char* module, const char* className, + const char* function, const char* file, Int_t line) +{ +// print a log message + + if (!fgInstance) new AliLog; + + // get the message type + UInt_t type = level; + if (type >= kMaxType) type = kMaxType - 1; + + // print the message if the debug level allows + if (level <= fgInstance->GetLogLevel(module, className)) { + fgInstance->PrintMessage(type, message, + module, className, function, file, line); + } + + // abort in case of a fatal message + if (type == kFatal) { + delete fgInstance; + if (gSystem) { + gSystem->StackTrace(); + gSystem->Abort(); + } else { + ::abort(); + } + } +} + +//_____________________________________________________________________________ +void AliLog::Debug(UInt_t level, const char* message, + const char* module, const char* className, + const char* function, const char* file, Int_t line) +{ +// print a debug message + + if (level == 0) level = 1; + level += kDebugOffset; + Message(level, message, module, className, function, file, line); +} + + +//_____________________________________________________________________________ +Int_t AliLog::RedirectStdoutTo(EType_t type, UInt_t level, const char* module, + const char* className, const char* function, + const char* file, Int_t line, Bool_t print) +{ +// redirect the standard output to the stream of the given type + + if (!fgInstance) new AliLog; + return fgInstance->RedirectTo(stdout, type, level, module, className, + function, file, line, print); +} + +//_____________________________________________________________________________ +Int_t AliLog::RedirectStderrTo(EType_t type, UInt_t level, const char* module, + const char* className, const char* function, + const char* file, Int_t line, Bool_t print) +{ +// redirect the standard error output to the stream of the given type + + if (!fgInstance) new AliLog; + return fgInstance->RedirectTo(stderr, type, level, module, className, + function, file, line, print); +} + +//_____________________________________________________________________________ +Int_t AliLog::RedirectTo(FILE* stream, EType_t type, UInt_t level, + const char* module, const char* className, + const char* function, const char* file, Int_t line, + Bool_t print) +{ +// redirect the standard (error) output stream to the stream of the given type + + // get the original file descriptor to be able to restore it later + Int_t original = dup(fileno(stream)); + fflush(stream); + + // flush the stream of the selected type + FILE* newStream = GetOutputStream(type); + fflush(newStream); + + // redirect stream + if ((type == kDebug) && (level > 0)) level--; + if (type + level > GetLogLevel(module, className)) { // /dev/null + if(!freopen("/dev/null", "a", stream)) AliWarning("Cannot reopen /dev/null"); + } else if (fOutputTypes[type] == 0) { // stdout + if (stream != stdout) dup2(fileno(stdout), fileno(stream)); + } else if (fOutputTypes[type] == 1) { // stderr + if (stream != stderr) dup2(fileno(stderr), fileno(stream)); + } else if (fOutputTypes[type] == 2) { // file + if(!freopen(fFileNames[type], "a", stream)) AliWarning(Form("Cannot reopen %s",fFileNames[type].Data())); + } else if (fOutputTypes[type] == 3) { // external C++ stream + // redirection is not possible for external C++ streams + } + + // print information + if (print) { + PrintMessage(type, NULL, module, className, function, file, line); + fflush(newStream); + } + + return original; +} + +//_____________________________________________________________________________ +void AliLog::RestoreStdout(Int_t original) +{ +// restore the standard output + + fflush(stdout); + dup2(original, fileno(stdout)); + close(original); +} + +//_____________________________________________________________________________ +void AliLog::RestoreStderr(Int_t original) +{ +// restore the standard error output + + fflush(stderr); + dup2(original, fileno(stderr)); + close(original); +} + + +//_____________________________________________________________________________ +ostream& AliLog::Stream(EType_t type, UInt_t level, + const char* module, const char* className, + const char* function, const char* file, Int_t line) +{ +// get the stream object for the given output type + + if (!fgInstance) new AliLog; + return fgInstance->GetStream(type, level, module, className, + function, file, line); +} + +//_____________________________________________________________________________ +ostream& AliLog::GetStream(EType_t type, UInt_t level, + const char* module, const char* className, + const char* function, const char* file, Int_t line) +{ +// get the stream object for the given output type + + if ((type == kDebug) && (level > 0)) level--; + Bool_t noOutput = (type + level > GetLogLevel(module, className)); + + if (!noOutput) { + PrintMessage(type, NULL, module, className, function, file, line); + } + fflush(GetOutputStream(type)); + + static ofstream nullStream("/dev/null"); + if (noOutput) { + return nullStream; + } else if (fOutputTypes[type] == 0) { + return cout; + } else if (fOutputTypes[type] == 1) { + return cerr; + } else if (fOutputTypes[type] == 2) { + return *fOutputStreams[type]; + } else if (fOutputTypes[type] == 3) { + return *fOutputStreams[type]; + } + + return nullStream; +} + +void AliLog::SetStreamOutput(ostream* stream) +{ + // set an external stream as target for log messages of all types + // the external stream is completely handled by the caller, the + // AliLog class just writes to it + + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + SetStreamOutput((AliLog::EType_t)iType, stream); + } +} + +void AliLog::SetStreamOutput(EType_t type, ostream* stream) +{ + // set an external stream as target for log messages of the given type + // the external stream is completely handled by the caller, the + // AliLog class just writes to it + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + if (fgInstance->fOutputTypes[type] == 2) { + fgInstance->CloseFile(type); + } + fgInstance->fOutputTypes[type] = 3; + fgInstance->fFileNames[type] = ""; + fgInstance->fOutputFiles[type] = NULL; + fgInstance->fOutputStreams[type] = stream; +} + +void AliLog::SetLogNotification(AliLogNotification pCallBack) +{ + // set a notification callback function for log messages of all types + + for (Int_t iType = kFatal; iType < kMaxType; iType++) { + SetLogNotification((AliLog::EType_t)iType, pCallBack); + } +} + +void AliLog::SetLogNotification(EType_t type, AliLogNotification pCallBack) +{ + // set a notifications call back function for log messages of all types + // the callback fuction is invoced whenever an output was written + // Note: does not work for c++ streamer classes, the external stream + // has to handle this diectly (e.g. custom implementation of endl) + + if ((type < kFatal) || (type >= kMaxType)) return; + if (!fgInstance) new AliLog; + fgInstance->fCallBacks[type]=pCallBack; +} + +void AliLog::PrintString(Int_t type, FILE* stream, const char* format, ...) +{ + // this is the general method to print a log message using variadac args + // to the FILE* like (C - like) streams, e.g. stdout, stderr, or files + // opened by fopen. + // Only in case of an external c++ ostream type output, the message is + // written to that stream and the notifictaion callback is called. + // The message is printed by a normal vfprintf function otherwise + + if (format==NULL) return; + + va_list ap; + va_start(ap, format); + if (fOutputTypes[type] != 3) { + if (stream!=NULL) { + vfprintf(stream, format, ap); + } + } else { + // build the string and write everthing to the corresponding ostream + TString fmt(format); + TArrayC tgt(fmt.Length()*10); // just take a number +#ifdef R__VA_COPY + va_list bap; + R__VA_COPY(bap, ap); +#else +#warning definition of R__VA_COPY has disappeared +#endif //R__VA_COPY + + Int_t iResult=0; + while (1) { + iResult=vsnprintf(tgt.GetArray(), tgt.GetSize(), format, ap); + if (iResult==-1) { + iResult=tgt.GetSize()*2; + } else if (iResult +#include +#include +#include + +using std::ostream; + +// deprecation macro +#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +# define ALIROOT_DEPRECATED(func) func __attribute__ ((deprecated)) +#elif defined(_MSC_VER) && _MSC_VER >= 1300 +# define ALIROOT_DEPRECATED(func) __declspec(deprecated) func +#else +# define ALIROOT_DEPRECATED(func) func +#endif + +/** + * class for logging debug, info and error messages + */ +class AliLog: public TObject +{ + public: + + // Log4j log levels: TRACE, DEBUG, INFO, WARN, ERROR, FATAL + enum EType_t {kFatal = 0, kError, kWarning, kInfo, kDebug, kMaxType}; + typedef void (*AliLogNotification)(EType_t type, const char* message ); + + // NB: singleton constructor & destructor should not be public! + // ALIROOT_DEPRECATED(AliLog()); + // ALIROOT_DEPRECATED(virtual ~AliLog()); + + // NB: singleton deprecated static instance method + // ALIROOT_DEPRECATED(static AliLog* Instance() {return fgInstance;};) + + // get root logger singleton instance + static AliLog *GetRootLogger(); + + // delete root logger singleton instance + static void DeleteRootLogger(); + + // NB: the following functions should not be static + // NB: deprecated: logging configuration should be made through to a configuration file + static void EnableDebug(Bool_t enabled); + static void SetGlobalLogLevel(EType_t type); + static Int_t GetGlobalLogLevel(); + static void SetGlobalDebugLevel(Int_t level); + static Int_t GetGlobalDebugLevel(); + static void SetModuleDebugLevel(const char* module, Int_t level); + static void ClearModuleDebugLevel(const char* module); + static void SetClassDebugLevel(const char* className, Int_t level); + static void ClearClassDebugLevel(const char* className); + + static void SetStandardOutput(); + static void SetStandardOutput(EType_t type); + static void SetErrorOutput(); + static void SetErrorOutput(EType_t type); + static void SetFileOutput(const char* fileName); + static void SetFileOutput(EType_t type, const char* fileName); + static void SetStreamOutput(ostream* stream); + static void SetStreamOutput(EType_t type, ostream* stream); + static void SetLogNotification(AliLogNotification pCallBack); + static void SetLogNotification(EType_t type, AliLogNotification pCallBack); + static void Flush(); + + static void SetHandleRootMessages(Bool_t on); + + static void SetPrintType(Bool_t on); + static void SetPrintType(EType_t type, Bool_t on); + static void SetPrintModule(Bool_t on); + static void SetPrintModule(EType_t type, Bool_t on); + static void SetPrintScope(Bool_t on); + static void SetPrintScope(EType_t type, Bool_t on); + static void SetPrintLocation(Bool_t on); + static void SetPrintLocation(EType_t type, Bool_t on); + + static void SetPrintRepetitions(Bool_t on); + + static void WriteToFile(const char* name, Int_t option = 0); + + // the following public methods are used by the preprocessor macros + // and should not be called directly + static Bool_t IsDebugEnabled() {return fgDebugEnabled;} + static Int_t GetDebugLevel(const char* module, const char* className); + static void Message(UInt_t level, const char* message, + const char* module, const char* className, + const char* function, const char* file, Int_t line); + static void Debug(UInt_t level, const char* message, + const char* module, const char* className, + const char* function, const char* file, Int_t line); + + static Int_t RedirectStdoutTo(EType_t type, UInt_t level, const char* module, + const char* className, const char* function, + const char* file, Int_t line, Bool_t print); + static Int_t RedirectStderrTo(EType_t type, UInt_t level, const char* module, + const char* className, const char* function, + const char* file, Int_t line, Bool_t print); + static void RestoreStdout(Int_t original); + static void RestoreStderr(Int_t original); + + static ostream& Stream(EType_t type, UInt_t level, + const char* module, const char* className, + const char* function, const char* file, Int_t line); + + private: + + // constructor is made private for implementing a singleton + AliLog(); + virtual ~AliLog(); + + // NOT IMPLEMENTED? + AliLog(const AliLog& log); + AliLog& operator = (const AliLog& log); + + void ReadEnvSettings(); + + static void RootErrorHandler(Int_t level, Bool_t abort, + const char* location, const char* message); + + void CloseFile(Int_t type); + FILE* GetOutputStream(Int_t type); + + UInt_t GetLogLevel(const char* module, const char* className) const; + void PrintMessage(UInt_t type, const char* message, + const char* module, const char* className, + const char* function, + const char* file, Int_t line); + + void PrintString(Int_t type, FILE* stream, const char* format, ...); + void PrintRepetitions(); + + Int_t RedirectTo(FILE* stream, EType_t type, UInt_t level, + const char* module, const char* className, + const char* function, + const char* file, Int_t line, Bool_t print); + + ostream& GetStream(EType_t type, UInt_t level, + const char* module, const char* className, + const char* function, const char* file, Int_t line); + + enum {kDebugOffset = kDebug-1}; + + static AliLog* fgInstance; //! pointer to current instance + static Bool_t fgDebugEnabled; // flag for debug en-/disabling + + UInt_t fGlobalLogLevel; // global logging level + TObjArray fModuleDebugLevels; // debug levels for modules + TObjArray fClassDebugLevels; // debug levels for classes + + Int_t fOutputTypes[kMaxType]; // types of output streams + TString fFileNames[kMaxType]; // file names + FILE* fOutputFiles[kMaxType]; //! log output files + ostream* fOutputStreams[kMaxType]; //! log output streams + + Bool_t fPrintType[kMaxType]; // print type on/off + Bool_t fPrintModule[kMaxType]; // print module on/off + Bool_t fPrintScope[kMaxType]; // print scope/class name on/off + Bool_t fPrintLocation[kMaxType]; // print file and line on/off + + Bool_t fPrintRepetitions; // print number of repetitions instead of repeated message on/off + + Int_t fRepetitions; //! counter of repetitions + UInt_t fLastType; //! type of last message + TString fLastMessage; //! last message + TString fLastModule; //! module name of last message + TString fLastClassName; //! class name of last message + TString fLastFunction; //! function name of last message + TString fLastFile; //! file name of last message + Int_t fLastLine; //! line number of last message + AliLogNotification fCallBacks[kMaxType]; //! external notification callback + + ClassDef(AliLog, 1) // class for logging debug, info and error messages +}; + + +// module name macro +#ifdef _MODULE_ +# define MODULENAME() _MODULE_ +#else +# define MODULENAME() "NoModule" +#endif + +// function name macro +#if defined(__GNUC__) || defined(__ICC) || defined(__ECC) || defined(__APPLE__) +# define FUNCTIONNAME() __FUNCTION__ +// #elif defined(__HP_aCC) || defined(__alpha) || defined(__DECCXX) +// #define FUNCTIONNAME() __FUNC__ +#else +# define FUNCTIONNAME() "???" +#endif + +// redirection +/** + * Redirect output to std::cout to specified log stream + * + * @param type Type of stream to re-direct to + * @param level Level of output + * @param scope Scope + * @param whatever Any code that will output to std::cout + */ +#define REDIRECTSTDOUT(type, level, scope, whatever) \ + do {Int_t originalStdout = AliLog::RedirectStdoutTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ + whatever; AliLog::RestoreStdout(originalStdout);} while(false) +/** + * Redirect output to std::cerr to specified log stream + * + * @param type Type of stream to re-direct to + * @param level Level of output + * @param scope Scope + * @param whatever Any code that will output to std::cout + */ +#define REDIRECTSTDERR(type, level, scope, whatever) \ + do {Int_t originalStderr = AliLog::RedirectStderrTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ + whatever; AliLog::RestoreStderr(originalStderr);} while(false) +/** + * Redirect output to std::cout and std::cerr to specified log stream + * + * @param type Type of stream to re-direct to + * @param level Level of output + * @param scope Scope + * @param whatever Any code that will output to std::cout or std::cerr + */ +#define REDIRECTSTDOUTANDSTDERR(type, level, scope, whatever) \ + do {Int_t originalStdout = AliLog::RedirectStdoutTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ + Int_t originalStderr = AliLog::RedirectStderrTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ + whatever; AliLog::RestoreStderr(originalStderr); AliLog::RestoreStdout(originalStdout);} while(false) + + +// debug level +#ifdef LOG_NO_DEBUG +# define AliDebugLevel() -1 +# define AliDebugLevelClass() -1 +# define AliDebugLevelGeneral(scope) -1 +#else +/** + * Get the object scope debug level + */ +# define AliDebugLevel() ((AliLog::IsDebugEnabled()) ? AliLog::GetDebugLevel(MODULENAME(), ClassName()) : -1) +/** + * Get the class (ROOT-enabled) debug level + */ +# define AliDebugLevelClass() ((AliLog::IsDebugEnabled()) ? AliLog::GetDebugLevel(MODULENAME(), Class()->GetName()) : -1) +/** + * Get the debug level associated with scope + * @param scope Scope + */ +# define AliDebugLevelGeneral(scope) ((AliLog::IsDebugEnabled()) ? AliLog::GetDebugLevel(MODULENAME(), scope) : -1) +#endif + +// debug messages +#ifdef LOG_NO_DEBUG +# define AliDebug(level, message) do { } while (false) +# define AliDebugClass(level, message) do { } while (false) +# define AliDebugGeneral(scope, level, message) do { } while (false) +# define AliDebugF(level, message,...) do { } while (false) +# define AliDebugClassF(level, message,...) do { } while (false) +# define AliDebugGeneralF(scope, level, message,...) do { } while (false) +#else + +// inspired by log4cxx code (see log4cxx/Logger.h) +// implements GCC branch prediction for increasing logging performance +# if !defined(ALIROOT_UNLIKELY) +# if defined(__GNUC__) && (__GNUC__ >= 3) +/** + * Provides optimization hint to the compiler + * to optimize for the expression being false. + * @param expr boolean expression. + * @returns value of expression. + */ +# define ALIROOT_UNLIKELY(expr) __builtin_expect(expr, 0) +# else +/** + * Provides optimization hint to the compiler + * to optimize for the expression being false. + * @param expr boolean expression. + * @returns value of expression. + */ +# define ALIROOT_UNLIKELY(expr) expr +# endif +# endif + +/** + * + * Logs a message to a specified logger with the DEBUG level. + * + * @param logLevel the debug level. + * @param message message to print in the following format: Form(message). + * Note, that message should contain balanced parenthesis, like + * AliDebug(1, Form("Failed to decode line %d of %s", line, filename)); + */ +# define AliDebug(logLevel, message) \ + do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), ClassName()) >= logLevel)) {\ + AliLog::Debug(logLevel, message, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) +/** + * + * Logs a message to a specified logger with the DEBUG level. For use + * in static member functions of a class + * + * @param logLevel the debug level. + * @param message message to print in the following format: Form(message). + * Note, that message should contain balanced parenthesis, like + * AliDebug(1, Form("Failed to decode line %d of %s", line, filename)); + */ +# define AliDebugClass(logLevel, message) \ + do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), Class()->GetName()) >= logLevel)) {\ + AliLog::Debug(logLevel, message, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) + +/** + * Logs a message to a specified logger with the DEBUG level. For use + * in non-ROOT-enabled-class scope. + * + * @param scope the logging scope. + * @param logLevel the debug level. + * @param message message to print in the following format: Form(message). + * Note, that message should contain balanced parenthesis, like + * AliDebug(1, Form("Failed to decode line %d of %s", line, filename)); +*/ +# define AliDebugGeneral(scope, logLevel, message) \ + do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), scope) >= logLevel)) {\ + AliLog::Debug(logLevel, message, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) +/** + * Macro to output debugging information. This excepts a printf-like + * format statement. Note, at least 3 arguments (in total) must be + * passed. + * + * @param logLevel Debug level + * @param format Printf-like format. + */ +# define AliDebugF(logLevel,format,...) \ +do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), ClassName()) >= logLevel)) { \ + TString m;m.Form(format,__VA_ARGS__); \ + AliLog::Debug(logLevel, m, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) +/** + * Outut debug information, filtered on debug level. For use in + * static member function of a ROOT-enabled class. This excepts a + * printf-like format statement. Note, at least 3 arguments (in + * total) must be passed. + * + * @param logLevel Debug level + * @param format Printf-like format + * + * @return + */ +# define AliDebugClassF(logLevel,format,...) \ + do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), Class()->GetName()) >= logLevel)) { \ + TString m;m.Form(format,__VA_ARGS__); \ + AliLog::Debug(logLevel, m, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) +/** + * Outut debug information, filtered on debug level. For use in + * static member function of a non-ROOT-enabled class-scope. This + * excepts a printf-like format statement. Note, at least 3 arguments + * (in total) must be passed. + * + * @param scope Scope + * @param logLevel Debug level + * @param format Printf-like format + * + * @return + */ +# define AliDebugGeneralF(scope,logLevel,format,...) \ + do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), scope) >= logLevel)) { \ + TString m;m.Form(format,__VA_ARGS__); \ + AliLog::Debug(logLevel, m, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) + +#endif + +// redirection to debug +#define StdoutToAliDebug(level, whatever) REDIRECTSTDOUT(AliLog::kDebug, level, ClassName(), whatever) +#define StderrToAliDebug(level, whatever) REDIRECTSTDERR(AliLog::kDebug, level, ClassName(), whatever) +#define ToAliDebug(level, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kDebug, level, ClassName(), whatever) +#define StdoutToAliDebugClass(level, whatever) REDIRECTSTDOUT(AliLog::kDebug, level, Class()->GetName(), whatever) +#define StderrToAliDebugClass(level, whatever) REDIRECTSTDERR(AliLog::kDebug, level, Class()->GetName(), whatever) +#define ToAliDebugClass(level, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kDebug, level, Class()->GetName(), whatever) +#define StdoutToAliDebugGeneral(scope, level, whatever) REDIRECTSTDOUT(AliLog::kDebug, level, scope, whatever) +#define StderrToAliDebugGeneral(scope, level, whatever) REDIRECTSTDERR(AliLog::kDebug, level, scope, whatever) +#define ToAliDebugGeneral(scope, level, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kDebug, level, scope, whatever) + +// debug stream objects +#define AliDebugStream(level) AliLog::Stream(AliLog::kDebug, level, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliDebugClassStream(level) AliLog::Stream(AliLog::kDebug, level, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliDebugGeneralStream(scope, level) AliLog::Stream(AliLog::kDebug, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) + + +/** + * Macro that will output stuff using the logging facilities. + * + * @param lvl Message level + * @param message Message to show + */ +#define AliMessage(lvl,message) do { \ + AliLog::Message(lvl, message, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) +/** + * Macro that will output stuff using the logging facilities. + * For use in static member function of ROOT-enabled class-scope. + * + * @param lvl Message level + * @param message Message to show + */ +#define AliMessageClass(lvl,message) do { \ + AliLog::Message(lvl, message, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) +/** + * Macro that will output stuff using the logging facilities. + * For use in non-ROOT-enabled class-scope. + * + * @param scope Scope + * @param lvl Message level + * @param message Message to show + */ +#define AliMessageGeneral(scope,lvl,message) do { \ + AliLog::Message(lvl, message, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__);} while(false) +/** + * Print a message using the AliLog logging facility. This macro + * accepts printf-like format arguments. Note, at least 3 arguments + * must be passed. + * @code + * AliMessageF(1, "foo"); // <-- Failes + * AliMessageF(1, "foo %d", 42); // <-- OK + * @endcode + * + * @param lvl Message level + * @param format printf-like format + */ +#define AliMessageF(lvl,format,...) do { \ + TString m; m.Form(format,__VA_ARGS__); \ + AliLog::Message(lvl, m, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) +/** + * Print a message using the AliLog logging facility. This macro + * accepts printf-like format arguments. Note, at least 3 arguments + * must be passed. + * @code + * AliMessageF(1, "foo"); // <-- Failes + * AliMessageF(1, "foo %d", 42); // <-- OK + * @endcode + * + * This is for static member function in for ROOT-enabled class-scope + * + * @param lvl Message level + * @param format printf-like format + */ +#define AliMessageClassF(lvl,format,...) do { \ + TString m; m.Form(format,__VA_ARGS__); \ + AliLog::Message(lvl, m, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) +/** + * Print a message using the AliLog logging facility. This macro + * accepts printf-like format arguments. Note, at least 3 arguments + * must be passed. + * @code + * AliMessageF(1, "foo"); // <-- Failes + * AliMessageF(1, "foo %d", 42); // <-- OK + * @endcode + * + * This is for non-ROOT-enabled class-scope + * + * @param scope Scope + * @param lvl Message level + * @param format printf-like format + */ +#define AliMessageGeneralF(scope,lvl,format,...) do { \ + TString m; m.Form(format,__VA_ARGS__); \ + AliLog::Message(lvl, m, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__);} while(false) + +// info messages +#ifdef LOG_NO_INFO +# define AliInfo(message) do { } while (false) +# define AliInfoClass(message) do { } while (false) +# define AliInfoGeneral(scope, message) do { } while (false) +# define AliInfoF(message,...) do { } while (false) +# define AliInfoClassF(message,...) do { } while (false) +# define AliInfoGeneralF(scope, message,...) do { } while (false) +#else +/** + * Forwards to AliMessage with log level of AliLog::kInfo + * @see AliMessage + */ +# define AliInfo(message) AliMessage(AliLog::kInfo, message) +/** + * Forwards to AliMessageClass with log level of AliLog::kInfo + * @see AliMessageClass + */ +# define AliInfoClass(message) AliMessageClass(AliLog::kInfo, message) +/** + * Forwards to AliMessageGeneral with log level of AliLog::kInfo + * @see AliMessageGeneral + */ +# define AliInfoGeneral(scope, message) AliMessageGeneral(scope, AliLog::kInfo, message) +/** + * Forwards to AliMessageF with log level of AliLog::kInfo + * @see AliMessageF + */ +# define AliInfoF(message,...) AliMessageF(AliLog::kInfo, message, __VA_ARGS__) +/** + * Forwards to AliMessageClassF with log level of AliLog::kInfo + * @see AliMessageClassF + */ +# define AliInfoClassF(message,...) AliMessageClassF(AliLog::kInfo, message, __VA_ARGS__) +/** + * Forwards to AliMessageGeneralF with log level of AliLog::kInfo + * @see AliMessageGeneralF + */ +# define AliInfoGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kInfo, message, __VA_ARGS__) +#endif + +// redirection to info +#define StdoutToAliInfo(whatever) REDIRECTSTDOUT(AliLog::kInfo, 0, ClassName(), whatever) +#define StderrToAliInfo(whatever) REDIRECTSTDERR(AliLog::kInfo, 0, ClassName(), whatever) +#define ToAliInfo(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kInfo, 0, ClassName(), whatever) +#define StdoutToAliInfoClass(whatever) REDIRECTSTDOUT(AliLog::kInfo, 0, Class()->GetName(), whatever) +#define StderrToAliInfoClass(whatever) REDIRECTSTDERR(AliLog::kInfo, 0, Class()->GetName(), whatever) +#define ToAliInfoClass(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kInfo, 0, Class()->GetName(), whatever) +#define StdoutToAliInfoGeneral(scope, whatever) REDIRECTSTDOUT(AliLog::kInfo, 0, scope, whatever) +#define StderrToAliInfoGeneral(scope, whatever) REDIRECTSTDERR(AliLog::kInfo, 0, scope, whatever) +#define ToAliInfoGeneral(scope, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kInfo, 0, scope, whatever) + +// info stream objects +#define AliInfoStream() AliLog::Stream(AliLog::kInfo, 0, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliInfoClassStream() AliLog::Stream(AliLog::kInfo, 0, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliInfoGeneralStream(scope) AliLog::Stream(AliLog::kInfo, 0, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) + +// warning messages +#ifdef LOG_NO_WARNING +# define AliWarning(message) do { } while (false) +# define AliWarningClass(message) do { } while (false) +# define AliWarningGeneral(scope, message) do { } while (false) +# define AliWarningF(message,...) do { } while (false) +# define AliWarningClassF(message,...) do { } while (false) +# define AliWarningGeneralF(scope, message,...) do { } while (false) +#else +/** + * Forwards to AliMessage with log level of AliLog::kWarning + * @see AliMessage + */ +# define AliWarning(message) AliMessage(AliLog::kWarning, message) +/** + * Forwards to AliMessageClass with log level of AliLog::kWarning + * @see AliMessageClass + */ +# define AliWarningClass(message) AliMessageClass(AliLog::kWarning, message) +/** + * Forwards to AliMessageGeneral with log level of AliLog::kWarning + * @see AliMessageGeneral + */ +# define AliWarningGeneral(scope, message) AliMessageGeneral(scope, AliLog::kWarning, message) +/** + * Forwards to AliMessageF with log level of AliLog::kWarning + * @see AliMessageF + */ +# define AliWarningF(message,...) AliMessageF(AliLog::kWarning, message, __VA_ARGS__) +/** + * Forwards to AliMessageClassF with log level of AliLog::kWarning + * @see AliMessageClassF + */ +# define AliWarningClassF(message,...) AliMessageClassF(AliLog::kWarning, message, __VA_ARGS__) +/** + * Forwards to AliMessageGeneralF with log level of AliLog::kWarning + * @see AliMessageGeneralF + */ +# define AliWarningGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kWarning, message, __VA_ARGS__) +#endif + +// redirection to warning +#define StdoutToAliWarning(whatever) REDIRECTSTDOUT(AliLog::kWarning, 0, ClassName(), whatever) +#define StderrToAliWarning(whatever) REDIRECTSTDERR(AliLog::kWarning, 0, ClassName(), whatever) +#define ToAliWarning(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kWarning, 0, ClassName(), whatever) +#define StdoutToAliWarningClass(whatever) REDIRECTSTDOUT(AliLog::kWarning, 0, Class()->GetName(), whatever) +#define StderrToAliWarningClass(whatever) REDIRECTSTDERR(AliLog::kWarning, 0, Class()->GetName(), whatever) +#define ToAliWarningClass(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kWarning, 0, Class()->GetName(), whatever) +#define StdoutToAliWarningGeneral(scope, whatever) REDIRECTSTDOUT(AliLog::kWarning, 0, scope, whatever) +#define StderrToAliWarningGeneral(scope, whatever) REDIRECTSTDERR(AliLog::kWarning, 0, scope, whatever) +#define ToAliWarningGeneral(scope, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kWarning, 0, scope, whatever) + +// warning stream objects +#define AliWarningStream() AliLog::Stream(AliLog::kWarning, 0, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliWarningClassStream() AliLog::Stream(AliLog::kWarning, 0, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliWarningGeneralStream(scope) AliLog::Stream(AliLog::kWarning, 0, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) + + +// error messages +/** + * Forwards to AliMessage with log level of AliLog::kError + * @see AliMessage + */ +#define AliError(message) AliMessage(AliLog::kError, message) +/** + * Forwards to AliMessageClass with log level of AliLog::kError + * @see AliMessageClass + */ +#define AliErrorClass(message) AliMessageClass(AliLog::kError, message) +/** + * Forwards to AliMessageGeneral with log level of AliLog::kError + * @see AliMessageGeneral + */ +#define AliErrorGeneral(scope, message) AliMessageGeneral(scope, AliLog::kError, message) +/** + * Forwards to AliMessageF with log level of AliLog::kError + * @see AliMessageF + */ +#define AliErrorF(message,...) AliMessageF(AliLog::kError, message, __VA_ARGS__) +/** + * Forwards to AliMessageClassF with log level of AliLog::kError + * @see AliMessageClassF + */ +#define AliErrorClassF(message,...) AliMessageClassF(AliLog::kError, message, __VA_ARGS__) +/** + * Forwards to AliMessageGeneralF with log level of AliLog::kError + * @see AliMessageGeneralF + */ +#define AliErrorGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kError, message, __VA_ARGS__) + +// redirection to error +#define StdoutToAliError(whatever) REDIRECTSTDOUT(AliLog::kError, 0, ClassName(), whatever) +#define StderrToAliError(whatever) REDIRECTSTDERR(AliLog::kError, 0, ClassName(), whatever) +#define ToAliError(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kError, 0, ClassName(), whatever) +#define StdoutToAliErrorClass(whatever) REDIRECTSTDOUT(AliLog::kError, 0, Class()->GetName(), whatever) +#define StderrToAliErrorClass(whatever) REDIRECTSTDERR(AliLog::kError, 0, Class()->GetName(), whatever) +#define ToAliErrorClass(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kError, 0, Class()->GetName(), whatever) +#define StdoutToAliErrorGeneral(scope, whatever) REDIRECTSTDOUT(AliLog::kError, 0, scope, whatever) +#define StderrToAliErrorGeneral(scope, whatever) REDIRECTSTDERR(AliLog::kError, 0, scope, whatever) +#define ToAliErrorGeneral(scope, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kError, 0, scope, whatever) + +// error stream objects +#define AliErrorStream() AliLog::Stream(AliLog::kError, 0, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliErrorClassStream() AliLog::Stream(AliLog::kError, 0, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) +#define AliErrorGeneralStream(scope) AliLog::Stream(AliLog::kError, 0, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) + + +// fatal messages +/** + * Forwards to AliMessage with log level of AliLog::kFatal + * @see AliMessage + */ +#define AliFatal(message) AliMessage(AliLog::kFatal, message) +/** + * Forwards to AliMessageClass with log level of AliLog::kFatal + * @see AliMessageClass + */ +#define AliFatalClass(message) AliMessageClass(AliLog::kFatal, message) +/** + * Forwards to AliMessageGeneral with log level of AliLog::kFatal + * @see AliMessageGeneral + */ +#define AliFatalGeneral(scope, message) AliMessageGeneral(scope, AliLog::kFatal, message) +/** + * Forwards to AliMessageF with log level of AliLog::kFatal + * @see AliMessageF + */ +#define AliFatalF(message,...) AliMessageF(AliLog::kFatal, message, __VA_ARGS__) +/** + * Forwards to AliMessageClassF with log level of AliLog::kFatal + * @see AliMessageClassF + */ +#define AliFatalClassF(message,...) AliMessageClassF(AliLog::kFatal, message, __VA_ARGS__) +/** + * Forwards to AliMessageGeneralF with log level of AliLog::kFatal + * @see AliMessageGeneralF + */ +#define AliFatalGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kFatal, message, __VA_ARGS__) + +#endif diff --git a/tpc/dirty/AliMathBase.cxx b/tpc/dirty/AliMathBase.cxx new file mode 100644 index 0000000000000..a53de2b0d22b3 --- /dev/null +++ b/tpc/dirty/AliMathBase.cxx @@ -0,0 +1,717 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + + +/////////////////////////////////////////////////////////////////////////// +// Class AliMathBase +// +// Subset of matheamtical functions not included in the TMath +// + +/////////////////////////////////////////////////////////////////////////// +#include "TMath.h" +#include "AliMathBase.h" +#include "Riostream.h" +#include "TH1F.h" +#include "TH3.h" +#include "TF1.h" +#include "TLinearFitter.h" + +// +// includes neccessary for test functions +// + +#include "TSystem.h" +#include "TRandom.h" +#include "TStopwatch.h" + +ClassImp(AliMathBase) // Class implementation to enable ROOT I/O + +AliMathBase::AliMathBase() : TObject() +{ + // + // Default constructor + // +} +/////////////////////////////////////////////////////////////////////////// +AliMathBase::~AliMathBase() +{ + // + // Destructor + // +} + + +//_____________________________________________________________________________ +void AliMathBase::EvaluateUni(Int_t nvectors, Double_t *data, Double_t &mean + , Double_t &sigma, Int_t hh) +{ + // + // Robust estimator in 1D case MI version - (faster than ROOT version) + // + // For the univariate case + // estimates of location and scatter are returned in mean and sigma parameters + // the algorithm works on the same principle as in multivariate case - + // it finds a subset of size hh with smallest sigma, and then returns mean and + // sigma of this subset + // + + if (nvectors<2) { + //AliErrorClass(Form("nvectors = %d, should be > 1",nvectors)); + printf("nvectors = %d, should be > 1\n",nvectors); + return; + } + if (hh<2) + hh=(nvectors+2)/2; + Double_t faclts[]={2.6477,2.5092,2.3826,2.2662,2.1587,2.0589,1.9660,1.879,1.7973,1.7203,1.6473}; + Int_t *index=new Int_t[nvectors]; + TMath::Sort(nvectors, data, index, kFALSE); + + Int_t nquant = TMath::Min(Int_t(Double_t(((hh*1./nvectors)-0.5)*40))+1, 11); + Double_t factor = faclts[TMath::Max(0,nquant-1)]; + + Double_t sumx =0; + Double_t sumx2 =0; + Int_t bestindex = -1; + Double_t bestmean = 0; + Double_t bestsigma = (data[index[nvectors-1]]-data[index[0]]+1.); // maximal possible sigma + bestsigma *=bestsigma; + + for (Int_t i=0; i0){ + // fix proper normalization - Anja + factor = faclts[nquant-1]; + } + + // + // + Double_t sumx =0; + Double_t sumx2 =0; + Int_t bestindex = -1; + Double_t bestmean = 0; + Double_t bestsigma = -1; + for (Int_t i=0; iGetNbinsX(); + Float_t nentries = his->GetEntries(); + Float_t sum =0; + Float_t mean = 0; + Float_t sigma2 = 0; + Float_t ncumul=0; + for (Int_t ibin=1;ibinGetBinContent(ibin); + Float_t fraction = Float_t(ncumul)/Float_t(nentries); + if (fraction>down && fractionGetBinContent(ibin); + mean+=his->GetBinCenter(ibin)*his->GetBinContent(ibin); + sigma2+=his->GetBinCenter(ibin)*his->GetBinCenter(ibin)*his->GetBinContent(ibin); + } + } + mean/=sum; + sigma2= TMath::Sqrt(TMath::Abs(sigma2/sum-mean*mean)); + if (param){ + (*param)[0] = his->GetMaximum(); + (*param)[1] = mean; + (*param)[2] = sigma2; + + } + if (verbose) printf("Mean\t%f\t Sigma2\t%f\n", mean,sigma2); +} + +void AliMathBase::LTM(TH1F * his, TVectorD *param , Float_t fraction, Bool_t verbose){ + // + // LTM + // + Int_t nbins = his->GetNbinsX(); + Int_t nentries = (Int_t)his->GetEntries(); + Double_t *data = new Double_t[nentries]; + Int_t npoints=0; + for (Int_t ibin=1;ibinGetBinContent(ibin); + Float_t xcenter= his->GetBinCenter(ibin); + for (Int_t ic=0; icGetMaximum(); + (*param)[1] = mean; + (*param)[2] = sigma; + } +} + +Double_t AliMathBase::FitGaus(TH1F* his, TVectorD *param, TMatrixD */*matrix*/, Float_t xmin, Float_t xmax, Bool_t verbose){ + // + // Fit histogram with gaussian function + // + // Prameters: + // return value- chi2 - if negative ( not enough points) + // his - input histogram + // param - vector with parameters + // xmin, xmax - range to fit - if xmin=xmax=0 - the full histogram range used + // Fitting: + // 1. Step - make logarithm + // 2. Linear fit (parabola) - more robust - always converge + // 3. In case of small statistic bins are averaged + // + static TLinearFitter fitter(3,"pol2"); + TVectorD par(3); + TVectorD sigma(3); + TMatrixD mat(3,3); + if (his->GetMaximum()<4) return -1; + if (his->GetEntries()<12) return -1; + if (his->GetRMS()GetEntries()*his->GetBinWidth(1)/TMath::Sqrt((TMath::TwoPi()*his->GetRMS())); + Int_t dsmooth = TMath::Nint(6./TMath::Sqrt(maxEstimate)); + + if (maxEstimate<1) return -1; + Int_t nbins = his->GetNbinsX(); + Int_t npoints=0; + // + + + if (xmin>=xmax){ + xmin = his->GetXaxis()->GetXmin(); + xmax = his->GetXaxis()->GetXmax(); + } + for (Int_t iter=0; iter<2; iter++){ + fitter.ClearPoints(); + npoints=0; + for (Int_t ibin=1;ibinGetBinContent(ibin); + for (Int_t delta = -dsmooth; delta<=dsmooth; delta++){ + if (ibin+delta>1 &&ibin+deltaGetBinContent(ibin+delta); + countB++; + } + } + entriesI/=countB; + Double_t xcenter= his->GetBinCenter(ibin); + if (xcenterxmax) continue; + Double_t error=1./TMath::Sqrt(countB); + Float_t cont=2; + if (iter>0){ + if (par[0]+par[1]*xcenter+par[2]*xcenter*xcenter>20) return 0; + cont = TMath::Exp(par[0]+par[1]*xcenter+par[2]*xcenter*xcenter); + if (cont>1.) error = 1./TMath::Sqrt(cont*Float_t(countB)); + } + if (entriesI>1&&cont>1){ + fitter.AddPoint(&xcenter,TMath::Log(Float_t(entriesI)),error); + npoints++; + } + } + if (npoints>3){ + fitter.Eval(); + fitter.GetParameters(par); + }else{ + break; + } + } + if (npoints<=3){ + return -1; + } + fitter.GetParameters(par); + fitter.GetCovarianceMatrix(mat); + if (TMath::Abs(par[1])Print(); + printf("Chi2=%f\n",chi2); + TF1 * f1= new TF1("f1","[0]*exp(-(x-[1])^2/(2*[2]*[2]))",his->GetXaxis()->GetXmin(),his->GetXaxis()->GetXmax()); + f1->SetParameter(0, (*param)[0]); + f1->SetParameter(1, (*param)[1]); + f1->SetParameter(2, (*param)[2]); + f1->Draw("same"); + } + return chi2; +} + +Double_t AliMathBase::FitGaus(Float_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, TVectorD *param, TMatrixD */*matrix*/, Bool_t verbose){ + // + // Fit histogram with gaussian function + // + // Prameters: + // nbins: size of the array and number of histogram bins + // xMin, xMax: histogram range + // param: paramters of the fit (0-Constant, 1-Mean, 2-Sigma, 3-Sum) + // matrix: covariance matrix -- not implemented yet, pass dummy matrix!!! + // + // Return values: + // >0: the chi2 returned by TLinearFitter + // -3: only three points have been used for the calculation - no fitter was used + // -2: only two points have been used for the calculation - center of gravity was uesed for calculation + // -1: only one point has been used for the calculation - center of gravity was uesed for calculation + // -4: invalid result!! + // + // Fitting: + // 1. Step - make logarithm + // 2. Linear fit (parabola) - more robust - always converge + // + static TLinearFitter fitter(3,"pol2"); + static TMatrixD mat(3,3); + static Double_t kTol = mat.GetTol(); + fitter.StoreData(kFALSE); + fitter.ClearPoints(); + TVectorD par(3); + TVectorD sigma(3); + TMatrixD A(3,3); + TMatrixD b(3,1); + Float_t rms = TMath::RMS(nBins,arr); + Float_t max = TMath::MaxElement(nBins,arr); + Float_t binWidth = (xMax-xMin)/(Float_t)nBins; + + Float_t meanCOG = 0; + Float_t rms2COG = 0; + Float_t sumCOG = 0; + + Float_t entries = 0; + Int_t nfilled=0; + + if (!param) param = new TVectorD(4); + + for (Int_t i=0; i0) nfilled++; + } + (*param)[0] = 0; + (*param)[1] = 0; + (*param)[2] = 0; + (*param)[3] = 0; + + if (max<4) return -4; + if (entries<12) return -4; + if (rms1){ + Double_t xcenter = xMin+(ibin+0.5)*binWidth; + Float_t error = 1./TMath::Sqrt(entriesI); + Float_t val = TMath::Log(Float_t(entriesI)); + fitter.AddPoint(&xcenter,val,error); + if (npoints<3){ + A(npoints,0)=1; + A(npoints,1)=xcenter; + A(npoints,2)=xcenter*xcenter; + b(npoints,0)=val; + meanCOG+=xcenter*entriesI; + rms2COG +=xcenter*entriesI*xcenter; + sumCOG +=entriesI; + } + npoints++; + } + } + + Double_t chi2 = 0; + if (npoints>=3){ + if ( npoints == 3 ){ + //analytic calculation of the parameters for three points + A.Invert(); + TMatrixD res(1,3); + res.Mult(A,b); + par[0]=res(0,0); + par[1]=res(0,1); + par[2]=res(0,2); + chi2 = -3.; + } else { + // use fitter for more than three points + fitter.Eval(); + fitter.GetParameters(par); + fitter.GetCovarianceMatrix(mat); + chi2 = fitter.GetChisquare()/Float_t(npoints); + } + if (TMath::Abs(par[1])GetNrows()<4 ) param->ResizeTo(4); + //if (!matrix) matrix = new TMatrixD(3,3); // !!!!might be a memory leek. use dummy matrix pointer to call this function! + + (*param)[1] = par[1]/(-2.*par[2]); + (*param)[2] = 1./TMath::Sqrt(TMath::Abs(-2.*par[2])); + Double_t lnparam0 = par[0]+ par[1]* (*param)[1] + par[2]*(*param)[1]*(*param)[1]; + if ( lnparam0>307 ) return -4; + (*param)[0] = TMath::Exp(lnparam0); + if (verbose){ + par.Print(); + mat.Print(); + param->Print(); + printf("Chi2=%f\n",chi2); + TF1 * f1= new TF1("f1","[0]*exp(-(x-[1])^2/(2*[2]*[2]))",xMin,xMax); + f1->SetParameter(0, (*param)[0]); + f1->SetParameter(1, (*param)[1]); + f1->SetParameter(2, (*param)[2]); + f1->Draw("same"); + } + return chi2; + } + + if (npoints == 2){ + //use center of gravity for 2 points + meanCOG/=sumCOG; + rms2COG /=sumCOG; + (*param)[0] = max; + (*param)[1] = meanCOG; + (*param)[2] = TMath::Sqrt(TMath::Abs(meanCOG*meanCOG-rms2COG)); + chi2=-2.; + } + if ( npoints == 1 ){ + meanCOG/=sumCOG; + (*param)[0] = max; + (*param)[1] = meanCOG; + (*param)[2] = binWidth/TMath::Sqrt(12); + chi2=-1.; + } + return chi2; + +} + + +Float_t AliMathBase::GetCOG(Short_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, Float_t *rms, Float_t *sum) +{ + // + // calculate center of gravity rms and sum for array 'arr' with nBins an a x range xMin to xMax + // return COG; in case of failure return xMin + // + Float_t meanCOG = 0; + Float_t rms2COG = 0; + Float_t sumCOG = 0; + Int_t npoints = 0; + + Float_t binWidth = (xMax-xMin)/(Float_t)nBins; + + for (Int_t ibin=0; ibin0 ){ + meanCOG += xcenter*entriesI; + rms2COG += xcenter*entriesI*xcenter; + sumCOG += entriesI; + npoints++; + } + } + if ( sumCOG == 0 ) return xMin; + meanCOG/=sumCOG; + + if ( rms ){ + rms2COG /=sumCOG; + (*rms) = TMath::Sqrt(TMath::Abs(meanCOG*meanCOG-rms2COG)); + if ( npoints == 1 ) (*rms) = binWidth/TMath::Sqrt(12); + } + + if ( sum ) + (*sum) = sumCOG; + + return meanCOG; +} + + +Double_t AliMathBase::ErfcFast(Double_t x){ + // Fast implementation of the complementary error function + // The error of the approximation is |eps(x)| < 5E-4 + // See Abramowitz and Stegun, p.299, 7.1.27 + + Double_t z = TMath::Abs(x); + Double_t ans = 1+z*(0.278393+z*(0.230389+z*(0.000972+z*0.078108))); + ans = 1.0/ans; + ans *= ans; + ans *= ans; + + return (x>=0.0 ? ans : 2.0 - ans); +} + +/////////////////////////////////////////////////////////////// +////////////// TEST functions ///////////////////////// +/////////////////////////////////////////////////////////////// + + + + + + +TGraph2D * AliMathBase::MakeStat2D(TH3 * his, Int_t delta0, Int_t delta1, Int_t type){ + // + // + // + // delta - number of bins to integrate + // type - 0 - mean value + + TAxis * xaxis = his->GetXaxis(); + TAxis * yaxis = his->GetYaxis(); + // TAxis * zaxis = his->GetZaxis(); + Int_t nbinx = xaxis->GetNbins(); + Int_t nbiny = yaxis->GetNbins(); + const Int_t nc=1000; + char name[nc]; + Int_t icount=0; + TGraph2D *graph = new TGraph2D(nbinx*nbiny); + TF1 f1("f1","gaus"); + for (Int_t ix=0; ixGetBinCenter(ix); + Float_t ycenter = yaxis->GetBinCenter(iy); + snprintf(name,nc,"%s_%d_%d",his->GetName(), ix,iy); + TH1 *projection = his->ProjectionZ(name,ix-delta0,ix+delta0,iy-delta1,iy+delta1); + Float_t stat= 0; + if (type==0) stat = projection->GetMean(); + if (type==1) stat = projection->GetRMS(); + if (type==2 || type==3){ + TVectorD vec(3); + AliMathBase::LTM((TH1F*)projection,&vec,0.7); + if (type==2) stat= vec[1]; + if (type==3) stat= vec[0]; + } + if (type==4|| type==5){ + projection->Fit(&f1); + if (type==4) stat= f1.GetParameter(1); + if (type==5) stat= f1.GetParameter(2); + } + //printf("%d\t%f\t%f\t%f\n", icount,xcenter, ycenter, stat); + graph->SetPoint(icount,xcenter, ycenter, stat); + icount++; + } + return graph; +} + +TGraph * AliMathBase::MakeStat1D(TH3 * his, Int_t delta1, Int_t type){ + // + // + // + // delta - number of bins to integrate + // type - 0 - mean value + + TAxis * xaxis = his->GetXaxis(); + TAxis * yaxis = his->GetYaxis(); + // TAxis * zaxis = his->GetZaxis(); + Int_t nbinx = xaxis->GetNbins(); + Int_t nbiny = yaxis->GetNbins(); + const Int_t nc=1000; + char name[nc]; + Int_t icount=0; + TGraph *graph = new TGraph(nbinx); + TF1 f1("f1","gaus"); + for (Int_t ix=0; ixGetBinCenter(ix); + // Float_t ycenter = yaxis->GetBinCenter(iy); + snprintf(name,nc,"%s_%d",his->GetName(), ix); + TH1 *projection = his->ProjectionZ(name,ix-delta1,ix+delta1,0,nbiny); + Float_t stat= 0; + if (type==0) stat = projection->GetMean(); + if (type==1) stat = projection->GetRMS(); + if (type==2 || type==3){ + TVectorD vec(3); + AliMathBase::LTM((TH1F*)projection,&vec,0.7); + if (type==2) stat= vec[1]; + if (type==3) stat= vec[0]; + } + if (type==4|| type==5){ + projection->Fit(&f1); + if (type==4) stat= f1.GetParameter(1); + if (type==5) stat= f1.GetParameter(2); + } + //printf("%d\t%f\t%f\t%f\n", icount,xcenter, ycenter, stat); + graph->SetPoint(icount,xcenter, stat); + icount++; + } + return graph; +} + +Double_t AliMathBase::TruncatedGaus(Double_t mean, Double_t sigma, Double_t cutat) +{ + // return number generated according to a gaussian distribution N(mean,sigma) truncated at cutat + // + Double_t value; + do{ + value=gRandom->Gaus(mean,sigma); + }while(TMath::Abs(value-mean)>cutat); + return value; +} + +Double_t AliMathBase::TruncatedGaus(Double_t mean, Double_t sigma, Double_t leftCut, Double_t rightCut) +{ + // return number generated according to a gaussian distribution N(mean,sigma) + // truncated at leftCut and rightCut + // + Double_t value; + do{ + value=gRandom->Gaus(mean,sigma); + }while((value-mean)<-leftCut || (value-mean)>rightCut); + return value; +} + +Double_t AliMathBase::BetheBlochAleph(Double_t bg, + Double_t kp1, + Double_t kp2, + Double_t kp3, + Double_t kp4, + Double_t kp5) { + // + // This is the empirical ALEPH parameterization of the Bethe-Bloch formula. + // It is normalized to 1 at the minimum. + // + // bg - beta*gamma + // + // The default values for the kp* parameters are for ALICE TPC. + // The returned value is in MIP units + // + Double_t beta = bg/TMath::Sqrt(1.+ bg*bg); + + Double_t aa = TMath::Power(beta,kp4); + Double_t bb = TMath::Power(1./bg,kp5); + + bb=TMath::Log(kp3+bb); + + return (kp2-aa-bb)*kp1/aa; +} diff --git a/tpc/dirty/AliMathBase.h b/tpc/dirty/AliMathBase.h new file mode 100644 index 0000000000000..7cc575ba1c9f1 --- /dev/null +++ b/tpc/dirty/AliMathBase.h @@ -0,0 +1,59 @@ +#ifndef ALIMATHBASE_H +#define ALIMATHBASE_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + + + +#include "TObject.h" +#include "TVectorD.h" +#include "TMatrixD.h" +#include "TGraph2D.h" +#include "TGraph.h" + +class TH1F; +class TH3; + + +class AliMathBase : public TObject +{ + public: + AliMathBase(); + virtual ~AliMathBase(); + static void EvaluateUni(Int_t nvectors, Double_t *data, Double_t &mean, Double_t &sigma, Int_t hh); + static void EvaluateUniExternal(Int_t nvectors, Double_t *data, Double_t &mean, Double_t &sigma, Int_t hh, Float_t externalfactor=1); + static Int_t Freq(Int_t n, const Int_t *inlist, Int_t *outlist, Bool_t down); + static void TruncatedMean(TH1F * his, TVectorD *param, Float_t down=0, Float_t up=1.0, Bool_t verbose=kFALSE); + static void LTM(TH1F * his, TVectorD *param=0 , Float_t fraction=1, Bool_t verbose=kFALSE); + static Double_t FitGaus(TH1F* his, TVectorD *param=0, TMatrixD *matrix=0, Float_t xmin=0, Float_t xmax=0, Bool_t verbose=kFALSE); + static Double_t FitGaus(Float_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, TVectorD *param=0, TMatrixD *matrix=0, Bool_t verbose=kFALSE); + static Float_t GetCOG(Short_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, Float_t *rms=0, Float_t *sum=0); + + static Double_t TruncatedGaus(Double_t mean, Double_t sigma, Double_t cutat); + static Double_t TruncatedGaus(Double_t mean, Double_t sigma, Double_t leftCut, Double_t rightCut); + + static TGraph2D * MakeStat2D(TH3 * his, Int_t delta0, Int_t delta1, Int_t type); + static TGraph * MakeStat1D(TH3 * his, Int_t delta1, Int_t type); + + static Double_t ErfcFast(Double_t x); // Complementary error function erfc(x) + static Double_t ErfFast(Double_t x) {return 1-ErfcFast(x);} // Error function erf(x) + + // + // TestFunctions: + // + + // + // Bethe-Bloch formula parameterizations + // + static Double_t BetheBlochAleph(Double_t bg, + Double_t kp1=0.76176e-1, + Double_t kp2=10.632, + Double_t kp3=0.13279e-4, + Double_t kp4=1.8631, + Double_t kp5=1.9479 + ); + + ClassDef(AliMathBase,0) // Various mathematical tools for physics analysis - which are not included in ROOT TMath + +}; +#endif diff --git a/tpc/dirty/AliTPCPRF2D.cxx b/tpc/dirty/AliTPCPRF2D.cxx new file mode 100644 index 0000000000000..f762ab4da7e0d --- /dev/null +++ b/tpc/dirty/AliTPCPRF2D.cxx @@ -0,0 +1,976 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +/* $Id$ */ + +/////////////////////////////////////////////////////////////////////////////// +// AliTPCPRF2D - // +// Pad response function object in two dimesions // +// This class contains the basic functions for the // +// calculation of PRF according generic charge distribution // +// In Update function object calculate table of response function // +// in discrete x and y position // +// This table is used for interpolation od response function in any position // +// (function GetPRF) // +// // +// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // +// // +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "AliH2F.h" +#include "AliTPCPRF2D.h" + + +extern TStyle * gStyle; + +const Double_t AliTPCPRF2D::fgkDegtoRad = 0.01745329251994; +const Double_t AliTPCPRF2D::fgkSQRT12=3.464101; +const Int_t AliTPCPRF2D::fgkNPRF = 100; + + +static Double_t FunGauss2D(const Double_t *const x, const Double_t *const par) +{ +//Gauss function -needde by the generic function object + return ( TMath::Exp(-(x[0]*x[0])/(2*par[0]*par[0]))* + TMath::Exp(-(x[1]*x[1])/(2*par[1]*par[1]))); + +} + +static Double_t FunCosh2D(const Double_t *const x, const Double_t *const par) +{ + //Cosh function -needde by the generic function object + return ( 1/(TMath::CosH(3.14159*x[0]/(2*par[0]))* + TMath::CosH(3.14159*x[1]/(2*par[1])))); +} + +static Double_t FunGati2D(const Double_t *const x, const Double_t *const par) +{ + //Gati function -needde by the generic function object + Float_t k3=par[1]; + Float_t k3R=TMath::Sqrt(k3); + Float_t k2=(TMath::Pi()/2)*(1-k3R/2.); + Float_t k1=k2*k3R/(4*TMath::ATan(k3R)); + Float_t l=x[0]/par[0]; + Float_t tan2=TMath::TanH(k2*l); + tan2*=tan2; + Float_t res = k1*(1-tan2)/(1+k3*tan2); + //par[4] = is equal to k3Y + k3=par[4]; + k3R=TMath::Sqrt(k3); + k2=(TMath::Pi()/2)*(1-k3R/2.); + k1=k2*k3R/(4*TMath::ATan(k3R)); + l=x[1]/par[0]; + tan2=TMath::TanH(k2*l); + tan2*=tan2; + res = res*k1*(1-tan2)/(1+k3*tan2); + return res; +} + +/////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////// + +ClassImp(AliTPCPRF2D) + +AliTPCPRF2D::AliTPCPRF2D() + :TObject(), + fcharge(0), + fY1(0.), + fY2(0.), + fNYdiv(0), + fNChargeArray(0), + fChargeArray(0), + fHeightFull(0.), + fHeightS(0.), + fShiftY(0.), + fWidth(0.), + fK(0.), + fNPRF(0), + fNdiv(5), + fDStep(0.), + fKNorm(1.), + fInteg(0.), + fGRF(0), + fK3X(0.), + fK3Y(0.), + fPadDistance(0.), + fOrigSigmaX(0.), + fOrigSigmaY(0.), + fChargeAngle(0.), + fPadAngle(0.), + fSigmaX(0.), + fSigmaY(0.), + fMeanX(0.), + fMeanY(0.), + fInterX(0), + fInterY(0), + fCurrentY(0.), + fDYtoWire(0.), + fDStepM1(0.) +{ + //default constructor for response function object + + fNPRF =fgkNPRF ; + for(Int_t i=0;i<5;i++){ + funParam[i]=0.; + fType[i]=0; + } + + + //chewron default values + SetPad(0.8,0.8); + SetChevron(0.2,0.0,1.0); + SetY(-0.2,0.2,2); + SetInterpolationType(2,0); +} + +AliTPCPRF2D::~AliTPCPRF2D() +{ + if (fChargeArray!=0) delete [] fChargeArray; + if (fGRF !=0 ) fGRF->Delete(); +} + +void AliTPCPRF2D::SetY(Float_t y1, Float_t y2, Int_t nYdiv) +{ + // + //set virtual line position + //first and last line and number of lines + fNYdiv = nYdiv; + fY1=y1; + fY2=y2; +} + +void AliTPCPRF2D::SetPad(Float_t width, Float_t height) +{ + //set base chevron parameters + fHeightFull=height; + fWidth=width; +} +void AliTPCPRF2D::SetChevron(Float_t hstep, + Float_t shifty, + Float_t fac) +{ + //set shaping of chewron parameters + fHeightS=hstep; + fShiftY=shifty; + fK=fac; +} + +void AliTPCPRF2D::SetChParam(Float_t width, Float_t height, + Float_t hstep, Float_t shifty, Float_t fac) +{ + SetPad(width,height); + SetChevron(hstep,shifty,fac); +} + + +Float_t AliTPCPRF2D::GetPRF(Float_t xin, Float_t yin) +{ + //function which return pad response + //for the charge in distance xin + //return cubic aproximation of PRF or PRF at nearest virtual wire + if (fChargeArray==0) return 0; + //transform position to "wire position" + Float_t y=fDYtoWire*(yin-fY1); + if (fNYdiv == 1) y=fY1; + //normaly it find nearest line charge + if (fInterY ==0){ + Int_t i=Int_t(0.5+y); + if (y<0) i=Int_t(-0.5+y); + if ((i<0) || (i>=fNYdiv) ) return 0; + fcharge = &(fChargeArray[i*fNPRF]); + return GetPRFActiv(xin); + } + //make interpolation from more fore lines + Int_t i= Int_t(y); + Float_t res; + if ((i<0) || (i>=fNYdiv) ) return 0; + Float_t z0=0; + Float_t z1=0; + Float_t z2=0; + Float_t z3=0; + if (i>0) { + fcharge =&(fChargeArray[(i-1)*fNPRF]); + z0 = GetPRFActiv(xin); + } + fcharge =&(fChargeArray[i*fNPRF]); + z1=GetPRFActiv(xin); + if ((i+1)1) && ((i+2)Eval(xin,yin)/fInteg; + else + return 0.; +} + + +void AliTPCPRF2D::SetParam( TF2 *const GRF, Float_t kNorm, + Float_t sigmaX, Float_t sigmaY) +{ + //adjust parameters of the original charge distribution + //and pad size parameters + if (fGRF !=0 ) fGRF->Delete(); + fGRF = GRF; + fKNorm = kNorm; + //sprintf(fType,"User"); + snprintf(fType,5,"User"); + if (sigmaX ==0) sigmaX=(fWidth*(1+TMath::Abs(fK)))/fgkSQRT12; + if (sigmaY ==0) sigmaY=(fWidth*(1+TMath::Abs(fK)))/fgkSQRT12; + fOrigSigmaX=sigmaX; + fOrigSigmaY=sigmaY; + Double_t estimsigma = + TMath::Sqrt(sigmaX*sigmaX+(fWidth*fWidth*(1+TMath::Abs(fK))/12)+ + TMath::Tan(fPadAngle*fgkDegtoRad)*TMath::Tan(fPadAngle*fgkDegtoRad)*fHeightFull*fHeightFull/12); + if (estimsigma < 5*sigmaX) { + fDStep = estimsigma/10.; + fNPRF = Int_t(estimsigma*8./fDStep); + } + else{ + fDStep = sigmaX; + Double_t width = fWidth*(1+TMath::Abs(fK))+TMath::Abs(TMath::Tan(fPadAngle*fgkDegtoRad))*fHeightFull; + fNPRF = Int_t((width+8.*sigmaX)/fDStep); + }; + +} + + +void AliTPCPRF2D::SetGauss(Float_t sigmaX, Float_t sigmaY, + Float_t kNorm) +{ + // + // set parameters for Gauss generic charge distribution + // + fKNorm = kNorm; + fOrigSigmaX=sigmaX; + fOrigSigmaY=sigmaY; + //sprintf(fType,"Gauss"); + snprintf(fType,5,"Gauss"); + if (fGRF !=0 ) fGRF->Delete(); + fGRF = new TF2("FunGauss2D",FunGauss2D,-5.,5.,-5.,5.,4); + + funParam[0]=sigmaX; + funParam[1]=sigmaY; + funParam[2]=fK; + funParam[3]=fHeightS; + + fGRF->SetParameters(funParam); + Double_t estimsigma = + TMath::Sqrt(sigmaX*sigmaX+(fWidth*fWidth*(1+TMath::Abs(fK))/12)+ + TMath::Tan(fPadAngle)*TMath::Tan(fPadAngle*fgkDegtoRad)*fHeightFull*fHeightFull/12); + if (estimsigma < 5*sigmaX) { + fDStep = estimsigma/10.; + fNPRF = Int_t(estimsigma*8./fDStep); + } + else{ + fDStep = sigmaX; + Double_t width = fWidth*(1+TMath::Abs(fK))+TMath::Abs(TMath::Tan(fPadAngle*fgkDegtoRad))*fHeightFull; + fNPRF = Int_t((width+8.*sigmaX)/fDStep); + }; + + +} +void AliTPCPRF2D::SetCosh(Float_t sigmaX, Float_t sigmaY, + Float_t kNorm) +{ + // set parameters for Cosh generic charge distribution + // + fKNorm = kNorm; + fOrigSigmaX=sigmaX; + fOrigSigmaY=sigmaY; + // sprintf(fType,"Cosh"); + snprintf(fType,5,"Cosh"); + if (fGRF !=0 ) fGRF->Delete(); + fGRF = new TF2("FunCosh2D", FunCosh2D,-5.,5.,-5.,5.,4); + funParam[0]=sigmaX; + funParam[1]=sigmaY; + funParam[2]=fK; + funParam[3]=fHeightS; + fGRF->SetParameters(funParam); + + Double_t estimsigma = TMath::Sqrt(sigmaX*sigmaX+fWidth*fWidth*(1+TMath::Abs(fK))/12); + if (estimsigma < 5*sigmaX) { + fDStep = estimsigma/10.; + fNPRF = Int_t(estimsigma*8./fDStep); + } + else{ + fDStep = sigmaX; + fNPRF = Int_t((1.2*fWidth*(1+TMath::Abs(fK))+8.*sigmaX)/fDStep); + }; + +} + +void AliTPCPRF2D::SetGati(Float_t K3X, Float_t K3Y, + Float_t padDistance, + Float_t kNorm) +{ + // set parameters for Gati generic charge distribution + // + fKNorm = kNorm; + fK3X=K3X; + fK3Y=K3Y; + fPadDistance=padDistance; + //sprintf(fType,"Gati"); + snprintf(fType,5,"Gati"); + if (fGRF !=0 ) fGRF->Delete(); + fGRF = new TF2("FunGati2D", FunGati2D,-5.,5.,-5.,5.,5); + + funParam[0]=padDistance; + funParam[1]=K3X; + funParam[2]=fK; + funParam[3]=fHeightS; + funParam[4]=K3Y; + fGRF->SetParameters(funParam); + fOrigSigmaX=padDistance; + fOrigSigmaY=padDistance; + Float_t sigmaX = fOrigSigmaX; + Double_t estimsigma = TMath::Sqrt(sigmaX*sigmaX+fWidth*fWidth*(1+TMath::Abs(fK))/12); + if (estimsigma < 5*sigmaX) { + fDStep = estimsigma/10.; + fNPRF = Int_t(estimsigma*8./fDStep); + } + else{ + fDStep = sigmaX; + fNPRF = Int_t((1.2*fWidth*(1+TMath::Abs(fK))+8.*sigmaX)/fDStep); + }; +} + + + +void AliTPCPRF2D::Update() +{ + // + //update fields with interpolated values for + //PRF calculation + + if ( fGRF == 0 ) return; + //initialize interpolated values to 0 + Int_t i; + if (fChargeArray!=0) delete [] fChargeArray; + fChargeArray = new Float_t[fNPRF*fNYdiv]; + fNChargeArray = fNPRF*fNYdiv; + for (i =0; iEval(Float_t(ix)*dx,Float_t(iy)*dy)*dx*dy; + ///////////////////////////////////////////////////// + fInteg =dInteg; + if ( fInteg == 0 ) fInteg = 1; + + for (i=0; i(y1+kprec)) for (Double_t y = y1; y(y2-y-dy)) { + ndy =y2-y-dy; + if (ndy(x1+kprec)) { + for (Double_t x = x1; x(x2-x-dx)) { + ndx =x2-x-dx; + } + if ( ( (x+dx+ndx)TMath::Min(xp4,xp2))) { + ndx/=5.; + } + if (ndxEval(dddx,dddy); //middle point + + ddx = xch-(x+dx/2.); + ddy = fCurrentY-(y); + dddx = cos*ddx-sin*ddy; + dddy = sin*ddx+cos*ddy; + Double_t z1=fGRF->Eval(dddx,dddy); //point down + + ddx = xch-(x+dx/2.); + ddy = fCurrentY-(y+dy); + dddx = cos*ddx-sin*ddy; + dddy = sin*ddx+cos*ddy; + Double_t z3=fGRF->Eval(dddx,dddy); //point up + + ddx = xch-(x); + ddy = fCurrentY-(y+dy/2.); + dddx = cos*ddx-sin*ddy; + dddy = sin*ddx+cos*ddy; + Double_t z2=fGRF->Eval(dddx,dddy); //point left + + ddx = xch-(x+dx); + ddy = fCurrentY-(y+dy/2.); + dddx = cos*ddx-sin*ddy; + dddy = sin*ddx+cos*ddy; + Double_t z4=fGRF->Eval(dddx,dddy); //point right + + + if (z0<0) {z0=0;z1=0;z2=0;z3=0;z4=0;} + + Double_t f2x= (z3+z1-2*z0)*4.;//second derivation in y + Double_t f2y= (z2+z4-2*z0)*4.;//second derivation in x + Double_t f1y= (z3-z1); + Double_t z ; + z = (z0+f2x/6.+f2y/6.);//second order aproxiation of integral + if (kx>kprec){ //positive derivation + if (x<(xp1+dy*kx)){ //calculate volume at left border + Double_t xx1 = x; + Double_t xx2 = TMath::Min(x+dx,xp1+dy*kx); + Double_t yy1 = y+(xx1-xp1)/kx; + Double_t yy2 = TMath::Min(y+(xx2-xp1)/kx,y+dy); + z=z0; + if (yy2xp2){ //calculate volume at right border + Double_t xx1 = x; + Double_t xx2 = x+dx; + Double_t yy1 = y+(xx1-xp2)/kx; + Double_t yy2 = y+(xx2-xp2)/kx; + z=z0; + //rectangle part + z-=z0*(yy1-y)/dy; //constant part + z-=f1y*(xx2-xx1)*(yy1-y)*(yy1-y)/(2*dx*dy); + //triangle part + z-=z0*(xx2-xx1)*(yy2-yy1)/(2*dx*dy); //constant part + } + } + if (kx<-kprec){ //negative derivation + if (x<(xp1+dy*kx)){ //calculate volume at left border + Double_t xx1 = x; + Double_t xx2 = TMath::Min(x+dx,xp3-dy/kx); + Double_t yy1 = y+(xx1-xp1)/kx; + Double_t yy2 = TMath::Max(y,yy1+(xx2-xx1)/kx); //yy2xp2){ //calculate volume at right border + Double_t xx1 = TMath::Max(x,xp2+dy*kx); + Double_t xx2 = x+dx; + Double_t yy1 = TMath::Min(y+dy,y-(xp2-xx1)/kx); + Double_t yy2 = y-(xp2-xx2)/kx; + z=z0; + z-=z0*(yy2-y)/dy; //constant part rextangle + z-= f1y*(xx2-xx1)*(yy2-y)*(yy2-y)/(2.*dx*dy); + z-=z0*(xx2-xx1)*(yy1-yy2)/(2*dx*dy); //constant part triangle + } + } + + if (z>0.) sumch+=fKNorm*z*dx*dy/fInteg; + + x+=dx; + dx = ndx; + }; //loop over x + fcharge[i]+=sumch; + }//if x2>x1 + y+=dy; + dy =ndy; + }//step over different y + k*=-1.; + }//step over chevron + + }//step over different points on line NPRF +} + +void AliTPCPRF2D::UpdateSigma() +{ + // + //calulate effective sigma X and sigma y of PRF + fMeanX = 0; + fMeanY = 0; + fSigmaX = 0; + fSigmaY = 0; + + Float_t sum =0; + Int_t i; + Float_t x,y; + + for (i=-1; i<=fNYdiv; i++){ + if (fNYdiv == 1) y = fY1; + else + y = fY1+Float_t(i)*(fY2-fY1)/Float_t(fNYdiv-1); + for (x =-fNPRF*fDStep; x0){ + fMeanX/=sum; + fMeanY/=sum; + fSigmaX = TMath::Sqrt(fSigmaX/sum-fMeanX*fMeanX); + fSigmaY = TMath::Sqrt(fSigmaY/sum-fMeanY*fMeanY); + } + else fSigmaX=0; +} + + +void AliTPCPRF2D::Streamer(TBuffer &xRuub) +{ + // Stream an object of class AliTPCPRF2D + + if (xRuub.IsReading()) { + UInt_t xRuus, xRuuc; + Version_t xRuuv = xRuub.ReadVersion(&xRuus, &xRuuc); + AliTPCPRF2D::Class()->ReadBuffer(xRuub, this, xRuuv, xRuus, xRuuc); + //read functions + if (strncmp(fType,"User",3)!=0){ + delete fGRF; + if (strncmp(fType,"Gauss",3)==0) + fGRF = new TF2("FunGauss2D",FunGauss2D,-5.,5.,-5.,5.,4); + if (strncmp(fType,"Cosh",3)==0) + fGRF = new TF2("FunCosh2D",FunCosh2D,-5.,5.,-5.,5.,4); + if (strncmp(fType,"Gati",3)==0) + fGRF = new TF2("FunGati2D",FunGati2D,-5.,5.,-5.,5.,5); + if (fGRF!=0) fGRF->SetParameters(funParam); + } + //calculate conversion coefitient to convert position to virtual wire + fDYtoWire=Float_t(fNYdiv-1)/(fY2-fY1); + fDStepM1=1/fDStep; + } else { + AliTPCPRF2D::Class()->WriteBuffer(xRuub,this); + } +} + + +TH1F * AliTPCPRF2D::GenerDrawXHisto(Float_t x1, Float_t x2,Float_t y) +{ + //gener one dimensional hist of pad response function + // at position y + char s[100]; + const Int_t kn=200; + //sprintf(s,"Pad Response Function"); + snprintf(s,100,"Pad Response Function"); + TH1F * hPRFc = new TH1F("hPRFc",s,kn+1,x1,x2); + Float_t x=x1; + Float_t y1; + + for (Int_t i = 0;iFill(x,y1); + }; + hPRFc->SetXTitle("pad (cm)"); + return hPRFc; +} + +AliH2F * AliTPCPRF2D::GenerDrawHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx, Int_t Ny) +{ + // + //gener two dimensional histogram with PRF + // + char s[100]; + //sprintf(s,"Pad Response Function"); + snprintf(s,100,"Pad Response Function"); + AliH2F * hPRFc = new AliH2F("hPRFc",s,Nx,x1,x2,Ny,y1,y2); + Float_t dx=(x2-x1)/Float_t(Nx); + Float_t dy=(y2-y1)/Float_t(Ny) ; + Float_t x,y,z; + x = x1; + y = y1; + for ( Int_t i = 0;i<=Nx;i++,x+=dx){ + y=y1; + for (Int_t j = 0;j<=Ny;j++,y+=dy){ + z = GetPRF(x,y); + hPRFc->SetBinContent(hPRFc->GetBin(i,j),z); + }; + }; + hPRFc->SetXTitle("pad direction (cm)"); + hPRFc->SetYTitle("pad row direction (cm)"); + hPRFc->SetTitleOffset(1.5,"X"); + hPRFc->SetTitleOffset(1.5,"Y"); + return hPRFc; +} + + +AliH2F * AliTPCPRF2D::GenerDrawDistHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx, Int_t Ny, Float_t thr) +{ + //return histogram with distortion + const Float_t kminth=0.00001; + if (thrthr){ + sum+=z; + sumx+=z*padx; + } + }; + if (sum>kminth) + { + ddx = (x-(sumx/sum)); + } + else ddx=-1; + if (TMath::Abs(ddx)<10) hPRFDist->SetBinContent(hPRFDist->GetBin(i,j),ddx); + } + } + + hPRFDist->SetXTitle("pad direction (cm)"); + hPRFDist->SetYTitle("pad row direction (cm)"); + hPRFDist->SetTitleOffset(1.5,"X"); + hPRFDist->SetTitleOffset(1.5,"Y"); + return hPRFDist; +} + + + + + +void AliTPCPRF2D::DrawX(Float_t x1 ,Float_t x2,Float_t y1,Float_t y2, Int_t N) +{ + // + //draw pad response function at interval at given y position + // + if (N<0) return; + TCanvas * c1 = new TCanvas("PRFX","Pad response function",700,900); + c1->cd(); + + TPaveText * comment = new TPaveText(0.05,0.02,0.95,0.20,"NDC"); + comment->SetTextAlign(12); + comment->SetFillColor(42); + DrawComment(comment); + comment->Draw(); + c1->cd(); + + TPad * pad2 = new TPad("pPRF","",0.05,0.22,0.95,0.95); + pad2->Divide(2,(N+1)/2); + pad2->Draw(); + gStyle->SetOptFit(1); + gStyle->SetOptStat(1); + for (Int_t i=0;icd(i+1); + TH1F * hPRFc =GenerDrawXHisto(x1, x2,y); + //sprintf(ch,"PRF at wire position: %2.3f",y); + snprintf(ch,40,"PRF at wire position: %2.3f",y); + hPRFc->SetTitle(ch); + //sprintf(ch,"PRF %d",i); + snprintf(ch,15,"PRF %d",i); + hPRFc->SetName(ch); + hPRFc->Fit("gaus"); + } + +} + + + +void AliTPCPRF2D::DrawPRF(Float_t x1 ,Float_t x2,Float_t y1, Float_t y2, Int_t Nx, Int_t Ny) +{ + // + // + TCanvas * c1 = new TCanvas("canPRF","Pad response function",700,900); + c1->cd(); + TPad * pad2 = new TPad("pad2PRF","",0.05,0.22,0.95,0.95); + pad2->Draw(); + gStyle->SetOptFit(1); + gStyle->SetOptStat(1); + TH2F * hPRFc = GenerDrawHisto(x1, x2, y1, y2, Nx,Ny); + pad2->cd(); + hPRFc->Draw("surf"); + c1->cd(); + TPaveText * comment = new TPaveText(0.05,0.02,0.95,0.20,"NDC"); + comment->SetTextAlign(12); + comment->SetFillColor(42); + DrawComment(comment); + comment->Draw(); +} + +void AliTPCPRF2D::DrawDist(Float_t x1 ,Float_t x2,Float_t y1, Float_t y2, Int_t Nx, Int_t Ny, Float_t thr) +{ + // + //draw distortion of the COG method - for different threshold parameter + TCanvas * c1 = new TCanvas("padDistortion","COG distortion",700,900); + c1->cd(); + TPad * pad1 = new TPad("dist","",0.05,0.55,0.95,0.95,21); + pad1->Draw(); + TPad * pad2 = new TPad("dist","",0.05,0.22,0.95,0.53,21); + pad2->Draw(); + gStyle->SetOptFit(1); + gStyle->SetOptStat(0); + + AliH2F * hPRFDist = GenerDrawDistHisto(x1, x2, y1, y2, Nx,Ny,thr); + + pad1->cd(); + hPRFDist->Draw("surf"); + Float_t distmax =hPRFDist->GetMaximum(); + Float_t distmin =hPRFDist->GetMinimum(); + gStyle->SetOptStat(1); + + TH1F * dist = hPRFDist->GetAmplitudes(distmin,distmax,distmin-1); + pad2->cd(); + dist->Draw(); + c1->cd(); + TPaveText * comment = new TPaveText(0.05,0.02,0.95,0.20,"NDC"); + comment->SetTextAlign(12); + comment->SetFillColor(42); + DrawComment(comment); + comment->Draw(); +} + +void AliTPCPRF2D::DrawComment(TPaveText *comment) +{ + // + //function to write comment to picture + + char s[100]; + //draw comments to picture + TText * title = comment->AddText("Pad Response Function parameters:"); + title->SetTextSize(0.03); + //sprintf(s,"Height of pad: %2.2f cm",fHeightFull); + snprintf(s,100,"Height of pad: %2.2f cm",fHeightFull); + comment->AddText(s); + //sprintf(s,"Width pad: %2.2f cm",fWidth); + snprintf(s,100,"Width pad: %2.2f cm",fWidth); + comment->AddText(s); + //sprintf(s,"Pad Angle: %2.2f ",fPadAngle); + snprintf(s,100,"Pad Angle: %2.2f ",fPadAngle); + comment->AddText(s); + + if (TMath::Abs(fK)>0.0001){ + //sprintf(s,"Height of one chevron unit h: %2.2f cm",2*fHeightS); + snprintf(s,100,"Height of one chevron unit h: %2.2f cm",2*fHeightS); + comment->AddText(s); + //sprintf(s,"Overlap factor: %2.2f",fK); + snprintf(s,100,"Overlap factor: %2.2f",fK); + comment->AddText(s); + } + + if (strncmp(fType,"User",3)==0){ + //sprintf(s,"Charge distribution - user defined function %s ",fGRF->GetTitle()); + snprintf(s,100,"Charge distribution - user defined function %s ",fGRF->GetTitle()); + comment->AddText(s); + //sprintf(s,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); + snprintf(s,100,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); + comment->AddText(s); + //sprintf(s,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); + snprintf(s,100,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); + comment->AddText(s); + } + if (strncmp(fType,"Gauss",3)==0){ + //sprintf(s,"Gauss charge distribution"); + snprintf(s,100,"Gauss charge distribution"); + comment->AddText(s); + //sprintf(s,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); + snprintf(s,100,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); + comment->AddText(s); + //sprintf(s,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); + snprintf(s,100,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); + comment->AddText(s); + } + if (strncmp(fType,"Gati",3)==0){ + //sprintf(s,"Gati charge distribution"); + snprintf(s,100,"Gati charge distribution"); + comment->AddText(s); + //sprintf(s,"K3X of Gati : %2.2f ",fK3X); + snprintf(s,100,"K3X of Gati : %2.2f ",fK3X); + comment->AddText(s); + //sprintf(s,"K3Y of Gati: %2.2f ",fK3Y); + snprintf(s,100,"K3Y of Gati: %2.2f ",fK3Y); + comment->AddText(s); + //sprintf(s,"Wire to Pad Distance: %2.2f ",fPadDistance); + snprintf(s,100,"Wire to Pad Distance: %2.2f ",fPadDistance); + comment->AddText(s); + } + if (strncmp(fType,"Cosh",3)==0){ + //sprintf(s,"Cosh charge distribution"); + snprintf(s,100,"Cosh charge distribution"); + comment->AddText(s); + //sprintf(s,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); + snprintf(s,100,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); + comment->AddText(s); + //sprintf(s,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); + snprintf(s,100,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); + comment->AddText(s); + } + //sprintf(s,"Normalisation: %2.2f ",fKNorm); + snprintf(s,100,"Normalisation: %2.2f ",fKNorm); + comment->AddText(s); +} + diff --git a/tpc/dirty/AliTPCPRF2D.h b/tpc/dirty/AliTPCPRF2D.h new file mode 100644 index 0000000000000..74396ab10a74e --- /dev/null +++ b/tpc/dirty/AliTPCPRF2D.h @@ -0,0 +1,132 @@ +#ifndef ALITPCPRF2D_H +#define ALITPCPRF2D_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ +////////////////////////////////////////////////////////////////// +// Manager class for AliTPCPRF2D // +// This is to generate the 2-dimensional pad-response function // +////////////////////////////////////////////////////////////////// +#include "TObject.h" + +class TF2; +class TArrayF; +class TH1F; +class AliH2F; +class TPaveText; + +class AliTPCPRF2D : public TObject { +public : + AliTPCPRF2D(); + virtual ~AliTPCPRF2D(); + virtual void Update(); //recalculate tables for charge calculation + Float_t GetGRF(Float_t xin, Float_t yin); + //return generic response function in xin + virtual TF2 * GetGRF(){return fGRF;} + virtual Float_t GetPRF(Float_t xin, Float_t yin); + //return PRF in point xin,yin + + virtual void DrawX(Float_t x1 ,Float_t x2,Float_t y1,Float_t y2=0, Int_t N=1); + virtual void DrawPRF(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20); + //draw two dimensional PRF + + virtual void DrawDist(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20, + Float_t thr=0); + //draw distortion of COG method + //we suppose threshold equal to thr + TH1F * GenerDrawXHisto(Float_t x1, Float_t x2,Float_t y); + AliH2F * GenerDrawHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20); + AliH2F * GenerDrawDistHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20, + Float_t thr=0); + + virtual void SetPad(Float_t width, Float_t height); + //set base chevron parameters + virtual void SetChevron(Float_t hstep, Float_t shifty, Float_t fac); + //set chevron parameters + virtual void SetChParam(Float_t width, Float_t height, + Float_t hstep, Float_t shifty, Float_t fac); + //set all geometrical parameters + virtual void SetY(Float_t y1, Float_t y2, Int_t nYdiv) ; + virtual void SetChargeAngle(Float_t angle){fChargeAngle = angle;} //set angle of pad and charge distribution + //axes + virtual void SetCurrentAngle(Float_t /*angle*/){return;} + virtual void SetPadAngle(Float_t angle){fPadAngle = angle;} //set pad angle + void SetInterpolationType(Int_t interx, Int_t intery) {fInterX=interx; fInterY =intery;} + virtual void SetGauss(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1); + //adjust PRF with GAUSIAN as generic GRF + //if direct = kTRUE then it does't convolute distribution + virtual void SetCosh(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1); + //adjust PRF with 1/Cosh as generic GRF + virtual void SetGati(Float_t K3X, Float_t K3Y, + Float_t padDistance, + Float_t kNorm=1); + void SetParam(TF2 *const GRF,Float_t kNorm, + Float_t sigmaX=0, Float_t sigmaY=0); + void SetNdiv(Int_t Ndiv){fNdiv=Ndiv;} + virtual Float_t GetSigmaX() const {return fSigmaX;} + virtual Float_t GetSigmaY() const {return fSigmaY;} + + +protected: + void Update1(); + virtual void UpdateSigma(); //recalculate sigma of PRF + Float_t GetPRFActiv(Float_t xin); //return PRF in point xin and actual y + Float_t * fcharge; //!field with PRF + Float_t fY1; //position of first "virtual" vire + Float_t fY2; //position of last virtual vire + Int_t fNYdiv; //number of wires + Int_t fNChargeArray; //number of charge interpolation points + Float_t * fChargeArray; //[fNChargeArray]pointer to array of arrays + + void DrawComment(TPaveText * comment); //draw comments to picture + //chevron parameters + Float_t fHeightFull; //height of the full pad + Float_t fHeightS; //height of the one step + Float_t fShiftY; //shift of the step + Float_t fWidth; //width of the pad + Float_t fK; //k factor of the chewron + + Double_t funParam[5];//parameters of used charge function + Int_t fNPRF; //number of interpolations point + Int_t fNdiv; //number of division to calculate integral + Float_t fDStep; //element step for point + Float_t fKNorm; //normalisation factor of the charge integral + Float_t fInteg; //integral of GRF on +- infinity + TF2 * fGRF; //charge distribution function + + Float_t fK3X; //KX parameter (only for Gati parametrization) + Float_t fK3Y; //KY parameter (only for Gati parametrisation) + Float_t fPadDistance; //pad anode distnce (only for Gati parametrisation) + + Float_t fOrigSigmaX; //sigma of original distribution; + Float_t fOrigSigmaY; //sigma of original distribution; + + Float_t fChargeAngle;//'angle' of charge distribution refernce system to pad reference system + Float_t fPadAngle; //'angle' of the pad assymetry + + Float_t fSigmaX; //sigma X of PAD response function + Float_t fSigmaY; //sigma Y of PAD response function + Float_t fMeanX; //mean X value + Float_t fMeanY; //mean Y value + Int_t fInterX; //interpolation in X + Int_t fInterY; //interpolation in Y + //calculated during update + + char fType[5]; //charge type + Float_t fCurrentY; //in reality we calculate PRF only for one fixed y + Float_t fDYtoWire; //! used to make PRF calculation faster in GetPRF + Float_t fDStepM1; //! used in GetPRFActiv to make calculation faster + // + static const Double_t fgkDegtoRad; //numeric constant + static const Double_t fgkSQRT12; //numeric constant + static const Int_t fgkNPRF; //default number of division + +private: + AliTPCPRF2D(const AliTPCPRF2D &prf); + AliTPCPRF2D &operator = (const AliTPCPRF2D &/*prf*/) {return *this;} + + ClassDef(AliTPCPRF2D,1) +}; + +#endif /* ALITPCPRF2D_H */ diff --git a/tpc/dirty/AliTPCParam.cxx b/tpc/dirty/AliTPCParam.cxx new file mode 100644 index 0000000000000..71df0b78524f4 --- /dev/null +++ b/tpc/dirty/AliTPCParam.cxx @@ -0,0 +1,1047 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +/* $Id$ */ + +/////////////////////////////////////////////////////////////////////// +// Manager and of geomety classes for set: TPC // +// // +// !sectors are numbered from 0 // +// !pad rows are numbered from 0 // +// +// 12.6. changed z relative +// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // +// // +/////////////////////////////////////////////////////////////////////// + +// + +#include + +#include +#include +#include +//#include "AliAlignObj.h" +//#include "AliAlignObjParams.h" +#include "AliLog.h" +#include "TGraphErrors.h" +//#include "AliTPCcalibDB.h" +#include "AliTPCROC.h" +#include "AliMathBase.h" + +TObjArray *AliTPCParam::fBBParam = 0; + +ClassImp(AliTPCParam) + + +//___________________________________________ +AliTPCParam::AliTPCParam() + :AliDetectorParam(), + fbStatus(kFALSE), + fInnerRadiusLow(0.), + fInnerRadiusUp(0.), + fOuterRadiusUp(0.), + fOuterRadiusLow(0.), + fInnerAngle(0.), + fInnerAngleShift(0.), + fOuterAngle(0.), + fOuterAngleShift(0.), + fInnerFrameSpace(0.), + fOuterFrameSpace(0.), + fInnerWireMount(0.), + fOuterWireMount(0.), + fNInnerSector(0), + fNOuterSector(0), + fNSector(0), + fZLength(0), + fRotAngle(), + fGeometryType(0), + fTrackingMatrix(0), + fClusterMatrix(0), + fGlobalMatrix(0), + fNInnerWiresPerPad(0), + fInnerWWPitch(0), + fInnerDummyWire(0), + fInnerOffWire(0.), + fRInnerFirstWire(0.), + fRInnerLastWire(0.), + fLastWireUp1(0.), + fNOuter1WiresPerPad(0), + fNOuter2WiresPerPad(0), + fOuterWWPitch(0.), + fOuterDummyWire(0), + fOuterOffWire(0.), + fROuterFirstWire(0.), + fROuterLastWire(0.), + fInnerPadPitchLength(0.), + fInnerPadPitchWidth(0.), + fInnerPadLength(0.), + fInnerPadWidth(0.), + fOuter1PadPitchLength(0.), + fOuter2PadPitchLength(0.), + fOuterPadPitchWidth(0.), + fOuter1PadLength(0.), + fOuter2PadLength(0.), + fOuterPadWidth(0.), + fBMWPCReadout(kFALSE), + fNCrossRows(0), + fNRowLow(0), + fNRowUp1(0), + fNRowUp2(0), + fNRowUp(0), + fNtRows(0), + fDiffT(0.), + fDiffL(0.), + fGasGain(0.), + fDriftV(0.), + fOmegaTau(0.), + fAttCoef(0.), + fOxyCont(0.), + fFpot(0.), + fNprim(0.), + fNtot(0.), + fWmean(0.), + fExp(0.), + fEend(0.), + fBetheBloch(0x0), + fGainSlopesHV(0), // graph with the gain slope as function of HV - per chamber + fGainSlopesPT(0), // graph with the gain slope as function of P/T - per chamber + fPadCoupling(0.), + fZeroSup(0), + fNoise(0.), + fChipGain(0.), + fChipNorm(0.), + fTSample(0.), + fZWidth(0.), + fTSigma(0.), + fMaxTBin(0), + fADCSat(0), + fADCDynRange(0.), + fTotalNormFac(0.), + fNoiseNormFac(0.), + fNominalVoltage(), + fMaxVoltageDeviation(40.), + fMaxDipVoltage(2.), + fMaxHVfractionBad(.4), + fVoltageDipScanPeriod(1.), + fNResponseMax(0), + fResponseThreshold(0.), + fCurrentMax(0), + fResponseBin(0), + fResponseWeight(0), + fGateDelay(0.), + fL1Delay(0.), + fNTBinsBeforeL1(0), + fNTBinsL1(0.) +{ + // + //constructor sets the default parameters + // + + SetTitle("75x40_100x60_150x60"); + SetDefault(); + if (!fBBParam) fBBParam= new TObjArray(1000); +} + +AliTPCParam::~AliTPCParam() +{ + // + //destructor deletes some dynamicaly alocated variables + // + + if (fResponseBin!=0) delete [] fResponseBin; + if (fResponseWeight!=0) delete [] fResponseWeight; + if (fRotAngle !=0) delete [] fRotAngle; + + CleanGeoMatrices(); + +} + +Int_t AliTPCParam::Transform0to1(Float_t *xyz, Int_t * index) const +{ + // + // calculates sector number (index[1], undefined on input) + // xyz intact + // + + Float_t angle,x1; + Int_t sector; + Float_t r = TMath::Sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]); + if ((xyz[0]==0)&&(xyz[1]==0)) angle = 0.; + else + { + angle =TMath::ASin(xyz[1]/r); + if (xyz[0]<0) angle=TMath::Pi()-angle; + if ( (xyz[0]>0) && (xyz[1]<0) ) angle=2*TMath::Pi()+angle; + } + + sector=Int_t(TMath::Nint((angle-fInnerAngleShift)/fInnerAngle)); + + Float_t cos,sin; + AdjustCosSin(sector,cos,sin); + x1=xyz[0]*cos + xyz[1]*sin; + + if (x1>fOuterRadiusLow) + { + sector=Int_t(TMath::Nint((angle-fOuterAngleShift)/fOuterAngle))+fNInnerSector; + if (xyz[2]<0) sector+=(fNOuterSector>>1); + } + else + if (xyz[2]<0) sector+=(fNInnerSector>>1); + if (sector<0 || sector>=fNSector) AliError(Form("Wrong sector %d",sector)); + index[1]=sector; // calculated sector number + index[0]=1; // indicates system after transformation + return sector; +} + +Bool_t AliTPCParam::Transform(Float_t */*xyz*/, Int_t *index, Int_t* /*oindex*/) +{ + //transformation from input coodination system to output coordination system + switch (index[0]){ + case 0: + break; + }; + + return kFALSE; + +} + +Int_t AliTPCParam::GetPadRow(Float_t *xyz, Int_t *index) const +{ + // + //calculates pad row of point xyz - transformation to system 8 (digit system) + // + Int_t system = index[0]; + if (0==system) { + Transform0to1(xyz,index); + system=1; + } + if (1==system) { + Transform1to2(xyz,index); + system=2; + } + + if (fGeometryType==0){ //straight row + if (2==system) { + Transform2to3(xyz,index); + system=3; + } + if (3==system) { + Transform3to4(xyz,index); + system=4; + } + if (4==system) { + Transform4to8(xyz,index); + system=8; + } + if (8==system) { + index[0]=8; + return index[2]; + } + } + + if (fGeometryType==1){ //cylindrical geometry + if (2==system) { + Transform2to5(xyz,index); + system=5; + } + if (5==system) { + Transform2to3(xyz,index); + system=6; + } + if (6==system) { + Transform3to4(xyz,index); + system=7; + } + if (8==system) { + index[0]=8; + return index[2]; + } + } + index[0]=system; + return -1; //if no reasonable system +} + +void AliTPCParam::SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle, + Float_t outershift) +{ + // + // set opening angles + static const Float_t kDegtoRad = 0.01745329251994; + fInnerAngle = innerangle; //opening angle of Inner sector + fInnerAngleShift = innershift; //shift of first inner sector center to the 0 + fOuterAngle = outerangle; //opening angle of outer sector + fOuterAngleShift = outershift; //shift of first sector center to the 0 + fInnerAngle *=kDegtoRad; + fInnerAngleShift *=kDegtoRad; + fOuterAngle *=kDegtoRad; + fOuterAngleShift *=kDegtoRad; +} + +Float_t AliTPCParam::GetInnerAngle() const +{ + //return angle + return fInnerAngle; + +} + +Float_t AliTPCParam::GetInnerAngleShift() const +{ + //return angle + return fInnerAngleShift; +} +Float_t AliTPCParam::GetOuterAngle() const +{ + //return angle + return fOuterAngle; +} +Float_t AliTPCParam::GetOuterAngleShift() const +{ + //return angle + + return fOuterAngleShift; +} + + +Int_t AliTPCParam::GetIndex(Int_t sector, Int_t row) const +{ + // + //give index of the given sector and pad row + //no control if the sectors and rows are reasonable !!! + // + if (sectorfNtRows)) return kFALSE; + Int_t outindex = fNInnerSector*fNRowLow; + if (index(kResponseThreshold)); + //L1 data + SetGateDelay(kGateDelay); + SetL1Delay(kL1Delay); + SetNTBinsBeforeL1(kNTBinsBeforeL1); + SetNominalGainSlopes(); +} + + +Bool_t AliTPCParam::Update() +{ + // + // update some calculated parameter which must be updated after changing "base" + // parameters + // for example we can change size of pads and according this recalculate number + // of pad rows, number of of pads in given row .... + // + const Float_t kQel = 1.602e-19; // elementary charge + fbStatus = kFALSE; + + Int_t i,j; //loop variables because HP + //-----------------Sector section------------------------------------------ + //calclulate number of sectors + fNInnerSector = Int_t(4*TMath::Pi()/fInnerAngle+0.2); + // number of inner sectors - factor 0.2 to don't be influnced by inprecision + if (fNInnerSector%2) return kFALSE; + fNOuterSector = Int_t(4*TMath::Pi()/fOuterAngle+0.2); + if (fNOuterSector%2) return kFALSE; + fNSector = fNInnerSector+fNOuterSector; + + if (fRotAngle!=0) delete [] fRotAngle; + fRotAngle = new Float_t[4*fNSector]; + //calculate sin and cosine of rotations angle + //sectors angles numbering from 0 + + j=fNInnerSector*2; + Float_t angle = fInnerAngleShift; + for (i=0; jGetAlignableEntryByUID(volid); + if(!pne) + { + AliError(Form("Alignable entry for volume ID %d not in geometry. Exiting!",volid)); + return kFALSE; + } + const char *path = pne->GetTitle(); + if (!gGeoManager->cd(path)) return kFALSE; + TGeoHMatrix *m = gGeoManager->GetCurrentMatrix(); + // Since GEANT4 does not allow reflections, in this case the reflection + // component if the matrix is embedded by TGeo inside TGeoScaledShape + if (gGeoManager->GetCurrentVolume()->GetShape()->IsReflected()) + m->ReflectZ(kFALSE, kTRUE); + // + TGeoRotation mchange; + mchange.RotateY(90); mchange.RotateX(90); + Float_t ROCcenter[3]; + GetChamberCenter(isec,ROCcenter); + // + // Convert to global coordinate system + // + fGlobalMatrix[isec] = new TGeoHMatrix(*m); + fGlobalMatrix[isec]->Multiply(&(mchange.Inverse())); + TGeoTranslation center("center",-ROCcenter[0],-ROCcenter[1],-ROCcenter[2]); + fGlobalMatrix[isec]->Multiply(¢er); + // + // cluster correction matrix + // + fClusterMatrix[isec] = new TGeoHMatrix; + Double_t sectorAngle = 20.*(isec%18)+10; + TGeoHMatrix rotMatrix; + rotMatrix.RotateZ(sectorAngle); + if (GetGlobalMatrix(isec)->GetTranslation()[2]>0){ + // + // mirrored system + // + TGeoRotation mirrorZ; + mirrorZ.SetAngles(90,0,90,90,180,0); + fClusterMatrix[isec]->Multiply(&mirrorZ); + } + TGeoTranslation trans(0,0,GetZLength(isec)); + fClusterMatrix[isec]->MultiplyLeft(&trans); + fClusterMatrix[isec]->MultiplyLeft((GetGlobalMatrix(isec))); + fClusterMatrix[isec]->MultiplyLeft(&(rotMatrix.Inverse())); + } +*/ + printf("ERROR\nERROR\nERROR\nERROR\nAliTPCParam::ReadGeoMatrices not implemented\n"); + return kTRUE; +} + +TGeoHMatrix * AliTPCParam::Tracking2LocalMatrix(const TGeoHMatrix * geoMatrix, Int_t sector) const{ + // + // make local to tracking matrix + // + Double_t sectorAngle = 20.*(sector%18)+10; + TGeoHMatrix *newMatrix = new TGeoHMatrix(); + newMatrix->RotateZ(sectorAngle); + newMatrix->MultiplyLeft(&(geoMatrix->Inverse())); + return newMatrix; +} + + + + +Bool_t AliTPCParam::GetStatus() const +{ + //get information about object consistency + return fbStatus; +} + +Int_t AliTPCParam::GetNRowLow() const +{ + //get the number of pad rows in low sector + return fNRowLow; +} +Int_t AliTPCParam::GetNRowUp() const +{ + //get the number of pad rows in up sector + return fNRowUp; +} +Int_t AliTPCParam::GetNRowUp1() const +{ + //get the number of pad rows in up1 sector + return fNRowUp1; +} +Int_t AliTPCParam::GetNRowUp2() const +{ + //get the number of pad rows in up2 sector + return fNRowUp2; +} +Float_t AliTPCParam::GetPadRowRadiiLow(Int_t irow) const +{ + //get the pad row (irow) radii + if ( !(irow<0) && (irow 4 segments in [0,3], 7 segments OROC[4,10] + // + // To be speed-up using caching lookup table + // + Int_t wireIndex = -1; + // check if the given set of sector and row is OK + if ( (sector<0 || sector>=72) || (row<0 || row>95) || (sector<36 && row>64) ){ + AliError("No matching anode wire segment for this set of sector-row \n"); + return wireIndex; + } + // find the wire index for given sector-row + if ( sector<36 ){ // IROC anode wire segments + if (row<16) wireIndex=0; + else if (row>=16 && row<32) wireIndex=1; + else if (row>=32 && row<48) wireIndex=2; + else wireIndex=3; + } else { // OROC anode wire segments + if (row<16) wireIndex=4; + else if ( row>=16 && row<32) wireIndex=5; + else if ( row>=32 && row<48) wireIndex=6; + else if ( row>=48 && row<64) wireIndex=7; + else if ( row>=64 && row<75) wireIndex=8; + else if ( row>=75 && row<85) wireIndex=9; + else wireIndex=10; + } + return wireIndex; +} + +Int_t AliTPCParam::GetNPadsPerSegment(Int_t wireSegmentID) const +{ + // + // Get the number of pads in a given anode wire segment + // + // check if the given segment index is OK + // To be done (if needed) - cache the lookup table + // + if ( wireSegmentID<0 || wireSegmentID>10 ){ + AliError("Wrong anode wire segment index. it should be [0,10] \n"); + return -1; + } + // get sector type from wireSegmentID + Int_t sector = (wireSegmentID<4) ? 0 : 36; // ROC [0,35] --> IROC, ROC [36,71] --> OROC + // get the upper and lower row number for the given wireSegmentID + Int_t segRowDown = 0; + Int_t segRowUp = 0; + + if ( wireSegmentID == 0 || wireSegmentID == 4 ) { + segRowDown = 0; + segRowUp = 16; + } else if ( wireSegmentID == 1 || wireSegmentID == 5 ) { + segRowDown = 16; + segRowUp = 32; + } else if ( wireSegmentID == 2 || wireSegmentID == 6 ) { + segRowDown = 32; + segRowUp = 48; + } else if ( wireSegmentID == 3 || wireSegmentID == 7 ) { + segRowDown = 48; + segRowUp = 63; + } else if ( wireSegmentID == 8 ) { + segRowDown = 64; + segRowUp = 75; + } else if ( wireSegmentID == 9 ) { + segRowDown = 75; + segRowUp = 85; + } else { + segRowDown = 85; + segRowUp = 95; + } + // count the number of pads on the given segment + AliTPCROC *r=AliTPCROC::Instance(); + Int_t nPads=0; + for (Int_t irow = segRowDown; irow < segRowUp ; irow++){ + nPads += r->GetNPads(sector,irow); + } + return nPads; +} + +Float_t AliTPCParam::GetYInner(Int_t irow) const +{ + return fYInner[irow]; +} + + +Float_t AliTPCParam::GetYOuter(Int_t irow) const +{ + return fYOuter[irow]; +} + +Int_t AliTPCParam::GetSectorIndex(Float_t angle, Int_t row, Float_t z) const +{ + // returns the sector index + // takes as input the angle, index of the pad row and z position + if(row<0) return -1; + + if (angle > 2.*TMath::Pi()) angle -= 2.*TMath::Pi(); + if (angle < 0. ) angle += 2.*TMath::Pi(); + + Int_t sector; + if(row>1); + } + else { + sector=Int_t(TMath::Nint((angle-fOuterAngleShift)/fOuterAngle))+fNInnerSector; + if (z<0) sector += (fNOuterSector>>1); + } + + return sector; +} + +Float_t AliTPCParam::GetChamberCenter(Int_t isec, Float_t * center) const +{ + // returns the default radial position + // of the readout chambers + + const Float_t kROCcenterIn = 110.2; + const Float_t kROCcenterOut = 188.45; + + if (isecSetName("GainSlopesHV"); + fGainSlopesPT->SetName("GainSlopesPT"); +} + + +TVectorD * AliTPCParam::GetBetheBlochParamNa49(){ + // + // Parameters of the BB for the Aleph parametrization AliMathBase::BetheBlochAleph + // Na49 parameters were used as first set of parameters for ALICE simulation + // (see TPC TDR for details) + TVectorD v(5); + v(0)=0.76176e-1; + v(1)=10.632; + v(2)=0.13279e-4; + v(3)=1.8631; + v(4)=1.9479; + return new TVectorD(v); +} + +TVectorD * AliTPCParam::GetBetheBlochParamAlice(){ + // + // + // Parameters of the BB for the Aleph parametrization AliMathBase::BetheBlochAleph + // Na49 parameters were used as first set of parameters for ALICE simulation + // Second set was obtained from ALICE 2009-2013 data taking + // (see TPC TDR for details) + // + TVectorD v(5); + v[0] = 0.0851148; + v[1] = 9.25771; + v[2] = 2.6558e-05; + v[3] = 2.32742; + v[4] = 1.83039; + return new TVectorD(v); +} + + +Double_t AliTPCParam::BetheBlochAleph(Double_t bg, Int_t type){ + // + // GetBetheBloch retur values for the parametrs regieter at poition type + // Used for visualization and comparison purposes + TVectorD * paramBB =0; + //if (type==0) { + //AliTPCParam* param = AliTPCcalibDB::Instance()->GetParameters(); + //if (param) paramBB=param->GetBetheBlochParameters(); + //} + //if (type>0){ + paramBB = (TVectorD*)fBBParam->At(type); + //} + if (!paramBB) return 0; + // + return AliMathBase::BetheBlochAleph(bg,(*paramBB)(0),(*paramBB)(1),(*paramBB)(2),(*paramBB)(3),(*paramBB)(4)); +} + + +void AliTPCParam::RegisterBBParam(TVectorD* param, Int_t position){ + // + // + // + fBBParam->AddAt(param,position); +} diff --git a/tpc/dirty/AliTPCParam.h b/tpc/dirty/AliTPCParam.h new file mode 100644 index 0000000000000..61f450879b57d --- /dev/null +++ b/tpc/dirty/AliTPCParam.h @@ -0,0 +1,834 @@ +#ifndef ALITPCPARAM_H +#define ALITPCPARAM_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ + +//////////////////////////////////////////////// +// Manager class for TPC parameters // +//////////////////////////////////////////////// + +#include "AliDetectorParam.h" +#include "TMath.h" + +#include +#include +class TString; +class TGraphErrors; + +class AliTPCParam : public AliDetectorParam { + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + //ALITPCParam object to be possible change + //geometry and some other parameters of TPC + //used by AliTPC and AliTPCSector + +public: + AliTPCParam(); + virtual ~AliTPCParam(); + TGeoHMatrix * Tracking2LocalMatrix(const TGeoHMatrix * geoMatrix, Int_t sector) const; + virtual Bool_t Transform(Float_t *xyz, Int_t *index, Int_t* oindex); + //transformation from input coodination system to output coordination system + Int_t Transform0to1(Float_t *xyz, Int_t *index) const; + //trasforamtion from global to global - adjust index[0] sector + //return value is equal to sector corresponding to global position + void Transform1to2Ideal(Float_t *xyz, Int_t *index) const; + //transformation to rotated coordinata - ideal frame + void Transform1to2(Float_t *xyz, Int_t *index) const; + //transformation to rotated coordinata + void Transform2to1(Float_t *xyz, Int_t *index) const; + //transformation from rotated coordinata to global coordinata + void Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const; + //transform rotated coordinata of one sector to rotated + //coordinata relative to another sector + Float_t Transform2to2NearestWire(Float_t *xyz, Int_t *index) const; + //round x position to nearest wire + Int_t Transform2to3(Float_t *xyz, Int_t *index) const; + //calulate coresponding index[2] -pad row for straight rows + //does not change xyz[] + //return pad - row + void Transform3to4(Float_t *xyz, Int_t *index) const; + //valid only for straight rows straight rows + //calculate xyz[0] position relative to given index + //return pad - row + void Transform4to3(Float_t *xyz, Int_t *index) const; + //valid only for straight rows straight rows + //transform xyz[0] position relative to given index + void Transform2to5( Float_t *xyz, Int_t *index) const; + //transform [x,y,z] to [r,rphi,z] + void Transform5to2(Float_t *xyz, Int_t *index) const; + //transform [r,rphi,z] coordinata to [x,y,z] + void Transform4to8(Float_t *xyz, Int_t *index) const; + //transform xyz coordinata to 'digit' coordinata + void Transform8to4(Float_t *xyz, Int_t *index) const; + //transform 'digit' coordinata to xyz coordinata + void Transform6to8(Float_t *xyz, Int_t *index) const; + //transform dr,f coordinata to 'digit' coordinata + void Transform8to6(Float_t *xyz, Int_t *index) const; + //transform 'digit' coordinata to dr,f coordinata + + virtual Int_t Transform2toPadRow(Float_t */*xyz*/, Int_t */*index*/) const{return 0;} + //transform rotated to + + virtual Int_t GetPadRow(Float_t *xyz, Int_t *index) const ; + //return pad row of point xyz - xyz is given in coordinate system -(given by index) + //output system is 3 for straight row and 7 for cylindrical row + virtual void XYZtoCRXYZ(Float_t */*xyz*/, + Int_t &/*sector*/, Int_t &/*padrow*/, Int_t /*option*/) const {;} + //transform global position to the position relative to the sector padrow + //if option=0 X calculate absolute calculate sector + //if option=1 X absolute use input sector + //if option=2 X relative to pad row calculate sector + //if option=3 X relative use input sector + + virtual void CRXYZtoXYZ(Float_t */*xyz*/, + const Int_t &/*sector*/, const Int_t & /*padrow*/, Int_t /*option*/) const {;} + //transform relative position to the gloabal position + + virtual void CRTimePadtoYZ(Float_t &/*y*/, Float_t &/*z*/, + const Float_t &/*time*/, const Float_t &/*pad*/, + Int_t /*sector*/, Int_t /*padrow*/ ){;} + //transform position in digit units (time slices and pads) to "normal" + //units (cm) + virtual void CRYZtoTimePad(const Float_t &/*y*/, const Float_t &/*z*/, + Float_t &/*time*/, Float_t &/*pad*/, + Int_t /*sector*/, Int_t /*padrow*/){;} + //transform position in cm to position in digit unit + virtual Int_t CalcResponse(Float_t* /*x*/, Int_t * /*index*/, Int_t /*row*/){return 0;} + //calculate bin response as function of the input position -x and the weight + //if row -pad row is equal -1 calculate response for each pad row + //otherwise it calculate only in given pad row + //return number of valid response bin + virtual void SetDefault(); //set defaut TPCparam + virtual Bool_t Update(); //recalculate and check geometric parameters + virtual Bool_t ReadGeoMatrices(); //read geo matrixes + Bool_t GetStatus() const; //get information about object consistency + Int_t GetIndex(Int_t sector, Int_t row) const; //give index of the given sector and pad row + Int_t GetNSegmentsTotal() const {return fNtRows;} + Double_t GetLowMaxY(Int_t irow) const {return irow*0.;} + Double_t GetUpMaxY(Int_t irow) const {return irow*0;} + //additional geometrical function - for Belikov + + Bool_t AdjustSectorRow(Int_t index, Int_t & sector, Int_t &row) const; //return sector and padrow + //for given index + + void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const; + //set cosinus and sinus of rotation angles for sector isec + Float_t GetAngle(Int_t isec) const; + // void GetChamberPos(Int_t isec, Float_t* xyz) const; + // void GetChamberRot(Int_t isec, Float_t* angles) const; + // + //set sector parameters + // + void SetInnerRadiusLow(Float_t InnerRadiusLow ) { fInnerRadiusLow=InnerRadiusLow;} + void SetOuterRadiusLow(Float_t OuterRadiusLow ) { fOuterRadiusLow=OuterRadiusLow;} + void SetInnerRadiusUp(Float_t InnerRadiusUp) { fInnerRadiusUp= InnerRadiusUp;} + void SetOuterRadiusUp(Float_t OuterRadiusUp) { fOuterRadiusUp= OuterRadiusUp;} + void SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle, + Float_t outershift); + void SetInnerFrameSpace(Float_t frspace) {fInnerFrameSpace = frspace;} + void SetOuterFrameSpace(Float_t frspace) {fOuterFrameSpace = frspace;} + void SetInnerWireMount(Float_t fmount) {fInnerWireMount = fmount;} + void SetOuterWireMount(Float_t fmount) {fOuterWireMount = fmount;} + void SetZLength(Float_t zlength) {fZLength = zlength;} + void SetGeometryType(Int_t type) {fGeometryType = type;} + // + // pad rows geometry + // + void SetRowNLow( Int_t NRowLow){fNRowLow = NRowLow;} + void SetRowNUp1 (Int_t NRowUp1){fNRowUp1 = NRowUp1 ;} //upper sec short pads + void SetRowNUp2 (Int_t NRowUp2){fNRowUp2 = NRowUp2 ;} //upper sec long pads + void SetRowNUp (Int_t NRowUp){fNRowUp = NRowUp ;} + // + //set wire parameters + // + void SetInnerNWires(Int_t nWires){ fNInnerWiresPerPad=nWires;} + void SetInnerDummyWire(Int_t dummy) {fInnerDummyWire = dummy;} + void SetInnerOffWire(Float_t offset) {fInnerOffWire =offset;} + void SetOuter1NWires(Int_t nWires){ fNOuter1WiresPerPad=nWires;} + void SetOuter2NWire(Int_t nWires){ fNOuter2WiresPerPad=nWires;} + void SetOuterDummyWire(Int_t dummy) {fOuterDummyWire = dummy;} + void SetOuterOffWire(Float_t offset) {fOuterOffWire =offset;} + void SetInnerWWPitch( Float_t wwPitch) {fInnerWWPitch = wwPitch;} + void SetRInnerFirstWire(Float_t firstWire){fRInnerFirstWire = firstWire;} + void SetRInnerLastWire(Float_t lastWire){fRInnerLastWire = lastWire;} + void SetOuterWWPitch(Float_t wwPitch){fOuterWWPitch = wwPitch;} + void SetLastWireUp1(Float_t wireUp1){fLastWireUp1 = wireUp1;} + void SetROuterFirstWire(Float_t firstWire){fROuterFirstWire = firstWire;} + void SetROuterLastWire(Float_t lastWire){fROuterLastWire = lastWire;} + // + //set pad parameter + // + void SetInnerPadPitchLength(Float_t PadPitchLength){ fInnerPadPitchLength=PadPitchLength;} + void SetInnerPadPitchWidth(Float_t PadPitchWidth){ fInnerPadPitchWidth = PadPitchWidth;} + void SetInnerPadLength(Float_t PadLength){ fInnerPadLength=PadLength;} + void SetInnerPadWidth(Float_t PadWidth) { fInnerPadWidth=PadWidth;} + void SetOuter1PadPitchLength(Float_t PadPitchLength){ fOuter1PadPitchLength=PadPitchLength;} + void SetOuter2PadPitchLength(Float_t PadPitchLength){ fOuter2PadPitchLength=PadPitchLength;} + void SetOuterPadPitchWidth(Float_t PadPitchWidth){ fOuterPadPitchWidth = PadPitchWidth;} + void SetOuter1PadLength(Float_t PadLength){ fOuter1PadLength=PadLength;} + void SetOuter2PadLength(Float_t PadLength){ fOuter2PadLength=PadLength;} + void SetOuterPadWidth(Float_t PadWidth) { fOuterPadWidth=PadWidth;} + void SetMWPCReadout(Bool_t type) {fBMWPCReadout = type;} + void SetNCrossRows(Int_t rows){fNCrossRows = rows;} + // + //set gas paremeters + // + void SetDiffT(Float_t DiffT){ fDiffT= DiffT;} + void SetDiffL(Float_t DiffL){ fDiffL=DiffL;} + void SetGasGain(Float_t GasGain){ fGasGain=GasGain;} + void SetDriftV(Float_t DriftV){ fDriftV= DriftV;} + void SetOmegaTau(Float_t OmegaTau){ fOmegaTau=OmegaTau;} + void SetAttCoef(Float_t AttCoef){ fAttCoef=AttCoef;} + void SetOxyCont(Float_t OxyCont){ fOxyCont=OxyCont;} + void SetGainSlopesHV(TGraphErrors * gainSlopesHV){ fGainSlopesHV=gainSlopesHV;} + void SetGainSlopesPT(TGraphErrors * gainSlopesPT){ fGainSlopesPT=gainSlopesPT;} + void SetNominalGainSlopes(); + void SetComposition(Float_t c1, Float_t c2, Float_t c3, Float_t c4, Float_t c5, Float_t c6){fComposition[0]=c1; + fComposition[1]=c2; + fComposition[2]=c3; + fComposition[3]=c4; + fComposition[4]=c5; + fComposition[5]=c6;} + void SetFpot(Float_t fpot){fFpot=fpot;} + void SetNprim(Float_t prim){fNprim=prim;} + void SetNtot(Float_t ntot){fNtot=ntot;} + void SetWmean(Float_t wmean){fWmean=wmean;} + void SetExp(Float_t exp){fExp=exp;} + void SetEend(Float_t end){fEend=end;} + void SetBetheBloch(TVectorD *v){ + if (fBetheBloch) delete fBetheBloch; + fBetheBloch=0; + if (v) fBetheBloch=new TVectorD(*v); + } + static TVectorD * GetBetheBlochParamNa49(); + static TVectorD * GetBetheBlochParamAlice(); + static void RegisterBBParam(TVectorD* param, Int_t position); + // + //set electronivc parameters + // + void SetPadCoupling(Float_t PadCoupling){ fPadCoupling=PadCoupling;} + void SetZeroSup(Int_t ZeroSup) { fZeroSup=ZeroSup;} + void SetNoise(Float_t Noise ) { fNoise= Noise;} + void SetChipGain(Float_t ChipGain){ fChipGain= ChipGain;} + void SetChipNorm(Float_t ChipNorm){ fChipNorm= ChipNorm;} + void SetTSample(Float_t TSample) { fTSample=TSample;} + void SetTFWHM(Float_t fwhm) { fTSigma=fwhm/2.35;} + void SetMaxTBin(Int_t maxtbin) { fMaxTBin = maxtbin;} + void SetADCSat(Int_t adcsat) { fADCSat = adcsat;} + void SetADCDynRange(Float_t adcdynrange) {fADCDynRange = adcdynrange;} + // + // High voltage parameters + // + void SetNominalVoltage(Float_t v, UInt_t i) {if (i<72) fNominalVoltage[i]=v;} + void SetMaxVoltageDeviation(Float_t voltage) { fMaxVoltageDeviation=voltage; } + void SetMaxDipVoltage(Float_t voltage) { fMaxDipVoltage=voltage; } + void SetMaxFractionHVbad(Float_t frac ) { fMaxHVfractionBad=frac; } + void SetVoltageDipScanPeriod(Float_t period) { fVoltageDipScanPeriod=period; } + // + //set response parameters + // + void SetNResponseMax(Int_t max) { fNResponseMax = max;} + void SetResponseThreshold(Int_t threshold) {fResponseThreshold = threshold;} + //set L1 parameters + void SetGateDelay(Float_t delay) {fGateDelay = delay;} + void SetL1Delay(Float_t delay) {fL1Delay = delay;} + void SetNTBinsBeforeL1(UShort_t nbins) {fNTBinsBeforeL1 = nbins;} + // + //get sector parameters + // + Float_t GetInnerRadiusLow() const {return fInnerRadiusLow;} + Float_t GetInnerRadiusUp() const {return fInnerRadiusUp;} + Float_t GetOuterRadiusLow() const {return fOuterRadiusLow;} + Float_t GetOuterRadiusUp() const {return fOuterRadiusUp;} + Float_t GetInnerFrameSpace() const {return fInnerFrameSpace;} + Float_t GetOuterFrameSpace() const {return fOuterFrameSpace;} + Float_t GetInnerWireMount() const {return fInnerWireMount;} + Float_t GetOuterWireMount() const {return fOuterWireMount;} + Float_t GetInnerAngle() const ; + Float_t GetInnerAngleShift() const ; + Float_t GetOuterAngle() const ; + Float_t GetOuterAngleShift() const ; + Int_t GetNInnerSector() const {return fNInnerSector;} + Int_t GetNOuterSector() const {return fNOuterSector;} + Int_t GetNSector() const {return fNSector;} + Float_t GetZLength(Int_t sector=0) const; + Int_t GetGeometryType() const {return fGeometryType;} + + // + //get wires parameter + // + Int_t GetInnerNWires() const {return fNInnerWiresPerPad;} + Float_t GetInnerWWPitch() const {return fInnerWWPitch;} + Int_t GetInnerDummyWire() const {return fInnerDummyWire;} + Float_t GetInnerOffWire() const {return fInnerOffWire;} + Float_t GetRInnerFirstWire() const {return fRInnerFirstWire;} + Float_t GetRInnerLastWire() const {return fRInnerLastWire;} + Int_t GetOuter1NWires() const {return fNOuter1WiresPerPad;} + Int_t GetOuter2NWires() const {return fNOuter2WiresPerPad;} + Float_t GetOuterWWPitch() const {return fOuterWWPitch;} + Int_t GetOuterDummyWire() const {return fOuterDummyWire;} + Float_t GetOuterOffWire() const {return fOuterOffWire;} + Float_t GetLastWireUp1() const {return fLastWireUp1;} + Float_t GetROuterFirstWire() const {return fROuterFirstWire;} + Float_t GetROuterLastWire() const {return fROuterLastWire;} + Float_t GetWWPitch(Int_t isector = 0) const { + return ( (isector < fNInnerSector) ? fInnerWWPitch :fOuterWWPitch);} + // + //get pad parameters + // + Float_t GetInnerPadPitchLength() const {return fInnerPadPitchLength;} + Float_t GetInnerPadPitchWidth() const {return fInnerPadPitchWidth;} + Float_t GetInnerPadLength() const {return fInnerPadLength;} + Float_t GetInnerPadWidth() const {return fInnerPadWidth;} + Float_t GetOuter1PadPitchLength() const {return fOuter1PadPitchLength;} + Float_t GetOuter2PadPitchLength() const {return fOuter2PadPitchLength;} + Float_t GetOuterPadPitchWidth() const {return fOuterPadPitchWidth;} + Float_t GetOuter1PadLength() const {return fOuter1PadLength;} + Float_t GetOuter2PadLength() const {return fOuter2PadLength;} + Float_t GetOuterPadWidth() const {return fOuterPadWidth;} + Bool_t GetMWPCReadout() const {return fBMWPCReadout;} + Int_t GetNCrossRows() const {return fNCrossRows;} + Float_t GetPadPitchWidth(Int_t isector = 0) const { + return ( (isector < fNInnerSector) ? fInnerPadPitchWidth :fOuterPadPitchWidth);} + Float_t GetPadPitchLength(Int_t isector = 0, Int_t padrow=0) const + { if (isector < fNInnerSector) return fInnerPadPitchLength; + else return ((padrow [0,4], OROC[0,7] + Int_t GetNPadsPerSegment(Int_t segmentID) const; // get number of pads for a given Anode wire segment + + Float_t GetYInner(Int_t irow) const; // wire length in low sec row + Float_t GetYOuter(Int_t irow) const; // wire length in up sec row + Int_t GetSectorIndex(Float_t angle, Int_t row, Float_t z) const; // get sector index + Float_t GetChamberCenter(Int_t isec, Float_t * center = 0) const; // get readout chamber positions + TGeoHMatrix *GetTrackingMatrix(Int_t isec) const { + return fTrackingMatrix[isec];} + TGeoHMatrix *GetClusterMatrix(Int_t isec) const { + return fClusterMatrix[isec];} + TGeoHMatrix *GetGlobalMatrix(Int_t isec) const { + return fGlobalMatrix[isec];} + Bool_t IsGeoRead(){ return fGlobalMatrix!=0;} + // + //get GAS parameters + // + Float_t GetDiffT() const {return fDiffT;} + Float_t GetDiffL() const {return fDiffL;} + Float_t GetGasGain() const {return fGasGain;} + Float_t GetDriftV() const {return fDriftV;} + Float_t GetOmegaTau() const {return fOmegaTau;} + Float_t GetAttCoef() const {return fAttCoef;} + Float_t GetOxyCont() const {return fOxyCont;} + TGraphErrors * GetGainSlopesHV() const { return fGainSlopesHV;} + TGraphErrors * GetGainSlopesPT() const { return fGainSlopesPT;} + Float_t* GetComposition() {return fComposition;} + Float_t GetFpot()const {return fFpot;} + Float_t GetNprim() const {return fNprim;} + Float_t GetNtot() const {return fNtot;} + Float_t GetWmean()const {return fWmean;} + Float_t GetExp()const {return fExp;} + Float_t GetEend()const {return fEend;} + TVectorD* GetBetheBlochParameters(){return fBetheBloch;} + static Double_t BetheBlochAleph(Double_t bb, Int_t type=0); + // + //get Electronic parameters + // + Float_t GetPadCoupling() const {return fPadCoupling;} + Int_t GetZeroSup() const {return fZeroSup;} + Float_t GetNoise() const {return fNoise;} + Float_t GetChipGain() const {return fChipGain;} + Float_t GetChipNorm() const {return fChipNorm;} + Float_t GetTSample() const {return fTSample;} + Float_t GetZWidth() const {return fZWidth;} + Float_t GetTFWHM() const {return fTSigma*2.35;} + Float_t GetZSigma() const {return fTSigma*fDriftV;} + virtual Float_t GetZOffset() const {return 3*fTSigma*fDriftV;} + Int_t GetMaxTBin() const {return fMaxTBin;} + Int_t GetADCSat() const {return fADCSat;} + Float_t GetADCDynRange() const {return fADCDynRange;} + Float_t GetTotalNormFac() const {return fTotalNormFac;} + Float_t GetNoiseNormFac() const {return fNoiseNormFac;} + // + // High voltage parameters + // + Float_t GetNominalVoltage(UInt_t i) const {return (i<72)?fNominalVoltage[i]:0;} //0-35:IROC, 36-71:OROC + Float_t GetMaxVoltageDeviation() const { return fMaxVoltageDeviation; } + Float_t GetMaxDipVoltage() const { return fMaxDipVoltage; } + Float_t GetMaxFractionHVbad() const { return fMaxHVfractionBad; } + Float_t GetVoltageDipScanPeriod() const { return fVoltageDipScanPeriod; } + + // + // get response data + // + Int_t * GetResBin(Int_t i); + //return response bin i - bin given by padrow [0] pad[1] timebin[2] + Float_t & GetResWeight(Int_t i); + //return weight of response bin i + + // get L1 data + Float_t GetGateDelay() const {return fGateDelay;} + Float_t GetL1Delay() const {return fL1Delay;} + UShort_t GetNTBinsBeforeL1() const {return fNTBinsBeforeL1;} + Float_t GetNTBinsL1() const {return fNTBinsL1;} +protected : + + Bool_t fbStatus; //indicates consistency of the data + //--------------------------------------------------------------------- + // ALICE TPC sector geometry + //-------------------------------------------------------------------- + Float_t fInnerRadiusLow; // lower radius of inner sector-IP + Float_t fInnerRadiusUp; // upper radius of inner sector-IP + Float_t fOuterRadiusUp; // upper radius of outer sector-IP + Float_t fOuterRadiusLow; // lower radius of outer sector-IP + Float_t fInnerAngle; //opening angle of Inner sector + Float_t fInnerAngleShift; //shift of first inner sector center to the 0 + Float_t fOuterAngle; //opening angle of outer sector + Float_t fOuterAngleShift; //shift of first sector center to the 0 + Float_t fInnerFrameSpace; //space for inner frame in the phi direction + Float_t fOuterFrameSpace; //space for outer frame in the phi direction + Float_t fInnerWireMount; //space for wire mount, inner sector + Float_t fOuterWireMount; //space for wire mount, outer sector + Int_t fNInnerSector; //number of inner sectors -calculated + Int_t fNOuterSector; //number of outer sectors -calculated + Int_t fNSector; // total number of sectors -calculated + Float_t fZLength; //length of the drift region of the TPC + Float_t *fRotAngle; //[fNSector] sin and cos of rotation angles for + // diferent sectors -calculated + Int_t fGeometryType; //type of geometry -0 straight rows + // Float_t *fChamberPos; //[fNSector] displacements of the readout chambers + //with respect to the 'idead' geometry + //in local corrdinate system + // Float_t *fChamberRot; //[fNSector] rotation angles of the readout chambers + //with respect to the 'idead' geometry + //in local corrdinate system + TGeoHMatrix **fTrackingMatrix; //![fNSector] transformation matrices of the tracking + //coordinate system + TGeoHMatrix **fClusterMatrix; //![fNSector] transformation matrices of the cluster + //coordinate system + TGeoHMatrix **fGlobalMatrix; //![fNSector] fTrackingMatrix * fClusterMatrix + + //1-cylindrical + //--------------------------------------------------------------------- + // ALICE TPC wires geometry - for GEM we can consider that it is gating + //-------------------------------------------------------------------- + Int_t fNInnerWiresPerPad; //Number of wires per pad + Float_t fInnerWWPitch; //pitch between wires in inner sector - calculated + Int_t fInnerDummyWire; //number of wires without pad readout + Float_t fInnerOffWire; //oofset of first wire to the begining of the sector + Float_t fRInnerFirstWire; //position of the first wire -calculated + Float_t fRInnerLastWire; //position of the last wire -calculated + Float_t fLastWireUp1; //position of the last wire in outer1 sector + Int_t fNOuter1WiresPerPad; //Number of wires per pad + Int_t fNOuter2WiresPerPad; // Number of wires per pad + Float_t fOuterWWPitch; //pitch between wires in outer sector -calculated + Int_t fOuterDummyWire; //number of wires without pad readout + Float_t fOuterOffWire; //oofset of first wire to the begining of the sector + Float_t fROuterFirstWire; //position of the first wire -calulated + Float_t fROuterLastWire; //position of the last wire -calculated + //--------------------------------------------------------------------- + // ALICE TPC pad parameters + //-------------------------------------------------------------------- + Float_t fInnerPadPitchLength; //Inner pad pitch length + Float_t fInnerPadPitchWidth; //Inner pad pitch width + Float_t fInnerPadLength; //Inner pad length + Float_t fInnerPadWidth; //Inner pad width + Float_t fOuter1PadPitchLength; //Outer pad pitch length + Float_t fOuter2PadPitchLength; //Outer pad pitch length + Float_t fOuterPadPitchWidth; //Outer pad pitch width + Float_t fOuter1PadLength; //Outer pad length + Float_t fOuter2PadLength; //Outer pad length + Float_t fOuterPadWidth; //Outer pad width + Bool_t fBMWPCReadout; //indicate wire readout - kTRUE or GEM readout -kFALSE + Int_t fNCrossRows; //number of rows to crostalk calculation + + Int_t fNRowLow; //number of pad rows per low sector -set + Int_t fNRowUp1; //number of short pad rows per sector up -set + Int_t fNRowUp2; //number of long pad rows per sector up -set + Int_t fNRowUp; //number of pad rows per sector up -calculated + Int_t fNtRows; //total number of rows in TPC -calculated + Float_t fPadRowLow[600]; //Lower sector, pad row radii -calculated + Float_t fPadRowUp[600]; //Upper sector, pad row radii -calculated + Int_t fNPadsLow[600]; //Lower sector, number of pads per row -calculated + Int_t fNPadsUp[600]; //Upper sector, number of pads per row -calculated + Float_t fYInner[600]; //Inner sector, wire-length + Float_t fYOuter[600]; //Outer sector, wire-length + //--------------------------------------------------------------------- + // ALICE TPC Gas Parameters + //-------------------------------------------------------------------- + Float_t fDiffT; //tangencial diffusion constant + Float_t fDiffL; //longutudinal diffusion constant + Float_t fGasGain; //gas gain constant + Float_t fDriftV; //drift velocity constant + Float_t fOmegaTau; //omega tau ExB coeficient + Float_t fAttCoef; //attachment coefitients + Float_t fOxyCont; //oxygen content + Float_t fFpot; // first ionisation potential + Float_t fNprim; // number of primary electrons/cm + Float_t fNtot; //total number of electrons/c (MIP) + Float_t fWmean; // mean energy for electron/ion pair + Float_t fExp; // de = f(E) - energy loss parametrization + Float_t fEend; // upper cutoff for de generation + TVectorD* fBetheBloch; // Bethe-Bloch parametrization + // gas mixture composition + Float_t fComposition[6]; + TGraphErrors * fGainSlopesHV; // graph with the gain slope as function of HV - per chamber + TGraphErrors * fGainSlopesPT; // graph with the gain slope as function of P/T - per chamber + //--------------------------------------------------------------------- + // ALICE TPC Electronics Parameters + //-------------------------------------------------------------------- + Float_t fPadCoupling; //coupling factor ration of anode signal + //and total pads signal + Int_t fZeroSup; //zero suppresion constant + Float_t fNoise; //noise sigma constant + Float_t fChipGain; //preamp shaper constant + Float_t fChipNorm; //preamp shaper normalisation + Float_t fTSample; //sampling time + Float_t fZWidth; //derived value calculated using TSample and driftw -computed + Float_t fTSigma; //width of the Preamp/Shaper function + Int_t fMaxTBin; //maximum time bin number + Int_t fADCSat; //saturation value of ADC (10 bits) + Float_t fADCDynRange; //input dynamic range (mV) + Float_t fTotalNormFac; //full normalisation factor - calculated + Float_t fNoiseNormFac; //normalisation factor to transform noise in electron to ADC channel + //--------------------------------------------------------------------- + // High voltage parameters + //--------------------------------------------------------------------- + Float_t fNominalVoltage[72]; //nominal voltage in [V] per chamber + Float_t fMaxVoltageDeviation; // maximum voltage deviation from nominal voltage before a chamber is masked + Float_t fMaxDipVoltage; // maximum voltage deviation from median before a dip event is marked + Float_t fMaxHVfractionBad; // maximum fraction of bad HV entries (deviation from Median) before a chamber is marked bad + Float_t fVoltageDipScanPeriod; // scanning period to detect a high volrage dip: event time stamp +- fVoltageDipScanPeriod [sec] + + //--------------------------------------------------------------------- + // ALICE TPC response data + //--------------------------------------------------------------------- + Int_t fNResponseMax; //maximal dimension of response + Float_t fResponseThreshold; //threshold for accepted response + Int_t fCurrentMax; //!current maximal dimension -calulated + Int_t *fResponseBin; //!array with bins -calulated + Float_t *fResponseWeight; //!array with response -calulated + + //--------------------------------------------------------------------- + // ALICE TPC L1 Parameters + //-------------------------------------------------------------------- + Float_t fGateDelay; //Delay of L1 arrival for the TPC gate signal + Float_t fL1Delay; //Delay of L1 arrival for the TPC readout + UShort_t fNTBinsBeforeL1; //Number of time bins before L1 arrival which are being read out + Float_t fNTBinsL1; //Overall L1 delay in time bins + protected: + static TObjArray *fBBParam; // array of the Bethe-Bloch parameters. + private: + AliTPCParam(const AliTPCParam &); + AliTPCParam & operator=(const AliTPCParam &); + + void CleanGeoMatrices(); + + ClassDef(AliTPCParam,8) //parameter object for set:TPC +}; + + +inline Int_t * AliTPCParam::GetResBin(Int_t i) +{ + //return response bin i - bin given by padrow [0] pad[1] timebin[2] + if (i=0 && index[1]MasterToLocal(xyzmaster,xyzlocal); + xyz[0] = xyzlocal[0]; + xyz[1] = xyzlocal[1]; + xyz[2] = xyzlocal[2]; + index[0]=2; +} + + + + +inline void AliTPCParam::Transform2to1(Float_t *xyz, Int_t *index) const +{ + // + //transformation from rotated coordinates to global coordinates + // + Float_t cos,sin; + AdjustCosSin(index[1],cos,sin); + Float_t x1=xyz[0]*cos - xyz[1]*sin; + Float_t y1=xyz[0]*sin + xyz[1]*cos; + xyz[0]=x1; + xyz[1]=y1; + xyz[2]=fZLength-xyz[2]; + if (index[1]=(fNInnerSector>>1)) xyz[2]*=-1.;} + else + {if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[2]*=-1;} + index[0]=1; +} + +inline void AliTPCParam::Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const +{ + //transform rotated coordinats of one sector to rotated + //coordinates relative to another sector + Transform2to1(xyz,index); + Transform1to2(xyz,oindex); + index[0]=2; + index[1]=oindex[1]; +} + +inline Float_t AliTPCParam::Transform2to2NearestWire(Float_t *xyz, Int_t *index) const +{ + // + // asigns the x-position of the closest wire to xyz[0], return the + // electron to closest wire distance + // + Float_t xnew,dx; + if (index[1]0) && (xyz[1]<0) ) angle=2*TMath::Pi()+angle; + } + xyz[0]=r; + xyz[1]=angle; + index[0]=5; +} + +inline void AliTPCParam::Transform5to2( Float_t *xyz, Int_t *index) const +{ + // + //transform [r,rphi,z] to [x,y,z] + // + Float_t r = xyz[0]; + Float_t angle= xyz[1]; + xyz[0]=r*TMath::Cos(angle); + xyz[1]=r*TMath::Sin(angle); + index[0]=2; +} + +inline void AliTPCParam::Transform4to8(Float_t *xyz, Int_t *index) const +{ + // + //transform xyz coordinates to 'digit' coordinates + // + + if (index[1]=(fNInnerSector>>1)) xyz[1]*=-1.; + } + else { + if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1; + } + + xyz[2]/=fZWidth; + if (index[1]=(fNInnerSector>>1)) xyz[1]*=-1.; + } + else { + if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1; + } + + xyz[2]*=fZWidth; + if (index[1]35&§or<54)) return fZLength-0.275; + else return fZLength-0.302; +} +#endif diff --git a/tpc/dirty/AliTPCParamSR.cxx b/tpc/dirty/AliTPCParamSR.cxx new file mode 100644 index 0000000000000..a112df279b8ed --- /dev/null +++ b/tpc/dirty/AliTPCParamSR.cxx @@ -0,0 +1,605 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +/* $Id$ */ + +/////////////////////////////////////////////////////////////////////// +// Manager and of geomety classes for set: TPC // +// // +// !sectors are numbered from 0 // +// !pad rows are numbered from 0 // +// +// 27.7. - AliTPCPaaramSr object for TPC +// TPC with straight pad rows +// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // +// // +/////////////////////////////////////////////////////////////////////// + +//#include +#include + +#include "AliTPCPRF2D.h" +#include "AliTPCParamSR.h" +#include "AliTPCRF1D.h" +#include "TH1.h" +#include "AliTPCROC.h" +#include "TGeoManager.h" + +ClassImp(AliTPCParamSR) +static const Int_t kMaxRows=600; +static const Float_t kEdgeSectorSpace = 2.5; +static const Float_t kFacSigmaPadRow=3.; +static const Float_t kFacSigmaPad=3.; +static const Float_t kFacSigmaTime=3.; + + +AliTPCParamSR::AliTPCParamSR() + :AliTPCParam(), + fInnerPRF(0), + fOuter1PRF(0), + fOuter2PRF(0), + fTimeRF(0), + fFacSigmaPadRow(0), + fFacSigmaPad(0), + fFacSigmaTime(0) +{ + // + //constructor set the default parameters + // + + fFacSigmaPadRow = Float_t(kFacSigmaPadRow); + fFacSigmaPad = Float_t(kFacSigmaPad); + fFacSigmaTime = Float_t(kFacSigmaTime); + SetDefault(); + Update(); +} + +AliTPCParamSR::~AliTPCParamSR() +{ + // + //destructor destroy some dynmicaly alocated variables + if (fInnerPRF != 0) delete fInnerPRF; + if (fOuter1PRF != 0) delete fOuter1PRF; + if (fOuter2PRF != 0) delete fOuter2PRF; + if (fTimeRF != 0) delete fTimeRF; +} + +void AliTPCParamSR::SetDefault() +{ + //set default TPC param + fbStatus = kFALSE; + AliTPCParam::SetDefault(); +} + +Int_t AliTPCParamSR::CalcResponse(Float_t* xyz, Int_t * index, Int_t row) +{ + // + //calculate bin response as function of the input position -x + //return number of valid response bin + // + //we suppose that coordinate is expressed in float digits + // it's mean coordinate system 8 + //xyz[0] - float padrow xyz[1] is float pad (center pad is number 0) and xyz[2] is float time bin + //xyz[3] - electron time in float time bin format + if ( (fInnerPRF==0)||(fOuter1PRF==0)||(fOuter2PRF==0) ||(fTimeRF==0) ){ + Error("AliTPCParamSR", "response function was not adjusted"); + return -1; + } + + Float_t sfpadrow; // sigma of response function + Float_t sfpad; // sigma of + Float_t sftime= fFacSigmaTime*fTimeRF->GetSigma()/fZWidth; //3 sigma of time response + if (index[1]GetSigmaY()/fInnerPadPitchLength; + sfpad =fFacSigmaPad*fInnerPRF->GetSigmaX()/fInnerPadPitchWidth; + } + else{ + if(rowGetSigmaY()/fOuter1PadPitchLength; + sfpad =fFacSigmaPad*fOuter1PRF->GetSigmaX()/fOuterPadPitchWidth;} + else{ + sfpadrow =fFacSigmaPadRow*fOuter2PRF->GetSigmaY()/fOuter2PadPitchLength; + sfpad =fFacSigmaPad*fOuter2PRF->GetSigmaX()/fOuterPadPitchWidth; + } + } + + Int_t fpadrow = TMath::Max(TMath::Nint(index[2]+xyz[0]-sfpadrow),0); //"first" padrow + Int_t fpad = TMath::Nint(xyz[1]-sfpad); //first pad + Int_t ftime = TMath::Max(TMath::Nint(xyz[2]+xyz[3]+GetZOffset()/GetZWidth()-sftime),0); // first time + Int_t lpadrow = TMath::Min(TMath::Nint(index[2]+xyz[0]+sfpadrow),fpadrow+19); //"last" padrow + lpadrow = TMath::Min(GetNRow(index[1])-1,lpadrow); + Int_t lpad = TMath::Min(TMath::Nint(xyz[1]+sfpad),fpad+19); //last pad + Int_t ltime = TMath::Min(TMath::Nint(xyz[2]+xyz[3]+GetZOffset()/GetZWidth()+sftime),ftime+19); // last time + ltime = TMath::Min(ltime,GetMaxTBin()-1); + // + Int_t npads = GetNPads(index[1],row); + if (fpad<-npads/2) + fpad = -npads/2; + if (lpad>npads/2) + lpad= npads/2; + if (ftime<0) ftime=0; + // + if (row>=0) { //if we are interesting about given pad row + if (fpadrow<=row) fpadrow =row; + else + return 0; + if (lpadrow>=row) lpadrow = row; + else + return 0; + } + + + Float_t padres[20][20]; //I don't expect bigger number of bins + Float_t timeres[20]; + Int_t cindex3=0; + Int_t cindex=0; + Float_t cweight = 0; + if (fpadrow>=0) { + //calculate padresponse function + Int_t padrow, pad; + for (padrow = fpadrow;padrow<=lpadrow;padrow++) + for (pad = fpad;pad<=lpad;pad++){ + Float_t dy = (xyz[0]+Float_t(index[2]-padrow)); + Float_t dx = (xyz[1]+Float_t(pad)); + if (index[1]GetPRF(dx*fInnerPadPitchWidth,dy*fInnerPadPitchLength); + else{ + if(rowGetPRF(dx*fOuterPadPitchWidth,dy*fOuter1PadPitchLength);} + else{ + padres[padrow-fpadrow][pad-fpad]=fOuter2PRF->GetPRF(dx*fOuterPadPitchWidth,dy*fOuter2PadPitchLength);}}} + //calculate time response function + Int_t time; + for (time = ftime;time<=ltime;time++) + timeres[time-ftime]= fTimeRF->GetRF((-xyz[2]-xyz[3]+Float_t(time))*fZWidth); + //write over threshold values to stack + for (padrow = fpadrow;padrow<=lpadrow;padrow++) + for (pad = fpad;pad<=lpad;pad++) + for (time = ftime;time<=ltime;time++){ + cweight = timeres[time-ftime]*padres[padrow-fpadrow][pad-fpad]; + if (cweight>fResponseThreshold) { + fResponseBin[cindex3]=padrow; + fResponseBin[cindex3+1]=pad; + fResponseBin[cindex3+2]=time; + cindex3+=3; + fResponseWeight[cindex]=cweight; + cindex++; + } + } + } + fCurrentMax=cindex; + return fCurrentMax; +} + +void AliTPCParamSR::TransformTo8(Float_t *xyz, Int_t *index) const +{ + // + // transformate point to digit coordinate + // + if (index[0]==0) Transform0to1(xyz,index); + if (index[0]==1) Transform1to2(xyz,index); + if (index[0]==2) Transform2to3(xyz,index); + if (index[0]==3) Transform3to4(xyz,index); + if (index[0]==4) Transform4to8(xyz,index); +} + +void AliTPCParamSR::TransformTo2(Float_t *xyz, Int_t *index) const +{ + // + //transformate point to rotated coordinate + // + //we suppose that + if (index[0]==0) Transform0to1(xyz,index); + if (index[0]==1) Transform1to2(xyz,index); + if (index[0]==4) Transform4to3(xyz,index); + if (index[0]==8) { //if we are in digit coordinate system transform to global + Transform8to4(xyz,index); + Transform4to3(xyz,index); + } +} + +void AliTPCParamSR::CRXYZtoXYZ(Float_t *xyz, + const Int_t §or, const Int_t & padrow, Int_t option) const +{ + //transform relative coordinates to absolute + Bool_t rel = ( (option&2)!=0); + Int_t index[3]={sector,padrow,0}; + if (rel==kTRUE) Transform4to3(xyz,index);//if the position is relative to pad row + Transform2to1(xyz,index); +} + +void AliTPCParamSR::XYZtoCRXYZ(Float_t *xyz, + Int_t §or, Int_t & padrow, Int_t option) const +{ + //transform global position to the position relative to the sector padrow + //if option=0 X calculate absolute calculate sector + //if option=1 X absolute use input sector + //if option=2 X relative to pad row calculate sector + //if option=3 X relative use input sector + //!!!!!!!!! WE start to calculate rows from row = 0 + Int_t index[3]; + Bool_t rel = ( (option&2)!=0); + + //option 0 and 2 means that we don't have information about sector + if ((option&1)==0) Transform0to1(xyz,index); //we calculate sector number + else + index[0]=sector; + Transform1to2(xyz,index); + Transform2to3(xyz,index); + //if we store relative position calculate position relative to pad row + if (rel==kTRUE) Transform3to4(xyz,index); + sector = index[0]; + padrow = index[1]; +} + +Float_t AliTPCParamSR::GetPrimaryLoss(Float_t */*x*/, Int_t *index, Float_t *angle) +{ + // + // + Float_t padlength=GetPadPitchLength(index[1]); + Float_t a1=TMath::Sin(angle[0]); + a1*=a1; + Float_t a2=TMath::Sin(angle[1]); + a2*=a2; + Float_t length =padlength*TMath::Sqrt(1+a1+a2); + return length*fNPrimLoss; +} + +Float_t AliTPCParamSR::GetTotalLoss(Float_t */*x*/, Int_t *index, Float_t *angle) +{ + // + // + Float_t padlength=GetPadPitchLength(index[1]); + Float_t a1=TMath::Sin(angle[0]); + a1*=a1; + Float_t a2=TMath::Sin(angle[1]); + a2*=a2; + Float_t length =padlength*TMath::Sqrt(1+a1+a2); + return length*fNTotalLoss; + +} + + +void AliTPCParamSR::GetClusterSize(Float_t *x, Int_t *index, Float_t */*angle*/, Int_t /*mode*/, Float_t *sigma) +{ + // + //return cluster sigma2 (x,y) for particle at position x + // in this case x coordinata is in drift direction + //and y in pad row direction + //we suppose that input coordinate system is digit system + + Float_t xx; + Float_t lx[3] = {x[0],x[1],x[2]}; + Int_t li[3] = {index[0],index[1],index[2]}; + TransformTo2(lx,li); + // Float_t sigmadiff; + sigma[0]=0; + sigma[1]=0; + + xx = lx[2]; //calculate drift length in cm + if (xx>0) { + sigma[0]+= xx*GetDiffL()*GetDiffL(); + sigma[1]+= xx*GetDiffT()*GetDiffT(); + } + + + //sigma[0]=sigma[1]=0; + if (GetTimeRF()!=0) sigma[0]+=GetTimeRF()->GetSigma()*GetTimeRF()->GetSigma(); + if ( (index[1]GetSigmaX()*GetInnerPRF()->GetSigmaX(); + if ( (index[1]>=fNInnerSector) &&(index[2]GetSigmaX()*GetOuter1PRF()->GetSigmaX(); + if( (index[1]>=fNInnerSector) &&(index[2]>=fNRowUp1) && (GetOuter2PRF()!=0)) + sigma[1]+=GetOuter2PRF()->GetSigmaX()*GetOuter2PRF()->GetSigmaX(); + + + sigma[0]/= GetZWidth()*GetZWidth(); + sigma[1]/=GetPadPitchWidth(index[0])*GetPadPitchWidth(index[0]); +} + + + + +void AliTPCParamSR::GetSpaceResolution(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/, + Float_t /*amplitude*/, Int_t /*mode*/, Float_t */*sigma*/) +{ + // + // + // + +} +Float_t AliTPCParamSR::GetAmp(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/) +{ + // + // + // + return 0; +} + +Float_t * AliTPCParamSR::GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle) +{ + // + //calculate angle of track to padrow at given position + // for given magnetic field and momentum of the particle + // + + TransformTo2(x,index); + AliDetectorParam::GetAnglesAccMomentum(x,index,momentum,angle); + Float_t addangle = TMath::ASin(x[1]/GetPadRowRadii(index[1],index[2])); + angle[1] +=addangle; + return angle; +} + + +Bool_t AliTPCParamSR::Update() +{ + Int_t i; + if (AliTPCParam::Update()==kFALSE) return kFALSE; + fbStatus = kFALSE; + + Float_t firstrow = fInnerRadiusLow + 1.575; + for( i= 0;iGetNPads(0,i) ; // ROC implement + } + // cross talk rows + fYInner[0]=(fPadRowLow[0]-fInnerPadPitchLength)*tan(fInnerAngle/2.)-fInnerWireMount; + fYInner[fNRowLow+1]=(fPadRowLow[fNRowLow-1]+fInnerPadPitchLength)*tan(fInnerAngle/2.)-fInnerWireMount; + firstrow = fOuterRadiusLow + 1.6; + for(i=0;iGetNPads(36,i) ; // ROC implement + if(i==fNRowUp1-1) { + fLastWireUp1=fPadRowUp[i] +0.625; + firstrow = fPadRowUp[i] + 0.5*(fOuter1PadPitchLength+fOuter2PadPitchLength); + } + } + else + { + Float_t x = firstrow + fOuter2PadPitchLength*(Float_t)(i-64); + fPadRowUp[i]=x; + //Float_t y =(x-0.5*fOuter2PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount- + // fOuterPadPitchWidth/2.; + //fNPadsUp[i] = 1+2*(Int_t)(y/fOuterPadPitchWidth) ; + fNPadsUp[i] = AliTPCROC::Instance()->GetNPads(36,i) ; // ROC implement + } + fYOuter[i+1] = fPadRowUp[i]*tan(fOuterAngle/2.)-fOuterWireMount; + } + // cross talk rows + fYOuter[0]=(fPadRowUp[0]-fOuter1PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount; + fYOuter[fNRowUp+1]=(fPadRowUp[fNRowUp-1]+fOuter2PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount; + fNtRows = fNInnerSector*fNRowLow+fNOuterSector*fNRowUp; + fbStatus = kTRUE; + return kTRUE; +} +Float_t AliTPCParamSR::GetYInner(Int_t irow) const +{ + return fYInner[irow]; +} +Float_t AliTPCParamSR::GetYOuter(Int_t irow) const +{ + return fYOuter[irow]; +} + +void AliTPCParamSR::Streamer(TBuffer &R__b) +{ + // Stream an object of class AliTPC. + + if (R__b.IsReading()) { + Version_t R__v = R__b.ReadVersion(); if (R__v) { } + // TObject::Streamer(R__b); + AliTPCParam::Streamer(R__b); + // if (R__v < 2) return; + Update(); + if (gGeoManager) ReadGeoMatrices(); + } else { + R__b.WriteVersion(AliTPCParamSR::IsA()); + //TObject::Streamer(R__b); + AliTPCParam::Streamer(R__b); + } +} +Int_t AliTPCParamSR::CalcResponseFast(Float_t* xyz, Int_t * index, Int_t row, Float_t phase) +{ + // + //calculate bin response as function of the input position -x + //return number of valid response bin + // + //we suppose that coordinate is expressed in float digits + // it's mean coordinate system 8 + //xyz[0] - electron position w.r.t. pad center, normalized to pad length, + //xyz[1] is float pad (center pad is number 0) and xyz[2] is float time bin + //xyz[3] - electron time in float time bin format + if ( (fInnerPRF==0)||(fOuter1PRF==0)||(fOuter2PRF==0) ||(fTimeRF==0) ){ + Error("AliTPCParamSR", "response function was not adjusted"); + return -1; + } + + const Int_t kpadn = 500; + const Float_t kfpadn = 500.; + const Int_t ktimen = 500; + const Float_t kftimen = 500.; + const Int_t kpadrn = 500; + const Float_t kfpadrn = 500.; + + + + static Float_t prfinner[2*kpadrn][5*kpadn]; //pad divided by 50 + static Float_t prfouter1[2*kpadrn][5*kpadn]; //prfouter division + static Float_t prfouter2[2*kpadrn][5*kpadn]; + static Float_t kTanMax =0; + + static Float_t rftime[5*ktimen]; //time division + static Int_t blabla=0; + static Float_t zoffset=0; + static Float_t zwidth=0; + static Float_t zoffset2=0; + static TH1F * hdiff=0; + static TH1F * hdiff1=0; + static TH1F * hdiff2=0; + + if (blabla==0) { //calculate Response function - only at the begginning + kTanMax = TMath::ATan(10.*TMath::DegToRad()); + hdiff =new TH1F("prf_diff","prf_diff",10000,-1,1); + hdiff1 =new TH1F("no_repsonse1","no_response1",10000,-1,1); + hdiff2 =new TH1F("no_response2","no_response2",10000,-1,1); + + blabla=1; + zoffset = GetZOffset(); + zwidth = fZWidth; + zoffset2 = zoffset/zwidth; + for (Int_t i=0;i<5*ktimen;i++){ + rftime[i] = fTimeRF->GetRF(((i-2.5*kftimen)/kftimen)*zwidth+zoffset); + } + for (Int_t i=0;i<5*kpadn;i++){ + for (Int_t j=0;j<2*kpadrn;j++){ + prfinner[j][i] = + fInnerPRF->GetPRF((i-2.5*kfpadn)/kfpadn + *fInnerPadPitchWidth,(j-kfpadrn)/kfpadrn*fInnerPadPitchLength); + prfouter1[j][i] = + fOuter1PRF->GetPRF((i-2.5*kfpadn)/kfpadn + *fOuterPadPitchWidth,(j-kfpadrn)/kfpadrn*fOuter1PadPitchLength); + + // + prfouter2[j][i] = + fOuter2PRF->GetPRF((i-2.5*kfpadn)/kfpadn + *fOuterPadPitchWidth,(j-kfpadrn)/kfpadrn*fOuter2PadPitchLength); + } + } + } // the above is calculated only once + + // calculate central padrow, pad, time + Int_t npads = GetNPads(index[1],index[3]-1); + Int_t cpadrow = index[2]; // electrons are here + Int_t cpad = TMath::Nint(xyz[1]); + Int_t ctime = TMath::Nint(xyz[2]+zoffset2+xyz[3]); + //calulate deviation + Float_t dpadrow = xyz[0]; + Float_t dpad = xyz[1]-cpad; + Float_t dtime = xyz[2]+zoffset2+xyz[3]-ctime+phase*0.25; + Int_t cindex =0; + Int_t cindex3 =0; + Int_t maxt =GetMaxTBin(); + + Int_t fpadrow; + Int_t lpadrow; + + if (row>=0) { //if we are interesting about given pad row + fpadrow = row-cpadrow; + lpadrow = row-cpadrow; + }else{ + fpadrow = (index[2]>1) ? -1 :0; + lpadrow = (index[2] -npads/2+1) ? -2: -npads/2-cpad; + Int_t lpad = (cpad < npads/2-2) ? 2: npads/2-1-cpad; + Int_t ftime = (ctime>1) ? -2: -ctime; + Int_t ltime = (ctime=2*kpadrn)) + continue; + // pad angular correction + Float_t angle = 0.; + if (npads != 0) + angle = kTanMax*2.*(cpad+0.5)/Float_t(npads); + Float_t dpadangle =0; + if (index[1]fResponseThreshold) { + fResponseBin[cindex3++]=cpadrow+ipadrow; + fResponseBin[cindex3++]=cpad+ipad; + fResponseBin[cindex3++]=ctime+itime; + fResponseWeight[cindex++]=cweight2; + } + atime-=ktimen; + } + apad-= kpadn; + } + apadrow-=kpadrn; + } + fCurrentMax=cindex; + return fCurrentMax; + +} + + + + + + + diff --git a/tpc/dirty/AliTPCParamSR.h b/tpc/dirty/AliTPCParamSR.h new file mode 100644 index 0000000000000..534b5bd1a8563 --- /dev/null +++ b/tpc/dirty/AliTPCParamSR.h @@ -0,0 +1,90 @@ +#ifndef TPCParamSR_H +#define TPCParamSR_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ + +//////////////////////////////////////////////// +// Manager class for TPC parameters // +//////////////////////////////////////////////// +#include "AliTPCParam.h" + +class AliTPCRF1D; +class AliTPCPRF2D; + +class AliTPCParamSR : public AliTPCParam { +public: + AliTPCParamSR(); + virtual ~AliTPCParamSR(); + + Int_t CalcResponse(Float_t* x, Int_t * index, Int_t row); + Int_t CalcResponseFast(Float_t* x, Int_t * index, Int_t row,Float_t phase); + //calculate bin response as function of the input position -x + //return number of valid response bin + + + void XYZtoCRXYZ(Float_t *xyz, + Int_t §or, Int_t &padrow, Int_t option=3) const; + //transform global position to the position relative to the sector padrow + //if option=0 X calculate absolute calculate sector + //if option=1 X absolute use input sector + //if option=2 X relative to pad row calculate sector + //if option=3 X relative use input sector + + void CRXYZtoXYZ(Float_t *xyz, + const Int_t §or, const Int_t & padrow, Int_t option=3) const; + //transform relative position to the gloabal position + void TransformTo8(Float_t *xyz, Int_t *index) const; + void TransformTo2(Float_t *xyz, Int_t *index) const; + Bool_t Update(); //recalculate and check geometric parameters + void SetDefault(); //set default parameters + void SetInnerPRF(AliTPCPRF2D * prf) {fInnerPRF = prf;} + void SetOuter1PRF(AliTPCPRF2D * prf) {fOuter1PRF = prf;} //e.k + void SetOuter2PRF(AliTPCPRF2D * prf) {fOuter2PRF = prf;} //e.k + void SetTimeRF(AliTPCRF1D * timerf) {fTimeRF = timerf;} + + AliTPCPRF2D * GetInnerPRF() const {return fInnerPRF;} + AliTPCPRF2D * GetOuter1PRF() const {return fOuter1PRF;} //e.k + AliTPCPRF2D * GetOuter2PRF() const {return fOuter2PRF;} //e.k + AliTPCRF1D * GetTimeRF() const {return fTimeRF;} + void SetFacSigmaPadRow(Float_t fac=3.) {fFacSigmaPadRow=fac;} + void SetFacSigmaPad(Float_t fac=3.) {fFacSigmaPad=fac;} + void SetFacSigmaTime(Float_t fac=3.) {fFacSigmaTime=fac;} + + // Float_t GetPadRowRadiiLow(Int_t irow) const; + // Float_t GetPadRowRadiiUp(Int_t irow) const; + Float_t GetYInner(Int_t irow) const; //e,k + Float_t GetYOuter(Int_t irow) const; //e.k + + virtual Float_t GetPrimaryLoss(Float_t *x, Int_t *index, Float_t *angle); + virtual Float_t GetTotalLoss(Float_t *x, Int_t *index, Float_t *angle); + + virtual void GetClusterSize(Float_t *x, Int_t *index, Float_t *angle, Int_t mode, Float_t *sigma); + virtual void GetSpaceResolution(Float_t *x, Int_t *index, Float_t *angle, Float_t amplitude, Int_t mode,Float_t *sigma); + virtual Float_t GetAmp(Float_t *x, Int_t *index, Float_t *angle); + virtual Float_t * GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle); + +protected: + AliTPCPRF2D * fInnerPRF; //pad response function for inner sector + AliTPCPRF2D * fOuter1PRF; //pad response function for outer sector + AliTPCPRF2D * fOuter2PRF; + AliTPCRF1D * fTimeRF; //time response function object + Float_t fFacSigmaPadRow; //factor-how many sigma of response I accept + Float_t fFacSigmaPad; //factor-how many sigma of response I accept + Float_t fFacSigmaTime; //factor-how many sigma of response I accept + +private: + AliTPCParamSR(const AliTPCParamSR ¶m); // copy constructor + AliTPCParamSR &operator = (const AliTPCParamSR & param); //assignment operator + + ClassDef(AliTPCParamSR,2) //parameter object for set:TPC +}; + +#endif + + + + + + diff --git a/tpc/dirty/AliTPCRF1D.cxx b/tpc/dirty/AliTPCRF1D.cxx new file mode 100644 index 0000000000000..4e0243191bd1f --- /dev/null +++ b/tpc/dirty/AliTPCRF1D.cxx @@ -0,0 +1,404 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + +/* $Id$ */ + + +//----------------------------------------------------------------------------- +// +// +// +// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk +// +// Declaration of class AliTPCRF1D +// +//----------------------------------------------------------------------------- + +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "AliTPCRF1D.h" + +extern TStyle * gStyle; + +Int_t AliTPCRF1D::fgNRF=100; //default number of interpolation points +Float_t AliTPCRF1D::fgRFDSTEP=0.01; //default step in cm + +static Double_t funGauss(Double_t *x, Double_t * par) +{ + //Gauss function -needde by the generic function object + return TMath::Exp(-(x[0]*x[0])/(2*par[0]*par[0])); +} + +static Double_t funCosh(Double_t *x, Double_t * par) +{ + //Cosh function -needde by the generic function object + return 1/TMath::CosH(3.14159*x[0]/(2*par[0])); +} + +static Double_t funGati(Double_t *x, Double_t * par) +{ + //Gati function -needde by the generic function object + Float_t k3=par[1]; + Float_t k3R=TMath::Sqrt(k3); + Float_t k2=(TMath::Pi()/2)*(1-k3R/2.); + Float_t k1=k2*k3R/(4*TMath::ATan(k3R)); + Float_t l=x[0]/par[0]; + Float_t tan2=TMath::TanH(k2*l); + tan2*=tan2; + Float_t res = k1*(1-tan2)/(1+k3*tan2); + return res; +} + +/////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////// + +ClassImp(AliTPCRF1D) + + +AliTPCRF1D::AliTPCRF1D(Bool_t direct,Int_t np,Float_t step) + :TObject(), + fNRF(0), + fDSTEPM1(0.), + fcharge(0), + forigsigma(0.), + fpadWidth(3.5), + fkNorm(0.5), + fInteg(0.), + fGRF(0), + fSigma(0.), + fOffset(0.), + fDirect(kFALSE), + fPadDistance(0.) +{ + //default constructor for response function object + fDirect=direct; + if (np!=0)fNRF = np; + else (fNRF=fgNRF); + fcharge = new Float_t[fNRF]; + if (step>0) fDSTEPM1=1./step; + else fDSTEPM1 = 1./fgRFDSTEP; + for(Int_t i=0;i<5;i++) { + funParam[i]=0.; + fType[i]=0; + } + +} + +AliTPCRF1D::AliTPCRF1D(const AliTPCRF1D &prf) + :TObject(prf), + fNRF(prf.fNRF), + fDSTEPM1(prf.fDSTEPM1), + fcharge(0), + forigsigma(prf.forigsigma), + fpadWidth(prf.fpadWidth), + fkNorm(prf.fkNorm), + fInteg(prf.fInteg), + fGRF(new TF1(*(prf.fGRF))), + fSigma(prf.fSigma), + fOffset(prf.fOffset), + fDirect(prf.fDirect), + fPadDistance(prf.fPadDistance) +{ + // + // + for(Int_t i=0;i<5;i++) { + funParam[i]=0.; + fType[i]=0; + } + fcharge = new Float_t[fNRF]; + memcpy(fcharge,prf.fcharge, fNRF*sizeof(Float_t)); + + //PH Change the name (add 0 to the end) + TString s(fGRF->GetName()); + s+="0"; + fGRF->SetName(s.Data()); +} + +AliTPCRF1D & AliTPCRF1D::operator = (const AliTPCRF1D &prf) +{ + if(this!=&prf) { + TObject::operator=(prf); + fNRF=prf.fNRF; + fDSTEPM1=prf.fDSTEPM1; + delete [] fcharge; + fcharge = new Float_t[fNRF]; + memcpy(fcharge,prf.fcharge, fNRF*sizeof(Float_t)); + forigsigma=prf.forigsigma; + fpadWidth=prf.fpadWidth; + fkNorm=prf.fkNorm; + fInteg=prf.fInteg; + delete fGRF; + fGRF=new TF1(*(prf.fGRF)); + //PH Change the name (add 0 to the end) + TString s(fGRF->GetName()); + s+="0"; + fGRF->SetName(s.Data()); + fSigma=prf.fSigma; + fOffset=prf.fOffset; + fDirect=prf.fDirect; + fPadDistance=prf.fPadDistance; + } + return *this; +} + + + +AliTPCRF1D::~AliTPCRF1D() +{ + // + delete [] fcharge; + delete fGRF; +} + +Float_t AliTPCRF1D::GetRF(Float_t xin) +{ + //function which return response + //for the charge in distance xin + //return linear aproximation of RF + Float_t x = (xin-fOffset)*fDSTEPM1+fNRF/2; + Int_t i1=Int_t(x); + if (x<0) i1-=1; + Float_t res=0; + if (i1+10) + res = fcharge[i1]*(Float_t(i1+1)-x)+fcharge[i1+1]*(x-Float_t(i1)); + return res; +} + +Float_t AliTPCRF1D::GetGRF(Float_t xin) +{ + //function which returnoriginal charge distribution + //this function is just normalised for fKnorm + if (fGRF != 0 ) + return fkNorm*fGRF->Eval(xin)/fInteg; + else + return 0.; +} + + +void AliTPCRF1D::SetParam( TF1 * GRF,Float_t padwidth, + Float_t kNorm, Float_t sigma) +{ + //adjust parameters of the original charge distribution + //and pad size parameters + fpadWidth = padwidth; + fGRF = GRF; + fkNorm = kNorm; + if (sigma==0) sigma= fpadWidth/TMath::Sqrt(12.); + forigsigma=sigma; + fDSTEPM1 = 10/TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12); + //sprintf(fType,"User"); + snprintf(fType,5,"User"); + // Update(); +} + + +void AliTPCRF1D::SetGauss(Float_t sigma, Float_t padWidth, + Float_t kNorm) +{ + // + // set parameters for Gauss generic charge distribution + // + fpadWidth = padWidth; + fkNorm = kNorm; + if (fGRF !=0 ) fGRF->Delete(); + fGRF = new TF1("funGauss",funGauss,-5,5,1); + funParam[0]=sigma; + forigsigma=sigma; + fGRF->SetParameters(funParam); + fDSTEPM1 = 10./TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12); + //by default I set the step as one tenth of sigma + //sprintf(fType,"Gauss"); + snprintf(fType,5,"Gauss"); +} + +void AliTPCRF1D::SetCosh(Float_t sigma, Float_t padWidth, + Float_t kNorm) +{ + // + // set parameters for Cosh generic charge distribution + // + fpadWidth = padWidth; + fkNorm = kNorm; + if (fGRF !=0 ) fGRF->Delete(); + fGRF = new TF1("funCosh", funCosh, -5.,5.,2); + funParam[0]=sigma; + fGRF->SetParameters(funParam); + forigsigma=sigma; + fDSTEPM1 = 10./TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12); + //by default I set the step as one tenth of sigma + //sprintf(fType,"Cosh"); + snprintf(fType,5,"Cosh"); +} + +void AliTPCRF1D::SetGati(Float_t K3, Float_t padDistance, Float_t padWidth, + Float_t kNorm) +{ + // + // set parameters for Gati generic charge distribution + // + fpadWidth = padWidth; + fkNorm = kNorm; + if (fGRF !=0 ) fGRF->Delete(); + fGRF = new TF1("funGati", funGati, -5.,5.,2); + funParam[0]=padDistance; + funParam[1]=K3; + fGRF->SetParameters(funParam); + forigsigma=padDistance; + fDSTEPM1 = 10./TMath::Sqrt(padDistance*padDistance+fpadWidth*fpadWidth/12); + //by default I set the step as one tenth of sigma + //sprintf(fType,"Gati"); + snprintf(fType,5,"Gati"); +} + + + +void AliTPCRF1D::DrawRF(Float_t x1,Float_t x2,Int_t N) +{ + // + //Draw prf in selected region with nuber of diviision = n + // + char s[100]; + TCanvas * c1 = new TCanvas("canRF","Pad response function",700,900); + c1->cd(); + TPad * pad1 = new TPad("pad1RF","",0.05,0.55,0.95,0.95,21); + pad1->Draw(); + TPad * pad2 = new TPad("pad2RF","",0.05,0.05,0.95,0.45,21); + pad2->Draw(); + + //sprintf(s,"RF response function for %1.2f cm pad width", + // fpadWidth); + snprintf(s,60,"RF response function for %1.2f cm pad width",fpadWidth); + pad1->cd(); + TH1F * hRFo = new TH1F("hRFo","Original charge distribution",N+1,x1,x2); + pad2->cd(); + gStyle->SetOptFit(1); + gStyle->SetOptStat(0); + TH1F * hRFc = new TH1F("hRFc",s,N+1,x1,x2); + Float_t x=x1; + Float_t y1; + Float_t y2; + + for (Float_t i = 0;iFill(x,y1); + y2 = GetGRF(x); + hRFo->Fill(x,y2); + }; + pad1->cd(); + hRFo->Fit("gaus"); + pad2->cd(); + hRFc->Fit("gaus"); +} + +void AliTPCRF1D::Update() +{ + // + //update fields with interpolated values for + //PRF calculation + + //at the begining initialize to 0 + for (Int_t i =0; iIntegral(-5*forigsigma,5*forigsigma,funParam,0.00001); +#else + TArrayD savParam(fGRF->GetNpar(), fGRF->GetParameters()); + fGRF->SetParameters(funParam); + fInteg = fGRF->Integral(-5*forigsigma,5*forigsigma,0.00001); +#endif + if ( fInteg == 0 ) fInteg = 1; + if (fDirect==kFALSE){ + //integrate charge over pad for different distance of pad + for (Int_t i =0; iIntegral(x1,x2,funParam,0.0001)/fInteg; +#else + fcharge[i] = fkNorm*fGRF->Integral(x1,x2,0.0001)/fInteg; +#endif + }; + } + else{ + for (Int_t i =0; iEval(x); + }; + } + fSigma = 0; + Float_t sum =0; + Float_t mean=0; + for (Float_t x =-fNRF/fDSTEPM1; x0){ + mean/=sum; + fSigma = TMath::Sqrt(fSigma/sum-mean*mean); + } + else fSigma=0; +#if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0) + fGRF->SetParameters(savParam.GetArray()); +#endif +} + +void AliTPCRF1D::Streamer(TBuffer &R__b) +{ + // Stream an object of class AliTPCRF1D. + if (R__b.IsReading()) { + AliTPCRF1D::Class()->ReadBuffer(R__b, this); + //read functions + + if (strncmp(fType,"Gauss",3)==0) {delete fGRF; fGRF = new TF1("funGauss",funGauss,-5.,5.,4);} + if (strncmp(fType,"Cosh",3)==0) {delete fGRF; fGRF = new TF1("funCosh",funCosh,-5.,5.,4);} + if (strncmp(fType,"Gati",3)==0) {delete fGRF; fGRF = new TF1("funGati",funGati,-5.,5.,4);} + if (fGRF) fGRF->SetParameters(funParam); + + } else { + AliTPCRF1D::Class()->WriteBuffer(R__b, this); + } +} + + +Double_t AliTPCRF1D::Gamma4(Double_t x, Double_t p0, Double_t p1){ + // + // Gamma 4 Time response function of ALTRO + // + if (x<0) return 0; + Double_t g1 = TMath::Exp(-4.*x/p1); + Double_t g2 = TMath::Power(x/p1,4); + return p0*g1*g2; +} + diff --git a/tpc/dirty/AliTPCRF1D.h b/tpc/dirty/AliTPCRF1D.h new file mode 100644 index 0000000000000..b09a591b7a98e --- /dev/null +++ b/tpc/dirty/AliTPCRF1D.h @@ -0,0 +1,80 @@ +#ifndef ALITPCRF1D_H +#define ALITPCRF1D_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ + +//////////////////////////////////////////////// +// Manager class for AliTPCRF1D // +//////////////////////////////////////////////// + + +// include files and class forward declarations + + +#include "TObject.h" +#include "TMath.h" +class TF1; + + +class AliTPCRF1D : public TObject { +public : + AliTPCRF1D(Bool_t direct=kFALSE,Int_t np=0,Float_t step=0 ); + AliTPCRF1D(const AliTPCRF1D &prf); + AliTPCRF1D & operator = (const AliTPCRF1D &prf); + ~AliTPCRF1D(); + Float_t GetRF(Float_t xin); //return RF in point xin + Float_t GetGRF(Float_t xin); //return generic response function in xin + void SetGauss(Float_t sigma,Float_t padWidth, Float_t kNorm); + //adjust RF with GAUSIAN as generic GRF + //if direct = kTRUE then it does't convolute distribution + void SetCosh(Float_t sigma,Float_t padWidth, Float_t kNorm); + void SetGati(Float_t K3, Float_t padDistance, Float_t padWidth, + Float_t kNorm); + //adjust RF with 1/Cosh as generic GRF + void SetParam(TF1 * GRF,Float_t padwidth,Float_t kNorm, + Float_t sigma=0); + //adjust RF with general function + void SetOffset(Float_t xoff) {fOffset=xoff;} + //set offset value + Float_t GetOffset(){return fOffset;} + Float_t GetPadWidth(){ return fpadWidth;}; + //return pad width + Float_t GetSigma(){return fSigma;} + //return estimated sigma of RF + void DrawRF(Float_t x1=-3 ,Float_t x2 =3.,Int_t N = 200); + //draw RF it don't delete histograms after drawing + /// it's on user !!!! + void Update(); + static Double_t Gamma4(Double_t x, Double_t p0, Double_t p1); +private: + Double_t funParam[5];//parameters of used charge function + Int_t fNRF; //number of interpolations point + Float_t fDSTEPM1; //element step for point + Float_t* fcharge; //[fNPRF] field with RF + Float_t forigsigma;//sigma of original distribution; + Float_t fpadWidth; //width of pad + Float_t fkNorm; //normalisation factor of the charge integral + Float_t fInteg; //integral of GRF on +- infinity + TF1 * fGRF; //charge distribution function + Float_t fSigma; //sigma of PAD response function + + Float_t fOffset; //offset of response function (for time reponse we + //have for expample shifted gauss) + //calculated during update + + Bool_t fDirect; //tell us if we use directly generalfunction + + Float_t fPadDistance; //pad to wire distance + char fType[5]; //type of the parametrisation + static Int_t fgNRF;//default number of interpolation points + static Float_t fgRFDSTEP;//default step in cm + ClassDef(AliTPCRF1D,2) +}; + + + + +#endif /* ALITPCRF1D_H */ + diff --git a/tpc/dirty/AliTPCROC.cxx b/tpc/dirty/AliTPCROC.cxx new file mode 100644 index 0000000000000..40fb279f42e20 --- /dev/null +++ b/tpc/dirty/AliTPCROC.cxx @@ -0,0 +1,450 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Geometry class for a single ROC // +// // +// // +/////////////////////////////////////////////////////////////////////////////// +#include "AliTPCROC.h" +#include "TMath.h" + +ClassImp(AliTPCROC) + + +AliTPCROC* AliTPCROC::fgInstance = 0; + + + + +//_ singleton implementation __________________________________________________ +AliTPCROC* AliTPCROC::Instance() +{ + // + // Singleton implementation + // Returns an instance of this class, it is created if neccessary + // + if (fgInstance == 0){ + fgInstance = new AliTPCROC(); + fgInstance->Init(); + } + return fgInstance; +} + + + + +void AliTPCROC::Init(){ + // + // initialize static variables + // + if (AliTPCROC::fNSectorsAll>0) return; + fNSectorsAll =72; + fNSectors[0] =36; + fNSectors[1] =36; + // + fNRows[0]= 63; + fNRows[1]= 96; + // + // number of pads in padrow + fNPads[0] = new UInt_t[fNRows[0]]; + fNPads[1] = new UInt_t[fNRows[1]]; + // + // padrow index in array + // + fRowPosIndex[0] = new UInt_t[fNRows[0]]; + fRowPosIndex[1] = new UInt_t[fNRows[1]]; + // + // inner sectors + // + UInt_t index =0; + for (UInt_t irow=0; irow=18){ + pos[2] *= -1.; + pos[1] *= -1.; + } +} + + +void AliTPCROC::GetPositionGlobal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos){ + // + // get position of center of pad - ideal frame used + // + GetPositionLocal(sector,row,pad,pos); + Double_t alpha = TMath::DegToRad()*(10.+20.*(sector%18)); + Float_t gx = pos[0]*TMath::Cos(alpha)-pos[1]*TMath::Sin(alpha); + Float_t gy = pos[1]*TMath::Cos(alpha)+pos[0]*TMath::Sin(alpha); + pos[0] = gx; + pos[1] = gy; +} diff --git a/tpc/dirty/AliTPCROC.h b/tpc/dirty/AliTPCROC.h new file mode 100644 index 0000000000000..adcbcc7990cfd --- /dev/null +++ b/tpc/dirty/AliTPCROC.h @@ -0,0 +1,137 @@ +#ifndef ALITPCROC_H +#define ALITPCROC_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id: AliTPCROC.h,v */ + +////////////////////////////////////////////////// +// // +// TPC geometry class for ROC // +// // +////////////////////////////////////////////////// + +#include + +//_____________________________________________________________________________ +class AliTPCROC : public TObject { + public: + static AliTPCROC* Instance(); + AliTPCROC(); + AliTPCROC(const AliTPCROC &roc); + AliTPCROC &operator = (const AliTPCROC & roc); //assignment operator + void Init(); + virtual ~AliTPCROC(); + void GetPositionLocal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos); + void GetPositionGlobal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos); + // + // numbering + UInt_t GetNSectors() const { return fNSectorsAll;} + UInt_t GetNRows(UInt_t sector) const { return (sectorAddIncludePath("-I$ALICEO2/") +.L MakeCDBEntry.C+ +MakeCDBEntry() + +*/ + +void MakeCDBEntry() +{ + // defaults + Manager *cdbManager = Manager::Instance(); + Storage* targetStorage = cdbManager->getStorage("local://../o2cdb"); + IdRunRange rangeZeroInfty(0,IdRunRange::Infinity()); + ConditionMetaData *metaData = new ConditionMetaData("Jens"); + + // + // get the tpcParameters object and dump it on the CDB + // + TFile f("param.root"); + AliTPCParam *par=(AliTPCParam*)f.Get("tpcParameters"); + f.Close(); + + ConditionId tpcParametersId("TPC/Calib/Parameters",rangeZeroInfty); + targetStorage->putObject(par, tpcParametersId, metaData); +} diff --git a/tpc/dirty/o2cdb/TPC/Calib/Parameters/Run0_999999999_v0_s0.root b/tpc/dirty/o2cdb/TPC/Calib/Parameters/Run0_999999999_v0_s0.root new file mode 100644 index 0000000000000000000000000000000000000000..7a9eef68e284926e6f6c8f0656b49056abcafa74 GIT binary patch literal 13491 zcmch8b8u%(w{<4Aor!H56Wg|pU+iRJ+qTV#Z9AFRwv8{(b3gp~-KtylcGW(otNZls zvv!^C>a%Ju2U}YwAfTCQARr)PARv~8Z~OUOPx-bV-}VanUlkNcARqz}pdU%PPLN&0 zNc$-mKYjrDbX|S-{&&g`HlTkTmB}}o5dlU0>-l>&ARsVhQ44DmD|%xCCj)vlTL&w8 zM_W@TR|5wVdRr!X0c#5*6FDY&*MB;k?2PD*EgYQO=}o_fIMUP6eLrGkY)G#xFGMe7 zU~OSYFK^&rU}NHB;^0WH=nP=c9^MD0iVKjSg}cVM`tpaIE zLy{u_^~(df{kYJE@{<0G*VVAj{WK+Q$`qzUR2Nk8NA#TOX&uTi#*9)D%AZ0ISyFQF zR$j|OM!ap=s!YfFL0n!WD8KvE=fyTWXCwe4?4Z$31?a0#Csv2+WuoW!XuOkiRAK?~uJ z>5inuWyEEnsh?bIu7`TpVV`XPmp78U7FinL^8}8C=Ge>szC$9W4&C*6QG8qR$ zxZCeLr1xg21&uO6HZ?BZ34TkEkvITGh0VBbFPiWtCybr6R0Fw?^!DCuBGQH&$D}uX zZ;6G)qU1GgWsg|(0-_9CM->`BGYtr9@;`hc9;VsUF8($tZ*&V-E3p&0YLcgaEho3T z(ua9(;?fO|OHYl4QD&1Bmt5wttwxMvT~A5c@1CnUNpmE4^Uh}{L|0EPI|dKgcf^I( zpdD$;^zF>tX$0IF4VV-G<~XLF^x^wc2jOUkX7@yVoYoZ|fT#g-Fva#Nu(K!i#U)1s zv~536nBXTJSl3g*<{|Ai?J?B2$622}l9hzt+}%B|?73FQ!NPY9-AKWI{av2B@gd| z&n95_kgtHNxqok#1;DqsyvcHqT+h24uugf&@kD>g^1zc-YsA<&9s%VV+-cJzzH{g> z+;PTWaKH|her|4$&^(8-v*dnHKHCz&qNXpFj(xlDR3m|xR-95QGPo~~iCtnb9p1`0 zT}<|YdF3G;w~4+e!z{y$np4*MQDKMl} zwFtv}fFMRh>E+$=#=+Ao_Jm6-;&6LB&9L>V1qD-qoR_qC=arkw{e0NsT$nT@%m8}Z zO{RlORr=tPzAU9#xl8vE_;ttgQLT$sEmHKEjfE9#HW6A+!5}@|?(ZRaTmOqY8vZXx zv*9|SXTPDig?^vXoKePeo!{^!2^SiYT_HtnSMsJX-M;ueXsprOj?XJYPP8@S$}Ho9 zAi(qJn0+6~hWnn|1-5&G z{NkEN2VJG=Eu@vglZQbT6m{TrI)hHLYRV)DbPg16DxY9>t<*C4xwn^17bj?qPHOE* z*K&$Ec>w+dJ^HnMRK`&l^sV<<9h!{WIZbg+eiCCyy3n+ES7n3ez z`YXnyWzQN$X*)H!E-|Zh+^v?{jlaK37h^;x)Z6js4(q!Z?-(Z8VrCkTMy-K;Y<)!6 z7}Xe8CfX;sInT>MOQ0IEi4H&0A1O?^p;y+Y#10s~^glOIayFArP0vB#UM^psi?cgk z@9=PkgEcZInXV3rm(w>t-<_Jdg4d&X68m<-AEg|zlccU?R9$U)@?+nOgXsrWcqHTm=v1?k|s~9yvImx$hAs&xaj~I z4*{p2_dA?;ku6`JxpFrx2nsG+vGXS32y7k%1&X3>qDhfshd--9*CH;;25FvI3~BY@ ziknufM45bw+Vc-?O!JbOi;gopu9TbvvPFWLR~Up`BMa^B%QrQn244Y5Vtyr!tdjUO zSEqGx#L=2ds>!>-FE^SHG-a}%f3jhRc(^i#=E4~29pL%8`yu{!4> zXRuRskvq&)KAIAhPNT~hn1_cW9zH9xn9rlx%BM@HGt-Mwm<=4W^x<$%xR1b(eAXW1 zfmxMXa+C@Yko`CtUIX50_umlnFa0=h23Da#)qa;HtSkZ5d0F~toOmyc?eE$-g!#zfSm&?vi18a0)l=c z2rqu;hK@&%j?MJniMrWEAgefZ$8eGZs#~ft2G+CLUau#3AMWN&b`f5~tKrW}0I7ne zljLC>hT(#(niWe=o?z?p1`u=04C<0QbICzbu^Goi-_b^g@mQbNuR7jq99_~3hy52VNI~ZD# zlOn{AAd>4$t6j^w{djrm({z6(a-COF%vn!QCgO8O?iwy6e-qwO#{B&~^E+Mh&?il9 zEoQk}WJ8R1HvjhB_?Ok4<_XX2msrE!yrPS(wdoa~+7Hy_g=V@n5xuwB|OrwKShb7eoXAkXY zw;J>zOhv2=OcM+6=xf3>v!YEng5_{qnuA8+Yn*!pToL6cqrF^uqJ^SsE^ElP5igq| z`)wC&hbPW350>{a_b|PEy37n9F5|88%$Cmi%-=}IR)0$v*-Q&-tT8JrJxXIYhsXsq z+0M0~7-Bbeq8wB|39S867z(`>kXyz+mM-zDmf6g`O9b~o>tF<86RF2g%u|9@^?UKl z6Tj>>CUvzyknsvLax;fbHT$Mo|-(4`-;)71Sq%m#>oQ`LRM zD#-p~?Mk8J$6=w=Fb>J@5u!QX0$PcYr376F)z|?&?zpZWz$bbJyjX~90VGdOu?w?W zBio!c351*?;;T2)qqR7c#=>!S@!8JNk=h+;k*f?@k((HWt+*F=~ao+Ts3Zg_b}cHj9A|8NbQY^Ik&}XL|MhITvQp$PBR-{=0+KBrj{9h zdUlTZw?2#xS3t)GaUPB4duxsEqA-uf=e#Az0oVw}CkTz*75V~^K+u!Zv~(DPwp{Z??1?6@F;|G!gw$UE2?S8t=jhE&UKDP+bnrB zzJ7zQm`4)kJf4ZN;o?cKaht`_MzAGl4>Q)YUU03rG%>tXx}&btRkN;OvBjQa|4KUl zoOY-$F~S>N`<;DWF_J*fOf>S@&bY6C1=z0uAs+qfY#P^p$ChAQH9Qh0@ON}JA!zhw znZm(P#mb?6ncup#Y4oyzsyjFQkl*906|sHFt%I4Rv8?8|zVSQUFePznXf+a-hO7ZStQ;bX%! zrX&X=Y~lq!*<_%r7PY8mDKw$2)a0SBZW@%COfr-$m5Y@ieuU z$wo@C$jD;78>ZQL*xI`Rhh=t>K zr}OG9_^=dNc}RL5T?|FFpug2;@_Np(|CaWCCsCxVDI_AENYJuQ{P`=_HDG_ga38gi zOxggJ=r>i!RydP1=IY|?IrvZiKMG!kUrXKz;3S0uO-2WbBYoomD&)CnHUyhGY#<~`zr9tt-fO-%J2%D+6RhM74+)^kc+B%E@5cOZzf69Ws!eX zl?Ted+h>FyVA2eo7x9Z6;F4}k@Td%FlWy9g!qvqN+NkzaFwhjd!ze^6n%>*+ek=SL zbkaZyvqV`;R@PFqNwI8K<`(^9q>Q6Sl1s!UuGW$#9l0$32dB)1crjY#LVXcXxf-R? z9%jj|VDkV&VyLtTC?3ivb8%b*RIk!1w+C4^D_r~gu`(;6KJtrA|8 zRpV4M&2n7dPcF%QUD-nDHv1WxI6rS5teNcW&lZ1d*>P>64J7PG%J6 zw6uoV#GH?h>-M1^{irf#1H!Z2$7`9lTq4iZ)iO9Z%At_WQXAW3xHWOudFx^*GTTH7a;=`4wO3xf7EDNP|>LOoVB?; zieK8XNu`F5l%dsn&w1iL$+>(93&h~<$;~=IUpF=N)LpiQ&12a7RQEv*%tnP*p`1t zFCb$uWoZjXCs-vX2a|7h$w2~OYKtsv>uhN4PGD^Ture|JzBxL5^DXcAKn;%n@GUwP zkw1r>t1k}l_HVnK*(oD->&6eN4}=<{R|2HwH0b`e_e-IgJWe@XHE}TWo?q@GW+E6YOzACX4CVboQ&9i3somyNT2x_WX%R^_Ga}4|#T|4!CA$;d@%*;s{srRJ1mem&IGvs4={4|FW#VyZKU>D1TaX=%G_J63jHbeGA47MGE?WJ)`)<)Y5dN)gb1=|oQ8RSEwA<6}{hi>?)t95S9 zdLKdq1Q|n4txy18MA14Ae~f`rQ*W*PH74H99nvbskiY>gV+WX#eu0Q*S&pPn9)om29Yi-6mRXO2$*78B z*#l;vsr_1yU)%`?(9bXU75u*P$6!%?`d~YFMNihL*v!l>&Wv>PfEb-RNZa3ik;Q4n&4-!)}MQf8X5AB>?~RfbX% zQP)RjG@Tk&`vCJiOQKfe32Kc-CET$|&d#NmPLLF|SWB`Gxk44SoetfuJnx{qGVe@V zsNINXLEhGd1eSawo|f6^PKuA7Z^nz5xhTF`*{QV$8dnywacBV(VhGoiJ6us6*juUSU~ ztr2QKCHF^BCB*J5d3n4TzA4^C6buN|20yaL&}~hg)cZ94xuCBLM){z(;{&4(7 zm6gTBBCNIxgFlPknk@dhzU-NDFXAB~sbu~v!@^n40CXOij^-LzxGVJXl1D}&$}z6f zAKT&V6rf$$kJb^^upD#B4)C|Qn{U+$*s2FXmm?)%ucEW~3N7Vdv~yaLuhqHg+qOB! zc0;Zq8LSK*VrsER2|yME6{+vElWJ^mO9dF{pcDDHGx=W+Skp1I!s zc*+p!AKr4`x-lBQ#w_bXCqnbAl4FlOwwR_3IzAUjq_c26D}2cPJUSPwO?xFW6!4?> zi!5n@+M97(i{&)|gSlTfSYLOxQn9?dsGPKIiqgoV&H_hky3Dcvh5Fj&Q>k|B4Vr?q z%c(Ld2MMA^*x;;P(m9Qx}MLn!rjHHHXPi z%_eApFsdp}t=>(8gQ82hzPlapHm(B1I(GqeP^*A`Qn?4}(t;*~77|F)#M0tHHnP3D zv>fUO1%gb6Hp;Q$oB?u+SMLf1|0QIbBolv5vCWgQSj6tys75{J51L ze(V>s`{PzOr|fUcI`s|&WSiSJ?xkWUhNgz3Kh}b{IssW)1UUu0#p|)pDI=@rz_g;p zV*@x>Cc9UaNc00s=k5b5Jip%fv#VM|2H3w&#isXI&EZ7pvxTr=6<~(QwVn#*e5&9Slr@>Xk^rhJc+FJhLIK zOzq5eTv6upWzHI4BgoefLj(SZkAugz5xy6{vK{)3rv7~~o5g$5x1siEiVa8U|cv(pR zPCQc4b_jqEY(UWZy?3210MHA!!0|cF;fdP0CWud)$&1EPxO;=n+8rH<$WYxHw=Yay zZLG~Z>r<~K5m%mdPZ*#~{gzB6IV69d*Dr9y{L^qOZG>B*#ZZ&LA_F?IGO{>d26R9x z(9}5aIo6Vi9aJYtLlI@jF@`y*0VZf$yh467tLgX zkhRK`Mpv3vtyka?QUc}jovxOuqueB^mm(4(!w;tSJH9O62Vo$H+%3WzPT)?}YZ&NH zs{Zk70iwk9vrG!YRU?Qs%WUXi;$s{;a+S)$xSe=ABnCk&Qsi51DXwp5X| zEIml202SrlaP3<6>g6}5u1E3OopxmN-Un#IgVISAkY-p)itQpDD1D8Ie$;r0!3EJK z=f2ddqyug2&3Qz6-d*QG4R6S^)TtF+;oOvU!y>l|uCY)s_Ed*n7$IyVIgJSy{*8Fh zq+wPdn^7&d+t46s{r81C*SRtkyPR6{`z5F6@y5Zx1%Uq#KZaUAIm$m*lD96frk!dx zSG%Q|=udqkU|&GAP9T0radeHYLO)V4-TX4f+nu)o5Eu6LZry<*cl=UCs&loyg|Ji( zoBntl9J$0#9A@JKb2cz`KRVpEfa!b$On&xm0xC~}%9l?~1KrZcTSiPWXX4m6P?C@l zx*)_L@DvXz>QXZis47uDtnr*;k@Pid{i*#fl*|te&Z$>3Hh2IIn4q~ZCJ5CQ7^_E- zsy~MxM|n3&r(_(I{ARmUVs0<9Kr(4+ep<;IE8dr?ZFy+)2k^o@bXiX^f&p1uh}XpI z?ifox9XBR;!vgaak41n~XX_7<2Xn9yk7=fhC=NnxiJ4rbJWzY850p`E0JCl%&QLFR zUA_2Gu7(ELfV|%9kzZSOEEQn%^JsDg1r>P;^31;laQgufH#tMYB!XsSMH4hA!84Pg z+BL)GZZRPjX{!J9(c|37zaxj}0)gJ8W#S#J{w=szK@Y1vI-^SjG;?9c`Pd`WW;g`5 zl*Z)l7Lz^+^oSPpM-8mFRFWIkOcKrieEdpv1s}P)_fuYH47~tKgcs>eVO<8>rpOM6 z9lY~{yb?I~s%ix<-d#a4(7c`3*I|!w#sO>i4zBM9F_`N*JSPc*jlggy?j6k2_5($L zJ>`>MNKnE56nbYoUOr=Z-Jut49g0Z4K==3W5{K8+xcZyPVVNf29fw3+xcT^GT!}#@~8`#VRC@0`630*3>`Z}ng?Rq{R zS`?&CqQfcIumcr)2Oc+lLO)r3cP6NY4AF@1c#&lawYogWK~j&2#$hnwEVHK`)}A_^ zjXYc%MOIC|&qfH;7q^8BcBDoEP~J-?nJwbIDNJzlplS^3Id#?S9vM`S zzH5Ygib70uRajW1Gu8BJt%B{k7KIn7TY~l|6K7Q00A&-kt}d#A-n<+TnH}FDb|&fp zy}iWRF9e`bCt@TU1#ZTkE>UP#4#1Tg5&G$xRcDGd^C1XA`aW@-dk9W@ouiz;Q9o_; zJYUIb@lVZ;F-bng8GVk)^kU(mv-vc~sB}{tWfrS6D{(MXP^~*fIh9n5Fay=e^sAg? zp|OkATdZpfk-JjUaWyooSAy44I&hp!rMN8zb>f1dlIIpcrkg!MDXaKSyg#Fof;I5&;ptx@Qk?Y3^;NpS9iY z9QrET3tN{pW1o+zs?%$Gf(2*VV&_QSA=6)Y;ULVi@7$N9O80uFNezBDp&LQv3z0LM zE%Cjzfd(?46IDVWdw|)>#jUa64s2W?-*qB1{~h45JyhFmx1bx-)=lJAFRCX~L#fHo zk{iSL=nS@lhJh_He%yiLkn(t$D^s?`gPxo5;lUc-^cTu(@Di@3ZI^m+k97Of3s;Y9 z#d3O7QPEKFayd?3Pg@6%eFlUZnygc)Hr{@g4xl3gw`h%0lU8Cm@F^h|59wF9ug5t2 zPxe|5`!mmL$Yl;5_30tbb$;Lw!8)Ko8lad4AQJy>t+S1I?y>#M9)+7piieo`A8~GW zKT&6_&YEkyT~G1vuMAs9ApJ@asNs1}6H?h`&L-ltbfF#ziP1mV6+bDa0!f6Q5jh_T z%pn_3+ zq5|`cOM`n_suNK4<^_>vCMCRB8U{V-T&YiLhylGHB}=G;4*8uQs9Fx((lwHLpNByK z+x<9T=gmSQx-_(k1fmz`yr0j&l*%~}|5{5|CMl-NZ!t|kOuVjVG(ptG9C2^rBdAoo zFNQY{2VA{P)_(*&c96@|$1?o)JK`-JdK=qv6 z@T&q>GZmkGHlJDF#@r8MXl|Be67{o$WUmy~Z4r}L3*a9~BG$HcC_cV(rh9~xChiuK zEG|wKAjh@Xd{mYsSfDhYgf5N!@j^XD^&Zc_bREzVCVkvjhZiPAcvdTb861zVHe(~G zF|#c*wU?)hk0hXqf$q%U;18zG;Oi~YJ5#XV$=L1eh^S1cJ&i`%{}7ZRlO;1Hu@)e6 zL_fd&*PDF;65h z!?pNFqV(ZEc2Jb5Pn8i+5g8f5M}a5R;XpK z2(WZkoEzNpTQy;uq(>Lc7ph7KEm4P8Vx(0brBz~ORnmsjq=V1JQe|WJotG1z%E&)- zov0wiF&|yC2)}7Fd!9RJV#@YG%Q$jaW;Adbw~YnT-ly5-nAlQ~+?? z-KygB6gyJN@}`-trcaUUB(N(bbJqWg=LlP?X{Y$tc@WwNW!cfbOD{qxT{o2_BwwJP z22zGEj(R^-8JjpGYuQ*dN=T7H*z_rjR6T7x2rs5zLaz>>o;cB~+USqxPMit{`yfxc zm7EjJk~-p3!j)}QMz=!5Gtt3SBrZo`JM{h7iW@kD9ng80nYDgqN%C7JOldo@MqGp{ zSg7w=vn&+{Nk=Sbr0;&YM zRQ!L|sX;ryA)x=!ZXuFU`e-yf6;l^b!FgycFr$->nG~0L?xGN%IP^5e&j306b3W0E zl1S)%JCL^e_b-_!nfprNh55A2P*jd8>dDJ$SSlnF?~s?VyMC9XU9M?o!j`a$BYZbu z>$B#$P){_N#~b*2L%6SrsYDMA*8CdVI=?=#VYyjHY%@QqybBEQ3e+2jDO2B5S!gL0 zQ93-AB$0l=<6rfjvvToaQX&x#*if79BoKjiX>uK@UEC*i^K3KJZL&{yq{| z<)PNwI&7Tu{J-tg7vsX*#(}xS9IE(X26?_J;Ui*`)#BKN7YVZzT+WghlW_1XNXNc* zc>QNnGXjm#6vqG_SZ;;JxMRgd^DEe4Z0yq-Id)i%7Pg)3&P!w^TT;>oR~ z#m1v6hFb^7W@zUS!^?v^PW)Q-B$dGas*FBxf;gkV(%b7fx1ZNx69`f%EqO}K0L<2% zGtY4e`+j3iImPK_4r8FDr%m@~KKr3MrqeOYlXj9t!iqk(`iM{HC*~$#PSZ@P^+|5h zR)L*&_%Hsgt;iU5oP(Ct1X!$fprzh%XxKn$Y0mRbae%o_U&S%%PKaJRBmyKshAXzs zrN#lBj!ov%S{fDg7zPXO^Bl=gzfci%dhr zWIKZX1&B7-d7~Ap^B6IbB>wkYW+}-Qhr_0}7FhL?9RrYFs}6rMU$zdU6FaX}Py7qe zTKpm-_M~$2{0eDOYoH%nzJDtBTUkls_Ze=I>wT{lSTZG{n+h_wdlyc6@&sua%C+Gb z8J}RNU-QT})wXb~Vh?+nOG+#>#nLUUQLW@AHcwpWP;Dw2WB3>*`yP){+%cJf@kj=h znzVnB+DYZuW;q&`dD(8V#ksj%4-lsALw5oxVTEQY?N+o(QTA$;uh1O@>WpnsGE+Dt zA)-*2bY(;_!ZY}Z(2!CH+Gc)~$aTvoGZyD9V=7?>U23#M$w54K2pBN;Tn=tJt*Lga z_UypU^(V$oezO}1G^>BSYz4;0qud86q64k!H3oFgS=vM|;c-ziOn(txq>ev@f8+Iv z-^yOJL5IZ_2$@EY#YW2H^7(b-)qeqv;YJem;K~0hedcktkrZ2n%NZ|eTH+A~ot6;_ z7^v3ah5aP$O!-kyalu;^v*i_4$+a5Gd46TjMv0v_RR`o28!n2>fr&l-hVxKmOkLaX zQ(rc#l+%;JzhD+F63N4y#gAJqt5LiJ4%?YX%$dx!mvv^tPOVN#W7ZAsNV&y3Mb%K{!Xbl&A`-wVbcjM67-jOUrJYB)?sOqC%Z504!n< z;Ot8~Nd+bD$Y3i6oV?#Cy%<+i*`K*v#;0_3X^d-XrqJf!Ntp{mN;!+IL21BOpwCAa z30ur(=lSXjKflM*_ah79R{iJ<{5HrPu9hRzk6ynKSPQA&XwBN2HeL;eHL#ZeyGv$1 z<4>fl5z!qD)a=Gj&2aFWlGZi|GZSaAa&l6a0*Qq%2@0NJj)*dE&v2$zb-JivH1vfI zJfNm6Cu}U(FnzZeW+py1tDrXmQM4j_V>JGvU2+tqI}7_3U+LgSd#!Xa94J?>Ru&<= zG2P}s50<-e^)n>qCa>2i9(A6aC24n6i443x?AaolgoGkWMN7clj}reu&iG03DL`Ly~5f0s)zuH`L z{!i3G2_?drxMt9uE@9*0#RsXo#b)eZ;jx1|wNoxF%pbVLh`XpROu)yf%Php(YvE#B zh~NHem}06=cvdAE#8KZ{y!#KL&zu&Bh`4TN>5KO~2gr-L$Q-A@-}K25bKGVvDqB?= zfoa-6+vX@D^;GwN`;B_1je1LyyE4adUnZjs7SKWt-WJoH@27TkXt6Oi<7T5Pg@XCb zD?X>^U#k>fYf10K%kHq{UoW`tU)#TKmnLv&%q%jo-55`fdwOS|m3fZcg`Fy4+sb{lFi4|%a+|RygB6t*uwqSzrTf*p-TaEj_ z>PvrF#F476m|dtm#kYr7XQounp_HL48JpcWeY$|*6bf~T!)vU>0%Dh#^il)p(%im+xQB=EqmBhpJEHuWg1Bh%(T zrpwk5mNvzyeF2sDGO5HdnA~f28Mcu4?W37=`-YOdrAdM9u$-x|dua(^_vN|T9=(PHRCaP$bdf-1{!|vlU)79gSc(zm$cc<-lsmE zxx2>{bN8*u9v`H?J2Ma6nm=E=cCAfh39TWi94mhGvLNerm7Gp(ZSP`Xe{y!R>v zofMg;6zm%RpvN$_q6{`VMp5%^+j?bcR)R{`)GeAMVaBOgU(P;WwS&urp5Dtj@(ZJv z$DAHl#ijZPpB*0y|Exsdu|O=QOXXPz*+;w|AD@*nt$XWd1N5c#ualz}Ma}n^QmW@z zhMp)=KxUYLk;>-|A>CJPv~38|U&d;HQLmWW!;gI&gH{zgVE@q-bc{6Q7X+iXdzW<` zo*4f__Fh5fSw|ylVx4ZkTUO{6QqjI84EmNJuc_O+4D>|_P0Yr;XnN&VKNqiboMXQh zRP$UJ)*`o?#egrumN=Kp;XCs}T&0I7RC>2|91GpWh)wQANl=F+49+!lY>MDmb#@}iChOi@e;W+OV`xUEn_DrQrG^6;JwF>$*CMJfo0oxw@%U_qLauKf< zg#vvWS3#_IkbGd9w&d-hdVHT?GG4BKTM6@-6fDH;LdsE_C^x_WOnYCmND( e4=Mk`f&PDR{#6Hk=S2MH;e3N(X>est1o~f7?79{J literal 0 HcmV?d00001 From 6e05a51577dae56af9e50668365647c9a76442df Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 2 Jul 2015 15:44:28 +0200 Subject: [PATCH 098/135] Implement TPC material, geometry and simple hit creation o First working TPC hit generation o Still dirty stuff to clean up o ATO-157 --- Detectors/TPC/simulation/include/Detector.h | 16 +- Detectors/TPC/simulation/src/Detector.cxx | 306 +++++++++++++++++- .../TPC/simulation/src/tpcSimulationLinkDef.h | 17 + tpc/CMakeLists.txt | 53 +++ 4 files changed, 383 insertions(+), 9 deletions(-) create mode 100644 tpc/CMakeLists.txt diff --git a/Detectors/TPC/simulation/include/Detector.h b/Detectors/TPC/simulation/include/Detector.h index 593963a63e62d..5d02865a9646f 100644 --- a/Detectors/TPC/simulation/include/Detector.h +++ b/Detectors/TPC/simulation/include/Detector.h @@ -9,7 +9,7 @@ class FairVolume; // lines 10-10 class TClonesArray; // lines 11-11 namespace AliceO2 { namespace TPC { class Point; } } // lines 15-15 - +class AliTPCParam; namespace AliceO2 { namespace TPC { @@ -37,6 +37,7 @@ class Detector: public AliceO2::Base::Detector { /** this method is called for each step during simulation * (see FairMCApplication::Stepping()) */ +// virtual Bool_t ProcessHitsOrig( FairVolume* v=0); virtual Bool_t ProcessHits( FairVolume* v=0); /** Registers the produced collections in FAIRRootManager. */ @@ -51,6 +52,8 @@ class Detector: public AliceO2::Base::Detector { /** Create the detector geometry */ void ConstructGeometry(); + /** Define the sensitive volumes of the geometry */ + void defineSensitiveVolumes(); /** This method is an example of how to add your own point @@ -90,10 +93,19 @@ class Detector: public AliceO2::Base::Detector { Double32_t mLength; //! length Double32_t mEnergyLoss; //! energy loss - /** container for data points */ + /// Create the detector materials + virtual void createMaterials(); + + /// Construct the detector geometry + void constructDetectorGeometry(); + /** container for data points */ TClonesArray* mPointCollection; + Int_t mSens; //! if to include stripts in the geometry + //TODO: dirty + AliTPCParam *mParam; + Detector(const Detector&); Detector& operator=(const Detector&); diff --git a/Detectors/TPC/simulation/src/Detector.cxx b/Detectors/TPC/simulation/src/Detector.cxx index f5f317ecb4690..df0ad044292a7 100644 --- a/Detectors/TPC/simulation/src/Detector.cxx +++ b/Detectors/TPC/simulation/src/Detector.cxx @@ -12,14 +12,53 @@ #include "TVirtualMCStack.h" // for TVirtualMCStack #include // for NULL + +#include "FairGeoVolume.h" +#include "FairGeoNode.h" +#include "FairGeoLoader.h" +#include "FairGeoInterface.h" +#include "FairRun.h" +#include "FairRuntimeDb.h" +#include "FairLogger.h" + +#include "Data/DetectorList.h" +#include "Data/Stack.h" + +#include "TSystem.h" +#include "TClonesArray.h" +#include "TVirtualMC.h" + +// geo stuff +#include "TGeoManager.h" +#include "TGeoGlobalMagField.h" +#include "TGeoVolume.h" +#include "TGeoPcon.h" +#include "TGeoTube.h" +#include "TGeoCone.h" +#include "TGeoPgon.h" +#include "TGeoTrd1.h" +#include "TGeoCompositeShape.h" +#include "TGeoPara.h" +#include "TGeoPhysicalNode.h" +#include "TGeoHalfSpace.h" +#include "TGeoArb8.h" +#include "TGeoMatrix.h" + + +// dirty stuff +#include "AliTPCParam.h" +#include "Manager.h" +#include "Condition.h" + #include using std::cout; using std::endl; +using std::ios_base; using namespace AliceO2::TPC; Detector::Detector() - : AliceO2::Base::Detector("Detector", kTRUE, kAliTpc), + : AliceO2::Base::Detector("TPC", kTRUE, kAliTpc), mTrackNumberID(-1), mVolumeID(-1), mPosition(), @@ -27,7 +66,9 @@ Detector::Detector() mTime(-1.), mLength(-1.), mEnergyLoss(-1), - mPointCollection(new TClonesArray("DetectorPoint")) + mPointCollection(new TClonesArray("AliceO2::TPC::Point")), + mSens(0), + mParam(0x0) { } @@ -40,8 +81,18 @@ Detector::Detector(const char* name, Bool_t active) mTime(-1.), mLength(-1.), mEnergyLoss(-1), - mPointCollection(new TClonesArray("Point")) + mPointCollection(new TClonesArray("AliceO2::TPC::Point")), + mParam(0x0) { + //TODO: Change this at some point + AliceO2::CDB::Condition* tpcParametersCondition = AliceO2::CDB::Manager::Instance()->getObject("TPC/Calib/Parameters"); + if (tpcParametersCondition) { + mParam = dynamic_cast(tpcParametersCondition->getObject()); + } + if (!mParam) { + LOG(ERROR) << "Could not load TPC Parameters" << FairLogger::endl; + } + } Detector::~Detector() @@ -55,12 +106,13 @@ Detector::~Detector() void Detector::Initialize() { AliceO2::Base::Detector::Initialize(); +// LOG(INFO) << "Initialize" << FairLogger::endl; } Bool_t Detector::ProcessHits(FairVolume* vol) { /** This method is called from the MC stepping */ - +// LOG(INFO) << "TPC::ProcessHits" << FairLogger::endl; //Set parameters at entrance of volume. Reset ELoss. if ( TVirtualMC::GetMC()->IsTrackEntering() ) { mEnergyLoss = 0.; @@ -83,6 +135,12 @@ Bool_t Detector::ProcessHits(FairVolume* vol) AddHit(mTrackNumberID, mVolumeID, TVector3(mPosition.X(), mPosition.Y(), mPosition.Z()), TVector3(mMomentum.Px(), mMomentum.Py(), mMomentum.Pz()), mTime, mLength, mEnergyLoss); +// LOG(INFO) << "TPC::AddHit" << FairLogger::endl +// << " -- " << mTrackNumberID <<"," << mVolumeID +// << ", Pos: (" << mPosition.X() << ", " << mPosition.Y() <<", "<< mPosition.Z() << ") " +// << ", Mom: (" << mMomentum.Px() << ", " << mMomentum.Py() << ", " << mMomentum.Pz() << ") " +// << " Time: "<< mTime <<", Len: " << mLength << ", Eloss: " << +// mEnergyLoss << FairLogger::endl; // Increment number of Detector det points in TParticle AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)TVirtualMC::GetMC()->GetStack(); @@ -93,6 +151,241 @@ Bool_t Detector::ProcessHits(FairVolume* vol) return kTRUE; } + +// Bool_t Detector::ProcessHits(FairVolume* vol) +// { +// // +// // Called for every step in the Time Projection Chamber +// // +// +// // +// // parameters used for the energy loss calculations +// // +// const Float_t prim = 14.35; // number of primary collisions per 1 cm +// const Float_t poti = 20.77e-9; // first ionization potential for Ne/CO2 +// const Float_t wIon = 35.97e-9; // energy for the ion-electron pair creation +// const Float_t kScalewIonG4 = 0.85; // scale factor to tune kwIon for Geant4 +// const Float_t kFanoFactorG4 = 0.7; // parameter for smearing the number of ionizations (nel) using Geant4 +// const Int_t kMaxDistRef =15; // maximal difference between 2 stored references +// // Float_t prim = fTPCParam->GetNprim(); +// // Float_t poti = fTPCParam->GetFpot(); +// // Float_t wIon = fTPCParam->GetWmean(); +// +// const Float_t kbig = 1.e10; +// +// Int_t id,copy; +// Float_t hits[5]; +// Int_t vol[2]; +// TLorentzVector p; +// +// vol[1]=0; // preset row number to 0 +// // +// if (!fPrimaryIonisation) TVirtualMC::GetMC()->SetMaxStep(kbig); +// +// if(!TVirtualMC::GetMC()->IsTrackAlive()) return; // particle has disappeared +// +// Float_t charge = TVirtualMC::GetMC()->TrackCharge(); +// +// if(TMath::Abs(charge)<=0.) return; // take only charged particles +// +// // check the sensitive volume +// +// id = TVirtualMC::GetMC()->CurrentVolID(copy); // vol ID and copy number (starts from 1!) +// if(id != fIDrift && id != fIdSens) return; // not in the sensitive folume +// +// if ( fPrimaryIonisation && id == fIDrift ) { +// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); +// TVirtualMC::GetMC()->SetMaxStep(0.2+(2.*rnd-1.)*0.05); // 2 mm +- rndm*0.5mm step +// } +// +// //if ( fPrimaryIonisation && id == fIDrift && TVirtualMC::GetMC()->IsTrackEntering()) { +// // TVirtualMC::GetMC()->SetMaxStep(0.2); // 2 mm +// //} +// +// TVirtualMC::GetMC()->TrackPosition(p); +// Double_t r = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); +// // +// +// // +// Double_t angle = TMath::ACos(p[0]/r); +// angle = (p[1]<0.) ? TMath::TwoPi()-angle : angle; +// // +// // angular segment, it is not a real sector number... +// // +// Int_t sector=TMath::Nint((angle-fTPCParam->GetInnerAngleShift())/ +// fTPCParam->GetInnerAngle()); +// // rotate to segment "0" +// Float_t cos,sin; +// fTPCParam->AdjustCosSin(sector,cos,sin); +// Float_t x1=p[0]*cos + p[1]*sin; +// // check if within sector's limits +// if((x1>=fTPCParam->GetInnerRadiusLow()&&x1<=fTPCParam->GetInnerRadiusUp()) +// ||(x1>=fTPCParam->GetOuterRadiusLow()&&x1<=fTPCParam->GetOuterRadiusUp())){ +// // calculate real sector number... +// if (x1>fTPCParam->GetOuterRadiusLow()){ +// sector = TMath::Nint((angle-fTPCParam->GetOuterAngleShift())/ +// fTPCParam->GetOuterAngle())+fTPCParam->GetNInnerSector(); +// if (p[2]<0) sector+=(fTPCParam->GetNOuterSector()>>1); +// } else { +// if (p[2]<0) sector+=(fTPCParam->GetNInnerSector()>>1); +// } +// // +// // here I have a sector number +// // +// +// vol[0]=sector; +// +// static Double_t lastReferenceR=0; +// if (TMath::Abs(lastReferenceR-r)>kMaxDistRef){ +// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); +// lastReferenceR = r; +// } +// +// // check if change of sector +// if(sector != fSecOld){ +// fSecOld=sector; +// // add track reference +// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); +// } +// // track is in the sensitive strip +// if(id == fIdSens){ +// // track is entering the strip +// if (TVirtualMC::GetMC()->IsTrackEntering()){ +// Int_t totrows = fTPCParam->GetNRowLow()+fTPCParam->GetNRowUp(); +// vol[1] = (copy<=totrows) ? copy-1 : copy-1-totrows; +// // row numbers are autonomous for lower and upper sectors +// if(vol[0] > fTPCParam->GetNInnerSector()) { +// vol[1] -= fTPCParam->GetNRowLow(); +// } +// // +// if(vol[0]GetNInnerSector()&&vol[1] == 0){ +// +// // lower sector, row 0, because Jouri wants to have this +// +// TVirtualMC::GetMC()->TrackMomentum(p); +// hits[0]=p[0]; +// hits[1]=p[1]; +// hits[2]=p[2]; +// hits[3]=0.; // this hit has no energy loss +// // Get also the track time for pileup simulation +// hits[4]=TVirtualMC::GetMC()->TrackTime(); +// +// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); +// } +// // +// +// TVirtualMC::GetMC()->TrackPosition(p); +// hits[0]=p[0]; +// hits[1]=p[1]; +// hits[2]=p[2]; +// hits[3]=0.; // this hit has no energy loss +// // Get also the track time for pileup simulation +// hits[4]=TVirtualMC::GetMC()->TrackTime(); +// +// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); +// +// } +// else return; +// } +// //----------------------------------------------------------------- +// // charged particle is in the sensitive drift volume +// //----------------------------------------------------------------- +// if(TVirtualMC::GetMC()->TrackStep() > 0) { +// Int_t nel=0; +// if (!fPrimaryIonisation) { +// nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; +// } else { +// +// /* +// * static Double_t deForNextStep = 0.; +// * // Geant4 (the meaning of Edep as in Geant3) - wrong +// * //nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; +// * +// * // Geant4 (the meaning of Edep as in Geant3) - NEW +// * Double_t eAvailable = TVirtualMC::GetMC()->Edep() + deForNextStep; +// * nel = (Int_t)(eAvailable/wIon); +// * deForNextStep = eAvailable - nel*wIon; +// */ +// +// //new Geant4-approach +// Double_t meanIon = TVirtualMC::GetMC()->Edep()/(wIon*kScalewIonG4); +// nel = (Int_t) ( kFanoFactorG4*AliMathBase::Gamma(meanIon/kFanoFactorG4)); // smear nel using gamma distr w mean = meanIon and variance = meanIon/kFanoFactorG4 +// } +// nel=TMath::Min(nel,300); // 300 electrons corresponds to 10 keV +// // +// TVirtualMC::GetMC()->TrackPosition(p); +// hits[0]=p[0]; +// hits[1]=p[1]; +// hits[2]=p[2]; +// hits[3]=(Float_t)nel; +// +// // Add this hit +// +// // if (fHitType&&2){ +// if(fHitType){ +// TVirtualMC::GetMC()->TrackMomentum(p); +// Float_t momentum = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); +// Float_t precision = (momentum>0.1) ? 0.002 :0.01; +// fTrackHits->SetHitPrecision(precision); +// } +// +// // Get also the track time for pileup simulation +// hits[4]=TVirtualMC::GetMC()->TrackTime(); +// +// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); +// if (fDebugStreamer){ +// // You can dump here what you need +// // function CreateDebugStremer() to be called in the Config.C macro +// // if you want to enable it +// // By default debug streaemer is OFF +// Float_t edep = TVirtualMC::GetMC()->Edep(); +// Float_t tstep = TVirtualMC::GetMC()->TrackStep(); +// Int_t pid=TVirtualMC::GetMC()->TrackPid(); +// (*fDebugStreamer)<<"hit"<< +// "x="<0 +// } //within sector's limits +// // Stemax calculation for the next step +// +// Float_t pp; +// TLorentzVector mom; +// // below is valid only for Geant3 (fPromaryIonisation not set) +// if(!fPrimaryIonisation){ +// TVirtualMC::GetMC()->TrackMomentum(mom); +// Float_t ptot=mom.Rho(); +// Float_t betaGamma = ptot/TVirtualMC::GetMC()->TrackMass(); +// +// //Int_t pid=TVirtualMC::GetMC()->TrackPid(); +// // if((pid==kElectron || pid==kPositron) && ptot > 0.002) +// // { +// // pp = prim*1.58; // electrons above 20 MeV/c are on the plateau! +// // } +// // else +// // { +// +// betaGamma = TMath::Max(betaGamma,(Float_t)7.e-3); // protection against too small bg +// TVectorD *bbpar = fTPCParam->GetBetheBlochParametersMC(); //get parametrization from OCDB +// pp=prim*AliMathBase::BetheBlochAleph(betaGamma,(*bbpar)(0),(*bbpar)(1),(*bbpar)(2),(*bbpar)(3),(*bbpar)(4)); +// // } +// +// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); +// +// TVirtualMC::GetMC()->SetMaxStep(-TMath::Log(rnd)/pp); +// } +// +// } + void Detector::EndOfEvent() { @@ -129,9 +422,8 @@ void Detector::Reset() void Detector::ConstructGeometry() { - /** If you are using the standard ASCII input for the geometry - just copy this and use it for your detector, otherwise you can - implement here you own way of constructing the geometry. */ + // Create the detector materials + createMaterials(); } diff --git a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h index e3830d7790d5a..db01b62be0a08 100644 --- a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h +++ b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h @@ -8,4 +8,21 @@ #pragma link C++ class AliceO2::TPC::Detector+; #pragma link C++ class AliceO2::TPC::Point+; +#pragma link C++ class AliTPCRF1D-; // 1D Response Function (used for Time Response Function) +#pragma link C++ class AliTPCPRF2D-; // 2D Pad Response Function + +#pragma link C++ class AliH2F+; // Additional functionality to 2D Histogram (used in Draw padResponse func) + // --- remove it, check miminal code needed for drawing +#pragma link C++ class AliDetectorParam+; // Base class for AliTPCParam (before also used for TRD) +#pragma link C++ class AliTPCParam+; // Parameterize the Geometry, Diffusion, ResponseFunction, Default HV, ... + // Base class for AliTPCParamSR +#pragma link C++ class AliTPCParamSR-; // SR = Straight Rows + // --- In principle only 1 class of (AliDetectorParam, AliTPCParam, + // AliTPCParamSR) is needed - can be merged, but breaks OCDB +#pragma link C++ class AliTPCROC+; // Geometry for 1 ROC (ReadOutChamber) - hardcoded + // --- (possible) duplication of AliTPCParam + +#pragma link C++ class AliLog+; +#pragma link C++ class AliMathBase+; + #endif diff --git a/tpc/CMakeLists.txt b/tpc/CMakeLists.txt new file mode 100644 index 0000000000000..befc67c3f9f46 --- /dev/null +++ b/tpc/CMakeLists.txt @@ -0,0 +1,53 @@ +# Create a library called "libO2tpc" which includes the source files given in +# the array . +# The extension is already found. Any number of sources could be listed here. + +set(INCLUDE_DIRECTORIES +${CMAKE_SOURCE_DIR}/ +${CMAKE_SOURCE_DIR}/tpc +${CMAKE_SOURCE_DIR}/tpc/dirty +${CMAKE_SOURCE_DIR}/o2cdb +) + +set(SYSTEM_INCLUDE_DIRECTORIES +${ROOT_INCLUDE_DIR} +${BASE_INCLUDE_DIRECTORIES} +${Boost_INCLUDE_DIRS} +${FAIRROOT_INCLUDE_DIR} +${AlFa_DIR}/include +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES +${ROOT_LIBRARY_DIR} +${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS +ContainerFactory.cxx +Point.cxx +Detector.cxx +dirty/AliDetectorParam.cxx +dirty/AliH2F.cxx +dirty/AliMathBase.cxx +dirty/AliTPCParam.cxx +dirty/AliTPCParamSR.cxx +dirty/AliTPCPRF2D.cxx +dirty/AliTPCRF1D.cxx +dirty/AliTPCROC.cxx +dirty/AliLog.cxx +) + +Set(LINKDEF TpcLinkDef.h) +Set(LIBRARY_NAME tpc) +Set(DEPENDENCIES + Base + Minuit + AliceO2Base + AliceO2Cdb +) +GENERATE_LIBRARY() From f288b38872e524adafb37dd1aef0445aceceac66 Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 2 Jul 2015 15:45:52 +0200 Subject: [PATCH 099/135] small fixes to be able to compile --- itsmft/its/CMakeLists.txt | 57 +++++++++++++++++++++++++++++ o2cdb/CMakeLists.txt | 76 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 itsmft/its/CMakeLists.txt create mode 100644 o2cdb/CMakeLists.txt diff --git a/itsmft/its/CMakeLists.txt b/itsmft/its/CMakeLists.txt new file mode 100644 index 0000000000000..ec28c686b399f --- /dev/null +++ b/itsmft/its/CMakeLists.txt @@ -0,0 +1,57 @@ +set(INCLUDE_DIRECTORIES +${CMAKE_SOURCE_DIR} +${CMAKE_SOURCE_DIR}/itsmft/its +${CMAKE_SOURCE_DIR}/header +) + +set(SYSTEM_INCLUDE_DIRECTORIES +${CMAKE_SOURCE_DIR} +${CMAKE_SOURCE_DIR}/itsmft/its +${CMAKE_SOURCE_DIR}/header +${BASE_INCLUDE_DIRECTORIES} +${Boost_INCLUDE_DIRS} +${FAIRROOT_INCLUDE_DIR} +${AlFa_DIR}/include +${ROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES +${ROOT_LIBRARY_DIR} +${FAIRROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +set(SRCS +UpgradeGeometryTGeo.cxx +V11Geometry.cxx +UpgradeV1Layer.cxx +Segmentation.cxx +UpgradeSegmentationPixel.cxx +GeometryManager.cxx +Detector.cxx +ContainerFactory.cxx +GeometryHandler.cxx +MisalignmentParameter.cxx +Point.cxx +Chip.cxx +Digit.cxx +Digitizer.cxx +DigitizerTask.cxx +DigitWriteoutBuffer.cxx +DigitContainer.cxx +DigitLayer.cxx +DigitStave.cxx +) + +Set(LINKDEF itsLinkDef.h) +Set(LIBRARY_NAME its) +Set(DEPENDENCIES + Base + AliceO2Base +) + +GENERATE_LIBRARY() diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt new file mode 100644 index 0000000000000..089a4fa3e14f0 --- /dev/null +++ b/o2cdb/CMakeLists.txt @@ -0,0 +1,76 @@ +configure_file(${CMAKE_SOURCE_DIR}/o2cdb/conditions-server.json ${CMAKE_BINARY_DIR}/bin/config/conditions-server.json) +configure_file(${CMAKE_SOURCE_DIR}/o2cdb/conditions-client.json ${CMAKE_BINARY_DIR}/bin/config/conditions-client.json) +configure_file(${CMAKE_SOURCE_DIR}/o2cdb/fill_local_ocdb.C ${CMAKE_BINARY_DIR}/bin/config/fill_local_ocdb.C) + +set(INCLUDE_DIRECTORIES + ${CMAKE_SOURCE_DIR}/o2cdb +) + +set(SYSTEM_INCLUDE_DIRECTORIES + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIR} + ${ROOT_INCLUDE_DIR} + ${FAIRROOT_INCLUDE_DIR} + ${ZMQ_INCLUDE_DIR} + ${AlFa_DIR}/include +) + +include_directories(${INCLUDE_DIRECTORIES}) +include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES + ${ROOT_LIBRARY_DIR} + ${Boost_LIBRARY_DIRS} + ${FAIRROOT_LIBRARY_DIR} + ${AlFa_DIR}/lib +) +link_directories(${LINK_DIRECTORIES}) + +set(SRCS + Manager.cxx + Condition.cxx + GridStorage.cxx + LocalStorage.cxx + FileStorage.cxx + ConditionMetaData.cxx + ConditionId.cxx + IdPath.cxx + IdRunRange.cxx + Storage.cxx + XmlHandler.cxx +) + +Set(NO_DICT_SRCS + ConditionsMQServer.cxx + ConditionsMQClient.cxx +) + +set(DEPENDENCIES + Base ParBase FairMQ ParMQ ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} fairmq_logger pthread Core Tree XMLParser Hist FairTools +) + +set(LIBRARY_NAME AliceO2Cdb) +set(LINKDEF O2CdbLinkDef.h) +GENERATE_LIBRARY() + +Set(Exe_Names + conditions-server + conditions-client +) + +Set(Exe_Source + runConditionsServer.cxx + runConditionsClient.cxx +) + +list(LENGTH Exe_Names _length) +math(EXPR _length ${_length}-1) + +ForEach(_file RANGE 0 ${_length}) + list(GET Exe_Names ${_file} _name) + list(GET Exe_Source ${_file} _src) + Set(EXE_NAME ${_name}) + Set(SRCS ${_src}) + Set(DEPENDENCIES AliceO2Cdb) + GENERATE_EXECUTABLE() +EndForEach(_file RANGE 0 ${_length}) From 501f5f44cb6da94426c7ad590d149b00dc4c9a7f Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 2 Jul 2015 15:46:21 +0200 Subject: [PATCH 100/135] add TPC to simple simulation o ATO-157 --- macro/run_sim.C | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/macro/run_sim.C b/macro/run_sim.C index 96c6b67060916..cc0f8dd21f11b 100644 --- a/macro/run_sim.C +++ b/macro/run_sim.C @@ -33,6 +33,11 @@ void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") TStopwatch timer; timer.Start(); + // CDB manager + AliceO2::CDB::Manager *cdbManager = AliceO2::CDB::Manager::Instance(); + cdbManager->setDefaultStorage("local://$ALICEO2/tpc/dirty/o2cdb"); + cdbManager->setRun(0); + // gSystem->Load("libAliceO2Base"); // gSystem->Load("libAliceO2its"); @@ -153,6 +158,10 @@ void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") } } + // ===| Add TPC |============================================================ + AliceO2::Base::Detector* tpc = new AliceO2::TPC::Detector("TPC", kTRUE); + run->AddModule(tpc); + // Create PrimaryGenerator FairPrimaryGenerator* primGen = new FairPrimaryGenerator(); FairBoxGenerator* boxGen = new FairBoxGenerator(2212, 1); /*protons*/ @@ -166,6 +175,9 @@ void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") run->SetGenerator(primGen); + // store track trajectories + run->SetStoreTraj(kTRUE); + // Initialize simulation run run->Init(); From b95d8354a2a8edb18f4015cc5dad9cd3ce9dfc79 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 22 Mar 2016 12:03:44 +0100 Subject: [PATCH 101/135] remove empty text --- tpc/Detector.cxx | 3130 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3130 insertions(+) create mode 100644 tpc/Detector.cxx diff --git a/tpc/Detector.cxx b/tpc/Detector.cxx new file mode 100644 index 0000000000000..9e76514bbcf67 --- /dev/null +++ b/tpc/Detector.cxx @@ -0,0 +1,3130 @@ +#include "Detector.h" +#include // for NULL +#include "Data/DetectorList.h" // for DetectorId::kAliTpc +#include "Data/Stack.h" // for Stack +#include "FairRootManager.h" // for FairRootManager +#include "FairVolume.h" // for FairVolume +#include "Point.h" // for Point +#include "TClonesArray.h" // for TClonesArray +#include "TVirtualMC.h" // for TVirtualMC, gMC +#include "TVirtualMCStack.h" // for TVirtualMCStack + +#include "Point.h" + +#include "FairGeoVolume.h" +#include "FairGeoNode.h" +#include "FairGeoLoader.h" +#include "FairGeoInterface.h" +#include "FairRun.h" +#include "FairRuntimeDb.h" +#include "FairLogger.h" + +#include "Data/DetectorList.h" +#include "Data/Stack.h" + +#include "TSystem.h" +#include "TClonesArray.h" +#include "TVirtualMC.h" + +// geo stuff +#include "TGeoManager.h" +#include "TGeoGlobalMagField.h" +#include "TGeoVolume.h" +#include "TGeoPcon.h" +#include "TGeoTube.h" +#include "TGeoCone.h" +#include "TGeoPgon.h" +#include "TGeoTrd1.h" +#include "TGeoCompositeShape.h" +#include "TGeoPara.h" +#include "TGeoPhysicalNode.h" +#include "TGeoHalfSpace.h" +#include "TGeoArb8.h" +#include "TGeoMatrix.h" + + +// dirty stuff +#include "AliTPCParam.h" +#include "Manager.h" +#include "Condition.h" + +#include +using std::cout; +using std::endl; +using std::ios_base; + +using namespace AliceO2::TPC; + +Detector::Detector() + : AliceO2::Base::Detector("TPC", kTRUE, kAliTpc), + mTrackNumberID(-1), + mVolumeID(-1), + mPosition(), + mMomentum(), + mTime(-1.), + mLength(-1.), + mEnergyLoss(-1), + mPointCollection(new TClonesArray("AliceO2::TPC::Point")), + mSens(0), + mParam(0x0) +{ +} + +Detector::Detector(const char* name, Bool_t active) + : AliceO2::Base::Detector(name, active, kAliTpc), + mTrackNumberID(-1), + mVolumeID(-1), + mPosition(), + mMomentum(), + mTime(-1.), + mLength(-1.), + mEnergyLoss(-1), + mPointCollection(new TClonesArray("AliceO2::TPC::Point")), + mParam(0x0) +{ + //TODO: Change this at some point + AliceO2::CDB::Condition* tpcParametersCondition = AliceO2::CDB::Manager::Instance()->getObject("TPC/Calib/Parameters"); + if (tpcParametersCondition) { + mParam = dynamic_cast(tpcParametersCondition->getObject()); + } + if (!mParam) { + LOG(ERROR) << "Could not load TPC Parameters" << FairLogger::endl; + } + +} + +Detector::~Detector() +{ + if (mPointCollection) { + mPointCollection->Delete(); + delete mPointCollection; + } +} + +void Detector::Initialize() +{ + AliceO2::Base::Detector::Initialize(); +// LOG(INFO) << "Initialize" << FairLogger::endl; +} + +Bool_t Detector::ProcessHits(FairVolume* vol) +{ + /** This method is called from the MC stepping */ +// LOG(INFO) << "TPC::ProcessHits" << FairLogger::endl; + //Set parameters at entrance of volume. Reset ELoss. + if ( TVirtualMC::GetMC()->IsTrackEntering() ) { + mEnergyLoss = 0.; + mTime = TVirtualMC::GetMC()->TrackTime() * 1.0e09; + mLength = TVirtualMC::GetMC()->TrackLength(); + TVirtualMC::GetMC()->TrackPosition(mPosition); + TVirtualMC::GetMC()->TrackMomentum(mMomentum); + } + + // Sum energy loss for all steps in the active volume + mEnergyLoss += TVirtualMC::GetMC()->Edep(); + + // Create DetectorPoint at exit of active volume + if ( TVirtualMC::GetMC()->IsTrackExiting() || + TVirtualMC::GetMC()->IsTrackStop() || + TVirtualMC::GetMC()->IsTrackDisappeared() ) { + mTrackNumberID = TVirtualMC::GetMC()->GetStack()->GetCurrentTrackNumber(); + mVolumeID = vol->getMCid(); + if (mEnergyLoss == 0. ) { return kFALSE; } + AddHit(mTrackNumberID, mVolumeID, TVector3(mPosition.X(), mPosition.Y(), mPosition.Z()), + TVector3(mMomentum.Px(), mMomentum.Py(), mMomentum.Pz()), mTime, mLength, + mEnergyLoss); +// LOG(INFO) << "TPC::AddHit" << FairLogger::endl +// << " -- " << mTrackNumberID <<"," << mVolumeID +// << ", Pos: (" << mPosition.X() << ", " << mPosition.Y() <<", "<< mPosition.Z() << ") " +// << ", Mom: (" << mMomentum.Px() << ", " << mMomentum.Py() << ", " << mMomentum.Pz() << ") " +// << " Time: "<< mTime <<", Len: " << mLength << ", Eloss: " << +// mEnergyLoss << FairLogger::endl; + + // Increment number of Detector det points in TParticle + AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)TVirtualMC::GetMC()->GetStack(); + stack->AddPoint(kAliTpc); + + } + + return kTRUE; +} + + +// Bool_t Detector::ProcessHits(FairVolume* vol) +// { +// // +// // Called for every step in the Time Projection Chamber +// // +// +// // +// // parameters used for the energy loss calculations +// // +// const Float_t prim = 14.35; // number of primary collisions per 1 cm +// const Float_t poti = 20.77e-9; // first ionization potential for Ne/CO2 +// const Float_t wIon = 35.97e-9; // energy for the ion-electron pair creation +// const Float_t kScalewIonG4 = 0.85; // scale factor to tune kwIon for Geant4 +// const Float_t kFanoFactorG4 = 0.7; // parameter for smearing the number of ionizations (nel) using Geant4 +// const Int_t kMaxDistRef =15; // maximal difference between 2 stored references +// // Float_t prim = fTPCParam->GetNprim(); +// // Float_t poti = fTPCParam->GetFpot(); +// // Float_t wIon = fTPCParam->GetWmean(); +// +// const Float_t kbig = 1.e10; +// +// Int_t id,copy; +// Float_t hits[5]; +// Int_t vol[2]; +// TLorentzVector p; +// +// vol[1]=0; // preset row number to 0 +// // +// if (!fPrimaryIonisation) TVirtualMC::GetMC()->SetMaxStep(kbig); +// +// if(!TVirtualMC::GetMC()->IsTrackAlive()) return; // particle has disappeared +// +// Float_t charge = TVirtualMC::GetMC()->TrackCharge(); +// +// if(TMath::Abs(charge)<=0.) return; // take only charged particles +// +// // check the sensitive volume +// +// id = TVirtualMC::GetMC()->CurrentVolID(copy); // vol ID and copy number (starts from 1!) +// if(id != fIDrift && id != fIdSens) return; // not in the sensitive folume +// +// if ( fPrimaryIonisation && id == fIDrift ) { +// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); +// TVirtualMC::GetMC()->SetMaxStep(0.2+(2.*rnd-1.)*0.05); // 2 mm +- rndm*0.5mm step +// } +// +// //if ( fPrimaryIonisation && id == fIDrift && TVirtualMC::GetMC()->IsTrackEntering()) { +// // TVirtualMC::GetMC()->SetMaxStep(0.2); // 2 mm +// //} +// +// TVirtualMC::GetMC()->TrackPosition(p); +// Double_t r = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); +// // +// +// // +// Double_t angle = TMath::ACos(p[0]/r); +// angle = (p[1]<0.) ? TMath::TwoPi()-angle : angle; +// // +// // angular segment, it is not a real sector number... +// // +// Int_t sector=TMath::Nint((angle-fTPCParam->GetInnerAngleShift())/ +// fTPCParam->GetInnerAngle()); +// // rotate to segment "0" +// Float_t cos,sin; +// fTPCParam->AdjustCosSin(sector,cos,sin); +// Float_t x1=p[0]*cos + p[1]*sin; +// // check if within sector's limits +// if((x1>=fTPCParam->GetInnerRadiusLow()&&x1<=fTPCParam->GetInnerRadiusUp()) +// ||(x1>=fTPCParam->GetOuterRadiusLow()&&x1<=fTPCParam->GetOuterRadiusUp())){ +// // calculate real sector number... +// if (x1>fTPCParam->GetOuterRadiusLow()){ +// sector = TMath::Nint((angle-fTPCParam->GetOuterAngleShift())/ +// fTPCParam->GetOuterAngle())+fTPCParam->GetNInnerSector(); +// if (p[2]<0) sector+=(fTPCParam->GetNOuterSector()>>1); +// } else { +// if (p[2]<0) sector+=(fTPCParam->GetNInnerSector()>>1); +// } +// // +// // here I have a sector number +// // +// +// vol[0]=sector; +// +// static Double_t lastReferenceR=0; +// if (TMath::Abs(lastReferenceR-r)>kMaxDistRef){ +// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); +// lastReferenceR = r; +// } +// +// // check if change of sector +// if(sector != fSecOld){ +// fSecOld=sector; +// // add track reference +// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); +// } +// // track is in the sensitive strip +// if(id == fIdSens){ +// // track is entering the strip +// if (TVirtualMC::GetMC()->IsTrackEntering()){ +// Int_t totrows = fTPCParam->GetNRowLow()+fTPCParam->GetNRowUp(); +// vol[1] = (copy<=totrows) ? copy-1 : copy-1-totrows; +// // row numbers are autonomous for lower and upper sectors +// if(vol[0] > fTPCParam->GetNInnerSector()) { +// vol[1] -= fTPCParam->GetNRowLow(); +// } +// // +// if(vol[0]GetNInnerSector()&&vol[1] == 0){ +// +// // lower sector, row 0, because Jouri wants to have this +// +// TVirtualMC::GetMC()->TrackMomentum(p); +// hits[0]=p[0]; +// hits[1]=p[1]; +// hits[2]=p[2]; +// hits[3]=0.; // this hit has no energy loss +// // Get also the track time for pileup simulation +// hits[4]=TVirtualMC::GetMC()->TrackTime(); +// +// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); +// } +// // +// +// TVirtualMC::GetMC()->TrackPosition(p); +// hits[0]=p[0]; +// hits[1]=p[1]; +// hits[2]=p[2]; +// hits[3]=0.; // this hit has no energy loss +// // Get also the track time for pileup simulation +// hits[4]=TVirtualMC::GetMC()->TrackTime(); +// +// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); +// +// } +// else return; +// } +// //----------------------------------------------------------------- +// // charged particle is in the sensitive drift volume +// //----------------------------------------------------------------- +// if(TVirtualMC::GetMC()->TrackStep() > 0) { +// Int_t nel=0; +// if (!fPrimaryIonisation) { +// nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; +// } else { +// +// /* +// * static Double_t deForNextStep = 0.; +// * // Geant4 (the meaning of Edep as in Geant3) - wrong +// * //nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; +// * +// * // Geant4 (the meaning of Edep as in Geant3) - NEW +// * Double_t eAvailable = TVirtualMC::GetMC()->Edep() + deForNextStep; +// * nel = (Int_t)(eAvailable/wIon); +// * deForNextStep = eAvailable - nel*wIon; +// */ +// +// //new Geant4-approach +// Double_t meanIon = TVirtualMC::GetMC()->Edep()/(wIon*kScalewIonG4); +// nel = (Int_t) ( kFanoFactorG4*AliMathBase::Gamma(meanIon/kFanoFactorG4)); // smear nel using gamma distr w mean = meanIon and variance = meanIon/kFanoFactorG4 +// } +// nel=TMath::Min(nel,300); // 300 electrons corresponds to 10 keV +// // +// TVirtualMC::GetMC()->TrackPosition(p); +// hits[0]=p[0]; +// hits[1]=p[1]; +// hits[2]=p[2]; +// hits[3]=(Float_t)nel; +// +// // Add this hit +// +// // if (fHitType&&2){ +// if(fHitType){ +// TVirtualMC::GetMC()->TrackMomentum(p); +// Float_t momentum = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); +// Float_t precision = (momentum>0.1) ? 0.002 :0.01; +// fTrackHits->SetHitPrecision(precision); +// } +// +// // Get also the track time for pileup simulation +// hits[4]=TVirtualMC::GetMC()->TrackTime(); +// +// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); +// if (fDebugStreamer){ +// // You can dump here what you need +// // function CreateDebugStremer() to be called in the Config.C macro +// // if you want to enable it +// // By default debug streaemer is OFF +// Float_t edep = TVirtualMC::GetMC()->Edep(); +// Float_t tstep = TVirtualMC::GetMC()->TrackStep(); +// Int_t pid=TVirtualMC::GetMC()->TrackPid(); +// (*fDebugStreamer)<<"hit"<< +// "x="<0 +// } //within sector's limits +// // Stemax calculation for the next step +// +// Float_t pp; +// TLorentzVector mom; +// // below is valid only for Geant3 (fPromaryIonisation not set) +// if(!fPrimaryIonisation){ +// TVirtualMC::GetMC()->TrackMomentum(mom); +// Float_t ptot=mom.Rho(); +// Float_t betaGamma = ptot/TVirtualMC::GetMC()->TrackMass(); +// +// //Int_t pid=TVirtualMC::GetMC()->TrackPid(); +// // if((pid==kElectron || pid==kPositron) && ptot > 0.002) +// // { +// // pp = prim*1.58; // electrons above 20 MeV/c are on the plateau! +// // } +// // else +// // { +// +// betaGamma = TMath::Max(betaGamma,(Float_t)7.e-3); // protection against too small bg +// TVectorD *bbpar = fTPCParam->GetBetheBlochParametersMC(); //get parametrization from OCDB +// pp=prim*AliMathBase::BetheBlochAleph(betaGamma,(*bbpar)(0),(*bbpar)(1),(*bbpar)(2),(*bbpar)(3),(*bbpar)(4)); +// // } +// +// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); +// +// TVirtualMC::GetMC()->SetMaxStep(-TMath::Log(rnd)/pp); +// } +// +// } + +void Detector::EndOfEvent() +{ + + mPointCollection->Clear(); + +} + + + +void Detector::Register() +{ + + /** This will create a branch in the output tree called + DetectorPoint, setting the last parameter to kFALSE means: + this collection will not be written to the file, it will exist + only during the simulation. + */ + + FairRootManager::Instance()->Register("TPCPoint", "TPC",mPointCollection, kTRUE); +} + + +TClonesArray* Detector::GetCollection(Int_t iColl) const +{ + if (iColl == 0) { return mPointCollection; } + else { return NULL; } +} + +void Detector::Reset() +{ + mPointCollection->Clear(); +} + +void Detector::ConstructGeometry() +{ + // Create the detector materials + createMaterials(); + + // Construct the detector geometry + constructDetectorGeometry(); + + // Define the list of sensitive volumes + defineSensitiveVolumes(); +} + +void Detector::createMaterials() +{ + //----------------------------------------------- + // Create Materials for for TPC simulations + //----------------------------------------------- + + //----------------------------------------------------------------- + // Origin: Marek Kowalski IFJ, Krakow, Marek.Kowalski@ifj.edu.pl + //----------------------------------------------------------------- + +// Int_t iSXFLD=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); +// Float_t sXMGMX=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); + // Int_t iSXFLD = ((AliceO2::Field::MagneticField*)TGeoGlobalMagField::Instance()->GetField())->Integral(); + // Float_t sXMGMX = ((AliceO2::Field::MagneticField*)TGeoGlobalMagField::Instance()->GetField())->Max(); + + if (!mParam) { + LOG(ERROR) << "TPC Parameters not available, cannot create Materials" << FairLogger::endl; + return; + } + + // until we solve the problem of reading the field from files with changed class names we + // need to hard code some values here to be able to run the macros M.Al-Turany (Nov.14) + Int_t iSXFLD = 2; + Float_t sXMGMX = 10.0; + + Float_t amat[7]; // atomic numbers + Float_t zmat[7]; // z + Float_t wmat[7]; // proportions + + Float_t density; + + + + //***************** Gases ************************* + + + //-------------------------------------------------------------- + // gases - air and CO2 + //-------------------------------------------------------------- + + // CO2 + + amat[0]=12.011; + amat[1]=15.9994; + + zmat[0]=6.; + zmat[1]=8.; + + wmat[0]=0.2729; + wmat[1]=0.7271; + + density=1.842e-3; + + + AliceO2::Base::Detector::Mixture(10,"CO2",amat,zmat,density,2,wmat); + // + // Air + // + amat[0]=15.9994; + amat[1]=14.007; + // + zmat[0]=8.; + zmat[1]=7.; + // + wmat[0]=0.233; + wmat[1]=0.767; + // + density=0.001205; + + AliceO2::Base::Detector::Mixture(11,"Air",amat,zmat,density,2,wmat); + + //---------------------------------------------------------------- + // drift gases 5 mixtures, 5 materials + //---------------------------------------------------------------- + // + // Drift gases 1 - nonsensitive, 2 - sensitive, 3 - for Kr + // Composition by % of volume, values at 20deg and 1 atm. + // + // get the geometry title - defined in Config.C + // + //-------------------------------------------------------------- + // predefined gases, composition taken from param file + //-------------------------------------------------------------- + TString names[6]={"Ne","Ar","CO2","N","CF4","CH4"}; + TString gname; + Float_t *comp = mParam->GetComposition(); + // indices: + // 0-Ne, 1-Ar, 2-CO2, 3-N, 4-CF4, 5-CH4 + // + // elements' masses + // + amat[0]=20.18; //Ne + amat[1]=39.95; //Ar + amat[2]=12.011; //C + amat[3]=15.9994; //O + amat[4]=14.007; //N + amat[5]=18.998; //F + amat[6]=1.; //H + // + // elements' atomic numbers + // + // + zmat[0]=10.; //Ne + zmat[1]=18.; //Ar + zmat[2]=6.; //C + zmat[3]=8.; //O + zmat[4]=7.; //N + zmat[5]=9.; //F + zmat[6]=1.; //H + // + // Mol masses + // + Float_t wmol[6]; + wmol[0]=20.18; //Ne + wmol[1]=39.948; //Ar + wmol[2]=44.0098; //CO2 + wmol[3]=2.*14.0067; //N2 + wmol[4]=88.0046; //CF4 + wmol[5]=16.011; //CH4 + // + Float_t wtot=0.; //total mass of the mixture + for(Int_t i =0;i<6;i++){ + wtot += *(comp+i)*wmol[i]; + } + wmat[0]=comp[0]*amat[0]/wtot; //Ne + wmat[1]=comp[1]*amat[1]/wtot; //Ar + wmat[2]=(comp[2]*amat[2]+comp[4]*amat[2]+comp[5]*amat[2])/wtot; //C + wmat[3]=comp[2]*amat[3]*2./wtot; //O + wmat[4]=comp[3]*amat[4]*2./wtot; //N + wmat[5]=comp[4]*amat[5]*4./wtot; //F + wmat[6]=comp[5]*amat[6]*4./wtot; //H + // + // densities (NTP) + // + Float_t dens[6]={0.839e-3,1.661e-3,1.842e-3,1.251e-3,3.466e-3,0.668e-3}; + // + density=0.; + for(Int_t i=0;i<6;i++){ + density += comp[i]*dens[i]; + } + // + // names + // + Int_t cnt=0; + for(Int_t i =0;i<6;i++){ + if(comp[i]){ + if(cnt)gname+="-"; + gname+=names[i]; + cnt++; + } + } + TString gname1,gname2,gname3; + gname1 = gname + "-1"; + gname2 = gname + "-2"; + gname3 = gname + "-3"; + // + // take only elements with nonzero weights + // + Float_t amat1[6],zmat1[6],wmat1[6]; + cnt=0; + for(Int_t i=0;i<7;i++){ + if(wmat[i]){ + zmat1[cnt]=zmat[i]; + amat1[cnt]=amat[i]; + wmat1[cnt]=wmat[i]; + cnt++; + } + } + + // + AliceO2::Base::Detector::Mixture(12,gname1.Data(),amat1,zmat1,density,cnt,wmat1); // nonsensitive + AliceO2::Base::Detector::Mixture(13,gname2.Data(),amat1,zmat1,density,cnt,wmat1); // sensitive + AliceO2::Base::Detector::Mixture(40,gname3.Data(),amat1,zmat1,density,cnt,wmat1); //sensitive Kr + + + + //---------------------------------------------------------------------- + // solid materials + //---------------------------------------------------------------------- + + + // Kevlar C14H22O2N2 + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 15.999; + amat[3] = 14.006; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 8.; + zmat[3] = 7.; + + wmat[0] = 14.; + wmat[1] = 22.; + wmat[2] = 2.; + wmat[3] = 2.; + + density = 1.45; + + AliceO2::Base::Detector::Mixture(14,"Kevlar",amat,zmat,density,-4,wmat); + + // NOMEX + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 15.999; + amat[3] = 14.006; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 8.; + zmat[3] = 7.; + + wmat[0] = 14.; + wmat[1] = 22.; + wmat[2] = 2.; + wmat[3] = 2.; + + density = 0.029; + + AliceO2::Base::Detector::Mixture(15,"NOMEX",amat,zmat,density,-4,wmat); + + // Makrolon C16H18O3 + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 15.999; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 8.; + + wmat[0] = 16.; + wmat[1] = 18.; + wmat[2] = 3.; + + density = 1.2; + + AliceO2::Base::Detector::Mixture(16,"Makrolon",amat,zmat,density,-3,wmat); + + // Tedlar C2H3F + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 18.998; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 9.; + + wmat[0] = 2.; + wmat[1] = 3.; + wmat[2] = 1.; + + density = 1.71; + + AliceO2::Base::Detector::Mixture(17, "Tedlar",amat,zmat,density,-3,wmat); + + // Mylar C5H4O2 + + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=5.; + wmat[1]=4.; + wmat[2]=2.; + + density = 1.39; + + AliceO2::Base::Detector::Mixture(18, "Mylar",amat,zmat,density,-3,wmat); + // material for "prepregs" + // Epoxy - C14 H20 O3 + // Quartz SiO2 + // Carbon C + // prepreg1 60% C-fiber, 40% epoxy (vol) + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=0.923; + wmat[1]=0.023; + wmat[2]=0.054; + + density=1.859; + + AliceO2::Base::Detector::Mixture(19, "Prepreg1",amat,zmat,density,3,wmat); + + //prepreg2 60% glass-fiber, 40% epoxy + + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.194; + wmat[1]=0.023; + wmat[2]=0.443; + wmat[3]=0.34; + + density=1.82; + + AliceO2::Base::Detector::Mixture(20, "Prepreg2",amat,zmat,density,4,wmat); + + //prepreg3 50% glass-fiber, 50% epoxy + + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.257; + wmat[1]=0.03; + wmat[2]=0.412; + wmat[3]=0.3; + + density=1.725; + + AliceO2::Base::Detector::Mixture(21, "Prepreg3",amat,zmat,density,4,wmat); + + // G10 60% SiO2 40% epoxy + + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.194; + wmat[1]=0.023; + wmat[2]=0.443; + wmat[3]=0.340; + + density=1.7; + + AliceO2::Base::Detector::Mixture(22, "G10",amat,zmat,density,4,wmat); + + // Al + + amat[0] = 26.98; + zmat[0] = 13.; + + density = 2.7; + + AliceO2::Base::Detector::Material(23,"Al",amat[0],zmat[0],density,999.,999.); + + // Si (for electronics + + amat[0] = 28.086; + zmat[0] = 14.; + + density = 2.33; + + AliceO2::Base::Detector::Material(24,"Si",amat[0],zmat[0],density,999.,999.); + + // Cu + + amat[0] = 63.546; + zmat[0] = 29.; + + density = 8.96; + + AliceO2::Base::Detector::Material(25,"Cu",amat[0],zmat[0],density,999.,999.); + + // brass + + amat[0] = 63.546; + zmat[0] = 29.; + // + amat[1]= 65.409; + zmat[1]= 30.; + // + wmat[0]= 0.6; + wmat[1]= 0.4; + + // + density = 8.23; + + + // + AliceO2::Base::Detector::Mixture(33,"Brass",amat,zmat,density,2,wmat); + + // Epoxy - C14 H20 O3 + + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=14.; + wmat[1]=20.; + wmat[2]=3.; + + density=1.25; + + AliceO2::Base::Detector::Mixture(26,"Epoxy",amat,zmat,density,-3,wmat); + + // Epoxy - C14 H20 O3 for glue + + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=14.; + wmat[1]=20.; + wmat[2]=3.; + + density=1.25; + + density *= 1.25; + + AliceO2::Base::Detector::Mixture(35,"Epoxy1",amat,zmat,density,-3,wmat); + // + // epoxy film - 90% epoxy, 10% glass fiber + // + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.596; + wmat[1]=0.071; + wmat[2]=0.257; + wmat[3]=0.076; + + + density=1.345; + + AliceO2::Base::Detector::Mixture(34, "Epoxy-film",amat,zmat,density,4,wmat); + + // Plexiglas C5H8O2 + + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=5.; + wmat[1]=8.; + wmat[2]=2.; + + density=1.18; + + AliceO2::Base::Detector::Mixture(27,"Plexiglas",amat,zmat,density,-3,wmat); + + // Carbon + + amat[0]=12.011; + zmat[0]=6.; + density= 2.265; + + AliceO2::Base::Detector::Material(28,"C",amat[0],zmat[0],density,999.,999.); + + // Fe (steel for the inner heat screen) + + amat[0]=55.845; + + zmat[0]=26.; + + density=7.87; + + AliceO2::Base::Detector::Material(29,"Fe",amat[0],zmat[0],density,999.,999.); + // + // Peek - (C6H4-O-OC6H4-O-C6H4-CO)n + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=19.; + wmat[1]=12.; + wmat[2]=3.; + // + density=1.3; + // + AliceO2::Base::Detector::Mixture(30,"Peek",amat,zmat,density,-3,wmat); + // + // Ceramics - Al2O3 + // + amat[0] = 26.98; + amat[1]= 15.9994; + + zmat[0] = 13.; + zmat[1]=8.; + + wmat[0]=2.; + wmat[1]=3.; + + density = 3.97; + + AliceO2::Base::Detector::Mixture(31,"Alumina",amat,zmat,density,-2,wmat); + // + // Ceramics for resistors + // + amat[0] = 26.98; + amat[1]= 15.9994; + + zmat[0] = 13.; + zmat[1]=8.; + + wmat[0]=2.; + wmat[1]=3.; + + density = 3.97; + // + density *=1.25; + + AliceO2::Base::Detector::Mixture(36,"Alumina1",amat,zmat,density,-2,wmat); + // + // liquids + // + + // water + + amat[0]=1.; + amat[1]=15.9994; + + zmat[0]=1.; + zmat[1]=8.; + + wmat[0]=2.; + wmat[1]=1.; + + density=1.; + + AliceO2::Base::Detector::Mixture(32,"Water",amat,zmat,density,-2,wmat); + + + //---------------------------------------------------------- + // tracking media for gases + //---------------------------------------------------------- + + AliceO2::Base::Detector::Medium(0, "Air", 11, 0, iSXFLD, sXMGMX, 10., 999., .1, .01, .1); + AliceO2::Base::Detector::Medium(1, "DriftGas1", 12, 0, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); + AliceO2::Base::Detector::Medium(2, "DriftGas2", 13, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); + AliceO2::Base::Detector::Medium(3,"CO2",10,0, iSXFLD, sXMGMX, 10., 999.,.1, .001, .001); + AliceO2::Base::Detector::Medium(20, "DriftGas3", 40, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); + //----------------------------------------------------------- + // tracking media for solids + //----------------------------------------------------------- + + AliceO2::Base::Detector::Medium(4,"Al",23,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(5,"Kevlar",14,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(6,"Nomex",15,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(7,"Makrolon",16,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(8,"Mylar",18,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(9,"Tedlar",17,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + // + AliceO2::Base::Detector::Medium(10,"Prepreg1",19,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(11,"Prepreg2",20,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(12,"Prepreg3",21,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(13,"Epoxy",26,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + + AliceO2::Base::Detector::Medium(14,"Cu",25,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(15,"Si",24,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(16,"G10",22,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(17,"Plexiglas",27,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(18,"Steel",29,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(19,"Peek",30,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(21,"Alumina",31,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(22,"Water",32,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(23,"Brass",33,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(24,"Epoxyfm",34,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(25,"Epoxy1",35,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(26,"Alumina1",36,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + +} + +void Detector::constructDetectorGeometry() +{ + // + // Create the geometry of Time Projection Chamber version 2 + // + //Begin_Html + /* + * + */ + //End_Html + //Begin_Html + /* + * + */ + //End_Html + + //---------------------------------------------------------- + // This geometry is written using TGeo class + // Firstly the shapes are defined, and only then the volumes + // What is recognized by the MC are volumes + //---------------------------------------------------------- + // + // tpc - this will be the mother volume + // + + if (!mParam) { + LOG(ERROR) << "TPC Parameters not available, cannot create Geometry" << FairLogger::endl; + return; + } + + // + // here I define a volume TPC + // retrive the medium name with "TPC_" as a leading string + // + TGeoPcon *tpc = new TGeoPcon(0.,360.,30); //30 sections + // + tpc->DefineSection(0,-289.6,77.,278.); + tpc->DefineSection(1,-262.1,77.,278.); + // + tpc->DefineSection(2,-262.1,83.1,278.); + tpc->DefineSection(3,-260.,83.1,278.); + // + tpc->DefineSection(4,-260.,70.,278.); + tpc->DefineSection(5,-259.6,70.,278.); + // + tpc->DefineSection(6,-259.6,68.1,278.); + tpc->DefineSection(7,-253.6,68.1,278.); + // + tpc->DefineSection(8,-253.6,67.88,278.);//hs + tpc->DefineSection(9,-74.0,60.68,278.);// hs + // + tpc->DefineSection(10,-74.0,60.1,278.); + tpc->DefineSection(11,-73.3,60.1,278.); + // + tpc->DefineSection(12,-73.3,56.9,278.); + tpc->DefineSection(13,-68.5,56.9,278.); + // + tpc->DefineSection(14,-68.5,60.,278.); + tpc->DefineSection(15,-64.7,60.,278.); + // + tpc->DefineSection(16,-64.7,56.9,278.); + tpc->DefineSection(17,73.3,56.9,278.); + // + tpc->DefineSection(18,73.3,60.1,278.); + tpc->DefineSection(19,74.0,60.1,278.); + // + tpc->DefineSection(20,74.0,60.68,278.);// hs + tpc->DefineSection(21,253.6,65.38,278.);// hs + // + tpc->DefineSection(22,253.6,65.6,278.); + tpc->DefineSection(23,259.6,65.6,278.); + // + tpc->DefineSection(24,259.6,70.0,278.); + tpc->DefineSection(25,260.,70.0,278.); + // + tpc->DefineSection(26,260.,83.1,278.); + tpc->DefineSection(27,262.1,83.1,278.); + // + tpc->DefineSection(28,262.1,77.,278); + tpc->DefineSection(29,289.6,77.,278.); + // + TGeoMedium *m1 = gGeoManager->GetMedium("TPC_Air"); + TGeoVolume *v1 = new TGeoVolume("TPC_M",tpc,m1); + // + // drift volume - sensitive volume, extended beyond the + // endcaps, because of the alignment + // + TGeoPcon *dvol = new TGeoPcon(0.,360.,6); + dvol->DefineSection(0,-260.,74.5,264.4); + dvol->DefineSection(1,-253.6,74.5,264.4); + // + dvol->DefineSection(2,-253.6,76.6774,258.); + dvol->DefineSection(3,253.6,76.6774,258.); + // + dvol->DefineSection(4,253.6,74.5,264.4); + dvol->DefineSection(5,260.,74.5,264.4); + // + TGeoMedium *m5 = gGeoManager->GetMedium("TPC_DriftGas2"); + TGeoVolume *v9 = new TGeoVolume("TPC_Drift",dvol,m5); + // + v1->AddNode(v9,1); + // + // outer insulator + // + TGeoPcon *tpco = new TGeoPcon(0.,360.,6); //insulator + // + tpco->DefineSection(0,-256.6,264.8,278.); + tpco->DefineSection(1,-253.6,264.8,278.); + // + tpco->DefineSection(2,-253.6,258.,278.); + tpco->DefineSection(3,250.6,258.,278.); + // + tpco->DefineSection(4,250.6,258.,275.5); + tpco->DefineSection(5,253.6,258.,275.5); + // + TGeoMedium *m2 = gGeoManager->GetMedium("TPC_CO2"); + TGeoVolume *v2 = new TGeoVolume("TPC_OI",tpco,m2); + // + TGeoRotation *segrot;//segment rotations + // + // outer containment vessel + // + TGeoPcon *tocv = new TGeoPcon(0.,360.,6); // containment vessel + // + tocv->DefineSection(0,-256.6,264.8,278.); + tocv->DefineSection(1,-253.6,264.8,278.); + // + tocv->DefineSection(2,-253.6,274.8124,278.); + tocv->DefineSection(3,247.6,274.8124,278.); + // + tocv->DefineSection(4,247.6,270.4,278.); + tocv->DefineSection(5,250.6,270.4,278.); + // + TGeoMedium *m3 = gGeoManager->GetMedium("TPC_Al"); + TGeoVolume *v3 = new TGeoVolume("TPC_OCV",tocv,m3); + // + TGeoTubeSeg *to1 = new TGeoTubeSeg(274.8174,277.995,252.1,0.,59.9); //epoxy + TGeoTubeSeg *to2 = new TGeoTubeSeg(274.8274,277.985,252.1,0.,59.9); //tedlar + TGeoTubeSeg *to3 = new TGeoTubeSeg(274.8312,277.9812,252.1,0.,59.9);//prepreg2 + TGeoTubeSeg *to4 = new TGeoTubeSeg(274.9062,277.9062,252.1,0.,59.9);//nomex + TGeoTubeSeg *tog5 = new TGeoTubeSeg(274.8174,277.995,252.1,59.9,60.);//epoxy + // + TGeoMedium *sm1 = gGeoManager->GetMedium("TPC_Epoxy"); + TGeoMedium *sm2 = gGeoManager->GetMedium("TPC_Tedlar"); + TGeoMedium *sm3 = gGeoManager->GetMedium("TPC_Prepreg2"); + TGeoMedium *sm4 = gGeoManager->GetMedium("TPC_Nomex"); + // + TGeoMedium *smep = gGeoManager->GetMedium("TPC_Epoxy1"); + // + TGeoVolume *tov1 = new TGeoVolume("TPC_OCV1",to1,sm1); + TGeoVolume *tov2 = new TGeoVolume("TPC_OCV2",to2,sm2); + TGeoVolume *tov3 = new TGeoVolume("TPC_OCV3",to3,sm3); + TGeoVolume *tov4 = new TGeoVolume("TPC_OCV4",to4,sm4); + TGeoVolume *togv5 = new TGeoVolume("TPC_OCVG5",tog5,sm1); + // + TGeoMedium *mhs = gGeoManager->GetMedium("TPC_Steel"); + TGeoMedium *m12 = gGeoManager->GetMedium("TPC_Water"); + //------------------------------------------------------- + // Tpc Outer Field Cage + // daughters - composite (sandwich) + //------------------------------------------------------- + + TGeoPcon *tofc = new TGeoPcon(0.,360.,6); + // + tofc->DefineSection(0,-253.6,258.,269.6); + tofc->DefineSection(1,-250.6,258.,269.6); + // + tofc->DefineSection(2,-250.6,258.,260.0676); + tofc->DefineSection(3,250.6,258.,260.0676); + // + tofc->DefineSection(4,250.6,258.,275.5); + tofc->DefineSection(5,253.6,258.,275.5); + // + TGeoVolume *v4 = new TGeoVolume("TPC_TOFC",tofc,m3); + //sandwich + TGeoTubeSeg *tf1 = new TGeoTubeSeg(258.0,260.0676,252.1,0.,59.9); //tedlar + TGeoTubeSeg *tf2 = new TGeoTubeSeg(258.0038,260.0638,252.1,0.,59.9); //prepreg3 + TGeoTubeSeg *tf3 = new TGeoTubeSeg(258.0338,260.0338,252.1,0.,59.9);//nomex + TGeoTubeSeg *tfg4 = new TGeoTubeSeg(258.0,260.0676,252.1,59.9,60.); //epoxy glue + // + TGeoMedium *sm5 = gGeoManager->GetMedium("TPC_Prepreg3"); + // + TGeoVolume *tf1v = new TGeoVolume("TPC_OFC1",tf1,sm2); + TGeoVolume *tf2v = new TGeoVolume("TPC_OFC2",tf2,sm5); + TGeoVolume *tf3v = new TGeoVolume("TPC_OFC3",tf3,sm4); + TGeoVolume *tfg4v = new TGeoVolume("TPC_OFCG4",tfg4,smep); + // + // outer part - positioning + // + tov1->AddNode(tov2,1); tov2->AddNode(tov3,1); tov3->AddNode(tov4,1);//ocv + // + tf1v->AddNode(tf2v,1); tf2v->AddNode(tf3v,1);//ofc + // + TGeoVolumeAssembly *t200 = new TGeoVolumeAssembly("TPC_OCVSEG"); + TGeoVolumeAssembly *t300 = new TGeoVolumeAssembly("TPC_OFCSEG"); + // + // assembly OCV and OFC + // + // 1st - no rotation + t200->AddNode(tov1,1); t200->AddNode(togv5,1); + t300->AddNode(tf1v,1); t300->AddNode(tfg4v,1); + // 2nd - rotation 60 deg + segrot = new TGeoRotation(); + segrot->RotateZ(60.); + t200->AddNode(tov1,2,segrot); t200->AddNode(togv5,2,segrot); + t300->AddNode(tf1v,2,segrot); t300->AddNode(tfg4v,2,segrot); + // 3rd rotation 120 deg + segrot = new TGeoRotation(); + segrot->RotateZ(120.); + t200->AddNode(tov1,3,segrot); t200->AddNode(togv5,3,segrot); + t300->AddNode(tf1v,3,segrot); t300->AddNode(tfg4v,3,segrot); + //4th rotation 180 deg + segrot = new TGeoRotation(); + segrot->RotateZ(180.); + t200->AddNode(tov1,4,segrot); t200->AddNode(togv5,4,segrot); + t300->AddNode(tf1v,4,segrot); t300->AddNode(tfg4v,4,segrot); + //5th rotation 240 deg + segrot = new TGeoRotation(); + segrot->RotateZ(240.); + t200->AddNode(tov1,5,segrot); t200->AddNode(togv5,5,segrot); + t300->AddNode(tf1v,5,segrot); t300->AddNode(tfg4v,5,segrot); + //6th rotation 300 deg + segrot = new TGeoRotation(); + segrot->RotateZ(300.); + t200->AddNode(tov1,6,segrot); t200->AddNode(togv5,6,segrot); + t300->AddNode(tf1v,6,segrot); t300->AddNode(tfg4v,6,segrot); + // + v3->AddNode(t200,1,new TGeoTranslation(0.,0.,-1.5)); v4->AddNode(t300,1); + // + v2->AddNode(v3,1); v2->AddNode(v4,1); + // + v1->AddNode(v2,1); + //-------------------------------------------------------------------- + // Tpc Inner INsulator (CO2) + // the cones, the central drum and the inner f.c. sandwich with a piece + // of the flane will be placed in the TPC + //-------------------------------------------------------------------- + TGeoPcon *tpci = new TGeoPcon(0.,360.,4); + // + tpci->DefineSection(0,-253.6,68.4,76.6774); + tpci->DefineSection(1,-74.0,61.2,76.6774); + // + tpci->DefineSection(2,74.0,61.2,76.6774); + // + tpci->DefineSection(3,253.6,65.9,76.6774); + // + TGeoVolume *v5 = new TGeoVolume("TPC_INI",tpci,m2); + // + // now the inner field cage - only part of flanges (2 copies) + // + TGeoTube *tif1 = new TGeoTube(69.9,76.6774,1.5); + TGeoVolume *v6 = new TGeoVolume("TPC_IFC1",tif1,m3); + // + //--------------------------------------------------------- + // Tpc Inner Containment vessel - Muon side + //--------------------------------------------------------- + TGeoPcon *tcms = new TGeoPcon(0.,360.,10); + // + tcms->DefineSection(0,-259.1,68.1,74.2); + tcms->DefineSection(1,-253.6,68.1,74.2); + // + tcms->DefineSection(2,-253.6,68.1,68.4); + tcms->DefineSection(3,-74.0,60.9,61.2); + // + tcms->DefineSection(4,-74.0,60.1,61.2); + tcms->DefineSection(5,-73.3,60.1,61.2); + // + tcms->DefineSection(6,-73.3,56.9,61.2); + tcms->DefineSection(7,-73.0,56.9,61.2); + // + tcms->DefineSection(8,-73.0,56.9,58.8); + tcms->DefineSection(9,-71.3,56.9,58.8); + // + TGeoVolume *v7 = new TGeoVolume("TPC_ICVM",tcms,m3); + //------------------------------------------------ + // Heat screen muon side + //------------------------------------------------ + + TGeoCone *thsm = new TGeoCone(89.8,67.88,68.1,60.68,60.9); + TGeoCone *thsmw = new TGeoCone(89.8,67.94,68.04,60.74,60.84); + TGeoVolume *hvsm = new TGeoVolume("TPC_HSM",thsm,mhs); //steel + TGeoVolume *hvsmw = new TGeoVolume("TPC_HSMW",thsmw,m12); //water + // assembly heat screen muon + hvsm->AddNode(hvsmw,1); + //----------------------------------------------- + // inner containment vessel - shaft side + //----------------------------------------------- + TGeoPcon *tcss = new TGeoPcon(0.,360.,10); + // + tcss->DefineSection(0,71.3,56.9,58.8); + tcss->DefineSection(1,73.0,56.9,58.8); + // + tcss->DefineSection(2,73.0,56.9,61.2); + tcss->DefineSection(3,73.3,56.9,61.2); + // + tcss->DefineSection(4,73.3,60.1,61.2); + tcss->DefineSection(5,74.0,60.1,61.2); + // + tcss->DefineSection(6,74.0,60.9,61.2); + tcss->DefineSection(7,253.6,65.6,65.9); + // + tcss->DefineSection(8,253.6,65.6,74.2); + tcss->DefineSection(9,258.1,65.6,74.2); + // + TGeoVolume *v8 = new TGeoVolume("TPC_ICVS",tcss,m3); + //------------------------------------------------- + // Heat screen shaft side + //-------------------------------------------------- + TGeoCone *thss = new TGeoCone(89.8,60.68,60.9,65.38,65.6); + TGeoCone *thssw = new TGeoCone(89.8,60.74,60.84,65.44,65.54); + TGeoVolume *hvss = new TGeoVolume("TPC_HSS",thss,mhs); //steel + TGeoVolume *hvssw = new TGeoVolume("TPC_HSSW",thssw,m12); //water + //assembly heat screen shaft + hvss->AddNode(hvssw,1); + //----------------------------------------------- + // Inner field cage + // define 4 parts and make an assembly + //----------------------------------------------- + // part1 - Al - 2 copies + TGeoTube *t1 = new TGeoTube(76.6774,78.845,0.75); + TGeoVolume *tv1 = new TGeoVolume("TPC_IFC2",t1,m3); + // sandwich - outermost parts - 2 copies + // + // segment outermost + // + TGeoTubeSeg *t2 = new TGeoTubeSeg(76.6774,78.845,74.175,350.,109.4); // tedlar 38 microns + TGeoTubeSeg *t3 = new TGeoTubeSeg(76.6812,78.8412,74.175,350.,109.4); // prepreg2 500 microns + TGeoTubeSeg *t4 = new TGeoTubeSeg(76.7312,78.7912,74.175,350.,109.4); // prepreg3 300 microns + TGeoTubeSeg *t5 = new TGeoTubeSeg(76.7612,78.7612,74.175,350.,109.4); // nomex 2 cm + TGeoTubeSeg *tepox1 = new TGeoTubeSeg(76.6774,78.845,74.175,109.4,110.);//epoxy + TGeoTubeSeg *tpr1 = new TGeoTubeSeg(78.845,78.885,74.175,109.,111.); + + // volumes for the outer part + TGeoVolume *tv2 = new TGeoVolume("TPC_IFC3",t2,sm2); + TGeoVolume *tv3 = new TGeoVolume("TPC_IFC4",t3,sm3); + TGeoVolume *tv4 = new TGeoVolume("TPC_IFC5",t4,sm5); + TGeoVolume *tv5 = new TGeoVolume("TPC_IFC6",t5,sm4); + TGeoVolume *tvep1 = new TGeoVolume("TPC_IFEPOX1",tepox1,smep); + TGeoVolume *tvpr1 = new TGeoVolume("TPC_PRSTR1",tpr1,sm2); + // + // middle parts - 2 copies + // + // segment middle + // + TGeoTubeSeg *t6 = new TGeoTubeSeg(76.6774,78.795,5.,350.,109.4); // tedlar 38 microns + TGeoTubeSeg *t7 = new TGeoTubeSeg(76.6812,78.7912,5.,350.,109.4); // prepreg2 250 microns + TGeoTubeSeg *t8 = new TGeoTubeSeg(76.7062,78.7662,5.,350.,109.4); // prepreg3 300 microns + TGeoTubeSeg *t9 = new TGeoTubeSeg(76.7362,78.7362,5.,350.,109.4); // nomex 2 cm + TGeoTubeSeg *tepox2 = new TGeoTubeSeg(76.6774,78.795,5.,109.4,110.);//epoxy + TGeoTubeSeg *tpr2 = new TGeoTubeSeg(78.795,78.835,5.,109.,111.); + // volumes for the middle part + TGeoVolume *tv6 = new TGeoVolume("TPC_IFC7",t6,sm2); + TGeoVolume *tv7 = new TGeoVolume("TPC_IFC8",t7,sm3); + TGeoVolume *tv8 = new TGeoVolume("TPC_IFC9",t8,sm5); + TGeoVolume *tv9 = new TGeoVolume("TPC_IFC10",t9,sm4); + TGeoVolume *tvep2 = new TGeoVolume("TPC_IFEPOX2",tepox2,smep); + TGeoVolume *tvpr2 = new TGeoVolume("TPC_PRSTR2",tpr2,sm2); + // central part - 1 copy + // + // segment central part + // + TGeoTubeSeg *t10 = new TGeoTubeSeg(76.6774,78.785,93.75,350.,109.4); // tedlar 38 microns + TGeoTubeSeg *t11 = new TGeoTubeSeg(76.6812,78.7812,93.75,350.,109.4); // prepreg3 500 microns + TGeoTubeSeg *t12 = new TGeoTubeSeg(76.7312,78.7312,93.75,350.,109.4); // nomex 2 cm + TGeoTubeSeg *tepox3 = new TGeoTubeSeg(76.6774,78.785,93.75,109.4,110.);//epoxy + TGeoTubeSeg *tpr3 = new TGeoTubeSeg(78.785,78.825,93.75,109.,111.); + // volumes for the central part + TGeoVolume *tv10 = new TGeoVolume("TPC_IFC11",t10,sm2); + TGeoVolume *tv11 = new TGeoVolume("TPC_IFC12",t11,sm5); + TGeoVolume *tv12 = new TGeoVolume("TPC_IFC13",t12,sm4); + TGeoVolume *tvep3 = new TGeoVolume("TPC_IFEPOX3",tepox3,smep); + TGeoVolume *tvpr3 = new TGeoVolume("TPC_PRSTR3",tpr3,sm2); + // + // creating a sandwich for the outer par,t tv2 is the mother + // + tv2->AddNode(tv3,1); tv3->AddNode(tv4,1); tv4->AddNode(tv5,1); + // + // creating a sandwich for the middle part, tv6 is the mother + // + tv6->AddNode(tv7,1); tv7->AddNode(tv8,1); tv8->AddNode(tv9,1); + // + // creating a sandwich for the central part, tv10 is the mother + // + tv10->AddNode(tv11,1); tv11->AddNode(tv12,1); + // + TGeoVolumeAssembly *tv100 = new TGeoVolumeAssembly("TPC_IFC"); // ifc itself - 3 segments + + // + // first segment - no rotation + // + // central + tv100->AddNode(tv10,1); //sandwich + tv100->AddNode(tvep3,1);//epoxy + tv100->AddNode(tvpr3,1);//prepreg strip + // middle + tv100->AddNode(tv6,1,new TGeoTranslation(0.,0.,-98.75)); //sandwich1 + tv100->AddNode(tv6,2,new TGeoTranslation(0.,0.,98.75)); // sandwich2 + tv100->AddNode(tvep2,1,new TGeoTranslation(0.,0.,-98.75)); //epoxy + tv100->AddNode(tvep2,2,new TGeoTranslation(0.,0.,98.75)); //epoxy + tv100->AddNode(tvpr2,1,new TGeoTranslation(0.,0.,-98.75));//prepreg strip + tv100->AddNode(tvpr2,2,new TGeoTranslation(0.,0.,98.75)); + // outer + tv100->AddNode(tv2,1,new TGeoTranslation(0.,0.,-177.925)); //sandwich + tv100->AddNode(tv2,2,new TGeoTranslation(0.,0.,177.925)); + tv100->AddNode(tvep1,1,new TGeoTranslation(0.,0.,-177.925)); //epoxy + tv100->AddNode(tvep1,2,new TGeoTranslation(0.,0.,177.925)); + tv100->AddNode(tvpr1,1,new TGeoTranslation(0.,0.,-177.925));//prepreg strip + tv100->AddNode(tvpr1,2,new TGeoTranslation(0.,0.,-177.925)); + // + // second segment - rotation 120 deg. + // + segrot = new TGeoRotation(); + segrot->RotateZ(120.); + // + // central + tv100->AddNode(tv10,2,segrot); //sandwich + tv100->AddNode(tvep3,2,segrot);//epoxy + tv100->AddNode(tvpr3,2,segrot);//prepreg strip + // middle + tv100->AddNode(tv6,3,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //sandwich1 + tv100->AddNode(tv6,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); // sandwich2 + tv100->AddNode(tvep2,3,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //epoxy + tv100->AddNode(tvep2,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); //epoxy + tv100->AddNode(tvpr2,3,new TGeoCombiTrans(0.,0.,-98.75,segrot));//prepreg strip + tv100->AddNode(tvpr2,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); + //outer + tv100->AddNode(tv2,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//sandwich + tv100->AddNode(tv2,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvep1,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//epoxy + tv100->AddNode(tvep1,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvpr1,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//prepreg strip + tv100->AddNode(tvpr1,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); + // + // third segment - rotation 240 deg. + // + segrot = new TGeoRotation(); + segrot->RotateZ(240.); + // + // central + tv100->AddNode(tv10,3,segrot); //sandwich + tv100->AddNode(tvep3,3,segrot);//epoxy + tv100->AddNode(tvpr3,3,segrot);//prepreg strip + // middle + tv100->AddNode(tv6,5,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //sandwich1 + tv100->AddNode(tv6,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); // sandwich2 + tv100->AddNode(tvep2,5,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //epoxy + tv100->AddNode(tvep2,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); //epoxy + tv100->AddNode(tvpr2,5,new TGeoCombiTrans(0.,0.,-98.75,segrot));//prepreg strip + tv100->AddNode(tvpr2,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); + //outer + tv100->AddNode(tv2,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//sandwich + tv100->AddNode(tv2,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvep1,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//epoxy + tv100->AddNode(tvep1,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvpr1,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//prepreg strip + tv100->AddNode(tvpr1,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); + // Al parts - rings + tv100->AddNode(tv1,1,new TGeoTranslation(0.,0.,-252.85)); + tv100->AddNode(tv1,2,new TGeoTranslation(0.,0.,252.85)); + // + v5->AddNode(v6,1, new TGeoTranslation(0.,0.,-252.1)); + v5->AddNode(v6,2, new TGeoTranslation(0.,0.,252.1)); + v1->AddNode(v5,1); v1->AddNode(v7,1); v1->AddNode(v8,1); + v1->AddNode(hvsm,1,new TGeoTranslation(0.,0.,-163.8)); + v1->AddNode(hvss,1,new TGeoTranslation(0.,0.,163.8)); + v9->AddNode(tv100,1); + // + // central drum + // + // flange + sandwich + // + TGeoPcon *cfl = new TGeoPcon(0.,360.,6); + cfl->DefineSection(0,-71.1,59.7,61.2); + cfl->DefineSection(1,-68.6,59.7,61.2); + // + cfl->DefineSection(2,-68.6,60.6124,61.2); + cfl->DefineSection(3,68.6,60.6124,61.2); + // + cfl->DefineSection(4,68.6,59.7,61.2); + cfl->DefineSection(5,71.1,59.7,61.2); + // + TGeoVolume *cflv = new TGeoVolume("TPC_CDR",cfl,m3); + // sandwich + TGeoTubeSeg *cd1 = new TGeoTubeSeg(60.6224,61.19,71.1,0.2,119.2); + TGeoTubeSeg *cd2 = new TGeoTubeSeg(60.6262,61.1862,71.1,0.2,119.2); + TGeoTubeSeg *cd3 = new TGeoTubeSeg(60.6462,61.1662,71.1,0.2,119.2); + TGeoTubeSeg *cd4 = new TGeoTubeSeg(60.6562,61.1562,71.1,0.2,119.2); + TGeoTubeSeg *tepox4 = new TGeoTubeSeg(60.6224,61.19,71.1,359.8,0.8); + // + TGeoMedium *sm6 = gGeoManager->GetMedium("TPC_Prepreg1"); + TGeoMedium *sm8 = gGeoManager->GetMedium("TPC_Epoxyfm"); + TGeoVolume *cd1v = new TGeoVolume("TPC_CDR1",cd1,sm2); //tedlar + TGeoVolume *cd2v = new TGeoVolume("TPC_CDR2",cd2,sm6);// prepreg1 + TGeoVolume *cd3v = new TGeoVolume("TPC_CDR3",cd3,sm8); //epoxy film + TGeoVolume *cd4v = new TGeoVolume("TPC_CDR4",cd4,sm4); //nomex + TGeoVolume *tvep4 = new TGeoVolume("TPC_IFEPOX4",tepox4,smep); + + // + // seals for central drum 2 copies + // + TGeoTube *cs = new TGeoTube(56.9,61.2,0.1); + TGeoMedium *sm7 = gGeoManager->GetMedium("TPC_Mylar"); + TGeoVolume *csv = new TGeoVolume("TPC_CDRS",cs,sm7); + v1->AddNode(csv,1,new TGeoTranslation(0.,0.,-71.2)); + v1->AddNode(csv,2,new TGeoTranslation(0.,0.,71.2)); + // + // seal collars + TGeoPcon *se = new TGeoPcon(0.,360.,6); + se->DefineSection(0,-72.8,59.7,61.2); + se->DefineSection(1,-72.3,59.7,61.2); + // + se->DefineSection(2,-72.3,58.85,61.2); + se->DefineSection(3,-71.6,58.85,61.2); + // + se->DefineSection(4,-71.6,59.7,61.2); + se->DefineSection(5,-71.3,59.7,61.2); + // + TGeoVolume *sev = new TGeoVolume("TPC_CDCE",se,m3); + // + TGeoTube *si = new TGeoTube(56.9,58.8,1.); + TGeoVolume *siv = new TGeoVolume("TPC_CDCI",si,m3); + // + // define reflection matrix + // + TGeoRotation *ref = new TGeoRotation("ref",90.,0.,90.,90.,180.,0.); + // + cd1v->AddNode(cd2v,1); cd2v->AddNode(cd3v,1); cd3v->AddNode(cd4v,1); //sandwich + // first segment + cflv->AddNode(cd1v,1); cflv->AddNode(tvep4,1); + // second segment + segrot = new TGeoRotation(); + segrot->RotateZ(120.); + cflv->AddNode(cd1v,2,segrot); cflv->AddNode(tvep4,2,segrot); + // third segment + segrot = new TGeoRotation(); + segrot->RotateZ(240.); + cflv->AddNode(cd1v,3,segrot); cflv->AddNode(tvep4,3,segrot); + // + v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-69.9)); + v1->AddNode(siv,2,new TGeoTranslation(0.,0.,69.9)); + v1->AddNode(sev,1); v1->AddNode(sev,2,ref); v1->AddNode(cflv,1); + // + // central membrane - 2 rings and a mylar membrane - assembly + // + TGeoTube *ih = new TGeoTube(81.05,84.05,0.3); + TGeoTube *oh = new TGeoTube(250.,256.,0.5); + TGeoTube *mem = new TGeoTube(84.05,250.,0.00115); + + // + TGeoMedium *m4 = gGeoManager->GetMedium("TPC_G10"); + // + TGeoVolume *ihv = new TGeoVolume("TPC_IHVH",ih,m3); + TGeoVolume *ohv = new TGeoVolume("TPC_OHVH",oh,m3); + + TGeoVolume *memv = new TGeoVolume("TPC_HV",mem,sm7); + // + TGeoVolumeAssembly *cm = new TGeoVolumeAssembly("TPC_HVMEM"); + cm->AddNode(ihv,1); + cm->AddNode(ohv,1); + cm->AddNode(memv,1); + + v9->AddNode(cm,1); + // + // end caps - they are make as an assembly of single segments + // containing both readout chambers + // + Double_t openingAngle = 10.*TMath::DegToRad(); + Double_t thick=1.5; // rib + Double_t shift = thick/TMath::Sin(openingAngle); + // + Double_t lowEdge = 86.3; // hole in the wheel + Double_t upEdge = 240.4; // hole in the wheel + // + new TGeoTubeSeg("sec",74.5,264.4,3.,0.,20.); + // + TGeoPgon *hole = new TGeoPgon("hole",0.,20.,1,4); + // + hole->DefineSection(0,-3.5,lowEdge-shift,upEdge-shift); + hole->DefineSection(1,-1.5,lowEdge-shift,upEdge-shift); + // + hole->DefineSection(2,-1.5,lowEdge-shift,upEdge+3.-shift); + hole->DefineSection(3,3.5,lowEdge-shift,upEdge+3.-shift); + // + Double_t ys = shift*TMath::Sin(openingAngle); + Double_t xs = shift*TMath::Cos(openingAngle); + TGeoTranslation *tr = new TGeoTranslation("tr",xs,ys,0.); + tr->RegisterYourself(); + TGeoCompositeShape *chamber = new TGeoCompositeShape("sec-hole:tr"); + TGeoVolume *sv = new TGeoVolume("TPC_WSEG",chamber,m3); + TGeoPgon *bar = new TGeoPgon("bar",0.,20.,1,2); + bar->DefineSection(0,-3.,131.5-shift,136.5-shift); + bar->DefineSection(1,1.5,131.5-shift,136.5-shift); + TGeoVolume *barv = new TGeoVolume("TPC_WBAR",bar,m3); + TGeoVolumeAssembly *ch = new TGeoVolumeAssembly("TPC_WCH");//empty segment + // + ch->AddNode(sv,1); ch->AddNode(barv,1,tr); + // + // readout chambers + // + // IROC first + // + TGeoTrd1 *ibody = new TGeoTrd1(13.8742,21.3328,4.29,21.15); + TGeoVolume *ibdv = new TGeoVolume("TPC_IROCB",ibody,m3); + // empty space + TGeoTrd1 *emp = new TGeoTrd1(12.3742,19.8328,3.99,19.65); + TGeoVolume *empv = new TGeoVolume("TPC_IROCE",emp,m1); + ibdv->AddNode(empv,1,new TGeoTranslation(0.,-0.3,0.)); + //bars + Double_t tga = (19.8328-12.3742)/39.3; + Double_t xmin,xmax; + xmin = 9.55*tga+12.3742; + xmax = 9.95*tga+12.3742; + TGeoTrd1 *ib1 = new TGeoTrd1(xmin,xmax,3.29,0.2); + TGeoVolume *ib1v = new TGeoVolume("TPC_IRB1",ib1,m3); + empv->AddNode(ib1v,1,new TGeoTranslation("tt1",0.,0.7,-9.9)); + xmin=19.4*tga+12.3742; + xmax=19.9*tga+12.3742; + TGeoTrd1 *ib2 = new TGeoTrd1(xmin,xmax,3.29,0.25); + TGeoVolume *ib2v = new TGeoVolume("TPC_TRB2",ib2,m3); + empv->AddNode(ib2v,1,new TGeoTranslation(0.,0.7,0.)); + xmin=29.35*tga+12.3742; + xmax=29.75*tga+12.3742; + TGeoTrd1 *ib3 = new TGeoTrd1(xmin,xmax,3.29,0.2); + TGeoVolume *ib3v = new TGeoVolume("TPC_IRB3",ib3,m3); + empv->AddNode(ib3v,1,new TGeoTranslation(0.,0.7,9.9)); + // + // holes for connectors + // + TGeoBBox *conn = new TGeoBBox(0.4,0.3,4.675); // identical for iroc and oroc + TGeoVolume *connv = new TGeoVolume("TPC_RCCON",conn,m1); + TString fileName(gSystem->Getenv("ALICE_ROOT")); + fileName += "/TPC/conn_iroc.dat"; + std::ifstream in; + in.open(fileName.Data(), ios_base::in); // asci file + TGeoRotation *rrr[86]; + for(Int_t i =0;i<86;i++){ + Double_t y = 3.99; + Double_t x,z,ang; + in>>x>>z>>ang; + z-=26.5; + rrr[i]= new TGeoRotation(); + rrr[i]->RotateY(ang); + ibdv->AddNode(connv,i+1,new TGeoCombiTrans(x,y,z,rrr[i])); + } + in.close(); + // "cap" + new TGeoTrd1("icap",14.5974,23.3521,1.19,24.825); + // "hole" + new TGeoTrd1("ihole",13.8742,21.3328,1.2,21.15); + TGeoTranslation *tr1 = new TGeoTranslation("tr1",0.,0.,1.725); + tr1->RegisterYourself(); + TGeoCompositeShape *ic = new TGeoCompositeShape("icap-ihole:tr1"); + TGeoVolume *icv = new TGeoVolume("TPC_IRCAP",ic,m3); + // + // pad plane and wire fixations + // + TGeoTrd1 *pp = new TGeoTrd1(14.5974,23.3521,0.3,24.825); //pad+iso + TGeoVolume *ppv = new TGeoVolume("TPC_IRPP",pp,m4); + TGeoPara *f1 = new TGeoPara(.6,.5,24.825,0.,-10.,0.); + TGeoVolume *f1v = new TGeoVolume("TPC_IRF1",f1,m4); + TGeoPara *f2 = new TGeoPara(.6,.5,24.825,0.,10.,0.); + TGeoVolume *f2v = new TGeoVolume("TPC_IRF2",f2,m4); + // + TGeoVolumeAssembly *iroc = new TGeoVolumeAssembly("TPC_IROC"); + // + iroc->AddNode(ibdv,1); + iroc->AddNode(icv,1,new TGeoTranslation(0.,3.1,-1.725)); + iroc->AddNode(ppv,1,new TGeoTranslation(0.,4.59,-1.725)); + tga =(23.3521-14.5974)/49.65; + Double_t xx = 24.825*tga+14.5974-0.6; + iroc->AddNode(f1v,1,new TGeoTranslation(-xx,5.39,-1.725)); + iroc->AddNode(f2v,1,new TGeoTranslation(xx,5.39,-1.725)); + // + // OROC + // + TGeoTrd1 *obody = new TGeoTrd1(22.2938,40.5084,4.19,51.65); + TGeoVolume *obdv = new TGeoVolume("TPC_OROCB",obody,m3); + TGeoTrd1 *oemp = new TGeoTrd1(20.2938,38.5084,3.89,49.65); + TGeoVolume *oempv = new TGeoVolume("TPC_OROCE",oemp,m1); + obdv->AddNode(oempv,1,new TGeoTranslation(0.,-0.3,0.)); + //horizontal bars + tga=(38.5084-20.2938)/99.3; + xmin=tga*10.2+20.2938; + xmax=tga*10.6+20.2938; + TGeoTrd1 *ob1 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob1v = new TGeoVolume("TPC_ORB1",ob1,m3); + // + xmin=22.55*tga+20.2938; + xmax=24.15*tga+20.2938; + TGeoTrd1 *ob2 = new TGeoTrd1(xmin,xmax,2.915,0.8); + TGeoVolume *ob2v = new TGeoVolume("TPC_ORB2",ob2,m3); + // + xmin=36.1*tga+20.2938; + xmax=36.5*tga+20.2938; + TGeoTrd1 *ob3 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob3v = new TGeoVolume("TPC_ORB3",ob3,m3); + // + xmin=49.0*tga+20.2938; + xmax=50.6*tga+20.2938; + TGeoTrd1 *ob4 = new TGeoTrd1(xmin,xmax,2.915,0.8); + TGeoVolume *ob4v = new TGeoVolume("TPC_ORB4",ob4,m3); + // + xmin=63.6*tga+20.2938; + xmax=64.0*tga+20.2938; + TGeoTrd1 *ob5 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob5v = new TGeoVolume("TPC_ORB5",ob5,m3); + // + xmin=75.5*tga+20.2938; + xmax=77.15*tga+20.2938; + TGeoTrd1 *ob6 = new TGeoTrd1(xmin,xmax,2.915,0.8); + TGeoVolume *ob6v = new TGeoVolume("TPC_ORB6",ob6,m3); + // + xmin=88.7*tga+20.2938; + xmax=89.1*tga+20.2938; + TGeoTrd1 *ob7 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob7v = new TGeoVolume("TPC_ORB7",ob7,m3); + // + oempv->AddNode(ob1v,1,new TGeoTranslation(0.,0.975,-39.25)); + oempv->AddNode(ob2v,1,new TGeoTranslation(0.,0.975,-26.3)); + oempv->AddNode(ob3v,1,new TGeoTranslation(0.,0.975,-13.35)); + oempv->AddNode(ob4v,1,new TGeoTranslation(0.,0.975,0.15)); + oempv->AddNode(ob5v,1,new TGeoTranslation(0.,0.975,14.15)); + oempv->AddNode(ob6v,1,new TGeoTranslation(0.,0.975,26.7)); + oempv->AddNode(ob7v,1,new TGeoTranslation(0.,0.975,39.25)); + // vertical bars + TGeoBBox *ob8 = new TGeoBBox(0.8,2.915,5.1); + TGeoBBox *ob9 = new TGeoBBox(0.8,2.915,5.975); + TGeoBBox *ob10 = new TGeoBBox(0.8,2.915,5.775); + TGeoBBox *ob11 = new TGeoBBox(0.8,2.915,6.25); + TGeoBBox *ob12 = new TGeoBBox(0.8,2.915,6.5); + // + TGeoVolume *ob8v = new TGeoVolume("TPC_ORB8",ob8,m3); + TGeoVolume *ob9v = new TGeoVolume("TPC_ORB9",ob9,m3); + TGeoVolume *ob10v = new TGeoVolume("TPC_ORB10",ob10,m3); + TGeoVolume *ob11v = new TGeoVolume("TPC_ORB11",ob11,m3); + TGeoVolume *ob12v = new TGeoVolume("TPC_ORB12",ob12,m3); + // + oempv->AddNode(ob8v,1,new TGeoTranslation(0.,0.975,-44.55)); + oempv->AddNode(ob8v,2,new TGeoTranslation(0.,0.975,44.55)); + oempv->AddNode(ob9v,1,new TGeoTranslation(0.,0.975,-33.075)); + oempv->AddNode(ob9v,2,new TGeoTranslation(0.,0.975,-19.525)); + oempv->AddNode(ob10v,1,new TGeoTranslation(0.,0.975,20.125)); + oempv->AddNode(ob10v,2,new TGeoTranslation(0.,0.975,33.275)); + oempv->AddNode(ob11v,1,new TGeoTranslation(0.,0.975,-6.9)); + oempv->AddNode(ob12v,1,new TGeoTranslation(0.,0.975,7.45)); + // + // holes for connectors + // + fileName = gSystem->Getenv("ALICE_ROOT"); + fileName += "/TPC/conn_oroc.dat"; + in.open(fileName.Data(), ios_base::in); // asci file + TGeoRotation *rr[78]; + for(Int_t i =0;i<78;i++){ + Double_t y =3.89; + Double_t x,z,ang; + Double_t x1,z1,x2,z2; + in>>x>>z>>ang; + Double_t xr = 4.7*TMath::Sin(ang*TMath::DegToRad()); + Double_t zr = 4.7*TMath::Cos(ang*TMath::DegToRad()); + // + x1=xr+x; x2=-xr+x; z1=zr+z; z2 = -zr+z; + // + rr[i]= new TGeoRotation(); + rr[i]->RotateY(ang); + z1-=54.95; + z2-=54.95; + // + obdv->AddNode(connv,i+1,new TGeoCombiTrans(x1,y,z1,rr[i])); + obdv->AddNode(connv,i+79,new TGeoCombiTrans(x2,y,z2,rr[i])); + } + in.close(); + // cap + new TGeoTrd1("ocap",23.3874,43.5239,1.09,57.1); + new TGeoTrd1("ohole",22.2938,40.5084,1.09,51.65); + TGeoTranslation *tr5 = new TGeoTranslation("tr5",0.,0.,-2.15); + tr5->RegisterYourself(); + TGeoCompositeShape *oc = new TGeoCompositeShape("ocap-ohole:tr5"); + TGeoVolume *ocv = new TGeoVolume("TPC_ORCAP",oc,m3); + // + // pad plane and wire fixations + // + TGeoTrd1 *opp = new TGeoTrd1(23.3874,43.5239,0.3,57.1); + TGeoVolume *oppv = new TGeoVolume("TPC_ORPP",opp,m4); + // + tga=(43.5239-23.3874)/114.2; + TGeoPara *f3 = new TGeoPara(.7,.6,57.1,0.,-10.,0.); + TGeoPara *f4 = new TGeoPara(.7,.6,57.1,0.,10.,0.); + xx = 57.1*tga+23.3874-0.7; + TGeoVolume *f3v = new TGeoVolume("TPC_ORF1",f3,m4); + TGeoVolume *f4v = new TGeoVolume("TPC_ORF2",f4,m4); + // + TGeoVolumeAssembly *oroc = new TGeoVolumeAssembly("TPC_OROC"); + // + oroc->AddNode(obdv,1); + oroc->AddNode(ocv,1,new TGeoTranslation(0.,3.1,2.15)); + oroc->AddNode(oppv,1,new TGeoTranslation(0.,4.49,2.15)); + oroc->AddNode(f3v,1,new TGeoTranslation(-xx,5.39,2.15)); + oroc->AddNode(f4v,1,new TGeoTranslation(xx,5.39,2.15)); + // + // now iroc and oroc are placed into a sector... + // + TGeoVolumeAssembly *secta = new TGeoVolumeAssembly("TPC_SECT"); // a-side + TGeoVolumeAssembly *sectc = new TGeoVolumeAssembly("TPC_SECT"); // c-side + TGeoRotation rot1("rot1",90.,90.,0.); + TGeoRotation rot2("rot2"); + rot2.RotateY(10.); + TGeoRotation *rot = new TGeoRotation("rot"); + *rot=rot1*rot2; + // + Double_t x0,y0; + x0=110.2*TMath::Cos(openingAngle); + y0=110.2*TMath::Sin(openingAngle); + TGeoCombiTrans *combi1a = new TGeoCombiTrans("combi1",x0,y0,1.09+0.195,rot); //a-side + TGeoCombiTrans *combi1c = new TGeoCombiTrans("combi1",x0,y0,1.09+0.222,rot); //c-side + x0=188.45*TMath::Cos(openingAngle); + y0=188.45*TMath::Sin(openingAngle); + TGeoCombiTrans *combi2a = new TGeoCombiTrans("combi2",x0,y0,0.99+0.195,rot); //a-side + TGeoCombiTrans *combi2c = new TGeoCombiTrans("combi2",x0,y0,0.99+0.222,rot); //c-side + // + // + // A-side + // + secta->AddNode(ch,1); + secta->AddNode(iroc,1,combi1a); + secta->AddNode(oroc,1,combi2a); + // + // C-side + // + sectc->AddNode(ch,1); + sectc->AddNode(iroc,1,combi1c); + sectc->AddNode(oroc,1,combi2c); + // + // now I try to make wheels... + // + TGeoVolumeAssembly *wheela = new TGeoVolumeAssembly("TPC_ENDCAP"); + TGeoVolumeAssembly *wheelc = new TGeoVolumeAssembly("TPC_ENDCAP"); + // + TGeoRotation *rwh[18]; + for(Int_t i =0;i<18;i++){ + Double_t phi = (20.*i); + rwh[i]=new TGeoRotation(); + rwh[i]->RotateZ(phi); + wheela->AddNode(secta,i+1,rwh[i]); + wheelc->AddNode(sectc,i+1,rwh[i]); + + } + // wheels in the drift volume! + + TGeoCombiTrans *combi3 = new TGeoCombiTrans("combi3",0.,0.,256.6,ref); + v9->AddNode(wheela,1,combi3); + v9->AddNode(wheelc,2,new TGeoTranslation(0.,0.,-256.6)); + //_____________________________________________________________ + // service support wheel + //_____________________________________________________________ + TGeoPgon *sw = new TGeoPgon(0.,20.,1,2); + sw->DefineSection(0,-4.,80.5,251.75); + sw->DefineSection(1,4.,80.5,251.75); + TGeoVolume *swv = new TGeoVolume("TPC_SWSEG",sw,m3); //Al + // + thick=1.; + shift = thick/TMath::Sin(openingAngle); + TGeoPgon *sh = new TGeoPgon(0.,20.,1,2); + sh->DefineSection(0,-4.,81.5-shift,250.75-shift); + sh->DefineSection(1,4.,81.5-shift,250.75-shift); + TGeoVolume *shv = new TGeoVolume("TPC_SWS1",sh,m1); //Air + // + TGeoMedium *m9 = gGeoManager->GetMedium("TPC_Si"); + TGeoPgon *el = new TGeoPgon(0.,20.,1,2); + el->DefineSection(0,-1.872,81.5-shift,250.75-shift); + el->DefineSection(1,1.872,81.5-shift,250.75-shift); + TGeoVolume *elv = new TGeoVolume("TPC_ELEC",el,m9); //Si + // + shv->AddNode(elv,1); + // + // + ys = shift*TMath::Sin(openingAngle); + xs = shift*TMath::Cos(openingAngle); + swv->AddNode(shv,1,new TGeoTranslation(xs,ys,0.)); + // cover + TGeoPgon *co = new TGeoPgon(0.,20.,1,2); + co->DefineSection(0,-0.5,77.,255.25); + co->DefineSection(1,0.5,77.,255.25); + TGeoVolume *cov = new TGeoVolume("TPC_SWC1",co,m3);//Al + // hole in a cover + TGeoPgon *coh = new TGeoPgon(0.,20.,1,2); + shift=4./TMath::Sin(openingAngle); + coh->DefineSection(0,-0.5,85.-shift,247.25-shift); + coh->DefineSection(1,0.5,85.-shift,247.25-shift); + // + TGeoVolume *cohv = new TGeoVolume("TPC_SWC2",coh,m1); + // + ys = shift*TMath::Sin(openingAngle); + xs = shift*TMath::Cos(openingAngle); + cov->AddNode(cohv,1,new TGeoTranslation(xs,ys,0.)); + // + // Sector as an Assembly + // + TGeoVolumeAssembly *swhs = new TGeoVolumeAssembly("TPC_SSWSEC"); + swhs->AddNode(swv,1); + swhs->AddNode(cov,1,new TGeoTranslation(0.,0.,-4.5)); + swhs->AddNode(cov,2,new TGeoTranslation(0.,0.,4.5)); + // + // SSW as an Assembly of sectors + // + TGeoRotation *rsw[18]; + TGeoVolumeAssembly *swheel = new TGeoVolumeAssembly("TPC_SSWHEEL"); + for(Int_t i =0;i<18;i++){ + Double_t phi = (20.*i); + rsw[i] = new TGeoRotation(); + rsw[i]->RotateZ(phi); + swheel->AddNode(swhs,i+1,rsw[i]); + } + v1->AddNode(swheel,1,new TGeoTranslation(0.,0.,-284.6)); + v1->AddNode(swheel,2,new TGeoTranslation(0.,0.,284.6)); + + // sensitive strips - strip "0" is always set + // conditional + Int_t totrows; + totrows = mParam->GetNRowLow() + mParam->GetNRowUp(); + Double_t *upar; + upar=NULL; + gGeoManager->Volume("TPC_Strip","PGON",m5->GetId(),upar); + upar=new Double_t [10]; + upar[0]=0.; + upar[1]=360.; + upar[2]=18.; + upar[3]=2.; + // + upar[4]=-124.8; + upar[7]=124.8; + + Double_t rlow=mParam->GetPadRowRadiiLow(0); + + upar[5]=rlow; + upar[6]=rlow+.01; + upar[8]=upar[5]; + upar[9]=upar[6]; + // + gGeoManager->Node("TPC_Strip",1,"TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); + gGeoManager->Node("TPC_Strip",totrows+1, + "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); + // + // now, strips optionally + // + if(mSens){ + //lower sectors + for(Int_t i=2;iGetNRowLow()+1;i++){ + rlow=mParam->GetPadRowRadiiLow(i-1); + upar[5]=rlow; + upar[6]=rlow+.01; + upar[8]=upar[5]; + upar[9]=upar[6]; + gGeoManager->Node("TPC_Strip",i, + "TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); + gGeoManager->Node("TPC_Strip",totrows+i, + "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); + } + //upper sectors + for(Int_t i=1;iGetNRowUp()+1;i++){ + rlow=mParam->GetPadRowRadiiUp(i-1); + upar[5]=rlow; + upar[6]=rlow+.01; + upar[8]=upar[5]; + upar[9]=upar[6]; + gGeoManager->Node("TPC_Strip",i+mParam->GetNRowLow(), + "TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); + gGeoManager->Node("TPC_Strip",totrows+i+mParam->GetNRowLow(), + "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); + } + }//strips + //---------------------------------------------------------- + // TPC Support Rods - MAKROLON + //---------------------------------------------------------- + TGeoMedium *m6=gGeoManager->GetMedium("TPC_Makrolon"); + TGeoMedium *m7=gGeoManager->GetMedium("TPC_Cu"); + TGeoMedium *m10 = gGeoManager->GetMedium("TPC_Alumina"); + TGeoMedium *m11 = gGeoManager->GetMedium("TPC_Peek");; + TGeoMedium *m13 = gGeoManager->GetMedium("TPC_Brass"); + TGeoMedium *m14 = gGeoManager->GetMedium("TPC_Alumina1"); + // + // tpc rod is an assembly of 10 long parts and 2 short parts + // connected with alu rings and plagged on both sides. + // + // + // tpc rod long + // + TGeoPcon *rod = new TGeoPcon("rod",0.,360.,6); + rod->DefineSection(0,-10.43,1.92,2.08); + rod->DefineSection(1,-9.75,1.92,2.08); + + rod->DefineSection(2,-9.75,1.8,2.2); + rod->DefineSection(3,9.75,1.8,2.2); + + rod->DefineSection(4,9.75,1.92,2.08); + rod->DefineSection(5,10.43,1.92,2.08); + // + TGeoVolume *mrodl = new TGeoVolume("TPC_mrodl",rod,m6); + // + // tpc rod short + // + TGeoPcon *rod1 = new TGeoPcon("rod1",0.,360.,6); + rod1->DefineSection(0,-8.93,1.92,2.08); + rod1->DefineSection(1,-8.25,1.92,2.08); + + rod1->DefineSection(2,-8.25,1.8,2.2); + rod1->DefineSection(3,8.25,1.8,2.2); + + rod1->DefineSection(4,8.25,1.92,2.08); + rod1->DefineSection(5,8.93,1.92,2.08); + // + TGeoVolume *mrods = new TGeoVolume("TPC_mrods",rod1,m6); + // + // below is for the resistor rod + // + // hole for the brass connectors + // + + new TGeoTube("hhole",0.,0.3,0.3); + // + //transformations for holes - initialy they + // are placed at x=0 and negative y + // + TGeoRotation *rhole = new TGeoRotation(); + rhole->RotateX(90.); + TGeoCombiTrans *transf[13]; + Char_t name[30]; + for(Int_t i=0;i<13;i++){ + snprintf(name,30,"transf%d",i); + transf[i]= new TGeoCombiTrans(name,0.,-2.,-9.+i*1.5,rhole); + transf[i]->RegisterYourself(); + } + // union expression for holes + TString operl("hhole:transf0"); + for (Int_t i=1;i<13;i++){ + snprintf(name,30,"+hhole:transf%d",i); + operl.Append(name); + } + // + TString opers("hhole:transf1"); + for (Int_t i=2;i<12;i++){ + snprintf(name,30,"+hhole:transf%d",i); + opers.Append(name); + } + //union of holes + new TGeoCompositeShape("hlv",operl.Data()); + new TGeoCompositeShape("hsv",opers.Data()); + // + TGeoCompositeShape *rodl = new TGeoCompositeShape("rodl","rod-hlv"); + TGeoCompositeShape *rods = new TGeoCompositeShape("rods","rod1-hsv"); + //rods - volumes - makrolon rods with holes + TGeoVolume *rodlv = new TGeoVolume("TPC_rodl",rodl,m6); + TGeoVolume *rodsv = new TGeoVolume("TPC_rods",rods,m6); + //brass connectors + //connectors + TGeoTube *bcon = new TGeoTube(0.,0.3,0.3);//connectors + TGeoVolume *bconv = new TGeoVolume("TPC_bcon",bcon,m13); + // + // hooks holding strips + // + new TGeoBBox("hk1",0.625,0.015,0.75); + new TGeoBBox("hk2",0.625,0.015,0.15); + TGeoTranslation *tr21 = new TGeoTranslation("tr21",0.,-0.03,-0.6); + TGeoTranslation *tr12 = new TGeoTranslation("tr12",0.,-0.03,0.6); + tr21->RegisterYourself(); + tr12->RegisterYourself(); + + TGeoCompositeShape *hook = new TGeoCompositeShape("hook","hk1+hk2:tr21+hk2:tr12"); + TGeoVolume *hookv = new TGeoVolume("TPC_hook",hook,m13); + // + // assembly of the short rod with connectors and hooks + // + // + // short rod + // + TGeoVolumeAssembly *spart = new TGeoVolumeAssembly("TPC_spart"); + // + spart->AddNode( rodsv,1); + for(Int_t i=1;i<12;i++){ + spart->AddNode(bconv,i,transf[i]); + } + for(Int_t i =0;i<11;i++){ + spart->AddNode(hookv,i+1,new TGeoTranslation(0.,-2.315,-7.5+i*1.5)); + } + // + // long rod + // + TGeoVolumeAssembly *lpart = new TGeoVolumeAssembly("TPC_lpart"); + // + lpart->AddNode( rodlv,1); + for(Int_t i=0;i<13;i++){ + lpart->AddNode(bconv,i+12,transf[i]); + } + for(Int_t i =0;i<13;i++){ + lpart->AddNode(hookv,i+12,new TGeoTranslation(0.,-2.315,-9.+i*1.5)); + } + // + // alu ring + // + new TGeoTube("ring1",2.1075,2.235,0.53); + new TGeoTube("ring2",1.7925,1.89,0.43); + new TGeoTube("ring3",1.89,2.1075,0.05); + TGeoCompositeShape *ring = new TGeoCompositeShape("ring","ring1+ring2+ring3"); + TGeoVolume *ringv = new TGeoVolume("TPC_ring",ring,m3); + // + // rod assembly + // + TGeoVolumeAssembly *tpcrrod = new TGeoVolumeAssembly("TPC_rrod");//rrod + TGeoVolumeAssembly *tpcmrod = new TGeoVolumeAssembly("TPC_mrod");//makrolon rod + //long pieces + for(Int_t i=0;i<11;i++){ + tpcrrod->AddNode(ringv,i+1,new TGeoTranslation(0.,0.,-105.+i*21)); + tpcmrod->AddNode(ringv,i+12,new TGeoTranslation(0.,0.,-105.+i*21)); + } + for(Int_t i=0;i<10;i++){ + tpcrrod->AddNode(lpart,i+1,new TGeoTranslation(0.,0.,-94.5+i*21));//resistor rod + tpcmrod->AddNode(mrodl,i+1,new TGeoTranslation(0.,0.,-94.5+i*21));//makrolon rod + } + // + // right plug - identical for all rods + // + TGeoPcon *tpcrp = new TGeoPcon(0.,360.,6); + // + tpcrp->DefineSection(0,123.05,1.89,2.1075); + tpcrp->DefineSection(1,123.59,1.89,2.1075); + // + tpcrp->DefineSection(2,123.59,1.8,2.2); + tpcrp->DefineSection(3,127.,1.8,2.2); + // + tpcrp->DefineSection(4,127.,0.,2.2); + tpcrp->DefineSection(5,127.5,0.,2.2); + // + TGeoVolume *tpcrpv = new TGeoVolume("TPC_RP",tpcrp,m6); + // + // adding short pieces and right plug + // + tpcrrod->AddNode(spart,1,new TGeoTranslation(0.,0.,-114.)); + tpcrrod->AddNode(spart,2,new TGeoTranslation(0.,0.,114.)); + tpcrrod->AddNode(ringv,23,new TGeoTranslation(0.,0.,-123.)); + tpcrrod->AddNode(ringv,24,new TGeoTranslation(0.,0.,123.)); + tpcrrod->AddNode(tpcrpv,1); + // + tpcmrod->AddNode(mrods,1,new TGeoTranslation(0.,0.,-114.)); + tpcmrod->AddNode(mrods,2,new TGeoTranslation(0.,0.,114.)); + tpcmrod->AddNode(ringv,25,new TGeoTranslation(0.,0.,-123.)); + tpcmrod->AddNode(ringv,26,new TGeoTranslation(0.,0.,123.)); + tpcmrod->AddNode(tpcrpv,2); + // + // from the ringv position to the CM is 3.0 cm! + //---------------------------------------- + // + // + //HV rods - makrolon + 0.58cm (diameter) Cu ->check the length + TGeoTube *hvr = new TGeoTube(0.,1.465,123.); + TGeoTube *hvc = new TGeoTube(0.,0.29,123.); + // + TGeoVolume *hvrv = new TGeoVolume("TPC_HV_Rod",hvr,m6); + TGeoVolume *hvcv = new TGeoVolume("TPC_HV_Cable",hvc,m7); + hvrv->AddNode(hvcv,1); + // + //resistor rod + // + TGeoTube *cr = new TGeoTube(0.,0.45,123.); + TGeoTube *cw = new TGeoTube(0.,0.15,123.); + TGeoVolume *crv = new TGeoVolume("TPC_CR",cr,m10); + TGeoVolume *cwv = new TGeoVolume("TPC_W",cw,m12); + // + // ceramic rod with water + // + crv->AddNode(cwv,1); + // + //peek rod + // + TGeoTube *pr =new TGeoTube(0.2,0.35,123.); + TGeoVolume *prv = new TGeoVolume("TPC_PR",pr,m11); + // + // copper plates with connectors + // + new TGeoTube("tub",0.,1.7,0.025); + // + // half space - points on the plane and a normal vector + // + Double_t n[3],p[3]; + Double_t slope = TMath::Tan(22.*TMath::DegToRad()); + Double_t intp = 1.245; + // + Double_t b = slope*slope+1.; + p[0]=intp*slope/b; + p[1]=-intp/b; + p[2]=0.; + // + n[0]=-p[0]; + n[1]=-p[1]; + n[2]=0.; + Double_t norm; + norm=TMath::Sqrt(n[0]*n[0]+n[1]*n[1]); + n[0] /= norm; + n[1] /=norm; + // + new TGeoHalfSpace("sp1",p,n); + // + slope = -slope; + // + p[0]=intp*slope/b; + p[1]=-intp/b; + // + n[0]=-p[0]; + n[1]=-p[1]; + norm=TMath::Sqrt(n[0]*n[0]+n[1]*n[1]); + n[0] /= norm; + n[1] /=norm; + // + new TGeoHalfSpace("sp2",p,n); + // holes for rods + //holes + new TGeoTube("h1",0.,0.5,0.025); + new TGeoTube("h2",0.,0.35,0.025); + //translations: + TGeoTranslation *ttr11 = new TGeoTranslation("ttr11",-0.866,0.5,0.); + TGeoTranslation *ttr22 = new TGeoTranslation("ttr22",0.866,0.5,0.); + ttr11->RegisterYourself(); + ttr22->RegisterYourself(); + // elastic connector + new TGeoBBox("elcon",0.72,0.005,0.3); + TGeoRotation *crr1 = new TGeoRotation(); + crr1->RotateZ(-22.); + TGeoCombiTrans *ctr1 = new TGeoCombiTrans("ctr1",-0.36011, -1.09951,-0.325,crr1); + ctr1->RegisterYourself(); + TGeoCompositeShape *cs1 = new TGeoCompositeShape("cs1", + "(((((tub-h1:ttr11)-h1:ttr22)-sp1)-sp2)-h2)+elcon:ctr1"); + // + TGeoVolume *csvv = new TGeoVolume("TPC_RR_CU",cs1,m7); + // + // resistor rod assembly 2 ceramic rods, peak rod, Cu plates + // and resistors + // + TGeoVolumeAssembly *rrod = new TGeoVolumeAssembly("TPC_RRIN"); + // rods + rrod->AddNode(crv,1,ttr11); + rrod->AddNode(crv,2,ttr22); + rrod->AddNode(prv,1); + //Cu plates + for(Int_t i=0;i<165;i++){ + rrod->AddNode(csvv,i+1,new TGeoTranslation(0.,0.,-122.675+i*1.5)); + } + //resistors + TGeoTube *res = new TGeoTube(0.,0.15,0.5); + TGeoVolume *resv = new TGeoVolume("TPC_RES",res,m14); + TGeoVolumeAssembly *ress = new TGeoVolumeAssembly("TPC_RES_CH"); + ress->AddNode(resv,1,new TGeoTranslation(0.2,0.,0.)); + ress->AddNode(resv,2,new TGeoTranslation(-0.2,0.,0.)); + // + TGeoRotation *crr2 = new TGeoRotation(); + crr2->RotateY(30.); + TGeoRotation *crr3 = new TGeoRotation(); + crr3->RotateY(-30.); + // + for(Int_t i=0;i<164;i+=2){ + rrod->AddNode(ress,i+1, new TGeoCombiTrans(0.,1.2,-121.925+i*1.5,crr2)); + rrod->AddNode(ress,i+2, new TGeoCombiTrans(0.,1.2,-121.925+(i+1)*1.5,crr3)); + } + + tpcrrod->AddNode(rrod,1,new TGeoCombiTrans(0.,0.,0.5,crr1)); + // + // rod left head with holders - inner + // + // first element - support for inner holder TPC_IHS + Double_t shift1[3] = {0.0,-0.175,0.0}; + + new TGeoBBox("tpcihs1", 4.7, 0.66, 2.35); + new TGeoBBox("tpcihs2", 4.7, 0.485, 1.0, shift1); + new TGeoBBox("tpcihs3", 1.5, 0.485, 2.35, shift1); + new TGeoTube("tpcihs4", 0.0, 2.38, 0.1); + // + Double_t pointstrap[16]; + pointstrap[0]= 0.0; + pointstrap[1]= 0.0; + pointstrap[2]= 0.0; + pointstrap[3]= 1.08; + pointstrap[4]= 2.3; + pointstrap[5]= 1.08; + pointstrap[6]= 3.38; + pointstrap[7]= 0.0; + pointstrap[8]= 0.0; + pointstrap[9]= 0.0; + pointstrap[10]= 0.0; + pointstrap[11]= 1.08; + pointstrap[12]= 2.3; + pointstrap[13]= 1.08; + pointstrap[14]= 3.38; + pointstrap[15]= 0.0; + // + TGeoArb8 *tpcihs5 = new TGeoArb8("tpcihs5", 0.6, pointstrap); + // + // half space - cutting "legs" + // + p[0]=0.0; + p[1]=0.105; + p[2]=0.0; + // + n[0] = 0.0; + n[1] = 1.0; + n[2] = 0.0; + + new TGeoHalfSpace("cutil1", p, n); + + // + // transformations + // + TGeoTranslation *trans2 = new TGeoTranslation("trans2", 0.0, 2.84, 2.25); + trans2->RegisterYourself(); + TGeoTranslation*trans3= new TGeoTranslation("trans3", 0.0, 2.84, -2.25); + trans3->RegisterYourself(); + //support - composite volume + // + TGeoCompositeShape *tpcihs6 = new TGeoCompositeShape("tpcihs6", "tpcihs1-(tpcihs2+tpcihs3)-(tpcihs4:trans2)-(tpcihs4:trans3)-cutil1"); + // + // volumes - all makrolon + // + TGeoVolume *tpcihss = new TGeoVolume("TPC_IHSS", tpcihs6, m6); //support + TGeoVolume *tpcihst = new TGeoVolume("TPC_IHSTR",tpcihs5 , m6); //trapesoid + //now assembly + TGeoRotation *rot111 = new TGeoRotation(); + rot111->RotateY(180.0); + // + TGeoVolumeAssembly *tpcihs = new TGeoVolumeAssembly("TPC_IHS"); // assembly of the support + tpcihs->AddNode(tpcihss, 1); + tpcihs->AddNode(tpcihst, 1, new TGeoTranslation(-4.7, 0.66, 0.0)); + tpcihs->AddNode(tpcihst, 2, new TGeoCombiTrans(4.7, 0.66, 0.0, rot111)); + // + // two rod holders (TPC_IRH) assembled with the support + // + new TGeoBBox("tpcirh1", 4.7, 1.33, 0.5); + shift1[0]=-3.65; + shift1[1]=0.53; + shift1[2]=0.; + new TGeoBBox("tpcirh2", 1.05, 0.8, 0.5, shift1); + shift1[0]=3.65; + shift1[1]=0.53; + shift1[2]=0.; + new TGeoBBox("tpcirh3", 1.05, 0.8, 0.5, shift1); + shift1[0]=0.0; + shift1[1]=1.08; + shift1[2]=0.; + new TGeoBBox("tpcirh4", 1.9, 0.25, 0.5, shift1); + new TGeoTube("tpcirh5", 0, 1.9, 5); + // + TGeoTranslation *trans4 = new TGeoTranslation("trans4", 0, 0.83, 0.0); + trans4->RegisterYourself(); + // + TGeoCompositeShape *tpcirh6 = new TGeoCompositeShape("tpcirh6", "tpcirh1-tpcirh2-tpcirh3-(tpcirh5:trans4)-tpcirh4"); + // + // now volume + // + TGeoVolume *tpcirh = new TGeoVolume("TPC_IRH", tpcirh6, m6); + // + // and all together... + // + TGeoVolume *tpciclamp = new TGeoVolumeAssembly("TPC_ICLP"); + tpciclamp->AddNode(tpcihs, 1); + tpciclamp->AddNode(tpcirh, 1, new TGeoTranslation(0, 1.99, 1.1)); + tpciclamp->AddNode(tpcirh, 2, new TGeoTranslation(0, 1.99, -1.1)); + // + // and now left inner "head" + // + TGeoPcon *inplug = new TGeoPcon("inplug", 0.0, 360.0, 14); + + inplug->DefineSection(0, 0.3, 0.0, 2.2); + inplug->DefineSection(1, 0.6, 0.0, 2.2); + + inplug->DefineSection(2, 0.6, 0.0, 1.75); + inplug->DefineSection(3, 0.7, 0.0, 1.75); + + inplug->DefineSection(4, 0.7, 1.55, 1.75); + inplug->DefineSection(5, 1.6, 1.55, 1.75); + + inplug->DefineSection(6, 1.6, 1.55, 2.2); + inplug->DefineSection(7, 1.875, 1.55, 2.2); + + inplug->DefineSection(8, 1.875, 1.55, 2.2); + inplug->DefineSection(9, 2.47, 1.75, 2.2); + + inplug->DefineSection(10, 2.47, 1.75, 2.08); + inplug->DefineSection(11, 2.57, 1.8, 2.08); + + inplug->DefineSection(12, 2.57, 1.92, 2.08); + inplug->DefineSection(13, 2.95, 1.92, 2.08); + // + shift1[0]=0.0; + shift1[1]=-2.09; + shift1[2]=1.075; + // + new TGeoBBox("pcuti", 1.5, 0.11, 1.075, shift1); + // + TGeoCompositeShape *inplleft = new TGeoCompositeShape("inplleft", "inplug-pcuti"); + TGeoVolume *tpcinlplug = new TGeoVolume("TPC_INPLL", inplleft, m6); + // + // holder + plugs + // + TGeoVolume *tpcihpl = new TGeoVolumeAssembly("TPC_IHPL"); //holder+2 plugs (reflected) + tpcihpl->AddNode(tpcinlplug, 1); + tpcihpl->AddNode(tpcinlplug, 2,ref); + tpcihpl->AddNode(tpciclamp,1,new TGeoTranslation(0.0, -2.765, 0.0)); + // + // outer holders and clamps + // + + // outer membrane holder (between rods) + pointstrap[0]= 0.0; + pointstrap[1]= 0.0; + pointstrap[2]= 0.0; + pointstrap[3]= 2.8; + pointstrap[4]= 3.1; + pointstrap[5]= 2.8-3.1*TMath::Tan(15.*TMath::DegToRad()); + pointstrap[6]= 3.1; + pointstrap[7]= 0.0; + pointstrap[8]= 0.0; + pointstrap[9]= 0.0; + pointstrap[10]= 0.0; + pointstrap[11]= 2.8; + pointstrap[12]= 3.1; + pointstrap[13]= 2.8-3.1*TMath::Tan(15.*TMath::DegToRad()); + pointstrap[14]= 3.1; + pointstrap[15]= 0.0; + // + TGeoArb8 *tpcomh1 = new TGeoArb8("tpcomh1", 1.05, pointstrap); + TGeoBBox *tpcomh2 = new TGeoBBox("tpcomh2", 0.8, 1.4, 6); + // + TGeoVolume *tpcomh1v = new TGeoVolume("TPC_OMH1", tpcomh1, m7); + TGeoVolume *tpcomh2v = new TGeoVolume("TPC_OMH2", tpcomh2, m7); + // + TGeoVolume *tpcomh3v = new TGeoVolumeAssembly("TPC_OMH3"); // assembly1 + tpcomh3v->AddNode(tpcomh1v, 1, new TGeoTranslation(0.8, -1.4, 4.95)); + tpcomh3v->AddNode(tpcomh1v, 2, new TGeoTranslation(0.8, -1.4, -4.95)); + tpcomh3v->AddNode(tpcomh2v, 1); + // + shift1[0] = 0.9; + shift1[1] = -1.85; + shift1[2] = 0.0; + // + new TGeoBBox("tpcomh3", 1.65, 1.15, 3.4); + TGeoBBox *tpcomh4 = new TGeoBBox("tpcomh4", 0.75, 0.7, 3.4, shift1); + // + // halfspace 1 + // + p[0] = 0.0; + p[1] = -1.05; + p[2] = -3.4; + // + n[0] = 0.0; + n[1] = -1.0*TMath::Tan(30.*TMath::DegToRad()); + n[2] = 1.0; + // + new TGeoHalfSpace("cutomh1", p, n); + // + // halfspace 2 + // + p[0] = 0.0; + p[1] = -1.05; + p[2] = 3.4; + // + n[0] = 0.0; + n[1] = -1.0*TMath::Tan(30.*TMath::DegToRad()); + n[2] = -1.0; + // + new TGeoHalfSpace("cutomh2", p, n); + // + // halfspace 3 + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = -0.9; + // + n[0] = 1.0*TMath::Tan(75.*TMath::DegToRad()); + n[1] = 0.0; + n[2] = 1.0; + // + new TGeoHalfSpace("cutomh3", p, n); + // + // halfspace 4 + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = 0.9; + // + n[0] = 1.0*TMath::Tan(75*TMath::DegToRad()); + n[1] = 0.0; + n[2] = -1.0; + // + new TGeoHalfSpace("cutomh4", p, n); + // + // halsfspace 5 + // + p[0] = 1.65; + p[1] = -1.05; + p[2] = 0.0; + // + n[0] = -1.0; + n[1] = -1.0*TMath::Tan(20.*TMath::DegToRad()); + n[2] = 0.0; + // + new TGeoHalfSpace("cutomh5", p, n); + // + TGeoCompositeShape *tpcomh5 = new TGeoCompositeShape("tpcomh5", "tpcomh3-cutomh1-cutomh2-cutomh3-cutomh4-cutomh5"); + // + TGeoVolume *tpcomh5v = new TGeoVolume("TPC_OMH5",tpcomh5,m6); + TGeoVolume *tpcomh4v = new TGeoVolume("TPC_OMH6",tpcomh4,m6); + // + TGeoVolumeAssembly *tpcomh7v = new TGeoVolumeAssembly("TPC_OMH7"); + tpcomh7v->AddNode(tpcomh5v,1); + tpcomh7v->AddNode(tpcomh4v,1); + // + // full membrane holder - tpcomh3v + tpcomh7v + // + TGeoVolumeAssembly *tpcomh = new TGeoVolumeAssembly("TPC_OMH"); + tpcomh->AddNode(tpcomh3v,1,new TGeoTranslation(1.5,0.,0.)); + tpcomh->AddNode(tpcomh3v,2,new TGeoCombiTrans(-1.5,0.,0.,rot111)); + tpcomh->AddNode(tpcomh7v,1,new TGeoTranslation(0.65+1.5, 2.55, 0.0)); + tpcomh->AddNode(tpcomh7v,2,new TGeoCombiTrans(-0.65-1.5, 2.55, 0.0,rot111)); + // + // outer rod holder support + // + new TGeoBBox("tpcohs1", 3.8, 0.675, 2.35); + // + shift1[0] = 0.0; + shift1[1] = 0.175; + shift1[2] = 0.0; + // + new TGeoBBox("tpcohs2", 1.5, 0.5, 2.35, shift1); + new TGeoBBox("tpcohs3", 3.8, 0.5, 0.85, shift1); + // + shift1[0] = 0.0; + shift1[1] = -1.175; + shift1[2] = 0.0; + // + TGeoBBox *tpcohs4 = new TGeoBBox("tpsohs4", 3.1, 0.5, 0.7, shift1); + // + TGeoVolume *tpcohs4v = new TGeoVolume("TPC_OHS4", tpcohs4, m6); + // + p[0] = 0.0; + p[1] = -0.186; + p[2] = 0.0; + // + n[0] = 0.0; + n[1] = -1.0; + n[2] = 0.0; + // + new TGeoHalfSpace("cutohs1", p, n); + // + TGeoCompositeShape *tpcohs5 = new TGeoCompositeShape("tpcohs5", "tpcohs1-tpcohs2-tpcohs3-cutohs1"); + TGeoVolume *tpcohs5v = new TGeoVolume("TPC_OHS5", tpcohs5, m6); + // + TGeoVolumeAssembly *tpcohs = new TGeoVolumeAssembly("TPC_OHS"); + tpcohs->AddNode(tpcohs5v, 1); + tpcohs->AddNode(tpcohs4v, 1); + // + // outer rod holder itself + // + shift1[0] = 0.0; + shift1[1] = 1.325; + shift1[2] = 0.0; + new TGeoBBox("tpcorh1", 3.1, 1.825, 0.55); //from this box we cut pieces... + // + shift1[0] = -3.1; + shift1[1] = -0.5; + shift1[2] = 0.0; + // + new TGeoBBox("tpcorh2", 0.5, 2.75, 1.1, shift1); + // + shift1[0] = 3.1; + shift1[1] = -0.5; + shift1[2] = 0.0; + // + new TGeoBBox("tpcorh3", 0.5, 2.75, 1.1, shift1); + // + shift1[0] = 0.0; + shift1[1] = -0.5; + shift1[2] = -0.95; + // + new TGeoBBox("tpcorh4", 3.9, 2.75, 0.5, shift1); + // + shift1[0] = 0.0; + shift1[1] = -0.5; + shift1[2] = 0.0; + // + new TGeoBBox("tpcorh5", 1.95, 0.5, 1.1, shift1); + // + shift1[0] = 0.0; + shift1[1] = -0.5; + shift1[2] = 0.55; + // + new TGeoBBox("tpcorh6", 2.4, 0.5, 0.6, shift1); + // + new TGeoTube("tpcorh7", 0, 1.95, 0.85); + new TGeoTube("tpcorh8", 0, 2.4, 0.6); + // + TGeoTranslation *trans33 = new TGeoTranslation("trans33", 0.0, 0.0, 0.55); + trans33->RegisterYourself(); + // + TGeoCompositeShape *tpcorh9 = new TGeoCompositeShape("tpcorh9", "tpcorh1-tpcorh2-tpcorh3-tpcorh4-tpcorh5-tpcorh6-(tpcorh8:trans33)-tpcorh7"); + // + TGeoVolume *tpcorh9v = new TGeoVolume("TPC_ORH",tpcorh9,m6); //outer rod holder + // + // now 2 holders together + // + TGeoVolumeAssembly *tpcorh = new TGeoVolumeAssembly("TPC_ORH2"); + // + tpcorh->AddNode(tpcorh9v,1,new TGeoTranslation(0.0, 0.0, 1.25)); + tpcorh->AddNode(tpcorh9v,2,new TGeoCombiTrans(0.0, 0.0, -1.25,rot111)); + // + // outer rod plug left + // + TGeoPcon *outplug = new TGeoPcon("outplug", 0.0, 360.0, 14); + + outplug->DefineSection(0, 0.5, 0.0, 2.2); + outplug->DefineSection(1, 0.7, 0.0, 2.2); + + outplug->DefineSection(2, 0.7, 1.55, 2.2); + outplug->DefineSection(3, 0.8, 1.55, 2.2); + + outplug->DefineSection(4, 0.8, 1.55, 1.75); + outplug->DefineSection(5, 1.2, 1.55, 1.75); + + outplug->DefineSection(6, 1.2, 1.55, 2.2); + outplug->DefineSection(7, 1.875, 1.55, 2.2); + + outplug->DefineSection(8, 1.875, 1.55, 2.2); + outplug->DefineSection(9, 2.47, 1.75, 2.2); + + outplug->DefineSection(10, 2.47, 1.75, 2.08); + outplug->DefineSection(11, 2.57, 1.8, 2.08); + + outplug->DefineSection(12, 2.57, 1.92, 2.08); + outplug->DefineSection(13, 2.95, 1.92, 2.08); + // + shift1[0] = 0.0; + shift1[1] = 2.09; + shift1[2] = 1.01; + + new TGeoBBox("cutout", 2.5, 0.11, 1.01, shift1); + // + + TGeoCompositeShape *outplleft = new TGeoCompositeShape("outplleft", "outplug-cutout"); + TGeoVolume *outplleftv = new TGeoVolume("TPC_OPLL", outplleft, m6); + // + // support + holder + plug + // + + + TGeoVolumeAssembly *tpcohpl = new TGeoVolumeAssembly("TPC_OHPL"); + // + tpcohpl->AddNode(outplleftv,1); //plug + tpcohpl->AddNode(outplleftv,2,ref); //plug reflected + tpcohpl->AddNode(tpcorh,1); //rod holder + tpcohpl->AddNode(tpcohs,1,new TGeoTranslation(0.0, 3.925, 0)); // support + // + + // + // main membrane holder + // + pointstrap[0]= 0.0; + pointstrap[1]= 0.0; + pointstrap[2]= 0.0; + pointstrap[3]= 2.8; + pointstrap[4]= 3.1; + pointstrap[5]= 1.96; + pointstrap[6]= 3.1; + pointstrap[7]= 0.0; + pointstrap[8]= 0.0; + pointstrap[9]= 0.0; + pointstrap[10]= 0.0; + pointstrap[11]= 2.8; + pointstrap[12]= 3.1; + pointstrap[13]= 1.96; + pointstrap[14]= 3.1; + pointstrap[15]= 0.0; + // + TGeoArb8 *tpcmmh1 = new TGeoArb8("tpcmmh1", 1.75, pointstrap); + TGeoBBox *tpcmmh2 = new TGeoBBox("tpcmmh2", 0.8, 1.4, 12.5); + // + TGeoVolume *tpcmmh1v = new TGeoVolume("TPC_MMH1", tpcmmh1, m6); + TGeoVolume *tpcmmh2v = new TGeoVolume("TPC_MMH2", tpcmmh2, m6); + // + TGeoVolumeAssembly *tpcmmhs = new TGeoVolumeAssembly("TPC_MMHS"); + tpcmmhs->AddNode(tpcmmh1v,1,new TGeoTranslation(0.8, -1.4, 10.75)); + tpcmmhs->AddNode(tpcmmh1v,2,new TGeoTranslation(0.8, -1.4, -10.75)); + tpcmmhs->AddNode(tpcmmh2v,1); + // + // main membrahe holder clamp + // + shift1[0] = -0.75; + shift1[1] = -1.15; + shift1[2] = 0.0; + // + new TGeoBBox("tpcmmhc1", 1.65, 1.85, 8.9); + new TGeoBBox("tpcmmhc2", 0.9, 0.7, 8.9, shift1); + // + // half spaces - cuts + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = -0.9; + // + n[0] = 8.0; + n[1] = 0.0; + n[2] = 8.0*TMath::Tan(13.*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh1", p, n); + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = 0.9; + // + n[0] = 8.0; + n[1] = 0.0; + n[2] = -8.0*TMath::Tan(13.*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh2", p, n); + // + p[0] = 0.0; + p[1] = 1.85; + p[2] = -2.8; + // + n[0] = 0.0; + n[1] = -6.1; + n[2] = 6.1*TMath::Tan(20.*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh3", p, n); + // + p[0] = 0.0; + p[1] = 1.85; + p[2] = 2.8; + // + n[0] = 0.0; + n[1] = -6.1; + n[2] = -6.1*TMath::Tan(20*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh4", p, n); + // + p[0] = 0.75; + p[1] = 0.0; + p[2] = -8.9; + // + n[0] = 2.4*TMath::Tan(30*TMath::DegToRad()); + n[1] = 0.0; + n[2] = 2.4; + // + new TGeoHalfSpace("cutmmh5", p, n); + // + p[0] = 0.75; + p[1] = 0.0; + p[2] = 8.9; + // + n[0] = 2.4*TMath::Tan(30*TMath::DegToRad()); + n[1] = 0.0; + n[2] = -2.4; + // + new TGeoHalfSpace("cutmmh6", p, n); + + TGeoCompositeShape *tpcmmhc = new TGeoCompositeShape("TPC_MMHC", "tpcmmhc1-tpcmmhc2-cutmmh1-cutmmh2-cutmmh3-cutmmh4-cutmmh5-cutmmh6"); + + TGeoVolume *tpcmmhcv = new TGeoVolume("TPC_MMHC",tpcmmhc,m6); + // + TGeoVolume *tpcmmh = new TGeoVolumeAssembly("TPC_MMH"); + // + tpcmmh->AddNode(tpcmmhcv,1,new TGeoTranslation(0.65+1.5, 1.85, 0.0)); + tpcmmh->AddNode(tpcmmhcv,2,new TGeoCombiTrans(-0.65-1.5, 1.85, 0.0,rot111)); + tpcmmh->AddNode(tpcmmhs,1,new TGeoTranslation(1.5, 0.0, 0.0)); + tpcmmh->AddNode(tpcmmhs,2,new TGeoCombiTrans(-1.5, 0.0, 0.0,rot111)); + // + + // + + //-------------------------------------------- + // + // guard ring resistor chain + // + + TGeoTube *gres1 = new TGeoTube(0.,0.375,125.);// inside ifc + // + TGeoVolume *vgres1 = new TGeoVolume("TPC_GRES1",gres1,m14); + + // + Double_t xrc,yrc; + // + xrc=79.3*TMath::Cos(350.*TMath::DegToRad()); + yrc=79.3*TMath::Sin(350.*TMath::DegToRad()); + // + v9->AddNode(vgres1,1,new TGeoTranslation(xrc,yrc,126.9)); + v9->AddNode(vgres1,2,new TGeoTranslation(xrc,yrc,-126.9)); + // + xrc=79.3*TMath::Cos(190.*TMath::DegToRad()); + yrc=79.3*TMath::Sin(190.*TMath::DegToRad()); + // + v9->AddNode(vgres1,3,new TGeoTranslation(xrc,yrc,126.9)); + v9->AddNode(vgres1,4,new TGeoTranslation(xrc,yrc,-126.9)); + //------------------------------------------------------------------ + TGeoRotation refl("refl",90.,0.,90.,90.,180.,0.); + TGeoRotation rotrod("rotrod"); + // + TGeoRotation *rotpos[2]; + // + TGeoRotation *rotrod1[2]; + // + // clamps holding rods + // + TGeoBBox *clampi1 = new TGeoBBox("clampi1",0.2,3.1,0.8); + TGeoVolume *clampi1v = new TGeoVolume("TPC_clampi1v",clampi1,m6); + // + pointstrap[0]=0.49; + pointstrap[1]=0.375; + // + pointstrap[2]=0.49; + pointstrap[3]=-0.375; + // + pointstrap[4]=-0.49; + pointstrap[5]=-0.375; + // + pointstrap[6]=-0.49; + pointstrap[7]=1.225; + // + pointstrap[8]=0.49; + pointstrap[9]=0.375; + // + pointstrap[10]=0.49; + pointstrap[11]=-0.375; + // + pointstrap[12]=-0.49; + pointstrap[13]=-0.375; + // + pointstrap[14]=-0.49; + pointstrap[15]=1.225; + // + TGeoArb8 *clitrap = new TGeoArb8("clitrap",0.25,pointstrap); + TGeoVolume *clitrapv = new TGeoVolume("TPC_clitrapv",clitrap,m6); + // + TGeoRotation *clamprot = new TGeoRotation(); + clamprot->RotateX(180.); + // + new TGeoBBox("clibox",1.125,3.1,.1); + new TGeoTube("clitub",0.,2.2,0.1); + // + // copmisite shape for the clamp holder + // + TGeoTranslation *clitr1 = new TGeoTranslation("clitr1",1.125,0.,0.); + clitr1->RegisterYourself(); + TGeoCompositeShape *clihold = new TGeoCompositeShape("clihold","clibox-clitub:clitr1"); + TGeoVolume *cliholdv = new TGeoVolume("TPC_cliholdv",clihold,m6); + // + // now assembly the whole inner clamp + // + TGeoVolume *iclamp = new TGeoVolumeAssembly("TPC_iclamp"); + // + iclamp->AddNode(clampi1v,1); //main box + iclamp->AddNode(clitrapv,1,new TGeoTranslation(0.69,-2.725,0.35)); //trapezoids + iclamp->AddNode(clitrapv,2,new TGeoTranslation(0.69,-2.725,-0.35)); + iclamp->AddNode(clitrapv,3,new TGeoCombiTrans(0.69,2.725,0.35,clamprot)); + iclamp->AddNode(clitrapv,4,new TGeoCombiTrans(0.69,2.725,-0.35,clamprot)); + iclamp->AddNode(cliholdv,1,new TGeoTranslation(1.325,0.,0.)); //holder + // + // outer clamps + // + TGeoBBox *clampo1 = new TGeoBBox("clampo1",0.25,3.1,1.); + TGeoBBox *clampo2 = new TGeoBBox("clampo2",0.4,0.85,1.); + // + TGeoVolume *clampo1v = new TGeoVolume("TPC_clampo1v",clampo1,m6); + TGeoVolume *clampo2v = new TGeoVolume("TPC_clampo2v",clampo2,m6); + // + TGeoVolumeAssembly *oclamp = new TGeoVolumeAssembly("TPC_oclamp"); + // + oclamp->AddNode(clampo1v,1); + // + oclamp->AddNode(clampo2v,1,new TGeoTranslation(0.65,-2.25,0)); + oclamp->AddNode(clampo2v,2,new TGeoTranslation(0.65,2.25,0)); + + // + pointstrap[0]=0.375; + pointstrap[1]=0.75; + pointstrap[2]=0.375; + pointstrap[3]=-0.35; + pointstrap[5]=-0.375; + pointstrap[4]=-0.35; + pointstrap[6]=-0.375; + pointstrap[7]=0.35; + // + pointstrap[8]=0.375; + pointstrap[9]=0.75; + pointstrap[10]=0.375; + pointstrap[11]=-0.35; + pointstrap[12]=-0.375; + pointstrap[13]=-0.35; + pointstrap[14]=-0.375; + pointstrap[15]=0.35; + // + TGeoArb8 *clotrap = new TGeoArb8("clotrap",0.25,pointstrap); + TGeoVolume *clotrapv = new TGeoVolume("TPC_clotrapv",clotrap,m6); + // + oclamp->AddNode(clotrapv,1,new TGeoTranslation(-0.625,-2.75,0.35)); + oclamp->AddNode(clotrapv,2,new TGeoTranslation(-0.625,-2.75,-0.35)); + oclamp->AddNode(clotrapv,3,new TGeoCombiTrans(-0.625,2.75,0.35,clamprot)); + oclamp->AddNode(clotrapv,4,new TGeoCombiTrans(-0.625,2.75,-0.35,clamprot)); + // + TGeoBBox *clampo3 = new TGeoBBox("clampo3",1.6,0.45,.1); + TGeoVolume *clampo3v = new TGeoVolume("TPC_clampo3v",clampo3,m6); + // + oclamp->AddNode(clampo3v,1,new TGeoTranslation(-1.85,2.625,0.)); + oclamp->AddNode(clampo3v,2,new TGeoTranslation(-1.85,-2.625,0)); + // + TGeoTubeSeg *clampo4 = new TGeoTubeSeg("clampo4",2.2,3.1,0.1,90.,270.); + TGeoVolume *clampo4v = new TGeoVolume("TPC_clampo4v",clampo4,m6); + // + oclamp->AddNode(clampo4v,1,new TGeoTranslation(-3.45,0.,0.)); + + + + //v9 - drift gas + + TGeoRotation rot102("rot102"); + rot102.RotateY(-90.); + + for(Int_t i=0;i<18;i++){ + Double_t angle,x,y; + Double_t z,r; + angle=TMath::DegToRad()*20.*(Double_t)i; + //inner rods + r=81.5; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + z = 126.; + TGeoRotation *rot12 = new TGeoRotation(); + rot12->RotateZ(-90.0+i*20.); + v9->AddNode(tpcihpl,i+1,new TGeoCombiTrans(x, y, 0., rot12)); + // + if(i==11){//resistor rod inner + rotrod.RotateZ(-90.+i*20.); + rotrod1[0]= new TGeoRotation(); + rotpos[0]= new TGeoRotation(); + // + rotrod1[0]->RotateZ(90.+i*20.); + *rotpos[0] = refl*rotrod; //rotation+reflection + v9->AddNode(tpcrrod,1,new TGeoCombiTrans(x,y, z, rotrod1[0])); //A + v9->AddNode(tpcrrod,2,new TGeoCombiTrans(x,y,-z, rotpos[0])); //C + } + else { + v9->AddNode(tpcmrod,i+1,new TGeoTranslation(x,y,z));//shaft + v9->AddNode(tpcmrod,i+19,new TGeoCombiTrans(x,y,-z,ref));//muon + } + // + // inner clamps positioning + // + r=79.05; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + rot12= new TGeoRotation(); + rot12->RotateZ(i*20.); + // + //A-side + v9->AddNode(iclamp,7*i+1,new TGeoCombiTrans(x,y,5.25,rot12)); + v9->AddNode(iclamp,7*i+2,new TGeoCombiTrans(x,y,38.25,rot12)); + v9->AddNode(iclamp,7*i+3,new TGeoCombiTrans(x,y,80.25,rot12)); + v9->AddNode(iclamp,7*i+4,new TGeoCombiTrans(x,y,122.25,rot12)); + v9->AddNode(iclamp,7*i+5,new TGeoCombiTrans(x,y,164.25,rot12)); + v9->AddNode(iclamp,7*i+6,new TGeoCombiTrans(x,y,206.25,rot12)); + v9->AddNode(iclamp,7*i+7,new TGeoCombiTrans(x,y,246.75,rot12)); + //C-side + v9->AddNode(iclamp,7*i+127,new TGeoCombiTrans(x,y,-5.25,rot12)); + v9->AddNode(iclamp,7*i+128,new TGeoCombiTrans(x,y,-38.25,rot12)); + v9->AddNode(iclamp,7*i+129,new TGeoCombiTrans(x,y,-80.25,rot12)); + v9->AddNode(iclamp,7*i+130,new TGeoCombiTrans(x,y,-122.25,rot12)); + v9->AddNode(iclamp,7*i+131,new TGeoCombiTrans(x,y,-164.25,rot12)); + v9->AddNode(iclamp,7*i+132,new TGeoCombiTrans(x,y,-206.25,rot12)); + v9->AddNode(iclamp,7*i+133,new TGeoCombiTrans(x,y,-246.75,rot12)); + // + //-------------------------- + // outer rods + r=254.25; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + z=126.; + // + // outer rod holder + outer left plug + // + + TGeoRotation *rot33 = new TGeoRotation(); + rot33->RotateZ(-90+i*20.); + // + v9->AddNode(tpcohpl,i+1,new TGeoCombiTrans(x, y, 0., rot33)); + // + Double_t xxx = 256.297*TMath::Cos((i*20.+10.)*TMath::DegToRad()); + Double_t yyy = 256.297*TMath::Sin((i*20.+10.)*TMath::DegToRad()); + // + TGeoRotation rot101("rot101"); + rot101.RotateZ(90.+i*20.+10.); + TGeoRotation *rot103 = new TGeoRotation("rot103"); + *rot103 = rot101*rot102; + // + TGeoCombiTrans *trh100 = new TGeoCombiTrans(xxx,yyy,0.,rot103); + // + if(i==2) { + //main membrane holder + v9->AddNode(tpcmmh,1,trh100); + } + else{ + // "normal" membrane holder + v9->AddNode(tpcomh,i+1,trh100); + } + + // + if(i==3){//resistor rod outer + rotrod.RotateZ(90.+i*20.); + rotrod1[1]= new TGeoRotation(); + rotpos[1]= new TGeoRotation(); + rotrod1[1]->RotateZ(90.+i*20.); + *rotpos[1] = refl*rotrod;//rotation+reflection + v9->AddNode(tpcrrod,3,new TGeoCombiTrans(x,y, z, rotrod1[1])); //A + v9->AddNode(tpcrrod,4,new TGeoCombiTrans(x,y, -z, rotpos[1])); //C + } + else { + v9->AddNode(tpcmrod,i+37,new TGeoTranslation(x,y,z));//shaft + v9->AddNode(tpcmrod,i+55,new TGeoCombiTrans(x,y,-z,ref));//muon + } + if(i==15){ + v9->AddNode(hvrv,1,new TGeoTranslation(x,y,z+0.7)); //hv->A-side only + } + // + // outer clamps + // + r=256.9; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + rot12= new TGeoRotation(); + rot12->RotateZ(i*20.); + // + //A-side + v9->AddNode(oclamp,7*i+1,new TGeoCombiTrans(x,y,5.25,rot12)); + v9->AddNode(oclamp,7*i+2,new TGeoCombiTrans(x,y,38.25,rot12)); + v9->AddNode(oclamp,7*i+3,new TGeoCombiTrans(x,y,80.25,rot12)); + v9->AddNode(oclamp,7*i+4,new TGeoCombiTrans(x,y,122.25,rot12)); + v9->AddNode(oclamp,7*i+5,new TGeoCombiTrans(x,y,164.25,rot12)); + v9->AddNode(oclamp,7*i+6,new TGeoCombiTrans(x,y,206.25,rot12)); + v9->AddNode(oclamp,7*i+7,new TGeoCombiTrans(x,y,246.75,rot12)); + //C-side + v9->AddNode(oclamp,7*i+127,new TGeoCombiTrans(x,y,-5.25,rot12)); + v9->AddNode(oclamp,7*i+128,new TGeoCombiTrans(x,y,-38.25,rot12)); + v9->AddNode(oclamp,7*i+129,new TGeoCombiTrans(x,y,-80.25,rot12)); + v9->AddNode(oclamp,7*i+130,new TGeoCombiTrans(x,y,-122.25,rot12)); + v9->AddNode(oclamp,7*i+131,new TGeoCombiTrans(x,y,-164.25,rot12)); + v9->AddNode(oclamp,7*i+132,new TGeoCombiTrans(x,y,-206.25,rot12)); + v9->AddNode(oclamp,7*i+133,new TGeoCombiTrans(x,y,-246.75,rot12)); + + } //end of rods positioning + + TGeoVolume *alice = gGeoManager->GetVolume("cave"); + alice->AddNode(v1,1); + +} // end of function + +void Detector::defineSensitiveVolumes() +{ + TGeoManager* geoManager = gGeoManager; + TGeoVolume* v; + + const Int_t nSensitive=1; + const char* volumeNames[nSensitive]={"TPC_Drift"}; + + // The names of the ITS sensitive volumes have the format: ITSUSensor(0...mNumberLayers-1) + for (Int_t ivol = 0; ivol < nSensitive; ++ivol) { + TString volumeName = volumeNames[ivol]; + v = geoManager->GetVolume(volumeName.Data()); + if (!v) { + LOG(ERROR) << "Could not find volume '" << volumeName << "'" << FairLogger::endl; + continue; + } + + // set volume sentive + AddSensitiveVolume(v); + } +} + +Point* Detector::AddHit(Int_t trackID, Int_t detID, + TVector3 pos, TVector3 mom, + Double_t time, Double_t length, + Double_t eLoss) +{ + TClonesArray& clref = *mPointCollection; + Int_t size = clref.GetEntriesFast(); + return new(clref[size]) Point(trackID, detID, pos, mom, + time, length, eLoss); +} + +ClassImp(AliceO2::TPC::Detector) From 23c9c00668c8a9b12f642fabe07b77e116a9bbb6 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 22 Mar 2016 12:32:06 +0100 Subject: [PATCH 102/135] Fix CMakeLists --- o2cdb/CMakeLists.txt | 2 ++ tpc/CMakeLists.txt | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt index 089a4fa3e14f0..c24e50c23deb9 100644 --- a/o2cdb/CMakeLists.txt +++ b/o2cdb/CMakeLists.txt @@ -3,6 +3,8 @@ configure_file(${CMAKE_SOURCE_DIR}/o2cdb/conditions-client.json ${CMAKE_BINARY_D configure_file(${CMAKE_SOURCE_DIR}/o2cdb/fill_local_ocdb.C ${CMAKE_BINARY_DIR}/bin/config/fill_local_ocdb.C) set(INCLUDE_DIRECTORIES + ${BASE_INCLUDE_DIRECTORIES} + ${Boost_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/o2cdb ) diff --git a/tpc/CMakeLists.txt b/tpc/CMakeLists.txt index befc67c3f9f46..8c9e770e885b3 100644 --- a/tpc/CMakeLists.txt +++ b/tpc/CMakeLists.txt @@ -22,6 +22,7 @@ include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES ${ROOT_LIBRARY_DIR} +${Boost_LIBRARY_DIRS} ${FAIRROOT_LIBRARY_DIR} ) @@ -46,7 +47,7 @@ Set(LINKDEF TpcLinkDef.h) Set(LIBRARY_NAME tpc) Set(DEPENDENCIES Base - Minuit + Minuit boost_log AliceO2Base AliceO2Cdb ) From 6536b7e75d079f3386d5922d243a04b7632e8fbc Mon Sep 17 00:00:00 2001 From: wiechula Date: Mon, 20 Jun 2016 18:14:59 +0200 Subject: [PATCH 103/135] fix TPC geometry part, remove dirty stuff --- Detectors/TPC/simulation/include/Detector.h | 21 +- Detectors/TPC/simulation/src/Detector.cxx | 2981 +++++++++++++++-- .../TPC/simulation/src/tpcSimulationLinkDef.h | 17 - macro/run_sim.C | 9 +- 4 files changed, 2743 insertions(+), 285 deletions(-) diff --git a/Detectors/TPC/simulation/include/Detector.h b/Detectors/TPC/simulation/include/Detector.h index 5d02865a9646f..b2c3bfcd3629b 100644 --- a/Detectors/TPC/simulation/include/Detector.h +++ b/Detectors/TPC/simulation/include/Detector.h @@ -5,6 +5,8 @@ #include "Rtypes.h" // for Int_t, Double32_t, Double_t, Bool_t, etc #include "TLorentzVector.h" // for TLorentzVector #include "TVector3.h" // for TVector3 +#include "TString.h" + class FairVolume; // lines 10-10 class TClonesArray; // lines 11-11 namespace AliceO2 { namespace TPC { class Point; } } // lines 15-15 @@ -52,10 +54,6 @@ class Detector: public AliceO2::Base::Detector { /** Create the detector geometry */ void ConstructGeometry(); - /** Define the sensitive volumes of the geometry */ - void defineSensitiveVolumes(); - - /** This method is an example of how to add your own point * of type DetectorPoint to the clones array */ @@ -79,6 +77,8 @@ class Detector: public AliceO2::Base::Detector { virtual void PreTrack() {;} virtual void BeginEvent() {;} + void SetGeoFileName(const TString file) { fGeoFileName=file; } + const TString& GetGeoFileName() const { return fGeoFileName; } private: @@ -94,17 +94,20 @@ class Detector: public AliceO2::Base::Detector { Double32_t mEnergyLoss; //! energy loss /// Create the detector materials - virtual void createMaterials(); + virtual void CreateMaterials(); /// Construct the detector geometry - void constructDetectorGeometry(); + void LoadGeometryFromFile(); + /// Construct the detector geometry + void ConstructTPCGeometry(); + + /** Define the sensitive volumes of the geometry */ + void DefineSensitiveVolumes(); /** container for data points */ TClonesArray* mPointCollection; - Int_t mSens; //! if to include stripts in the geometry - //TODO: dirty - AliTPCParam *mParam; + TString fGeoFileName; /// Name of the file containing the TPC geometry Detector(const Detector&); Detector& operator=(const Detector&); diff --git a/Detectors/TPC/simulation/src/Detector.cxx b/Detectors/TPC/simulation/src/Detector.cxx index df0ad044292a7..fd03eb84094c5 100644 --- a/Detectors/TPC/simulation/src/Detector.cxx +++ b/Detectors/TPC/simulation/src/Detector.cxx @@ -21,13 +21,12 @@ #include "FairRuntimeDb.h" #include "FairLogger.h" -#include "Data/DetectorList.h" -#include "Data/Stack.h" - #include "TSystem.h" #include "TClonesArray.h" #include "TVirtualMC.h" +#include "TFile.h" + // geo stuff #include "TGeoManager.h" #include "TGeoGlobalMagField.h" @@ -45,11 +44,6 @@ #include "TGeoMatrix.h" -// dirty stuff -#include "AliTPCParam.h" -#include "Manager.h" -#include "Condition.h" - #include using std::cout; using std::endl; @@ -66,9 +60,7 @@ Detector::Detector() mTime(-1.), mLength(-1.), mEnergyLoss(-1), - mPointCollection(new TClonesArray("AliceO2::TPC::Point")), - mSens(0), - mParam(0x0) + mPointCollection(new TClonesArray("AliceO2::TPC::Point")) { } @@ -81,17 +73,8 @@ Detector::Detector(const char* name, Bool_t active) mTime(-1.), mLength(-1.), mEnergyLoss(-1), - mPointCollection(new TClonesArray("AliceO2::TPC::Point")), - mParam(0x0) + mPointCollection(new TClonesArray("AliceO2::TPC::Point")) { - //TODO: Change this at some point - AliceO2::CDB::Condition* tpcParametersCondition = AliceO2::CDB::Manager::Instance()->getObject("TPC/Calib/Parameters"); - if (tpcParametersCondition) { - mParam = dynamic_cast(tpcParametersCondition->getObject()); - } - if (!mParam) { - LOG(ERROR) << "Could not load TPC Parameters" << FairLogger::endl; - } } @@ -152,239 +135,6 @@ Bool_t Detector::ProcessHits(FairVolume* vol) } -// Bool_t Detector::ProcessHits(FairVolume* vol) -// { -// // -// // Called for every step in the Time Projection Chamber -// // -// -// // -// // parameters used for the energy loss calculations -// // -// const Float_t prim = 14.35; // number of primary collisions per 1 cm -// const Float_t poti = 20.77e-9; // first ionization potential for Ne/CO2 -// const Float_t wIon = 35.97e-9; // energy for the ion-electron pair creation -// const Float_t kScalewIonG4 = 0.85; // scale factor to tune kwIon for Geant4 -// const Float_t kFanoFactorG4 = 0.7; // parameter for smearing the number of ionizations (nel) using Geant4 -// const Int_t kMaxDistRef =15; // maximal difference between 2 stored references -// // Float_t prim = fTPCParam->GetNprim(); -// // Float_t poti = fTPCParam->GetFpot(); -// // Float_t wIon = fTPCParam->GetWmean(); -// -// const Float_t kbig = 1.e10; -// -// Int_t id,copy; -// Float_t hits[5]; -// Int_t vol[2]; -// TLorentzVector p; -// -// vol[1]=0; // preset row number to 0 -// // -// if (!fPrimaryIonisation) TVirtualMC::GetMC()->SetMaxStep(kbig); -// -// if(!TVirtualMC::GetMC()->IsTrackAlive()) return; // particle has disappeared -// -// Float_t charge = TVirtualMC::GetMC()->TrackCharge(); -// -// if(TMath::Abs(charge)<=0.) return; // take only charged particles -// -// // check the sensitive volume -// -// id = TVirtualMC::GetMC()->CurrentVolID(copy); // vol ID and copy number (starts from 1!) -// if(id != fIDrift && id != fIdSens) return; // not in the sensitive folume -// -// if ( fPrimaryIonisation && id == fIDrift ) { -// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); -// TVirtualMC::GetMC()->SetMaxStep(0.2+(2.*rnd-1.)*0.05); // 2 mm +- rndm*0.5mm step -// } -// -// //if ( fPrimaryIonisation && id == fIDrift && TVirtualMC::GetMC()->IsTrackEntering()) { -// // TVirtualMC::GetMC()->SetMaxStep(0.2); // 2 mm -// //} -// -// TVirtualMC::GetMC()->TrackPosition(p); -// Double_t r = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); -// // -// -// // -// Double_t angle = TMath::ACos(p[0]/r); -// angle = (p[1]<0.) ? TMath::TwoPi()-angle : angle; -// // -// // angular segment, it is not a real sector number... -// // -// Int_t sector=TMath::Nint((angle-fTPCParam->GetInnerAngleShift())/ -// fTPCParam->GetInnerAngle()); -// // rotate to segment "0" -// Float_t cos,sin; -// fTPCParam->AdjustCosSin(sector,cos,sin); -// Float_t x1=p[0]*cos + p[1]*sin; -// // check if within sector's limits -// if((x1>=fTPCParam->GetInnerRadiusLow()&&x1<=fTPCParam->GetInnerRadiusUp()) -// ||(x1>=fTPCParam->GetOuterRadiusLow()&&x1<=fTPCParam->GetOuterRadiusUp())){ -// // calculate real sector number... -// if (x1>fTPCParam->GetOuterRadiusLow()){ -// sector = TMath::Nint((angle-fTPCParam->GetOuterAngleShift())/ -// fTPCParam->GetOuterAngle())+fTPCParam->GetNInnerSector(); -// if (p[2]<0) sector+=(fTPCParam->GetNOuterSector()>>1); -// } else { -// if (p[2]<0) sector+=(fTPCParam->GetNInnerSector()>>1); -// } -// // -// // here I have a sector number -// // -// -// vol[0]=sector; -// -// static Double_t lastReferenceR=0; -// if (TMath::Abs(lastReferenceR-r)>kMaxDistRef){ -// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); -// lastReferenceR = r; -// } -// -// // check if change of sector -// if(sector != fSecOld){ -// fSecOld=sector; -// // add track reference -// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); -// } -// // track is in the sensitive strip -// if(id == fIdSens){ -// // track is entering the strip -// if (TVirtualMC::GetMC()->IsTrackEntering()){ -// Int_t totrows = fTPCParam->GetNRowLow()+fTPCParam->GetNRowUp(); -// vol[1] = (copy<=totrows) ? copy-1 : copy-1-totrows; -// // row numbers are autonomous for lower and upper sectors -// if(vol[0] > fTPCParam->GetNInnerSector()) { -// vol[1] -= fTPCParam->GetNRowLow(); -// } -// // -// if(vol[0]GetNInnerSector()&&vol[1] == 0){ -// -// // lower sector, row 0, because Jouri wants to have this -// -// TVirtualMC::GetMC()->TrackMomentum(p); -// hits[0]=p[0]; -// hits[1]=p[1]; -// hits[2]=p[2]; -// hits[3]=0.; // this hit has no energy loss -// // Get also the track time for pileup simulation -// hits[4]=TVirtualMC::GetMC()->TrackTime(); -// -// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); -// } -// // -// -// TVirtualMC::GetMC()->TrackPosition(p); -// hits[0]=p[0]; -// hits[1]=p[1]; -// hits[2]=p[2]; -// hits[3]=0.; // this hit has no energy loss -// // Get also the track time for pileup simulation -// hits[4]=TVirtualMC::GetMC()->TrackTime(); -// -// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); -// -// } -// else return; -// } -// //----------------------------------------------------------------- -// // charged particle is in the sensitive drift volume -// //----------------------------------------------------------------- -// if(TVirtualMC::GetMC()->TrackStep() > 0) { -// Int_t nel=0; -// if (!fPrimaryIonisation) { -// nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; -// } else { -// -// /* -// * static Double_t deForNextStep = 0.; -// * // Geant4 (the meaning of Edep as in Geant3) - wrong -// * //nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; -// * -// * // Geant4 (the meaning of Edep as in Geant3) - NEW -// * Double_t eAvailable = TVirtualMC::GetMC()->Edep() + deForNextStep; -// * nel = (Int_t)(eAvailable/wIon); -// * deForNextStep = eAvailable - nel*wIon; -// */ -// -// //new Geant4-approach -// Double_t meanIon = TVirtualMC::GetMC()->Edep()/(wIon*kScalewIonG4); -// nel = (Int_t) ( kFanoFactorG4*AliMathBase::Gamma(meanIon/kFanoFactorG4)); // smear nel using gamma distr w mean = meanIon and variance = meanIon/kFanoFactorG4 -// } -// nel=TMath::Min(nel,300); // 300 electrons corresponds to 10 keV -// // -// TVirtualMC::GetMC()->TrackPosition(p); -// hits[0]=p[0]; -// hits[1]=p[1]; -// hits[2]=p[2]; -// hits[3]=(Float_t)nel; -// -// // Add this hit -// -// // if (fHitType&&2){ -// if(fHitType){ -// TVirtualMC::GetMC()->TrackMomentum(p); -// Float_t momentum = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); -// Float_t precision = (momentum>0.1) ? 0.002 :0.01; -// fTrackHits->SetHitPrecision(precision); -// } -// -// // Get also the track time for pileup simulation -// hits[4]=TVirtualMC::GetMC()->TrackTime(); -// -// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); -// if (fDebugStreamer){ -// // You can dump here what you need -// // function CreateDebugStremer() to be called in the Config.C macro -// // if you want to enable it -// // By default debug streaemer is OFF -// Float_t edep = TVirtualMC::GetMC()->Edep(); -// Float_t tstep = TVirtualMC::GetMC()->TrackStep(); -// Int_t pid=TVirtualMC::GetMC()->TrackPid(); -// (*fDebugStreamer)<<"hit"<< -// "x="<0 -// } //within sector's limits -// // Stemax calculation for the next step -// -// Float_t pp; -// TLorentzVector mom; -// // below is valid only for Geant3 (fPromaryIonisation not set) -// if(!fPrimaryIonisation){ -// TVirtualMC::GetMC()->TrackMomentum(mom); -// Float_t ptot=mom.Rho(); -// Float_t betaGamma = ptot/TVirtualMC::GetMC()->TrackMass(); -// -// //Int_t pid=TVirtualMC::GetMC()->TrackPid(); -// // if((pid==kElectron || pid==kPositron) && ptot > 0.002) -// // { -// // pp = prim*1.58; // electrons above 20 MeV/c are on the plateau! -// // } -// // else -// // { -// -// betaGamma = TMath::Max(betaGamma,(Float_t)7.e-3); // protection against too small bg -// TVectorD *bbpar = fTPCParam->GetBetheBlochParametersMC(); //get parametrization from OCDB -// pp=prim*AliMathBase::BetheBlochAleph(betaGamma,(*bbpar)(0),(*bbpar)(1),(*bbpar)(2),(*bbpar)(3),(*bbpar)(4)); -// // } -// -// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); -// -// TVirtualMC::GetMC()->SetMaxStep(-TMath::Log(rnd)/pp); -// } -// -// } void Detector::EndOfEvent() { @@ -423,10 +173,2731 @@ void Detector::Reset() void Detector::ConstructGeometry() { // Create the detector materials - createMaterials(); + CreateMaterials(); + + // Load geometry +// LoadGeometryFromFile(); + ConstructTPCGeometry(); + + // Define the list of sensitive volumes + DefineSensitiveVolumes(); + +} + +void Detector::CreateMaterials() +{ + //----------------------------------------------- + // Create Materials for for TPC simulations + //----------------------------------------------- + + //----------------------------------------------------------------- + // Origin: Marek Kowalski IFJ, Krakow, Marek.Kowalski@ifj.edu.pl + //----------------------------------------------------------------- + + // Int_t iSXFLD=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + // Float_t sXMGMX=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); + // Int_t iSXFLD = ((AliceO2::Field::MagneticField*)TGeoGlobalMagField::Instance()->GetField())->Integral(); + // Float_t sXMGMX = ((AliceO2::Field::MagneticField*)TGeoGlobalMagField::Instance()->GetField())->Max(); + + // until we solve the problem of reading the field from files with changed class names we + // need to hard code some values here to be able to run the macros M.Al-Turany (Nov.14) + Int_t iSXFLD = 2; + Float_t sXMGMX = 10.0; + + Float_t amat[7]; // atomic numbers + Float_t zmat[7]; // z + Float_t wmat[7]; // proportions + + Float_t density; + + + + //***************** Gases ************************* + + + //-------------------------------------------------------------- + // gases - air and CO2 + //-------------------------------------------------------------- + + // CO2 + + amat[0]=12.011; + amat[1]=15.9994; + + zmat[0]=6.; + zmat[1]=8.; + + wmat[0]=0.2729; + wmat[1]=0.7271; + + density=1.842e-3; + + + AliceO2::Base::Detector::Mixture(10,"CO2",amat,zmat,density,2,wmat); + // + // Air + // + amat[0]=15.9994; + amat[1]=14.007; + // + zmat[0]=8.; + zmat[1]=7.; + // + wmat[0]=0.233; + wmat[1]=0.767; + // + density=0.001205; + + AliceO2::Base::Detector::Mixture(11,"Air",amat,zmat,density,2,wmat); + + //---------------------------------------------------------------- + // drift gases 5 mixtures, 5 materials + //---------------------------------------------------------------- + // + // Drift gases 1 - nonsensitive, 2 - sensitive, 3 - for Kr + // Composition by % of volume, values at 20deg and 1 atm. + // + // get the geometry title - defined in Config.C + // + //-------------------------------------------------------------- + // predefined gases, composition taken from param file + //-------------------------------------------------------------- + TString names[6]={"Ne","Ar","CO2","N","CF4","CH4"}; + TString gname; + + // TODO: Gas mixture is hard coded here, this should be moved to some kind of parameter + // container in the future + Float_t comp[6]={90./105., 0., 10./105., 5./105., 0., 0.}; + // indices: + // 0-Ne, 1-Ar, 2-CO2, 3-N, 4-CF4, 5-CH4 + // + // elements' masses + // + amat[0]=20.18; //Ne + amat[1]=39.95; //Ar + amat[2]=12.011; //C + amat[3]=15.9994; //O + amat[4]=14.007; //N + amat[5]=18.998; //F + amat[6]=1.; //H + // + // elements' atomic numbers + // + // + zmat[0]=10.; //Ne + zmat[1]=18.; //Ar + zmat[2]=6.; //C + zmat[3]=8.; //O + zmat[4]=7.; //N + zmat[5]=9.; //F + zmat[6]=1.; //H + // + // Mol masses + // + Float_t wmol[6]; + wmol[0]=20.18; //Ne + wmol[1]=39.948; //Ar + wmol[2]=44.0098; //CO2 + wmol[3]=2.*14.0067; //N2 + wmol[4]=88.0046; //CF4 + wmol[5]=16.011; //CH4 + // + Float_t wtot=0.; //total mass of the mixture + for(Int_t i =0;i<6;i++){ + wtot += *(comp+i)*wmol[i]; + } + wmat[0]=comp[0]*amat[0]/wtot; //Ne + wmat[1]=comp[1]*amat[1]/wtot; //Ar + wmat[2]=(comp[2]*amat[2]+comp[4]*amat[2]+comp[5]*amat[2])/wtot; //C + wmat[3]=comp[2]*amat[3]*2./wtot; //O + wmat[4]=comp[3]*amat[4]*2./wtot; //N + wmat[5]=comp[4]*amat[5]*4./wtot; //F + wmat[6]=comp[5]*amat[6]*4./wtot; //H + // + // densities (NTP) + // + Float_t dens[6]={0.839e-3,1.661e-3,1.842e-3,1.251e-3,3.466e-3,0.668e-3}; + // + density=0.; + for(Int_t i=0;i<6;i++){ + density += comp[i]*dens[i]; + } + // + // names + // + Int_t cnt=0; + for(Int_t i =0;i<6;i++){ + if(comp[i]){ + if(cnt)gname+="-"; + gname+=names[i]; + cnt++; + } + } + TString gname1,gname2,gname3; + gname1 = gname + "-1"; + gname2 = gname + "-2"; + gname3 = gname + "-3"; + // + // take only elements with nonzero weights + // + Float_t amat1[6],zmat1[6],wmat1[6]; + cnt=0; + for(Int_t i=0;i<7;i++){ + if(wmat[i]){ + zmat1[cnt]=zmat[i]; + amat1[cnt]=amat[i]; + wmat1[cnt]=wmat[i]; + cnt++; + } + } + + // + AliceO2::Base::Detector::Mixture(12,gname1.Data(),amat1,zmat1,density,cnt,wmat1); // nonsensitive + AliceO2::Base::Detector::Mixture(13,gname2.Data(),amat1,zmat1,density,cnt,wmat1); // sensitive + AliceO2::Base::Detector::Mixture(40,gname3.Data(),amat1,zmat1,density,cnt,wmat1); //sensitive Kr + + + + //---------------------------------------------------------------------- + // solid materials + //---------------------------------------------------------------------- + + + // Kevlar C14H22O2N2 + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 15.999; + amat[3] = 14.006; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 8.; + zmat[3] = 7.; + + wmat[0] = 14.; + wmat[1] = 22.; + wmat[2] = 2.; + wmat[3] = 2.; + + density = 1.45; + + AliceO2::Base::Detector::Mixture(14,"Kevlar",amat,zmat,density,-4,wmat); + + // NOMEX + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 15.999; + amat[3] = 14.006; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 8.; + zmat[3] = 7.; + + wmat[0] = 14.; + wmat[1] = 22.; + wmat[2] = 2.; + wmat[3] = 2.; + + density = 0.029; + + AliceO2::Base::Detector::Mixture(15,"NOMEX",amat,zmat,density,-4,wmat); + + // Makrolon C16H18O3 + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 15.999; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 8.; + + wmat[0] = 16.; + wmat[1] = 18.; + wmat[2] = 3.; + + density = 1.2; + + AliceO2::Base::Detector::Mixture(16,"Makrolon",amat,zmat,density,-3,wmat); + + // Tedlar C2H3F + + amat[0] = 12.011; + amat[1] = 1.; + amat[2] = 18.998; + + zmat[0] = 6.; + zmat[1] = 1.; + zmat[2] = 9.; + + wmat[0] = 2.; + wmat[1] = 3.; + wmat[2] = 1.; + + density = 1.71; + + AliceO2::Base::Detector::Mixture(17, "Tedlar",amat,zmat,density,-3,wmat); + + // Mylar C5H4O2 + + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=5.; + wmat[1]=4.; + wmat[2]=2.; + + density = 1.39; + + AliceO2::Base::Detector::Mixture(18, "Mylar",amat,zmat,density,-3,wmat); + // material for "prepregs" + // Epoxy - C14 H20 O3 + // Quartz SiO2 + // Carbon C + // prepreg1 60% C-fiber, 40% epoxy (vol) + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=0.923; + wmat[1]=0.023; + wmat[2]=0.054; + + density=1.859; + + AliceO2::Base::Detector::Mixture(19, "Prepreg1",amat,zmat,density,3,wmat); + + //prepreg2 60% glass-fiber, 40% epoxy + + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.194; + wmat[1]=0.023; + wmat[2]=0.443; + wmat[3]=0.34; + + density=1.82; + + AliceO2::Base::Detector::Mixture(20, "Prepreg2",amat,zmat,density,4,wmat); + + //prepreg3 50% glass-fiber, 50% epoxy + + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.257; + wmat[1]=0.03; + wmat[2]=0.412; + wmat[3]=0.3; + + density=1.725; + + AliceO2::Base::Detector::Mixture(21, "Prepreg3",amat,zmat,density,4,wmat); + + // G10 60% SiO2 40% epoxy + + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.194; + wmat[1]=0.023; + wmat[2]=0.443; + wmat[3]=0.340; + + density=1.7; + + AliceO2::Base::Detector::Mixture(22, "G10",amat,zmat,density,4,wmat); + + // Al + + amat[0] = 26.98; + zmat[0] = 13.; + + density = 2.7; + + AliceO2::Base::Detector::Material(23,"Al",amat[0],zmat[0],density,999.,999.); + + // Si (for electronics + + amat[0] = 28.086; + zmat[0] = 14.; + + density = 2.33; + + AliceO2::Base::Detector::Material(24,"Si",amat[0],zmat[0],density,999.,999.); + + // Cu + + amat[0] = 63.546; + zmat[0] = 29.; + + density = 8.96; + + AliceO2::Base::Detector::Material(25,"Cu",amat[0],zmat[0],density,999.,999.); + + // brass + + amat[0] = 63.546; + zmat[0] = 29.; + // + amat[1]= 65.409; + zmat[1]= 30.; + // + wmat[0]= 0.6; + wmat[1]= 0.4; + + // + density = 8.23; + + + // + AliceO2::Base::Detector::Mixture(33,"Brass",amat,zmat,density,2,wmat); + + // Epoxy - C14 H20 O3 + + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=14.; + wmat[1]=20.; + wmat[2]=3.; + + density=1.25; + + AliceO2::Base::Detector::Mixture(26,"Epoxy",amat,zmat,density,-3,wmat); + + // Epoxy - C14 H20 O3 for glue + + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=14.; + wmat[1]=20.; + wmat[2]=3.; + + density=1.25; + + density *= 1.25; + + AliceO2::Base::Detector::Mixture(35,"Epoxy1",amat,zmat,density,-3,wmat); + // + // epoxy film - 90% epoxy, 10% glass fiber + // + amat[0]=12.01; + amat[1]=1.; + amat[2]=15.994; + amat[3]=28.086; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + zmat[3]=14.; + + wmat[0]=0.596; + wmat[1]=0.071; + wmat[2]=0.257; + wmat[3]=0.076; + + + density=1.345; + + AliceO2::Base::Detector::Mixture(34, "Epoxy-film",amat,zmat,density,4,wmat); + + // Plexiglas C5H8O2 + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=5.; + wmat[1]=8.; + wmat[2]=2.; + + density=1.18; + + AliceO2::Base::Detector::Mixture(27,"Plexiglas",amat,zmat,density,-3,wmat); + + // Carbon + + amat[0]=12.011; + zmat[0]=6.; + density= 2.265; + + AliceO2::Base::Detector::Material(28,"C",amat[0],zmat[0],density,999.,999.); + + // Fe (steel for the inner heat screen) + + amat[0]=55.845; + + zmat[0]=26.; + + density=7.87; + + AliceO2::Base::Detector::Material(29,"Fe",amat[0],zmat[0],density,999.,999.); + // + // Peek - (C6H4-O-OC6H4-O-C6H4-CO)n + amat[0]=12.011; + amat[1]=1.; + amat[2]=15.9994; + + zmat[0]=6.; + zmat[1]=1.; + zmat[2]=8.; + + wmat[0]=19.; + wmat[1]=12.; + wmat[2]=3.; + // + density=1.3; + // + AliceO2::Base::Detector::Mixture(30,"Peek",amat,zmat,density,-3,wmat); + // + // Ceramics - Al2O3 + // + amat[0] = 26.98; + amat[1]= 15.9994; + + zmat[0] = 13.; + zmat[1]=8.; + + wmat[0]=2.; + wmat[1]=3.; + + density = 3.97; + + AliceO2::Base::Detector::Mixture(31,"Alumina",amat,zmat,density,-2,wmat); + // + // Ceramics for resistors + // + amat[0] = 26.98; + amat[1]= 15.9994; + + zmat[0] = 13.; + zmat[1]=8.; + + wmat[0]=2.; + wmat[1]=3.; + + density = 3.97; + // + density *=1.25; + + AliceO2::Base::Detector::Mixture(36,"Alumina1",amat,zmat,density,-2,wmat); + // + // liquids + // + + // water + + amat[0]=1.; + amat[1]=15.9994; + + zmat[0]=1.; + zmat[1]=8.; + + wmat[0]=2.; + wmat[1]=1.; + + density=1.; + + AliceO2::Base::Detector::Mixture(32,"Water",amat,zmat,density,-2,wmat); + + + //---------------------------------------------------------- + // tracking media for gases + //---------------------------------------------------------- + + AliceO2::Base::Detector::Medium(0, "Air", 11, 0, iSXFLD, sXMGMX, 10., 999., .1, .01, .1); + AliceO2::Base::Detector::Medium(1, "DriftGas1", 12, 0, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); + AliceO2::Base::Detector::Medium(2, "DriftGas2", 13, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); + AliceO2::Base::Detector::Medium(3,"CO2",10,0, iSXFLD, sXMGMX, 10., 999.,.1, .001, .001); + AliceO2::Base::Detector::Medium(20, "DriftGas3", 40, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); + //----------------------------------------------------------- + // tracking media for solids + //----------------------------------------------------------- + + AliceO2::Base::Detector::Medium(4,"Al",23,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(5,"Kevlar",14,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(6,"Nomex",15,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(7,"Makrolon",16,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(8,"Mylar",18,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(9,"Tedlar",17,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + // + AliceO2::Base::Detector::Medium(10,"Prepreg1",19,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(11,"Prepreg2",20,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(12,"Prepreg3",21,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(13,"Epoxy",26,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + + AliceO2::Base::Detector::Medium(14,"Cu",25,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(15,"Si",24,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(16,"G10",22,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(17,"Plexiglas",27,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(18,"Steel",29,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(19,"Peek",30,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(21,"Alumina",31,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(22,"Water",32,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(23,"Brass",33,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + AliceO2::Base::Detector::Medium(24,"Epoxyfm",34,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(25,"Epoxy1",35,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); + AliceO2::Base::Detector::Medium(26,"Alumina1",36,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); + +} + +void Detector::ConstructTPCGeometry() +{ + // + // Create the geometry of Time Projection Chamber version 2 + // + //Begin_Html + /* + * + */ + //End_Html + //Begin_Html + /* + * + */ + //End_Html + + //---------------------------------------------------------- + // This geometry is written using TGeo class + // Firstly the shapes are defined, and only then the volumes + // What is recognized by the MC are volumes + //---------------------------------------------------------- + // + // tpc - this will be the mother volume + // + +// if (!mParam) { +// LOG(ERROR) << "TPC Parameters not available, cannot create Geometry" << FairLogger::endl; +// return; +// } + + // + // here I define a volume TPC + // retrive the medium name with "TPC_" as a leading string + // + TGeoPcon *tpc = new TGeoPcon(0.,360.,30); //30 sections + // + tpc->DefineSection(0,-289.6,77.,278.); + tpc->DefineSection(1,-262.1,77.,278.); + // + tpc->DefineSection(2,-262.1,83.1,278.); + tpc->DefineSection(3,-260.,83.1,278.); + // + tpc->DefineSection(4,-260.,70.,278.); + tpc->DefineSection(5,-259.6,70.,278.); + // + tpc->DefineSection(6,-259.6,68.1,278.); + tpc->DefineSection(7,-253.6,68.1,278.); + // + tpc->DefineSection(8,-253.6,67.88,278.);//hs + tpc->DefineSection(9,-74.0,60.68,278.);// hs + // + tpc->DefineSection(10,-74.0,60.1,278.); + tpc->DefineSection(11,-73.3,60.1,278.); + // + tpc->DefineSection(12,-73.3,56.9,278.); + tpc->DefineSection(13,-68.5,56.9,278.); + // + tpc->DefineSection(14,-68.5,60.,278.); + tpc->DefineSection(15,-64.7,60.,278.); + // + tpc->DefineSection(16,-64.7,56.9,278.); + tpc->DefineSection(17,73.3,56.9,278.); + // + tpc->DefineSection(18,73.3,60.1,278.); + tpc->DefineSection(19,74.0,60.1,278.); + // + tpc->DefineSection(20,74.0,60.68,278.);// hs + tpc->DefineSection(21,253.6,65.38,278.);// hs + // + tpc->DefineSection(22,253.6,65.6,278.); + tpc->DefineSection(23,259.6,65.6,278.); + // + tpc->DefineSection(24,259.6,70.0,278.); + tpc->DefineSection(25,260.,70.0,278.); + // + tpc->DefineSection(26,260.,83.1,278.); + tpc->DefineSection(27,262.1,83.1,278.); + // + tpc->DefineSection(28,262.1,77.,278); + tpc->DefineSection(29,289.6,77.,278.); + // + TGeoMedium *m1 = gGeoManager->GetMedium("TPC_Air"); + TGeoVolume *v1 = new TGeoVolume("TPC_M",tpc,m1); + // + // drift volume - sensitive volume, extended beyond the + // endcaps, because of the alignment + // + TGeoPcon *dvol = new TGeoPcon(0.,360.,6); + dvol->DefineSection(0,-260.,74.5,264.4); + dvol->DefineSection(1,-253.6,74.5,264.4); + // + dvol->DefineSection(2,-253.6,76.6774,258.); + dvol->DefineSection(3,253.6,76.6774,258.); + // + dvol->DefineSection(4,253.6,74.5,264.4); + dvol->DefineSection(5,260.,74.5,264.4); + // + TGeoMedium *m5 = gGeoManager->GetMedium("TPC_DriftGas2"); + TGeoVolume *v9 = new TGeoVolume("TPC_Drift",dvol,m5); + // + v1->AddNode(v9,1); + // + // outer insulator + // + TGeoPcon *tpco = new TGeoPcon(0.,360.,6); //insulator + // + tpco->DefineSection(0,-256.6,264.8,278.); + tpco->DefineSection(1,-253.6,264.8,278.); + // + tpco->DefineSection(2,-253.6,258.,278.); + tpco->DefineSection(3,250.6,258.,278.); + // + tpco->DefineSection(4,250.6,258.,275.5); + tpco->DefineSection(5,253.6,258.,275.5); + // + TGeoMedium *m2 = gGeoManager->GetMedium("TPC_CO2"); + TGeoVolume *v2 = new TGeoVolume("TPC_OI",tpco,m2); + // + TGeoRotation *segrot;//segment rotations + // + // outer containment vessel + // + TGeoPcon *tocv = new TGeoPcon(0.,360.,6); // containment vessel + // + tocv->DefineSection(0,-256.6,264.8,278.); + tocv->DefineSection(1,-253.6,264.8,278.); + // + tocv->DefineSection(2,-253.6,274.8124,278.); + tocv->DefineSection(3,247.6,274.8124,278.); + // + tocv->DefineSection(4,247.6,270.4,278.); + tocv->DefineSection(5,250.6,270.4,278.); + // + TGeoMedium *m3 = gGeoManager->GetMedium("TPC_Al"); + TGeoVolume *v3 = new TGeoVolume("TPC_OCV",tocv,m3); + // + TGeoTubeSeg *to1 = new TGeoTubeSeg(274.8174,277.995,252.1,0.,59.9); //epoxy + TGeoTubeSeg *to2 = new TGeoTubeSeg(274.8274,277.985,252.1,0.,59.9); //tedlar + TGeoTubeSeg *to3 = new TGeoTubeSeg(274.8312,277.9812,252.1,0.,59.9);//prepreg2 + TGeoTubeSeg *to4 = new TGeoTubeSeg(274.9062,277.9062,252.1,0.,59.9);//nomex + TGeoTubeSeg *tog5 = new TGeoTubeSeg(274.8174,277.995,252.1,59.9,60.);//epoxy + // + TGeoMedium *sm1 = gGeoManager->GetMedium("TPC_Epoxy"); + TGeoMedium *sm2 = gGeoManager->GetMedium("TPC_Tedlar"); + TGeoMedium *sm3 = gGeoManager->GetMedium("TPC_Prepreg2"); + TGeoMedium *sm4 = gGeoManager->GetMedium("TPC_Nomex"); + // + TGeoMedium *smep = gGeoManager->GetMedium("TPC_Epoxy1"); + // + TGeoVolume *tov1 = new TGeoVolume("TPC_OCV1",to1,sm1); + TGeoVolume *tov2 = new TGeoVolume("TPC_OCV2",to2,sm2); + TGeoVolume *tov3 = new TGeoVolume("TPC_OCV3",to3,sm3); + TGeoVolume *tov4 = new TGeoVolume("TPC_OCV4",to4,sm4); + TGeoVolume *togv5 = new TGeoVolume("TPC_OCVG5",tog5,sm1); + // + TGeoMedium *mhs = gGeoManager->GetMedium("TPC_Steel"); + TGeoMedium *m12 = gGeoManager->GetMedium("TPC_Water"); + //------------------------------------------------------- + // Tpc Outer Field Cage + // daughters - composite (sandwich) + //------------------------------------------------------- + + TGeoPcon *tofc = new TGeoPcon(0.,360.,6); + // + tofc->DefineSection(0,-253.6,258.,269.6); + tofc->DefineSection(1,-250.6,258.,269.6); + // + tofc->DefineSection(2,-250.6,258.,260.0676); + tofc->DefineSection(3,250.6,258.,260.0676); + // + tofc->DefineSection(4,250.6,258.,275.5); + tofc->DefineSection(5,253.6,258.,275.5); + // + TGeoVolume *v4 = new TGeoVolume("TPC_TOFC",tofc,m3); + //sandwich + TGeoTubeSeg *tf1 = new TGeoTubeSeg(258.0,260.0676,252.1,0.,59.9); //tedlar + TGeoTubeSeg *tf2 = new TGeoTubeSeg(258.0038,260.0638,252.1,0.,59.9); //prepreg3 + TGeoTubeSeg *tf3 = new TGeoTubeSeg(258.0338,260.0338,252.1,0.,59.9);//nomex + TGeoTubeSeg *tfg4 = new TGeoTubeSeg(258.0,260.0676,252.1,59.9,60.); //epoxy glue + // + TGeoMedium *sm5 = gGeoManager->GetMedium("TPC_Prepreg3"); + // + TGeoVolume *tf1v = new TGeoVolume("TPC_OFC1",tf1,sm2); + TGeoVolume *tf2v = new TGeoVolume("TPC_OFC2",tf2,sm5); + TGeoVolume *tf3v = new TGeoVolume("TPC_OFC3",tf3,sm4); + TGeoVolume *tfg4v = new TGeoVolume("TPC_OFCG4",tfg4,smep); + // + // outer part - positioning + // + tov1->AddNode(tov2,1); tov2->AddNode(tov3,1); tov3->AddNode(tov4,1);//ocv + // + tf1v->AddNode(tf2v,1); tf2v->AddNode(tf3v,1);//ofc + // + TGeoVolumeAssembly *t200 = new TGeoVolumeAssembly("TPC_OCVSEG"); + TGeoVolumeAssembly *t300 = new TGeoVolumeAssembly("TPC_OFCSEG"); + // + // assembly OCV and OFC + // + // 1st - no rotation + t200->AddNode(tov1,1); t200->AddNode(togv5,1); + t300->AddNode(tf1v,1); t300->AddNode(tfg4v,1); + // 2nd - rotation 60 deg + segrot = new TGeoRotation(); + segrot->RotateZ(60.); + t200->AddNode(tov1,2,segrot); t200->AddNode(togv5,2,segrot); + t300->AddNode(tf1v,2,segrot); t300->AddNode(tfg4v,2,segrot); + // 3rd rotation 120 deg + segrot = new TGeoRotation(); + segrot->RotateZ(120.); + t200->AddNode(tov1,3,segrot); t200->AddNode(togv5,3,segrot); + t300->AddNode(tf1v,3,segrot); t300->AddNode(tfg4v,3,segrot); + //4th rotation 180 deg + segrot = new TGeoRotation(); + segrot->RotateZ(180.); + t200->AddNode(tov1,4,segrot); t200->AddNode(togv5,4,segrot); + t300->AddNode(tf1v,4,segrot); t300->AddNode(tfg4v,4,segrot); + //5th rotation 240 deg + segrot = new TGeoRotation(); + segrot->RotateZ(240.); + t200->AddNode(tov1,5,segrot); t200->AddNode(togv5,5,segrot); + t300->AddNode(tf1v,5,segrot); t300->AddNode(tfg4v,5,segrot); + //6th rotation 300 deg + segrot = new TGeoRotation(); + segrot->RotateZ(300.); + t200->AddNode(tov1,6,segrot); t200->AddNode(togv5,6,segrot); + t300->AddNode(tf1v,6,segrot); t300->AddNode(tfg4v,6,segrot); + // + v3->AddNode(t200,1,new TGeoTranslation(0.,0.,-1.5)); v4->AddNode(t300,1); + // + v2->AddNode(v3,1); v2->AddNode(v4,1); + // + v1->AddNode(v2,1); + //-------------------------------------------------------------------- + // Tpc Inner INsulator (CO2) + // the cones, the central drum and the inner f.c. sandwich with a piece + // of the flane will be placed in the TPC + //-------------------------------------------------------------------- + TGeoPcon *tpci = new TGeoPcon(0.,360.,4); + // + tpci->DefineSection(0,-253.6,68.4,76.6774); + tpci->DefineSection(1,-74.0,61.2,76.6774); + // + tpci->DefineSection(2,74.0,61.2,76.6774); + // + tpci->DefineSection(3,253.6,65.9,76.6774); + // + TGeoVolume *v5 = new TGeoVolume("TPC_INI",tpci,m2); + // + // now the inner field cage - only part of flanges (2 copies) + // + TGeoTube *tif1 = new TGeoTube(69.9,76.6774,1.5); + TGeoVolume *v6 = new TGeoVolume("TPC_IFC1",tif1,m3); + // + //--------------------------------------------------------- + // Tpc Inner Containment vessel - Muon side + //--------------------------------------------------------- + TGeoPcon *tcms = new TGeoPcon(0.,360.,10); + // + tcms->DefineSection(0,-259.1,68.1,74.2); + tcms->DefineSection(1,-253.6,68.1,74.2); + // + tcms->DefineSection(2,-253.6,68.1,68.4); + tcms->DefineSection(3,-74.0,60.9,61.2); + // + tcms->DefineSection(4,-74.0,60.1,61.2); + tcms->DefineSection(5,-73.3,60.1,61.2); + // + tcms->DefineSection(6,-73.3,56.9,61.2); + tcms->DefineSection(7,-73.0,56.9,61.2); + // + tcms->DefineSection(8,-73.0,56.9,58.8); + tcms->DefineSection(9,-71.3,56.9,58.8); + // + TGeoVolume *v7 = new TGeoVolume("TPC_ICVM",tcms,m3); + //------------------------------------------------ + // Heat screen muon side + //------------------------------------------------ + + TGeoCone *thsm = new TGeoCone(89.8,67.88,68.1,60.68,60.9); + TGeoCone *thsmw = new TGeoCone(89.8,67.94,68.04,60.74,60.84); + TGeoVolume *hvsm = new TGeoVolume("TPC_HSM",thsm,mhs); //steel + TGeoVolume *hvsmw = new TGeoVolume("TPC_HSMW",thsmw,m12); //water + // assembly heat screen muon + hvsm->AddNode(hvsmw,1); + //----------------------------------------------- + // inner containment vessel - shaft side + //----------------------------------------------- + TGeoPcon *tcss = new TGeoPcon(0.,360.,10); + // + tcss->DefineSection(0,71.3,56.9,58.8); + tcss->DefineSection(1,73.0,56.9,58.8); + // + tcss->DefineSection(2,73.0,56.9,61.2); + tcss->DefineSection(3,73.3,56.9,61.2); + // + tcss->DefineSection(4,73.3,60.1,61.2); + tcss->DefineSection(5,74.0,60.1,61.2); + // + tcss->DefineSection(6,74.0,60.9,61.2); + tcss->DefineSection(7,253.6,65.6,65.9); + // + tcss->DefineSection(8,253.6,65.6,74.2); + tcss->DefineSection(9,258.1,65.6,74.2); + // + TGeoVolume *v8 = new TGeoVolume("TPC_ICVS",tcss,m3); + //------------------------------------------------- + // Heat screen shaft side + //-------------------------------------------------- + TGeoCone *thss = new TGeoCone(89.8,60.68,60.9,65.38,65.6); + TGeoCone *thssw = new TGeoCone(89.8,60.74,60.84,65.44,65.54); + TGeoVolume *hvss = new TGeoVolume("TPC_HSS",thss,mhs); //steel + TGeoVolume *hvssw = new TGeoVolume("TPC_HSSW",thssw,m12); //water + //assembly heat screen shaft + hvss->AddNode(hvssw,1); + //----------------------------------------------- + // Inner field cage + // define 4 parts and make an assembly + //----------------------------------------------- + // part1 - Al - 2 copies + TGeoTube *t1 = new TGeoTube(76.6774,78.845,0.75); + TGeoVolume *tv1 = new TGeoVolume("TPC_IFC2",t1,m3); + // sandwich - outermost parts - 2 copies + // + // segment outermost + // + TGeoTubeSeg *t2 = new TGeoTubeSeg(76.6774,78.845,74.175,350.,109.4); // tedlar 38 microns + TGeoTubeSeg *t3 = new TGeoTubeSeg(76.6812,78.8412,74.175,350.,109.4); // prepreg2 500 microns + TGeoTubeSeg *t4 = new TGeoTubeSeg(76.7312,78.7912,74.175,350.,109.4); // prepreg3 300 microns + TGeoTubeSeg *t5 = new TGeoTubeSeg(76.7612,78.7612,74.175,350.,109.4); // nomex 2 cm + TGeoTubeSeg *tepox1 = new TGeoTubeSeg(76.6774,78.845,74.175,109.4,110.);//epoxy + TGeoTubeSeg *tpr1 = new TGeoTubeSeg(78.845,78.885,74.175,109.,111.); + + // volumes for the outer part + TGeoVolume *tv2 = new TGeoVolume("TPC_IFC3",t2,sm2); + TGeoVolume *tv3 = new TGeoVolume("TPC_IFC4",t3,sm3); + TGeoVolume *tv4 = new TGeoVolume("TPC_IFC5",t4,sm5); + TGeoVolume *tv5 = new TGeoVolume("TPC_IFC6",t5,sm4); + TGeoVolume *tvep1 = new TGeoVolume("TPC_IFEPOX1",tepox1,smep); + TGeoVolume *tvpr1 = new TGeoVolume("TPC_PRSTR1",tpr1,sm2); + // + // middle parts - 2 copies + // + // segment middle + // + TGeoTubeSeg *t6 = new TGeoTubeSeg(76.6774,78.795,5.,350.,109.4); // tedlar 38 microns + TGeoTubeSeg *t7 = new TGeoTubeSeg(76.6812,78.7912,5.,350.,109.4); // prepreg2 250 microns + TGeoTubeSeg *t8 = new TGeoTubeSeg(76.7062,78.7662,5.,350.,109.4); // prepreg3 300 microns + TGeoTubeSeg *t9 = new TGeoTubeSeg(76.7362,78.7362,5.,350.,109.4); // nomex 2 cm + TGeoTubeSeg *tepox2 = new TGeoTubeSeg(76.6774,78.795,5.,109.4,110.);//epoxy + TGeoTubeSeg *tpr2 = new TGeoTubeSeg(78.795,78.835,5.,109.,111.); + // volumes for the middle part + TGeoVolume *tv6 = new TGeoVolume("TPC_IFC7",t6,sm2); + TGeoVolume *tv7 = new TGeoVolume("TPC_IFC8",t7,sm3); + TGeoVolume *tv8 = new TGeoVolume("TPC_IFC9",t8,sm5); + TGeoVolume *tv9 = new TGeoVolume("TPC_IFC10",t9,sm4); + TGeoVolume *tvep2 = new TGeoVolume("TPC_IFEPOX2",tepox2,smep); + TGeoVolume *tvpr2 = new TGeoVolume("TPC_PRSTR2",tpr2,sm2); + // central part - 1 copy + // + // segment central part + // + TGeoTubeSeg *t10 = new TGeoTubeSeg(76.6774,78.785,93.75,350.,109.4); // tedlar 38 microns + TGeoTubeSeg *t11 = new TGeoTubeSeg(76.6812,78.7812,93.75,350.,109.4); // prepreg3 500 microns + TGeoTubeSeg *t12 = new TGeoTubeSeg(76.7312,78.7312,93.75,350.,109.4); // nomex 2 cm + TGeoTubeSeg *tepox3 = new TGeoTubeSeg(76.6774,78.785,93.75,109.4,110.);//epoxy + TGeoTubeSeg *tpr3 = new TGeoTubeSeg(78.785,78.825,93.75,109.,111.); + // volumes for the central part + TGeoVolume *tv10 = new TGeoVolume("TPC_IFC11",t10,sm2); + TGeoVolume *tv11 = new TGeoVolume("TPC_IFC12",t11,sm5); + TGeoVolume *tv12 = new TGeoVolume("TPC_IFC13",t12,sm4); + TGeoVolume *tvep3 = new TGeoVolume("TPC_IFEPOX3",tepox3,smep); + TGeoVolume *tvpr3 = new TGeoVolume("TPC_PRSTR3",tpr3,sm2); + // + // creating a sandwich for the outer par,t tv2 is the mother + // + tv2->AddNode(tv3,1); tv3->AddNode(tv4,1); tv4->AddNode(tv5,1); + // + // creating a sandwich for the middle part, tv6 is the mother + // + tv6->AddNode(tv7,1); tv7->AddNode(tv8,1); tv8->AddNode(tv9,1); + // + // creating a sandwich for the central part, tv10 is the mother + // + tv10->AddNode(tv11,1); tv11->AddNode(tv12,1); + // + TGeoVolumeAssembly *tv100 = new TGeoVolumeAssembly("TPC_IFC"); // ifc itself - 3 segments + + // + // first segment - no rotation + // + // central + tv100->AddNode(tv10,1); //sandwich + tv100->AddNode(tvep3,1);//epoxy + tv100->AddNode(tvpr3,1);//prepreg strip + // middle + tv100->AddNode(tv6,1,new TGeoTranslation(0.,0.,-98.75)); //sandwich1 + tv100->AddNode(tv6,2,new TGeoTranslation(0.,0.,98.75)); // sandwich2 + tv100->AddNode(tvep2,1,new TGeoTranslation(0.,0.,-98.75)); //epoxy + tv100->AddNode(tvep2,2,new TGeoTranslation(0.,0.,98.75)); //epoxy + tv100->AddNode(tvpr2,1,new TGeoTranslation(0.,0.,-98.75));//prepreg strip + tv100->AddNode(tvpr2,2,new TGeoTranslation(0.,0.,98.75)); + // outer + tv100->AddNode(tv2,1,new TGeoTranslation(0.,0.,-177.925)); //sandwich + tv100->AddNode(tv2,2,new TGeoTranslation(0.,0.,177.925)); + tv100->AddNode(tvep1,1,new TGeoTranslation(0.,0.,-177.925)); //epoxy + tv100->AddNode(tvep1,2,new TGeoTranslation(0.,0.,177.925)); + tv100->AddNode(tvpr1,1,new TGeoTranslation(0.,0.,-177.925));//prepreg strip + tv100->AddNode(tvpr1,2,new TGeoTranslation(0.,0.,-177.925)); + // + // second segment - rotation 120 deg. + // + segrot = new TGeoRotation(); + segrot->RotateZ(120.); + // + // central + tv100->AddNode(tv10,2,segrot); //sandwich + tv100->AddNode(tvep3,2,segrot);//epoxy + tv100->AddNode(tvpr3,2,segrot);//prepreg strip + // middle + tv100->AddNode(tv6,3,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //sandwich1 + tv100->AddNode(tv6,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); // sandwich2 + tv100->AddNode(tvep2,3,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //epoxy + tv100->AddNode(tvep2,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); //epoxy + tv100->AddNode(tvpr2,3,new TGeoCombiTrans(0.,0.,-98.75,segrot));//prepreg strip + tv100->AddNode(tvpr2,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); + //outer + tv100->AddNode(tv2,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//sandwich + tv100->AddNode(tv2,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvep1,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//epoxy + tv100->AddNode(tvep1,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvpr1,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//prepreg strip + tv100->AddNode(tvpr1,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); + // + // third segment - rotation 240 deg. + // + segrot = new TGeoRotation(); + segrot->RotateZ(240.); + // + // central + tv100->AddNode(tv10,3,segrot); //sandwich + tv100->AddNode(tvep3,3,segrot);//epoxy + tv100->AddNode(tvpr3,3,segrot);//prepreg strip + // middle + tv100->AddNode(tv6,5,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //sandwich1 + tv100->AddNode(tv6,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); // sandwich2 + tv100->AddNode(tvep2,5,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //epoxy + tv100->AddNode(tvep2,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); //epoxy + tv100->AddNode(tvpr2,5,new TGeoCombiTrans(0.,0.,-98.75,segrot));//prepreg strip + tv100->AddNode(tvpr2,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); + //outer + tv100->AddNode(tv2,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//sandwich + tv100->AddNode(tv2,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvep1,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//epoxy + tv100->AddNode(tvep1,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); + tv100->AddNode(tvpr1,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//prepreg strip + tv100->AddNode(tvpr1,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); + // Al parts - rings + tv100->AddNode(tv1,1,new TGeoTranslation(0.,0.,-252.85)); + tv100->AddNode(tv1,2,new TGeoTranslation(0.,0.,252.85)); + // + v5->AddNode(v6,1, new TGeoTranslation(0.,0.,-252.1)); + v5->AddNode(v6,2, new TGeoTranslation(0.,0.,252.1)); + v1->AddNode(v5,1); v1->AddNode(v7,1); v1->AddNode(v8,1); + v1->AddNode(hvsm,1,new TGeoTranslation(0.,0.,-163.8)); + v1->AddNode(hvss,1,new TGeoTranslation(0.,0.,163.8)); + v9->AddNode(tv100,1); + // + // central drum + // + // flange + sandwich + // + TGeoPcon *cfl = new TGeoPcon(0.,360.,6); + cfl->DefineSection(0,-71.1,59.7,61.2); + cfl->DefineSection(1,-68.6,59.7,61.2); + // + cfl->DefineSection(2,-68.6,60.6124,61.2); + cfl->DefineSection(3,68.6,60.6124,61.2); + // + cfl->DefineSection(4,68.6,59.7,61.2); + cfl->DefineSection(5,71.1,59.7,61.2); + // + TGeoVolume *cflv = new TGeoVolume("TPC_CDR",cfl,m3); + // sandwich + TGeoTubeSeg *cd1 = new TGeoTubeSeg(60.6224,61.19,71.1,0.2,119.2); + TGeoTubeSeg *cd2 = new TGeoTubeSeg(60.6262,61.1862,71.1,0.2,119.2); + TGeoTubeSeg *cd3 = new TGeoTubeSeg(60.6462,61.1662,71.1,0.2,119.2); + TGeoTubeSeg *cd4 = new TGeoTubeSeg(60.6562,61.1562,71.1,0.2,119.2); + TGeoTubeSeg *tepox4 = new TGeoTubeSeg(60.6224,61.19,71.1,359.8,0.8); + // + TGeoMedium *sm6 = gGeoManager->GetMedium("TPC_Prepreg1"); + TGeoMedium *sm8 = gGeoManager->GetMedium("TPC_Epoxyfm"); + TGeoVolume *cd1v = new TGeoVolume("TPC_CDR1",cd1,sm2); //tedlar + TGeoVolume *cd2v = new TGeoVolume("TPC_CDR2",cd2,sm6);// prepreg1 + TGeoVolume *cd3v = new TGeoVolume("TPC_CDR3",cd3,sm8); //epoxy film + TGeoVolume *cd4v = new TGeoVolume("TPC_CDR4",cd4,sm4); //nomex + TGeoVolume *tvep4 = new TGeoVolume("TPC_IFEPOX4",tepox4,smep); + + // + // seals for central drum 2 copies + // + TGeoTube *cs = new TGeoTube(56.9,61.2,0.1); + TGeoMedium *sm7 = gGeoManager->GetMedium("TPC_Mylar"); + TGeoVolume *csv = new TGeoVolume("TPC_CDRS",cs,sm7); + v1->AddNode(csv,1,new TGeoTranslation(0.,0.,-71.2)); + v1->AddNode(csv,2,new TGeoTranslation(0.,0.,71.2)); + // + // seal collars + TGeoPcon *se = new TGeoPcon(0.,360.,6); + se->DefineSection(0,-72.8,59.7,61.2); + se->DefineSection(1,-72.3,59.7,61.2); + // + se->DefineSection(2,-72.3,58.85,61.2); + se->DefineSection(3,-71.6,58.85,61.2); + // + se->DefineSection(4,-71.6,59.7,61.2); + se->DefineSection(5,-71.3,59.7,61.2); + // + TGeoVolume *sev = new TGeoVolume("TPC_CDCE",se,m3); + // + TGeoTube *si = new TGeoTube(56.9,58.8,1.); + TGeoVolume *siv = new TGeoVolume("TPC_CDCI",si,m3); + // + // define reflection matrix + // + TGeoRotation *ref = new TGeoRotation("ref",90.,0.,90.,90.,180.,0.); + // + cd1v->AddNode(cd2v,1); cd2v->AddNode(cd3v,1); cd3v->AddNode(cd4v,1); //sandwich + // first segment + cflv->AddNode(cd1v,1); cflv->AddNode(tvep4,1); + // second segment + segrot = new TGeoRotation(); + segrot->RotateZ(120.); + cflv->AddNode(cd1v,2,segrot); cflv->AddNode(tvep4,2,segrot); + // third segment + segrot = new TGeoRotation(); + segrot->RotateZ(240.); + cflv->AddNode(cd1v,3,segrot); cflv->AddNode(tvep4,3,segrot); + // + v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-69.9)); + v1->AddNode(siv,2,new TGeoTranslation(0.,0.,69.9)); + v1->AddNode(sev,1); v1->AddNode(sev,2,ref); v1->AddNode(cflv,1); + // + // central membrane - 2 rings and a mylar membrane - assembly + // + TGeoTube *ih = new TGeoTube(81.05,84.05,0.3); + TGeoTube *oh = new TGeoTube(250.,256.,0.5); + TGeoTube *mem = new TGeoTube(84.05,250.,0.00115); + + // + TGeoMedium *m4 = gGeoManager->GetMedium("TPC_G10"); + // + TGeoVolume *ihv = new TGeoVolume("TPC_IHVH",ih,m3); + TGeoVolume *ohv = new TGeoVolume("TPC_OHVH",oh,m3); + + TGeoVolume *memv = new TGeoVolume("TPC_HV",mem,sm7); + // + TGeoVolumeAssembly *cm = new TGeoVolumeAssembly("TPC_HVMEM"); + cm->AddNode(ihv,1); + cm->AddNode(ohv,1); + cm->AddNode(memv,1); + + v9->AddNode(cm,1); + // + // end caps - they are make as an assembly of single segments + // containing both readout chambers + // + Double_t openingAngle = 10.*TMath::DegToRad(); + Double_t thick=1.5; // rib + Double_t shift = thick/TMath::Sin(openingAngle); + // + Double_t lowEdge = 86.3; // hole in the wheel + Double_t upEdge = 240.4; // hole in the wheel + // + new TGeoTubeSeg("sec",74.5,264.4,3.,0.,20.); + // + TGeoPgon *hole = new TGeoPgon("hole",0.,20.,1,4); + // + hole->DefineSection(0,-3.5,lowEdge-shift,upEdge-shift); + hole->DefineSection(1,-1.5,lowEdge-shift,upEdge-shift); + // + hole->DefineSection(2,-1.5,lowEdge-shift,upEdge+3.-shift); + hole->DefineSection(3,3.5,lowEdge-shift,upEdge+3.-shift); + // + Double_t ys = shift*TMath::Sin(openingAngle); + Double_t xs = shift*TMath::Cos(openingAngle); + TGeoTranslation *tr = new TGeoTranslation("tr",xs,ys,0.); + tr->RegisterYourself(); + TGeoCompositeShape *chamber = new TGeoCompositeShape("sec-hole:tr"); + TGeoVolume *sv = new TGeoVolume("TPC_WSEG",chamber,m3); + TGeoPgon *bar = new TGeoPgon("bar",0.,20.,1,2); + bar->DefineSection(0,-3.,131.5-shift,136.5-shift); + bar->DefineSection(1,1.5,131.5-shift,136.5-shift); + TGeoVolume *barv = new TGeoVolume("TPC_WBAR",bar,m3); + TGeoVolumeAssembly *ch = new TGeoVolumeAssembly("TPC_WCH");//empty segment + // + ch->AddNode(sv,1); ch->AddNode(barv,1,tr); + // + // readout chambers + // + // IROC first + // + TGeoTrd1 *ibody = new TGeoTrd1(13.8742,21.3328,4.29,21.15); + TGeoVolume *ibdv = new TGeoVolume("TPC_IROCB",ibody,m3); + // empty space + TGeoTrd1 *emp = new TGeoTrd1(12.3742,19.8328,3.99,19.65); + TGeoVolume *empv = new TGeoVolume("TPC_IROCE",emp,m1); + ibdv->AddNode(empv,1,new TGeoTranslation(0.,-0.3,0.)); + //bars + Double_t tga = (19.8328-12.3742)/39.3; + Double_t xmin,xmax; + xmin = 9.55*tga+12.3742; + xmax = 9.95*tga+12.3742; + TGeoTrd1 *ib1 = new TGeoTrd1(xmin,xmax,3.29,0.2); + TGeoVolume *ib1v = new TGeoVolume("TPC_IRB1",ib1,m3); + empv->AddNode(ib1v,1,new TGeoTranslation("tt1",0.,0.7,-9.9)); + xmin=19.4*tga+12.3742; + xmax=19.9*tga+12.3742; + TGeoTrd1 *ib2 = new TGeoTrd1(xmin,xmax,3.29,0.25); + TGeoVolume *ib2v = new TGeoVolume("TPC_TRB2",ib2,m3); + empv->AddNode(ib2v,1,new TGeoTranslation(0.,0.7,0.)); + xmin=29.35*tga+12.3742; + xmax=29.75*tga+12.3742; + TGeoTrd1 *ib3 = new TGeoTrd1(xmin,xmax,3.29,0.2); + TGeoVolume *ib3v = new TGeoVolume("TPC_IRB3",ib3,m3); + empv->AddNode(ib3v,1,new TGeoTranslation(0.,0.7,9.9)); + // + // holes for connectors + // + TGeoBBox *conn = new TGeoBBox(0.4,0.3,4.675); // identical for iroc and oroc + TGeoVolume *connv = new TGeoVolume("TPC_RCCON",conn,m1); + TString fileName(gSystem->Getenv("ALICE_ROOT")); + fileName += "/TPC/conn_iroc.dat"; + ifstream in; + in.open(fileName.Data(), ios_base::in); // asci file + TGeoRotation *rrr[86]; + for(Int_t i =0;i<86;i++){ + Double_t y = 3.99; + Double_t x,z,ang; + in>>x>>z>>ang; + z-=26.5; + rrr[i]= new TGeoRotation(); + rrr[i]->RotateY(ang); + ibdv->AddNode(connv,i+1,new TGeoCombiTrans(x,y,z,rrr[i])); + } + in.close(); + // "cap" + new TGeoTrd1("icap",14.5974,23.3521,1.19,24.825); + // "hole" + new TGeoTrd1("ihole",13.8742,21.3328,1.2,21.15); + TGeoTranslation *tr1 = new TGeoTranslation("tr1",0.,0.,1.725); + tr1->RegisterYourself(); + TGeoCompositeShape *ic = new TGeoCompositeShape("icap-ihole:tr1"); + TGeoVolume *icv = new TGeoVolume("TPC_IRCAP",ic,m3); + // + // pad plane and wire fixations + // + TGeoTrd1 *pp = new TGeoTrd1(14.5974,23.3521,0.3,24.825); //pad+iso + TGeoVolume *ppv = new TGeoVolume("TPC_IRPP",pp,m4); + TGeoPara *f1 = new TGeoPara(.6,.5,24.825,0.,-10.,0.); + TGeoVolume *f1v = new TGeoVolume("TPC_IRF1",f1,m4); + TGeoPara *f2 = new TGeoPara(.6,.5,24.825,0.,10.,0.); + TGeoVolume *f2v = new TGeoVolume("TPC_IRF2",f2,m4); + // + TGeoVolumeAssembly *iroc = new TGeoVolumeAssembly("TPC_IROC"); + // + iroc->AddNode(ibdv,1); + iroc->AddNode(icv,1,new TGeoTranslation(0.,3.1,-1.725)); + iroc->AddNode(ppv,1,new TGeoTranslation(0.,4.59,-1.725)); + tga =(23.3521-14.5974)/49.65; + Double_t xx = 24.825*tga+14.5974-0.6; + iroc->AddNode(f1v,1,new TGeoTranslation(-xx,5.39,-1.725)); + iroc->AddNode(f2v,1,new TGeoTranslation(xx,5.39,-1.725)); + // + // OROC + // + TGeoTrd1 *obody = new TGeoTrd1(22.2938,40.5084,4.19,51.65); + TGeoVolume *obdv = new TGeoVolume("TPC_OROCB",obody,m3); + TGeoTrd1 *oemp = new TGeoTrd1(20.2938,38.5084,3.89,49.65); + TGeoVolume *oempv = new TGeoVolume("TPC_OROCE",oemp,m1); + obdv->AddNode(oempv,1,new TGeoTranslation(0.,-0.3,0.)); + //horizontal bars + tga=(38.5084-20.2938)/99.3; + xmin=tga*10.2+20.2938; + xmax=tga*10.6+20.2938; + TGeoTrd1 *ob1 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob1v = new TGeoVolume("TPC_ORB1",ob1,m3); + // + xmin=22.55*tga+20.2938; + xmax=24.15*tga+20.2938; + TGeoTrd1 *ob2 = new TGeoTrd1(xmin,xmax,2.915,0.8); + TGeoVolume *ob2v = new TGeoVolume("TPC_ORB2",ob2,m3); + // + xmin=36.1*tga+20.2938; + xmax=36.5*tga+20.2938; + TGeoTrd1 *ob3 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob3v = new TGeoVolume("TPC_ORB3",ob3,m3); + // + xmin=49.0*tga+20.2938; + xmax=50.6*tga+20.2938; + TGeoTrd1 *ob4 = new TGeoTrd1(xmin,xmax,2.915,0.8); + TGeoVolume *ob4v = new TGeoVolume("TPC_ORB4",ob4,m3); + // + xmin=63.6*tga+20.2938; + xmax=64.0*tga+20.2938; + TGeoTrd1 *ob5 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob5v = new TGeoVolume("TPC_ORB5",ob5,m3); + // + xmin=75.5*tga+20.2938; + xmax=77.15*tga+20.2938; + TGeoTrd1 *ob6 = new TGeoTrd1(xmin,xmax,2.915,0.8); + TGeoVolume *ob6v = new TGeoVolume("TPC_ORB6",ob6,m3); + // + xmin=88.7*tga+20.2938; + xmax=89.1*tga+20.2938; + TGeoTrd1 *ob7 = new TGeoTrd1(xmin,xmax,2.915,0.2); + TGeoVolume *ob7v = new TGeoVolume("TPC_ORB7",ob7,m3); + // + oempv->AddNode(ob1v,1,new TGeoTranslation(0.,0.975,-39.25)); + oempv->AddNode(ob2v,1,new TGeoTranslation(0.,0.975,-26.3)); + oempv->AddNode(ob3v,1,new TGeoTranslation(0.,0.975,-13.35)); + oempv->AddNode(ob4v,1,new TGeoTranslation(0.,0.975,0.15)); + oempv->AddNode(ob5v,1,new TGeoTranslation(0.,0.975,14.15)); + oempv->AddNode(ob6v,1,new TGeoTranslation(0.,0.975,26.7)); + oempv->AddNode(ob7v,1,new TGeoTranslation(0.,0.975,39.25)); + // vertical bars + TGeoBBox *ob8 = new TGeoBBox(0.8,2.915,5.1); + TGeoBBox *ob9 = new TGeoBBox(0.8,2.915,5.975); + TGeoBBox *ob10 = new TGeoBBox(0.8,2.915,5.775); + TGeoBBox *ob11 = new TGeoBBox(0.8,2.915,6.25); + TGeoBBox *ob12 = new TGeoBBox(0.8,2.915,6.5); + // + TGeoVolume *ob8v = new TGeoVolume("TPC_ORB8",ob8,m3); + TGeoVolume *ob9v = new TGeoVolume("TPC_ORB9",ob9,m3); + TGeoVolume *ob10v = new TGeoVolume("TPC_ORB10",ob10,m3); + TGeoVolume *ob11v = new TGeoVolume("TPC_ORB11",ob11,m3); + TGeoVolume *ob12v = new TGeoVolume("TPC_ORB12",ob12,m3); + // + oempv->AddNode(ob8v,1,new TGeoTranslation(0.,0.975,-44.55)); + oempv->AddNode(ob8v,2,new TGeoTranslation(0.,0.975,44.55)); + oempv->AddNode(ob9v,1,new TGeoTranslation(0.,0.975,-33.075)); + oempv->AddNode(ob9v,2,new TGeoTranslation(0.,0.975,-19.525)); + oempv->AddNode(ob10v,1,new TGeoTranslation(0.,0.975,20.125)); + oempv->AddNode(ob10v,2,new TGeoTranslation(0.,0.975,33.275)); + oempv->AddNode(ob11v,1,new TGeoTranslation(0.,0.975,-6.9)); + oempv->AddNode(ob12v,1,new TGeoTranslation(0.,0.975,7.45)); + // + // holes for connectors + // + fileName = gSystem->Getenv("ALICE_ROOT"); + fileName += "/TPC/conn_oroc.dat"; + in.open(fileName.Data(), ios_base::in); // asci file + TGeoRotation *rr[78]; + for(Int_t i =0;i<78;i++){ + Double_t y =3.89; + Double_t x,z,ang; + Double_t x1,z1,x2,z2; + in>>x>>z>>ang; + Double_t xr = 4.7*TMath::Sin(ang*TMath::DegToRad()); + Double_t zr = 4.7*TMath::Cos(ang*TMath::DegToRad()); + // + x1=xr+x; x2=-xr+x; z1=zr+z; z2 = -zr+z; + // + rr[i]= new TGeoRotation(); + rr[i]->RotateY(ang); + z1-=54.95; + z2-=54.95; + // + obdv->AddNode(connv,i+1,new TGeoCombiTrans(x1,y,z1,rr[i])); + obdv->AddNode(connv,i+79,new TGeoCombiTrans(x2,y,z2,rr[i])); + } + in.close(); + // cap + new TGeoTrd1("ocap",23.3874,43.5239,1.09,57.1); + new TGeoTrd1("ohole",22.2938,40.5084,1.09,51.65); + TGeoTranslation *tr5 = new TGeoTranslation("tr5",0.,0.,-2.15); + tr5->RegisterYourself(); + TGeoCompositeShape *oc = new TGeoCompositeShape("ocap-ohole:tr5"); + TGeoVolume *ocv = new TGeoVolume("TPC_ORCAP",oc,m3); + // + // pad plane and wire fixations + // + TGeoTrd1 *opp = new TGeoTrd1(23.3874,43.5239,0.3,57.1); + TGeoVolume *oppv = new TGeoVolume("TPC_ORPP",opp,m4); + // + tga=(43.5239-23.3874)/114.2; + TGeoPara *f3 = new TGeoPara(.7,.6,57.1,0.,-10.,0.); + TGeoPara *f4 = new TGeoPara(.7,.6,57.1,0.,10.,0.); + xx = 57.1*tga+23.3874-0.7; + TGeoVolume *f3v = new TGeoVolume("TPC_ORF1",f3,m4); + TGeoVolume *f4v = new TGeoVolume("TPC_ORF2",f4,m4); + // + TGeoVolumeAssembly *oroc = new TGeoVolumeAssembly("TPC_OROC"); + // + oroc->AddNode(obdv,1); + oroc->AddNode(ocv,1,new TGeoTranslation(0.,3.1,2.15)); + oroc->AddNode(oppv,1,new TGeoTranslation(0.,4.49,2.15)); + oroc->AddNode(f3v,1,new TGeoTranslation(-xx,5.39,2.15)); + oroc->AddNode(f4v,1,new TGeoTranslation(xx,5.39,2.15)); + // + // now iroc and oroc are placed into a sector... + // + TGeoVolumeAssembly *secta = new TGeoVolumeAssembly("TPC_SECT"); // a-side + TGeoVolumeAssembly *sectc = new TGeoVolumeAssembly("TPC_SECT"); // c-side + TGeoRotation rot1("rot1",90.,90.,0.); + TGeoRotation rot2("rot2"); + rot2.RotateY(10.); + TGeoRotation *rot = new TGeoRotation("rot"); + *rot=rot1*rot2; + // + Double_t x0,y0; + x0=110.2*TMath::Cos(openingAngle); + y0=110.2*TMath::Sin(openingAngle); + TGeoCombiTrans *combi1a = new TGeoCombiTrans("combi1",x0,y0,1.09+0.195,rot); //a-side + TGeoCombiTrans *combi1c = new TGeoCombiTrans("combi1",x0,y0,1.09+0.222,rot); //c-side + x0=188.45*TMath::Cos(openingAngle); + y0=188.45*TMath::Sin(openingAngle); + TGeoCombiTrans *combi2a = new TGeoCombiTrans("combi2",x0,y0,0.99+0.195,rot); //a-side + TGeoCombiTrans *combi2c = new TGeoCombiTrans("combi2",x0,y0,0.99+0.222,rot); //c-side + // + // + // A-side + // + secta->AddNode(ch,1); + secta->AddNode(iroc,1,combi1a); + secta->AddNode(oroc,1,combi2a); + // + // C-side + // + sectc->AddNode(ch,1); + sectc->AddNode(iroc,1,combi1c); + sectc->AddNode(oroc,1,combi2c); + // + // now I try to make wheels... + // + TGeoVolumeAssembly *wheela = new TGeoVolumeAssembly("TPC_ENDCAP"); + TGeoVolumeAssembly *wheelc = new TGeoVolumeAssembly("TPC_ENDCAP"); + // + TGeoRotation *rwh[18]; + for(Int_t i =0;i<18;i++){ + Double_t phi = (20.*i); + rwh[i]=new TGeoRotation(); + rwh[i]->RotateZ(phi); + wheela->AddNode(secta,i+1,rwh[i]); + wheelc->AddNode(sectc,i+1,rwh[i]); + + } + // wheels in the drift volume! + + TGeoCombiTrans *combi3 = new TGeoCombiTrans("combi3",0.,0.,256.6,ref); + v9->AddNode(wheela,1,combi3); + v9->AddNode(wheelc,2,new TGeoTranslation(0.,0.,-256.6)); + //_____________________________________________________________ + // service support wheel + //_____________________________________________________________ + TGeoPgon *sw = new TGeoPgon(0.,20.,1,2); + sw->DefineSection(0,-4.,80.5,251.75); + sw->DefineSection(1,4.,80.5,251.75); + TGeoVolume *swv = new TGeoVolume("TPC_SWSEG",sw,m3); //Al + // + thick=1.; + shift = thick/TMath::Sin(openingAngle); + TGeoPgon *sh = new TGeoPgon(0.,20.,1,2); + sh->DefineSection(0,-4.,81.5-shift,250.75-shift); + sh->DefineSection(1,4.,81.5-shift,250.75-shift); + TGeoVolume *shv = new TGeoVolume("TPC_SWS1",sh,m1); //Air + // + TGeoMedium *m9 = gGeoManager->GetMedium("TPC_Si"); + TGeoPgon *el = new TGeoPgon(0.,20.,1,2); + el->DefineSection(0,-1.872,81.5-shift,250.75-shift); + el->DefineSection(1,1.872,81.5-shift,250.75-shift); + TGeoVolume *elv = new TGeoVolume("TPC_ELEC",el,m9); //Si + // + shv->AddNode(elv,1); + // + // + ys = shift*TMath::Sin(openingAngle); + xs = shift*TMath::Cos(openingAngle); + swv->AddNode(shv,1,new TGeoTranslation(xs,ys,0.)); + // cover + TGeoPgon *co = new TGeoPgon(0.,20.,1,2); + co->DefineSection(0,-0.5,77.,255.25); + co->DefineSection(1,0.5,77.,255.25); + TGeoVolume *cov = new TGeoVolume("TPC_SWC1",co,m3);//Al + // hole in a cover + TGeoPgon *coh = new TGeoPgon(0.,20.,1,2); + shift=4./TMath::Sin(openingAngle); + coh->DefineSection(0,-0.5,85.-shift,247.25-shift); + coh->DefineSection(1,0.5,85.-shift,247.25-shift); + // + TGeoVolume *cohv = new TGeoVolume("TPC_SWC2",coh,m1); + // + ys = shift*TMath::Sin(openingAngle); + xs = shift*TMath::Cos(openingAngle); + cov->AddNode(cohv,1,new TGeoTranslation(xs,ys,0.)); + // + // Sector as an Assembly + // + TGeoVolumeAssembly *swhs = new TGeoVolumeAssembly("TPC_SSWSEC"); + swhs->AddNode(swv,1); + swhs->AddNode(cov,1,new TGeoTranslation(0.,0.,-4.5)); + swhs->AddNode(cov,2,new TGeoTranslation(0.,0.,4.5)); + // + // SSW as an Assembly of sectors + // + TGeoRotation *rsw[18]; + TGeoVolumeAssembly *swheel = new TGeoVolumeAssembly("TPC_SSWHEEL"); + for(Int_t i =0;i<18;i++){ + Double_t phi = (20.*i); + rsw[i] = new TGeoRotation(); + rsw[i]->RotateZ(phi); + swheel->AddNode(swhs,i+1,rsw[i]); + } + v1->AddNode(swheel,1,new TGeoTranslation(0.,0.,-284.6)); + v1->AddNode(swheel,2,new TGeoTranslation(0.,0.,284.6)); + + // sensitive strips - strip "0" is always set + // conditional + // TODO: Hard coded numbers. Will need to be changed! + Int_t totrows=159; +// totrows = mParam->GetNRowLow() + mParam->GetNRowUp(); + Double_t *upar; + upar=NULL; + gGeoManager->Volume("TPC_Strip","PGON",m5->GetId(),upar); + upar=new Double_t [10]; + upar[0]=0.; + upar[1]=360.; + upar[2]=18.; + upar[3]=2.; + // + upar[4]=-124.8; + upar[7]=124.8; + + //TODO: hard coded value +// Double_t rlow=mParam->GetPadRowRadiiLow(0); + Double_t rlow=85.225; //cm + + upar[5]=rlow; + upar[6]=rlow+.01; + upar[8]=upar[5]; + upar[9]=upar[6]; + // + gGeoManager->Node("TPC_Strip",1,"TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); + gGeoManager->Node("TPC_Strip",totrows+1, + "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); + // + // now, strips optionally + // +// if(mSens){ +// //lower sectors +// for(Int_t i=2;iGetNRowLow()+1;i++){ +// rlow=mParam->GetPadRowRadiiLow(i-1); +// upar[5]=rlow; +// upar[6]=rlow+.01; +// upar[8]=upar[5]; +// upar[9]=upar[6]; +// gGeoManager->Node("TPC_Strip",i, +// "TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); +// gGeoManager->Node("TPC_Strip",totrows+i, +// "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); +// } +// //upper sectors +// for(Int_t i=1;iGetNRowUp()+1;i++){ +// rlow=mParam->GetPadRowRadiiUp(i-1); +// upar[5]=rlow; +// upar[6]=rlow+.01; +// upar[8]=upar[5]; +// upar[9]=upar[6]; +// gGeoManager->Node("TPC_Strip",i+mParam->GetNRowLow(), +// "TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); +// gGeoManager->Node("TPC_Strip",totrows+i+mParam->GetNRowLow(), +// "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); +// } +// }//strips + //---------------------------------------------------------- + // TPC Support Rods - MAKROLON + //---------------------------------------------------------- + TGeoMedium *m6=gGeoManager->GetMedium("TPC_Makrolon"); + TGeoMedium *m7=gGeoManager->GetMedium("TPC_Cu"); + TGeoMedium *m10 = gGeoManager->GetMedium("TPC_Alumina"); + TGeoMedium *m11 = gGeoManager->GetMedium("TPC_Peek");; + TGeoMedium *m13 = gGeoManager->GetMedium("TPC_Brass"); + TGeoMedium *m14 = gGeoManager->GetMedium("TPC_Alumina1"); + // + // tpc rod is an assembly of 10 long parts and 2 short parts + // connected with alu rings and plagged on both sides. + // + // + // tpc rod long + // + TGeoPcon *rod = new TGeoPcon("rod",0.,360.,6); + rod->DefineSection(0,-10.43,1.92,2.08); + rod->DefineSection(1,-9.75,1.92,2.08); + + rod->DefineSection(2,-9.75,1.8,2.2); + rod->DefineSection(3,9.75,1.8,2.2); + + rod->DefineSection(4,9.75,1.92,2.08); + rod->DefineSection(5,10.43,1.92,2.08); + // + TGeoVolume *mrodl = new TGeoVolume("TPC_mrodl",rod,m6); + // + // tpc rod short + // + TGeoPcon *rod1 = new TGeoPcon("rod1",0.,360.,6); + rod1->DefineSection(0,-8.93,1.92,2.08); + rod1->DefineSection(1,-8.25,1.92,2.08); + + rod1->DefineSection(2,-8.25,1.8,2.2); + rod1->DefineSection(3,8.25,1.8,2.2); + + rod1->DefineSection(4,8.25,1.92,2.08); + rod1->DefineSection(5,8.93,1.92,2.08); + // + TGeoVolume *mrods = new TGeoVolume("TPC_mrods",rod1,m6); + // + // below is for the resistor rod + // + // hole for the brass connectors + // + + new TGeoTube("hhole",0.,0.3,0.3); + // + //transformations for holes - initialy they + // are placed at x=0 and negative y + // + TGeoRotation *rhole = new TGeoRotation(); + rhole->RotateX(90.); + TGeoCombiTrans *transf[13]; + Char_t name[30]; + for(Int_t i=0;i<13;i++){ + snprintf(name,30,"transf%d",i); + transf[i]= new TGeoCombiTrans(name,0.,-2.,-9.+i*1.5,rhole); + transf[i]->RegisterYourself(); + } + // union expression for holes + TString operl("hhole:transf0"); + for (Int_t i=1;i<13;i++){ + snprintf(name,30,"+hhole:transf%d",i); + operl.Append(name); + } + // + TString opers("hhole:transf1"); + for (Int_t i=2;i<12;i++){ + snprintf(name,30,"+hhole:transf%d",i); + opers.Append(name); + } + //union of holes + new TGeoCompositeShape("hlv",operl.Data()); + new TGeoCompositeShape("hsv",opers.Data()); + // + TGeoCompositeShape *rodl = new TGeoCompositeShape("rodl","rod-hlv"); + TGeoCompositeShape *rods = new TGeoCompositeShape("rods","rod1-hsv"); + //rods - volumes - makrolon rods with holes + TGeoVolume *rodlv = new TGeoVolume("TPC_rodl",rodl,m6); + TGeoVolume *rodsv = new TGeoVolume("TPC_rods",rods,m6); + //brass connectors + //connectors + TGeoTube *bcon = new TGeoTube(0.,0.3,0.3);//connectors + TGeoVolume *bconv = new TGeoVolume("TPC_bcon",bcon,m13); + // + // hooks holding strips + // + new TGeoBBox("hk1",0.625,0.015,0.75); + new TGeoBBox("hk2",0.625,0.015,0.15); + TGeoTranslation *tr21 = new TGeoTranslation("tr21",0.,-0.03,-0.6); + TGeoTranslation *tr12 = new TGeoTranslation("tr12",0.,-0.03,0.6); + tr21->RegisterYourself(); + tr12->RegisterYourself(); + + TGeoCompositeShape *hook = new TGeoCompositeShape("hook","hk1+hk2:tr21+hk2:tr12"); + TGeoVolume *hookv = new TGeoVolume("TPC_hook",hook,m13); + // + // assembly of the short rod with connectors and hooks + // + // + // short rod + // + TGeoVolumeAssembly *spart = new TGeoVolumeAssembly("TPC_spart"); + // + spart->AddNode( rodsv,1); + for(Int_t i=1;i<12;i++){ + spart->AddNode(bconv,i,transf[i]); + } + for(Int_t i =0;i<11;i++){ + spart->AddNode(hookv,i+1,new TGeoTranslation(0.,-2.315,-7.5+i*1.5)); + } + // + // long rod + // + TGeoVolumeAssembly *lpart = new TGeoVolumeAssembly("TPC_lpart"); + // + lpart->AddNode( rodlv,1); + for(Int_t i=0;i<13;i++){ + lpart->AddNode(bconv,i+12,transf[i]); + } + for(Int_t i =0;i<13;i++){ + lpart->AddNode(hookv,i+12,new TGeoTranslation(0.,-2.315,-9.+i*1.5)); + } + // + // alu ring + // + new TGeoTube("ring1",2.1075,2.235,0.53); + new TGeoTube("ring2",1.7925,1.89,0.43); + new TGeoTube("ring3",1.89,2.1075,0.05); + TGeoCompositeShape *ring = new TGeoCompositeShape("ring","ring1+ring2+ring3"); + TGeoVolume *ringv = new TGeoVolume("TPC_ring",ring,m3); + // + // rod assembly + // + TGeoVolumeAssembly *tpcrrod = new TGeoVolumeAssembly("TPC_rrod");//rrod + TGeoVolumeAssembly *tpcmrod = new TGeoVolumeAssembly("TPC_mrod");//makrolon rod + //long pieces + for(Int_t i=0;i<11;i++){ + tpcrrod->AddNode(ringv,i+1,new TGeoTranslation(0.,0.,-105.+i*21)); + tpcmrod->AddNode(ringv,i+12,new TGeoTranslation(0.,0.,-105.+i*21)); + } + for(Int_t i=0;i<10;i++){ + tpcrrod->AddNode(lpart,i+1,new TGeoTranslation(0.,0.,-94.5+i*21));//resistor rod + tpcmrod->AddNode(mrodl,i+1,new TGeoTranslation(0.,0.,-94.5+i*21));//makrolon rod + } + // + // right plug - identical for all rods + // + TGeoPcon *tpcrp = new TGeoPcon(0.,360.,6); + // + tpcrp->DefineSection(0,123.05,1.89,2.1075); + tpcrp->DefineSection(1,123.59,1.89,2.1075); + // + tpcrp->DefineSection(2,123.59,1.8,2.2); + tpcrp->DefineSection(3,127.,1.8,2.2); + // + tpcrp->DefineSection(4,127.,0.,2.2); + tpcrp->DefineSection(5,127.5,0.,2.2); + // + TGeoVolume *tpcrpv = new TGeoVolume("TPC_RP",tpcrp,m6); + // + // adding short pieces and right plug + // + tpcrrod->AddNode(spart,1,new TGeoTranslation(0.,0.,-114.)); + tpcrrod->AddNode(spart,2,new TGeoTranslation(0.,0.,114.)); + tpcrrod->AddNode(ringv,23,new TGeoTranslation(0.,0.,-123.)); + tpcrrod->AddNode(ringv,24,new TGeoTranslation(0.,0.,123.)); + tpcrrod->AddNode(tpcrpv,1); + // + tpcmrod->AddNode(mrods,1,new TGeoTranslation(0.,0.,-114.)); + tpcmrod->AddNode(mrods,2,new TGeoTranslation(0.,0.,114.)); + tpcmrod->AddNode(ringv,25,new TGeoTranslation(0.,0.,-123.)); + tpcmrod->AddNode(ringv,26,new TGeoTranslation(0.,0.,123.)); + tpcmrod->AddNode(tpcrpv,2); + // + // from the ringv position to the CM is 3.0 cm! + //---------------------------------------- + // + // + //HV rods - makrolon + 0.58cm (diameter) Cu ->check the length + TGeoTube *hvr = new TGeoTube(0.,1.465,123.); + TGeoTube *hvc = new TGeoTube(0.,0.29,123.); + // + TGeoVolume *hvrv = new TGeoVolume("TPC_HV_Rod",hvr,m6); + TGeoVolume *hvcv = new TGeoVolume("TPC_HV_Cable",hvc,m7); + hvrv->AddNode(hvcv,1); + // + //resistor rod + // + TGeoTube *cr = new TGeoTube(0.,0.45,123.); + TGeoTube *cw = new TGeoTube(0.,0.15,123.); + TGeoVolume *crv = new TGeoVolume("TPC_CR",cr,m10); + TGeoVolume *cwv = new TGeoVolume("TPC_W",cw,m12); + // + // ceramic rod with water + // + crv->AddNode(cwv,1); + // + //peek rod + // + TGeoTube *pr =new TGeoTube(0.2,0.35,123.); + TGeoVolume *prv = new TGeoVolume("TPC_PR",pr,m11); + // + // copper plates with connectors + // + new TGeoTube("tub",0.,1.7,0.025); + // + // half space - points on the plane and a normal vector + // + Double_t n[3],p[3]; + Double_t slope = TMath::Tan(22.*TMath::DegToRad()); + Double_t intp = 1.245; + // + Double_t b = slope*slope+1.; + p[0]=intp*slope/b; + p[1]=-intp/b; + p[2]=0.; + // + n[0]=-p[0]; + n[1]=-p[1]; + n[2]=0.; + Double_t norm; + norm=TMath::Sqrt(n[0]*n[0]+n[1]*n[1]); + n[0] /= norm; + n[1] /=norm; + // + new TGeoHalfSpace("sp1",p,n); + // + slope = -slope; + // + p[0]=intp*slope/b; + p[1]=-intp/b; + // + n[0]=-p[0]; + n[1]=-p[1]; + norm=TMath::Sqrt(n[0]*n[0]+n[1]*n[1]); + n[0] /= norm; + n[1] /=norm; + // + new TGeoHalfSpace("sp2",p,n); + // holes for rods + //holes + new TGeoTube("h1",0.,0.5,0.025); + new TGeoTube("h2",0.,0.35,0.025); + //translations: + TGeoTranslation *ttr11 = new TGeoTranslation("ttr11",-0.866,0.5,0.); + TGeoTranslation *ttr22 = new TGeoTranslation("ttr22",0.866,0.5,0.); + ttr11->RegisterYourself(); + ttr22->RegisterYourself(); + // elastic connector + new TGeoBBox("elcon",0.72,0.005,0.3); + TGeoRotation *crr1 = new TGeoRotation(); + crr1->RotateZ(-22.); + TGeoCombiTrans *ctr1 = new TGeoCombiTrans("ctr1",-0.36011, -1.09951,-0.325,crr1); + ctr1->RegisterYourself(); + TGeoCompositeShape *cs1 = new TGeoCompositeShape("cs1", + "(((((tub-h1:ttr11)-h1:ttr22)-sp1)-sp2)-h2)+elcon:ctr1"); + // + TGeoVolume *csvv = new TGeoVolume("TPC_RR_CU",cs1,m7); + // + // resistor rod assembly 2 ceramic rods, peak rod, Cu plates + // and resistors + // + TGeoVolumeAssembly *rrod = new TGeoVolumeAssembly("TPC_RRIN"); + // rods + rrod->AddNode(crv,1,ttr11); + rrod->AddNode(crv,2,ttr22); + rrod->AddNode(prv,1); + //Cu plates + for(Int_t i=0;i<165;i++){ + rrod->AddNode(csvv,i+1,new TGeoTranslation(0.,0.,-122.675+i*1.5)); + } + //resistors + TGeoTube *res = new TGeoTube(0.,0.15,0.5); + TGeoVolume *resv = new TGeoVolume("TPC_RES",res,m14); + TGeoVolumeAssembly *ress = new TGeoVolumeAssembly("TPC_RES_CH"); + ress->AddNode(resv,1,new TGeoTranslation(0.2,0.,0.)); + ress->AddNode(resv,2,new TGeoTranslation(-0.2,0.,0.)); + // + TGeoRotation *crr2 = new TGeoRotation(); + crr2->RotateY(30.); + TGeoRotation *crr3 = new TGeoRotation(); + crr3->RotateY(-30.); + // + for(Int_t i=0;i<164;i+=2){ + rrod->AddNode(ress,i+1, new TGeoCombiTrans(0.,1.2,-121.925+i*1.5,crr2)); + rrod->AddNode(ress,i+2, new TGeoCombiTrans(0.,1.2,-121.925+(i+1)*1.5,crr3)); + } + + tpcrrod->AddNode(rrod,1,new TGeoCombiTrans(0.,0.,0.5,crr1)); + // + // rod left head with holders - inner + // + // first element - support for inner holder TPC_IHS + Double_t shift1[3] = {0.0,-0.175,0.0}; + + new TGeoBBox("tpcihs1", 4.7, 0.66, 2.35); + new TGeoBBox("tpcihs2", 4.7, 0.485, 1.0, shift1); + new TGeoBBox("tpcihs3", 1.5, 0.485, 2.35, shift1); + new TGeoTube("tpcihs4", 0.0, 2.38, 0.1); + // + Double_t pointstrap[16]; + pointstrap[0]= 0.0; + pointstrap[1]= 0.0; + pointstrap[2]= 0.0; + pointstrap[3]= 1.08; + pointstrap[4]= 2.3; + pointstrap[5]= 1.08; + pointstrap[6]= 3.38; + pointstrap[7]= 0.0; + pointstrap[8]= 0.0; + pointstrap[9]= 0.0; + pointstrap[10]= 0.0; + pointstrap[11]= 1.08; + pointstrap[12]= 2.3; + pointstrap[13]= 1.08; + pointstrap[14]= 3.38; + pointstrap[15]= 0.0; + // + TGeoArb8 *tpcihs5 = new TGeoArb8("tpcihs5", 0.6, pointstrap); + // + // half space - cutting "legs" + // + p[0]=0.0; + p[1]=0.105; + p[2]=0.0; + // + n[0] = 0.0; + n[1] = 1.0; + n[2] = 0.0; + + new TGeoHalfSpace("cutil1", p, n); + + // + // transformations + // + TGeoTranslation *trans2 = new TGeoTranslation("trans2", 0.0, 2.84, 2.25); + trans2->RegisterYourself(); + TGeoTranslation*trans3= new TGeoTranslation("trans3", 0.0, 2.84, -2.25); + trans3->RegisterYourself(); + //support - composite volume + // + TGeoCompositeShape *tpcihs6 = new TGeoCompositeShape("tpcihs6", "tpcihs1-(tpcihs2+tpcihs3)-(tpcihs4:trans2)-(tpcihs4:trans3)-cutil1"); + // + // volumes - all makrolon + // + TGeoVolume *tpcihss = new TGeoVolume("TPC_IHSS", tpcihs6, m6); //support + TGeoVolume *tpcihst = new TGeoVolume("TPC_IHSTR",tpcihs5 , m6); //trapesoid + //now assembly + TGeoRotation *rot111 = new TGeoRotation(); + rot111->RotateY(180.0); + // + TGeoVolumeAssembly *tpcihs = new TGeoVolumeAssembly("TPC_IHS"); // assembly of the support + tpcihs->AddNode(tpcihss, 1); + tpcihs->AddNode(tpcihst, 1, new TGeoTranslation(-4.7, 0.66, 0.0)); + tpcihs->AddNode(tpcihst, 2, new TGeoCombiTrans(4.7, 0.66, 0.0, rot111)); + // + // two rod holders (TPC_IRH) assembled with the support + // + new TGeoBBox("tpcirh1", 4.7, 1.33, 0.5); + shift1[0]=-3.65; + shift1[1]=0.53; + shift1[2]=0.; + new TGeoBBox("tpcirh2", 1.05, 0.8, 0.5, shift1); + shift1[0]=3.65; + shift1[1]=0.53; + shift1[2]=0.; + new TGeoBBox("tpcirh3", 1.05, 0.8, 0.5, shift1); + shift1[0]=0.0; + shift1[1]=1.08; + shift1[2]=0.; + new TGeoBBox("tpcirh4", 1.9, 0.25, 0.5, shift1); + new TGeoTube("tpcirh5", 0, 1.9, 5); + // + TGeoTranslation *trans4 = new TGeoTranslation("trans4", 0, 0.83, 0.0); + trans4->RegisterYourself(); + // + TGeoCompositeShape *tpcirh6 = new TGeoCompositeShape("tpcirh6", "tpcirh1-tpcirh2-tpcirh3-(tpcirh5:trans4)-tpcirh4"); + // + // now volume + // + TGeoVolume *tpcirh = new TGeoVolume("TPC_IRH", tpcirh6, m6); + // + // and all together... + // + TGeoVolume *tpciclamp = new TGeoVolumeAssembly("TPC_ICLP"); + tpciclamp->AddNode(tpcihs, 1); + tpciclamp->AddNode(tpcirh, 1, new TGeoTranslation(0, 1.99, 1.1)); + tpciclamp->AddNode(tpcirh, 2, new TGeoTranslation(0, 1.99, -1.1)); + // + // and now left inner "head" + // + TGeoPcon *inplug = new TGeoPcon("inplug", 0.0, 360.0, 14); + + inplug->DefineSection(0, 0.3, 0.0, 2.2); + inplug->DefineSection(1, 0.6, 0.0, 2.2); + + inplug->DefineSection(2, 0.6, 0.0, 1.75); + inplug->DefineSection(3, 0.7, 0.0, 1.75); + + inplug->DefineSection(4, 0.7, 1.55, 1.75); + inplug->DefineSection(5, 1.6, 1.55, 1.75); + + inplug->DefineSection(6, 1.6, 1.55, 2.2); + inplug->DefineSection(7, 1.875, 1.55, 2.2); + + inplug->DefineSection(8, 1.875, 1.55, 2.2); + inplug->DefineSection(9, 2.47, 1.75, 2.2); + + inplug->DefineSection(10, 2.47, 1.75, 2.08); + inplug->DefineSection(11, 2.57, 1.8, 2.08); + + inplug->DefineSection(12, 2.57, 1.92, 2.08); + inplug->DefineSection(13, 2.95, 1.92, 2.08); + // + shift1[0]=0.0; + shift1[1]=-2.09; + shift1[2]=1.075; + // + new TGeoBBox("pcuti", 1.5, 0.11, 1.075, shift1); + // + TGeoCompositeShape *inplleft = new TGeoCompositeShape("inplleft", "inplug-pcuti"); + TGeoVolume *tpcinlplug = new TGeoVolume("TPC_INPLL", inplleft, m6); + // + // holder + plugs + // + TGeoVolume *tpcihpl = new TGeoVolumeAssembly("TPC_IHPL"); //holder+2 plugs (reflected) + tpcihpl->AddNode(tpcinlplug, 1); + tpcihpl->AddNode(tpcinlplug, 2,ref); + tpcihpl->AddNode(tpciclamp,1,new TGeoTranslation(0.0, -2.765, 0.0)); + // + // outer holders and clamps + // + + // outer membrane holder (between rods) + pointstrap[0]= 0.0; + pointstrap[1]= 0.0; + pointstrap[2]= 0.0; + pointstrap[3]= 2.8; + pointstrap[4]= 3.1; + pointstrap[5]= 2.8-3.1*TMath::Tan(15.*TMath::DegToRad()); + pointstrap[6]= 3.1; + pointstrap[7]= 0.0; + pointstrap[8]= 0.0; + pointstrap[9]= 0.0; + pointstrap[10]= 0.0; + pointstrap[11]= 2.8; + pointstrap[12]= 3.1; + pointstrap[13]= 2.8-3.1*TMath::Tan(15.*TMath::DegToRad()); + pointstrap[14]= 3.1; + pointstrap[15]= 0.0; + // + TGeoArb8 *tpcomh1 = new TGeoArb8("tpcomh1", 1.05, pointstrap); + TGeoBBox *tpcomh2 = new TGeoBBox("tpcomh2", 0.8, 1.4, 6); + // + TGeoVolume *tpcomh1v = new TGeoVolume("TPC_OMH1", tpcomh1, m7); + TGeoVolume *tpcomh2v = new TGeoVolume("TPC_OMH2", tpcomh2, m7); + // + TGeoVolume *tpcomh3v = new TGeoVolumeAssembly("TPC_OMH3"); // assembly1 + tpcomh3v->AddNode(tpcomh1v, 1, new TGeoTranslation(0.8, -1.4, 4.95)); + tpcomh3v->AddNode(tpcomh1v, 2, new TGeoTranslation(0.8, -1.4, -4.95)); + tpcomh3v->AddNode(tpcomh2v, 1); + // + shift1[0] = 0.9; + shift1[1] = -1.85; + shift1[2] = 0.0; + // + new TGeoBBox("tpcomh3", 1.65, 1.15, 3.4); + TGeoBBox *tpcomh4 = new TGeoBBox("tpcomh4", 0.75, 0.7, 3.4, shift1); + // + // halfspace 1 + // + p[0] = 0.0; + p[1] = -1.05; + p[2] = -3.4; + // + n[0] = 0.0; + n[1] = -1.0*TMath::Tan(30.*TMath::DegToRad()); + n[2] = 1.0; + // + new TGeoHalfSpace("cutomh1", p, n); + // + // halfspace 2 + // + p[0] = 0.0; + p[1] = -1.05; + p[2] = 3.4; + // + n[0] = 0.0; + n[1] = -1.0*TMath::Tan(30.*TMath::DegToRad()); + n[2] = -1.0; + // + new TGeoHalfSpace("cutomh2", p, n); + // + // halfspace 3 + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = -0.9; + // + n[0] = 1.0*TMath::Tan(75.*TMath::DegToRad()); + n[1] = 0.0; + n[2] = 1.0; + // + new TGeoHalfSpace("cutomh3", p, n); + // + // halfspace 4 + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = 0.9; + // + n[0] = 1.0*TMath::Tan(75*TMath::DegToRad()); + n[1] = 0.0; + n[2] = -1.0; + // + new TGeoHalfSpace("cutomh4", p, n); + // + // halsfspace 5 + // + p[0] = 1.65; + p[1] = -1.05; + p[2] = 0.0; + // + n[0] = -1.0; + n[1] = -1.0*TMath::Tan(20.*TMath::DegToRad()); + n[2] = 0.0; + // + new TGeoHalfSpace("cutomh5", p, n); + // + TGeoCompositeShape *tpcomh5 = new TGeoCompositeShape("tpcomh5", "tpcomh3-cutomh1-cutomh2-cutomh3-cutomh4-cutomh5"); + // + TGeoVolume *tpcomh5v = new TGeoVolume("TPC_OMH5",tpcomh5,m6); + TGeoVolume *tpcomh4v = new TGeoVolume("TPC_OMH6",tpcomh4,m6); + // + TGeoVolumeAssembly *tpcomh7v = new TGeoVolumeAssembly("TPC_OMH7"); + tpcomh7v->AddNode(tpcomh5v,1); + tpcomh7v->AddNode(tpcomh4v,1); + // + // full membrane holder - tpcomh3v + tpcomh7v + // + TGeoVolumeAssembly *tpcomh = new TGeoVolumeAssembly("TPC_OMH"); + tpcomh->AddNode(tpcomh3v,1,new TGeoTranslation(1.5,0.,0.)); + tpcomh->AddNode(tpcomh3v,2,new TGeoCombiTrans(-1.5,0.,0.,rot111)); + tpcomh->AddNode(tpcomh7v,1,new TGeoTranslation(0.65+1.5, 2.55, 0.0)); + tpcomh->AddNode(tpcomh7v,2,new TGeoCombiTrans(-0.65-1.5, 2.55, 0.0,rot111)); + // + // outer rod holder support + // + new TGeoBBox("tpcohs1", 3.8, 0.675, 2.35); + // + shift1[0] = 0.0; + shift1[1] = 0.175; + shift1[2] = 0.0; + // + new TGeoBBox("tpcohs2", 1.5, 0.5, 2.35, shift1); + new TGeoBBox("tpcohs3", 3.8, 0.5, 0.85, shift1); + // + shift1[0] = 0.0; + shift1[1] = -1.175; + shift1[2] = 0.0; + // + TGeoBBox *tpcohs4 = new TGeoBBox("tpsohs4", 3.1, 0.5, 0.7, shift1); + // + TGeoVolume *tpcohs4v = new TGeoVolume("TPC_OHS4", tpcohs4, m6); + // + p[0] = 0.0; + p[1] = -0.186; + p[2] = 0.0; + // + n[0] = 0.0; + n[1] = -1.0; + n[2] = 0.0; + // + new TGeoHalfSpace("cutohs1", p, n); + // + TGeoCompositeShape *tpcohs5 = new TGeoCompositeShape("tpcohs5", "tpcohs1-tpcohs2-tpcohs3-cutohs1"); + TGeoVolume *tpcohs5v = new TGeoVolume("TPC_OHS5", tpcohs5, m6); + // + TGeoVolumeAssembly *tpcohs = new TGeoVolumeAssembly("TPC_OHS"); + tpcohs->AddNode(tpcohs5v, 1); + tpcohs->AddNode(tpcohs4v, 1); + // + // outer rod holder itself + // + shift1[0] = 0.0; + shift1[1] = 1.325; + shift1[2] = 0.0; + new TGeoBBox("tpcorh1", 3.1, 1.825, 0.55); //from this box we cut pieces... + // + shift1[0] = -3.1; + shift1[1] = -0.5; + shift1[2] = 0.0; + // + new TGeoBBox("tpcorh2", 0.5, 2.75, 1.1, shift1); + // + shift1[0] = 3.1; + shift1[1] = -0.5; + shift1[2] = 0.0; + // + new TGeoBBox("tpcorh3", 0.5, 2.75, 1.1, shift1); + // + shift1[0] = 0.0; + shift1[1] = -0.5; + shift1[2] = -0.95; + // + new TGeoBBox("tpcorh4", 3.9, 2.75, 0.5, shift1); + // + shift1[0] = 0.0; + shift1[1] = -0.5; + shift1[2] = 0.0; + // + new TGeoBBox("tpcorh5", 1.95, 0.5, 1.1, shift1); + // + shift1[0] = 0.0; + shift1[1] = -0.5; + shift1[2] = 0.55; + // + new TGeoBBox("tpcorh6", 2.4, 0.5, 0.6, shift1); + // + new TGeoTube("tpcorh7", 0, 1.95, 0.85); + new TGeoTube("tpcorh8", 0, 2.4, 0.6); + // + TGeoTranslation *trans33 = new TGeoTranslation("trans33", 0.0, 0.0, 0.55); + trans33->RegisterYourself(); + // + TGeoCompositeShape *tpcorh9 = new TGeoCompositeShape("tpcorh9", "tpcorh1-tpcorh2-tpcorh3-tpcorh4-tpcorh5-tpcorh6-(tpcorh8:trans33)-tpcorh7"); + // + TGeoVolume *tpcorh9v = new TGeoVolume("TPC_ORH",tpcorh9,m6); //outer rod holder + // + // now 2 holders together + // + TGeoVolumeAssembly *tpcorh = new TGeoVolumeAssembly("TPC_ORH2"); + // + tpcorh->AddNode(tpcorh9v,1,new TGeoTranslation(0.0, 0.0, 1.25)); + tpcorh->AddNode(tpcorh9v,2,new TGeoCombiTrans(0.0, 0.0, -1.25,rot111)); + // + // outer rod plug left + // + TGeoPcon *outplug = new TGeoPcon("outplug", 0.0, 360.0, 14); + + outplug->DefineSection(0, 0.5, 0.0, 2.2); + outplug->DefineSection(1, 0.7, 0.0, 2.2); + + outplug->DefineSection(2, 0.7, 1.55, 2.2); + outplug->DefineSection(3, 0.8, 1.55, 2.2); + + outplug->DefineSection(4, 0.8, 1.55, 1.75); + outplug->DefineSection(5, 1.2, 1.55, 1.75); + + outplug->DefineSection(6, 1.2, 1.55, 2.2); + outplug->DefineSection(7, 1.875, 1.55, 2.2); + + outplug->DefineSection(8, 1.875, 1.55, 2.2); + outplug->DefineSection(9, 2.47, 1.75, 2.2); + + outplug->DefineSection(10, 2.47, 1.75, 2.08); + outplug->DefineSection(11, 2.57, 1.8, 2.08); + + outplug->DefineSection(12, 2.57, 1.92, 2.08); + outplug->DefineSection(13, 2.95, 1.92, 2.08); + // + shift1[0] = 0.0; + shift1[1] = 2.09; + shift1[2] = 1.01; + + new TGeoBBox("cutout", 2.5, 0.11, 1.01, shift1); + // + + TGeoCompositeShape *outplleft = new TGeoCompositeShape("outplleft", "outplug-cutout"); + TGeoVolume *outplleftv = new TGeoVolume("TPC_OPLL", outplleft, m6); + // + // support + holder + plug + // + + + TGeoVolumeAssembly *tpcohpl = new TGeoVolumeAssembly("TPC_OHPL"); + // + tpcohpl->AddNode(outplleftv,1); //plug + tpcohpl->AddNode(outplleftv,2,ref); //plug reflected + tpcohpl->AddNode(tpcorh,1); //rod holder + tpcohpl->AddNode(tpcohs,1,new TGeoTranslation(0.0, 3.925, 0)); // support + // + + // + // main membrane holder + // + pointstrap[0]= 0.0; + pointstrap[1]= 0.0; + pointstrap[2]= 0.0; + pointstrap[3]= 2.8; + pointstrap[4]= 3.1; + pointstrap[5]= 1.96; + pointstrap[6]= 3.1; + pointstrap[7]= 0.0; + pointstrap[8]= 0.0; + pointstrap[9]= 0.0; + pointstrap[10]= 0.0; + pointstrap[11]= 2.8; + pointstrap[12]= 3.1; + pointstrap[13]= 1.96; + pointstrap[14]= 3.1; + pointstrap[15]= 0.0; + // + TGeoArb8 *tpcmmh1 = new TGeoArb8("tpcmmh1", 1.75, pointstrap); + TGeoBBox *tpcmmh2 = new TGeoBBox("tpcmmh2", 0.8, 1.4, 12.5); + // + TGeoVolume *tpcmmh1v = new TGeoVolume("TPC_MMH1", tpcmmh1, m6); + TGeoVolume *tpcmmh2v = new TGeoVolume("TPC_MMH2", tpcmmh2, m6); + // + TGeoVolumeAssembly *tpcmmhs = new TGeoVolumeAssembly("TPC_MMHS"); + tpcmmhs->AddNode(tpcmmh1v,1,new TGeoTranslation(0.8, -1.4, 10.75)); + tpcmmhs->AddNode(tpcmmh1v,2,new TGeoTranslation(0.8, -1.4, -10.75)); + tpcmmhs->AddNode(tpcmmh2v,1); + // + // main membrahe holder clamp + // + shift1[0] = -0.75; + shift1[1] = -1.15; + shift1[2] = 0.0; + // + new TGeoBBox("tpcmmhc1", 1.65, 1.85, 8.9); + new TGeoBBox("tpcmmhc2", 0.9, 0.7, 8.9, shift1); + // + // half spaces - cuts + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = -0.9; + // + n[0] = 8.0; + n[1] = 0.0; + n[2] = 8.0*TMath::Tan(13.*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh1", p, n); + // + p[0] = -1.65; + p[1] = 0.0; + p[2] = 0.9; + // + n[0] = 8.0; + n[1] = 0.0; + n[2] = -8.0*TMath::Tan(13.*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh2", p, n); + // + p[0] = 0.0; + p[1] = 1.85; + p[2] = -2.8; + // + n[0] = 0.0; + n[1] = -6.1; + n[2] = 6.1*TMath::Tan(20.*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh3", p, n); + // + p[0] = 0.0; + p[1] = 1.85; + p[2] = 2.8; + // + n[0] = 0.0; + n[1] = -6.1; + n[2] = -6.1*TMath::Tan(20*TMath::DegToRad()); + // + new TGeoHalfSpace("cutmmh4", p, n); + // + p[0] = 0.75; + p[1] = 0.0; + p[2] = -8.9; + // + n[0] = 2.4*TMath::Tan(30*TMath::DegToRad()); + n[1] = 0.0; + n[2] = 2.4; + // + new TGeoHalfSpace("cutmmh5", p, n); + // + p[0] = 0.75; + p[1] = 0.0; + p[2] = 8.9; + // + n[0] = 2.4*TMath::Tan(30*TMath::DegToRad()); + n[1] = 0.0; + n[2] = -2.4; + // + new TGeoHalfSpace("cutmmh6", p, n); + + TGeoCompositeShape *tpcmmhc = new TGeoCompositeShape("TPC_MMHC", "tpcmmhc1-tpcmmhc2-cutmmh1-cutmmh2-cutmmh3-cutmmh4-cutmmh5-cutmmh6"); + + TGeoVolume *tpcmmhcv = new TGeoVolume("TPC_MMHC",tpcmmhc,m6); + // + TGeoVolume *tpcmmh = new TGeoVolumeAssembly("TPC_MMH"); + // + tpcmmh->AddNode(tpcmmhcv,1,new TGeoTranslation(0.65+1.5, 1.85, 0.0)); + tpcmmh->AddNode(tpcmmhcv,2,new TGeoCombiTrans(-0.65-1.5, 1.85, 0.0,rot111)); + tpcmmh->AddNode(tpcmmhs,1,new TGeoTranslation(1.5, 0.0, 0.0)); + tpcmmh->AddNode(tpcmmhs,2,new TGeoCombiTrans(-1.5, 0.0, 0.0,rot111)); + // + + // + + //-------------------------------------------- + // + // guard ring resistor chain + // + + TGeoTube *gres1 = new TGeoTube(0.,0.375,125.);// inside ifc + // + TGeoVolume *vgres1 = new TGeoVolume("TPC_GRES1",gres1,m14); + + // + Double_t xrc,yrc; + // + xrc=79.3*TMath::Cos(350.*TMath::DegToRad()); + yrc=79.3*TMath::Sin(350.*TMath::DegToRad()); + // + v9->AddNode(vgres1,1,new TGeoTranslation(xrc,yrc,126.9)); + v9->AddNode(vgres1,2,new TGeoTranslation(xrc,yrc,-126.9)); + // + xrc=79.3*TMath::Cos(190.*TMath::DegToRad()); + yrc=79.3*TMath::Sin(190.*TMath::DegToRad()); + // + v9->AddNode(vgres1,3,new TGeoTranslation(xrc,yrc,126.9)); + v9->AddNode(vgres1,4,new TGeoTranslation(xrc,yrc,-126.9)); + //------------------------------------------------------------------ + TGeoRotation refl("refl",90.,0.,90.,90.,180.,0.); + TGeoRotation rotrod("rotrod"); + // + TGeoRotation *rotpos[2]; + // + TGeoRotation *rotrod1[2]; + // + // clamps holding rods + // + TGeoBBox *clampi1 = new TGeoBBox("clampi1",0.2,3.1,0.8); + TGeoVolume *clampi1v = new TGeoVolume("TPC_clampi1v",clampi1,m6); + // + pointstrap[0]=0.49; + pointstrap[1]=0.375; + // + pointstrap[2]=0.49; + pointstrap[3]=-0.375; + // + pointstrap[4]=-0.49; + pointstrap[5]=-0.375; + // + pointstrap[6]=-0.49; + pointstrap[7]=1.225; + // + pointstrap[8]=0.49; + pointstrap[9]=0.375; + // + pointstrap[10]=0.49; + pointstrap[11]=-0.375; + // + pointstrap[12]=-0.49; + pointstrap[13]=-0.375; + // + pointstrap[14]=-0.49; + pointstrap[15]=1.225; + // + TGeoArb8 *clitrap = new TGeoArb8("clitrap",0.25,pointstrap); + TGeoVolume *clitrapv = new TGeoVolume("TPC_clitrapv",clitrap,m6); + // + TGeoRotation *clamprot = new TGeoRotation(); + clamprot->RotateX(180.); + // + new TGeoBBox("clibox",1.125,3.1,.1); + new TGeoTube("clitub",0.,2.2,0.1); + // + // copmisite shape for the clamp holder + // + TGeoTranslation *clitr1 = new TGeoTranslation("clitr1",1.125,0.,0.); + clitr1->RegisterYourself(); + TGeoCompositeShape *clihold = new TGeoCompositeShape("clihold","clibox-clitub:clitr1"); + TGeoVolume *cliholdv = new TGeoVolume("TPC_cliholdv",clihold,m6); + // + // now assembly the whole inner clamp + // + TGeoVolume *iclamp = new TGeoVolumeAssembly("TPC_iclamp"); + // + iclamp->AddNode(clampi1v,1); //main box + iclamp->AddNode(clitrapv,1,new TGeoTranslation(0.69,-2.725,0.35)); //trapezoids + iclamp->AddNode(clitrapv,2,new TGeoTranslation(0.69,-2.725,-0.35)); + iclamp->AddNode(clitrapv,3,new TGeoCombiTrans(0.69,2.725,0.35,clamprot)); + iclamp->AddNode(clitrapv,4,new TGeoCombiTrans(0.69,2.725,-0.35,clamprot)); + iclamp->AddNode(cliholdv,1,new TGeoTranslation(1.325,0.,0.)); //holder + // + // outer clamps + // + TGeoBBox *clampo1 = new TGeoBBox("clampo1",0.25,3.1,1.); + TGeoBBox *clampo2 = new TGeoBBox("clampo2",0.4,0.85,1.); + // + TGeoVolume *clampo1v = new TGeoVolume("TPC_clampo1v",clampo1,m6); + TGeoVolume *clampo2v = new TGeoVolume("TPC_clampo2v",clampo2,m6); + // + TGeoVolumeAssembly *oclamp = new TGeoVolumeAssembly("TPC_oclamp"); + // + oclamp->AddNode(clampo1v,1); + // + oclamp->AddNode(clampo2v,1,new TGeoTranslation(0.65,-2.25,0)); + oclamp->AddNode(clampo2v,2,new TGeoTranslation(0.65,2.25,0)); + + // + pointstrap[0]=0.375; + pointstrap[1]=0.75; + pointstrap[2]=0.375; + pointstrap[3]=-0.35; + pointstrap[5]=-0.375; + pointstrap[4]=-0.35; + pointstrap[6]=-0.375; + pointstrap[7]=0.35; + // + pointstrap[8]=0.375; + pointstrap[9]=0.75; + pointstrap[10]=0.375; + pointstrap[11]=-0.35; + pointstrap[12]=-0.375; + pointstrap[13]=-0.35; + pointstrap[14]=-0.375; + pointstrap[15]=0.35; + // + TGeoArb8 *clotrap = new TGeoArb8("clotrap",0.25,pointstrap); + TGeoVolume *clotrapv = new TGeoVolume("TPC_clotrapv",clotrap,m6); + // + oclamp->AddNode(clotrapv,1,new TGeoTranslation(-0.625,-2.75,0.35)); + oclamp->AddNode(clotrapv,2,new TGeoTranslation(-0.625,-2.75,-0.35)); + oclamp->AddNode(clotrapv,3,new TGeoCombiTrans(-0.625,2.75,0.35,clamprot)); + oclamp->AddNode(clotrapv,4,new TGeoCombiTrans(-0.625,2.75,-0.35,clamprot)); + // + TGeoBBox *clampo3 = new TGeoBBox("clampo3",1.6,0.45,.1); + TGeoVolume *clampo3v = new TGeoVolume("TPC_clampo3v",clampo3,m6); + // + oclamp->AddNode(clampo3v,1,new TGeoTranslation(-1.85,2.625,0.)); + oclamp->AddNode(clampo3v,2,new TGeoTranslation(-1.85,-2.625,0)); + // + TGeoTubeSeg *clampo4 = new TGeoTubeSeg("clampo4",2.2,3.1,0.1,90.,270.); + TGeoVolume *clampo4v = new TGeoVolume("TPC_clampo4v",clampo4,m6); + // + oclamp->AddNode(clampo4v,1,new TGeoTranslation(-3.45,0.,0.)); + + + + //v9 - drift gas + + TGeoRotation rot102("rot102"); + rot102.RotateY(-90.); + + for(Int_t i=0;i<18;i++){ + Double_t angle,x,y; + Double_t z,r; + angle=TMath::DegToRad()*20.*(Double_t)i; + //inner rods + r=81.5; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + z = 126.; + TGeoRotation *rot12 = new TGeoRotation(); + rot12->RotateZ(-90.0+i*20.); + v9->AddNode(tpcihpl,i+1,new TGeoCombiTrans(x, y, 0., rot12)); + // + if(i==11){//resistor rod inner + rotrod.RotateZ(-90.+i*20.); + rotrod1[0]= new TGeoRotation(); + rotpos[0]= new TGeoRotation(); + // + rotrod1[0]->RotateZ(90.+i*20.); + *rotpos[0] = refl*rotrod; //rotation+reflection + v9->AddNode(tpcrrod,1,new TGeoCombiTrans(x,y, z, rotrod1[0])); //A + v9->AddNode(tpcrrod,2,new TGeoCombiTrans(x,y,-z, rotpos[0])); //C + } + else { + v9->AddNode(tpcmrod,i+1,new TGeoTranslation(x,y,z));//shaft + v9->AddNode(tpcmrod,i+19,new TGeoCombiTrans(x,y,-z,ref));//muon + } + // + // inner clamps positioning + // + r=79.05; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + rot12= new TGeoRotation(); + rot12->RotateZ(i*20.); + // + //A-side + v9->AddNode(iclamp,7*i+1,new TGeoCombiTrans(x,y,5.25,rot12)); + v9->AddNode(iclamp,7*i+2,new TGeoCombiTrans(x,y,38.25,rot12)); + v9->AddNode(iclamp,7*i+3,new TGeoCombiTrans(x,y,80.25,rot12)); + v9->AddNode(iclamp,7*i+4,new TGeoCombiTrans(x,y,122.25,rot12)); + v9->AddNode(iclamp,7*i+5,new TGeoCombiTrans(x,y,164.25,rot12)); + v9->AddNode(iclamp,7*i+6,new TGeoCombiTrans(x,y,206.25,rot12)); + v9->AddNode(iclamp,7*i+7,new TGeoCombiTrans(x,y,246.75,rot12)); + //C-side + v9->AddNode(iclamp,7*i+127,new TGeoCombiTrans(x,y,-5.25,rot12)); + v9->AddNode(iclamp,7*i+128,new TGeoCombiTrans(x,y,-38.25,rot12)); + v9->AddNode(iclamp,7*i+129,new TGeoCombiTrans(x,y,-80.25,rot12)); + v9->AddNode(iclamp,7*i+130,new TGeoCombiTrans(x,y,-122.25,rot12)); + v9->AddNode(iclamp,7*i+131,new TGeoCombiTrans(x,y,-164.25,rot12)); + v9->AddNode(iclamp,7*i+132,new TGeoCombiTrans(x,y,-206.25,rot12)); + v9->AddNode(iclamp,7*i+133,new TGeoCombiTrans(x,y,-246.75,rot12)); + // + //-------------------------- + // outer rods + r=254.25; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + z=126.; + // + // outer rod holder + outer left plug + // + + TGeoRotation *rot33 = new TGeoRotation(); + rot33->RotateZ(-90+i*20.); + // + v9->AddNode(tpcohpl,i+1,new TGeoCombiTrans(x, y, 0., rot33)); + // + Double_t xxx = 256.297*TMath::Cos((i*20.+10.)*TMath::DegToRad()); + Double_t yyy = 256.297*TMath::Sin((i*20.+10.)*TMath::DegToRad()); + // + TGeoRotation rot101("rot101"); + rot101.RotateZ(90.+i*20.+10.); + TGeoRotation *rot103 = new TGeoRotation("rot103"); + *rot103 = rot101*rot102; + // + TGeoCombiTrans *trh100 = new TGeoCombiTrans(xxx,yyy,0.,rot103); + // + if(i==2) { + //main membrane holder + v9->AddNode(tpcmmh,1,trh100); + } + else{ + // "normal" membrane holder + v9->AddNode(tpcomh,i+1,trh100); + } + + // + if(i==3){//resistor rod outer + rotrod.RotateZ(90.+i*20.); + rotrod1[1]= new TGeoRotation(); + rotpos[1]= new TGeoRotation(); + rotrod1[1]->RotateZ(90.+i*20.); + *rotpos[1] = refl*rotrod;//rotation+reflection + v9->AddNode(tpcrrod,3,new TGeoCombiTrans(x,y, z, rotrod1[1])); //A + v9->AddNode(tpcrrod,4,new TGeoCombiTrans(x,y, -z, rotpos[1])); //C + } + else { + v9->AddNode(tpcmrod,i+37,new TGeoTranslation(x,y,z));//shaft + v9->AddNode(tpcmrod,i+55,new TGeoCombiTrans(x,y,-z,ref));//muon + } + if(i==15){ + v9->AddNode(hvrv,1,new TGeoTranslation(x,y,z+0.7)); //hv->A-side only + } + // + // outer clamps + // + r=256.9; + x=r * TMath::Cos(angle); + y=r * TMath::Sin(angle); + rot12= new TGeoRotation(); + rot12->RotateZ(i*20.); + // + //A-side + v9->AddNode(oclamp,7*i+1,new TGeoCombiTrans(x,y,5.25,rot12)); + v9->AddNode(oclamp,7*i+2,new TGeoCombiTrans(x,y,38.25,rot12)); + v9->AddNode(oclamp,7*i+3,new TGeoCombiTrans(x,y,80.25,rot12)); + v9->AddNode(oclamp,7*i+4,new TGeoCombiTrans(x,y,122.25,rot12)); + v9->AddNode(oclamp,7*i+5,new TGeoCombiTrans(x,y,164.25,rot12)); + v9->AddNode(oclamp,7*i+6,new TGeoCombiTrans(x,y,206.25,rot12)); + v9->AddNode(oclamp,7*i+7,new TGeoCombiTrans(x,y,246.75,rot12)); + //C-side + v9->AddNode(oclamp,7*i+127,new TGeoCombiTrans(x,y,-5.25,rot12)); + v9->AddNode(oclamp,7*i+128,new TGeoCombiTrans(x,y,-38.25,rot12)); + v9->AddNode(oclamp,7*i+129,new TGeoCombiTrans(x,y,-80.25,rot12)); + v9->AddNode(oclamp,7*i+130,new TGeoCombiTrans(x,y,-122.25,rot12)); + v9->AddNode(oclamp,7*i+131,new TGeoCombiTrans(x,y,-164.25,rot12)); + v9->AddNode(oclamp,7*i+132,new TGeoCombiTrans(x,y,-206.25,rot12)); + v9->AddNode(oclamp,7*i+133,new TGeoCombiTrans(x,y,-246.75,rot12)); + + } //end of rods positioning + + TGeoVolume *alice = gGeoManager->GetVolume("cave"); + alice->AddNode(v1,1); + +} // end of function + +void Detector::LoadGeometryFromFile() +{ + // ===| Read the TPC geometry from file |===================================== + if (fGeoFileName.IsNull()) { + LOG(FATAL) << "TPC geometry file name not set" << FairLogger::endl; + return; + } + + TFile *fGeoFile = TFile::Open(fGeoFileName); + if (!fGeoFile|| !fGeoFile->IsOpen() || fGeoFile->IsZombie()) { + LOG(FATAL) << "Could not open TPC geometry file '" << fGeoFileName << "'"<< FairLogger::endl; + return; + } + + TGeoVolume *tpcVolume = dynamic_cast(fGeoFile->Get("TPC_M")); + if (!tpcVolume) { + LOG(FATAL) << "Could not retrieve TPC geometry from file '" << fGeoFileName << "'"<< FairLogger::endl; + return; + } + + LOG(INFO) << "Loaded TPC geometry from file '" << fGeoFileName << "'"<< FairLogger::endl; + TGeoVolume *alice = gGeoManager->GetVolume("cave"); + alice->AddNode(tpcVolume,1); } +void Detector::DefineSensitiveVolumes() +{ + TGeoManager* geoManager = gGeoManager; + TGeoVolume* v=0x0; + + const Int_t nSensitive=1; + const char* volumeNames[nSensitive]={"TPC_Drift"}; + + // The names of the ITS sensitive volumes have the format: ITSUSensor(0...mNumberLayers-1) + for (Int_t ivol = 0; ivol < nSensitive; ++ivol) { + TString volumeName = volumeNames[ivol]; + v = geoManager->GetVolume(volumeName.Data()); + if (!v) { + LOG(ERROR) << "Could not find volume '" << volumeName << "'" << FairLogger::endl; + continue; + } + + // set volume sentive + AddSensitiveVolume(v); + } +} + + Point* Detector::AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, diff --git a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h index db01b62be0a08..e3830d7790d5a 100644 --- a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h +++ b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h @@ -8,21 +8,4 @@ #pragma link C++ class AliceO2::TPC::Detector+; #pragma link C++ class AliceO2::TPC::Point+; -#pragma link C++ class AliTPCRF1D-; // 1D Response Function (used for Time Response Function) -#pragma link C++ class AliTPCPRF2D-; // 2D Pad Response Function - -#pragma link C++ class AliH2F+; // Additional functionality to 2D Histogram (used in Draw padResponse func) - // --- remove it, check miminal code needed for drawing -#pragma link C++ class AliDetectorParam+; // Base class for AliTPCParam (before also used for TRD) -#pragma link C++ class AliTPCParam+; // Parameterize the Geometry, Diffusion, ResponseFunction, Default HV, ... - // Base class for AliTPCParamSR -#pragma link C++ class AliTPCParamSR-; // SR = Straight Rows - // --- In principle only 1 class of (AliDetectorParam, AliTPCParam, - // AliTPCParamSR) is needed - can be merged, but breaks OCDB -#pragma link C++ class AliTPCROC+; // Geometry for 1 ROC (ReadOutChamber) - hardcoded - // --- (possible) duplication of AliTPCParam - -#pragma link C++ class AliLog+; -#pragma link C++ class AliMathBase+; - #endif diff --git a/macro/run_sim.C b/macro/run_sim.C index cc0f8dd21f11b..f17e0a38a02f7 100644 --- a/macro/run_sim.C +++ b/macro/run_sim.C @@ -34,9 +34,9 @@ void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") timer.Start(); // CDB manager - AliceO2::CDB::Manager *cdbManager = AliceO2::CDB::Manager::Instance(); - cdbManager->setDefaultStorage("local://$ALICEO2/tpc/dirty/o2cdb"); - cdbManager->setRun(0); +// AliceO2::CDB::Manager *cdbManager = AliceO2::CDB::Manager::Instance(); +// cdbManager->setDefaultStorage("local://$ALICEO2/tpc/dirty/o2cdb"); +// cdbManager->setRun(0); // gSystem->Load("libAliceO2Base"); // gSystem->Load("libAliceO2its"); @@ -159,7 +159,8 @@ void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") } // ===| Add TPC |============================================================ - AliceO2::Base::Detector* tpc = new AliceO2::TPC::Detector("TPC", kTRUE); + AliceO2::TPC::Detector* tpc = new AliceO2::TPC::Detector("TPC", kTRUE); + tpc->SetGeoFileName("/data/Work/software/o2/AliceO2/wiechula/Detectors/TPC/simulation/geometry/TPCGeometry.root"); run->AddModule(tpc); // Create PrimaryGenerator From 06420f274b68e5a456f19dcd367226ce8b70563a Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 23 Jun 2016 16:41:36 +0200 Subject: [PATCH 104/135] electronics mapping files --- Detectors/TPC/base/files/DATA-TABLES.txt | 79 + Detectors/TPC/base/files/LENGTH-IROC.txt | 5280 +++++++++++++++++++ Detectors/TPC/base/files/LENGTH-OROC1.txt | 2880 ++++++++++ Detectors/TPC/base/files/LENGTH-OROC2.txt | 3200 +++++++++++ Detectors/TPC/base/files/LENGTH-OROC3.txt | 3200 +++++++++++ Detectors/TPC/base/files/ROUTING-TABLES.txt | 36 + Detectors/TPC/base/files/TABLE-IROC.txt | 5280 +++++++++++++++++++ Detectors/TPC/base/files/TABLE-OROC1.txt | 2880 ++++++++++ Detectors/TPC/base/files/TABLE-OROC2.txt | 3200 +++++++++++ Detectors/TPC/base/files/TABLE-OROC3.txt | 3200 +++++++++++ Detectors/TPC/base/files/eLinks_data.txt | 63 + 11 files changed, 29298 insertions(+) create mode 100644 Detectors/TPC/base/files/DATA-TABLES.txt create mode 100644 Detectors/TPC/base/files/LENGTH-IROC.txt create mode 100644 Detectors/TPC/base/files/LENGTH-OROC1.txt create mode 100644 Detectors/TPC/base/files/LENGTH-OROC2.txt create mode 100644 Detectors/TPC/base/files/LENGTH-OROC3.txt create mode 100644 Detectors/TPC/base/files/ROUTING-TABLES.txt create mode 100644 Detectors/TPC/base/files/TABLE-IROC.txt create mode 100644 Detectors/TPC/base/files/TABLE-OROC1.txt create mode 100644 Detectors/TPC/base/files/TABLE-OROC2.txt create mode 100644 Detectors/TPC/base/files/TABLE-OROC3.txt create mode 100644 Detectors/TPC/base/files/eLinks_data.txt diff --git a/Detectors/TPC/base/files/DATA-TABLES.txt b/Detectors/TPC/base/files/DATA-TABLES.txt new file mode 100644 index 0000000000000..ff2fcb5760077 --- /dev/null +++ b/Detectors/TPC/base/files/DATA-TABLES.txt @@ -0,0 +1,79 @@ +IROC +Col 0 -> INDEX (0 - 5279) +Col 1 -> PADROW (0 - 62) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 132) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (0 - 1) +Col 8 -> Region (0 - 3) +Col 9 -> FEC (0 - 32) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC1 +Col 0 -> INDEX (5280 - 8159)(0 - 2879) +Col 1 -> PADROW (63 - 96)(0 - 33) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 72) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (2) +Col 8 -> Region (4 - 5) +Col 9 -> FEC (33 - 50)(0 - 17) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC2 +Col 0 -> INDEX (8160 - 11359)(0 - 3199) +Col 1 -> PADROW (97 - 126)(0 - 29) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 80) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (3) +Col 8 -> Region (6 - 7) +Col 9 -> FEC (51 - 70)(0 - 19) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC3 +Col 0 -> INDEX (11360 - 14559)(0 - 3199) +Col 1 -> PADROW (127 - 151)(0 - 24) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 80) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (4) +Col 8 -> Region (8 - 9) +Col 9 -> FEC (71 - 90)(0 - 19) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC +Col 0 -> INDEX (0 - 9279) +Col 1 -> PADROW (0 - 88) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 232) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (2 - 4) +Col 8 -> Region (4 - 9) +Col 9 -> FEC (33 - 90) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) \ No newline at end of file diff --git a/Detectors/TPC/base/files/LENGTH-IROC.txt b/Detectors/TPC/base/files/LENGTH-IROC.txt new file mode 100644 index 0000000000000..cc5d7b6cb61b0 --- /dev/null +++ b/Detectors/TPC/base/files/LENGTH-IROC.txt @@ -0,0 +1,5280 @@ +0 0 0 1 5 86.034 2 +1 0 1 1 3 83.84776 2 +2 0 2 1 1 85.63241 2 +3 0 3 1 2 84.86697 2 +4 0 4 1 4 84.74059 2 +5 0 5 5 3 85.24601 2 +6 0 6 5 1 86.91931 4 +7 0 7 5 2 84.52014 2 +8 0 8 5 4 77.2281 4 +9 0 9 9 3 77.47959 2 +10 0 10 9 1 75.49931 2 +11 0 11 9 2 82.25363 2 +12 0 12 9 4 71.70391 2 +13 0 13 13 5 73.15898 2 +14 0 14 13 3 74.62056 2 +15 0 15 13 1 67.37926 2 +16 0 16 13 2 73.44017 2 +17 0 17 13 4 71.75517 2 +18 0 18 17 3 72.85007 2 +19 0 19 17 1 65.72736 2 +20 0 20 17 2 68.20117 2 +21 0 21 17 4 67.58671 2 +22 0 22 21 3 68.94784 2 +23 0 23 21 1 67.33135 2 +24 0 24 21 2 68.41456 2 +25 0 25 21 4 70.28488 2 +26 0 26 25 3 69.61931 2 +27 0 27 25 1 66.06866 2 +28 0 28 25 2 66.44324 2 +29 0 29 25 4 66.35427 2 +30 0 30 25 6 68.16168 2 +31 0 31 29 3 72.41946 2 +32 0 32 29 1 71.40971 2 +33 0 33 29 2 65.54062 2 +34 0 34 29 4 68.00636 2 +35 0 35 33 5 74.45997 2 +36 0 36 33 3 71.36551 2 +37 0 37 33 1 67.89695 2 +38 0 38 33 2 69.5631 2 +39 0 39 33 4 73.2171 2 +40 0 40 37 3 67.48688 2 +41 0 41 37 1 68.56436 2 +42 0 42 37 2 65.20757 2 +43 0 43 37 4 71.17019 2 +44 0 44 41 3 70.12971 2 +45 0 45 41 1 68.92999 2 +46 0 46 41 2 67.94979 2 +47 0 47 41 4 68.59815 2 +48 0 48 45 3 70.30976 2 +49 0 49 45 1 72.34687 2 +50 0 50 45 2 68.96524 2 +51 0 51 45 4 81.77065 2 +52 0 52 45 6 72.5081 2 +53 0 53 49 3 72.75907 2 +54 0 54 49 1 83.65523 2 +55 0 55 49 2 76.31863 2 +56 0 56 49 4 79.87562 2 +57 0 57 53 3 77.98301 2 +58 0 58 53 1 87.31082 4 +59 0 59 53 2 77.87573 2 +60 0 60 53 4 86.99582 4 +61 0 61 57 3 83.04563 2 +62 0 62 57 1 86.40327 4 +63 0 63 57 2 77.94883 2 +64 0 64 57 4 76.16531 2 +65 0 65 57 6 86.53703 2 +66 1 0 1 9 86.03414 2 +67 1 1 1 7 83.22176 2 +68 1 2 1 6 84.09026 2 +69 1 3 1 8 75.69621 2 +70 1 4 5 7 85.45749 4 +71 1 5 5 5 87.72123 4 +72 1 6 5 6 85.85371 2 +73 1 7 5 8 82.02965 2 +74 1 8 5 10 70.29881 2 +75 1 9 9 7 75.93554 2 +76 1 10 9 5 69.0341 2 +77 1 11 9 6 67.43996 2 +78 1 12 9 8 67.25658 2 +79 1 13 13 9 77.59601 2 +80 1 14 13 7 73.07044 2 +81 1 15 13 6 72.8881 2 +82 1 16 13 8 65.75371 2 +83 1 17 13 10 68.22892 2 +84 1 18 17 7 66.64512 2 +85 1 19 17 5 60.62742 2 +86 1 20 17 6 63.30874 2 +87 1 21 17 8 64.90934 2 +88 1 22 21 7 63.93668 2 +89 1 23 21 5 61.7867 2 +90 1 24 21 6 64.134 2 +91 1 25 21 8 65.95495 2 +92 1 26 25 9 65.34504 2 +93 1 27 25 7 63.06864 2 +94 1 28 25 5 58.94961 2 +95 1 29 25 8 63.57834 2 +96 1 30 25 10 65.91091 2 +97 1 31 29 7 68.44889 2 +98 1 32 29 5 65.43384 2 +99 1 33 29 6 60.27239 2 +100 1 34 29 8 64.08261 2 +101 1 35 33 9 65.20577 2 +102 1 36 33 7 64.2332 2 +103 1 37 33 6 58.41569 2 +104 1 38 33 8 60.70675 2 +105 1 39 33 10 63.39753 2 +106 1 40 37 7 63.01612 2 +107 1 41 37 5 63.24205 2 +108 1 42 37 6 60.6668 2 +109 1 43 37 8 66.1381 2 +110 1 44 41 7 64.35854 2 +111 1 45 41 5 63.84229 2 +112 1 46 41 6 67.0907 2 +113 1 47 41 8 71.09752 2 +114 1 48 45 9 65.15382 2 +115 1 49 45 7 66.58167 2 +116 1 50 45 5 76.86446 2 +117 1 51 45 8 66.33084 2 +118 1 52 45 10 74.1022 2 +119 1 53 49 7 66.91112 2 +120 1 54 49 5 73.57963 2 +121 1 55 49 6 69.31385 2 +122 1 56 49 8 70.52392 2 +123 1 57 53 9 77.22038 2 +124 1 58 53 7 85.82497 4 +125 1 59 53 5 86.22986 4 +126 1 60 53 6 77.46556 2 +127 1 61 53 8 85.48002 4 +128 1 62 57 7 80.66665 2 +129 1 63 57 5 89.95366 4 +130 1 64 57 8 83.9332 4 +131 1 65 57 10 88.06786 4 +132 2 0 1 13 83.20797 4 +133 2 1 1 11 72.97554 2 +134 2 2 1 10 81.88057 2 +135 2 3 1 12 78.67112 4 +136 2 4 5 11 80.36158 4 +137 2 5 5 9 78.87221 4 +138 2 6 5 12 82.42345 2 +139 2 7 5 14 77.05949 2 +140 2 8 9 11 77.02146 2 +141 2 9 9 9 69.94445 2 +142 2 10 9 10 76.99602 2 +143 2 11 9 12 64.18974 2 +144 2 12 9 14 71.62334 2 +145 2 13 13 13 62.97397 2 +146 2 14 13 11 60.67719 2 +147 2 15 13 12 63.25793 2 +148 2 16 13 14 65.53433 2 +149 2 17 17 13 62.60569 2 +150 2 18 17 11 61.54033 2 +151 2 19 17 9 55.46785 2 +152 2 20 17 10 57.08004 2 +153 2 21 17 12 61.92742 2 +154 2 22 21 11 62.38099 2 +155 2 23 21 9 58.29915 2 +156 2 24 21 10 58.01373 2 +157 2 25 21 12 58.2323 2 +158 2 26 25 13 59.79404 2 +159 2 27 25 11 59.61022 2 +160 2 28 25 12 59.721 4 +161 2 29 25 14 57.46178 2 +162 2 30 25 16 65.37303 2 +163 2 31 29 11 63.3626 2 +164 2 32 29 9 55.75474 2 +165 2 33 29 10 58.83532 2 +166 2 34 29 12 60.29996 2 +167 2 35 33 15 65.70992 2 +168 2 36 33 13 58.61946 2 +169 2 37 33 11 59.22524 2 +170 2 38 33 12 58.47187 2 +171 2 39 33 14 59.90828 2 +172 2 40 37 11 57.2418 2 +173 2 41 37 9 60.40857 2 +174 2 42 37 10 54.98144 2 +175 2 43 37 12 60.56837 2 +176 2 44 41 11 60.05817 2 +177 2 45 41 9 57.92341 2 +178 2 46 41 10 56.81612 2 +179 2 47 41 12 61.65979 2 +180 2 48 41 14 63.61685 2 +181 2 49 45 13 64.11364 2 +182 2 50 45 11 72.64907 2 +183 2 51 45 12 60.67275 2 +184 2 52 45 14 63.92533 2 +185 2 53 49 13 71.19016 2 +186 2 54 49 11 69.24724 4 +187 2 55 49 9 68.64879 2 +188 2 56 49 10 72.80708 4 +189 2 57 49 12 77.3053 2 +190 2 58 53 13 85.41976 4 +191 2 59 53 11 79.9734 4 +192 2 60 53 10 70.81993 2 +193 2 61 53 12 77.40848 2 +194 2 62 57 11 80.29406 2 +195 2 63 57 9 82.66649 2 +196 2 64 57 12 81.9994 4 +197 2 65 57 14 79.14956 2 +198 3 0 1 17 77.61413 2 +199 3 1 1 15 84.60313 2 +200 3 2 1 14 78.84242 4 +201 3 3 1 16 73.38034 4 +202 3 4 1 18 75.1793 2 +203 3 5 5 15 83.20818 4 +204 3 6 5 13 68.4989 2 +205 3 7 5 16 70.59734 4 +206 3 8 5 18 75.03595 2 +207 3 9 9 17 77.58043 2 +208 3 10 9 15 62.40794 2 +209 3 11 9 13 56.9792 2 +210 3 12 9 16 72.77486 2 +211 3 13 9 18 68.54904 2 +212 3 14 13 17 57.73244 2 +213 3 15 13 15 55.43761 2 +214 3 16 13 16 58.06073 2 +215 3 17 13 18 58.98303 2 +216 3 18 17 17 58.8442 2 +217 3 19 17 15 53.37827 2 +218 3 20 17 14 55.27999 2 +219 3 21 17 16 58.66468 2 +220 3 22 17 18 56.96037 2 +221 3 23 21 15 57.41554 2 +222 3 24 21 13 52.45943 2 +223 3 25 21 14 53.07055 2 +224 3 26 21 16 56.63294 2 +225 3 27 25 19 59.86592 2 +226 3 28 25 17 52.96246 2 +227 3 29 25 15 56.19596 2 +228 3 30 25 18 55.37066 2 +229 3 31 25 20 58.93898 2 +230 3 32 29 15 56.27105 2 +231 3 33 29 13 52.54026 2 +232 3 34 29 14 52.23541 2 +233 3 35 29 16 53.97291 2 +234 3 36 33 19 56.58408 2 +235 3 37 33 17 54.72982 2 +236 3 38 33 16 51.21921 2 +237 3 39 33 18 53.42149 2 +238 3 40 33 20 59.74707 2 +239 3 41 37 15 53.21994 2 +240 3 42 37 13 54.54496 2 +241 3 43 37 14 50.48727 2 +242 3 44 37 16 58.1586 2 +243 3 45 41 17 57.13438 2 +244 3 46 41 15 55.76624 2 +245 3 47 41 13 53.38216 2 +246 3 48 41 16 57.23766 2 +247 3 49 41 18 59.08777 2 +248 3 50 45 17 56.69315 2 +249 3 51 45 15 60.06572 2 +250 3 52 45 16 61.16767 2 +251 3 53 45 18 57.9304 2 +252 3 54 49 17 66.52528 4 +253 3 55 49 15 63.46261 2 +254 3 56 49 14 61.41726 2 +255 3 57 49 16 66.06095 2 +256 3 58 49 18 71.90153 2 +257 3 59 53 17 73.62921 2 +258 3 60 53 15 85.2233 4 +259 3 61 53 14 73.07891 4 +260 3 62 53 16 69.67929 2 +261 3 63 57 17 74.20574 2 +262 3 64 57 15 74.93853 2 +263 3 65 57 13 75.08829 2 +264 3 66 57 16 82.03611 2 +265 3 67 57 18 82.48467 4 +266 4 0 1 21 78.88204 4 +267 4 1 1 19 72.77263 2 +268 4 2 1 20 70.05361 4 +269 4 3 1 22 64.46558 2 +270 4 4 5 21 74.68901 2 +271 4 5 5 19 65.55936 2 +272 4 6 5 17 67.73593 2 +273 4 7 5 20 62.78156 2 +274 4 8 5 22 64.64238 2 +275 4 9 9 21 73.6179 4 +276 4 10 9 19 61.27102 4 +277 4 11 9 20 74.06261 4 +278 4 12 9 22 54.85755 2 +279 4 13 9 24 56.66342 2 +280 4 14 13 21 53.95583 2 +281 4 15 13 19 53.67162 2 +282 4 16 13 20 60.90557 2 +283 4 17 13 22 51.9426 4 +284 4 18 17 23 55.75784 2 +285 4 19 17 21 55.19357 2 +286 4 20 17 19 46.58502 2 +287 4 21 17 20 55.98654 2 +288 4 22 17 22 51.10244 2 +289 4 23 21 19 51.03862 2 +290 4 24 21 17 46.63642 2 +291 4 25 21 18 49.75719 2 +292 4 26 21 20 48.66941 2 +293 4 27 25 23 51.25011 2 +294 4 28 25 21 47.76211 2 +295 4 29 25 22 53.56934 2 +296 4 30 25 24 50.87974 2 +297 4 31 25 26 51.74998 2 +298 4 32 29 19 52.98383 2 +299 4 33 29 17 50.23728 2 +300 4 34 29 18 46.89982 2 +301 4 35 29 20 66.87067 2 +302 4 36 33 25 52.56907 2 +303 4 37 33 23 49.90439 2 +304 4 38 33 21 49.69054 2 +305 4 39 33 22 49.73064 2 +306 4 40 33 24 52.78764 2 +307 4 41 37 19 49.49009 2 +308 4 42 37 17 48.50143 2 +309 4 43 37 18 44.95761 2 +310 4 44 37 20 50.95353 2 +311 4 45 41 21 51.99438 2 +312 4 46 41 19 49.19858 2 +313 4 47 41 20 47.48115 2 +314 4 48 41 22 55.90045 2 +315 4 49 41 24 54.13876 2 +316 4 50 45 21 51.2722 2 +317 4 51 45 19 54.37209 2 +318 4 52 45 20 53.35326 2 +319 4 53 45 22 52.58223 2 +320 4 54 49 23 55.11849 2 +321 4 55 49 21 55.68368 2 +322 4 56 49 19 58.74439 2 +323 4 57 49 20 72.51011 4 +324 4 58 49 22 70.81027 2 +325 4 59 53 21 69.77913 2 +326 4 60 53 19 64.1643 4 +327 4 61 53 18 59.40066 4 +328 4 62 53 20 74.37697 4 +329 4 63 53 22 79.89017 4 +330 4 64 57 21 73.4134 2 +331 4 65 57 19 76.18804 4 +332 4 66 57 20 74.95716 2 +333 4 67 57 22 83.86253 2 +334 5 0 1 25 72.129 2 +335 5 1 1 23 73.73617 2 +336 5 2 1 24 70.49785 2 +337 5 3 1 26 63.29577 2 +338 5 4 5 27 76.85405 4 +339 5 5 5 25 61.54086 2 +340 5 6 5 23 56.70151 2 +341 5 7 5 24 64.04172 2 +342 5 8 5 26 61.55703 2 +343 5 9 9 25 65.26569 4 +344 5 10 9 23 60.28824 4 +345 5 11 9 26 69.20587 4 +346 5 12 9 28 68.4603 4 +347 5 13 13 27 66.33714 2 +348 5 14 13 25 47.14996 2 +349 5 15 13 23 49.13652 2 +350 5 16 13 24 56.64114 2 +351 5 17 13 26 47.66526 2 +352 5 18 17 27 56.71686 2 +353 5 19 17 25 44.52499 2 +354 5 20 17 24 49.5579 2 +355 5 21 17 26 53.89449 2 +356 5 22 21 25 48.44441 2 +357 5 23 21 23 45.31199 2 +358 5 24 21 21 41.10681 2 +359 5 25 21 22 45.44241 2 +360 5 26 21 24 44.3731 2 +361 5 27 25 29 59.95382 2 +362 5 28 25 27 46.62218 2 +363 5 29 25 25 67.80008 2 +364 5 30 25 28 46.20764 2 +365 5 31 25 30 45.48031 2 +366 5 32 29 23 43.9762 2 +367 5 33 29 21 44.55121 2 +368 5 34 29 22 43.8234 2 +369 5 35 29 24 46.68771 2 +370 5 36 33 29 46.69109 2 +371 5 37 33 27 50.91771 2 +372 5 38 33 26 46.56473 2 +373 5 39 33 28 45.11247 2 +374 5 40 33 30 45.29277 2 +375 5 41 37 23 45.78347 2 +376 5 42 37 21 47.22308 2 +377 5 43 37 22 39.94576 2 +378 5 44 37 24 47.3713 2 +379 5 45 37 26 47.09814 2 +380 5 46 41 25 51.25796 2 +381 5 47 41 23 49.75301 2 +382 5 48 41 26 45.01835 2 +383 5 49 41 28 53.09056 2 +384 5 50 45 25 53.55552 2 +385 5 51 45 23 57.42502 2 +386 5 52 45 24 50.06459 2 +387 5 53 45 26 47.42941 2 +388 5 54 45 28 61.59731 2 +389 5 55 49 27 67.62841 4 +390 5 56 49 25 65.53334 2 +391 5 57 49 24 57.16098 2 +392 5 58 49 26 64.26709 4 +393 5 59 53 25 65.43549 4 +394 5 60 53 23 65.06405 2 +395 5 61 53 24 65.54624 2 +396 5 62 53 26 60.48222 2 +397 5 63 53 28 63.59157 2 +398 5 64 57 25 66.31305 4 +399 5 65 57 23 74.53279 2 +400 5 66 57 24 68.06887 2 +401 5 67 57 26 79.04441 4 +402 6 0 1 31 72.26767 2 +403 6 1 1 29 66.57824 2 +404 6 2 1 27 66.01875 2 +405 6 3 1 28 68.28336 2 +406 6 4 1 30 57.90482 2 +407 6 5 5 31 60.61847 2 +408 6 6 5 29 58.97041 2 +409 6 7 5 28 60.20995 4 +410 6 8 5 30 66.41456 2 +411 6 9 5 32 50.4472 2 +412 6 10 9 29 55.44632 2 +413 6 11 9 27 54.10808 2 +414 6 12 9 30 65.5219 4 +415 6 13 9 32 62.13613 2 +416 6 14 13 33 49.48196 2 +417 6 15 13 31 44.58868 2 +418 6 16 13 29 40.42267 2 +419 6 17 13 28 45.44672 2 +420 6 18 13 30 40.85275 2 +421 6 19 17 31 42.8068 2 +422 6 20 17 29 39.37269 2 +423 6 21 17 28 51.93864 2 +424 6 22 17 30 44.99327 2 +425 6 23 21 29 41.66948 2 +426 6 24 21 27 40.48461 2 +427 6 25 21 26 42.27497 2 +428 6 26 21 28 44.77893 2 +429 6 27 21 30 45.2996 2 +430 6 28 25 33 56.38009 2 +431 6 29 25 31 44.12889 2 +432 6 30 25 32 41.27975 2 +433 6 31 25 34 42.69985 2 +434 6 32 25 36 41.92178 2 +435 6 33 29 27 40.29188 2 +436 6 34 29 25 38.94247 2 +437 6 35 29 26 38.07047 2 +438 6 36 29 28 41.24061 2 +439 6 37 33 35 46.23231 2 +440 6 38 33 33 46.37282 2 +441 6 39 33 31 40.77942 2 +442 6 40 33 32 40.11116 2 +443 6 41 33 34 44.7488 2 +444 6 42 37 29 43.34254 2 +445 6 43 37 27 43.21154 2 +446 6 44 37 25 40.25042 2 +447 6 45 37 28 40.50559 2 +448 6 46 37 30 42.34862 2 +449 6 47 41 29 42.45083 2 +450 6 48 41 27 73.18408 2 +451 6 49 41 30 44.67761 2 +452 6 50 41 32 45.76236 2 +453 6 51 45 29 41.54089 2 +454 6 52 45 27 56.25504 2 +455 6 53 45 30 43.44875 2 +456 6 54 45 32 48.31795 2 +457 6 55 45 34 59.67115 2 +458 6 56 49 31 50.74971 2 +459 6 57 49 29 60.71364 4 +460 6 58 49 28 52.30619 2 +461 6 59 49 30 58.39175 4 +462 6 60 53 31 53.5598 2 +463 6 61 53 29 61.3545 2 +464 6 62 53 27 55.54974 2 +465 6 63 53 30 61.9224 2 +466 6 64 53 32 61.86957 2 +467 6 65 57 29 61.91083 2 +468 6 66 57 27 70.40986 2 +469 6 67 57 28 65.5191 2 +470 6 68 57 30 64.35443 2 +471 6 69 57 32 74.75873 2 +472 7 0 1 35 66.90522 2 +473 7 1 1 33 60.63971 2 +474 7 2 1 32 68.63121 2 +475 7 3 1 34 54.26747 4 +476 7 4 1 36 58.94208 2 +477 7 5 5 35 59.52345 2 +478 7 6 5 33 53.87777 2 +479 7 7 5 34 61.76614 2 +480 7 8 5 36 76.24614 4 +481 7 9 9 35 57.39499 2 +482 7 10 9 33 50.46077 2 +483 7 11 9 31 48.98615 2 +484 7 12 9 34 52.90922 2 +485 7 13 9 36 49.98099 2 +486 7 14 13 39 56.5085 4 +487 7 15 13 37 44.28467 2 +488 7 16 13 35 37.94758 2 +489 7 17 13 32 46.606 2 +490 7 18 13 34 38.02037 2 +491 7 19 17 35 45.95165 2 +492 7 20 17 33 35.92034 2 +493 7 21 17 32 40.84232 2 +494 7 22 17 34 39.00573 2 +495 7 23 21 35 47.4344 2 +496 7 24 21 33 37.53121 2 +497 7 25 21 31 36.48932 2 +498 7 26 21 32 35.99691 2 +499 7 27 21 34 33.09458 2 +500 7 28 25 39 43.28999 2 +501 7 29 25 37 42.26388 2 +502 7 30 25 35 34.91854 2 +503 7 31 25 38 37.67415 2 +504 7 32 25 40 39.06967 2 +505 7 33 29 31 48.19499 2 +506 7 34 29 29 33.16714 2 +507 7 35 29 30 30.58288 2 +508 7 36 29 32 36.64276 2 +509 7 37 33 39 42.22568 2 +510 7 38 33 37 40.39168 2 +511 7 39 33 36 35.36906 2 +512 7 40 33 38 40.05961 2 +513 7 41 33 40 39.87325 2 +514 7 42 37 33 34.86334 2 +515 7 43 37 31 33.34559 2 +516 7 44 37 32 33.61026 2 +517 7 45 37 34 34.81233 2 +518 7 46 37 36 44.93469 2 +519 7 47 41 33 34.94334 2 +520 7 48 41 31 37.8257 2 +521 7 49 41 34 33.9205 2 +522 7 50 41 36 42.49128 2 +523 7 51 45 33 35.2032 2 +524 7 52 45 31 40.68614 2 +525 7 53 45 36 39.53925 2 +526 7 54 45 38 44.95286 2 +527 7 55 45 40 47.87979 2 +528 7 56 49 35 46.35046 2 +529 7 57 49 33 50.3152 2 +530 7 58 49 32 53.3612 2 +531 7 59 49 34 51.74059 2 +532 7 60 49 36 58.30088 2 +533 7 61 53 35 53.59114 2 +534 7 62 53 33 61.12764 2 +535 7 63 53 34 52.28897 2 +536 7 64 53 36 62.26567 2 +537 7 65 57 35 61.49411 2 +538 7 66 57 33 63.37993 2 +539 7 67 57 31 67.8847 2 +540 7 68 57 34 64.25013 2 +541 7 69 57 36 70.51575 2 +542 8 0 1 39 56.72514 2 +543 8 1 1 37 48.72331 2 +544 8 2 1 38 56.23196 2 +545 8 3 1 40 56.25996 2 +546 8 4 5 39 58.72826 2 +547 8 5 5 37 52.30302 2 +548 8 6 5 38 71.46715 2 +549 8 7 5 40 50.10506 2 +550 8 8 6 2 70.89294 4 +551 8 9 9 39 56.47082 2 +552 8 10 9 37 43.55737 2 +553 8 11 9 38 55.43275 2 +554 8 12 9 40 42.84191 2 +555 8 13 10 2 66.3111 4 +556 8 14 14 3 68.36689 2 +557 8 15 14 1 65.15283 2 +558 8 16 13 36 49.34908 2 +559 8 17 13 38 33.91935 2 +560 8 18 13 40 37.47738 2 +561 8 19 17 39 44.51914 2 +562 8 20 17 37 31.06779 2 +563 8 21 17 36 38.2233 2 +564 8 22 17 38 35.28487 2 +565 8 23 21 39 45.38816 2 +566 8 24 21 37 34.66406 2 +567 8 25 21 36 37.65707 2 +568 8 26 21 38 36.05343 2 +569 8 27 21 40 37.8248 2 +570 8 28 26 5 72.03525 4 +571 8 29 26 3 63.52015 4 +572 8 30 26 1 62.50511 2 +573 8 31 26 2 61.98882 2 +574 8 32 26 4 58.97064 2 +575 8 33 29 35 35.87918 2 +576 8 34 29 33 32.4367 2 +577 8 35 29 34 36.77096 2 +578 8 36 29 36 34.78371 2 +579 8 37 34 3 63.43679 2 +580 8 38 34 1 68.88314 2 +581 8 39 34 2 56.91281 2 +582 8 40 34 4 64.97829 2 +583 8 41 34 6 65.94506 2 +584 8 42 37 39 31.39499 2 +585 8 43 37 37 42.6506 2 +586 8 44 37 35 34.64594 2 +587 8 45 37 38 34.35087 2 +588 8 46 37 40 48.74642 2 +589 8 47 41 37 33.08593 2 +590 8 48 41 35 38.8376 2 +591 8 49 41 38 30.82248 2 +592 8 50 41 40 52.69675 2 +593 8 51 45 39 39.82245 2 +594 8 52 45 37 33.47069 2 +595 8 53 45 35 46.60764 2 +596 8 54 46 2 69.10312 2 +597 8 55 46 4 70.61226 2 +598 8 56 50 1 68.79727 2 +599 8 57 49 39 41.58034 2 +600 8 58 49 37 58.33103 4 +601 8 59 49 38 42.93993 2 +602 8 60 49 40 55.53365 2 +603 8 61 54 1 75.98923 2 +604 8 62 53 39 49.93222 2 +605 8 63 53 37 65.95134 2 +606 8 64 53 38 53.22789 2 +607 8 65 53 40 61.94646 2 +608 8 66 57 39 48.04506 2 +609 8 67 57 37 57.83493 2 +610 8 68 57 38 51.62755 2 +611 8 69 57 40 55.51595 2 +612 9 0 2 3 75.91596 2 +613 9 1 2 1 70.75652 2 +614 9 2 2 2 80.30862 4 +615 9 3 2 4 70.28187 4 +616 9 4 2 6 69.94864 4 +617 9 5 6 5 82.48135 2 +618 9 6 6 3 73.20459 2 +619 9 7 6 1 60.62144 2 +620 9 8 6 4 62.45457 2 +621 9 9 6 6 62.90894 2 +622 9 10 10 5 68.70317 4 +623 9 11 10 3 63.02052 2 +624 9 12 10 1 58.82242 2 +625 9 13 10 4 58.39806 2 +626 9 14 10 6 54.02605 2 +627 9 15 14 5 62.31827 2 +628 9 16 14 2 65.93447 2 +629 9 17 14 4 59.11299 2 +630 9 18 14 6 55.37629 2 +631 9 19 18 3 59.8363 2 +632 9 20 18 1 57.09896 2 +633 9 21 18 2 52.48797 2 +634 9 22 18 4 58.41165 2 +635 9 23 17 40 28.9222 2 +636 9 24 22 3 53.27375 2 +637 9 25 22 1 49.33091 2 +638 9 26 22 2 52.2271 2 +639 9 27 22 4 55.12898 2 +640 9 28 22 6 54.23783 2 +641 9 29 26 11 58.20786 2 +642 9 30 26 9 54.91685 2 +643 9 31 26 7 55.09533 2 +644 9 32 26 6 52.14927 2 +645 9 33 26 8 55.88137 2 +646 9 34 29 39 28.42941 2 +647 9 35 29 37 21.26262 2 +648 9 36 29 38 24.57105 2 +649 9 37 29 40 25.73872 2 +650 9 38 34 7 53.21036 2 +651 9 39 34 5 53.48404 2 +652 9 40 34 8 59.86568 2 +653 9 41 34 10 53.14135 2 +654 9 42 34 12 55.28732 2 +655 9 43 38 5 57.08217 2 +656 9 44 38 3 54.64779 2 +657 9 45 38 1 56.43684 2 +658 9 46 38 2 52.72907 2 +659 9 47 38 4 54.63512 2 +660 9 48 41 39 27.03707 2 +661 9 49 42 3 57.76087 2 +662 9 50 42 1 52.5484 2 +663 9 51 42 2 54.4845 2 +664 9 52 42 4 62.1047 2 +665 9 53 46 5 58.0246 2 +666 9 54 46 3 58.64034 2 +667 9 55 46 1 55.29173 2 +668 9 56 46 6 66.1776 4 +669 9 57 50 5 70.57194 2 +670 9 58 50 3 61.1708 2 +671 9 59 50 2 62.24234 2 +672 9 60 50 4 60.70343 2 +673 9 61 50 6 71.91826 2 +674 9 62 54 5 68.14369 2 +675 9 63 54 3 66.55175 4 +676 9 64 54 2 66.58385 2 +677 9 65 54 4 73.68723 4 +678 9 66 54 6 84.82601 4 +679 9 67 58 5 68.17461 2 +680 9 68 58 3 71.43873 4 +681 9 69 58 1 70.73694 2 +682 9 70 58 2 73.6025 2 +683 9 71 58 4 76.9949 2 +684 10 0 2 9 74.56346 2 +685 10 1 2 7 73.71175 2 +686 10 2 2 5 61.83036 2 +687 10 3 2 8 63.60863 2 +688 10 4 2 10 67.02603 4 +689 10 5 6 11 75.42187 4 +690 10 6 6 9 62.39413 2 +691 10 7 6 7 52.3195 2 +692 10 8 6 8 65.38033 2 +693 10 9 6 10 58.57843 3 +694 10 10 10 9 63.039 2 +695 10 11 10 7 54.28282 2 +696 10 12 10 8 59.72482 2 +697 10 13 10 10 52.63391 2 +698 10 14 14 11 61.04539 2 +699 10 15 14 9 51.65607 2 +700 10 16 14 7 51.95579 2 +701 10 17 14 8 70.83039 2 +702 10 18 14 10 59.49771 2 +703 10 19 18 9 56.89681 2 +704 10 20 18 7 50.32072 2 +705 10 21 18 5 43.01288 2 +706 10 22 18 6 45.32056 2 +707 10 23 18 8 49.50652 2 +708 10 24 22 9 52.63788 2 +709 10 25 22 7 45.84726 2 +710 10 26 22 5 45.85361 2 +711 10 27 22 8 46.36207 2 +712 10 28 22 10 52.1464 2 +713 10 29 26 15 51.25827 2 +714 10 30 26 13 47.49075 2 +715 10 31 26 10 51.12293 2 +716 10 32 26 12 47.49668 2 +717 10 33 26 14 51.13146 2 +718 10 34 30 3 50.04711 2 +719 10 35 30 1 43.07184 2 +720 10 36 30 2 48.73578 2 +721 10 37 30 4 45.80746 2 +722 10 38 34 13 54.52835 2 +723 10 39 34 11 50.23906 2 +724 10 40 34 9 47.2568 2 +725 10 41 34 14 51.81976 2 +726 10 42 34 16 53.00956 2 +727 10 43 38 9 50.29098 2 +728 10 44 38 7 48.5223 2 +729 10 45 38 6 46.00866 2 +730 10 46 38 8 48.12163 2 +731 10 47 38 10 52.94147 2 +732 10 48 42 7 49.27196 2 +733 10 49 42 5 54.77958 2 +734 10 50 42 6 44.99016 2 +735 10 51 42 8 57.56951 2 +736 10 52 42 10 57.40009 2 +737 10 53 46 9 63.96871 2 +738 10 54 46 7 61.01767 2 +739 10 55 46 8 48.31344 2 +740 10 56 46 10 54.77368 2 +741 10 57 46 12 68.59257 2 +742 10 58 50 9 53.04523 2 +743 10 59 50 7 81.73762 3 +744 10 60 50 8 72.56247 4 +745 10 61 50 10 67.09039 2 +746 10 62 54 9 60.54019 2 +747 10 63 54 7 61.63536 2 +748 10 64 54 8 59.27856 2 +749 10 65 54 10 71.62426 4 +750 10 66 54 12 76.73818 4 +751 10 67 58 9 67.56037 4 +752 10 68 58 7 65.35903 2 +753 10 69 58 6 62.75966 2 +754 10 70 58 8 69.47424 2 +755 10 71 58 10 72.07179 4 +756 11 0 2 13 65.71357 2 +757 11 1 2 11 68.27456 2 +758 11 2 2 12 75.77687 4 +759 11 3 2 14 60.18257 2 +760 11 4 2 16 69.74125 4 +761 11 5 6 15 70.36104 2 +762 11 6 6 13 63.33561 4 +763 11 7 6 12 64.96518 2 +764 11 8 6 14 55.11883 2 +765 11 9 10 13 65.02012 2 +766 11 10 10 11 58.37873 2 +767 11 11 10 12 56.81667 2 +768 11 12 10 14 48.74232 2 +769 11 13 10 16 53.55634 2 +770 11 14 14 15 59.22103 2 +771 11 15 14 13 55.37717 2 +772 11 16 14 12 53.80789 2 +773 11 17 14 14 58.25233 2 +774 11 18 14 16 47.28113 2 +775 11 19 18 13 57.48259 2 +776 11 20 18 11 42.5582 2 +777 11 21 18 10 51.00992 2 +778 11 22 18 12 40.58862 2 +779 11 23 18 14 46.41542 2 +780 11 24 22 13 44.84509 2 +781 11 25 22 11 41.80322 2 +782 11 26 22 12 48.86388 2 +783 11 27 22 14 43.93992 2 +784 11 28 22 16 44.08735 2 +785 11 29 26 19 46.19278 2 +786 11 30 26 17 46.04879 2 +787 11 31 26 16 56.07491 2 +788 11 32 26 18 46.18664 2 +789 11 33 30 9 39.90646 2 +790 11 34 30 7 45.84177 2 +791 11 35 30 5 39.50641 2 +792 11 36 30 6 38.86906 2 +793 11 37 30 8 40.67996 2 +794 11 38 30 10 45.04853 2 +795 11 39 34 17 44.42215 2 +796 11 40 34 15 43.84038 2 +797 11 41 34 18 45.19063 2 +798 11 42 34 20 45.57233 2 +799 11 43 38 15 42.53616 2 +800 11 44 38 13 45.26678 2 +801 11 45 38 11 42.44108 2 +802 11 46 38 12 41.84491 2 +803 11 47 38 14 44.20974 2 +804 11 48 42 13 44.96642 2 +805 11 49 42 11 45.93252 2 +806 11 50 42 9 50.28784 2 +807 11 51 42 12 43.37745 2 +808 11 52 42 14 50.75557 2 +809 11 53 46 15 48.32082 2 +810 11 54 46 13 43.69794 2 +811 11 55 46 11 52.91933 2 +812 11 56 46 14 49.54926 2 +813 11 57 46 16 52.23648 2 +814 11 58 50 15 54.53033 2 +815 11 59 50 13 69.93467 4 +816 11 60 50 11 71.50125 4 +817 11 61 50 12 52.9454 2 +818 11 62 50 14 57.33702 2 +819 11 63 54 13 58.76387 2 +820 11 64 54 11 71.85788 2 +821 11 65 54 14 58.97049 2 +822 11 66 54 16 73.6365 2 +823 11 67 58 15 62.49941 4 +824 11 68 58 13 64.83233 2 +825 11 69 58 11 69.20726 2 +826 11 70 58 12 65.58386 2 +827 11 71 58 14 65.7771 2 +828 12 0 2 19 64.75481 2 +829 12 1 2 17 63.78307 2 +830 12 2 2 15 63.72802 2 +831 12 3 2 18 61.09618 2 +832 12 4 2 20 61.34732 2 +833 12 5 6 19 63.07458 2 +834 12 6 6 17 59.92415 2 +835 12 7 6 16 69.37861 4 +836 12 8 6 18 57.19115 2 +837 12 9 6 20 57.26281 4 +838 12 10 10 19 65.92088 4 +839 12 11 10 17 49.90927 2 +840 12 12 10 15 56.42391 2 +841 12 13 10 18 63.45311 2 +842 12 14 10 20 56.44629 2 +843 12 15 14 21 53.96735 2 +844 12 16 14 19 41.93952 2 +845 12 17 14 17 40.18124 2 +846 12 18 14 18 44.29121 2 +847 12 19 14 20 41.96969 2 +848 12 20 18 19 49.28325 2 +849 12 21 18 17 37.59763 2 +850 12 22 18 15 47.30489 2 +851 12 23 18 16 49.14697 2 +852 12 24 18 18 39.78109 2 +853 12 25 22 19 53.76652 2 +854 12 26 22 17 38.16983 2 +855 12 27 22 15 37.54041 2 +856 12 28 22 18 41.5378 2 +857 12 29 22 20 38.57006 2 +858 12 30 26 23 41.45684 2 +859 12 31 26 21 40.23657 2 +860 12 32 26 20 42.20761 2 +861 12 33 26 22 44.52884 2 +862 12 34 30 15 36.68471 2 +863 12 35 30 13 41.52498 2 +864 12 36 30 11 33.09171 2 +865 12 37 30 12 33.31826 2 +866 12 38 30 14 38.85758 2 +867 12 39 30 16 37.34956 2 +868 12 40 34 21 40.29736 2 +869 12 41 34 19 41.30833 2 +870 12 42 34 22 41.99154 2 +871 12 43 34 24 41.09988 2 +872 12 44 38 19 40.32108 2 +873 12 45 38 17 87.6516 2 +874 12 46 38 16 34.96402 2 +875 12 47 38 18 36.93863 2 +876 12 48 38 20 39.61875 2 +877 12 49 42 17 40.618 2 +878 12 50 42 15 48.31741 2 +879 12 51 42 16 38.17716 2 +880 12 52 42 18 39.48599 2 +881 12 53 42 20 47.17534 2 +882 12 54 46 19 41.08874 2 +883 12 55 46 17 44.2378 2 +884 12 56 46 18 39.24822 2 +885 12 57 46 20 42.59299 2 +886 12 58 46 22 50.61317 2 +887 12 59 50 19 54.72329 2 +888 12 60 50 17 49.37562 2 +889 12 61 50 16 49.01895 2 +890 12 62 50 18 48.20857 2 +891 12 63 50 20 62.04271 2 +892 12 64 54 19 59.46471 2 +893 12 65 54 17 55.67933 2 +894 12 66 54 15 62.99958 2 +895 12 67 54 18 64.68093 2 +896 12 68 54 20 76.31257 2 +897 12 69 58 19 63.73349 2 +898 12 70 58 17 60.73506 2 +899 12 71 58 16 62.58594 2 +900 12 72 58 18 61.40541 2 +901 12 73 58 20 67.20607 2 +902 13 0 2 23 63.27771 2 +903 13 1 2 21 63.39808 2 +904 13 2 2 22 69.3934 2 +905 13 3 2 24 56.95842 2 +906 13 4 2 26 55.43067 2 +907 13 5 6 25 69.5737 4 +908 13 6 6 23 59.772 2 +909 13 7 6 21 48.08637 2 +910 13 8 6 22 49.09238 2 +911 13 9 6 24 49.12183 2 +912 13 10 10 23 56.76906 2 +913 13 11 10 21 55.46736 4 +914 13 12 10 22 48.28228 2 +915 13 13 10 24 45.30683 2 +916 13 14 10 26 44.04686 2 +917 13 15 14 25 49.80464 2 +918 13 16 14 23 40.29594 2 +919 13 17 14 22 49.72262 2 +920 13 18 14 24 40.14114 2 +921 13 19 14 26 38.24086 2 +922 13 20 18 23 45.44777 2 +923 13 21 18 21 32.067 2 +924 13 22 18 20 44.92084 2 +925 13 23 18 22 45.25137 2 +926 13 24 18 24 48.79117 2 +927 13 25 22 23 35.39329 2 +928 13 26 22 21 32.43384 2 +929 13 27 22 22 38.53156 2 +930 13 28 22 24 36.65921 2 +931 13 29 22 26 37.10095 2 +932 13 30 26 27 43.32007 2 +933 13 31 26 25 36.35621 2 +934 13 32 26 24 35.10194 2 +935 13 33 26 26 37.79224 2 +936 13 34 30 21 37.90464 2 +937 13 35 30 19 30.5976 2 +938 13 36 30 17 33.04423 2 +939 13 37 30 18 30.91725 2 +940 13 38 30 20 37.30509 2 +941 13 39 30 22 32.43294 2 +942 13 40 34 25 35.12287 2 +943 13 41 34 23 34.62259 2 +944 13 42 34 26 37.28885 2 +945 13 43 34 28 36.07293 2 +946 13 44 38 25 36.80928 2 +947 13 45 38 23 34.24409 2 +948 13 46 38 21 41.14187 2 +949 13 47 38 22 32.65538 2 +950 13 48 38 24 35.77375 2 +951 13 49 42 23 36.57333 2 +952 13 50 42 21 34.87205 2 +953 13 51 42 19 46.36835 2 +954 13 52 42 22 33.9609 2 +955 13 53 42 24 53.97666 2 +956 13 54 46 25 50.60889 2 +957 13 55 46 23 36.98193 2 +958 13 56 46 21 54.2856 2 +959 13 57 46 24 38.81103 2 +960 13 58 46 26 47.87776 2 +961 13 59 50 25 41.52654 2 +962 13 60 50 23 56.66637 2 +963 13 61 50 21 50.73096 2 +964 13 62 50 22 45.91645 2 +965 13 63 50 24 68.31626 4 +966 13 64 54 23 51.81186 4 +967 13 65 54 21 58.0327 4 +968 13 66 54 22 51.19897 2 +969 13 67 54 24 59.70671 2 +970 13 68 54 26 59.06863 2 +971 13 69 58 25 55.93152 2 +972 13 70 58 23 56.99737 4 +973 13 71 58 21 68.88907 2 +974 13 72 58 22 59.71132 2 +975 13 73 58 24 60.63099 2 +976 14 0 2 29 60.68076 2 +977 14 1 2 27 48.66025 2 +978 14 2 2 25 49.21213 2 +979 14 3 2 28 48.59699 2 +980 14 4 2 30 49.04969 2 +981 14 5 6 29 55.44848 2 +982 14 6 6 27 52.90426 2 +983 14 7 6 26 46.99101 2 +984 14 8 6 28 52.70052 2 +985 14 9 6 30 45.65376 2 +986 14 10 10 29 51.04938 4 +987 14 11 10 27 47.62764 2 +988 14 12 10 25 33.4502 2 +989 14 13 10 28 48.24444 2 +990 14 14 10 30 35.93769 2 +991 14 15 14 31 48.57843 2 +992 14 16 14 29 35.26554 2 +993 14 17 14 27 30.66354 2 +994 14 18 14 28 32.36214 2 +995 14 19 14 30 43.60061 2 +996 14 20 18 29 39.65552 2 +997 14 21 18 27 34.41185 2 +998 14 22 18 25 28.43907 2 +999 14 23 18 26 31.18081 2 +1000 14 24 18 28 38.88782 2 +1001 14 25 22 29 32.53392 2 +1002 14 26 22 27 30.74576 2 +1003 14 27 22 25 28.22121 2 +1004 14 28 22 28 35.42834 2 +1005 14 29 22 30 33.18362 2 +1006 14 30 26 31 38.96467 2 +1007 14 31 26 29 30.80022 2 +1008 14 32 26 28 30.11002 2 +1009 14 33 26 30 33.16303 2 +1010 14 34 30 27 36.44811 2 +1011 14 35 30 25 31.41806 2 +1012 14 36 30 23 31.88113 2 +1013 14 37 30 24 28.32055 2 +1014 14 38 30 26 28.00233 2 +1015 14 39 30 28 35.36561 2 +1016 14 40 34 29 29.77015 2 +1017 14 41 34 27 31.1802 2 +1018 14 42 34 30 31.5099 2 +1019 14 43 34 32 30.64615 2 +1020 14 44 38 29 31.68597 2 +1021 14 45 38 27 32.51555 2 +1022 14 46 38 26 26.2067 2 +1023 14 47 38 28 57.58426 2 +1024 14 48 38 30 36.39979 2 +1025 14 49 42 27 31.36744 2 +1026 14 50 42 25 29.07184 2 +1027 14 51 42 26 26.46659 2 +1028 14 52 42 28 33.23998 2 +1029 14 53 42 30 40.93408 2 +1030 14 54 46 29 45.48899 2 +1031 14 55 46 27 34.87041 2 +1032 14 56 46 28 31.49142 2 +1033 14 57 46 30 35.81202 2 +1034 14 58 46 32 47.8612 4 +1035 14 59 50 29 48.06915 2 +1036 14 60 50 27 48.21622 2 +1037 14 61 50 26 34.05396 2 +1038 14 62 50 28 48.87297 2 +1039 14 63 50 30 48.51312 2 +1040 14 64 54 29 48.12073 4 +1041 14 65 54 27 48.16947 2 +1042 14 66 54 25 60.66236 2 +1043 14 67 54 28 62.24022 2 +1044 14 68 54 30 55.17483 2 +1045 14 69 58 29 46.84991 2 +1046 14 70 58 27 53.77823 2 +1047 14 71 58 26 49.55148 2 +1048 14 72 58 28 49.30523 2 +1049 14 73 58 30 59.3839 2 +1050 15 0 2 33 48.55144 2 +1051 15 1 2 31 43.72469 2 +1052 15 2 2 32 65.16276 2 +1053 15 3 2 34 47.94339 2 +1054 15 4 2 36 47.40195 2 +1055 15 5 6 35 57.16419 2 +1056 15 6 6 33 42.99214 2 +1057 15 7 6 31 44.04953 2 +1058 15 8 6 32 38.65249 2 +1059 15 9 6 34 39.01054 2 +1060 15 10 10 33 46.30959 2 +1061 15 11 10 31 49.63986 4 +1062 15 12 10 32 40.19625 2 +1063 15 13 10 34 35.52073 2 +1064 15 14 10 36 35.02712 2 +1065 15 15 14 35 41.08858 2 +1066 15 16 14 33 40.21054 2 +1067 15 17 14 32 31.18027 2 +1068 15 18 14 34 40.69419 2 +1069 15 19 18 35 45.10734 2 +1070 15 20 18 33 41.27299 2 +1071 15 21 18 31 31.47651 2 +1072 15 22 18 30 33.73879 2 +1073 15 23 18 32 32.18766 2 +1074 15 24 18 34 34.1633 2 +1075 15 25 22 33 28.48527 2 +1076 15 26 22 31 23.90416 2 +1077 15 27 22 32 33.46207 2 +1078 15 28 22 34 32.63876 2 +1079 15 29 22 36 32.39248 2 +1080 15 30 26 35 33.92275 2 +1081 15 31 26 33 25.02936 2 +1082 15 32 26 32 26.72527 2 +1083 15 33 26 34 32.58109 2 +1084 15 34 30 33 25.16649 2 +1085 15 35 30 31 30.55712 2 +1086 15 36 30 29 22.82619 2 +1087 15 37 30 30 30.67322 2 +1088 15 38 30 32 27.17964 2 +1089 15 39 30 34 33.26175 2 +1090 15 40 34 33 24.70335 2 +1091 15 41 34 31 32.14237 2 +1092 15 42 34 34 28.75006 2 +1093 15 43 34 36 27.42073 2 +1094 15 44 38 35 30.1704 2 +1095 15 45 38 33 27.99716 2 +1096 15 46 38 31 29.17204 2 +1097 15 47 38 32 23.83086 2 +1098 15 48 38 34 44.29751 2 +1099 15 49 42 33 27.10784 2 +1100 15 50 42 31 29.86248 2 +1101 15 51 42 29 36.48523 2 +1102 15 52 42 32 27.95792 2 +1103 15 53 42 34 35.07321 2 +1104 15 54 42 36 45.02485 2 +1105 15 55 46 33 40.42925 2 +1106 15 56 46 31 30.03955 2 +1107 15 57 46 34 29.8166 2 +1108 15 58 46 36 36.86073 2 +1109 15 59 50 35 35.77286 2 +1110 15 60 50 33 33.10934 2 +1111 15 61 50 31 38.49717 2 +1112 15 62 50 32 39.59164 2 +1113 15 63 50 34 39.44169 2 +1114 15 64 54 33 42.57419 2 +1115 15 65 54 31 38.1301 2 +1116 15 66 54 32 40.76953 2 +1117 15 67 54 34 43.5249 2 +1118 15 68 54 36 55.42301 2 +1119 15 69 58 35 46.77684 2 +1120 15 70 58 33 40.93461 2 +1121 15 71 58 31 60.64511 2 +1122 15 72 58 32 42.95725 2 +1123 15 73 58 34 47.48243 2 +1124 16 0 2 39 55.11083 2 +1125 16 1 2 37 45.97497 2 +1126 16 2 2 35 39.17223 2 +1127 16 3 2 38 40.62433 2 +1128 16 4 2 40 38.26669 2 +1129 16 5 6 39 56.68238 4 +1130 16 6 6 37 44.66444 2 +1131 16 7 6 36 39.47014 2 +1132 16 8 6 38 49.66794 2 +1133 16 9 6 40 34.03983 2 +1134 16 10 10 39 42.21526 2 +1135 16 11 10 37 33.2958 2 +1136 16 12 10 35 33.77792 2 +1137 16 13 10 38 42.12262 2 +1138 16 14 10 40 25.91794 2 +1139 16 15 14 39 43.56142 2 +1140 16 16 14 37 28.48802 2 +1141 16 17 14 36 29.63293 2 +1142 16 18 14 38 25.86076 2 +1143 16 19 14 40 24.97904 2 +1144 16 20 18 39 32.83974 2 +1145 16 21 18 37 28.20673 2 +1146 16 22 18 36 27.9433 2 +1147 16 23 18 38 35.04676 2 +1148 16 24 18 40 25.81941 2 +1149 16 25 22 39 30.54049 2 +1150 16 26 22 37 26.84064 2 +1151 16 27 22 35 20.7812 2 +1152 16 28 22 38 23.02572 2 +1153 16 29 22 40 22.8687 2 +1154 16 30 26 39 23.06543 2 +1155 16 31 26 37 21.45305 2 +1156 16 32 26 36 38.95076 2 +1157 16 33 26 38 20.6338 2 +1158 16 34 26 40 22.17766 2 +1159 16 35 30 39 22.99253 2 +1160 16 36 30 37 20.54157 2 +1161 16 37 30 35 21.07283 2 +1162 16 38 30 36 19.33072 2 +1163 16 39 30 38 27.63864 2 +1164 16 40 30 40 20.82425 2 +1165 16 41 34 39 21.66597 2 +1166 16 42 34 37 22.6513 2 +1167 16 43 34 35 29.3731 2 +1168 16 44 34 38 21.15776 2 +1169 16 45 34 40 22.89715 2 +1170 16 46 38 39 21.32192 2 +1171 16 47 38 37 30.0489 2 +1172 16 48 38 36 18.2374 2 +1173 16 49 38 38 42.47967 2 +1174 16 50 38 40 27.12186 2 +1175 16 51 42 39 27.32377 2 +1176 16 52 42 37 29.2208 2 +1177 16 53 42 35 32.2063 2 +1178 16 54 42 38 29.6473 4 +1179 16 55 42 40 34.45237 2 +1180 16 56 46 39 29.8681 2 +1181 16 57 46 37 36.06697 2 +1182 16 58 46 35 27.30732 2 +1183 16 59 46 38 29.34024 2 +1184 16 60 46 40 38.0767 2 +1185 16 61 50 39 28.3456 2 +1186 16 62 50 37 43.84434 2 +1187 16 63 50 36 33.96473 2 +1188 16 64 50 38 31.5726 2 +1189 16 65 50 40 39.87069 2 +1190 16 66 54 39 38.46899 2 +1191 16 67 54 37 49.06513 2 +1192 16 68 54 35 39.16746 2 +1193 16 69 54 38 40.24883 2 +1194 16 70 54 40 51.03185 2 +1195 16 71 58 39 38.31865 2 +1196 16 72 58 37 40.30903 2 +1197 16 73 58 36 40.84519 2 +1198 16 74 58 38 46.71311 2 +1199 16 75 58 40 59.91286 4 +1200 17 0 3 3 69.75635 2 +1201 17 1 3 1 78.11688 2 +1202 17 2 3 2 60.4864 2 +1203 17 3 3 4 70.33383 4 +1204 17 4 3 6 61.10591 4 +1205 17 5 7 5 70.05049 4 +1206 17 6 7 3 66.75896 4 +1207 17 7 7 1 56.07491 2 +1208 17 8 7 2 64.59896 2 +1209 17 9 7 4 52.0253 2 +1210 17 10 11 5 64.04001 2 +1211 17 11 11 3 53.22739 2 +1212 17 12 11 1 52.05377 2 +1213 17 13 11 2 50.68429 2 +1214 17 14 11 4 50.47161 2 +1215 17 15 15 5 59.51371 2 +1216 17 16 15 3 54.77456 2 +1217 17 17 15 1 46.75101 2 +1218 17 18 15 2 46.56856 2 +1219 17 19 15 4 45.37733 2 +1220 17 20 19 3 59.7938 2 +1221 17 21 19 1 49.04878 2 +1222 17 22 19 2 49.38859 2 +1223 17 23 19 4 46.94935 2 +1224 17 24 19 6 47.67274 2 +1225 17 25 23 3 51.24752 2 +1226 17 26 23 1 41.54447 2 +1227 17 27 23 2 45.7634 2 +1228 17 28 23 4 44.4614 2 +1229 17 29 23 6 49.27645 2 +1230 17 30 27 5 54.83303 2 +1231 17 31 27 3 42.00973 2 +1232 17 32 27 1 42.84911 2 +1233 17 33 27 2 42.86979 2 +1234 17 34 27 4 45.40848 2 +1235 17 35 27 6 44.13761 2 +1236 17 36 31 3 45.30124 2 +1237 17 37 31 1 41.58354 2 +1238 17 38 31 2 43.75829 2 +1239 17 39 31 4 42.59146 2 +1240 17 40 35 5 51.15559 2 +1241 17 41 35 3 44.90044 2 +1242 17 42 35 1 39.81162 2 +1243 17 43 35 2 42.542 2 +1244 17 44 35 4 44.67124 2 +1245 17 45 35 6 50.82255 2 +1246 17 46 39 5 44.69062 2 +1247 17 47 39 3 42.2405 2 +1248 17 48 39 1 46.76965 2 +1249 17 49 39 2 44.24513 2 +1250 17 50 39 4 48.82014 2 +1251 17 51 43 5 46.57538 2 +1252 17 52 43 3 52.34987 2 +1253 17 53 43 1 56.30238 2 +1254 17 54 43 2 47.92391 2 +1255 17 55 43 4 50.53535 2 +1256 17 56 47 3 45.42038 2 +1257 17 57 47 1 47.2865 2 +1258 17 58 47 2 46.42976 2 +1259 17 59 47 4 54.27297 2 +1260 17 60 47 6 54.74767 2 +1261 17 61 51 3 50.01873 2 +1262 17 62 51 1 49.50313 2 +1263 17 63 51 2 53.23087 2 +1264 17 64 51 4 53.23728 2 +1265 17 65 51 6 67.55172 2 +1266 17 66 55 3 53.67534 2 +1267 17 67 55 1 54.43224 2 +1268 17 68 55 2 59.03769 2 +1269 17 69 55 4 63.19332 2 +1270 17 70 55 6 72.40277 4 +1271 17 71 59 5 60.37578 2 +1272 17 72 59 3 70.09105 2 +1273 17 73 59 1 61.67256 2 +1274 17 74 59 2 63.91364 2 +1275 17 75 59 4 73.43395 2 +1276 18 0 3 9 63.63919 2 +1277 18 1 3 7 64.98625 2 +1278 18 2 3 5 53.80822 2 +1279 18 3 3 8 59.14567 2 +1280 18 4 3 10 55.31711 2 +1281 18 5 7 9 68.703 4 +1282 18 6 7 7 58.86599 2 +1283 18 7 7 6 61.16798 2 +1284 18 8 7 8 53.35755 2 +1285 18 9 7 10 56.26582 2 +1286 18 10 11 9 52.12853 2 +1287 18 11 11 7 51.27342 2 +1288 18 12 11 6 54.98331 4 +1289 18 13 11 8 53.9486 2 +1290 18 14 11 10 50.00594 4 +1291 18 15 15 9 51.33838 2 +1292 18 16 15 7 41.69037 2 +1293 18 17 15 6 45.33914 2 +1294 18 18 15 8 51.6273 2 +1295 18 19 15 10 41.64086 2 +1296 18 20 19 9 42.42203 2 +1297 18 21 19 7 41.76221 2 +1298 18 22 19 5 36.52834 2 +1299 18 23 19 8 39.58715 2 +1300 18 24 19 10 44.96605 2 +1301 18 25 23 9 47.78044 2 +1302 18 26 23 7 40.95765 2 +1303 18 27 23 5 36.0483 2 +1304 18 28 23 8 42.12581 2 +1305 18 29 23 10 47.87159 2 +1306 18 30 27 11 44.86292 2 +1307 18 31 27 9 38.38043 2 +1308 18 32 27 7 35.64034 2 +1309 18 33 27 8 37.86207 2 +1310 18 34 27 10 43.97335 2 +1311 18 35 27 12 43.27959 2 +1312 18 36 31 7 42.61397 2 +1313 18 37 31 5 34.43194 2 +1314 18 38 31 6 34.87492 2 +1315 18 39 31 8 42.53886 2 +1316 18 40 35 11 43.49409 2 +1317 18 41 35 9 39.87814 2 +1318 18 42 35 7 37.30156 2 +1319 18 43 35 8 38.6592 2 +1320 18 44 35 10 38.67087 2 +1321 18 45 35 12 51.17243 2 +1322 18 46 39 9 45.37107 2 +1323 18 47 39 7 50.39784 2 +1324 18 48 39 6 33.70186 2 +1325 18 49 39 8 37.72955 2 +1326 18 50 39 10 46.50348 2 +1327 18 51 43 9 44.47878 2 +1328 18 52 43 7 40.84975 2 +1329 18 53 43 6 35.31138 2 +1330 18 54 43 8 39.93721 2 +1331 18 55 43 10 43.81371 2 +1332 18 56 47 9 43.85309 2 +1333 18 57 47 7 47.70544 2 +1334 18 58 47 5 52.22799 2 +1335 18 59 47 8 46.3461 2 +1336 18 60 47 10 52.88355 2 +1337 18 61 51 9 40.93256 2 +1338 18 62 51 7 50.37035 2 +1339 18 63 51 5 46.92506 2 +1340 18 64 51 8 51.25147 2 +1341 18 65 51 10 59.88077 2 +1342 18 66 55 9 60.0462 4 +1343 18 67 55 7 59.85699 4 +1344 18 68 55 5 61.28544 4 +1345 18 69 55 8 53.02782 2 +1346 18 70 55 10 66.84094 4 +1347 18 71 59 9 57.43136 4 +1348 18 72 59 7 59.11631 2 +1349 18 73 59 6 54.63601 2 +1350 18 74 59 8 64.35932 2 +1351 18 75 59 10 62.9454 2 +1352 19 0 3 13 57.81642 2 +1353 19 1 3 11 55.1 2 +1354 19 2 3 12 59.72389 2 +1355 19 3 3 14 49.3956 2 +1356 19 4 3 16 52.597 2 +1357 19 5 7 13 57.11096 2 +1358 19 6 7 11 51.83644 2 +1359 19 7 7 12 53.37616 2 +1360 19 8 7 14 55.41768 2 +1361 19 9 7 16 45.90174 4 +1362 19 10 11 15 50.0333 2 +1363 19 11 11 13 44.70114 2 +1364 19 12 11 11 45.44829 2 +1365 19 13 11 12 45.04556 2 +1366 19 14 11 14 49.45225 4 +1367 19 15 15 15 45.55433 2 +1368 19 16 15 13 40.08751 2 +1369 19 17 15 11 39.59356 2 +1370 19 18 15 12 40.29306 2 +1371 19 19 15 14 33.92256 2 +1372 19 20 19 13 37.27072 2 +1373 19 21 19 11 36.02201 2 +1374 19 22 19 12 36.06972 2 +1375 19 23 19 14 36.07746 2 +1376 19 24 19 16 39.09419 2 +1377 19 25 23 13 37.70284 2 +1378 19 26 23 11 34.39537 2 +1379 19 27 23 12 35.33397 2 +1380 19 28 23 14 38.60715 2 +1381 19 29 23 16 38.91064 2 +1382 19 30 27 17 44.79955 2 +1383 19 31 27 15 36.06634 2 +1384 19 32 27 13 34.40741 2 +1385 19 33 27 14 36.20647 2 +1386 19 34 27 16 40.74516 2 +1387 19 35 27 18 36.19124 2 +1388 19 36 31 11 35.4579 2 +1389 19 37 31 9 34.06148 2 +1390 19 38 31 10 31.86727 2 +1391 19 39 31 12 37.48942 2 +1392 19 40 35 17 37.78392 2 +1393 19 41 35 15 35.51187 2 +1394 19 42 35 13 34.01414 2 +1395 19 43 35 14 33.09844 2 +1396 19 44 35 16 35.96736 2 +1397 19 45 35 18 44.38336 2 +1398 19 46 39 15 38.84191 2 +1399 19 47 39 13 35.44784 2 +1400 19 48 39 11 36.46569 2 +1401 19 49 39 12 33.75178 2 +1402 19 50 39 14 38.4073 2 +1403 19 51 43 15 40.04581 2 +1404 19 52 43 13 38.13181 2 +1405 19 53 43 11 35.5372 2 +1406 19 54 43 12 35.79929 2 +1407 19 55 43 14 38.56227 2 +1408 19 56 47 13 42.11973 2 +1409 19 57 47 11 43.19888 2 +1410 19 58 47 12 47.1113 2 +1411 19 59 47 14 40.11567 2 +1412 19 60 47 16 59.16567 2 +1413 19 61 51 13 36.76186 2 +1414 19 62 51 11 48.60475 2 +1415 19 63 51 12 42.61934 2 +1416 19 64 51 14 47.63377 4 +1417 19 65 51 16 53.71516 4 +1418 19 66 55 15 42.99406 2 +1419 19 67 55 13 56.99424 4 +1420 19 68 55 11 53.68341 2 +1421 19 69 55 12 48.87312 2 +1422 19 70 55 14 61.82174 2 +1423 19 71 59 15 52.06813 2 +1424 19 72 59 13 51.1929 2 +1425 19 73 59 11 60.95552 2 +1426 19 74 59 12 55.49138 2 +1427 19 75 59 14 56.51714 2 +1428 20 0 3 19 59.99152 2 +1429 20 1 3 17 51.68124 2 +1430 20 2 3 15 54.20323 2 +1431 20 3 3 18 56.23887 2 +1432 20 4 3 20 52.76245 2 +1433 20 5 7 19 53.60846 2 +1434 20 6 7 17 52.62024 2 +1435 20 7 7 15 44.8175 2 +1436 20 8 7 18 56.0588 2 +1437 20 9 7 20 46.46808 2 +1438 20 10 7 22 47.65786 2 +1439 20 11 11 19 58.48087 4 +1440 20 12 11 17 47.51574 2 +1441 20 13 11 16 40.33556 2 +1442 20 14 11 18 42.50637 2 +1443 20 15 11 20 41.29795 2 +1444 20 16 15 19 39.25114 2 +1445 20 17 15 17 40.52494 2 +1446 20 18 15 16 45.24591 2 +1447 20 19 15 18 32.49406 2 +1448 20 20 15 20 38.45397 2 +1449 20 21 19 19 34.94919 2 +1450 20 22 19 17 29.37568 2 +1451 20 23 19 15 30.61152 2 +1452 20 24 19 18 39.36539 2 +1453 20 25 19 20 30.26522 2 +1454 20 26 23 19 39.88869 2 +1455 20 27 23 17 31.2714 2 +1456 20 28 23 15 27.74651 2 +1457 20 29 23 18 38.07803 2 +1458 20 30 23 20 32.74336 2 +1459 20 31 27 23 48.61821 2 +1460 20 32 27 21 30.33378 2 +1461 20 33 27 19 29.02129 2 +1462 20 34 27 20 32.43792 2 +1463 20 35 27 22 31.16616 2 +1464 20 36 27 24 32.79062 2 +1465 20 37 31 15 59.93639 2 +1466 20 38 31 13 23.89173 2 +1467 20 39 31 14 31.99927 2 +1468 20 40 31 16 28.84796 2 +1469 20 41 35 23 33.08682 2 +1470 20 42 35 21 32.00898 2 +1471 20 43 35 19 31.87037 2 +1472 20 44 35 20 30.06942 2 +1473 20 45 35 22 29.95869 2 +1474 20 46 35 24 36.29855 2 +1475 20 47 39 19 65.91081 2 +1476 20 48 39 17 31.68026 2 +1477 20 49 39 16 30.94123 2 +1478 20 50 39 18 30.79306 2 +1479 20 51 39 20 38.59322 2 +1480 20 52 43 19 32.94684 2 +1481 20 53 43 17 31.87351 2 +1482 20 54 43 16 28.51291 2 +1483 20 55 43 18 30.3323 2 +1484 20 56 43 20 36.26713 2 +1485 20 57 47 19 33.12553 2 +1486 20 58 47 17 31.93426 2 +1487 20 59 47 15 43.15569 2 +1488 20 60 47 18 38.30992 2 +1489 20 61 47 20 43.69333 2 +1490 20 62 51 19 38.73166 2 +1491 20 63 51 17 37.43873 2 +1492 20 64 51 15 43.11426 2 +1493 20 65 51 18 39.02739 2 +1494 20 66 51 20 41.87002 2 +1495 20 67 55 21 42.45119 2 +1496 20 68 55 19 49.57749 2 +1497 20 69 55 17 53.71973 2 +1498 20 70 55 16 43.50056 2 +1499 20 71 55 18 51.02808 2 +1500 20 72 55 20 54.11141 2 +1501 20 73 59 19 52.833 2 +1502 20 74 59 17 56.0856 2 +1503 20 75 59 16 50.07323 2 +1504 20 76 59 18 51.52842 2 +1505 20 77 59 20 60.48577 2 +1506 21 0 3 25 50.93595 2 +1507 21 1 3 23 54.99516 2 +1508 21 2 3 21 41.8969 2 +1509 21 3 3 22 45.84635 2 +1510 21 4 3 24 45.69342 2 +1511 21 5 7 25 48.10387 2 +1512 21 6 7 23 45.9142 2 +1513 21 7 7 21 45.11292 2 +1514 21 8 7 24 48.36214 2 +1515 21 9 7 26 44.05977 2 +1516 21 10 11 25 51.14836 4 +1517 21 11 11 23 40.86469 2 +1518 21 12 11 21 40.25964 2 +1519 21 13 11 22 42.84819 4 +1520 21 14 11 24 37.66979 2 +1521 21 15 11 26 33.95934 2 +1522 21 16 15 25 39.64869 2 +1523 21 17 15 23 32.77389 2 +1524 21 18 15 21 28.28646 2 +1525 21 19 15 22 26.86613 2 +1526 21 20 15 24 28.46944 2 +1527 21 21 19 23 29.89091 2 +1528 21 22 19 21 27.9296 2 +1529 21 23 19 22 33.20736 2 +1530 21 24 19 24 26.5171 2 +1531 21 25 19 26 27.39199 2 +1532 21 26 23 23 34.08351 2 +1533 21 27 23 21 25.19528 2 +1534 21 28 23 22 30.30223 2 +1535 21 29 23 24 25.55647 2 +1536 21 30 23 26 26.83836 2 +1537 21 31 27 29 41.5829 2 +1538 21 32 27 27 30.24023 2 +1539 21 33 27 25 24.15114 2 +1540 21 34 27 26 28.31852 2 +1541 21 35 27 28 25.38145 2 +1542 21 36 27 30 47.18915 2 +1543 21 37 31 19 32.81924 2 +1544 21 38 31 17 20.23265 2 +1545 21 39 31 18 36.22477 2 +1546 21 40 31 20 23.87826 2 +1547 21 41 35 29 29.46118 2 +1548 21 42 35 27 26.99981 2 +1549 21 43 35 25 28.61932 2 +1550 21 44 35 26 27.579 2 +1551 21 45 35 28 29.20579 2 +1552 21 46 35 30 33.5238 2 +1553 21 47 39 25 29.38058 2 +1554 21 48 39 23 36.31763 2 +1555 21 49 39 21 29.68579 2 +1556 21 50 39 22 25.4025 2 +1557 21 51 39 24 47.91524 2 +1558 21 52 43 25 28.30908 2 +1559 21 53 43 23 30.55148 2 +1560 21 54 43 21 32.79121 2 +1561 21 55 43 22 32.33957 2 +1562 21 56 43 24 29.46465 2 +1563 21 57 47 23 29.85115 2 +1564 21 58 47 21 25.98557 2 +1565 21 59 47 22 29.75111 2 +1566 21 60 47 24 29.2957 2 +1567 21 61 47 26 35.9026 2 +1568 21 62 51 25 29.69484 2 +1569 21 63 51 23 39.0118 2 +1570 21 64 51 21 35.31119 2 +1571 21 65 51 22 37.21661 2 +1572 21 66 51 24 40.72398 2 +1573 21 67 51 26 44.97802 2 +1574 21 68 55 25 43.73366 2 +1575 21 69 55 23 45.39421 2 +1576 21 70 55 22 48.78583 2 +1577 21 71 55 24 44.57782 2 +1578 21 72 55 26 48.20587 2 +1579 21 73 59 23 49.53701 2 +1580 21 74 59 21 43.16331 2 +1581 21 75 59 22 42.39009 2 +1582 21 76 59 24 59.84021 2 +1583 21 77 59 26 50.37789 2 +1584 22 0 3 29 55.3149 2 +1585 22 1 3 27 40.47946 2 +1586 22 2 3 26 41.94526 2 +1587 22 3 3 28 39.69607 2 +1588 22 4 3 30 41.26273 2 +1589 22 5 7 29 47.0226 2 +1590 22 6 7 27 41.29464 2 +1591 22 7 7 28 62.49725 2 +1592 22 8 7 30 40.57435 2 +1593 22 9 7 32 34.59016 2 +1594 22 10 11 31 39.9617 2 +1595 22 11 11 29 43.95507 2 +1596 22 12 11 27 30.73579 2 +1597 22 13 11 28 35.47118 2 +1598 22 14 11 30 42.19948 2 +1599 22 15 15 31 43.97857 4 +1600 22 16 15 29 29.91504 2 +1601 22 17 15 27 29.63623 2 +1602 22 18 15 26 26.34958 2 +1603 22 19 15 28 30.911 2 +1604 22 20 15 30 23.74534 2 +1605 22 21 19 29 32.29098 2 +1606 22 22 19 27 26.77753 2 +1607 22 23 19 25 18.07783 2 +1608 22 24 19 28 22.44115 2 +1609 22 25 19 30 22.39116 2 +1610 22 26 23 29 30.73325 2 +1611 22 27 23 27 24.66345 2 +1612 22 28 23 25 19.75797 2 +1613 22 29 23 28 51.1308 2 +1614 22 30 23 30 19.26261 2 +1615 22 31 27 35 32.4054 2 +1616 22 32 27 33 25.37955 2 +1617 22 33 27 31 32.48642 2 +1618 22 34 27 32 25.58262 2 +1619 22 35 27 34 34.18034 2 +1620 22 36 31 25 26.34531 2 +1621 22 37 31 23 21.91383 2 +1622 22 38 31 21 13.59156 2 +1623 22 39 31 22 15.04179 2 +1624 22 40 31 24 17.51989 2 +1625 22 41 31 26 23.83635 2 +1626 22 42 35 33 31.87588 2 +1627 22 43 35 31 21.12189 2 +1628 22 44 35 32 23.05621 2 +1629 22 45 35 34 29.96743 2 +1630 22 46 35 36 32.22886 2 +1631 22 47 39 29 22.05745 2 +1632 22 48 39 27 30.96065 2 +1633 22 49 39 26 18.80443 2 +1634 22 50 39 28 33.00776 2 +1635 22 51 39 30 38.15712 2 +1636 22 52 43 29 22.22789 2 +1637 22 53 43 27 22.59572 2 +1638 22 54 43 26 19.47919 2 +1639 22 55 43 28 26.82345 2 +1640 22 56 43 30 34.41462 2 +1641 22 57 47 29 26.16997 2 +1642 22 58 47 27 31.0032 2 +1643 22 59 47 25 45.68586 2 +1644 22 60 47 28 28.74907 2 +1645 22 61 47 30 31.91472 2 +1646 22 62 47 32 39.83871 2 +1647 22 63 51 29 31.19411 2 +1648 22 64 51 27 40.03531 2 +1649 22 65 51 28 28.54143 2 +1650 22 66 51 30 35.11513 2 +1651 22 67 51 32 40.96223 4 +1652 22 68 55 31 32.46002 2 +1653 22 69 55 29 53.41737 2 +1654 22 70 55 27 46.20777 2 +1655 22 71 55 28 52.34626 2 +1656 22 72 55 30 48.66829 2 +1657 22 73 59 29 41.25186 2 +1658 22 74 59 27 39.24194 2 +1659 22 75 59 25 40.73029 2 +1660 22 76 59 28 40.7566 2 +1661 22 77 59 30 53.5506 4 +1662 23 0 3 35 50.258 2 +1663 23 1 3 33 42.36094 2 +1664 23 2 3 31 34.8002 2 +1665 23 3 3 32 53.02367 2 +1666 23 4 3 34 33.28747 2 +1667 23 5 3 36 35.18385 2 +1668 23 6 7 35 42.83291 2 +1669 23 7 7 33 35.96133 2 +1670 23 8 7 31 31.91849 2 +1671 23 9 7 34 43.38919 2 +1672 23 10 7 36 28.86318 2 +1673 23 11 11 35 38.95541 4 +1674 23 12 11 33 32.81353 2 +1675 23 13 11 32 35.56681 4 +1676 23 14 11 34 30.68456 2 +1677 23 15 11 36 30.04838 2 +1678 23 16 15 37 40.02962 2 +1679 23 17 15 35 33.73285 2 +1680 23 18 15 33 34.13649 2 +1681 23 19 15 32 21.5365 2 +1682 23 20 15 34 21.3081 2 +1683 23 21 15 36 25.54383 2 +1684 23 22 19 33 25.17456 2 +1685 23 23 19 31 17.60043 2 +1686 23 24 19 32 19.11075 2 +1687 23 25 19 34 17.6579 2 +1688 23 26 19 36 20.11817 2 +1689 23 27 23 33 23.80699 2 +1690 23 28 23 31 15.6879 2 +1691 23 29 23 32 25.2162 2 +1692 23 30 23 34 19.09952 2 +1693 23 31 23 36 27.7982 2 +1694 23 32 27 39 25.08376 2 +1695 23 33 27 37 21.46793 2 +1696 23 34 27 36 27.76627 2 +1697 23 35 27 38 23.35451 2 +1698 23 36 27 40 24.96428 2 +1699 23 37 31 31 15.203 2 +1700 23 38 31 29 11.30968 2 +1701 23 39 31 27 11.57349 2 +1702 23 40 31 28 17.00231 2 +1703 23 41 31 30 23.16504 2 +1704 23 42 31 32 15.67381 2 +1705 23 43 35 39 22.23662 2 +1706 23 44 35 37 17.49342 2 +1707 23 45 35 35 34.87571 2 +1708 23 46 35 38 17.59521 2 +1709 23 47 35 40 23.21656 2 +1710 23 48 39 35 30.6705 2 +1711 23 49 39 33 19.63606 2 +1712 23 50 39 31 24.11922 2 +1713 23 51 39 32 15.68685 2 +1714 23 52 39 34 22.6699 2 +1715 23 53 43 35 21.10495 2 +1716 23 54 43 33 37.95567 2 +1717 23 55 43 31 25.72046 2 +1718 23 56 43 32 16.51148 2 +1719 23 57 43 34 30.01747 2 +1720 23 58 47 35 18.23321 2 +1721 23 59 47 33 20.14052 2 +1722 23 60 47 31 24.52983 2 +1723 23 61 47 34 27.77156 2 +1724 23 62 47 36 29.92637 2 +1725 23 63 47 38 32.37162 2 +1726 23 64 51 35 22.95052 2 +1727 23 65 51 33 23.31559 2 +1728 23 66 51 31 37.56861 2 +1729 23 67 51 34 29.9937 2 +1730 23 68 51 36 32.17867 2 +1731 23 69 55 35 36.13076 2 +1732 23 70 55 33 34.51855 2 +1733 23 71 55 32 32.48552 2 +1734 23 72 55 34 35.40644 2 +1735 23 73 55 36 48.35004 2 +1736 23 74 59 35 35.97611 2 +1737 23 75 59 33 33.36023 2 +1738 23 76 59 31 50.3663 2 +1739 23 77 59 32 35.06155 2 +1740 23 78 59 34 43.81896 2 +1741 23 79 59 36 45.1432 2 +1742 24 0 3 39 44.36897 2 +1743 24 1 3 37 36.23255 2 +1744 24 2 3 38 39.79 2 +1745 24 3 3 40 35.05175 2 +1746 24 4 4 2 56.34629 2 +1747 24 5 8 3 63.48489 2 +1748 24 6 8 1 60.99437 4 +1749 24 7 7 39 29.23341 2 +1750 24 8 7 37 22.59206 2 +1751 24 9 7 38 32.65069 2 +1752 24 10 7 40 26.63753 2 +1753 24 11 11 39 30.10697 2 +1754 24 12 11 37 28.71769 2 +1755 24 13 11 38 29.87729 2 +1756 24 14 11 40 30.26959 2 +1757 24 15 12 2 42.07954 2 +1758 24 16 16 3 56.08922 2 +1759 24 17 16 1 54.8096 2 +1760 24 18 15 39 19.40093 2 +1761 24 19 15 38 22.37485 2 +1762 24 20 15 40 19.09376 2 +1763 24 21 19 39 23.87507 2 +1764 24 22 19 37 22.44179 2 +1765 24 23 19 35 13.31628 2 +1766 24 24 19 38 21.04102 2 +1767 24 25 19 40 12.6246 2 +1768 24 26 20 2 45.92144 3 +1769 24 27 23 39 16.90904 2 +1770 24 28 23 37 15.37624 2 +1771 24 29 23 35 8.87002 2 +1772 24 30 23 38 14.75957 2 +1773 24 31 23 40 12.25579 2 +1774 24 32 28 3 41.80525 2 +1775 24 33 28 1 40.74882 2 +1776 24 34 28 2 41.93495 2 +1777 24 35 28 4 43.99226 2 +1778 24 36 28 6 43.14657 2 +1779 24 37 31 37 12.51438 2 +1780 24 38 31 35 26.2883 2 +1781 24 39 31 33 8.99933 2 +1782 24 40 31 34 9.09757 2 +1783 24 41 31 36 14.82305 2 +1784 24 42 31 38 12.23145 2 +1785 24 43 36 5 40.98503 2 +1786 24 44 36 3 41.95934 2 +1787 24 45 36 1 50.95021 2 +1788 24 46 36 2 40.98618 2 +1789 24 47 36 4 42.59413 2 +1790 24 48 39 39 18.15315 2 +1791 24 49 39 37 13.40093 2 +1792 24 50 39 36 8.86896 2 +1793 24 51 39 38 15.37729 2 +1794 24 52 39 40 22.03489 2 +1795 24 53 44 1 45.29771 2 +1796 24 54 43 39 18.40909 2 +1797 24 55 43 37 21.8511 2 +1798 24 56 43 36 13.57933 2 +1799 24 57 43 38 23.62665 2 +1800 24 58 43 40 24.09718 2 +1801 24 59 47 39 17.73422 2 +1802 24 60 47 37 21.92738 2 +1803 24 61 47 40 19.99187 2 +1804 24 62 48 2 44.43922 2 +1805 24 63 48 4 61.49428 4 +1806 24 64 52 1 42.91843 2 +1807 24 65 51 39 25.56067 2 +1808 24 66 51 37 25.0468 2 +1809 24 67 51 38 29.27852 2 +1810 24 68 51 40 30.9606 2 +1811 24 69 55 39 20.20782 2 +1812 24 70 55 37 33.06623 2 +1813 24 71 55 38 30.06635 2 +1814 24 72 55 40 27.76209 2 +1815 24 73 56 2 59.60094 2 +1816 24 74 56 4 61.55651 2 +1817 24 75 60 1 56.45082 2 +1818 24 76 59 39 34.02033 2 +1819 24 77 59 37 36.08378 2 +1820 24 78 59 38 37.14177 2 +1821 24 79 59 40 49.25991 2 +1822 25 0 4 5 59.26097 2 +1823 25 1 4 3 53.81316 2 +1824 25 2 4 1 53.72804 2 +1825 25 3 4 4 50.81545 2 +1826 25 4 4 6 52.09027 2 +1827 25 5 8 7 55.75225 4 +1828 25 6 8 5 57.64535 2 +1829 25 7 8 2 52.73697 2 +1830 25 8 8 4 47.39524 2 +1831 25 9 8 6 50.78643 2 +1832 25 10 12 5 50.37256 4 +1833 25 11 12 3 50.4255 4 +1834 25 12 12 1 41.41809 2 +1835 25 13 12 4 51.47022 2 +1836 25 14 12 6 38.85351 2 +1837 25 15 12 8 48.79076 2 +1838 25 16 16 7 50.55106 2 +1839 25 17 16 5 50.36211 4 +1840 25 18 16 2 42.41499 2 +1841 25 19 16 4 35.86627 2 +1842 25 20 16 6 39.11259 2 +1843 25 21 20 5 38.67058 2 +1844 25 22 20 3 40.88596 2 +1845 25 23 20 1 38.43241 2 +1846 25 24 20 4 34.33798 2 +1847 25 25 20 6 43.02993 2 +1848 25 26 20 8 40.41363 2 +1849 25 27 24 5 41.30463 2 +1850 25 28 24 3 33.50338 2 +1851 25 29 24 1 32.84019 2 +1852 25 30 24 2 34.32403 2 +1853 25 31 24 4 34.22294 2 +1854 25 32 28 9 39.83839 2 +1855 25 33 28 7 36.82985 2 +1856 25 34 28 5 35.57127 2 +1857 25 35 28 8 36.72119 2 +1858 25 36 28 10 37.50177 2 +1859 25 37 32 3 42.25986 2 +1860 25 38 32 1 32.09977 2 +1861 25 39 31 39 6.33926 2 +1862 25 40 31 40 6.33926 2 +1863 25 41 32 2 30.58318 2 +1864 25 42 32 4 33.00989 2 +1865 25 43 36 9 40.29986 2 +1866 25 44 36 7 37.13652 2 +1867 25 45 36 6 34.84674 2 +1868 25 46 36 8 35.91202 2 +1869 25 47 36 10 40.19582 2 +1870 25 48 40 3 32.52557 2 +1871 25 49 40 1 31.81273 2 +1872 25 50 40 2 30.65905 2 +1873 25 51 40 4 33.80279 2 +1874 25 52 40 6 38.8328 2 +1875 25 53 44 7 41.27052 2 +1876 25 54 44 5 40.48705 2 +1877 25 55 44 3 56.56642 2 +1878 25 56 44 2 37.61565 2 +1879 25 57 44 4 38.48821 2 +1880 25 58 44 6 39.58088 2 +1881 25 59 48 5 41.11194 2 +1882 25 60 48 3 37.64373 2 +1883 25 61 48 1 49.08298 4 +1884 25 62 48 6 46.77545 2 +1885 25 63 48 8 47.83757 2 +1886 25 64 52 7 45.68708 2 +1887 25 65 52 5 37.82052 2 +1888 25 66 52 3 47.18513 2 +1889 25 67 52 2 50.60204 4 +1890 25 68 52 4 47.13361 4 +1891 25 69 52 6 51.4272 2 +1892 25 70 56 5 49.81577 2 +1893 25 71 56 3 49.48124 2 +1894 25 72 56 1 56.0093 2 +1895 25 73 56 6 58.18106 2 +1896 25 74 56 8 59.55824 2 +1897 25 75 60 5 51.49863 2 +1898 25 76 60 3 54.32107 4 +1899 25 77 60 2 50.81965 2 +1900 25 78 60 4 52.36545 2 +1901 25 79 60 6 66.96565 4 +1902 26 0 4 11 56.02143 2 +1903 26 1 4 9 57.30304 2 +1904 26 2 4 7 46.75468 2 +1905 26 3 4 8 46.12902 2 +1906 26 4 4 10 51.71529 2 +1907 26 5 4 12 45.65944 4 +1908 26 6 8 11 53.62934 2 +1909 26 7 8 9 47.30428 2 +1910 26 8 8 8 57.16048 2 +1911 26 9 8 10 42.40046 2 +1912 26 10 8 12 44.14269 2 +1913 26 11 12 11 48.88389 2 +1914 26 12 12 9 46.70776 4 +1915 26 13 12 7 38.96931 2 +1916 26 14 12 10 44.53427 2 +1917 26 15 12 12 36.58342 2 +1918 26 16 12 14 38.01872 2 +1919 26 17 16 11 43.85205 2 +1920 26 18 16 9 39.07088 2 +1921 26 19 16 8 36.13008 2 +1922 26 20 16 10 50.65685 2 +1923 26 21 16 12 42.17418 2 +1924 26 22 20 11 34.89164 2 +1925 26 23 20 9 32.36925 2 +1926 26 24 20 7 31.54575 2 +1927 26 25 20 10 31.17931 2 +1928 26 26 20 12 33.59857 2 +1929 26 27 20 14 33.49022 2 +1930 26 28 24 9 31.7406 2 +1931 26 29 24 7 28.32919 2 +1932 26 30 24 6 40.49699 2 +1933 26 31 24 8 28.43224 2 +1934 26 32 24 10 33.87539 2 +1935 26 33 28 13 33.93361 2 +1936 26 34 28 11 32.03982 2 +1937 26 35 28 12 32.75182 2 +1938 26 36 28 14 32.99021 2 +1939 26 37 28 16 33.2504 2 +1940 26 38 32 9 41.24565 2 +1941 26 39 32 7 27.67699 2 +1942 26 40 32 5 26.34632 2 +1943 26 41 32 6 26.26449 2 +1944 26 42 32 8 27.27186 2 +1945 26 43 32 10 30.65818 2 +1946 26 44 36 15 32.43903 2 +1947 26 45 36 13 31.73557 2 +1948 26 46 36 11 32.56069 2 +1949 26 47 36 12 31.37308 2 +1950 26 48 36 14 34.75555 2 +1951 26 49 40 9 31.50018 2 +1952 26 50 40 7 29.44768 2 +1953 26 51 40 5 42.00579 2 +1954 26 52 40 8 33.68502 2 +1955 26 53 40 10 32.51994 2 +1956 26 54 44 13 56.32317 2 +1957 26 55 44 11 41.67016 2 +1958 26 56 44 9 43.37265 2 +1959 26 57 44 8 38.16363 2 +1960 26 58 44 10 32.7067 2 +1961 26 59 44 12 35.74579 2 +1962 26 60 48 11 36.21559 2 +1963 26 61 48 9 39.19237 2 +1964 26 62 48 7 38.66244 2 +1965 26 63 48 10 39.57546 2 +1966 26 64 48 12 47.81415 2 +1967 26 65 52 13 47.07186 2 +1968 26 66 52 11 41.49562 4 +1969 26 67 52 9 48.93307 2 +1970 26 68 52 8 37.84982 2 +1971 26 69 52 10 44.20981 2 +1972 26 70 52 12 46.78387 2 +1973 26 71 56 11 43.16601 2 +1974 26 72 56 9 42.91585 2 +1975 26 73 56 7 50.72153 2 +1976 26 74 56 10 52.63962 2 +1977 26 75 56 12 54.89209 2 +1978 26 76 60 11 44.96856 2 +1979 26 77 60 9 55.47915 2 +1980 26 78 60 7 61.34841 2 +1981 26 79 60 8 47.71787 2 +1982 26 80 60 10 55.42291 2 +1983 26 81 60 12 63.17311 2 +1984 27 0 4 17 57.29134 2 +1985 27 1 4 15 50.93589 2 +1986 27 2 4 13 46.88459 2 +1987 27 3 4 14 44.79885 2 +1988 27 4 4 16 49.29922 2 +1989 27 5 4 18 39.52213 2 +1990 27 6 8 15 52.12895 4 +1991 27 7 8 13 38.34397 2 +1992 27 8 8 14 40.50326 2 +1993 27 9 8 16 44.10547 2 +1994 27 10 8 18 31.56349 2 +1995 27 11 12 17 42.67323 2 +1996 27 12 12 15 43.48499 2 +1997 27 13 12 13 34.48336 2 +1998 27 14 12 16 35.691 2 +1999 27 15 12 18 38.38006 2 +2000 27 16 16 17 47.71006 2 +2001 27 17 16 15 36.10179 2 +2002 27 18 16 13 36.71685 2 +2003 27 19 16 14 35.57934 2 +2004 27 20 16 16 36.49156 4 +2005 27 21 16 18 30.97985 2 +2006 27 22 20 15 30.72913 2 +2007 27 23 20 13 29.14961 2 +2008 27 24 20 16 34.19321 2 +2009 27 25 20 18 61.2061 2 +2010 27 26 20 20 28.45802 2 +2011 27 27 24 15 36.46644 2 +2012 27 28 24 13 26.27263 2 +2013 27 29 24 11 29.38414 2 +2014 27 30 24 12 30.27789 2 +2015 27 31 24 14 25.37096 2 +2016 27 32 24 16 26.7277 2 +2017 27 33 28 19 31.09301 2 +2018 27 34 28 17 28.04711 2 +2019 27 35 28 15 27.11281 2 +2020 27 36 28 18 29.9983 2 +2021 27 37 28 20 29.89654 2 +2022 27 38 32 15 42.49075 2 +2023 27 39 32 13 27.88097 2 +2024 27 40 32 11 21.39763 2 +2025 27 41 32 12 25.49237 2 +2026 27 42 32 14 33.64598 2 +2027 27 43 32 16 26.33716 2 +2028 27 44 36 19 32.32446 2 +2029 27 45 36 17 26.78166 2 +2030 27 46 36 16 24.6142 2 +2031 27 47 36 18 28.36215 2 +2032 27 48 36 20 31.87239 2 +2033 27 49 40 15 27.40577 2 +2034 27 50 40 13 23.31908 2 +2035 27 51 40 11 26.26678 2 +2036 27 52 40 12 26.63194 2 +2037 27 53 40 14 26.25324 2 +2038 27 54 40 16 33.99304 2 +2039 27 55 44 19 32.40273 2 +2040 27 56 44 17 28.59854 2 +2041 27 57 44 15 43.12988 2 +2042 27 58 44 14 37.60856 2 +2043 27 59 44 16 32.27695 2 +2044 27 60 48 17 29.71869 2 +2045 27 61 48 15 36.55375 2 +2046 27 62 48 13 37.61643 2 +2047 27 63 48 14 41.31061 4 +2048 27 64 48 16 36.33362 2 +2049 27 65 48 18 44.35564 2 +2050 27 66 52 17 37.54829 2 +2051 27 67 52 15 36.71017 2 +2052 27 68 52 14 34.10392 2 +2053 27 69 52 16 44.37299 2 +2054 27 70 52 18 42.44064 2 +2055 27 71 56 17 37.20854 2 +2056 27 72 56 15 46.58292 2 +2057 27 73 56 13 45.58331 4 +2058 27 74 56 14 36.81592 2 +2059 27 75 56 16 50.00973 2 +2060 27 76 60 17 37.83576 2 +2061 27 77 60 15 48.67456 2 +2062 27 78 60 13 50.86467 2 +2063 27 79 60 14 40.8497 2 +2064 27 80 60 16 54.77417 2 +2065 27 81 60 18 56.64077 2 +2066 28 0 4 21 50.59688 2 +2067 28 1 4 19 45.61307 2 +2068 28 2 4 20 52.95526 2 +2069 28 3 4 22 40.427 2 +2070 28 4 4 24 42.72976 2 +2071 28 5 8 21 47.63382 2 +2072 28 6 8 19 39.78467 2 +2073 28 7 8 17 35.02371 2 +2074 28 8 8 20 37.20463 2 +2075 28 9 8 22 40.05184 2 +2076 28 10 8 24 36.23056 2 +2077 28 11 12 23 46.63044 2 +2078 28 12 12 21 38.67076 2 +2079 28 13 12 19 32.76457 2 +2080 28 14 12 20 30.12076 2 +2081 28 15 12 22 34.15728 2 +2082 28 16 16 23 43.4642 2 +2083 28 17 16 21 35.78359 2 +2084 28 18 16 19 31.12434 2 +2085 28 19 16 20 32.80799 2 +2086 28 20 16 22 69.69596 2 +2087 28 21 16 24 22.93966 2 +2088 28 22 20 21 28.40452 2 +2089 28 23 20 19 26.88715 2 +2090 28 24 20 17 19.31766 2 +2091 28 25 20 22 23.80414 2 +2092 28 26 20 24 25.92414 2 +2093 28 27 24 21 31.27535 2 +2094 28 28 24 19 27.71412 2 +2095 28 29 24 17 18.92325 2 +2096 28 30 24 18 34.04465 2 +2097 28 31 24 20 33.10399 2 +2098 28 32 24 22 27.97546 2 +2099 28 33 28 23 25.25079 2 +2100 28 34 28 21 22.90913 2 +2101 28 35 28 22 22.14627 2 +2102 28 36 28 24 23.0605 2 +2103 28 37 28 26 56.36246 2 +2104 28 38 32 21 22.81038 2 +2105 28 39 32 19 20.59 2 +2106 28 40 32 17 19.16478 2 +2107 28 41 32 18 20.01442 2 +2108 28 42 32 20 38.48217 2 +2109 28 43 32 22 24.35493 2 +2110 28 44 36 25 24.85716 2 +2111 28 45 36 23 22.74977 2 +2112 28 46 36 21 30.65591 2 +2113 28 47 36 22 26.04464 2 +2114 28 48 36 24 25.43448 2 +2115 28 49 40 21 30.58951 2 +2116 28 50 40 19 25.87894 2 +2117 28 51 40 17 36.77532 2 +2118 28 52 40 18 30.0858 2 +2119 28 53 40 20 29.62746 2 +2120 28 54 40 22 25.76629 2 +2121 28 55 44 23 27.77794 2 +2122 28 56 44 21 25.04575 2 +2123 28 57 44 18 21.03382 2 +2124 28 58 44 20 32.98619 2 +2125 28 59 44 22 28.24443 2 +2126 28 60 48 23 27.55327 2 +2127 28 61 48 21 32.85538 2 +2128 28 62 48 19 30.23559 2 +2129 28 63 48 20 33.97953 2 +2130 28 64 48 22 33.6173 2 +2131 28 65 48 24 38.57887 2 +2132 28 66 52 21 33.4955 2 +2133 28 67 52 19 30.59729 2 +2134 28 68 52 20 32.5159 2 +2135 28 69 52 22 37.48841 2 +2136 28 70 52 24 49.24375 2 +2137 28 71 56 23 32.63817 2 +2138 28 72 56 21 39.34477 2 +2139 28 73 56 19 36.57401 2 +2140 28 74 56 18 31.2626 2 +2141 28 75 56 20 36.74699 2 +2142 28 76 56 22 46.27369 2 +2143 28 77 60 23 45.59659 2 +2144 28 78 60 21 45.12996 2 +2145 28 79 60 19 49.30221 2 +2146 28 80 60 20 47.35714 2 +2147 28 81 60 22 57.08654 2 +2148 29 0 4 27 50.49825 2 +2149 29 1 4 25 42.98549 2 +2150 29 2 4 23 36.00324 2 +2151 29 3 4 26 42.07781 2 +2152 29 4 4 28 44.09374 2 +2153 29 5 4 30 31.16755 2 +2154 29 6 8 27 47.355 2 +2155 29 7 8 25 36.26671 4 +2156 29 8 8 23 33.72613 2 +2157 29 9 8 26 34.68059 2 +2158 29 10 8 28 34.04838 2 +2159 29 11 8 30 37.162 2 +2160 29 12 12 27 31.82111 2 +2161 29 13 12 25 32.39305 2 +2162 29 14 12 24 30.66965 2 +2163 29 15 12 26 29.91812 2 +2164 29 16 12 28 21.85906 2 +2165 29 17 16 29 34.40491 2 +2166 29 18 16 27 28.87911 2 +2167 29 19 16 25 24.77017 2 +2168 29 20 16 26 34.44117 2 +2169 29 21 16 28 20.20852 2 +2170 29 22 16 30 20.45154 2 +2171 29 23 20 27 30.7013 2 +2172 29 24 20 25 20.98249 2 +2173 29 25 20 23 18.08974 2 +2174 29 26 20 26 18.81892 2 +2175 29 27 20 28 18.23539 2 +2176 29 28 24 27 24.63844 2 +2177 29 29 24 25 21.19884 2 +2178 29 30 24 23 17.80637 2 +2179 29 31 24 24 19.17204 2 +2180 29 32 24 26 17.38253 2 +2181 29 33 24 28 16.91697 2 +2182 29 34 28 29 22.52665 2 +2183 29 35 28 27 19.07564 2 +2184 29 36 28 25 15.3825 2 +2185 29 37 28 28 17.57635 2 +2186 29 38 28 30 20.00539 2 +2187 29 39 32 27 26.02368 2 +2188 29 40 32 25 24.92257 2 +2189 29 41 32 23 15.61885 2 +2190 29 42 32 24 14.69049 2 +2191 29 43 32 26 16.35638 2 +2192 29 44 32 28 18.70627 2 +2193 29 45 36 29 20.43756 2 +2194 29 46 36 27 17.48264 2 +2195 29 47 36 26 25.23576 2 +2196 29 48 36 28 17.08961 2 +2197 29 49 36 30 26.36484 2 +2198 29 50 40 27 18.70403 2 +2199 29 51 40 25 20.28196 2 +2200 29 52 40 23 20.91108 2 +2201 29 53 40 24 18.04547 2 +2202 29 54 40 26 21.12194 2 +2203 29 55 40 28 44.28904 2 +2204 29 56 44 27 33.9364 2 +2205 29 57 44 25 18.73698 2 +2206 29 58 44 24 16.08829 2 +2207 29 59 44 26 27.65841 2 +2208 29 60 44 28 31.89127 2 +2209 29 61 48 29 25.42222 2 +2210 29 62 48 27 25.77734 2 +2211 29 63 48 25 35.08754 2 +2212 29 64 48 26 25.23065 2 +2213 29 65 48 28 26.90256 2 +2214 29 66 48 30 35.39901 2 +2215 29 67 52 27 21.79084 2 +2216 29 68 52 25 31.71945 2 +2217 29 69 52 23 31.35504 2 +2218 29 70 52 26 32.85186 2 +2219 29 71 52 28 35.53319 2 +2220 29 72 56 29 24.82712 2 +2221 29 73 56 27 33.96372 2 +2222 29 74 56 25 35.34804 2 +2223 29 75 56 24 34.37396 2 +2224 29 76 56 26 31.60671 2 +2225 29 77 56 28 42.39491 2 +2226 29 78 60 29 36.34469 2 +2227 29 79 60 27 45.63286 2 +2228 29 80 60 25 57.14019 2 +2229 29 81 60 24 40.43231 2 +2230 29 82 60 26 50.44007 2 +2231 29 83 60 28 51.54478 2 +2232 30 0 4 33 50.78391 2 +2233 30 1 4 31 40.20656 2 +2234 30 2 4 29 33.98006 2 +2235 30 3 4 32 38.07663 2 +2236 30 4 4 34 34.73621 2 +2237 30 5 4 36 32.57693 2 +2238 30 6 8 33 38.49987 2 +2239 30 7 8 31 35.26524 2 +2240 30 8 8 29 25.94837 2 +2241 30 9 8 32 36.58682 2 +2242 30 10 8 34 34.05546 2 +2243 30 11 12 33 43.10463 2 +2244 30 12 12 31 31.56381 2 +2245 30 13 12 29 21.80438 2 +2246 30 14 12 30 27.61609 2 +2247 30 15 12 32 27.01282 2 +2248 30 16 12 34 20.60162 2 +2249 30 17 16 33 33.57324 2 +2250 30 18 16 31 21.84753 2 +2251 30 19 16 32 21.95727 2 +2252 30 20 16 34 22.38491 2 +2253 30 21 16 36 20.19149 2 +2254 30 22 20 33 24.67459 2 +2255 30 23 20 31 25.08452 2 +2256 30 24 20 29 15.03444 2 +2257 30 25 20 30 22.88859 2 +2258 30 26 20 32 14.27185 2 +2259 30 27 20 34 15.89784 2 +2260 30 28 24 33 20.41937 2 +2261 30 29 24 31 19.31073 2 +2262 30 30 24 29 13.25179 2 +2263 30 31 24 30 13.29235 2 +2264 30 32 24 32 17.63742 2 +2265 30 33 24 34 13.90329 2 +2266 30 34 28 33 16.50303 2 +2267 30 35 28 31 14.60082 2 +2268 30 36 28 32 19.52877 2 +2269 30 37 28 34 14.12989 2 +2270 30 38 28 36 23.60427 2 +2271 30 39 32 33 15.21009 2 +2272 30 40 32 31 11.35289 2 +2273 30 41 32 29 10.84917 2 +2274 30 42 32 30 18.85028 2 +2275 30 43 32 32 14.08472 2 +2276 30 44 32 34 15.46022 2 +2277 30 45 36 35 24.8668 2 +2278 30 46 36 33 22.5715 2 +2279 30 47 36 31 22.61494 2 +2280 30 48 36 32 14.24846 2 +2281 30 49 36 34 16.50201 2 +2282 30 50 40 33 14.67415 2 +2283 30 51 40 31 13.7078 2 +2284 30 52 40 29 14.03836 2 +2285 30 53 40 30 12.69945 2 +2286 30 54 40 32 19.56342 2 +2287 30 55 40 34 23.08451 2 +2288 30 56 44 33 18.64355 2 +2289 30 57 44 31 14.67015 2 +2290 30 58 44 29 24.99106 2 +2291 30 59 44 30 15.03351 2 +2292 30 60 44 32 29.74402 2 +2293 30 61 44 34 24.51519 2 +2294 30 62 48 35 22.35932 2 +2295 30 63 48 33 22.27525 2 +2296 30 64 48 31 42.80984 2 +2297 30 65 48 32 20.71209 2 +2298 30 66 48 34 29.87888 2 +2299 30 67 52 33 20.5528 2 +2300 30 68 52 31 26.87426 2 +2301 30 69 52 29 35.69175 2 +2302 30 70 52 30 32.31132 2 +2303 30 71 52 32 40.13217 2 +2304 30 72 52 34 37.27687 2 +2305 30 73 56 33 29.95896 2 +2306 30 74 56 31 37.72023 2 +2307 30 75 56 30 25.26054 2 +2308 30 76 56 32 34.69682 2 +2309 30 77 56 34 37.62319 2 +2310 30 78 60 35 32.41652 2 +2311 30 79 60 33 30.93543 2 +2312 30 80 60 31 44.65578 2 +2313 30 81 60 30 35.12848 2 +2314 30 82 60 32 36.90158 2 +2315 30 83 60 34 46.9919 2 +2316 31 0 4 39 40.61208 2 +2317 31 1 4 37 38.53868 2 +2318 31 2 4 35 34.43842 2 +2319 31 3 4 38 32.45287 2 +2320 31 4 4 40 29.44719 2 +2321 31 5 8 39 35.06649 2 +2322 31 6 8 37 33.83283 2 +2323 31 7 8 35 28.87932 2 +2324 31 8 8 36 27.34587 2 +2325 31 9 8 38 27.3652 2 +2326 31 10 8 40 25.48396 2 +2327 31 11 12 39 32.635 2 +2328 31 12 12 37 32.49504 2 +2329 31 13 12 35 21.9634 2 +2330 31 14 12 36 24.29384 2 +2331 31 15 12 38 17.77989 2 +2332 31 16 12 40 27.11833 2 +2333 31 17 16 39 34.50774 2 +2334 31 18 16 37 22.65107 2 +2335 31 19 16 35 14.24787 2 +2336 31 20 16 38 18.67686 2 +2337 31 21 16 40 17.10405 2 +2338 31 22 20 39 23.54087 2 +2339 31 23 20 37 21.39502 2 +2340 31 24 20 35 16.51866 2 +2341 31 25 20 36 15.87177 2 +2342 31 26 20 38 13.35195 2 +2343 31 27 20 40 11.51629 2 +2344 31 28 24 39 20.2789 2 +2345 31 29 24 37 13.35582 2 +2346 31 30 24 35 11.86176 2 +2347 31 31 24 36 13.12001 2 +2348 31 32 24 38 8.52136 2 +2349 31 33 24 40 10.76357 2 +2350 31 34 28 39 17.06751 2 +2351 31 35 28 37 9.00333 2 +2352 31 36 28 35 7.15639 2 +2353 31 37 28 38 8.70154 2 +2354 31 38 28 40 9.94586 2 +2355 31 39 32 39 12.37001 2 +2356 31 40 32 37 24.76144 2 +2357 31 41 32 35 11.50763 2 +2358 31 42 32 36 9.64216 2 +2359 31 43 32 38 14.22961 2 +2360 31 44 32 40 11.98094 2 +2361 31 45 36 39 9.94684 2 +2362 31 46 36 37 8.70056 2 +2363 31 47 36 36 7.20723 2 +2364 31 48 36 38 9.00232 2 +2365 31 49 36 40 17.16498 2 +2366 31 50 40 39 10.44029 2 +2367 31 51 40 37 8.52031 2 +2368 31 52 40 35 12.91819 2 +2369 31 53 40 36 12.38047 2 +2370 31 54 40 38 13.35487 2 +2371 31 55 40 40 21.40205 2 +2372 31 56 44 39 11.87032 2 +2373 31 57 44 37 13.32304 2 +2374 31 58 44 35 15.82594 2 +2375 31 59 44 36 16.59096 2 +2376 31 60 44 38 21.76793 2 +2377 31 61 44 40 23.68873 2 +2378 31 62 48 39 15.57055 2 +2379 31 63 48 37 18.76672 2 +2380 31 64 48 36 14.28782 2 +2381 31 65 48 38 22.34075 2 +2382 31 66 48 40 23.26248 2 +2383 31 67 52 39 18.5022 2 +2384 31 68 52 37 17.51252 2 +2385 31 69 52 35 28.02551 2 +2386 31 70 52 36 22.29824 2 +2387 31 71 52 38 32.10246 2 +2388 31 72 52 40 33.58579 2 +2389 31 73 56 39 25.45478 2 +2390 31 74 56 37 26.63439 2 +2391 31 75 56 35 29.26978 2 +2392 31 76 56 36 25.66024 2 +2393 31 77 56 38 33.95304 2 +2394 31 78 56 40 34.70107 2 +2395 31 79 60 39 29.33733 2 +2396 31 80 60 37 30.17089 2 +2397 31 81 60 36 34.23858 2 +2398 31 82 60 38 32.49756 2 +2399 31 83 60 40 44.42148 2 +2400 32 0 61 5 63.83178 2 +2401 32 1 61 3 51.93011 2 +2402 32 2 61 1 50.73648 2 +2403 32 3 61 2 50.62744 2 +2404 32 4 61 4 49.82671 2 +2405 32 5 65 5 54.21388 2 +2406 32 6 65 3 53.36172 2 +2407 32 7 65 1 41.62197 2 +2408 32 8 65 2 44.00079 2 +2409 32 9 65 4 43.88522 2 +2410 32 10 69 3 45.27717 2 +2411 32 11 69 1 43.12576 2 +2412 32 12 69 2 42.49795 2 +2413 32 13 69 4 42.1356 2 +2414 32 14 69 6 47.42852 2 +2415 32 15 73 3 36.32289 2 +2416 32 16 73 1 37.89657 2 +2417 32 17 73 2 36.72457 2 +2418 32 18 73 4 31.01947 2 +2419 32 19 77 5 32.48114 2 +2420 32 20 77 3 34.09136 2 +2421 32 21 77 1 26.62831 2 +2422 32 22 77 2 27.02003 2 +2423 32 23 77 4 27.81951 2 +2424 32 24 81 3 34.40985 2 +2425 32 25 81 1 30.44503 2 +2426 32 26 81 2 27.30859 2 +2427 32 27 81 4 28.08661 2 +2428 32 28 81 6 29.85682 2 +2429 32 29 85 3 36.90158 2 +2430 32 30 85 1 25.25227 2 +2431 32 31 85 2 28.40555 2 +2432 32 32 85 4 27.05733 2 +2433 32 33 85 6 27.17813 2 +2434 32 34 89 3 29.69327 2 +2435 32 35 89 1 23.05022 2 +2436 32 36 89 2 25.55792 2 +2437 32 37 89 4 31.18352 2 +2438 32 38 93 3 26.41537 2 +2439 32 39 93 1 24.09637 2 +2440 32 40 93 2 24.32544 2 +2441 32 41 93 4 24.63956 2 +2442 32 42 93 6 28.22455 2 +2443 32 43 97 5 28.74231 2 +2444 32 44 97 3 24.71029 2 +2445 32 45 97 1 23.52849 2 +2446 32 46 97 2 24.04405 2 +2447 32 47 97 4 27.04663 2 +2448 32 48 101 3 31.03807 2 +2449 32 49 101 1 25.55896 2 +2450 32 50 101 2 23.0498 2 +2451 32 51 101 4 30.06566 2 +2452 32 52 105 5 26.75637 2 +2453 32 53 105 3 27.03494 2 +2454 32 54 105 1 28.96117 2 +2455 32 55 105 2 25.25121 2 +2456 32 56 105 4 31.62692 2 +2457 32 57 109 5 29.80684 2 +2458 32 58 109 3 28.03649 2 +2459 32 59 109 1 27.25499 2 +2460 32 60 109 2 25.96592 2 +2461 32 61 109 4 33.99892 2 +2462 32 62 113 3 28.7557 2 +2463 32 63 113 1 28.20069 2 +2464 32 64 113 2 26.57941 2 +2465 32 65 113 4 43.38025 2 +2466 32 66 113 6 32.20545 2 +2467 32 67 117 3 31.42534 2 +2468 32 68 117 1 40.53443 2 +2469 32 69 117 2 34.4316 2 +2470 32 70 117 4 42.78668 4 +2471 32 71 121 5 40.3056 2 +2472 32 72 121 3 43.65811 2 +2473 32 73 121 1 43.42054 2 +2474 32 74 121 2 44.75683 2 +2475 32 75 121 4 45.97626 2 +2476 32 76 125 3 44.31318 2 +2477 32 77 125 1 45.2039 2 +2478 32 78 125 2 41.37185 2 +2479 32 79 125 4 55.02584 2 +2480 32 80 125 6 54.79089 2 +2481 32 81 129 3 50.17407 2 +2482 32 82 129 1 53.32759 2 +2483 32 83 129 2 53.39977 2 +2484 32 84 129 4 52.33812 2 +2485 32 85 129 6 62.43637 2 +2486 33 0 61 9 52.08613 2 +2487 33 1 61 7 48.94957 2 +2488 33 2 61 6 55.06522 2 +2489 33 3 61 8 56.41741 2 +2490 33 4 61 10 42.19602 2 +2491 33 5 65 9 49.95838 2 +2492 33 6 65 7 44.83217 2 +2493 33 7 65 6 53.03497 2 +2494 33 8 65 8 47.94183 2 +2495 33 9 65 10 36.50677 2 +2496 33 10 69 7 40.23822 2 +2497 33 11 69 5 35.13823 2 +2498 33 12 69 8 42.09471 2 +2499 33 13 69 10 41.31087 2 +2500 33 14 73 9 40.20259 2 +2501 33 15 73 7 31.06187 2 +2502 33 16 73 5 34.82559 2 +2503 33 17 73 6 31.28529 2 +2504 33 18 73 8 36.9363 2 +2505 33 19 77 9 37.17521 2 +2506 33 20 77 7 25.26241 2 +2507 33 21 77 6 28.17832 2 +2508 33 22 77 8 27.77879 2 +2509 33 23 77 10 21.92174 2 +2510 33 24 81 9 33.54655 2 +2511 33 25 81 7 27.72331 2 +2512 33 26 81 5 21.63373 2 +2513 33 27 81 8 21.52748 2 +2514 33 28 81 10 24.53982 2 +2515 33 29 85 7 33.14885 2 +2516 33 30 85 5 23.25277 2 +2517 33 31 85 8 27.24895 2 +2518 33 32 85 10 24.05592 2 +2519 33 33 89 9 29.36399 2 +2520 33 34 89 7 26.3072 2 +2521 33 35 89 5 19.60094 2 +2522 33 36 89 6 19.34534 2 +2523 33 37 89 8 20.72894 2 +2524 33 38 93 9 27.86634 2 +2525 33 39 93 7 19.86936 2 +2526 33 40 93 5 19.57322 2 +2527 33 41 93 8 20.6109 2 +2528 33 42 93 10 22.63884 2 +2529 33 43 97 9 22.66139 2 +2530 33 44 97 7 20.7028 2 +2531 33 45 97 6 19.5865 2 +2532 33 46 97 8 21.47975 2 +2533 33 47 97 10 22.95807 2 +2534 33 48 101 7 20.68974 2 +2535 33 49 101 5 20.86032 2 +2536 33 50 101 6 19.82554 2 +2537 33 51 101 8 26.57317 2 +2538 33 52 101 10 32.31494 2 +2539 33 53 105 9 22.8052 2 +2540 33 54 105 7 27.25 2 +2541 33 55 105 6 20.24286 2 +2542 33 56 105 8 30.2729 2 +2543 33 57 109 9 23.67566 2 +2544 33 58 109 7 21.821 2 +2545 33 59 109 6 21.99214 2 +2546 33 60 109 8 29.30479 2 +2547 33 61 109 10 34.127 2 +2548 33 62 113 9 22.00049 2 +2549 33 63 113 7 27.15353 2 +2550 33 64 113 5 28.16049 2 +2551 33 65 113 8 26.76023 2 +2552 33 66 113 10 31.307 2 +2553 33 67 117 7 34.01667 2 +2554 33 68 117 5 31.44653 2 +2555 33 69 117 6 35.78485 2 +2556 33 70 117 8 32.21042 2 +2557 33 71 117 10 44.03805 4 +2558 33 72 121 9 36.10737 2 +2559 33 73 121 7 46.94134 2 +2560 33 74 121 6 35.30034 2 +2561 33 75 121 8 40.80878 2 +2562 33 76 125 9 36.90641 2 +2563 33 77 125 7 48.98998 2 +2564 33 78 125 5 46.86728 2 +2565 33 79 125 8 45.07234 2 +2566 33 80 125 10 51.57792 2 +2567 33 81 129 9 42.04529 2 +2568 33 82 129 7 54.84148 2 +2569 33 83 129 5 52.50866 2 +2570 33 84 129 8 46.89552 2 +2571 33 85 129 10 51.69108 2 +2572 34 0 61 15 46.86082 2 +2573 34 1 61 13 42.24406 2 +2574 34 2 61 11 41.17057 2 +2575 34 3 61 12 47.04642 2 +2576 34 4 61 14 36.36988 2 +2577 34 5 65 13 47.73095 2 +2578 34 6 65 11 42.1391 2 +2579 34 7 65 12 50.73306 2 +2580 34 8 65 14 38.88637 2 +2581 34 9 69 13 42.61469 2 +2582 34 10 69 11 40.77661 2 +2583 34 11 69 9 34.37566 2 +2584 34 12 69 12 40.22993 2 +2585 34 13 69 14 32.58955 2 +2586 34 14 73 13 40.11647 2 +2587 34 15 73 11 36.36366 2 +2588 34 16 73 10 34.60639 2 +2589 34 17 73 12 31.56311 2 +2590 34 18 73 14 24.30464 2 +2591 34 19 77 15 33.17506 2 +2592 34 20 77 13 30.62755 2 +2593 34 21 77 11 17.76232 2 +2594 34 22 77 12 31.48584 2 +2595 34 23 77 14 18.19056 2 +2596 34 24 81 13 26.78506 2 +2597 34 25 81 11 17.48152 2 +2598 34 26 81 12 25.09083 2 +2599 34 27 81 14 17.61646 2 +2600 34 28 81 16 20.29746 2 +2601 34 29 85 11 19.50696 2 +2602 34 30 85 9 14.73609 2 +2603 34 31 85 12 27.37061 2 +2604 34 32 85 14 20.16317 2 +2605 34 33 89 13 23.95122 2 +2606 34 34 89 11 21.93561 2 +2607 34 35 89 10 19.06749 2 +2608 34 36 89 12 19.97875 2 +2609 34 37 89 14 23.75119 2 +2610 34 38 93 13 17.18763 2 +2611 34 39 93 11 17.26418 2 +2612 34 40 93 12 16.35261 2 +2613 34 41 93 14 17.42965 2 +2614 34 42 93 16 19.4976 2 +2615 34 43 97 15 20.00672 2 +2616 34 44 97 13 18.84743 2 +2617 34 45 97 11 16.14633 2 +2618 34 46 97 12 16.63272 2 +2619 34 47 97 14 17.7054 2 +2620 34 48 101 13 22.6536 2 +2621 34 49 101 11 17.14521 2 +2622 34 50 101 9 18.70389 2 +2623 34 51 101 12 21.13457 2 +2624 34 52 101 14 24.17537 2 +2625 34 53 105 13 17.06818 2 +2626 34 54 105 11 22.98179 2 +2627 34 55 105 10 18.29288 2 +2628 34 56 105 12 19.50591 2 +2629 34 57 109 15 19.89165 2 +2630 34 58 109 13 17.63029 2 +2631 34 59 109 11 25.12906 2 +2632 34 60 109 12 17.18099 2 +2633 34 61 109 14 28.35787 2 +2634 34 62 113 13 17.20385 2 +2635 34 63 113 11 27.23857 2 +2636 34 64 113 12 19.852 2 +2637 34 65 113 14 28.41421 2 +2638 34 66 113 16 38.7351 2 +2639 34 67 117 13 24.7059 2 +2640 34 68 117 11 29.79514 2 +2641 34 69 117 9 32.22628 2 +2642 34 70 117 12 35.72531 2 +2643 34 71 117 14 36.58735 2 +2644 34 72 121 13 33.11078 2 +2645 34 73 121 11 40.68026 2 +2646 34 74 121 10 33.20164 2 +2647 34 75 121 12 41.75414 2 +2648 34 76 121 14 43.38257 2 +2649 34 77 125 13 39.25239 2 +2650 34 78 125 11 51.07802 2 +2651 34 79 125 12 40.99748 2 +2652 34 80 125 14 47.44753 2 +2653 34 81 129 13 35.86368 2 +2654 34 82 129 11 49.35494 2 +2655 34 83 129 12 41.16568 2 +2656 34 84 129 14 42.41184 2 +2657 34 85 129 16 47.16243 2 +2658 35 0 61 19 54.59218 2 +2659 35 1 61 17 45.42195 2 +2660 35 2 61 16 44.89364 2 +2661 35 3 61 18 37.48907 2 +2662 35 4 61 20 40.25432 2 +2663 35 5 65 17 42.8837 2 +2664 35 6 65 15 35.14292 2 +2665 35 7 65 16 43.87044 2 +2666 35 8 65 18 41.53773 2 +2667 35 9 65 20 29.94435 2 +2668 35 10 69 17 37.16248 2 +2669 35 11 69 15 29.20499 2 +2670 35 12 69 16 40.54398 2 +2671 35 13 69 18 35.12751 2 +2672 35 14 69 20 26.3204 2 +2673 35 15 73 19 26.6086 2 +2674 35 16 73 17 27.1689 2 +2675 35 17 73 15 18.16258 2 +2676 35 18 73 16 26.07852 2 +2677 35 19 73 18 18.86169 2 +2678 35 20 77 19 26.53222 2 +2679 35 21 77 17 19.4628 2 +2680 35 22 77 16 22.68691 2 +2681 35 23 77 18 15.58274 2 +2682 35 24 77 20 15.01732 2 +2683 35 25 81 17 22.35832 2 +2684 35 26 81 15 12.25914 2 +2685 35 27 81 18 20.33565 2 +2686 35 28 81 20 13.43252 2 +2687 35 29 85 17 25.87594 2 +2688 35 30 85 15 15.34689 2 +2689 35 31 85 13 15.52035 2 +2690 35 32 85 16 22.19688 2 +2691 35 33 85 18 13.09833 2 +2692 35 34 89 19 21.62564 2 +2693 35 35 89 17 18.91892 2 +2694 35 36 89 15 10.12185 2 +2695 35 37 89 16 11.37794 2 +2696 35 38 89 18 12.40939 2 +2697 35 39 93 19 18.91605 2 +2698 35 40 93 17 11.58814 2 +2699 35 41 93 15 10.8047 2 +2700 35 42 93 18 12.62592 2 +2701 35 43 93 20 14.27016 2 +2702 35 44 97 19 21.78582 2 +2703 35 45 97 17 14.7581 2 +2704 35 46 97 16 10.16151 2 +2705 35 47 97 18 11.7862 2 +2706 35 48 97 20 25.04366 2 +2707 35 49 101 17 21.59554 2 +2708 35 50 101 15 14.35771 2 +2709 35 51 101 16 10.32973 2 +2710 35 52 101 18 18.24349 2 +2711 35 53 101 20 21.70627 2 +2712 35 54 105 17 13.13437 2 +2713 35 55 105 15 16.73391 2 +2714 35 56 105 14 13.33951 2 +2715 35 57 105 16 15.35222 2 +2716 35 58 105 18 25.14708 2 +2717 35 59 109 19 13.15691 2 +2718 35 60 109 17 21.47796 2 +2719 35 61 109 16 12.1481 2 +2720 35 62 109 18 23.08568 2 +2721 35 63 113 19 15.89471 2 +2722 35 64 113 17 21.62253 2 +2723 35 65 113 15 22.17308 2 +2724 35 66 113 18 73.37808 2 +2725 35 67 113 20 30.61932 2 +2726 35 68 117 17 26.13918 2 +2727 35 69 117 15 24.89501 2 +2728 35 70 117 16 20.12102 2 +2729 35 71 117 18 25.03586 2 +2730 35 72 117 20 29.76939 2 +2731 35 73 121 19 25.40336 2 +2732 35 74 121 17 35.08019 2 +2733 35 75 121 15 40.24238 2 +2734 35 76 121 16 28.81511 2 +2735 35 77 121 18 48.85665 2 +2736 35 78 125 19 30.29953 2 +2737 35 79 125 17 37.03282 2 +2738 35 80 125 15 44.08421 2 +2739 35 81 125 16 38.88944 2 +2740 35 82 125 18 41.42267 2 +2741 35 83 129 19 44.48575 2 +2742 35 84 129 17 36.84072 2 +2743 35 85 129 15 47.34765 2 +2744 35 86 129 18 45.58764 2 +2745 35 87 129 20 48.19455 2 +2746 36 0 61 25 47.70108 2 +2747 36 1 61 23 45.09718 2 +2748 36 2 61 21 31.33709 2 +2749 36 3 61 22 45.62884 2 +2750 36 4 61 24 30.3607 2 +2751 36 5 65 23 39.0112 2 +2752 36 6 65 21 36.81536 2 +2753 36 7 65 19 26.47312 2 +2754 36 8 65 22 31.10177 2 +2755 36 9 65 24 24.99592 2 +2756 36 10 69 23 30.14954 2 +2757 36 11 69 21 28.13208 2 +2758 36 12 69 19 20.29135 2 +2759 36 13 69 22 29.23314 2 +2760 36 14 69 24 23.74151 2 +2761 36 15 73 23 26.44139 2 +2762 36 16 73 21 23.4447 2 +2763 36 17 73 20 20.94899 2 +2764 36 18 73 22 21.26639 2 +2765 36 19 73 24 15.1066 2 +2766 36 20 77 23 18.99055 2 +2767 36 21 77 21 13.90729 2 +2768 36 22 77 22 15.49564 2 +2769 36 23 77 24 18.03038 2 +2770 36 24 81 23 25.66257 2 +2771 36 25 81 21 17.6513 2 +2772 36 26 81 19 9.92309 2 +2773 36 27 81 22 16.92569 2 +2774 36 28 81 24 10.06551 2 +2775 36 29 85 23 15.92208 2 +2776 36 30 85 21 15.20326 2 +2777 36 31 85 19 11.70513 2 +2778 36 32 85 20 15.01173 2 +2779 36 33 85 22 12.6288 2 +2780 36 34 89 23 15.92092 2 +2781 36 35 89 21 9.8951 2 +2782 36 36 89 20 11.59558 2 +2783 36 37 89 22 13.89909 2 +2784 36 38 89 24 8.73275 2 +2785 36 39 93 23 13.22294 2 +2786 36 40 93 21 7.29397 2 +2787 36 41 93 22 9.50844 2 +2788 36 42 93 24 11.99066 2 +2789 36 43 93 26 10.71715 2 +2790 36 44 97 25 10.14114 2 +2791 36 45 97 23 7.49265 2 +2792 36 46 97 21 12.24857 2 +2793 36 47 97 22 7.12702 2 +2794 36 48 97 24 13.19846 2 +2795 36 49 101 23 8.73178 2 +2796 36 50 101 21 13.74563 2 +2797 36 51 101 19 11.59464 2 +2798 36 52 101 22 9.89407 2 +2799 36 53 101 24 15.99628 2 +2800 36 54 105 21 10.74972 2 +2801 36 55 105 19 15.12747 2 +2802 36 56 105 20 10.98529 2 +2803 36 57 105 22 13.44876 2 +2804 36 58 105 24 16.20114 2 +2805 36 59 109 23 9.51821 2 +2806 36 60 109 21 16.05521 2 +2807 36 61 109 20 9.92202 2 +2808 36 62 109 22 18.42743 2 +2809 36 63 109 24 24.94083 2 +2810 36 64 113 23 14.6869 2 +2811 36 65 113 21 15.42316 2 +2812 36 66 113 22 20.03664 2 +2813 36 67 113 24 18.36504 2 +2814 36 68 117 23 14.87434 2 +2815 36 69 117 21 21.01222 2 +2816 36 70 117 19 21.62421 2 +2817 36 71 117 22 25.73217 2 +2818 36 72 117 24 27.40072 2 +2819 36 73 121 23 24.36928 2 +2820 36 74 121 21 33.34571 2 +2821 36 75 121 20 20.37384 2 +2822 36 76 121 22 28.68604 2 +2823 36 77 121 24 29.57611 2 +2824 36 78 125 23 25.35232 2 +2825 36 79 125 21 31.66413 2 +2826 36 80 125 20 26.07695 2 +2827 36 81 125 22 37.33842 2 +2828 36 82 125 24 34.91974 2 +2829 36 83 129 23 30.73963 2 +2830 36 84 129 21 42.60521 2 +2831 36 85 129 22 31.42838 2 +2832 36 86 129 24 40.37496 2 +2833 36 87 129 26 46.39509 2 +2834 37 0 61 29 45.05924 2 +2835 37 1 61 27 35.68485 2 +2836 37 2 61 26 39.7988 2 +2837 37 3 61 28 32.63985 2 +2838 37 4 61 30 30.19148 2 +2839 37 5 65 27 35.96064 2 +2840 37 6 65 25 32.7758 2 +2841 37 7 65 26 36.42781 2 +2842 37 8 65 28 31.59495 2 +2843 37 9 65 30 25.19851 2 +2844 37 10 69 27 30.91154 2 +2845 37 11 69 25 31.91948 2 +2846 37 12 69 26 27.70939 2 +2847 37 13 69 28 22.74606 2 +2848 37 14 69 30 20.56002 2 +2849 37 15 73 27 23.1384 2 +2850 37 16 73 25 19.76647 2 +2851 37 17 73 26 35.6033 2 +2852 37 18 73 28 16.81523 2 +2853 37 19 77 29 21.41509 2 +2854 37 20 77 27 19.27189 2 +2855 37 21 77 25 16.38085 2 +2856 37 22 77 26 21.60666 2 +2857 37 23 77 28 14.72515 2 +2858 37 24 81 29 17.80891 2 +2859 37 25 81 27 18.41989 2 +2860 37 26 81 25 9.71812 2 +2861 37 27 81 26 14.21791 2 +2862 37 28 81 28 7.00292 2 +2863 37 29 85 27 16.14759 2 +2864 37 30 85 25 13.64041 2 +2865 37 31 85 24 15.74907 2 +2866 37 32 85 26 12.99033 2 +2867 37 33 85 28 5.46105 2 +2868 37 34 89 29 12.9466 2 +2869 37 35 89 27 11.80778 2 +2870 37 36 89 25 4.15971 2 +2871 37 37 89 26 8.40438 2 +2872 37 38 89 28 6.43932 2 +2873 37 39 93 29 12.17053 2 +2874 37 40 93 27 5.64997 2 +2875 37 41 93 25 11.02256 2 +2876 37 42 93 28 6.63225 2 +2877 37 43 93 30 11.97039 2 +2878 37 44 97 29 11.97039 2 +2879 37 45 97 27 6.63225 2 +2880 37 46 97 26 11.71566 2 +2881 37 47 97 28 5.64997 2 +2882 37 48 97 30 6.50632 2 +2883 37 49 101 27 6.43833 2 +2884 37 50 101 25 8.40541 2 +2885 37 51 101 26 5.3262 2 +2886 37 52 101 28 13.8152 2 +2887 37 53 101 30 12.94556 2 +2888 37 54 105 27 3.97058 2 +2889 37 55 105 25 12.99138 2 +2890 37 56 105 23 14.95887 2 +2891 37 57 105 26 13.84551 2 +2892 37 58 105 28 14.97746 2 +2893 37 59 109 27 7.09859 2 +2894 37 60 109 25 14.42772 2 +2895 37 61 109 26 9.71706 2 +2896 37 62 109 28 18.60341 2 +2897 37 63 109 30 19.59719 2 +2898 37 64 113 27 15.38887 2 +2899 37 65 113 25 17.63114 2 +2900 37 66 113 26 15.87755 2 +2901 37 67 113 28 19.09819 2 +2902 37 68 113 30 21.45555 2 +2903 37 69 117 27 16.34104 2 +2904 37 70 117 25 34.39221 2 +2905 37 71 117 26 19.58693 2 +2906 37 72 117 28 24.67291 2 +2907 37 73 121 29 20.49876 2 +2908 37 74 121 27 21.53097 2 +2909 37 75 121 25 31.5933 2 +2910 37 76 121 26 29.96499 2 +2911 37 77 121 28 28.83964 2 +2912 37 78 125 29 22.64172 2 +2913 37 79 125 27 32.23676 2 +2914 37 80 125 25 36.30615 2 +2915 37 81 125 26 33.58506 2 +2916 37 82 125 28 34.34636 2 +2917 37 83 129 29 30.89728 2 +2918 37 84 129 27 32.41342 2 +2919 37 85 129 25 39.9249 2 +2920 37 86 129 28 35.91538 2 +2921 37 87 129 30 42.11436 2 +2922 38 0 61 35 44.93722 2 +2923 38 1 61 33 42.37623 2 +2924 38 2 61 31 37.07267 2 +2925 38 3 61 32 36.6334 2 +2926 38 4 61 34 34.2995 2 +2927 38 5 65 33 43.38745 2 +2928 38 6 65 31 42.40108 2 +2929 38 7 65 29 37.27902 2 +2930 38 8 65 32 39.53749 2 +2931 38 9 65 34 30.01828 2 +2932 38 10 69 33 37.37032 2 +2933 38 11 69 31 36.67822 2 +2934 38 12 69 29 34.29956 2 +2935 38 13 69 32 36.73628 2 +2936 38 14 69 34 24.49426 2 +2937 38 15 73 31 30.30511 2 +2938 38 16 73 29 30.50438 2 +2939 38 17 73 30 30.14534 2 +2940 38 18 73 32 25.65512 2 +2941 38 19 73 34 19.85518 2 +2942 38 20 77 33 23.43484 2 +2943 38 21 77 31 23.44863 2 +2944 38 22 77 30 22.63172 2 +2945 38 23 77 32 19.15698 2 +2946 38 24 77 34 19.92472 2 +2947 38 25 81 33 32.80768 2 +2948 38 26 81 31 15.43168 2 +2949 38 27 81 30 21.63939 2 +2950 38 28 81 32 12.90154 2 +2951 38 29 81 34 12.02643 2 +2952 38 30 85 33 22.13097 2 +2953 38 31 85 31 12.01785 2 +2954 38 32 85 29 13.67369 2 +2955 38 33 85 30 17.62251 2 +2956 38 34 85 32 11.8973 2 +2957 38 35 89 33 16.69845 2 +2958 38 36 89 31 10.95753 2 +2959 38 37 89 30 13.55324 2 +2960 38 38 89 32 13.13591 2 +2961 38 39 89 34 8.90195 2 +2962 38 40 93 33 8.42588 2 +2963 38 41 93 31 9.65779 2 +2964 38 42 93 32 11.26577 2 +2965 38 43 93 34 8.54765 2 +2966 38 44 93 36 8.36753 2 +2967 38 45 97 35 8.36753 2 +2968 38 46 97 33 8.54765 2 +2969 38 47 97 31 12.15621 2 +2970 38 48 97 32 9.44577 2 +2971 38 49 97 34 8.42588 2 +2972 38 50 101 33 8.74075 2 +2973 38 51 101 31 13.40281 2 +2974 38 52 101 29 13.55227 2 +2975 38 53 101 32 10.95656 2 +2976 38 54 101 34 18.98541 2 +2977 38 55 105 31 8.71542 2 +2978 38 56 105 29 15.0855 2 +2979 38 57 105 30 13.67474 2 +2980 38 58 105 32 12.0168 2 +2981 38 59 105 34 22.02761 2 +2982 38 60 109 33 15.24325 2 +2983 38 61 109 31 12.25157 2 +2984 38 62 109 29 24.55607 2 +2985 38 63 109 32 15.43075 2 +2986 38 64 109 34 24.21212 2 +2987 38 65 113 33 13.64338 2 +2988 38 66 113 31 15.48732 2 +2989 38 67 113 29 20.1978 2 +2990 38 68 113 32 22.18935 2 +2991 38 69 113 34 22.77582 2 +2992 38 70 117 33 20.0497 2 +2993 38 71 117 31 24.44506 2 +2994 38 72 117 29 31.7738 2 +2995 38 73 117 30 28.85187 2 +2996 38 74 117 32 31.87821 2 +2997 38 75 121 33 25.53793 2 +2998 38 76 121 31 36.21191 2 +2999 38 77 121 30 35.81406 2 +3000 38 78 121 32 37.93313 2 +3001 38 79 121 34 45.06509 2 +3002 38 80 125 33 26.76541 2 +3003 38 81 125 31 35.18992 2 +3004 38 82 125 30 36.07014 2 +3005 38 83 125 32 36.20439 2 +3006 38 84 125 34 38.89333 2 +3007 38 85 129 33 36.03787 2 +3008 38 86 129 31 35.94076 2 +3009 38 87 129 32 40.04279 2 +3010 38 88 129 34 42.29423 2 +3011 38 89 129 36 45.23782 2 +3012 39 0 61 39 47.33865 2 +3013 39 1 61 37 46.86031 2 +3014 39 2 61 36 52.72815 2 +3015 39 3 61 38 48.97679 2 +3016 39 4 61 40 38.56398 2 +3017 39 5 65 37 48.63644 2 +3018 39 6 65 35 47.90005 2 +3019 39 7 65 36 48.23983 2 +3020 39 8 65 38 35.80347 2 +3021 39 9 65 40 32.37495 2 +3022 39 10 69 39 37.89861 2 +3023 39 11 69 37 53.97172 2 +3024 39 12 69 35 33.16143 2 +3025 39 13 69 36 39.21155 2 +3026 39 14 69 38 29.57991 2 +3027 39 15 73 35 36.17155 2 +3028 39 16 73 33 37.98004 2 +3029 39 17 73 36 35.72569 4 +3030 39 18 73 38 24.55777 2 +3031 39 19 73 40 20.38321 2 +3032 39 20 77 39 26.76619 2 +3033 39 21 77 37 22.70611 2 +3034 39 22 77 35 21.4945 2 +3035 39 23 77 36 19.34188 2 +3036 39 24 77 38 17.08146 2 +3037 39 25 81 37 20.70572 2 +3038 39 26 81 35 20.02515 2 +3039 39 27 81 36 28.1494 2 +3040 39 28 81 38 16.03416 2 +3041 39 29 81 40 12.67476 2 +3042 39 30 85 39 21.53726 2 +3043 39 31 85 37 19.96519 2 +3044 39 32 85 35 23.77355 2 +3045 39 33 85 34 20.17 2 +3046 39 34 85 36 15.13508 2 +3047 39 35 89 37 22.15501 2 +3048 39 36 89 35 15.65041 2 +3049 39 37 89 36 22.82424 2 +3050 39 38 89 38 17.62758 2 +3051 39 39 89 40 12.7434 2 +3052 39 40 93 39 12.33165 2 +3053 39 41 93 37 12.81763 2 +3054 39 42 93 35 14.72336 2 +3055 39 43 93 38 12.35044 2 +3056 39 44 93 40 13.22286 2 +3057 39 45 97 39 13.22286 2 +3058 39 46 97 37 13.2109 2 +3059 39 47 97 36 14.96803 2 +3060 39 48 97 38 12.85343 2 +3061 39 49 97 40 12.33165 2 +3062 39 50 101 39 10.47804 2 +3063 39 51 101 37 29.78209 2 +3064 39 52 101 35 16.6352 2 +3065 39 53 101 36 15.85535 2 +3066 39 54 101 38 20.71006 2 +3067 39 55 105 35 15.78041 2 +3068 39 56 105 33 18.56919 2 +3069 39 57 105 36 19.33781 2 +3070 39 58 105 38 19.96414 2 +3071 39 59 105 40 21.53626 2 +3072 39 60 109 39 12.67583 2 +3073 39 61 109 37 16.17694 2 +3074 39 62 109 35 18.75376 2 +3075 39 63 109 36 20.40632 2 +3076 39 64 109 38 21.2193 2 +3077 39 65 113 37 15.60565 2 +3078 39 66 113 35 19.34765 2 +3079 39 67 113 36 22.38545 2 +3080 39 68 113 38 22.78634 2 +3081 39 69 113 40 26.49009 2 +3082 39 70 117 39 21.17194 2 +3083 39 71 117 37 26.13863 2 +3084 39 72 117 35 40.81713 2 +3085 39 73 117 34 35.44417 2 +3086 39 74 117 36 34.20291 2 +3087 39 75 121 37 27.92488 2 +3088 39 76 121 35 44.38803 2 +3089 39 77 121 36 31.39945 2 +3090 39 78 121 38 40.01333 2 +3091 39 79 121 40 40.69605 2 +3092 39 80 125 39 32.31928 2 +3093 39 81 125 37 40.06308 2 +3094 39 82 125 35 46.71773 2 +3095 39 83 125 36 47.30525 2 +3096 39 84 125 38 42.29457 2 +3097 39 85 129 39 50.89122 2 +3098 39 86 129 37 48.68296 2 +3099 39 87 129 35 47.21309 2 +3100 39 88 129 38 46.42747 2 +3101 39 89 129 40 47.69341 2 +3102 40 0 62 5 47.80891 2 +3103 40 1 62 3 47.18413 2 +3104 40 2 62 1 40.46433 2 +3105 40 3 62 2 47.51412 2 +3106 40 4 62 4 35.28041 2 +3107 40 5 65 39 53.01761 2 +3108 40 6 66 3 41.36503 2 +3109 40 7 66 1 36.40103 2 +3110 40 8 66 2 42.28303 2 +3111 40 9 66 4 31.15592 2 +3112 40 10 70 3 44.31554 2 +3113 40 11 70 1 32.44444 2 +3114 40 12 70 2 40.89561 2 +3115 40 13 70 4 31.72583 2 +3116 40 14 69 40 45.47658 2 +3117 40 15 73 39 42.94822 4 +3118 40 16 73 37 44.10457 2 +3119 40 17 74 2 31.25653 2 +3120 40 18 74 4 22.89253 2 +3121 40 19 74 6 24.68786 2 +3122 40 20 78 3 26.89819 2 +3123 40 21 78 1 20.97356 2 +3124 40 22 78 2 25.76137 2 +3125 40 23 78 4 19.70242 2 +3126 40 24 77 40 20.20416 2 +3127 40 25 81 39 34.96024 2 +3128 40 26 82 3 23.18622 2 +3129 40 27 82 1 17.45096 2 +3130 40 28 82 2 16.5881 2 +3131 40 29 82 4 17.5133 2 +3132 40 30 86 5 25.07317 2 +3133 40 31 86 3 18.17175 2 +3134 40 32 86 1 16.66849 2 +3135 40 33 85 38 26.27615 2 +3136 40 34 85 40 19.13979 2 +3137 40 35 89 39 22.31859 2 +3138 40 36 90 3 22.09478 2 +3139 40 37 90 1 14.25246 2 +3140 40 38 90 2 17.07163 2 +3141 40 39 90 4 21.14054 2 +3142 40 40 94 3 16.9151 2 +3143 40 41 94 1 15.83026 2 +3144 40 42 94 2 14.6204 2 +3145 40 43 94 4 15.68926 2 +3146 40 44 94 6 23.23508 2 +3147 40 45 98 5 22.15276 2 +3148 40 46 98 3 15.33342 2 +3149 40 47 98 1 14.38181 2 +3150 40 48 98 2 15.18827 2 +3151 40 49 98 4 17.95892 2 +3152 40 50 102 3 19.31835 2 +3153 40 51 102 1 15.5028 2 +3154 40 52 102 2 14.35663 2 +3155 40 53 102 4 22.09575 2 +3156 40 54 101 40 26.56142 2 +3157 40 55 105 39 18.9716 2 +3158 40 56 105 37 24.72572 2 +3159 40 57 106 2 16.66944 2 +3160 40 58 106 4 18.1708 2 +3161 40 59 106 6 25.30797 2 +3162 40 60 110 3 17.34379 2 +3163 40 61 110 1 16.61242 2 +3164 40 62 110 2 17.03222 2 +3165 40 63 110 4 18.94174 2 +3166 40 64 109 40 35.83593 2 +3167 40 65 113 39 21.34216 2 +3168 40 66 114 3 20.07032 2 +3169 40 67 114 1 30.02528 2 +3170 40 68 114 2 21.89752 2 +3171 40 69 114 4 29.51288 2 +3172 40 70 118 5 29.28043 2 +3173 40 71 118 3 23.33713 2 +3174 40 72 118 1 32.10649 2 +3175 40 73 117 38 39.30858 2 +3176 40 74 117 40 43.03879 4 +3177 40 75 121 39 36.06343 2 +3178 40 76 122 3 32.33538 2 +3179 40 77 122 1 38.44154 2 +3180 40 78 122 2 34.81243 2 +3181 40 79 122 4 40.61316 2 +3182 40 80 126 3 32.42023 2 +3183 40 81 126 1 42.23265 2 +3184 40 82 126 2 36.87943 2 +3185 40 83 126 4 41.93963 2 +3186 40 84 125 40 52.61509 2 +3187 40 85 130 3 38.34898 2 +3188 40 86 130 1 47.88837 2 +3189 40 87 130 2 42.07203 2 +3190 40 88 130 4 42.40253 2 +3191 40 89 130 6 47.07557 2 +3192 41 0 62 9 41.60729 2 +3193 41 1 62 7 41.88154 2 +3194 41 2 62 6 41.31534 2 +3195 41 3 62 8 41.80787 2 +3196 41 4 62 10 35.21244 2 +3197 41 5 66 7 39.97191 2 +3198 41 6 66 5 34.46942 2 +3199 41 7 66 6 32.71753 2 +3200 41 8 66 8 37.13168 2 +3201 41 9 66 10 32.98139 2 +3202 41 10 70 7 30.73413 2 +3203 41 11 70 5 26.20291 2 +3204 41 12 70 6 36.1995 2 +3205 41 13 70 8 24.65739 2 +3206 41 14 70 10 25.77966 2 +3207 41 15 74 5 30.98593 2 +3208 41 16 74 3 20.04636 2 +3209 41 17 74 1 18.84237 2 +3210 41 18 74 8 20.02338 2 +3211 41 19 74 10 21.25407 2 +3212 41 20 78 7 25.94945 2 +3213 41 21 78 5 17.61825 2 +3214 41 22 78 6 25.20057 2 +3215 41 23 78 8 17.04192 2 +3216 41 24 78 10 15.03617 2 +3217 41 25 82 9 20.90411 2 +3218 41 26 82 7 18.36142 2 +3219 41 27 82 5 10.94648 2 +3220 41 28 82 6 11.38522 2 +3221 41 29 82 8 12.3901 2 +3222 41 30 86 9 15.59747 2 +3223 41 31 86 7 16.58043 2 +3224 41 32 86 2 15.6989 2 +3225 41 33 86 4 9.87249 2 +3226 41 34 86 6 10.84355 2 +3227 41 35 90 9 20.42407 2 +3228 41 36 90 7 17.96316 2 +3229 41 37 90 5 11.19667 2 +3230 41 38 90 6 11.51237 2 +3231 41 39 90 8 15.46465 2 +3232 41 40 94 9 15.00679 2 +3233 41 41 94 7 11.56478 2 +3234 41 42 94 5 10.35621 2 +3235 41 43 94 8 12.4733 2 +3236 41 44 94 10 19.2461 2 +3237 41 45 98 9 22.33268 2 +3238 41 46 98 7 10.75034 2 +3239 41 47 98 6 10.80051 2 +3240 41 48 98 8 11.7752 2 +3241 41 49 98 10 13.88963 2 +3242 41 50 102 7 15.5076 2 +3243 41 51 102 5 12.95133 2 +3244 41 52 102 6 11.03278 2 +3245 41 53 102 8 18.15252 2 +3246 41 54 102 10 20.23266 2 +3247 41 55 106 5 10.8446 2 +3248 41 56 106 3 9.87144 2 +3249 41 57 106 1 14.95601 2 +3250 41 58 106 8 16.16973 2 +3251 41 59 106 10 15.59652 2 +3252 41 60 110 7 12.39103 2 +3253 41 61 110 5 11.90157 2 +3254 41 62 110 6 11.3401 2 +3255 41 63 110 8 17.30437 2 +3256 41 64 110 10 18.32128 2 +3257 41 65 114 9 14.93542 2 +3258 41 66 114 7 16.92913 2 +3259 41 67 114 5 23.65778 2 +3260 41 68 114 6 17.65676 2 +3261 41 69 114 8 30.32867 2 +3262 41 70 118 9 21.27259 2 +3263 41 71 118 7 19.57424 2 +3264 41 72 118 2 19.40677 2 +3265 41 73 118 4 22.69088 2 +3266 41 74 118 6 29.07794 2 +3267 41 75 122 9 26.14231 2 +3268 41 76 122 7 27.51622 2 +3269 41 77 122 5 34.98761 2 +3270 41 78 122 6 26.35057 2 +3271 41 79 122 8 34.23709 2 +3272 41 80 126 9 30.16608 2 +3273 41 81 126 7 37.82001 2 +3274 41 82 126 5 33.11594 2 +3275 41 83 126 6 33.02293 2 +3276 41 84 126 8 39.92377 2 +3277 41 85 130 9 31.98705 2 +3278 41 86 130 7 42.13128 2 +3279 41 87 130 5 42.27969 2 +3280 41 88 130 8 41.87163 2 +3281 41 89 130 10 41.35424 2 +3282 42 0 62 15 48.15605 2 +3283 42 1 62 13 36.12901 2 +3284 42 2 62 11 35.10949 2 +3285 42 3 62 12 41.43208 2 +3286 42 4 62 14 30.40035 2 +3287 42 5 66 13 40.05969 2 +3288 42 6 66 11 38.46429 2 +3289 42 7 66 9 27.46186 2 +3290 42 8 66 12 39.94948 2 +3291 42 9 66 14 30.14018 2 +3292 42 10 70 13 31.21776 2 +3293 42 11 70 11 29.68654 2 +3294 42 12 70 9 28.89169 2 +3295 42 13 70 12 24.69974 2 +3296 42 14 70 14 25.02004 2 +3297 42 15 74 11 27.7427 2 +3298 42 16 74 9 25.74326 2 +3299 42 17 74 7 19.54162 2 +3300 42 18 74 12 19.71615 2 +3301 42 19 74 14 19.11812 2 +3302 42 20 74 16 19.48871 2 +3303 42 21 78 13 18.97417 2 +3304 42 22 78 11 18.20829 2 +3305 42 23 78 9 18.03161 2 +3306 42 24 78 12 13.27693 2 +3307 42 25 78 14 12.21988 2 +3308 42 26 82 13 20.21568 2 +3309 42 27 82 11 11.71611 2 +3310 42 28 82 10 12.2817 2 +3311 42 29 82 12 15.45375 2 +3312 42 30 82 14 8.68379 2 +3313 42 31 86 15 26.4379 2 +3314 42 32 86 13 11.12532 2 +3315 42 33 86 11 9.82623 2 +3316 42 34 86 8 14.58639 2 +3317 42 35 86 10 7.0807 2 +3318 42 36 90 13 14.21293 2 +3319 42 37 90 11 8.23456 2 +3320 42 38 90 10 9.92963 2 +3321 42 39 90 12 6.78538 2 +3322 42 40 90 14 12.0646 2 +3323 42 41 94 13 14.72398 2 +3324 42 42 94 11 6.76878 2 +3325 42 43 94 12 14.75632 2 +3326 42 44 94 14 8.53843 2 +3327 42 45 94 16 9.86739 2 +3328 42 46 98 15 9.86739 2 +3329 42 47 98 13 10.62629 2 +3330 42 48 98 11 7.61814 2 +3331 42 49 98 12 6.73465 2 +3332 42 50 98 14 12.98132 2 +3333 42 51 102 13 12.06364 2 +3334 42 52 102 11 6.78641 2 +3335 42 53 102 9 9.92869 2 +3336 42 54 102 12 8.23353 2 +3337 42 55 102 14 14.2139 2 +3338 42 56 106 9 7.18672 2 +3339 42 57 106 7 14.10048 2 +3340 42 58 106 12 9.97723 2 +3341 42 59 106 14 11.12437 2 +3342 42 60 106 16 27.03192 2 +3343 42 61 110 13 6.98019 2 +3344 42 62 110 11 12.43915 2 +3345 42 63 110 9 18.46801 2 +3346 42 64 110 12 11.91686 2 +3347 42 65 110 14 20.66298 2 +3348 42 66 114 13 11.34681 2 +3349 42 67 114 11 13.40196 2 +3350 42 68 114 10 13.69861 2 +3351 42 69 114 12 13.95597 2 +3352 42 70 114 14 18.65957 2 +3353 42 71 118 15 13.86961 2 +3354 42 72 118 13 20.33216 2 +3355 42 73 118 11 19.71504 2 +3356 42 74 118 8 18.04849 2 +3357 42 75 118 10 25.52377 2 +3358 42 76 118 12 26.369 2 +3359 42 77 122 13 24.89548 2 +3360 42 78 122 11 24.1386 2 +3361 42 79 122 10 28.07278 2 +3362 42 80 122 12 29.12592 2 +3363 42 81 122 14 31.43208 2 +3364 42 82 126 13 30.20087 2 +3365 42 83 126 11 38.75054 2 +3366 42 84 126 10 27.21976 2 +3367 42 85 126 12 38.72225 2 +3368 42 86 126 14 35.76323 2 +3369 42 87 130 13 29.94155 2 +3370 42 88 130 11 41.52916 2 +3371 42 89 130 12 39.11757 2 +3372 42 90 130 14 35.99995 2 +3373 42 91 130 16 44.60274 2 +3374 43 0 62 19 46.11073 2 +3375 43 1 62 17 39.83431 2 +3376 43 2 62 16 40.97858 2 +3377 43 3 62 18 34.59148 2 +3378 43 4 62 20 31.48411 2 +3379 43 5 66 19 43.18088 2 +3380 43 6 66 17 31.16443 2 +3381 43 7 66 15 31.60594 2 +3382 43 8 66 16 28.32817 2 +3383 43 9 66 18 27.60244 2 +3384 43 10 70 17 31.1591 2 +3385 43 11 70 15 32.16887 2 +3386 43 12 70 16 30.69612 2 +3387 43 13 70 18 26.22132 2 +3388 43 14 70 20 22.32127 2 +3389 43 15 74 17 38.71603 2 +3390 43 16 74 15 25.58392 2 +3391 43 17 74 13 20.68918 2 +3392 43 18 74 18 18.01667 2 +3393 43 19 74 20 17.5206 2 +3394 43 20 78 19 21.42963 2 +3395 43 21 78 17 18.06792 2 +3396 43 22 78 15 17.33745 2 +3397 43 23 78 16 20.84022 2 +3398 43 24 78 18 12.94846 2 +3399 43 25 78 20 9.00026 2 +3400 43 26 82 19 16.03615 2 +3401 43 27 82 17 15.25187 2 +3402 43 28 82 15 6.71599 2 +3403 43 29 82 16 12.59006 2 +3404 43 30 82 18 6.74243 2 +3405 43 31 86 19 15.5452 2 +3406 43 32 86 17 14.01443 2 +3407 43 33 86 12 12.76991 2 +3408 43 34 86 14 8.93665 2 +3409 43 35 86 16 6.37299 2 +3410 43 36 90 19 14.30874 2 +3411 43 37 90 17 11.41651 2 +3412 43 38 90 15 4.81505 2 +3413 43 39 90 16 4.74426 2 +3414 43 40 90 18 4.93946 2 +3415 43 41 94 19 6.38079 2 +3416 43 42 94 17 6.36247 2 +3417 43 43 94 15 16.58421 2 +3418 43 44 94 18 6.54908 2 +3419 43 45 94 20 9.37612 2 +3420 43 46 98 19 10.83727 2 +3421 43 47 98 17 6.69823 2 +3422 43 48 98 16 16.21287 2 +3423 43 49 98 18 5.38717 2 +3424 43 50 98 20 6.38079 2 +3425 43 51 102 17 4.94042 2 +3426 43 52 102 15 4.7433 2 +3427 43 53 102 16 4.81402 2 +3428 43 54 102 18 11.41748 2 +3429 43 55 102 20 14.45801 2 +3430 43 56 106 15 6.37394 2 +3431 43 57 106 13 10.38602 2 +3432 43 58 106 11 12.68029 2 +3433 43 59 106 18 14.12179 2 +3434 43 60 106 20 15.63741 2 +3435 43 61 110 17 6.74343 2 +3436 43 62 110 15 12.37328 2 +3437 43 63 110 16 6.71506 2 +3438 43 64 110 18 15.39685 2 +3439 43 65 110 20 16.3633 2 +3440 43 66 114 19 8.79577 2 +3441 43 67 114 17 13.10639 2 +3442 43 68 114 15 21.80885 2 +3443 43 69 114 16 16.90965 2 +3444 43 70 114 18 18.10713 2 +3445 43 71 114 20 25.56695 2 +3446 43 72 118 19 17.82868 2 +3447 43 73 118 17 20.8666 2 +3448 43 74 118 14 19.56572 2 +3449 43 75 118 16 27.37584 2 +3450 43 76 118 18 28.23259 2 +3451 43 77 122 19 24.25849 2 +3452 43 78 122 17 24.47596 2 +3453 43 79 122 15 30.91142 2 +3454 43 80 122 16 33.33763 2 +3455 43 81 122 18 33.84305 2 +3456 43 82 126 17 40.20319 2 +3457 43 83 126 15 28.54743 2 +3458 43 84 126 16 32.32667 2 +3459 43 85 126 18 31.78774 2 +3460 43 86 126 20 42.70805 2 +3461 43 87 130 19 31.96423 2 +3462 43 88 130 17 34.03376 2 +3463 43 89 130 15 46.25939 2 +3464 43 90 130 18 37.38115 2 +3465 43 91 130 20 45.58708 2 +3466 44 0 62 25 41.21159 2 +3467 44 1 62 23 45.17063 2 +3468 44 2 62 21 37.74264 2 +3469 44 3 62 22 43.13706 2 +3470 44 4 62 24 31.67383 2 +3471 44 5 66 23 40.21832 2 +3472 44 6 66 21 33.75882 2 +3473 44 7 66 20 40.2753 2 +3474 44 8 66 22 32.02869 2 +3475 44 9 66 24 27.26692 2 +3476 44 10 70 23 40.83909 2 +3477 44 11 70 21 31.74553 2 +3478 44 12 70 19 27.91957 2 +3479 44 13 70 22 33.12486 2 +3480 44 14 70 24 20.22367 2 +3481 44 15 74 23 30.05427 2 +3482 44 16 74 21 23.42941 2 +3483 44 17 74 19 45.2151 2 +3484 44 18 74 22 24.35024 2 +3485 44 19 74 24 18.59686 2 +3486 44 20 78 25 28.1981 2 +3487 44 21 78 23 19.12979 2 +3488 44 22 78 21 17.80936 2 +3489 44 23 78 22 24.15456 2 +3490 44 24 78 24 12.97259 2 +3491 44 25 82 25 25.14077 2 +3492 44 26 82 23 20.82959 2 +3493 44 27 82 21 12.21251 2 +3494 44 28 82 20 14.48819 2 +3495 44 29 82 22 14.46996 2 +3496 44 30 82 24 6.56812 2 +3497 44 31 86 23 15.69581 2 +3498 44 32 86 21 19.78145 2 +3499 44 33 86 18 16.9172 2 +3500 44 34 86 20 15.22466 2 +3501 44 35 86 22 8.91116 2 +3502 44 36 90 23 15.67349 2 +3503 44 37 90 21 14.56526 2 +3504 44 38 90 20 20.36527 2 +3505 44 39 90 22 11.05229 2 +3506 44 40 90 24 7.62301 2 +3507 44 41 94 23 8.53214 2 +3508 44 42 94 21 9.22965 2 +3509 44 43 94 22 11.95511 2 +3510 44 44 94 24 8.63182 2 +3511 44 45 94 26 8.39934 2 +3512 44 46 98 25 8.4708 2 +3513 44 47 98 23 7.92792 2 +3514 44 48 98 21 9.30311 2 +3515 44 49 98 22 9.55643 2 +3516 44 50 98 24 8.53214 2 +3517 44 51 102 23 6.40429 2 +3518 44 52 102 21 8.99193 2 +3519 44 53 102 19 24.76427 2 +3520 44 54 102 22 12.70592 2 +3521 44 55 102 24 12.88976 2 +3522 44 56 106 21 10.03446 2 +3523 44 57 106 19 17.66431 2 +3524 44 58 106 17 16.47278 2 +3525 44 59 106 22 16.09376 2 +3526 44 60 106 24 14.98596 2 +3527 44 61 110 23 7.44142 2 +3528 44 62 110 21 14.89576 2 +3529 44 63 110 19 14.57406 2 +3530 44 64 110 22 12.44079 2 +3531 44 65 110 24 20.11518 2 +3532 44 66 110 26 24.12401 2 +3533 44 67 114 23 13.15185 2 +3534 44 68 114 21 26.66566 2 +3535 44 69 114 22 17.78158 2 +3536 44 70 114 24 19.26657 2 +3537 44 71 114 26 28.91348 2 +3538 44 72 118 23 16.24109 2 +3539 44 73 118 21 24.99648 2 +3540 44 74 118 20 25.60115 2 +3541 44 75 118 22 27.58766 2 +3542 44 76 118 24 29.69662 2 +3543 44 77 122 23 19.53904 2 +3544 44 78 122 21 24.94886 2 +3545 44 79 122 20 30.56217 2 +3546 44 80 122 22 28.20491 2 +3547 44 81 122 24 33.90357 2 +3548 44 82 126 23 27.06093 2 +3549 44 83 126 21 30.9194 2 +3550 44 84 126 19 38.95593 2 +3551 44 85 126 22 36.39739 2 +3552 44 86 126 24 41.05562 2 +3553 44 87 130 23 30.33557 2 +3554 44 88 130 21 42.7457 2 +3555 44 89 130 22 37.84833 2 +3556 44 90 130 24 38.62262 2 +3557 44 91 130 26 44.87798 2 +3558 45 0 62 29 47.43848 2 +3559 45 1 62 27 52.25459 2 +3560 45 2 62 26 69.69524 2 +3561 45 3 62 28 41.02112 2 +3562 45 4 62 30 39.12638 2 +3563 45 5 66 29 46.90478 2 +3564 45 6 66 27 44.00684 2 +3565 45 7 66 25 42.65606 2 +3566 45 8 66 26 40.3136 2 +3567 45 9 66 28 37.76402 2 +3568 45 10 66 30 31.33729 2 +3569 45 11 70 29 39.90559 2 +3570 45 12 70 27 36.17776 2 +3571 45 13 70 25 29.38228 2 +3572 45 14 70 26 38.59369 2 +3573 45 15 70 28 28.83241 2 +3574 45 16 74 29 30.74469 2 +3575 45 17 74 27 31.62607 2 +3576 45 18 74 25 24.90139 2 +3577 45 19 74 26 32.25554 2 +3578 45 20 74 28 45.62128 2 +3579 45 21 78 29 32.15259 2 +3580 45 22 78 27 34.7322 2 +3581 45 23 78 26 29.50243 2 +3582 45 24 78 28 25.23597 2 +3583 45 25 78 30 17.36473 2 +3584 45 26 82 29 32.04554 2 +3585 45 27 82 27 17.86991 2 +3586 45 28 82 26 24.30767 2 +3587 45 29 82 28 17.80432 2 +3588 45 30 82 30 37.06288 2 +3589 45 31 86 29 27.82248 2 +3590 45 32 86 27 20.14681 2 +3591 45 33 86 25 16.58767 2 +3592 45 34 86 24 22.97621 2 +3593 45 35 86 26 17.16798 2 +3594 45 36 86 28 12.25726 2 +3595 45 37 90 29 17.90521 2 +3596 45 38 90 27 21.042 2 +3597 45 39 90 25 15.75847 2 +3598 45 40 90 26 18.50249 2 +3599 45 41 90 28 21.94569 2 +3600 45 42 94 29 12.36382 2 +3601 45 43 94 27 12.98186 2 +3602 45 44 94 25 16.15528 2 +3603 45 45 94 28 13.31943 2 +3604 45 46 94 30 13.26611 2 +3605 45 47 98 29 13.26611 2 +3606 45 48 98 27 13.31743 2 +3607 45 49 98 26 15.12698 2 +3608 45 50 98 28 20.84888 2 +3609 45 51 98 30 12.36382 2 +3610 45 52 102 27 15.17183 2 +3611 45 53 102 25 15.06135 2 +3612 45 54 102 26 14.6719 2 +3613 45 55 102 28 13.87238 2 +3614 45 56 102 30 16.74783 2 +3615 45 57 106 27 12.20195 2 +3616 45 58 106 25 24.69311 2 +3617 45 59 106 23 24.79536 2 +3618 45 60 106 26 20.18923 2 +3619 45 61 106 28 15.97714 2 +3620 45 62 106 30 35.02677 2 +3621 45 63 110 29 15.10523 2 +3622 45 64 110 27 17.24086 2 +3623 45 65 110 25 24.8212 2 +3624 45 66 110 28 20.78475 2 +3625 45 67 110 30 29.28823 2 +3626 45 68 114 29 15.26868 2 +3627 45 69 114 27 26.12553 2 +3628 45 70 114 25 34.75366 2 +3629 45 71 114 28 35.14399 2 +3630 45 72 114 30 24.52448 2 +3631 45 73 118 27 19.22319 2 +3632 45 74 118 25 31.19401 2 +3633 45 75 118 26 24.63892 2 +3634 45 76 118 28 27.62027 2 +3635 45 77 118 30 27.86606 2 +3636 45 78 122 27 27.59524 2 +3637 45 79 122 25 31.3449 2 +3638 45 80 122 26 26.79183 2 +3639 45 81 122 28 34.07789 2 +3640 45 82 122 30 32.31766 2 +3641 45 83 126 29 31.34839 2 +3642 45 84 126 27 42.72695 2 +3643 45 85 126 25 44.28129 2 +3644 45 86 126 26 42.63243 2 +3645 45 87 126 28 47.06039 2 +3646 45 88 126 30 41.25713 2 +3647 45 89 130 29 39.6589 2 +3648 45 90 130 27 45.12072 2 +3649 45 91 130 25 64.71794 2 +3650 45 92 130 28 48.56201 2 +3651 45 93 130 30 46.7598 2 +3652 46 0 62 35 52.07746 2 +3653 46 1 62 33 55.17917 2 +3654 46 2 62 31 47.70294 2 +3655 46 3 62 32 56.443 2 +3656 46 4 62 34 42.38675 2 +3657 46 5 66 33 49.90234 2 +3658 46 6 66 31 51.9933 2 +3659 46 7 66 32 51.7984 2 +3660 46 8 66 34 47.36625 2 +3661 46 9 66 36 36.11611 2 +3662 46 10 70 35 46.25766 2 +3663 46 11 70 33 46.08307 2 +3664 46 12 70 31 42.63121 2 +3665 46 13 70 30 47.44298 2 +3666 46 14 70 32 38.29302 2 +3667 46 15 70 34 35.22162 2 +3668 46 16 74 33 36.5164 2 +3669 46 17 74 31 35.18498 2 +3670 46 18 74 30 40.6752 2 +3671 46 19 74 32 33.51265 2 +3672 46 20 74 34 25.52111 2 +3673 46 21 78 35 31.1145 2 +3674 46 22 78 33 29.6746 2 +3675 46 23 78 31 41.85569 2 +3676 46 24 78 32 40.3264 2 +3677 46 25 78 34 24.31542 2 +3678 46 26 82 35 26.69198 2 +3679 46 27 82 33 27.78354 2 +3680 46 28 82 31 20.20038 2 +3681 46 29 82 32 31.77594 2 +3682 46 30 82 34 19.58506 2 +3683 46 31 86 35 22.25494 2 +3684 46 32 86 33 27.73219 2 +3685 46 33 86 31 20.79811 2 +3686 46 34 86 30 22.92251 2 +3687 46 35 86 32 19.15714 2 +3688 46 36 86 34 16.96801 2 +3689 46 37 90 33 19.22678 2 +3690 46 38 90 31 20.03638 2 +3691 46 39 90 30 53.40812 2 +3692 46 40 90 32 17.91038 2 +3693 46 41 90 34 15.47895 2 +3694 46 42 94 33 18.72139 2 +3695 46 43 94 31 19.20089 2 +3696 46 44 94 32 17.931 2 +3697 46 45 94 34 16.2776 2 +3698 46 46 94 36 20.94789 2 +3699 46 47 98 35 20.60777 2 +3700 46 48 98 33 16.2776 2 +3701 46 49 98 31 17.931 2 +3702 46 50 98 32 19.94405 2 +3703 46 51 98 34 18.38365 2 +3704 46 52 102 33 16.32785 2 +3705 46 53 102 31 17.411 2 +3706 46 54 102 29 27.2509 2 +3707 46 55 102 32 21.08792 2 +3708 46 56 102 34 19.22575 2 +3709 46 57 106 33 16.03177 2 +3710 46 58 106 31 19.31124 2 +3711 46 59 106 29 23.22844 2 +3712 46 60 106 32 19.76847 2 +3713 46 61 106 34 26.73156 2 +3714 46 62 106 36 24.72603 2 +3715 46 63 110 33 17.39558 2 +3716 46 64 110 31 30.00016 2 +3717 46 65 110 32 20.02324 2 +3718 46 66 110 34 31.40751 2 +3719 46 67 110 36 27.02715 2 +3720 46 68 114 33 20.20861 2 +3721 46 69 114 31 32.00615 2 +3722 46 70 114 32 20.28369 2 +3723 46 71 114 34 44.45981 2 +3724 46 72 114 36 31.01925 2 +3725 46 73 118 33 21.82214 2 +3726 46 74 118 31 30.66415 2 +3727 46 75 118 29 41.61773 2 +3728 46 76 118 32 40.49221 2 +3729 46 77 118 34 31.83233 2 +3730 46 78 122 33 31.98051 2 +3731 46 79 122 31 36.46849 2 +3732 46 80 122 29 42.65763 2 +3733 46 81 122 32 42.02873 2 +3734 46 82 122 34 38.51673 2 +3735 46 83 122 36 43.73003 2 +3736 46 84 126 35 37.51943 2 +3737 46 85 126 33 47.19886 2 +3738 46 86 126 31 49.73577 2 +3739 46 87 126 32 50.96043 2 +3740 46 88 126 34 53.09439 2 +3741 46 89 130 33 44.6435 2 +3742 46 90 130 31 43.48664 2 +3743 46 91 130 32 45.84849 2 +3744 46 92 130 34 49.77982 2 +3745 46 93 130 36 54.5515 2 +3746 47 0 62 39 58.07148 2 +3747 47 1 62 37 55.17664 2 +3748 47 2 62 36 57.49609 2 +3749 47 3 62 38 52.62594 2 +3750 47 4 62 40 44.52247 2 +3751 47 5 66 39 57.15695 2 +3752 47 6 66 37 52.70437 2 +3753 47 7 66 35 59.81066 2 +3754 47 8 66 38 52.87443 2 +3755 47 9 66 40 42.17667 2 +3756 47 10 70 39 54.46432 2 +3757 47 11 70 37 49.79709 2 +3758 47 12 70 36 49.25109 2 +3759 47 13 70 38 45.55832 2 +3760 47 14 70 40 38.61825 2 +3761 47 15 74 39 45.49018 2 +3762 47 16 74 37 38.14593 2 +3763 47 17 74 35 39.31223 2 +3764 47 18 74 36 45.54524 2 +3765 47 19 74 38 34.95454 2 +3766 47 20 74 40 58.83767 2 +3767 47 21 78 39 33.75334 2 +3768 47 22 78 37 32.99618 2 +3769 47 23 78 36 35.28367 2 +3770 47 24 78 38 35.7989 2 +3771 47 25 78 40 31.69522 2 +3772 47 26 82 39 34.36043 2 +3773 47 27 82 37 33.12495 2 +3774 47 28 82 36 35.55578 2 +3775 47 29 82 38 28.99471 2 +3776 47 30 82 40 20.64993 2 +3777 47 31 86 39 24.7485 2 +3778 47 32 86 37 24.67265 2 +3779 47 33 86 36 35.77466 2 +3780 47 34 86 38 24.69082 2 +3781 47 35 86 40 21.76475 2 +3782 47 36 90 39 28.22649 2 +3783 47 37 90 37 24.08957 2 +3784 47 38 90 35 27.03935 2 +3785 47 39 90 36 25.83065 2 +3786 47 40 90 38 21.7755 2 +3787 47 41 90 40 20.86603 2 +3788 47 42 94 39 22.08675 2 +3789 47 43 94 37 27.86224 2 +3790 47 44 94 35 24.6647 2 +3791 47 45 94 38 19.9015 2 +3792 47 46 94 40 22.41031 2 +3793 47 47 98 39 22.69431 2 +3794 47 48 98 37 19.9015 2 +3795 47 49 98 36 26.68255 2 +3796 47 50 98 38 27.86224 2 +3797 47 51 98 40 22.08675 2 +3798 47 52 102 39 20.06737 2 +3799 47 53 102 37 21.11112 2 +3800 47 54 102 35 24.98685 2 +3801 47 55 102 36 24.51351 2 +3802 47 56 102 38 24.08854 2 +3803 47 57 102 40 31.12378 2 +3804 47 58 106 39 21.76569 2 +3805 47 59 106 37 25.29492 2 +3806 47 60 106 35 34.95737 2 +3807 47 61 106 38 25.35122 2 +3808 47 62 106 40 25.00153 2 +3809 47 63 110 39 20.84226 2 +3810 47 64 110 37 28.9957 2 +3811 47 65 110 35 35.55671 2 +3812 47 66 110 38 33.22056 2 +3813 47 67 110 40 33.46035 2 +3814 47 68 114 39 22.92986 2 +3815 47 69 114 37 32.11493 2 +3816 47 70 114 35 42.65918 2 +3817 47 71 114 38 32.33299 2 +3818 47 72 114 40 34.4077 2 +3819 47 73 118 39 31.58575 2 +3820 47 74 118 37 36.11505 2 +3821 47 75 118 35 41.56976 2 +3822 47 76 118 36 39.54488 2 +3823 47 77 118 38 36.37469 2 +3824 47 78 118 40 44.94457 2 +3825 47 79 122 39 38.27045 2 +3826 47 80 122 37 47.10958 2 +3827 47 81 122 35 51.71352 2 +3828 47 82 122 38 49.90763 2 +3829 47 83 122 40 54.00289 2 +3830 47 84 126 39 42.23776 2 +3831 47 85 126 37 47.53006 2 +3832 47 86 126 36 50.27848 2 +3833 47 87 126 38 48.01632 2 +3834 47 88 126 40 55.53047 2 +3835 47 89 130 39 46.80753 2 +3836 47 90 130 37 51.39008 2 +3837 47 91 130 35 54.26202 2 +3838 47 92 130 38 71.18866 2 +3839 47 93 130 40 59.90401 2 +3840 48 0 63 3 42.31033 2 +3841 48 1 63 1 38.09902 2 +3842 48 2 63 2 44.35576 2 +3843 48 3 63 4 32.50823 2 +3844 48 4 63 6 32.73568 2 +3845 48 5 67 3 38.30607 2 +3846 48 6 67 1 33.11941 2 +3847 48 7 67 2 39.52915 2 +3848 48 8 67 4 28.79539 2 +3849 48 9 67 6 27.98701 2 +3850 48 10 71 5 34.82067 2 +3851 48 11 71 3 33.24365 2 +3852 48 12 71 1 21.3255 2 +3853 48 13 71 2 30.61477 2 +3854 48 14 71 4 19.43021 2 +3855 48 15 75 5 26.7023 2 +3856 48 16 75 3 25.48068 2 +3857 48 17 75 1 19.26385 2 +3858 48 18 75 2 19.43892 2 +3859 48 19 75 4 18.66871 2 +3860 48 20 75 6 12.61972 2 +3861 48 21 79 3 20.84896 2 +3862 48 22 79 1 18.38326 2 +3863 48 23 79 2 15.28921 2 +3864 48 24 79 4 15.74743 2 +3865 48 25 79 6 8.8378 2 +3866 48 26 83 5 16.22321 2 +3867 48 27 83 3 13.64008 2 +3868 48 28 83 1 9.93172 2 +3869 48 29 83 2 9.86649 2 +3870 48 30 83 4 8.72644 2 +3871 48 31 87 5 13.77677 2 +3872 48 32 87 3 14.14899 2 +3873 48 33 87 1 6.1783 2 +3874 48 34 87 2 12.25555 2 +3875 48 35 87 4 7.02861 2 +3876 48 36 91 3 14.62085 2 +3877 48 37 91 1 6.19963 2 +3878 48 38 91 2 9.07733 2 +3879 48 39 91 4 8.28759 2 +3880 48 40 91 6 12.36928 2 +3881 48 41 95 3 13.2264 2 +3882 48 42 95 1 9.03125 2 +3883 48 43 95 2 13.32394 2 +3884 48 44 95 4 7.84516 2 +3885 48 45 95 6 8.91713 2 +3886 48 46 99 5 9.51558 2 +3887 48 47 99 3 7.84516 2 +3888 48 48 99 1 13.32394 2 +3889 48 49 99 2 9.03125 2 +3890 48 50 99 4 13.2264 2 +3891 48 51 103 5 12.36831 2 +3892 48 52 103 3 7.75989 2 +3893 48 53 103 1 9.07636 2 +3894 48 54 103 2 6.1986 2 +3895 48 55 103 4 14.47303 2 +3896 48 56 107 3 7.02761 2 +3897 48 57 107 1 12.2565 2 +3898 48 58 107 2 5.36967 2 +3899 48 59 107 4 14.15004 2 +3900 48 60 107 6 13.77572 2 +3901 48 61 111 3 8.12906 2 +3902 48 62 111 1 9.86556 2 +3903 48 63 111 2 9.93279 2 +3904 48 64 111 4 13.63909 2 +3905 48 65 111 6 16.22214 2 +3906 48 66 115 5 8.83689 2 +3907 48 67 115 3 15.82274 2 +3908 48 68 115 1 16.84261 2 +3909 48 69 115 2 17.09096 2 +3910 48 70 115 4 20.87654 2 +3911 48 71 119 5 12.61885 2 +3912 48 72 119 3 18.9674 2 +3913 48 73 119 1 21.00789 2 +3914 48 74 119 2 16.65074 2 +3915 48 75 119 4 25.06515 2 +3916 48 76 119 6 26.478 2 +3917 48 77 123 3 19.2214 2 +3918 48 78 123 1 27.78379 2 +3919 48 79 123 2 21.35605 2 +3920 48 80 123 4 33.11616 2 +3921 48 81 123 6 30.83739 2 +3922 48 82 127 5 28.35982 2 +3923 48 83 127 3 27.73466 2 +3924 48 84 127 1 39.04871 2 +3925 48 85 127 2 30.73672 2 +3926 48 86 127 4 42.88816 2 +3927 48 87 131 5 32.79514 2 +3928 48 88 131 3 32.35383 2 +3929 48 89 131 1 44.11568 2 +3930 48 90 131 2 42.63714 2 +3931 48 91 131 4 42.57879 2 +3932 49 0 63 9 43.13746 2 +3933 49 1 63 7 39.82656 2 +3934 49 2 63 5 30.67368 2 +3935 49 3 63 8 35.68805 2 +3936 49 4 63 10 33.3785 2 +3937 49 5 67 9 34.26903 2 +3938 49 6 67 7 35.89992 2 +3939 49 7 67 5 31.02122 2 +3940 49 8 67 8 28.80172 2 +3941 49 9 67 10 25.29696 2 +3942 49 10 71 9 35.69995 2 +3943 49 11 71 7 25.28837 2 +3944 49 12 71 6 26.55244 2 +3945 49 13 71 8 27.07463 2 +3946 49 14 71 10 19.51887 2 +3947 49 15 75 9 30.80052 2 +3948 49 16 75 7 25.01172 2 +3949 49 17 75 8 21.87881 2 +3950 49 18 75 10 18.74161 2 +3951 49 19 75 12 15.81843 2 +3952 49 20 79 9 21.97514 2 +3953 49 21 79 7 17.42642 2 +3954 49 22 79 5 25.22023 2 +3955 49 23 79 8 18.95387 2 +3956 49 24 79 10 11.68138 2 +3957 49 25 83 11 25.16452 2 +3958 49 26 83 9 17.06536 2 +3959 49 27 83 7 13.32016 2 +3960 49 28 83 6 13.61832 2 +3961 49 29 83 8 13.58726 2 +3962 49 30 83 10 7.34849 2 +3963 49 31 87 9 15.98678 2 +3964 49 32 87 7 9.80785 2 +3965 49 33 87 6 11.45457 2 +3966 49 34 87 8 7.80208 2 +3967 49 35 87 10 4.1501 2 +3968 49 36 91 9 11.47045 2 +3969 49 37 91 7 11.29668 2 +3970 49 38 91 5 4.4648 2 +3971 49 39 91 8 7.41027 2 +3972 49 40 91 10 5.03015 2 +3973 49 41 95 9 7.15864 2 +3974 49 42 95 7 8.01935 2 +3975 49 43 95 5 8.56135 2 +3976 49 44 95 8 5.93084 2 +3977 49 45 95 10 5.12155 2 +3978 49 46 99 9 5.12155 2 +3979 49 47 99 7 5.93084 2 +3980 49 48 99 6 8.56135 2 +3981 49 49 99 8 8.01935 2 +3982 49 50 99 10 7.15864 2 +3983 49 51 103 9 5.03119 2 +3984 49 52 103 7 7.41123 2 +3985 49 53 103 6 4.40253 2 +3986 49 54 103 8 10.48353 2 +3987 49 55 103 10 9.66915 2 +3988 49 56 107 9 4.1491 2 +3989 49 57 107 7 7.81007 2 +3990 49 58 107 5 11.45362 2 +3991 49 59 107 8 9.80691 2 +3992 49 60 107 10 16.1758 2 +3993 49 61 111 9 7.32352 2 +3994 49 62 111 7 14.10799 2 +3995 49 63 111 5 12.56306 2 +3996 49 64 111 8 13.46541 2 +3997 49 65 111 10 16.50124 2 +3998 49 66 111 12 23.37177 2 +3999 49 67 115 9 11.63542 2 +4000 49 68 115 7 18.7603 2 +4001 49 69 115 6 16.67547 2 +4002 49 70 115 8 20.29439 2 +4003 49 71 115 10 22.15441 2 +4004 49 72 119 11 17.34995 2 +4005 49 73 119 9 17.66401 2 +4006 49 74 119 7 24.22682 2 +4007 49 75 119 8 21.29926 2 +4008 49 76 119 10 30.86815 2 +4009 49 77 123 9 18.55765 2 +4010 49 78 123 7 27.56047 2 +4011 49 79 123 5 33.35438 2 +4012 49 80 123 8 27.58364 2 +4013 49 81 123 10 35.12166 2 +4014 49 82 127 9 39.41373 2 +4015 49 83 127 7 27.84421 2 +4016 49 84 127 6 27.35408 2 +4017 49 85 127 8 34.57012 2 +4018 49 86 127 10 36.14572 2 +4019 49 87 131 9 31.57112 2 +4020 49 88 131 7 32.47319 2 +4021 49 89 131 6 30.4531 2 +4022 49 90 131 8 42.94566 2 +4023 49 91 131 10 43.63771 2 +4024 50 0 63 13 46.22338 2 +4025 50 1 63 11 42.24238 2 +4026 50 2 63 12 40.1286 2 +4027 50 3 63 14 35.87666 2 +4028 50 4 63 16 43.86148 2 +4029 50 5 67 13 39.36242 2 +4030 50 6 67 11 35.23799 2 +4031 50 7 67 12 38.56743 2 +4032 50 8 67 14 33.67428 2 +4033 50 9 67 16 24.06869 2 +4034 50 10 71 15 35.84318 2 +4035 50 11 71 13 32.06511 2 +4036 50 12 71 11 26.68207 2 +4037 50 13 71 12 24.24026 2 +4038 50 14 71 14 21.20704 2 +4039 50 15 75 15 26.51892 2 +4040 50 16 75 13 22.75652 2 +4041 50 17 75 11 21.0611 2 +4042 50 18 75 14 30.95106 2 +4043 50 19 75 16 14.07108 2 +4044 50 20 79 13 30.07106 2 +4045 50 21 79 11 24.97628 2 +4046 50 22 79 12 32.28011 2 +4047 50 23 79 14 19.52729 2 +4048 50 24 79 16 15.98056 2 +4049 50 25 83 17 25.16071 2 +4050 50 26 83 15 18.98451 2 +4051 50 27 83 13 15.38084 2 +4052 50 28 83 12 17.2937 2 +4053 50 29 83 14 11.0552 2 +4054 50 30 83 16 10.17681 2 +4055 50 31 87 13 19.17284 2 +4056 50 32 87 11 11.5158 2 +4057 50 33 87 12 13.17959 2 +4058 50 34 87 14 9.69851 2 +4059 50 35 87 16 5.87206 2 +4060 50 36 91 13 15.56387 2 +4061 50 37 91 11 10.79381 2 +4062 50 38 91 12 12.25356 2 +4063 50 39 91 14 8.84927 2 +4064 50 40 91 16 13.45918 2 +4065 50 41 95 13 8.91383 2 +4066 50 42 95 11 10.51745 2 +4067 50 43 95 12 11.88321 2 +4068 50 44 95 14 8.58357 2 +4069 50 45 95 16 6.88535 2 +4070 50 46 99 15 6.88535 2 +4071 50 47 99 13 8.58357 2 +4072 50 48 99 11 11.88321 2 +4073 50 49 99 12 10.51745 2 +4074 50 50 99 14 8.91383 2 +4075 50 51 103 15 13.45829 2 +4076 50 52 103 13 8.67534 2 +4077 50 53 103 11 11.37966 2 +4078 50 54 103 12 21.16013 2 +4079 50 55 103 14 15.22691 2 +4080 50 56 107 15 6.39593 2 +4081 50 57 107 13 11.14193 2 +4082 50 58 107 11 13.17854 2 +4083 50 59 107 12 11.51485 2 +4084 50 60 107 14 17.58516 2 +4085 50 61 111 15 9.30869 2 +4086 50 62 111 13 10.81363 2 +4087 50 63 111 11 18.34223 2 +4088 50 64 111 14 15.25407 2 +4089 50 65 111 16 15.35625 2 +4090 50 66 111 18 24.79545 2 +4091 50 67 115 15 12.69881 2 +4092 50 68 115 13 24.75563 2 +4093 50 69 115 11 28.80238 2 +4094 50 70 115 12 22.90575 2 +4095 50 71 115 14 28.10693 2 +4096 50 72 119 15 13.66253 2 +4097 50 73 119 13 24.93885 2 +4098 50 74 119 12 21.77199 2 +4099 50 75 119 14 23.5968 2 +4100 50 76 119 16 26.09275 2 +4101 50 77 123 13 27.27428 2 +4102 50 78 123 11 30.7475 2 +4103 50 79 123 12 27.24947 2 +4104 50 80 123 14 33.14175 2 +4105 50 81 123 16 34.89512 2 +4106 50 82 127 15 24.7793 2 +4107 50 83 127 13 38.08522 2 +4108 50 84 127 11 40.40771 2 +4109 50 85 127 12 38.78199 2 +4110 50 86 127 14 45.13932 2 +4111 50 87 131 15 27.30632 2 +4112 50 88 131 13 41.02737 2 +4113 50 89 131 11 44.71932 2 +4114 50 90 131 12 47.04325 2 +4115 50 91 131 14 40.56919 2 +4116 51 0 63 19 51.55087 2 +4117 51 1 63 17 50.68212 2 +4118 51 2 63 15 43.06685 2 +4119 51 3 63 18 48.33791 2 +4120 51 4 63 20 49.78683 2 +4121 51 5 67 19 45.28204 2 +4122 51 6 67 17 42.25382 2 +4123 51 7 67 15 39.90449 2 +4124 51 8 67 18 35.5193 2 +4125 51 9 67 20 40.7043 2 +4126 51 10 67 22 31.2644 2 +4127 51 11 71 19 41.80186 2 +4128 51 12 71 17 29.60162 2 +4129 51 13 71 16 38.96507 2 +4130 51 14 71 18 34.62784 2 +4131 51 15 71 20 24.43725 2 +4132 51 16 75 19 44.42059 2 +4133 51 17 75 17 30.64027 2 +4134 51 18 75 18 31.68766 2 +4135 51 19 75 20 25.15957 2 +4136 51 20 75 22 19.95852 2 +4137 51 21 79 19 32.23918 2 +4138 51 22 79 17 29.93564 2 +4139 51 23 79 15 19.15401 2 +4140 51 24 79 18 27.57485 2 +4141 51 25 79 20 22.61935 2 +4142 51 26 83 21 26.13336 2 +4143 51 27 83 19 21.91326 2 +4144 51 28 83 18 20.06547 2 +4145 51 29 83 20 14.93014 2 +4146 51 30 83 22 14.84806 2 +4147 51 31 87 19 31.37317 2 +4148 51 32 87 17 21.69045 2 +4149 51 33 87 15 16.18931 2 +4150 51 34 87 18 19.82258 2 +4151 51 35 87 20 24.0865 2 +4152 51 36 87 22 11.32719 2 +4153 51 37 91 19 22.35223 2 +4154 51 38 91 17 13.61366 2 +4155 51 39 91 15 15.39307 2 +4156 51 40 91 18 14.7836 2 +4157 51 41 91 20 13.09678 2 +4158 51 42 95 19 12.59702 2 +4159 51 43 95 17 14.40268 2 +4160 51 44 95 15 18.21838 2 +4161 51 45 95 18 13.1405 2 +4162 51 46 95 20 11.80501 2 +4163 51 47 99 19 11.80501 2 +4164 51 48 99 17 13.1405 2 +4165 51 49 99 16 23.55337 2 +4166 51 50 99 18 14.59657 2 +4167 51 51 99 20 12.59702 2 +4168 51 52 103 19 13.09775 2 +4169 51 53 103 17 18.72486 2 +4170 51 54 103 16 15.47715 2 +4171 51 55 103 18 14.82339 2 +4172 51 56 103 20 18.55922 2 +4173 51 57 107 21 16.45387 2 +4174 51 58 107 19 19.98082 2 +4175 51 59 107 17 22.76935 2 +4176 51 60 107 16 16.18826 2 +4177 51 61 107 18 21.76611 2 +4178 51 62 107 20 33.64721 2 +4179 51 63 111 21 16.92691 2 +4180 51 64 111 19 16.84378 2 +4181 51 65 111 17 21.9555 2 +4182 51 66 111 20 19.28624 2 +4183 51 67 111 22 27.02172 2 +4184 51 68 115 19 15.1436 2 +4185 51 69 115 17 26.04935 2 +4186 51 70 115 16 18.08757 2 +4187 51 71 115 18 26.08087 2 +4188 51 72 115 20 25.74275 2 +4189 51 73 119 21 19.52457 2 +4190 51 74 119 19 25.73733 2 +4191 51 75 119 17 36.45859 2 +4192 51 76 119 18 30.26289 2 +4193 51 77 119 20 35.19943 2 +4194 51 78 123 19 24.57051 2 +4195 51 79 123 17 33.22299 2 +4196 51 80 123 15 34.44944 2 +4197 51 81 123 18 33.10939 2 +4198 51 82 123 20 41.11733 2 +4199 51 83 127 21 27.89044 2 +4200 51 84 127 19 51.54617 2 +4201 51 85 127 17 46.8453 2 +4202 51 86 127 16 41.67255 2 +4203 51 87 127 18 44.12843 2 +4204 51 88 127 20 52.22014 2 +4205 51 89 131 19 36.65568 2 +4206 51 90 131 17 48.14429 2 +4207 51 91 131 16 49.94906 4 +4208 51 92 131 18 45.8742 2 +4209 51 93 131 20 57.37933 2 +4210 52 0 63 25 51.49371 2 +4211 52 1 63 23 50.8837 2 +4212 52 2 63 21 51.37785 2 +4213 52 3 63 22 57.32089 2 +4214 52 4 63 24 40.7886 2 +4215 52 5 67 25 46.62729 2 +4216 52 6 67 23 42.73452 2 +4217 52 7 67 21 42.3485 2 +4218 52 8 67 24 44.08889 2 +4219 52 9 67 26 36.22732 2 +4220 52 10 71 25 45.63419 2 +4221 52 11 71 23 51.42702 2 +4222 52 12 71 21 48.31019 2 +4223 52 13 71 22 36.558 2 +4224 52 14 71 24 33.12091 2 +4225 52 15 71 26 28.42714 2 +4226 52 16 75 25 35.34437 2 +4227 52 17 75 23 29.19458 2 +4228 52 18 75 21 25.29547 2 +4229 52 19 75 24 36.49949 2 +4230 52 20 75 26 24.54721 2 +4231 52 21 79 23 32.55347 2 +4232 52 22 79 21 30.61888 2 +4233 52 23 79 22 38.93717 2 +4234 52 24 79 24 22.7234 2 +4235 52 25 79 26 20.07817 2 +4236 52 26 83 27 26.75232 2 +4237 52 27 83 25 28.08391 2 +4238 52 28 83 23 21.9116 2 +4239 52 29 83 24 27.78892 2 +4240 52 30 83 26 18.33297 2 +4241 52 31 87 25 28.44153 2 +4242 52 32 87 23 31.38444 2 +4243 52 33 87 21 19.82966 2 +4244 52 34 87 24 23.50479 2 +4245 52 35 87 26 27.43936 2 +4246 52 36 87 28 16.73043 2 +4247 52 37 91 25 22.33136 2 +4248 52 38 91 23 16.763 2 +4249 52 39 91 21 22.38913 2 +4250 52 40 91 22 23.22911 2 +4251 52 41 91 24 16.95751 2 +4252 52 42 95 23 17.55026 2 +4253 52 43 95 21 19.15386 2 +4254 52 44 95 22 18.87652 2 +4255 52 45 95 24 20.99854 2 +4256 52 46 95 26 16.14065 2 +4257 52 47 99 25 16.66249 2 +4258 52 48 99 23 20.43285 2 +4259 52 49 99 21 19.18157 2 +4260 52 50 99 22 19.15386 2 +4261 52 51 99 24 17.57193 2 +4262 52 52 103 23 16.73803 2 +4263 52 53 103 21 23.66194 2 +4264 52 54 103 22 23.37998 2 +4265 52 55 103 24 16.76203 2 +4266 52 56 103 26 28.39701 2 +4267 52 57 107 27 15.28391 2 +4268 52 58 107 25 26.66295 2 +4269 52 59 107 23 24.75923 2 +4270 52 60 107 22 20.04198 2 +4271 52 61 107 24 34.1013 2 +4272 52 62 107 26 25.65442 2 +4273 52 63 111 25 17.24709 2 +4274 52 64 111 23 30.96791 2 +4275 52 65 111 24 19.79566 2 +4276 52 66 111 26 36.17835 2 +4277 52 67 111 28 27.196 2 +4278 52 68 115 25 19.13298 2 +4279 52 69 115 23 21.75758 2 +4280 52 70 115 21 37.04892 2 +4281 52 71 115 22 27.85736 2 +4282 52 72 115 24 39.81854 2 +4283 52 73 119 25 19.14864 2 +4284 52 74 119 23 35.21035 2 +4285 52 75 119 22 28.101 2 +4286 52 76 119 24 32.18993 2 +4287 52 77 119 26 34.10996 2 +4288 52 78 123 25 29.67108 2 +4289 52 79 123 23 38.01064 2 +4290 52 80 123 21 38.89503 2 +4291 52 81 123 22 42.13081 2 +4292 52 82 123 24 48.11435 2 +4293 52 83 123 26 53.2029 2 +4294 52 84 127 25 37.40545 2 +4295 52 85 127 23 54.04747 2 +4296 52 86 127 22 41.28613 2 +4297 52 87 127 24 49.98953 4 +4298 52 88 127 26 46.83885 2 +4299 52 89 131 23 45.96206 2 +4300 52 90 131 21 55.29511 2 +4301 52 91 131 22 51.72005 2 +4302 52 92 131 24 61.56645 2 +4303 52 93 131 26 54.0556 2 +4304 53 0 63 29 54.81928 2 +4305 53 1 63 27 60.10707 2 +4306 53 2 63 26 71.8426 2 +4307 53 3 63 28 51.87573 2 +4308 53 4 63 30 49.92787 2 +4309 53 5 67 29 52.71856 4 +4310 53 6 67 27 56.66237 2 +4311 53 7 67 28 53.17028 2 +4312 53 8 67 30 51.42546 2 +4313 53 9 67 32 41.56675 2 +4314 53 10 71 31 52.54649 2 +4315 53 11 71 29 52.89493 4 +4316 53 12 71 27 47.21357 2 +4317 53 13 71 28 48.77103 4 +4318 53 14 71 30 35.36639 2 +4319 53 15 75 31 44.28325 2 +4320 53 16 75 29 39.20321 2 +4321 53 17 75 27 28.01909 2 +4322 53 18 75 28 34.54619 2 +4323 53 19 75 30 33.39906 2 +4324 53 20 75 32 23.76722 2 +4325 53 21 79 29 35.24464 2 +4326 53 22 79 27 33.82658 2 +4327 53 23 79 25 28.16387 2 +4328 53 24 79 28 26.61459 2 +4329 53 25 79 30 27.23652 2 +4330 53 26 83 31 33.12806 2 +4331 53 27 83 29 33.33033 2 +4332 53 28 83 28 36.91245 2 +4333 53 29 83 30 27.80837 2 +4334 53 30 83 32 21.34494 2 +4335 53 31 87 31 29.0752 2 +4336 53 32 87 29 27.14359 2 +4337 53 33 87 27 25.06151 2 +4338 53 34 87 30 23.6647 2 +4339 53 35 87 32 23.48888 2 +4340 53 36 91 33 27.44933 2 +4341 53 37 91 31 27.03591 2 +4342 53 38 91 29 22.30044 2 +4343 53 39 91 27 25.18333 2 +4344 53 40 91 26 23.24798 2 +4345 53 41 91 28 22.56198 2 +4346 53 42 95 29 30.78074 2 +4347 53 43 95 27 41.0652 2 +4348 53 44 95 25 23.73814 2 +4349 53 45 95 28 25.66837 2 +4350 53 46 95 30 21.49003 2 +4351 53 47 99 29 22.78541 2 +4352 53 48 99 27 25.66837 2 +4353 53 49 99 26 24.09257 2 +4354 53 50 99 28 27.84183 2 +4355 53 51 99 30 21.38893 2 +4356 53 52 103 27 21.77378 2 +4357 53 53 103 25 24.01124 2 +4358 53 54 103 28 22.72863 2 +4359 53 55 103 30 22.28563 2 +4360 53 56 103 32 28.32311 2 +4361 53 57 103 34 27.84425 2 +4362 53 58 107 31 32.33754 2 +4363 53 59 107 29 28.19571 2 +4364 53 60 107 28 23.5701 2 +4365 53 61 107 30 32.59182 2 +4366 53 62 107 32 29.18348 2 +4367 53 63 111 31 20.80434 2 +4368 53 64 111 29 33.81835 2 +4369 53 65 111 27 41.0711 2 +4370 53 66 111 30 30.49025 2 +4371 53 67 111 32 29.5494 2 +4372 53 68 115 29 24.5498 2 +4373 53 69 115 27 27.20501 2 +4374 53 70 115 26 26.11975 2 +4375 53 71 115 28 33.72096 2 +4376 53 72 115 30 32.58159 2 +4377 53 73 119 31 21.99218 2 +4378 53 74 119 29 33.16442 2 +4379 53 75 119 27 41.07023 2 +4380 53 76 119 28 41.07557 4 +4381 53 77 119 30 40.14829 2 +4382 53 78 119 32 41.71452 2 +4383 53 79 123 29 38.28233 2 +4384 53 80 123 27 59.04748 2 +4385 53 81 123 28 44.40742 2 +4386 53 82 123 30 53.25513 2 +4387 53 83 123 32 53.10911 2 +4388 53 84 127 31 38.78099 2 +4389 53 85 127 29 50.2007 2 +4390 53 86 127 27 56.12012 2 +4391 53 87 127 28 54.75652 4 +4392 53 88 127 30 51.86052 2 +4393 53 89 131 29 45.71688 2 +4394 53 90 131 27 58.82172 2 +4395 53 91 131 25 63.76128 2 +4396 53 92 131 28 54.9386 2 +4397 53 93 131 30 58.15676 2 +4398 54 0 63 35 62.02827 2 +4399 54 1 63 33 69.05914 2 +4400 54 2 63 31 56.96699 2 +4401 54 3 63 32 62.848 2 +4402 54 4 63 34 56.60565 2 +4403 54 5 63 36 53.26334 2 +4404 54 6 67 35 71.55353 2 +4405 54 7 67 33 61.66528 2 +4406 54 8 67 31 54.51395 2 +4407 54 9 67 34 57.31245 2 +4408 54 10 67 36 46.35806 2 +4409 54 11 71 35 56.55113 2 +4410 54 12 71 33 45.08508 2 +4411 54 13 71 32 53.88114 2 +4412 54 14 71 34 50.01148 2 +4413 54 15 71 36 40.70606 4 +4414 54 16 75 39 43.3458 2 +4415 54 17 75 37 41.45121 2 +4416 54 18 75 35 32.44188 2 +4417 54 19 75 33 35.88171 2 +4418 54 20 75 34 45.4872 2 +4419 54 21 75 36 26.32137 2 +4420 54 22 79 33 38.96966 2 +4421 54 23 79 31 56.48158 2 +4422 54 24 79 32 36.29642 2 +4423 54 25 79 34 36.48312 2 +4424 54 26 79 36 33.14131 2 +4425 54 27 83 37 39.29718 2 +4426 54 28 83 35 32.24556 2 +4427 54 29 83 33 30.28084 2 +4428 54 30 83 34 31.50472 2 +4429 54 31 83 36 26.71856 2 +4430 54 32 87 35 31.08582 2 +4431 54 33 87 33 29.11893 2 +4432 54 34 87 34 39.78361 2 +4433 54 35 87 36 33.70481 2 +4434 54 36 87 38 24.31677 2 +4435 54 37 91 39 30.75045 2 +4436 54 38 91 37 27.16409 2 +4437 54 39 91 35 25.89851 2 +4438 54 40 91 30 28.32631 2 +4439 54 41 91 32 28.59153 2 +4440 54 42 91 34 24.28971 2 +4441 54 43 95 33 32.93259 2 +4442 54 44 95 31 25.97544 2 +4443 54 45 95 32 27.3437 2 +4444 54 46 95 34 23.70083 2 +4445 54 47 95 36 31.62288 2 +4446 54 48 99 35 25.39888 2 +4447 54 49 99 33 23.91852 2 +4448 54 50 99 31 27.20312 2 +4449 54 51 99 32 31.68491 2 +4450 54 52 99 34 25.23105 2 +4451 54 53 103 33 25.56535 2 +4452 54 54 103 31 28.05841 2 +4453 54 55 103 29 40.42977 2 +4454 54 56 103 36 24.59489 2 +4455 54 57 103 38 27.46458 2 +4456 54 58 103 40 33.94559 2 +4457 54 59 107 37 24.37603 2 +4458 54 60 107 35 27.41147 2 +4459 54 61 107 33 49.16896 2 +4460 54 62 107 34 29.88919 2 +4461 54 63 107 36 40.08903 2 +4462 54 64 111 35 25.05694 2 +4463 54 65 111 33 34.43187 2 +4464 54 66 111 34 29.35984 2 +4465 54 67 111 36 31.55635 2 +4466 54 68 111 38 37.02922 2 +4467 54 69 115 35 27.16559 2 +4468 54 70 115 33 36.74101 2 +4469 54 71 115 31 34.90658 2 +4470 54 72 115 32 38.35668 2 +4471 54 73 115 34 36.74707 2 +4472 54 74 119 35 26.61946 2 +4473 54 75 119 33 43.01969 4 +4474 54 76 119 34 34.9257 2 +4475 54 77 119 36 39.09748 2 +4476 54 78 119 38 41.04439 2 +4477 54 79 119 40 45.99564 2 +4478 54 80 123 35 42.11684 2 +4479 54 81 123 33 50.37516 2 +4480 54 82 123 31 61.20441 2 +4481 54 83 123 34 45.95984 2 +4482 54 84 123 36 62.86969 2 +4483 54 85 127 35 44.57576 2 +4484 54 86 127 33 51.39786 2 +4485 54 87 127 32 50.46522 2 +4486 54 88 127 34 53.03556 2 +4487 54 89 127 36 56.45684 2 +4488 54 90 131 35 48.71355 2 +4489 54 91 131 33 61.58785 2 +4490 54 92 131 31 66.16528 2 +4491 54 93 131 32 64.63274 2 +4492 54 94 131 34 74.02786 2 +4493 54 95 131 36 63.74653 2 +4494 55 0 63 39 67.61893 2 +4495 55 1 63 37 67.75615 2 +4496 55 2 63 38 74.22429 2 +4497 55 3 63 40 68.23335 2 +4498 55 4 64 2 28.45182 2 +4499 55 5 68 3 40.6093 2 +4500 55 6 68 1 43.09451 2 +4501 55 7 67 39 63.38592 2 +4502 55 8 67 37 51.43515 2 +4503 55 9 67 38 61.05189 2 +4504 55 10 67 40 51.60776 2 +4505 55 11 71 39 61.74413 4 +4506 55 12 71 37 54.35501 4 +4507 55 13 71 38 52.73682 2 +4508 55 14 71 40 49.82856 2 +4509 55 15 72 2 18.37386 2 +4510 55 16 76 3 23.40738 2 +4511 55 17 76 1 20.92098 2 +4512 55 18 76 2 23.08517 2 +4513 55 19 75 38 52.00866 2 +4514 55 20 75 40 45.6845 2 +4515 55 21 79 39 47.71144 4 +4516 55 22 79 37 46.20171 4 +4517 55 23 79 35 44.55021 2 +4518 55 24 79 38 38.35685 2 +4519 55 25 79 40 39.44087 2 +4520 55 26 80 2 7.43381 2 +4521 55 27 84 3 15.94567 2 +4522 55 28 84 1 15.27385 2 +4523 55 29 83 39 30.78872 2 +4524 55 30 83 38 36.47815 2 +4525 55 31 83 40 29.48929 2 +4526 55 32 87 39 35.68998 2 +4527 55 33 87 37 34.684 2 +4528 55 34 87 40 38.85105 2 +4529 55 35 88 2 11.95336 2 +4530 55 36 88 4 5.38682 2 +4531 55 37 92 5 20.14788 2 +4532 55 38 92 3 13.77548 2 +4533 55 39 92 1 4.07611 2 +4534 55 40 91 36 33.87576 2 +4535 55 41 91 38 30.92791 2 +4536 55 42 91 40 29.56123 2 +4537 55 43 95 39 30.52607 2 +4538 55 44 95 37 35.1515 2 +4539 55 45 95 35 33.09437 2 +4540 55 46 95 38 29.13192 2 +4541 55 47 95 40 30.35226 2 +4542 55 48 99 39 31.56947 2 +4543 55 49 99 37 29.55276 2 +4544 55 50 99 36 32.52462 2 +4545 55 51 99 38 30.18571 2 +4546 55 52 99 40 29.0203 2 +4547 55 53 103 39 29.64101 2 +4548 55 54 103 37 29.9404 2 +4549 55 55 103 35 33.78342 2 +4550 55 56 104 2 4.07507 2 +4551 55 57 104 4 13.77644 2 +4552 55 58 104 6 19.61086 2 +4553 55 59 108 3 5.8561 2 +4554 55 60 108 1 12.75848 2 +4555 55 61 107 39 48.83092 2 +4556 55 62 107 38 35.38052 2 +4557 55 63 107 40 34.8877 2 +4558 55 64 111 39 29.90991 2 +4559 55 65 111 37 39.39193 2 +4560 55 66 111 40 36.26476 2 +4561 55 67 112 2 15.46431 2 +4562 55 68 112 4 15.94061 2 +4563 55 69 116 1 10.60277 2 +4564 55 70 115 39 38.62872 2 +4565 55 71 115 37 35.61552 2 +4566 55 72 115 36 39.27631 2 +4567 55 73 115 38 47.49714 4 +4568 55 74 115 40 50.05866 4 +4569 55 75 119 39 45.4757 4 +4570 55 76 119 37 50.28184 2 +4571 55 77 120 1 20.48129 2 +4572 55 78 120 2 19.4464 2 +4573 55 79 120 4 26.80633 2 +4574 55 80 124 1 18.34469 2 +4575 55 81 123 39 53.34188 2 +4576 55 82 123 37 55.99718 4 +4577 55 83 123 38 58.01479 2 +4578 55 84 123 40 60.03595 4 +4579 55 85 127 39 49.40909 2 +4580 55 86 127 37 56.90967 2 +4581 55 87 127 38 51.9501 2 +4582 55 88 127 40 60.2056 2 +4583 55 89 128 2 33.4423 2 +4584 55 90 128 4 41.55983 2 +4585 55 91 132 1 27.39495 2 +4586 55 92 131 39 63.41791 2 +4587 55 93 131 37 70.48702 2 +4588 55 94 131 38 74.06524 2 +4589 55 95 131 40 71.39818 2 +4590 56 0 64 5 43.09043 2 +4591 56 1 64 3 39.69611 2 +4592 56 2 64 1 38.85636 2 +4593 56 3 64 4 39.03372 2 +4594 56 4 64 6 28.50327 2 +4595 56 5 68 7 43.36049 2 +4596 56 6 68 5 36.19536 2 +4597 56 7 68 2 44.39085 4 +4598 56 8 68 4 35.37422 2 +4599 56 9 68 6 26.83743 2 +4600 56 10 72 5 35.5041 2 +4601 56 11 72 3 31.46354 2 +4602 56 12 72 1 29.25087 2 +4603 56 13 72 4 27.95366 2 +4604 56 14 72 6 22.95634 2 +4605 56 15 72 8 15.27808 2 +4606 56 16 76 7 23.89848 2 +4607 56 17 76 5 23.30811 2 +4608 56 18 76 4 28.04266 2 +4609 56 19 76 6 18.24658 2 +4610 56 20 76 8 16.74507 2 +4611 56 21 80 5 33.92617 2 +4612 56 22 80 3 23.78584 2 +4613 56 23 80 1 18.03204 2 +4614 56 24 80 4 25.94567 2 +4615 56 25 80 6 14.98665 2 +4616 56 26 80 8 7.52962 2 +4617 56 27 84 7 15.96859 2 +4618 56 28 84 5 16.40918 2 +4619 56 29 84 2 19.11232 2 +4620 56 30 84 4 14.94103 2 +4621 56 31 84 6 10.60415 2 +4622 56 32 88 5 21.04234 2 +4623 56 33 88 3 11.16924 2 +4624 56 34 88 1 12.33981 2 +4625 56 35 88 6 14.46146 2 +4626 56 36 88 8 4.80821 2 +4627 56 37 92 11 16.42973 2 +4628 56 38 92 9 14.82705 2 +4629 56 39 92 7 5.15685 2 +4630 56 40 92 2 15.93845 2 +4631 56 41 92 4 7.38827 2 +4632 56 42 92 6 8.02935 2 +4633 56 43 96 5 8.36403 2 +4634 56 44 96 3 9.99636 2 +4635 56 45 96 1 12.52241 2 +4636 56 46 96 2 10.35843 2 +4637 56 47 96 4 8.42709 2 +4638 56 48 100 3 9.27154 2 +4639 56 49 100 1 10.35643 2 +4640 56 50 100 2 12.52041 2 +4641 56 51 100 4 9.99836 2 +4642 56 52 100 6 8.36203 2 +4643 56 53 104 5 8.03038 2 +4644 56 54 104 3 7.52469 2 +4645 56 55 104 1 15.78236 2 +4646 56 56 104 8 5.15582 2 +4647 56 57 104 10 14.82803 2 +4648 56 58 104 12 16.51799 2 +4649 56 59 108 7 4.31717 2 +4650 56 60 108 5 12.73734 2 +4651 56 61 108 2 12.24981 2 +4652 56 62 108 4 11.16819 2 +4653 56 63 108 6 21.8738 2 +4654 56 64 112 5 10.30586 2 +4655 56 65 112 3 11.1503 2 +4656 56 66 112 1 22.00813 2 +4657 56 67 112 6 15.83223 2 +4658 56 68 112 8 15.92468 2 +4659 56 69 116 7 7.99859 2 +4660 56 70 116 5 15.01368 2 +4661 56 71 116 3 19.49357 2 +4662 56 72 116 2 17.94928 2 +4663 56 73 116 4 23.03095 2 +4664 56 74 116 6 27.64197 2 +4665 56 75 120 7 16.38007 2 +4666 56 76 120 5 18.01943 2 +4667 56 77 120 3 28.14629 2 +4668 56 78 120 6 26.86766 2 +4669 56 79 120 8 24.85962 2 +4670 56 80 124 7 15.01756 2 +4671 56 81 124 5 23.96112 2 +4672 56 82 124 3 28.31202 2 +4673 56 83 124 2 36.13063 2 +4674 56 84 124 4 31.57948 2 +4675 56 85 124 6 36.8937 2 +4676 56 86 128 5 27.1374 2 +4677 56 87 128 3 35.24422 2 +4678 56 88 128 1 44.39281 2 +4679 56 89 128 6 32.7544 2 +4680 56 90 128 8 41.01961 2 +4681 56 91 132 5 29.09652 2 +4682 56 92 132 3 55.91426 2 +4683 56 93 132 2 38.42709 2 +4684 56 94 132 4 43.84761 2 +4685 56 95 132 6 44.20271 2 +4686 57 0 64 11 47.2266 2 +4687 57 1 64 9 47.60882 2 +4688 57 2 64 7 41.65879 2 +4689 57 3 64 8 47.50025 2 +4690 57 4 64 10 38.93724 2 +4691 57 5 64 12 35.57203 2 +4692 57 6 68 11 53.26055 4 +4693 57 7 68 9 36.94512 2 +4694 57 8 68 8 52.10865 2 +4695 57 9 68 10 35.80266 2 +4696 57 10 68 12 31.40724 2 +4697 57 11 72 11 36.17131 2 +4698 57 12 72 9 40.96629 2 +4699 57 13 72 7 32.92715 2 +4700 57 14 72 10 41.19387 2 +4701 57 15 72 12 28.76723 2 +4702 57 16 72 14 22.0009 2 +4703 57 17 76 13 24.82545 2 +4704 57 18 76 11 24.13835 2 +4705 57 19 76 9 23.06289 2 +4706 57 20 76 10 22.88441 2 +4707 57 21 76 12 19.57989 2 +4708 57 22 80 11 40.71347 2 +4709 57 23 80 9 27.5664 2 +4710 57 24 80 7 22.81146 2 +4711 57 25 80 10 28.87268 2 +4712 57 26 80 12 18.2401 2 +4713 57 27 84 13 23.78132 2 +4714 57 28 84 11 22.59704 2 +4715 57 29 84 9 23.24097 2 +4716 57 30 84 8 25.51054 2 +4717 57 31 84 10 23.9849 2 +4718 57 32 84 12 16.67265 2 +4719 57 33 88 11 19.3185 2 +4720 57 34 88 9 15.53363 2 +4721 57 35 88 7 17.86486 2 +4722 57 36 88 10 16.09131 2 +4723 57 37 88 12 10.8319 2 +4724 57 38 92 15 20.20572 2 +4725 57 39 92 13 11.71672 2 +4726 57 40 92 8 17.02311 2 +4727 57 41 92 10 17.2472 2 +4728 57 42 92 12 11.76391 2 +4729 57 43 92 14 17.31743 2 +4730 57 44 96 9 12.87022 2 +4731 57 45 96 7 15.23032 2 +4732 57 46 96 6 18.59743 2 +4733 57 47 96 8 14.38182 2 +4734 57 48 96 10 12.10968 2 +4735 57 49 100 9 23.12823 2 +4736 57 50 100 7 14.97243 2 +4737 57 51 100 5 16.84389 2 +4738 57 52 100 8 15.23232 2 +4739 57 53 100 10 12.86822 2 +4740 57 54 104 13 17.56162 2 +4741 57 55 104 11 9.37042 2 +4742 57 56 104 9 11.79954 2 +4743 57 57 104 7 17.33267 2 +4744 57 58 104 14 11.72076 2 +4745 57 59 104 16 19.44282 2 +4746 57 60 108 11 9.25131 2 +4747 57 61 108 9 17.97209 2 +4748 57 62 108 8 18.84125 2 +4749 57 63 108 10 14.72112 2 +4750 57 64 108 12 23.69116 2 +4751 57 65 112 11 14.71125 2 +4752 57 66 112 9 14.4232 2 +4753 57 67 112 7 24.32982 2 +4754 57 68 112 10 18.38171 2 +4755 57 69 112 12 22.48717 2 +4756 57 70 112 14 26.29001 2 +4757 57 71 116 11 18.84674 2 +4758 57 72 116 9 26.34784 2 +4759 57 73 116 8 19.56434 2 +4760 57 74 116 10 25.46233 2 +4761 57 75 116 12 28.78139 2 +4762 57 76 120 11 15.94896 2 +4763 57 77 120 9 24.00273 2 +4764 57 78 120 10 22.40398 2 +4765 57 79 120 12 24.53226 2 +4766 57 80 120 14 25.37323 2 +4767 57 81 124 13 19.8934 2 +4768 57 82 124 11 28.08731 2 +4769 57 83 124 9 36.06112 2 +4770 57 84 124 8 32.99352 2 +4771 57 85 124 10 40.39291 2 +4772 57 86 124 12 40.30252 2 +4773 57 87 128 11 32.8632 2 +4774 57 88 128 9 35.23536 2 +4775 57 89 128 7 59.22055 2 +4776 57 90 128 10 45.71918 2 +4777 57 91 128 12 44.26036 2 +4778 57 92 132 11 34.86105 2 +4779 57 93 132 9 37.96983 2 +4780 57 94 132 7 42.8066 2 +4781 57 95 132 8 44.98966 2 +4782 57 96 132 10 48.47327 2 +4783 57 97 132 12 47.5734 2 +4784 58 0 64 17 60.59767 2 +4785 58 1 64 15 51.08154 2 +4786 58 2 64 13 49.31131 2 +4787 58 3 64 14 57.65436 2 +4788 58 4 64 16 50.11935 2 +4789 58 5 64 18 38.15852 2 +4790 58 6 68 17 50.28817 2 +4791 58 7 68 15 44.43986 2 +4792 58 8 68 13 42.76073 2 +4793 58 9 68 14 47.72614 2 +4794 58 10 68 16 35.83236 2 +4795 58 11 72 15 44.69806 4 +4796 58 12 72 13 36.88078 2 +4797 58 13 72 16 44.9103 2 +4798 58 14 72 18 31.94735 2 +4799 58 15 72 20 30.44521 2 +4800 58 16 76 19 37.6815 2 +4801 58 17 76 17 31.84664 2 +4802 58 18 76 15 32.33923 2 +4803 58 19 76 14 39.48413 2 +4804 58 20 76 16 27.46253 2 +4805 58 21 76 18 21.86426 2 +4806 58 22 80 17 31.5031 2 +4807 58 23 80 15 39.51814 2 +4808 58 24 80 13 21.4372 2 +4809 58 25 80 14 22.13903 2 +4810 58 26 80 16 25.92008 2 +4811 58 27 84 19 24.95913 2 +4812 58 28 84 17 21.44093 2 +4813 58 29 84 15 32.19759 2 +4814 58 30 84 14 28.46448 2 +4815 58 31 84 16 22.36687 2 +4816 58 32 84 18 24.82048 2 +4817 58 33 88 15 24.60676 2 +4818 58 34 88 13 18.88767 2 +4819 58 35 88 14 29.42456 2 +4820 58 36 88 16 25.48923 2 +4821 58 37 88 18 16.9295 2 +4822 58 38 92 19 21.26336 2 +4823 58 39 92 17 16.36033 2 +4824 58 40 92 16 23.63624 2 +4825 58 41 92 18 21.23227 2 +4826 58 42 92 20 14.89242 2 +4827 58 43 96 15 27.137 2 +4828 58 44 96 13 17.7208 2 +4829 58 45 96 11 26.69368 2 +4830 58 46 96 12 17.27166 2 +4831 58 47 96 14 22.57337 2 +4832 58 48 96 16 17.21181 2 +4833 58 49 100 15 17.73919 2 +4834 58 50 100 13 21.05007 2 +4835 58 51 100 11 21.47447 2 +4836 58 52 100 12 26.18035 2 +4837 58 53 100 14 17.60949 2 +4838 58 54 100 16 39.00934 2 +4839 58 55 104 19 14.32254 2 +4840 58 56 104 17 17.90451 2 +4841 58 57 104 15 27.77732 2 +4842 58 58 104 18 16.37232 2 +4843 58 59 104 20 27.40183 2 +4844 58 60 108 17 16.84202 2 +4845 58 61 108 15 25.99147 2 +4846 58 62 108 13 28.28913 2 +4847 58 63 108 14 18.93716 2 +4848 58 64 108 16 24.81516 2 +4849 58 65 112 17 16.89398 2 +4850 58 66 112 15 23.99272 2 +4851 58 67 112 13 26.07409 2 +4852 58 68 112 16 21.98079 2 +4853 58 69 112 18 24.41725 2 +4854 58 70 112 20 25.10558 2 +4855 58 71 116 15 28.50317 2 +4856 58 72 116 13 22.7722 2 +4857 58 73 116 14 20.9134 2 +4858 58 74 116 16 27.93009 2 +4859 58 75 116 18 31.92312 2 +4860 58 76 120 17 21.59112 2 +4861 58 77 120 15 26.66842 2 +4862 58 78 120 13 32.28126 2 +4863 58 79 120 16 28.73292 2 +4864 58 80 120 18 28.06316 2 +4865 58 81 120 20 34.33984 2 +4866 58 82 124 19 32.47305 2 +4867 58 83 124 17 30.77135 2 +4868 58 84 124 15 44.27534 2 +4869 58 85 124 14 40.16403 2 +4870 58 86 124 16 43.95945 2 +4871 58 87 128 15 33.31869 2 +4872 58 88 128 13 48.48589 2 +4873 58 89 128 14 46.04373 2 +4874 58 90 128 16 43.0137 2 +4875 58 91 128 18 53.72175 2 +4876 58 92 132 17 50.22495 2 +4877 58 93 132 15 48.35163 2 +4878 58 94 132 13 54.41623 2 +4879 58 95 132 14 46.2838 2 +4880 58 96 132 16 48.30136 2 +4881 58 97 132 18 50.74827 2 +4882 59 0 64 23 56.64269 2 +4883 59 1 64 21 54.23359 2 +4884 59 2 64 19 48.01475 2 +4885 59 3 64 20 55.98092 2 +4886 59 4 64 22 46.7878 2 +4887 59 5 68 23 58.80829 2 +4888 59 6 68 21 51.92496 2 +4889 59 7 68 19 45.54511 2 +4890 59 8 68 18 49.91428 2 +4891 59 9 68 20 46.51372 2 +4892 59 10 68 22 40.06887 2 +4893 59 11 72 21 46.55738 2 +4894 59 12 72 19 40.61707 2 +4895 59 13 72 17 38.91175 2 +4896 59 14 72 22 41.11151 2 +4897 59 15 72 24 30.53928 2 +4898 59 16 76 25 51.93335 4 +4899 59 17 76 23 35.88243 2 +4900 59 18 76 21 31.02179 2 +4901 59 19 76 20 35.59026 2 +4902 59 20 76 22 58.45543 2 +4903 59 21 76 24 27.30146 2 +4904 59 22 80 21 34.27532 2 +4905 59 23 80 19 34.06391 2 +4906 59 24 80 18 36.75543 2 +4907 59 25 80 20 33.0296 2 +4908 59 26 80 22 22.99806 2 +4909 59 27 84 25 34.66875 2 +4910 59 28 84 23 23.41114 2 +4911 59 29 84 21 24.85492 2 +4912 59 30 84 20 28.12964 2 +4913 59 31 84 22 23.37098 2 +4914 59 32 84 24 23.02044 2 +4915 59 33 88 21 24.623 2 +4916 59 34 88 19 25.38367 2 +4917 59 35 88 17 25.7556 2 +4918 59 36 88 20 26.48368 2 +4919 59 37 88 22 20.27726 2 +4920 59 38 92 25 28.13439 2 +4921 59 39 92 23 24.58963 2 +4922 59 40 92 21 20.30195 2 +4923 59 41 92 22 22.37246 2 +4924 59 42 92 24 21.00861 2 +4925 59 43 96 21 26.87299 2 +4926 59 44 96 19 21.64395 2 +4927 59 45 96 17 23.09142 2 +4928 59 46 96 18 26.39256 2 +4929 59 47 96 20 24.53779 2 +4930 59 48 96 22 23.56283 2 +4931 59 49 100 21 23.12764 2 +4932 59 50 100 19 24.96633 2 +4933 59 51 100 17 26.85975 2 +4934 59 52 100 18 23.11545 2 +4935 59 53 100 20 21.41004 2 +4936 59 54 100 22 25.61508 2 +4937 59 55 104 23 18.35649 2 +4938 59 56 104 21 26.91544 2 +4939 59 57 104 22 21.97819 2 +4940 59 58 104 24 23.71185 2 +4941 59 59 104 26 23.72528 2 +4942 59 60 108 21 19.40343 2 +4943 59 61 108 19 26.65933 2 +4944 59 62 108 18 24.51979 2 +4945 59 63 108 20 29.55308 2 +4946 59 64 108 22 29.85072 2 +4947 59 65 112 23 19.24308 2 +4948 59 66 112 21 27.27037 2 +4949 59 67 112 19 28.27728 2 +4950 59 68 112 22 35.85016 2 +4951 59 69 112 24 23.3965 2 +4952 59 70 112 26 31.92838 2 +4953 59 71 116 21 24.63086 2 +4954 59 72 116 19 31.11468 2 +4955 59 73 116 17 48.46922 2 +4956 59 74 116 20 41.06108 2 +4957 59 75 116 22 34.08026 2 +4958 59 76 120 23 30.31756 2 +4959 59 77 120 21 33.23654 2 +4960 59 78 120 19 44.68583 2 +4961 59 79 120 22 30.39102 2 +4962 59 80 120 24 35.83084 2 +4963 59 81 120 26 47.62196 2 +4964 59 82 124 23 33.7398 2 +4965 59 83 124 21 48.5489 2 +4966 59 84 124 18 41.04646 2 +4967 59 85 124 20 42.65913 2 +4968 59 86 124 22 64.24578 2 +4969 59 87 128 21 39.17907 2 +4970 59 88 128 19 54.14197 2 +4971 59 89 128 17 63.51055 2 +4972 59 90 128 20 46.86537 2 +4973 59 91 128 22 56.67413 2 +4974 59 92 128 24 50.67125 2 +4975 59 93 132 21 48.58638 4 +4976 59 94 132 19 66.35259 2 +4977 59 95 132 20 46.44999 2 +4978 59 96 132 22 57.09969 2 +4979 59 97 132 24 58.59176 2 +4980 60 0 64 29 69.44741 2 +4981 60 1 64 27 61.38761 2 +4982 60 2 64 25 60.14505 2 +4983 60 3 64 24 60.48288 4 +4984 60 4 64 26 59.62536 2 +4985 60 5 64 28 49.3919 2 +4986 60 6 68 29 55.70093 2 +4987 60 7 68 27 58.94681 2 +4988 60 8 68 25 48.58905 2 +4989 60 9 68 24 55.42239 2 +4990 60 10 68 26 48.79633 2 +4991 60 11 68 28 44.91122 2 +4992 60 12 72 25 61.91948 2 +4993 60 13 72 23 51.20041 2 +4994 60 14 72 26 46.55209 2 +4995 60 15 72 28 46.48605 2 +4996 60 16 72 30 35.23715 2 +4997 60 17 76 29 50.79823 4 +4998 60 18 76 27 47.35247 4 +4999 60 19 76 26 41.29446 2 +5000 60 20 76 28 40.16753 2 +5001 60 21 76 30 49.95632 2 +5002 60 22 80 27 46.14762 2 +5003 60 23 80 25 38.14938 2 +5004 60 24 80 23 55.41207 2 +5005 60 25 80 24 45.78997 2 +5006 60 26 80 26 30.34492 2 +5007 60 27 80 28 33.74128 2 +5008 60 28 84 29 40.95103 2 +5009 60 29 84 27 29.32993 2 +5010 60 30 84 26 33.97898 2 +5011 60 31 84 28 31.09216 2 +5012 60 32 84 30 25.38259 2 +5013 60 33 88 27 44.96271 2 +5014 60 34 88 25 30.06763 2 +5015 60 35 88 23 38.86809 2 +5016 60 36 88 24 31.5694 2 +5017 60 37 88 26 27.07404 2 +5018 60 38 88 28 23.59388 2 +5019 60 39 92 29 31.8012 2 +5020 60 40 92 27 30.12566 2 +5021 60 41 92 26 29.9791 2 +5022 60 42 92 28 26.3685 2 +5023 60 43 92 30 23.60604 2 +5024 60 44 96 27 25.79061 2 +5025 60 45 96 25 24.97189 2 +5026 60 46 96 23 31.028 2 +5027 60 47 96 24 28.28611 2 +5028 60 48 96 26 25.98293 2 +5029 60 49 96 28 24.40614 2 +5030 60 50 100 27 39.56833 2 +5031 60 51 100 25 24.80578 2 +5032 60 52 100 23 27.88892 2 +5033 60 53 100 24 25.48907 2 +5034 60 54 100 26 26.7882 2 +5035 60 55 100 28 26.14132 2 +5036 60 56 104 29 22.69577 2 +5037 60 57 104 27 24.69057 2 +5038 60 58 104 25 28.7199 2 +5039 60 59 104 28 28.66183 2 +5040 60 60 104 30 28.63971 2 +5041 60 61 108 27 23.44259 2 +5042 60 62 108 25 28.34342 2 +5043 60 63 108 23 35.6209 2 +5044 60 64 108 24 41.6373 2 +5045 60 65 108 26 33.61302 2 +5046 60 66 108 28 38.87018 2 +5047 60 67 112 29 24.76018 2 +5048 60 68 112 27 28.77919 2 +5049 60 69 112 25 32.12693 2 +5050 60 70 112 28 29.00449 2 +5051 60 71 112 30 37.83872 2 +5052 60 72 116 27 25.15036 2 +5053 60 73 116 25 31.06847 2 +5054 60 74 116 23 40.11288 2 +5055 60 75 116 24 41.82564 4 +5056 60 76 116 26 40.47159 2 +5057 60 77 116 28 50.1922 4 +5058 60 78 120 29 36.3193 2 +5059 60 79 120 27 45.1725 2 +5060 60 80 120 25 44.20934 2 +5061 60 81 120 28 39.11429 2 +5062 60 82 120 30 49.4541 2 +5063 60 83 124 29 38.05058 2 +5064 60 84 124 27 45.25374 2 +5065 60 85 124 25 48.1419 2 +5066 60 86 124 24 49.97237 2 +5067 60 87 124 26 54.80581 2 +5068 60 88 128 27 45.48233 2 +5069 60 89 128 25 49.67787 2 +5070 60 90 128 23 56.69802 4 +5071 60 91 128 26 50.62288 2 +5072 60 92 128 28 57.87018 2 +5073 60 93 128 30 58.86806 2 +5074 60 94 132 27 68.29513 2 +5075 60 95 132 25 58.85544 2 +5076 60 96 132 23 59.46265 2 +5077 60 97 132 26 59.00583 2 +5078 60 98 132 28 62.25653 2 +5079 60 99 132 30 64.31094 2 +5080 61 0 64 35 65.19345 2 +5081 61 1 64 33 70.61222 2 +5082 61 2 64 31 64.38208 2 +5083 61 3 64 30 76.64678 2 +5084 61 4 64 32 61.87432 2 +5085 61 5 64 34 57.87272 2 +5086 61 6 68 33 60.08067 2 +5087 61 7 68 31 59.9893 2 +5088 61 8 68 30 62.67445 2 +5089 61 9 68 32 59.58848 2 +5090 61 10 68 34 49.94507 2 +5091 61 11 72 33 64.56474 2 +5092 61 12 72 31 56.31019 2 +5093 61 13 72 29 55.89951 2 +5094 61 14 72 27 49.98971 2 +5095 61 15 72 32 49.62831 2 +5096 61 16 72 34 44.34397 2 +5097 61 17 76 33 51.68253 2 +5098 61 18 76 31 51.7173 4 +5099 61 19 76 32 46.67745 2 +5100 61 20 76 34 40.76197 2 +5101 61 21 76 36 36.10656 2 +5102 61 22 80 33 57.83074 2 +5103 61 23 80 31 41.7988 2 +5104 61 24 80 29 40.43497 2 +5105 61 25 80 30 43.39135 2 +5106 61 26 80 32 38.87802 2 +5107 61 27 80 34 28.82811 2 +5108 61 28 84 35 42.68599 2 +5109 61 29 84 33 42.59306 2 +5110 61 30 84 31 34.48519 2 +5111 61 31 84 32 37.06407 2 +5112 61 32 84 34 30.15035 2 +5113 61 33 88 33 34.43868 2 +5114 61 34 88 31 36.77434 2 +5115 61 35 88 29 31.67302 2 +5116 61 36 88 30 33.43267 2 +5117 61 37 88 32 32.85157 2 +5118 61 38 88 34 27.0179 2 +5119 61 39 92 35 44.41728 2 +5120 61 40 92 33 31.8261 2 +5121 61 41 92 31 30.22404 2 +5122 61 42 92 32 30.72984 2 +5123 61 43 92 34 32.93835 2 +5124 61 44 96 33 31.55828 2 +5125 61 45 96 31 29.35496 2 +5126 61 46 96 29 36.82204 2 +5127 61 47 96 30 33.77389 2 +5128 61 48 96 32 27.31761 2 +5129 61 49 96 34 45.27467 2 +5130 61 50 100 33 38.79157 2 +5131 61 51 100 31 27.7721 2 +5132 61 52 100 29 31.34034 2 +5133 61 53 100 30 54.16116 2 +5134 61 54 100 32 29.48091 2 +5135 61 55 100 34 30.04354 2 +5136 61 56 104 33 28.53076 2 +5137 61 57 104 31 30.87503 2 +5138 61 58 104 32 29.19252 2 +5139 61 59 104 34 31.39785 2 +5140 61 60 104 36 38.47809 2 +5141 61 61 108 33 26.37126 2 +5142 61 62 108 31 30.6581 2 +5143 61 63 108 29 34.0991 2 +5144 61 64 108 30 33.43194 2 +5145 61 65 108 32 37.7285 2 +5146 61 66 108 34 39.44969 2 +5147 61 67 112 33 28.68805 2 +5148 61 68 112 31 36.70478 2 +5149 61 69 112 32 33.97524 2 +5150 61 70 112 34 39.48536 2 +5151 61 71 112 36 39.69841 2 +5152 61 72 116 33 30.42674 2 +5153 61 73 116 31 39.50122 2 +5154 61 74 116 29 38.32481 2 +5155 61 75 116 30 41.69534 2 +5156 61 76 116 32 45.12594 2 +5157 61 77 116 34 58.90756 2 +5158 61 78 120 35 37.22805 2 +5159 61 79 120 33 46.47882 2 +5160 61 80 120 31 52.54865 2 +5161 61 81 120 32 44.44158 2 +5162 61 82 120 34 55.54089 2 +5163 61 83 124 33 40.89457 2 +5164 61 84 124 31 56.59503 2 +5165 61 85 124 28 47.17168 2 +5166 61 86 124 30 60.05846 2 +5167 61 87 124 32 55.95507 2 +5168 61 88 124 34 65.04227 2 +5169 61 89 128 33 55.64384 2 +5170 61 90 128 31 57.35024 2 +5171 61 91 128 29 62.24121 2 +5172 61 92 128 32 55.39349 2 +5173 61 93 128 34 57.58534 2 +5174 61 94 132 33 53.04879 2 +5175 61 95 132 31 60.15506 2 +5176 61 96 132 29 67.21716 2 +5177 61 97 132 32 65.47664 2 +5178 61 98 132 34 73.13777 2 +5179 61 99 132 36 67.05976 2 +5180 62 0 64 39 75.95373 2 +5181 62 1 64 37 73.41971 2 +5182 62 2 64 36 70.91933 2 +5183 62 3 64 38 67.19974 2 +5184 62 4 64 40 61.75654 2 +5185 62 5 68 39 69.89426 2 +5186 62 6 68 37 73.94405 2 +5187 62 7 68 35 63.76171 2 +5188 62 8 68 36 60.75208 2 +5189 62 9 68 38 60.7791 2 +5190 62 10 68 40 49.56967 2 +5191 62 11 72 39 61.15172 2 +5192 62 12 72 37 59.7828 2 +5193 62 13 72 35 59.70723 4 +5194 62 14 72 36 55.90852 2 +5195 62 15 72 38 50.59077 2 +5196 62 16 72 40 45.06535 2 +5197 62 17 76 39 64.90003 2 +5198 62 18 76 37 46.58611 2 +5199 62 19 76 35 48.7036 2 +5200 62 20 76 38 47.42728 2 +5201 62 21 76 40 39.4154 2 +5202 62 22 80 39 50.58467 2 +5203 62 23 80 37 45.86225 2 +5204 62 24 80 35 43.85621 2 +5205 62 25 80 36 44.34816 2 +5206 62 26 80 38 42.55242 2 +5207 62 27 80 40 33.70383 2 +5208 62 28 84 39 49.42394 2 +5209 62 29 84 37 35.94687 2 +5210 62 30 84 36 46.27383 2 +5211 62 31 84 38 39.82671 2 +5212 62 32 84 40 31.92482 2 +5213 62 33 88 39 44.25492 2 +5214 62 34 88 37 36.62624 2 +5215 62 35 88 35 36.35464 2 +5216 62 36 88 36 36.46102 2 +5217 62 37 88 38 36.03183 2 +5218 62 38 88 40 30.49846 2 +5219 62 39 92 39 43.86633 2 +5220 62 40 92 37 35.5406 2 +5221 62 41 92 36 39.72226 2 +5222 62 42 92 38 35.8116 2 +5223 62 43 92 40 32.11845 2 +5224 62 44 96 39 33.11437 2 +5225 62 45 96 37 37.33491 2 +5226 62 46 96 35 33.38836 2 +5227 62 47 96 36 34.89355 2 +5228 62 48 96 38 38.30765 2 +5229 62 49 96 40 31.53051 2 +5230 62 50 100 39 34.6698 2 +5231 62 51 100 37 36.87838 2 +5232 62 52 100 35 33.52158 2 +5233 62 53 100 36 32.73659 2 +5234 62 54 100 38 34.13393 2 +5235 62 55 100 40 33.11237 2 +5236 62 56 104 39 31.81042 2 +5237 62 57 104 37 32.287 2 +5238 62 58 104 35 37.8995 2 +5239 62 59 104 38 35.49763 2 +5240 62 60 104 40 42.7663 2 +5241 62 61 108 39 30.34482 2 +5242 62 62 108 37 32.70039 2 +5243 62 63 108 35 37.28034 2 +5244 62 64 108 36 36.25496 2 +5245 62 65 108 38 37.41978 2 +5246 62 66 108 40 42.87615 2 +5247 62 67 112 39 31.68032 2 +5248 62 68 112 37 43.22699 2 +5249 62 69 112 35 48.33159 2 +5250 62 70 112 38 44.73033 2 +5251 62 71 112 40 44.68824 2 +5252 62 72 116 39 32.32901 2 +5253 62 73 116 37 41.71358 2 +5254 62 74 116 35 42.46778 2 +5255 62 75 116 36 43.6705 2 +5256 62 76 116 38 46.94999 2 +5257 62 77 116 40 52.84656 4 +5258 62 78 120 39 40.02757 2 +5259 62 79 120 37 50.97093 2 +5260 62 80 120 36 55.20071 2 +5261 62 81 120 38 51.34035 2 +5262 62 82 120 40 54.4927 2 +5263 62 83 124 39 44.14728 2 +5264 62 84 124 37 55.75366 2 +5265 62 85 124 35 58.45858 2 +5266 62 86 124 36 58.71692 2 +5267 62 87 124 38 62.13867 4 +5268 62 88 124 40 62.48268 2 +5269 62 89 128 39 50.32973 2 +5270 62 90 128 37 63.15069 2 +5271 62 91 128 35 68.31685 2 +5272 62 92 128 36 64.34828 2 +5273 62 93 128 38 64.16162 2 +5274 62 94 128 40 70.60795 2 +5275 62 95 132 39 62.65166 2 +5276 62 96 132 37 73.98054 2 +5277 62 97 132 35 70.94208 2 +5278 62 98 132 38 74.76308 2 +5279 62 99 132 40 73.44627 2 diff --git a/Detectors/TPC/base/files/LENGTH-OROC1.txt b/Detectors/TPC/base/files/LENGTH-OROC1.txt new file mode 100644 index 0000000000000..49709910c12a7 --- /dev/null +++ b/Detectors/TPC/base/files/LENGTH-OROC1.txt @@ -0,0 +1,2880 @@ +0 0 0 1 3 101.26007 4 +1 0 1 1 1 100.32279 2 +2 0 2 1 2 99.72778 2 +3 0 3 1 4 100.60063 2 +4 0 4 1 6 101.46487 2 +5 0 5 5 3 96.93725 2 +6 0 6 5 1 99.05947 2 +7 0 7 5 2 96.55679 2 +8 0 8 5 4 96.09835 2 +9 0 9 9 3 95.31153 2 +10 0 10 9 1 92.7942 2 +11 0 11 9 2 92.82045 2 +12 0 12 9 4 95.5038 2 +13 0 13 13 3 92.71032 2 +14 0 14 13 1 93.63174 2 +15 0 15 13 2 96.3519 2 +16 0 16 13 4 98.31017 2 +17 0 17 17 3 91.48934 2 +18 0 18 17 1 94.61971 2 +19 0 19 17 2 96.7619 2 +20 0 20 17 4 94.9858 2 +21 0 21 21 3 94.25045 2 +22 0 22 21 1 93.13628 2 +23 0 23 21 2 93.27802 2 +24 0 24 21 4 96.15251 2 +25 0 25 21 6 98.09714 2 +26 0 26 25 3 90.64507 2 +27 0 27 25 1 91.08903 2 +28 0 28 25 2 90.89494 2 +29 0 29 25 4 94.85061 2 +30 0 30 29 3 94.18664 2 +31 0 31 29 1 89.8103 2 +32 0 32 29 2 90.63707 2 +33 0 33 29 4 93.62112 2 +34 0 34 33 3 90.00756 2 +35 0 35 33 1 93.17968 2 +36 0 36 33 2 91.21026 2 +37 0 37 33 4 93.26278 2 +38 0 38 37 3 93.40813 2 +39 0 39 37 1 91.81606 2 +40 0 40 37 2 92.14411 2 +41 0 41 37 4 93.17311 2 +42 0 42 41 3 92.64178 2 +43 0 43 41 1 89.88696 2 +44 0 44 41 2 89.57381 2 +45 0 45 41 4 94.4957 2 +46 0 46 45 3 95.27238 2 +47 0 47 45 1 90.89535 2 +48 0 48 45 2 90.66051 2 +49 0 49 45 4 92.83196 2 +50 0 50 49 5 97.94525 2 +51 0 51 49 3 96.31097 2 +52 0 52 49 1 91.3512 2 +53 0 53 49 2 90.12288 2 +54 0 54 49 4 100.19276 2 +55 0 55 53 3 95.97447 2 +56 0 56 53 1 90.76829 2 +57 0 57 53 2 90.52967 2 +58 0 58 53 4 92.47096 2 +59 0 59 57 3 98.75225 2 +60 0 60 57 1 95.7312 2 +61 0 61 57 2 94.48483 2 +62 0 62 57 4 92.71074 2 +63 0 63 61 3 94.79152 2 +64 0 64 61 1 91.62481 2 +65 0 65 61 2 89.09811 2 +66 0 66 61 4 91.75512 2 +67 0 67 65 3 94.76193 2 +68 0 68 65 1 94.56921 2 +69 0 69 65 2 93.0698 2 +70 0 70 65 4 97.30021 2 +71 0 71 69 5 98.9668 2 +72 0 72 69 3 99.79042 2 +73 0 73 69 1 101.64264 2 +74 0 74 69 2 99.26312 2 +75 0 75 69 4 102.64221 2 +76 1 0 1 7 97.71396 4 +77 1 1 1 5 101.44156 2 +78 1 2 1 8 97.46323 2 +79 1 3 1 10 92.17836 2 +80 1 4 5 9 92.45799 2 +81 1 5 5 7 88.61412 2 +82 1 6 5 5 90.55314 2 +83 1 7 5 6 89.68271 2 +84 1 8 5 8 87.09523 2 +85 1 9 9 7 84.09028 2 +86 1 10 9 5 87.62655 2 +87 1 11 9 6 85.8892 2 +88 1 12 9 8 87.12612 2 +89 1 13 13 7 88.09034 2 +90 1 14 13 5 87.69965 2 +91 1 15 13 6 86.64375 2 +92 1 16 13 8 90.07249 2 +93 1 17 17 7 84.25937 2 +94 1 18 17 5 87.11253 2 +95 1 19 17 6 90.8118 4 +96 1 20 17 8 88.03755 2 +97 1 21 21 7 85.31149 2 +98 1 22 21 5 85.50065 2 +99 1 23 21 8 85.5204 2 +100 1 24 21 10 88.33747 2 +101 1 25 25 7 85.34127 2 +102 1 26 25 5 85.16763 2 +103 1 27 25 6 85.38536 2 +104 1 28 25 8 85.82931 2 +105 1 29 25 10 89.77178 2 +106 1 30 29 7 86.79102 2 +107 1 31 29 5 91.88991 3 +108 1 32 29 6 83.24007 2 +109 1 33 29 8 86.55871 2 +110 1 34 33 7 87.17936 2 +111 1 35 33 5 82.29661 2 +112 1 36 33 6 84.59131 2 +113 1 37 33 8 86.1554 2 +114 1 38 37 7 86.48273 2 +115 1 39 37 5 84.46351 2 +116 1 40 37 6 85.64911 2 +117 1 41 37 8 87.86708 2 +118 1 42 41 7 85.18283 2 +119 1 43 41 5 83.25306 2 +120 1 44 41 6 84.12756 2 +121 1 45 41 8 87.19007 2 +122 1 46 45 9 89.09712 2 +123 1 47 45 7 86.05694 2 +124 1 48 45 5 85.08438 2 +125 1 49 45 6 84.09841 2 +126 1 50 45 8 85.46803 2 +127 1 51 49 9 91.00987 2 +128 1 52 49 7 85.51179 2 +129 1 53 49 6 82.82138 2 +130 1 54 49 8 92.23314 2 +131 1 55 53 7 88.60102 2 +132 1 56 53 5 84.41901 2 +133 1 57 53 6 95.11453 2 +134 1 58 53 8 85.43604 2 +135 1 59 57 7 100.00752 4 +136 1 60 57 5 91.43009 2 +137 1 61 57 6 87.7157 2 +138 1 62 57 8 89.36258 2 +139 1 63 61 7 87.56381 2 +140 1 64 61 5 86.21881 2 +141 1 65 61 6 81.7232 2 +142 1 66 61 8 86.44726 2 +143 1 67 65 7 87.09119 2 +144 1 68 65 5 88.26548 2 +145 1 69 65 6 86.04495 2 +146 1 70 65 8 101.71154 4 +147 1 71 65 10 93.02409 2 +148 1 72 69 9 92.28311 2 +149 1 73 69 7 94.34261 2 +150 1 74 69 6 90.3035 2 +151 1 75 69 8 101.48813 2 +152 2 0 1 11 100.85711 4 +153 2 1 1 9 95.36421 4 +154 2 2 1 12 101.46639 4 +155 2 3 1 14 93.60363 4 +156 2 4 5 13 94.91419 2 +157 2 5 5 11 94.40711 2 +158 2 6 5 10 88.82306 2 +159 2 7 5 12 86.66915 2 +160 2 8 9 11 83.08582 2 +161 2 9 9 9 80.21868 2 +162 2 10 9 10 82.72098 2 +163 2 11 9 12 79.05802 2 +164 2 12 9 14 81.65591 2 +165 2 13 13 11 80.84474 2 +166 2 14 13 9 82.52095 2 +167 2 15 13 10 87.34187 2 +168 2 16 13 12 93.64004 4 +169 2 17 17 11 75.94545 2 +170 2 18 17 9 78.50597 4 +171 2 19 17 10 80.90508 2 +172 2 20 17 12 80.81772 2 +173 2 21 21 11 76.69315 2 +174 2 22 21 9 74.92195 2 +175 2 23 21 12 77.69056 2 +176 2 24 21 14 84.0177 2 +177 2 25 25 11 78.77337 2 +178 2 26 25 9 76.35008 2 +179 2 27 25 12 80.04604 2 +180 2 28 25 14 82.31911 2 +181 2 29 29 11 88.77531 2 +182 2 30 29 9 74.20799 2 +183 2 31 29 10 78.62533 2 +184 2 32 29 12 77.06035 2 +185 2 33 29 14 81.27504 2 +186 2 34 33 11 78.18984 2 +187 2 35 33 9 75.59757 2 +188 2 36 33 10 77.83998 2 +189 2 37 33 12 79.45318 2 +190 2 38 37 11 78.96522 2 +191 2 39 37 9 77.72255 2 +192 2 40 37 10 77.10856 2 +193 2 41 37 12 79.86776 2 +194 2 42 41 13 91.95662 2 +195 2 43 41 11 81.94332 2 +196 2 44 41 9 77.68481 2 +197 2 45 41 10 74.01289 2 +198 2 46 41 12 80.71974 2 +199 2 47 45 13 79.63423 2 +200 2 48 45 11 78.07012 2 +201 2 49 45 10 76.2942 2 +202 2 50 45 12 78.96122 2 +203 2 51 49 13 84.21926 2 +204 2 52 49 11 79.03287 2 +205 2 53 49 10 75.78917 2 +206 2 54 49 12 81.04795 2 +207 2 55 53 11 82.4558 2 +208 2 56 53 9 80.965 2 +209 2 57 53 10 75.78967 2 +210 2 58 53 12 76.88328 2 +211 2 59 57 11 90.42646 4 +212 2 60 57 9 87.26907 2 +213 2 61 57 10 81.03539 2 +214 2 62 57 12 83.04992 2 +215 2 63 61 13 82.23284 2 +216 2 64 61 11 79.13732 2 +217 2 65 61 9 82.47827 2 +218 2 66 61 10 75.24109 2 +219 2 67 61 12 81.5715 2 +220 2 68 65 11 80.90247 2 +221 2 69 65 9 87.25635 2 +222 2 70 65 12 86.20345 2 +223 2 71 65 14 88.66785 2 +224 2 72 69 13 97.51872 4 +225 2 73 69 11 96.64572 4 +226 2 74 69 10 102.13796 4 +227 2 75 69 12 87.21231 2 +228 3 0 1 15 95.24583 2 +229 3 1 1 13 89.94865 2 +230 3 2 1 16 93.69508 4 +231 3 3 1 18 86.18914 4 +232 3 4 5 17 77.45796 2 +233 3 5 5 15 81.62802 2 +234 3 6 5 14 81.51966 2 +235 3 7 5 16 75.99353 2 +236 3 8 9 15 80.37493 2 +237 3 9 9 13 67.81913 2 +238 3 10 9 16 76.9623 2 +239 3 11 9 18 74.98554 2 +240 3 12 13 15 71.09694 2 +241 3 13 13 13 72.66326 2 +242 3 14 13 14 80.20975 2 +243 3 15 13 16 79.60092 2 +244 3 16 13 18 90.80668 2 +245 3 17 17 15 71.89815 2 +246 3 18 17 13 89.92597 2 +247 3 19 17 14 74.32388 2 +248 3 20 17 16 80.8878 4 +249 3 21 21 15 71.0318 2 +250 3 22 21 13 72.56364 2 +251 3 23 21 16 70.96083 2 +252 3 24 21 18 80.68884 2 +253 3 25 25 15 70.41767 2 +254 3 26 25 13 67.62412 2 +255 3 27 25 16 71.59196 2 +256 3 28 25 18 72.36379 2 +257 3 29 29 17 79.93927 2 +258 3 30 29 15 77.70533 2 +259 3 31 29 13 74.44192 2 +260 3 32 29 16 70.79616 2 +261 3 33 29 18 77.16428 2 +262 3 34 33 15 71.14494 2 +263 3 35 33 13 69.04227 2 +264 3 36 33 14 70.51993 2 +265 3 37 33 16 71.2585 2 +266 3 38 37 15 71.4946 2 +267 3 39 37 13 72.6947 2 +268 3 40 37 14 69.99501 2 +269 3 41 37 16 72.76293 2 +270 3 42 41 17 82.41453 2 +271 3 43 41 15 72.17426 2 +272 3 44 41 14 72.12695 2 +273 3 45 41 16 70.75159 2 +274 3 46 41 18 74.77494 2 +275 3 47 45 17 72.01842 2 +276 3 48 45 15 71.52852 2 +277 3 49 45 14 67.63757 2 +278 3 50 45 16 69.88988 2 +279 3 51 49 17 76.87333 2 +280 3 52 49 15 70.55523 2 +281 3 53 49 14 73.09807 2 +282 3 54 49 16 69.16075 2 +283 3 55 53 15 74.34132 2 +284 3 56 53 13 72.74573 2 +285 3 57 53 14 73.24426 2 +286 3 58 53 16 72.8106 2 +287 3 59 57 17 86.21089 2 +288 3 60 57 15 74.35202 2 +289 3 61 57 13 74.07958 2 +290 3 62 57 14 72.26386 2 +291 3 63 57 16 71.11684 2 +292 3 64 61 17 79.00268 2 +293 3 65 61 15 72.22861 2 +294 3 66 61 14 93.70998 2 +295 3 67 61 16 74.06513 2 +296 3 68 65 15 74.27741 2 +297 3 69 65 13 77.83974 2 +298 3 70 65 16 78.79452 2 +299 3 71 65 18 78.00125 2 +300 3 72 69 17 90.5517 4 +301 3 73 69 15 89.35103 4 +302 3 74 69 14 92.52516 4 +303 3 75 69 16 96.56172 4 +304 4 0 1 21 92.15192 2 +305 4 1 1 19 92.91318 4 +306 4 2 1 17 80.17159 2 +307 4 3 1 20 84.77426 4 +308 4 4 1 22 79.6483 4 +309 4 5 5 21 71.56714 2 +310 4 6 5 19 74.32164 2 +311 4 7 5 18 73.81437 2 +312 4 8 5 20 65.67853 2 +313 4 9 9 19 65.92005 2 +314 4 10 9 17 62.96781 2 +315 4 11 9 20 66.66744 2 +316 4 12 9 22 66.60802 2 +317 4 13 13 19 63.63253 2 +318 4 14 13 17 71.99167 2 +319 4 15 13 20 71.43647 2 +320 4 16 13 22 71.36553 2 +321 4 17 17 21 62.19319 2 +322 4 18 17 19 63.39221 2 +323 4 19 17 17 63.99951 2 +324 4 20 17 18 66.00226 2 +325 4 21 17 20 78.45413 2 +326 4 22 21 19 68.73268 2 +327 4 23 21 17 61.51087 2 +328 4 24 21 20 64.37098 2 +329 4 25 21 22 66.7681 2 +330 4 26 25 19 62.88763 2 +331 4 27 25 17 59.95819 2 +332 4 28 25 20 64.35313 2 +333 4 29 25 22 64.79393 2 +334 4 30 29 21 76.18304 4 +335 4 31 29 19 63.29237 2 +336 4 32 29 20 63.4969 2 +337 4 33 29 22 72.79287 2 +338 4 34 29 24 67.00449 2 +339 4 35 33 19 63.0168 2 +340 4 36 33 17 71.05803 2 +341 4 37 33 18 63.47022 2 +342 4 38 33 20 63.77043 2 +343 4 39 37 19 63.27876 2 +344 4 40 37 17 62.77668 2 +345 4 41 37 18 82.91926 2 +346 4 42 37 20 64.8187 2 +347 4 43 41 23 67.7968 2 +348 4 44 41 21 65.51677 2 +349 4 45 41 19 62.73491 2 +350 4 46 41 20 62.24965 2 +351 4 47 41 22 70.96268 2 +352 4 48 45 21 65.09502 2 +353 4 49 45 19 75.13964 2 +354 4 50 45 18 61.02188 2 +355 4 51 45 20 63.34873 2 +356 4 52 49 21 69.34519 2 +357 4 53 49 19 62.60576 2 +358 4 54 49 18 66.9153 2 +359 4 55 49 20 69.33378 2 +360 4 56 53 19 74.03019 2 +361 4 57 53 17 63.09558 2 +362 4 58 53 18 74.33755 2 +363 4 59 53 20 62.55524 2 +364 4 60 53 22 64.93748 2 +365 4 61 57 21 70.48368 2 +366 4 62 57 19 65.71931 2 +367 4 63 57 18 72.34738 2 +368 4 64 57 20 64.40244 2 +369 4 65 61 21 66.40563 2 +370 4 66 61 19 67.32645 2 +371 4 67 61 18 68.54865 2 +372 4 68 61 20 72.62745 2 +373 4 69 65 19 67.65863 2 +374 4 70 65 17 71.81276 2 +375 4 71 65 20 73.82349 2 +376 4 72 65 22 69.80689 2 +377 4 73 69 21 85.3594 4 +378 4 74 69 19 85.64355 4 +379 4 75 69 18 80.35554 2 +380 4 76 69 20 93.38944 4 +381 4 77 69 22 90.77619 2 +382 5 0 1 25 84.93448 2 +383 5 1 1 23 78.44545 2 +384 5 2 1 24 83.72053 4 +385 5 3 1 26 84.34546 4 +386 5 4 5 27 86.49368 4 +387 5 5 5 25 71.50192 2 +388 5 6 5 23 61.54277 2 +389 5 7 5 22 71.24133 2 +390 5 8 5 24 60.71464 2 +391 5 9 9 23 57.34546 2 +392 5 10 9 21 53.62035 2 +393 5 11 9 24 59.37157 2 +394 5 12 9 26 60.33731 2 +395 5 13 13 23 58.216 2 +396 5 14 13 21 56.35974 2 +397 5 15 13 24 62.45916 2 +398 5 16 13 26 59.45893 2 +399 5 17 17 25 55.38146 2 +400 5 18 17 23 56.53539 2 +401 5 19 17 22 56.05094 2 +402 5 20 17 24 58.21802 2 +403 5 21 17 26 70.96046 2 +404 5 22 21 23 60.43519 2 +405 5 23 21 21 61.74147 2 +406 5 24 21 24 56.37012 2 +407 5 25 21 26 70.2072 4 +408 5 26 25 23 55.10697 2 +409 5 27 25 21 53.89865 2 +410 5 28 25 24 56.7128 2 +411 5 29 25 26 57.4032 2 +412 5 30 29 27 65.41848 2 +413 5 31 29 25 61.72109 2 +414 5 32 29 23 57.20188 2 +415 5 33 29 26 59.59618 2 +416 5 34 29 28 69.19882 4 +417 5 35 33 23 57.32861 2 +418 5 36 33 21 57.15845 2 +419 5 37 33 22 56.35306 2 +420 5 38 33 24 56.3683 2 +421 5 39 37 23 55.51622 2 +422 5 40 37 21 55.4246 2 +423 5 41 37 22 58.92986 2 +424 5 42 37 24 55.39537 2 +425 5 43 41 27 60.05421 2 +426 5 44 41 25 59.29913 2 +427 5 45 41 24 56.74626 2 +428 5 46 41 26 56.59331 2 +429 5 47 41 28 62.44477 2 +430 5 48 45 25 57.31764 2 +431 5 49 45 23 57.62856 2 +432 5 50 45 22 54.23778 2 +433 5 51 45 24 55.5474 2 +434 5 52 49 25 62.67219 2 +435 5 53 49 23 60.6321 2 +436 5 54 49 22 58.14674 2 +437 5 55 49 24 61.55785 2 +438 5 56 53 25 61.86123 2 +439 5 57 53 23 60.35076 2 +440 5 58 53 21 56.91591 2 +441 5 59 53 24 53.96498 2 +442 5 60 53 26 59.16761 2 +443 5 61 57 25 64.93993 2 +444 5 62 57 23 58.63578 2 +445 5 63 57 22 55.60792 2 +446 5 64 57 24 58.30338 2 +447 5 65 61 25 60.1155 4 +448 5 66 61 23 57.84001 2 +449 5 67 61 22 65.05104 2 +450 5 68 61 24 58.50376 2 +451 5 69 65 23 62.95921 2 +452 5 70 65 21 64.80781 2 +453 5 71 65 24 60.70506 2 +454 5 72 65 26 68.31624 4 +455 5 73 65 28 84.99633 4 +456 5 74 69 25 84.53743 4 +457 5 75 69 23 82.27459 4 +458 5 76 69 24 77.81376 2 +459 5 77 69 26 90.02647 4 +460 6 0 1 29 75.11941 2 +461 6 1 1 27 64.74731 2 +462 6 2 1 28 76.12596 2 +463 6 3 1 30 73.75991 4 +464 6 4 5 31 90.34266 4 +465 6 5 5 29 57.05337 2 +466 6 6 5 26 68.44678 2 +467 6 7 5 28 52.15133 2 +468 6 8 9 29 60.84038 2 +469 6 9 9 27 50.48947 2 +470 6 10 9 25 48.54277 2 +471 6 11 9 28 60.32264 2 +472 6 12 9 30 51.98508 2 +473 6 13 13 27 50.49014 2 +474 6 14 13 25 48.09994 2 +475 6 15 13 28 51.91725 2 +476 6 16 13 30 65.60839 2 +477 6 17 17 29 50.79809 2 +478 6 18 17 27 51.19025 2 +479 6 19 17 28 51.19976 2 +480 6 20 17 30 52.00971 2 +481 6 21 17 32 56.31891 2 +482 6 22 21 27 52.16461 2 +483 6 23 21 25 56.76866 2 +484 6 24 21 28 47.41329 2 +485 6 25 21 30 59.50112 2 +486 6 26 25 27 47.64813 2 +487 6 27 25 25 52.63264 2 +488 6 28 25 28 49.54345 2 +489 6 29 25 30 49.972 2 +490 6 30 29 31 59.41042 2 +491 6 31 29 29 49.35095 2 +492 6 32 29 30 48.90278 2 +493 6 33 29 32 62.74958 2 +494 6 34 29 34 66.86869 2 +495 6 35 33 27 58.94673 2 +496 6 36 33 25 46.16364 2 +497 6 37 33 26 46.95604 2 +498 6 38 33 28 48.96383 2 +499 6 39 37 27 48.07907 2 +500 6 40 37 25 48.05166 2 +501 6 41 37 26 46.49529 2 +502 6 42 37 28 54.47042 2 +503 6 43 41 33 68.45511 2 +504 6 44 41 31 51.22828 2 +505 6 45 41 29 54.38485 2 +506 6 46 41 30 46.59253 2 +507 6 47 41 32 56.01532 2 +508 6 48 45 29 49.97295 2 +509 6 49 45 27 50.62854 2 +510 6 50 45 26 48.19519 2 +511 6 51 45 28 48.15988 2 +512 6 52 49 29 54.67456 2 +513 6 53 49 27 47.23641 2 +514 6 54 49 26 47.77772 2 +515 6 55 49 28 48.24009 2 +516 6 56 53 31 56.14619 2 +517 6 57 53 29 49.96189 2 +518 6 58 53 27 49.15792 2 +519 6 59 53 28 50.35342 2 +520 6 60 53 30 49.63054 2 +521 6 61 57 29 60.43556 2 +522 6 62 57 27 52.03502 2 +523 6 63 57 26 51.1888 2 +524 6 64 57 28 51.18473 2 +525 6 65 61 29 52.49464 2 +526 6 66 61 27 51.06003 2 +527 6 67 61 26 47.27078 2 +528 6 68 61 28 49.83851 2 +529 6 69 61 30 61.88021 4 +530 6 70 65 27 52.11168 2 +531 6 71 65 25 63.22972 2 +532 6 72 65 30 54.67985 2 +533 6 73 65 32 75.39533 4 +534 6 74 69 29 72.68669 4 +535 6 75 69 27 71.94972 2 +536 6 76 69 28 72.71986 2 +537 6 77 69 30 76.0588 2 +538 7 0 1 33 76.28806 2 +539 7 1 1 31 63.22181 2 +540 7 2 1 32 67.03512 2 +541 7 3 1 34 69.40545 2 +542 7 4 1 36 59.14126 2 +543 7 5 5 35 58.87265 2 +544 7 6 5 33 59.06869 2 +545 7 7 5 30 57.57716 2 +546 7 8 5 32 48.08989 2 +547 7 9 9 33 54.09819 2 +548 7 10 9 31 53.26636 2 +549 7 11 9 32 56.03035 2 +550 7 12 9 34 43.65805 2 +551 7 13 9 36 48.96699 2 +552 7 14 13 31 41.62654 2 +553 7 15 13 29 56.97332 2 +554 7 16 13 32 45.49615 2 +555 7 17 13 34 54.51702 4 +556 7 18 17 33 48.00361 2 +557 7 19 17 31 44.55738 2 +558 7 20 17 34 52.85391 2 +559 7 21 17 36 84.34845 2 +560 7 22 21 33 43.38619 2 +561 7 23 21 31 41.9977 2 +562 7 24 21 29 96.23862 2 +563 7 25 21 32 44.95585 2 +564 7 26 21 34 45.78266 2 +565 7 27 25 31 39.93933 2 +566 7 28 25 29 43.18535 2 +567 7 29 25 32 40.69937 2 +568 7 30 25 34 42.39475 2 +569 7 31 29 35 50.81099 2 +570 7 32 29 33 42.9827 2 +571 7 33 29 36 45.34512 2 +572 7 34 29 38 47.41427 2 +573 7 35 29 40 47.1651 2 +574 7 36 33 31 50.99386 2 +575 7 37 33 29 39.91017 2 +576 7 38 33 30 42.8205 2 +577 7 39 33 32 41.40606 2 +578 7 40 37 31 40.5213 2 +579 7 41 37 29 41.81353 2 +580 7 42 37 30 39.453 2 +581 7 43 37 32 41.5564 2 +582 7 44 41 39 46.80141 2 +583 7 45 41 37 48.66462 2 +584 7 46 41 35 42.28356 2 +585 7 47 41 34 42.47312 2 +586 7 48 41 36 48.75091 2 +587 7 49 45 33 42.3958 2 +588 7 50 45 31 53.60893 2 +589 7 51 45 30 40.64949 2 +590 7 52 45 32 40.45107 2 +591 7 53 49 33 44.82619 2 +592 7 54 49 31 42.95474 2 +593 7 55 49 30 99.70165 2 +594 7 56 49 32 39.74746 2 +595 7 57 49 34 44.56601 2 +596 7 58 53 35 50.18672 2 +597 7 59 53 33 43.11573 2 +598 7 60 53 32 40.85542 2 +599 7 61 53 34 62.26964 2 +600 7 62 57 33 50.72667 2 +601 7 63 57 31 43.84735 2 +602 7 64 57 30 54.75636 2 +603 7 65 57 32 43.54148 2 +604 7 66 61 35 52.70602 2 +605 7 67 61 33 54.9751 2 +606 7 68 61 31 46.65202 2 +607 7 69 61 32 51.67203 2 +608 7 70 61 34 52.99504 2 +609 7 71 65 31 45.92969 2 +610 7 72 65 29 53.23329 2 +611 7 73 65 34 52.88412 2 +612 7 74 65 36 60.43568 4 +613 7 75 69 35 62.52529 4 +614 7 76 69 33 67.57248 4 +615 7 77 69 31 66.76829 2 +616 7 78 69 32 76.01889 2 +617 7 79 69 34 77.39206 2 +618 8 0 1 39 66.56049 2 +619 8 1 1 37 63.08272 2 +620 8 2 1 35 58.79792 2 +621 8 3 1 38 56.31838 2 +622 8 4 1 40 47.45398 2 +623 8 5 5 39 50.39552 2 +624 8 6 5 37 47.01727 2 +625 8 7 5 34 57.44834 2 +626 8 8 5 36 37.01784 2 +627 8 9 9 37 50.89222 2 +628 8 10 9 35 37.36455 2 +629 8 11 9 38 69.46598 2 +630 8 12 9 40 36.85736 2 +631 8 13 13 35 37.52873 2 +632 8 14 13 33 32.42589 2 +633 8 15 13 36 39.14569 2 +634 8 16 13 38 40.49828 2 +635 8 17 13 40 38.40195 2 +636 8 18 17 37 32.20014 2 +637 8 19 17 35 35.60696 2 +638 8 20 17 38 36.89271 2 +639 8 21 17 40 36.4454 2 +640 8 22 21 37 35.10741 2 +641 8 23 21 35 36.30205 2 +642 8 24 21 36 33.11736 2 +643 8 25 21 38 38.16697 2 +644 8 26 21 40 49.86262 2 +645 8 27 25 35 32.33138 2 +646 8 28 25 33 31.81256 2 +647 8 29 25 36 34.08037 2 +648 8 30 25 38 35.1187 2 +649 8 31 29 39 41.62255 2 +650 8 32 29 37 37.03488 2 +651 8 33 30 1 63.10182 2 +652 8 34 30 2 65.16621 2 +653 8 35 30 4 72.99701 2 +654 8 36 33 35 32.45657 2 +655 8 37 33 33 32.49537 2 +656 8 38 33 34 34.92925 2 +657 8 39 33 36 33.0997 2 +658 8 40 37 35 32.96891 2 +659 8 41 37 33 33.94711 2 +660 8 42 37 34 41.93152 2 +661 8 43 37 36 33.98229 2 +662 8 44 42 3 73.34587 2 +663 8 45 42 1 64.51869 2 +664 8 46 42 2 65.26564 2 +665 8 47 41 38 36.0788 2 +666 8 48 41 40 35.1299 2 +667 8 49 45 37 35.11975 2 +668 8 50 45 35 34.30401 2 +669 8 51 45 34 33.39075 2 +670 8 52 45 36 32.84313 2 +671 8 53 49 39 40.8594 2 +672 8 54 49 37 35.14545 2 +673 8 55 49 35 31.82762 2 +674 8 56 49 36 33.88333 2 +675 8 57 49 38 33.69353 2 +676 8 58 53 39 36.34541 2 +677 8 59 53 37 34.31263 2 +678 8 60 53 36 33.60884 2 +679 8 61 53 38 34.41384 2 +680 8 62 57 39 38.55526 2 +681 8 63 57 37 52.18361 2 +682 8 64 57 35 38.11287 2 +683 8 65 57 34 31.41758 2 +684 8 66 57 36 43.1353 2 +685 8 67 61 39 39.41815 2 +686 8 68 61 37 42.01438 2 +687 8 69 61 36 35.45903 2 +688 8 70 61 38 49.55789 2 +689 8 71 65 35 37.78002 2 +690 8 72 65 33 52.58795 2 +691 8 73 65 38 63.64812 2 +692 8 74 65 40 54.48874 4 +693 8 75 69 39 49.55859 2 +694 8 76 69 37 61.1197 4 +695 8 77 69 36 56.40671 2 +696 8 78 69 38 60.10434 2 +697 8 79 69 40 70.26283 2 +698 9 0 2 3 84.54567 2 +699 9 1 2 1 78.22769 2 +700 9 2 2 2 84.53544 2 +701 9 3 2 4 74.58471 4 +702 9 4 6 3 78.06986 4 +703 9 5 6 1 67.95198 4 +704 9 6 6 2 67.43295 2 +705 9 7 5 38 43.28311 2 +706 9 8 5 40 31.33312 2 +707 9 9 9 39 35.04797 2 +708 9 10 10 1 60.79456 2 +709 9 11 10 2 54.60518 2 +710 9 12 10 4 56.39171 2 +711 9 13 13 39 29.95812 2 +712 9 14 13 37 21.2966 2 +713 9 15 14 1 64.17371 2 +714 9 16 14 2 62.14307 2 +715 9 17 14 4 70.79377 4 +716 9 18 17 39 27.3792 2 +717 9 19 18 1 53.40952 2 +718 9 20 18 2 50.75379 2 +719 9 21 18 4 57.49746 2 +720 9 22 21 39 27.57224 2 +721 9 23 22 3 57.2049 2 +722 9 24 22 1 62.69097 2 +723 9 25 22 2 55.25129 2 +724 9 26 22 4 57.7308 2 +725 9 27 25 39 25.01218 2 +726 9 28 25 37 25.83428 2 +727 9 29 25 40 25.52773 2 +728 9 30 26 2 56.08478 2 +729 9 31 30 7 58.77737 2 +730 9 32 30 5 56.74915 2 +731 9 33 30 3 54.23756 2 +732 9 34 30 6 56.46067 2 +733 9 35 30 8 65.96361 4 +734 9 36 33 39 27.96916 2 +735 9 37 33 37 25.20874 2 +736 9 38 33 38 28.16795 2 +737 9 39 33 40 24.72085 2 +738 9 40 37 39 24.56309 2 +739 9 41 37 37 25.97083 2 +740 9 42 37 38 26.2776 2 +741 9 43 37 40 35.84077 2 +742 9 44 42 7 71.94654 2 +743 9 45 42 5 58.26591 2 +744 9 46 42 4 58.05622 2 +745 9 47 42 6 58.67101 2 +746 9 48 42 8 61.31643 2 +747 9 49 46 1 55.13971 2 +748 9 50 45 39 23.88776 2 +749 9 51 45 38 24.30086 2 +750 9 52 45 40 26.56586 2 +751 9 53 50 3 57.65613 2 +752 9 54 50 1 53.1397 2 +753 9 55 50 2 56.01982 2 +754 9 56 50 4 56.06347 2 +755 9 57 49 40 26.11265 2 +756 9 58 54 3 64.2086 2 +757 9 59 54 1 52.45045 2 +758 9 60 54 2 58.42522 2 +759 9 61 53 40 27.03511 2 +760 9 62 58 3 60.23763 2 +761 9 63 58 1 60.25808 2 +762 9 64 58 2 58.57127 2 +763 9 65 57 38 22.96934 2 +764 9 66 57 40 29.27129 2 +765 9 67 62 3 59.17056 2 +766 9 68 62 1 59.10024 2 +767 9 69 62 2 56.46164 2 +768 9 70 61 40 33.52121 2 +769 9 71 65 39 28.55677 2 +770 9 72 65 37 41.52463 2 +771 9 73 66 1 67.65213 2 +772 9 74 66 2 77.17037 4 +773 9 75 66 4 77.47773 4 +774 9 76 70 3 72.30869 2 +775 9 77 70 1 74.28746 2 +776 9 78 70 2 77.80595 2 +777 9 79 70 4 79.7671 2 +778 10 0 2 7 76.35177 2 +779 10 1 2 5 72.76657 2 +780 10 2 2 6 75.02062 4 +781 10 3 2 8 63.25341 2 +782 10 4 6 7 66.69563 4 +783 10 5 6 5 60.62591 2 +784 10 6 6 4 58.0186 2 +785 10 7 6 6 56.46559 2 +786 10 8 6 8 47.53771 2 +787 10 9 10 5 49.8238 2 +788 10 10 10 3 44.31258 2 +789 10 11 10 6 46.19948 2 +790 10 12 10 8 52.3055 2 +791 10 13 14 7 45.19958 2 +792 10 14 14 5 45.31415 2 +793 10 15 14 3 46.93551 2 +794 10 16 14 6 50.41778 2 +795 10 17 14 8 64.16636 4 +796 10 18 18 5 52.28206 2 +797 10 19 18 3 73.95923 2 +798 10 20 18 6 46.12734 2 +799 10 21 18 8 68.83853 2 +800 10 22 22 7 43.83673 2 +801 10 23 22 5 50.312 2 +802 10 24 22 6 48.81079 2 +803 10 25 22 8 46.99864 2 +804 10 26 22 10 51.61704 2 +805 10 27 26 3 41.56048 2 +806 10 28 26 1 40.40788 2 +807 10 29 26 4 43.48133 2 +808 10 30 26 6 48.98876 2 +809 10 31 30 11 51.0262 2 +810 10 32 30 9 46.17171 2 +811 10 33 30 10 46.36146 2 +812 10 34 30 12 49.22545 2 +813 10 35 34 5 51.78592 2 +814 10 36 34 3 45.71898 2 +815 10 37 34 1 42.11563 2 +816 10 38 34 2 42.81583 2 +817 10 39 34 4 44.26455 2 +818 10 40 38 3 44.19894 2 +819 10 41 38 1 43.5008 2 +820 10 42 38 2 41.1478 2 +821 10 43 38 4 41.95308 2 +822 10 44 38 6 53.94633 2 +823 10 45 42 11 49.70259 2 +824 10 46 42 9 63.30069 2 +825 10 47 42 10 45.60129 2 +826 10 48 42 12 51.56734 2 +827 10 49 46 5 48.16409 2 +828 10 50 46 3 41.00855 2 +829 10 51 46 2 41.77622 2 +830 10 52 46 4 48.89532 2 +831 10 53 50 9 51.70599 2 +832 10 54 50 7 48.55557 2 +833 10 55 50 5 45.36152 2 +834 10 56 50 6 49.02599 2 +835 10 57 50 8 43.76505 2 +836 10 58 54 7 46.99183 2 +837 10 59 54 5 45.88931 2 +838 10 60 54 4 45.99168 2 +839 10 61 54 6 46.67825 2 +840 10 62 58 7 63.80234 2 +841 10 63 58 5 46.78129 2 +842 10 64 58 4 50.22856 2 +843 10 65 58 6 48.59565 2 +844 10 66 58 8 46.9226 2 +845 10 67 62 7 50.46817 2 +846 10 68 62 5 49.15271 2 +847 10 69 62 4 42.30133 2 +848 10 70 62 6 45.79168 2 +849 10 71 66 7 47.70717 2 +850 10 72 66 5 51.07655 2 +851 10 73 66 3 51.6729 2 +852 10 74 66 6 62.2377 4 +853 10 75 66 8 68.62324 4 +854 10 76 70 7 60.00631 2 +855 10 77 70 5 82.27186 4 +856 10 78 70 6 69.61368 2 +857 10 79 70 8 80.5422 2 +858 11 0 2 13 72.25544 2 +859 11 1 2 11 72.52309 2 +860 11 2 2 9 58.6558 2 +861 11 3 2 10 70.83396 4 +862 11 4 2 12 59.64076 2 +863 11 5 6 11 58.73002 2 +864 11 6 6 9 51.68284 2 +865 11 7 6 10 60.44658 2 +866 11 8 6 12 41.72112 2 +867 11 9 10 11 48.04569 2 +868 11 10 10 9 38.85097 2 +869 11 11 10 7 66.76922 2 +870 11 12 10 10 47.89635 2 +871 11 13 10 12 39.83504 2 +872 11 14 14 11 37.58799 2 +873 11 15 14 9 40.1583 2 +874 11 16 14 10 37.91096 2 +875 11 17 14 12 39.61176 2 +876 11 18 18 11 41.68369 2 +877 11 19 18 9 37.8909 2 +878 11 20 18 7 36.84768 2 +879 11 21 18 10 37.99681 2 +880 11 22 18 12 40.74909 2 +881 11 23 22 11 38.1951 2 +882 11 24 22 9 37.76289 2 +883 11 25 22 12 38.4719 2 +884 11 26 22 14 39.69831 2 +885 11 27 26 9 38.21993 2 +886 11 28 26 7 42.58244 2 +887 11 29 26 5 33.73709 2 +888 11 30 26 8 34.67358 2 +889 11 31 26 10 41.36039 2 +890 11 32 30 15 43.94854 2 +891 11 33 30 13 39.79798 2 +892 11 34 30 14 39.95246 2 +893 11 35 30 16 52.98419 2 +894 11 36 34 9 52.22146 2 +895 11 37 34 7 35.5075 2 +896 11 38 34 6 34.81337 2 +897 11 39 34 8 35.91239 2 +898 11 40 34 10 42.36455 2 +899 11 41 38 9 42.49994 2 +900 11 42 38 7 35.96558 2 +901 11 43 38 5 34.7513 2 +902 11 44 38 8 38.7001 2 +903 11 45 38 10 39.49758 2 +904 11 46 42 15 53.37435 2 +905 11 47 42 13 45.94517 2 +906 11 48 42 14 37.23239 2 +907 11 49 42 16 45.17265 2 +908 11 50 46 9 40.53572 2 +909 11 51 46 7 33.93403 2 +910 11 52 46 6 33.79772 2 +911 11 53 46 8 44.01878 2 +912 11 54 46 10 40.84123 2 +913 11 55 50 13 40.30571 2 +914 11 56 50 11 38.27108 2 +915 11 57 50 10 38.20849 2 +916 11 58 50 12 42.00068 2 +917 11 59 54 11 40.49293 2 +918 11 60 54 9 37.45419 2 +919 11 61 54 8 36.73589 2 +920 11 62 54 10 36.03219 2 +921 11 63 54 12 48.06945 2 +922 11 64 58 11 44.97005 2 +923 11 65 58 9 37.9962 2 +924 11 66 58 10 38.60521 2 +925 11 67 58 12 38.28026 2 +926 11 68 62 11 43.27189 2 +927 11 69 62 9 41.85427 2 +928 11 70 62 8 40.53897 2 +929 11 71 62 10 38.86961 2 +930 11 72 62 12 44.64533 2 +931 11 73 66 11 41.17705 2 +932 11 74 66 9 64.54002 4 +933 11 75 66 10 50.22131 2 +934 11 76 66 12 56.32427 2 +935 11 77 70 11 54.25858 2 +936 11 78 70 9 67.3208 2 +937 11 79 70 10 58.79767 2 +938 11 80 70 12 70.79712 2 +939 11 81 70 14 73.70197 2 +940 12 0 2 17 66.84149 2 +941 12 1 2 15 69.70914 4 +942 12 2 2 14 59.5784 2 +943 12 3 2 16 50.56581 2 +944 12 4 2 18 53.25472 2 +945 12 5 6 15 52.21196 4 +946 12 6 6 13 44.07725 2 +947 12 7 6 14 43.8545 2 +948 12 8 6 16 34.19675 2 +949 12 9 10 15 38.5791 2 +950 12 10 10 13 68.25533 2 +951 12 11 10 14 31.86466 2 +952 12 12 10 16 32.32772 2 +953 12 13 10 18 37.44073 2 +954 12 14 14 15 29.80713 2 +955 12 15 14 13 29.96742 2 +956 12 16 14 14 30.63523 2 +957 12 17 14 16 32.3804 2 +958 12 18 18 17 73.18938 2 +959 12 19 18 15 31.24282 2 +960 12 20 18 13 29.7484 2 +961 12 21 18 14 30.1451 2 +962 12 22 18 16 42.82601 2 +963 12 23 22 15 34.14036 2 +964 12 24 22 13 29.10251 2 +965 12 25 22 16 41.83716 2 +966 12 26 22 18 33.04204 2 +967 12 27 26 15 31.59147 2 +968 12 28 26 13 29.25078 2 +969 12 29 26 11 28.54955 2 +970 12 30 26 12 26.57463 2 +971 12 31 26 14 37.58172 2 +972 12 32 30 19 34.89118 2 +973 12 33 30 17 30.93009 2 +974 12 34 30 18 39.1061 2 +975 12 35 30 20 45.80412 2 +976 12 36 34 15 33.59331 2 +977 12 37 34 13 29.0811 2 +978 12 38 34 11 30.45646 2 +979 12 39 34 12 36.92769 2 +980 12 40 34 14 30.74805 2 +981 12 41 38 13 30.09276 2 +982 12 42 38 11 29.49794 2 +983 12 43 38 12 29.138 2 +984 12 44 38 14 30.65805 2 +985 12 45 38 16 33.59331 2 +986 12 46 42 19 45.74312 2 +987 12 47 42 17 37.09484 2 +988 12 48 42 18 50.73305 2 +989 12 49 42 20 34.85935 2 +990 12 50 46 13 37.63457 2 +991 12 51 46 11 26.64993 2 +992 12 52 46 12 31.28635 2 +993 12 53 46 14 41.4693 2 +994 12 54 46 16 34.3615 2 +995 12 55 50 17 33.04297 2 +996 12 56 50 15 30.16349 2 +997 12 57 50 14 38.80458 2 +998 12 58 50 16 35.10141 2 +999 12 59 54 15 47.82306 2 +1000 12 60 54 13 30.62337 2 +1001 12 61 54 14 29.39889 2 +1002 12 62 54 16 30.97098 2 +1003 12 63 54 18 41.86196 2 +1004 12 64 58 15 33.03971 2 +1005 12 65 58 13 32.42623 2 +1006 12 66 58 14 30.5161 2 +1007 12 67 58 16 29.99677 2 +1008 12 68 62 17 35.34495 2 +1009 12 69 62 15 34.75894 2 +1010 12 70 62 13 31.5317 2 +1011 12 71 62 14 33.28469 2 +1012 12 72 62 16 67.06571 2 +1013 12 73 66 15 34.41199 2 +1014 12 74 66 13 43.14892 2 +1015 12 75 66 14 52.5229 2 +1016 12 76 66 16 47.00025 2 +1017 12 77 70 17 54.64238 2 +1018 12 78 70 15 53.65053 2 +1019 12 79 70 13 59.94382 2 +1020 12 80 70 16 61.29859 2 +1021 12 81 70 18 66.37067 2 +1022 13 0 2 21 58.27919 2 +1023 13 1 2 19 48.52403 2 +1024 13 2 2 20 54.00749 2 +1025 13 3 2 22 49.07548 2 +1026 13 4 6 21 49.27903 2 +1027 13 5 6 19 38.69141 2 +1028 13 6 6 17 34.70657 2 +1029 13 7 6 18 33.04867 2 +1030 13 8 6 20 26.42041 2 +1031 13 9 10 19 35.88087 2 +1032 13 10 10 17 24.54554 2 +1033 13 11 10 20 26.42392 2 +1034 13 12 10 22 26.2246 2 +1035 13 13 14 21 33.81754 2 +1036 13 14 14 19 31.90584 2 +1037 13 15 14 17 21.96138 2 +1038 13 16 14 18 32.52321 2 +1039 13 17 14 20 27.99545 2 +1040 13 18 18 21 24.14617 2 +1041 13 19 18 19 23.0805 2 +1042 13 20 18 18 22.01956 2 +1043 13 21 18 20 26.7366 2 +1044 13 22 18 22 27.40142 2 +1045 13 23 22 19 29.30434 2 +1046 13 24 22 17 28.84299 2 +1047 13 25 22 20 25.64664 2 +1048 13 26 22 22 26.08491 2 +1049 13 27 26 19 31.43146 2 +1050 13 28 26 17 29.13325 2 +1051 13 29 26 16 28.10749 2 +1052 13 30 26 18 22.26734 2 +1053 13 31 26 20 26.10052 2 +1054 13 32 30 23 26.06544 2 +1055 13 33 30 21 23.97962 2 +1056 13 34 30 22 23.94105 2 +1057 13 35 30 24 38.30002 2 +1058 13 36 34 19 47.66401 2 +1059 13 37 34 17 22.26326 2 +1060 13 38 34 16 22.5462 2 +1061 13 39 34 18 21.40779 2 +1062 13 40 34 20 24.31542 2 +1063 13 41 38 19 24.31542 2 +1064 13 42 38 17 22.41765 2 +1065 13 43 38 15 21.57861 2 +1066 13 44 38 18 22.18582 2 +1067 13 45 38 20 30.84276 2 +1068 13 46 42 23 38.29905 2 +1069 13 47 42 21 29.28572 2 +1070 13 48 42 22 25.20417 2 +1071 13 49 42 24 28.96924 2 +1072 13 50 46 19 26.10157 2 +1073 13 51 46 17 22.26628 2 +1074 13 52 46 15 28.10595 2 +1075 13 53 46 18 31.01349 2 +1076 13 54 46 20 33.81077 2 +1077 13 55 50 21 26.08597 2 +1078 13 56 50 19 22.84868 2 +1079 13 57 50 18 23.07442 2 +1080 13 58 50 20 26.50211 2 +1081 13 59 54 21 27.25237 2 +1082 13 60 54 19 28.40328 2 +1083 13 61 54 17 23.16806 2 +1084 13 62 54 20 42.42507 2 +1085 13 63 54 22 24.14508 2 +1086 13 64 58 19 28.66337 2 +1087 13 65 58 17 32.85077 2 +1088 13 66 58 18 22.30959 2 +1089 13 67 58 20 32.61965 2 +1090 13 68 58 22 34.707 2 +1091 13 69 62 21 28.02345 2 +1092 13 70 62 19 25.58199 2 +1093 13 71 62 18 24.02014 2 +1094 13 72 62 20 35.37728 2 +1095 13 73 66 19 26.81449 2 +1096 13 74 66 17 35.47078 2 +1097 13 75 66 18 35.50182 2 +1098 13 76 66 20 39.14936 2 +1099 13 77 66 22 49.46113 2 +1100 13 78 70 21 53.12184 2 +1101 13 79 70 19 52.81032 2 +1102 13 80 70 20 49.43374 2 +1103 13 81 70 22 57.43348 2 +1104 14 0 2 27 64.92168 2 +1105 14 1 2 25 49.75104 2 +1106 14 2 2 23 43.08506 2 +1107 14 3 2 24 43.06265 2 +1108 14 4 2 26 38.80227 2 +1109 14 5 6 25 37.11431 2 +1110 14 6 6 23 34.59297 2 +1111 14 7 6 22 29.55676 2 +1112 14 8 6 24 30.48824 2 +1113 14 9 6 26 21.01691 2 +1114 14 10 10 23 26.72658 2 +1115 14 11 10 21 15.55635 2 +1116 14 12 10 24 23.55342 2 +1117 14 13 10 26 17.63898 2 +1118 14 14 14 25 20.88401 2 +1119 14 15 14 23 15.5296 2 +1120 14 16 14 22 16.94297 2 +1121 14 17 14 24 21.46108 2 +1122 14 18 14 26 19.5678 2 +1123 14 19 18 25 16.47208 2 +1124 14 20 18 23 22.4577 2 +1125 14 21 18 24 15.69847 2 +1126 14 22 18 26 16.49094 2 +1127 14 23 18 28 21.65304 2 +1128 14 24 22 23 13.99738 2 +1129 14 25 22 21 12.93224 2 +1130 14 26 22 24 15.36176 2 +1131 14 27 22 26 18.20183 2 +1132 14 28 26 25 22.02346 2 +1133 14 29 26 23 19.44761 2 +1134 14 30 26 21 14.36077 2 +1135 14 31 26 22 14.39818 2 +1136 14 32 26 24 29.50984 2 +1137 14 33 30 27 42.57497 2 +1138 14 34 30 25 16.10568 2 +1139 14 35 30 26 18.35915 2 +1140 14 36 30 28 26.80935 2 +1141 14 37 34 25 19.43044 2 +1142 14 38 34 23 16.78974 2 +1143 14 39 34 21 17.36678 2 +1144 14 40 34 22 14.85586 2 +1145 14 41 34 24 20.77229 2 +1146 14 42 38 23 20.77229 2 +1147 14 43 38 21 14.85586 2 +1148 14 44 38 22 15.90561 2 +1149 14 45 38 24 16.8138 2 +1150 14 46 38 26 19.43044 2 +1151 14 47 42 27 31.32024 2 +1152 14 48 42 25 18.13262 2 +1153 14 49 42 26 16.68937 2 +1154 14 50 42 28 23.29672 2 +1155 14 51 46 23 29.50879 2 +1156 14 52 46 21 14.39923 2 +1157 14 53 46 22 16.47419 2 +1158 14 54 46 24 21.41867 2 +1159 14 55 46 26 28.28838 2 +1160 14 56 50 25 18.20276 2 +1161 14 57 50 23 14.70925 2 +1162 14 58 50 22 14.32016 2 +1163 14 59 50 24 17.56833 2 +1164 14 60 54 27 21.65412 2 +1165 14 61 54 25 17.0086 2 +1166 14 62 54 23 15.80667 2 +1167 14 63 54 24 22.2441 2 +1168 14 64 54 26 16.47117 2 +1169 14 65 58 25 19.34983 2 +1170 14 66 58 23 30.13197 2 +1171 14 67 58 21 19.1058 2 +1172 14 68 58 24 15.29574 2 +1173 14 69 58 26 31.1665 2 +1174 14 70 62 25 18.44268 2 +1175 14 71 62 23 19.90882 2 +1176 14 72 62 22 15.52197 2 +1177 14 73 62 24 31.46532 2 +1178 14 74 66 25 21.21409 2 +1179 14 75 66 23 30.12183 2 +1180 14 76 66 21 31.07978 2 +1181 14 77 66 24 35.00092 2 +1182 14 78 66 26 37.28354 2 +1183 14 79 70 25 38.89145 2 +1184 14 80 70 23 45.04887 2 +1185 14 81 70 24 43.44064 2 +1186 14 82 70 26 48.33135 2 +1187 14 83 70 28 71.59924 2 +1188 15 0 2 31 50.43089 2 +1189 15 1 2 29 42.91298 2 +1190 15 2 2 28 42.38418 2 +1191 15 3 2 30 37.04332 2 +1192 15 4 2 32 33.13819 2 +1193 15 5 6 29 35.29976 2 +1194 15 6 6 27 28.63352 2 +1195 15 7 6 28 33.40365 2 +1196 15 8 6 30 24.88162 2 +1197 15 9 10 29 24.44129 2 +1198 15 10 10 27 21.2074 2 +1199 15 11 10 25 11.33985 2 +1200 15 12 10 28 11.45056 2 +1201 15 13 10 30 10.29005 2 +1202 15 14 14 31 13.50341 2 +1203 15 15 14 29 11.7388 2 +1204 15 16 14 27 12.56531 2 +1205 15 17 14 28 10.02605 2 +1206 15 18 14 30 15.89419 2 +1207 15 19 18 29 21.79189 2 +1208 15 20 18 27 7.03516 2 +1209 15 21 18 30 8.65807 2 +1210 15 22 18 32 11.21766 2 +1211 15 23 22 29 19.01182 2 +1212 15 24 22 27 9.57281 2 +1213 15 25 22 25 6.27222 2 +1214 15 26 22 28 8.19972 2 +1215 15 27 22 30 11.14191 2 +1216 15 28 26 29 10.2985 2 +1217 15 29 26 27 7.6623 2 +1218 15 30 26 26 11.20595 2 +1219 15 31 26 28 10.42459 2 +1220 15 32 26 30 14.68808 2 +1221 15 33 30 31 14.53416 2 +1222 15 34 30 29 8.5976 2 +1223 15 35 30 30 8.98877 2 +1224 15 36 30 32 16.1621 2 +1225 15 37 34 29 14.76556 2 +1226 15 38 34 27 8.87152 2 +1227 15 39 34 26 13.65054 2 +1228 15 40 34 28 9.28566 2 +1229 15 41 34 30 10.37757 2 +1230 15 42 38 29 10.37757 2 +1231 15 43 38 27 9.28566 2 +1232 15 44 38 25 13.65054 2 +1233 15 45 38 28 8.87152 2 +1234 15 46 38 30 14.76556 2 +1235 15 47 42 31 15.49839 2 +1236 15 48 42 29 11.27373 2 +1237 15 49 42 30 8.59656 2 +1238 15 50 42 32 14.53513 2 +1239 15 51 46 29 14.68903 2 +1240 15 52 46 27 10.42354 2 +1241 15 53 46 25 11.72413 2 +1242 15 54 46 28 8.3204 2 +1243 15 55 46 30 10.29715 2 +1244 15 56 50 29 11.14283 2 +1245 15 57 50 27 8.19865 2 +1246 15 58 50 26 6.62438 2 +1247 15 59 50 28 10.08771 2 +1248 15 60 50 30 18.88891 2 +1249 15 61 54 31 11.21875 2 +1250 15 62 54 29 8.58801 2 +1251 15 63 54 28 7.03607 2 +1252 15 64 54 30 21.79081 2 +1253 15 65 58 29 15.89309 2 +1254 15 66 58 27 10.06231 2 +1255 15 67 58 28 10.28065 2 +1256 15 68 58 30 11.70369 2 +1257 15 69 58 32 13.93244 2 +1258 15 70 62 29 11.04871 2 +1259 15 71 62 27 11.44943 2 +1260 15 72 62 26 11.47411 2 +1261 15 73 62 28 20.97101 2 +1262 15 74 62 30 24.43964 2 +1263 15 75 66 29 25.17828 2 +1264 15 76 66 27 30.0047 2 +1265 15 77 66 28 28.41148 2 +1266 15 78 66 30 31.39813 2 +1267 15 79 70 31 32.30377 2 +1268 15 80 70 29 33.06341 2 +1269 15 81 70 27 45.94646 2 +1270 15 82 70 30 42.29697 2 +1271 15 83 70 32 49.46457 2 +1272 16 0 2 35 48.0883 2 +1273 16 1 2 33 37.51395 2 +1274 16 2 2 34 43.08496 2 +1275 16 3 2 36 31.11689 2 +1276 16 4 6 35 35.7749 2 +1277 16 5 6 33 32.24863 2 +1278 16 6 6 31 28.41377 2 +1279 16 7 6 32 25.30389 2 +1280 16 8 6 34 22.04166 2 +1281 16 9 10 33 23.00888 2 +1282 16 10 10 31 20.48656 2 +1283 16 11 10 32 23.47465 2 +1284 16 12 10 34 10.20182 2 +1285 16 13 10 36 6.4633 2 +1286 16 14 14 35 13.32957 2 +1287 16 15 14 33 6.42536 2 +1288 16 16 14 32 6.6564 2 +1289 16 17 14 34 12.45247 2 +1290 16 18 14 36 11.33494 2 +1291 16 19 18 33 16.05421 2 +1292 16 20 18 31 7.70233 2 +1293 16 21 18 34 5.47382 2 +1294 16 22 18 36 7.15977 2 +1295 16 23 22 33 15.03659 2 +1296 16 24 22 31 8.28612 2 +1297 16 25 22 32 16.41049 2 +1298 16 26 22 34 8.02648 2 +1299 16 27 22 36 15.24296 2 +1300 16 28 26 35 12.31123 2 +1301 16 29 26 33 6.20181 2 +1302 16 30 26 31 6.72358 2 +1303 16 31 26 32 6.74817 2 +1304 16 32 26 34 14.60575 2 +1305 16 33 30 35 12.44338 2 +1306 16 34 30 33 4.64168 2 +1307 16 35 30 34 4.86838 2 +1308 16 36 30 36 12.55814 2 +1309 16 37 34 35 14.71438 2 +1310 16 38 34 33 5.66584 2 +1311 16 39 34 31 7.18876 2 +1312 16 40 34 32 9.15155 2 +1313 16 41 34 34 9.21947 2 +1314 16 42 38 33 9.21947 2 +1315 16 43 38 31 9.15155 2 +1316 16 44 38 32 7.57494 2 +1317 16 45 38 34 5.66584 2 +1318 16 46 38 36 14.26327 2 +1319 16 47 42 35 12.64167 2 +1320 16 48 42 33 4.73114 2 +1321 16 49 42 34 4.64064 2 +1322 16 50 42 36 12.44435 2 +1323 16 51 46 33 14.9257 2 +1324 16 52 46 31 6.74922 2 +1325 16 53 46 32 6.72452 2 +1326 16 54 46 34 6.09328 2 +1327 16 55 46 36 12.57218 2 +1328 16 56 50 35 17.9066 2 +1329 16 57 50 33 7.61884 2 +1330 16 58 50 31 13.64106 2 +1331 16 59 50 32 8.01061 2 +1332 16 60 50 34 13.70888 2 +1333 16 61 54 35 7.16085 2 +1334 16 62 54 33 5.47291 2 +1335 16 63 54 32 7.70125 2 +1336 16 64 54 34 16.05512 2 +1337 16 65 58 35 11.33604 2 +1338 16 66 58 33 12.1505 2 +1339 16 67 58 31 6.48095 2 +1340 16 68 58 34 6.30589 2 +1341 16 69 58 36 13.02782 2 +1342 16 70 62 35 6.46443 2 +1343 16 71 62 33 10.21163 2 +1344 16 72 62 31 25.73826 2 +1345 16 73 62 32 21.02806 2 +1346 16 74 62 34 22.8092 2 +1347 16 75 66 33 23.19435 2 +1348 16 76 66 31 29.56648 2 +1349 16 77 66 32 32.88296 2 +1350 16 78 66 34 30.46237 2 +1351 16 79 66 36 39.37489 2 +1352 16 80 70 35 34.45461 2 +1353 16 81 70 33 44.56784 2 +1354 16 82 70 34 37.56404 2 +1355 16 83 70 36 50.48351 2 +1356 17 0 2 39 55.89152 2 +1357 17 1 2 37 43.76914 2 +1358 17 2 2 38 45.4821 2 +1359 17 3 2 40 39.40415 2 +1360 17 4 6 39 41.22644 2 +1361 17 5 6 37 45.49474 2 +1362 17 6 6 36 38.18893 2 +1363 17 7 6 38 30.86861 2 +1364 17 8 6 40 26.1492 2 +1365 17 9 10 39 31.4181 2 +1366 17 10 10 37 27.82861 2 +1367 17 11 10 35 19.79086 2 +1368 17 12 10 38 21.19384 2 +1369 17 13 10 40 11.08373 2 +1370 17 14 14 39 18.87433 2 +1371 17 15 14 37 13.44036 2 +1372 17 16 14 38 12.97947 2 +1373 17 17 14 40 12.66558 2 +1374 17 18 18 39 21.95355 2 +1375 17 19 18 37 15.51747 2 +1376 17 20 18 35 16.06598 2 +1377 17 21 18 38 13.08165 2 +1378 17 22 18 40 12.71516 2 +1379 17 23 22 39 20.60304 2 +1380 17 24 22 37 14.94782 2 +1381 17 25 22 35 16.35647 2 +1382 17 26 22 38 14.06808 2 +1383 17 27 22 40 13.75759 2 +1384 17 28 26 39 18.0145 2 +1385 17 29 26 37 13.52479 2 +1386 17 30 26 36 16.67374 2 +1387 17 31 26 38 13.00469 2 +1388 17 32 26 40 22.33045 2 +1389 17 33 30 39 19.48113 2 +1390 17 34 30 37 13.36066 2 +1391 17 35 30 38 11.67926 2 +1392 17 36 30 40 18.87082 2 +1393 17 37 34 39 20.31476 2 +1394 17 38 34 37 13.53189 2 +1395 17 39 34 36 15.54272 2 +1396 17 40 34 38 16.7468 2 +1397 17 41 34 40 16.77501 2 +1398 17 42 38 39 13.58203 2 +1399 17 43 38 37 14.55761 2 +1400 17 44 38 35 15.54272 2 +1401 17 45 38 38 13.15827 2 +1402 17 46 38 40 20.38915 2 +1403 17 47 42 39 21.09871 2 +1404 17 48 42 37 13.27513 2 +1405 17 49 42 38 13.35962 2 +1406 17 50 42 40 19.48209 2 +1407 17 51 46 39 20.64395 2 +1408 17 52 46 37 13.5281 2 +1409 17 53 46 35 16.50998 2 +1410 17 54 46 38 13.52384 2 +1411 17 55 46 40 18.01555 2 +1412 17 56 50 39 18.29075 2 +1413 17 57 50 37 16.14362 2 +1414 17 58 50 36 23.69835 2 +1415 17 59 50 38 14.94682 2 +1416 17 60 50 40 21.11776 2 +1417 17 61 54 39 12.71624 2 +1418 17 62 54 37 13.08074 2 +1419 17 63 54 36 16.06498 2 +1420 17 64 54 38 14.77244 2 +1421 17 65 54 40 21.35948 2 +1422 17 66 58 39 12.66668 2 +1423 17 67 58 37 12.97858 2 +1424 17 68 58 38 13.43926 2 +1425 17 69 58 40 18.87543 2 +1426 17 70 62 39 11.08287 2 +1427 17 71 62 37 21.19469 2 +1428 17 72 62 36 18.88258 2 +1429 17 73 62 38 28.0485 2 +1430 17 74 62 40 28.39789 2 +1431 17 75 66 39 25.56449 2 +1432 17 76 66 37 33.93886 2 +1433 17 77 66 35 41.63254 2 +1434 17 78 66 38 40.28121 2 +1435 17 79 66 40 41.96925 2 +1436 17 80 70 39 40.79282 2 +1437 17 81 70 37 51.40185 2 +1438 17 82 70 38 43.84238 2 +1439 17 83 70 40 57.02794 2 +1440 18 0 3 5 57.67356 2 +1441 18 1 3 3 47.79481 2 +1442 18 2 3 1 44.72475 2 +1443 18 3 3 2 44.75078 2 +1444 18 4 3 4 31.81815 2 +1445 18 5 7 5 36.6016 2 +1446 18 6 7 3 29.7034 2 +1447 18 7 7 1 25.40746 2 +1448 18 8 7 2 26.13851 2 +1449 18 9 7 4 16.53054 2 +1450 18 10 11 3 20.96228 2 +1451 18 11 11 1 16.95669 2 +1452 18 12 11 2 21.02988 2 +1453 18 13 11 4 13.30963 2 +1454 18 14 15 3 15.72187 2 +1455 18 15 15 1 12.47471 2 +1456 18 16 15 2 13.68342 2 +1457 18 17 15 4 23.83271 2 +1458 18 18 15 6 25.97171 2 +1459 18 19 19 5 25.20065 2 +1460 18 20 19 3 13.37779 2 +1461 18 21 19 1 12.14346 2 +1462 18 22 19 2 12.8744 2 +1463 18 23 19 4 27.74299 2 +1464 18 24 23 3 15.43027 2 +1465 18 25 23 1 12.87779 2 +1466 18 26 23 2 13.11159 2 +1467 18 27 23 4 14.41199 2 +1468 18 28 23 6 25.18508 2 +1469 18 29 27 3 19.82516 2 +1470 18 30 27 1 11.13332 2 +1471 18 31 27 2 11.34173 2 +1472 18 32 27 4 14.18154 2 +1473 18 33 31 5 17.2441 2 +1474 18 34 31 3 18.29618 2 +1475 18 35 31 1 11.73186 2 +1476 18 36 31 2 11.81175 2 +1477 18 37 31 4 20.76759 2 +1478 18 38 35 5 24.29041 2 +1479 18 39 35 3 14.04401 2 +1480 18 40 35 1 11.72174 2 +1481 18 41 35 2 13.31297 2 +1482 18 42 35 4 17.14507 2 +1483 18 43 39 3 17.14507 2 +1484 18 44 39 1 13.31297 2 +1485 18 45 39 2 11.72174 2 +1486 18 46 39 4 15.94486 2 +1487 18 47 39 6 24.29041 2 +1488 18 48 43 3 23.86798 2 +1489 18 49 43 1 11.81279 2 +1490 18 50 43 2 12.70959 2 +1491 18 51 43 4 18.29707 2 +1492 18 52 43 6 17.24313 2 +1493 18 53 47 3 14.18249 2 +1494 18 54 47 1 11.34078 2 +1495 18 55 47 2 11.13238 2 +1496 18 56 47 4 19.31265 2 +1497 18 57 51 5 25.67091 2 +1498 18 58 51 3 14.9623 2 +1499 18 59 51 1 13.11252 2 +1500 18 60 51 2 11.82569 2 +1501 18 61 51 4 15.42921 2 +1502 18 62 55 3 24.37766 2 +1503 18 63 55 1 12.87341 2 +1504 18 64 55 2 12.56933 2 +1505 18 65 55 4 13.37679 2 +1506 18 66 55 6 22.69578 2 +1507 18 67 59 5 25.97061 2 +1508 18 68 59 3 23.83171 2 +1509 18 69 59 1 13.68452 2 +1510 18 70 59 2 12.47382 2 +1511 18 71 59 4 15.72098 2 +1512 18 72 63 3 13.34629 2 +1513 18 73 63 1 21.02226 2 +1514 18 74 63 2 16.95584 2 +1515 18 75 63 4 20.94298 2 +1516 18 76 67 3 16.16042 2 +1517 18 77 67 1 25.99086 2 +1518 18 78 67 2 24.88784 2 +1519 18 79 67 4 29.76539 2 +1520 18 80 67 6 36.22879 2 +1521 18 81 71 3 36.54593 2 +1522 18 82 71 1 45.44817 2 +1523 18 83 71 2 39.09429 2 +1524 18 84 71 4 47.87234 2 +1525 18 85 71 6 58.92879 2 +1526 19 0 3 9 50.63424 2 +1527 19 1 3 7 38.77725 2 +1528 19 2 3 6 42.88533 2 +1529 19 3 3 8 33.34238 2 +1530 19 4 3 10 28.48622 2 +1531 19 5 7 9 30.5504 2 +1532 19 6 7 7 28.13503 2 +1533 19 7 7 6 25.67235 2 +1534 19 8 7 8 21.53354 2 +1535 19 9 7 10 12.34175 2 +1536 19 10 11 7 21.13316 2 +1537 19 11 11 5 12.11658 2 +1538 19 12 11 6 15.17622 2 +1539 19 13 11 8 5.29351 2 +1540 19 14 15 9 16.40099 2 +1541 19 15 15 7 7.47552 2 +1542 19 16 15 5 3.98966 2 +1543 19 17 15 8 6.03629 2 +1544 19 18 15 10 15.92082 2 +1545 19 19 19 9 12.19199 2 +1546 19 20 19 7 7.22856 2 +1547 19 21 19 6 4.83278 2 +1548 19 22 19 8 5.79017 2 +1549 19 23 19 10 11.53899 2 +1550 19 24 23 9 10.59128 2 +1551 19 25 23 7 6.00316 2 +1552 19 26 23 5 9.32458 2 +1553 19 27 23 8 6.52571 2 +1554 19 28 23 10 18.66009 2 +1555 19 29 27 7 12.47657 2 +1556 19 30 27 5 6.33703 2 +1557 19 31 27 6 4.02786 2 +1558 19 32 27 8 7.27251 2 +1559 19 33 31 9 15.26806 2 +1560 19 34 31 7 8.39428 2 +1561 19 35 31 6 7.87247 2 +1562 19 36 31 8 5.54141 2 +1563 19 37 31 10 14.64482 2 +1564 19 38 35 9 14.11555 2 +1565 19 39 35 7 11.28237 2 +1566 19 40 35 6 13.73802 2 +1567 19 41 35 8 8.61505 2 +1568 19 42 35 10 9.72756 2 +1569 19 43 39 9 9.72756 2 +1570 19 44 39 7 8.61505 2 +1571 19 45 39 5 13.73802 2 +1572 19 46 39 8 11.29063 2 +1573 19 47 39 10 14.11555 2 +1574 19 48 43 9 14.68596 2 +1575 19 49 43 7 5.54244 2 +1576 19 50 43 5 7.88772 2 +1577 19 51 43 8 8.39331 2 +1578 19 52 43 10 15.26903 2 +1579 19 53 47 7 7.27345 2 +1580 19 54 47 5 4.02691 2 +1581 19 55 47 6 6.33797 2 +1582 19 56 47 8 12.47752 2 +1583 19 57 51 9 16.50132 2 +1584 19 58 51 7 6.52678 2 +1585 19 59 51 6 9.32365 2 +1586 19 60 51 8 5.50278 2 +1587 19 61 51 10 10.59036 2 +1588 19 62 55 9 11.5399 2 +1589 19 63 55 7 5.79108 2 +1590 19 64 55 5 4.83187 2 +1591 19 65 55 8 7.22955 2 +1592 19 66 55 10 12.19108 2 +1593 19 67 59 9 16.00014 2 +1594 19 68 59 7 6.03718 2 +1595 19 69 59 6 3.99075 2 +1596 19 70 59 8 7.47442 2 +1597 19 71 59 10 16.40188 2 +1598 19 72 63 7 5.74209 2 +1599 19 73 63 5 16.16898 2 +1600 19 74 63 6 14.63339 2 +1601 19 75 63 8 21.34312 2 +1602 19 76 67 9 12.3406 2 +1603 19 77 67 7 22.22193 2 +1604 19 78 67 5 25.30141 2 +1605 19 79 67 8 30.93936 2 +1606 19 80 67 10 30.55052 2 +1607 19 81 71 9 28.91728 2 +1608 19 82 71 7 31.15354 2 +1609 19 83 71 5 42.5745 2 +1610 19 84 71 8 37.62314 2 +1611 19 85 71 10 50.53018 2 +1612 20 0 3 13 56.74044 2 +1613 20 1 3 11 39.48188 2 +1614 20 2 3 12 45.98216 2 +1615 20 3 3 14 31.1347 2 +1616 20 4 7 15 45.41426 2 +1617 20 5 7 13 34.32958 2 +1618 20 6 7 11 29.34311 2 +1619 20 7 7 12 28.1238 2 +1620 20 8 7 14 19.28039 2 +1621 20 9 11 13 24.50282 2 +1622 20 10 11 11 22.40418 2 +1623 20 11 11 9 17.13271 2 +1624 20 12 11 10 13.7174 2 +1625 20 13 11 12 9.79413 2 +1626 20 14 15 13 12.7419 2 +1627 20 15 15 11 13.09168 2 +1628 20 16 15 12 13.90524 2 +1629 20 17 15 14 9.52776 2 +1630 20 18 15 16 12.24832 2 +1631 20 19 19 15 12.91909 2 +1632 20 20 19 13 7.47677 2 +1633 20 21 19 11 9.01367 2 +1634 20 22 19 12 9.64128 2 +1635 20 23 19 14 12.01561 2 +1636 20 24 23 13 10.83073 2 +1637 20 25 23 11 7.87626 2 +1638 20 26 23 12 7.22719 2 +1639 20 27 23 14 14.1944 2 +1640 20 28 23 16 13.30176 2 +1641 20 29 27 11 16.31919 2 +1642 20 30 27 9 11.70595 2 +1643 20 31 27 10 10.54005 2 +1644 20 32 27 12 9.09838 2 +1645 20 33 31 15 12.13293 2 +1646 20 34 31 13 14.2539 2 +1647 20 35 31 11 8.39258 2 +1648 20 36 31 12 8.35251 2 +1649 20 37 31 14 16.93341 2 +1650 20 38 35 15 14.7884 2 +1651 20 39 35 13 7.08939 2 +1652 20 40 35 11 8.49312 2 +1653 20 41 35 12 9.83805 2 +1654 20 42 35 14 9.83158 2 +1655 20 43 39 13 9.83158 2 +1656 20 44 39 11 9.83805 2 +1657 20 45 39 12 8.42154 2 +1658 20 46 39 14 7.08939 2 +1659 20 47 39 16 15.39552 2 +1660 20 48 43 13 21.43831 2 +1661 20 49 43 11 8.94239 2 +1662 20 50 43 12 9.25064 2 +1663 20 51 43 14 13.90778 2 +1664 20 52 43 16 11.61413 2 +1665 20 53 47 11 9.09933 2 +1666 20 54 47 9 9.60163 2 +1667 20 55 47 10 9.90139 2 +1668 20 56 47 12 16.32024 2 +1669 20 57 51 15 13.30269 2 +1670 20 58 51 13 14.19347 2 +1671 20 59 51 11 7.22812 2 +1672 20 60 51 12 8.69492 2 +1673 20 61 51 14 10.8298 2 +1674 20 62 55 13 12.01652 2 +1675 20 63 55 11 9.64037 2 +1676 20 64 55 12 9.19197 2 +1677 20 65 55 14 7.47586 2 +1678 20 66 55 16 16.67013 2 +1679 20 67 59 15 12.24941 2 +1680 20 68 59 13 10.32922 2 +1681 20 69 59 11 13.15715 2 +1682 20 70 59 12 13.09278 2 +1683 20 71 59 14 12.74103 2 +1684 20 72 63 11 9.87515 2 +1685 20 73 63 9 13.96303 2 +1686 20 74 63 10 16.54306 2 +1687 20 75 63 12 22.86061 2 +1688 20 76 63 14 24.75684 2 +1689 20 77 67 13 19.0911 2 +1690 20 78 67 11 29.18991 2 +1691 20 79 67 12 29.99811 2 +1692 20 80 67 14 34.84985 2 +1693 20 81 67 16 44.92187 2 +1694 20 82 71 13 30.58745 2 +1695 20 83 71 11 45.84966 2 +1696 20 84 71 12 45.39133 2 +1697 20 85 71 14 47.94012 2 +1698 21 0 3 19 54.37033 2 +1699 21 1 3 17 53.87666 2 +1700 21 2 3 15 50.47687 2 +1701 21 3 3 16 51.70124 2 +1702 21 4 3 18 42.12533 2 +1703 21 5 7 19 45.67312 2 +1704 21 6 7 17 43.85621 2 +1705 21 7 7 16 50.18035 2 +1706 21 8 7 18 37.91249 2 +1707 21 9 7 20 26.28797 2 +1708 21 10 11 17 35.53653 2 +1709 21 11 11 15 27.31297 2 +1710 21 12 11 14 37.25649 2 +1711 21 13 11 16 20.59044 2 +1712 21 14 11 18 25.51916 2 +1713 21 15 15 19 17.15198 2 +1714 21 16 15 17 17.26579 2 +1715 21 17 15 15 19.0944 2 +1716 21 18 15 18 21.80052 2 +1717 21 19 15 20 17.31769 2 +1718 21 20 19 19 25.05865 2 +1719 21 21 19 17 15.34907 2 +1720 21 22 19 16 46.81725 2 +1721 21 23 19 18 15.38062 2 +1722 21 24 19 20 16.69181 2 +1723 21 25 23 17 16.9528 2 +1724 21 26 23 15 23.97574 2 +1725 21 27 23 18 13.53776 2 +1726 21 28 23 20 13.86155 2 +1727 21 29 27 17 22.13235 2 +1728 21 30 27 15 18.76556 2 +1729 21 31 27 13 16.30731 2 +1730 21 32 27 14 16.35628 2 +1731 21 33 27 16 16.65281 2 +1732 21 34 31 19 16.04172 2 +1733 21 35 31 17 17.38185 2 +1734 21 36 31 16 21.43562 2 +1735 21 37 31 18 13.88497 2 +1736 21 38 31 20 20.45273 2 +1737 21 39 35 19 25.98402 2 +1738 21 40 35 17 13.85033 2 +1739 21 41 35 16 25.52384 2 +1740 21 42 35 18 16.13139 2 +1741 21 43 35 20 15.08702 2 +1742 21 44 39 19 15.08702 2 +1743 21 45 39 17 16.1006 2 +1744 21 46 39 15 22.87703 2 +1745 21 47 39 18 13.96635 2 +1746 21 48 39 20 26.14704 2 +1747 21 49 43 19 20.98184 2 +1748 21 50 43 17 15.77236 2 +1749 21 51 43 15 18.587 2 +1750 21 52 43 18 17.3713 2 +1751 21 53 43 20 19.28161 2 +1752 21 54 47 15 16.65375 2 +1753 21 55 47 13 19.38057 2 +1754 21 56 47 14 21.63214 2 +1755 21 57 47 16 22.58399 2 +1756 21 58 47 18 20.05655 2 +1757 21 59 51 19 13.33768 2 +1758 21 60 51 17 17.97427 2 +1759 21 61 51 16 24.25614 2 +1760 21 62 51 18 16.95187 2 +1761 21 63 55 19 18.05953 2 +1762 21 64 55 17 15.35265 2 +1763 21 65 55 15 28.67154 2 +1764 21 66 55 18 17.79303 2 +1765 21 67 55 20 28.44219 2 +1766 21 68 59 19 17.31865 2 +1767 21 69 59 17 19.28422 2 +1768 21 70 59 16 21.79585 2 +1769 21 71 59 18 18.31795 2 +1770 21 72 59 20 16.61102 2 +1771 21 73 63 17 16.72635 2 +1772 21 74 63 15 17.96099 2 +1773 21 75 63 13 32.17348 2 +1774 21 76 63 16 27.72847 2 +1775 21 77 63 18 34.26137 2 +1776 21 78 67 19 26.10697 2 +1777 21 79 67 17 38.68931 2 +1778 21 80 67 15 40.13619 2 +1779 21 81 67 18 43.22702 2 +1780 21 82 67 20 43.29438 2 +1781 21 83 71 17 42.87817 2 +1782 21 84 71 15 53.27163 2 +1783 21 85 71 16 49.17891 2 +1784 21 86 71 18 54.69536 2 +1785 21 87 71 20 62.58179 2 +1786 22 0 3 23 64.17477 2 +1787 22 1 3 21 60.64167 2 +1788 22 2 3 20 63.72104 4 +1789 22 3 3 22 53.14784 2 +1790 22 4 3 24 45.69964 2 +1791 22 5 7 25 65.36512 2 +1792 22 6 7 23 53.95878 2 +1793 22 7 7 21 43.18728 2 +1794 22 8 7 22 44.37864 2 +1795 22 9 7 24 40.57462 2 +1796 22 10 11 21 49.89742 2 +1797 22 11 11 19 40.72096 2 +1798 22 12 11 20 43.31945 2 +1799 22 13 11 22 32.86327 2 +1800 22 14 11 24 24.16504 2 +1801 22 15 15 23 25.13093 2 +1802 22 16 15 21 24.35106 2 +1803 22 17 15 22 27.96916 2 +1804 22 18 15 24 23.55725 2 +1805 22 19 15 26 23.03869 2 +1806 22 20 19 23 26.34996 2 +1807 22 21 19 21 35.90537 2 +1808 22 22 19 22 23.62287 2 +1809 22 23 19 24 21.83732 2 +1810 22 24 23 23 37.17578 2 +1811 22 25 23 21 24.40576 2 +1812 22 26 23 19 25.42995 2 +1813 22 27 23 22 29.54945 2 +1814 22 28 23 24 22.95057 2 +1815 22 29 27 21 26.79246 2 +1816 22 30 27 19 25.48604 2 +1817 22 31 27 18 27.54971 2 +1818 22 32 27 20 24.68959 2 +1819 22 33 27 22 46.99331 2 +1820 22 34 31 25 29.59792 2 +1821 22 35 31 23 22.59298 2 +1822 22 36 31 21 24.4916 2 +1823 22 37 31 22 22.5301 2 +1824 22 38 31 24 29.38737 2 +1825 22 39 35 25 26.94514 2 +1826 22 40 35 23 23.19109 2 +1827 22 41 35 21 24.82268 2 +1828 22 42 35 22 23.55411 2 +1829 22 43 35 24 22.58051 2 +1830 22 44 39 23 22.58051 2 +1831 22 45 39 21 23.58491 2 +1832 22 46 39 22 64.1032 2 +1833 22 47 39 24 22.75722 2 +1834 22 48 39 26 22.97668 2 +1835 22 49 43 23 28.8889 2 +1836 22 50 43 21 23.98375 2 +1837 22 51 43 22 23.14275 2 +1838 22 52 43 24 22.70382 2 +1839 22 53 43 26 35.08067 2 +1840 22 54 47 21 29.78906 2 +1841 22 55 47 19 29.75949 2 +1842 22 56 47 17 30.29682 2 +1843 22 57 47 20 27.27948 2 +1844 22 58 47 22 70.96059 2 +1845 22 59 51 23 22.97609 2 +1846 22 60 51 21 24.55271 2 +1847 22 61 51 20 25.51721 2 +1848 22 62 51 22 24.40484 2 +1849 22 63 51 24 34.48083 2 +1850 22 64 55 23 20.57816 2 +1851 22 65 55 21 24.85614 2 +1852 22 66 55 22 27.37463 2 +1853 22 67 55 24 25.9918 2 +1854 22 68 59 25 22.53491 2 +1855 22 69 59 23 23.57106 2 +1856 22 70 59 21 28.36405 2 +1857 22 71 59 22 24.35195 2 +1858 22 72 59 24 23.72187 2 +1859 22 73 63 23 21.74534 2 +1860 22 74 63 21 32.47999 2 +1861 22 75 63 19 39.76629 2 +1862 22 76 63 20 46.52411 2 +1863 22 77 63 22 47.10822 2 +1864 22 78 67 23 36.35827 2 +1865 22 79 67 21 59.80209 2 +1866 22 80 67 22 41.03943 2 +1867 22 81 67 24 52.62191 2 +1868 22 82 67 26 62.49051 2 +1869 22 83 71 23 45.94357 2 +1870 22 84 71 21 56.63793 2 +1871 22 85 71 19 60.14079 2 +1872 22 86 71 22 62.67652 2 +1873 22 87 71 24 64.58643 2 +1874 23 0 3 27 74.13505 2 +1875 23 1 3 25 68.11311 2 +1876 23 2 3 26 71.87006 2 +1877 23 3 3 28 58.3123 2 +1878 23 4 3 30 54.36537 2 +1879 23 5 7 29 67.95478 2 +1880 23 6 7 27 57.18039 2 +1881 23 7 7 26 60.69373 2 +1882 23 8 7 28 46.79095 2 +1883 23 9 11 27 54.11705 2 +1884 23 10 11 25 53.30766 2 +1885 23 11 11 23 43.93637 2 +1886 23 12 11 26 46.21541 2 +1887 23 13 11 28 91.74515 2 +1888 23 14 15 29 44.03137 2 +1889 23 15 15 27 31.26048 2 +1890 23 16 15 25 31.63847 2 +1891 23 17 15 28 28.56756 2 +1892 23 18 15 30 29.08798 2 +1893 23 19 19 29 44.96228 2 +1894 23 20 19 27 34.12634 2 +1895 23 21 19 25 31.52474 2 +1896 23 22 19 26 32.11132 2 +1897 23 23 19 28 32.27808 2 +1898 23 24 23 27 42.46845 2 +1899 23 25 23 25 31.78283 2 +1900 23 26 23 26 48.39105 2 +1901 23 27 23 28 36.62901 2 +1902 23 28 23 30 29.2747 2 +1903 23 29 27 25 34.49404 2 +1904 23 30 27 23 33.19351 2 +1905 23 31 27 24 34.76687 2 +1906 23 32 27 26 29.66035 2 +1907 23 33 27 28 35.88078 2 +1908 23 34 31 29 37.622 2 +1909 23 35 31 27 29.43079 2 +1910 23 36 31 26 33.97533 2 +1911 23 37 31 28 28.7649 2 +1912 23 38 31 30 34.91705 2 +1913 23 39 35 29 34.93125 2 +1914 23 40 35 27 62.41455 2 +1915 23 41 35 26 32.57629 2 +1916 23 42 35 28 37.51969 2 +1917 23 43 35 30 29.98671 2 +1918 23 44 39 29 29.32753 2 +1919 23 45 39 27 29.6912 2 +1920 23 46 39 25 32.75263 2 +1921 23 47 39 28 29.88 2 +1922 23 48 39 30 30.4951 2 +1923 23 49 43 29 36.14063 2 +1924 23 50 43 27 30.03951 2 +1925 23 51 43 25 33.92278 2 +1926 23 52 43 28 29.42976 2 +1927 23 53 43 30 39.72239 2 +1928 23 54 47 27 35.71517 2 +1929 23 55 47 25 29.29353 2 +1930 23 56 47 23 43.09184 2 +1931 23 57 47 24 31.84617 2 +1932 23 58 47 26 58.48039 2 +1933 23 59 51 29 26.79975 2 +1934 23 60 51 27 36.63001 2 +1935 23 61 51 25 46.39253 2 +1936 23 62 51 26 32.043 2 +1937 23 63 51 28 40.5305 2 +1938 23 64 55 27 30.13983 2 +1939 23 65 55 25 31.69974 2 +1940 23 66 55 26 29.77338 2 +1941 23 67 55 28 33.71082 2 +1942 23 68 55 30 44.80686 2 +1943 23 69 59 29 29.10387 2 +1944 23 70 59 27 28.99476 2 +1945 23 71 59 26 31.59111 2 +1946 23 72 59 28 30.96767 2 +1947 23 73 59 30 46.71967 2 +1948 23 74 63 27 36.20505 2 +1949 23 75 63 25 45.25368 2 +1950 23 76 63 24 47.20405 2 +1951 23 77 63 26 54.1054 2 +1952 23 78 63 28 57.11028 2 +1953 23 79 67 27 48.16911 2 +1954 23 80 67 25 57.10186 2 +1955 23 81 67 28 52.0019 2 +1956 23 82 67 30 62.50449 2 +1957 23 83 71 29 55.12794 2 +1958 23 84 71 27 61.64195 2 +1959 23 85 71 25 67.3648 2 +1960 23 86 71 26 71.24068 2 +1961 23 87 71 28 74.57172 2 +1962 24 0 3 33 81.85775 2 +1963 24 1 3 31 81.11935 2 +1964 24 2 3 29 73.2399 2 +1965 24 3 3 32 70.34806 2 +1966 24 4 3 34 67.18353 2 +1967 24 5 7 33 83.52439 2 +1968 24 6 7 31 73.17687 2 +1969 24 7 7 30 74.39261 2 +1970 24 8 7 32 60.39541 2 +1971 24 9 7 34 56.65705 2 +1972 24 10 11 31 65.84408 2 +1973 24 11 11 29 60.7112 2 +1974 24 12 11 30 60.51431 2 +1975 24 13 11 32 50.48909 2 +1976 24 14 11 34 39.60526 2 +1977 24 15 15 33 47.59766 2 +1978 24 16 15 31 38.53232 2 +1979 24 17 15 32 44.73244 2 +1980 24 18 15 34 34.80931 2 +1981 24 19 15 36 33.75037 2 +1982 24 20 19 33 51.85759 2 +1983 24 21 19 31 41.87715 2 +1984 24 22 19 30 47.08276 2 +1985 24 23 19 32 36.94979 2 +1986 24 24 19 34 36.12101 2 +1987 24 25 23 33 44.70717 2 +1988 24 26 23 31 37.76348 2 +1989 24 27 23 29 48.47765 2 +1990 24 28 23 32 34.78582 2 +1991 24 29 23 34 37.37599 2 +1992 24 30 27 29 41.37344 2 +1993 24 31 27 27 40.18856 2 +1994 24 32 27 30 39.76393 2 +1995 24 33 27 32 34.67122 2 +1996 24 34 27 34 37.78612 2 +1997 24 35 31 35 46.15473 2 +1998 24 36 31 33 35.78589 2 +1999 24 37 31 31 39.13625 2 +2000 24 38 31 32 38.87211 2 +2001 24 39 31 34 37.90563 2 +2002 24 40 35 35 41.3622 2 +2003 24 41 35 33 43.10304 2 +2004 24 42 35 31 55.00656 2 +2005 24 43 35 32 37.33815 2 +2006 24 44 35 34 51.59228 2 +2007 24 45 39 33 35.32111 2 +2008 24 46 39 31 35.53408 2 +2009 24 47 39 32 38.50863 2 +2010 24 48 39 34 35.61365 2 +2011 24 49 39 36 37.54204 2 +2012 24 50 43 33 39.29691 2 +2013 24 51 43 31 38.72261 2 +2014 24 52 43 32 41.13833 2 +2015 24 53 43 34 36.07917 2 +2016 24 54 43 36 44.61152 2 +2017 24 55 47 33 56.31144 2 +2018 24 56 47 31 34.41994 2 +2019 24 57 47 29 40.51026 2 +2020 24 58 47 28 40.28735 2 +2021 24 59 47 30 41.81533 2 +2022 24 60 51 33 38.32707 2 +2023 24 61 51 31 34.89145 2 +2024 24 62 51 30 43.37212 2 +2025 24 63 51 32 37.81139 2 +2026 24 64 51 34 48.28666 2 +2027 24 65 55 33 36.04488 2 +2028 24 66 55 31 36.57109 2 +2029 24 67 55 29 47.86547 2 +2030 24 68 55 32 37.54363 2 +2031 24 69 55 34 50.42012 2 +2032 24 70 59 35 34.37362 2 +2033 24 71 59 33 34.58114 2 +2034 24 72 59 31 44.21261 2 +2035 24 73 59 32 38.17369 2 +2036 24 74 59 34 46.86108 2 +2037 24 75 63 33 66.47323 2 +2038 24 76 63 31 54.16687 2 +2039 24 77 63 29 55.43549 2 +2040 24 78 63 30 61.81933 2 +2041 24 79 63 32 58.4488 2 +2042 24 80 67 33 62.5977 2 +2043 24 81 67 31 65.24983 2 +2044 24 82 67 29 74.13359 2 +2045 24 83 67 32 67.89078 2 +2046 24 84 67 34 71.07318 2 +2047 24 85 71 33 67.83102 2 +2048 24 86 71 31 71.88914 2 +2049 24 87 71 30 77.4677 2 +2050 24 88 71 32 84.45451 2 +2051 24 89 71 34 83.04755 2 +2052 25 0 3 37 91.77355 2 +2053 25 1 3 35 90.80017 2 +2054 25 2 3 36 85.03802 2 +2055 25 3 3 38 83.08509 2 +2056 25 4 3 40 69.62965 2 +2057 25 5 7 37 92.56151 2 +2058 25 6 7 35 72.42574 4 +2059 25 7 7 36 78.38662 2 +2060 25 8 7 38 66.49936 2 +2061 25 9 7 40 60.55761 2 +2062 25 10 11 35 64.26471 2 +2063 25 11 11 33 64.15835 2 +2064 25 12 11 36 61.43029 2 +2065 25 13 11 38 54.09519 2 +2066 25 14 11 40 45.75052 2 +2067 25 15 15 39 56.6665 2 +2068 25 16 15 37 47.057 2 +2069 25 17 15 35 45.54907 2 +2070 25 18 15 38 42.27349 2 +2071 25 19 15 40 41.35791 2 +2072 25 20 19 37 54.90061 2 +2073 25 21 19 35 46.92912 2 +2074 25 22 19 36 50.92915 2 +2075 25 23 19 38 43.58864 3 +2076 25 24 19 40 42.7073 2 +2077 25 25 23 37 46.42629 2 +2078 25 26 23 35 47.1917 2 +2079 25 27 23 36 46.5468 2 +2080 25 28 23 38 42.80828 2 +2081 25 29 23 40 43.10573 2 +2082 25 30 27 33 50.47273 2 +2083 25 31 27 31 49.68529 2 +2084 25 32 27 36 46.15185 2 +2085 25 33 27 38 40.66116 2 +2086 25 34 27 40 43.45118 2 +2087 25 35 31 39 43.24726 2 +2088 25 36 31 37 45.34245 2 +2089 25 37 31 36 49.81006 2 +2090 25 38 31 38 42.57795 2 +2091 25 39 31 40 43.39105 2 +2092 25 40 35 39 50.25666 2 +2093 25 41 35 37 42.0118 2 +2094 25 42 35 36 45.67215 2 +2095 25 43 35 38 42.91409 2 +2096 25 44 35 40 41.54382 2 +2097 25 45 39 39 43.63384 2 +2098 25 46 39 37 41.23658 2 +2099 25 47 39 35 48.11686 4 +2100 25 48 39 38 48.08434 2 +2101 25 49 39 40 43.36314 2 +2102 25 50 43 39 43.31161 2 +2103 25 51 43 37 44.63357 2 +2104 25 52 43 35 46.52434 2 +2105 25 53 43 38 46.05004 2 +2106 25 54 43 40 43.2463 2 +2107 25 55 47 39 43.55826 2 +2108 25 56 47 37 41.8857 2 +2109 25 57 47 35 47.1488 2 +2110 25 58 47 32 57.96435 2 +2111 25 59 47 34 49.16233 2 +2112 25 60 51 39 43.31094 2 +2113 25 61 51 37 44.89491 2 +2114 25 62 51 35 46.85253 2 +2115 25 63 51 36 51.1072 2 +2116 25 64 51 38 59.9071 2 +2117 25 65 55 39 42.55396 2 +2118 25 66 55 37 44.72456 2 +2119 25 67 55 35 55.6584 2 +2120 25 68 55 36 45.30352 2 +2121 25 69 55 38 60.11964 2 +2122 25 70 59 39 41.3588 2 +2123 25 71 59 37 42.67829 2 +2124 25 72 59 36 45.41355 2 +2125 25 73 59 38 45.55638 2 +2126 25 74 59 40 51.50225 2 +2127 25 75 63 39 46.64051 2 +2128 25 76 63 37 58.72869 2 +2129 25 77 63 35 63.60976 2 +2130 25 78 63 34 68.72211 2 +2131 25 79 63 36 64.98689 4 +2132 25 80 67 39 59.72028 2 +2133 25 81 67 37 69.05015 2 +2134 25 82 67 35 78.52609 2 +2135 25 83 67 36 73.17583 4 +2136 25 84 67 38 84.82555 2 +2137 25 85 71 39 74.83991 2 +2138 25 86 71 37 82.68316 2 +2139 25 87 71 35 91.37777 2 +2140 25 88 71 36 87.94262 2 +2141 25 89 71 38 96.88163 2 +2142 26 0 3 39 98.54333 4 +2143 26 1 4 3 58.96372 2 +2144 26 2 4 1 58.54269 2 +2145 26 3 4 2 52.0471 2 +2146 26 4 4 4 51.59303 2 +2147 26 5 7 39 89.91476 4 +2148 26 6 8 3 44.83345 2 +2149 26 7 8 1 54.91414 2 +2150 26 8 8 2 50.10285 2 +2151 26 9 8 4 37.2279 2 +2152 26 10 11 39 67.33652 2 +2153 26 11 11 37 73.2666 2 +2154 26 12 12 1 30.95908 2 +2155 26 13 12 2 33.0697 2 +2156 26 14 12 4 24.43873 2 +2157 26 15 16 3 27.53136 2 +2158 26 16 16 1 28.92014 2 +2159 26 17 16 2 24.31748 2 +2160 26 18 16 4 25.84884 2 +2161 26 19 16 6 29.29929 2 +2162 26 20 19 39 54.29639 2 +2163 26 21 20 3 25.86004 2 +2164 26 22 20 1 31.86106 2 +2165 26 23 20 2 27.58896 2 +2166 26 24 20 4 23.90826 2 +2167 26 25 23 39 54.75397 2 +2168 26 26 24 3 25.12349 2 +2169 26 27 24 1 37.39618 2 +2170 26 28 24 2 24.51877 2 +2171 26 29 24 4 30.71348 2 +2172 26 30 27 39 76.70153 2 +2173 26 31 27 37 61.31222 2 +2174 26 32 27 35 58.32588 2 +2175 26 33 28 2 24.11542 2 +2176 26 34 28 4 30.96498 2 +2177 26 35 32 5 29.53803 2 +2178 26 36 32 3 25.54616 2 +2179 26 37 32 1 25.61059 2 +2180 26 38 32 2 26.5812 2 +2181 26 39 32 4 28.95393 2 +2182 26 40 36 5 33.66408 2 +2183 26 41 36 3 30.65368 2 +2184 26 42 36 1 36.35126 2 +2185 26 43 36 2 28.64753 2 +2186 26 44 36 4 24.9658 2 +2187 26 45 40 3 24.63905 2 +2188 26 46 40 1 25.09027 2 +2189 26 47 40 2 30.05497 2 +2190 26 48 40 4 26.10849 2 +2191 26 49 40 6 26.41456 2 +2192 26 50 44 3 33.8681 2 +2193 26 51 44 1 28.5439 2 +2194 26 52 44 2 29.47022 2 +2195 26 53 44 4 28.64255 2 +2196 26 54 44 6 32.53034 2 +2197 26 55 48 3 30.73208 2 +2198 26 56 48 1 23.67239 2 +2199 26 57 47 36 59.9278 2 +2200 26 58 47 38 56.23298 2 +2201 26 59 47 40 59.87388 2 +2202 26 60 52 3 29.7362 2 +2203 26 61 52 1 26.82277 2 +2204 26 62 52 2 25.09858 2 +2205 26 63 52 4 27.87304 2 +2206 26 64 51 40 54.753 2 +2207 26 65 56 3 24.03075 2 +2208 26 66 56 1 26.95325 2 +2209 26 67 56 2 30.71153 2 +2210 26 68 56 4 25.63951 2 +2211 26 69 55 40 56.39402 2 +2212 26 70 60 5 29.28573 2 +2213 26 71 60 3 25.99895 2 +2214 26 72 60 1 26.16306 2 +2215 26 73 60 2 29.32935 2 +2216 26 74 60 4 29.84471 2 +2217 26 75 64 3 25.93183 2 +2218 26 76 64 1 31.82085 2 +2219 26 77 64 2 30.88508 2 +2220 26 78 63 38 75.28597 2 +2221 26 79 63 40 69.10563 2 +2222 26 80 68 3 37.7483 2 +2223 26 81 68 1 51.70475 2 +2224 26 82 68 2 57.91457 2 +2225 26 83 68 4 47.87614 2 +2226 26 84 67 40 92.16464 4 +2227 26 85 72 3 46.04918 2 +2228 26 86 72 1 66.59049 2 +2229 26 87 72 2 53.90684 2 +2230 26 88 72 4 66.40685 2 +2231 26 89 71 40 99.70442 4 +2232 27 0 4 9 69.43745 2 +2233 27 1 4 7 74.00679 2 +2234 27 2 4 5 61.28765 2 +2235 27 3 4 6 66.36093 2 +2236 27 4 4 8 58.91822 2 +2237 27 5 8 7 69.00186 2 +2238 27 6 8 5 72.70677 2 +2239 27 7 8 6 64.57875 2 +2240 27 8 8 8 56.50161 2 +2241 27 9 8 10 47.89262 2 +2242 27 10 12 7 49.54516 2 +2243 27 11 12 5 47.62303 2 +2244 27 12 12 3 37.73419 2 +2245 27 13 12 6 41.59789 2 +2246 27 14 12 8 32.19786 2 +2247 27 15 16 9 34.73291 2 +2248 27 16 16 7 35.58052 2 +2249 27 17 16 5 49.68616 2 +2250 27 18 16 8 33.29426 2 +2251 27 19 16 10 38.08643 2 +2252 27 20 20 9 43.919 2 +2253 27 21 20 7 35.20428 2 +2254 27 22 20 5 35.03196 2 +2255 27 23 20 6 33.85164 2 +2256 27 24 20 8 31.43366 2 +2257 27 25 24 9 33.79695 2 +2258 27 26 24 7 37.39867 2 +2259 27 27 24 5 43.25937 2 +2260 27 28 24 6 31.76549 2 +2261 27 29 24 8 40.29542 2 +2262 27 30 28 5 34.59896 2 +2263 27 31 28 3 37.80702 2 +2264 27 32 28 1 39.9308 2 +2265 27 33 28 6 35.25508 2 +2266 27 34 28 8 30.73993 2 +2267 27 35 32 9 38.07973 2 +2268 27 36 32 7 32.10695 2 +2269 27 37 32 6 34.66309 2 +2270 27 38 32 8 42.49991 2 +2271 27 39 32 10 43.71116 2 +2272 27 40 36 9 33.16298 2 +2273 27 41 36 7 35.21623 2 +2274 27 42 36 6 40.70988 2 +2275 27 43 36 8 32.96388 2 +2276 27 44 36 10 38.24518 2 +2277 27 45 40 9 36.30371 2 +2278 27 46 40 7 30.6663 2 +2279 27 47 40 5 45.37628 2 +2280 27 48 40 8 32.66118 2 +2281 27 49 40 10 34.05971 2 +2282 27 50 44 9 40.63194 2 +2283 27 51 44 7 43.94703 2 +2284 27 52 44 5 37.1656 2 +2285 27 53 44 8 34.61116 2 +2286 27 54 44 10 41.46044 2 +2287 27 55 48 7 40.03644 2 +2288 27 56 48 5 33.84793 2 +2289 27 57 48 2 39.8293 2 +2290 27 58 48 4 38.34889 2 +2291 27 59 48 6 35.56659 2 +2292 27 60 52 7 37.5369 2 +2293 27 61 52 5 32.28159 2 +2294 27 62 52 6 43.96599 2 +2295 27 63 52 8 33.63476 2 +2296 27 64 52 10 34.11461 2 +2297 27 65 56 7 32.34465 2 +2298 27 66 56 5 32.70756 2 +2299 27 67 56 6 33.38097 2 +2300 27 68 56 8 32.08563 2 +2301 27 69 56 10 48.70025 2 +2302 27 70 60 9 37.84884 2 +2303 27 71 60 7 31.97713 2 +2304 27 72 60 6 33.87094 2 +2305 27 73 60 8 32.49787 2 +2306 27 74 60 10 32.44313 2 +2307 27 75 64 7 38.58695 2 +2308 27 76 64 5 36.10232 2 +2309 27 77 64 4 37.35329 2 +2310 27 78 64 6 46.06648 2 +2311 27 79 64 8 46.46924 2 +2312 27 80 68 9 84.63142 2 +2313 27 81 68 7 57.76419 2 +2314 27 82 68 5 66.58156 2 +2315 27 83 68 6 67.82162 2 +2316 27 84 68 8 58.3921 2 +2317 27 85 72 7 65.26986 2 +2318 27 86 72 5 65.34957 2 +2319 27 87 72 6 61.05553 2 +2320 27 88 72 8 73.54703 2 +2321 27 89 72 10 70.96914 2 +2322 28 0 4 13 90.34882 2 +2323 28 1 4 11 86.17126 2 +2324 28 2 4 10 86.50704 2 +2325 28 3 4 12 80.74613 2 +2326 28 4 4 14 69.17949 2 +2327 28 5 8 13 75.09327 2 +2328 28 6 8 11 68.16526 2 +2329 28 7 8 9 66.65993 4 +2330 28 8 8 12 69.35377 2 +2331 28 9 8 14 58.02692 2 +2332 28 10 12 13 65.33976 2 +2333 28 11 12 11 63.6381 2 +2334 28 12 12 9 50.30449 2 +2335 28 13 12 10 49.3641 2 +2336 28 14 12 12 47.64293 2 +2337 28 15 12 14 36.76793 2 +2338 28 16 16 13 42.96087 2 +2339 28 17 16 11 40.68512 2 +2340 28 18 16 12 42.68451 2 +2341 28 19 16 14 39.72053 2 +2342 28 20 16 16 44.28628 2 +2343 28 21 20 13 47.40215 2 +2344 28 22 20 11 43.13628 2 +2345 28 23 20 10 42.71092 2 +2346 28 24 20 12 73.01604 2 +2347 28 25 20 14 38.77203 2 +2348 28 26 24 13 51.62228 2 +2349 28 27 24 11 40.36099 2 +2350 28 28 24 10 43.10079 2 +2351 28 29 24 12 41.68716 2 +2352 28 30 24 14 41.07244 2 +2353 28 31 28 11 55.92466 2 +2354 28 32 28 9 43.30142 2 +2355 28 33 28 7 44.73923 2 +2356 28 34 28 10 39.74609 2 +2357 28 35 28 12 44.56228 2 +2358 28 36 32 15 37.35812 2 +2359 28 37 32 13 38.18617 2 +2360 28 38 32 11 39.36175 2 +2361 28 39 32 12 39.35746 2 +2362 28 40 32 14 45.5258 2 +2363 28 41 36 15 39.28062 2 +2364 28 42 36 13 39.81371 2 +2365 28 43 36 11 42.92725 2 +2366 28 44 36 12 37.35419 2 +2367 28 45 36 14 44.04748 2 +2368 28 46 40 13 39.92742 2 +2369 28 47 40 11 38.92344 2 +2370 28 48 40 12 41.12801 2 +2371 28 49 40 14 45.95853 2 +2372 28 50 40 16 37.37492 2 +2373 28 51 44 13 48.74244 2 +2374 28 52 44 11 39.13292 2 +2375 28 53 44 12 42.3361 2 +2376 28 54 44 14 47.54186 2 +2377 28 55 44 16 38.49769 2 +2378 28 56 48 11 47.14467 2 +2379 28 57 48 9 39.05894 2 +2380 28 58 48 8 43.43847 2 +2381 28 59 48 10 42.60692 2 +2382 28 60 48 12 56.13489 2 +2383 28 61 52 13 39.06594 2 +2384 28 62 52 11 39.27783 2 +2385 28 63 52 9 51.48851 2 +2386 28 64 52 12 50.65968 2 +2387 28 65 52 14 44.94022 2 +2388 28 66 56 13 37.12147 2 +2389 28 67 56 11 37.58762 2 +2390 28 68 56 9 39.98629 2 +2391 28 69 56 12 40.13383 2 +2392 28 70 56 14 45.17684 2 +2393 28 71 60 15 47.51881 2 +2394 28 72 60 13 37.04179 2 +2395 28 73 60 11 50.17159 2 +2396 28 74 60 12 40.24799 2 +2397 28 75 60 14 40.50583 2 +2398 28 76 64 13 44.88045 2 +2399 28 77 64 11 48.9019 2 +2400 28 78 64 9 57.5105 2 +2401 28 79 64 10 52.31775 2 +2402 28 80 64 12 53.52777 2 +2403 28 81 64 14 61.468 2 +2404 28 82 68 13 62.4 2 +2405 28 83 68 11 70.09406 2 +2406 28 84 68 10 70.64487 2 +2407 28 85 68 12 68.65671 2 +2408 28 86 68 14 87.14892 4 +2409 28 87 72 13 68.95024 4 +2410 28 88 72 11 76.22657 2 +2411 28 89 72 9 84.32155 4 +2412 28 90 72 12 83.852 4 +2413 28 91 72 14 82.74916 4 +2414 29 0 4 19 94.85412 2 +2415 29 1 4 17 94.52402 2 +2416 29 2 4 15 87.66195 2 +2417 29 3 4 16 83.53982 2 +2418 29 4 4 18 80.59148 2 +2419 29 5 8 17 85.29775 2 +2420 29 6 8 15 74.30616 2 +2421 29 7 8 16 76.64979 2 +2422 29 8 8 18 69.98874 2 +2423 29 9 8 20 88.82508 2 +2424 29 10 12 19 72.1861 4 +2425 29 11 12 17 63.43243 2 +2426 29 12 12 15 57.94537 2 +2427 29 13 12 16 58.01565 2 +2428 29 14 12 18 49.09617 2 +2429 29 15 16 19 49.21095 2 +2430 29 16 16 17 50.73062 2 +2431 29 17 16 15 48.19161 2 +2432 29 18 16 18 47.49389 2 +2433 29 19 16 20 44.05349 2 +2434 29 20 20 19 59.83448 2 +2435 29 21 20 17 62.50302 2 +2436 29 22 20 15 47.89485 2 +2437 29 23 20 16 53.66314 2 +2438 29 24 20 18 44.98536 2 +2439 29 25 20 20 45.02747 2 +2440 29 26 24 19 50.57337 2 +2441 29 27 24 17 45.31152 2 +2442 29 28 24 15 49.71207 2 +2443 29 29 24 16 47.69605 2 +2444 29 30 24 18 44.80421 2 +2445 29 31 28 17 47.53748 2 +2446 29 32 28 15 47.00953 2 +2447 29 33 28 13 53.14633 2 +2448 29 34 28 14 47.85463 2 +2449 29 35 28 16 52.68061 2 +2450 29 36 32 19 44.07454 2 +2451 29 37 32 17 54.57867 2 +2452 29 38 32 16 52.51012 2 +2453 29 39 32 18 46.60698 2 +2454 29 40 32 20 55.73385 2 +2455 29 41 36 19 51.92015 2 +2456 29 42 36 17 44.70647 2 +2457 29 43 36 16 50.12924 4 +2458 29 44 36 18 43.67601 2 +2459 29 45 36 20 46.63595 2 +2460 29 46 40 19 45.1902 2 +2461 29 47 40 17 45.91623 2 +2462 29 48 40 15 47.64327 2 +2463 29 49 40 18 46.78864 2 +2464 29 50 40 20 57.43239 2 +2465 29 51 44 19 48.94169 2 +2466 29 52 44 17 46.5772 2 +2467 29 53 44 15 49.36746 2 +2468 29 54 44 18 48.88163 2 +2469 29 55 44 20 44.71371 2 +2470 29 56 48 15 46.14701 2 +2471 29 57 48 13 49.20277 2 +2472 29 58 48 14 48.47381 4 +2473 29 59 48 16 49.73673 2 +2474 29 60 48 18 48.82761 2 +2475 29 61 52 17 59.62471 2 +2476 29 62 52 15 48.5698 2 +2477 29 63 52 16 53.43585 2 +2478 29 64 52 18 45.65051 2 +2479 29 65 52 20 46.34517 2 +2480 29 66 56 19 44.64862 2 +2481 29 67 56 17 47.40511 2 +2482 29 68 56 15 46.13048 2 +2483 29 69 56 16 48.11312 2 +2484 29 70 56 18 45.52136 2 +2485 29 71 56 20 57.54099 2 +2486 29 72 60 19 43.94039 2 +2487 29 73 60 17 45.73789 2 +2488 29 74 60 16 46.61581 2 +2489 29 75 60 18 50.44886 2 +2490 29 76 60 20 49.03304 2 +2491 29 77 64 17 47.40301 2 +2492 29 78 64 15 61.33283 2 +2493 29 79 64 16 65.2877 2 +2494 29 80 64 18 81.85434 2 +2495 29 81 64 20 74.32567 2 +2496 29 82 68 19 64.16765 2 +2497 29 83 68 17 65.89703 2 +2498 29 84 68 15 77.95724 2 +2499 29 85 68 16 80.57838 4 +2500 29 86 68 18 84.78416 2 +2501 29 87 72 17 79.9127 2 +2502 29 88 72 15 85.55651 4 +2503 29 89 72 16 88.85265 4 +2504 29 90 72 18 87.90838 4 +2505 29 91 72 20 92.15974 2 +2506 30 0 4 23 91.89599 2 +2507 30 1 4 21 97.42431 2 +2508 30 2 4 20 92.00373 2 +2509 30 3 4 22 91.65314 2 +2510 30 4 4 24 79.93605 2 +2511 30 5 8 23 90.62183 2 +2512 30 6 8 21 86.80434 2 +2513 30 7 8 19 77.13503 2 +2514 30 8 8 22 75.94617 2 +2515 30 9 8 24 68.21103 2 +2516 30 10 12 23 81.6808 4 +2517 30 11 12 21 70.59608 2 +2518 30 12 12 20 74.18298 2 +2519 30 13 12 22 57.44857 2 +2520 30 14 12 24 59.54158 2 +2521 30 15 16 23 56.29406 2 +2522 30 16 16 21 57.0358 2 +2523 30 17 16 22 64.55558 2 +2524 30 18 16 24 53.93498 2 +2525 30 19 16 26 51.85434 2 +2526 30 20 20 25 61.17244 2 +2527 30 21 20 23 61.9294 2 +2528 30 22 20 21 56.07572 2 +2529 30 23 20 22 53.94629 2 +2530 30 24 20 24 51.67673 2 +2531 30 25 24 25 58.69829 2 +2532 30 26 24 23 53.8907 2 +2533 30 27 24 21 52.98775 2 +2534 30 28 24 20 54.13912 2 +2535 30 29 24 22 54.37382 2 +2536 30 30 24 24 53.16048 2 +2537 30 31 28 21 65.18089 4 +2538 30 32 28 19 62.26043 2 +2539 30 33 28 18 59.40239 2 +2540 30 34 28 20 56.11433 2 +2541 30 35 28 22 76.13405 2 +2542 30 36 32 25 57.77503 4 +2543 30 37 32 23 61.62418 2 +2544 30 38 32 21 55.65234 2 +2545 30 39 32 22 52.07953 2 +2546 30 40 32 24 68.56104 2 +2547 30 41 36 25 62.79751 2 +2548 30 42 36 23 52.07849 2 +2549 30 43 36 21 58.68055 2 +2550 30 44 36 22 59.27402 2 +2551 30 45 36 24 56.05007 2 +2552 30 46 40 23 54.10864 2 +2553 30 47 40 21 58.34603 2 +2554 30 48 40 22 57.21519 2 +2555 30 49 40 24 50.63154 2 +2556 30 50 40 26 65.42629 2 +2557 30 51 44 23 63.94583 4 +2558 30 52 44 21 55.3941 2 +2559 30 53 44 22 59.08168 2 +2560 30 54 44 24 50.85073 2 +2561 30 55 44 26 58.00276 2 +2562 30 56 48 21 55.73877 2 +2563 30 57 48 19 54.28783 2 +2564 30 58 48 17 58.51364 2 +2565 30 59 48 20 56.12846 2 +2566 30 60 48 22 55.47356 2 +2567 30 61 52 23 55.01064 2 +2568 30 62 52 21 59.96194 2 +2569 30 63 52 19 55.26425 2 +2570 30 64 52 22 53.37777 2 +2571 30 65 52 24 53.60286 2 +2572 30 66 52 26 57.77895 2 +2573 30 67 56 23 51.75699 2 +2574 30 68 56 21 52.16381 2 +2575 30 69 56 22 53.14906 2 +2576 30 70 56 24 56.77465 2 +2577 30 71 56 26 54.88326 2 +2578 30 72 60 25 51.93812 2 +2579 30 73 60 23 51.41346 2 +2580 30 74 60 21 57.36423 2 +2581 30 75 60 22 58.25682 2 +2582 30 76 60 24 56.69315 2 +2583 30 77 64 23 62.44897 2 +2584 30 78 64 21 58.91695 2 +2585 30 79 64 19 74.27437 2 +2586 30 80 64 22 74.32684 4 +2587 30 81 64 24 77.14774 4 +2588 30 82 68 23 61.91701 2 +2589 30 83 68 21 74.34683 2 +2590 30 84 68 20 63.19293 2 +2591 30 85 68 22 84.1688 2 +2592 30 86 68 24 90.98369 2 +2593 30 87 72 23 79.64185 4 +2594 30 88 72 21 88.81047 4 +2595 30 89 72 19 96.51924 2 +2596 30 90 72 22 94.02414 2 +2597 30 91 72 24 96.47232 2 +2598 31 0 4 29 102.41819 4 +2599 31 1 4 27 96.67324 2 +2600 31 2 4 25 99.40716 4 +2601 31 3 4 26 97.64976 2 +2602 31 4 4 28 87.94584 2 +2603 31 5 4 30 87.10771 2 +2604 31 6 8 27 100.19033 2 +2605 31 7 8 25 94.7736 4 +2606 31 8 8 26 93.31376 4 +2607 31 9 8 28 81.99824 4 +2608 31 10 8 30 78.20091 2 +2609 31 11 12 29 77.16489 2 +2610 31 12 12 27 85.38052 4 +2611 31 13 12 25 71.72293 2 +2612 31 14 12 26 68.36371 2 +2613 31 15 12 28 66.38408 2 +2614 31 16 16 29 76.72467 2 +2615 31 17 16 27 62.01498 2 +2616 31 18 16 25 61.8611 2 +2617 31 19 16 28 63.16606 2 +2618 31 20 16 30 60.40745 2 +2619 31 21 20 29 65.53108 2 +2620 31 22 20 27 65.8347 2 +2621 31 23 20 26 66.34858 2 +2622 31 24 20 28 59.46207 2 +2623 31 25 20 30 59.01183 2 +2624 31 26 24 29 67.34613 2 +2625 31 27 24 27 61.33264 2 +2626 31 28 24 26 68.21016 2 +2627 31 29 24 28 58.95385 2 +2628 31 30 24 30 58.3289 2 +2629 31 31 28 27 71.62572 4 +2630 31 32 28 25 65.31952 2 +2631 31 33 28 23 65.17254 2 +2632 31 34 28 24 62.4547 2 +2633 31 35 28 26 67.99432 2 +2634 31 36 28 28 60.80263 2 +2635 31 37 32 29 64.1526 2 +2636 31 38 32 27 60.84226 2 +2637 31 39 32 26 60.5607 2 +2638 31 40 32 28 60.22329 2 +2639 31 41 32 30 74.02293 2 +2640 31 42 36 29 68.44053 2 +2641 31 43 36 27 59.46718 2 +2642 31 44 36 26 63.112 2 +2643 31 45 36 28 58.66479 2 +2644 31 46 36 30 66.50637 2 +2645 31 47 40 29 65.0244 2 +2646 31 48 40 27 67.13116 2 +2647 31 49 40 25 62.4047 2 +2648 31 50 40 28 59.75078 2 +2649 31 51 40 30 71.80589 2 +2650 31 52 44 29 67.89093 2 +2651 31 53 44 27 60.66817 2 +2652 31 54 44 25 64.27296 2 +2653 31 55 44 28 60.00807 2 +2654 31 56 44 30 60.87404 2 +2655 31 57 48 27 64.16244 4 +2656 31 58 48 25 67.00212 2 +2657 31 59 48 23 64.38729 2 +2658 31 60 48 24 63.30196 2 +2659 31 61 48 26 70.62668 2 +2660 31 62 48 28 73.87878 4 +2661 31 63 52 29 56.71526 2 +2662 31 64 52 27 58.64755 2 +2663 31 65 52 25 68.02538 2 +2664 31 66 52 28 67.4142 2 +2665 31 67 52 30 65.79281 2 +2666 31 68 56 29 57.71761 2 +2667 31 69 56 27 69.30068 2 +2668 31 70 56 25 64.33116 2 +2669 31 71 56 28 63.49698 2 +2670 31 72 56 30 66.41813 2 +2671 31 73 60 29 60.17439 2 +2672 31 74 60 27 63.06205 2 +2673 31 75 60 26 61.57174 2 +2674 31 76 60 28 61.88018 2 +2675 31 77 60 30 70.11741 2 +2676 31 78 64 27 61.71116 2 +2677 31 79 64 25 63.57449 2 +2678 31 80 64 26 75.07192 4 +2679 31 81 64 28 73.96477 2 +2680 31 82 64 30 88.83858 4 +2681 31 83 68 29 78.2017 2 +2682 31 84 68 27 83.87797 2 +2683 31 85 68 25 90.61472 2 +2684 31 86 68 26 99.96468 4 +2685 31 87 68 28 99.67407 2 +2686 31 88 72 29 85.84575 2 +2687 31 89 72 27 93.9024 2 +2688 31 90 72 25 99.59552 2 +2689 31 91 72 26 102.00368 4 +2690 31 92 72 28 99.47688 2 +2691 31 93 72 30 99.43563 4 +2692 32 0 4 33 99.46517 2 +2693 32 1 4 31 95.46583 2 +2694 32 2 4 32 97.95855 2 +2695 32 3 4 34 99.82625 2 +2696 32 4 4 36 96.56107 2 +2697 32 5 8 33 98.1951 4 +2698 32 6 8 31 96.04873 4 +2699 32 7 8 29 96.55925 2 +2700 32 8 8 32 95.36175 2 +2701 32 9 8 34 90.95198 2 +2702 32 10 8 36 77.45419 2 +2703 32 11 12 33 92.45661 4 +2704 32 12 12 31 89.72656 4 +2705 32 13 12 30 90.28164 2 +2706 32 14 12 32 76.96305 2 +2707 32 15 12 34 68.28536 2 +2708 32 16 16 33 71.23784 2 +2709 32 17 16 31 70.02308 2 +2710 32 18 16 32 77.33099 2 +2711 32 19 16 34 69.00803 2 +2712 32 20 16 36 67.08951 2 +2713 32 21 20 35 78.06642 2 +2714 32 22 20 33 80.69959 2 +2715 32 23 20 31 71.76913 2 +2716 32 24 20 32 65.34334 2 +2717 32 25 20 34 67.26237 2 +2718 32 26 24 35 72.38705 2 +2719 32 27 24 33 72.00586 2 +2720 32 28 24 31 67.57307 2 +2721 32 29 24 32 74.58744 2 +2722 32 30 24 34 67.16152 2 +2723 32 31 28 33 82.92394 2 +2724 32 32 28 31 74.41563 2 +2725 32 33 28 29 68.74226 2 +2726 32 34 28 30 75.18133 2 +2727 32 35 28 32 71.75827 2 +2728 32 36 28 34 70.03915 2 +2729 32 37 32 35 64.29969 2 +2730 32 38 32 33 66.3634 2 +2731 32 39 32 31 67.88857 2 +2732 32 40 32 32 69.35133 2 +2733 32 41 32 34 75.44281 2 +2734 32 42 36 35 75.64344 2 +2735 32 43 36 33 72.18022 2 +2736 32 44 36 31 66.7842 2 +2737 32 45 36 32 65.66054 2 +2738 32 46 36 34 66.02132 2 +2739 32 47 40 33 68.86495 2 +2740 32 48 40 31 65.47569 2 +2741 32 49 40 32 76.39476 2 +2742 32 50 40 34 62.98966 2 +2743 32 51 40 36 81.71677 2 +2744 32 52 44 33 66.82297 2 +2745 32 53 44 31 68.02078 2 +2746 32 54 44 32 71.55798 2 +2747 32 55 44 34 66.69448 2 +2748 32 56 44 36 64.76732 2 +2749 32 57 48 33 68.02484 2 +2750 32 58 48 31 68.18331 2 +2751 32 59 48 29 70.75628 2 +2752 32 60 48 30 71.67265 2 +2753 32 61 48 32 74.38824 2 +2754 32 62 48 34 71.06298 2 +2755 32 63 52 33 62.67148 2 +2756 32 64 52 31 70.90935 2 +2757 32 65 52 32 67.08458 2 +2758 32 66 52 34 66.51599 2 +2759 32 67 52 36 71.4275 2 +2760 32 68 56 33 65.71793 2 +2761 32 69 56 31 65.52007 2 +2762 32 70 56 32 68.82452 2 +2763 32 71 56 34 65.3748 2 +2764 32 72 56 36 69.22666 2 +2765 32 73 60 35 65.57322 2 +2766 32 74 60 33 66.02671 2 +2767 32 75 60 31 68.56754 2 +2768 32 76 60 32 70.64042 2 +2769 32 77 60 34 79.2259 2 +2770 32 78 64 33 67.73266 2 +2771 32 79 64 31 79.60812 2 +2772 32 80 64 29 89.82094 2 +2773 32 81 64 32 86.35165 4 +2774 32 82 64 34 94.33957 4 +2775 32 83 68 35 77.94242 2 +2776 32 84 68 33 91.88197 2 +2777 32 85 68 31 94.91926 2 +2778 32 86 68 30 100.04781 2 +2779 32 87 68 32 100.39128 4 +2780 32 88 68 34 82.29234 2 +2781 32 89 72 35 95.57105 2 +2782 32 90 72 33 101.29463 2 +2783 32 91 72 31 100.77572 4 +2784 32 92 72 32 86.69526 2 +2785 32 93 72 34 87.73866 2 +2786 33 0 4 39 100.76569 2 +2787 33 1 4 37 96.54242 2 +2788 33 2 4 35 94.80516 4 +2789 33 3 4 38 96.49267 4 +2790 33 4 4 40 102.35166 2 +2791 33 5 8 39 100.29505 4 +2792 33 6 8 37 101.61586 4 +2793 33 7 8 35 95.27118 2 +2794 33 8 8 38 96.76965 2 +2795 33 9 8 40 89.40571 2 +2796 33 10 12 39 101.7843 4 +2797 33 11 12 37 96.57197 2 +2798 33 12 12 35 83.80017 2 +2799 33 13 12 36 89.42048 2 +2800 33 14 12 38 75.14975 2 +2801 33 15 12 40 73.25466 2 +2802 33 16 16 39 80.30254 2 +2803 33 17 16 37 83.5873 2 +2804 33 18 16 35 76.46269 2 +2805 33 19 16 38 73.30301 2 +2806 33 20 16 40 72.73654 3 +2807 33 21 20 39 85.85421 2 +2808 33 22 20 37 74.28232 2 +2809 33 23 20 36 80.33406 2 +2810 33 24 20 38 73.50961 2 +2811 33 25 20 40 69.52573 2 +2812 33 26 24 39 75.88164 2 +2813 33 27 24 37 75.30659 2 +2814 33 28 24 36 80.02398 2 +2815 33 29 24 38 79.79513 2 +2816 33 30 24 40 69.2313 2 +2817 33 31 28 39 84.14784 2 +2818 33 32 28 37 75.05767 2 +2819 33 33 28 35 75.83082 2 +2820 33 34 28 36 75.08031 2 +2821 33 35 28 38 71.67918 2 +2822 33 36 28 40 74.48246 2 +2823 33 37 32 39 70.48019 2 +2824 33 38 32 37 72.40017 2 +2825 33 39 32 36 76.718 2 +2826 33 40 32 38 72.32248 2 +2827 33 41 32 40 83.29049 4 +2828 33 42 36 39 86.07804 2 +2829 33 43 36 37 75.05111 2 +2830 33 44 36 36 75.97803 2 +2831 33 45 36 38 72.47067 2 +2832 33 46 36 40 70.36246 2 +2833 33 47 40 39 72.22883 2 +2834 33 48 40 37 71.64424 2 +2835 33 49 40 35 78.74034 2 +2836 33 50 40 38 69.96488 2 +2837 33 51 40 40 83.6449 2 +2838 33 52 44 39 82.50975 4 +2839 33 53 44 37 69.89618 2 +2840 33 54 44 35 75.09992 2 +2841 33 55 44 38 73.17248 2 +2842 33 56 44 40 70.6751 2 +2843 33 57 48 39 73.81876 2 +2844 33 58 48 37 71.04252 2 +2845 33 59 48 35 71.50782 2 +2846 33 60 48 36 72.95414 2 +2847 33 61 48 38 78.89457 2 +2848 33 62 48 40 87.84753 2 +2849 33 63 52 39 69.53661 2 +2850 33 64 52 37 70.10991 2 +2851 33 65 52 35 74.61746 2 +2852 33 66 52 38 74.13018 2 +2853 33 67 52 40 78.34192 2 +2854 33 68 56 39 70.79644 2 +2855 33 69 56 37 73.09879 2 +2856 33 70 56 35 76.26028 2 +2857 33 71 56 38 73.3028 2 +2858 33 72 56 40 76.04443 2 +2859 33 73 60 39 70.98528 2 +2860 33 74 60 37 73.72315 2 +2861 33 75 60 36 76.38083 2 +2862 33 76 60 38 74.76302 2 +2863 33 77 60 40 75.47889 2 +2864 33 78 64 39 72.33789 2 +2865 33 79 64 37 82.02013 2 +2866 33 80 64 35 90.78365 2 +2867 33 81 64 36 87.90217 2 +2868 33 82 64 38 90.46145 2 +2869 33 83 64 40 98.47166 4 +2870 33 84 68 39 89.6738 2 +2871 33 85 68 37 102.98933 4 +2872 33 86 68 36 99.24737 4 +2873 33 87 68 38 102.26616 4 +2874 33 88 68 40 87.25184 2 +2875 33 89 72 39 99.71839 2 +2876 33 90 72 37 88.05332 2 +2877 33 91 72 36 88.91231 2 +2878 33 92 72 38 91.59795 2 +2879 33 93 72 40 94.14483 2 diff --git a/Detectors/TPC/base/files/LENGTH-OROC2.txt b/Detectors/TPC/base/files/LENGTH-OROC2.txt new file mode 100644 index 0000000000000..7d702f30a3e26 --- /dev/null +++ b/Detectors/TPC/base/files/LENGTH-OROC2.txt @@ -0,0 +1,3200 @@ +0 0 0 1 3 110.60739 2 +1 0 1 1 1 110.4044 2 +2 0 2 1 2 109.27584 2 +3 0 3 1 4 108.18434 2 +4 0 4 5 3 106.25242 2 +5 0 5 5 1 102.62965 2 +6 0 6 5 2 105.1966 2 +7 0 7 5 4 103.92957 2 +8 0 8 5 6 110.39389 4 +9 0 9 9 5 105.74178 2 +10 0 10 9 3 106.12295 2 +11 0 11 9 1 108.15588 2 +12 0 12 9 2 107.18801 2 +13 0 13 9 4 110.94795 2 +14 0 14 13 3 106.78553 2 +15 0 15 13 1 103.45652 2 +16 0 16 13 2 104.46445 3 +17 0 17 13 4 108.86367 2 +18 0 18 13 6 112.58242 2 +19 0 19 17 3 104.19603 2 +20 0 20 17 1 107.04165 2 +21 0 21 17 2 105.13637 2 +22 0 22 17 4 108.90753 2 +23 0 23 21 5 101.9212 2 +24 0 24 21 3 105.63432 2 +25 0 25 21 1 104.94851 2 +26 0 26 21 2 107.84238 2 +27 0 27 21 4 112.0574 4 +28 0 28 25 3 103.10754 2 +29 0 29 25 1 103.06899 2 +30 0 30 25 2 103.33074 2 +31 0 31 25 4 106.58494 2 +32 0 32 25 6 108.85032 2 +33 0 33 29 3 100.94033 2 +34 0 34 29 1 102.78041 2 +35 0 35 29 2 102.27288 2 +36 0 36 29 4 106.00971 2 +37 0 37 33 5 104.52836 2 +38 0 38 33 3 103.18128 2 +39 0 39 33 1 103.86546 2 +40 0 40 33 2 100.11496 2 +41 0 41 33 4 104.0645 2 +42 0 42 37 5 106.38613 2 +43 0 43 37 3 102.68666 2 +44 0 44 37 1 103.11428 2 +45 0 45 37 2 102.82505 2 +46 0 46 37 4 107.05002 3 +47 0 47 41 3 106.2435 2 +48 0 48 41 1 102.50799 2 +49 0 49 41 2 101.68939 2 +50 0 50 41 4 103.49756 2 +51 0 51 41 6 105.37932 2 +52 0 52 45 3 104.74142 2 +53 0 53 45 1 104.34312 2 +54 0 54 45 2 103.55874 2 +55 0 55 45 4 102.35538 2 +56 0 56 45 6 105.6801 2 +57 0 57 49 3 107.09569 2 +58 0 58 49 1 102.99727 2 +59 0 59 49 2 101.79638 2 +60 0 60 49 4 101.45768 2 +61 0 61 53 5 113.6873 2 +62 0 62 53 3 105.5794 2 +63 0 63 53 1 101.74808 2 +64 0 64 53 2 103.00798 2 +65 0 65 53 4 103.95878 2 +66 0 66 57 3 108.34107 2 +67 0 67 57 1 107.55975 2 +68 0 68 57 2 104.93782 2 +69 0 69 57 4 103.40907 2 +70 0 70 57 6 102.98047 2 +71 0 71 61 3 111.66533 2 +72 0 72 61 1 105.85227 2 +73 0 73 61 2 107.19615 2 +74 0 74 61 4 104.2679 2 +75 0 75 65 5 113.65583 4 +76 0 76 65 3 112.07316 4 +77 0 77 65 1 104.13932 2 +78 0 78 65 2 105.31836 2 +79 0 79 65 4 106.25807 2 +80 0 80 69 3 110.44166 2 +81 0 81 69 1 106.28621 2 +82 0 82 69 2 106.36659 2 +83 0 83 69 4 106.17889 2 +84 0 84 69 6 104.40631 2 +85 0 85 73 5 106.472 2 +86 0 86 73 3 105.11058 2 +87 0 87 73 1 103.83002 2 +88 0 88 73 2 104.02909 2 +89 0 89 73 4 107.67685 2 +90 0 90 77 3 107.05733 2 +91 0 91 77 1 108.5313 2 +92 0 92 77 2 106.83879 2 +93 0 93 77 4 111.91559 2 +94 1 0 1 7 108.28716 2 +95 1 1 1 5 103.90612 2 +96 1 2 1 6 107.85379 2 +97 1 3 1 8 101.06131 2 +98 1 4 1 10 102.34823 2 +99 1 5 5 9 103.80654 2 +100 1 6 5 7 94.2141 2 +101 1 7 5 5 91.97737 2 +102 1 8 5 8 96.13745 2 +103 1 9 5 10 97.19023 2 +104 1 10 9 9 93.96358 2 +105 1 11 9 7 100.47959 2 +106 1 12 9 6 96.4635 2 +107 1 13 9 8 98.70348 2 +108 1 14 9 10 102.99993 2 +109 1 15 13 7 96.50575 2 +110 1 16 13 5 95.89434 2 +111 1 17 13 8 105.07354 4 +112 1 18 13 10 110.86393 4 +113 1 19 17 9 101.27313 2 +114 1 20 17 7 95.16862 2 +115 1 21 17 5 100.66857 2 +116 1 22 17 6 105.21905 2 +117 1 23 17 8 111.58165 4 +118 1 24 21 9 94.29545 2 +119 1 25 21 7 94.56138 2 +120 1 26 21 6 91.16408 2 +121 1 27 21 8 100.13147 2 +122 1 28 21 10 108.67836 2 +123 1 29 25 9 95.92103 2 +124 1 30 25 7 95.0692 2 +125 1 31 25 5 96.31166 2 +126 1 32 25 8 95.80188 2 +127 1 33 25 10 111.38196 4 +128 1 34 29 7 92.95852 2 +129 1 35 29 5 94.45412 2 +130 1 36 29 6 93.59662 2 +131 1 37 29 8 96.40664 2 +132 1 38 33 9 96.36009 2 +133 1 39 33 7 94.53996 2 +134 1 40 33 6 93.80762 2 +135 1 41 33 8 93.47648 2 +136 1 42 33 10 97.33918 2 +137 1 43 37 9 96.73171 2 +138 1 44 37 7 102.81863 2 +139 1 45 37 6 92.73549 2 +140 1 46 37 8 96.9983 2 +141 1 47 37 10 104.17594 2 +142 1 48 41 9 97.39925 2 +143 1 49 41 7 95.46462 2 +144 1 50 41 5 91.35961 2 +145 1 51 41 8 94.80318 2 +146 1 52 41 10 101.96504 2 +147 1 53 45 9 100.02635 2 +148 1 54 45 7 94.77131 2 +149 1 55 45 5 92.72903 2 +150 1 56 45 8 95.15029 2 +151 1 57 45 10 104.16163 4 +152 1 58 49 7 105.78379 4 +153 1 59 49 5 94.25231 2 +154 1 60 49 6 93.78917 2 +155 1 61 49 8 93.31688 2 +156 1 62 53 9 107.85412 2 +157 1 63 53 7 97.59995 2 +158 1 64 53 6 96.11799 2 +159 1 65 53 8 95.41273 2 +160 1 66 53 10 96.38661 2 +161 1 67 57 9 107.04677 2 +162 1 68 57 7 97.43944 2 +163 1 69 57 5 97.16948 2 +164 1 70 57 8 96.1211 2 +165 1 71 57 10 94.71008 2 +166 1 72 61 7 106.93062 2 +167 1 73 61 5 110.13308 4 +168 1 74 61 6 97.47974 2 +169 1 75 61 8 96.16359 2 +170 1 76 61 10 101.30805 2 +171 1 77 65 9 108.65744 2 +172 1 78 65 7 105.24998 4 +173 1 79 65 6 100.27156 2 +174 1 80 65 8 96.71448 2 +175 1 81 69 9 107.49065 2 +176 1 82 69 7 108.1198 4 +177 1 83 69 5 99.89923 2 +178 1 84 69 8 98.71328 2 +179 1 85 69 10 94.64174 2 +180 1 86 73 9 104.5452 2 +181 1 87 73 7 95.7362 2 +182 1 88 73 6 93.12758 2 +183 1 89 73 8 94.41086 2 +184 1 90 73 10 100.10531 2 +185 1 91 77 9 103.13797 2 +186 1 92 77 7 102.66358 2 +187 1 93 77 5 105.57078 2 +188 1 94 77 6 103.09192 2 +189 1 95 77 8 108.18461 2 +190 2 0 1 13 113.54322 4 +191 2 1 1 11 98.20961 2 +192 2 2 1 9 102.98425 4 +193 2 3 1 12 91.69588 2 +194 2 4 1 14 91.52847 2 +195 2 5 5 13 92.75708 2 +196 2 6 5 11 87.40429 2 +197 2 7 5 12 84.77056 2 +198 2 8 5 14 88.31974 2 +199 2 9 5 16 88.54409 2 +200 2 10 9 13 86.61998 2 +201 2 11 9 11 88.75841 2 +202 2 12 9 12 86.06334 2 +203 2 13 9 14 105.05809 2 +204 2 14 13 13 87.44216 2 +205 2 15 13 11 88.37584 2 +206 2 16 13 9 85.98688 2 +207 2 17 13 12 91.72598 2 +208 2 18 13 14 98.21648 4 +209 2 19 17 13 86.19911 2 +210 2 20 17 11 86.04531 2 +211 2 21 17 10 84.5629 2 +212 2 22 17 12 99.94216 4 +213 2 23 17 14 96.23103 2 +214 2 24 21 15 88.93269 2 +215 2 25 21 13 86.31011 2 +216 2 26 21 11 95.15344 2 +217 2 27 21 12 97.33813 2 +218 2 28 21 14 103.51014 2 +219 2 29 25 13 85.24535 2 +220 2 30 25 11 86.59662 2 +221 2 31 25 12 85.71022 2 +222 2 32 25 14 97.48512 4 +223 2 33 25 16 98.73508 4 +224 2 34 29 11 82.82922 2 +225 2 35 29 9 95.82452 2 +226 2 36 29 10 84.80693 2 +227 2 37 29 12 99.92665 4 +228 2 38 33 15 88.92457 2 +229 2 39 33 13 106.08738 2 +230 2 40 33 11 86.36196 2 +231 2 41 33 12 87.51051 2 +232 2 42 33 14 95.92861 4 +233 2 43 37 15 89.73832 2 +234 2 44 37 13 84.79685 2 +235 2 45 37 11 84.96845 2 +236 2 46 37 12 85.63887 2 +237 2 47 37 14 100.70737 4 +238 2 48 41 13 98.5833 4 +239 2 49 41 11 85.91917 2 +240 2 50 41 12 85.71569 2 +241 2 51 41 14 88.20455 2 +242 2 52 41 16 94.99793 2 +243 2 53 45 13 87.52067 2 +244 2 54 45 11 87.63237 2 +245 2 55 45 12 84.50625 2 +246 2 56 45 14 85.85941 2 +247 2 57 45 16 87.86102 2 +248 2 58 49 11 96.39614 4 +249 2 59 49 9 84.51285 2 +250 2 60 49 10 83.69945 2 +251 2 61 49 12 84.55071 2 +252 2 62 53 15 92.00688 2 +253 2 63 53 13 87.70695 2 +254 2 64 53 11 86.54238 2 +255 2 65 53 12 86.81108 2 +256 2 66 53 14 84.11251 2 +257 2 67 57 13 97.3471 2 +258 2 68 57 11 91.88028 2 +259 2 69 57 12 88.0505 2 +260 2 70 57 14 87.79273 2 +261 2 71 57 16 88.96945 2 +262 2 72 61 13 95.97306 2 +263 2 73 61 11 104.71605 4 +264 2 74 61 9 83.73394 2 +265 2 75 61 12 87.42696 2 +266 2 76 61 14 85.35704 2 +267 2 77 65 13 109.1091 4 +268 2 78 65 11 96.23209 4 +269 2 79 65 10 90.11919 2 +270 2 80 65 12 85.97719 2 +271 2 81 65 14 87.48179 2 +272 2 82 69 13 102.72379 4 +273 2 83 69 11 88.80784 2 +274 2 84 69 12 96.52037 2 +275 2 85 69 14 86.30004 2 +276 2 86 73 15 87.07101 2 +277 2 87 73 13 88.33044 2 +278 2 88 73 11 85.75483 2 +279 2 89 73 12 87.78704 2 +280 2 90 73 14 101.29946 2 +281 2 91 77 13 94.27834 2 +282 2 92 77 11 93.05094 2 +283 2 93 77 10 97.42186 2 +284 2 94 77 12 101.74909 4 +285 2 95 77 14 107.62621 2 +286 3 0 1 17 100.81721 4 +287 3 1 1 15 91.64457 4 +288 3 2 1 16 83.63172 2 +289 3 3 1 18 93.78882 2 +290 3 4 5 19 83.92405 2 +291 3 5 5 17 79.03287 2 +292 3 6 5 15 74.89935 2 +293 3 7 5 18 78.51017 2 +294 3 8 5 20 81.70307 2 +295 3 9 9 19 77.36913 2 +296 3 10 9 17 77.52532 2 +297 3 11 9 15 82.60841 2 +298 3 12 9 16 79.46948 2 +299 3 13 9 18 91.93054 4 +300 3 14 13 17 77.26623 2 +301 3 15 13 15 86.17664 2 +302 3 16 13 16 82.41497 4 +303 3 17 13 18 84.1319 2 +304 3 18 13 20 90.84764 4 +305 3 19 17 19 79.56071 2 +306 3 20 17 17 78.95095 2 +307 3 21 17 15 79.38515 2 +308 3 22 17 16 79.43812 2 +309 3 23 17 18 102.52575 2 +310 3 24 21 19 81.03287 2 +311 3 25 21 17 76.77547 2 +312 3 26 21 16 78.0984 2 +313 3 27 21 18 92.13639 2 +314 3 28 21 20 89.95288 2 +315 3 29 25 17 75.05791 2 +316 3 30 25 15 76.86467 2 +317 3 31 25 18 78.32966 2 +318 3 32 25 20 79.91967 2 +319 3 33 29 17 86.58954 2 +320 3 34 29 15 78.75693 2 +321 3 35 29 13 76.25522 2 +322 3 36 29 14 77.16251 2 +323 3 37 29 16 88.18578 4 +324 3 38 33 19 81.2431 2 +325 3 39 33 17 79.13125 2 +326 3 40 33 16 75.20126 2 +327 3 41 33 18 76.50382 2 +328 3 42 33 20 79.32666 2 +329 3 43 37 19 82.83024 2 +330 3 44 37 17 76.53086 2 +331 3 45 37 16 74.16666 2 +332 3 46 37 18 77.81596 2 +333 3 47 37 20 92.51387 2 +334 3 48 41 19 91.99918 2 +335 3 49 41 17 78.52145 2 +336 3 50 41 15 73.86563 2 +337 3 51 41 18 77.64359 2 +338 3 52 41 20 82.88862 2 +339 3 53 45 19 81.62519 2 +340 3 54 45 17 77.02704 2 +341 3 55 45 15 74.62342 2 +342 3 56 45 18 77.1763 2 +343 3 57 45 20 78.6745 2 +344 3 58 49 15 80.75111 2 +345 3 59 49 13 76.88773 2 +346 3 60 49 14 75.12708 2 +347 3 61 49 16 74.09087 2 +348 3 62 49 18 76.97201 2 +349 3 63 53 19 79.98037 2 +350 3 64 53 17 78.48728 2 +351 3 65 53 16 76.33818 2 +352 3 66 53 18 75.47654 2 +353 3 67 57 19 92.15833 2 +354 3 68 57 17 88.52383 2 +355 3 69 57 15 77.68976 2 +356 3 70 57 18 76.74228 2 +357 3 71 57 20 82.40409 2 +358 3 72 61 17 99.76131 4 +359 3 73 61 15 79.84279 2 +360 3 74 61 16 80.86971 2 +361 3 75 61 18 78.80216 2 +362 3 76 61 20 77.89915 2 +363 3 77 65 19 94.03604 4 +364 3 78 65 17 89.6793 4 +365 3 79 65 15 79.60282 2 +366 3 80 65 16 79.08428 2 +367 3 81 65 18 77.91985 2 +368 3 82 69 17 95.52861 2 +369 3 83 69 15 78.11985 2 +370 3 84 69 16 79.09104 2 +371 3 85 69 18 75.20152 2 +372 3 86 69 20 75.86181 2 +373 3 87 73 19 81.02827 2 +374 3 88 73 17 83.87218 2 +375 3 89 73 16 74.26956 2 +376 3 90 73 18 80.67511 2 +377 3 91 73 20 101.98216 2 +378 3 92 77 17 94.59656 4 +379 3 93 77 15 94.00544 4 +380 3 94 77 16 95.07227 2 +381 3 95 77 18 98.67649 2 +382 4 0 1 23 97.77299 4 +383 4 1 1 21 93.6127 4 +384 4 2 1 19 89.09154 4 +385 4 3 1 20 82.47589 4 +386 4 4 1 22 74.26641 2 +387 4 5 5 23 73.6666 2 +388 4 6 5 21 75.31009 2 +389 4 7 5 22 75.69313 2 +390 4 8 5 24 69.33499 2 +391 4 9 5 26 75.89516 2 +392 4 10 9 23 66.87415 2 +393 4 11 9 21 69.6111 2 +394 4 12 9 20 68.79601 2 +395 4 13 9 22 75.29248 2 +396 4 14 9 24 87.63847 2 +397 4 15 13 23 69.47309 2 +398 4 16 13 21 69.22024 2 +399 4 17 13 19 67.33859 2 +400 4 18 13 22 73.51657 2 +401 4 19 13 24 87.38486 4 +402 4 20 17 23 100.54925 2 +403 4 21 17 21 68.87163 2 +404 4 22 17 20 69.6591 2 +405 4 23 17 22 86.60697 2 +406 4 24 17 24 94.35975 2 +407 4 25 21 23 68.50342 2 +408 4 26 21 21 72.99984 2 +409 4 27 21 22 69.52424 2 +410 4 28 21 24 90.06931 2 +411 4 29 25 23 80.07316 2 +412 4 30 25 21 67.45722 2 +413 4 31 25 19 68.40493 2 +414 4 32 25 22 67.99827 2 +415 4 33 25 24 70.10505 2 +416 4 34 29 21 70.97856 2 +417 4 35 29 19 66.02701 2 +418 4 36 29 18 63.89331 2 +419 4 37 29 20 65.8645 2 +420 4 38 29 22 81.1888 2 +421 4 39 33 25 72.00819 2 +422 4 40 33 23 68.71498 2 +423 4 41 33 21 71.87669 2 +424 4 42 33 22 67.66554 2 +425 4 43 33 24 70.30806 2 +426 4 44 37 25 72.04011 2 +427 4 45 37 23 68.85395 2 +428 4 46 37 21 71.83936 2 +429 4 47 37 22 67.99673 2 +430 4 48 37 24 76.73263 2 +431 4 49 41 23 70.63491 2 +432 4 50 41 21 68.18393 2 +433 4 51 41 22 67.64696 2 +434 4 52 41 24 70.97663 2 +435 4 53 41 26 81.34062 2 +436 4 54 45 23 72.49947 2 +437 4 55 45 21 73.33348 2 +438 4 56 45 22 70.73793 2 +439 4 57 45 24 70.42008 2 +440 4 58 45 26 71.72905 2 +441 4 59 49 21 69.53696 2 +442 4 60 49 19 69.86509 2 +443 4 61 49 17 65.1132 2 +444 4 62 49 20 65.02749 2 +445 4 63 49 22 67.66892 2 +446 4 64 53 23 79.09379 2 +447 4 65 53 21 67.88067 2 +448 4 66 53 20 68.8656 2 +449 4 67 53 22 67.79565 2 +450 4 68 53 24 79.18305 4 +451 4 69 57 23 81.19302 4 +452 4 70 57 21 69.63077 2 +453 4 71 57 22 72.49828 2 +454 4 72 57 24 68.91508 2 +455 4 73 61 23 86.6481 2 +456 4 74 61 21 82.03569 4 +457 4 75 61 19 67.36366 2 +458 4 76 61 22 75.80858 2 +459 4 77 61 24 69.54761 2 +460 4 78 65 23 87.78785 4 +461 4 79 65 21 89.16424 4 +462 4 80 65 20 74.2486 2 +463 4 81 65 22 78.61365 2 +464 4 82 65 24 68.75298 2 +465 4 83 69 23 83.23147 2 +466 4 84 69 21 69.82753 2 +467 4 85 69 19 67.53379 2 +468 4 86 69 22 66.64932 2 +469 4 87 69 24 67.60815 2 +470 4 88 73 25 71.15112 2 +471 4 89 73 23 97.67366 2 +472 4 90 73 21 77.21358 2 +473 4 91 73 22 69.14747 2 +474 4 92 73 24 80.8669 2 +475 4 93 77 21 84.56966 4 +476 4 94 77 19 87.41192 4 +477 4 95 77 20 83.55573 2 +478 4 96 77 22 97.70467 4 +479 4 97 77 24 99.79749 2 +480 5 0 1 27 85.12114 2 +481 5 1 1 25 83.00263 2 +482 5 2 1 24 77.96341 2 +483 5 3 1 26 75.81029 2 +484 5 4 1 28 66.43437 2 +485 5 5 5 27 69.71727 2 +486 5 6 5 25 67.22738 2 +487 5 7 5 28 71.14799 2 +488 5 8 5 30 65.54971 4 +489 5 9 5 32 66.81837 2 +490 5 10 9 27 57.69026 2 +491 5 11 9 25 58.09529 2 +492 5 12 9 26 60.75537 2 +493 5 13 9 28 63.80872 2 +494 5 14 9 30 78.08792 2 +495 5 15 13 27 60.18935 2 +496 5 16 13 25 59.36993 2 +497 5 17 13 26 69.18952 2 +498 5 18 13 28 69.75182 4 +499 5 19 13 30 106.01528 4 +500 5 20 17 27 91.20873 2 +501 5 21 17 25 60.41025 2 +502 5 22 17 26 61.80665 2 +503 5 23 17 28 73.97677 2 +504 5 24 21 29 60.65798 2 +505 5 25 21 27 59.68682 2 +506 5 26 21 25 59.79157 2 +507 5 27 21 26 59.36892 2 +508 5 28 21 28 70.3308 2 +509 5 29 25 27 63.51046 2 +510 5 30 25 25 59.51616 2 +511 5 31 25 26 73.02375 2 +512 5 32 25 28 59.1793 2 +513 5 33 25 30 67.0836 2 +514 5 34 29 27 61.06317 2 +515 5 35 29 25 61.77697 2 +516 5 36 29 23 62.74774 2 +517 5 37 29 24 58.84058 2 +518 5 38 29 26 70.48546 4 +519 5 39 33 29 61.40398 2 +520 5 40 33 27 60.63495 2 +521 5 41 33 26 58.25841 2 +522 5 42 33 28 60.085 2 +523 5 43 33 30 61.88161 2 +524 5 44 37 29 61.5376 2 +525 5 45 37 27 57.74158 2 +526 5 46 37 26 57.14774 2 +527 5 47 37 28 58.99625 2 +528 5 48 37 30 76.38163 2 +529 5 49 41 29 73.29867 2 +530 5 50 41 27 59.22822 2 +531 5 51 41 25 56.19207 2 +532 5 52 41 28 60.09709 2 +533 5 53 41 30 73.07449 2 +534 5 54 45 29 65.77397 2 +535 5 55 45 27 61.88415 2 +536 5 56 45 25 65.66899 2 +537 5 57 45 28 61.76981 2 +538 5 58 45 30 69.40698 2 +539 5 59 49 25 67.97399 2 +540 5 60 49 23 64.16167 2 +541 5 61 49 24 59.2749 2 +542 5 62 49 26 60.17414 2 +543 5 63 49 28 67.60292 2 +544 5 64 53 29 67.6914 2 +545 5 65 53 27 61.50637 2 +546 5 66 53 25 58.60668 2 +547 5 67 53 26 59.64907 2 +548 5 68 53 28 60.85243 2 +549 5 69 57 27 69.79246 2 +550 5 70 57 25 58.57243 2 +551 5 71 57 26 59.17623 2 +552 5 72 57 28 60.19214 2 +553 5 73 57 30 61.59599 2 +554 5 74 61 27 71.37118 2 +555 5 75 61 25 58.97437 2 +556 5 76 61 26 59.88956 2 +557 5 77 61 28 59.23613 2 +558 5 78 65 29 83.01912 2 +559 5 79 65 27 74.04583 2 +560 5 80 65 25 57.82915 2 +561 5 81 65 26 64.61791 2 +562 5 82 65 28 59.39028 2 +563 5 83 69 29 74.44204 2 +564 5 84 69 27 63.14186 2 +565 5 85 69 25 60.08879 2 +566 5 86 69 26 59.5538 2 +567 5 87 69 28 60.39653 2 +568 5 88 73 31 71.66345 2 +569 5 89 73 29 73.10667 2 +570 5 90 73 27 73.65982 2 +571 5 91 73 26 68.11625 2 +572 5 92 73 28 71.85668 2 +573 5 93 77 27 75.559 4 +574 5 94 77 25 77.60725 2 +575 5 95 77 23 77.56368 2 +576 5 96 77 26 83.52558 2 +577 5 97 77 28 86.66329 2 +578 6 0 1 31 77.44475 2 +579 6 1 1 29 74.14385 2 +580 6 2 1 30 75.64538 4 +581 6 3 1 32 65.24294 2 +582 6 4 5 33 68.70858 2 +583 6 5 5 31 65.82969 2 +584 6 6 5 29 56.93262 2 +585 6 7 5 34 52.11882 2 +586 6 8 5 36 58.88494 2 +587 6 9 9 33 63.74042 2 +588 6 10 9 31 49.88006 2 +589 6 11 9 29 48.99193 2 +590 6 12 9 32 52.32019 2 +591 6 13 9 34 63.55829 2 +592 6 14 13 33 49.90491 2 +593 6 15 13 31 50.48265 2 +594 6 16 13 29 60.72326 2 +595 6 17 13 32 52.55388 2 +596 6 18 13 34 64.18324 4 +597 6 19 17 31 49.58294 2 +598 6 20 17 29 67.12594 2 +599 6 21 17 30 51.21326 2 +600 6 22 17 32 52.54312 2 +601 6 23 17 34 59.20087 2 +602 6 24 21 33 52.00757 2 +603 6 25 21 31 51.53299 2 +604 6 26 21 30 47.8853 2 +605 6 27 21 32 58.33881 2 +606 6 28 21 34 63.2825 2 +607 6 29 25 33 59.59852 2 +608 6 30 25 31 60.89902 2 +609 6 31 25 29 65.24595 2 +610 6 32 25 32 49.45681 2 +611 6 33 25 34 64.94772 2 +612 6 34 29 31 50.67803 2 +613 6 35 29 29 48.5133 2 +614 6 36 29 28 46.04727 2 +615 6 37 29 30 58.33319 2 +616 6 38 29 32 61.02669 2 +617 6 39 33 35 52.39715 2 +618 6 40 33 33 55.25828 2 +619 6 41 33 31 56.77429 2 +620 6 42 33 32 51.79857 2 +621 6 43 33 34 62.34971 2 +622 6 44 37 35 54.46507 2 +623 6 45 37 33 52.4251 2 +624 6 46 37 31 60.02253 2 +625 6 47 37 32 48.50757 2 +626 6 48 37 34 63.73385 2 +627 6 49 41 33 64.33881 2 +628 6 50 41 31 49.38599 2 +629 6 51 41 32 62.98492 2 +630 6 52 41 34 64.04146 2 +631 6 53 41 36 56.71553 2 +632 6 54 45 33 59.91197 2 +633 6 55 45 31 51.47565 2 +634 6 56 45 32 50.59599 2 +635 6 57 45 34 50.42926 2 +636 6 58 45 36 52.61644 2 +637 6 59 49 31 61.06827 2 +638 6 60 49 29 51.57032 2 +639 6 61 49 27 45.5825 2 +640 6 62 49 30 47.47734 2 +641 6 63 49 32 57.28914 2 +642 6 64 53 33 67.76418 2 +643 6 65 53 31 50.11811 2 +644 6 66 53 30 48.03099 2 +645 6 67 53 32 51.04869 2 +646 6 68 53 34 61.2306 2 +647 6 69 57 33 63.31874 2 +648 6 70 57 31 58.88315 2 +649 6 71 57 29 47.05049 2 +650 6 72 57 32 51.88947 2 +651 6 73 57 34 52.43743 2 +652 6 74 61 33 76.12505 2 +653 6 75 61 31 50.35386 2 +654 6 76 61 29 48.67537 2 +655 6 77 61 30 46.81487 2 +656 6 78 61 32 71.06534 2 +657 6 79 65 33 66.58588 2 +658 6 80 65 31 53.04103 2 +659 6 81 65 30 59.14765 2 +660 6 82 65 32 50.03027 2 +661 6 83 65 34 50.42982 2 +662 6 84 69 33 65.66964 2 +663 6 85 69 31 51.65206 2 +664 6 86 69 30 74.15926 2 +665 6 87 69 32 49.92469 2 +666 6 88 69 34 50.00777 2 +667 6 89 73 35 61.09634 2 +668 6 90 73 33 53.08572 2 +669 6 91 73 30 83.78844 2 +670 6 92 73 32 61.27929 2 +671 6 93 73 34 84.10289 2 +672 6 94 77 31 66.2751 4 +673 6 95 77 29 75.14916 4 +674 6 96 77 30 68.63365 2 +675 6 97 77 32 74.93088 2 +676 7 0 1 35 74.7001 2 +677 7 1 1 33 74.38872 2 +678 7 2 1 34 70.01065 2 +679 7 3 1 36 61.35144 2 +680 7 4 1 38 56.98388 2 +681 7 5 5 39 58.88982 2 +682 7 6 5 37 49.38547 2 +683 7 7 5 35 52.8636 2 +684 7 8 5 38 47.50537 2 +685 7 9 5 40 50.47021 2 +686 7 10 9 37 50.11928 2 +687 7 11 9 35 41.91652 2 +688 7 12 9 36 48.5868 2 +689 7 13 9 38 47.3758 2 +690 7 14 9 40 47.69813 2 +691 7 15 13 37 40.91606 2 +692 7 16 13 35 47.78672 2 +693 7 17 13 36 43.98248 2 +694 7 18 13 38 50.85409 2 +695 7 19 13 40 52.75415 2 +696 7 20 17 35 40.00309 2 +697 7 21 17 33 37.44288 2 +698 7 22 17 36 43.81418 2 +699 7 23 17 38 43.41723 2 +700 7 24 17 40 55.03812 2 +701 7 25 21 37 45.02303 2 +702 7 26 21 35 42.73001 2 +703 7 27 21 36 39.38395 2 +704 7 28 21 38 56.82162 2 +705 7 29 21 40 47.09601 2 +706 7 30 25 37 42.44365 2 +707 7 31 25 35 82.87958 2 +708 7 32 25 36 48.12773 2 +709 7 33 25 38 45.39279 2 +710 7 34 25 40 44.50106 2 +711 7 35 29 35 47.61304 2 +712 7 36 29 33 38.35074 2 +713 7 37 29 34 38.78912 2 +714 7 38 29 36 52.77885 2 +715 7 39 29 38 46.71646 2 +716 7 40 33 39 44.27319 2 +717 7 41 33 37 46.85275 2 +718 7 42 33 36 39.51969 2 +719 7 43 33 38 45.83995 2 +720 7 44 33 40 43.85979 2 +721 7 45 37 39 42.79904 2 +722 7 46 37 37 40.69975 2 +723 7 47 37 36 40.62779 2 +724 7 48 37 38 57.71895 2 +725 7 49 37 40 62.38449 2 +726 7 50 41 39 44.01014 2 +727 7 51 41 37 40.19442 2 +728 7 52 41 35 41.79494 2 +729 7 53 41 38 42.33244 2 +730 7 54 41 40 42.8009 2 +731 7 55 45 39 44.60743 2 +732 7 56 45 37 47.51966 2 +733 7 57 45 35 43.45105 2 +734 7 58 45 38 41.33985 2 +735 7 59 45 40 42.61044 2 +736 7 60 49 37 53.93612 4 +737 7 61 49 35 45.7554 2 +738 7 62 49 33 38.76481 2 +739 7 63 49 34 39.61389 2 +740 7 64 49 36 48.26929 2 +741 7 65 53 39 43.99487 2 +742 7 66 53 37 44.97494 2 +743 7 67 53 35 43.07547 2 +744 7 68 53 36 69.35099 2 +745 7 69 53 38 42.36831 2 +746 7 70 57 39 47.06554 2 +747 7 71 57 37 46.30766 2 +748 7 72 57 35 38.55317 2 +749 7 73 57 36 43.33093 2 +750 7 74 57 38 45.23146 2 +751 7 75 61 39 52.03708 2 +752 7 76 61 37 42.48883 2 +753 7 77 61 35 40.54184 2 +754 7 78 61 34 36.73158 2 +755 7 79 61 36 39.80916 2 +756 7 80 65 39 55.91549 2 +757 7 81 65 37 52.24227 2 +758 7 82 65 35 43.30066 2 +759 7 83 65 36 52.2825 2 +760 7 84 65 38 42.08791 2 +761 7 85 69 39 46.51924 2 +762 7 86 69 37 44.45609 2 +763 7 87 69 35 55.46396 2 +764 7 88 69 36 41.64378 2 +765 7 89 69 38 49.72133 2 +766 7 90 73 39 46.15289 2 +767 7 91 73 37 56.8651 2 +768 7 92 73 36 47.06197 2 +769 7 93 73 38 50.99182 2 +770 7 94 73 40 64.82685 2 +771 7 95 77 37 56.78013 2 +772 7 96 77 35 59.41328 2 +773 7 97 77 33 77.69433 2 +774 7 98 77 34 72.10862 2 +775 7 99 77 36 71.90254 2 +776 8 0 1 39 88.85342 2 +777 8 1 1 37 87.18767 2 +778 8 2 1 40 55.62474 2 +779 8 3 2 2 77.20024 2 +780 8 4 2 4 64.41358 2 +781 8 5 6 5 77.38234 2 +782 8 6 6 3 67.13866 2 +783 8 7 6 1 60.00996 2 +784 8 8 6 2 61.13547 2 +785 8 9 6 4 65.91215 2 +786 8 10 9 39 32.21898 2 +787 8 11 10 3 59.11379 2 +788 8 12 10 1 62.54837 2 +789 8 13 10 2 63.28762 2 +790 8 14 10 4 80.10418 2 +791 8 15 13 39 30.81015 2 +792 8 16 14 3 66.3756 2 +793 8 17 14 1 67.56865 2 +794 8 18 14 2 61.82785 2 +795 8 19 14 4 75.4778 4 +796 8 20 17 39 30.21497 2 +797 8 21 17 37 31.91777 2 +798 8 22 18 1 68.38929 2 +799 8 23 18 2 61.5113 2 +800 8 24 18 4 74.58479 4 +801 8 25 21 39 33.89474 2 +802 8 26 22 3 60.59526 2 +803 8 27 22 1 65.79086 2 +804 8 28 22 2 60.79658 2 +805 8 29 22 4 74.06003 4 +806 8 30 25 39 32.69389 2 +807 8 31 26 3 64.95631 2 +808 8 32 26 1 62.76411 2 +809 8 33 26 2 58.81764 2 +810 8 34 26 4 64.04378 2 +811 8 35 29 39 35.05883 2 +812 8 36 29 37 29.71394 2 +813 8 37 29 40 35.00024 2 +814 8 38 30 2 57.61808 2 +815 8 39 30 4 62.4489 2 +816 8 40 34 5 59.74453 2 +817 8 41 34 3 63.5827 2 +818 8 42 34 1 64.63923 2 +819 8 43 34 2 67.58253 2 +820 8 44 34 4 59.75334 2 +821 8 45 38 5 61.76854 2 +822 8 46 38 3 61.64801 2 +823 8 47 38 1 63.28882 2 +824 8 48 38 2 58.90395 2 +825 8 49 38 4 59.4706 2 +826 8 50 42 3 70.61269 4 +827 8 51 42 1 57.88971 2 +828 8 52 42 2 69.65421 2 +829 8 53 42 4 62.75327 2 +830 8 54 42 6 62.31779 2 +831 8 55 46 3 60.33841 2 +832 8 56 46 1 61.10418 2 +833 8 57 46 2 58.33612 2 +834 8 58 46 4 61.26851 2 +835 8 59 46 6 60.57475 2 +836 8 60 50 3 65.16745 2 +837 8 61 50 1 60.75017 2 +838 8 62 49 39 39.532 2 +839 8 63 49 38 30.97301 2 +840 8 64 49 40 35.34514 2 +841 8 65 54 3 61.01463 2 +842 8 66 54 1 59.87884 2 +843 8 67 54 2 64.83928 2 +844 8 68 54 4 60.91228 2 +845 8 69 53 40 32.37712 2 +846 8 70 58 3 64.55209 2 +847 8 71 58 1 61.36179 2 +848 8 72 58 2 65.57539 2 +849 8 73 58 4 67.04429 2 +850 8 74 57 40 47.77197 2 +851 8 75 62 3 68.89739 2 +852 8 76 62 1 59.77738 2 +853 8 77 62 2 66.92808 2 +854 8 78 61 38 30.36934 2 +855 8 79 61 40 30.46788 2 +856 8 80 66 3 80.90325 4 +857 8 81 66 1 63.30607 2 +858 8 82 66 2 66.21933 2 +859 8 83 66 4 59.19481 2 +860 8 84 65 40 31.79098 2 +861 8 85 70 3 74.58914 4 +862 8 86 70 1 62.72119 2 +863 8 87 70 2 61.42096 2 +864 8 88 70 4 58.47921 2 +865 8 89 69 40 36.187 2 +866 8 90 74 3 65.95431 2 +867 8 91 74 1 63.7774 2 +868 8 92 74 2 59.12481 2 +869 8 93 74 4 69.25847 2 +870 8 94 74 6 66.07517 2 +871 8 95 78 3 62.12396 2 +872 8 96 78 1 78.96692 4 +873 8 97 77 39 53.6394 2 +874 8 98 77 38 62.1401 2 +875 8 99 77 40 59.02807 2 +876 9 0 2 5 82.01815 4 +877 9 1 2 3 77.39208 4 +878 9 2 2 1 65.82524 4 +879 9 3 2 6 74.07846 2 +880 9 4 2 8 67.01856 4 +881 9 5 2 10 55.66842 2 +882 9 6 6 9 67.35333 2 +883 9 7 6 7 55.8141 2 +884 9 8 6 6 50.43262 2 +885 9 9 6 8 50.59501 2 +886 9 10 6 10 55.97099 2 +887 9 11 10 9 51.72475 2 +888 9 12 10 7 50.04067 2 +889 9 13 10 5 51.04829 2 +890 9 14 10 6 76.26343 2 +891 9 15 10 8 54.80881 2 +892 9 16 14 9 48.43467 2 +893 9 17 14 7 50.29788 2 +894 9 18 14 5 57.93003 2 +895 9 19 14 6 51.42807 2 +896 9 20 14 8 62.4638 2 +897 9 21 18 7 50.36645 2 +898 9 22 18 5 57.26195 2 +899 9 23 18 3 54.47374 2 +900 9 24 18 6 52.88598 2 +901 9 25 18 8 66.33825 2 +902 9 26 22 9 53.03962 2 +903 9 27 22 7 50.09118 2 +904 9 28 22 5 98.92548 2 +905 9 29 22 6 50.83703 2 +906 9 30 22 8 63.61735 4 +907 9 31 26 9 49.91984 2 +908 9 32 26 7 53.66878 2 +909 9 33 26 5 49.03784 2 +910 9 34 26 6 48.7716 2 +911 9 35 26 8 55.72253 2 +912 9 36 30 5 49.91743 2 +913 9 37 30 3 45.65683 2 +914 9 38 30 1 46.21015 2 +915 9 39 30 6 45.96104 2 +916 9 40 30 8 53.17332 2 +917 9 41 34 9 57.39022 2 +918 9 42 34 7 51.67285 2 +919 9 43 34 6 49.94667 2 +920 9 44 34 8 47.46744 2 +921 9 45 34 10 62.9195 2 +922 9 46 38 9 52.05097 2 +923 9 47 38 7 50.60769 2 +924 9 48 38 6 47.89013 2 +925 9 49 38 8 75.71595 2 +926 9 50 38 10 52.86257 2 +927 9 51 42 9 52.71097 2 +928 9 52 42 7 49.40394 2 +929 9 53 42 5 48.10015 2 +930 9 54 42 8 50.82968 2 +931 9 55 42 10 53.05034 2 +932 9 56 46 9 50.87265 2 +933 9 57 46 7 47.90526 2 +934 9 58 46 5 46.68738 2 +935 9 59 46 8 51.90143 2 +936 9 60 46 10 51.64987 2 +937 9 61 50 7 55.10299 2 +938 9 62 50 5 47.22825 2 +939 9 63 50 2 46.34822 2 +940 9 64 50 4 46.42604 2 +941 9 65 50 6 49.53148 2 +942 9 66 54 7 62.0564 4 +943 9 67 54 5 49.19213 2 +944 9 68 54 6 49.27797 2 +945 9 69 54 8 55.29778 2 +946 9 70 54 10 49.76286 2 +947 9 71 58 7 56.55005 2 +948 9 72 58 5 65.96333 2 +949 9 73 58 6 49.1464 2 +950 9 74 58 8 48.5772 2 +951 9 75 58 10 46.69989 2 +952 9 76 62 7 66.05102 4 +953 9 77 62 5 50.97314 2 +954 9 78 62 4 50.61986 2 +955 9 79 62 6 52.93483 2 +956 9 80 62 8 50.13676 2 +957 9 81 66 7 53.54229 2 +958 9 82 66 5 48.46041 2 +959 9 83 66 6 57.13812 2 +960 9 84 66 8 53.96942 2 +961 9 85 66 10 48.42541 2 +962 9 86 70 7 64.67517 4 +963 9 87 70 5 59.45769 2 +964 9 88 70 6 62.93964 2 +965 9 89 70 8 50.2287 2 +966 9 90 70 10 51.61209 2 +967 9 91 74 9 51.88138 2 +968 9 92 74 7 52.28336 2 +969 9 93 74 5 55.60585 2 +970 9 94 74 8 60.40624 2 +971 9 95 74 10 54.67453 2 +972 9 96 78 9 55.65763 2 +973 9 97 78 7 67.20951 4 +974 9 98 78 5 65.40751 2 +975 9 99 78 2 65.99695 4 +976 9 100 78 4 77.42901 4 +977 9 101 78 6 82.33808 4 +978 10 0 2 11 71.45897 2 +979 10 1 2 9 66.28117 2 +980 10 2 2 7 61.0952 2 +981 10 3 2 12 56.03781 2 +982 10 4 2 14 53.61914 2 +983 10 5 6 15 61.2822 2 +984 10 6 6 13 48.44789 2 +985 10 7 6 11 47.35123 2 +986 10 8 6 12 51.88028 2 +987 10 9 6 14 42.24783 2 +988 10 10 10 15 41.808 2 +989 10 11 10 13 42.1353 2 +990 10 12 10 11 42.19117 2 +991 10 13 10 10 64.88936 2 +992 10 14 10 12 53.01245 2 +993 10 15 14 15 49.56072 2 +994 10 16 14 13 41.22403 2 +995 10 17 14 11 40.79941 2 +996 10 18 14 10 39.97688 2 +997 10 19 14 12 41.90424 2 +998 10 20 18 13 41.92945 2 +999 10 21 18 11 39.67002 2 +1000 10 22 18 9 39.3245 2 +1001 10 23 18 10 38.98119 2 +1002 10 24 18 12 43.16524 2 +1003 10 25 18 14 53.61589 2 +1004 10 26 22 13 43.55568 2 +1005 10 27 22 11 40.84312 2 +1006 10 28 22 10 39.11898 2 +1007 10 29 22 12 47.69392 2 +1008 10 30 22 14 52.43886 2 +1009 10 31 26 13 40.97282 2 +1010 10 32 26 11 39.22803 2 +1011 10 33 26 10 92.36153 2 +1012 10 34 26 12 43.31084 2 +1013 10 35 26 14 47.52533 2 +1014 10 36 30 11 47.90288 2 +1015 10 37 30 9 37.43989 2 +1016 10 38 30 7 39.16884 2 +1017 10 39 30 10 37.90363 2 +1018 10 40 30 12 42.7903 2 +1019 10 41 34 15 42.22233 2 +1020 10 42 34 13 41.00021 2 +1021 10 43 34 11 43.37499 2 +1022 10 44 34 12 38.91571 2 +1023 10 45 34 14 42.20199 2 +1024 10 46 38 15 43.62112 2 +1025 10 47 38 13 41.00297 2 +1026 10 48 38 11 37.51556 2 +1027 10 49 38 12 39.92106 2 +1028 10 50 38 14 47.35323 2 +1029 10 51 42 13 49.51152 2 +1030 10 52 42 11 39.65262 2 +1031 10 53 42 12 41.66875 2 +1032 10 54 42 14 41.33955 2 +1033 10 55 42 16 43.95249 2 +1034 10 56 46 13 42.94693 2 +1035 10 57 46 11 42.81402 2 +1036 10 58 46 12 40.26222 2 +1037 10 59 46 14 44.10067 2 +1038 10 60 46 16 42.22132 2 +1039 10 61 50 11 42.7997 2 +1040 10 62 50 9 38.79531 2 +1041 10 63 50 8 37.2416 2 +1042 10 64 50 10 38.19831 2 +1043 10 65 50 12 47.90385 2 +1044 10 66 54 13 53.47406 4 +1045 10 67 54 11 41.29354 2 +1046 10 68 54 9 38.52856 2 +1047 10 69 54 12 39.13581 2 +1048 10 70 54 14 40.96476 2 +1049 10 71 58 13 49.26638 2 +1050 10 72 58 11 42.24757 2 +1051 10 73 58 9 39.15259 2 +1052 10 74 58 12 40.18189 2 +1053 10 75 58 14 47.08354 2 +1054 10 76 62 13 58.34761 2 +1055 10 77 62 11 42.9117 2 +1056 10 78 62 9 39.41633 2 +1057 10 79 62 10 44.17845 2 +1058 10 80 62 12 39.50184 2 +1059 10 81 62 14 41.97516 2 +1060 10 82 66 11 41.71854 2 +1061 10 83 66 9 41.59794 2 +1062 10 84 66 12 44.81185 2 +1063 10 85 66 14 41.74413 2 +1064 10 86 66 16 42.97532 2 +1065 10 87 70 11 50.95381 2 +1066 10 88 70 9 38.31303 2 +1067 10 89 70 12 38.84713 2 +1068 10 90 70 14 39.81164 2 +1069 10 91 70 16 42.31937 2 +1070 10 92 74 13 44.86839 2 +1071 10 93 74 11 45.68065 2 +1072 10 94 74 12 50.66814 2 +1073 10 95 74 14 44.19003 2 +1074 10 96 74 16 67.73718 2 +1075 10 97 78 13 53.78565 2 +1076 10 98 78 11 57.50069 2 +1077 10 99 78 8 60.03724 2 +1078 10 100 78 10 63.81371 2 +1079 10 101 78 12 73.33538 2 +1080 11 0 2 17 59.18689 2 +1081 11 1 2 15 57.72749 2 +1082 11 2 2 13 46.79647 2 +1083 11 3 2 16 53.02401 4 +1084 11 4 2 18 50.13977 2 +1085 11 5 6 21 47.44255 2 +1086 11 6 6 19 40.73806 2 +1087 11 7 6 17 38.82832 2 +1088 11 8 6 16 38.23739 2 +1089 11 9 6 18 33.64565 2 +1090 11 10 10 19 36.70008 2 +1091 11 11 10 17 30.7799 2 +1092 11 12 10 14 31.63206 2 +1093 11 13 10 16 30.80084 2 +1094 11 14 10 18 43.88615 2 +1095 11 15 14 21 40.66375 2 +1096 11 16 14 19 31.58088 2 +1097 11 17 14 17 35.20669 2 +1098 11 18 14 14 34.17166 2 +1099 11 19 14 16 32.29562 2 +1100 11 20 18 19 33.65923 2 +1101 11 21 18 17 32.59305 2 +1102 11 22 18 15 30.96791 2 +1103 11 23 18 16 31.13538 2 +1104 11 24 18 18 37.7683 2 +1105 11 25 22 19 32.23567 2 +1106 11 26 22 17 33.554 2 +1107 11 27 22 15 29.25318 2 +1108 11 28 22 16 30.82136 2 +1109 11 29 22 18 33.9205 2 +1110 11 30 22 20 40.33835 2 +1111 11 31 26 19 40.32168 2 +1112 11 32 26 17 29.87821 2 +1113 11 33 26 15 36.4357 2 +1114 11 34 26 16 31.54265 2 +1115 11 35 26 18 40.2888 2 +1116 11 36 30 17 38.50679 2 +1117 11 37 30 15 28.62934 2 +1118 11 38 30 13 31.52819 2 +1119 11 39 30 14 29.4759 2 +1120 11 40 30 16 33.02412 2 +1121 11 41 34 19 32.47524 2 +1122 11 42 34 17 33.89562 2 +1123 11 43 34 16 35.60847 2 +1124 11 44 34 18 31.68962 2 +1125 11 45 34 20 34.48739 2 +1126 11 46 38 19 45.18811 2 +1127 11 47 38 17 30.97569 2 +1128 11 48 38 16 29.58466 2 +1129 11 49 38 18 34.27534 2 +1130 11 50 38 20 35.20957 2 +1131 11 51 42 19 35.05796 2 +1132 11 52 42 17 34.12374 2 +1133 11 53 42 15 29.01915 2 +1134 11 54 42 18 30.97569 2 +1135 11 55 42 20 37.59095 2 +1136 11 56 46 19 34.49125 2 +1137 11 57 46 17 30.84148 2 +1138 11 58 46 15 32.67703 2 +1139 11 59 46 18 33.91244 2 +1140 11 60 46 20 38.8493 2 +1141 11 61 50 15 33.02509 2 +1142 11 62 50 13 29.47493 2 +1143 11 63 50 14 31.19774 2 +1144 11 64 50 16 28.86961 2 +1145 11 65 50 18 38.50744 2 +1146 11 66 54 17 42.3665 2 +1147 11 67 54 15 31.71645 2 +1148 11 68 54 16 36.91201 2 +1149 11 69 54 18 30.12861 2 +1150 11 70 54 20 40.32262 2 +1151 11 71 58 19 45.12152 2 +1152 11 72 58 17 43.44675 2 +1153 11 73 58 15 31.54637 2 +1154 11 74 58 16 31.32064 2 +1155 11 75 58 18 35.39582 2 +1156 11 76 58 20 40.85842 2 +1157 11 77 62 17 45.78919 2 +1158 11 78 62 15 32.22014 2 +1159 11 79 62 16 34.25148 2 +1160 11 80 62 18 29.94963 2 +1161 11 81 62 20 34.17592 2 +1162 11 82 66 15 32.29672 2 +1163 11 83 66 13 33.66247 2 +1164 11 84 66 18 33.56884 2 +1165 11 85 66 20 30.62549 2 +1166 11 86 66 22 37.025 2 +1167 11 87 70 17 46.41215 2 +1168 11 88 70 15 30.55151 2 +1169 11 89 70 13 30.52889 2 +1170 11 90 70 18 30.01828 2 +1171 11 91 70 20 60.46429 2 +1172 11 92 74 17 54.25616 2 +1173 11 93 74 15 37.96459 2 +1174 11 94 74 18 41.10753 2 +1175 11 95 74 20 37.42814 2 +1176 11 96 74 22 52.20825 4 +1177 11 97 78 17 49.85137 4 +1178 11 98 78 15 49.24729 2 +1179 11 99 78 14 47.39569 2 +1180 11 100 78 16 58.27156 2 +1181 11 101 78 18 63.0747 2 +1182 12 0 2 23 56.63489 2 +1183 12 1 2 21 55.72546 2 +1184 12 2 2 19 43.30776 2 +1185 12 3 2 20 42.49575 2 +1186 12 4 2 22 58.12851 4 +1187 12 5 2 24 33.99621 2 +1188 12 6 6 25 43.92684 4 +1189 12 7 6 23 32.09629 2 +1190 12 8 6 20 33.76969 2 +1191 12 9 6 22 25.35508 2 +1192 12 10 6 24 23.96666 2 +1193 12 11 10 23 29.47072 2 +1194 12 12 10 21 21.48269 2 +1195 12 13 10 20 24.93449 2 +1196 12 14 10 22 21.37558 2 +1197 12 15 10 24 37.36785 2 +1198 12 16 14 25 33.99576 2 +1199 12 17 14 23 22.05629 2 +1200 12 18 14 18 23.28811 2 +1201 12 19 14 20 21.34874 2 +1202 12 20 14 22 31.14144 2 +1203 12 21 18 23 28.40013 2 +1204 12 22 18 21 21.8016 2 +1205 12 23 18 20 30.94924 2 +1206 12 24 18 22 23.38898 2 +1207 12 25 18 24 26.49628 2 +1208 12 26 22 23 34.64557 2 +1209 12 27 22 21 22.70592 2 +1210 12 28 22 22 23.81919 2 +1211 12 29 22 24 26.20804 2 +1212 12 30 22 26 26.2012 2 +1213 12 31 26 25 30.40296 2 +1214 12 32 26 23 27.05038 2 +1215 12 33 26 21 21.15796 2 +1216 12 34 26 20 20.71892 2 +1217 12 35 26 22 37.1245 2 +1218 12 36 26 24 33.64289 2 +1219 12 37 30 21 23.80223 2 +1220 12 38 30 19 20.19112 2 +1221 12 39 30 18 19.83494 2 +1222 12 40 30 20 20.4717 2 +1223 12 41 30 22 27.61432 2 +1224 12 42 34 25 23.73513 2 +1225 12 43 34 23 28.19328 2 +1226 12 44 34 21 29.73608 2 +1227 12 45 34 22 22.15691 2 +1228 12 46 34 24 29.15772 2 +1229 12 47 38 25 35.91001 2 +1230 12 48 38 23 26.44956 2 +1231 12 49 38 21 69.47666 2 +1232 12 50 38 22 22.26966 2 +1233 12 51 38 24 31.92767 2 +1234 12 52 42 23 31.92767 2 +1235 12 53 42 21 22.26966 2 +1236 12 54 42 22 24.94385 2 +1237 12 55 42 24 25.94505 2 +1238 12 56 42 26 35.91001 2 +1239 12 57 46 23 32.63132 2 +1240 12 58 46 21 31.3264 2 +1241 12 59 46 22 26.29923 2 +1242 12 60 46 24 23.15257 2 +1243 12 61 46 26 34.88283 2 +1244 12 62 50 21 25.41753 2 +1245 12 63 50 19 20.30766 2 +1246 12 64 50 17 19.83402 2 +1247 12 65 50 20 20.19208 2 +1248 12 66 50 22 22.42008 2 +1249 12 67 54 23 33.56189 2 +1250 12 68 54 21 31.76457 2 +1251 12 69 54 19 30.20296 2 +1252 12 70 54 22 21.17276 2 +1253 12 71 54 24 27.05132 2 +1254 12 72 54 26 30.4039 2 +1255 12 73 58 25 26.54181 2 +1256 12 74 58 23 24.0502 2 +1257 12 75 58 21 22.48136 2 +1258 12 76 58 22 21.2322 2 +1259 12 77 58 24 35.18006 2 +1260 12 78 62 23 26.49719 2 +1261 12 79 62 21 21.96556 2 +1262 12 80 62 19 21.96426 2 +1263 12 81 62 22 21.7617 2 +1264 12 82 62 24 26.94441 2 +1265 12 83 66 21 29.62788 2 +1266 12 84 66 19 21.41979 2 +1267 12 85 66 17 18.90853 2 +1268 12 86 66 24 22.72784 2 +1269 12 87 66 26 30.79536 2 +1270 12 88 70 23 27.26174 2 +1271 12 89 70 21 21.85889 2 +1272 12 90 70 19 29.58792 2 +1273 12 91 70 22 21.88177 2 +1274 12 92 70 24 29.47591 2 +1275 12 93 74 23 25.58265 2 +1276 12 94 74 21 28.53474 2 +1277 12 95 74 19 33.84728 2 +1278 12 96 74 24 40.31695 2 +1279 12 97 74 26 38.19332 2 +1280 12 98 78 23 35.64344 2 +1281 12 99 78 21 45.13001 2 +1282 12 100 78 19 42.91557 2 +1283 12 101 78 20 46.05627 2 +1284 12 102 78 22 57.36126 2 +1285 12 103 78 24 56.03812 2 +1286 13 0 2 29 55.93358 2 +1287 13 1 2 27 44.81681 2 +1288 13 2 2 25 40.70385 2 +1289 13 3 2 26 36.83227 2 +1290 13 4 2 28 30.15898 2 +1291 13 5 6 29 37.42968 2 +1292 13 6 6 27 25.78405 2 +1293 13 7 6 26 32.00864 2 +1294 13 8 6 28 20.81757 2 +1295 13 9 6 30 19.14377 2 +1296 13 10 10 29 27.21433 2 +1297 13 11 10 27 13.12298 2 +1298 13 12 10 25 13.04837 2 +1299 13 13 10 26 11.7861 2 +1300 13 14 10 28 16.95727 2 +1301 13 15 10 30 22.08624 2 +1302 13 16 14 29 18.44356 2 +1303 13 17 14 27 13.92207 2 +1304 13 18 14 24 10.3925 2 +1305 13 19 14 26 13.45142 2 +1306 13 20 14 28 25.18154 2 +1307 13 21 18 29 19.81143 2 +1308 13 22 18 27 16.64008 2 +1309 13 23 18 25 17.02002 2 +1310 13 24 18 26 13.21566 2 +1311 13 25 18 28 17.372 2 +1312 13 26 22 29 20.27052 2 +1313 13 27 22 27 13.94814 2 +1314 13 28 22 25 12.11566 2 +1315 13 29 22 28 13.95059 2 +1316 13 30 22 30 16.22268 2 +1317 13 31 26 29 19.34161 2 +1318 13 32 26 27 13.29539 2 +1319 13 33 26 26 12.61772 2 +1320 13 34 26 28 16.28656 2 +1321 13 35 26 30 17.54393 2 +1322 13 36 30 27 18.19026 2 +1323 13 37 30 25 15.96813 2 +1324 13 38 30 23 12.00285 2 +1325 13 39 30 24 10.4268 2 +1326 13 40 30 26 12.16972 2 +1327 13 41 30 28 18.62974 2 +1328 13 42 34 29 15.08976 2 +1329 13 43 34 27 12.42804 2 +1330 13 44 34 26 16.91336 2 +1331 13 45 34 28 15.99003 2 +1332 13 46 34 30 21.85654 2 +1333 13 47 38 29 15.84121 2 +1334 13 48 38 27 12.9164 2 +1335 13 49 38 26 13.14682 2 +1336 13 50 38 28 16.99698 2 +1337 13 51 38 30 17.40497 2 +1338 13 52 42 29 17.40497 2 +1339 13 53 42 27 16.99698 2 +1340 13 54 42 25 13.14682 2 +1341 13 55 42 28 12.66948 2 +1342 13 56 42 30 15.84121 2 +1343 13 57 46 29 21.23082 2 +1344 13 58 46 27 16.03398 2 +1345 13 59 46 25 11.3251 2 +1346 13 60 46 28 11.41885 2 +1347 13 61 46 30 15.08874 2 +1348 13 62 50 27 18.63077 2 +1349 13 63 50 25 12.17068 2 +1350 13 64 50 23 10.42583 2 +1351 13 65 50 24 10.80986 2 +1352 13 66 50 26 15.96916 2 +1353 13 67 50 28 18.18923 2 +1354 13 68 54 29 17.46327 2 +1355 13 69 54 27 18.71285 2 +1356 13 70 54 25 17.09831 2 +1357 13 71 54 28 13.29445 2 +1358 13 72 54 30 19.3384 2 +1359 13 73 58 29 16.5404 2 +1360 13 74 58 27 13.53064 2 +1361 13 75 58 26 13.70341 2 +1362 13 76 58 28 12.155 2 +1363 13 77 58 30 20.27145 2 +1364 13 78 62 27 17.37308 2 +1365 13 79 62 25 13.03558 2 +1366 13 80 62 26 16.80306 2 +1367 13 81 62 28 17.45595 2 +1368 13 82 62 30 19.81234 2 +1369 13 83 66 27 25.18326 2 +1370 13 84 66 25 16.90563 2 +1371 13 85 66 23 10.09618 2 +1372 13 86 66 28 12.14463 2 +1373 13 87 66 30 18.44455 2 +1374 13 88 70 29 22.53784 2 +1375 13 89 70 27 13.54418 2 +1376 13 90 70 25 16.37898 2 +1377 13 91 70 26 12.96808 2 +1378 13 92 70 28 13.12213 2 +1379 13 93 70 30 19.34168 2 +1380 13 94 74 29 20.71546 2 +1381 13 95 74 27 21.26856 2 +1382 13 96 74 25 33.10513 2 +1383 13 97 74 28 28.6496 2 +1384 13 98 74 30 45.29141 4 +1385 13 99 78 27 33.11607 2 +1386 13 100 78 25 34.72235 2 +1387 13 101 78 26 38.20804 2 +1388 13 102 78 28 40.61941 2 +1389 13 103 78 30 53.03529 2 +1390 14 0 2 33 42.82211 2 +1391 14 1 2 31 35.84323 2 +1392 14 2 2 30 43.52676 2 +1393 14 3 2 32 34.61812 2 +1394 14 4 2 34 22.71269 2 +1395 14 5 6 35 31.65183 2 +1396 14 6 6 33 22.40106 2 +1397 14 7 6 31 31.48546 2 +1398 14 8 6 32 15.08847 2 +1399 14 9 6 34 13.91396 2 +1400 14 10 10 35 14.30837 2 +1401 14 11 10 33 13.83247 2 +1402 14 12 10 31 6.96556 2 +1403 14 13 10 32 5.82985 2 +1404 14 14 10 34 10.00729 2 +1405 14 15 14 35 15.9824 2 +1406 14 16 14 33 8.50235 2 +1407 14 17 14 31 5.75534 2 +1408 14 18 14 30 4.02817 2 +1409 14 19 14 32 13.25012 2 +1410 14 20 14 34 18.26744 2 +1411 14 21 18 33 12.90987 2 +1412 14 22 18 31 4.10005 2 +1413 14 23 18 30 5.93291 2 +1414 14 24 18 32 5.5158 2 +1415 14 25 18 34 16.01138 2 +1416 14 26 22 33 8.7847 2 +1417 14 27 22 31 6.14202 2 +1418 14 28 22 32 4.60147 2 +1419 14 29 22 34 4.60202 2 +1420 14 30 22 36 14.5919 2 +1421 14 31 26 35 17.58966 2 +1422 14 32 26 33 10.7472 2 +1423 14 33 26 31 7.34755 2 +1424 14 34 26 32 7.52171 2 +1425 14 35 26 34 10.82807 2 +1426 14 36 30 33 17.72135 2 +1427 14 37 30 31 8.68247 2 +1428 14 38 30 29 6.26246 2 +1429 14 39 30 30 7.19958 2 +1430 14 40 30 32 12.77841 2 +1431 14 41 30 34 13.40518 2 +1432 14 42 34 35 11.29067 2 +1433 14 43 34 33 4.41671 2 +1434 14 44 34 31 5.22369 2 +1435 14 45 34 32 6.06189 2 +1436 14 46 34 34 11.83838 2 +1437 14 47 38 35 12.71018 2 +1438 14 48 38 33 5.29213 2 +1439 14 49 38 31 6.19255 2 +1440 14 50 38 32 6.7802 2 +1441 14 51 38 34 14.4705 2 +1442 14 52 42 33 15.6138 2 +1443 14 53 42 31 6.7802 2 +1444 14 54 42 32 6.26668 2 +1445 14 55 42 34 5.29213 2 +1446 14 56 42 36 12.71018 2 +1447 14 57 46 33 11.83938 2 +1448 14 58 46 31 6.06289 2 +1449 14 59 46 32 5.22471 2 +1450 14 60 46 34 4.41572 2 +1451 14 61 46 36 11.29169 2 +1452 14 62 50 33 13.40455 2 +1453 14 63 50 31 12.77738 2 +1454 14 64 50 29 7.19855 2 +1455 14 65 50 30 6.2635 2 +1456 14 66 50 32 8.6815 2 +1457 14 67 50 34 17.93939 2 +1458 14 68 54 33 10.98947 2 +1459 14 69 54 31 7.75355 2 +1460 14 70 54 32 7.33779 2 +1461 14 71 54 34 10.76595 2 +1462 14 72 54 36 16.1774 2 +1463 14 73 58 35 14.59083 2 +1464 14 74 58 33 4.60309 2 +1465 14 75 58 31 4.60041 2 +1466 14 76 58 32 6.14309 2 +1467 14 77 58 34 8.78377 2 +1468 14 78 62 33 17.37097 2 +1469 14 79 62 31 5.64978 2 +1470 14 80 62 29 5.93194 2 +1471 14 81 62 32 4.09914 2 +1472 14 82 62 34 12.91095 2 +1473 14 83 66 33 18.36617 2 +1474 14 84 66 31 13.24913 2 +1475 14 85 66 29 4.02927 2 +1476 14 86 66 32 5.75623 2 +1477 14 87 66 34 8.50146 2 +1478 14 88 66 36 16.29002 2 +1479 14 89 70 33 9.73922 2 +1480 14 90 70 31 5.99075 2 +1481 14 91 70 32 6.96669 2 +1482 14 92 70 34 13.8336 2 +1483 14 93 70 36 14.30752 2 +1484 14 94 74 33 14.31721 2 +1485 14 95 74 31 15.02748 2 +1486 14 96 74 32 29.60812 2 +1487 14 97 74 34 21.87775 2 +1488 14 98 74 36 32.73476 2 +1489 14 99 78 33 23.87656 2 +1490 14 100 78 31 33.4603 2 +1491 14 101 78 29 39.58175 2 +1492 14 102 78 32 36.14053 2 +1493 14 103 78 34 43.02492 2 +1494 15 0 2 39 54.92302 2 +1495 15 1 2 37 52.23292 2 +1496 15 2 2 35 49.6934 2 +1497 15 3 2 36 41.65682 2 +1498 15 4 2 38 40.9157 2 +1499 15 5 2 40 27.73774 2 +1500 15 6 6 39 42.28976 2 +1501 15 7 6 37 29.25288 2 +1502 15 8 6 36 30.96309 2 +1503 15 9 6 38 24.27473 2 +1504 15 10 6 40 13.56502 2 +1505 15 11 10 39 20.35424 2 +1506 15 12 10 37 22.07352 2 +1507 15 13 10 36 18.21832 2 +1508 15 14 10 38 11.52131 2 +1509 15 15 10 40 11.15893 2 +1510 15 16 14 39 20.53031 2 +1511 15 17 14 37 14.20152 2 +1512 15 18 14 36 19.41945 2 +1513 15 19 14 38 12.8534 2 +1514 15 20 14 40 12.58447 2 +1515 15 21 18 39 20.43703 2 +1516 15 22 18 37 20.1896 2 +1517 15 23 18 35 13.90785 2 +1518 15 24 18 36 13.03429 2 +1519 15 25 18 38 17.1007 2 +1520 15 26 18 40 17.66845 2 +1521 15 27 22 39 12.77294 2 +1522 15 28 22 37 13.82862 2 +1523 15 29 22 35 16.95556 2 +1524 15 30 22 38 12.00949 2 +1525 15 31 22 40 20.24635 2 +1526 15 32 26 39 18.26996 2 +1527 15 33 26 37 13.55549 2 +1528 15 34 26 36 21.22604 2 +1529 15 35 26 38 13.62364 2 +1530 15 36 26 40 14.10672 2 +1531 15 37 30 39 21.99942 2 +1532 15 38 30 37 13.92277 2 +1533 15 39 30 35 13.7182 2 +1534 15 40 30 36 14.19871 2 +1535 15 41 30 38 13.08569 2 +1536 15 42 30 40 22.62654 2 +1537 15 43 34 39 18.98083 2 +1538 15 44 34 37 12.24145 2 +1539 15 45 34 36 12.38092 2 +1540 15 46 34 38 12.40312 2 +1541 15 47 34 40 21.29954 2 +1542 15 48 38 39 19.43217 2 +1543 15 49 38 37 12.4733 2 +1544 15 50 38 36 15.11121 2 +1545 15 51 38 38 12.99682 2 +1546 15 52 38 40 19.9244 2 +1547 15 53 42 39 20.22198 2 +1548 15 54 42 37 12.99682 2 +1549 15 55 42 35 15.11121 2 +1550 15 56 42 38 11.15294 2 +1551 15 57 42 40 16.53001 2 +1552 15 58 46 39 21.01371 2 +1553 15 59 46 37 12.6294 2 +1554 15 60 46 35 13.60669 2 +1555 15 61 46 38 12.24047 2 +1556 15 62 46 40 18.23413 2 +1557 15 63 50 39 22.69997 2 +1558 15 64 50 37 13.08666 2 +1559 15 65 50 35 14.19774 2 +1560 15 66 50 36 13.93684 2 +1561 15 67 50 38 13.92173 2 +1562 15 68 50 40 22.14925 2 +1563 15 69 54 39 13.54874 2 +1564 15 70 54 37 22.22656 2 +1565 15 71 54 35 15.68484 2 +1566 15 72 54 38 13.55455 2 +1567 15 73 54 40 18.27101 2 +1568 15 74 58 39 21.72985 2 +1569 15 75 58 37 12.52776 2 +1570 15 76 58 36 19.01648 2 +1571 15 77 58 38 12.71171 2 +1572 15 78 58 40 12.77188 2 +1573 15 79 62 39 18.56227 2 +1574 15 80 62 37 17.09962 2 +1575 15 81 62 35 13.03538 2 +1576 15 82 62 36 14.46638 2 +1577 15 83 62 38 20.49474 2 +1578 15 84 62 40 21.05578 2 +1579 15 85 66 39 12.52494 2 +1580 15 86 66 37 12.85251 2 +1581 15 87 66 35 18.05719 2 +1582 15 88 66 38 14.20042 2 +1583 15 89 66 40 20.96486 2 +1584 15 90 70 39 11.16006 2 +1585 15 91 70 37 11.53492 2 +1586 15 92 70 35 18.53997 2 +1587 15 93 70 38 22.07267 2 +1588 15 94 70 40 21.82811 2 +1589 15 95 74 39 13.56477 2 +1590 15 96 74 37 23.98129 2 +1591 15 97 74 35 29.68549 2 +1592 15 98 74 38 30.25399 2 +1593 15 99 74 40 38.1218 2 +1594 15 100 78 39 27.41183 2 +1595 15 101 78 37 37.0772 2 +1596 15 102 78 35 43.44229 2 +1597 15 103 78 36 52.4415 2 +1598 15 104 78 38 47.46293 2 +1599 15 105 78 40 55.42552 2 +1600 16 0 3 5 49.82833 2 +1601 16 1 3 3 49.32177 2 +1602 16 2 3 1 35.87285 2 +1603 16 3 3 2 43.36167 2 +1604 16 4 3 4 33.07923 2 +1605 16 5 3 6 32.6061 2 +1606 16 6 7 3 31.91618 2 +1607 16 7 7 1 22.76061 2 +1608 16 8 7 2 27.44714 2 +1609 16 9 7 4 18.5705 2 +1610 16 10 7 6 16.9702 2 +1611 16 11 11 5 18.04531 2 +1612 16 12 11 3 15.67278 2 +1613 16 13 11 1 10.70987 2 +1614 16 14 11 2 10.59553 2 +1615 16 15 11 4 14.37878 2 +1616 16 16 11 6 20.71072 2 +1617 16 17 15 3 13.9483 2 +1618 16 18 15 1 12.02913 2 +1619 16 19 15 2 10.95103 2 +1620 16 20 15 4 12.93549 2 +1621 16 21 15 6 19.98142 2 +1622 16 22 19 5 19.99818 2 +1623 16 23 19 3 15.20362 2 +1624 16 24 19 1 10.72341 2 +1625 16 25 19 2 12.31552 2 +1626 16 26 19 4 14.15317 2 +1627 16 27 19 6 18.36846 2 +1628 16 28 23 5 21.57032 2 +1629 16 29 23 3 15.22645 2 +1630 16 30 23 1 12.025 2 +1631 16 31 23 2 11.5723 2 +1632 16 32 23 4 23.67978 2 +1633 16 33 27 5 19.14518 2 +1634 16 34 27 3 13.25262 2 +1635 16 35 27 1 10.3273 2 +1636 16 36 27 2 11.01874 2 +1637 16 37 27 4 13.62211 2 +1638 16 38 27 6 19.70551 2 +1639 16 39 31 5 16.2871 2 +1640 16 40 31 3 12.01613 2 +1641 16 41 31 1 10.71414 2 +1642 16 42 31 2 13.10479 2 +1643 16 43 31 4 16.29634 2 +1644 16 44 35 5 17.52172 2 +1645 16 45 35 3 15.76916 2 +1646 16 46 35 1 10.88965 2 +1647 16 47 35 2 11.1634 2 +1648 16 48 35 4 14.47953 2 +1649 16 49 35 6 26.40473 2 +1650 16 50 39 3 14.17434 2 +1651 16 51 39 1 10.98108 2 +1652 16 52 39 2 12.25361 2 +1653 16 53 39 4 16.96203 2 +1654 16 54 39 6 20.47036 2 +1655 16 55 43 5 20.47036 2 +1656 16 56 43 3 16.96203 2 +1657 16 57 43 1 11.11554 2 +1658 16 58 43 2 10.98108 2 +1659 16 59 43 4 14.17434 2 +1660 16 60 47 5 29.08504 2 +1661 16 61 47 3 14.48055 2 +1662 16 62 47 1 11.81308 2 +1663 16 63 47 2 10.88867 2 +1664 16 64 47 4 15.77014 2 +1665 16 65 47 6 17.42413 2 +1666 16 66 51 3 16.29731 2 +1667 16 67 51 1 13.10382 2 +1668 16 68 51 2 10.71518 2 +1669 16 69 51 4 12.01516 2 +1670 16 70 51 6 16.28614 2 +1671 16 71 55 5 19.70646 2 +1672 16 72 55 3 13.62306 2 +1673 16 73 55 1 11.63522 2 +1674 16 74 55 2 10.32835 2 +1675 16 75 55 4 13.25157 2 +1676 16 76 55 6 19.14623 2 +1677 16 77 59 3 23.67788 2 +1678 16 78 59 1 12.19057 2 +1679 16 79 59 2 12.02407 2 +1680 16 80 59 4 15.22742 2 +1681 16 81 59 6 21.56925 2 +1682 16 82 63 5 18.36937 2 +1683 16 83 63 3 14.15408 2 +1684 16 84 63 1 12.31461 2 +1685 16 85 63 2 11.93499 2 +1686 16 86 63 4 15.28858 2 +1687 16 87 63 6 19.66789 2 +1688 16 88 67 5 19.98053 2 +1689 16 89 67 3 13.58706 2 +1690 16 90 67 1 10.94931 2 +1691 16 91 67 2 10.89213 2 +1692 16 92 67 4 13.9472 2 +1693 16 93 71 5 23.59137 2 +1694 16 94 71 3 14.37991 2 +1695 16 95 71 1 10.5944 2 +1696 16 96 71 2 10.70874 2 +1697 16 97 71 4 15.67391 2 +1698 16 98 71 6 18.04418 2 +1699 16 99 75 5 17.89257 2 +1700 16 100 75 3 18.05159 2 +1701 16 101 75 1 27.15039 2 +1702 16 102 75 2 26.97163 2 +1703 16 103 75 4 28.15107 2 +1704 16 104 79 5 32.62911 2 +1705 16 105 79 3 32.89847 2 +1706 16 106 79 1 43.8314 2 +1707 16 107 79 2 35.86077 2 +1708 16 108 79 4 50.37916 2 +1709 16 109 79 6 49.82717 2 +1710 17 0 3 9 49.29225 2 +1711 17 1 3 7 39.08223 2 +1712 17 2 3 8 37.46016 2 +1713 17 3 3 10 35.6367 2 +1714 17 4 3 12 24.14634 2 +1715 17 5 7 9 33.25718 2 +1716 17 6 7 7 28.6917 2 +1717 17 7 7 5 19.26185 2 +1718 17 8 7 8 24.11427 2 +1719 17 9 7 10 15.98622 2 +1720 17 10 7 12 9.20435 2 +1721 17 11 11 11 14.28158 2 +1722 17 12 11 9 6.21446 2 +1723 17 13 11 7 4.09605 2 +1724 17 14 11 8 5.01185 2 +1725 17 15 11 10 13.89468 2 +1726 17 16 15 9 14.56491 2 +1727 17 17 15 7 10.20592 2 +1728 17 18 15 5 6.54809 2 +1729 17 19 15 8 6.65779 2 +1730 17 20 15 10 5.72095 2 +1731 17 21 15 12 12.32228 2 +1732 17 22 19 11 10.24549 2 +1733 17 23 19 9 7.9458 2 +1734 17 24 19 7 5.63817 2 +1735 17 25 19 8 5.03776 2 +1736 17 26 19 10 11.82662 2 +1737 17 27 23 11 15.48503 2 +1738 17 28 23 9 13.386 2 +1739 17 29 23 7 4.55515 2 +1740 17 30 23 6 4.60444 2 +1741 17 31 23 8 5.92141 2 +1742 17 32 23 10 13.88075 2 +1743 17 33 27 11 14.92237 2 +1744 17 34 27 9 7.29193 2 +1745 17 35 27 7 7.25503 2 +1746 17 36 27 8 4.70033 2 +1747 17 37 27 10 7.69201 2 +1748 17 38 27 12 18.76505 2 +1749 17 39 31 9 10.49129 2 +1750 17 40 31 7 7.59986 2 +1751 17 41 31 6 4.96897 2 +1752 17 42 31 8 6.80408 2 +1753 17 43 31 10 15.16377 2 +1754 17 44 35 11 11.39381 2 +1755 17 45 35 9 8.18883 2 +1756 17 46 35 7 4.38414 2 +1757 17 47 35 8 5.0991 2 +1758 17 48 35 10 9.93555 2 +1759 17 49 35 12 18.84412 2 +1760 17 50 39 9 11.21105 2 +1761 17 51 39 7 4.26957 2 +1762 17 52 39 5 7.16159 2 +1763 17 53 39 8 7.59414 2 +1764 17 54 39 10 10.60105 2 +1765 17 55 43 9 10.60105 2 +1766 17 56 43 7 7.59414 2 +1767 17 57 43 6 7.16159 2 +1768 17 58 43 8 4.26957 2 +1769 17 59 43 10 11.21105 2 +1770 17 60 47 11 18.5166 2 +1771 17 61 47 9 9.93657 2 +1772 17 62 47 7 5.09812 2 +1773 17 63 47 8 4.56334 2 +1774 17 64 47 10 8.18982 2 +1775 17 65 47 12 13.65107 2 +1776 17 66 51 9 13.0084 2 +1777 17 67 51 7 7.26778 2 +1778 17 68 51 5 5.10321 2 +1779 17 69 51 8 7.6009 2 +1780 17 70 51 10 10.49025 2 +1781 17 71 55 11 19.32253 2 +1782 17 72 55 9 7.69307 2 +1783 17 73 55 7 4.69938 2 +1784 17 74 55 8 7.25398 2 +1785 17 75 55 10 7.29087 2 +1786 17 76 55 12 14.92334 2 +1787 17 77 59 9 13.88182 2 +1788 17 78 59 7 5.92234 2 +1789 17 79 59 5 4.60352 2 +1790 17 80 59 8 4.55422 2 +1791 17 81 59 10 13.38693 2 +1792 17 82 59 12 13.43797 2 +1793 17 83 63 9 12.48265 2 +1794 17 84 63 7 4.67173 2 +1795 17 85 63 8 5.5951 2 +1796 17 86 63 10 7.94674 2 +1797 17 87 63 12 10.24458 2 +1798 17 88 67 11 12.32338 2 +1799 17 89 67 9 5.72205 2 +1800 17 90 67 7 6.65888 2 +1801 17 91 67 6 6.31938 2 +1802 17 92 67 8 10.20493 2 +1803 17 93 67 10 14.85576 2 +1804 17 94 71 9 14.46198 2 +1805 17 95 71 7 4.96439 2 +1806 17 96 71 8 4.09718 2 +1807 17 97 71 10 6.21334 2 +1808 17 98 71 12 14.22826 2 +1809 17 99 75 11 8.32681 2 +1810 17 100 75 9 15.73984 2 +1811 17 101 75 7 19.2141 2 +1812 17 102 75 6 23.76473 2 +1813 17 103 75 8 24.61579 2 +1814 17 104 75 10 36.80823 2 +1815 17 105 79 11 24.75228 2 +1816 17 106 79 9 33.95965 2 +1817 17 107 79 7 37.19192 2 +1818 17 108 79 8 40.08218 2 +1819 17 109 79 10 48.7716 2 +1820 18 0 3 15 51.84984 2 +1821 18 1 3 13 51.16651 2 +1822 18 2 3 11 44.29423 2 +1823 18 3 3 14 47.4577 2 +1824 18 4 3 16 36.44706 2 +1825 18 5 3 18 30.15469 2 +1826 18 6 7 15 38.57244 2 +1827 18 7 7 13 40.90633 2 +1828 18 8 7 11 27.76927 2 +1829 18 9 7 14 29.64028 2 +1830 18 10 7 16 22.05659 2 +1831 18 11 7 18 10.58541 2 +1832 18 12 11 15 15.16554 2 +1833 18 13 11 13 15.05524 2 +1834 18 14 11 12 14.75789 2 +1835 18 15 11 14 12.28096 2 +1836 18 16 11 16 19.33037 2 +1837 18 17 15 15 22.6082 2 +1838 18 18 15 13 14.69482 2 +1839 18 19 15 11 13.24908 2 +1840 18 20 15 14 10.87532 2 +1841 18 21 15 16 11.25707 2 +1842 18 22 15 18 20.8755 2 +1843 18 23 19 15 13.49137 2 +1844 18 24 19 13 16.49139 2 +1845 18 25 19 12 20.29991 2 +1846 18 26 19 14 13.73387 2 +1847 18 27 19 16 12.46963 2 +1848 18 28 23 17 19.17096 2 +1849 18 29 23 15 15.52786 2 +1850 18 30 23 13 11.27041 2 +1851 18 31 23 12 15.28175 2 +1852 18 32 23 14 12.71593 2 +1853 18 33 23 16 19.34359 2 +1854 18 34 27 17 13.15391 2 +1855 18 35 27 15 14.12881 2 +1856 18 36 27 13 15.1218 2 +1857 18 37 27 14 12.18705 2 +1858 18 38 27 16 12.83495 2 +1859 18 39 31 15 22.9951 2 +1860 18 40 31 13 14.87434 2 +1861 18 41 31 11 15.03711 2 +1862 18 42 31 12 16.37044 2 +1863 18 43 31 14 14.59052 2 +1864 18 44 31 16 15.88265 2 +1865 18 45 35 17 17.91214 2 +1866 18 46 35 15 20.32923 2 +1867 18 47 35 13 12.46583 2 +1868 18 48 35 14 12.51014 2 +1869 18 49 35 16 13.13994 2 +1870 18 50 35 18 23.56948 2 +1871 18 51 39 13 21.06444 2 +1872 18 52 39 11 14.11093 2 +1873 18 53 39 12 12.71024 2 +1874 18 54 39 14 13.24158 2 +1875 18 55 39 16 23.2642 2 +1876 18 56 43 15 22.28849 2 +1877 18 57 43 13 13.24158 2 +1878 18 58 43 11 12.91644 2 +1879 18 59 43 12 14.06002 2 +1880 18 60 43 14 22.39897 2 +1881 18 61 47 17 21.05525 2 +1882 18 62 47 15 13.14095 2 +1883 18 63 47 13 14.18127 2 +1884 18 64 47 14 11.63904 2 +1885 18 65 47 16 10.57121 2 +1886 18 66 47 18 22.47649 2 +1887 18 67 51 15 20.88454 2 +1888 18 68 51 13 12.98643 2 +1889 18 69 51 11 13.36134 2 +1890 18 70 51 12 15.03814 2 +1891 18 71 51 14 14.87338 2 +1892 18 72 51 16 24.78159 2 +1893 18 73 55 15 12.8359 2 +1894 18 74 55 13 14.72258 2 +1895 18 75 55 14 14.94997 2 +1896 18 76 55 16 14.35026 2 +1897 18 77 55 18 13.15286 2 +1898 18 78 59 15 20.96507 2 +1899 18 79 59 13 12.44905 2 +1900 18 80 59 11 14.20251 2 +1901 18 81 59 14 11.21741 2 +1902 18 82 59 16 17.74362 2 +1903 18 83 59 18 20.22522 2 +1904 18 84 63 15 15.12531 2 +1905 18 85 63 13 15.54029 2 +1906 18 86 63 11 16.94873 2 +1907 18 87 63 14 18.10097 2 +1908 18 88 63 16 13.49047 2 +1909 18 89 67 17 20.76228 2 +1910 18 90 67 15 11.25817 2 +1911 18 91 67 13 12.4481 2 +1912 18 92 67 12 14.38291 2 +1913 18 93 67 14 14.69393 2 +1914 18 94 67 16 20.86615 2 +1915 18 95 71 15 19.32952 2 +1916 18 96 71 13 11.3367 2 +1917 18 97 71 11 14.75676 2 +1918 18 98 71 14 15.14249 2 +1919 18 99 71 16 17.76959 2 +1920 18 100 75 17 10.706 2 +1921 18 101 75 15 23.0688 2 +1922 18 102 75 13 29.82103 2 +1923 18 103 75 12 30.70987 2 +1924 18 104 75 14 33.28551 2 +1925 18 105 75 16 35.08714 2 +1926 18 106 79 17 32.59086 2 +1927 18 107 79 15 35.97374 2 +1928 18 108 79 13 45.96385 2 +1929 18 109 79 12 47.19177 2 +1930 18 110 79 14 48.13668 2 +1931 18 111 79 16 54.96909 2 +1932 19 0 3 21 59.75243 2 +1933 19 1 3 19 63.6093 2 +1934 19 2 3 17 56.11117 2 +1935 19 3 3 20 52.40651 2 +1936 19 4 3 22 48.79634 2 +1937 19 5 3 24 39.35252 2 +1938 19 6 7 21 44.32943 2 +1939 19 7 7 19 38.9747 2 +1940 19 8 7 17 36.20596 2 +1941 19 9 7 20 42.93889 2 +1942 19 10 7 22 23.44726 2 +1943 19 11 11 21 33.5243 2 +1944 19 12 11 19 23.23523 2 +1945 19 13 11 17 24.12816 2 +1946 19 14 11 18 29.7515 2 +1947 19 15 11 20 21.1849 2 +1948 19 16 11 22 21.22962 2 +1949 19 17 15 21 30.60517 2 +1950 19 18 15 19 22.65517 2 +1951 19 19 15 17 25.4822 2 +1952 19 20 15 20 32.77094 2 +1953 19 21 15 22 19.669 2 +1954 19 22 19 21 31.73762 2 +1955 19 23 19 19 23.60452 2 +1956 19 24 19 17 24.23592 2 +1957 19 25 19 18 24.73322 2 +1958 19 26 19 20 21.13855 2 +1959 19 27 19 22 27.46234 2 +1960 19 28 23 23 30.31658 2 +1961 19 29 23 21 21.17176 2 +1962 19 30 23 19 24.04165 2 +1963 19 31 23 18 20.79269 2 +1964 19 32 23 20 69.75486 2 +1965 19 33 23 22 24.58895 2 +1966 19 34 27 21 21.95265 2 +1967 19 35 27 19 22.90255 2 +1968 19 36 27 18 28.12773 2 +1969 19 37 27 20 23.58082 2 +1970 19 38 27 22 20.40497 2 +1971 19 39 31 21 31.47439 2 +1972 19 40 31 19 28.26376 2 +1973 19 41 31 17 23.40134 2 +1974 19 42 31 18 22.92591 2 +1975 19 43 31 20 21.29996 2 +1976 19 44 31 22 29.51958 2 +1977 19 45 35 23 29.36853 2 +1978 19 46 35 21 21.2773 2 +1979 19 47 35 19 21.10146 2 +1980 19 48 35 20 20.16234 2 +1981 19 49 35 22 28.11676 2 +1982 19 50 35 24 25.89739 2 +1983 19 51 39 19 26.45482 2 +1984 19 52 39 17 22.19508 2 +1985 19 53 39 15 26.46065 2 +1986 19 54 39 18 22.90439 2 +1987 19 55 39 20 32.62379 2 +1988 19 56 43 19 24.75845 2 +1989 19 57 43 17 22.76541 2 +1990 19 58 43 16 37.39859 2 +1991 19 59 43 18 22.83894 2 +1992 19 60 43 20 27.61747 2 +1993 19 61 47 23 29.24779 2 +1994 19 62 47 21 41.52652 2 +1995 19 63 47 19 22.94889 2 +1996 19 64 47 20 22.60236 2 +1997 19 65 47 22 32.71014 2 +1998 19 66 47 24 26.83087 2 +1999 19 67 51 21 34.63301 2 +2000 19 68 51 19 21.31813 2 +2001 19 69 51 17 24.18891 2 +2002 19 70 51 18 22.90816 2 +2003 19 71 51 20 29.83978 2 +2004 19 72 51 22 29.65598 2 +2005 19 73 55 21 20.40602 2 +2006 19 74 55 19 20.57877 2 +2007 19 75 55 17 52.30349 2 +2008 19 76 55 20 24.44089 2 +2009 19 77 55 22 21.95159 2 +2010 19 78 59 21 26.01426 2 +2011 19 79 59 19 25.71918 2 +2012 19 80 59 17 30.80479 2 +2013 19 81 59 20 23.04091 2 +2014 19 82 59 22 21.57004 2 +2015 19 83 59 24 28.37548 2 +2016 19 84 63 21 26.99705 2 +2017 19 85 63 19 21.06754 2 +2018 19 86 63 17 27.0084 2 +2019 19 87 63 18 22.94842 2 +2020 19 88 63 20 23.01093 2 +2021 19 89 63 22 32.25947 2 +2022 19 90 67 21 19.75709 2 +2023 19 91 67 19 29.92701 2 +2024 19 92 67 18 23.34681 2 +2025 19 93 67 20 22.65407 2 +2026 19 94 67 22 46.92802 2 +2027 19 95 71 21 21.23075 2 +2028 19 96 71 19 21.03395 2 +2029 19 97 71 17 26.93097 2 +2030 19 98 71 18 27.53406 2 +2031 19 99 71 20 25.52866 2 +2032 19 100 71 22 32.41507 2 +2033 19 101 75 21 31.0962 2 +2034 19 102 75 19 37.20244 2 +2035 19 103 75 18 48.87409 2 +2036 19 104 75 20 41.83302 2 +2037 19 105 75 22 61.19957 2 +2038 19 106 79 23 40.72174 2 +2039 19 107 79 21 45.69862 2 +2040 19 108 79 19 55.8842 2 +2041 19 109 79 18 54.92835 2 +2042 19 110 79 20 64.99665 2 +2043 19 111 79 22 67.3048 2 +2044 20 0 3 27 75.48537 2 +2045 20 1 3 25 73.20988 2 +2046 20 2 3 23 71.11703 2 +2047 20 3 3 26 59.41104 2 +2048 20 4 3 28 54.15138 2 +2049 20 5 7 27 57.79719 2 +2050 20 6 7 25 63.98104 2 +2051 20 7 7 23 49.87711 2 +2052 20 8 7 24 48.31741 2 +2053 20 9 7 26 44.96582 2 +2054 20 10 7 28 32.29294 2 +2055 20 11 11 27 41.85476 2 +2056 20 12 11 25 40.07982 2 +2057 20 13 11 23 30.83943 2 +2058 20 14 11 24 31.42249 2 +2059 20 15 11 26 37.87921 2 +2060 20 16 11 28 30.19018 2 +2061 20 17 15 25 41.67509 2 +2062 20 18 15 23 31.99003 2 +2063 20 19 15 24 34.87787 2 +2064 20 20 15 26 28.34582 2 +2065 20 21 15 28 28.72835 2 +2066 20 22 19 27 40.87428 2 +2067 20 23 19 25 32.025 2 +2068 20 24 19 23 33.53319 2 +2069 20 25 19 24 33.9086 2 +2070 20 26 19 26 28.22597 2 +2071 20 27 19 28 43.87501 2 +2072 20 28 23 29 31.25412 2 +2073 20 29 23 27 32.14318 2 +2074 20 30 23 25 29.54182 2 +2075 20 31 23 24 37.84141 2 +2076 20 32 23 26 36.94027 2 +2077 20 33 23 28 31.23271 2 +2078 20 34 27 25 32.20216 2 +2079 20 35 27 23 37.89824 2 +2080 20 36 27 24 34.27574 2 +2081 20 37 27 26 30.48495 2 +2082 20 38 27 28 38.68336 2 +2083 20 39 31 27 32.64777 2 +2084 20 40 31 25 32.29551 2 +2085 20 41 31 23 30.15081 2 +2086 20 42 31 24 31.13309 2 +2087 20 43 31 26 70.7478 2 +2088 20 44 31 28 31.9962 2 +2089 20 45 35 27 36.84746 2 +2090 20 46 35 25 29.59693 2 +2091 20 47 35 26 31.22482 2 +2092 20 48 35 28 27.72843 2 +2093 20 49 35 30 37.96968 2 +2094 20 50 39 25 43.09075 2 +2095 20 51 39 23 31.8624 2 +2096 20 52 39 21 35.15541 2 +2097 20 53 39 22 31.94297 2 +2098 20 54 39 24 31.20535 2 +2099 20 55 39 26 40.37788 2 +2100 20 56 43 25 38.73363 2 +2101 20 57 43 23 30.88946 2 +2102 20 58 43 21 32.93745 2 +2103 20 59 43 22 32.51285 2 +2104 20 60 43 24 36.01281 2 +2105 20 61 43 26 47.89502 2 +2106 20 62 47 29 36.27361 2 +2107 20 63 47 27 27.38348 2 +2108 20 64 47 25 31.84081 2 +2109 20 65 47 26 28.78677 2 +2110 20 66 47 28 68.8232 2 +2111 20 67 51 27 31.11975 2 +2112 20 68 51 25 35.97809 2 +2113 20 69 51 23 30.93607 2 +2114 20 70 51 24 30.64572 2 +2115 20 71 51 26 32.22211 2 +2116 20 72 51 28 38.08307 2 +2117 20 73 55 27 60.44223 2 +2118 20 74 55 25 30.3859 2 +2119 20 75 55 23 32.4842 2 +2120 20 76 55 24 33.79073 2 +2121 20 77 55 26 31.9613 2 +2122 20 78 59 27 39.77592 2 +2123 20 79 59 25 29.59753 2 +2124 20 80 59 23 38.8183 2 +2125 20 81 59 26 42.05162 2 +2126 20 82 59 28 28.8499 2 +2127 20 83 59 30 44.08001 2 +2128 20 84 63 27 41.49315 2 +2129 20 85 63 25 28.82285 2 +2130 20 86 63 23 32.73154 2 +2131 20 87 63 24 32.1872 2 +2132 20 88 63 26 32.14685 2 +2133 20 89 63 28 36.81233 2 +2134 20 90 67 27 30.03289 2 +2135 20 91 67 25 31.58937 2 +2136 20 92 67 23 31.79785 2 +2137 20 93 67 24 31.98914 2 +2138 20 94 67 26 41.59002 2 +2139 20 95 71 27 30.56345 2 +2140 20 96 71 25 37.7135 2 +2141 20 97 71 23 31.2375 2 +2142 20 98 71 24 32.35493 2 +2143 20 99 71 26 40.8155 2 +2144 20 100 71 28 42.49347 2 +2145 20 101 75 27 37.07713 2 +2146 20 102 75 25 45.19345 2 +2147 20 103 75 23 56.26589 4 +2148 20 104 75 24 47.21191 2 +2149 20 105 75 26 53.8208 2 +2150 20 106 75 28 58.26591 2 +2151 20 107 79 27 53.88585 2 +2152 20 108 79 25 63.89224 2 +2153 20 109 79 24 63.54349 2 +2154 20 110 79 26 68.51868 2 +2155 20 111 79 28 70.72673 2 +2156 21 0 3 33 89.8973 2 +2157 21 1 3 31 88.12197 2 +2158 21 2 3 29 79.15884 2 +2159 21 3 3 30 73.65031 2 +2160 21 4 3 32 68.38726 2 +2161 21 5 3 34 64.56019 2 +2162 21 6 7 33 68.78736 4 +2163 21 7 7 31 66.37846 4 +2164 21 8 7 29 53.28222 2 +2165 21 9 7 30 58.78023 2 +2166 21 10 7 32 51.76638 2 +2167 21 11 7 34 47.88492 2 +2168 21 12 11 31 51.60668 4 +2169 21 13 11 29 85.78853 2 +2170 21 14 11 30 48.1214 2 +2171 21 15 11 32 38.01831 2 +2172 21 16 11 34 35.77569 2 +2173 21 17 15 31 54.6186 2 +2174 21 18 15 29 50.57058 2 +2175 21 19 15 27 47.24595 2 +2176 21 20 15 30 42.29117 2 +2177 21 21 15 32 36.98783 2 +2178 21 22 15 34 36.54574 2 +2179 21 23 19 33 51.77195 2 +2180 21 24 19 31 39.11801 2 +2181 21 25 19 29 39.85009 2 +2182 21 26 19 30 40.85973 2 +2183 21 27 19 32 47.0653 2 +2184 21 28 19 34 41.29946 2 +2185 21 29 23 33 40.67227 2 +2186 21 30 23 31 42.7296 2 +2187 21 31 23 30 39.92729 2 +2188 21 32 23 32 42.7632 2 +2189 21 33 23 34 38.68443 2 +2190 21 34 27 31 53.53559 2 +2191 21 35 27 29 44.47785 2 +2192 21 36 27 27 61.82625 2 +2193 21 37 27 30 82.18288 2 +2194 21 38 27 32 45.03376 2 +2195 21 39 27 34 37.99911 2 +2196 21 40 31 33 40.51163 2 +2197 21 41 31 31 40.50083 2 +2198 21 42 31 29 43.80648 2 +2199 21 43 31 30 40.68799 2 +2200 21 44 31 32 38.06413 2 +2201 21 45 31 34 39.30507 2 +2202 21 46 35 33 59.44524 2 +2203 21 47 35 31 39.01325 2 +2204 21 48 35 29 40.06345 2 +2205 21 49 35 32 38.63173 2 +2206 21 50 35 34 43.15213 2 +2207 21 51 39 31 47.95669 2 +2208 21 52 39 29 40.33531 2 +2209 21 53 39 27 42.95409 2 +2210 21 54 39 28 40.13297 2 +2211 21 55 39 30 41.23028 2 +2212 21 56 39 32 39.81055 2 +2213 21 57 43 31 44.35419 2 +2214 21 58 43 29 39.12858 2 +2215 21 59 43 27 44.54734 2 +2216 21 60 43 28 47.57819 2 +2217 21 61 43 30 45.05096 2 +2218 21 62 43 32 48.57425 2 +2219 21 63 47 33 38.1542 2 +2220 21 64 47 31 46.62184 2 +2221 21 65 47 30 44.10426 2 +2222 21 66 47 32 37.33445 2 +2223 21 67 47 34 47.79964 2 +2224 21 68 51 33 43.56195 2 +2225 21 69 51 31 38.03362 2 +2226 21 70 51 29 47.38308 2 +2227 21 71 51 30 38.56341 2 +2228 21 72 51 32 40.50186 2 +2229 21 73 51 34 46.28658 2 +2230 21 74 55 33 38.26154 2 +2231 21 75 55 31 41.4983 2 +2232 21 76 55 29 39.37975 2 +2233 21 77 55 28 40.14941 2 +2234 21 78 55 30 41.82687 2 +2235 21 79 55 32 42.35636 2 +2236 21 80 59 33 41.56095 2 +2237 21 81 59 31 38.31008 2 +2238 21 82 59 29 40.6692 2 +2239 21 83 59 32 38.87302 2 +2240 21 84 59 34 39.97413 2 +2241 21 85 63 33 37.66525 2 +2242 21 86 63 31 46.79308 2 +2243 21 87 63 29 41.34178 2 +2244 21 88 63 30 39.33091 2 +2245 21 89 63 32 39.94818 2 +2246 21 90 63 34 46.5292 2 +2247 21 91 67 33 37.46639 2 +2248 21 92 67 31 37.43653 2 +2249 21 93 67 29 54.24292 2 +2250 21 94 67 28 43.38272 2 +2251 21 95 67 30 47.9946 2 +2252 21 96 67 32 50.64287 2 +2253 21 97 71 33 35.88172 2 +2254 21 98 71 31 40.4204 2 +2255 21 99 71 29 47.60147 2 +2256 21 100 71 30 47.35056 2 +2257 21 101 71 32 49.59639 2 +2258 21 102 75 33 49.89955 2 +2259 21 103 75 31 53.04818 2 +2260 21 104 75 29 60.23214 2 +2261 21 105 75 30 58.04619 2 +2262 21 106 75 32 59.59715 2 +2263 21 107 75 34 68.74002 4 +2264 21 108 79 33 59.58926 2 +2265 21 109 79 31 72.4284 2 +2266 21 110 79 29 79.287 2 +2267 21 111 79 30 75.34272 2 +2268 21 112 79 32 88.78072 2 +2269 21 113 79 34 84.52719 2 +2270 22 0 3 39 90.95908 2 +2271 22 1 3 37 89.54491 2 +2272 22 2 3 35 85.30901 2 +2273 22 3 3 36 87.50042 2 +2274 22 4 3 38 79.86774 2 +2275 22 5 3 40 67.54722 2 +2276 22 6 7 37 79.03638 4 +2277 22 7 7 35 82.02199 2 +2278 22 8 7 36 71.13051 2 +2279 22 9 7 38 66.75789 2 +2280 22 10 7 40 58.42279 2 +2281 22 11 11 37 63.75342 2 +2282 22 12 11 35 57.54791 2 +2283 22 13 11 33 53.00352 2 +2284 22 14 11 36 51.00507 2 +2285 22 15 11 38 54.41753 2 +2286 22 16 11 40 42.66563 2 +2287 22 17 15 37 62.3908 2 +2288 22 18 15 35 50.74662 2 +2289 22 19 15 33 53.01485 2 +2290 22 20 15 36 46.62863 2 +2291 22 21 15 38 45.42403 2 +2292 22 22 15 40 43.93189 2 +2293 22 23 19 39 56.45326 4 +2294 22 24 19 37 47.31715 2 +2295 22 25 19 35 49.98127 2 +2296 22 26 19 36 47.26396 2 +2297 22 27 19 38 45.48454 2 +2298 22 28 19 40 45.79077 2 +2299 22 29 23 39 49.6489 2 +2300 22 30 23 37 47.56444 2 +2301 22 31 23 35 49.60206 2 +2302 22 32 23 36 49.52428 2 +2303 22 33 23 38 58.64428 2 +2304 22 34 27 37 49.8471 2 +2305 22 35 27 35 49.90689 2 +2306 22 36 27 33 48.15524 2 +2307 22 37 27 36 50.24842 2 +2308 22 38 27 38 44.57391 2 +2309 22 39 27 40 48.75235 2 +2310 22 40 31 39 46.97059 2 +2311 22 41 31 37 48.49506 2 +2312 22 42 31 35 50.74793 2 +2313 22 43 31 36 50.32441 2 +2314 22 44 31 38 45.99423 2 +2315 22 45 31 40 48.6175 2 +2316 22 46 35 37 50.31662 2 +2317 22 47 35 35 48.15698 2 +2318 22 48 35 36 51.34917 2 +2319 22 49 35 38 46.64504 2 +2320 22 50 35 40 55.02041 2 +2321 22 51 39 35 55.31924 2 +2322 22 52 39 33 50.32336 2 +2323 22 53 39 34 57.75168 2 +2324 22 54 39 36 45.86836 2 +2325 22 55 39 38 46.60228 2 +2326 22 56 39 40 46.30097 2 +2327 22 57 43 39 50.49279 2 +2328 22 58 43 37 48.21373 2 +2329 22 59 43 35 50.07659 2 +2330 22 60 43 33 57.81387 2 +2331 22 61 43 34 50.08708 2 +2332 22 62 43 36 57.75603 2 +2333 22 63 47 39 50.37421 2 +2334 22 64 47 37 46.96739 2 +2335 22 65 47 35 48.43032 2 +2336 22 66 47 36 46.43288 2 +2337 22 67 47 38 48.51947 2 +2338 22 68 51 39 57.65455 2 +2339 22 69 51 37 46.67508 2 +2340 22 70 51 35 49.65163 2 +2341 22 71 51 36 50.52713 2 +2342 22 72 51 38 48.70343 2 +2343 22 73 51 40 53.76459 2 +2344 22 74 55 39 45.25725 2 +2345 22 75 55 37 44.81103 2 +2346 22 76 55 35 52.47214 2 +2347 22 77 55 34 53.4459 2 +2348 22 78 55 36 50.20963 2 +2349 22 79 55 38 50.48265 2 +2350 22 80 59 37 44.916 2 +2351 22 81 59 35 48.44623 2 +2352 22 82 59 36 50.09888 2 +2353 22 83 59 38 47.68008 2 +2354 22 84 59 40 49.0327 2 +2355 22 85 63 39 47.356 2 +2356 22 86 63 37 46.14448 2 +2357 22 87 63 35 47.18965 2 +2358 22 88 63 36 49.54728 2 +2359 22 89 63 38 71.05998 2 +2360 22 90 63 40 52.20317 2 +2361 22 91 67 39 46.40101 2 +2362 22 92 67 37 43.50167 2 +2363 22 93 67 35 47.43915 2 +2364 22 94 67 34 50.46927 2 +2365 22 95 67 36 55.09557 2 +2366 22 96 67 38 65.67452 2 +2367 22 97 71 39 45.53399 2 +2368 22 98 71 37 48.3386 2 +2369 22 99 71 35 55.56802 2 +2370 22 100 71 34 59.38613 2 +2371 22 101 71 36 62.16453 2 +2372 22 102 71 38 78.46508 2 +2373 22 103 75 39 59.18654 2 +2374 22 104 75 37 65.99893 2 +2375 22 105 75 35 70.81608 2 +2376 22 106 75 36 72.0394 2 +2377 22 107 75 38 73.03673 2 +2378 22 108 79 39 72.52673 2 +2379 22 109 79 37 77.90768 4 +2380 22 110 79 35 86.63157 2 +2381 22 111 79 36 91.98945 2 +2382 22 112 79 38 90.19345 4 +2383 22 113 79 40 99.15104 2 +2384 23 0 4 5 73.18042 2 +2385 23 1 4 3 70.8965 2 +2386 23 2 4 1 61.6334 2 +2387 23 3 4 2 67.31832 2 +2388 23 4 4 4 53.78557 2 +2389 23 5 4 6 49.62423 2 +2390 23 6 7 39 93.15055 4 +2391 23 7 8 3 66.05162 2 +2392 23 8 8 1 46.5992 2 +2393 23 9 8 2 48.74446 2 +2394 23 10 8 4 60.50511 2 +2395 23 11 11 39 68.34699 2 +2396 23 12 12 3 101.41908 2 +2397 23 13 12 1 35.67243 2 +2398 23 14 12 2 35.0937 2 +2399 23 15 12 4 30.96685 2 +2400 23 16 12 6 31.87769 2 +2401 23 17 15 39 61.49909 2 +2402 23 18 16 3 38.61036 2 +2403 23 19 16 1 35.38831 2 +2404 23 20 16 2 30.36494 2 +2405 23 21 16 4 27.62296 2 +2406 23 22 16 6 28.63187 2 +2407 23 23 20 3 37.99764 2 +2408 23 24 20 1 34.29518 2 +2409 23 25 20 2 99.93767 2 +2410 23 26 20 4 34.32123 2 +2411 23 27 20 6 27.88882 2 +2412 23 28 24 5 38.31992 2 +2413 23 29 24 3 30.92671 2 +2414 23 30 24 1 33.74907 2 +2415 23 31 24 2 40.00183 2 +2416 23 32 24 4 32.60568 2 +2417 23 33 23 40 58.76601 2 +2418 23 34 27 39 74.13614 2 +2419 23 35 28 5 29.52622 2 +2420 23 36 28 3 38.22933 2 +2421 23 37 28 1 32.57519 2 +2422 23 38 28 2 33.4911 2 +2423 23 39 28 4 36.04094 2 +2424 23 40 32 5 33.52335 2 +2425 23 41 32 3 36.54117 2 +2426 23 42 32 1 32.49433 2 +2427 23 43 32 2 38.85833 2 +2428 23 44 32 4 30.34988 2 +2429 23 45 32 6 29.82211 2 +2430 23 46 35 39 68.07797 4 +2431 23 47 36 3 38.07139 2 +2432 23 48 36 1 38.92055 2 +2433 23 49 36 2 30.07974 2 +2434 23 50 36 4 42.61062 2 +2435 23 51 39 39 61.12777 2 +2436 23 52 39 37 59.32776 2 +2437 23 53 40 3 31.26685 2 +2438 23 54 40 1 29.45254 2 +2439 23 55 40 2 33.00404 2 +2440 23 56 40 4 37.83523 2 +2441 23 57 44 3 52.21989 2 +2442 23 58 44 1 33.21048 2 +2443 23 59 44 2 33.03054 2 +2444 23 60 44 4 32.62479 2 +2445 23 61 43 38 61.16033 2 +2446 23 62 43 40 60.59926 2 +2447 23 63 48 3 97.33919 2 +2448 23 64 48 1 32.09356 2 +2449 23 65 48 2 32.16932 2 +2450 23 66 48 4 35.93726 2 +2451 23 67 47 40 61.82585 2 +2452 23 68 52 5 48.20749 2 +2453 23 69 52 3 40.83196 2 +2454 23 70 52 1 35.07991 2 +2455 23 71 52 2 37.53869 2 +2456 23 72 52 4 43.12882 2 +2457 23 73 52 6 43.05118 2 +2458 23 74 56 3 33.8444 2 +2459 23 75 56 1 30.77263 2 +2460 23 76 56 2 41.2973 2 +2461 23 77 56 4 36.82598 2 +2462 23 78 56 6 28.46461 2 +2463 23 79 55 40 63.63234 2 +2464 23 80 59 39 55.85349 2 +2465 23 81 60 3 26.69793 2 +2466 23 82 60 1 35.95474 2 +2467 23 83 60 2 32.9638 2 +2468 23 84 60 4 31.55173 2 +2469 23 85 60 6 45.61164 2 +2470 23 86 64 5 27.88973 2 +2471 23 87 64 3 40.4497 2 +2472 23 88 64 1 36.90937 2 +2473 23 89 64 2 37.74139 2 +2474 23 90 64 4 35.19507 2 +2475 23 91 68 5 29.23896 2 +2476 23 92 68 3 28.52371 2 +2477 23 93 68 1 33.76404 2 +2478 23 94 68 2 32.45851 2 +2479 23 95 68 4 37.12904 2 +2480 23 96 67 40 61.70516 2 +2481 23 97 72 5 32.18604 2 +2482 23 98 72 3 32.7569 2 +2483 23 99 72 1 32.88691 2 +2484 23 100 72 2 34.31874 2 +2485 23 101 72 4 37.37858 2 +2486 23 102 71 40 87.86669 2 +2487 23 103 76 3 32.56077 2 +2488 23 104 76 1 49.13439 2 +2489 23 105 76 2 43.93583 2 +2490 23 106 76 4 47.11047 2 +2491 23 107 75 40 90.46866 2 +2492 23 108 80 5 50.10258 2 +2493 23 109 80 3 54.86504 2 +2494 23 110 80 1 66.03033 2 +2495 23 111 80 2 58.29613 2 +2496 23 112 80 4 62.18596 2 +2497 23 113 80 6 65.42139 2 +2498 24 0 4 11 85.39124 2 +2499 24 1 4 9 79.86025 2 +2500 24 2 4 7 82.31246 2 +2501 24 3 4 8 73.92355 2 +2502 24 4 4 10 68.60786 2 +2503 24 5 4 12 60.48593 2 +2504 24 6 8 9 73.41319 2 +2505 24 7 8 7 69.47137 4 +2506 24 8 8 5 61.90892 2 +2507 24 9 8 6 60.85531 2 +2508 24 10 8 8 55.9415 2 +2509 24 11 8 10 47.2253 2 +2510 24 12 12 9 56.60769 2 +2511 24 13 12 7 50.90091 2 +2512 24 14 12 5 42.08683 2 +2513 24 15 12 8 42.8179 2 +2514 24 16 12 10 44.50373 2 +2515 24 17 12 12 36.32121 2 +2516 24 18 16 9 43.77557 2 +2517 24 19 16 7 59.48651 2 +2518 24 20 16 5 43.24675 2 +2519 24 21 16 8 40.00215 2 +2520 24 22 16 10 37.94233 2 +2521 24 23 20 9 57.6844 2 +2522 24 24 20 7 49.64151 2 +2523 24 25 20 5 40.59387 2 +2524 24 26 20 8 40.02836 2 +2525 24 27 20 10 38.99629 2 +2526 24 28 20 12 36.20947 2 +2527 24 29 24 11 45.58231 2 +2528 24 30 24 9 49.68278 2 +2529 24 31 24 7 39.64387 2 +2530 24 32 24 6 44.93945 2 +2531 24 33 24 8 41.32915 2 +2532 24 34 24 10 48.11957 2 +2533 24 35 28 11 46.01272 2 +2534 24 36 28 9 41.77264 2 +2535 24 37 28 7 40.10921 2 +2536 24 38 28 6 44.72194 2 +2537 24 39 28 8 37.34342 2 +2538 24 40 28 10 49.24686 2 +2539 24 41 32 9 38.68486 2 +2540 24 42 32 7 49.54498 2 +2541 24 43 32 8 45.95356 2 +2542 24 44 32 10 41.63617 2 +2543 24 45 32 12 41.60911 2 +2544 24 46 36 9 64.23495 2 +2545 24 47 36 7 44.38704 2 +2546 24 48 36 5 53.31602 2 +2547 24 49 36 6 47.87523 2 +2548 24 50 36 8 43.14984 2 +2549 24 51 36 10 49.79364 2 +2550 24 52 40 9 45.49096 2 +2551 24 53 40 7 38.89893 2 +2552 24 54 40 5 38.49616 2 +2553 24 55 40 6 44.29971 2 +2554 24 56 40 8 39.68097 2 +2555 24 57 40 10 50.09503 2 +2556 24 58 44 9 45.9629 2 +2557 24 59 44 7 42.45231 2 +2558 24 60 44 5 40.13192 2 +2559 24 61 44 6 39.41129 2 +2560 24 62 44 8 39.64169 2 +2561 24 63 44 10 46.32829 2 +2562 24 64 48 9 47.85416 2 +2563 24 65 48 7 38.71617 2 +2564 24 66 48 5 44.29896 2 +2565 24 67 48 6 44.50146 2 +2566 24 68 48 8 53.32417 2 +2567 24 69 48 10 68.68265 2 +2568 24 70 52 11 45.87787 2 +2569 24 71 52 9 37.1462 2 +2570 24 72 52 7 46.41852 2 +2571 24 73 52 8 39.88617 2 +2572 24 74 52 10 38.91964 2 +2573 24 75 56 9 48.23207 2 +2574 24 76 56 7 46.43613 2 +2575 24 77 56 5 42.37007 2 +2576 24 78 56 8 42.42464 2 +2577 24 79 56 10 40.27913 2 +2578 24 80 56 12 39.38365 2 +2579 24 81 60 9 45.6225 2 +2580 24 82 60 7 39.20731 2 +2581 24 83 60 5 42.44545 2 +2582 24 84 60 8 39.0974 2 +2583 24 85 60 10 47.83168 2 +2584 24 86 60 12 46.32419 2 +2585 24 87 64 11 36.98512 2 +2586 24 88 64 9 37.71615 2 +2587 24 89 64 7 108.00507 2 +2588 24 90 64 6 42.5265 2 +2589 24 91 64 8 88.06311 2 +2590 24 92 64 10 51.59006 2 +2591 24 93 68 9 40.38932 2 +2592 24 94 68 7 38.66943 2 +2593 24 95 68 6 40.45601 2 +2594 24 96 68 8 53.87908 2 +2595 24 97 68 10 44.19252 2 +2596 24 98 72 11 36.48635 2 +2597 24 99 72 9 39.27775 2 +2598 24 100 72 7 49.48052 2 +2599 24 101 72 6 42.26134 2 +2600 24 102 72 8 44.18908 2 +2601 24 103 72 10 63.89413 2 +2602 24 104 76 9 42.04441 2 +2603 24 105 76 7 53.76703 2 +2604 24 106 76 5 62.25222 2 +2605 24 107 76 6 57.23211 2 +2606 24 108 76 8 74.17939 2 +2607 24 109 76 10 68.20195 2 +2608 24 110 80 11 55.02058 2 +2609 24 111 80 9 69.76685 2 +2610 24 112 80 7 71.54428 2 +2611 24 113 80 8 81.38043 2 +2612 24 114 80 10 77.51752 2 +2613 24 115 80 12 93.77993 2 +2614 25 0 4 17 93.8046 2 +2615 25 1 4 15 95.73576 4 +2616 25 2 4 13 86.59553 2 +2617 25 3 4 14 83.24705 2 +2618 25 4 4 16 71.88336 2 +2619 25 5 4 18 75.33951 2 +2620 25 6 8 15 88.88225 2 +2621 25 7 8 13 70.48356 2 +2622 25 8 8 11 72.32512 4 +2623 25 9 8 12 72.9828 2 +2624 25 10 8 14 66.88885 2 +2625 25 11 8 16 109.92701 2 +2626 25 12 12 15 59.1671 2 +2627 25 13 12 13 56.8193 2 +2628 25 14 12 11 50.54409 2 +2629 25 15 12 14 46.67349 2 +2630 25 16 12 16 47.44488 2 +2631 25 17 16 15 61.83956 2 +2632 25 18 16 13 52.06068 2 +2633 25 19 16 11 52.7401 2 +2634 25 20 16 12 56.70841 2 +2635 25 21 16 14 51.13847 2 +2636 25 22 16 16 47.388 2 +2637 25 23 20 15 59.24543 2 +2638 25 24 20 13 57.5895 4 +2639 25 25 20 11 51.36193 2 +2640 25 26 20 14 49.92636 2 +2641 25 27 20 16 45.74993 2 +2642 25 28 20 18 44.69274 2 +2643 25 29 24 17 69.82908 2 +2644 25 30 24 15 59.39501 2 +2645 25 31 24 13 47.2682 2 +2646 25 32 24 12 50.93112 2 +2647 25 33 24 14 47.60025 2 +2648 25 34 24 16 48.83212 2 +2649 25 35 28 17 56.22651 2 +2650 25 36 28 15 46.92003 2 +2651 25 37 28 13 48.25331 2 +2652 25 38 28 12 49.94313 2 +2653 25 39 28 14 50.52013 2 +2654 25 40 28 16 45.29361 2 +2655 25 41 32 15 60.49848 2 +2656 25 42 32 13 47.50715 2 +2657 25 43 32 11 48.65074 2 +2658 25 44 32 14 58.2033 2 +2659 25 45 32 16 50.79458 2 +2660 25 46 36 15 65.61861 2 +2661 25 47 36 13 48.8844 2 +2662 25 48 36 11 60.94531 2 +2663 25 49 36 12 52.28039 2 +2664 25 50 36 14 48.69352 2 +2665 25 51 36 16 45.48739 2 +2666 25 52 40 15 50.64221 2 +2667 25 53 40 13 47.60955 2 +2668 25 54 40 11 48.98315 2 +2669 25 55 40 12 47.25271 2 +2670 25 56 40 14 56.97939 2 +2671 25 57 40 16 55.24451 2 +2672 25 58 44 15 49.04836 2 +2673 25 59 44 13 49.0135 2 +2674 25 60 44 11 50.6646 2 +2675 25 61 44 12 49.01728 2 +2676 25 62 44 14 63.84098 2 +2677 25 63 44 16 58.71303 2 +2678 25 64 48 15 55.03662 2 +2679 25 65 48 13 46.70147 2 +2680 25 66 48 11 49.66959 2 +2681 25 67 48 12 51.62618 2 +2682 25 68 48 14 49.65839 2 +2683 25 69 48 16 55.19248 2 +2684 25 70 52 15 46.18439 2 +2685 25 71 52 13 51.32666 2 +2686 25 72 52 12 50.88979 2 +2687 25 73 52 14 47.55912 2 +2688 25 74 52 16 53.97026 2 +2689 25 75 56 15 48.58248 2 +2690 25 76 56 13 48.46595 2 +2691 25 77 56 11 48.19798 2 +2692 25 78 56 14 53.25342 2 +2693 25 79 56 16 47.56993 2 +2694 25 80 56 18 56.69318 2 +2695 25 81 60 15 46.41187 2 +2696 25 82 60 13 47.5239 2 +2697 25 83 60 11 53.55425 2 +2698 25 84 60 14 49.64151 2 +2699 25 85 60 16 49.06619 2 +2700 25 86 60 18 62.99771 2 +2701 25 87 64 17 46.56611 2 +2702 25 88 64 15 46.36979 2 +2703 25 89 64 13 50.11418 2 +2704 25 90 64 12 55.20812 4 +2705 25 91 64 14 59.87654 2 +2706 25 92 64 16 62.05975 2 +2707 25 93 68 15 48.51633 2 +2708 25 94 68 13 100.38101 2 +2709 25 95 68 11 57.74057 2 +2710 25 96 68 12 61.93646 2 +2711 25 97 68 14 56.27968 2 +2712 25 98 68 16 73.29282 2 +2713 25 99 72 15 47.36346 2 +2714 25 100 72 13 51.37801 2 +2715 25 101 72 12 50.38159 2 +2716 25 102 72 14 59.28474 2 +2717 25 103 72 16 56.76344 2 +2718 25 104 76 15 49.81469 2 +2719 25 105 76 13 61.69091 2 +2720 25 106 76 11 68.41158 2 +2721 25 107 76 12 81.32277 2 +2722 25 108 76 14 70.85832 2 +2723 25 109 76 16 95.38416 2 +2724 25 110 80 17 70.54117 2 +2725 25 111 80 15 74.16815 2 +2726 25 112 80 13 89.02601 2 +2727 25 113 80 14 87.64732 4 +2728 25 114 80 16 85.68164 2 +2729 25 115 80 18 95.08784 2 +2730 26 0 4 23 98.93595 2 +2731 26 1 4 21 93.91775 2 +2732 26 2 4 19 92.35582 2 +2733 26 3 4 20 99.06268 2 +2734 26 4 4 22 80.02553 2 +2735 26 5 8 21 102.23959 4 +2736 26 6 8 19 89.39604 2 +2737 26 7 8 17 89.25705 4 +2738 26 8 8 18 79.16469 2 +2739 26 9 8 20 73.64455 2 +2740 26 10 8 22 67.9335 2 +2741 26 11 12 21 77.87857 2 +2742 26 12 12 19 72.2597 2 +2743 26 13 12 17 59.1963 2 +2744 26 14 12 18 67.02393 2 +2745 26 15 12 20 56.0546 2 +2746 26 16 12 22 55.02569 2 +2747 26 17 16 21 72.76047 2 +2748 26 18 16 19 58.53962 2 +2749 26 19 16 17 60.09934 2 +2750 26 20 16 18 72.49055 2 +2751 26 21 16 20 53.43031 2 +2752 26 22 16 22 54.98993 2 +2753 26 23 20 21 77.39152 2 +2754 26 24 20 19 60.62447 2 +2755 26 25 20 17 59.09683 2 +2756 26 26 20 20 61.92523 2 +2757 26 27 20 22 54.14714 2 +2758 26 28 20 24 53.30307 2 +2759 26 29 24 23 70.94764 2 +2760 26 30 24 21 55.72355 2 +2761 26 31 24 19 56.58973 2 +2762 26 32 24 18 58.07225 2 +2763 26 33 24 20 56.52606 2 +2764 26 34 24 22 68.89414 2 +2765 26 35 28 21 57.30434 2 +2766 26 36 28 19 56.5479 2 +2767 26 37 28 18 60.91209 2 +2768 26 38 28 20 56.06228 2 +2769 26 39 28 22 55.19238 2 +2770 26 40 32 21 64.53661 2 +2771 26 41 32 19 63.621 2 +2772 26 42 32 17 57.12329 2 +2773 26 43 32 18 63.75997 2 +2774 26 44 32 20 53.99112 2 +2775 26 45 32 22 62.99176 2 +2776 26 46 36 21 67.65821 4 +2777 26 47 36 19 57.35103 2 +2778 26 48 36 17 58.17967 2 +2779 26 49 36 18 61.6088 2 +2780 26 50 36 20 66.7888 2 +2781 26 51 36 22 56.824 2 +2782 26 52 40 21 64.54111 2 +2783 26 53 40 19 54.65712 2 +2784 26 54 40 17 55.5245 2 +2785 26 55 40 18 57.57983 2 +2786 26 56 40 20 57.11328 2 +2787 26 57 40 22 58.15834 2 +2788 26 58 44 21 57.78341 2 +2789 26 59 44 19 60.26818 2 +2790 26 60 44 17 60.10456 2 +2791 26 61 44 18 57.89155 2 +2792 26 62 44 20 64.67392 2 +2793 26 63 44 22 69.10494 2 +2794 26 64 48 21 71.48287 2 +2795 26 65 48 19 55.99531 2 +2796 26 66 48 17 57.10966 2 +2797 26 67 48 18 58.80982 2 +2798 26 68 48 20 59.12972 2 +2799 26 69 48 22 67.04589 2 +2800 26 70 52 21 72.62918 2 +2801 26 71 52 19 56.43349 2 +2802 26 72 52 17 60.85108 2 +2803 26 73 52 18 56.4535 2 +2804 26 74 52 20 59.7036 2 +2805 26 75 52 22 64.12453 2 +2806 26 76 56 21 56.10006 2 +2807 26 77 56 19 56.5186 2 +2808 26 78 56 17 58.27118 2 +2809 26 79 56 20 55.26201 2 +2810 26 80 56 22 58.09775 2 +2811 26 81 60 21 53.41999 2 +2812 26 82 60 19 56.01303 2 +2813 26 83 60 17 56.96461 2 +2814 26 84 60 20 55.44868 2 +2815 26 85 60 22 58.48516 2 +2816 26 86 60 24 57.0388 2 +2817 26 87 64 23 57.94774 2 +2818 26 88 64 21 52.26259 2 +2819 26 89 64 19 56.98005 2 +2820 26 90 64 18 57.45 2 +2821 26 91 64 20 64.17547 2 +2822 26 92 64 22 65.20377 2 +2823 26 93 68 21 56.31592 2 +2824 26 94 68 19 56.61287 2 +2825 26 95 68 17 61.59264 2 +2826 26 96 68 18 61.29753 2 +2827 26 97 68 20 64.57474 2 +2828 26 98 68 22 66.67537 2 +2829 26 99 72 21 56.14239 2 +2830 26 100 72 19 60.58603 2 +2831 26 101 72 17 72.55691 2 +2832 26 102 72 18 59.12941 2 +2833 26 103 72 20 61.33095 2 +2834 26 104 72 22 79.58542 2 +2835 26 105 76 21 65.33929 2 +2836 26 106 76 19 74.46331 2 +2837 26 107 76 17 79.58365 2 +2838 26 108 76 18 79.22639 2 +2839 26 109 76 20 95.71105 4 +2840 26 110 76 22 87.09166 2 +2841 26 111 80 21 84.39489 2 +2842 26 112 80 19 91.70002 2 +2843 26 113 80 20 93.82442 2 +2844 26 114 80 22 92.69284 2 +2845 26 115 80 24 101.09316 2 +2846 27 0 4 29 106.52357 2 +2847 27 1 4 27 107.15521 4 +2848 27 2 4 25 106.6373 2 +2849 27 3 4 24 109.89688 2 +2850 27 4 4 26 96.03514 2 +2851 27 5 4 28 94.36563 2 +2852 27 6 8 27 105.36806 4 +2853 27 7 8 25 96.17763 4 +2854 27 8 8 23 92.67097 4 +2855 27 9 8 24 91.42277 2 +2856 27 10 8 26 80.46561 2 +2857 27 11 8 28 77.206 2 +2858 27 12 12 27 82.68492 4 +2859 27 13 12 25 77.4411 2 +2860 27 14 12 23 72.21746 2 +2861 27 15 12 24 68.71218 2 +2862 27 16 12 26 64.68351 2 +2863 27 17 12 28 63.42568 2 +2864 27 18 16 27 84.50802 2 +2865 27 19 16 25 66.7404 2 +2866 27 20 16 23 68.74588 2 +2867 27 21 16 24 67.63323 2 +2868 27 22 16 26 61.7996 2 +2869 27 23 16 28 61.45866 2 +2870 27 24 20 27 76.7798 2 +2871 27 25 20 25 74.26462 2 +2872 27 26 20 23 66.27545 2 +2873 27 27 20 26 64.70966 2 +2874 27 28 20 28 62.89193 2 +2875 27 29 20 30 71.91501 2 +2876 27 30 24 27 74.38146 4 +2877 27 31 24 25 66.24041 2 +2878 27 32 24 24 65.6603 2 +2879 27 33 24 26 77.91935 2 +2880 27 34 24 28 63.68367 2 +2881 27 35 28 27 83.43135 2 +2882 27 36 28 25 67.81319 2 +2883 27 37 28 23 69.8677 2 +2884 27 38 28 24 69.79226 2 +2885 27 39 28 26 61.78483 2 +2886 27 40 28 28 63.02743 2 +2887 27 41 32 27 73.21508 2 +2888 27 42 32 25 78.45378 2 +2889 27 43 32 23 65.23343 2 +2890 27 44 32 24 72.1967 2 +2891 27 45 32 26 62.39832 2 +2892 27 46 32 28 64.24521 2 +2893 27 47 36 27 74.91778 4 +2894 27 48 36 25 65.95396 2 +2895 27 49 36 23 65.78245 2 +2896 27 50 36 24 66.58682 2 +2897 27 51 36 26 62.50454 2 +2898 27 52 36 28 68.24171 2 +2899 27 53 40 27 72.43636 2 +2900 27 54 40 25 64.27699 2 +2901 27 55 40 23 63.71283 2 +2902 27 56 40 24 63.93649 2 +2903 27 57 40 26 64.57007 2 +2904 27 58 40 28 66.33252 2 +2905 27 59 44 27 64.21121 2 +2906 27 60 44 25 64.18944 2 +2907 27 61 44 23 67.67985 2 +2908 27 62 44 24 64.92502 2 +2909 27 63 44 26 67.19458 2 +2910 27 64 44 28 73.4147 2 +2911 27 65 48 27 71.49138 2 +2912 27 66 48 25 62.80738 2 +2913 27 67 48 23 65.12103 2 +2914 27 68 48 24 66.14148 2 +2915 27 69 48 26 68.68854 2 +2916 27 70 48 28 73.37969 2 +2917 27 71 52 27 75.69617 2 +2918 27 72 52 25 64.15654 2 +2919 27 73 52 23 67.37626 2 +2920 27 74 52 24 68.44191 2 +2921 27 75 52 26 75.29949 4 +2922 27 76 52 28 75.23335 4 +2923 27 77 56 27 66.98037 2 +2924 27 78 56 25 64.81919 2 +2925 27 79 56 23 73.94089 2 +2926 27 80 56 24 64.99726 2 +2927 27 81 56 26 68.20266 2 +2928 27 82 56 28 81.99028 4 +2929 27 83 60 27 61.66599 2 +2930 27 84 60 25 63.27496 2 +2931 27 85 60 23 65.13828 2 +2932 27 86 60 26 65.97204 2 +2933 27 87 60 28 66.4397 2 +2934 27 88 64 29 64.54232 2 +2935 27 89 64 27 60.88746 2 +2936 27 90 64 25 63.3826 2 +2937 27 91 64 24 68.14398 2 +2938 27 92 64 26 74.24542 4 +2939 27 93 64 28 76.80891 4 +2940 27 94 68 27 63.38156 2 +2941 27 95 68 25 62.92865 2 +2942 27 96 68 23 65.65994 2 +2943 27 97 68 24 70.35578 2 +2944 27 98 68 26 66.58053 2 +2945 27 99 68 28 81.80469 2 +2946 27 100 72 27 63.19173 2 +2947 27 101 72 25 67.0689 2 +2948 27 102 72 23 72.36028 2 +2949 27 103 72 24 68.88411 2 +2950 27 104 72 26 76.96557 2 +2951 27 105 72 28 81.78421 4 +2952 27 106 76 27 78.04319 2 +2953 27 107 76 25 82.99319 2 +2954 27 108 76 23 89.70109 4 +2955 27 109 76 24 87.72286 2 +2956 27 110 76 26 97.8813 2 +2957 27 111 76 28 96.52807 2 +2958 27 112 80 27 93.66612 2 +2959 27 113 80 25 100.59124 2 +2960 27 114 80 23 104.00127 2 +2961 27 115 80 26 105.96507 2 +2962 27 116 80 28 107.37998 2 +2963 27 117 80 30 108.62174 2 +2964 28 0 4 35 108.73743 2 +2965 28 1 4 33 105.9988 2 +2966 28 2 4 31 109.4986 4 +2967 28 3 4 30 111.58585 2 +2968 28 4 4 32 101.62604 2 +2969 28 5 4 34 99.36226 2 +2970 28 6 8 33 109.57234 4 +2971 28 7 8 31 99.60564 2 +2972 28 8 8 29 99.49628 2 +2973 28 9 8 30 102.70289 2 +2974 28 10 8 32 91.04899 2 +2975 28 11 8 34 80.45325 2 +2976 28 12 12 33 91.79529 2 +2977 28 13 12 31 86.74644 2 +2978 28 14 12 29 76.66081 2 +2979 28 15 12 30 81.30857 2 +2980 28 16 12 32 72.09619 2 +2981 28 17 12 34 74.78235 2 +2982 28 18 16 33 87.296 2 +2983 28 19 16 31 82.86088 2 +2984 28 20 16 29 80.84176 2 +2985 28 21 16 30 73.56065 2 +2986 28 22 16 32 72.20474 2 +2987 28 23 16 34 68.47808 2 +2988 28 24 20 33 80.47305 2 +2989 28 25 20 31 84.03099 2 +2990 28 26 20 29 74.02247 2 +2991 28 27 20 32 71.86714 2 +2992 28 28 20 34 74.27919 2 +2993 28 29 24 33 91.10033 2 +2994 28 30 24 31 87.35753 4 +2995 28 31 24 29 76.67701 2 +2996 28 32 24 30 74.31336 2 +2997 28 33 24 32 73.05967 2 +2998 28 34 24 34 80.69131 4 +2999 28 35 28 33 88.25214 2 +3000 28 36 28 31 76.16078 2 +3001 28 37 28 29 75.88529 2 +3002 28 38 28 30 83.53217 2 +3003 28 39 28 32 70.19723 2 +3004 28 40 28 34 71.87094 2 +3005 28 41 32 33 85.76078 2 +3006 28 42 32 31 73.25329 2 +3007 28 43 32 29 75.28519 2 +3008 28 44 32 30 79.0703 4 +3009 28 45 32 32 69.92955 2 +3010 28 46 32 34 74.66373 2 +3011 28 47 36 33 87.34454 2 +3012 28 48 36 31 73.33389 2 +3013 28 49 36 29 72.99343 2 +3014 28 50 36 30 74.6701 2 +3015 28 51 36 32 71.74942 2 +3016 28 52 36 34 81.26535 2 +3017 28 53 40 33 81.73443 4 +3018 28 54 40 31 78.26851 2 +3019 28 55 40 29 72.47952 2 +3020 28 56 40 30 72.82467 2 +3021 28 57 40 32 81.56096 2 +3022 28 58 40 34 74.60423 2 +3023 28 59 44 33 73.44983 2 +3024 28 60 44 31 72.84066 2 +3025 28 61 44 29 72.81924 2 +3026 28 62 44 30 72.74804 2 +3027 28 63 44 32 71.46703 2 +3028 28 64 44 34 80.95613 4 +3029 28 65 48 33 84.35308 2 +3030 28 66 48 31 72.33296 2 +3031 28 67 48 29 99.74374 2 +3032 28 68 48 30 73.38402 2 +3033 28 69 48 32 78.96681 2 +3034 28 70 48 34 84.77321 2 +3035 28 71 52 33 71.30306 2 +3036 28 72 52 31 73.50458 2 +3037 28 73 52 29 73.16998 2 +3038 28 74 52 30 112.43164 2 +3039 28 75 52 32 81.60143 4 +3040 28 76 52 34 85.63614 2 +3041 28 77 56 33 71.71728 2 +3042 28 78 56 31 71.73232 2 +3043 28 79 56 29 79.77135 2 +3044 28 80 56 30 75.782 2 +3045 28 81 56 32 75.72977 2 +3046 28 82 56 34 92.27672 2 +3047 28 83 60 33 69.84801 2 +3048 28 84 60 31 72.0367 2 +3049 28 85 60 29 74.51846 2 +3050 28 86 60 30 76.41547 2 +3051 28 87 60 32 84.35071 4 +3052 28 88 60 34 90.08891 2 +3053 28 89 64 33 73.42132 2 +3054 28 90 64 31 69.4805 2 +3055 28 91 64 30 76.62145 2 +3056 28 92 64 32 90.71159 2 +3057 28 93 64 34 86.05636 2 +3058 28 94 68 33 68.4785 2 +3059 28 95 68 31 70.97888 2 +3060 28 96 68 29 83.19893 2 +3061 28 97 68 30 80.6996 2 +3062 28 98 68 32 75.159 2 +3063 28 99 68 34 80.36258 2 +3064 28 100 72 33 68.76362 2 +3065 28 101 72 31 76.97222 2 +3066 28 102 72 29 83.18263 2 +3067 28 103 72 30 75.4601 2 +3068 28 104 72 32 86.34683 2 +3069 28 105 72 34 86.39324 2 +3070 28 106 76 33 88.45948 4 +3071 28 107 76 31 85.589 2 +3072 28 108 76 29 92.67302 2 +3073 28 109 76 30 97.16646 2 +3074 28 110 76 32 102.10178 4 +3075 28 111 76 34 108.31992 2 +3076 28 112 80 33 99.10502 2 +3077 28 113 80 31 103.97462 2 +3078 28 114 80 29 112.08329 2 +3079 28 115 80 32 107.24494 4 +3080 28 116 80 34 113.67959 4 +3081 28 117 80 36 112.06373 4 +3082 29 0 4 39 110.80987 2 +3083 29 1 4 37 113.26903 4 +3084 29 2 4 36 110.86976 4 +3085 29 3 4 38 110.34537 2 +3086 29 4 4 40 109.96111 2 +3087 29 5 8 39 107.85968 2 +3088 29 6 8 37 109.00092 4 +3089 29 7 8 35 111.34988 4 +3090 29 8 8 36 109.8584 4 +3091 29 9 8 38 111.40725 2 +3092 29 10 8 40 94.48074 2 +3093 29 11 12 39 99.13998 2 +3094 29 12 12 37 96.43742 2 +3095 29 13 12 35 98.50704 2 +3096 29 14 12 36 94.58418 2 +3097 29 15 12 38 83.98474 2 +3098 29 16 12 40 80.20915 2 +3099 29 17 16 39 98.9945 2 +3100 29 18 16 37 97.82812 2 +3101 29 19 16 35 82.57518 2 +3102 29 20 16 36 84.90994 2 +3103 29 21 16 38 82.7731 2 +3104 29 22 16 40 79.03977 2 +3105 29 23 20 39 99.28812 2 +3106 29 24 20 37 90.44073 2 +3107 29 25 20 35 93.07514 4 +3108 29 26 20 36 83.74982 2 +3109 29 27 20 38 78.92986 2 +3110 29 28 20 40 75.7442 2 +3111 29 29 24 39 97.21189 2 +3112 29 30 24 37 90.68201 4 +3113 29 31 24 35 84.12138 2 +3114 29 32 24 36 82.30319 2 +3115 29 33 24 38 80.17472 2 +3116 29 34 24 40 76.23891 2 +3117 29 35 28 39 90.151 2 +3118 29 36 28 37 94.20909 2 +3119 29 37 28 35 90.84894 2 +3120 29 38 28 36 87.50113 2 +3121 29 39 28 38 79.69378 2 +3122 29 40 28 40 79.04792 2 +3123 29 41 32 39 96.01607 2 +3124 29 42 32 37 80.06271 2 +3125 29 43 32 35 82.85801 2 +3126 29 44 32 36 80.82219 2 +3127 29 45 32 38 79.78122 2 +3128 29 46 32 40 81.63766 2 +3129 29 47 36 39 92.65544 2 +3130 29 48 36 37 90.82397 2 +3131 29 49 36 35 81.57126 2 +3132 29 50 36 36 82.33005 2 +3133 29 51 36 38 76.76776 2 +3134 29 52 36 40 94.18635 2 +3135 29 53 40 39 86.88041 2 +3136 29 54 40 37 82.206 2 +3137 29 55 40 35 86.23866 2 +3138 29 56 40 36 80.70979 2 +3139 29 57 40 38 93.12625 2 +3140 29 58 40 40 82.26973 2 +3141 29 59 44 39 79.20367 2 +3142 29 60 44 37 81.82068 2 +3143 29 61 44 35 81.77884 4 +3144 29 62 44 36 81.33551 2 +3145 29 63 44 38 80.87226 2 +3146 29 64 44 40 82.39351 2 +3147 29 65 48 39 78.36642 2 +3148 29 66 48 37 81.01044 2 +3149 29 67 48 35 80.17557 2 +3150 29 68 48 36 81.85224 2 +3151 29 69 48 38 81.44283 2 +3152 29 70 48 40 90.08846 2 +3153 29 71 52 39 77.59771 2 +3154 29 72 52 37 80.24152 2 +3155 29 73 52 35 83.31505 2 +3156 29 74 52 36 83.76795 2 +3157 29 75 52 38 81.28693 2 +3158 29 76 52 40 94.565 2 +3159 29 77 56 39 78.93782 2 +3160 29 78 56 37 78.52517 2 +3161 29 79 56 35 89.21222 2 +3162 29 80 56 36 83.30618 2 +3163 29 81 56 38 94.23699 2 +3164 29 82 56 40 89.86967 2 +3165 29 83 60 39 75.71091 2 +3166 29 84 60 37 79.293 2 +3167 29 85 60 35 82.24906 2 +3168 29 86 60 36 84.72289 2 +3169 29 87 60 38 84.26098 2 +3170 29 88 60 40 92.43424 2 +3171 29 89 64 39 79.26388 2 +3172 29 90 64 37 77.76624 2 +3173 29 91 64 35 85.5859 2 +3174 29 92 64 36 95.64382 4 +3175 29 93 64 38 94.73234 2 +3176 29 94 64 40 100.47554 2 +3177 29 95 68 39 79.70604 2 +3178 29 96 68 37 81.80344 2 +3179 29 97 68 35 85.70025 2 +3180 29 98 68 36 82.03887 2 +3181 29 99 68 38 94.60055 2 +3182 29 100 68 40 95.47272 2 +3183 29 101 72 39 76.68804 2 +3184 29 102 72 37 82.61925 2 +3185 29 103 72 35 90.36061 2 +3186 29 104 72 36 93.71859 2 +3187 29 105 72 38 99.5381 2 +3188 29 106 72 40 94.13219 2 +3189 29 107 76 39 94.22879 2 +3190 29 108 76 37 98.45006 2 +3191 29 109 76 35 105.35193 2 +3192 29 110 76 36 94.21158 2 +3193 29 111 76 38 111.73912 4 +3194 29 112 76 40 103.46997 2 +3195 29 113 80 39 113.38438 2 +3196 29 114 80 37 96.18448 2 +3197 29 115 80 35 113.4507 4 +3198 29 116 80 38 111.2533 3 +3199 29 117 80 40 109.87314 2 diff --git a/Detectors/TPC/base/files/LENGTH-OROC3.txt b/Detectors/TPC/base/files/LENGTH-OROC3.txt new file mode 100644 index 0000000000000..5f16b81b33bd4 --- /dev/null +++ b/Detectors/TPC/base/files/LENGTH-OROC3.txt @@ -0,0 +1,3200 @@ +0 0 0 1 5 114.58513 2 +1 0 1 1 3 111.62347 2 +2 0 2 1 1 107.05054 2 +3 0 3 1 2 109.07558 2 +4 0 4 1 4 107.39219 2 +5 0 5 1 6 108.21686 2 +6 0 6 5 5 106.69568 2 +7 0 7 5 3 104.70059 2 +8 0 8 5 1 106.16396 2 +9 0 9 5 2 112.97545 2 +10 0 10 5 4 109.86593 2 +11 0 11 5 6 113.25175 2 +12 0 12 9 5 109.46447 2 +13 0 13 9 3 110.34165 2 +14 0 14 9 1 111.41756 2 +15 0 15 9 2 106.1737 2 +16 0 16 9 4 115.58794 4 +17 0 17 9 6 114.7662 2 +18 0 18 13 5 108.76961 2 +19 0 19 13 3 107.79706 2 +20 0 20 13 1 108.80507 2 +21 0 21 13 2 107.86731 2 +22 0 22 13 4 112.40788 2 +23 0 23 13 6 115.96705 2 +24 0 24 17 5 106.39049 2 +25 0 25 17 3 106.29825 2 +26 0 26 17 1 108.15379 2 +27 0 27 17 2 106.70514 2 +28 0 28 17 4 109.4446 2 +29 0 29 17 6 114.34823 2 +30 0 30 21 5 105.32471 2 +31 0 31 21 3 109.23021 2 +32 0 32 21 1 106.19112 2 +33 0 33 21 2 107.84571 2 +34 0 34 21 4 111.2126 2 +35 0 35 25 5 107.9117 2 +36 0 36 25 3 104.08081 2 +37 0 37 25 1 108.0094 2 +38 0 38 25 2 104.6241 2 +39 0 39 25 4 109.8199 2 +40 0 40 25 6 112.47804 2 +41 0 41 29 5 106.61834 2 +42 0 42 29 3 111.48735 3 +43 0 43 29 1 104.3669 2 +44 0 44 29 2 102.64014 2 +45 0 45 29 4 107.14092 2 +46 0 46 29 6 112.80961 2 +47 0 47 33 5 107.30606 2 +48 0 48 33 3 103.95552 2 +49 0 49 33 1 109.22927 2 +50 0 50 33 2 101.93445 2 +51 0 51 33 4 107.00428 2 +52 0 52 33 6 110.80057 2 +53 0 53 37 5 110.5005 2 +54 0 54 37 3 105.83289 2 +55 0 55 37 1 104.2996 2 +56 0 56 37 2 105.07072 2 +57 0 57 37 4 105.80608 2 +58 0 58 37 6 108.21548 2 +59 0 59 41 5 108.26468 2 +60 0 60 41 3 105.87101 2 +61 0 61 41 1 103.80617 2 +62 0 62 41 2 105.41928 2 +63 0 63 41 4 104.83456 2 +64 0 64 41 6 108.97099 2 +65 0 65 45 5 111.5159 2 +66 0 66 45 3 105.83991 2 +67 0 67 45 1 103.85933 2 +68 0 68 45 2 101.66406 2 +69 0 69 45 4 110.42389 2 +70 0 70 45 6 107.42189 2 +71 0 71 49 5 110.13953 2 +72 0 72 49 3 111.52933 2 +73 0 73 49 1 101.46486 2 +74 0 74 49 2 104.41421 2 +75 0 75 49 4 105.49178 2 +76 0 76 49 6 105.88864 2 +77 0 77 53 5 110.74102 2 +78 0 78 53 3 109.34681 2 +79 0 79 53 1 107.43037 2 +80 0 80 53 2 104.05644 2 +81 0 81 53 4 106.47509 2 +82 0 82 53 6 108.081 2 +83 0 83 57 3 113.08776 2 +84 0 84 57 1 107.67714 2 +85 0 85 57 2 108.46762 2 +86 0 86 57 4 108.24488 2 +87 0 87 57 6 103.77419 2 +88 0 88 61 5 114.34864 2 +89 0 89 61 3 109.44502 2 +90 0 90 61 1 111.25271 2 +91 0 91 61 2 108.17801 2 +92 0 92 61 4 113.25973 2 +93 0 93 61 6 107.31669 2 +94 0 94 65 5 113.30662 2 +95 0 95 65 3 110.1436 2 +96 0 96 65 1 115.01258 2 +97 0 97 65 2 107.03019 2 +98 0 98 65 4 108.96715 2 +99 0 99 65 6 107.70468 2 +100 0 100 69 5 114.46901 2 +101 0 101 69 3 112.62637 2 +102 0 102 69 1 106.39231 2 +103 0 103 69 2 107.52191 2 +104 0 104 69 4 105.11332 2 +105 0 105 69 6 105.20051 2 +106 0 106 73 5 115.28973 4 +107 0 107 73 3 109.5416 2 +108 0 108 73 1 111.1938 2 +109 0 109 73 2 105.23094 2 +110 0 110 73 4 104.11001 2 +111 0 111 73 6 105.19562 2 +112 0 112 77 5 106.14389 2 +113 0 113 77 3 106.57454 2 +114 0 114 77 1 109.4641 2 +115 0 115 77 2 105.92865 2 +116 0 116 77 4 110.32302 2 +117 0 117 77 6 113.83627 2 +118 1 0 1 11 110.8657 2 +119 1 1 1 9 101.57055 2 +120 1 2 1 7 96.44939 2 +121 1 3 1 8 107.90001 2 +122 1 4 1 10 95.75839 2 +123 1 5 1 12 94.39763 2 +124 1 6 5 11 94.63485 2 +125 1 7 5 9 97.12891 2 +126 1 8 5 7 94.4015 2 +127 1 9 5 8 101.10192 2 +128 1 10 5 10 100.77394 2 +129 1 11 5 12 105.70185 4 +130 1 12 9 11 96.63668 2 +131 1 13 9 9 98.2336 2 +132 1 14 9 7 103.23099 2 +133 1 15 9 8 101.19954 2 +134 1 16 9 10 109.2982 4 +135 1 17 13 11 99.71934 2 +136 1 18 13 9 96.84161 2 +137 1 19 13 7 93.47266 2 +138 1 20 13 8 94.26028 2 +139 1 21 13 10 106.61631 2 +140 1 22 13 12 110.21176 4 +141 1 23 17 11 92.90873 2 +142 1 24 17 9 96.93753 2 +143 1 25 17 7 92.98145 2 +144 1 26 17 8 94.88363 2 +145 1 27 17 10 112.72886 4 +146 1 28 17 12 108.78666 2 +147 1 29 21 11 94.98026 2 +148 1 30 21 9 95.60635 2 +149 1 31 21 7 95.38686 2 +150 1 32 21 6 95.63871 2 +151 1 33 21 8 95.74943 2 +152 1 34 21 10 114.84458 4 +153 1 35 25 11 96.50186 2 +154 1 36 25 9 93.55037 2 +155 1 37 25 7 100.7829 2 +156 1 38 25 8 95.95737 2 +157 1 39 25 10 97.75199 2 +158 1 40 25 12 101.12177 2 +159 1 41 29 11 104.06825 4 +160 1 42 29 9 95.71662 2 +161 1 43 29 7 93.60154 2 +162 1 44 29 8 93.50723 2 +163 1 45 29 10 96.40873 2 +164 1 46 29 12 99.71839 2 +165 1 47 33 11 107.73441 2 +166 1 48 33 9 99.55549 2 +167 1 49 33 7 96.99675 2 +168 1 50 33 8 95.54252 2 +169 1 51 33 10 94.1822 2 +170 1 52 33 12 99.90073 2 +171 1 53 37 11 97.85342 2 +172 1 54 37 9 93.71148 2 +173 1 55 37 7 93.44764 2 +174 1 56 37 8 94.95665 2 +175 1 57 37 10 94.9724 2 +176 1 58 37 12 105.32916 4 +177 1 59 41 11 111.08135 2 +178 1 60 41 9 95.84022 2 +179 1 61 41 7 94.04778 2 +180 1 62 41 8 94.05729 2 +181 1 63 41 10 93.8896 2 +182 1 64 41 12 98.24205 2 +183 1 65 45 11 104.9261 2 +184 1 66 45 9 95.42126 2 +185 1 67 45 7 94.83781 2 +186 1 68 45 8 92.14835 2 +187 1 69 45 10 99.5591 2 +188 1 70 45 12 95.66335 2 +189 1 71 49 11 109.36854 2 +190 1 72 49 9 101.04981 2 +191 1 73 49 7 94.39783 2 +192 1 74 49 8 93.18696 2 +193 1 75 49 10 97.05202 3 +194 1 76 49 12 95.31085 2 +195 1 77 53 11 106.95838 2 +196 1 78 53 9 104.63019 2 +197 1 79 53 7 97.43289 2 +198 1 80 53 8 92.23836 2 +199 1 81 53 10 95.07852 2 +200 1 82 53 12 103.14191 2 +201 1 83 57 9 112.70484 2 +202 1 84 57 7 101.7904 2 +203 1 85 57 5 91.5231 2 +204 1 86 57 8 92.71095 2 +205 1 87 57 10 96.95802 2 +206 1 88 57 12 93.44459 2 +207 1 89 61 11 107.46434 2 +208 1 90 61 9 102.99213 2 +209 1 91 61 7 94.19043 2 +210 1 92 61 8 95.72221 2 +211 1 93 61 10 94.11854 2 +212 1 94 61 12 95.08233 2 +213 1 95 65 11 111.60748 4 +214 1 96 65 9 108.02071 2 +215 1 97 65 7 96.7597 2 +216 1 98 65 8 101.11357 2 +217 1 99 65 10 95.09074 2 +218 1 100 65 12 93.87777 2 +219 1 101 69 9 105.83233 2 +220 1 102 69 7 98.73392 2 +221 1 103 69 8 106.54844 2 +222 1 104 69 10 98.22143 2 +223 1 105 69 12 103.25078 2 +224 1 106 73 11 110.56551 4 +225 1 107 73 9 105.56474 2 +226 1 108 73 7 102.42867 2 +227 1 109 73 8 104.53505 2 +228 1 110 73 10 95.00429 2 +229 1 111 73 12 98.29768 2 +230 1 112 77 11 100.80268 2 +231 1 113 77 9 95.56448 2 +232 1 114 77 7 106.08188 2 +233 1 115 77 8 103.74102 2 +234 1 116 77 10 107.55931 2 +235 1 117 77 12 101.48058 2 +236 2 0 1 17 114.72012 4 +237 2 1 1 15 105.39226 2 +238 2 2 1 13 102.47937 4 +239 2 3 1 14 101.58542 4 +240 2 4 1 16 91.91214 2 +241 2 5 1 18 87.38788 2 +242 2 6 5 17 89.51932 2 +243 2 7 5 15 86.2545 2 +244 2 8 5 13 83.01544 2 +245 2 9 5 14 85.07377 2 +246 2 10 5 16 94.94436 2 +247 2 11 5 18 90.21921 2 +248 2 12 9 17 84.0034 2 +249 2 13 9 15 85.33067 2 +250 2 14 9 13 93.90463 4 +251 2 15 9 12 86.1667 2 +252 2 16 9 14 96.37571 2 +253 2 17 9 16 106.59042 2 +254 2 18 13 17 87.06326 2 +255 2 19 13 15 84.09992 2 +256 2 20 13 13 82.95081 2 +257 2 21 13 14 84.77541 2 +258 2 22 13 16 103.66523 4 +259 2 23 13 18 104.28729 2 +260 2 24 17 17 82.83871 2 +261 2 25 17 15 82.44824 2 +262 2 26 17 13 85.56586 2 +263 2 27 17 14 98.50097 2 +264 2 28 17 16 102.73237 4 +265 2 29 17 18 103.86025 4 +266 2 30 21 17 84.45099 2 +267 2 31 21 15 83.38927 2 +268 2 32 21 13 83.48432 2 +269 2 33 21 12 81.75099 2 +270 2 34 21 14 83.77983 2 +271 2 35 21 16 90.42774 2 +272 2 36 25 17 86.38193 2 +273 2 37 25 15 83.55433 2 +274 2 38 25 13 86.57388 2 +275 2 39 25 14 85.82913 2 +276 2 40 25 16 96.9191 4 +277 2 41 25 18 95.48573 2 +278 2 42 29 17 85.02806 2 +279 2 43 29 15 82.64732 2 +280 2 44 29 13 82.23956 2 +281 2 45 29 14 81.48283 2 +282 2 46 29 16 86.57388 2 +283 2 47 29 18 100.06711 4 +284 2 48 33 17 85.01098 2 +285 2 49 33 15 83.74398 2 +286 2 50 33 13 83.60941 2 +287 2 51 33 14 83.60455 2 +288 2 52 33 16 92.60338 2 +289 2 53 33 18 95.4822 2 +290 2 54 37 17 92.36332 2 +291 2 55 37 15 83.12552 2 +292 2 56 37 13 86.39719 2 +293 2 57 37 14 84.26721 2 +294 2 58 37 16 83.83864 2 +295 2 59 37 18 95.25885 4 +296 2 60 41 17 100.26589 2 +297 2 61 41 15 84.34966 2 +298 2 62 41 13 83.38354 2 +299 2 63 41 14 84.47112 2 +300 2 64 41 16 82.94675 2 +301 2 65 41 18 86.83261 2 +302 2 66 45 17 97.85949 4 +303 2 67 45 15 92.31298 2 +304 2 68 45 13 82.3089 2 +305 2 69 45 14 85.27093 2 +306 2 70 45 16 90.03034 2 +307 2 71 45 18 86.04223 2 +308 2 72 49 17 97.90172 2 +309 2 73 49 15 103.69855 4 +310 2 74 49 13 84.99172 2 +311 2 75 49 14 108.37932 2 +312 2 76 49 16 83.82748 2 +313 2 77 49 18 85.64284 2 +314 2 78 53 17 96.30081 2 +315 2 79 53 15 95.27789 2 +316 2 80 53 13 89.11128 2 +317 2 81 53 14 83.32698 2 +318 2 82 53 16 85.5557 2 +319 2 83 53 18 96.2281 2 +320 2 84 57 15 96.87183 2 +321 2 85 57 13 98.38246 2 +322 2 86 57 11 81.12062 2 +323 2 87 57 14 88.10097 2 +324 2 88 57 16 90.65621 2 +325 2 89 57 18 84.83031 2 +326 2 90 61 17 103.95882 4 +327 2 91 61 15 101.97665 4 +328 2 92 61 13 84.71962 2 +329 2 93 61 14 84.47637 2 +330 2 94 61 16 82.55282 2 +331 2 95 61 18 98.7863 2 +332 2 96 65 17 103.52767 4 +333 2 97 65 15 98.10523 4 +334 2 98 65 13 82.81352 2 +335 2 99 65 14 87.24021 2 +336 2 100 65 16 86.69688 2 +337 2 101 65 18 87.0157 2 +338 2 102 69 15 104.46954 4 +339 2 103 69 13 86.37028 2 +340 2 104 69 11 87.67847 2 +341 2 105 69 14 84.57669 2 +342 2 106 69 16 89.5434 2 +343 2 107 69 18 83.46621 2 +344 2 108 73 17 91.93576 2 +345 2 109 73 15 88.96377 2 +346 2 110 73 13 85.4441 2 +347 2 111 73 14 83.92005 2 +348 2 112 73 16 94.4567 2 +349 2 113 73 18 85.52215 2 +350 2 114 77 17 89.22773 2 +351 2 115 77 15 90.12139 2 +352 2 116 77 13 98.73973 2 +353 2 117 77 14 88.49034 2 +354 2 118 77 16 105.48794 2 +355 2 119 77 18 110.76364 4 +356 3 0 1 23 101.40241 4 +357 3 1 1 21 97.50788 4 +358 3 2 1 19 91.44466 4 +359 3 3 1 20 87.4596 2 +360 3 4 1 22 91.62581 2 +361 3 5 1 24 77.16257 2 +362 3 6 5 23 77.39815 2 +363 3 7 5 21 71.14841 2 +364 3 8 5 19 74.49154 2 +365 3 9 5 20 73.18548 2 +366 3 10 5 22 78.6817 2 +367 3 11 5 24 80.26678 2 +368 3 12 9 23 71.93858 2 +369 3 13 9 21 72.22419 2 +370 3 14 9 19 72.86097 2 +371 3 15 9 18 77.69144 2 +372 3 16 9 20 85.56674 2 +373 3 17 9 22 94.68524 2 +374 3 18 13 23 73.82142 2 +375 3 19 13 21 78.92585 2 +376 3 20 13 19 75.78884 2 +377 3 21 13 20 72.75082 2 +378 3 22 13 22 79.89585 2 +379 3 23 13 24 93.447 4 +380 3 24 17 23 73.71281 2 +381 3 25 17 21 74.81604 2 +382 3 26 17 19 76.88262 2 +383 3 27 17 20 78.05392 2 +384 3 28 17 22 82.08315 2 +385 3 29 17 24 95.86216 2 +386 3 30 21 23 74.13929 2 +387 3 31 21 21 74.46222 2 +388 3 32 21 19 71.22374 2 +389 3 33 21 18 72.26009 2 +390 3 34 21 20 73.31855 2 +391 3 35 21 22 92.46347 2 +392 3 36 25 23 75.62968 2 +393 3 37 25 21 73.72577 2 +394 3 38 25 19 71.06103 2 +395 3 39 25 20 72.31028 2 +396 3 40 25 22 77.1978 2 +397 3 41 25 24 89.82887 4 +398 3 42 29 23 73.20055 2 +399 3 43 29 21 73.01024 2 +400 3 44 29 19 70.92846 2 +401 3 45 29 20 70.59603 2 +402 3 46 29 22 73.75194 2 +403 3 47 29 24 86.73628 4 +404 3 48 33 23 74.36397 2 +405 3 49 33 21 72.28469 2 +406 3 50 33 19 74.3206 2 +407 3 51 33 20 71.42829 2 +408 3 52 33 22 73.13635 2 +409 3 53 33 24 82.00389 2 +410 3 54 37 23 76.74954 2 +411 3 55 37 21 72.86764 2 +412 3 56 37 19 73.78701 2 +413 3 57 37 20 72.79485 2 +414 3 58 37 22 83.61591 2 +415 3 59 37 24 90.34035 2 +416 3 60 41 23 87.9002 2 +417 3 61 41 21 73.23493 2 +418 3 62 41 19 73.37403 2 +419 3 63 41 20 74.21569 2 +420 3 64 41 22 71.5708 2 +421 3 65 41 24 75.67123 2 +422 3 66 45 23 81.14292 2 +423 3 67 45 21 78.78007 2 +424 3 68 45 19 71.87776 2 +425 3 69 45 20 74.92381 2 +426 3 70 45 22 76.45982 2 +427 3 71 45 24 76.45271 2 +428 3 72 49 23 88.45359 4 +429 3 73 49 21 87.17528 2 +430 3 74 49 19 72.88634 2 +431 3 75 49 20 71.74028 2 +432 3 76 49 22 72.63692 2 +433 3 77 49 24 73.60297 2 +434 3 78 53 23 79.80144 2 +435 3 79 53 21 76.90638 2 +436 3 80 53 19 76.50289 2 +437 3 81 53 20 72.78748 2 +438 3 82 53 22 72.40136 2 +439 3 83 53 24 92.03785 2 +440 3 84 57 21 92.9082 2 +441 3 85 57 19 76.32253 2 +442 3 86 57 17 80.09429 2 +443 3 87 57 20 73.99798 2 +444 3 88 57 22 73.92522 2 +445 3 89 57 24 74.60819 2 +446 3 90 61 23 98.09596 2 +447 3 91 61 21 80.84438 2 +448 3 92 61 19 76.23565 4 +449 3 93 61 20 74.25297 2 +450 3 94 61 22 71.67223 2 +451 3 95 61 24 72.37277 2 +452 3 96 65 23 93.56403 4 +453 3 97 65 21 87.04244 4 +454 3 98 65 19 72.05256 2 +455 3 99 65 20 74.59026 2 +456 3 100 65 22 73.96683 2 +457 3 101 65 24 74.6951 2 +458 3 102 69 21 92.84181 2 +459 3 103 69 19 86.50825 2 +460 3 104 69 17 75.18391 2 +461 3 105 69 20 73.87541 2 +462 3 106 69 22 75.11955 2 +463 3 107 69 24 80.9115 2 +464 3 108 73 23 87.76246 2 +465 3 109 73 21 80.92988 2 +466 3 110 73 19 75.96279 2 +467 3 111 73 20 70.27501 2 +468 3 112 73 22 70.34649 2 +469 3 113 73 24 72.93568 2 +470 3 114 77 23 77.34424 2 +471 3 115 77 21 77.33939 2 +472 3 116 77 19 87.87509 2 +473 3 117 77 20 90.30335 4 +474 3 118 77 22 88.26885 2 +475 3 119 77 24 100.46759 4 +476 4 0 1 29 96.82685 4 +477 4 1 1 27 83.45268 2 +478 4 2 1 25 79.12034 2 +479 4 3 1 26 85.65486 4 +480 4 4 1 28 67.45071 2 +481 4 5 1 30 69.83607 2 +482 4 6 5 29 65.06132 2 +483 4 7 5 27 66.57642 2 +484 4 8 5 25 60.79885 2 +485 4 9 5 26 60.25541 2 +486 4 10 5 28 63.36874 2 +487 4 11 5 30 77.08024 2 +488 4 12 9 29 62.34594 2 +489 4 13 9 27 58.63289 2 +490 4 14 9 25 60.06773 2 +491 4 15 9 24 60.90447 2 +492 4 16 9 26 63.80414 2 +493 4 17 9 28 65.18886 2 +494 4 18 9 30 80.28261 2 +495 4 19 13 29 63.62075 2 +496 4 20 13 27 64.58768 2 +497 4 21 13 25 73.03375 2 +498 4 22 13 26 61.4301 2 +499 4 23 13 28 77.6568 2 +500 4 24 13 30 84.79284 2 +501 4 25 17 29 68.84473 2 +502 4 26 17 27 59.40766 2 +503 4 27 17 25 69.37499 2 +504 4 28 17 26 61.76835 2 +505 4 29 17 28 67.81053 2 +506 4 30 17 30 76.6715 2 +507 4 31 21 29 63.94865 2 +508 4 32 21 27 62.33438 2 +509 4 33 21 25 62.83297 2 +510 4 34 21 24 69.97184 2 +511 4 35 21 26 61.66648 2 +512 4 36 21 28 88.8686 2 +513 4 37 25 29 69.97718 2 +514 4 38 25 27 61.14591 2 +515 4 39 25 25 60.6572 2 +516 4 40 25 26 61.6376 2 +517 4 41 25 28 71.96636 2 +518 4 42 25 30 73.79279 2 +519 4 43 29 29 66.40402 2 +520 4 44 29 27 61.12887 2 +521 4 45 29 25 70.59697 2 +522 4 46 29 26 59.10398 2 +523 4 47 29 28 66.34478 2 +524 4 48 29 30 75.73093 4 +525 4 49 33 29 63.12125 2 +526 4 50 33 27 60.75987 2 +527 4 51 33 25 64.23266 2 +528 4 52 33 26 61.09488 2 +529 4 53 33 28 69.82673 4 +530 4 54 33 30 72.8037 2 +531 4 55 37 29 64.45135 2 +532 4 56 37 27 60.65719 2 +533 4 57 37 25 66.33095 2 +534 4 58 37 26 61.95426 2 +535 4 59 37 28 61.9227 2 +536 4 60 37 30 83.53619 2 +537 4 61 41 29 75.49353 2 +538 4 62 41 27 62.06989 2 +539 4 63 41 25 76.99798 2 +540 4 64 41 26 63.49866 2 +541 4 65 41 28 60.3621 2 +542 4 66 41 30 64.85491 2 +543 4 67 45 29 72.782 2 +544 4 68 45 27 63.98476 2 +545 4 69 45 25 62.28153 2 +546 4 70 45 26 63.87559 2 +547 4 71 45 28 61.83615 2 +548 4 72 45 30 63.83755 2 +549 4 73 49 29 79.49729 4 +550 4 74 49 27 73.6334 4 +551 4 75 49 25 58.64089 2 +552 4 76 49 26 59.98724 2 +553 4 77 49 28 66.86436 2 +554 4 78 49 30 66.77042 2 +555 4 79 53 29 77.03239 2 +556 4 80 53 27 68.83967 2 +557 4 81 53 25 62.90895 2 +558 4 82 53 26 64.81999 2 +559 4 83 53 28 76.47975 2 +560 4 84 53 30 73.6731 2 +561 4 85 57 27 84.58703 4 +562 4 86 57 25 63.83633 2 +563 4 87 57 23 69.67206 2 +564 4 88 57 26 61.1685 2 +565 4 89 57 28 60.62403 2 +566 4 90 57 30 61.6818 2 +567 4 91 61 29 77.32508 2 +568 4 92 61 27 86.55494 2 +569 4 93 61 25 60.88621 2 +570 4 94 61 26 68.9218 2 +571 4 95 61 28 65.81169 2 +572 4 96 61 30 64.05365 2 +573 4 97 65 29 91.34868 2 +574 4 98 65 27 75.35082 2 +575 4 99 65 25 62.61638 2 +576 4 100 65 26 71.33927 2 +577 4 101 65 28 63.10072 2 +578 4 102 65 30 63.49196 2 +579 4 103 69 29 84.35416 2 +580 4 104 69 27 73.36223 2 +581 4 105 69 25 66.15072 2 +582 4 106 69 23 61.33211 2 +583 4 107 69 26 63.18945 2 +584 4 108 69 28 61.30551 2 +585 4 109 69 30 63.0535 2 +586 4 110 73 29 67.55177 2 +587 4 111 73 27 65.55242 2 +588 4 112 73 25 61.40795 2 +589 4 113 73 26 58.1238 2 +590 4 114 73 28 67.87305 2 +591 4 115 73 30 67.83415 2 +592 4 116 77 29 74.02149 2 +593 4 117 77 27 68.48123 2 +594 4 118 77 25 81.24732 2 +595 4 119 77 26 78.66824 2 +596 4 120 77 28 82.62826 2 +597 4 121 77 30 96.8693 4 +598 5 0 1 35 78.81295 2 +599 5 1 1 33 75.38364 2 +600 5 2 1 31 65.61671 2 +601 5 3 1 32 63.67519 2 +602 5 4 1 34 66.8784 2 +603 5 5 1 36 60.2093 2 +604 5 6 5 35 61.18924 2 +605 5 7 5 33 49.3014 2 +606 5 8 5 31 50.04486 2 +607 5 9 5 32 50.10076 2 +608 5 10 5 34 56.37575 2 +609 5 11 5 36 54.58008 2 +610 5 12 9 35 52.13603 2 +611 5 13 9 33 49.90481 2 +612 5 14 9 31 114.96669 2 +613 5 15 9 32 50.57953 2 +614 5 16 9 34 53.01686 2 +615 5 17 9 36 55.58534 2 +616 5 18 13 35 57.93447 2 +617 5 19 13 33 56.08579 2 +618 5 20 13 31 53.37433 2 +619 5 21 13 32 52.5509 2 +620 5 22 13 34 67.47811 2 +621 5 23 13 36 64.7973 2 +622 5 24 17 35 51.75207 2 +623 5 25 17 33 47.88536 2 +624 5 26 17 31 51.59653 2 +625 5 27 17 32 49.31608 2 +626 5 28 17 34 51.89152 2 +627 5 29 17 36 60.39859 2 +628 5 30 21 35 54.32404 2 +629 5 31 21 33 65.45428 2 +630 5 32 21 31 52.23448 2 +631 5 33 21 30 46.36494 2 +632 5 34 21 32 54.52921 2 +633 5 35 21 34 52.57643 2 +634 5 36 21 36 64.84819 2 +635 5 37 25 35 61.03196 2 +636 5 38 25 33 57.40917 2 +637 5 39 25 31 49.83571 2 +638 5 40 25 32 51.15409 2 +639 5 41 25 34 62.07508 2 +640 5 42 25 36 61.55412 2 +641 5 43 29 35 58.20937 2 +642 5 44 29 33 57.04019 2 +643 5 45 29 31 57.12925 2 +644 5 46 29 32 48.88301 2 +645 5 47 29 34 61.07021 4 +646 5 48 29 36 61.23994 2 +647 5 49 33 35 52.10847 2 +648 5 50 33 33 47.86105 2 +649 5 51 33 31 56.24633 2 +650 5 52 33 32 50.75971 2 +651 5 53 33 34 63.26343 2 +652 5 54 33 36 59.55645 2 +653 5 55 37 35 53.62953 2 +654 5 56 37 33 50.32691 2 +655 5 57 37 31 49.58088 2 +656 5 58 37 32 65.33855 2 +657 5 59 37 34 57.68811 2 +658 5 60 37 36 67.20354 2 +659 5 61 41 35 68.86822 2 +660 5 62 41 33 63.19278 2 +661 5 63 41 31 64.43605 2 +662 5 64 41 32 52.33106 2 +663 5 65 41 34 51.27463 2 +664 5 66 41 36 53.40337 2 +665 5 67 45 35 61.78604 2 +666 5 68 45 33 60.49205 2 +667 5 69 45 31 49.93265 2 +668 5 70 45 32 58.55885 2 +669 5 71 45 34 49.7152 2 +670 5 72 45 36 63.65966 2 +671 5 73 49 35 63.12244 2 +672 5 74 49 33 68.55234 2 +673 5 75 49 31 50.69478 2 +674 5 76 49 32 58.22805 2 +675 5 77 49 34 51.83716 2 +676 5 78 49 36 59.36047 2 +677 5 79 53 35 61.53206 2 +678 5 80 53 33 59.12869 2 +679 5 81 53 31 61.92639 2 +680 5 82 53 32 58.98858 2 +681 5 83 53 34 56.00536 2 +682 5 84 53 36 59.43159 2 +683 5 85 57 35 73.70456 2 +684 5 86 57 33 52.5031 2 +685 5 87 57 31 57.49228 2 +686 5 88 57 29 46.36596 2 +687 5 89 57 32 48.88404 2 +688 5 90 57 34 50.68612 2 +689 5 91 57 36 52.78419 2 +690 5 92 61 35 56.07963 2 +691 5 93 61 33 49.90983 2 +692 5 94 61 31 48.93932 2 +693 5 95 61 32 51.23293 2 +694 5 96 61 34 53.155 2 +695 5 97 61 36 61.85728 2 +696 5 98 65 35 64.23853 2 +697 5 99 65 33 58.24653 2 +698 5 100 65 31 49.07649 2 +699 5 101 65 32 52.26077 2 +700 5 102 65 34 55.18039 2 +701 5 103 65 36 56.54185 2 +702 5 104 69 35 70.55279 2 +703 5 105 69 33 55.3261 2 +704 5 106 69 31 50.34568 2 +705 5 107 69 32 56.58614 2 +706 5 108 69 34 51.17681 2 +707 5 109 69 36 56.07016 2 +708 5 110 73 35 54.85456 2 +709 5 111 73 33 52.35763 2 +710 5 112 73 31 52.16452 2 +711 5 113 73 32 47.64335 2 +712 5 114 73 34 50.23437 2 +713 5 115 73 36 63.86026 2 +714 5 116 77 35 61.19294 2 +715 5 117 77 33 69.16383 2 +716 5 118 77 31 64.2415 2 +717 5 119 77 32 64.19352 2 +718 5 120 77 34 74.35957 4 +719 5 121 77 36 77.19329 2 +720 6 0 1 39 76.52467 2 +721 6 1 1 37 68.6391 2 +722 6 2 1 38 75.31986 2 +723 6 3 1 40 64.79042 4 +724 6 4 2 2 70.19399 2 +725 6 5 2 4 70.49457 2 +726 6 6 2 6 70.11465 2 +727 6 7 6 3 83.66631 2 +728 6 8 6 1 67.53265 2 +729 6 9 5 39 44.99725 2 +730 6 10 5 37 46.18657 2 +731 6 11 5 38 40.21903 2 +732 6 12 5 40 41.87149 2 +733 6 13 9 39 40.34368 2 +734 6 14 9 37 36.64274 2 +735 6 15 9 38 43.80417 2 +736 6 16 9 40 42.49005 2 +737 6 17 10 2 70.18869 2 +738 6 18 10 4 87.5614 2 +739 6 19 13 39 42.00122 2 +740 6 20 13 37 37.16433 2 +741 6 21 13 38 39.21502 2 +742 6 22 13 40 43.14672 2 +743 6 23 14 2 83.2352 2 +744 6 24 14 4 73.29559 2 +745 6 25 17 39 39.19374 2 +746 6 26 17 37 40.1099 2 +747 6 27 17 38 37.81079 2 +748 6 28 17 40 42.43272 2 +749 6 29 18 2 70.39324 2 +750 6 30 18 4 84.77895 4 +751 6 31 21 39 41.45144 2 +752 6 32 21 37 40.74413 2 +753 6 33 21 38 43.86491 2 +754 6 34 21 40 45.62563 2 +755 6 35 22 2 65.97622 2 +756 6 36 22 4 70.43494 2 +757 6 37 26 5 68.80256 2 +758 6 38 26 3 66.5657 2 +759 6 39 26 1 71.6747 2 +760 6 40 25 39 44.51521 2 +761 6 41 25 37 48.96668 2 +762 6 42 25 38 40.38779 2 +763 6 43 25 40 53.4944 2 +764 6 44 29 39 40.90108 2 +765 6 45 29 37 36.00834 2 +766 6 46 29 38 40.75092 2 +767 6 47 29 40 51.58368 2 +768 6 48 30 2 67.87917 2 +769 6 49 30 4 88.26713 4 +770 6 50 33 39 47.8229 2 +771 6 51 33 37 35.71296 2 +772 6 52 33 38 37.10435 2 +773 6 53 33 40 44.96155 2 +774 6 54 34 2 65.62637 2 +775 6 55 34 4 75.45456 2 +776 6 56 37 39 40.0953 2 +777 6 57 37 37 38.66288 2 +778 6 58 37 38 40.15384 2 +779 6 59 37 40 42.15317 2 +780 6 60 38 2 66.52516 2 +781 6 61 38 4 79.28325 4 +782 6 62 42 3 73.705 2 +783 6 63 42 1 67.14234 2 +784 6 64 41 39 50.95059 2 +785 6 65 41 37 43.70407 2 +786 6 66 41 38 36.68226 2 +787 6 67 41 40 40.0953 2 +788 6 68 46 3 80.81445 4 +789 6 69 46 1 64.8812 2 +790 6 70 45 39 44.15181 2 +791 6 71 45 37 39.161 2 +792 6 72 45 38 44.36599 2 +793 6 73 45 40 45.77708 2 +794 6 74 50 3 88.78955 4 +795 6 75 50 1 67.87818 2 +796 6 76 49 39 50.26779 2 +797 6 77 49 37 44.46235 2 +798 6 78 49 38 37.01625 2 +799 6 79 49 40 41.80577 2 +800 6 80 53 39 53.39419 2 +801 6 81 53 37 43.79479 2 +802 6 82 53 38 50.38707 2 +803 6 83 53 40 38.27696 2 +804 6 84 54 2 69.47364 2 +805 6 85 54 4 66.26964 2 +806 6 86 54 6 68.80151 2 +807 6 87 58 3 69.95231 2 +808 6 88 58 1 73.61569 2 +809 6 89 57 39 39.80511 2 +810 6 90 57 37 43.78955 2 +811 6 91 57 38 43.13105 2 +812 6 92 57 40 40.66966 2 +813 6 93 62 3 90.52667 2 +814 6 94 62 1 65.82729 2 +815 6 95 61 39 39.85713 2 +816 6 96 61 37 37.51197 2 +817 6 97 61 38 56.50232 2 +818 6 98 61 40 39.5265 2 +819 6 99 66 3 88.13712 4 +820 6 100 66 1 67.88634 2 +821 6 101 65 39 42.75219 2 +822 6 102 65 37 42.39191 2 +823 6 103 65 38 34.90238 2 +824 6 104 65 40 40.77134 2 +825 6 105 70 3 72.72013 2 +826 6 106 70 1 69.44892 2 +827 6 107 69 39 44.25718 2 +828 6 108 69 37 37.12357 2 +829 6 109 69 38 38.03466 2 +830 6 110 69 40 105.47309 2 +831 6 111 73 39 42.39238 2 +832 6 112 73 37 42.31868 2 +833 6 113 73 38 51.06966 2 +834 6 114 73 40 39.06398 2 +835 6 115 74 2 73.23777 2 +836 6 116 74 4 75.30684 2 +837 6 117 78 5 69.05725 2 +838 6 118 78 3 69.60385 2 +839 6 119 78 1 70.34384 2 +840 6 120 77 39 58.01632 2 +841 6 121 77 37 78.38676 2 +842 6 122 77 38 69.09697 4 +843 6 123 77 40 72.45489 2 +844 7 0 2 7 83.64042 2 +845 7 1 2 5 86.18422 2 +846 7 2 2 3 75.63386 4 +847 7 3 2 1 54.84905 2 +848 7 4 2 8 67.81675 2 +849 7 5 2 10 65.31603 2 +850 7 6 6 9 61.65458 2 +851 7 7 6 7 63.00937 2 +852 7 8 6 5 53.4316 2 +853 7 9 6 2 60.19095 2 +854 7 10 6 4 58.89866 2 +855 7 11 6 6 65.55801 2 +856 7 12 10 7 55.54791 2 +857 7 13 10 5 52.98425 2 +858 7 14 10 3 54.94483 2 +859 7 15 10 1 56.49472 2 +860 7 16 10 6 54.23734 2 +861 7 17 10 8 59.22615 2 +862 7 18 10 10 74.92533 4 +863 7 19 14 7 59.39339 2 +864 7 20 14 5 61.81248 2 +865 7 21 14 3 63.34166 2 +866 7 22 14 1 69.72392 2 +867 7 23 14 6 56.79867 2 +868 7 24 14 8 61.04243 2 +869 7 25 18 7 53.90105 2 +870 7 26 18 5 56.4274 2 +871 7 27 18 3 50.25391 2 +872 7 28 18 1 55.03876 2 +873 7 29 18 6 57.48938 2 +874 7 30 18 8 62.64331 2 +875 7 31 22 7 56.72395 2 +876 7 32 22 5 57.44922 2 +877 7 33 22 3 60.60982 2 +878 7 34 22 1 54.50506 2 +879 7 35 22 6 55.97348 2 +880 7 36 22 8 57.44642 2 +881 7 37 26 9 56.24975 2 +882 7 38 26 7 53.91023 2 +883 7 39 26 2 58.85981 2 +884 7 40 26 4 54.95792 2 +885 7 41 26 6 54.6905 2 +886 7 42 26 8 61.25854 2 +887 7 43 30 7 58.95115 2 +888 7 44 30 5 55.88937 2 +889 7 45 30 3 50.96695 2 +890 7 46 30 1 50.19749 2 +891 7 47 30 6 50.60883 2 +892 7 48 30 8 57.61487 2 +893 7 49 30 10 102.55223 4 +894 7 50 34 5 57.68256 2 +895 7 51 34 3 53.02672 2 +896 7 52 34 1 89.27497 2 +897 7 53 34 6 57.74969 2 +898 7 54 34 8 58.09812 2 +899 7 55 34 10 64.12867 2 +900 7 56 38 5 54.80865 2 +901 7 57 38 3 57.35754 2 +902 7 58 38 1 50.88154 2 +903 7 59 38 6 54.41103 2 +904 7 60 38 8 53.87999 2 +905 7 61 38 10 57.53301 2 +906 7 62 42 9 57.62673 2 +907 7 63 42 7 57.45719 2 +908 7 64 42 5 52.58155 2 +909 7 65 42 2 48.95548 2 +910 7 66 42 4 55.3197 2 +911 7 67 42 6 54.80865 2 +912 7 68 46 9 75.7278 4 +913 7 69 46 7 54.22383 2 +914 7 70 46 5 55.91954 2 +915 7 71 46 2 58.11694 2 +916 7 72 46 4 53.09108 2 +917 7 73 46 6 53.02671 2 +918 7 74 50 9 70.1876 4 +919 7 75 50 7 56.85821 2 +920 7 76 50 5 58.1686 2 +921 7 77 50 2 49.61619 2 +922 7 78 50 4 52.71279 2 +923 7 79 50 6 55.35721 2 +924 7 80 50 8 59.82078 2 +925 7 81 54 7 62.48228 2 +926 7 82 54 5 57.6776 2 +927 7 83 54 3 50.70553 2 +928 7 84 54 1 52.29955 2 +929 7 85 54 8 53.90923 2 +930 7 86 54 10 62.35394 2 +931 7 87 58 7 57.60562 2 +932 7 88 58 5 55.86314 2 +933 7 89 58 2 49.29108 2 +934 7 90 58 4 58.69786 2 +935 7 91 58 6 49.97947 2 +936 7 92 58 8 53.99122 2 +937 7 93 62 7 73.57004 4 +938 7 94 62 5 53.56769 2 +939 7 95 62 2 63.0563 2 +940 7 96 62 4 59.8016 2 +941 7 97 62 6 57.07605 2 +942 7 98 62 8 53.76748 2 +943 7 99 66 7 76.16125 4 +944 7 100 66 5 56.06314 2 +945 7 101 66 2 63.32159 2 +946 7 102 66 4 61.25031 2 +947 7 103 66 6 56.6345 2 +948 7 104 66 8 55.17158 2 +949 7 105 70 9 74.83309 4 +950 7 106 70 7 58.53713 2 +951 7 107 70 5 57.68302 2 +952 7 108 70 2 54.44836 2 +953 7 109 70 4 51.7813 2 +954 7 110 70 6 51.54683 2 +955 7 111 70 8 54.13113 2 +956 7 112 74 5 66.2057 2 +957 7 113 74 3 55.2077 2 +958 7 114 74 1 52.78624 2 +959 7 115 74 6 51.83699 2 +960 7 116 74 8 67.74143 2 +961 7 117 74 10 60.72907 2 +962 7 118 78 9 65.21927 4 +963 7 119 78 7 72.69782 4 +964 7 120 78 2 60.75599 4 +965 7 121 78 4 74.55496 4 +966 7 122 78 6 74.9078 2 +967 7 123 78 8 83.09279 2 +968 8 0 2 13 72.88312 2 +969 8 1 2 11 60.36956 2 +970 8 2 2 9 59.20142 2 +971 8 3 2 12 64.48626 4 +972 8 4 2 14 50.69131 2 +973 8 5 2 16 51.23893 2 +974 8 6 6 15 47.66826 2 +975 8 7 6 13 47.26707 2 +976 8 8 6 11 42.1344 2 +977 8 9 6 8 42.84608 2 +978 8 10 6 10 43.95699 2 +979 8 11 6 12 65.00643 2 +980 8 12 10 13 53.998 2 +981 8 13 10 11 39.96911 2 +982 8 14 10 9 45.38574 2 +983 8 15 10 12 44.06052 2 +984 8 16 10 14 51.11827 2 +985 8 17 10 16 49.04589 2 +986 8 18 14 15 46.01877 2 +987 8 19 14 13 43.8725 2 +988 8 20 14 11 41.94764 2 +989 8 21 14 9 46.34942 2 +990 8 22 14 10 40.80101 2 +991 8 23 14 12 44.53533 2 +992 8 24 14 14 51.97554 2 +993 8 25 18 13 42.69208 2 +994 8 26 18 11 42.22831 2 +995 8 27 18 9 40.16758 2 +996 8 28 18 10 42.93859 2 +997 8 29 18 12 50.12723 2 +998 8 30 18 14 51.50898 2 +999 8 31 22 13 43.5834 2 +1000 8 32 22 11 41.67222 2 +1001 8 33 22 9 42.65545 2 +1002 8 34 22 10 41.04601 2 +1003 8 35 22 12 43.30901 2 +1004 8 36 22 14 46.71738 2 +1005 8 37 26 15 48.93714 2 +1006 8 38 26 13 43.0238 2 +1007 8 39 26 11 40.84312 2 +1008 8 40 26 10 38.38797 2 +1009 8 41 26 12 47.22418 2 +1010 8 42 26 14 49.58772 2 +1011 8 43 30 15 49.67336 2 +1012 8 44 30 13 42.39618 2 +1013 8 45 30 11 44.56502 2 +1014 8 46 30 9 95.24101 2 +1015 8 47 30 12 42.78721 2 +1016 8 48 30 14 45.8426 2 +1017 8 49 30 16 60.28372 4 +1018 8 50 34 11 46.09733 2 +1019 8 51 34 9 47.08507 2 +1020 8 52 34 7 77.6434 2 +1021 8 53 34 12 42.5832 2 +1022 8 54 34 14 43.4633 2 +1023 8 55 34 16 54.04293 2 +1024 8 56 38 11 54.74622 2 +1025 8 57 38 9 39.96069 2 +1026 8 58 38 7 39.76624 2 +1027 8 59 38 12 41.03027 2 +1028 8 60 38 14 44.83633 2 +1029 8 61 38 16 47.15811 2 +1030 8 62 42 15 46.61504 2 +1031 8 63 42 13 47.05875 2 +1032 8 64 42 11 43.67651 2 +1033 8 65 42 8 41.56042 2 +1034 8 66 42 10 39.96069 2 +1035 8 67 42 12 58.53758 2 +1036 8 68 46 15 57.91563 2 +1037 8 69 46 13 43.58312 2 +1038 8 70 46 11 52.50832 2 +1039 8 71 46 8 42.515 2 +1040 8 72 46 10 43.16548 2 +1041 8 73 46 12 42.5407 2 +1042 8 74 50 15 54.35516 2 +1043 8 75 50 13 48.94681 2 +1044 8 76 50 11 41.87796 2 +1045 8 77 50 10 47.99118 2 +1046 8 78 50 12 46.68601 2 +1047 8 79 50 14 41.35438 2 +1048 8 80 50 16 56.83154 4 +1049 8 81 54 13 49.9798 2 +1050 8 82 54 11 47.88336 2 +1051 8 83 54 9 39.55168 2 +1052 8 84 54 12 39.96431 2 +1053 8 85 54 14 51.70357 2 +1054 8 86 54 16 47.71773 2 +1055 8 87 58 13 46.71845 2 +1056 8 88 58 11 43.30884 2 +1057 8 89 58 9 43.94097 2 +1058 8 90 58 10 40.79879 2 +1059 8 91 58 12 44.24194 2 +1060 8 92 58 14 43.12457 2 +1061 8 93 62 13 52.36552 2 +1062 8 94 62 11 52.93516 2 +1063 8 95 62 9 41.54608 2 +1064 8 96 62 10 41.9951 2 +1065 8 97 62 12 41.87748 2 +1066 8 98 62 14 42.73736 2 +1067 8 99 66 13 54.75408 2 +1068 8 100 66 11 50.32343 2 +1069 8 101 66 9 42.38399 2 +1070 8 102 66 10 41.88307 2 +1071 8 103 66 12 41.41601 2 +1072 8 104 66 14 41.30029 2 +1073 8 105 66 16 49.54858 2 +1074 8 106 70 15 48.77336 2 +1075 8 107 70 13 46.49893 2 +1076 8 108 70 11 101.51409 2 +1077 8 109 70 10 44.41196 2 +1078 8 110 70 12 39.96825 2 +1079 8 111 70 14 49.33425 2 +1080 8 112 74 11 43.43195 2 +1081 8 113 74 9 40.29318 2 +1082 8 114 74 7 51.32539 2 +1083 8 115 74 12 42.48003 2 +1084 8 116 74 14 60.39978 2 +1085 8 117 74 16 46.65495 2 +1086 8 118 78 15 47.7977 4 +1087 8 119 78 13 56.37316 2 +1088 8 120 78 11 61.27429 4 +1089 8 121 78 10 59.97212 2 +1090 8 122 78 12 65.30593 2 +1091 8 123 78 14 69.60638 2 +1092 9 0 2 19 59.76989 2 +1093 9 1 2 17 58.50431 2 +1094 9 2 2 15 47.70462 2 +1095 9 3 2 18 50.83306 2 +1096 9 4 2 20 49.22256 2 +1097 9 5 2 22 39.52069 2 +1098 9 6 6 21 46.53895 2 +1099 9 7 6 19 34.67468 2 +1100 9 8 6 17 39.72928 2 +1101 9 9 6 14 32.98624 2 +1102 9 10 6 16 38.69186 2 +1103 9 11 6 18 31.99028 2 +1104 9 12 6 20 34.89764 2 +1105 9 13 10 19 31.84707 2 +1106 9 14 10 17 32.40346 2 +1107 9 15 10 15 28.47577 2 +1108 9 16 10 18 30.88321 2 +1109 9 17 10 20 32.4578 2 +1110 9 18 10 22 43.03373 2 +1111 9 19 14 21 39.78882 2 +1112 9 20 14 19 29.92742 2 +1113 9 21 14 17 37.65329 2 +1114 9 22 14 16 29.14043 2 +1115 9 23 14 18 31.59171 2 +1116 9 24 14 20 35.66014 2 +1117 9 25 18 21 44.00893 2 +1118 9 26 18 19 42.00522 2 +1119 9 27 18 17 28.73305 2 +1120 9 28 18 15 29.62073 2 +1121 9 29 18 16 31.31377 2 +1122 9 30 18 18 32.23136 2 +1123 9 31 18 20 37.57525 2 +1124 9 32 22 19 31.86437 2 +1125 9 33 22 17 29.66982 2 +1126 9 34 22 15 28.90134 2 +1127 9 35 22 16 28.53321 2 +1128 9 36 22 18 32.46713 2 +1129 9 37 22 20 35.65021 2 +1130 9 38 26 21 41.64498 2 +1131 9 39 26 19 40.12181 2 +1132 9 40 26 17 29.96768 2 +1133 9 41 26 16 27.17439 2 +1134 9 42 26 18 38.00882 2 +1135 9 43 26 20 38.53385 2 +1136 9 44 30 21 42.93237 2 +1137 9 45 30 19 31.74151 2 +1138 9 46 30 17 29.89374 2 +1139 9 47 30 18 32.46405 2 +1140 9 48 30 20 34.54313 2 +1141 9 49 30 22 35.37374 2 +1142 9 50 34 19 41.20134 2 +1143 9 51 34 17 33.74606 2 +1144 9 52 34 15 48.93769 2 +1145 9 53 34 13 44.74278 2 +1146 9 54 34 18 31.59659 2 +1147 9 55 34 20 32.27745 2 +1148 9 56 34 22 53.73708 2 +1149 9 57 38 17 49.27224 2 +1150 9 58 38 15 28.78438 2 +1151 9 59 38 13 28.7456 2 +1152 9 60 38 18 29.75663 2 +1153 9 61 38 20 37.88752 2 +1154 9 62 38 22 35.18018 2 +1155 9 63 42 21 35.18018 2 +1156 9 64 42 19 37.57209 2 +1157 9 65 42 17 32.90337 2 +1158 9 66 42 14 27.14785 2 +1159 9 67 42 16 28.78438 2 +1160 9 68 42 18 50.20066 2 +1161 9 69 46 21 48.03464 2 +1162 9 70 46 19 32.49947 2 +1163 9 71 46 17 30.06315 2 +1164 9 72 46 14 36.09389 2 +1165 9 73 46 16 34.43382 2 +1166 9 74 46 18 32.47149 2 +1167 9 75 46 20 54.75118 2 +1168 9 76 50 21 35.11699 2 +1169 9 77 50 19 34.80412 2 +1170 9 78 50 17 30.39038 2 +1171 9 79 50 18 29.68527 2 +1172 9 80 50 20 30.29745 2 +1173 9 81 50 22 42.03734 2 +1174 9 82 54 19 38.73953 2 +1175 9 83 54 17 38.74271 2 +1176 9 84 54 15 28.69018 2 +1177 9 85 54 18 31.18012 2 +1178 9 86 54 20 35.38606 2 +1179 9 87 54 22 38.36656 2 +1180 9 88 58 19 35.65128 2 +1181 9 89 58 17 32.46806 2 +1182 9 90 58 15 28.53214 2 +1183 9 91 58 16 29.22494 2 +1184 9 92 58 18 30.04332 2 +1185 9 93 58 20 34.44431 2 +1186 9 94 62 19 47.56588 2 +1187 9 95 62 17 32.23236 2 +1188 9 96 62 15 38.73237 2 +1189 9 97 62 16 32.96194 2 +1190 9 98 62 18 28.76611 2 +1191 9 99 62 20 42.25726 2 +1192 9 100 62 22 44.76039 2 +1193 9 101 66 19 35.30502 2 +1194 9 102 66 17 31.65173 2 +1195 9 103 66 15 29.12193 2 +1196 9 104 66 18 30.77651 2 +1197 9 105 66 20 29.97458 2 +1198 9 106 66 22 41.96986 2 +1199 9 107 70 21 42.74113 2 +1200 9 108 70 19 32.97742 2 +1201 9 109 70 17 31.83339 2 +1202 9 110 70 16 28.47492 2 +1203 9 111 70 18 38.27824 2 +1204 9 112 70 20 34.22693 2 +1205 9 113 74 19 34.68722 2 +1206 9 114 74 17 31.17484 2 +1207 9 115 74 15 30.27457 2 +1208 9 116 74 13 36.68944 2 +1209 9 117 74 18 33.69188 2 +1210 9 118 74 20 36.1853 2 +1211 9 119 74 22 51.923 2 +1212 9 120 78 21 40.08671 2 +1213 9 121 78 19 50.41439 4 +1214 9 122 78 17 57.20137 2 +1215 9 123 78 16 46.20064 2 +1216 9 124 78 18 64.3257 2 +1217 9 125 78 20 60.12725 2 +1218 10 0 2 25 54.47828 2 +1219 10 1 2 23 40.91567 2 +1220 10 2 2 21 37.8622 2 +1221 10 3 2 24 41.7598 2 +1222 10 4 2 26 40.22106 2 +1223 10 5 2 28 34.55647 2 +1224 10 6 6 27 35.44494 2 +1225 10 7 6 25 32.59731 2 +1226 10 8 6 23 17.76473 2 +1227 10 9 6 22 25.77269 2 +1228 10 10 6 24 31.34098 2 +1229 10 11 6 26 32.4703 2 +1230 10 12 10 27 31.68072 2 +1231 10 13 10 25 19.90015 2 +1232 10 14 10 23 20.9321 2 +1233 10 15 10 21 20.82235 2 +1234 10 16 10 24 20.50242 2 +1235 10 17 10 26 25.68895 2 +1236 10 18 10 28 27.2399 2 +1237 10 19 14 27 32.2952 2 +1238 10 20 14 25 35.93115 2 +1239 10 21 14 23 17.64291 2 +1240 10 22 14 22 16.86357 2 +1241 10 23 14 24 24.77804 2 +1242 10 24 14 26 31.64668 2 +1243 10 25 18 27 29.33938 2 +1244 10 26 18 25 20.08516 2 +1245 10 27 18 23 20.82025 2 +1246 10 28 18 22 18.24572 2 +1247 10 29 18 24 19.87596 2 +1248 10 30 18 26 23.14702 2 +1249 10 31 22 27 33.23448 2 +1250 10 32 22 25 20.96143 2 +1251 10 33 22 23 23.18865 2 +1252 10 34 22 21 19.02855 2 +1253 10 35 22 22 18.05315 2 +1254 10 36 22 24 21.32179 2 +1255 10 37 22 26 31.96248 2 +1256 10 38 26 27 29.9879 2 +1257 10 39 26 25 28.30315 2 +1258 10 40 26 23 18.51215 2 +1259 10 41 26 22 17.51419 2 +1260 10 42 26 24 24.03949 2 +1261 10 43 26 26 24.32484 2 +1262 10 44 30 27 24.07183 2 +1263 10 45 30 25 20.20499 2 +1264 10 46 30 23 19.98613 2 +1265 10 47 30 24 18.42968 2 +1266 10 48 30 26 48.65691 2 +1267 10 49 30 28 23.88226 2 +1268 10 50 34 27 30.63788 2 +1269 10 51 34 25 22.13157 2 +1270 10 52 34 23 17.63064 2 +1271 10 53 34 21 22.55073 2 +1272 10 54 34 24 21.31635 2 +1273 10 55 34 26 21.16836 2 +1274 10 56 34 28 37.93583 2 +1275 10 57 38 23 26.46624 2 +1276 10 58 38 21 17.60822 2 +1277 10 59 38 19 19.21738 2 +1278 10 60 38 24 20.19429 2 +1279 10 61 38 26 30.6545 2 +1280 10 62 38 28 27.27984 2 +1281 10 63 42 27 24.04113 2 +1282 10 64 42 25 52.47637 2 +1283 10 65 42 23 21.32828 2 +1284 10 66 42 20 18.69338 2 +1285 10 67 42 22 17.60822 2 +1286 10 68 42 24 26.59101 2 +1287 10 69 46 27 38.65091 2 +1288 10 70 46 25 21.16937 2 +1289 10 71 46 23 20.18389 2 +1290 10 72 46 22 19.5229 2 +1291 10 73 46 24 20.48545 2 +1292 10 74 46 26 21.08108 2 +1293 10 75 46 28 39.86071 2 +1294 10 76 50 27 23.88322 2 +1295 10 77 50 25 46.73385 2 +1296 10 78 50 23 18.36884 2 +1297 10 79 50 24 18.6619 2 +1298 10 80 50 26 19.10105 2 +1299 10 81 50 28 24.0708 2 +1300 10 82 54 25 24.32578 2 +1301 10 83 54 23 24.10664 2 +1302 10 84 54 21 16.17687 2 +1303 10 85 54 24 22.78594 2 +1304 10 86 54 26 22.79467 2 +1305 10 87 54 28 26.4406 2 +1306 10 88 58 25 32.02702 2 +1307 10 89 58 23 21.32272 2 +1308 10 90 58 21 17.95854 2 +1309 10 91 58 22 20.86516 2 +1310 10 92 58 24 21.40497 2 +1311 10 93 58 26 21.70213 2 +1312 10 94 58 28 33.17215 2 +1313 10 95 62 25 23.14793 2 +1314 10 96 62 23 19.87695 2 +1315 10 97 62 21 18.98704 2 +1316 10 98 62 24 17.51635 2 +1317 10 99 62 26 20.44561 2 +1318 10 100 62 28 29.39415 2 +1319 10 101 66 25 24.24592 2 +1320 10 102 66 23 20.08561 2 +1321 10 103 66 21 19.23134 2 +1322 10 104 66 24 17.19284 2 +1323 10 105 66 26 35.09438 2 +1324 10 106 66 28 28.77337 2 +1325 10 107 70 27 27.24075 2 +1326 10 108 70 25 26.63067 2 +1327 10 109 70 23 21.87063 2 +1328 10 110 70 22 19.9877 2 +1329 10 111 70 24 21.32235 2 +1330 10 112 70 26 20.48484 2 +1331 10 113 70 28 32.13917 2 +1332 10 114 74 25 32.45655 2 +1333 10 115 74 23 23.98314 2 +1334 10 116 74 21 18.04979 2 +1335 10 117 74 24 17.76358 2 +1336 10 118 74 26 36.65053 2 +1337 10 119 74 28 39.00039 2 +1338 10 120 78 27 31.92488 2 +1339 10 121 78 25 40.2224 2 +1340 10 122 78 23 40.30441 2 +1341 10 123 78 22 39.34732 2 +1342 10 124 78 24 41.42309 2 +1343 10 125 78 26 57.16339 2 +1344 11 0 2 33 45.21154 2 +1345 11 1 2 31 38.79032 2 +1346 11 2 2 29 38.24086 2 +1347 11 3 2 27 26.61406 2 +1348 11 4 2 30 28.21961 2 +1349 11 5 2 32 27.64732 2 +1350 11 6 2 34 17.48881 2 +1351 11 7 6 33 20.19692 2 +1352 11 8 6 31 16.76845 2 +1353 11 9 6 29 6.51066 2 +1354 11 10 6 28 10.9044 2 +1355 11 11 6 30 6.68344 2 +1356 11 12 6 32 11.886 2 +1357 11 13 10 33 19.19759 2 +1358 11 14 10 31 9.30223 2 +1359 11 15 10 29 9.32102 2 +1360 11 16 10 30 7.90694 2 +1361 11 17 10 32 13.40643 2 +1362 11 18 10 34 13.55896 2 +1363 11 19 14 33 16.84272 2 +1364 11 20 14 31 14.4472 2 +1365 11 21 14 29 5.19992 2 +1366 11 22 14 28 10.38286 2 +1367 11 23 14 30 17.04447 2 +1368 11 24 14 32 13.45026 2 +1369 11 25 14 34 20.02189 2 +1370 11 26 18 33 21.94073 2 +1371 11 27 18 31 12.91722 2 +1372 11 28 18 29 7.25558 2 +1373 11 29 18 28 4.98143 2 +1374 11 30 18 30 10.96963 2 +1375 11 31 18 32 15.22464 2 +1376 11 32 22 33 15.75156 2 +1377 11 33 22 31 11.9002 2 +1378 11 34 22 29 8.33611 2 +1379 11 35 22 28 5.58015 2 +1380 11 36 22 30 10.26288 2 +1381 11 37 22 32 15.05539 2 +1382 11 38 22 34 25.15639 2 +1383 11 39 26 33 16.94543 2 +1384 11 40 26 31 13.11666 2 +1385 11 41 26 29 9.68602 2 +1386 11 42 26 28 5.29112 2 +1387 11 43 26 30 16.27142 2 +1388 11 44 26 32 20.34158 2 +1389 11 45 30 33 16.01562 2 +1390 11 46 30 31 7.75049 2 +1391 11 47 30 29 5.35211 2 +1392 11 48 30 30 8.65103 2 +1393 11 49 30 32 8.71317 2 +1394 11 50 30 34 22.26395 2 +1395 11 51 34 33 16.85302 2 +1396 11 52 34 31 15.99435 2 +1397 11 53 34 29 6.08021 2 +1398 11 54 34 30 6.78779 2 +1399 11 55 34 32 8.59908 2 +1400 11 56 34 34 15.9931 2 +1401 11 57 38 31 25.42759 2 +1402 11 58 38 29 15.01373 2 +1403 11 59 38 27 11.7238 2 +1404 11 60 38 25 7.39196 2 +1405 11 61 38 30 6.85358 2 +1406 11 62 38 32 15.34072 2 +1407 11 63 38 34 15.76418 2 +1408 11 64 42 33 15.43183 2 +1409 11 65 42 31 15.34072 2 +1410 11 66 42 29 6.10689 2 +1411 11 67 42 26 7.39196 2 +1412 11 68 42 28 11.7238 2 +1413 11 69 42 30 15.01373 2 +1414 11 70 42 32 25.42759 2 +1415 11 71 46 33 15.99208 2 +1416 11 72 46 31 8.6001 2 +1417 11 73 46 29 6.9108 2 +1418 11 74 46 30 6.04577 2 +1419 11 75 46 32 15.30826 2 +1420 11 76 46 34 16.16257 2 +1421 11 77 50 33 22.26291 2 +1422 11 78 50 31 8.71414 2 +1423 11 79 50 29 8.65007 2 +1424 11 80 50 30 5.35315 2 +1425 11 81 50 32 7.74945 2 +1426 11 82 50 34 16.01465 2 +1427 11 83 54 31 21.91745 2 +1428 11 84 54 29 13.16165 2 +1429 11 85 54 27 5.29211 2 +1430 11 86 54 30 18.58558 2 +1431 11 87 54 32 11.45195 2 +1432 11 88 54 34 17.06919 2 +1433 11 89 58 33 22.93095 2 +1434 11 90 58 31 15.05646 2 +1435 11 91 58 29 10.00915 2 +1436 11 92 58 27 5.3 2 +1437 11 93 58 30 7.20323 2 +1438 11 94 58 32 11.89913 2 +1439 11 95 58 34 15.75063 2 +1440 11 96 62 31 18.85898 2 +1441 11 97 62 29 10.82979 2 +1442 11 98 62 27 5.85145 2 +1443 11 99 62 30 7.25467 2 +1444 11 100 62 32 12.91822 2 +1445 11 101 62 34 18.20098 2 +1446 11 102 66 33 19.94839 2 +1447 11 103 66 31 13.45115 2 +1448 11 104 66 29 17.18192 2 +1449 11 105 66 27 10.96928 2 +1450 11 106 66 30 5.19882 2 +1451 11 107 66 32 14.44809 2 +1452 11 108 66 34 17.95483 2 +1453 11 109 70 33 13.55982 2 +1454 11 110 70 31 13.50533 2 +1455 11 111 70 29 8.06048 2 +1456 11 112 70 30 9.322 2 +1457 11 113 70 32 9.32476 2 +1458 11 114 70 34 19.30641 2 +1459 11 115 74 31 11.88683 2 +1460 11 116 74 29 6.6823 2 +1461 11 117 74 27 11.62862 2 +1462 11 118 74 30 6.50983 2 +1463 11 119 74 32 16.52178 2 +1464 11 120 74 34 19.8982 2 +1465 11 121 78 33 16.76373 2 +1466 11 122 78 31 25.10536 2 +1467 11 123 78 29 26.80866 2 +1468 11 124 78 28 27.95294 2 +1469 11 125 78 30 36.56727 2 +1470 11 126 78 32 38.84306 2 +1471 11 127 78 34 44.81651 2 +1472 12 0 2 39 53.47963 2 +1473 12 1 2 37 43.1727 2 +1474 12 2 2 35 40.30883 2 +1475 12 3 2 36 42.87757 2 +1476 12 4 2 38 31.4841 2 +1477 12 5 2 40 24.77895 2 +1478 12 6 6 39 34.35986 2 +1479 12 7 6 37 23.05164 2 +1480 12 8 6 35 20.88586 2 +1481 12 9 6 34 26.51391 2 +1482 12 10 6 36 12.73569 2 +1483 12 11 6 38 9.67078 2 +1484 12 12 6 40 17.19761 2 +1485 12 13 10 39 18.65821 2 +1486 12 14 10 37 16.56548 2 +1487 12 15 10 35 12.65027 2 +1488 12 16 10 36 11.84154 2 +1489 12 17 10 38 11.4198 2 +1490 12 18 10 40 20.01624 2 +1491 12 19 14 39 19.37784 2 +1492 12 20 14 37 17.50627 2 +1493 12 21 14 35 12.28611 2 +1494 12 22 14 36 12.78501 2 +1495 12 23 14 38 11.08218 2 +1496 12 24 14 40 20.00446 2 +1497 12 25 18 39 21.86598 2 +1498 12 26 18 37 20.28811 2 +1499 12 27 18 35 13.59757 2 +1500 12 28 18 34 16.27448 2 +1501 12 29 18 36 11.42121 2 +1502 12 30 18 38 17.25259 2 +1503 12 31 18 40 17.75743 2 +1504 12 32 22 39 21.97191 2 +1505 12 33 22 37 13.29432 2 +1506 12 34 22 35 13.42374 2 +1507 12 35 22 36 11.66651 2 +1508 12 36 22 38 15.54175 2 +1509 12 37 22 40 15.53029 2 +1510 12 38 26 39 21.25162 2 +1511 12 39 26 37 19.53002 2 +1512 12 40 26 35 13.09631 2 +1513 12 41 26 34 18.13327 2 +1514 12 42 26 36 12.53945 2 +1515 12 43 26 38 21.92634 2 +1516 12 44 26 40 23.09843 2 +1517 12 45 30 39 20.06774 2 +1518 12 46 30 37 11.94884 2 +1519 12 47 30 35 12.44824 2 +1520 12 48 30 36 12.7682 2 +1521 12 49 30 38 11.7477 2 +1522 12 50 30 40 21.63096 2 +1523 12 51 34 39 18.3146 2 +1524 12 52 34 37 17.28831 2 +1525 12 53 34 35 11.94526 2 +1526 12 54 34 36 16.06307 2 +1527 12 55 34 38 13.35643 2 +1528 12 56 34 40 13.22036 2 +1529 12 57 38 39 23.62944 2 +1530 12 58 38 37 21.14036 2 +1531 12 59 38 35 13.54438 2 +1532 12 60 38 33 13.47403 2 +1533 12 61 38 36 11.94975 2 +1534 12 62 38 38 20.31143 2 +1535 12 63 38 40 15.74763 2 +1536 12 64 42 39 17.91359 2 +1537 12 65 42 37 18.84691 2 +1538 12 66 42 35 11.46106 2 +1539 12 67 42 34 12.07941 2 +1540 12 68 42 36 13.54438 2 +1541 12 69 42 38 23.19856 2 +1542 12 70 42 40 22.41678 2 +1543 12 71 46 39 13.22138 2 +1544 12 72 46 37 13.35541 2 +1545 12 73 46 35 16.06326 2 +1546 12 74 46 36 11.94426 2 +1547 12 75 46 38 17.43808 2 +1548 12 76 46 40 18.31362 2 +1549 12 77 50 39 21.42221 2 +1550 12 78 50 37 11.74867 2 +1551 12 79 50 35 12.7672 2 +1552 12 80 50 36 11.29161 2 +1553 12 81 50 38 11.04277 2 +1554 12 82 50 40 19.10164 2 +1555 12 83 54 39 22.97269 2 +1556 12 84 54 37 21.92729 2 +1557 12 85 54 35 12.5385 2 +1558 12 86 54 33 18.13421 2 +1559 12 87 54 36 13.09536 2 +1560 12 88 54 38 19.45667 2 +1561 12 89 54 40 21.10178 2 +1562 12 90 58 39 15.68015 2 +1563 12 91 58 37 15.54068 2 +1564 12 92 58 35 11.66758 2 +1565 12 93 58 36 12.35484 2 +1566 12 94 58 38 13.29325 2 +1567 12 95 58 40 21.74979 2 +1568 12 96 62 39 21.87299 2 +1569 12 97 62 37 12.83843 2 +1570 12 98 62 35 11.95196 2 +1571 12 99 62 33 17.98298 2 +1572 12 100 62 36 13.59666 2 +1573 12 101 62 38 20.43798 2 +1574 12 102 62 40 22.16265 2 +1575 12 103 66 39 18.15118 2 +1576 12 104 66 37 11.08307 2 +1577 12 105 66 35 12.6626 2 +1578 12 106 66 36 12.28512 2 +1579 12 107 66 38 18.02813 2 +1580 12 108 66 40 18.93038 2 +1581 12 109 70 39 20.01511 2 +1582 12 110 70 37 11.42065 2 +1583 12 111 70 35 11.84069 2 +1584 12 112 70 36 12.8441 2 +1585 12 113 70 38 16.56633 2 +1586 12 114 70 40 18.28511 2 +1587 12 115 74 39 15.83962 2 +1588 12 116 74 37 9.67193 2 +1589 12 117 74 35 12.40763 2 +1590 12 118 74 33 27.05355 2 +1591 12 119 74 36 20.88819 2 +1592 12 120 74 38 22.65849 2 +1593 12 121 74 40 34.22764 2 +1594 12 122 78 39 25.36102 2 +1595 12 123 78 37 31.92959 2 +1596 12 124 78 35 47.28456 2 +1597 12 125 78 36 40.0496 2 +1598 12 126 78 38 41.79766 2 +1599 12 127 78 40 55.51533 2 +1600 13 0 3 5 48.23478 2 +1601 13 1 3 3 40.16657 2 +1602 13 2 3 1 33.87358 2 +1603 13 3 3 2 34.21373 2 +1604 13 4 3 4 24.60763 2 +1605 13 5 3 6 25.12788 2 +1606 13 6 7 7 26.34614 2 +1607 13 7 7 5 17.10456 2 +1608 13 8 7 3 16.36603 2 +1609 13 9 7 1 8.65418 2 +1610 13 10 7 2 9.78581 2 +1611 13 11 7 4 12.59315 2 +1612 13 12 7 6 17.50599 2 +1613 13 13 11 5 16.24907 2 +1614 13 14 11 3 14.6742 2 +1615 13 15 11 1 9.90227 2 +1616 13 16 11 2 10.93394 2 +1617 13 17 11 4 13.98565 2 +1618 13 18 11 6 25.38512 2 +1619 13 19 15 5 23.87196 2 +1620 13 20 15 3 11.38012 2 +1621 13 21 15 1 9.21662 2 +1622 13 22 15 2 10.59681 2 +1623 13 23 15 4 15.93151 2 +1624 13 24 15 6 15.96381 2 +1625 13 25 19 7 28.5652 2 +1626 13 26 19 5 17.34683 2 +1627 13 27 19 3 11.05344 2 +1628 13 28 19 1 8.99893 2 +1629 13 29 19 2 10.42568 2 +1630 13 30 19 4 14.73063 2 +1631 13 31 19 6 24.4268 2 +1632 13 32 23 5 22.14438 2 +1633 13 33 23 3 12.28499 2 +1634 13 34 23 1 9.21153 2 +1635 13 35 23 2 9.25456 2 +1636 13 36 23 4 16.23703 2 +1637 13 37 23 6 16.21986 2 +1638 13 38 27 7 29.765 2 +1639 13 39 27 5 13.89005 2 +1640 13 40 27 3 14.00647 2 +1641 13 41 27 1 11.25482 2 +1642 13 42 27 2 10.61052 2 +1643 13 43 27 4 13.2761 2 +1644 13 44 27 6 23.90534 2 +1645 13 45 31 5 15.09375 2 +1646 13 46 31 3 12.0407 2 +1647 13 47 31 1 9.60337 2 +1648 13 48 31 2 9.48807 2 +1649 13 49 31 4 15.80094 2 +1650 13 50 31 6 19.85991 2 +1651 13 51 35 7 23.24316 2 +1652 13 52 35 5 14.37049 2 +1653 13 53 35 3 12.15153 2 +1654 13 54 35 1 14.31406 2 +1655 13 55 35 2 13.13731 2 +1656 13 56 35 4 16.48734 2 +1657 13 57 35 6 31.80638 2 +1658 13 58 39 5 24.23072 2 +1659 13 59 39 3 11.32084 2 +1660 13 60 39 1 9.00065 2 +1661 13 61 39 2 9.23553 2 +1662 13 62 39 4 15.4687 2 +1663 13 63 39 6 16.81868 2 +1664 13 64 43 5 16.81868 2 +1665 13 65 43 3 15.4687 2 +1666 13 66 43 1 9.23553 2 +1667 13 67 43 2 8.91112 2 +1668 13 68 43 4 11.32084 2 +1669 13 69 43 6 22.16789 2 +1670 13 70 47 5 30.74942 2 +1671 13 71 47 3 16.48836 2 +1672 13 72 47 1 13.13629 2 +1673 13 73 47 2 14.31365 2 +1674 13 74 47 4 11.97515 2 +1675 13 75 47 6 14.3695 2 +1676 13 76 47 8 23.24414 2 +1677 13 77 51 5 19.86094 2 +1678 13 78 51 3 15.79997 2 +1679 13 79 51 1 9.48904 2 +1680 13 80 51 2 9.60441 2 +1681 13 81 51 4 10.90975 2 +1682 13 82 51 6 15.09279 2 +1683 13 83 55 5 23.9044 2 +1684 13 84 55 3 13.27705 2 +1685 13 85 55 1 10.60958 2 +1686 13 86 55 2 11.62574 2 +1687 13 87 55 4 14.00752 2 +1688 13 88 55 6 13.889 2 +1689 13 89 55 8 30.13885 2 +1690 13 90 59 5 16.22078 2 +1691 13 91 59 3 16.2361 2 +1692 13 92 59 1 9.25549 2 +1693 13 93 59 2 9.21246 2 +1694 13 94 59 4 12.28407 2 +1695 13 95 59 6 22.85097 2 +1696 13 96 63 5 26.62876 2 +1697 13 97 63 3 14.73171 2 +1698 13 98 63 1 10.42478 2 +1699 13 99 63 2 8.99984 2 +1700 13 100 63 4 11.05253 2 +1701 13 101 63 6 17.34774 2 +1702 13 102 63 8 29.39986 2 +1703 13 103 67 5 15.9647 2 +1704 13 104 67 3 15.39391 2 +1705 13 105 67 1 10.5977 2 +1706 13 106 67 2 9.21772 2 +1707 13 107 67 4 11.37902 2 +1708 13 108 67 6 23.21378 2 +1709 13 109 71 5 25.38341 2 +1710 13 110 71 3 13.9865 2 +1711 13 111 71 1 10.93281 2 +1712 13 112 71 2 9.90114 2 +1713 13 113 71 4 14.67533 2 +1714 13 114 71 6 16.24794 2 +1715 13 115 75 5 17.50682 2 +1716 13 116 75 3 12.59398 2 +1717 13 117 75 1 9.78384 2 +1718 13 118 75 2 8.65335 2 +1719 13 119 75 4 16.4451 2 +1720 13 120 75 6 17.13672 2 +1721 13 121 75 8 30.16449 2 +1722 13 122 79 5 26.39536 2 +1723 13 123 79 3 27.86764 2 +1724 13 124 79 1 35.4796 2 +1725 13 125 79 2 30.3134 2 +1726 13 126 79 4 41.41647 2 +1727 13 127 79 6 48.14867 2 +1728 14 0 3 11 45.97833 2 +1729 14 1 3 9 42.27916 2 +1730 14 2 3 7 39.90265 2 +1731 14 3 3 8 34.30312 2 +1732 14 4 3 10 30.56009 2 +1733 14 5 3 12 21.74281 2 +1734 14 6 3 14 17.0772 2 +1735 14 7 7 13 25.94065 2 +1736 14 8 7 11 16.73731 2 +1737 14 9 7 9 14.9258 2 +1738 14 10 7 8 13.50325 2 +1739 14 11 7 10 7.79115 2 +1740 14 12 7 12 13.98202 2 +1741 14 13 11 13 22.09183 2 +1742 14 14 11 11 14.67743 2 +1743 14 15 11 9 8.95171 2 +1744 14 16 11 7 7.62872 2 +1745 14 17 11 8 7.24251 2 +1746 14 18 11 10 15.95915 2 +1747 14 19 11 12 15.79618 2 +1748 14 20 15 11 17.60001 2 +1749 14 21 15 9 8.78779 2 +1750 14 22 15 7 8.75092 2 +1751 14 23 15 8 9.65258 2 +1752 14 24 15 10 7.8592 2 +1753 14 25 15 12 17.0331 2 +1754 14 26 19 13 16.26524 2 +1755 14 27 19 11 14.6314 2 +1756 14 28 19 9 8.32205 2 +1757 14 29 19 8 14.69375 2 +1758 14 30 19 10 8.43227 2 +1759 14 31 19 12 12.95204 2 +1760 14 32 19 14 21.4438 2 +1761 14 33 23 11 15.5788 2 +1762 14 34 23 9 16.24054 2 +1763 14 35 23 7 11.38888 2 +1764 14 36 23 8 10.30847 2 +1765 14 37 23 10 10.51027 2 +1766 14 38 23 12 17.209 2 +1767 14 39 27 13 18.98799 2 +1768 14 40 27 11 15.31839 2 +1769 14 41 27 9 8.13628 2 +1770 14 42 27 8 13.67049 2 +1771 14 43 27 10 8.54863 2 +1772 14 44 27 12 16.98953 2 +1773 14 45 27 14 20.43789 2 +1774 14 46 31 11 15.6519 2 +1775 14 47 31 9 8.12986 2 +1776 14 48 31 7 8.79319 2 +1777 14 49 31 8 8.16721 2 +1778 14 50 31 10 15.12986 2 +1779 14 51 31 12 14.89863 2 +1780 14 52 35 13 19.46698 2 +1781 14 53 35 11 17.92366 2 +1782 14 54 35 9 7.27617 2 +1783 14 55 35 8 8.47554 2 +1784 14 56 35 10 8.95779 2 +1785 14 57 35 12 15.38113 2 +1786 14 58 35 14 18.75118 2 +1787 14 59 39 11 16.81342 2 +1788 14 60 39 9 7.76535 2 +1789 14 61 39 7 8.6095 2 +1790 14 62 39 8 8.70755 2 +1791 14 63 39 10 15.93892 2 +1792 14 64 39 12 14.53354 2 +1793 14 65 43 11 15.55856 2 +1794 14 66 43 9 15.85406 2 +1795 14 67 43 7 8.51287 2 +1796 14 68 43 8 9.0034 2 +1797 14 69 43 10 7.76535 2 +1798 14 70 43 12 16.43606 2 +1799 14 71 47 13 18.05861 2 +1800 14 72 47 11 15.42008 2 +1801 14 73 47 9 8.95881 2 +1802 14 74 47 7 8.56406 2 +1803 14 75 47 10 7.73603 2 +1804 14 76 47 12 17.51734 2 +1805 14 77 47 14 14.92964 2 +1806 14 78 51 11 15.01791 2 +1807 14 79 51 9 13.97617 2 +1808 14 80 51 7 7.68478 2 +1809 14 81 51 8 8.11405 2 +1810 14 82 51 10 7.63446 2 +1811 14 83 51 12 23.2477 2 +1812 14 84 55 13 20.13721 2 +1813 14 85 55 11 16.99058 2 +1814 14 86 55 9 8.50726 2 +1815 14 87 55 7 13.52333 2 +1816 14 88 55 10 8.13523 2 +1817 14 89 55 12 15.31944 2 +1818 14 90 55 14 17.90782 2 +1819 14 91 59 11 17.3563 2 +1820 14 92 59 9 10.5112 2 +1821 14 93 59 7 9.82126 2 +1822 14 94 59 8 11.59239 2 +1823 14 95 59 10 16.24147 2 +1824 14 96 59 12 15.89561 2 +1825 14 97 63 13 22.02473 2 +1826 14 98 63 11 10.78557 2 +1827 14 99 63 9 8.29442 2 +1828 14 100 63 7 18.98085 2 +1829 14 101 63 10 9.13109 2 +1830 14 102 63 12 15.54951 2 +1831 14 103 63 14 16.62309 2 +1832 14 104 67 11 20.12488 2 +1833 14 105 67 9 7.86009 2 +1834 14 106 67 7 10.76477 2 +1835 14 107 67 8 8.56288 2 +1836 14 108 67 10 8.7869 2 +1837 14 109 67 12 17.25796 2 +1838 14 110 71 11 16.85432 2 +1839 14 111 71 9 13.85434 2 +1840 14 112 71 7 7.02854 2 +1841 14 113 71 8 7.60417 2 +1842 14 114 71 10 8.95058 2 +1843 14 115 71 12 15.80745 2 +1844 14 116 71 14 16.93294 2 +1845 14 117 75 11 13.98119 2 +1846 14 118 75 9 7.7923 2 +1847 14 119 75 7 13.60083 2 +1848 14 120 75 10 14.62659 2 +1849 14 121 75 12 17.17909 2 +1850 14 122 75 14 25.74764 2 +1851 14 123 79 13 18.10064 2 +1852 14 124 79 11 21.15781 2 +1853 14 125 79 9 30.6068 2 +1854 14 126 79 7 35.14683 2 +1855 14 127 79 8 39.85334 2 +1856 14 128 79 10 47.464 2 +1857 14 129 79 12 46.60109 2 +1858 15 0 3 17 63.72423 2 +1859 15 1 3 15 57.79327 2 +1860 15 2 3 13 48.98584 2 +1861 15 3 3 16 54.00693 2 +1862 15 4 3 18 42.83465 2 +1863 15 5 3 20 37.10475 2 +1864 15 6 7 21 53.42483 2 +1865 15 7 7 19 30.13606 2 +1866 15 8 7 17 27.24127 2 +1867 15 9 7 15 22.76445 2 +1868 15 10 7 14 40.75158 2 +1869 15 11 7 16 22.69139 2 +1870 15 12 7 18 28.24608 2 +1871 15 13 11 19 33.97103 2 +1872 15 14 11 17 26.18534 2 +1873 15 15 11 15 24.04454 2 +1874 15 16 11 14 23.92823 2 +1875 15 17 11 16 17.06047 2 +1876 15 18 11 18 27.07459 2 +1877 15 19 15 19 28.3818 2 +1878 15 20 15 17 30.63681 2 +1879 15 21 15 15 19.07609 2 +1880 15 22 15 13 25.80022 2 +1881 15 23 15 14 19.99817 2 +1882 15 24 15 16 28.31119 2 +1883 15 25 15 18 25.34839 2 +1884 15 26 19 19 29.64697 2 +1885 15 27 19 17 21.0096 2 +1886 15 28 19 15 21.34888 2 +1887 15 29 19 16 23.39808 2 +1888 15 30 19 18 16.6621 2 +1889 15 31 19 20 32.59306 2 +1890 15 32 23 19 35.21767 2 +1891 15 33 23 17 29.91693 2 +1892 15 34 23 15 20.25066 2 +1893 15 35 23 13 22.47274 2 +1894 15 36 23 14 20.7729 2 +1895 15 37 23 16 25.98096 2 +1896 15 38 23 18 24.37271 2 +1897 15 39 27 19 30.15708 2 +1898 15 40 27 17 20.92276 2 +1899 15 41 27 15 24.68763 2 +1900 15 42 27 16 28.24423 2 +1901 15 43 27 18 17.76888 2 +1902 15 44 27 20 18.92321 2 +1903 15 45 31 19 38.25067 2 +1904 15 46 31 17 20.14209 2 +1905 15 47 31 15 27.20296 2 +1906 15 48 31 13 20.5165 2 +1907 15 49 31 14 20.55273 2 +1908 15 50 31 16 24.74519 2 +1909 15 51 31 18 30.28426 2 +1910 15 52 35 21 25.46605 2 +1911 15 53 35 19 26.42023 2 +1912 15 54 35 17 21.57531 2 +1913 15 55 35 15 28.20027 2 +1914 15 56 35 16 21.08664 2 +1915 15 57 35 18 21.05853 2 +1916 15 58 35 20 26.50122 2 +1917 15 59 39 17 23.67016 2 +1918 15 60 39 15 22.25684 2 +1919 15 61 39 13 21.24741 2 +1920 15 62 39 14 21.6771 2 +1921 15 63 39 16 22.71205 2 +1922 15 64 39 18 26.23336 2 +1923 15 65 43 17 26.21828 2 +1924 15 66 43 15 28.84945 2 +1925 15 67 43 13 23.04016 2 +1926 15 68 43 14 21.28987 2 +1927 15 69 43 16 22.41763 2 +1928 15 70 43 18 29.63422 2 +1929 15 71 47 19 34.73877 2 +1930 15 72 47 17 21.05954 2 +1931 15 73 47 15 21.08562 2 +1932 15 74 47 16 22.12183 2 +1933 15 75 47 18 26.98736 2 +1934 15 76 47 20 22.98348 2 +1935 15 77 47 22 18.88679 2 +1936 15 78 51 17 33.22349 2 +1937 15 79 51 15 19.98758 2 +1938 15 80 51 13 22.80383 2 +1939 15 81 51 14 24.85733 2 +1940 15 82 51 16 29.11645 2 +1941 15 83 51 18 20.32565 2 +1942 15 84 51 20 38.10013 2 +1943 15 85 55 19 20.08355 2 +1944 15 86 55 17 19.10142 2 +1945 15 87 55 15 26.27961 2 +1946 15 88 55 16 18.65595 2 +1947 15 89 55 18 19.37988 2 +1948 15 90 55 20 28.7165 2 +1949 15 91 59 17 26.90276 2 +1950 15 92 59 15 27.768 2 +1951 15 93 59 13 20.16051 2 +1952 15 94 59 14 22.27493 2 +1953 15 95 59 16 21.24912 2 +1954 15 96 59 18 30.60008 2 +1955 15 97 59 20 23.13779 2 +1956 15 98 63 19 31.65933 2 +1957 15 99 63 17 17.03128 2 +1958 15 100 63 15 22.79923 2 +1959 15 101 63 16 21.04662 2 +1960 15 102 63 18 25.59531 2 +1961 15 103 63 20 30.29295 2 +1962 15 104 67 17 25.34949 2 +1963 15 105 67 15 32.70468 2 +1964 15 106 67 13 19.13589 2 +1965 15 107 67 14 20.86567 2 +1966 15 108 67 16 22.53937 2 +1967 15 109 67 18 27.41083 2 +1968 15 110 67 20 34.13449 2 +1969 15 111 71 17 28.41506 2 +1970 15 112 71 15 18.51118 2 +1971 15 113 71 13 20.12699 2 +1972 15 114 71 16 24.4989 2 +1973 15 115 71 18 21.24208 2 +1974 15 116 71 20 28.38138 2 +1975 15 117 75 17 27.51812 2 +1976 15 118 75 15 18.77626 2 +1977 15 119 75 13 26.05244 2 +1978 15 120 75 16 21.72323 2 +1979 15 121 75 18 29.70267 2 +1980 15 122 75 20 30.44782 2 +1981 15 123 75 22 44.11641 2 +1982 15 124 79 19 35.21501 2 +1983 15 125 79 17 38.7216 2 +1984 15 126 79 15 50.68339 2 +1985 15 127 79 14 49.54118 2 +1986 15 128 79 16 54.94044 2 +1987 15 129 79 18 64.91569 2 +1988 16 0 3 25 77.23504 2 +1989 16 1 3 23 73.83441 2 +1990 16 2 3 21 73.18197 2 +1991 16 3 3 19 59.57291 2 +1992 16 4 3 22 66.26497 2 +1993 16 5 3 24 53.52013 2 +1994 16 6 3 26 66.7305 2 +1995 16 7 7 27 50.53118 2 +1996 16 8 7 25 52.13113 2 +1997 16 9 7 23 34.46843 2 +1998 16 10 7 20 43.35809 2 +1999 16 11 7 22 32.04923 2 +2000 16 12 7 24 30.01663 2 +2001 16 13 7 26 39.99972 2 +2002 16 14 11 25 38.96841 2 +2003 16 15 11 23 44.51737 2 +2004 16 16 11 21 32.93765 2 +2005 16 17 11 20 31.62962 2 +2006 16 18 11 22 42.65348 2 +2007 16 19 11 24 31.63846 2 +2008 16 20 15 25 49.20242 2 +2009 16 21 15 23 38.21256 2 +2010 16 22 15 21 31.68322 2 +2011 16 23 15 20 35.71495 2 +2012 16 24 15 22 30.43873 2 +2013 16 25 15 24 29.5055 2 +2014 16 26 15 26 40.67179 2 +2015 16 27 19 25 46.38696 2 +2016 16 28 19 23 32.73587 2 +2017 16 29 19 21 32.50185 2 +2018 16 30 19 22 33.10238 2 +2019 16 31 19 24 29.11381 2 +2020 16 32 19 26 32.30487 2 +2021 16 33 23 25 44.44647 2 +2022 16 34 23 23 37.60139 2 +2023 16 35 23 21 31.82787 2 +2024 16 36 23 20 34.22681 2 +2025 16 37 23 22 29.61504 2 +2026 16 38 23 24 40.85465 2 +2027 16 39 23 26 35.49012 2 +2028 16 40 27 25 38.27483 2 +2029 16 41 27 23 31.15221 2 +2030 16 42 27 21 32.11657 2 +2031 16 43 27 22 44.37361 2 +2032 16 44 27 24 30.98889 2 +2033 16 45 27 26 30.17022 2 +2034 16 46 31 25 41.24931 2 +2035 16 47 31 23 40.04206 2 +2036 16 48 31 21 32.19656 2 +2037 16 49 31 20 32.94807 2 +2038 16 50 31 22 31.4851 2 +2039 16 51 31 24 58.10726 2 +2040 16 52 31 26 38.02329 2 +2041 16 53 35 27 36.94606 2 +2042 16 54 35 25 29.87817 2 +2043 16 55 35 23 39.88653 2 +2044 16 56 35 22 31.14143 2 +2045 16 57 35 24 31.02922 2 +2046 16 58 35 26 31.10375 2 +2047 16 59 35 28 40.78759 2 +2048 16 60 39 23 36.2989 2 +2049 16 61 39 21 33.62271 2 +2050 16 62 39 19 36.4512 2 +2051 16 63 39 20 32.30053 2 +2052 16 64 39 22 30.93163 2 +2053 16 65 39 24 39.00862 2 +2054 16 66 43 23 39.75076 2 +2055 16 67 43 21 30.93163 2 +2056 16 68 43 19 32.89828 2 +2057 16 69 43 20 37.15777 2 +2058 16 70 43 22 32.57503 2 +2059 16 71 43 24 35.5825 2 +2060 16 72 47 27 41.48598 2 +2061 16 73 47 25 31.10477 2 +2062 16 74 47 23 31.07248 2 +2063 16 75 47 21 30.00451 2 +2064 16 76 47 24 29.705 2 +2065 16 77 47 26 29.87877 2 +2066 16 78 47 28 37.30976 2 +2067 16 79 51 25 39.33762 2 +2068 16 80 51 23 58.39714 2 +2069 16 81 51 21 30.26133 2 +2070 16 82 51 19 33.0372 2 +2071 16 83 51 22 31.32733 2 +2072 16 84 51 24 41.00369 2 +2073 16 85 51 26 40.91112 2 +2074 16 86 55 25 41.59637 2 +2075 16 87 55 23 32.36997 2 +2076 16 88 55 21 37.34697 2 +2077 16 89 55 22 32.40579 2 +2078 16 90 55 24 31.64768 2 +2079 16 91 55 26 38.15049 2 +2080 16 92 59 25 35.79521 2 +2081 16 93 59 23 32.44947 2 +2082 16 94 59 21 30.42452 2 +2083 16 95 59 19 32.01346 2 +2084 16 96 59 22 104.22642 2 +2085 16 97 59 24 32.89597 2 +2086 16 98 59 26 40.77716 2 +2087 16 99 63 25 32.25258 2 +2088 16 100 63 23 29.9019 2 +2089 16 101 63 21 41.06075 2 +2090 16 102 63 22 32.19574 2 +2091 16 103 63 24 31.98303 2 +2092 16 104 63 26 45.07444 2 +2093 16 105 67 25 39.57605 2 +2094 16 106 67 23 29.5066 2 +2095 16 107 67 21 30.33814 2 +2096 16 108 67 19 34.49206 2 +2097 16 109 67 22 46.96495 2 +2098 16 110 67 24 33.00228 2 +2099 16 111 67 26 49.28656 2 +2100 16 112 71 23 31.50417 2 +2101 16 113 71 21 30.15197 2 +2102 16 114 71 19 31.68307 2 +2103 16 115 71 22 31.80667 2 +2104 16 116 71 24 45.39378 2 +2105 16 117 71 26 39.28281 2 +2106 16 118 75 25 36.05846 2 +2107 16 119 75 23 27.46658 2 +2108 16 120 75 21 33.17701 2 +2109 16 121 75 19 41.5145 2 +2110 16 122 75 24 32.97356 2 +2111 16 123 75 26 44.83809 2 +2112 16 124 75 28 47.13063 2 +2113 16 125 79 25 41.41757 2 +2114 16 126 79 23 52.28542 2 +2115 16 127 79 21 55.1284 2 +2116 16 128 79 20 63.92094 2 +2117 16 129 79 22 68.91571 2 +2118 16 130 79 24 70.73681 2 +2119 16 131 79 26 82.84442 2 +2120 17 0 3 33 79.99362 2 +2121 17 1 3 31 87.18695 2 +2122 17 2 3 29 72.42193 2 +2123 17 3 3 27 72.37634 2 +2124 17 4 3 28 69.97005 2 +2125 17 5 3 30 57.99202 2 +2126 17 6 3 32 57.41949 2 +2127 17 7 7 33 63.48144 4 +2128 17 8 7 31 51.82479 2 +2129 17 9 7 29 43.0815 2 +2130 17 10 7 28 52.29287 2 +2131 17 11 7 30 49.07809 2 +2132 17 12 7 32 40.8405 2 +2133 17 13 11 31 58.8325 2 +2134 17 14 11 29 47.36512 2 +2135 17 15 11 27 49.07483 2 +2136 17 16 11 26 56.68875 4 +2137 17 17 11 28 43.70709 2 +2138 17 18 11 30 40.47088 2 +2139 17 19 11 32 49.92751 2 +2140 17 20 15 31 53.0779 2 +2141 17 21 15 29 49.99529 2 +2142 17 22 15 27 43.95529 2 +2143 17 23 15 28 46.53137 2 +2144 17 24 15 30 42.55425 2 +2145 17 25 15 32 41.24908 2 +2146 17 26 19 33 53.4274 2 +2147 17 27 19 31 54.95664 2 +2148 17 28 19 29 48.40832 2 +2149 17 29 19 27 42.98172 2 +2150 17 30 19 28 42.53433 2 +2151 17 31 19 30 40.50046 2 +2152 17 32 19 32 49.47766 2 +2153 17 33 23 31 56.89739 2 +2154 17 34 23 29 50.75252 2 +2155 17 35 23 27 53.56019 2 +2156 17 36 23 28 44.26246 2 +2157 17 37 23 30 40.44676 2 +2158 17 38 23 32 43.52938 2 +2159 17 39 23 34 45.66717 2 +2160 17 40 27 31 50.14536 2 +2161 17 41 27 29 54.60635 2 +2162 17 42 27 27 43.5505 2 +2163 17 43 27 28 45.27505 2 +2164 17 44 27 30 42.33598 2 +2165 17 45 27 32 40.61208 2 +2166 17 46 31 33 51.64959 2 +2167 17 47 31 31 53.91868 2 +2168 17 48 31 29 41.71557 2 +2169 17 49 31 27 46.66095 2 +2170 17 50 31 28 40.92508 2 +2171 17 51 31 30 43.163 2 +2172 17 52 31 32 48.22289 2 +2173 17 53 35 33 55.27565 2 +2174 17 54 35 31 46.99142 2 +2175 17 55 35 29 48.12954 2 +2176 17 56 35 30 58.74217 2 +2177 17 57 35 32 41.16921 2 +2178 17 58 35 34 41.0221 2 +2179 17 59 39 29 53.12176 2 +2180 17 60 39 27 45.04776 2 +2181 17 61 39 25 44.14931 2 +2182 17 62 39 26 53.94178 2 +2183 17 63 39 28 43.35032 2 +2184 17 64 39 30 40.81045 2 +2185 17 65 39 32 47.00497 2 +2186 17 66 43 31 50.16026 2 +2187 17 67 43 29 40.99275 2 +2188 17 68 43 27 42.79077 2 +2189 17 69 43 25 49.34206 2 +2190 17 70 43 26 44.64725 2 +2191 17 71 43 28 44.99271 2 +2192 17 72 43 30 62.13795 2 +2193 17 73 47 33 41.14252 2 +2194 17 74 47 31 41.24398 2 +2195 17 75 47 29 42.02119 2 +2196 17 76 47 30 42.97882 2 +2197 17 77 47 32 47.01163 2 +2198 17 78 47 34 49.67672 2 +2199 17 79 51 31 48.08939 2 +2200 17 80 51 29 40.49171 2 +2201 17 81 51 27 42.86789 2 +2202 17 82 51 28 47.68912 2 +2203 17 83 51 30 45.98765 2 +2204 17 84 51 32 40.26034 2 +2205 17 85 51 34 50.53904 2 +2206 17 86 55 31 41.69253 2 +2207 17 87 55 29 40.17875 2 +2208 17 88 55 27 51.27297 2 +2209 17 89 55 28 42.9013 2 +2210 17 90 55 30 42.91333 2 +2211 17 91 55 32 48.45552 2 +2212 17 92 59 33 45.88088 2 +2213 17 93 59 31 41.90844 2 +2214 17 94 59 29 41.65186 2 +2215 17 95 59 27 46.59041 2 +2216 17 96 59 28 44.86446 2 +2217 17 97 59 30 47.07336 2 +2218 17 98 59 32 51.20319 2 +2219 17 99 63 31 50.67723 2 +2220 17 100 63 29 41.45467 2 +2221 17 101 63 27 44.54185 2 +2222 17 102 63 28 43.91244 2 +2223 17 103 63 30 43.21629 2 +2224 17 104 63 32 54.61876 2 +2225 17 105 63 34 51.53688 2 +2226 17 106 67 31 40.65559 2 +2227 17 107 67 29 40.56877 2 +2228 17 108 67 27 45.30776 2 +2229 17 109 67 28 44.8986 2 +2230 17 110 67 30 47.52078 2 +2231 17 111 67 32 51.59971 2 +2232 17 112 71 31 49.64876 2 +2233 17 113 71 29 41.01549 2 +2234 17 114 71 27 43.77032 2 +2235 17 115 71 25 47.14024 2 +2236 17 116 71 28 45.45874 2 +2237 17 117 71 30 51.35881 2 +2238 17 118 71 32 62.92669 2 +2239 17 119 75 31 38.96611 2 +2240 17 120 75 29 43.03946 2 +2241 17 121 75 27 47.44979 2 +2242 17 122 75 30 55.95899 2 +2243 17 123 75 32 53.40242 2 +2244 17 124 75 34 68.92319 2 +2245 17 125 79 31 53.81457 2 +2246 17 126 79 29 57.68182 2 +2247 17 127 79 27 69.21785 2 +2248 17 128 79 28 71.80378 2 +2249 17 129 79 30 77.27491 4 +2250 17 130 79 32 86.87788 2 +2251 17 131 79 34 89.98923 4 +2252 18 0 3 39 96.35231 4 +2253 18 1 3 37 100.10883 2 +2254 18 2 3 35 87.88534 4 +2255 18 3 3 34 82.98985 4 +2256 18 4 3 36 84.31653 2 +2257 18 5 3 38 70.53152 2 +2258 18 6 7 39 79.83173 4 +2259 18 7 7 37 80.31001 2 +2260 18 8 7 35 58.6202 2 +2261 18 9 7 34 72.54599 2 +2262 18 10 7 36 83.49624 4 +2263 18 11 7 38 64.24195 2 +2264 18 12 7 40 48.52558 2 +2265 18 13 11 39 74.63526 2 +2266 18 14 11 37 55.11235 2 +2267 18 15 11 35 68.24703 2 +2268 18 16 11 33 58.28024 2 +2269 18 17 11 34 54.89146 2 +2270 18 18 11 36 52.73462 2 +2271 18 19 15 37 67.1672 2 +2272 18 20 15 35 62.54522 2 +2273 18 21 15 33 61.86978 2 +2274 18 22 15 34 62.45943 2 +2275 18 23 15 36 59.64435 2 +2276 18 24 15 38 48.44088 2 +2277 18 25 15 40 50.30223 2 +2278 18 26 19 39 70.26903 2 +2279 18 27 19 37 59.50479 4 +2280 18 28 19 35 54.7983 2 +2281 18 29 19 34 68.95584 2 +2282 18 30 19 36 55.77933 2 +2283 18 31 19 38 54.20014 2 +2284 18 32 19 40 52.42683 2 +2285 18 33 23 37 70.59418 2 +2286 18 34 23 35 56.05728 2 +2287 18 35 23 33 54.8256 2 +2288 18 36 23 36 56.09556 2 +2289 18 37 23 38 50.28722 2 +2290 18 38 23 40 65.90417 2 +2291 18 39 27 37 76.77082 4 +2292 18 40 27 35 57.68817 2 +2293 18 41 27 33 70.14304 2 +2294 18 42 27 34 66.21179 2 +2295 18 43 27 36 55.79885 2 +2296 18 44 27 38 54.58983 2 +2297 18 45 27 40 50.41581 2 +2298 18 46 31 39 69.24969 2 +2299 18 47 31 37 51.58091 2 +2300 18 48 31 35 58.40405 2 +2301 18 49 31 34 55.11354 2 +2302 18 50 31 36 58.75272 2 +2303 18 51 31 38 52.4497 2 +2304 18 52 31 40 55.49705 2 +2305 18 53 35 39 59.08535 2 +2306 18 54 35 37 52.54698 2 +2307 18 55 35 35 53.84205 2 +2308 18 56 35 36 61.01879 2 +2309 18 57 35 38 51.4515 2 +2310 18 58 35 40 54.73031 2 +2311 18 59 39 35 61.92074 2 +2312 18 60 39 33 66.63557 2 +2313 18 61 39 31 56.03207 2 +2314 18 62 39 34 68.80288 2 +2315 18 63 39 36 50.97649 2 +2316 18 64 39 38 50.21031 2 +2317 18 65 39 40 58.83567 2 +2318 18 66 43 39 58.66981 2 +2319 18 67 43 37 54.97493 2 +2320 18 68 43 35 53.50773 2 +2321 18 69 43 33 64.81412 2 +2322 18 70 43 32 59.00389 2 +2323 18 71 43 34 71.61789 2 +2324 18 72 43 36 62.60843 2 +2325 18 73 47 39 56.11342 2 +2326 18 74 47 37 50.3448 2 +2327 18 75 47 35 60.3185 2 +2328 18 76 47 36 61.10662 2 +2329 18 77 47 38 54.81477 2 +2330 18 78 47 40 73.56294 2 +2331 18 79 51 39 56.87359 2 +2332 18 80 51 37 59.43743 2 +2333 18 81 51 35 52.13386 2 +2334 18 82 51 33 62.85569 2 +2335 18 83 51 36 51.9236 2 +2336 18 84 51 38 52.27668 2 +2337 18 85 51 40 75.11601 4 +2338 18 86 55 39 51.19151 2 +2339 18 87 55 37 53.95637 2 +2340 18 88 55 35 51.81224 2 +2341 18 89 55 33 59.12907 2 +2342 18 90 55 34 60.13718 2 +2343 18 91 55 36 62.19573 4 +2344 18 92 55 38 68.14922 2 +2345 18 93 59 39 50.01394 2 +2346 18 94 59 37 51.31386 2 +2347 18 95 59 35 56.89453 2 +2348 18 96 59 34 63.95013 2 +2349 18 97 59 36 64.13009 2 +2350 18 98 59 38 74.12379 2 +2351 18 99 63 39 52.81417 2 +2352 18 100 63 37 52.09185 2 +2353 18 101 63 35 55.12907 2 +2354 18 102 63 33 67.76207 2 +2355 18 103 63 36 54.93586 2 +2356 18 104 63 38 55.26758 2 +2357 18 105 63 40 62.66954 2 +2358 18 106 67 39 49.96092 2 +2359 18 107 67 37 51.80063 2 +2360 18 108 67 35 61.96323 2 +2361 18 109 67 33 56.42999 2 +2362 18 110 67 34 56.29874 2 +2363 18 111 67 36 68.43426 4 +2364 18 112 67 38 75.52854 4 +2365 18 113 71 35 52.9234 2 +2366 18 114 71 33 56.34974 2 +2367 18 115 71 34 58.2994 2 +2368 18 116 71 36 63.81787 2 +2369 18 117 71 38 61.55564 2 +2370 18 118 71 40 66.50135 4 +2371 18 119 75 39 50.18387 2 +2372 18 120 75 37 52.15361 2 +2373 18 121 75 35 62.26209 2 +2374 18 122 75 33 71.58574 2 +2375 18 123 75 36 71.05973 4 +2376 18 124 75 38 80.16471 2 +2377 18 125 75 40 78.97665 4 +2378 18 126 79 37 71.69087 2 +2379 18 127 79 35 78.72475 2 +2380 18 128 79 33 86.93629 4 +2381 18 129 79 36 86.92622 4 +2382 18 130 79 38 93.4774 4 +2383 18 131 79 40 100.72928 2 +2384 19 0 4 5 83.65287 2 +2385 19 1 4 3 80.16644 4 +2386 19 2 4 1 70.05728 2 +2387 19 3 4 2 72.59017 2 +2388 19 4 4 4 67.43964 2 +2389 19 5 4 6 60.65867 2 +2390 19 6 3 40 83.44368 2 +2391 19 7 8 5 55.82647 2 +2392 19 8 8 3 52.92749 2 +2393 19 9 8 1 43.03121 2 +2394 19 10 8 2 67.1835 2 +2395 19 11 8 4 64.33855 2 +2396 19 12 8 6 37.76492 2 +2397 19 13 12 5 49.7829 2 +2398 19 14 12 3 48.48519 2 +2399 19 15 12 1 40.78278 2 +2400 19 16 12 2 49.42196 2 +2401 19 17 12 4 39.74304 2 +2402 19 18 11 38 65.59436 2 +2403 19 19 11 40 73.31688 2 +2404 19 20 15 39 81.72596 4 +2405 19 21 16 5 51.78525 2 +2406 19 22 16 3 46.19436 2 +2407 19 23 16 1 40.33201 2 +2408 19 24 16 2 40.45452 2 +2409 19 25 16 4 45.72813 2 +2410 19 26 16 6 36.86115 2 +2411 19 27 20 7 61.61062 2 +2412 19 28 20 5 45.14818 2 +2413 19 29 20 3 55.27527 2 +2414 19 30 20 1 64.54564 2 +2415 19 31 20 2 41.17034 2 +2416 19 32 20 4 37.59429 2 +2417 19 33 20 6 47.22264 2 +2418 19 34 23 39 76.97311 4 +2419 19 35 24 3 63.90912 2 +2420 19 36 24 1 39.86119 2 +2421 19 37 24 2 102.62405 2 +2422 19 38 24 4 35.85402 2 +2423 19 39 24 6 45.16698 2 +2424 19 40 27 39 83.68637 4 +2425 19 41 28 5 41.44694 2 +2426 19 42 28 3 46.76451 2 +2427 19 43 28 1 48.725 2 +2428 19 44 28 2 53.22078 2 +2429 19 45 28 4 38.66276 2 +2430 19 46 28 6 43.74431 2 +2431 19 47 32 5 43.40182 2 +2432 19 48 32 3 43.88689 2 +2433 19 49 32 1 55.42107 2 +2434 19 50 32 2 38.39158 2 +2435 19 51 32 4 38.88257 2 +2436 19 52 32 6 36.04988 2 +2437 19 53 32 8 48.07267 2 +2438 19 54 36 5 41.52665 2 +2439 19 55 36 3 47.66661 2 +2440 19 56 36 1 40.43823 2 +2441 19 57 36 2 41.50663 2 +2442 19 58 36 4 76.59016 2 +2443 19 59 36 6 38.85565 2 +2444 19 60 39 39 80.87114 2 +2445 19 61 39 37 78.81242 4 +2446 19 62 40 3 38.42716 2 +2447 19 63 40 1 42.96957 2 +2448 19 64 40 2 38.39271 2 +2449 19 65 40 4 39.64779 2 +2450 19 66 40 6 48.7284 2 +2451 19 67 44 5 45.40568 2 +2452 19 68 44 3 40.38995 2 +2453 19 69 44 1 42.48822 2 +2454 19 70 44 2 115.66859 2 +2455 19 71 44 4 43.53704 2 +2456 19 72 43 38 80.61783 4 +2457 19 73 43 40 76.93864 2 +2458 19 74 48 5 38.30513 2 +2459 19 75 48 3 43.7138 2 +2460 19 76 48 1 39.81365 2 +2461 19 77 48 2 47.23137 2 +2462 19 78 48 4 42.95562 2 +2463 19 79 48 6 44.52292 2 +2464 19 80 52 7 47.02081 2 +2465 19 81 52 5 36.43324 2 +2466 19 82 52 3 36.53986 2 +2467 19 83 52 1 44.96525 2 +2468 19 84 52 2 58.241 2 +2469 19 85 52 4 45.28007 2 +2470 19 86 52 6 45.94273 2 +2471 19 87 56 5 43.24054 2 +2472 19 88 56 3 37.9672 2 +2473 19 89 56 1 38.23732 2 +2474 19 90 56 2 41.12553 2 +2475 19 91 56 4 40.2626 2 +2476 19 92 56 6 41.99116 2 +2477 19 93 55 40 85.71539 4 +2478 19 94 60 5 42.17895 2 +2479 19 95 60 3 36.89806 2 +2480 19 96 60 1 40.63007 2 +2481 19 97 60 2 39.9185 2 +2482 19 98 60 4 38.70219 2 +2483 19 99 59 40 78.84774 4 +2484 19 100 64 5 46.9163 2 +2485 19 101 64 3 36.95581 2 +2486 19 102 64 1 39.82637 2 +2487 19 103 64 2 49.26174 2 +2488 19 104 64 4 40.04214 2 +2489 19 105 64 6 54.37306 2 +2490 19 106 64 8 47.55811 2 +2491 19 107 68 5 36.89771 2 +2492 19 108 68 3 44.53364 2 +2493 19 109 68 1 39.30601 2 +2494 19 110 68 2 40.06206 2 +2495 19 111 68 4 48.69647 2 +2496 19 112 68 6 45.9973 2 +2497 19 113 67 40 83.90803 4 +2498 19 114 71 39 67.10259 2 +2499 19 115 71 37 65.61393 3 +2500 19 116 72 3 58.4569 2 +2501 19 117 72 1 51.72274 2 +2502 19 118 72 2 51.84274 2 +2503 19 119 72 4 52.40462 2 +2504 19 120 72 6 52.36129 2 +2505 19 121 76 5 35.72167 2 +2506 19 122 76 3 43.88531 2 +2507 19 123 76 1 55.22588 2 +2508 19 124 76 2 41.38984 2 +2509 19 125 76 4 50.48529 2 +2510 19 126 76 6 54.23008 2 +2511 19 127 79 39 89.13114 4 +2512 19 128 80 5 58.61304 2 +2513 19 129 80 3 70.48381 2 +2514 19 130 80 1 72.39181 2 +2515 19 131 80 2 76.21234 2 +2516 19 132 80 4 78.59088 2 +2517 19 133 80 6 80.34683 2 +2518 20 0 4 11 90.22247 2 +2519 20 1 4 9 81.1836 2 +2520 20 2 4 7 85.56015 4 +2521 20 3 4 8 81.20755 2 +2522 20 4 4 10 74.77371 2 +2523 20 5 4 12 69.46188 2 +2524 20 6 8 13 69.65923 2 +2525 20 7 8 11 65.27855 2 +2526 20 8 8 9 61.90031 2 +2527 20 9 8 7 56.98041 2 +2528 20 10 8 8 54.51608 2 +2529 20 11 8 10 55.14952 2 +2530 20 12 8 12 56.84716 2 +2531 20 13 12 11 62.16848 2 +2532 20 14 12 9 64.78054 2 +2533 20 15 12 7 51.24476 2 +2534 20 16 12 6 61.17989 2 +2535 20 17 12 8 51.8639 2 +2536 20 18 12 10 58.08833 2 +2537 20 19 12 12 50.8857 2 +2538 20 20 16 13 67.94886 2 +2539 20 21 16 11 63.1005 2 +2540 20 22 16 9 61.45954 2 +2541 20 23 16 7 52.9778 2 +2542 20 24 16 8 52.87973 2 +2543 20 25 16 10 52.20499 2 +2544 20 26 16 12 48.37249 2 +2545 20 27 20 13 61.13887 2 +2546 20 28 20 11 50.37299 2 +2547 20 29 20 9 60.29869 2 +2548 20 30 20 8 53.69614 2 +2549 20 31 20 10 50.32166 2 +2550 20 32 20 12 49.13079 2 +2551 20 33 24 11 61.85867 4 +2552 20 34 24 9 62.32013 2 +2553 20 35 24 7 67.56209 2 +2554 20 36 24 5 60.78459 2 +2555 20 37 24 8 48.67629 2 +2556 20 38 24 10 49.39955 2 +2557 20 39 24 12 50.62129 2 +2558 20 40 28 13 63.32355 2 +2559 20 41 28 11 50.94219 2 +2560 20 42 28 9 58.96114 2 +2561 20 43 28 7 65.85705 2 +2562 20 44 28 8 51.76458 2 +2563 20 45 28 10 55.04118 2 +2564 20 46 28 12 57.58315 2 +2565 20 47 32 13 58.98701 2 +2566 20 48 32 11 56.03132 2 +2567 20 49 32 9 51.28944 2 +2568 20 50 32 7 50.50096 2 +2569 20 51 32 10 50.32664 2 +2570 20 52 32 12 47.9672 2 +2571 20 53 32 14 59.04683 2 +2572 20 54 36 11 49.94064 2 +2573 20 55 36 9 51.4155 4 +2574 20 56 36 7 50.84664 2 +2575 20 57 36 8 51.03957 2 +2576 20 58 36 10 82.40865 2 +2577 20 59 36 12 49.38847 2 +2578 20 60 40 11 66.14686 2 +2579 20 61 40 9 60.76588 2 +2580 20 62 40 7 48.91665 2 +2581 20 63 40 5 58.06831 4 +2582 20 64 40 8 50.56366 2 +2583 20 65 40 10 51.15639 2 +2584 20 66 40 12 55.17915 2 +2585 20 67 44 11 64.54646 2 +2586 20 68 44 9 49.08658 2 +2587 20 69 44 7 53.10644 2 +2588 20 70 44 6 51.62132 2 +2589 20 71 44 8 52.56766 2 +2590 20 72 44 10 59.20099 2 +2591 20 73 44 12 63.0163 2 +2592 20 74 48 11 49.353 2 +2593 20 75 48 9 51.32063 2 +2594 20 76 48 7 57.20448 2 +2595 20 77 48 8 53.85808 2 +2596 20 78 48 10 52.54294 2 +2597 20 79 48 12 53.08536 2 +2598 20 80 52 13 57.84848 2 +2599 20 81 52 11 109.02695 2 +2600 20 82 52 9 48.81471 2 +2601 20 83 52 8 57.97711 2 +2602 20 84 52 10 48.4454 2 +2603 20 85 52 12 63.76729 2 +2604 20 86 52 14 52.77775 2 +2605 20 87 56 11 55.6492 2 +2606 20 88 56 9 48.68227 2 +2607 20 89 56 7 55.70363 2 +2608 20 90 56 8 62.57872 4 +2609 20 91 56 10 51.09439 2 +2610 20 92 56 12 53.13655 2 +2611 20 93 56 14 69.32803 2 +2612 20 94 60 11 50.78772 2 +2613 20 95 60 9 58.96227 2 +2614 20 96 60 7 49.17195 2 +2615 20 97 60 6 71.69519 2 +2616 20 98 60 8 50.98436 2 +2617 20 99 60 10 57.46809 2 +2618 20 100 60 12 64.21646 2 +2619 20 101 64 11 47.38245 2 +2620 20 102 64 9 50.63737 2 +2621 20 103 64 7 53.91279 2 +2622 20 104 64 10 51.27374 2 +2623 20 105 64 12 53.55142 2 +2624 20 106 64 14 64.41583 2 +2625 20 107 68 11 48.93461 2 +2626 20 108 68 9 57.09262 2 +2627 20 109 68 7 50.70925 2 +2628 20 110 68 8 52.906 2 +2629 20 111 68 10 50.15721 2 +2630 20 112 68 12 62.17034 2 +2631 20 113 68 14 67.93131 2 +2632 20 114 72 11 51.23643 2 +2633 20 115 72 9 60.64288 2 +2634 20 116 72 7 49.51532 2 +2635 20 117 72 5 58.88415 2 +2636 20 118 72 8 51.70942 2 +2637 20 119 72 10 68.97882 4 +2638 20 120 72 12 60.47922 2 +2639 20 121 76 11 55.32636 2 +2640 20 122 76 9 52.81817 2 +2641 20 123 76 7 60.14399 2 +2642 20 124 76 8 53.42415 2 +2643 20 125 76 10 63.82299 2 +2644 20 126 76 12 67.98033 2 +2645 20 127 76 14 70.89025 2 +2646 20 128 80 11 68.63901 2 +2647 20 129 80 9 78.64559 4 +2648 20 130 80 7 80.0194 2 +2649 20 131 80 8 95.09235 4 +2650 20 132 80 10 87.292 2 +2651 20 133 80 12 103.43388 2 +2652 21 0 4 19 110.65715 4 +2653 21 1 4 17 101.62474 2 +2654 21 2 4 15 102.85698 4 +2655 21 3 4 13 92.74745 2 +2656 21 4 4 14 92.58815 2 +2657 21 5 4 16 83.9417 2 +2658 21 6 4 18 79.73973 2 +2659 21 7 8 19 93.32817 4 +2660 21 8 8 17 79.49457 2 +2661 21 9 8 15 91.05264 2 +2662 21 10 8 14 77.93972 2 +2663 21 11 8 16 72.91974 2 +2664 21 12 8 18 75.64146 2 +2665 21 13 8 20 62.11311 2 +2666 21 14 12 17 72.12162 2 +2667 21 15 12 15 71.34738 4 +2668 21 16 12 13 63.10947 2 +2669 21 17 12 14 62.27297 2 +2670 21 18 12 16 60.38029 2 +2671 21 19 12 18 66.6151 2 +2672 21 20 12 20 60.88026 2 +2673 21 21 16 19 77.63763 2 +2674 21 22 16 17 69.23589 4 +2675 21 23 16 15 60.52939 2 +2676 21 24 16 14 60.93498 2 +2677 21 25 16 16 65.06875 2 +2678 21 26 16 18 61.36435 2 +2679 21 27 20 19 76.26985 2 +2680 21 28 20 17 77.20072 2 +2681 21 29 20 15 64.18857 2 +2682 21 30 20 14 67.39867 2 +2683 21 31 20 16 69.17582 2 +2684 21 32 20 18 60.08074 2 +2685 21 33 20 20 59.48991 2 +2686 21 34 24 17 76.20167 2 +2687 21 35 24 15 70.26865 2 +2688 21 36 24 13 64.59095 2 +2689 21 37 24 14 69.58785 2 +2690 21 38 24 16 58.94064 2 +2691 21 39 24 18 65.96751 2 +2692 21 40 24 20 69.33788 4 +2693 21 41 28 19 73.309 2 +2694 21 42 28 17 70.21268 2 +2695 21 43 28 15 62.70523 2 +2696 21 44 28 14 82.65243 2 +2697 21 45 28 16 59.98792 2 +2698 21 46 28 18 59.13248 2 +2699 21 47 28 20 60.64332 2 +2700 21 48 32 19 69.54755 2 +2701 21 49 32 17 82.8553 2 +2702 21 50 32 15 60.78578 2 +2703 21 51 32 16 58.32879 2 +2704 21 52 32 18 60.82285 2 +2705 21 53 32 20 62.13141 2 +2706 21 54 36 17 72.62623 4 +2707 21 55 36 15 73.54366 2 +2708 21 56 36 13 62.44485 2 +2709 21 57 36 14 65.67136 2 +2710 21 58 36 16 59.43264 2 +2711 21 59 36 18 59.73034 2 +2712 21 60 36 20 67.38593 2 +2713 21 61 40 17 71.84592 4 +2714 21 62 40 15 72.26712 2 +2715 21 63 40 13 59.85495 2 +2716 21 64 40 14 71.5093 2 +2717 21 65 40 16 58.29815 2 +2718 21 66 40 18 59.40355 2 +2719 21 67 40 20 73.33098 2 +2720 21 68 44 19 58.52433 2 +2721 21 69 44 17 64.61735 2 +2722 21 70 44 15 61.62205 2 +2723 21 71 44 13 68.91869 2 +2724 21 72 44 14 71.77462 2 +2725 21 73 44 16 72.31273 2 +2726 21 74 44 18 73.71796 2 +2727 21 75 48 19 80.10339 2 +2728 21 76 48 17 59.24355 2 +2729 21 77 48 15 64.9703 2 +2730 21 78 48 13 63.41252 2 +2731 21 79 48 14 66.04699 2 +2732 21 80 48 16 76.70072 2 +2733 21 81 48 18 73.01625 4 +2734 21 82 52 19 65.75312 2 +2735 21 83 52 17 59.17454 2 +2736 21 84 52 15 57.68211 2 +2737 21 85 52 16 62.09541 2 +2738 21 86 52 18 94.15546 2 +2739 21 87 52 20 65.33996 2 +2740 21 88 56 19 67.94512 2 +2741 21 89 56 17 63.08557 2 +2742 21 90 56 15 60.05246 2 +2743 21 91 56 13 67.49621 2 +2744 21 92 56 16 61.31828 2 +2745 21 93 56 18 74.08665 2 +2746 21 94 56 20 71.56435 2 +2747 21 95 60 19 67.73033 2 +2748 21 96 60 17 59.27375 2 +2749 21 97 60 15 60.06866 2 +2750 21 98 60 13 70.4385 2 +2751 21 99 60 14 65.26339 2 +2752 21 100 60 16 77.73696 2 +2753 21 101 60 18 71.48056 2 +2754 21 102 64 19 59.94912 2 +2755 21 103 64 17 60.75708 2 +2756 21 104 64 15 64.10996 2 +2757 21 105 64 13 68.28101 2 +2758 21 106 64 16 61.53258 2 +2759 21 107 64 18 86.21884 2 +2760 21 108 64 20 76.14565 4 +2761 21 109 68 17 59.88285 2 +2762 21 110 68 15 63.99565 2 +2763 21 111 68 13 63.9708 2 +2764 21 112 68 16 64.40859 2 +2765 21 113 68 18 64.41322 2 +2766 21 114 68 20 78.48802 2 +2767 21 115 72 19 60.21499 2 +2768 21 116 72 17 58.55378 2 +2769 21 117 72 15 59.91743 2 +2770 21 118 72 13 63.25149 2 +2771 21 119 72 14 62.70925 2 +2772 21 120 72 16 63.31826 2 +2773 21 121 72 18 90.64764 2 +2774 21 122 76 19 58.44823 2 +2775 21 123 76 17 62.76926 2 +2776 21 124 76 15 71.4396 2 +2777 21 125 76 13 67.19145 2 +2778 21 126 76 16 85.03801 2 +2779 21 127 76 18 82.63491 4 +2780 21 128 76 20 84.24989 4 +2781 21 129 80 17 87.44363 2 +2782 21 130 80 15 82.0438 4 +2783 21 131 80 13 97.84318 2 +2784 21 132 80 14 91.97536 2 +2785 21 133 80 16 112.87136 2 +2786 21 134 80 18 102.50342 2 +2787 21 135 80 20 107.68275 2 +2788 22 0 4 25 111.71589 2 +2789 22 1 4 23 115.30997 4 +2790 22 2 4 21 107.56593 2 +2791 22 3 4 20 113.48844 2 +2792 22 4 4 22 101.30566 2 +2793 22 5 4 24 93.88881 4 +2794 22 6 4 26 83.55765 2 +2795 22 7 8 25 91.72925 2 +2796 22 8 8 23 98.59803 2 +2797 22 9 8 21 82.01957 2 +2798 22 10 8 22 85.82779 4 +2799 22 11 8 24 80.70154 2 +2800 22 12 8 26 73.92448 2 +2801 22 13 12 25 88.31252 2 +2802 22 14 12 23 86.66804 2 +2803 22 15 12 21 84.52341 4 +2804 22 16 12 19 76.80891 2 +2805 22 17 12 22 88.30418 2 +2806 22 18 12 24 70.11881 2 +2807 22 19 12 26 69.71711 2 +2808 22 20 16 25 91.7412 4 +2809 22 21 16 23 89.02145 4 +2810 22 22 16 21 82.123 4 +2811 22 23 16 20 86.48026 4 +2812 22 24 16 22 75.26604 2 +2813 22 25 16 24 70.82425 2 +2814 22 26 16 26 71.63284 2 +2815 22 27 20 27 82.22092 2 +2816 22 28 20 25 85.75116 2 +2817 22 29 20 23 74.07336 2 +2818 22 30 20 21 70.66012 2 +2819 22 31 20 22 72.83744 2 +2820 22 32 20 24 71.79055 2 +2821 22 33 20 26 72.5794 2 +2822 22 34 24 25 89.9791 2 +2823 22 35 24 23 79.98843 2 +2824 22 36 24 21 72.38287 2 +2825 22 37 24 19 73.71292 2 +2826 22 38 24 22 69.55551 2 +2827 22 39 24 24 70.37299 2 +2828 22 40 24 26 79.3823 2 +2829 22 41 28 25 85.06956 2 +2830 22 42 28 23 76.31486 2 +2831 22 43 28 21 81.14909 2 +2832 22 44 28 22 75.02314 2 +2833 22 45 28 24 75.2789 2 +2834 22 46 28 26 71.74619 2 +2835 22 47 28 28 73.78237 2 +2836 22 48 32 25 81.11498 2 +2837 22 49 32 23 69.62003 2 +2838 22 50 32 21 72.11919 2 +2839 22 51 32 22 74.53193 2 +2840 22 52 32 24 73.33566 2 +2841 22 53 32 26 84.35797 2 +2842 22 54 36 25 94.05161 2 +2843 22 55 36 23 72.79031 2 +2844 22 56 36 21 88.64121 2 +2845 22 57 36 19 72.3534 2 +2846 22 58 36 22 70.28596 2 +2847 22 59 36 24 69.59868 2 +2848 22 60 36 26 84.96815 2 +2849 22 61 40 25 86.12278 2 +2850 22 62 40 23 82.03917 4 +2851 22 63 40 21 71.33859 2 +2852 22 64 40 19 72.90669 2 +2853 22 65 40 22 70.64323 2 +2854 22 66 40 24 70.22141 2 +2855 22 67 40 26 73.41609 2 +2856 22 68 44 25 68.8101 2 +2857 22 69 44 23 73.56475 2 +2858 22 70 44 21 70.92828 2 +2859 22 71 44 20 72.86775 2 +2860 22 72 44 22 74.73376 2 +2861 22 73 44 24 89.37756 2 +2862 22 74 44 26 82.59584 4 +2863 22 75 48 25 80.36854 2 +2864 22 76 48 23 70.73075 2 +2865 22 77 48 21 73.05891 2 +2866 22 78 48 20 72.67098 2 +2867 22 79 48 22 76.65253 2 +2868 22 80 48 24 74.96959 2 +2869 22 81 48 26 86.11461 4 +2870 22 82 52 25 76.8571 2 +2871 22 83 52 23 67.06213 2 +2872 22 84 52 21 73.11842 2 +2873 22 85 52 22 77.07518 2 +2874 22 86 52 24 71.10258 2 +2875 22 87 52 26 75.32659 2 +2876 22 88 56 27 70.99376 2 +2877 22 89 56 25 70.01188 2 +2878 22 90 56 23 79.45068 2 +2879 22 91 56 21 72.49402 2 +2880 22 92 56 22 72.4846 2 +2881 22 93 56 24 74.75854 2 +2882 22 94 56 26 85.11059 2 +2883 22 95 60 25 76.52477 2 +2884 22 96 60 23 69.55304 2 +2885 22 97 60 21 71.87395 2 +2886 22 98 60 20 75.52738 2 +2887 22 99 60 22 75.19132 2 +2888 22 100 60 24 75.72908 2 +2889 22 101 60 26 86.38739 2 +2890 22 102 64 25 67.72042 2 +2891 22 103 64 23 68.70452 2 +2892 22 104 64 21 76.80544 2 +2893 22 105 64 22 81.92797 2 +2894 22 106 64 24 76.40733 2 +2895 22 107 64 26 84.96553 2 +2896 22 108 64 28 87.61413 2 +2897 22 109 68 25 67.67467 2 +2898 22 110 68 23 71.10361 2 +2899 22 111 68 21 71.30256 2 +2900 22 112 68 19 85.43278 2 +2901 22 113 68 22 93.02241 2 +2902 22 114 68 24 88.23148 4 +2903 22 115 68 26 88.06139 4 +2904 22 116 72 25 69.80397 2 +2905 22 117 72 23 70.99915 2 +2906 22 118 72 21 74.91687 2 +2907 22 119 72 20 73.91044 2 +2908 22 120 72 22 100.22797 2 +2909 22 121 72 24 86.11079 2 +2910 22 122 72 26 88.96065 2 +2911 22 123 76 25 69.19518 2 +2912 22 124 76 23 79.10805 2 +2913 22 125 76 21 83.9115 2 +2914 22 126 76 22 87.96225 4 +2915 22 127 76 24 92.80996 2 +2916 22 128 76 26 97.89679 4 +2917 22 129 80 25 89.96151 2 +2918 22 130 80 23 95.43544 2 +2919 22 131 80 21 95.45943 2 +2920 22 132 80 19 112.01284 4 +2921 22 133 80 22 110.07878 4 +2922 22 134 80 24 110.71772 4 +2923 22 135 80 26 107.03965 2 +2924 23 0 4 33 113.63699 2 +2925 23 1 4 31 113.78691 2 +2926 23 2 4 29 115.03717 3 +2927 23 3 4 27 108.97094 2 +2928 23 4 4 28 113.61593 4 +2929 23 5 4 30 108.31248 2 +2930 23 6 4 32 105.03827 2 +2931 23 7 8 33 110.32286 4 +2932 23 8 8 31 104.44407 4 +2933 23 9 8 29 107.75603 4 +2934 23 10 8 27 96.53655 2 +2935 23 11 8 28 95.68574 2 +2936 23 12 8 30 88.17455 2 +2937 23 13 8 32 86.07008 2 +2938 23 14 12 33 95.54773 2 +2939 23 15 12 31 100.49996 4 +2940 23 16 12 29 84.36275 2 +2941 23 17 12 27 85.36502 2 +2942 23 18 12 28 84.97428 2 +2943 23 19 12 30 81.98749 2 +2944 23 20 12 32 82.45321 2 +2945 23 21 16 33 99.21707 2 +2946 23 22 16 31 91.15942 2 +2947 23 23 16 29 84.66866 2 +2948 23 24 16 27 83.71216 2 +2949 23 25 16 28 90.3172 2 +2950 23 26 16 30 79.96436 2 +2951 23 27 16 32 78.63403 2 +2952 23 28 20 33 94.87175 2 +2953 23 29 20 31 95.16583 2 +2954 23 30 20 29 88.6763 2 +2955 23 31 20 28 85.59337 2 +2956 23 32 20 30 81.96961 2 +2957 23 33 20 32 82.14536 2 +2958 23 34 20 34 89.96096 4 +2959 23 35 24 31 101.4464 2 +2960 23 36 24 29 92.4518 4 +2961 23 37 24 27 84.35322 2 +2962 23 38 24 28 90.2787 2 +2963 23 39 24 30 79.03629 2 +2964 23 40 24 32 80.51599 2 +2965 23 41 24 34 86.55404 2 +2966 23 42 28 31 94.67799 2 +2967 23 43 28 29 83.03783 2 +2968 23 44 28 27 84.89952 2 +2969 23 45 28 30 80.12912 2 +2970 23 46 28 32 79.90199 2 +2971 23 47 28 34 78.99182 2 +2972 23 48 32 33 98.19312 2 +2973 23 49 32 31 97.48399 2 +2974 23 50 32 29 80.18413 2 +2975 23 51 32 27 79.52707 2 +2976 23 52 32 28 82.79177 2 +2977 23 53 32 30 88.52373 2 +2978 23 54 32 32 89.40853 2 +2979 23 55 36 31 92.59828 4 +2980 23 56 36 29 96.40507 2 +2981 23 57 36 27 83.05179 2 +2982 23 58 36 28 87.69362 2 +2983 23 59 36 30 80.82786 2 +2984 23 60 36 32 80.11567 2 +2985 23 61 36 34 86.73351 2 +2986 23 62 40 31 96.49391 2 +2987 23 63 40 29 90.85319 4 +2988 23 64 40 27 88.98717 2 +2989 23 65 40 28 84.27265 2 +2990 23 66 40 30 79.72088 2 +2991 23 67 40 32 83.42405 2 +2992 23 68 40 34 85.08877 2 +2993 23 69 44 33 86.98594 2 +2994 23 70 44 31 78.69394 2 +2995 23 71 44 29 80.01593 2 +2996 23 72 44 27 86.83865 2 +2997 23 73 44 28 89.37306 2 +2998 23 74 44 30 90.0103 4 +2999 23 75 44 32 98.65773 2 +3000 23 76 48 33 92.92869 2 +3001 23 77 48 31 80.24733 2 +3002 23 78 48 29 80.23508 2 +3003 23 79 48 27 82.85796 2 +3004 23 80 48 28 84.9284 2 +3005 23 81 48 30 91.77159 2 +3006 23 82 48 32 97.46824 2 +3007 23 83 52 31 92.75012 2 +3008 23 84 52 29 79.12128 2 +3009 23 85 52 27 94.56653 2 +3010 23 86 52 28 81.61671 2 +3011 23 87 52 30 83.56589 2 +3012 23 88 52 32 95.52408 2 +3013 23 89 52 34 95.73446 4 +3014 23 90 56 33 76.35729 2 +3015 23 91 56 31 78.34248 2 +3016 23 92 56 29 81.62539 2 +3017 23 93 56 28 89.08634 2 +3018 23 94 56 30 84.59291 2 +3019 23 95 56 32 93.45967 2 +3020 23 96 60 33 87.28527 2 +3021 23 97 60 31 77.5879 2 +3022 23 98 60 29 80.069 2 +3023 23 99 60 27 83.21897 2 +3024 23 100 60 28 88.40615 2 +3025 23 101 60 30 86.83839 2 +3026 23 102 60 32 97.06944 2 +3027 23 103 64 33 81.14806 2 +3028 23 104 64 31 76.58826 2 +3029 23 105 64 29 83.34569 2 +3030 23 106 64 27 89.10547 2 +3031 23 107 64 30 82.27849 2 +3032 23 108 64 32 96.8305 2 +3033 23 109 64 34 101.41379 2 +3034 23 110 68 31 80.24241 2 +3035 23 111 68 29 83.28994 2 +3036 23 112 68 27 83.96189 2 +3037 23 113 68 28 83.8235 2 +3038 23 114 68 30 91.96963 2 +3039 23 115 68 32 94.04258 2 +3040 23 116 68 34 99.71041 4 +3041 23 117 72 31 83.41876 2 +3042 23 118 72 29 81.92415 2 +3043 23 119 72 27 85.48416 2 +3044 23 120 72 28 84.68033 2 +3045 23 121 72 30 82.68209 2 +3046 23 122 72 32 99.6747 2 +3047 23 123 72 34 100.85651 2 +3048 23 124 76 31 84.48168 2 +3049 23 125 76 29 81.39621 2 +3050 23 126 76 27 97.77724 2 +3051 23 127 76 28 93.73974 2 +3052 23 128 76 30 106.87768 4 +3053 23 129 76 32 111.20529 4 +3054 23 130 76 34 109.60235 4 +3055 23 131 80 31 105.19252 2 +3056 23 132 80 29 112.58697 2 +3057 23 133 80 27 113.29163 4 +3058 23 134 80 28 97.97624 2 +3059 23 135 80 30 99.7905 2 +3060 23 136 80 32 104.82875 2 +3061 23 137 80 34 111.66139 2 +3062 24 0 4 39 114.44852 4 +3063 24 1 4 37 115.8993 4 +3064 24 2 4 35 112.68044 4 +3065 24 3 4 34 112.60644 2 +3066 24 4 4 36 110.38335 2 +3067 24 5 4 38 112.94922 4 +3068 24 6 4 40 108.9958 2 +3069 24 7 8 39 114.12128 4 +3070 24 8 8 37 114.48544 2 +3071 24 9 8 35 114.37898 4 +3072 24 10 8 34 111.20019 2 +3073 24 11 8 36 96.49465 2 +3074 24 12 8 38 91.18277 2 +3075 24 13 8 40 87.56159 2 +3076 24 14 12 39 109.28451 2 +3077 24 15 12 37 106.68446 2 +3078 24 16 12 35 97.40932 2 +3079 24 17 12 34 95.57771 2 +3080 24 18 12 36 94.08329 2 +3081 24 19 12 38 90.88038 3 +3082 24 20 12 40 92.78791 2 +3083 24 21 16 39 102.76796 2 +3084 24 22 16 37 109.28695 2 +3085 24 23 16 35 100.15202 2 +3086 24 24 16 34 104.59901 4 +3087 24 25 16 36 90.79396 2 +3088 24 26 16 38 87.90998 2 +3089 24 27 16 40 88.09494 2 +3090 24 28 20 39 103.70123 2 +3091 24 29 20 37 97.09676 2 +3092 24 30 20 35 94.15451 2 +3093 24 31 20 36 92.7367 2 +3094 24 32 20 38 89.71006 2 +3095 24 33 20 40 86.42421 2 +3096 24 34 24 39 108.78698 2 +3097 24 35 24 37 103.90017 4 +3098 24 36 24 35 106.94747 2 +3099 24 37 24 33 94.1941 2 +3100 24 38 24 36 98.52375 2 +3101 24 39 24 38 87.83018 2 +3102 24 40 24 40 93.04112 2 +3103 24 41 28 39 113.00703 2 +3104 24 42 28 37 104.47878 4 +3105 24 43 28 35 94.02559 2 +3106 24 44 28 33 91.70726 2 +3107 24 45 28 36 97.01317 2 +3108 24 46 28 38 95.45116 2 +3109 24 47 28 40 90.16116 2 +3110 24 48 32 39 111.31224 2 +3111 24 49 32 37 101.78357 2 +3112 24 50 32 35 99.54982 2 +3113 24 51 32 34 100.82538 2 +3114 24 52 32 36 92.86136 2 +3115 24 53 32 38 91.28229 2 +3116 24 54 32 40 88.62518 2 +3117 24 55 36 39 102.78904 2 +3118 24 56 36 37 105.621 2 +3119 24 57 36 35 93.20979 2 +3120 24 58 36 33 94.66711 2 +3121 24 59 36 36 90.39706 2 +3122 24 60 36 38 91.53305 2 +3123 24 61 36 40 92.64712 2 +3124 24 62 40 39 109.74059 2 +3125 24 63 40 37 105.37855 2 +3126 24 64 40 35 90.09866 2 +3127 24 65 40 33 96.50556 2 +3128 24 66 40 36 91.21716 2 +3129 24 67 40 38 92.58576 2 +3130 24 68 40 40 92.25135 2 +3131 24 69 44 39 92.13484 2 +3132 24 70 44 37 90.81589 2 +3133 24 71 44 35 90.6035 2 +3134 24 72 44 34 94.74156 2 +3135 24 73 44 36 90.00334 2 +3136 24 74 44 38 94.61981 2 +3137 24 75 44 40 108.72334 2 +3138 24 76 48 39 104.78773 2 +3139 24 77 48 37 89.75451 2 +3140 24 78 48 35 90.05272 2 +3141 24 79 48 34 91.92509 2 +3142 24 80 48 36 103.23272 2 +3143 24 81 48 38 100.96602 2 +3144 24 82 48 40 102.45173 2 +3145 24 83 52 39 100.35723 2 +3146 24 84 52 37 89.74238 2 +3147 24 85 52 35 93.00848 2 +3148 24 86 52 33 97.59158 2 +3149 24 87 52 36 94.96935 2 +3150 24 88 52 38 97.22535 2 +3151 24 89 52 40 109.92577 2 +3152 24 90 56 39 87.9371 2 +3153 24 91 56 37 89.23668 2 +3154 24 92 56 35 92.48052 2 +3155 24 93 56 34 99.04511 2 +3156 24 94 56 36 94.35038 2 +3157 24 95 56 38 105.92427 4 +3158 24 96 56 40 112.08519 2 +3159 24 97 60 39 90.74507 2 +3160 24 98 60 37 87.03788 2 +3161 24 99 60 35 92.27164 2 +3162 24 100 60 34 94.26194 2 +3163 24 101 60 36 101.42166 2 +3164 24 102 60 38 97.0222 2 +3165 24 103 60 40 109.61661 2 +3166 24 104 64 39 86.54217 2 +3167 24 105 64 37 91.17173 2 +3168 24 106 64 35 94.83639 2 +3169 24 107 64 36 94.14229 2 +3170 24 108 64 38 104.09598 2 +3171 24 109 64 40 112.03059 2 +3172 24 110 68 39 99.7669 2 +3173 24 111 68 37 87.44068 2 +3174 24 112 68 35 96.76743 2 +3175 24 113 68 33 107.44685 4 +3176 24 114 68 36 100.11788 2 +3177 24 115 68 38 107.24556 2 +3178 24 116 68 40 111.54206 2 +3179 24 117 72 39 88.69117 2 +3180 24 118 72 37 90.1722 2 +3181 24 119 72 35 95.07117 2 +3182 24 120 72 33 96.58762 2 +3183 24 121 72 36 96.03247 2 +3184 24 122 72 38 110.8939 4 +3185 24 123 72 40 111.09105 2 +3186 24 124 76 39 87.55707 2 +3187 24 125 76 37 92.49838 2 +3188 24 126 76 35 95.75207 2 +3189 24 127 76 33 113.68143 4 +3190 24 128 76 36 113.89191 4 +3191 24 129 76 38 114.12963 4 +3192 24 130 76 40 115.0009 4 +3193 24 131 80 39 112.99812 2 +3194 24 132 80 37 102.45484 3 +3195 24 133 80 35 109.91696 2 +3196 24 134 80 33 110.44858 2 +3197 24 135 80 36 114.11982 2 +3198 24 136 80 38 110.49119 2 +3199 24 137 80 40 112.93176 2 diff --git a/Detectors/TPC/base/files/ROUTING-TABLES.txt b/Detectors/TPC/base/files/ROUTING-TABLES.txt new file mode 100644 index 0000000000000..68d0f5dad5b3b --- /dev/null +++ b/Detectors/TPC/base/files/ROUTING-TABLES.txt @@ -0,0 +1,36 @@ +IROC +Col 0 -> INDEX (0 - 5279) +Col 1 -> PADROW (0 - 62) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 132) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + +OROC1 +Col 0 -> INDEX (0 - 2879)(5280 - 8159) +Col 1 -> PADROW (0 - 33)(63 - 96) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 72) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + +OROC2 +Col 0 -> INDEX (0 - 3199)(8160 - 11359) +Col 1 -> PADROW (0 - 29)(97 - 126) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 80) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + +OROC3 +Col 0 -> INDEX (11360 - 14559)(0 - 3199) +Col 1 -> PADROW (0 - 24)(127 - 151) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 80) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + diff --git a/Detectors/TPC/base/files/TABLE-IROC.txt b/Detectors/TPC/base/files/TABLE-IROC.txt new file mode 100644 index 0000000000000..3662974b8408a --- /dev/null +++ b/Detectors/TPC/base/files/TABLE-IROC.txt @@ -0,0 +1,5280 @@ +0 0 0 -135.2 852.25 1 5 0 0 0 0 4 0 4 +1 0 1 -131.04 852.25 1 3 0 0 0 0 2 0 2 +2 0 2 -126.88 852.25 1 1 0 0 0 0 0 0 0 +3 0 3 -122.72 852.25 1 2 0 0 0 0 1 0 1 +4 0 4 -118.56 852.25 1 4 0 0 0 0 3 0 3 +5 0 5 -114.4 852.25 5 3 0 0 1 0 2 0 2 +6 0 6 -110.24 852.25 5 1 0 0 1 0 0 0 0 +7 0 7 -106.08 852.25 5 2 0 0 1 0 1 0 1 +8 0 8 -101.92 852.25 5 4 0 0 1 0 3 0 3 +9 0 9 -97.76 852.25 9 3 0 0 2 0 2 0 2 +10 0 10 -93.6 852.25 9 1 0 0 2 0 0 0 0 +11 0 11 -89.44 852.25 9 2 0 0 2 0 1 0 1 +12 0 12 -85.28 852.25 9 4 0 0 2 0 3 0 3 +13 0 13 -81.12 852.25 13 5 0 0 3 0 4 0 4 +14 0 14 -76.96 852.25 13 3 0 0 3 0 2 0 2 +15 0 15 -72.8 852.25 13 1 0 0 3 0 0 0 0 +16 0 16 -68.64 852.25 13 2 0 0 3 0 1 0 1 +17 0 17 -64.48 852.25 13 4 0 0 3 0 3 0 3 +18 0 18 -60.32 852.25 17 3 0 0 4 0 2 0 2 +19 0 19 -56.16 852.25 17 1 0 0 4 0 0 0 0 +20 0 20 -52 852.25 17 2 0 0 4 0 1 0 1 +21 0 21 -47.84 852.25 17 4 0 0 4 0 3 0 3 +22 0 22 -43.68 852.25 21 3 0 0 5 0 2 0 2 +23 0 23 -39.52 852.25 21 1 0 0 5 0 0 0 0 +24 0 24 -35.36 852.25 21 2 0 0 5 0 1 0 1 +25 0 25 -31.2 852.25 21 4 0 0 5 0 3 0 3 +26 0 26 -27.04 852.25 25 3 0 0 6 0 2 0 2 +27 0 27 -22.88 852.25 25 1 0 0 6 0 0 0 0 +28 0 28 -18.72 852.25 25 2 0 0 6 0 1 0 1 +29 0 29 -14.56 852.25 25 4 0 0 6 0 3 0 3 +30 0 30 -10.4 852.25 25 6 0 0 6 0 5 0 5 +31 0 31 -6.24 852.25 29 3 0 0 7 0 2 0 2 +32 0 32 -2.08 852.25 29 1 0 0 7 0 0 0 0 +33 0 33 2.08 852.25 29 2 0 0 7 0 1 0 1 +34 0 34 6.24 852.25 29 4 0 0 7 0 3 0 3 +35 0 35 10.4 852.25 33 5 0 0 8 0 4 0 4 +36 0 36 14.56 852.25 33 3 0 0 8 0 2 0 2 +37 0 37 18.72 852.25 33 1 0 0 8 0 0 0 0 +38 0 38 22.88 852.25 33 2 0 0 8 0 1 0 1 +39 0 39 27.04 852.25 33 4 0 0 8 0 3 0 3 +40 0 40 31.2 852.25 37 3 0 0 9 0 2 0 2 +41 0 41 35.36 852.25 37 1 0 0 9 0 0 0 0 +42 0 42 39.52 852.25 37 2 0 0 9 0 1 0 1 +43 0 43 43.68 852.25 37 4 0 0 9 0 3 0 3 +44 0 44 47.84 852.25 41 3 0 0 10 0 2 0 2 +45 0 45 52 852.25 41 1 0 0 10 0 0 0 0 +46 0 46 56.16 852.25 41 2 0 0 10 0 1 0 1 +47 0 47 60.32 852.25 41 4 0 0 10 0 3 0 3 +48 0 48 64.48 852.25 45 3 0 0 11 0 2 0 2 +49 0 49 68.64 852.25 45 1 0 0 11 0 0 0 0 +50 0 50 72.8 852.25 45 2 0 0 11 0 1 0 1 +51 0 51 76.96 852.25 45 4 0 0 11 0 3 0 3 +52 0 52 81.12 852.25 45 6 0 0 11 0 5 0 5 +53 0 53 85.28 852.25 49 3 0 0 12 0 2 0 2 +54 0 54 89.44 852.25 49 1 0 0 12 0 0 0 0 +55 0 55 93.6 852.25 49 2 0 0 12 0 1 0 1 +56 0 56 97.76 852.25 49 4 0 0 12 0 3 0 3 +57 0 57 101.92 852.25 53 3 0 0 13 0 2 0 2 +58 0 58 106.08 852.25 53 1 0 0 13 0 0 0 0 +59 0 59 110.24 852.25 53 2 0 0 13 0 1 0 1 +60 0 60 114.4 852.25 53 4 0 0 13 0 3 0 3 +61 0 61 118.56 852.25 57 3 0 0 14 0 2 0 2 +62 0 62 122.72 852.25 57 1 0 0 14 0 0 0 0 +63 0 63 126.88 852.25 57 2 0 0 14 0 1 0 1 +64 0 64 131.04 852.25 57 4 0 0 14 0 3 0 3 +65 0 65 135.2 852.25 57 6 0 0 14 0 5 0 5 +66 1 0 -135.2 859.75 1 9 0 0 0 0 8 0 8 +67 1 1 -131.04 859.75 1 7 0 0 0 0 6 0 6 +68 1 2 -126.88 859.75 1 6 0 0 0 0 5 0 5 +69 1 3 -122.72 859.75 1 8 0 0 0 0 7 0 7 +70 1 4 -118.56 859.75 5 7 0 0 1 0 6 0 6 +71 1 5 -114.4 859.75 5 5 0 0 1 0 4 0 4 +72 1 6 -110.24 859.75 5 6 0 0 1 0 5 0 5 +73 1 7 -106.08 859.75 5 8 0 0 1 0 7 0 7 +74 1 8 -101.92 859.75 5 10 0 0 1 0 9 0 9 +75 1 9 -97.76 859.75 9 7 0 0 2 0 6 0 6 +76 1 10 -93.6 859.75 9 5 0 0 2 0 4 0 4 +77 1 11 -89.44 859.75 9 6 0 0 2 0 5 0 5 +78 1 12 -85.28 859.75 9 8 0 0 2 0 7 0 7 +79 1 13 -81.12 859.75 13 9 0 0 3 0 8 0 8 +80 1 14 -76.96 859.75 13 7 0 0 3 0 6 0 6 +81 1 15 -72.8 859.75 13 6 0 0 3 0 5 0 5 +82 1 16 -68.64 859.75 13 8 0 0 3 0 7 0 7 +83 1 17 -64.48 859.75 13 10 0 0 3 0 9 0 9 +84 1 18 -60.32 859.75 17 7 0 0 4 0 6 0 6 +85 1 19 -56.16 859.75 17 5 0 0 4 0 4 0 4 +86 1 20 -52 859.75 17 6 0 0 4 0 5 0 5 +87 1 21 -47.84 859.75 17 8 0 0 4 0 7 0 7 +88 1 22 -43.68 859.75 21 7 0 0 5 0 6 0 6 +89 1 23 -39.52 859.75 21 5 0 0 5 0 4 0 4 +90 1 24 -35.36 859.75 21 6 0 0 5 0 5 0 5 +91 1 25 -31.2 859.75 21 8 0 0 5 0 7 0 7 +92 1 26 -27.04 859.75 25 9 0 0 6 0 8 0 8 +93 1 27 -22.88 859.75 25 7 0 0 6 0 6 0 6 +94 1 28 -18.72 859.75 25 5 0 0 6 0 4 0 4 +95 1 29 -14.56 859.75 25 8 0 0 6 0 7 0 7 +96 1 30 -10.4 859.75 25 10 0 0 6 0 9 0 9 +97 1 31 -6.24 859.75 29 7 0 0 7 0 6 0 6 +98 1 32 -2.08 859.75 29 5 0 0 7 0 4 0 4 +99 1 33 2.08 859.75 29 6 0 0 7 0 5 0 5 +100 1 34 6.24 859.75 29 8 0 0 7 0 7 0 7 +101 1 35 10.4 859.75 33 9 0 0 8 0 8 0 8 +102 1 36 14.56 859.75 33 7 0 0 8 0 6 0 6 +103 1 37 18.72 859.75 33 6 0 0 8 0 5 0 5 +104 1 38 22.88 859.75 33 8 0 0 8 0 7 0 7 +105 1 39 27.04 859.75 33 10 0 0 8 0 9 0 9 +106 1 40 31.2 859.75 37 7 0 0 9 0 6 0 6 +107 1 41 35.36 859.75 37 5 0 0 9 0 4 0 4 +108 1 42 39.52 859.75 37 6 0 0 9 0 5 0 5 +109 1 43 43.68 859.75 37 8 0 0 9 0 7 0 7 +110 1 44 47.84 859.75 41 7 0 0 10 0 6 0 6 +111 1 45 52 859.75 41 5 0 0 10 0 4 0 4 +112 1 46 56.16 859.75 41 6 0 0 10 0 5 0 5 +113 1 47 60.32 859.75 41 8 0 0 10 0 7 0 7 +114 1 48 64.48 859.75 45 9 0 0 11 0 8 0 8 +115 1 49 68.64 859.75 45 7 0 0 11 0 6 0 6 +116 1 50 72.8 859.75 45 5 0 0 11 0 4 0 4 +117 1 51 76.96 859.75 45 8 0 0 11 0 7 0 7 +118 1 52 81.12 859.75 45 10 0 0 11 0 9 0 9 +119 1 53 85.28 859.75 49 7 0 0 12 0 6 0 6 +120 1 54 89.44 859.75 49 5 0 0 12 0 4 0 4 +121 1 55 93.6 859.75 49 6 0 0 12 0 5 0 5 +122 1 56 97.76 859.75 49 8 0 0 12 0 7 0 7 +123 1 57 101.92 859.75 53 9 0 0 13 0 8 0 8 +124 1 58 106.08 859.75 53 7 0 0 13 0 6 0 6 +125 1 59 110.24 859.75 53 5 0 0 13 0 4 0 4 +126 1 60 114.4 859.75 53 6 0 0 13 0 5 0 5 +127 1 61 118.56 859.75 53 8 0 0 13 0 7 0 7 +128 1 62 122.72 859.75 57 7 0 0 14 0 6 0 6 +129 1 63 126.88 859.75 57 5 0 0 14 0 4 0 4 +130 1 64 131.04 859.75 57 8 0 0 14 0 7 0 7 +131 1 65 135.2 859.75 57 10 0 0 14 0 9 0 9 +132 2 0 -135.2 867.25 1 13 0 0 0 0 12 0 12 +133 2 1 -131.04 867.25 1 11 0 0 0 0 10 0 10 +134 2 2 -126.88 867.25 1 10 0 0 0 0 9 0 9 +135 2 3 -122.72 867.25 1 12 0 0 0 0 11 0 11 +136 2 4 -118.56 867.25 5 11 0 0 1 0 10 0 10 +137 2 5 -114.4 867.25 5 9 0 0 1 0 8 0 8 +138 2 6 -110.24 867.25 5 12 0 0 1 0 11 0 11 +139 2 7 -106.08 867.25 5 14 0 0 1 0 13 0 13 +140 2 8 -101.92 867.25 9 11 0 0 2 0 10 0 10 +141 2 9 -97.76 867.25 9 9 0 0 2 0 8 0 8 +142 2 10 -93.6 867.25 9 10 0 0 2 0 9 0 9 +143 2 11 -89.44 867.25 9 12 0 0 2 0 11 0 11 +144 2 12 -85.28 867.25 9 14 0 0 2 0 13 0 13 +145 2 13 -81.12 867.25 13 13 0 0 3 0 12 0 12 +146 2 14 -76.96 867.25 13 11 0 0 3 0 10 0 10 +147 2 15 -72.8 867.25 13 12 0 0 3 0 11 0 11 +148 2 16 -68.64 867.25 13 14 0 0 3 0 13 0 13 +149 2 17 -64.48 867.25 17 13 0 0 4 0 12 0 12 +150 2 18 -60.32 867.25 17 11 0 0 4 0 10 0 10 +151 2 19 -56.16 867.25 17 9 0 0 4 0 8 0 8 +152 2 20 -52 867.25 17 10 0 0 4 0 9 0 9 +153 2 21 -47.84 867.25 17 12 0 0 4 0 11 0 11 +154 2 22 -43.68 867.25 21 11 0 0 5 0 10 0 10 +155 2 23 -39.52 867.25 21 9 0 0 5 0 8 0 8 +156 2 24 -35.36 867.25 21 10 0 0 5 0 9 0 9 +157 2 25 -31.2 867.25 21 12 0 0 5 0 11 0 11 +158 2 26 -27.04 867.25 25 13 0 0 6 0 12 0 12 +159 2 27 -22.88 867.25 25 11 0 0 6 0 10 0 10 +160 2 28 -18.72 867.25 25 12 0 0 6 0 11 0 11 +161 2 29 -14.56 867.25 25 14 0 0 6 0 13 0 13 +162 2 30 -10.4 867.25 25 16 0 0 6 0 15 0 15 +163 2 31 -6.24 867.25 29 11 0 0 7 0 10 0 10 +164 2 32 -2.08 867.25 29 9 0 0 7 0 8 0 8 +165 2 33 2.08 867.25 29 10 0 0 7 0 9 0 9 +166 2 34 6.24 867.25 29 12 0 0 7 0 11 0 11 +167 2 35 10.4 867.25 33 15 0 0 8 0 14 0 14 +168 2 36 14.56 867.25 33 13 0 0 8 0 12 0 12 +169 2 37 18.72 867.25 33 11 0 0 8 0 10 0 10 +170 2 38 22.88 867.25 33 12 0 0 8 0 11 0 11 +171 2 39 27.04 867.25 33 14 0 0 8 0 13 0 13 +172 2 40 31.2 867.25 37 11 0 0 9 0 10 0 10 +173 2 41 35.36 867.25 37 9 0 0 9 0 8 0 8 +174 2 42 39.52 867.25 37 10 0 0 9 0 9 0 9 +175 2 43 43.68 867.25 37 12 0 0 9 0 11 0 11 +176 2 44 47.84 867.25 41 11 0 0 10 0 10 0 10 +177 2 45 52 867.25 41 9 0 0 10 0 8 0 8 +178 2 46 56.16 867.25 41 10 0 0 10 0 9 0 9 +179 2 47 60.32 867.25 41 12 0 0 10 0 11 0 11 +180 2 48 64.48 867.25 41 14 0 0 10 0 13 0 13 +181 2 49 68.64 867.25 45 13 0 0 11 0 12 0 12 +182 2 50 72.8 867.25 45 11 0 0 11 0 10 0 10 +183 2 51 76.96 867.25 45 12 0 0 11 0 11 0 11 +184 2 52 81.12 867.25 45 14 0 0 11 0 13 0 13 +185 2 53 85.28 867.25 49 13 0 0 12 0 12 0 12 +186 2 54 89.44 867.25 49 11 0 0 12 0 10 0 10 +187 2 55 93.6 867.25 49 9 0 0 12 0 8 0 8 +188 2 56 97.76 867.25 49 10 0 0 12 0 9 0 9 +189 2 57 101.92 867.25 49 12 0 0 12 0 11 0 11 +190 2 58 106.08 867.25 53 13 0 0 13 0 12 0 12 +191 2 59 110.24 867.25 53 11 0 0 13 0 10 0 10 +192 2 60 114.4 867.25 53 10 0 0 13 0 9 0 9 +193 2 61 118.56 867.25 53 12 0 0 13 0 11 0 11 +194 2 62 122.72 867.25 57 11 0 0 14 0 10 0 10 +195 2 63 126.88 867.25 57 9 0 0 14 0 8 0 8 +196 2 64 131.04 867.25 57 12 0 0 14 0 11 0 11 +197 2 65 135.2 867.25 57 14 0 0 14 0 13 0 13 +198 3 0 -139.36 874.75 1 17 0 0 0 0 16 0 16 +199 3 1 -135.2 874.75 1 15 0 0 0 0 14 0 14 +200 3 2 -131.04 874.75 1 14 0 0 0 0 13 0 13 +201 3 3 -126.88 874.75 1 16 0 0 0 0 15 0 15 +202 3 4 -122.72 874.75 1 18 0 0 0 0 17 0 17 +203 3 5 -118.56 874.75 5 15 0 0 1 0 14 0 14 +204 3 6 -114.4 874.75 5 13 0 0 1 0 12 0 12 +205 3 7 -110.24 874.75 5 16 0 0 1 0 15 0 15 +206 3 8 -106.08 874.75 5 18 0 0 1 0 17 0 17 +207 3 9 -101.92 874.75 9 17 0 0 2 0 16 0 16 +208 3 10 -97.76 874.75 9 15 0 0 2 0 14 0 14 +209 3 11 -93.6 874.75 9 13 0 0 2 0 12 0 12 +210 3 12 -89.44 874.75 9 16 0 0 2 0 15 0 15 +211 3 13 -85.28 874.75 9 18 0 0 2 0 17 0 17 +212 3 14 -81.12 874.75 13 17 0 0 3 0 16 0 16 +213 3 15 -76.96 874.75 13 15 0 0 3 0 14 0 14 +214 3 16 -72.8 874.75 13 16 0 0 3 0 15 0 15 +215 3 17 -68.64 874.75 13 18 0 0 3 0 17 0 17 +216 3 18 -64.48 874.75 17 17 0 0 4 0 16 0 16 +217 3 19 -60.32 874.75 17 15 0 0 4 0 14 0 14 +218 3 20 -56.16 874.75 17 14 0 0 4 0 13 0 13 +219 3 21 -52 874.75 17 16 0 0 4 0 15 0 15 +220 3 22 -47.84 874.75 17 18 0 0 4 0 17 0 17 +221 3 23 -43.68 874.75 21 15 0 0 5 0 14 0 14 +222 3 24 -39.52 874.75 21 13 0 0 5 0 12 0 12 +223 3 25 -35.36 874.75 21 14 0 0 5 0 13 0 13 +224 3 26 -31.2 874.75 21 16 0 0 5 0 15 0 15 +225 3 27 -27.04 874.75 25 19 0 0 6 0 18 0 18 +226 3 28 -22.88 874.75 25 17 0 0 6 0 16 0 16 +227 3 29 -18.72 874.75 25 15 0 0 6 0 14 0 14 +228 3 30 -14.56 874.75 25 18 0 0 6 0 17 0 17 +229 3 31 -10.4 874.75 25 20 0 0 6 0 19 0 19 +230 3 32 -6.24 874.75 29 15 0 0 7 0 14 0 14 +231 3 33 -2.08 874.75 29 13 0 0 7 0 12 0 12 +232 3 34 2.08 874.75 29 14 0 0 7 0 13 0 13 +233 3 35 6.24 874.75 29 16 0 0 7 0 15 0 15 +234 3 36 10.4 874.75 33 19 0 0 8 0 18 0 18 +235 3 37 14.56 874.75 33 17 0 0 8 0 16 0 16 +236 3 38 18.72 874.75 33 16 0 0 8 0 15 0 15 +237 3 39 22.88 874.75 33 18 0 0 8 0 17 0 17 +238 3 40 27.04 874.75 33 20 0 0 8 0 19 0 19 +239 3 41 31.2 874.75 37 15 0 0 9 0 14 0 14 +240 3 42 35.36 874.75 37 13 0 0 9 0 12 0 12 +241 3 43 39.52 874.75 37 14 0 0 9 0 13 0 13 +242 3 44 43.68 874.75 37 16 0 0 9 0 15 0 15 +243 3 45 47.84 874.75 41 17 0 0 10 0 16 0 16 +244 3 46 52 874.75 41 15 0 0 10 0 14 0 14 +245 3 47 56.16 874.75 41 13 0 0 10 0 12 0 12 +246 3 48 60.32 874.75 41 16 0 0 10 0 15 0 15 +247 3 49 64.48 874.75 41 18 0 0 10 0 17 0 17 +248 3 50 68.64 874.75 45 17 0 0 11 0 16 0 16 +249 3 51 72.8 874.75 45 15 0 0 11 0 14 0 14 +250 3 52 76.96 874.75 45 16 0 0 11 0 15 0 15 +251 3 53 81.12 874.75 45 18 0 0 11 0 17 0 17 +252 3 54 85.28 874.75 49 17 0 0 12 0 16 0 16 +253 3 55 89.44 874.75 49 15 0 0 12 0 14 0 14 +254 3 56 93.6 874.75 49 14 0 0 12 0 13 0 13 +255 3 57 97.76 874.75 49 16 0 0 12 0 15 0 15 +256 3 58 101.92 874.75 49 18 0 0 12 0 17 0 17 +257 3 59 106.08 874.75 53 17 0 0 13 0 16 0 16 +258 3 60 110.24 874.75 53 15 0 0 13 0 14 0 14 +259 3 61 114.4 874.75 53 14 0 0 13 0 13 0 13 +260 3 62 118.56 874.75 53 16 0 0 13 0 15 0 15 +261 3 63 122.72 874.75 57 17 0 0 14 0 16 0 16 +262 3 64 126.88 874.75 57 15 0 0 14 0 14 0 14 +263 3 65 131.04 874.75 57 13 0 0 14 0 12 0 12 +264 3 66 135.2 874.75 57 16 0 0 14 0 15 0 15 +265 3 67 139.36 874.75 57 18 0 0 14 0 17 0 17 +266 4 0 -139.36 882.25 1 21 0 0 0 0 20 0 20 +267 4 1 -135.2 882.25 1 19 0 0 0 0 18 0 18 +268 4 2 -131.04 882.25 1 20 0 0 0 0 19 0 19 +269 4 3 -126.88 882.25 1 22 0 0 0 0 21 0 21 +270 4 4 -122.72 882.25 5 21 0 0 1 0 20 0 20 +271 4 5 -118.56 882.25 5 19 0 0 1 0 18 0 18 +272 4 6 -114.4 882.25 5 17 0 0 1 0 16 0 16 +273 4 7 -110.24 882.25 5 20 0 0 1 0 19 0 19 +274 4 8 -106.08 882.25 5 22 0 0 1 0 21 0 21 +275 4 9 -101.92 882.25 9 21 0 0 2 0 20 0 20 +276 4 10 -97.76 882.25 9 19 0 0 2 0 18 0 18 +277 4 11 -93.6 882.25 9 20 0 0 2 0 19 0 19 +278 4 12 -89.44 882.25 9 22 0 0 2 0 21 0 21 +279 4 13 -85.28 882.25 9 24 0 0 2 0 23 0 23 +280 4 14 -81.12 882.25 13 21 0 0 3 0 20 0 20 +281 4 15 -76.96 882.25 13 19 0 0 3 0 18 0 18 +282 4 16 -72.8 882.25 13 20 0 0 3 0 19 0 19 +283 4 17 -68.64 882.25 13 22 0 0 3 0 21 0 21 +284 4 18 -64.48 882.25 17 23 0 0 4 0 22 0 22 +285 4 19 -60.32 882.25 17 21 0 0 4 0 20 0 20 +286 4 20 -56.16 882.25 17 19 0 0 4 0 18 0 18 +287 4 21 -52 882.25 17 20 0 0 4 0 19 0 19 +288 4 22 -47.84 882.25 17 22 0 0 4 0 21 0 21 +289 4 23 -43.68 882.25 21 19 0 0 5 0 18 0 18 +290 4 24 -39.52 882.25 21 17 0 0 5 0 16 0 16 +291 4 25 -35.36 882.25 21 18 0 0 5 0 17 0 17 +292 4 26 -31.2 882.25 21 20 0 0 5 0 19 0 19 +293 4 27 -27.04 882.25 25 23 0 0 6 0 22 0 22 +294 4 28 -22.88 882.25 25 21 0 0 6 0 20 0 20 +295 4 29 -18.72 882.25 25 22 0 0 6 0 21 0 21 +296 4 30 -14.56 882.25 25 24 0 0 6 0 23 0 23 +297 4 31 -10.4 882.25 25 26 0 0 6 0 25 0 25 +298 4 32 -6.24 882.25 29 19 0 0 7 0 18 0 18 +299 4 33 -2.08 882.25 29 17 0 0 7 0 16 0 16 +300 4 34 2.08 882.25 29 18 0 0 7 0 17 0 17 +301 4 35 6.24 882.25 29 20 0 0 7 0 19 0 19 +302 4 36 10.4 882.25 33 25 0 0 8 0 24 0 24 +303 4 37 14.56 882.25 33 23 0 0 8 0 22 0 22 +304 4 38 18.72 882.25 33 21 0 0 8 0 20 0 20 +305 4 39 22.88 882.25 33 22 0 0 8 0 21 0 21 +306 4 40 27.04 882.25 33 24 0 0 8 0 23 0 23 +307 4 41 31.2 882.25 37 19 0 0 9 0 18 0 18 +308 4 42 35.36 882.25 37 17 0 0 9 0 16 0 16 +309 4 43 39.52 882.25 37 18 0 0 9 0 17 0 17 +310 4 44 43.68 882.25 37 20 0 0 9 0 19 0 19 +311 4 45 47.84 882.25 41 21 0 0 10 0 20 0 20 +312 4 46 52 882.25 41 19 0 0 10 0 18 0 18 +313 4 47 56.16 882.25 41 20 0 0 10 0 19 0 19 +314 4 48 60.32 882.25 41 22 0 0 10 0 21 0 21 +315 4 49 64.48 882.25 41 24 0 0 10 0 23 0 23 +316 4 50 68.64 882.25 45 21 0 0 11 0 20 0 20 +317 4 51 72.8 882.25 45 19 0 0 11 0 18 0 18 +318 4 52 76.96 882.25 45 20 0 0 11 0 19 0 19 +319 4 53 81.12 882.25 45 22 0 0 11 0 21 0 21 +320 4 54 85.28 882.25 49 23 0 0 12 0 22 0 22 +321 4 55 89.44 882.25 49 21 0 0 12 0 20 0 20 +322 4 56 93.6 882.25 49 19 0 0 12 0 18 0 18 +323 4 57 97.76 882.25 49 20 0 0 12 0 19 0 19 +324 4 58 101.92 882.25 49 22 0 0 12 0 21 0 21 +325 4 59 106.08 882.25 53 21 0 0 13 0 20 0 20 +326 4 60 110.24 882.25 53 19 0 0 13 0 18 0 18 +327 4 61 114.4 882.25 53 18 0 0 13 0 17 0 17 +328 4 62 118.56 882.25 53 20 0 0 13 0 19 0 19 +329 4 63 122.72 882.25 53 22 0 0 13 0 21 0 21 +330 4 64 126.88 882.25 57 21 0 0 14 0 20 0 20 +331 4 65 131.04 882.25 57 19 0 0 14 0 18 0 18 +332 4 66 135.2 882.25 57 20 0 0 14 0 19 0 19 +333 4 67 139.36 882.25 57 22 0 0 14 0 21 0 21 +334 5 0 -139.36 889.75 1 25 0 0 0 0 24 0 24 +335 5 1 -135.2 889.75 1 23 0 0 0 0 22 0 22 +336 5 2 -131.04 889.75 1 24 0 0 0 0 23 0 23 +337 5 3 -126.88 889.75 1 26 0 0 0 0 25 0 25 +338 5 4 -122.72 889.75 5 27 0 0 1 0 26 0 26 +339 5 5 -118.56 889.75 5 25 0 0 1 0 24 0 24 +340 5 6 -114.4 889.75 5 23 0 0 1 0 22 0 22 +341 5 7 -110.24 889.75 5 24 0 0 1 0 23 0 23 +342 5 8 -106.08 889.75 5 26 0 0 1 0 25 0 25 +343 5 9 -101.92 889.75 9 25 0 0 2 0 24 0 24 +344 5 10 -97.76 889.75 9 23 0 0 2 0 22 0 22 +345 5 11 -93.6 889.75 9 26 0 0 2 0 25 0 25 +346 5 12 -89.44 889.75 9 28 0 0 2 0 27 0 27 +347 5 13 -85.28 889.75 13 27 0 0 3 0 26 0 26 +348 5 14 -81.12 889.75 13 25 0 0 3 0 24 0 24 +349 5 15 -76.96 889.75 13 23 0 0 3 0 22 0 22 +350 5 16 -72.8 889.75 13 24 0 0 3 0 23 0 23 +351 5 17 -68.64 889.75 13 26 0 0 3 0 25 0 25 +352 5 18 -64.48 889.75 17 27 0 0 4 0 26 0 26 +353 5 19 -60.32 889.75 17 25 0 0 4 0 24 0 24 +354 5 20 -56.16 889.75 17 24 0 0 4 0 23 0 23 +355 5 21 -52 889.75 17 26 0 0 4 0 25 0 25 +356 5 22 -47.84 889.75 21 25 0 0 5 0 24 0 24 +357 5 23 -43.68 889.75 21 23 0 0 5 0 22 0 22 +358 5 24 -39.52 889.75 21 21 0 0 5 0 20 0 20 +359 5 25 -35.36 889.75 21 22 0 0 5 0 21 0 21 +360 5 26 -31.2 889.75 21 24 0 0 5 0 23 0 23 +361 5 27 -27.04 889.75 25 29 0 0 6 0 28 0 28 +362 5 28 -22.88 889.75 25 27 0 0 6 0 26 0 26 +363 5 29 -18.72 889.75 25 25 0 0 6 0 24 0 24 +364 5 30 -14.56 889.75 25 28 0 0 6 0 27 0 27 +365 5 31 -10.4 889.75 25 30 0 0 6 0 29 0 29 +366 5 32 -6.24 889.75 29 23 0 0 7 0 22 0 22 +367 5 33 -2.08 889.75 29 21 0 0 7 0 20 0 20 +368 5 34 2.08 889.75 29 22 0 0 7 0 21 0 21 +369 5 35 6.24 889.75 29 24 0 0 7 0 23 0 23 +370 5 36 10.4 889.75 33 29 0 0 8 0 28 0 28 +371 5 37 14.56 889.75 33 27 0 0 8 0 26 0 26 +372 5 38 18.72 889.75 33 26 0 0 8 0 25 0 25 +373 5 39 22.88 889.75 33 28 0 0 8 0 27 0 27 +374 5 40 27.04 889.75 33 30 0 0 8 0 29 0 29 +375 5 41 31.2 889.75 37 23 0 0 9 0 22 0 22 +376 5 42 35.36 889.75 37 21 0 0 9 0 20 0 20 +377 5 43 39.52 889.75 37 22 0 0 9 0 21 0 21 +378 5 44 43.68 889.75 37 24 0 0 9 0 23 0 23 +379 5 45 47.84 889.75 37 26 0 0 9 0 25 0 25 +380 5 46 52 889.75 41 25 0 0 10 0 24 0 24 +381 5 47 56.16 889.75 41 23 0 0 10 0 22 0 22 +382 5 48 60.32 889.75 41 26 0 0 10 0 25 0 25 +383 5 49 64.48 889.75 41 28 0 0 10 0 27 0 27 +384 5 50 68.64 889.75 45 25 0 0 11 0 24 0 24 +385 5 51 72.8 889.75 45 23 0 0 11 0 22 0 22 +386 5 52 76.96 889.75 45 24 0 0 11 0 23 0 23 +387 5 53 81.12 889.75 45 26 0 0 11 0 25 0 25 +388 5 54 85.28 889.75 45 28 0 0 11 0 27 0 27 +389 5 55 89.44 889.75 49 27 0 0 12 0 26 0 26 +390 5 56 93.6 889.75 49 25 0 0 12 0 24 0 24 +391 5 57 97.76 889.75 49 24 0 0 12 0 23 0 23 +392 5 58 101.92 889.75 49 26 0 0 12 0 25 0 25 +393 5 59 106.08 889.75 53 25 0 0 13 0 24 0 24 +394 5 60 110.24 889.75 53 23 0 0 13 0 22 0 22 +395 5 61 114.4 889.75 53 24 0 0 13 0 23 0 23 +396 5 62 118.56 889.75 53 26 0 0 13 0 25 0 25 +397 5 63 122.72 889.75 53 28 0 0 13 0 27 0 27 +398 5 64 126.88 889.75 57 25 0 0 14 0 24 0 24 +399 5 65 131.04 889.75 57 23 0 0 14 0 22 0 22 +400 5 66 135.2 889.75 57 24 0 0 14 0 23 0 23 +401 5 67 139.36 889.75 57 26 0 0 14 0 25 0 25 +402 6 0 -143.52 897.25 1 31 0 0 0 0 30 0 30 +403 6 1 -139.36 897.25 1 29 0 0 0 0 28 0 28 +404 6 2 -135.2 897.25 1 27 0 0 0 0 26 0 26 +405 6 3 -131.04 897.25 1 28 0 0 0 0 27 0 27 +406 6 4 -126.88 897.25 1 30 0 0 0 0 29 0 29 +407 6 5 -122.72 897.25 5 31 0 0 1 0 30 0 30 +408 6 6 -118.56 897.25 5 29 0 0 1 0 28 0 28 +409 6 7 -114.4 897.25 5 28 0 0 1 0 27 0 27 +410 6 8 -110.24 897.25 5 30 0 0 1 0 29 0 29 +411 6 9 -106.08 897.25 5 32 0 0 1 0 31 0 31 +412 6 10 -101.92 897.25 9 29 0 0 2 0 28 0 28 +413 6 11 -97.76 897.25 9 27 0 0 2 0 26 0 26 +414 6 12 -93.6 897.25 9 30 0 0 2 0 29 0 29 +415 6 13 -89.44 897.25 9 32 0 0 2 0 31 0 31 +416 6 14 -85.28 897.25 13 33 0 0 3 0 32 1 0 +417 6 15 -81.12 897.25 13 31 0 0 3 0 30 0 30 +418 6 16 -76.96 897.25 13 29 0 0 3 0 28 0 28 +419 6 17 -72.8 897.25 13 28 0 0 3 0 27 0 27 +420 6 18 -68.64 897.25 13 30 0 0 3 0 29 0 29 +421 6 19 -64.48 897.25 17 31 0 0 4 0 30 0 30 +422 6 20 -60.32 897.25 17 29 0 0 4 0 28 0 28 +423 6 21 -56.16 897.25 17 28 0 0 4 0 27 0 27 +424 6 22 -52 897.25 17 30 0 0 4 0 29 0 29 +425 6 23 -47.84 897.25 21 29 0 0 5 0 28 0 28 +426 6 24 -43.68 897.25 21 27 0 0 5 0 26 0 26 +427 6 25 -39.52 897.25 21 26 0 0 5 0 25 0 25 +428 6 26 -35.36 897.25 21 28 0 0 5 0 27 0 27 +429 6 27 -31.2 897.25 21 30 0 0 5 0 29 0 29 +430 6 28 -27.04 897.25 25 33 0 0 6 0 32 1 0 +431 6 29 -22.88 897.25 25 31 0 0 6 0 30 0 30 +432 6 30 -18.72 897.25 25 32 0 0 6 0 31 0 31 +433 6 31 -14.56 897.25 25 34 0 0 6 0 33 1 1 +434 6 32 -10.4 897.25 25 36 0 0 6 0 35 1 3 +435 6 33 -6.24 897.25 29 27 0 0 7 0 26 0 26 +436 6 34 -2.08 897.25 29 25 0 0 7 0 24 0 24 +437 6 35 2.08 897.25 29 26 0 0 7 0 25 0 25 +438 6 36 6.24 897.25 29 28 0 0 7 0 27 0 27 +439 6 37 10.4 897.25 33 35 0 0 8 0 34 1 2 +440 6 38 14.56 897.25 33 33 0 0 8 0 32 1 0 +441 6 39 18.72 897.25 33 31 0 0 8 0 30 0 30 +442 6 40 22.88 897.25 33 32 0 0 8 0 31 0 31 +443 6 41 27.04 897.25 33 34 0 0 8 0 33 1 1 +444 6 42 31.2 897.25 37 29 0 0 9 0 28 0 28 +445 6 43 35.36 897.25 37 27 0 0 9 0 26 0 26 +446 6 44 39.52 897.25 37 25 0 0 9 0 24 0 24 +447 6 45 43.68 897.25 37 28 0 0 9 0 27 0 27 +448 6 46 47.84 897.25 37 30 0 0 9 0 29 0 29 +449 6 47 52 897.25 41 29 0 0 10 0 28 0 28 +450 6 48 56.16 897.25 41 27 0 0 10 0 26 0 26 +451 6 49 60.32 897.25 41 30 0 0 10 0 29 0 29 +452 6 50 64.48 897.25 41 32 0 0 10 0 31 0 31 +453 6 51 68.64 897.25 45 29 0 0 11 0 28 0 28 +454 6 52 72.8 897.25 45 27 0 0 11 0 26 0 26 +455 6 53 76.96 897.25 45 30 0 0 11 0 29 0 29 +456 6 54 81.12 897.25 45 32 0 0 11 0 31 0 31 +457 6 55 85.28 897.25 45 34 0 0 11 0 33 1 1 +458 6 56 89.44 897.25 49 31 0 0 12 0 30 0 30 +459 6 57 93.6 897.25 49 29 0 0 12 0 28 0 28 +460 6 58 97.76 897.25 49 28 0 0 12 0 27 0 27 +461 6 59 101.92 897.25 49 30 0 0 12 0 29 0 29 +462 6 60 106.08 897.25 53 31 0 0 13 0 30 0 30 +463 6 61 110.24 897.25 53 29 0 0 13 0 28 0 28 +464 6 62 114.4 897.25 53 27 0 0 13 0 26 0 26 +465 6 63 118.56 897.25 53 30 0 0 13 0 29 0 29 +466 6 64 122.72 897.25 53 32 0 0 13 0 31 0 31 +467 6 65 126.88 897.25 57 29 0 0 14 0 28 0 28 +468 6 66 131.04 897.25 57 27 0 0 14 0 26 0 26 +469 6 67 135.2 897.25 57 28 0 0 14 0 27 0 27 +470 6 68 139.36 897.25 57 30 0 0 14 0 29 0 29 +471 6 69 143.52 897.25 57 32 0 0 14 0 31 0 31 +472 7 0 -143.52 904.75 1 35 0 0 0 0 34 1 2 +473 7 1 -139.36 904.75 1 33 0 0 0 0 32 1 0 +474 7 2 -135.2 904.75 1 32 0 0 0 0 31 0 31 +475 7 3 -131.04 904.75 1 34 0 0 0 0 33 1 1 +476 7 4 -126.88 904.75 1 36 0 0 0 0 35 1 3 +477 7 5 -122.72 904.75 5 35 0 0 1 0 34 1 2 +478 7 6 -118.56 904.75 5 33 0 0 1 0 32 1 0 +479 7 7 -114.4 904.75 5 34 0 0 1 0 33 1 1 +480 7 8 -110.24 904.75 5 36 0 0 1 0 35 1 3 +481 7 9 -106.08 904.75 9 35 0 0 2 0 34 1 2 +482 7 10 -101.92 904.75 9 33 0 0 2 0 32 1 0 +483 7 11 -97.76 904.75 9 31 0 0 2 0 30 0 30 +484 7 12 -93.6 904.75 9 34 0 0 2 0 33 1 1 +485 7 13 -89.44 904.75 9 36 0 0 2 0 35 1 3 +486 7 14 -85.28 904.75 13 39 0 0 3 0 38 1 6 +487 7 15 -81.12 904.75 13 37 0 0 3 0 36 1 4 +488 7 16 -76.96 904.75 13 35 0 0 3 0 34 1 2 +489 7 17 -72.8 904.75 13 32 0 0 3 0 31 0 31 +490 7 18 -68.64 904.75 13 34 0 0 3 0 33 1 1 +491 7 19 -64.48 904.75 17 35 0 0 4 0 34 1 2 +492 7 20 -60.32 904.75 17 33 0 0 4 0 32 1 0 +493 7 21 -56.16 904.75 17 32 0 0 4 0 31 0 31 +494 7 22 -52 904.75 17 34 0 0 4 0 33 1 1 +495 7 23 -47.84 904.75 21 35 0 0 5 0 34 1 2 +496 7 24 -43.68 904.75 21 33 0 0 5 0 32 1 0 +497 7 25 -39.52 904.75 21 31 0 0 5 0 30 0 30 +498 7 26 -35.36 904.75 21 32 0 0 5 0 31 0 31 +499 7 27 -31.2 904.75 21 34 0 0 5 0 33 1 1 +500 7 28 -27.04 904.75 25 39 0 0 6 0 38 1 6 +501 7 29 -22.88 904.75 25 37 0 0 6 0 36 1 4 +502 7 30 -18.72 904.75 25 35 0 0 6 0 34 1 2 +503 7 31 -14.56 904.75 25 38 0 0 6 0 37 1 5 +504 7 32 -10.4 904.75 25 40 0 0 6 0 39 1 7 +505 7 33 -6.24 904.75 29 31 0 0 7 0 30 0 30 +506 7 34 -2.08 904.75 29 29 0 0 7 0 28 0 28 +507 7 35 2.08 904.75 29 30 0 0 7 0 29 0 29 +508 7 36 6.24 904.75 29 32 0 0 7 0 31 0 31 +509 7 37 10.4 904.75 33 39 0 0 8 0 38 1 6 +510 7 38 14.56 904.75 33 37 0 0 8 0 36 1 4 +511 7 39 18.72 904.75 33 36 0 0 8 0 35 1 3 +512 7 40 22.88 904.75 33 38 0 0 8 0 37 1 5 +513 7 41 27.04 904.75 33 40 0 0 8 0 39 1 7 +514 7 42 31.2 904.75 37 33 0 0 9 0 32 1 0 +515 7 43 35.36 904.75 37 31 0 0 9 0 30 0 30 +516 7 44 39.52 904.75 37 32 0 0 9 0 31 0 31 +517 7 45 43.68 904.75 37 34 0 0 9 0 33 1 1 +518 7 46 47.84 904.75 37 36 0 0 9 0 35 1 3 +519 7 47 52 904.75 41 33 0 0 10 0 32 1 0 +520 7 48 56.16 904.75 41 31 0 0 10 0 30 0 30 +521 7 49 60.32 904.75 41 34 0 0 10 0 33 1 1 +522 7 50 64.48 904.75 41 36 0 0 10 0 35 1 3 +523 7 51 68.64 904.75 45 33 0 0 11 0 32 1 0 +524 7 52 72.8 904.75 45 31 0 0 11 0 30 0 30 +525 7 53 76.96 904.75 45 36 0 0 11 0 35 1 3 +526 7 54 81.12 904.75 45 38 0 0 11 0 37 1 5 +527 7 55 85.28 904.75 45 40 0 0 11 0 39 1 7 +528 7 56 89.44 904.75 49 35 0 0 12 0 34 1 2 +529 7 57 93.6 904.75 49 33 0 0 12 0 32 1 0 +530 7 58 97.76 904.75 49 32 0 0 12 0 31 0 31 +531 7 59 101.92 904.75 49 34 0 0 12 0 33 1 1 +532 7 60 106.08 904.75 49 36 0 0 12 0 35 1 3 +533 7 61 110.24 904.75 53 35 0 0 13 0 34 1 2 +534 7 62 114.4 904.75 53 33 0 0 13 0 32 1 0 +535 7 63 118.56 904.75 53 34 0 0 13 0 33 1 1 +536 7 64 122.72 904.75 53 36 0 0 13 0 35 1 3 +537 7 65 126.88 904.75 57 35 0 0 14 0 34 1 2 +538 7 66 131.04 904.75 57 33 0 0 14 0 32 1 0 +539 7 67 135.2 904.75 57 31 0 0 14 0 30 0 30 +540 7 68 139.36 904.75 57 34 0 0 14 0 33 1 1 +541 7 69 143.52 904.75 57 36 0 0 14 0 35 1 3 +542 8 0 -143.52 912.25 1 39 0 0 0 0 38 1 6 +543 8 1 -139.36 912.25 1 37 0 0 0 0 36 1 4 +544 8 2 -135.2 912.25 1 38 0 0 0 0 37 1 5 +545 8 3 -131.04 912.25 1 40 0 0 0 0 39 1 7 +546 8 4 -126.88 912.25 5 39 0 0 1 0 38 1 6 +547 8 5 -122.72 912.25 5 37 0 0 1 0 36 1 4 +548 8 6 -118.56 912.25 5 38 0 0 1 0 37 1 5 +549 8 7 -114.4 912.25 5 40 0 0 1 0 39 1 7 +550 8 8 -110.24 912.25 6 2 0 0 1 1 41 1 9 +551 8 9 -106.08 912.25 9 39 0 0 2 0 38 1 6 +552 8 10 -101.92 912.25 9 37 0 0 2 0 36 1 4 +553 8 11 -97.76 912.25 9 38 0 0 2 0 37 1 5 +554 8 12 -93.6 912.25 9 40 0 0 2 0 39 1 7 +555 8 13 -89.44 912.25 10 2 0 0 2 1 41 1 9 +556 8 14 -85.28 912.25 14 3 0 0 3 1 42 1 10 +557 8 15 -81.12 912.25 14 1 0 0 3 1 40 1 8 +558 8 16 -76.96 912.25 13 36 0 0 3 0 35 1 3 +559 8 17 -72.8 912.25 13 38 0 0 3 0 37 1 5 +560 8 18 -68.64 912.25 13 40 0 0 3 0 39 1 7 +561 8 19 -64.48 912.25 17 39 0 0 4 0 38 1 6 +562 8 20 -60.32 912.25 17 37 0 0 4 0 36 1 4 +563 8 21 -56.16 912.25 17 36 0 0 4 0 35 1 3 +564 8 22 -52 912.25 17 38 0 0 4 0 37 1 5 +565 8 23 -47.84 912.25 21 39 0 0 5 0 38 1 6 +566 8 24 -43.68 912.25 21 37 0 0 5 0 36 1 4 +567 8 25 -39.52 912.25 21 36 0 0 5 0 35 1 3 +568 8 26 -35.36 912.25 21 38 0 0 5 0 37 1 5 +569 8 27 -31.2 912.25 21 40 0 0 5 0 39 1 7 +570 8 28 -27.04 912.25 26 5 0 0 6 1 44 1 12 +571 8 29 -22.88 912.25 26 3 0 0 6 1 42 1 10 +572 8 30 -18.72 912.25 26 1 0 0 6 1 40 1 8 +573 8 31 -14.56 912.25 26 2 0 0 6 1 41 1 9 +574 8 32 -10.4 912.25 26 4 0 0 6 1 43 1 11 +575 8 33 -6.24 912.25 29 35 0 0 7 0 34 1 2 +576 8 34 -2.08 912.25 29 33 0 0 7 0 32 1 0 +577 8 35 2.08 912.25 29 34 0 0 7 0 33 1 1 +578 8 36 6.24 912.25 29 36 0 0 7 0 35 1 3 +579 8 37 10.4 912.25 34 3 0 0 8 1 42 1 10 +580 8 38 14.56 912.25 34 1 0 0 8 1 40 1 8 +581 8 39 18.72 912.25 34 2 0 0 8 1 41 1 9 +582 8 40 22.88 912.25 34 4 0 0 8 1 43 1 11 +583 8 41 27.04 912.25 34 6 0 0 8 1 45 1 13 +584 8 42 31.2 912.25 37 39 0 0 9 0 38 1 6 +585 8 43 35.36 912.25 37 37 0 0 9 0 36 1 4 +586 8 44 39.52 912.25 37 35 0 0 9 0 34 1 2 +587 8 45 43.68 912.25 37 38 0 0 9 0 37 1 5 +588 8 46 47.84 912.25 37 40 0 0 9 0 39 1 7 +589 8 47 52 912.25 41 37 0 0 10 0 36 1 4 +590 8 48 56.16 912.25 41 35 0 0 10 0 34 1 2 +591 8 49 60.32 912.25 41 38 0 0 10 0 37 1 5 +592 8 50 64.48 912.25 41 40 0 0 10 0 39 1 7 +593 8 51 68.64 912.25 45 39 0 0 11 0 38 1 6 +594 8 52 72.8 912.25 45 37 0 0 11 0 36 1 4 +595 8 53 76.96 912.25 45 35 0 0 11 0 34 1 2 +596 8 54 81.12 912.25 46 2 0 0 11 1 41 1 9 +597 8 55 85.28 912.25 46 4 0 0 11 1 43 1 11 +598 8 56 89.44 912.25 50 1 0 0 12 1 40 1 8 +599 8 57 93.6 912.25 49 39 0 0 12 0 38 1 6 +600 8 58 97.76 912.25 49 37 0 0 12 0 36 1 4 +601 8 59 101.92 912.25 49 38 0 0 12 0 37 1 5 +602 8 60 106.08 912.25 49 40 0 0 12 0 39 1 7 +603 8 61 110.24 912.25 54 1 0 0 13 1 40 1 8 +604 8 62 114.4 912.25 53 39 0 0 13 0 38 1 6 +605 8 63 118.56 912.25 53 37 0 0 13 0 36 1 4 +606 8 64 122.72 912.25 53 38 0 0 13 0 37 1 5 +607 8 65 126.88 912.25 53 40 0 0 13 0 39 1 7 +608 8 66 131.04 912.25 57 39 0 0 14 0 38 1 6 +609 8 67 135.2 912.25 57 37 0 0 14 0 36 1 4 +610 8 68 139.36 912.25 57 38 0 0 14 0 37 1 5 +611 8 69 143.52 912.25 57 40 0 0 14 0 39 1 7 +612 9 0 -147.68 919.75 2 3 0 0 0 1 42 1 10 +613 9 1 -143.52 919.75 2 1 0 0 0 1 40 1 8 +614 9 2 -139.36 919.75 2 2 0 0 0 1 41 1 9 +615 9 3 -135.2 919.75 2 4 0 0 0 1 43 1 11 +616 9 4 -131.04 919.75 2 6 0 0 0 1 45 1 13 +617 9 5 -126.88 919.75 6 5 0 0 1 1 44 1 12 +618 9 6 -122.72 919.75 6 3 0 0 1 1 42 1 10 +619 9 7 -118.56 919.75 6 1 0 0 1 1 40 1 8 +620 9 8 -114.4 919.75 6 4 0 0 1 1 43 1 11 +621 9 9 -110.24 919.75 6 6 0 0 1 1 45 1 13 +622 9 10 -106.08 919.75 10 5 0 0 2 1 44 1 12 +623 9 11 -101.92 919.75 10 3 0 0 2 1 42 1 10 +624 9 12 -97.76 919.75 10 1 0 0 2 1 40 1 8 +625 9 13 -93.6 919.75 10 4 0 0 2 1 43 1 11 +626 9 14 -89.44 919.75 10 6 0 0 2 1 45 1 13 +627 9 15 -85.28 919.75 14 5 0 0 3 1 44 1 12 +628 9 16 -81.12 919.75 14 2 0 0 3 1 41 1 9 +629 9 17 -76.96 919.75 14 4 0 0 3 1 43 1 11 +630 9 18 -72.8 919.75 14 6 0 0 3 1 45 1 13 +631 9 19 -68.64 919.75 18 3 0 0 4 1 42 1 10 +632 9 20 -64.48 919.75 18 1 0 0 4 1 40 1 8 +633 9 21 -60.32 919.75 18 2 0 0 4 1 41 1 9 +634 9 22 -56.16 919.75 18 4 0 0 4 1 43 1 11 +635 9 23 -52 919.75 17 40 0 0 4 0 39 1 7 +636 9 24 -47.84 919.75 22 3 0 0 5 1 42 1 10 +637 9 25 -43.68 919.75 22 1 0 0 5 1 40 1 8 +638 9 26 -39.52 919.75 22 2 0 0 5 1 41 1 9 +639 9 27 -35.36 919.75 22 4 0 0 5 1 43 1 11 +640 9 28 -31.2 919.75 22 6 0 0 5 1 45 1 13 +641 9 29 -27.04 919.75 26 11 0 0 6 1 50 1 18 +642 9 30 -22.88 919.75 26 9 0 0 6 1 48 1 16 +643 9 31 -18.72 919.75 26 7 0 0 6 1 46 1 14 +644 9 32 -14.56 919.75 26 6 0 0 6 1 45 1 13 +645 9 33 -10.4 919.75 26 8 0 0 6 1 47 1 15 +646 9 34 -6.24 919.75 29 39 0 0 7 0 38 1 6 +647 9 35 -2.08 919.75 29 37 0 0 7 0 36 1 4 +648 9 36 2.08 919.75 29 38 0 0 7 0 37 1 5 +649 9 37 6.24 919.75 29 40 0 0 7 0 39 1 7 +650 9 38 10.4 919.75 34 7 0 0 8 1 46 1 14 +651 9 39 14.56 919.75 34 5 0 0 8 1 44 1 12 +652 9 40 18.72 919.75 34 8 0 0 8 1 47 1 15 +653 9 41 22.88 919.75 34 10 0 0 8 1 49 1 17 +654 9 42 27.04 919.75 34 12 0 0 8 1 51 1 19 +655 9 43 31.2 919.75 38 5 0 0 9 1 44 1 12 +656 9 44 35.36 919.75 38 3 0 0 9 1 42 1 10 +657 9 45 39.52 919.75 38 1 0 0 9 1 40 1 8 +658 9 46 43.68 919.75 38 2 0 0 9 1 41 1 9 +659 9 47 47.84 919.75 38 4 0 0 9 1 43 1 11 +660 9 48 52 919.75 41 39 0 0 10 0 38 1 6 +661 9 49 56.16 919.75 42 3 0 0 10 1 42 1 10 +662 9 50 60.32 919.75 42 1 0 0 10 1 40 1 8 +663 9 51 64.48 919.75 42 2 0 0 10 1 41 1 9 +664 9 52 68.64 919.75 42 4 0 0 10 1 43 1 11 +665 9 53 72.8 919.75 46 5 0 0 11 1 44 1 12 +666 9 54 76.96 919.75 46 3 0 0 11 1 42 1 10 +667 9 55 81.12 919.75 46 1 0 0 11 1 40 1 8 +668 9 56 85.28 919.75 46 6 0 0 11 1 45 1 13 +669 9 57 89.44 919.75 50 5 0 0 12 1 44 1 12 +670 9 58 93.6 919.75 50 3 0 0 12 1 42 1 10 +671 9 59 97.76 919.75 50 2 0 0 12 1 41 1 9 +672 9 60 101.92 919.75 50 4 0 0 12 1 43 1 11 +673 9 61 106.08 919.75 50 6 0 0 12 1 45 1 13 +674 9 62 110.24 919.75 54 5 0 0 13 1 44 1 12 +675 9 63 114.4 919.75 54 3 0 0 13 1 42 1 10 +676 9 64 118.56 919.75 54 2 0 0 13 1 41 1 9 +677 9 65 122.72 919.75 54 4 0 0 13 1 43 1 11 +678 9 66 126.88 919.75 54 6 0 0 13 1 45 1 13 +679 9 67 131.04 919.75 58 5 0 0 14 1 44 1 12 +680 9 68 135.2 919.75 58 3 0 0 14 1 42 1 10 +681 9 69 139.36 919.75 58 1 0 0 14 1 40 1 8 +682 9 70 143.52 919.75 58 2 0 0 14 1 41 1 9 +683 9 71 147.68 919.75 58 4 0 0 14 1 43 1 11 +684 10 0 -147.68 927.25 2 9 0 0 0 1 48 1 16 +685 10 1 -143.52 927.25 2 7 0 0 0 1 46 1 14 +686 10 2 -139.36 927.25 2 5 0 0 0 1 44 1 12 +687 10 3 -135.2 927.25 2 8 0 0 0 1 47 1 15 +688 10 4 -131.04 927.25 2 10 0 0 0 1 49 1 17 +689 10 5 -126.88 927.25 6 11 0 0 1 1 50 1 18 +690 10 6 -122.72 927.25 6 9 0 0 1 1 48 1 16 +691 10 7 -118.56 927.25 6 7 0 0 1 1 46 1 14 +692 10 8 -114.4 927.25 6 8 0 0 1 1 47 1 15 +693 10 9 -110.24 927.25 6 10 0 0 1 1 49 1 17 +694 10 10 -106.08 927.25 10 9 0 0 2 1 48 1 16 +695 10 11 -101.92 927.25 10 7 0 0 2 1 46 1 14 +696 10 12 -97.76 927.25 10 8 0 0 2 1 47 1 15 +697 10 13 -93.6 927.25 10 10 0 0 2 1 49 1 17 +698 10 14 -89.44 927.25 14 11 0 0 3 1 50 1 18 +699 10 15 -85.28 927.25 14 9 0 0 3 1 48 1 16 +700 10 16 -81.12 927.25 14 7 0 0 3 1 46 1 14 +701 10 17 -76.96 927.25 14 8 0 0 3 1 47 1 15 +702 10 18 -72.8 927.25 14 10 0 0 3 1 49 1 17 +703 10 19 -68.64 927.25 18 9 0 0 4 1 48 1 16 +704 10 20 -64.48 927.25 18 7 0 0 4 1 46 1 14 +705 10 21 -60.32 927.25 18 5 0 0 4 1 44 1 12 +706 10 22 -56.16 927.25 18 6 0 0 4 1 45 1 13 +707 10 23 -52 927.25 18 8 0 0 4 1 47 1 15 +708 10 24 -47.84 927.25 22 9 0 0 5 1 48 1 16 +709 10 25 -43.68 927.25 22 7 0 0 5 1 46 1 14 +710 10 26 -39.52 927.25 22 5 0 0 5 1 44 1 12 +711 10 27 -35.36 927.25 22 8 0 0 5 1 47 1 15 +712 10 28 -31.2 927.25 22 10 0 0 5 1 49 1 17 +713 10 29 -27.04 927.25 26 15 0 0 6 1 54 1 22 +714 10 30 -22.88 927.25 26 13 0 0 6 1 52 1 20 +715 10 31 -18.72 927.25 26 10 0 0 6 1 49 1 17 +716 10 32 -14.56 927.25 26 12 0 0 6 1 51 1 19 +717 10 33 -10.4 927.25 26 14 0 0 6 1 53 1 21 +718 10 34 -6.24 927.25 30 3 0 0 7 1 42 1 10 +719 10 35 -2.08 927.25 30 1 0 0 7 1 40 1 8 +720 10 36 2.08 927.25 30 2 0 0 7 1 41 1 9 +721 10 37 6.24 927.25 30 4 0 0 7 1 43 1 11 +722 10 38 10.4 927.25 34 13 0 0 8 1 52 1 20 +723 10 39 14.56 927.25 34 11 0 0 8 1 50 1 18 +724 10 40 18.72 927.25 34 9 0 0 8 1 48 1 16 +725 10 41 22.88 927.25 34 14 0 0 8 1 53 1 21 +726 10 42 27.04 927.25 34 16 0 0 8 1 55 1 23 +727 10 43 31.2 927.25 38 9 0 0 9 1 48 1 16 +728 10 44 35.36 927.25 38 7 0 0 9 1 46 1 14 +729 10 45 39.52 927.25 38 6 0 0 9 1 45 1 13 +730 10 46 43.68 927.25 38 8 0 0 9 1 47 1 15 +731 10 47 47.84 927.25 38 10 0 0 9 1 49 1 17 +732 10 48 52 927.25 42 7 0 0 10 1 46 1 14 +733 10 49 56.16 927.25 42 5 0 0 10 1 44 1 12 +734 10 50 60.32 927.25 42 6 0 0 10 1 45 1 13 +735 10 51 64.48 927.25 42 8 0 0 10 1 47 1 15 +736 10 52 68.64 927.25 42 10 0 0 10 1 49 1 17 +737 10 53 72.8 927.25 46 9 0 0 11 1 48 1 16 +738 10 54 76.96 927.25 46 7 0 0 11 1 46 1 14 +739 10 55 81.12 927.25 46 8 0 0 11 1 47 1 15 +740 10 56 85.28 927.25 46 10 0 0 11 1 49 1 17 +741 10 57 89.44 927.25 46 12 0 0 11 1 51 1 19 +742 10 58 93.6 927.25 50 9 0 0 12 1 48 1 16 +743 10 59 97.76 927.25 50 7 0 0 12 1 46 1 14 +744 10 60 101.92 927.25 50 8 0 0 12 1 47 1 15 +745 10 61 106.08 927.25 50 10 0 0 12 1 49 1 17 +746 10 62 110.24 927.25 54 9 0 0 13 1 48 1 16 +747 10 63 114.4 927.25 54 7 0 0 13 1 46 1 14 +748 10 64 118.56 927.25 54 8 0 0 13 1 47 1 15 +749 10 65 122.72 927.25 54 10 0 0 13 1 49 1 17 +750 10 66 126.88 927.25 54 12 0 0 13 1 51 1 19 +751 10 67 131.04 927.25 58 9 0 0 14 1 48 1 16 +752 10 68 135.2 927.25 58 7 0 0 14 1 46 1 14 +753 10 69 139.36 927.25 58 6 0 0 14 1 45 1 13 +754 10 70 143.52 927.25 58 8 0 0 14 1 47 1 15 +755 10 71 147.68 927.25 58 10 0 0 14 1 49 1 17 +756 11 0 -147.68 934.75 2 13 0 0 0 1 52 1 20 +757 11 1 -143.52 934.75 2 11 0 0 0 1 50 1 18 +758 11 2 -139.36 934.75 2 12 0 0 0 1 51 1 19 +759 11 3 -135.2 934.75 2 14 0 0 0 1 53 1 21 +760 11 4 -131.04 934.75 2 16 0 0 0 1 55 1 23 +761 11 5 -126.88 934.75 6 15 0 0 1 1 54 1 22 +762 11 6 -122.72 934.75 6 13 0 0 1 1 52 1 20 +763 11 7 -118.56 934.75 6 12 0 0 1 1 51 1 19 +764 11 8 -114.4 934.75 6 14 0 0 1 1 53 1 21 +765 11 9 -110.24 934.75 10 13 0 0 2 1 52 1 20 +766 11 10 -106.08 934.75 10 11 0 0 2 1 50 1 18 +767 11 11 -101.92 934.75 10 12 0 0 2 1 51 1 19 +768 11 12 -97.76 934.75 10 14 0 0 2 1 53 1 21 +769 11 13 -93.6 934.75 10 16 0 0 2 1 55 1 23 +770 11 14 -89.44 934.75 14 15 0 0 3 1 54 1 22 +771 11 15 -85.28 934.75 14 13 0 0 3 1 52 1 20 +772 11 16 -81.12 934.75 14 12 0 0 3 1 51 1 19 +773 11 17 -76.96 934.75 14 14 0 0 3 1 53 1 21 +774 11 18 -72.8 934.75 14 16 0 0 3 1 55 1 23 +775 11 19 -68.64 934.75 18 13 0 0 4 1 52 1 20 +776 11 20 -64.48 934.75 18 11 0 0 4 1 50 1 18 +777 11 21 -60.32 934.75 18 10 0 0 4 1 49 1 17 +778 11 22 -56.16 934.75 18 12 0 0 4 1 51 1 19 +779 11 23 -52 934.75 18 14 0 0 4 1 53 1 21 +780 11 24 -47.84 934.75 22 13 0 0 5 1 52 1 20 +781 11 25 -43.68 934.75 22 11 0 0 5 1 50 1 18 +782 11 26 -39.52 934.75 22 12 0 0 5 1 51 1 19 +783 11 27 -35.36 934.75 22 14 0 0 5 1 53 1 21 +784 11 28 -31.2 934.75 22 16 0 0 5 1 55 1 23 +785 11 29 -27.04 934.75 26 19 0 0 6 1 58 1 26 +786 11 30 -22.88 934.75 26 17 0 0 6 1 56 1 24 +787 11 31 -18.72 934.75 26 16 0 0 6 1 55 1 23 +788 11 32 -14.56 934.75 26 18 0 0 6 1 57 1 25 +789 11 33 -10.4 934.75 30 9 0 0 7 1 48 1 16 +790 11 34 -6.24 934.75 30 7 0 0 7 1 46 1 14 +791 11 35 -2.08 934.75 30 5 0 0 7 1 44 1 12 +792 11 36 2.08 934.75 30 6 0 0 7 1 45 1 13 +793 11 37 6.24 934.75 30 8 0 0 7 1 47 1 15 +794 11 38 10.4 934.75 30 10 0 0 7 1 49 1 17 +795 11 39 14.56 934.75 34 17 0 0 8 1 56 1 24 +796 11 40 18.72 934.75 34 15 0 0 8 1 54 1 22 +797 11 41 22.88 934.75 34 18 0 0 8 1 57 1 25 +798 11 42 27.04 934.75 34 20 0 0 8 1 59 1 27 +799 11 43 31.2 934.75 38 15 0 0 9 1 54 1 22 +800 11 44 35.36 934.75 38 13 0 0 9 1 52 1 20 +801 11 45 39.52 934.75 38 11 0 0 9 1 50 1 18 +802 11 46 43.68 934.75 38 12 0 0 9 1 51 1 19 +803 11 47 47.84 934.75 38 14 0 0 9 1 53 1 21 +804 11 48 52 934.75 42 13 0 0 10 1 52 1 20 +805 11 49 56.16 934.75 42 11 0 0 10 1 50 1 18 +806 11 50 60.32 934.75 42 9 0 0 10 1 48 1 16 +807 11 51 64.48 934.75 42 12 0 0 10 1 51 1 19 +808 11 52 68.64 934.75 42 14 0 0 10 1 53 1 21 +809 11 53 72.8 934.75 46 15 0 0 11 1 54 1 22 +810 11 54 76.96 934.75 46 13 0 0 11 1 52 1 20 +811 11 55 81.12 934.75 46 11 0 0 11 1 50 1 18 +812 11 56 85.28 934.75 46 14 0 0 11 1 53 1 21 +813 11 57 89.44 934.75 46 16 0 0 11 1 55 1 23 +814 11 58 93.6 934.75 50 15 0 0 12 1 54 1 22 +815 11 59 97.76 934.75 50 13 0 0 12 1 52 1 20 +816 11 60 101.92 934.75 50 11 0 0 12 1 50 1 18 +817 11 61 106.08 934.75 50 12 0 0 12 1 51 1 19 +818 11 62 110.24 934.75 50 14 0 0 12 1 53 1 21 +819 11 63 114.4 934.75 54 13 0 0 13 1 52 1 20 +820 11 64 118.56 934.75 54 11 0 0 13 1 50 1 18 +821 11 65 122.72 934.75 54 14 0 0 13 1 53 1 21 +822 11 66 126.88 934.75 54 16 0 0 13 1 55 1 23 +823 11 67 131.04 934.75 58 15 0 0 14 1 54 1 22 +824 11 68 135.2 934.75 58 13 0 0 14 1 52 1 20 +825 11 69 139.36 934.75 58 11 0 0 14 1 50 1 18 +826 11 70 143.52 934.75 58 12 0 0 14 1 51 1 19 +827 11 71 147.68 934.75 58 14 0 0 14 1 53 1 21 +828 12 0 -151.84 942.25 2 19 0 0 0 1 58 1 26 +829 12 1 -147.68 942.25 2 17 0 0 0 1 56 1 24 +830 12 2 -143.52 942.25 2 15 0 0 0 1 54 1 22 +831 12 3 -139.36 942.25 2 18 0 0 0 1 57 1 25 +832 12 4 -135.2 942.25 2 20 0 0 0 1 59 1 27 +833 12 5 -131.04 942.25 6 19 0 0 1 1 58 1 26 +834 12 6 -126.88 942.25 6 17 0 0 1 1 56 1 24 +835 12 7 -122.72 942.25 6 16 0 0 1 1 55 1 23 +836 12 8 -118.56 942.25 6 18 0 0 1 1 57 1 25 +837 12 9 -114.4 942.25 6 20 0 0 1 1 59 1 27 +838 12 10 -110.24 942.25 10 19 0 0 2 1 58 1 26 +839 12 11 -106.08 942.25 10 17 0 0 2 1 56 1 24 +840 12 12 -101.92 942.25 10 15 0 0 2 1 54 1 22 +841 12 13 -97.76 942.25 10 18 0 0 2 1 57 1 25 +842 12 14 -93.6 942.25 10 20 0 0 2 1 59 1 27 +843 12 15 -89.44 942.25 14 21 0 0 3 1 60 1 28 +844 12 16 -85.28 942.25 14 19 0 0 3 1 58 1 26 +845 12 17 -81.12 942.25 14 17 0 0 3 1 56 1 24 +846 12 18 -76.96 942.25 14 18 0 0 3 1 57 1 25 +847 12 19 -72.8 942.25 14 20 0 0 3 1 59 1 27 +848 12 20 -68.64 942.25 18 19 0 0 4 1 58 1 26 +849 12 21 -64.48 942.25 18 17 0 0 4 1 56 1 24 +850 12 22 -60.32 942.25 18 15 0 0 4 1 54 1 22 +851 12 23 -56.16 942.25 18 16 0 0 4 1 55 1 23 +852 12 24 -52 942.25 18 18 0 0 4 1 57 1 25 +853 12 25 -47.84 942.25 22 19 0 0 5 1 58 1 26 +854 12 26 -43.68 942.25 22 17 0 0 5 1 56 1 24 +855 12 27 -39.52 942.25 22 15 0 0 5 1 54 1 22 +856 12 28 -35.36 942.25 22 18 0 0 5 1 57 1 25 +857 12 29 -31.2 942.25 22 20 0 0 5 1 59 1 27 +858 12 30 -27.04 942.25 26 23 0 0 6 1 62 1 30 +859 12 31 -22.88 942.25 26 21 0 0 6 1 60 1 28 +860 12 32 -18.72 942.25 26 20 0 0 6 1 59 1 27 +861 12 33 -14.56 942.25 26 22 0 0 6 1 61 1 29 +862 12 34 -10.4 942.25 30 15 0 0 7 1 54 1 22 +863 12 35 -6.24 942.25 30 13 0 0 7 1 52 1 20 +864 12 36 -2.08 942.25 30 11 0 0 7 1 50 1 18 +865 12 37 2.08 942.25 30 12 0 0 7 1 51 1 19 +866 12 38 6.24 942.25 30 14 0 0 7 1 53 1 21 +867 12 39 10.4 942.25 30 16 0 0 7 1 55 1 23 +868 12 40 14.56 942.25 34 21 0 0 8 1 60 1 28 +869 12 41 18.72 942.25 34 19 0 0 8 1 58 1 26 +870 12 42 22.88 942.25 34 22 0 0 8 1 61 1 29 +871 12 43 27.04 942.25 34 24 0 0 8 1 63 1 31 +872 12 44 31.2 942.25 38 19 0 0 9 1 58 1 26 +873 12 45 35.36 942.25 38 17 0 0 9 1 56 1 24 +874 12 46 39.52 942.25 38 16 0 0 9 1 55 1 23 +875 12 47 43.68 942.25 38 18 0 0 9 1 57 1 25 +876 12 48 47.84 942.25 38 20 0 0 9 1 59 1 27 +877 12 49 52 942.25 42 17 0 0 10 1 56 1 24 +878 12 50 56.16 942.25 42 15 0 0 10 1 54 1 22 +879 12 51 60.32 942.25 42 16 0 0 10 1 55 1 23 +880 12 52 64.48 942.25 42 18 0 0 10 1 57 1 25 +881 12 53 68.64 942.25 42 20 0 0 10 1 59 1 27 +882 12 54 72.8 942.25 46 19 0 0 11 1 58 1 26 +883 12 55 76.96 942.25 46 17 0 0 11 1 56 1 24 +884 12 56 81.12 942.25 46 18 0 0 11 1 57 1 25 +885 12 57 85.28 942.25 46 20 0 0 11 1 59 1 27 +886 12 58 89.44 942.25 46 22 0 0 11 1 61 1 29 +887 12 59 93.6 942.25 50 19 0 0 12 1 58 1 26 +888 12 60 97.76 942.25 50 17 0 0 12 1 56 1 24 +889 12 61 101.92 942.25 50 16 0 0 12 1 55 1 23 +890 12 62 106.08 942.25 50 18 0 0 12 1 57 1 25 +891 12 63 110.24 942.25 50 20 0 0 12 1 59 1 27 +892 12 64 114.4 942.25 54 19 0 0 13 1 58 1 26 +893 12 65 118.56 942.25 54 17 0 0 13 1 56 1 24 +894 12 66 122.72 942.25 54 15 0 0 13 1 54 1 22 +895 12 67 126.88 942.25 54 18 0 0 13 1 57 1 25 +896 12 68 131.04 942.25 54 20 0 0 13 1 59 1 27 +897 12 69 135.2 942.25 58 19 0 0 14 1 58 1 26 +898 12 70 139.36 942.25 58 17 0 0 14 1 56 1 24 +899 12 71 143.52 942.25 58 16 0 0 14 1 55 1 23 +900 12 72 147.68 942.25 58 18 0 0 14 1 57 1 25 +901 12 73 151.84 942.25 58 20 0 0 14 1 59 1 27 +902 13 0 -151.84 949.75 2 23 0 0 0 1 62 1 30 +903 13 1 -147.68 949.75 2 21 0 0 0 1 60 1 28 +904 13 2 -143.52 949.75 2 22 0 0 0 1 61 1 29 +905 13 3 -139.36 949.75 2 24 0 0 0 1 63 1 31 +906 13 4 -135.2 949.75 2 26 0 0 0 1 65 2 1 +907 13 5 -131.04 949.75 6 25 0 0 1 1 64 2 0 +908 13 6 -126.88 949.75 6 23 0 0 1 1 62 1 30 +909 13 7 -122.72 949.75 6 21 0 0 1 1 60 1 28 +910 13 8 -118.56 949.75 6 22 0 0 1 1 61 1 29 +911 13 9 -114.4 949.75 6 24 0 0 1 1 63 1 31 +912 13 10 -110.24 949.75 10 23 0 0 2 1 62 1 30 +913 13 11 -106.08 949.75 10 21 0 0 2 1 60 1 28 +914 13 12 -101.92 949.75 10 22 0 0 2 1 61 1 29 +915 13 13 -97.76 949.75 10 24 0 0 2 1 63 1 31 +916 13 14 -93.6 949.75 10 26 0 0 2 1 65 2 1 +917 13 15 -89.44 949.75 14 25 0 0 3 1 64 2 0 +918 13 16 -85.28 949.75 14 23 0 0 3 1 62 1 30 +919 13 17 -81.12 949.75 14 22 0 0 3 1 61 1 29 +920 13 18 -76.96 949.75 14 24 0 0 3 1 63 1 31 +921 13 19 -72.8 949.75 14 26 0 0 3 1 65 2 1 +922 13 20 -68.64 949.75 18 23 0 0 4 1 62 1 30 +923 13 21 -64.48 949.75 18 21 0 0 4 1 60 1 28 +924 13 22 -60.32 949.75 18 20 0 0 4 1 59 1 27 +925 13 23 -56.16 949.75 18 22 0 0 4 1 61 1 29 +926 13 24 -52 949.75 18 24 0 0 4 1 63 1 31 +927 13 25 -47.84 949.75 22 23 0 0 5 1 62 1 30 +928 13 26 -43.68 949.75 22 21 0 0 5 1 60 1 28 +929 13 27 -39.52 949.75 22 22 0 0 5 1 61 1 29 +930 13 28 -35.36 949.75 22 24 0 0 5 1 63 1 31 +931 13 29 -31.2 949.75 22 26 0 0 5 1 65 2 1 +932 13 30 -27.04 949.75 26 27 0 0 6 1 66 2 2 +933 13 31 -22.88 949.75 26 25 0 0 6 1 64 2 0 +934 13 32 -18.72 949.75 26 24 0 0 6 1 63 1 31 +935 13 33 -14.56 949.75 26 26 0 0 6 1 65 2 1 +936 13 34 -10.4 949.75 30 21 0 0 7 1 60 1 28 +937 13 35 -6.24 949.75 30 19 0 0 7 1 58 1 26 +938 13 36 -2.08 949.75 30 17 0 0 7 1 56 1 24 +939 13 37 2.08 949.75 30 18 0 0 7 1 57 1 25 +940 13 38 6.24 949.75 30 20 0 0 7 1 59 1 27 +941 13 39 10.4 949.75 30 22 0 0 7 1 61 1 29 +942 13 40 14.56 949.75 34 25 0 0 8 1 64 2 0 +943 13 41 18.72 949.75 34 23 0 0 8 1 62 1 30 +944 13 42 22.88 949.75 34 26 0 0 8 1 65 2 1 +945 13 43 27.04 949.75 34 28 0 0 8 1 67 2 3 +946 13 44 31.2 949.75 38 25 0 0 9 1 64 2 0 +947 13 45 35.36 949.75 38 23 0 0 9 1 62 1 30 +948 13 46 39.52 949.75 38 21 0 0 9 1 60 1 28 +949 13 47 43.68 949.75 38 22 0 0 9 1 61 1 29 +950 13 48 47.84 949.75 38 24 0 0 9 1 63 1 31 +951 13 49 52 949.75 42 23 0 0 10 1 62 1 30 +952 13 50 56.16 949.75 42 21 0 0 10 1 60 1 28 +953 13 51 60.32 949.75 42 19 0 0 10 1 58 1 26 +954 13 52 64.48 949.75 42 22 0 0 10 1 61 1 29 +955 13 53 68.64 949.75 42 24 0 0 10 1 63 1 31 +956 13 54 72.8 949.75 46 25 0 0 11 1 64 2 0 +957 13 55 76.96 949.75 46 23 0 0 11 1 62 1 30 +958 13 56 81.12 949.75 46 21 0 0 11 1 60 1 28 +959 13 57 85.28 949.75 46 24 0 0 11 1 63 1 31 +960 13 58 89.44 949.75 46 26 0 0 11 1 65 2 1 +961 13 59 93.6 949.75 50 25 0 0 12 1 64 2 0 +962 13 60 97.76 949.75 50 23 0 0 12 1 62 1 30 +963 13 61 101.92 949.75 50 21 0 0 12 1 60 1 28 +964 13 62 106.08 949.75 50 22 0 0 12 1 61 1 29 +965 13 63 110.24 949.75 50 24 0 0 12 1 63 1 31 +966 13 64 114.4 949.75 54 23 0 0 13 1 62 1 30 +967 13 65 118.56 949.75 54 21 0 0 13 1 60 1 28 +968 13 66 122.72 949.75 54 22 0 0 13 1 61 1 29 +969 13 67 126.88 949.75 54 24 0 0 13 1 63 1 31 +970 13 68 131.04 949.75 54 26 0 0 13 1 65 2 1 +971 13 69 135.2 949.75 58 25 0 0 14 1 64 2 0 +972 13 70 139.36 949.75 58 23 0 0 14 1 62 1 30 +973 13 71 143.52 949.75 58 21 0 0 14 1 60 1 28 +974 13 72 147.68 949.75 58 22 0 0 14 1 61 1 29 +975 13 73 151.84 949.75 58 24 0 0 14 1 63 1 31 +976 14 0 -151.84 957.25 2 29 0 0 0 1 68 2 4 +977 14 1 -147.68 957.25 2 27 0 0 0 1 66 2 2 +978 14 2 -143.52 957.25 2 25 0 0 0 1 64 2 0 +979 14 3 -139.36 957.25 2 28 0 0 0 1 67 2 3 +980 14 4 -135.2 957.25 2 30 0 0 0 1 69 2 5 +981 14 5 -131.04 957.25 6 29 0 0 1 1 68 2 4 +982 14 6 -126.88 957.25 6 27 0 0 1 1 66 2 2 +983 14 7 -122.72 957.25 6 26 0 0 1 1 65 2 1 +984 14 8 -118.56 957.25 6 28 0 0 1 1 67 2 3 +985 14 9 -114.4 957.25 6 30 0 0 1 1 69 2 5 +986 14 10 -110.24 957.25 10 29 0 0 2 1 68 2 4 +987 14 11 -106.08 957.25 10 27 0 0 2 1 66 2 2 +988 14 12 -101.92 957.25 10 25 0 0 2 1 64 2 0 +989 14 13 -97.76 957.25 10 28 0 0 2 1 67 2 3 +990 14 14 -93.6 957.25 10 30 0 0 2 1 69 2 5 +991 14 15 -89.44 957.25 14 31 0 0 3 1 70 2 6 +992 14 16 -85.28 957.25 14 29 0 0 3 1 68 2 4 +993 14 17 -81.12 957.25 14 27 0 0 3 1 66 2 2 +994 14 18 -76.96 957.25 14 28 0 0 3 1 67 2 3 +995 14 19 -72.8 957.25 14 30 0 0 3 1 69 2 5 +996 14 20 -68.64 957.25 18 29 0 0 4 1 68 2 4 +997 14 21 -64.48 957.25 18 27 0 0 4 1 66 2 2 +998 14 22 -60.32 957.25 18 25 0 0 4 1 64 2 0 +999 14 23 -56.16 957.25 18 26 0 0 4 1 65 2 1 +1000 14 24 -52 957.25 18 28 0 0 4 1 67 2 3 +1001 14 25 -47.84 957.25 22 29 0 0 5 1 68 2 4 +1002 14 26 -43.68 957.25 22 27 0 0 5 1 66 2 2 +1003 14 27 -39.52 957.25 22 25 0 0 5 1 64 2 0 +1004 14 28 -35.36 957.25 22 28 0 0 5 1 67 2 3 +1005 14 29 -31.2 957.25 22 30 0 0 5 1 69 2 5 +1006 14 30 -27.04 957.25 26 31 0 0 6 1 70 2 6 +1007 14 31 -22.88 957.25 26 29 0 0 6 1 68 2 4 +1008 14 32 -18.72 957.25 26 28 0 0 6 1 67 2 3 +1009 14 33 -14.56 957.25 26 30 0 0 6 1 69 2 5 +1010 14 34 -10.4 957.25 30 27 0 0 7 1 66 2 2 +1011 14 35 -6.24 957.25 30 25 0 0 7 1 64 2 0 +1012 14 36 -2.08 957.25 30 23 0 0 7 1 62 1 30 +1013 14 37 2.08 957.25 30 24 0 0 7 1 63 1 31 +1014 14 38 6.24 957.25 30 26 0 0 7 1 65 2 1 +1015 14 39 10.4 957.25 30 28 0 0 7 1 67 2 3 +1016 14 40 14.56 957.25 34 29 0 0 8 1 68 2 4 +1017 14 41 18.72 957.25 34 27 0 0 8 1 66 2 2 +1018 14 42 22.88 957.25 34 30 0 0 8 1 69 2 5 +1019 14 43 27.04 957.25 34 32 0 0 8 1 71 2 7 +1020 14 44 31.2 957.25 38 29 0 0 9 1 68 2 4 +1021 14 45 35.36 957.25 38 27 0 0 9 1 66 2 2 +1022 14 46 39.52 957.25 38 26 0 0 9 1 65 2 1 +1023 14 47 43.68 957.25 38 28 0 0 9 1 67 2 3 +1024 14 48 47.84 957.25 38 30 0 0 9 1 69 2 5 +1025 14 49 52 957.25 42 27 0 0 10 1 66 2 2 +1026 14 50 56.16 957.25 42 25 0 0 10 1 64 2 0 +1027 14 51 60.32 957.25 42 26 0 0 10 1 65 2 1 +1028 14 52 64.48 957.25 42 28 0 0 10 1 67 2 3 +1029 14 53 68.64 957.25 42 30 0 0 10 1 69 2 5 +1030 14 54 72.8 957.25 46 29 0 0 11 1 68 2 4 +1031 14 55 76.96 957.25 46 27 0 0 11 1 66 2 2 +1032 14 56 81.12 957.25 46 28 0 0 11 1 67 2 3 +1033 14 57 85.28 957.25 46 30 0 0 11 1 69 2 5 +1034 14 58 89.44 957.25 46 32 0 0 11 1 71 2 7 +1035 14 59 93.6 957.25 50 29 0 0 12 1 68 2 4 +1036 14 60 97.76 957.25 50 27 0 0 12 1 66 2 2 +1037 14 61 101.92 957.25 50 26 0 0 12 1 65 2 1 +1038 14 62 106.08 957.25 50 28 0 0 12 1 67 2 3 +1039 14 63 110.24 957.25 50 30 0 0 12 1 69 2 5 +1040 14 64 114.4 957.25 54 29 0 0 13 1 68 2 4 +1041 14 65 118.56 957.25 54 27 0 0 13 1 66 2 2 +1042 14 66 122.72 957.25 54 25 0 0 13 1 64 2 0 +1043 14 67 126.88 957.25 54 28 0 0 13 1 67 2 3 +1044 14 68 131.04 957.25 54 30 0 0 13 1 69 2 5 +1045 14 69 135.2 957.25 58 29 0 0 14 1 68 2 4 +1046 14 70 139.36 957.25 58 27 0 0 14 1 66 2 2 +1047 14 71 143.52 957.25 58 26 0 0 14 1 65 2 1 +1048 14 72 147.68 957.25 58 28 0 0 14 1 67 2 3 +1049 14 73 151.84 957.25 58 30 0 0 14 1 69 2 5 +1050 15 0 -151.84 964.75 2 33 0 0 0 1 72 2 8 +1051 15 1 -147.68 964.75 2 31 0 0 0 1 70 2 6 +1052 15 2 -143.52 964.75 2 32 0 0 0 1 71 2 7 +1053 15 3 -139.36 964.75 2 34 0 0 0 1 73 2 9 +1054 15 4 -135.2 964.75 2 36 0 0 0 1 75 2 11 +1055 15 5 -131.04 964.75 6 35 0 0 1 1 74 2 10 +1056 15 6 -126.88 964.75 6 33 0 0 1 1 72 2 8 +1057 15 7 -122.72 964.75 6 31 0 0 1 1 70 2 6 +1058 15 8 -118.56 964.75 6 32 0 0 1 1 71 2 7 +1059 15 9 -114.4 964.75 6 34 0 0 1 1 73 2 9 +1060 15 10 -110.24 964.75 10 33 0 0 2 1 72 2 8 +1061 15 11 -106.08 964.75 10 31 0 0 2 1 70 2 6 +1062 15 12 -101.92 964.75 10 32 0 0 2 1 71 2 7 +1063 15 13 -97.76 964.75 10 34 0 0 2 1 73 2 9 +1064 15 14 -93.6 964.75 10 36 0 0 2 1 75 2 11 +1065 15 15 -89.44 964.75 14 35 0 0 3 1 74 2 10 +1066 15 16 -85.28 964.75 14 33 0 0 3 1 72 2 8 +1067 15 17 -81.12 964.75 14 32 0 0 3 1 71 2 7 +1068 15 18 -76.96 964.75 14 34 0 0 3 1 73 2 9 +1069 15 19 -72.8 964.75 18 35 0 0 4 1 74 2 10 +1070 15 20 -68.64 964.75 18 33 0 0 4 1 72 2 8 +1071 15 21 -64.48 964.75 18 31 0 0 4 1 70 2 6 +1072 15 22 -60.32 964.75 18 30 0 0 4 1 69 2 5 +1073 15 23 -56.16 964.75 18 32 0 0 4 1 71 2 7 +1074 15 24 -52 964.75 18 34 0 0 4 1 73 2 9 +1075 15 25 -47.84 964.75 22 33 0 0 5 1 72 2 8 +1076 15 26 -43.68 964.75 22 31 0 0 5 1 70 2 6 +1077 15 27 -39.52 964.75 22 32 0 0 5 1 71 2 7 +1078 15 28 -35.36 964.75 22 34 0 0 5 1 73 2 9 +1079 15 29 -31.2 964.75 22 36 0 0 5 1 75 2 11 +1080 15 30 -27.04 964.75 26 35 0 0 6 1 74 2 10 +1081 15 31 -22.88 964.75 26 33 0 0 6 1 72 2 8 +1082 15 32 -18.72 964.75 26 32 0 0 6 1 71 2 7 +1083 15 33 -14.56 964.75 26 34 0 0 6 1 73 2 9 +1084 15 34 -10.4 964.75 30 33 0 0 7 1 72 2 8 +1085 15 35 -6.24 964.75 30 31 0 0 7 1 70 2 6 +1086 15 36 -2.08 964.75 30 29 0 0 7 1 68 2 4 +1087 15 37 2.08 964.75 30 30 0 0 7 1 69 2 5 +1088 15 38 6.24 964.75 30 32 0 0 7 1 71 2 7 +1089 15 39 10.4 964.75 30 34 0 0 7 1 73 2 9 +1090 15 40 14.56 964.75 34 33 0 0 8 1 72 2 8 +1091 15 41 18.72 964.75 34 31 0 0 8 1 70 2 6 +1092 15 42 22.88 964.75 34 34 0 0 8 1 73 2 9 +1093 15 43 27.04 964.75 34 36 0 0 8 1 75 2 11 +1094 15 44 31.2 964.75 38 35 0 0 9 1 74 2 10 +1095 15 45 35.36 964.75 38 33 0 0 9 1 72 2 8 +1096 15 46 39.52 964.75 38 31 0 0 9 1 70 2 6 +1097 15 47 43.68 964.75 38 32 0 0 9 1 71 2 7 +1098 15 48 47.84 964.75 38 34 0 0 9 1 73 2 9 +1099 15 49 52 964.75 42 33 0 0 10 1 72 2 8 +1100 15 50 56.16 964.75 42 31 0 0 10 1 70 2 6 +1101 15 51 60.32 964.75 42 29 0 0 10 1 68 2 4 +1102 15 52 64.48 964.75 42 32 0 0 10 1 71 2 7 +1103 15 53 68.64 964.75 42 34 0 0 10 1 73 2 9 +1104 15 54 72.8 964.75 42 36 0 0 10 1 75 2 11 +1105 15 55 76.96 964.75 46 33 0 0 11 1 72 2 8 +1106 15 56 81.12 964.75 46 31 0 0 11 1 70 2 6 +1107 15 57 85.28 964.75 46 34 0 0 11 1 73 2 9 +1108 15 58 89.44 964.75 46 36 0 0 11 1 75 2 11 +1109 15 59 93.6 964.75 50 35 0 0 12 1 74 2 10 +1110 15 60 97.76 964.75 50 33 0 0 12 1 72 2 8 +1111 15 61 101.92 964.75 50 31 0 0 12 1 70 2 6 +1112 15 62 106.08 964.75 50 32 0 0 12 1 71 2 7 +1113 15 63 110.24 964.75 50 34 0 0 12 1 73 2 9 +1114 15 64 114.4 964.75 54 33 0 0 13 1 72 2 8 +1115 15 65 118.56 964.75 54 31 0 0 13 1 70 2 6 +1116 15 66 122.72 964.75 54 32 0 0 13 1 71 2 7 +1117 15 67 126.88 964.75 54 34 0 0 13 1 73 2 9 +1118 15 68 131.04 964.75 54 36 0 0 13 1 75 2 11 +1119 15 69 135.2 964.75 58 35 0 0 14 1 74 2 10 +1120 15 70 139.36 964.75 58 33 0 0 14 1 72 2 8 +1121 15 71 143.52 964.75 58 31 0 0 14 1 70 2 6 +1122 15 72 147.68 964.75 58 32 0 0 14 1 71 2 7 +1123 15 73 151.84 964.75 58 34 0 0 14 1 73 2 9 +1124 16 0 -156 972.25 2 39 0 0 0 1 78 2 14 +1125 16 1 -151.84 972.25 2 37 0 0 0 1 76 2 12 +1126 16 2 -147.68 972.25 2 35 0 0 0 1 74 2 10 +1127 16 3 -143.52 972.25 2 38 0 0 0 1 77 2 13 +1128 16 4 -139.36 972.25 2 40 0 0 0 1 79 2 15 +1129 16 5 -135.2 972.25 6 39 0 0 1 1 78 2 14 +1130 16 6 -131.04 972.25 6 37 0 0 1 1 76 2 12 +1131 16 7 -126.88 972.25 6 36 0 0 1 1 75 2 11 +1132 16 8 -122.72 972.25 6 38 0 0 1 1 77 2 13 +1133 16 9 -118.56 972.25 6 40 0 0 1 1 79 2 15 +1134 16 10 -114.4 972.25 10 39 0 0 2 1 78 2 14 +1135 16 11 -110.24 972.25 10 37 0 0 2 1 76 2 12 +1136 16 12 -106.08 972.25 10 35 0 0 2 1 74 2 10 +1137 16 13 -101.92 972.25 10 38 0 0 2 1 77 2 13 +1138 16 14 -97.76 972.25 10 40 0 0 2 1 79 2 15 +1139 16 15 -93.6 972.25 14 39 0 0 3 1 78 2 14 +1140 16 16 -89.44 972.25 14 37 0 0 3 1 76 2 12 +1141 16 17 -85.28 972.25 14 36 0 0 3 1 75 2 11 +1142 16 18 -81.12 972.25 14 38 0 0 3 1 77 2 13 +1143 16 19 -76.96 972.25 14 40 0 0 3 1 79 2 15 +1144 16 20 -72.8 972.25 18 39 0 0 4 1 78 2 14 +1145 16 21 -68.64 972.25 18 37 0 0 4 1 76 2 12 +1146 16 22 -64.48 972.25 18 36 0 0 4 1 75 2 11 +1147 16 23 -60.32 972.25 18 38 0 0 4 1 77 2 13 +1148 16 24 -56.16 972.25 18 40 0 0 4 1 79 2 15 +1149 16 25 -52 972.25 22 39 0 0 5 1 78 2 14 +1150 16 26 -47.84 972.25 22 37 0 0 5 1 76 2 12 +1151 16 27 -43.68 972.25 22 35 0 0 5 1 74 2 10 +1152 16 28 -39.52 972.25 22 38 0 0 5 1 77 2 13 +1153 16 29 -35.36 972.25 22 40 0 0 5 1 79 2 15 +1154 16 30 -31.2 972.25 26 39 0 0 6 1 78 2 14 +1155 16 31 -27.04 972.25 26 37 0 0 6 1 76 2 12 +1156 16 32 -22.88 972.25 26 36 0 0 6 1 75 2 11 +1157 16 33 -18.72 972.25 26 38 0 0 6 1 77 2 13 +1158 16 34 -14.56 972.25 26 40 0 0 6 1 79 2 15 +1159 16 35 -10.4 972.25 30 39 0 0 7 1 78 2 14 +1160 16 36 -6.24 972.25 30 37 0 0 7 1 76 2 12 +1161 16 37 -2.08 972.25 30 35 0 0 7 1 74 2 10 +1162 16 38 2.08 972.25 30 36 0 0 7 1 75 2 11 +1163 16 39 6.24 972.25 30 38 0 0 7 1 77 2 13 +1164 16 40 10.4 972.25 30 40 0 0 7 1 79 2 15 +1165 16 41 14.56 972.25 34 39 0 0 8 1 78 2 14 +1166 16 42 18.72 972.25 34 37 0 0 8 1 76 2 12 +1167 16 43 22.88 972.25 34 35 0 0 8 1 74 2 10 +1168 16 44 27.04 972.25 34 38 0 0 8 1 77 2 13 +1169 16 45 31.2 972.25 34 40 0 0 8 1 79 2 15 +1170 16 46 35.36 972.25 38 39 0 0 9 1 78 2 14 +1171 16 47 39.52 972.25 38 37 0 0 9 1 76 2 12 +1172 16 48 43.68 972.25 38 36 0 0 9 1 75 2 11 +1173 16 49 47.84 972.25 38 38 0 0 9 1 77 2 13 +1174 16 50 52 972.25 38 40 0 0 9 1 79 2 15 +1175 16 51 56.16 972.25 42 39 0 0 10 1 78 2 14 +1176 16 52 60.32 972.25 42 37 0 0 10 1 76 2 12 +1177 16 53 64.48 972.25 42 35 0 0 10 1 74 2 10 +1178 16 54 68.64 972.25 42 38 0 0 10 1 77 2 13 +1179 16 55 72.8 972.25 42 40 0 0 10 1 79 2 15 +1180 16 56 76.96 972.25 46 39 0 0 11 1 78 2 14 +1181 16 57 81.12 972.25 46 37 0 0 11 1 76 2 12 +1182 16 58 85.28 972.25 46 35 0 0 11 1 74 2 10 +1183 16 59 89.44 972.25 46 38 0 0 11 1 77 2 13 +1184 16 60 93.6 972.25 46 40 0 0 11 1 79 2 15 +1185 16 61 97.76 972.25 50 39 0 0 12 1 78 2 14 +1186 16 62 101.92 972.25 50 37 0 0 12 1 76 2 12 +1187 16 63 106.08 972.25 50 36 0 0 12 1 75 2 11 +1188 16 64 110.24 972.25 50 38 0 0 12 1 77 2 13 +1189 16 65 114.4 972.25 50 40 0 0 12 1 79 2 15 +1190 16 66 118.56 972.25 54 39 0 0 13 1 78 2 14 +1191 16 67 122.72 972.25 54 37 0 0 13 1 76 2 12 +1192 16 68 126.88 972.25 54 35 0 0 13 1 74 2 10 +1193 16 69 131.04 972.25 54 38 0 0 13 1 77 2 13 +1194 16 70 135.2 972.25 54 40 0 0 13 1 79 2 15 +1195 16 71 139.36 972.25 58 39 0 0 14 1 78 2 14 +1196 16 72 143.52 972.25 58 37 0 0 14 1 76 2 12 +1197 16 73 147.68 972.25 58 36 0 0 14 1 75 2 11 +1198 16 74 151.84 972.25 58 38 0 0 14 1 77 2 13 +1199 16 75 156 972.25 58 40 0 0 14 1 79 2 15 +1200 17 0 -157.5 979.75 3 3 0 1 0 2 82 2 18 +1201 17 1 -153.3 979.75 3 1 0 1 0 2 80 2 16 +1202 17 2 -149.1 979.75 3 2 0 1 0 2 81 2 17 +1203 17 3 -144.9 979.75 3 4 0 1 0 2 83 2 19 +1204 17 4 -140.7 979.75 3 6 0 1 0 2 85 2 21 +1205 17 5 -136.5 979.75 7 5 0 1 1 2 84 2 20 +1206 17 6 -132.3 979.75 7 3 0 1 1 2 82 2 18 +1207 17 7 -128.1 979.75 7 1 0 1 1 2 80 2 16 +1208 17 8 -123.9 979.75 7 2 0 1 1 2 81 2 17 +1209 17 9 -119.7 979.75 7 4 0 1 1 2 83 2 19 +1210 17 10 -115.5 979.75 11 5 0 1 2 2 84 2 20 +1211 17 11 -111.3 979.75 11 3 0 1 2 2 82 2 18 +1212 17 12 -107.1 979.75 11 1 0 1 2 2 80 2 16 +1213 17 13 -102.9 979.75 11 2 0 1 2 2 81 2 17 +1214 17 14 -98.7 979.75 11 4 0 1 2 2 83 2 19 +1215 17 15 -94.5 979.75 15 5 0 1 3 2 84 2 20 +1216 17 16 -90.3 979.75 15 3 0 1 3 2 82 2 18 +1217 17 17 -86.1 979.75 15 1 0 1 3 2 80 2 16 +1218 17 18 -81.9 979.75 15 2 0 1 3 2 81 2 17 +1219 17 19 -77.7 979.75 15 4 0 1 3 2 83 2 19 +1220 17 20 -73.5 979.75 19 3 0 1 4 2 82 2 18 +1221 17 21 -69.3 979.75 19 1 0 1 4 2 80 2 16 +1222 17 22 -65.1 979.75 19 2 0 1 4 2 81 2 17 +1223 17 23 -60.9 979.75 19 4 0 1 4 2 83 2 19 +1224 17 24 -56.7 979.75 19 6 0 1 4 2 85 2 21 +1225 17 25 -52.5 979.75 23 3 0 1 5 2 82 2 18 +1226 17 26 -48.3 979.75 23 1 0 1 5 2 80 2 16 +1227 17 27 -44.1 979.75 23 2 0 1 5 2 81 2 17 +1228 17 28 -39.9 979.75 23 4 0 1 5 2 83 2 19 +1229 17 29 -35.7 979.75 23 6 0 1 5 2 85 2 21 +1230 17 30 -31.5 979.75 27 5 0 1 6 2 84 2 20 +1231 17 31 -27.3 979.75 27 3 0 1 6 2 82 2 18 +1232 17 32 -23.1 979.75 27 1 0 1 6 2 80 2 16 +1233 17 33 -18.9 979.75 27 2 0 1 6 2 81 2 17 +1234 17 34 -14.7 979.75 27 4 0 1 6 2 83 2 19 +1235 17 35 -10.5 979.75 27 6 0 1 6 2 85 2 21 +1236 17 36 -6.3 979.75 31 3 0 1 7 2 82 2 18 +1237 17 37 -2.1 979.75 31 1 0 1 7 2 80 2 16 +1238 17 38 2.1 979.75 31 2 0 1 7 2 81 2 17 +1239 17 39 6.3 979.75 31 4 0 1 7 2 83 2 19 +1240 17 40 10.5 979.75 35 5 0 1 8 2 84 2 20 +1241 17 41 14.7 979.75 35 3 0 1 8 2 82 2 18 +1242 17 42 18.9 979.75 35 1 0 1 8 2 80 2 16 +1243 17 43 23.1 979.75 35 2 0 1 8 2 81 2 17 +1244 17 44 27.3 979.75 35 4 0 1 8 2 83 2 19 +1245 17 45 31.5 979.75 35 6 0 1 8 2 85 2 21 +1246 17 46 35.7 979.75 39 5 0 1 9 2 84 2 20 +1247 17 47 39.9 979.75 39 3 0 1 9 2 82 2 18 +1248 17 48 44.1 979.75 39 1 0 1 9 2 80 2 16 +1249 17 49 48.3 979.75 39 2 0 1 9 2 81 2 17 +1250 17 50 52.5 979.75 39 4 0 1 9 2 83 2 19 +1251 17 51 56.7 979.75 43 5 0 1 10 2 84 2 20 +1252 17 52 60.9 979.75 43 3 0 1 10 2 82 2 18 +1253 17 53 65.1 979.75 43 1 0 1 10 2 80 2 16 +1254 17 54 69.3 979.75 43 2 0 1 10 2 81 2 17 +1255 17 55 73.5 979.75 43 4 0 1 10 2 83 2 19 +1256 17 56 77.7 979.75 47 3 0 1 11 2 82 2 18 +1257 17 57 81.9 979.75 47 1 0 1 11 2 80 2 16 +1258 17 58 86.1 979.75 47 2 0 1 11 2 81 2 17 +1259 17 59 90.3 979.75 47 4 0 1 11 2 83 2 19 +1260 17 60 94.5 979.75 47 6 0 1 11 2 85 2 21 +1261 17 61 98.7 979.75 51 3 0 1 12 2 82 2 18 +1262 17 62 102.9 979.75 51 1 0 1 12 2 80 2 16 +1263 17 63 107.1 979.75 51 2 0 1 12 2 81 2 17 +1264 17 64 111.3 979.75 51 4 0 1 12 2 83 2 19 +1265 17 65 115.5 979.75 51 6 0 1 12 2 85 2 21 +1266 17 66 119.7 979.75 55 3 0 1 13 2 82 2 18 +1267 17 67 123.9 979.75 55 1 0 1 13 2 80 2 16 +1268 17 68 128.1 979.75 55 2 0 1 13 2 81 2 17 +1269 17 69 132.3 979.75 55 4 0 1 13 2 83 2 19 +1270 17 70 136.5 979.75 55 6 0 1 13 2 85 2 21 +1271 17 71 140.7 979.75 59 5 0 1 14 2 84 2 20 +1272 17 72 144.9 979.75 59 3 0 1 14 2 82 2 18 +1273 17 73 149.1 979.75 59 1 0 1 14 2 80 2 16 +1274 17 74 153.3 979.75 59 2 0 1 14 2 81 2 17 +1275 17 75 157.5 979.75 59 4 0 1 14 2 83 2 19 +1276 18 0 -157.5 987.25 3 9 0 1 0 2 88 2 24 +1277 18 1 -153.3 987.25 3 7 0 1 0 2 86 2 22 +1278 18 2 -149.1 987.25 3 5 0 1 0 2 84 2 20 +1279 18 3 -144.9 987.25 3 8 0 1 0 2 87 2 23 +1280 18 4 -140.7 987.25 3 10 0 1 0 2 89 2 25 +1281 18 5 -136.5 987.25 7 9 0 1 1 2 88 2 24 +1282 18 6 -132.3 987.25 7 7 0 1 1 2 86 2 22 +1283 18 7 -128.1 987.25 7 6 0 1 1 2 85 2 21 +1284 18 8 -123.9 987.25 7 8 0 1 1 2 87 2 23 +1285 18 9 -119.7 987.25 7 10 0 1 1 2 89 2 25 +1286 18 10 -115.5 987.25 11 9 0 1 2 2 88 2 24 +1287 18 11 -111.3 987.25 11 7 0 1 2 2 86 2 22 +1288 18 12 -107.1 987.25 11 6 0 1 2 2 85 2 21 +1289 18 13 -102.9 987.25 11 8 0 1 2 2 87 2 23 +1290 18 14 -98.7 987.25 11 10 0 1 2 2 89 2 25 +1291 18 15 -94.5 987.25 15 9 0 1 3 2 88 2 24 +1292 18 16 -90.3 987.25 15 7 0 1 3 2 86 2 22 +1293 18 17 -86.1 987.25 15 6 0 1 3 2 85 2 21 +1294 18 18 -81.9 987.25 15 8 0 1 3 2 87 2 23 +1295 18 19 -77.7 987.25 15 10 0 1 3 2 89 2 25 +1296 18 20 -73.5 987.25 19 9 0 1 4 2 88 2 24 +1297 18 21 -69.3 987.25 19 7 0 1 4 2 86 2 22 +1298 18 22 -65.1 987.25 19 5 0 1 4 2 84 2 20 +1299 18 23 -60.9 987.25 19 8 0 1 4 2 87 2 23 +1300 18 24 -56.7 987.25 19 10 0 1 4 2 89 2 25 +1301 18 25 -52.5 987.25 23 9 0 1 5 2 88 2 24 +1302 18 26 -48.3 987.25 23 7 0 1 5 2 86 2 22 +1303 18 27 -44.1 987.25 23 5 0 1 5 2 84 2 20 +1304 18 28 -39.9 987.25 23 8 0 1 5 2 87 2 23 +1305 18 29 -35.7 987.25 23 10 0 1 5 2 89 2 25 +1306 18 30 -31.5 987.25 27 11 0 1 6 2 90 2 26 +1307 18 31 -27.3 987.25 27 9 0 1 6 2 88 2 24 +1308 18 32 -23.1 987.25 27 7 0 1 6 2 86 2 22 +1309 18 33 -18.9 987.25 27 8 0 1 6 2 87 2 23 +1310 18 34 -14.7 987.25 27 10 0 1 6 2 89 2 25 +1311 18 35 -10.5 987.25 27 12 0 1 6 2 91 2 27 +1312 18 36 -6.3 987.25 31 7 0 1 7 2 86 2 22 +1313 18 37 -2.1 987.25 31 5 0 1 7 2 84 2 20 +1314 18 38 2.1 987.25 31 6 0 1 7 2 85 2 21 +1315 18 39 6.3 987.25 31 8 0 1 7 2 87 2 23 +1316 18 40 10.5 987.25 35 11 0 1 8 2 90 2 26 +1317 18 41 14.7 987.25 35 9 0 1 8 2 88 2 24 +1318 18 42 18.9 987.25 35 7 0 1 8 2 86 2 22 +1319 18 43 23.1 987.25 35 8 0 1 8 2 87 2 23 +1320 18 44 27.3 987.25 35 10 0 1 8 2 89 2 25 +1321 18 45 31.5 987.25 35 12 0 1 8 2 91 2 27 +1322 18 46 35.7 987.25 39 9 0 1 9 2 88 2 24 +1323 18 47 39.9 987.25 39 7 0 1 9 2 86 2 22 +1324 18 48 44.1 987.25 39 6 0 1 9 2 85 2 21 +1325 18 49 48.3 987.25 39 8 0 1 9 2 87 2 23 +1326 18 50 52.5 987.25 39 10 0 1 9 2 89 2 25 +1327 18 51 56.7 987.25 43 9 0 1 10 2 88 2 24 +1328 18 52 60.9 987.25 43 7 0 1 10 2 86 2 22 +1329 18 53 65.1 987.25 43 6 0 1 10 2 85 2 21 +1330 18 54 69.3 987.25 43 8 0 1 10 2 87 2 23 +1331 18 55 73.5 987.25 43 10 0 1 10 2 89 2 25 +1332 18 56 77.7 987.25 47 9 0 1 11 2 88 2 24 +1333 18 57 81.9 987.25 47 7 0 1 11 2 86 2 22 +1334 18 58 86.1 987.25 47 5 0 1 11 2 84 2 20 +1335 18 59 90.3 987.25 47 8 0 1 11 2 87 2 23 +1336 18 60 94.5 987.25 47 10 0 1 11 2 89 2 25 +1337 18 61 98.7 987.25 51 9 0 1 12 2 88 2 24 +1338 18 62 102.9 987.25 51 7 0 1 12 2 86 2 22 +1339 18 63 107.1 987.25 51 5 0 1 12 2 84 2 20 +1340 18 64 111.3 987.25 51 8 0 1 12 2 87 2 23 +1341 18 65 115.5 987.25 51 10 0 1 12 2 89 2 25 +1342 18 66 119.7 987.25 55 9 0 1 13 2 88 2 24 +1343 18 67 123.9 987.25 55 7 0 1 13 2 86 2 22 +1344 18 68 128.1 987.25 55 5 0 1 13 2 84 2 20 +1345 18 69 132.3 987.25 55 8 0 1 13 2 87 2 23 +1346 18 70 136.5 987.25 55 10 0 1 13 2 89 2 25 +1347 18 71 140.7 987.25 59 9 0 1 14 2 88 2 24 +1348 18 72 144.9 987.25 59 7 0 1 14 2 86 2 22 +1349 18 73 149.1 987.25 59 6 0 1 14 2 85 2 21 +1350 18 74 153.3 987.25 59 8 0 1 14 2 87 2 23 +1351 18 75 157.5 987.25 59 10 0 1 14 2 89 2 25 +1352 19 0 -157.5 994.75 3 13 0 1 0 2 92 2 28 +1353 19 1 -153.3 994.75 3 11 0 1 0 2 90 2 26 +1354 19 2 -149.1 994.75 3 12 0 1 0 2 91 2 27 +1355 19 3 -144.9 994.75 3 14 0 1 0 2 93 2 29 +1356 19 4 -140.7 994.75 3 16 0 1 0 2 95 2 31 +1357 19 5 -136.5 994.75 7 13 0 1 1 2 92 2 28 +1358 19 6 -132.3 994.75 7 11 0 1 1 2 90 2 26 +1359 19 7 -128.1 994.75 7 12 0 1 1 2 91 2 27 +1360 19 8 -123.9 994.75 7 14 0 1 1 2 93 2 29 +1361 19 9 -119.7 994.75 7 16 0 1 1 2 95 2 31 +1362 19 10 -115.5 994.75 11 15 0 1 2 2 94 2 30 +1363 19 11 -111.3 994.75 11 13 0 1 2 2 92 2 28 +1364 19 12 -107.1 994.75 11 11 0 1 2 2 90 2 26 +1365 19 13 -102.9 994.75 11 12 0 1 2 2 91 2 27 +1366 19 14 -98.7 994.75 11 14 0 1 2 2 93 2 29 +1367 19 15 -94.5 994.75 15 15 0 1 3 2 94 2 30 +1368 19 16 -90.3 994.75 15 13 0 1 3 2 92 2 28 +1369 19 17 -86.1 994.75 15 11 0 1 3 2 90 2 26 +1370 19 18 -81.9 994.75 15 12 0 1 3 2 91 2 27 +1371 19 19 -77.7 994.75 15 14 0 1 3 2 93 2 29 +1372 19 20 -73.5 994.75 19 13 0 1 4 2 92 2 28 +1373 19 21 -69.3 994.75 19 11 0 1 4 2 90 2 26 +1374 19 22 -65.1 994.75 19 12 0 1 4 2 91 2 27 +1375 19 23 -60.9 994.75 19 14 0 1 4 2 93 2 29 +1376 19 24 -56.7 994.75 19 16 0 1 4 2 95 2 31 +1377 19 25 -52.5 994.75 23 13 0 1 5 2 92 2 28 +1378 19 26 -48.3 994.75 23 11 0 1 5 2 90 2 26 +1379 19 27 -44.1 994.75 23 12 0 1 5 2 91 2 27 +1380 19 28 -39.9 994.75 23 14 0 1 5 2 93 2 29 +1381 19 29 -35.7 994.75 23 16 0 1 5 2 95 2 31 +1382 19 30 -31.5 994.75 27 17 0 1 6 2 96 3 0 +1383 19 31 -27.3 994.75 27 15 0 1 6 2 94 2 30 +1384 19 32 -23.1 994.75 27 13 0 1 6 2 92 2 28 +1385 19 33 -18.9 994.75 27 14 0 1 6 2 93 2 29 +1386 19 34 -14.7 994.75 27 16 0 1 6 2 95 2 31 +1387 19 35 -10.5 994.75 27 18 0 1 6 2 97 3 1 +1388 19 36 -6.3 994.75 31 11 0 1 7 2 90 2 26 +1389 19 37 -2.1 994.75 31 9 0 1 7 2 88 2 24 +1390 19 38 2.1 994.75 31 10 0 1 7 2 89 2 25 +1391 19 39 6.3 994.75 31 12 0 1 7 2 91 2 27 +1392 19 40 10.5 994.75 35 17 0 1 8 2 96 3 0 +1393 19 41 14.7 994.75 35 15 0 1 8 2 94 2 30 +1394 19 42 18.9 994.75 35 13 0 1 8 2 92 2 28 +1395 19 43 23.1 994.75 35 14 0 1 8 2 93 2 29 +1396 19 44 27.3 994.75 35 16 0 1 8 2 95 2 31 +1397 19 45 31.5 994.75 35 18 0 1 8 2 97 3 1 +1398 19 46 35.7 994.75 39 15 0 1 9 2 94 2 30 +1399 19 47 39.9 994.75 39 13 0 1 9 2 92 2 28 +1400 19 48 44.1 994.75 39 11 0 1 9 2 90 2 26 +1401 19 49 48.3 994.75 39 12 0 1 9 2 91 2 27 +1402 19 50 52.5 994.75 39 14 0 1 9 2 93 2 29 +1403 19 51 56.7 994.75 43 15 0 1 10 2 94 2 30 +1404 19 52 60.9 994.75 43 13 0 1 10 2 92 2 28 +1405 19 53 65.1 994.75 43 11 0 1 10 2 90 2 26 +1406 19 54 69.3 994.75 43 12 0 1 10 2 91 2 27 +1407 19 55 73.5 994.75 43 14 0 1 10 2 93 2 29 +1408 19 56 77.7 994.75 47 13 0 1 11 2 92 2 28 +1409 19 57 81.9 994.75 47 11 0 1 11 2 90 2 26 +1410 19 58 86.1 994.75 47 12 0 1 11 2 91 2 27 +1411 19 59 90.3 994.75 47 14 0 1 11 2 93 2 29 +1412 19 60 94.5 994.75 47 16 0 1 11 2 95 2 31 +1413 19 61 98.7 994.75 51 13 0 1 12 2 92 2 28 +1414 19 62 102.9 994.75 51 11 0 1 12 2 90 2 26 +1415 19 63 107.1 994.75 51 12 0 1 12 2 91 2 27 +1416 19 64 111.3 994.75 51 14 0 1 12 2 93 2 29 +1417 19 65 115.5 994.75 51 16 0 1 12 2 95 2 31 +1418 19 66 119.7 994.75 55 15 0 1 13 2 94 2 30 +1419 19 67 123.9 994.75 55 13 0 1 13 2 92 2 28 +1420 19 68 128.1 994.75 55 11 0 1 13 2 90 2 26 +1421 19 69 132.3 994.75 55 12 0 1 13 2 91 2 27 +1422 19 70 136.5 994.75 55 14 0 1 13 2 93 2 29 +1423 19 71 140.7 994.75 59 15 0 1 14 2 94 2 30 +1424 19 72 144.9 994.75 59 13 0 1 14 2 92 2 28 +1425 19 73 149.1 994.75 59 11 0 1 14 2 90 2 26 +1426 19 74 153.3 994.75 59 12 0 1 14 2 91 2 27 +1427 19 75 157.5 994.75 59 14 0 1 14 2 93 2 29 +1428 20 0 -161.7 1002.25 3 19 0 1 0 2 98 3 2 +1429 20 1 -157.5 1002.25 3 17 0 1 0 2 96 3 0 +1430 20 2 -153.3 1002.25 3 15 0 1 0 2 94 2 30 +1431 20 3 -149.1 1002.25 3 18 0 1 0 2 97 3 1 +1432 20 4 -144.9 1002.25 3 20 0 1 0 2 99 3 3 +1433 20 5 -140.7 1002.25 7 19 0 1 1 2 98 3 2 +1434 20 6 -136.5 1002.25 7 17 0 1 1 2 96 3 0 +1435 20 7 -132.3 1002.25 7 15 0 1 1 2 94 2 30 +1436 20 8 -128.1 1002.25 7 18 0 1 1 2 97 3 1 +1437 20 9 -123.9 1002.25 7 20 0 1 1 2 99 3 3 +1438 20 10 -119.7 1002.25 7 22 0 1 1 2 101 3 5 +1439 20 11 -115.5 1002.25 11 19 0 1 2 2 98 3 2 +1440 20 12 -111.3 1002.25 11 17 0 1 2 2 96 3 0 +1441 20 13 -107.1 1002.25 11 16 0 1 2 2 95 2 31 +1442 20 14 -102.9 1002.25 11 18 0 1 2 2 97 3 1 +1443 20 15 -98.7 1002.25 11 20 0 1 2 2 99 3 3 +1444 20 16 -94.5 1002.25 15 19 0 1 3 2 98 3 2 +1445 20 17 -90.3 1002.25 15 17 0 1 3 2 96 3 0 +1446 20 18 -86.1 1002.25 15 16 0 1 3 2 95 2 31 +1447 20 19 -81.9 1002.25 15 18 0 1 3 2 97 3 1 +1448 20 20 -77.7 1002.25 15 20 0 1 3 2 99 3 3 +1449 20 21 -73.5 1002.25 19 19 0 1 4 2 98 3 2 +1450 20 22 -69.3 1002.25 19 17 0 1 4 2 96 3 0 +1451 20 23 -65.1 1002.25 19 15 0 1 4 2 94 2 30 +1452 20 24 -60.9 1002.25 19 18 0 1 4 2 97 3 1 +1453 20 25 -56.7 1002.25 19 20 0 1 4 2 99 3 3 +1454 20 26 -52.5 1002.25 23 19 0 1 5 2 98 3 2 +1455 20 27 -48.3 1002.25 23 17 0 1 5 2 96 3 0 +1456 20 28 -44.1 1002.25 23 15 0 1 5 2 94 2 30 +1457 20 29 -39.9 1002.25 23 18 0 1 5 2 97 3 1 +1458 20 30 -35.7 1002.25 23 20 0 1 5 2 99 3 3 +1459 20 31 -31.5 1002.25 27 23 0 1 6 2 102 3 6 +1460 20 32 -27.3 1002.25 27 21 0 1 6 2 100 3 4 +1461 20 33 -23.1 1002.25 27 19 0 1 6 2 98 3 2 +1462 20 34 -18.9 1002.25 27 20 0 1 6 2 99 3 3 +1463 20 35 -14.7 1002.25 27 22 0 1 6 2 101 3 5 +1464 20 36 -10.5 1002.25 27 24 0 1 6 2 103 3 7 +1465 20 37 -6.3 1002.25 31 15 0 1 7 2 94 2 30 +1466 20 38 -2.1 1002.25 31 13 0 1 7 2 92 2 28 +1467 20 39 2.1 1002.25 31 14 0 1 7 2 93 2 29 +1468 20 40 6.3 1002.25 31 16 0 1 7 2 95 2 31 +1469 20 41 10.5 1002.25 35 23 0 1 8 2 102 3 6 +1470 20 42 14.7 1002.25 35 21 0 1 8 2 100 3 4 +1471 20 43 18.9 1002.25 35 19 0 1 8 2 98 3 2 +1472 20 44 23.1 1002.25 35 20 0 1 8 2 99 3 3 +1473 20 45 27.3 1002.25 35 22 0 1 8 2 101 3 5 +1474 20 46 31.5 1002.25 35 24 0 1 8 2 103 3 7 +1475 20 47 35.7 1002.25 39 19 0 1 9 2 98 3 2 +1476 20 48 39.9 1002.25 39 17 0 1 9 2 96 3 0 +1477 20 49 44.1 1002.25 39 16 0 1 9 2 95 2 31 +1478 20 50 48.3 1002.25 39 18 0 1 9 2 97 3 1 +1479 20 51 52.5 1002.25 39 20 0 1 9 2 99 3 3 +1480 20 52 56.7 1002.25 43 19 0 1 10 2 98 3 2 +1481 20 53 60.9 1002.25 43 17 0 1 10 2 96 3 0 +1482 20 54 65.1 1002.25 43 16 0 1 10 2 95 2 31 +1483 20 55 69.3 1002.25 43 18 0 1 10 2 97 3 1 +1484 20 56 73.5 1002.25 43 20 0 1 10 2 99 3 3 +1485 20 57 77.7 1002.25 47 19 0 1 11 2 98 3 2 +1486 20 58 81.9 1002.25 47 17 0 1 11 2 96 3 0 +1487 20 59 86.1 1002.25 47 15 0 1 11 2 94 2 30 +1488 20 60 90.3 1002.25 47 18 0 1 11 2 97 3 1 +1489 20 61 94.5 1002.25 47 20 0 1 11 2 99 3 3 +1490 20 62 98.7 1002.25 51 19 0 1 12 2 98 3 2 +1491 20 63 102.9 1002.25 51 17 0 1 12 2 96 3 0 +1492 20 64 107.1 1002.25 51 15 0 1 12 2 94 2 30 +1493 20 65 111.3 1002.25 51 18 0 1 12 2 97 3 1 +1494 20 66 115.5 1002.25 51 20 0 1 12 2 99 3 3 +1495 20 67 119.7 1002.25 55 21 0 1 13 2 100 3 4 +1496 20 68 123.9 1002.25 55 19 0 1 13 2 98 3 2 +1497 20 69 128.1 1002.25 55 17 0 1 13 2 96 3 0 +1498 20 70 132.3 1002.25 55 16 0 1 13 2 95 2 31 +1499 20 71 136.5 1002.25 55 18 0 1 13 2 97 3 1 +1500 20 72 140.7 1002.25 55 20 0 1 13 2 99 3 3 +1501 20 73 144.9 1002.25 59 19 0 1 14 2 98 3 2 +1502 20 74 149.1 1002.25 59 17 0 1 14 2 96 3 0 +1503 20 75 153.3 1002.25 59 16 0 1 14 2 95 2 31 +1504 20 76 157.5 1002.25 59 18 0 1 14 2 97 3 1 +1505 20 77 161.7 1002.25 59 20 0 1 14 2 99 3 3 +1506 21 0 -161.7 1009.75 3 25 0 1 0 2 104 3 8 +1507 21 1 -157.5 1009.75 3 23 0 1 0 2 102 3 6 +1508 21 2 -153.3 1009.75 3 21 0 1 0 2 100 3 4 +1509 21 3 -149.1 1009.75 3 22 0 1 0 2 101 3 5 +1510 21 4 -144.9 1009.75 3 24 0 1 0 2 103 3 7 +1511 21 5 -140.7 1009.75 7 25 0 1 1 2 104 3 8 +1512 21 6 -136.5 1009.75 7 23 0 1 1 2 102 3 6 +1513 21 7 -132.3 1009.75 7 21 0 1 1 2 100 3 4 +1514 21 8 -128.1 1009.75 7 24 0 1 1 2 103 3 7 +1515 21 9 -123.9 1009.75 7 26 0 1 1 2 105 3 9 +1516 21 10 -119.7 1009.75 11 25 0 1 2 2 104 3 8 +1517 21 11 -115.5 1009.75 11 23 0 1 2 2 102 3 6 +1518 21 12 -111.3 1009.75 11 21 0 1 2 2 100 3 4 +1519 21 13 -107.1 1009.75 11 22 0 1 2 2 101 3 5 +1520 21 14 -102.9 1009.75 11 24 0 1 2 2 103 3 7 +1521 21 15 -98.7 1009.75 11 26 0 1 2 2 105 3 9 +1522 21 16 -94.5 1009.75 15 25 0 1 3 2 104 3 8 +1523 21 17 -90.3 1009.75 15 23 0 1 3 2 102 3 6 +1524 21 18 -86.1 1009.75 15 21 0 1 3 2 100 3 4 +1525 21 19 -81.9 1009.75 15 22 0 1 3 2 101 3 5 +1526 21 20 -77.7 1009.75 15 24 0 1 3 2 103 3 7 +1527 21 21 -73.5 1009.75 19 23 0 1 4 2 102 3 6 +1528 21 22 -69.3 1009.75 19 21 0 1 4 2 100 3 4 +1529 21 23 -65.1 1009.75 19 22 0 1 4 2 101 3 5 +1530 21 24 -60.9 1009.75 19 24 0 1 4 2 103 3 7 +1531 21 25 -56.7 1009.75 19 26 0 1 4 2 105 3 9 +1532 21 26 -52.5 1009.75 23 23 0 1 5 2 102 3 6 +1533 21 27 -48.3 1009.75 23 21 0 1 5 2 100 3 4 +1534 21 28 -44.1 1009.75 23 22 0 1 5 2 101 3 5 +1535 21 29 -39.9 1009.75 23 24 0 1 5 2 103 3 7 +1536 21 30 -35.7 1009.75 23 26 0 1 5 2 105 3 9 +1537 21 31 -31.5 1009.75 27 29 0 1 6 2 108 3 12 +1538 21 32 -27.3 1009.75 27 27 0 1 6 2 106 3 10 +1539 21 33 -23.1 1009.75 27 25 0 1 6 2 104 3 8 +1540 21 34 -18.9 1009.75 27 26 0 1 6 2 105 3 9 +1541 21 35 -14.7 1009.75 27 28 0 1 6 2 107 3 11 +1542 21 36 -10.5 1009.75 27 30 0 1 6 2 109 3 13 +1543 21 37 -6.3 1009.75 31 19 0 1 7 2 98 3 2 +1544 21 38 -2.1 1009.75 31 17 0 1 7 2 96 3 0 +1545 21 39 2.1 1009.75 31 18 0 1 7 2 97 3 1 +1546 21 40 6.3 1009.75 31 20 0 1 7 2 99 3 3 +1547 21 41 10.5 1009.75 35 29 0 1 8 2 108 3 12 +1548 21 42 14.7 1009.75 35 27 0 1 8 2 106 3 10 +1549 21 43 18.9 1009.75 35 25 0 1 8 2 104 3 8 +1550 21 44 23.1 1009.75 35 26 0 1 8 2 105 3 9 +1551 21 45 27.3 1009.75 35 28 0 1 8 2 107 3 11 +1552 21 46 31.5 1009.75 35 30 0 1 8 2 109 3 13 +1553 21 47 35.7 1009.75 39 25 0 1 9 2 104 3 8 +1554 21 48 39.9 1009.75 39 23 0 1 9 2 102 3 6 +1555 21 49 44.1 1009.75 39 21 0 1 9 2 100 3 4 +1556 21 50 48.3 1009.75 39 22 0 1 9 2 101 3 5 +1557 21 51 52.5 1009.75 39 24 0 1 9 2 103 3 7 +1558 21 52 56.7 1009.75 43 25 0 1 10 2 104 3 8 +1559 21 53 60.9 1009.75 43 23 0 1 10 2 102 3 6 +1560 21 54 65.1 1009.75 43 21 0 1 10 2 100 3 4 +1561 21 55 69.3 1009.75 43 22 0 1 10 2 101 3 5 +1562 21 56 73.5 1009.75 43 24 0 1 10 2 103 3 7 +1563 21 57 77.7 1009.75 47 23 0 1 11 2 102 3 6 +1564 21 58 81.9 1009.75 47 21 0 1 11 2 100 3 4 +1565 21 59 86.1 1009.75 47 22 0 1 11 2 101 3 5 +1566 21 60 90.3 1009.75 47 24 0 1 11 2 103 3 7 +1567 21 61 94.5 1009.75 47 26 0 1 11 2 105 3 9 +1568 21 62 98.7 1009.75 51 25 0 1 12 2 104 3 8 +1569 21 63 102.9 1009.75 51 23 0 1 12 2 102 3 6 +1570 21 64 107.1 1009.75 51 21 0 1 12 2 100 3 4 +1571 21 65 111.3 1009.75 51 22 0 1 12 2 101 3 5 +1572 21 66 115.5 1009.75 51 24 0 1 12 2 103 3 7 +1573 21 67 119.7 1009.75 51 26 0 1 12 2 105 3 9 +1574 21 68 123.9 1009.75 55 25 0 1 13 2 104 3 8 +1575 21 69 128.1 1009.75 55 23 0 1 13 2 102 3 6 +1576 21 70 132.3 1009.75 55 22 0 1 13 2 101 3 5 +1577 21 71 136.5 1009.75 55 24 0 1 13 2 103 3 7 +1578 21 72 140.7 1009.75 55 26 0 1 13 2 105 3 9 +1579 21 73 144.9 1009.75 59 23 0 1 14 2 102 3 6 +1580 21 74 149.1 1009.75 59 21 0 1 14 2 100 3 4 +1581 21 75 153.3 1009.75 59 22 0 1 14 2 101 3 5 +1582 21 76 157.5 1009.75 59 24 0 1 14 2 103 3 7 +1583 21 77 161.7 1009.75 59 26 0 1 14 2 105 3 9 +1584 22 0 -161.7 1017.25 3 29 0 1 0 2 108 3 12 +1585 22 1 -157.5 1017.25 3 27 0 1 0 2 106 3 10 +1586 22 2 -153.3 1017.25 3 26 0 1 0 2 105 3 9 +1587 22 3 -149.1 1017.25 3 28 0 1 0 2 107 3 11 +1588 22 4 -144.9 1017.25 3 30 0 1 0 2 109 3 13 +1589 22 5 -140.7 1017.25 7 29 0 1 1 2 108 3 12 +1590 22 6 -136.5 1017.25 7 27 0 1 1 2 106 3 10 +1591 22 7 -132.3 1017.25 7 28 0 1 1 2 107 3 11 +1592 22 8 -128.1 1017.25 7 30 0 1 1 2 109 3 13 +1593 22 9 -123.9 1017.25 7 32 0 1 1 2 111 3 15 +1594 22 10 -119.7 1017.25 11 31 0 1 2 2 110 3 14 +1595 22 11 -115.5 1017.25 11 29 0 1 2 2 108 3 12 +1596 22 12 -111.3 1017.25 11 27 0 1 2 2 106 3 10 +1597 22 13 -107.1 1017.25 11 28 0 1 2 2 107 3 11 +1598 22 14 -102.9 1017.25 11 30 0 1 2 2 109 3 13 +1599 22 15 -98.7 1017.25 15 31 0 1 3 2 110 3 14 +1600 22 16 -94.5 1017.25 15 29 0 1 3 2 108 3 12 +1601 22 17 -90.3 1017.25 15 27 0 1 3 2 106 3 10 +1602 22 18 -86.1 1017.25 15 26 0 1 3 2 105 3 9 +1603 22 19 -81.9 1017.25 15 28 0 1 3 2 107 3 11 +1604 22 20 -77.7 1017.25 15 30 0 1 3 2 109 3 13 +1605 22 21 -73.5 1017.25 19 29 0 1 4 2 108 3 12 +1606 22 22 -69.3 1017.25 19 27 0 1 4 2 106 3 10 +1607 22 23 -65.1 1017.25 19 25 0 1 4 2 104 3 8 +1608 22 24 -60.9 1017.25 19 28 0 1 4 2 107 3 11 +1609 22 25 -56.7 1017.25 19 30 0 1 4 2 109 3 13 +1610 22 26 -52.5 1017.25 23 29 0 1 5 2 108 3 12 +1611 22 27 -48.3 1017.25 23 27 0 1 5 2 106 3 10 +1612 22 28 -44.1 1017.25 23 25 0 1 5 2 104 3 8 +1613 22 29 -39.9 1017.25 23 28 0 1 5 2 107 3 11 +1614 22 30 -35.7 1017.25 23 30 0 1 5 2 109 3 13 +1615 22 31 -31.5 1017.25 27 35 0 1 6 2 114 3 18 +1616 22 32 -27.3 1017.25 27 33 0 1 6 2 112 3 16 +1617 22 33 -23.1 1017.25 27 31 0 1 6 2 110 3 14 +1618 22 34 -18.9 1017.25 27 32 0 1 6 2 111 3 15 +1619 22 35 -14.7 1017.25 27 34 0 1 6 2 113 3 17 +1620 22 36 -10.5 1017.25 31 25 0 1 7 2 104 3 8 +1621 22 37 -6.3 1017.25 31 23 0 1 7 2 102 3 6 +1622 22 38 -2.1 1017.25 31 21 0 1 7 2 100 3 4 +1623 22 39 2.1 1017.25 31 22 0 1 7 2 101 3 5 +1624 22 40 6.3 1017.25 31 24 0 1 7 2 103 3 7 +1625 22 41 10.5 1017.25 31 26 0 1 7 2 105 3 9 +1626 22 42 14.7 1017.25 35 33 0 1 8 2 112 3 16 +1627 22 43 18.9 1017.25 35 31 0 1 8 2 110 3 14 +1628 22 44 23.1 1017.25 35 32 0 1 8 2 111 3 15 +1629 22 45 27.3 1017.25 35 34 0 1 8 2 113 3 17 +1630 22 46 31.5 1017.25 35 36 0 1 8 2 115 3 19 +1631 22 47 35.7 1017.25 39 29 0 1 9 2 108 3 12 +1632 22 48 39.9 1017.25 39 27 0 1 9 2 106 3 10 +1633 22 49 44.1 1017.25 39 26 0 1 9 2 105 3 9 +1634 22 50 48.3 1017.25 39 28 0 1 9 2 107 3 11 +1635 22 51 52.5 1017.25 39 30 0 1 9 2 109 3 13 +1636 22 52 56.7 1017.25 43 29 0 1 10 2 108 3 12 +1637 22 53 60.9 1017.25 43 27 0 1 10 2 106 3 10 +1638 22 54 65.1 1017.25 43 26 0 1 10 2 105 3 9 +1639 22 55 69.3 1017.25 43 28 0 1 10 2 107 3 11 +1640 22 56 73.5 1017.25 43 30 0 1 10 2 109 3 13 +1641 22 57 77.7 1017.25 47 29 0 1 11 2 108 3 12 +1642 22 58 81.9 1017.25 47 27 0 1 11 2 106 3 10 +1643 22 59 86.1 1017.25 47 25 0 1 11 2 104 3 8 +1644 22 60 90.3 1017.25 47 28 0 1 11 2 107 3 11 +1645 22 61 94.5 1017.25 47 30 0 1 11 2 109 3 13 +1646 22 62 98.7 1017.25 47 32 0 1 11 2 111 3 15 +1647 22 63 102.9 1017.25 51 29 0 1 12 2 108 3 12 +1648 22 64 107.1 1017.25 51 27 0 1 12 2 106 3 10 +1649 22 65 111.3 1017.25 51 28 0 1 12 2 107 3 11 +1650 22 66 115.5 1017.25 51 30 0 1 12 2 109 3 13 +1651 22 67 119.7 1017.25 51 32 0 1 12 2 111 3 15 +1652 22 68 123.9 1017.25 55 31 0 1 13 2 110 3 14 +1653 22 69 128.1 1017.25 55 29 0 1 13 2 108 3 12 +1654 22 70 132.3 1017.25 55 27 0 1 13 2 106 3 10 +1655 22 71 136.5 1017.25 55 28 0 1 13 2 107 3 11 +1656 22 72 140.7 1017.25 55 30 0 1 13 2 109 3 13 +1657 22 73 144.9 1017.25 59 29 0 1 14 2 108 3 12 +1658 22 74 149.1 1017.25 59 27 0 1 14 2 106 3 10 +1659 22 75 153.3 1017.25 59 25 0 1 14 2 104 3 8 +1660 22 76 157.5 1017.25 59 28 0 1 14 2 107 3 11 +1661 22 77 161.7 1017.25 59 30 0 1 14 2 109 3 13 +1662 23 0 -165.9 1024.75 3 35 0 1 0 2 114 3 18 +1663 23 1 -161.7 1024.75 3 33 0 1 0 2 112 3 16 +1664 23 2 -157.5 1024.75 3 31 0 1 0 2 110 3 14 +1665 23 3 -153.3 1024.75 3 32 0 1 0 2 111 3 15 +1666 23 4 -149.1 1024.75 3 34 0 1 0 2 113 3 17 +1667 23 5 -144.9 1024.75 3 36 0 1 0 2 115 3 19 +1668 23 6 -140.7 1024.75 7 35 0 1 1 2 114 3 18 +1669 23 7 -136.5 1024.75 7 33 0 1 1 2 112 3 16 +1670 23 8 -132.3 1024.75 7 31 0 1 1 2 110 3 14 +1671 23 9 -128.1 1024.75 7 34 0 1 1 2 113 3 17 +1672 23 10 -123.9 1024.75 7 36 0 1 1 2 115 3 19 +1673 23 11 -119.7 1024.75 11 35 0 1 2 2 114 3 18 +1674 23 12 -115.5 1024.75 11 33 0 1 2 2 112 3 16 +1675 23 13 -111.3 1024.75 11 32 0 1 2 2 111 3 15 +1676 23 14 -107.1 1024.75 11 34 0 1 2 2 113 3 17 +1677 23 15 -102.9 1024.75 11 36 0 1 2 2 115 3 19 +1678 23 16 -98.7 1024.75 15 37 0 1 3 2 116 3 20 +1679 23 17 -94.5 1024.75 15 35 0 1 3 2 114 3 18 +1680 23 18 -90.3 1024.75 15 33 0 1 3 2 112 3 16 +1681 23 19 -86.1 1024.75 15 32 0 1 3 2 111 3 15 +1682 23 20 -81.9 1024.75 15 34 0 1 3 2 113 3 17 +1683 23 21 -77.7 1024.75 15 36 0 1 3 2 115 3 19 +1684 23 22 -73.5 1024.75 19 33 0 1 4 2 112 3 16 +1685 23 23 -69.3 1024.75 19 31 0 1 4 2 110 3 14 +1686 23 24 -65.1 1024.75 19 32 0 1 4 2 111 3 15 +1687 23 25 -60.9 1024.75 19 34 0 1 4 2 113 3 17 +1688 23 26 -56.7 1024.75 19 36 0 1 4 2 115 3 19 +1689 23 27 -52.5 1024.75 23 33 0 1 5 2 112 3 16 +1690 23 28 -48.3 1024.75 23 31 0 1 5 2 110 3 14 +1691 23 29 -44.1 1024.75 23 32 0 1 5 2 111 3 15 +1692 23 30 -39.9 1024.75 23 34 0 1 5 2 113 3 17 +1693 23 31 -35.7 1024.75 23 36 0 1 5 2 115 3 19 +1694 23 32 -31.5 1024.75 27 39 0 1 6 2 118 3 22 +1695 23 33 -27.3 1024.75 27 37 0 1 6 2 116 3 20 +1696 23 34 -23.1 1024.75 27 36 0 1 6 2 115 3 19 +1697 23 35 -18.9 1024.75 27 38 0 1 6 2 117 3 21 +1698 23 36 -14.7 1024.75 27 40 0 1 6 2 119 3 23 +1699 23 37 -10.5 1024.75 31 31 0 1 7 2 110 3 14 +1700 23 38 -6.3 1024.75 31 29 0 1 7 2 108 3 12 +1701 23 39 -2.1 1024.75 31 27 0 1 7 2 106 3 10 +1702 23 40 2.1 1024.75 31 28 0 1 7 2 107 3 11 +1703 23 41 6.3 1024.75 31 30 0 1 7 2 109 3 13 +1704 23 42 10.5 1024.75 31 32 0 1 7 2 111 3 15 +1705 23 43 14.7 1024.75 35 39 0 1 8 2 118 3 22 +1706 23 44 18.9 1024.75 35 37 0 1 8 2 116 3 20 +1707 23 45 23.1 1024.75 35 35 0 1 8 2 114 3 18 +1708 23 46 27.3 1024.75 35 38 0 1 8 2 117 3 21 +1709 23 47 31.5 1024.75 35 40 0 1 8 2 119 3 23 +1710 23 48 35.7 1024.75 39 35 0 1 9 2 114 3 18 +1711 23 49 39.9 1024.75 39 33 0 1 9 2 112 3 16 +1712 23 50 44.1 1024.75 39 31 0 1 9 2 110 3 14 +1713 23 51 48.3 1024.75 39 32 0 1 9 2 111 3 15 +1714 23 52 52.5 1024.75 39 34 0 1 9 2 113 3 17 +1715 23 53 56.7 1024.75 43 35 0 1 10 2 114 3 18 +1716 23 54 60.9 1024.75 43 33 0 1 10 2 112 3 16 +1717 23 55 65.1 1024.75 43 31 0 1 10 2 110 3 14 +1718 23 56 69.3 1024.75 43 32 0 1 10 2 111 3 15 +1719 23 57 73.5 1024.75 43 34 0 1 10 2 113 3 17 +1720 23 58 77.7 1024.75 47 35 0 1 11 2 114 3 18 +1721 23 59 81.9 1024.75 47 33 0 1 11 2 112 3 16 +1722 23 60 86.1 1024.75 47 31 0 1 11 2 110 3 14 +1723 23 61 90.3 1024.75 47 34 0 1 11 2 113 3 17 +1724 23 62 94.5 1024.75 47 36 0 1 11 2 115 3 19 +1725 23 63 98.7 1024.75 47 38 0 1 11 2 117 3 21 +1726 23 64 102.9 1024.75 51 35 0 1 12 2 114 3 18 +1727 23 65 107.1 1024.75 51 33 0 1 12 2 112 3 16 +1728 23 66 111.3 1024.75 51 31 0 1 12 2 110 3 14 +1729 23 67 115.5 1024.75 51 34 0 1 12 2 113 3 17 +1730 23 68 119.7 1024.75 51 36 0 1 12 2 115 3 19 +1731 23 69 123.9 1024.75 55 35 0 1 13 2 114 3 18 +1732 23 70 128.1 1024.75 55 33 0 1 13 2 112 3 16 +1733 23 71 132.3 1024.75 55 32 0 1 13 2 111 3 15 +1734 23 72 136.5 1024.75 55 34 0 1 13 2 113 3 17 +1735 23 73 140.7 1024.75 55 36 0 1 13 2 115 3 19 +1736 23 74 144.9 1024.75 59 35 0 1 14 2 114 3 18 +1737 23 75 149.1 1024.75 59 33 0 1 14 2 112 3 16 +1738 23 76 153.3 1024.75 59 31 0 1 14 2 110 3 14 +1739 23 77 157.5 1024.75 59 32 0 1 14 2 111 3 15 +1740 23 78 161.7 1024.75 59 34 0 1 14 2 113 3 17 +1741 23 79 165.9 1024.75 59 36 0 1 14 2 115 3 19 +1742 24 0 -165.9 1032.25 3 39 0 1 0 2 118 3 22 +1743 24 1 -161.7 1032.25 3 37 0 1 0 2 116 3 20 +1744 24 2 -157.5 1032.25 3 38 0 1 0 2 117 3 21 +1745 24 3 -153.3 1032.25 3 40 0 1 0 2 119 3 23 +1746 24 4 -149.1 1032.25 4 2 0 1 0 3 121 3 25 +1747 24 5 -144.9 1032.25 8 3 0 1 1 3 122 3 26 +1748 24 6 -140.7 1032.25 8 1 0 1 1 3 120 3 24 +1749 24 7 -136.5 1032.25 7 39 0 1 1 2 118 3 22 +1750 24 8 -132.3 1032.25 7 37 0 1 1 2 116 3 20 +1751 24 9 -128.1 1032.25 7 38 0 1 1 2 117 3 21 +1752 24 10 -123.9 1032.25 7 40 0 1 1 2 119 3 23 +1753 24 11 -119.7 1032.25 11 39 0 1 2 2 118 3 22 +1754 24 12 -115.5 1032.25 11 37 0 1 2 2 116 3 20 +1755 24 13 -111.3 1032.25 11 38 0 1 2 2 117 3 21 +1756 24 14 -107.1 1032.25 11 40 0 1 2 2 119 3 23 +1757 24 15 -102.9 1032.25 12 2 0 1 2 3 121 3 25 +1758 24 16 -98.7 1032.25 16 3 0 1 3 3 122 3 26 +1759 24 17 -94.5 1032.25 16 1 0 1 3 3 120 3 24 +1760 24 18 -90.3 1032.25 15 39 0 1 3 2 118 3 22 +1761 24 19 -86.1 1032.25 15 38 0 1 3 2 117 3 21 +1762 24 20 -81.9 1032.25 15 40 0 1 3 2 119 3 23 +1763 24 21 -77.7 1032.25 19 39 0 1 4 2 118 3 22 +1764 24 22 -73.5 1032.25 19 37 0 1 4 2 116 3 20 +1765 24 23 -69.3 1032.25 19 35 0 1 4 2 114 3 18 +1766 24 24 -65.1 1032.25 19 38 0 1 4 2 117 3 21 +1767 24 25 -60.9 1032.25 19 40 0 1 4 2 119 3 23 +1768 24 26 -56.7 1032.25 20 2 0 1 4 3 121 3 25 +1769 24 27 -52.5 1032.25 23 39 0 1 5 2 118 3 22 +1770 24 28 -48.3 1032.25 23 37 0 1 5 2 116 3 20 +1771 24 29 -44.1 1032.25 23 35 0 1 5 2 114 3 18 +1772 24 30 -39.9 1032.25 23 38 0 1 5 2 117 3 21 +1773 24 31 -35.7 1032.25 23 40 0 1 5 2 119 3 23 +1774 24 32 -31.5 1032.25 28 3 0 1 6 3 122 3 26 +1775 24 33 -27.3 1032.25 28 1 0 1 6 3 120 3 24 +1776 24 34 -23.1 1032.25 28 2 0 1 6 3 121 3 25 +1777 24 35 -18.9 1032.25 28 4 0 1 6 3 123 3 27 +1778 24 36 -14.7 1032.25 28 6 0 1 6 3 125 3 29 +1779 24 37 -10.5 1032.25 31 37 0 1 7 2 116 3 20 +1780 24 38 -6.3 1032.25 31 35 0 1 7 2 114 3 18 +1781 24 39 -2.1 1032.25 31 33 0 1 7 2 112 3 16 +1782 24 40 2.1 1032.25 31 34 0 1 7 2 113 3 17 +1783 24 41 6.3 1032.25 31 36 0 1 7 2 115 3 19 +1784 24 42 10.5 1032.25 31 38 0 1 7 2 117 3 21 +1785 24 43 14.7 1032.25 36 5 0 1 8 3 124 3 28 +1786 24 44 18.9 1032.25 36 3 0 1 8 3 122 3 26 +1787 24 45 23.1 1032.25 36 1 0 1 8 3 120 3 24 +1788 24 46 27.3 1032.25 36 2 0 1 8 3 121 3 25 +1789 24 47 31.5 1032.25 36 4 0 1 8 3 123 3 27 +1790 24 48 35.7 1032.25 39 39 0 1 9 2 118 3 22 +1791 24 49 39.9 1032.25 39 37 0 1 9 2 116 3 20 +1792 24 50 44.1 1032.25 39 36 0 1 9 2 115 3 19 +1793 24 51 48.3 1032.25 39 38 0 1 9 2 117 3 21 +1794 24 52 52.5 1032.25 39 40 0 1 9 2 119 3 23 +1795 24 53 56.7 1032.25 44 1 0 1 10 3 120 3 24 +1796 24 54 60.9 1032.25 43 39 0 1 10 2 118 3 22 +1797 24 55 65.1 1032.25 43 37 0 1 10 2 116 3 20 +1798 24 56 69.3 1032.25 43 36 0 1 10 2 115 3 19 +1799 24 57 73.5 1032.25 43 38 0 1 10 2 117 3 21 +1800 24 58 77.7 1032.25 43 40 0 1 10 2 119 3 23 +1801 24 59 81.9 1032.25 47 39 0 1 11 2 118 3 22 +1802 24 60 86.1 1032.25 47 37 0 1 11 2 116 3 20 +1803 24 61 90.3 1032.25 47 40 0 1 11 2 119 3 23 +1804 24 62 94.5 1032.25 48 2 0 1 11 3 121 3 25 +1805 24 63 98.7 1032.25 48 4 0 1 11 3 123 3 27 +1806 24 64 102.9 1032.25 52 1 0 1 12 3 120 3 24 +1807 24 65 107.1 1032.25 51 39 0 1 12 2 118 3 22 +1808 24 66 111.3 1032.25 51 37 0 1 12 2 116 3 20 +1809 24 67 115.5 1032.25 51 38 0 1 12 2 117 3 21 +1810 24 68 119.7 1032.25 51 40 0 1 12 2 119 3 23 +1811 24 69 123.9 1032.25 55 39 0 1 13 2 118 3 22 +1812 24 70 128.1 1032.25 55 37 0 1 13 2 116 3 20 +1813 24 71 132.3 1032.25 55 38 0 1 13 2 117 3 21 +1814 24 72 136.5 1032.25 55 40 0 1 13 2 119 3 23 +1815 24 73 140.7 1032.25 56 2 0 1 13 3 121 3 25 +1816 24 74 144.9 1032.25 56 4 0 1 13 3 123 3 27 +1817 24 75 149.1 1032.25 60 1 0 1 14 3 120 3 24 +1818 24 76 153.3 1032.25 59 39 0 1 14 2 118 3 22 +1819 24 77 157.5 1032.25 59 37 0 1 14 2 116 3 20 +1820 24 78 161.7 1032.25 59 38 0 1 14 2 117 3 21 +1821 24 79 165.9 1032.25 59 40 0 1 14 2 119 3 23 +1822 25 0 -165.9 1039.75 4 5 0 1 0 3 124 3 28 +1823 25 1 -161.7 1039.75 4 3 0 1 0 3 122 3 26 +1824 25 2 -157.5 1039.75 4 1 0 1 0 3 120 3 24 +1825 25 3 -153.3 1039.75 4 4 0 1 0 3 123 3 27 +1826 25 4 -149.1 1039.75 4 6 0 1 0 3 125 3 29 +1827 25 5 -144.9 1039.75 8 7 0 1 1 3 126 3 30 +1828 25 6 -140.7 1039.75 8 5 0 1 1 3 124 3 28 +1829 25 7 -136.5 1039.75 8 2 0 1 1 3 121 3 25 +1830 25 8 -132.3 1039.75 8 4 0 1 1 3 123 3 27 +1831 25 9 -128.1 1039.75 8 6 0 1 1 3 125 3 29 +1832 25 10 -123.9 1039.75 12 5 0 1 2 3 124 3 28 +1833 25 11 -119.7 1039.75 12 3 0 1 2 3 122 3 26 +1834 25 12 -115.5 1039.75 12 1 0 1 2 3 120 3 24 +1835 25 13 -111.3 1039.75 12 4 0 1 2 3 123 3 27 +1836 25 14 -107.1 1039.75 12 6 0 1 2 3 125 3 29 +1837 25 15 -102.9 1039.75 12 8 0 1 2 3 127 3 31 +1838 25 16 -98.7 1039.75 16 7 0 1 3 3 126 3 30 +1839 25 17 -94.5 1039.75 16 5 0 1 3 3 124 3 28 +1840 25 18 -90.3 1039.75 16 2 0 1 3 3 121 3 25 +1841 25 19 -86.1 1039.75 16 4 0 1 3 3 123 3 27 +1842 25 20 -81.9 1039.75 16 6 0 1 3 3 125 3 29 +1843 25 21 -77.7 1039.75 20 5 0 1 4 3 124 3 28 +1844 25 22 -73.5 1039.75 20 3 0 1 4 3 122 3 26 +1845 25 23 -69.3 1039.75 20 1 0 1 4 3 120 3 24 +1846 25 24 -65.1 1039.75 20 4 0 1 4 3 123 3 27 +1847 25 25 -60.9 1039.75 20 6 0 1 4 3 125 3 29 +1848 25 26 -56.7 1039.75 20 8 0 1 4 3 127 3 31 +1849 25 27 -52.5 1039.75 24 5 0 1 5 3 124 3 28 +1850 25 28 -48.3 1039.75 24 3 0 1 5 3 122 3 26 +1851 25 29 -44.1 1039.75 24 1 0 1 5 3 120 3 24 +1852 25 30 -39.9 1039.75 24 2 0 1 5 3 121 3 25 +1853 25 31 -35.7 1039.75 24 4 0 1 5 3 123 3 27 +1854 25 32 -31.5 1039.75 28 9 0 1 6 3 128 4 0 +1855 25 33 -27.3 1039.75 28 7 0 1 6 3 126 3 30 +1856 25 34 -23.1 1039.75 28 5 0 1 6 3 124 3 28 +1857 25 35 -18.9 1039.75 28 8 0 1 6 3 127 3 31 +1858 25 36 -14.7 1039.75 28 10 0 1 6 3 129 4 1 +1859 25 37 -10.5 1039.75 32 3 0 1 7 3 122 3 26 +1860 25 38 -6.3 1039.75 32 1 0 1 7 3 120 3 24 +1861 25 39 -2.1 1039.75 31 39 0 1 7 2 118 3 22 +1862 25 40 2.1 1039.75 31 40 0 1 7 2 119 3 23 +1863 25 41 6.3 1039.75 32 2 0 1 7 3 121 3 25 +1864 25 42 10.5 1039.75 32 4 0 1 7 3 123 3 27 +1865 25 43 14.7 1039.75 36 9 0 1 8 3 128 4 0 +1866 25 44 18.9 1039.75 36 7 0 1 8 3 126 3 30 +1867 25 45 23.1 1039.75 36 6 0 1 8 3 125 3 29 +1868 25 46 27.3 1039.75 36 8 0 1 8 3 127 3 31 +1869 25 47 31.5 1039.75 36 10 0 1 8 3 129 4 1 +1870 25 48 35.7 1039.75 40 3 0 1 9 3 122 3 26 +1871 25 49 39.9 1039.75 40 1 0 1 9 3 120 3 24 +1872 25 50 44.1 1039.75 40 2 0 1 9 3 121 3 25 +1873 25 51 48.3 1039.75 40 4 0 1 9 3 123 3 27 +1874 25 52 52.5 1039.75 40 6 0 1 9 3 125 3 29 +1875 25 53 56.7 1039.75 44 7 0 1 10 3 126 3 30 +1876 25 54 60.9 1039.75 44 5 0 1 10 3 124 3 28 +1877 25 55 65.1 1039.75 44 3 0 1 10 3 122 3 26 +1878 25 56 69.3 1039.75 44 2 0 1 10 3 121 3 25 +1879 25 57 73.5 1039.75 44 4 0 1 10 3 123 3 27 +1880 25 58 77.7 1039.75 44 6 0 1 10 3 125 3 29 +1881 25 59 81.9 1039.75 48 5 0 1 11 3 124 3 28 +1882 25 60 86.1 1039.75 48 3 0 1 11 3 122 3 26 +1883 25 61 90.3 1039.75 48 1 0 1 11 3 120 3 24 +1884 25 62 94.5 1039.75 48 6 0 1 11 3 125 3 29 +1885 25 63 98.7 1039.75 48 8 0 1 11 3 127 3 31 +1886 25 64 102.9 1039.75 52 7 0 1 12 3 126 3 30 +1887 25 65 107.1 1039.75 52 5 0 1 12 3 124 3 28 +1888 25 66 111.3 1039.75 52 3 0 1 12 3 122 3 26 +1889 25 67 115.5 1039.75 52 2 0 1 12 3 121 3 25 +1890 25 68 119.7 1039.75 52 4 0 1 12 3 123 3 27 +1891 25 69 123.9 1039.75 52 6 0 1 12 3 125 3 29 +1892 25 70 128.1 1039.75 56 5 0 1 13 3 124 3 28 +1893 25 71 132.3 1039.75 56 3 0 1 13 3 122 3 26 +1894 25 72 136.5 1039.75 56 1 0 1 13 3 120 3 24 +1895 25 73 140.7 1039.75 56 6 0 1 13 3 125 3 29 +1896 25 74 144.9 1039.75 56 8 0 1 13 3 127 3 31 +1897 25 75 149.1 1039.75 60 5 0 1 14 3 124 3 28 +1898 25 76 153.3 1039.75 60 3 0 1 14 3 122 3 26 +1899 25 77 157.5 1039.75 60 2 0 1 14 3 121 3 25 +1900 25 78 161.7 1039.75 60 4 0 1 14 3 123 3 27 +1901 25 79 165.9 1039.75 60 6 0 1 14 3 125 3 29 +1902 26 0 -170.1 1047.25 4 11 0 1 0 3 130 4 2 +1903 26 1 -165.9 1047.25 4 9 0 1 0 3 128 4 0 +1904 26 2 -161.7 1047.25 4 7 0 1 0 3 126 3 30 +1905 26 3 -157.5 1047.25 4 8 0 1 0 3 127 3 31 +1906 26 4 -153.3 1047.25 4 10 0 1 0 3 129 4 1 +1907 26 5 -149.1 1047.25 4 12 0 1 0 3 131 4 3 +1908 26 6 -144.9 1047.25 8 11 0 1 1 3 130 4 2 +1909 26 7 -140.7 1047.25 8 9 0 1 1 3 128 4 0 +1910 26 8 -136.5 1047.25 8 8 0 1 1 3 127 3 31 +1911 26 9 -132.3 1047.25 8 10 0 1 1 3 129 4 1 +1912 26 10 -128.1 1047.25 8 12 0 1 1 3 131 4 3 +1913 26 11 -123.9 1047.25 12 11 0 1 2 3 130 4 2 +1914 26 12 -119.7 1047.25 12 9 0 1 2 3 128 4 0 +1915 26 13 -115.5 1047.25 12 7 0 1 2 3 126 3 30 +1916 26 14 -111.3 1047.25 12 10 0 1 2 3 129 4 1 +1917 26 15 -107.1 1047.25 12 12 0 1 2 3 131 4 3 +1918 26 16 -102.9 1047.25 12 14 0 1 2 3 133 4 5 +1919 26 17 -98.7 1047.25 16 11 0 1 3 3 130 4 2 +1920 26 18 -94.5 1047.25 16 9 0 1 3 3 128 4 0 +1921 26 19 -90.3 1047.25 16 8 0 1 3 3 127 3 31 +1922 26 20 -86.1 1047.25 16 10 0 1 3 3 129 4 1 +1923 26 21 -81.9 1047.25 16 12 0 1 3 3 131 4 3 +1924 26 22 -77.7 1047.25 20 11 0 1 4 3 130 4 2 +1925 26 23 -73.5 1047.25 20 9 0 1 4 3 128 4 0 +1926 26 24 -69.3 1047.25 20 7 0 1 4 3 126 3 30 +1927 26 25 -65.1 1047.25 20 10 0 1 4 3 129 4 1 +1928 26 26 -60.9 1047.25 20 12 0 1 4 3 131 4 3 +1929 26 27 -56.7 1047.25 20 14 0 1 4 3 133 4 5 +1930 26 28 -52.5 1047.25 24 9 0 1 5 3 128 4 0 +1931 26 29 -48.3 1047.25 24 7 0 1 5 3 126 3 30 +1932 26 30 -44.1 1047.25 24 6 0 1 5 3 125 3 29 +1933 26 31 -39.9 1047.25 24 8 0 1 5 3 127 3 31 +1934 26 32 -35.7 1047.25 24 10 0 1 5 3 129 4 1 +1935 26 33 -31.5 1047.25 28 13 0 1 6 3 132 4 4 +1936 26 34 -27.3 1047.25 28 11 0 1 6 3 130 4 2 +1937 26 35 -23.1 1047.25 28 12 0 1 6 3 131 4 3 +1938 26 36 -18.9 1047.25 28 14 0 1 6 3 133 4 5 +1939 26 37 -14.7 1047.25 28 16 0 1 6 3 135 4 7 +1940 26 38 -10.5 1047.25 32 9 0 1 7 3 128 4 0 +1941 26 39 -6.3 1047.25 32 7 0 1 7 3 126 3 30 +1942 26 40 -2.1 1047.25 32 5 0 1 7 3 124 3 28 +1943 26 41 2.1 1047.25 32 6 0 1 7 3 125 3 29 +1944 26 42 6.3 1047.25 32 8 0 1 7 3 127 3 31 +1945 26 43 10.5 1047.25 32 10 0 1 7 3 129 4 1 +1946 26 44 14.7 1047.25 36 15 0 1 8 3 134 4 6 +1947 26 45 18.9 1047.25 36 13 0 1 8 3 132 4 4 +1948 26 46 23.1 1047.25 36 11 0 1 8 3 130 4 2 +1949 26 47 27.3 1047.25 36 12 0 1 8 3 131 4 3 +1950 26 48 31.5 1047.25 36 14 0 1 8 3 133 4 5 +1951 26 49 35.7 1047.25 40 9 0 1 9 3 128 4 0 +1952 26 50 39.9 1047.25 40 7 0 1 9 3 126 3 30 +1953 26 51 44.1 1047.25 40 5 0 1 9 3 124 3 28 +1954 26 52 48.3 1047.25 40 8 0 1 9 3 127 3 31 +1955 26 53 52.5 1047.25 40 10 0 1 9 3 129 4 1 +1956 26 54 56.7 1047.25 44 13 0 1 10 3 132 4 4 +1957 26 55 60.9 1047.25 44 11 0 1 10 3 130 4 2 +1958 26 56 65.1 1047.25 44 9 0 1 10 3 128 4 0 +1959 26 57 69.3 1047.25 44 8 0 1 10 3 127 3 31 +1960 26 58 73.5 1047.25 44 10 0 1 10 3 129 4 1 +1961 26 59 77.7 1047.25 44 12 0 1 10 3 131 4 3 +1962 26 60 81.9 1047.25 48 11 0 1 11 3 130 4 2 +1963 26 61 86.1 1047.25 48 9 0 1 11 3 128 4 0 +1964 26 62 90.3 1047.25 48 7 0 1 11 3 126 3 30 +1965 26 63 94.5 1047.25 48 10 0 1 11 3 129 4 1 +1966 26 64 98.7 1047.25 48 12 0 1 11 3 131 4 3 +1967 26 65 102.9 1047.25 52 13 0 1 12 3 132 4 4 +1968 26 66 107.1 1047.25 52 11 0 1 12 3 130 4 2 +1969 26 67 111.3 1047.25 52 9 0 1 12 3 128 4 0 +1970 26 68 115.5 1047.25 52 8 0 1 12 3 127 3 31 +1971 26 69 119.7 1047.25 52 10 0 1 12 3 129 4 1 +1972 26 70 123.9 1047.25 52 12 0 1 12 3 131 4 3 +1973 26 71 128.1 1047.25 56 11 0 1 13 3 130 4 2 +1974 26 72 132.3 1047.25 56 9 0 1 13 3 128 4 0 +1975 26 73 136.5 1047.25 56 7 0 1 13 3 126 3 30 +1976 26 74 140.7 1047.25 56 10 0 1 13 3 129 4 1 +1977 26 75 144.9 1047.25 56 12 0 1 13 3 131 4 3 +1978 26 76 149.1 1047.25 60 11 0 1 14 3 130 4 2 +1979 26 77 153.3 1047.25 60 9 0 1 14 3 128 4 0 +1980 26 78 157.5 1047.25 60 7 0 1 14 3 126 3 30 +1981 26 79 161.7 1047.25 60 8 0 1 14 3 127 3 31 +1982 26 80 165.9 1047.25 60 10 0 1 14 3 129 4 1 +1983 26 81 170.1 1047.25 60 12 0 1 14 3 131 4 3 +1984 27 0 -170.1 1054.75 4 17 0 1 0 3 136 4 8 +1985 27 1 -165.9 1054.75 4 15 0 1 0 3 134 4 6 +1986 27 2 -161.7 1054.75 4 13 0 1 0 3 132 4 4 +1987 27 3 -157.5 1054.75 4 14 0 1 0 3 133 4 5 +1988 27 4 -153.3 1054.75 4 16 0 1 0 3 135 4 7 +1989 27 5 -149.1 1054.75 4 18 0 1 0 3 137 4 9 +1990 27 6 -144.9 1054.75 8 15 0 1 1 3 134 4 6 +1991 27 7 -140.7 1054.75 8 13 0 1 1 3 132 4 4 +1992 27 8 -136.5 1054.75 8 14 0 1 1 3 133 4 5 +1993 27 9 -132.3 1054.75 8 16 0 1 1 3 135 4 7 +1994 27 10 -128.1 1054.75 8 18 0 1 1 3 137 4 9 +1995 27 11 -123.9 1054.75 12 17 0 1 2 3 136 4 8 +1996 27 12 -119.7 1054.75 12 15 0 1 2 3 134 4 6 +1997 27 13 -115.5 1054.75 12 13 0 1 2 3 132 4 4 +1998 27 14 -111.3 1054.75 12 16 0 1 2 3 135 4 7 +1999 27 15 -107.1 1054.75 12 18 0 1 2 3 137 4 9 +2000 27 16 -102.9 1054.75 16 17 0 1 3 3 136 4 8 +2001 27 17 -98.7 1054.75 16 15 0 1 3 3 134 4 6 +2002 27 18 -94.5 1054.75 16 13 0 1 3 3 132 4 4 +2003 27 19 -90.3 1054.75 16 14 0 1 3 3 133 4 5 +2004 27 20 -86.1 1054.75 16 16 0 1 3 3 135 4 7 +2005 27 21 -81.9 1054.75 16 18 0 1 3 3 137 4 9 +2006 27 22 -77.7 1054.75 20 15 0 1 4 3 134 4 6 +2007 27 23 -73.5 1054.75 20 13 0 1 4 3 132 4 4 +2008 27 24 -69.3 1054.75 20 16 0 1 4 3 135 4 7 +2009 27 25 -65.1 1054.75 20 18 0 1 4 3 137 4 9 +2010 27 26 -60.9 1054.75 20 20 0 1 4 3 139 4 11 +2011 27 27 -56.7 1054.75 24 15 0 1 5 3 134 4 6 +2012 27 28 -52.5 1054.75 24 13 0 1 5 3 132 4 4 +2013 27 29 -48.3 1054.75 24 11 0 1 5 3 130 4 2 +2014 27 30 -44.1 1054.75 24 12 0 1 5 3 131 4 3 +2015 27 31 -39.9 1054.75 24 14 0 1 5 3 133 4 5 +2016 27 32 -35.7 1054.75 24 16 0 1 5 3 135 4 7 +2017 27 33 -31.5 1054.75 28 19 0 1 6 3 138 4 10 +2018 27 34 -27.3 1054.75 28 17 0 1 6 3 136 4 8 +2019 27 35 -23.1 1054.75 28 15 0 1 6 3 134 4 6 +2020 27 36 -18.9 1054.75 28 18 0 1 6 3 137 4 9 +2021 27 37 -14.7 1054.75 28 20 0 1 6 3 139 4 11 +2022 27 38 -10.5 1054.75 32 15 0 1 7 3 134 4 6 +2023 27 39 -6.3 1054.75 32 13 0 1 7 3 132 4 4 +2024 27 40 -2.1 1054.75 32 11 0 1 7 3 130 4 2 +2025 27 41 2.1 1054.75 32 12 0 1 7 3 131 4 3 +2026 27 42 6.3 1054.75 32 14 0 1 7 3 133 4 5 +2027 27 43 10.5 1054.75 32 16 0 1 7 3 135 4 7 +2028 27 44 14.7 1054.75 36 19 0 1 8 3 138 4 10 +2029 27 45 18.9 1054.75 36 17 0 1 8 3 136 4 8 +2030 27 46 23.1 1054.75 36 16 0 1 8 3 135 4 7 +2031 27 47 27.3 1054.75 36 18 0 1 8 3 137 4 9 +2032 27 48 31.5 1054.75 36 20 0 1 8 3 139 4 11 +2033 27 49 35.7 1054.75 40 15 0 1 9 3 134 4 6 +2034 27 50 39.9 1054.75 40 13 0 1 9 3 132 4 4 +2035 27 51 44.1 1054.75 40 11 0 1 9 3 130 4 2 +2036 27 52 48.3 1054.75 40 12 0 1 9 3 131 4 3 +2037 27 53 52.5 1054.75 40 14 0 1 9 3 133 4 5 +2038 27 54 56.7 1054.75 40 16 0 1 9 3 135 4 7 +2039 27 55 60.9 1054.75 44 19 0 1 10 3 138 4 10 +2040 27 56 65.1 1054.75 44 17 0 1 10 3 136 4 8 +2041 27 57 69.3 1054.75 44 15 0 1 10 3 134 4 6 +2042 27 58 73.5 1054.75 44 14 0 1 10 3 133 4 5 +2043 27 59 77.7 1054.75 44 16 0 1 10 3 135 4 7 +2044 27 60 81.9 1054.75 48 17 0 1 11 3 136 4 8 +2045 27 61 86.1 1054.75 48 15 0 1 11 3 134 4 6 +2046 27 62 90.3 1054.75 48 13 0 1 11 3 132 4 4 +2047 27 63 94.5 1054.75 48 14 0 1 11 3 133 4 5 +2048 27 64 98.7 1054.75 48 16 0 1 11 3 135 4 7 +2049 27 65 102.9 1054.75 48 18 0 1 11 3 137 4 9 +2050 27 66 107.1 1054.75 52 17 0 1 12 3 136 4 8 +2051 27 67 111.3 1054.75 52 15 0 1 12 3 134 4 6 +2052 27 68 115.5 1054.75 52 14 0 1 12 3 133 4 5 +2053 27 69 119.7 1054.75 52 16 0 1 12 3 135 4 7 +2054 27 70 123.9 1054.75 52 18 0 1 12 3 137 4 9 +2055 27 71 128.1 1054.75 56 17 0 1 13 3 136 4 8 +2056 27 72 132.3 1054.75 56 15 0 1 13 3 134 4 6 +2057 27 73 136.5 1054.75 56 13 0 1 13 3 132 4 4 +2058 27 74 140.7 1054.75 56 14 0 1 13 3 133 4 5 +2059 27 75 144.9 1054.75 56 16 0 1 13 3 135 4 7 +2060 27 76 149.1 1054.75 60 17 0 1 14 3 136 4 8 +2061 27 77 153.3 1054.75 60 15 0 1 14 3 134 4 6 +2062 27 78 157.5 1054.75 60 13 0 1 14 3 132 4 4 +2063 27 79 161.7 1054.75 60 14 0 1 14 3 133 4 5 +2064 27 80 165.9 1054.75 60 16 0 1 14 3 135 4 7 +2065 27 81 170.1 1054.75 60 18 0 1 14 3 137 4 9 +2066 28 0 -170.1 1062.25 4 21 0 1 0 3 140 4 12 +2067 28 1 -165.9 1062.25 4 19 0 1 0 3 138 4 10 +2068 28 2 -161.7 1062.25 4 20 0 1 0 3 139 4 11 +2069 28 3 -157.5 1062.25 4 22 0 1 0 3 141 4 13 +2070 28 4 -153.3 1062.25 4 24 0 1 0 3 143 4 15 +2071 28 5 -149.1 1062.25 8 21 0 1 1 3 140 4 12 +2072 28 6 -144.9 1062.25 8 19 0 1 1 3 138 4 10 +2073 28 7 -140.7 1062.25 8 17 0 1 1 3 136 4 8 +2074 28 8 -136.5 1062.25 8 20 0 1 1 3 139 4 11 +2075 28 9 -132.3 1062.25 8 22 0 1 1 3 141 4 13 +2076 28 10 -128.1 1062.25 8 24 0 1 1 3 143 4 15 +2077 28 11 -123.9 1062.25 12 23 0 1 2 3 142 4 14 +2078 28 12 -119.7 1062.25 12 21 0 1 2 3 140 4 12 +2079 28 13 -115.5 1062.25 12 19 0 1 2 3 138 4 10 +2080 28 14 -111.3 1062.25 12 20 0 1 2 3 139 4 11 +2081 28 15 -107.1 1062.25 12 22 0 1 2 3 141 4 13 +2082 28 16 -102.9 1062.25 16 23 0 1 3 3 142 4 14 +2083 28 17 -98.7 1062.25 16 21 0 1 3 3 140 4 12 +2084 28 18 -94.5 1062.25 16 19 0 1 3 3 138 4 10 +2085 28 19 -90.3 1062.25 16 20 0 1 3 3 139 4 11 +2086 28 20 -86.1 1062.25 16 22 0 1 3 3 141 4 13 +2087 28 21 -81.9 1062.25 16 24 0 1 3 3 143 4 15 +2088 28 22 -77.7 1062.25 20 21 0 1 4 3 140 4 12 +2089 28 23 -73.5 1062.25 20 19 0 1 4 3 138 4 10 +2090 28 24 -69.3 1062.25 20 17 0 1 4 3 136 4 8 +2091 28 25 -65.1 1062.25 20 22 0 1 4 3 141 4 13 +2092 28 26 -60.9 1062.25 20 24 0 1 4 3 143 4 15 +2093 28 27 -56.7 1062.25 24 21 0 1 5 3 140 4 12 +2094 28 28 -52.5 1062.25 24 19 0 1 5 3 138 4 10 +2095 28 29 -48.3 1062.25 24 17 0 1 5 3 136 4 8 +2096 28 30 -44.1 1062.25 24 18 0 1 5 3 137 4 9 +2097 28 31 -39.9 1062.25 24 20 0 1 5 3 139 4 11 +2098 28 32 -35.7 1062.25 24 22 0 1 5 3 141 4 13 +2099 28 33 -31.5 1062.25 28 23 0 1 6 3 142 4 14 +2100 28 34 -27.3 1062.25 28 21 0 1 6 3 140 4 12 +2101 28 35 -23.1 1062.25 28 22 0 1 6 3 141 4 13 +2102 28 36 -18.9 1062.25 28 24 0 1 6 3 143 4 15 +2103 28 37 -14.7 1062.25 28 26 0 1 6 3 145 4 17 +2104 28 38 -10.5 1062.25 32 21 0 1 7 3 140 4 12 +2105 28 39 -6.3 1062.25 32 19 0 1 7 3 138 4 10 +2106 28 40 -2.1 1062.25 32 17 0 1 7 3 136 4 8 +2107 28 41 2.1 1062.25 32 18 0 1 7 3 137 4 9 +2108 28 42 6.3 1062.25 32 20 0 1 7 3 139 4 11 +2109 28 43 10.5 1062.25 32 22 0 1 7 3 141 4 13 +2110 28 44 14.7 1062.25 36 25 0 1 8 3 144 4 16 +2111 28 45 18.9 1062.25 36 23 0 1 8 3 142 4 14 +2112 28 46 23.1 1062.25 36 21 0 1 8 3 140 4 12 +2113 28 47 27.3 1062.25 36 22 0 1 8 3 141 4 13 +2114 28 48 31.5 1062.25 36 24 0 1 8 3 143 4 15 +2115 28 49 35.7 1062.25 40 21 0 1 9 3 140 4 12 +2116 28 50 39.9 1062.25 40 19 0 1 9 3 138 4 10 +2117 28 51 44.1 1062.25 40 17 0 1 9 3 136 4 8 +2118 28 52 48.3 1062.25 40 18 0 1 9 3 137 4 9 +2119 28 53 52.5 1062.25 40 20 0 1 9 3 139 4 11 +2120 28 54 56.7 1062.25 40 22 0 1 9 3 141 4 13 +2121 28 55 60.9 1062.25 44 23 0 1 10 3 142 4 14 +2122 28 56 65.1 1062.25 44 21 0 1 10 3 140 4 12 +2123 28 57 69.3 1062.25 44 18 0 1 10 3 137 4 9 +2124 28 58 73.5 1062.25 44 20 0 1 10 3 139 4 11 +2125 28 59 77.7 1062.25 44 22 0 1 10 3 141 4 13 +2126 28 60 81.9 1062.25 48 23 0 1 11 3 142 4 14 +2127 28 61 86.1 1062.25 48 21 0 1 11 3 140 4 12 +2128 28 62 90.3 1062.25 48 19 0 1 11 3 138 4 10 +2129 28 63 94.5 1062.25 48 20 0 1 11 3 139 4 11 +2130 28 64 98.7 1062.25 48 22 0 1 11 3 141 4 13 +2131 28 65 102.9 1062.25 48 24 0 1 11 3 143 4 15 +2132 28 66 107.1 1062.25 52 21 0 1 12 3 140 4 12 +2133 28 67 111.3 1062.25 52 19 0 1 12 3 138 4 10 +2134 28 68 115.5 1062.25 52 20 0 1 12 3 139 4 11 +2135 28 69 119.7 1062.25 52 22 0 1 12 3 141 4 13 +2136 28 70 123.9 1062.25 52 24 0 1 12 3 143 4 15 +2137 28 71 128.1 1062.25 56 23 0 1 13 3 142 4 14 +2138 28 72 132.3 1062.25 56 21 0 1 13 3 140 4 12 +2139 28 73 136.5 1062.25 56 19 0 1 13 3 138 4 10 +2140 28 74 140.7 1062.25 56 18 0 1 13 3 137 4 9 +2141 28 75 144.9 1062.25 56 20 0 1 13 3 139 4 11 +2142 28 76 149.1 1062.25 56 22 0 1 13 3 141 4 13 +2143 28 77 153.3 1062.25 60 23 0 1 14 3 142 4 14 +2144 28 78 157.5 1062.25 60 21 0 1 14 3 140 4 12 +2145 28 79 161.7 1062.25 60 19 0 1 14 3 138 4 10 +2146 28 80 165.9 1062.25 60 20 0 1 14 3 139 4 11 +2147 28 81 170.1 1062.25 60 22 0 1 14 3 141 4 13 +2148 29 0 -174.3 1069.75 4 27 0 1 0 3 146 4 18 +2149 29 1 -170.1 1069.75 4 25 0 1 0 3 144 4 16 +2150 29 2 -165.9 1069.75 4 23 0 1 0 3 142 4 14 +2151 29 3 -161.7 1069.75 4 26 0 1 0 3 145 4 17 +2152 29 4 -157.5 1069.75 4 28 0 1 0 3 147 4 19 +2153 29 5 -153.3 1069.75 4 30 0 1 0 3 149 4 21 +2154 29 6 -149.1 1069.75 8 27 0 1 1 3 146 4 18 +2155 29 7 -144.9 1069.75 8 25 0 1 1 3 144 4 16 +2156 29 8 -140.7 1069.75 8 23 0 1 1 3 142 4 14 +2157 29 9 -136.5 1069.75 8 26 0 1 1 3 145 4 17 +2158 29 10 -132.3 1069.75 8 28 0 1 1 3 147 4 19 +2159 29 11 -128.1 1069.75 8 30 0 1 1 3 149 4 21 +2160 29 12 -123.9 1069.75 12 27 0 1 2 3 146 4 18 +2161 29 13 -119.7 1069.75 12 25 0 1 2 3 144 4 16 +2162 29 14 -115.5 1069.75 12 24 0 1 2 3 143 4 15 +2163 29 15 -111.3 1069.75 12 26 0 1 2 3 145 4 17 +2164 29 16 -107.1 1069.75 12 28 0 1 2 3 147 4 19 +2165 29 17 -102.9 1069.75 16 29 0 1 3 3 148 4 20 +2166 29 18 -98.7 1069.75 16 27 0 1 3 3 146 4 18 +2167 29 19 -94.5 1069.75 16 25 0 1 3 3 144 4 16 +2168 29 20 -90.3 1069.75 16 26 0 1 3 3 145 4 17 +2169 29 21 -86.1 1069.75 16 28 0 1 3 3 147 4 19 +2170 29 22 -81.9 1069.75 16 30 0 1 3 3 149 4 21 +2171 29 23 -77.7 1069.75 20 27 0 1 4 3 146 4 18 +2172 29 24 -73.5 1069.75 20 25 0 1 4 3 144 4 16 +2173 29 25 -69.3 1069.75 20 23 0 1 4 3 142 4 14 +2174 29 26 -65.1 1069.75 20 26 0 1 4 3 145 4 17 +2175 29 27 -60.9 1069.75 20 28 0 1 4 3 147 4 19 +2176 29 28 -56.7 1069.75 24 27 0 1 5 3 146 4 18 +2177 29 29 -52.5 1069.75 24 25 0 1 5 3 144 4 16 +2178 29 30 -48.3 1069.75 24 23 0 1 5 3 142 4 14 +2179 29 31 -44.1 1069.75 24 24 0 1 5 3 143 4 15 +2180 29 32 -39.9 1069.75 24 26 0 1 5 3 145 4 17 +2181 29 33 -35.7 1069.75 24 28 0 1 5 3 147 4 19 +2182 29 34 -31.5 1069.75 28 29 0 1 6 3 148 4 20 +2183 29 35 -27.3 1069.75 28 27 0 1 6 3 146 4 18 +2184 29 36 -23.1 1069.75 28 25 0 1 6 3 144 4 16 +2185 29 37 -18.9 1069.75 28 28 0 1 6 3 147 4 19 +2186 29 38 -14.7 1069.75 28 30 0 1 6 3 149 4 21 +2187 29 39 -10.5 1069.75 32 27 0 1 7 3 146 4 18 +2188 29 40 -6.3 1069.75 32 25 0 1 7 3 144 4 16 +2189 29 41 -2.1 1069.75 32 23 0 1 7 3 142 4 14 +2190 29 42 2.1 1069.75 32 24 0 1 7 3 143 4 15 +2191 29 43 6.3 1069.75 32 26 0 1 7 3 145 4 17 +2192 29 44 10.5 1069.75 32 28 0 1 7 3 147 4 19 +2193 29 45 14.7 1069.75 36 29 0 1 8 3 148 4 20 +2194 29 46 18.9 1069.75 36 27 0 1 8 3 146 4 18 +2195 29 47 23.1 1069.75 36 26 0 1 8 3 145 4 17 +2196 29 48 27.3 1069.75 36 28 0 1 8 3 147 4 19 +2197 29 49 31.5 1069.75 36 30 0 1 8 3 149 4 21 +2198 29 50 35.7 1069.75 40 27 0 1 9 3 146 4 18 +2199 29 51 39.9 1069.75 40 25 0 1 9 3 144 4 16 +2200 29 52 44.1 1069.75 40 23 0 1 9 3 142 4 14 +2201 29 53 48.3 1069.75 40 24 0 1 9 3 143 4 15 +2202 29 54 52.5 1069.75 40 26 0 1 9 3 145 4 17 +2203 29 55 56.7 1069.75 40 28 0 1 9 3 147 4 19 +2204 29 56 60.9 1069.75 44 27 0 1 10 3 146 4 18 +2205 29 57 65.1 1069.75 44 25 0 1 10 3 144 4 16 +2206 29 58 69.3 1069.75 44 24 0 1 10 3 143 4 15 +2207 29 59 73.5 1069.75 44 26 0 1 10 3 145 4 17 +2208 29 60 77.7 1069.75 44 28 0 1 10 3 147 4 19 +2209 29 61 81.9 1069.75 48 29 0 1 11 3 148 4 20 +2210 29 62 86.1 1069.75 48 27 0 1 11 3 146 4 18 +2211 29 63 90.3 1069.75 48 25 0 1 11 3 144 4 16 +2212 29 64 94.5 1069.75 48 26 0 1 11 3 145 4 17 +2213 29 65 98.7 1069.75 48 28 0 1 11 3 147 4 19 +2214 29 66 102.9 1069.75 48 30 0 1 11 3 149 4 21 +2215 29 67 107.1 1069.75 52 27 0 1 12 3 146 4 18 +2216 29 68 111.3 1069.75 52 25 0 1 12 3 144 4 16 +2217 29 69 115.5 1069.75 52 23 0 1 12 3 142 4 14 +2218 29 70 119.7 1069.75 52 26 0 1 12 3 145 4 17 +2219 29 71 123.9 1069.75 52 28 0 1 12 3 147 4 19 +2220 29 72 128.1 1069.75 56 29 0 1 13 3 148 4 20 +2221 29 73 132.3 1069.75 56 27 0 1 13 3 146 4 18 +2222 29 74 136.5 1069.75 56 25 0 1 13 3 144 4 16 +2223 29 75 140.7 1069.75 56 24 0 1 13 3 143 4 15 +2224 29 76 144.9 1069.75 56 26 0 1 13 3 145 4 17 +2225 29 77 149.1 1069.75 56 28 0 1 13 3 147 4 19 +2226 29 78 153.3 1069.75 60 29 0 1 14 3 148 4 20 +2227 29 79 157.5 1069.75 60 27 0 1 14 3 146 4 18 +2228 29 80 161.7 1069.75 60 25 0 1 14 3 144 4 16 +2229 29 81 165.9 1069.75 60 24 0 1 14 3 143 4 15 +2230 29 82 170.1 1069.75 60 26 0 1 14 3 145 4 17 +2231 29 83 174.3 1069.75 60 28 0 1 14 3 147 4 19 +2232 30 0 -174.3 1077.25 4 33 0 1 0 3 152 4 24 +2233 30 1 -170.1 1077.25 4 31 0 1 0 3 150 4 22 +2234 30 2 -165.9 1077.25 4 29 0 1 0 3 148 4 20 +2235 30 3 -161.7 1077.25 4 32 0 1 0 3 151 4 23 +2236 30 4 -157.5 1077.25 4 34 0 1 0 3 153 4 25 +2237 30 5 -153.3 1077.25 4 36 0 1 0 3 155 4 27 +2238 30 6 -149.1 1077.25 8 33 0 1 1 3 152 4 24 +2239 30 7 -144.9 1077.25 8 31 0 1 1 3 150 4 22 +2240 30 8 -140.7 1077.25 8 29 0 1 1 3 148 4 20 +2241 30 9 -136.5 1077.25 8 32 0 1 1 3 151 4 23 +2242 30 10 -132.3 1077.25 8 34 0 1 1 3 153 4 25 +2243 30 11 -128.1 1077.25 12 33 0 1 2 3 152 4 24 +2244 30 12 -123.9 1077.25 12 31 0 1 2 3 150 4 22 +2245 30 13 -119.7 1077.25 12 29 0 1 2 3 148 4 20 +2246 30 14 -115.5 1077.25 12 30 0 1 2 3 149 4 21 +2247 30 15 -111.3 1077.25 12 32 0 1 2 3 151 4 23 +2248 30 16 -107.1 1077.25 12 34 0 1 2 3 153 4 25 +2249 30 17 -102.9 1077.25 16 33 0 1 3 3 152 4 24 +2250 30 18 -98.7 1077.25 16 31 0 1 3 3 150 4 22 +2251 30 19 -94.5 1077.25 16 32 0 1 3 3 151 4 23 +2252 30 20 -90.3 1077.25 16 34 0 1 3 3 153 4 25 +2253 30 21 -86.1 1077.25 16 36 0 1 3 3 155 4 27 +2254 30 22 -81.9 1077.25 20 33 0 1 4 3 152 4 24 +2255 30 23 -77.7 1077.25 20 31 0 1 4 3 150 4 22 +2256 30 24 -73.5 1077.25 20 29 0 1 4 3 148 4 20 +2257 30 25 -69.3 1077.25 20 30 0 1 4 3 149 4 21 +2258 30 26 -65.1 1077.25 20 32 0 1 4 3 151 4 23 +2259 30 27 -60.9 1077.25 20 34 0 1 4 3 153 4 25 +2260 30 28 -56.7 1077.25 24 33 0 1 5 3 152 4 24 +2261 30 29 -52.5 1077.25 24 31 0 1 5 3 150 4 22 +2262 30 30 -48.3 1077.25 24 29 0 1 5 3 148 4 20 +2263 30 31 -44.1 1077.25 24 30 0 1 5 3 149 4 21 +2264 30 32 -39.9 1077.25 24 32 0 1 5 3 151 4 23 +2265 30 33 -35.7 1077.25 24 34 0 1 5 3 153 4 25 +2266 30 34 -31.5 1077.25 28 33 0 1 6 3 152 4 24 +2267 30 35 -27.3 1077.25 28 31 0 1 6 3 150 4 22 +2268 30 36 -23.1 1077.25 28 32 0 1 6 3 151 4 23 +2269 30 37 -18.9 1077.25 28 34 0 1 6 3 153 4 25 +2270 30 38 -14.7 1077.25 28 36 0 1 6 3 155 4 27 +2271 30 39 -10.5 1077.25 32 33 0 1 7 3 152 4 24 +2272 30 40 -6.3 1077.25 32 31 0 1 7 3 150 4 22 +2273 30 41 -2.1 1077.25 32 29 0 1 7 3 148 4 20 +2274 30 42 2.1 1077.25 32 30 0 1 7 3 149 4 21 +2275 30 43 6.3 1077.25 32 32 0 1 7 3 151 4 23 +2276 30 44 10.5 1077.25 32 34 0 1 7 3 153 4 25 +2277 30 45 14.7 1077.25 36 35 0 1 8 3 154 4 26 +2278 30 46 18.9 1077.25 36 33 0 1 8 3 152 4 24 +2279 30 47 23.1 1077.25 36 31 0 1 8 3 150 4 22 +2280 30 48 27.3 1077.25 36 32 0 1 8 3 151 4 23 +2281 30 49 31.5 1077.25 36 34 0 1 8 3 153 4 25 +2282 30 50 35.7 1077.25 40 33 0 1 9 3 152 4 24 +2283 30 51 39.9 1077.25 40 31 0 1 9 3 150 4 22 +2284 30 52 44.1 1077.25 40 29 0 1 9 3 148 4 20 +2285 30 53 48.3 1077.25 40 30 0 1 9 3 149 4 21 +2286 30 54 52.5 1077.25 40 32 0 1 9 3 151 4 23 +2287 30 55 56.7 1077.25 40 34 0 1 9 3 153 4 25 +2288 30 56 60.9 1077.25 44 33 0 1 10 3 152 4 24 +2289 30 57 65.1 1077.25 44 31 0 1 10 3 150 4 22 +2290 30 58 69.3 1077.25 44 29 0 1 10 3 148 4 20 +2291 30 59 73.5 1077.25 44 30 0 1 10 3 149 4 21 +2292 30 60 77.7 1077.25 44 32 0 1 10 3 151 4 23 +2293 30 61 81.9 1077.25 44 34 0 1 10 3 153 4 25 +2294 30 62 86.1 1077.25 48 35 0 1 11 3 154 4 26 +2295 30 63 90.3 1077.25 48 33 0 1 11 3 152 4 24 +2296 30 64 94.5 1077.25 48 31 0 1 11 3 150 4 22 +2297 30 65 98.7 1077.25 48 32 0 1 11 3 151 4 23 +2298 30 66 102.9 1077.25 48 34 0 1 11 3 153 4 25 +2299 30 67 107.1 1077.25 52 33 0 1 12 3 152 4 24 +2300 30 68 111.3 1077.25 52 31 0 1 12 3 150 4 22 +2301 30 69 115.5 1077.25 52 29 0 1 12 3 148 4 20 +2302 30 70 119.7 1077.25 52 30 0 1 12 3 149 4 21 +2303 30 71 123.9 1077.25 52 32 0 1 12 3 151 4 23 +2304 30 72 128.1 1077.25 52 34 0 1 12 3 153 4 25 +2305 30 73 132.3 1077.25 56 33 0 1 13 3 152 4 24 +2306 30 74 136.5 1077.25 56 31 0 1 13 3 150 4 22 +2307 30 75 140.7 1077.25 56 30 0 1 13 3 149 4 21 +2308 30 76 144.9 1077.25 56 32 0 1 13 3 151 4 23 +2309 30 77 149.1 1077.25 56 34 0 1 13 3 153 4 25 +2310 30 78 153.3 1077.25 60 35 0 1 14 3 154 4 26 +2311 30 79 157.5 1077.25 60 33 0 1 14 3 152 4 24 +2312 30 80 161.7 1077.25 60 31 0 1 14 3 150 4 22 +2313 30 81 165.9 1077.25 60 30 0 1 14 3 149 4 21 +2314 30 82 170.1 1077.25 60 32 0 1 14 3 151 4 23 +2315 30 83 174.3 1077.25 60 34 0 1 14 3 153 4 25 +2316 31 0 -174.3 1084.75 4 39 0 1 0 3 158 4 30 +2317 31 1 -170.1 1084.75 4 37 0 1 0 3 156 4 28 +2318 31 2 -165.9 1084.75 4 35 0 1 0 3 154 4 26 +2319 31 3 -161.7 1084.75 4 38 0 1 0 3 157 4 29 +2320 31 4 -157.5 1084.75 4 40 0 1 0 3 159 4 31 +2321 31 5 -153.3 1084.75 8 39 0 1 1 3 158 4 30 +2322 31 6 -149.1 1084.75 8 37 0 1 1 3 156 4 28 +2323 31 7 -144.9 1084.75 8 35 0 1 1 3 154 4 26 +2324 31 8 -140.7 1084.75 8 36 0 1 1 3 155 4 27 +2325 31 9 -136.5 1084.75 8 38 0 1 1 3 157 4 29 +2326 31 10 -132.3 1084.75 8 40 0 1 1 3 159 4 31 +2327 31 11 -128.1 1084.75 12 39 0 1 2 3 158 4 30 +2328 31 12 -123.9 1084.75 12 37 0 1 2 3 156 4 28 +2329 31 13 -119.7 1084.75 12 35 0 1 2 3 154 4 26 +2330 31 14 -115.5 1084.75 12 36 0 1 2 3 155 4 27 +2331 31 15 -111.3 1084.75 12 38 0 1 2 3 157 4 29 +2332 31 16 -107.1 1084.75 12 40 0 1 2 3 159 4 31 +2333 31 17 -102.9 1084.75 16 39 0 1 3 3 158 4 30 +2334 31 18 -98.7 1084.75 16 37 0 1 3 3 156 4 28 +2335 31 19 -94.5 1084.75 16 35 0 1 3 3 154 4 26 +2336 31 20 -90.3 1084.75 16 38 0 1 3 3 157 4 29 +2337 31 21 -86.1 1084.75 16 40 0 1 3 3 159 4 31 +2338 31 22 -81.9 1084.75 20 39 0 1 4 3 158 4 30 +2339 31 23 -77.7 1084.75 20 37 0 1 4 3 156 4 28 +2340 31 24 -73.5 1084.75 20 35 0 1 4 3 154 4 26 +2341 31 25 -69.3 1084.75 20 36 0 1 4 3 155 4 27 +2342 31 26 -65.1 1084.75 20 38 0 1 4 3 157 4 29 +2343 31 27 -60.9 1084.75 20 40 0 1 4 3 159 4 31 +2344 31 28 -56.7 1084.75 24 39 0 1 5 3 158 4 30 +2345 31 29 -52.5 1084.75 24 37 0 1 5 3 156 4 28 +2346 31 30 -48.3 1084.75 24 35 0 1 5 3 154 4 26 +2347 31 31 -44.1 1084.75 24 36 0 1 5 3 155 4 27 +2348 31 32 -39.9 1084.75 24 38 0 1 5 3 157 4 29 +2349 31 33 -35.7 1084.75 24 40 0 1 5 3 159 4 31 +2350 31 34 -31.5 1084.75 28 39 0 1 6 3 158 4 30 +2351 31 35 -27.3 1084.75 28 37 0 1 6 3 156 4 28 +2352 31 36 -23.1 1084.75 28 35 0 1 6 3 154 4 26 +2353 31 37 -18.9 1084.75 28 38 0 1 6 3 157 4 29 +2354 31 38 -14.7 1084.75 28 40 0 1 6 3 159 4 31 +2355 31 39 -10.5 1084.75 32 39 0 1 7 3 158 4 30 +2356 31 40 -6.3 1084.75 32 37 0 1 7 3 156 4 28 +2357 31 41 -2.1 1084.75 32 35 0 1 7 3 154 4 26 +2358 31 42 2.1 1084.75 32 36 0 1 7 3 155 4 27 +2359 31 43 6.3 1084.75 32 38 0 1 7 3 157 4 29 +2360 31 44 10.5 1084.75 32 40 0 1 7 3 159 4 31 +2361 31 45 14.7 1084.75 36 39 0 1 8 3 158 4 30 +2362 31 46 18.9 1084.75 36 37 0 1 8 3 156 4 28 +2363 31 47 23.1 1084.75 36 36 0 1 8 3 155 4 27 +2364 31 48 27.3 1084.75 36 38 0 1 8 3 157 4 29 +2365 31 49 31.5 1084.75 36 40 0 1 8 3 159 4 31 +2366 31 50 35.7 1084.75 40 39 0 1 9 3 158 4 30 +2367 31 51 39.9 1084.75 40 37 0 1 9 3 156 4 28 +2368 31 52 44.1 1084.75 40 35 0 1 9 3 154 4 26 +2369 31 53 48.3 1084.75 40 36 0 1 9 3 155 4 27 +2370 31 54 52.5 1084.75 40 38 0 1 9 3 157 4 29 +2371 31 55 56.7 1084.75 40 40 0 1 9 3 159 4 31 +2372 31 56 60.9 1084.75 44 39 0 1 10 3 158 4 30 +2373 31 57 65.1 1084.75 44 37 0 1 10 3 156 4 28 +2374 31 58 69.3 1084.75 44 35 0 1 10 3 154 4 26 +2375 31 59 73.5 1084.75 44 36 0 1 10 3 155 4 27 +2376 31 60 77.7 1084.75 44 38 0 1 10 3 157 4 29 +2377 31 61 81.9 1084.75 44 40 0 1 10 3 159 4 31 +2378 31 62 86.1 1084.75 48 39 0 1 11 3 158 4 30 +2379 31 63 90.3 1084.75 48 37 0 1 11 3 156 4 28 +2380 31 64 94.5 1084.75 48 36 0 1 11 3 155 4 27 +2381 31 65 98.7 1084.75 48 38 0 1 11 3 157 4 29 +2382 31 66 102.9 1084.75 48 40 0 1 11 3 159 4 31 +2383 31 67 107.1 1084.75 52 39 0 1 12 3 158 4 30 +2384 31 68 111.3 1084.75 52 37 0 1 12 3 156 4 28 +2385 31 69 115.5 1084.75 52 35 0 1 12 3 154 4 26 +2386 31 70 119.7 1084.75 52 36 0 1 12 3 155 4 27 +2387 31 71 123.9 1084.75 52 38 0 1 12 3 157 4 29 +2388 31 72 128.1 1084.75 52 40 0 1 12 3 159 4 31 +2389 31 73 132.3 1084.75 56 39 0 1 13 3 158 4 30 +2390 31 74 136.5 1084.75 56 37 0 1 13 3 156 4 28 +2391 31 75 140.7 1084.75 56 35 0 1 13 3 154 4 26 +2392 31 76 144.9 1084.75 56 36 0 1 13 3 155 4 27 +2393 31 77 149.1 1084.75 56 38 0 1 13 3 157 4 29 +2394 31 78 153.3 1084.75 56 40 0 1 13 3 159 4 31 +2395 31 79 157.5 1084.75 60 39 0 1 14 3 158 4 30 +2396 31 80 161.7 1084.75 60 37 0 1 14 3 156 4 28 +2397 31 81 165.9 1084.75 60 36 0 1 14 3 155 4 27 +2398 31 82 170.1 1084.75 60 38 0 1 14 3 157 4 29 +2399 31 83 174.3 1084.75 60 40 0 1 14 3 159 4 31 +2400 32 0 -178.5 1092.25 61 5 1 2 15 0 4 0 4 +2401 32 1 -174.3 1092.25 61 3 1 2 15 0 2 0 2 +2402 32 2 -170.1 1092.25 61 1 1 2 15 0 0 0 0 +2403 32 3 -165.9 1092.25 61 2 1 2 15 0 1 0 1 +2404 32 4 -161.7 1092.25 61 4 1 2 15 0 3 0 3 +2405 32 5 -157.5 1092.25 65 5 1 2 16 0 4 0 4 +2406 32 6 -153.3 1092.25 65 3 1 2 16 0 2 0 2 +2407 32 7 -149.1 1092.25 65 1 1 2 16 0 0 0 0 +2408 32 8 -144.9 1092.25 65 2 1 2 16 0 1 0 1 +2409 32 9 -140.7 1092.25 65 4 1 2 16 0 3 0 3 +2410 32 10 -136.5 1092.25 69 3 1 2 17 0 2 0 2 +2411 32 11 -132.3 1092.25 69 1 1 2 17 0 0 0 0 +2412 32 12 -128.1 1092.25 69 2 1 2 17 0 1 0 1 +2413 32 13 -123.9 1092.25 69 4 1 2 17 0 3 0 3 +2414 32 14 -119.7 1092.25 69 6 1 2 17 0 5 0 5 +2415 32 15 -115.5 1092.25 73 3 1 2 18 0 2 0 2 +2416 32 16 -111.3 1092.25 73 1 1 2 18 0 0 0 0 +2417 32 17 -107.1 1092.25 73 2 1 2 18 0 1 0 1 +2418 32 18 -102.9 1092.25 73 4 1 2 18 0 3 0 3 +2419 32 19 -98.7 1092.25 77 5 1 2 19 0 4 0 4 +2420 32 20 -94.5 1092.25 77 3 1 2 19 0 2 0 2 +2421 32 21 -90.3 1092.25 77 1 1 2 19 0 0 0 0 +2422 32 22 -86.1 1092.25 77 2 1 2 19 0 1 0 1 +2423 32 23 -81.9 1092.25 77 4 1 2 19 0 3 0 3 +2424 32 24 -77.7 1092.25 81 3 1 2 20 0 2 0 2 +2425 32 25 -73.5 1092.25 81 1 1 2 20 0 0 0 0 +2426 32 26 -69.3 1092.25 81 2 1 2 20 0 1 0 1 +2427 32 27 -65.1 1092.25 81 4 1 2 20 0 3 0 3 +2428 32 28 -60.9 1092.25 81 6 1 2 20 0 5 0 5 +2429 32 29 -56.7 1092.25 85 3 1 2 21 0 2 0 2 +2430 32 30 -52.5 1092.25 85 1 1 2 21 0 0 0 0 +2431 32 31 -48.3 1092.25 85 2 1 2 21 0 1 0 1 +2432 32 32 -44.1 1092.25 85 4 1 2 21 0 3 0 3 +2433 32 33 -39.9 1092.25 85 6 1 2 21 0 5 0 5 +2434 32 34 -35.7 1092.25 89 3 1 2 22 0 2 0 2 +2435 32 35 -31.5 1092.25 89 1 1 2 22 0 0 0 0 +2436 32 36 -27.3 1092.25 89 2 1 2 22 0 1 0 1 +2437 32 37 -23.1 1092.25 89 4 1 2 22 0 3 0 3 +2438 32 38 -18.9 1092.25 93 3 1 2 23 0 2 0 2 +2439 32 39 -14.7 1092.25 93 1 1 2 23 0 0 0 0 +2440 32 40 -10.5 1092.25 93 2 1 2 23 0 1 0 1 +2441 32 41 -6.3 1092.25 93 4 1 2 23 0 3 0 3 +2442 32 42 -2.1 1092.25 93 6 1 2 23 0 5 0 5 +2443 32 43 2.1 1092.25 97 5 1 2 24 0 4 0 4 +2444 32 44 6.3 1092.25 97 3 1 2 24 0 2 0 2 +2445 32 45 10.5 1092.25 97 1 1 2 24 0 0 0 0 +2446 32 46 14.7 1092.25 97 2 1 2 24 0 1 0 1 +2447 32 47 18.9 1092.25 97 4 1 2 24 0 3 0 3 +2448 32 48 23.1 1092.25 101 3 1 2 25 0 2 0 2 +2449 32 49 27.3 1092.25 101 1 1 2 25 0 0 0 0 +2450 32 50 31.5 1092.25 101 2 1 2 25 0 1 0 1 +2451 32 51 35.7 1092.25 101 4 1 2 25 0 3 0 3 +2452 32 52 39.9 1092.25 105 5 1 2 26 0 4 0 4 +2453 32 53 44.1 1092.25 105 3 1 2 26 0 2 0 2 +2454 32 54 48.3 1092.25 105 1 1 2 26 0 0 0 0 +2455 32 55 52.5 1092.25 105 2 1 2 26 0 1 0 1 +2456 32 56 56.7 1092.25 105 4 1 2 26 0 3 0 3 +2457 32 57 60.9 1092.25 109 5 1 2 27 0 4 0 4 +2458 32 58 65.1 1092.25 109 3 1 2 27 0 2 0 2 +2459 32 59 69.3 1092.25 109 1 1 2 27 0 0 0 0 +2460 32 60 73.5 1092.25 109 2 1 2 27 0 1 0 1 +2461 32 61 77.7 1092.25 109 4 1 2 27 0 3 0 3 +2462 32 62 81.9 1092.25 113 3 1 2 28 0 2 0 2 +2463 32 63 86.1 1092.25 113 1 1 2 28 0 0 0 0 +2464 32 64 90.3 1092.25 113 2 1 2 28 0 1 0 1 +2465 32 65 94.5 1092.25 113 4 1 2 28 0 3 0 3 +2466 32 66 98.7 1092.25 113 6 1 2 28 0 5 0 5 +2467 32 67 102.9 1092.25 117 3 1 2 29 0 2 0 2 +2468 32 68 107.1 1092.25 117 1 1 2 29 0 0 0 0 +2469 32 69 111.3 1092.25 117 2 1 2 29 0 1 0 1 +2470 32 70 115.5 1092.25 117 4 1 2 29 0 3 0 3 +2471 32 71 119.7 1092.25 121 5 1 2 30 0 4 0 4 +2472 32 72 123.9 1092.25 121 3 1 2 30 0 2 0 2 +2473 32 73 128.1 1092.25 121 1 1 2 30 0 0 0 0 +2474 32 74 132.3 1092.25 121 2 1 2 30 0 1 0 1 +2475 32 75 136.5 1092.25 121 4 1 2 30 0 3 0 3 +2476 32 76 140.7 1092.25 125 3 1 2 31 0 2 0 2 +2477 32 77 144.9 1092.25 125 1 1 2 31 0 0 0 0 +2478 32 78 149.1 1092.25 125 2 1 2 31 0 1 0 1 +2479 32 79 153.3 1092.25 125 4 1 2 31 0 3 0 3 +2480 32 80 157.5 1092.25 125 6 1 2 31 0 5 0 5 +2481 32 81 161.7 1092.25 129 3 1 2 32 0 2 0 2 +2482 32 82 165.9 1092.25 129 1 1 2 32 0 0 0 0 +2483 32 83 170.1 1092.25 129 2 1 2 32 0 1 0 1 +2484 32 84 174.3 1092.25 129 4 1 2 32 0 3 0 3 +2485 32 85 178.5 1092.25 129 6 1 2 32 0 5 0 5 +2486 33 0 -178.5 1099.75 61 9 1 2 15 0 8 0 8 +2487 33 1 -174.3 1099.75 61 7 1 2 15 0 6 0 6 +2488 33 2 -170.1 1099.75 61 6 1 2 15 0 5 0 5 +2489 33 3 -165.9 1099.75 61 8 1 2 15 0 7 0 7 +2490 33 4 -161.7 1099.75 61 10 1 2 15 0 9 0 9 +2491 33 5 -157.5 1099.75 65 9 1 2 16 0 8 0 8 +2492 33 6 -153.3 1099.75 65 7 1 2 16 0 6 0 6 +2493 33 7 -149.1 1099.75 65 6 1 2 16 0 5 0 5 +2494 33 8 -144.9 1099.75 65 8 1 2 16 0 7 0 7 +2495 33 9 -140.7 1099.75 65 10 1 2 16 0 9 0 9 +2496 33 10 -136.5 1099.75 69 7 1 2 17 0 6 0 6 +2497 33 11 -132.3 1099.75 69 5 1 2 17 0 4 0 4 +2498 33 12 -128.1 1099.75 69 8 1 2 17 0 7 0 7 +2499 33 13 -123.9 1099.75 69 10 1 2 17 0 9 0 9 +2500 33 14 -119.7 1099.75 73 9 1 2 18 0 8 0 8 +2501 33 15 -115.5 1099.75 73 7 1 2 18 0 6 0 6 +2502 33 16 -111.3 1099.75 73 5 1 2 18 0 4 0 4 +2503 33 17 -107.1 1099.75 73 6 1 2 18 0 5 0 5 +2504 33 18 -102.9 1099.75 73 8 1 2 18 0 7 0 7 +2505 33 19 -98.7 1099.75 77 9 1 2 19 0 8 0 8 +2506 33 20 -94.5 1099.75 77 7 1 2 19 0 6 0 6 +2507 33 21 -90.3 1099.75 77 6 1 2 19 0 5 0 5 +2508 33 22 -86.1 1099.75 77 8 1 2 19 0 7 0 7 +2509 33 23 -81.9 1099.75 77 10 1 2 19 0 9 0 9 +2510 33 24 -77.7 1099.75 81 9 1 2 20 0 8 0 8 +2511 33 25 -73.5 1099.75 81 7 1 2 20 0 6 0 6 +2512 33 26 -69.3 1099.75 81 5 1 2 20 0 4 0 4 +2513 33 27 -65.1 1099.75 81 8 1 2 20 0 7 0 7 +2514 33 28 -60.9 1099.75 81 10 1 2 20 0 9 0 9 +2515 33 29 -56.7 1099.75 85 7 1 2 21 0 6 0 6 +2516 33 30 -52.5 1099.75 85 5 1 2 21 0 4 0 4 +2517 33 31 -48.3 1099.75 85 8 1 2 21 0 7 0 7 +2518 33 32 -44.1 1099.75 85 10 1 2 21 0 9 0 9 +2519 33 33 -39.9 1099.75 89 9 1 2 22 0 8 0 8 +2520 33 34 -35.7 1099.75 89 7 1 2 22 0 6 0 6 +2521 33 35 -31.5 1099.75 89 5 1 2 22 0 4 0 4 +2522 33 36 -27.3 1099.75 89 6 1 2 22 0 5 0 5 +2523 33 37 -23.1 1099.75 89 8 1 2 22 0 7 0 7 +2524 33 38 -18.9 1099.75 93 9 1 2 23 0 8 0 8 +2525 33 39 -14.7 1099.75 93 7 1 2 23 0 6 0 6 +2526 33 40 -10.5 1099.75 93 5 1 2 23 0 4 0 4 +2527 33 41 -6.3 1099.75 93 8 1 2 23 0 7 0 7 +2528 33 42 -2.1 1099.75 93 10 1 2 23 0 9 0 9 +2529 33 43 2.1 1099.75 97 9 1 2 24 0 8 0 8 +2530 33 44 6.3 1099.75 97 7 1 2 24 0 6 0 6 +2531 33 45 10.5 1099.75 97 6 1 2 24 0 5 0 5 +2532 33 46 14.7 1099.75 97 8 1 2 24 0 7 0 7 +2533 33 47 18.9 1099.75 97 10 1 2 24 0 9 0 9 +2534 33 48 23.1 1099.75 101 7 1 2 25 0 6 0 6 +2535 33 49 27.3 1099.75 101 5 1 2 25 0 4 0 4 +2536 33 50 31.5 1099.75 101 6 1 2 25 0 5 0 5 +2537 33 51 35.7 1099.75 101 8 1 2 25 0 7 0 7 +2538 33 52 39.9 1099.75 101 10 1 2 25 0 9 0 9 +2539 33 53 44.1 1099.75 105 9 1 2 26 0 8 0 8 +2540 33 54 48.3 1099.75 105 7 1 2 26 0 6 0 6 +2541 33 55 52.5 1099.75 105 6 1 2 26 0 5 0 5 +2542 33 56 56.7 1099.75 105 8 1 2 26 0 7 0 7 +2543 33 57 60.9 1099.75 109 9 1 2 27 0 8 0 8 +2544 33 58 65.1 1099.75 109 7 1 2 27 0 6 0 6 +2545 33 59 69.3 1099.75 109 6 1 2 27 0 5 0 5 +2546 33 60 73.5 1099.75 109 8 1 2 27 0 7 0 7 +2547 33 61 77.7 1099.75 109 10 1 2 27 0 9 0 9 +2548 33 62 81.9 1099.75 113 9 1 2 28 0 8 0 8 +2549 33 63 86.1 1099.75 113 7 1 2 28 0 6 0 6 +2550 33 64 90.3 1099.75 113 5 1 2 28 0 4 0 4 +2551 33 65 94.5 1099.75 113 8 1 2 28 0 7 0 7 +2552 33 66 98.7 1099.75 113 10 1 2 28 0 9 0 9 +2553 33 67 102.9 1099.75 117 7 1 2 29 0 6 0 6 +2554 33 68 107.1 1099.75 117 5 1 2 29 0 4 0 4 +2555 33 69 111.3 1099.75 117 6 1 2 29 0 5 0 5 +2556 33 70 115.5 1099.75 117 8 1 2 29 0 7 0 7 +2557 33 71 119.7 1099.75 117 10 1 2 29 0 9 0 9 +2558 33 72 123.9 1099.75 121 9 1 2 30 0 8 0 8 +2559 33 73 128.1 1099.75 121 7 1 2 30 0 6 0 6 +2560 33 74 132.3 1099.75 121 6 1 2 30 0 5 0 5 +2561 33 75 136.5 1099.75 121 8 1 2 30 0 7 0 7 +2562 33 76 140.7 1099.75 125 9 1 2 31 0 8 0 8 +2563 33 77 144.9 1099.75 125 7 1 2 31 0 6 0 6 +2564 33 78 149.1 1099.75 125 5 1 2 31 0 4 0 4 +2565 33 79 153.3 1099.75 125 8 1 2 31 0 7 0 7 +2566 33 80 157.5 1099.75 125 10 1 2 31 0 9 0 9 +2567 33 81 161.7 1099.75 129 9 1 2 32 0 8 0 8 +2568 33 82 165.9 1099.75 129 7 1 2 32 0 6 0 6 +2569 33 83 170.1 1099.75 129 5 1 2 32 0 4 0 4 +2570 33 84 174.3 1099.75 129 8 1 2 32 0 7 0 7 +2571 33 85 178.5 1099.75 129 10 1 2 32 0 9 0 9 +2572 34 0 -178.5 1107.25 61 15 1 2 15 0 14 0 14 +2573 34 1 -174.3 1107.25 61 13 1 2 15 0 12 0 12 +2574 34 2 -170.1 1107.25 61 11 1 2 15 0 10 0 10 +2575 34 3 -165.9 1107.25 61 12 1 2 15 0 11 0 11 +2576 34 4 -161.7 1107.25 61 14 1 2 15 0 13 0 13 +2577 34 5 -157.5 1107.25 65 13 1 2 16 0 12 0 12 +2578 34 6 -153.3 1107.25 65 11 1 2 16 0 10 0 10 +2579 34 7 -149.1 1107.25 65 12 1 2 16 0 11 0 11 +2580 34 8 -144.9 1107.25 65 14 1 2 16 0 13 0 13 +2581 34 9 -140.7 1107.25 69 13 1 2 17 0 12 0 12 +2582 34 10 -136.5 1107.25 69 11 1 2 17 0 10 0 10 +2583 34 11 -132.3 1107.25 69 9 1 2 17 0 8 0 8 +2584 34 12 -128.1 1107.25 69 12 1 2 17 0 11 0 11 +2585 34 13 -123.9 1107.25 69 14 1 2 17 0 13 0 13 +2586 34 14 -119.7 1107.25 73 13 1 2 18 0 12 0 12 +2587 34 15 -115.5 1107.25 73 11 1 2 18 0 10 0 10 +2588 34 16 -111.3 1107.25 73 10 1 2 18 0 9 0 9 +2589 34 17 -107.1 1107.25 73 12 1 2 18 0 11 0 11 +2590 34 18 -102.9 1107.25 73 14 1 2 18 0 13 0 13 +2591 34 19 -98.7 1107.25 77 15 1 2 19 0 14 0 14 +2592 34 20 -94.5 1107.25 77 13 1 2 19 0 12 0 12 +2593 34 21 -90.3 1107.25 77 11 1 2 19 0 10 0 10 +2594 34 22 -86.1 1107.25 77 12 1 2 19 0 11 0 11 +2595 34 23 -81.9 1107.25 77 14 1 2 19 0 13 0 13 +2596 34 24 -77.7 1107.25 81 13 1 2 20 0 12 0 12 +2597 34 25 -73.5 1107.25 81 11 1 2 20 0 10 0 10 +2598 34 26 -69.3 1107.25 81 12 1 2 20 0 11 0 11 +2599 34 27 -65.1 1107.25 81 14 1 2 20 0 13 0 13 +2600 34 28 -60.9 1107.25 81 16 1 2 20 0 15 0 15 +2601 34 29 -56.7 1107.25 85 11 1 2 21 0 10 0 10 +2602 34 30 -52.5 1107.25 85 9 1 2 21 0 8 0 8 +2603 34 31 -48.3 1107.25 85 12 1 2 21 0 11 0 11 +2604 34 32 -44.1 1107.25 85 14 1 2 21 0 13 0 13 +2605 34 33 -39.9 1107.25 89 13 1 2 22 0 12 0 12 +2606 34 34 -35.7 1107.25 89 11 1 2 22 0 10 0 10 +2607 34 35 -31.5 1107.25 89 10 1 2 22 0 9 0 9 +2608 34 36 -27.3 1107.25 89 12 1 2 22 0 11 0 11 +2609 34 37 -23.1 1107.25 89 14 1 2 22 0 13 0 13 +2610 34 38 -18.9 1107.25 93 13 1 2 23 0 12 0 12 +2611 34 39 -14.7 1107.25 93 11 1 2 23 0 10 0 10 +2612 34 40 -10.5 1107.25 93 12 1 2 23 0 11 0 11 +2613 34 41 -6.3 1107.25 93 14 1 2 23 0 13 0 13 +2614 34 42 -2.1 1107.25 93 16 1 2 23 0 15 0 15 +2615 34 43 2.1 1107.25 97 15 1 2 24 0 14 0 14 +2616 34 44 6.3 1107.25 97 13 1 2 24 0 12 0 12 +2617 34 45 10.5 1107.25 97 11 1 2 24 0 10 0 10 +2618 34 46 14.7 1107.25 97 12 1 2 24 0 11 0 11 +2619 34 47 18.9 1107.25 97 14 1 2 24 0 13 0 13 +2620 34 48 23.1 1107.25 101 13 1 2 25 0 12 0 12 +2621 34 49 27.3 1107.25 101 11 1 2 25 0 10 0 10 +2622 34 50 31.5 1107.25 101 9 1 2 25 0 8 0 8 +2623 34 51 35.7 1107.25 101 12 1 2 25 0 11 0 11 +2624 34 52 39.9 1107.25 101 14 1 2 25 0 13 0 13 +2625 34 53 44.1 1107.25 105 13 1 2 26 0 12 0 12 +2626 34 54 48.3 1107.25 105 11 1 2 26 0 10 0 10 +2627 34 55 52.5 1107.25 105 10 1 2 26 0 9 0 9 +2628 34 56 56.7 1107.25 105 12 1 2 26 0 11 0 11 +2629 34 57 60.9 1107.25 109 15 1 2 27 0 14 0 14 +2630 34 58 65.1 1107.25 109 13 1 2 27 0 12 0 12 +2631 34 59 69.3 1107.25 109 11 1 2 27 0 10 0 10 +2632 34 60 73.5 1107.25 109 12 1 2 27 0 11 0 11 +2633 34 61 77.7 1107.25 109 14 1 2 27 0 13 0 13 +2634 34 62 81.9 1107.25 113 13 1 2 28 0 12 0 12 +2635 34 63 86.1 1107.25 113 11 1 2 28 0 10 0 10 +2636 34 64 90.3 1107.25 113 12 1 2 28 0 11 0 11 +2637 34 65 94.5 1107.25 113 14 1 2 28 0 13 0 13 +2638 34 66 98.7 1107.25 113 16 1 2 28 0 15 0 15 +2639 34 67 102.9 1107.25 117 13 1 2 29 0 12 0 12 +2640 34 68 107.1 1107.25 117 11 1 2 29 0 10 0 10 +2641 34 69 111.3 1107.25 117 9 1 2 29 0 8 0 8 +2642 34 70 115.5 1107.25 117 12 1 2 29 0 11 0 11 +2643 34 71 119.7 1107.25 117 14 1 2 29 0 13 0 13 +2644 34 72 123.9 1107.25 121 13 1 2 30 0 12 0 12 +2645 34 73 128.1 1107.25 121 11 1 2 30 0 10 0 10 +2646 34 74 132.3 1107.25 121 10 1 2 30 0 9 0 9 +2647 34 75 136.5 1107.25 121 12 1 2 30 0 11 0 11 +2648 34 76 140.7 1107.25 121 14 1 2 30 0 13 0 13 +2649 34 77 144.9 1107.25 125 13 1 2 31 0 12 0 12 +2650 34 78 149.1 1107.25 125 11 1 2 31 0 10 0 10 +2651 34 79 153.3 1107.25 125 12 1 2 31 0 11 0 11 +2652 34 80 157.5 1107.25 125 14 1 2 31 0 13 0 13 +2653 34 81 161.7 1107.25 129 13 1 2 32 0 12 0 12 +2654 34 82 165.9 1107.25 129 11 1 2 32 0 10 0 10 +2655 34 83 170.1 1107.25 129 12 1 2 32 0 11 0 11 +2656 34 84 174.3 1107.25 129 14 1 2 32 0 13 0 13 +2657 34 85 178.5 1107.25 129 16 1 2 32 0 15 0 15 +2658 35 0 -182.7 1114.75 61 19 1 2 15 0 18 0 18 +2659 35 1 -178.5 1114.75 61 17 1 2 15 0 16 0 16 +2660 35 2 -174.3 1114.75 61 16 1 2 15 0 15 0 15 +2661 35 3 -170.1 1114.75 61 18 1 2 15 0 17 0 17 +2662 35 4 -165.9 1114.75 61 20 1 2 15 0 19 0 19 +2663 35 5 -161.7 1114.75 65 17 1 2 16 0 16 0 16 +2664 35 6 -157.5 1114.75 65 15 1 2 16 0 14 0 14 +2665 35 7 -153.3 1114.75 65 16 1 2 16 0 15 0 15 +2666 35 8 -149.1 1114.75 65 18 1 2 16 0 17 0 17 +2667 35 9 -144.9 1114.75 65 20 1 2 16 0 19 0 19 +2668 35 10 -140.7 1114.75 69 17 1 2 17 0 16 0 16 +2669 35 11 -136.5 1114.75 69 15 1 2 17 0 14 0 14 +2670 35 12 -132.3 1114.75 69 16 1 2 17 0 15 0 15 +2671 35 13 -128.1 1114.75 69 18 1 2 17 0 17 0 17 +2672 35 14 -123.9 1114.75 69 20 1 2 17 0 19 0 19 +2673 35 15 -119.7 1114.75 73 19 1 2 18 0 18 0 18 +2674 35 16 -115.5 1114.75 73 17 1 2 18 0 16 0 16 +2675 35 17 -111.3 1114.75 73 15 1 2 18 0 14 0 14 +2676 35 18 -107.1 1114.75 73 16 1 2 18 0 15 0 15 +2677 35 19 -102.9 1114.75 73 18 1 2 18 0 17 0 17 +2678 35 20 -98.7 1114.75 77 19 1 2 19 0 18 0 18 +2679 35 21 -94.5 1114.75 77 17 1 2 19 0 16 0 16 +2680 35 22 -90.3 1114.75 77 16 1 2 19 0 15 0 15 +2681 35 23 -86.1 1114.75 77 18 1 2 19 0 17 0 17 +2682 35 24 -81.9 1114.75 77 20 1 2 19 0 19 0 19 +2683 35 25 -77.7 1114.75 81 17 1 2 20 0 16 0 16 +2684 35 26 -73.5 1114.75 81 15 1 2 20 0 14 0 14 +2685 35 27 -69.3 1114.75 81 18 1 2 20 0 17 0 17 +2686 35 28 -65.1 1114.75 81 20 1 2 20 0 19 0 19 +2687 35 29 -60.9 1114.75 85 17 1 2 21 0 16 0 16 +2688 35 30 -56.7 1114.75 85 15 1 2 21 0 14 0 14 +2689 35 31 -52.5 1114.75 85 13 1 2 21 0 12 0 12 +2690 35 32 -48.3 1114.75 85 16 1 2 21 0 15 0 15 +2691 35 33 -44.1 1114.75 85 18 1 2 21 0 17 0 17 +2692 35 34 -39.9 1114.75 89 19 1 2 22 0 18 0 18 +2693 35 35 -35.7 1114.75 89 17 1 2 22 0 16 0 16 +2694 35 36 -31.5 1114.75 89 15 1 2 22 0 14 0 14 +2695 35 37 -27.3 1114.75 89 16 1 2 22 0 15 0 15 +2696 35 38 -23.1 1114.75 89 18 1 2 22 0 17 0 17 +2697 35 39 -18.9 1114.75 93 19 1 2 23 0 18 0 18 +2698 35 40 -14.7 1114.75 93 17 1 2 23 0 16 0 16 +2699 35 41 -10.5 1114.75 93 15 1 2 23 0 14 0 14 +2700 35 42 -6.3 1114.75 93 18 1 2 23 0 17 0 17 +2701 35 43 -2.1 1114.75 93 20 1 2 23 0 19 0 19 +2702 35 44 2.1 1114.75 97 19 1 2 24 0 18 0 18 +2703 35 45 6.3 1114.75 97 17 1 2 24 0 16 0 16 +2704 35 46 10.5 1114.75 97 16 1 2 24 0 15 0 15 +2705 35 47 14.7 1114.75 97 18 1 2 24 0 17 0 17 +2706 35 48 18.9 1114.75 97 20 1 2 24 0 19 0 19 +2707 35 49 23.1 1114.75 101 17 1 2 25 0 16 0 16 +2708 35 50 27.3 1114.75 101 15 1 2 25 0 14 0 14 +2709 35 51 31.5 1114.75 101 16 1 2 25 0 15 0 15 +2710 35 52 35.7 1114.75 101 18 1 2 25 0 17 0 17 +2711 35 53 39.9 1114.75 101 20 1 2 25 0 19 0 19 +2712 35 54 44.1 1114.75 105 17 1 2 26 0 16 0 16 +2713 35 55 48.3 1114.75 105 15 1 2 26 0 14 0 14 +2714 35 56 52.5 1114.75 105 14 1 2 26 0 13 0 13 +2715 35 57 56.7 1114.75 105 16 1 2 26 0 15 0 15 +2716 35 58 60.9 1114.75 105 18 1 2 26 0 17 0 17 +2717 35 59 65.1 1114.75 109 19 1 2 27 0 18 0 18 +2718 35 60 69.3 1114.75 109 17 1 2 27 0 16 0 16 +2719 35 61 73.5 1114.75 109 16 1 2 27 0 15 0 15 +2720 35 62 77.7 1114.75 109 18 1 2 27 0 17 0 17 +2721 35 63 81.9 1114.75 113 19 1 2 28 0 18 0 18 +2722 35 64 86.1 1114.75 113 17 1 2 28 0 16 0 16 +2723 35 65 90.3 1114.75 113 15 1 2 28 0 14 0 14 +2724 35 66 94.5 1114.75 113 18 1 2 28 0 17 0 17 +2725 35 67 98.7 1114.75 113 20 1 2 28 0 19 0 19 +2726 35 68 102.9 1114.75 117 17 1 2 29 0 16 0 16 +2727 35 69 107.1 1114.75 117 15 1 2 29 0 14 0 14 +2728 35 70 111.3 1114.75 117 16 1 2 29 0 15 0 15 +2729 35 71 115.5 1114.75 117 18 1 2 29 0 17 0 17 +2730 35 72 119.7 1114.75 117 20 1 2 29 0 19 0 19 +2731 35 73 123.9 1114.75 121 19 1 2 30 0 18 0 18 +2732 35 74 128.1 1114.75 121 17 1 2 30 0 16 0 16 +2733 35 75 132.3 1114.75 121 15 1 2 30 0 14 0 14 +2734 35 76 136.5 1114.75 121 16 1 2 30 0 15 0 15 +2735 35 77 140.7 1114.75 121 18 1 2 30 0 17 0 17 +2736 35 78 144.9 1114.75 125 19 1 2 31 0 18 0 18 +2737 35 79 149.1 1114.75 125 17 1 2 31 0 16 0 16 +2738 35 80 153.3 1114.75 125 15 1 2 31 0 14 0 14 +2739 35 81 157.5 1114.75 125 16 1 2 31 0 15 0 15 +2740 35 82 161.7 1114.75 125 18 1 2 31 0 17 0 17 +2741 35 83 165.9 1114.75 129 19 1 2 32 0 18 0 18 +2742 35 84 170.1 1114.75 129 17 1 2 32 0 16 0 16 +2743 35 85 174.3 1114.75 129 15 1 2 32 0 14 0 14 +2744 35 86 178.5 1114.75 129 18 1 2 32 0 17 0 17 +2745 35 87 182.7 1114.75 129 20 1 2 32 0 19 0 19 +2746 36 0 -182.7 1122.25 61 25 1 2 15 0 24 0 24 +2747 36 1 -178.5 1122.25 61 23 1 2 15 0 22 0 22 +2748 36 2 -174.3 1122.25 61 21 1 2 15 0 20 0 20 +2749 36 3 -170.1 1122.25 61 22 1 2 15 0 21 0 21 +2750 36 4 -165.9 1122.25 61 24 1 2 15 0 23 0 23 +2751 36 5 -161.7 1122.25 65 23 1 2 16 0 22 0 22 +2752 36 6 -157.5 1122.25 65 21 1 2 16 0 20 0 20 +2753 36 7 -153.3 1122.25 65 19 1 2 16 0 18 0 18 +2754 36 8 -149.1 1122.25 65 22 1 2 16 0 21 0 21 +2755 36 9 -144.9 1122.25 65 24 1 2 16 0 23 0 23 +2756 36 10 -140.7 1122.25 69 23 1 2 17 0 22 0 22 +2757 36 11 -136.5 1122.25 69 21 1 2 17 0 20 0 20 +2758 36 12 -132.3 1122.25 69 19 1 2 17 0 18 0 18 +2759 36 13 -128.1 1122.25 69 22 1 2 17 0 21 0 21 +2760 36 14 -123.9 1122.25 69 24 1 2 17 0 23 0 23 +2761 36 15 -119.7 1122.25 73 23 1 2 18 0 22 0 22 +2762 36 16 -115.5 1122.25 73 21 1 2 18 0 20 0 20 +2763 36 17 -111.3 1122.25 73 20 1 2 18 0 19 0 19 +2764 36 18 -107.1 1122.25 73 22 1 2 18 0 21 0 21 +2765 36 19 -102.9 1122.25 73 24 1 2 18 0 23 0 23 +2766 36 20 -98.7 1122.25 77 23 1 2 19 0 22 0 22 +2767 36 21 -94.5 1122.25 77 21 1 2 19 0 20 0 20 +2768 36 22 -90.3 1122.25 77 22 1 2 19 0 21 0 21 +2769 36 23 -86.1 1122.25 77 24 1 2 19 0 23 0 23 +2770 36 24 -81.9 1122.25 81 23 1 2 20 0 22 0 22 +2771 36 25 -77.7 1122.25 81 21 1 2 20 0 20 0 20 +2772 36 26 -73.5 1122.25 81 19 1 2 20 0 18 0 18 +2773 36 27 -69.3 1122.25 81 22 1 2 20 0 21 0 21 +2774 36 28 -65.1 1122.25 81 24 1 2 20 0 23 0 23 +2775 36 29 -60.9 1122.25 85 23 1 2 21 0 22 0 22 +2776 36 30 -56.7 1122.25 85 21 1 2 21 0 20 0 20 +2777 36 31 -52.5 1122.25 85 19 1 2 21 0 18 0 18 +2778 36 32 -48.3 1122.25 85 20 1 2 21 0 19 0 19 +2779 36 33 -44.1 1122.25 85 22 1 2 21 0 21 0 21 +2780 36 34 -39.9 1122.25 89 23 1 2 22 0 22 0 22 +2781 36 35 -35.7 1122.25 89 21 1 2 22 0 20 0 20 +2782 36 36 -31.5 1122.25 89 20 1 2 22 0 19 0 19 +2783 36 37 -27.3 1122.25 89 22 1 2 22 0 21 0 21 +2784 36 38 -23.1 1122.25 89 24 1 2 22 0 23 0 23 +2785 36 39 -18.9 1122.25 93 23 1 2 23 0 22 0 22 +2786 36 40 -14.7 1122.25 93 21 1 2 23 0 20 0 20 +2787 36 41 -10.5 1122.25 93 22 1 2 23 0 21 0 21 +2788 36 42 -6.3 1122.25 93 24 1 2 23 0 23 0 23 +2789 36 43 -2.1 1122.25 93 26 1 2 23 0 25 0 25 +2790 36 44 2.1 1122.25 97 25 1 2 24 0 24 0 24 +2791 36 45 6.3 1122.25 97 23 1 2 24 0 22 0 22 +2792 36 46 10.5 1122.25 97 21 1 2 24 0 20 0 20 +2793 36 47 14.7 1122.25 97 22 1 2 24 0 21 0 21 +2794 36 48 18.9 1122.25 97 24 1 2 24 0 23 0 23 +2795 36 49 23.1 1122.25 101 23 1 2 25 0 22 0 22 +2796 36 50 27.3 1122.25 101 21 1 2 25 0 20 0 20 +2797 36 51 31.5 1122.25 101 19 1 2 25 0 18 0 18 +2798 36 52 35.7 1122.25 101 22 1 2 25 0 21 0 21 +2799 36 53 39.9 1122.25 101 24 1 2 25 0 23 0 23 +2800 36 54 44.1 1122.25 105 21 1 2 26 0 20 0 20 +2801 36 55 48.3 1122.25 105 19 1 2 26 0 18 0 18 +2802 36 56 52.5 1122.25 105 20 1 2 26 0 19 0 19 +2803 36 57 56.7 1122.25 105 22 1 2 26 0 21 0 21 +2804 36 58 60.9 1122.25 105 24 1 2 26 0 23 0 23 +2805 36 59 65.1 1122.25 109 23 1 2 27 0 22 0 22 +2806 36 60 69.3 1122.25 109 21 1 2 27 0 20 0 20 +2807 36 61 73.5 1122.25 109 20 1 2 27 0 19 0 19 +2808 36 62 77.7 1122.25 109 22 1 2 27 0 21 0 21 +2809 36 63 81.9 1122.25 109 24 1 2 27 0 23 0 23 +2810 36 64 86.1 1122.25 113 23 1 2 28 0 22 0 22 +2811 36 65 90.3 1122.25 113 21 1 2 28 0 20 0 20 +2812 36 66 94.5 1122.25 113 22 1 2 28 0 21 0 21 +2813 36 67 98.7 1122.25 113 24 1 2 28 0 23 0 23 +2814 36 68 102.9 1122.25 117 23 1 2 29 0 22 0 22 +2815 36 69 107.1 1122.25 117 21 1 2 29 0 20 0 20 +2816 36 70 111.3 1122.25 117 19 1 2 29 0 18 0 18 +2817 36 71 115.5 1122.25 117 22 1 2 29 0 21 0 21 +2818 36 72 119.7 1122.25 117 24 1 2 29 0 23 0 23 +2819 36 73 123.9 1122.25 121 23 1 2 30 0 22 0 22 +2820 36 74 128.1 1122.25 121 21 1 2 30 0 20 0 20 +2821 36 75 132.3 1122.25 121 20 1 2 30 0 19 0 19 +2822 36 76 136.5 1122.25 121 22 1 2 30 0 21 0 21 +2823 36 77 140.7 1122.25 121 24 1 2 30 0 23 0 23 +2824 36 78 144.9 1122.25 125 23 1 2 31 0 22 0 22 +2825 36 79 149.1 1122.25 125 21 1 2 31 0 20 0 20 +2826 36 80 153.3 1122.25 125 20 1 2 31 0 19 0 19 +2827 36 81 157.5 1122.25 125 22 1 2 31 0 21 0 21 +2828 36 82 161.7 1122.25 125 24 1 2 31 0 23 0 23 +2829 36 83 165.9 1122.25 129 23 1 2 32 0 22 0 22 +2830 36 84 170.1 1122.25 129 21 1 2 32 0 20 0 20 +2831 36 85 174.3 1122.25 129 22 1 2 32 0 21 0 21 +2832 36 86 178.5 1122.25 129 24 1 2 32 0 23 0 23 +2833 36 87 182.7 1122.25 129 26 1 2 32 0 25 0 25 +2834 37 0 -182.7 1129.75 61 29 1 2 15 0 28 0 28 +2835 37 1 -178.5 1129.75 61 27 1 2 15 0 26 0 26 +2836 37 2 -174.3 1129.75 61 26 1 2 15 0 25 0 25 +2837 37 3 -170.1 1129.75 61 28 1 2 15 0 27 0 27 +2838 37 4 -165.9 1129.75 61 30 1 2 15 0 29 0 29 +2839 37 5 -161.7 1129.75 65 27 1 2 16 0 26 0 26 +2840 37 6 -157.5 1129.75 65 25 1 2 16 0 24 0 24 +2841 37 7 -153.3 1129.75 65 26 1 2 16 0 25 0 25 +2842 37 8 -149.1 1129.75 65 28 1 2 16 0 27 0 27 +2843 37 9 -144.9 1129.75 65 30 1 2 16 0 29 0 29 +2844 37 10 -140.7 1129.75 69 27 1 2 17 0 26 0 26 +2845 37 11 -136.5 1129.75 69 25 1 2 17 0 24 0 24 +2846 37 12 -132.3 1129.75 69 26 1 2 17 0 25 0 25 +2847 37 13 -128.1 1129.75 69 28 1 2 17 0 27 0 27 +2848 37 14 -123.9 1129.75 69 30 1 2 17 0 29 0 29 +2849 37 15 -119.7 1129.75 73 27 1 2 18 0 26 0 26 +2850 37 16 -115.5 1129.75 73 25 1 2 18 0 24 0 24 +2851 37 17 -111.3 1129.75 73 26 1 2 18 0 25 0 25 +2852 37 18 -107.1 1129.75 73 28 1 2 18 0 27 0 27 +2853 37 19 -102.9 1129.75 77 29 1 2 19 0 28 0 28 +2854 37 20 -98.7 1129.75 77 27 1 2 19 0 26 0 26 +2855 37 21 -94.5 1129.75 77 25 1 2 19 0 24 0 24 +2856 37 22 -90.3 1129.75 77 26 1 2 19 0 25 0 25 +2857 37 23 -86.1 1129.75 77 28 1 2 19 0 27 0 27 +2858 37 24 -81.9 1129.75 81 29 1 2 20 0 28 0 28 +2859 37 25 -77.7 1129.75 81 27 1 2 20 0 26 0 26 +2860 37 26 -73.5 1129.75 81 25 1 2 20 0 24 0 24 +2861 37 27 -69.3 1129.75 81 26 1 2 20 0 25 0 25 +2862 37 28 -65.1 1129.75 81 28 1 2 20 0 27 0 27 +2863 37 29 -60.9 1129.75 85 27 1 2 21 0 26 0 26 +2864 37 30 -56.7 1129.75 85 25 1 2 21 0 24 0 24 +2865 37 31 -52.5 1129.75 85 24 1 2 21 0 23 0 23 +2866 37 32 -48.3 1129.75 85 26 1 2 21 0 25 0 25 +2867 37 33 -44.1 1129.75 85 28 1 2 21 0 27 0 27 +2868 37 34 -39.9 1129.75 89 29 1 2 22 0 28 0 28 +2869 37 35 -35.7 1129.75 89 27 1 2 22 0 26 0 26 +2870 37 36 -31.5 1129.75 89 25 1 2 22 0 24 0 24 +2871 37 37 -27.3 1129.75 89 26 1 2 22 0 25 0 25 +2872 37 38 -23.1 1129.75 89 28 1 2 22 0 27 0 27 +2873 37 39 -18.9 1129.75 93 29 1 2 23 0 28 0 28 +2874 37 40 -14.7 1129.75 93 27 1 2 23 0 26 0 26 +2875 37 41 -10.5 1129.75 93 25 1 2 23 0 24 0 24 +2876 37 42 -6.3 1129.75 93 28 1 2 23 0 27 0 27 +2877 37 43 -2.1 1129.75 93 30 1 2 23 0 29 0 29 +2878 37 44 2.1 1129.75 97 29 1 2 24 0 28 0 28 +2879 37 45 6.3 1129.75 97 27 1 2 24 0 26 0 26 +2880 37 46 10.5 1129.75 97 26 1 2 24 0 25 0 25 +2881 37 47 14.7 1129.75 97 28 1 2 24 0 27 0 27 +2882 37 48 18.9 1129.75 97 30 1 2 24 0 29 0 29 +2883 37 49 23.1 1129.75 101 27 1 2 25 0 26 0 26 +2884 37 50 27.3 1129.75 101 25 1 2 25 0 24 0 24 +2885 37 51 31.5 1129.75 101 26 1 2 25 0 25 0 25 +2886 37 52 35.7 1129.75 101 28 1 2 25 0 27 0 27 +2887 37 53 39.9 1129.75 101 30 1 2 25 0 29 0 29 +2888 37 54 44.1 1129.75 105 27 1 2 26 0 26 0 26 +2889 37 55 48.3 1129.75 105 25 1 2 26 0 24 0 24 +2890 37 56 52.5 1129.75 105 23 1 2 26 0 22 0 22 +2891 37 57 56.7 1129.75 105 26 1 2 26 0 25 0 25 +2892 37 58 60.9 1129.75 105 28 1 2 26 0 27 0 27 +2893 37 59 65.1 1129.75 109 27 1 2 27 0 26 0 26 +2894 37 60 69.3 1129.75 109 25 1 2 27 0 24 0 24 +2895 37 61 73.5 1129.75 109 26 1 2 27 0 25 0 25 +2896 37 62 77.7 1129.75 109 28 1 2 27 0 27 0 27 +2897 37 63 81.9 1129.75 109 30 1 2 27 0 29 0 29 +2898 37 64 86.1 1129.75 113 27 1 2 28 0 26 0 26 +2899 37 65 90.3 1129.75 113 25 1 2 28 0 24 0 24 +2900 37 66 94.5 1129.75 113 26 1 2 28 0 25 0 25 +2901 37 67 98.7 1129.75 113 28 1 2 28 0 27 0 27 +2902 37 68 102.9 1129.75 113 30 1 2 28 0 29 0 29 +2903 37 69 107.1 1129.75 117 27 1 2 29 0 26 0 26 +2904 37 70 111.3 1129.75 117 25 1 2 29 0 24 0 24 +2905 37 71 115.5 1129.75 117 26 1 2 29 0 25 0 25 +2906 37 72 119.7 1129.75 117 28 1 2 29 0 27 0 27 +2907 37 73 123.9 1129.75 121 29 1 2 30 0 28 0 28 +2908 37 74 128.1 1129.75 121 27 1 2 30 0 26 0 26 +2909 37 75 132.3 1129.75 121 25 1 2 30 0 24 0 24 +2910 37 76 136.5 1129.75 121 26 1 2 30 0 25 0 25 +2911 37 77 140.7 1129.75 121 28 1 2 30 0 27 0 27 +2912 37 78 144.9 1129.75 125 29 1 2 31 0 28 0 28 +2913 37 79 149.1 1129.75 125 27 1 2 31 0 26 0 26 +2914 37 80 153.3 1129.75 125 25 1 2 31 0 24 0 24 +2915 37 81 157.5 1129.75 125 26 1 2 31 0 25 0 25 +2916 37 82 161.7 1129.75 125 28 1 2 31 0 27 0 27 +2917 37 83 165.9 1129.75 129 29 1 2 32 0 28 0 28 +2918 37 84 170.1 1129.75 129 27 1 2 32 0 26 0 26 +2919 37 85 174.3 1129.75 129 25 1 2 32 0 24 0 24 +2920 37 86 178.5 1129.75 129 28 1 2 32 0 27 0 27 +2921 37 87 182.7 1129.75 129 30 1 2 32 0 29 0 29 +2922 38 0 -186.9 1137.25 61 35 1 2 15 0 34 1 2 +2923 38 1 -182.7 1137.25 61 33 1 2 15 0 32 1 0 +2924 38 2 -178.5 1137.25 61 31 1 2 15 0 30 0 30 +2925 38 3 -174.3 1137.25 61 32 1 2 15 0 31 0 31 +2926 38 4 -170.1 1137.25 61 34 1 2 15 0 33 1 1 +2927 38 5 -165.9 1137.25 65 33 1 2 16 0 32 1 0 +2928 38 6 -161.7 1137.25 65 31 1 2 16 0 30 0 30 +2929 38 7 -157.5 1137.25 65 29 1 2 16 0 28 0 28 +2930 38 8 -153.3 1137.25 65 32 1 2 16 0 31 0 31 +2931 38 9 -149.1 1137.25 65 34 1 2 16 0 33 1 1 +2932 38 10 -144.9 1137.25 69 33 1 2 17 0 32 1 0 +2933 38 11 -140.7 1137.25 69 31 1 2 17 0 30 0 30 +2934 38 12 -136.5 1137.25 69 29 1 2 17 0 28 0 28 +2935 38 13 -132.3 1137.25 69 32 1 2 17 0 31 0 31 +2936 38 14 -128.1 1137.25 69 34 1 2 17 0 33 1 1 +2937 38 15 -123.9 1137.25 73 31 1 2 18 0 30 0 30 +2938 38 16 -119.7 1137.25 73 29 1 2 18 0 28 0 28 +2939 38 17 -115.5 1137.25 73 30 1 2 18 0 29 0 29 +2940 38 18 -111.3 1137.25 73 32 1 2 18 0 31 0 31 +2941 38 19 -107.1 1137.25 73 34 1 2 18 0 33 1 1 +2942 38 20 -102.9 1137.25 77 33 1 2 19 0 32 1 0 +2943 38 21 -98.7 1137.25 77 31 1 2 19 0 30 0 30 +2944 38 22 -94.5 1137.25 77 30 1 2 19 0 29 0 29 +2945 38 23 -90.3 1137.25 77 32 1 2 19 0 31 0 31 +2946 38 24 -86.1 1137.25 77 34 1 2 19 0 33 1 1 +2947 38 25 -81.9 1137.25 81 33 1 2 20 0 32 1 0 +2948 38 26 -77.7 1137.25 81 31 1 2 20 0 30 0 30 +2949 38 27 -73.5 1137.25 81 30 1 2 20 0 29 0 29 +2950 38 28 -69.3 1137.25 81 32 1 2 20 0 31 0 31 +2951 38 29 -65.1 1137.25 81 34 1 2 20 0 33 1 1 +2952 38 30 -60.9 1137.25 85 33 1 2 21 0 32 1 0 +2953 38 31 -56.7 1137.25 85 31 1 2 21 0 30 0 30 +2954 38 32 -52.5 1137.25 85 29 1 2 21 0 28 0 28 +2955 38 33 -48.3 1137.25 85 30 1 2 21 0 29 0 29 +2956 38 34 -44.1 1137.25 85 32 1 2 21 0 31 0 31 +2957 38 35 -39.9 1137.25 89 33 1 2 22 0 32 1 0 +2958 38 36 -35.7 1137.25 89 31 1 2 22 0 30 0 30 +2959 38 37 -31.5 1137.25 89 30 1 2 22 0 29 0 29 +2960 38 38 -27.3 1137.25 89 32 1 2 22 0 31 0 31 +2961 38 39 -23.1 1137.25 89 34 1 2 22 0 33 1 1 +2962 38 40 -18.9 1137.25 93 33 1 2 23 0 32 1 0 +2963 38 41 -14.7 1137.25 93 31 1 2 23 0 30 0 30 +2964 38 42 -10.5 1137.25 93 32 1 2 23 0 31 0 31 +2965 38 43 -6.3 1137.25 93 34 1 2 23 0 33 1 1 +2966 38 44 -2.1 1137.25 93 36 1 2 23 0 35 1 3 +2967 38 45 2.1 1137.25 97 35 1 2 24 0 34 1 2 +2968 38 46 6.3 1137.25 97 33 1 2 24 0 32 1 0 +2969 38 47 10.5 1137.25 97 31 1 2 24 0 30 0 30 +2970 38 48 14.7 1137.25 97 32 1 2 24 0 31 0 31 +2971 38 49 18.9 1137.25 97 34 1 2 24 0 33 1 1 +2972 38 50 23.1 1137.25 101 33 1 2 25 0 32 1 0 +2973 38 51 27.3 1137.25 101 31 1 2 25 0 30 0 30 +2974 38 52 31.5 1137.25 101 29 1 2 25 0 28 0 28 +2975 38 53 35.7 1137.25 101 32 1 2 25 0 31 0 31 +2976 38 54 39.9 1137.25 101 34 1 2 25 0 33 1 1 +2977 38 55 44.1 1137.25 105 31 1 2 26 0 30 0 30 +2978 38 56 48.3 1137.25 105 29 1 2 26 0 28 0 28 +2979 38 57 52.5 1137.25 105 30 1 2 26 0 29 0 29 +2980 38 58 56.7 1137.25 105 32 1 2 26 0 31 0 31 +2981 38 59 60.9 1137.25 105 34 1 2 26 0 33 1 1 +2982 38 60 65.1 1137.25 109 33 1 2 27 0 32 1 0 +2983 38 61 69.3 1137.25 109 31 1 2 27 0 30 0 30 +2984 38 62 73.5 1137.25 109 29 1 2 27 0 28 0 28 +2985 38 63 77.7 1137.25 109 32 1 2 27 0 31 0 31 +2986 38 64 81.9 1137.25 109 34 1 2 27 0 33 1 1 +2987 38 65 86.1 1137.25 113 33 1 2 28 0 32 1 0 +2988 38 66 90.3 1137.25 113 31 1 2 28 0 30 0 30 +2989 38 67 94.5 1137.25 113 29 1 2 28 0 28 0 28 +2990 38 68 98.7 1137.25 113 32 1 2 28 0 31 0 31 +2991 38 69 102.9 1137.25 113 34 1 2 28 0 33 1 1 +2992 38 70 107.1 1137.25 117 33 1 2 29 0 32 1 0 +2993 38 71 111.3 1137.25 117 31 1 2 29 0 30 0 30 +2994 38 72 115.5 1137.25 117 29 1 2 29 0 28 0 28 +2995 38 73 119.7 1137.25 117 30 1 2 29 0 29 0 29 +2996 38 74 123.9 1137.25 117 32 1 2 29 0 31 0 31 +2997 38 75 128.1 1137.25 121 33 1 2 30 0 32 1 0 +2998 38 76 132.3 1137.25 121 31 1 2 30 0 30 0 30 +2999 38 77 136.5 1137.25 121 30 1 2 30 0 29 0 29 +3000 38 78 140.7 1137.25 121 32 1 2 30 0 31 0 31 +3001 38 79 144.9 1137.25 121 34 1 2 30 0 33 1 1 +3002 38 80 149.1 1137.25 125 33 1 2 31 0 32 1 0 +3003 38 81 153.3 1137.25 125 31 1 2 31 0 30 0 30 +3004 38 82 157.5 1137.25 125 30 1 2 31 0 29 0 29 +3005 38 83 161.7 1137.25 125 32 1 2 31 0 31 0 31 +3006 38 84 165.9 1137.25 125 34 1 2 31 0 33 1 1 +3007 38 85 170.1 1137.25 129 33 1 2 32 0 32 1 0 +3008 38 86 174.3 1137.25 129 31 1 2 32 0 30 0 30 +3009 38 87 178.5 1137.25 129 32 1 2 32 0 31 0 31 +3010 38 88 182.7 1137.25 129 34 1 2 32 0 33 1 1 +3011 38 89 186.9 1137.25 129 36 1 2 32 0 35 1 3 +3012 39 0 -186.9 1144.75 61 39 1 2 15 0 38 1 6 +3013 39 1 -182.7 1144.75 61 37 1 2 15 0 36 1 4 +3014 39 2 -178.5 1144.75 61 36 1 2 15 0 35 1 3 +3015 39 3 -174.3 1144.75 61 38 1 2 15 0 37 1 5 +3016 39 4 -170.1 1144.75 61 40 1 2 15 0 39 1 7 +3017 39 5 -165.9 1144.75 65 37 1 2 16 0 36 1 4 +3018 39 6 -161.7 1144.75 65 35 1 2 16 0 34 1 2 +3019 39 7 -157.5 1144.75 65 36 1 2 16 0 35 1 3 +3020 39 8 -153.3 1144.75 65 38 1 2 16 0 37 1 5 +3021 39 9 -149.1 1144.75 65 40 1 2 16 0 39 1 7 +3022 39 10 -144.9 1144.75 69 39 1 2 17 0 38 1 6 +3023 39 11 -140.7 1144.75 69 37 1 2 17 0 36 1 4 +3024 39 12 -136.5 1144.75 69 35 1 2 17 0 34 1 2 +3025 39 13 -132.3 1144.75 69 36 1 2 17 0 35 1 3 +3026 39 14 -128.1 1144.75 69 38 1 2 17 0 37 1 5 +3027 39 15 -123.9 1144.75 73 35 1 2 18 0 34 1 2 +3028 39 16 -119.7 1144.75 73 33 1 2 18 0 32 1 0 +3029 39 17 -115.5 1144.75 73 36 1 2 18 0 35 1 3 +3030 39 18 -111.3 1144.75 73 38 1 2 18 0 37 1 5 +3031 39 19 -107.1 1144.75 73 40 1 2 18 0 39 1 7 +3032 39 20 -102.9 1144.75 77 39 1 2 19 0 38 1 6 +3033 39 21 -98.7 1144.75 77 37 1 2 19 0 36 1 4 +3034 39 22 -94.5 1144.75 77 35 1 2 19 0 34 1 2 +3035 39 23 -90.3 1144.75 77 36 1 2 19 0 35 1 3 +3036 39 24 -86.1 1144.75 77 38 1 2 19 0 37 1 5 +3037 39 25 -81.9 1144.75 81 37 1 2 20 0 36 1 4 +3038 39 26 -77.7 1144.75 81 35 1 2 20 0 34 1 2 +3039 39 27 -73.5 1144.75 81 36 1 2 20 0 35 1 3 +3040 39 28 -69.3 1144.75 81 38 1 2 20 0 37 1 5 +3041 39 29 -65.1 1144.75 81 40 1 2 20 0 39 1 7 +3042 39 30 -60.9 1144.75 85 39 1 2 21 0 38 1 6 +3043 39 31 -56.7 1144.75 85 37 1 2 21 0 36 1 4 +3044 39 32 -52.5 1144.75 85 35 1 2 21 0 34 1 2 +3045 39 33 -48.3 1144.75 85 34 1 2 21 0 33 1 1 +3046 39 34 -44.1 1144.75 85 36 1 2 21 0 35 1 3 +3047 39 35 -39.9 1144.75 89 37 1 2 22 0 36 1 4 +3048 39 36 -35.7 1144.75 89 35 1 2 22 0 34 1 2 +3049 39 37 -31.5 1144.75 89 36 1 2 22 0 35 1 3 +3050 39 38 -27.3 1144.75 89 38 1 2 22 0 37 1 5 +3051 39 39 -23.1 1144.75 89 40 1 2 22 0 39 1 7 +3052 39 40 -18.9 1144.75 93 39 1 2 23 0 38 1 6 +3053 39 41 -14.7 1144.75 93 37 1 2 23 0 36 1 4 +3054 39 42 -10.5 1144.75 93 35 1 2 23 0 34 1 2 +3055 39 43 -6.3 1144.75 93 38 1 2 23 0 37 1 5 +3056 39 44 -2.1 1144.75 93 40 1 2 23 0 39 1 7 +3057 39 45 2.1 1144.75 97 39 1 2 24 0 38 1 6 +3058 39 46 6.3 1144.75 97 37 1 2 24 0 36 1 4 +3059 39 47 10.5 1144.75 97 36 1 2 24 0 35 1 3 +3060 39 48 14.7 1144.75 97 38 1 2 24 0 37 1 5 +3061 39 49 18.9 1144.75 97 40 1 2 24 0 39 1 7 +3062 39 50 23.1 1144.75 101 39 1 2 25 0 38 1 6 +3063 39 51 27.3 1144.75 101 37 1 2 25 0 36 1 4 +3064 39 52 31.5 1144.75 101 35 1 2 25 0 34 1 2 +3065 39 53 35.7 1144.75 101 36 1 2 25 0 35 1 3 +3066 39 54 39.9 1144.75 101 38 1 2 25 0 37 1 5 +3067 39 55 44.1 1144.75 105 35 1 2 26 0 34 1 2 +3068 39 56 48.3 1144.75 105 33 1 2 26 0 32 1 0 +3069 39 57 52.5 1144.75 105 36 1 2 26 0 35 1 3 +3070 39 58 56.7 1144.75 105 38 1 2 26 0 37 1 5 +3071 39 59 60.9 1144.75 105 40 1 2 26 0 39 1 7 +3072 39 60 65.1 1144.75 109 39 1 2 27 0 38 1 6 +3073 39 61 69.3 1144.75 109 37 1 2 27 0 36 1 4 +3074 39 62 73.5 1144.75 109 35 1 2 27 0 34 1 2 +3075 39 63 77.7 1144.75 109 36 1 2 27 0 35 1 3 +3076 39 64 81.9 1144.75 109 38 1 2 27 0 37 1 5 +3077 39 65 86.1 1144.75 113 37 1 2 28 0 36 1 4 +3078 39 66 90.3 1144.75 113 35 1 2 28 0 34 1 2 +3079 39 67 94.5 1144.75 113 36 1 2 28 0 35 1 3 +3080 39 68 98.7 1144.75 113 38 1 2 28 0 37 1 5 +3081 39 69 102.9 1144.75 113 40 1 2 28 0 39 1 7 +3082 39 70 107.1 1144.75 117 39 1 2 29 0 38 1 6 +3083 39 71 111.3 1144.75 117 37 1 2 29 0 36 1 4 +3084 39 72 115.5 1144.75 117 35 1 2 29 0 34 1 2 +3085 39 73 119.7 1144.75 117 34 1 2 29 0 33 1 1 +3086 39 74 123.9 1144.75 117 36 1 2 29 0 35 1 3 +3087 39 75 128.1 1144.75 121 37 1 2 30 0 36 1 4 +3088 39 76 132.3 1144.75 121 35 1 2 30 0 34 1 2 +3089 39 77 136.5 1144.75 121 36 1 2 30 0 35 1 3 +3090 39 78 140.7 1144.75 121 38 1 2 30 0 37 1 5 +3091 39 79 144.9 1144.75 121 40 1 2 30 0 39 1 7 +3092 39 80 149.1 1144.75 125 39 1 2 31 0 38 1 6 +3093 39 81 153.3 1144.75 125 37 1 2 31 0 36 1 4 +3094 39 82 157.5 1144.75 125 35 1 2 31 0 34 1 2 +3095 39 83 161.7 1144.75 125 36 1 2 31 0 35 1 3 +3096 39 84 165.9 1144.75 125 38 1 2 31 0 37 1 5 +3097 39 85 170.1 1144.75 129 39 1 2 32 0 38 1 6 +3098 39 86 174.3 1144.75 129 37 1 2 32 0 36 1 4 +3099 39 87 178.5 1144.75 129 35 1 2 32 0 34 1 2 +3100 39 88 182.7 1144.75 129 38 1 2 32 0 37 1 5 +3101 39 89 186.9 1144.75 129 40 1 2 32 0 39 1 7 +3102 40 0 -186.9 1152.25 62 5 1 2 15 1 44 1 12 +3103 40 1 -182.7 1152.25 62 3 1 2 15 1 42 1 10 +3104 40 2 -178.5 1152.25 62 1 1 2 15 1 40 1 8 +3105 40 3 -174.3 1152.25 62 2 1 2 15 1 41 1 9 +3106 40 4 -170.1 1152.25 62 4 1 2 15 1 43 1 11 +3107 40 5 -165.9 1152.25 65 39 1 2 16 0 38 1 6 +3108 40 6 -161.7 1152.25 66 3 1 2 16 1 42 1 10 +3109 40 7 -157.5 1152.25 66 1 1 2 16 1 40 1 8 +3110 40 8 -153.3 1152.25 66 2 1 2 16 1 41 1 9 +3111 40 9 -149.1 1152.25 66 4 1 2 16 1 43 1 11 +3112 40 10 -144.9 1152.25 70 3 1 2 17 1 42 1 10 +3113 40 11 -140.7 1152.25 70 1 1 2 17 1 40 1 8 +3114 40 12 -136.5 1152.25 70 2 1 2 17 1 41 1 9 +3115 40 13 -132.3 1152.25 70 4 1 2 17 1 43 1 11 +3116 40 14 -128.1 1152.25 69 40 1 2 17 0 39 1 7 +3117 40 15 -123.9 1152.25 73 39 1 2 18 0 38 1 6 +3118 40 16 -119.7 1152.25 73 37 1 2 18 0 36 1 4 +3119 40 17 -115.5 1152.25 74 2 1 2 18 1 41 1 9 +3120 40 18 -111.3 1152.25 74 4 1 2 18 1 43 1 11 +3121 40 19 -107.1 1152.25 74 6 1 2 18 1 45 1 13 +3122 40 20 -102.9 1152.25 78 3 1 2 19 1 42 1 10 +3123 40 21 -98.7 1152.25 78 1 1 2 19 1 40 1 8 +3124 40 22 -94.5 1152.25 78 2 1 2 19 1 41 1 9 +3125 40 23 -90.3 1152.25 78 4 1 2 19 1 43 1 11 +3126 40 24 -86.1 1152.25 77 40 1 2 19 0 39 1 7 +3127 40 25 -81.9 1152.25 81 39 1 2 20 0 38 1 6 +3128 40 26 -77.7 1152.25 82 3 1 2 20 1 42 1 10 +3129 40 27 -73.5 1152.25 82 1 1 2 20 1 40 1 8 +3130 40 28 -69.3 1152.25 82 2 1 2 20 1 41 1 9 +3131 40 29 -65.1 1152.25 82 4 1 2 20 1 43 1 11 +3132 40 30 -60.9 1152.25 86 5 1 2 21 1 44 1 12 +3133 40 31 -56.7 1152.25 86 3 1 2 21 1 42 1 10 +3134 40 32 -52.5 1152.25 86 1 1 2 21 1 40 1 8 +3135 40 33 -48.3 1152.25 85 38 1 2 21 0 37 1 5 +3136 40 34 -44.1 1152.25 85 40 1 2 21 0 39 1 7 +3137 40 35 -39.9 1152.25 89 39 1 2 22 0 38 1 6 +3138 40 36 -35.7 1152.25 90 3 1 2 22 1 42 1 10 +3139 40 37 -31.5 1152.25 90 1 1 2 22 1 40 1 8 +3140 40 38 -27.3 1152.25 90 2 1 2 22 1 41 1 9 +3141 40 39 -23.1 1152.25 90 4 1 2 22 1 43 1 11 +3142 40 40 -18.9 1152.25 94 3 1 2 23 1 42 1 10 +3143 40 41 -14.7 1152.25 94 1 1 2 23 1 40 1 8 +3144 40 42 -10.5 1152.25 94 2 1 2 23 1 41 1 9 +3145 40 43 -6.3 1152.25 94 4 1 2 23 1 43 1 11 +3146 40 44 -2.1 1152.25 94 6 1 2 23 1 45 1 13 +3147 40 45 2.1 1152.25 98 5 1 2 24 1 44 1 12 +3148 40 46 6.3 1152.25 98 3 1 2 24 1 42 1 10 +3149 40 47 10.5 1152.25 98 1 1 2 24 1 40 1 8 +3150 40 48 14.7 1152.25 98 2 1 2 24 1 41 1 9 +3151 40 49 18.9 1152.25 98 4 1 2 24 1 43 1 11 +3152 40 50 23.1 1152.25 102 3 1 2 25 1 42 1 10 +3153 40 51 27.3 1152.25 102 1 1 2 25 1 40 1 8 +3154 40 52 31.5 1152.25 102 2 1 2 25 1 41 1 9 +3155 40 53 35.7 1152.25 102 4 1 2 25 1 43 1 11 +3156 40 54 39.9 1152.25 101 40 1 2 25 0 39 1 7 +3157 40 55 44.1 1152.25 105 39 1 2 26 0 38 1 6 +3158 40 56 48.3 1152.25 105 37 1 2 26 0 36 1 4 +3159 40 57 52.5 1152.25 106 2 1 2 26 1 41 1 9 +3160 40 58 56.7 1152.25 106 4 1 2 26 1 43 1 11 +3161 40 59 60.9 1152.25 106 6 1 2 26 1 45 1 13 +3162 40 60 65.1 1152.25 110 3 1 2 27 1 42 1 10 +3163 40 61 69.3 1152.25 110 1 1 2 27 1 40 1 8 +3164 40 62 73.5 1152.25 110 2 1 2 27 1 41 1 9 +3165 40 63 77.7 1152.25 110 4 1 2 27 1 43 1 11 +3166 40 64 81.9 1152.25 109 40 1 2 27 0 39 1 7 +3167 40 65 86.1 1152.25 113 39 1 2 28 0 38 1 6 +3168 40 66 90.3 1152.25 114 3 1 2 28 1 42 1 10 +3169 40 67 94.5 1152.25 114 1 1 2 28 1 40 1 8 +3170 40 68 98.7 1152.25 114 2 1 2 28 1 41 1 9 +3171 40 69 102.9 1152.25 114 4 1 2 28 1 43 1 11 +3172 40 70 107.1 1152.25 118 5 1 2 29 1 44 1 12 +3173 40 71 111.3 1152.25 118 3 1 2 29 1 42 1 10 +3174 40 72 115.5 1152.25 118 1 1 2 29 1 40 1 8 +3175 40 73 119.7 1152.25 117 38 1 2 29 0 37 1 5 +3176 40 74 123.9 1152.25 117 40 1 2 29 0 39 1 7 +3177 40 75 128.1 1152.25 121 39 1 2 30 0 38 1 6 +3178 40 76 132.3 1152.25 122 3 1 2 30 1 42 1 10 +3179 40 77 136.5 1152.25 122 1 1 2 30 1 40 1 8 +3180 40 78 140.7 1152.25 122 2 1 2 30 1 41 1 9 +3181 40 79 144.9 1152.25 122 4 1 2 30 1 43 1 11 +3182 40 80 149.1 1152.25 126 3 1 2 31 1 42 1 10 +3183 40 81 153.3 1152.25 126 1 1 2 31 1 40 1 8 +3184 40 82 157.5 1152.25 126 2 1 2 31 1 41 1 9 +3185 40 83 161.7 1152.25 126 4 1 2 31 1 43 1 11 +3186 40 84 165.9 1152.25 125 40 1 2 31 0 39 1 7 +3187 40 85 170.1 1152.25 130 3 1 2 32 1 42 1 10 +3188 40 86 174.3 1152.25 130 1 1 2 32 1 40 1 8 +3189 40 87 178.5 1152.25 130 2 1 2 32 1 41 1 9 +3190 40 88 182.7 1152.25 130 4 1 2 32 1 43 1 11 +3191 40 89 186.9 1152.25 130 6 1 2 32 1 45 1 13 +3192 41 0 -186.9 1159.75 62 9 1 2 15 1 48 1 16 +3193 41 1 -182.7 1159.75 62 7 1 2 15 1 46 1 14 +3194 41 2 -178.5 1159.75 62 6 1 2 15 1 45 1 13 +3195 41 3 -174.3 1159.75 62 8 1 2 15 1 47 1 15 +3196 41 4 -170.1 1159.75 62 10 1 2 15 1 49 1 17 +3197 41 5 -165.9 1159.75 66 7 1 2 16 1 46 1 14 +3198 41 6 -161.7 1159.75 66 5 1 2 16 1 44 1 12 +3199 41 7 -157.5 1159.75 66 6 1 2 16 1 45 1 13 +3200 41 8 -153.3 1159.75 66 8 1 2 16 1 47 1 15 +3201 41 9 -149.1 1159.75 66 10 1 2 16 1 49 1 17 +3202 41 10 -144.9 1159.75 70 7 1 2 17 1 46 1 14 +3203 41 11 -140.7 1159.75 70 5 1 2 17 1 44 1 12 +3204 41 12 -136.5 1159.75 70 6 1 2 17 1 45 1 13 +3205 41 13 -132.3 1159.75 70 8 1 2 17 1 47 1 15 +3206 41 14 -128.1 1159.75 70 10 1 2 17 1 49 1 17 +3207 41 15 -123.9 1159.75 74 5 1 2 18 1 44 1 12 +3208 41 16 -119.7 1159.75 74 3 1 2 18 1 42 1 10 +3209 41 17 -115.5 1159.75 74 1 1 2 18 1 40 1 8 +3210 41 18 -111.3 1159.75 74 8 1 2 18 1 47 1 15 +3211 41 19 -107.1 1159.75 74 10 1 2 18 1 49 1 17 +3212 41 20 -102.9 1159.75 78 7 1 2 19 1 46 1 14 +3213 41 21 -98.7 1159.75 78 5 1 2 19 1 44 1 12 +3214 41 22 -94.5 1159.75 78 6 1 2 19 1 45 1 13 +3215 41 23 -90.3 1159.75 78 8 1 2 19 1 47 1 15 +3216 41 24 -86.1 1159.75 78 10 1 2 19 1 49 1 17 +3217 41 25 -81.9 1159.75 82 9 1 2 20 1 48 1 16 +3218 41 26 -77.7 1159.75 82 7 1 2 20 1 46 1 14 +3219 41 27 -73.5 1159.75 82 5 1 2 20 1 44 1 12 +3220 41 28 -69.3 1159.75 82 6 1 2 20 1 45 1 13 +3221 41 29 -65.1 1159.75 82 8 1 2 20 1 47 1 15 +3222 41 30 -60.9 1159.75 86 9 1 2 21 1 48 1 16 +3223 41 31 -56.7 1159.75 86 7 1 2 21 1 46 1 14 +3224 41 32 -52.5 1159.75 86 2 1 2 21 1 41 1 9 +3225 41 33 -48.3 1159.75 86 4 1 2 21 1 43 1 11 +3226 41 34 -44.1 1159.75 86 6 1 2 21 1 45 1 13 +3227 41 35 -39.9 1159.75 90 9 1 2 22 1 48 1 16 +3228 41 36 -35.7 1159.75 90 7 1 2 22 1 46 1 14 +3229 41 37 -31.5 1159.75 90 5 1 2 22 1 44 1 12 +3230 41 38 -27.3 1159.75 90 6 1 2 22 1 45 1 13 +3231 41 39 -23.1 1159.75 90 8 1 2 22 1 47 1 15 +3232 41 40 -18.9 1159.75 94 9 1 2 23 1 48 1 16 +3233 41 41 -14.7 1159.75 94 7 1 2 23 1 46 1 14 +3234 41 42 -10.5 1159.75 94 5 1 2 23 1 44 1 12 +3235 41 43 -6.3 1159.75 94 8 1 2 23 1 47 1 15 +3236 41 44 -2.1 1159.75 94 10 1 2 23 1 49 1 17 +3237 41 45 2.1 1159.75 98 9 1 2 24 1 48 1 16 +3238 41 46 6.3 1159.75 98 7 1 2 24 1 46 1 14 +3239 41 47 10.5 1159.75 98 6 1 2 24 1 45 1 13 +3240 41 48 14.7 1159.75 98 8 1 2 24 1 47 1 15 +3241 41 49 18.9 1159.75 98 10 1 2 24 1 49 1 17 +3242 41 50 23.1 1159.75 102 7 1 2 25 1 46 1 14 +3243 41 51 27.3 1159.75 102 5 1 2 25 1 44 1 12 +3244 41 52 31.5 1159.75 102 6 1 2 25 1 45 1 13 +3245 41 53 35.7 1159.75 102 8 1 2 25 1 47 1 15 +3246 41 54 39.9 1159.75 102 10 1 2 25 1 49 1 17 +3247 41 55 44.1 1159.75 106 5 1 2 26 1 44 1 12 +3248 41 56 48.3 1159.75 106 3 1 2 26 1 42 1 10 +3249 41 57 52.5 1159.75 106 1 1 2 26 1 40 1 8 +3250 41 58 56.7 1159.75 106 8 1 2 26 1 47 1 15 +3251 41 59 60.9 1159.75 106 10 1 2 26 1 49 1 17 +3252 41 60 65.1 1159.75 110 7 1 2 27 1 46 1 14 +3253 41 61 69.3 1159.75 110 5 1 2 27 1 44 1 12 +3254 41 62 73.5 1159.75 110 6 1 2 27 1 45 1 13 +3255 41 63 77.7 1159.75 110 8 1 2 27 1 47 1 15 +3256 41 64 81.9 1159.75 110 10 1 2 27 1 49 1 17 +3257 41 65 86.1 1159.75 114 9 1 2 28 1 48 1 16 +3258 41 66 90.3 1159.75 114 7 1 2 28 1 46 1 14 +3259 41 67 94.5 1159.75 114 5 1 2 28 1 44 1 12 +3260 41 68 98.7 1159.75 114 6 1 2 28 1 45 1 13 +3261 41 69 102.9 1159.75 114 8 1 2 28 1 47 1 15 +3262 41 70 107.1 1159.75 118 9 1 2 29 1 48 1 16 +3263 41 71 111.3 1159.75 118 7 1 2 29 1 46 1 14 +3264 41 72 115.5 1159.75 118 2 1 2 29 1 41 1 9 +3265 41 73 119.7 1159.75 118 4 1 2 29 1 43 1 11 +3266 41 74 123.9 1159.75 118 6 1 2 29 1 45 1 13 +3267 41 75 128.1 1159.75 122 9 1 2 30 1 48 1 16 +3268 41 76 132.3 1159.75 122 7 1 2 30 1 46 1 14 +3269 41 77 136.5 1159.75 122 5 1 2 30 1 44 1 12 +3270 41 78 140.7 1159.75 122 6 1 2 30 1 45 1 13 +3271 41 79 144.9 1159.75 122 8 1 2 30 1 47 1 15 +3272 41 80 149.1 1159.75 126 9 1 2 31 1 48 1 16 +3273 41 81 153.3 1159.75 126 7 1 2 31 1 46 1 14 +3274 41 82 157.5 1159.75 126 5 1 2 31 1 44 1 12 +3275 41 83 161.7 1159.75 126 6 1 2 31 1 45 1 13 +3276 41 84 165.9 1159.75 126 8 1 2 31 1 47 1 15 +3277 41 85 170.1 1159.75 130 9 1 2 32 1 48 1 16 +3278 41 86 174.3 1159.75 130 7 1 2 32 1 46 1 14 +3279 41 87 178.5 1159.75 130 5 1 2 32 1 44 1 12 +3280 41 88 182.7 1159.75 130 8 1 2 32 1 47 1 15 +3281 41 89 186.9 1159.75 130 10 1 2 32 1 49 1 17 +3282 42 0 -191.1 1167.25 62 15 1 2 15 1 54 1 22 +3283 42 1 -186.9 1167.25 62 13 1 2 15 1 52 1 20 +3284 42 2 -182.7 1167.25 62 11 1 2 15 1 50 1 18 +3285 42 3 -178.5 1167.25 62 12 1 2 15 1 51 1 19 +3286 42 4 -174.3 1167.25 62 14 1 2 15 1 53 1 21 +3287 42 5 -170.1 1167.25 66 13 1 2 16 1 52 1 20 +3288 42 6 -165.9 1167.25 66 11 1 2 16 1 50 1 18 +3289 42 7 -161.7 1167.25 66 9 1 2 16 1 48 1 16 +3290 42 8 -157.5 1167.25 66 12 1 2 16 1 51 1 19 +3291 42 9 -153.3 1167.25 66 14 1 2 16 1 53 1 21 +3292 42 10 -149.1 1167.25 70 13 1 2 17 1 52 1 20 +3293 42 11 -144.9 1167.25 70 11 1 2 17 1 50 1 18 +3294 42 12 -140.7 1167.25 70 9 1 2 17 1 48 1 16 +3295 42 13 -136.5 1167.25 70 12 1 2 17 1 51 1 19 +3296 42 14 -132.3 1167.25 70 14 1 2 17 1 53 1 21 +3297 42 15 -128.1 1167.25 74 11 1 2 18 1 50 1 18 +3298 42 16 -123.9 1167.25 74 9 1 2 18 1 48 1 16 +3299 42 17 -119.7 1167.25 74 7 1 2 18 1 46 1 14 +3300 42 18 -115.5 1167.25 74 12 1 2 18 1 51 1 19 +3301 42 19 -111.3 1167.25 74 14 1 2 18 1 53 1 21 +3302 42 20 -107.1 1167.25 74 16 1 2 18 1 55 1 23 +3303 42 21 -102.9 1167.25 78 13 1 2 19 1 52 1 20 +3304 42 22 -98.7 1167.25 78 11 1 2 19 1 50 1 18 +3305 42 23 -94.5 1167.25 78 9 1 2 19 1 48 1 16 +3306 42 24 -90.3 1167.25 78 12 1 2 19 1 51 1 19 +3307 42 25 -86.1 1167.25 78 14 1 2 19 1 53 1 21 +3308 42 26 -81.9 1167.25 82 13 1 2 20 1 52 1 20 +3309 42 27 -77.7 1167.25 82 11 1 2 20 1 50 1 18 +3310 42 28 -73.5 1167.25 82 10 1 2 20 1 49 1 17 +3311 42 29 -69.3 1167.25 82 12 1 2 20 1 51 1 19 +3312 42 30 -65.1 1167.25 82 14 1 2 20 1 53 1 21 +3313 42 31 -60.9 1167.25 86 15 1 2 21 1 54 1 22 +3314 42 32 -56.7 1167.25 86 13 1 2 21 1 52 1 20 +3315 42 33 -52.5 1167.25 86 11 1 2 21 1 50 1 18 +3316 42 34 -48.3 1167.25 86 8 1 2 21 1 47 1 15 +3317 42 35 -44.1 1167.25 86 10 1 2 21 1 49 1 17 +3318 42 36 -39.9 1167.25 90 13 1 2 22 1 52 1 20 +3319 42 37 -35.7 1167.25 90 11 1 2 22 1 50 1 18 +3320 42 38 -31.5 1167.25 90 10 1 2 22 1 49 1 17 +3321 42 39 -27.3 1167.25 90 12 1 2 22 1 51 1 19 +3322 42 40 -23.1 1167.25 90 14 1 2 22 1 53 1 21 +3323 42 41 -18.9 1167.25 94 13 1 2 23 1 52 1 20 +3324 42 42 -14.7 1167.25 94 11 1 2 23 1 50 1 18 +3325 42 43 -10.5 1167.25 94 12 1 2 23 1 51 1 19 +3326 42 44 -6.3 1167.25 94 14 1 2 23 1 53 1 21 +3327 42 45 -2.1 1167.25 94 16 1 2 23 1 55 1 23 +3328 42 46 2.1 1167.25 98 15 1 2 24 1 54 1 22 +3329 42 47 6.3 1167.25 98 13 1 2 24 1 52 1 20 +3330 42 48 10.5 1167.25 98 11 1 2 24 1 50 1 18 +3331 42 49 14.7 1167.25 98 12 1 2 24 1 51 1 19 +3332 42 50 18.9 1167.25 98 14 1 2 24 1 53 1 21 +3333 42 51 23.1 1167.25 102 13 1 2 25 1 52 1 20 +3334 42 52 27.3 1167.25 102 11 1 2 25 1 50 1 18 +3335 42 53 31.5 1167.25 102 9 1 2 25 1 48 1 16 +3336 42 54 35.7 1167.25 102 12 1 2 25 1 51 1 19 +3337 42 55 39.9 1167.25 102 14 1 2 25 1 53 1 21 +3338 42 56 44.1 1167.25 106 9 1 2 26 1 48 1 16 +3339 42 57 48.3 1167.25 106 7 1 2 26 1 46 1 14 +3340 42 58 52.5 1167.25 106 12 1 2 26 1 51 1 19 +3341 42 59 56.7 1167.25 106 14 1 2 26 1 53 1 21 +3342 42 60 60.9 1167.25 106 16 1 2 26 1 55 1 23 +3343 42 61 65.1 1167.25 110 13 1 2 27 1 52 1 20 +3344 42 62 69.3 1167.25 110 11 1 2 27 1 50 1 18 +3345 42 63 73.5 1167.25 110 9 1 2 27 1 48 1 16 +3346 42 64 77.7 1167.25 110 12 1 2 27 1 51 1 19 +3347 42 65 81.9 1167.25 110 14 1 2 27 1 53 1 21 +3348 42 66 86.1 1167.25 114 13 1 2 28 1 52 1 20 +3349 42 67 90.3 1167.25 114 11 1 2 28 1 50 1 18 +3350 42 68 94.5 1167.25 114 10 1 2 28 1 49 1 17 +3351 42 69 98.7 1167.25 114 12 1 2 28 1 51 1 19 +3352 42 70 102.9 1167.25 114 14 1 2 28 1 53 1 21 +3353 42 71 107.1 1167.25 118 15 1 2 29 1 54 1 22 +3354 42 72 111.3 1167.25 118 13 1 2 29 1 52 1 20 +3355 42 73 115.5 1167.25 118 11 1 2 29 1 50 1 18 +3356 42 74 119.7 1167.25 118 8 1 2 29 1 47 1 15 +3357 42 75 123.9 1167.25 118 10 1 2 29 1 49 1 17 +3358 42 76 128.1 1167.25 118 12 1 2 29 1 51 1 19 +3359 42 77 132.3 1167.25 122 13 1 2 30 1 52 1 20 +3360 42 78 136.5 1167.25 122 11 1 2 30 1 50 1 18 +3361 42 79 140.7 1167.25 122 10 1 2 30 1 49 1 17 +3362 42 80 144.9 1167.25 122 12 1 2 30 1 51 1 19 +3363 42 81 149.1 1167.25 122 14 1 2 30 1 53 1 21 +3364 42 82 153.3 1167.25 126 13 1 2 31 1 52 1 20 +3365 42 83 157.5 1167.25 126 11 1 2 31 1 50 1 18 +3366 42 84 161.7 1167.25 126 10 1 2 31 1 49 1 17 +3367 42 85 165.9 1167.25 126 12 1 2 31 1 51 1 19 +3368 42 86 170.1 1167.25 126 14 1 2 31 1 53 1 21 +3369 42 87 174.3 1167.25 130 13 1 2 32 1 52 1 20 +3370 42 88 178.5 1167.25 130 11 1 2 32 1 50 1 18 +3371 42 89 182.7 1167.25 130 12 1 2 32 1 51 1 19 +3372 42 90 186.9 1167.25 130 14 1 2 32 1 53 1 21 +3373 42 91 191.1 1167.25 130 16 1 2 32 1 55 1 23 +3374 43 0 -191.1 1174.75 62 19 1 2 15 1 58 1 26 +3375 43 1 -186.9 1174.75 62 17 1 2 15 1 56 1 24 +3376 43 2 -182.7 1174.75 62 16 1 2 15 1 55 1 23 +3377 43 3 -178.5 1174.75 62 18 1 2 15 1 57 1 25 +3378 43 4 -174.3 1174.75 62 20 1 2 15 1 59 1 27 +3379 43 5 -170.1 1174.75 66 19 1 2 16 1 58 1 26 +3380 43 6 -165.9 1174.75 66 17 1 2 16 1 56 1 24 +3381 43 7 -161.7 1174.75 66 15 1 2 16 1 54 1 22 +3382 43 8 -157.5 1174.75 66 16 1 2 16 1 55 1 23 +3383 43 9 -153.3 1174.75 66 18 1 2 16 1 57 1 25 +3384 43 10 -149.1 1174.75 70 17 1 2 17 1 56 1 24 +3385 43 11 -144.9 1174.75 70 15 1 2 17 1 54 1 22 +3386 43 12 -140.7 1174.75 70 16 1 2 17 1 55 1 23 +3387 43 13 -136.5 1174.75 70 18 1 2 17 1 57 1 25 +3388 43 14 -132.3 1174.75 70 20 1 2 17 1 59 1 27 +3389 43 15 -128.1 1174.75 74 17 1 2 18 1 56 1 24 +3390 43 16 -123.9 1174.75 74 15 1 2 18 1 54 1 22 +3391 43 17 -119.7 1174.75 74 13 1 2 18 1 52 1 20 +3392 43 18 -115.5 1174.75 74 18 1 2 18 1 57 1 25 +3393 43 19 -111.3 1174.75 74 20 1 2 18 1 59 1 27 +3394 43 20 -107.1 1174.75 78 19 1 2 19 1 58 1 26 +3395 43 21 -102.9 1174.75 78 17 1 2 19 1 56 1 24 +3396 43 22 -98.7 1174.75 78 15 1 2 19 1 54 1 22 +3397 43 23 -94.5 1174.75 78 16 1 2 19 1 55 1 23 +3398 43 24 -90.3 1174.75 78 18 1 2 19 1 57 1 25 +3399 43 25 -86.1 1174.75 78 20 1 2 19 1 59 1 27 +3400 43 26 -81.9 1174.75 82 19 1 2 20 1 58 1 26 +3401 43 27 -77.7 1174.75 82 17 1 2 20 1 56 1 24 +3402 43 28 -73.5 1174.75 82 15 1 2 20 1 54 1 22 +3403 43 29 -69.3 1174.75 82 16 1 2 20 1 55 1 23 +3404 43 30 -65.1 1174.75 82 18 1 2 20 1 57 1 25 +3405 43 31 -60.9 1174.75 86 19 1 2 21 1 58 1 26 +3406 43 32 -56.7 1174.75 86 17 1 2 21 1 56 1 24 +3407 43 33 -52.5 1174.75 86 12 1 2 21 1 51 1 19 +3408 43 34 -48.3 1174.75 86 14 1 2 21 1 53 1 21 +3409 43 35 -44.1 1174.75 86 16 1 2 21 1 55 1 23 +3410 43 36 -39.9 1174.75 90 19 1 2 22 1 58 1 26 +3411 43 37 -35.7 1174.75 90 17 1 2 22 1 56 1 24 +3412 43 38 -31.5 1174.75 90 15 1 2 22 1 54 1 22 +3413 43 39 -27.3 1174.75 90 16 1 2 22 1 55 1 23 +3414 43 40 -23.1 1174.75 90 18 1 2 22 1 57 1 25 +3415 43 41 -18.9 1174.75 94 19 1 2 23 1 58 1 26 +3416 43 42 -14.7 1174.75 94 17 1 2 23 1 56 1 24 +3417 43 43 -10.5 1174.75 94 15 1 2 23 1 54 1 22 +3418 43 44 -6.3 1174.75 94 18 1 2 23 1 57 1 25 +3419 43 45 -2.1 1174.75 94 20 1 2 23 1 59 1 27 +3420 43 46 2.1 1174.75 98 19 1 2 24 1 58 1 26 +3421 43 47 6.3 1174.75 98 17 1 2 24 1 56 1 24 +3422 43 48 10.5 1174.75 98 16 1 2 24 1 55 1 23 +3423 43 49 14.7 1174.75 98 18 1 2 24 1 57 1 25 +3424 43 50 18.9 1174.75 98 20 1 2 24 1 59 1 27 +3425 43 51 23.1 1174.75 102 17 1 2 25 1 56 1 24 +3426 43 52 27.3 1174.75 102 15 1 2 25 1 54 1 22 +3427 43 53 31.5 1174.75 102 16 1 2 25 1 55 1 23 +3428 43 54 35.7 1174.75 102 18 1 2 25 1 57 1 25 +3429 43 55 39.9 1174.75 102 20 1 2 25 1 59 1 27 +3430 43 56 44.1 1174.75 106 15 1 2 26 1 54 1 22 +3431 43 57 48.3 1174.75 106 13 1 2 26 1 52 1 20 +3432 43 58 52.5 1174.75 106 11 1 2 26 1 50 1 18 +3433 43 59 56.7 1174.75 106 18 1 2 26 1 57 1 25 +3434 43 60 60.9 1174.75 106 20 1 2 26 1 59 1 27 +3435 43 61 65.1 1174.75 110 17 1 2 27 1 56 1 24 +3436 43 62 69.3 1174.75 110 15 1 2 27 1 54 1 22 +3437 43 63 73.5 1174.75 110 16 1 2 27 1 55 1 23 +3438 43 64 77.7 1174.75 110 18 1 2 27 1 57 1 25 +3439 43 65 81.9 1174.75 110 20 1 2 27 1 59 1 27 +3440 43 66 86.1 1174.75 114 19 1 2 28 1 58 1 26 +3441 43 67 90.3 1174.75 114 17 1 2 28 1 56 1 24 +3442 43 68 94.5 1174.75 114 15 1 2 28 1 54 1 22 +3443 43 69 98.7 1174.75 114 16 1 2 28 1 55 1 23 +3444 43 70 102.9 1174.75 114 18 1 2 28 1 57 1 25 +3445 43 71 107.1 1174.75 114 20 1 2 28 1 59 1 27 +3446 43 72 111.3 1174.75 118 19 1 2 29 1 58 1 26 +3447 43 73 115.5 1174.75 118 17 1 2 29 1 56 1 24 +3448 43 74 119.7 1174.75 118 14 1 2 29 1 53 1 21 +3449 43 75 123.9 1174.75 118 16 1 2 29 1 55 1 23 +3450 43 76 128.1 1174.75 118 18 1 2 29 1 57 1 25 +3451 43 77 132.3 1174.75 122 19 1 2 30 1 58 1 26 +3452 43 78 136.5 1174.75 122 17 1 2 30 1 56 1 24 +3453 43 79 140.7 1174.75 122 15 1 2 30 1 54 1 22 +3454 43 80 144.9 1174.75 122 16 1 2 30 1 55 1 23 +3455 43 81 149.1 1174.75 122 18 1 2 30 1 57 1 25 +3456 43 82 153.3 1174.75 126 17 1 2 31 1 56 1 24 +3457 43 83 157.5 1174.75 126 15 1 2 31 1 54 1 22 +3458 43 84 161.7 1174.75 126 16 1 2 31 1 55 1 23 +3459 43 85 165.9 1174.75 126 18 1 2 31 1 57 1 25 +3460 43 86 170.1 1174.75 126 20 1 2 31 1 59 1 27 +3461 43 87 174.3 1174.75 130 19 1 2 32 1 58 1 26 +3462 43 88 178.5 1174.75 130 17 1 2 32 1 56 1 24 +3463 43 89 182.7 1174.75 130 15 1 2 32 1 54 1 22 +3464 43 90 186.9 1174.75 130 18 1 2 32 1 57 1 25 +3465 43 91 191.1 1174.75 130 20 1 2 32 1 59 1 27 +3466 44 0 -191.1 1182.25 62 25 1 2 15 1 64 2 0 +3467 44 1 -186.9 1182.25 62 23 1 2 15 1 62 1 30 +3468 44 2 -182.7 1182.25 62 21 1 2 15 1 60 1 28 +3469 44 3 -178.5 1182.25 62 22 1 2 15 1 61 1 29 +3470 44 4 -174.3 1182.25 62 24 1 2 15 1 63 1 31 +3471 44 5 -170.1 1182.25 66 23 1 2 16 1 62 1 30 +3472 44 6 -165.9 1182.25 66 21 1 2 16 1 60 1 28 +3473 44 7 -161.7 1182.25 66 20 1 2 16 1 59 1 27 +3474 44 8 -157.5 1182.25 66 22 1 2 16 1 61 1 29 +3475 44 9 -153.3 1182.25 66 24 1 2 16 1 63 1 31 +3476 44 10 -149.1 1182.25 70 23 1 2 17 1 62 1 30 +3477 44 11 -144.9 1182.25 70 21 1 2 17 1 60 1 28 +3478 44 12 -140.7 1182.25 70 19 1 2 17 1 58 1 26 +3479 44 13 -136.5 1182.25 70 22 1 2 17 1 61 1 29 +3480 44 14 -132.3 1182.25 70 24 1 2 17 1 63 1 31 +3481 44 15 -128.1 1182.25 74 23 1 2 18 1 62 1 30 +3482 44 16 -123.9 1182.25 74 21 1 2 18 1 60 1 28 +3483 44 17 -119.7 1182.25 74 19 1 2 18 1 58 1 26 +3484 44 18 -115.5 1182.25 74 22 1 2 18 1 61 1 29 +3485 44 19 -111.3 1182.25 74 24 1 2 18 1 63 1 31 +3486 44 20 -107.1 1182.25 78 25 1 2 19 1 64 2 0 +3487 44 21 -102.9 1182.25 78 23 1 2 19 1 62 1 30 +3488 44 22 -98.7 1182.25 78 21 1 2 19 1 60 1 28 +3489 44 23 -94.5 1182.25 78 22 1 2 19 1 61 1 29 +3490 44 24 -90.3 1182.25 78 24 1 2 19 1 63 1 31 +3491 44 25 -86.1 1182.25 82 25 1 2 20 1 64 2 0 +3492 44 26 -81.9 1182.25 82 23 1 2 20 1 62 1 30 +3493 44 27 -77.7 1182.25 82 21 1 2 20 1 60 1 28 +3494 44 28 -73.5 1182.25 82 20 1 2 20 1 59 1 27 +3495 44 29 -69.3 1182.25 82 22 1 2 20 1 61 1 29 +3496 44 30 -65.1 1182.25 82 24 1 2 20 1 63 1 31 +3497 44 31 -60.9 1182.25 86 23 1 2 21 1 62 1 30 +3498 44 32 -56.7 1182.25 86 21 1 2 21 1 60 1 28 +3499 44 33 -52.5 1182.25 86 18 1 2 21 1 57 1 25 +3500 44 34 -48.3 1182.25 86 20 1 2 21 1 59 1 27 +3501 44 35 -44.1 1182.25 86 22 1 2 21 1 61 1 29 +3502 44 36 -39.9 1182.25 90 23 1 2 22 1 62 1 30 +3503 44 37 -35.7 1182.25 90 21 1 2 22 1 60 1 28 +3504 44 38 -31.5 1182.25 90 20 1 2 22 1 59 1 27 +3505 44 39 -27.3 1182.25 90 22 1 2 22 1 61 1 29 +3506 44 40 -23.1 1182.25 90 24 1 2 22 1 63 1 31 +3507 44 41 -18.9 1182.25 94 23 1 2 23 1 62 1 30 +3508 44 42 -14.7 1182.25 94 21 1 2 23 1 60 1 28 +3509 44 43 -10.5 1182.25 94 22 1 2 23 1 61 1 29 +3510 44 44 -6.3 1182.25 94 24 1 2 23 1 63 1 31 +3511 44 45 -2.1 1182.25 94 26 1 2 23 1 65 2 1 +3512 44 46 2.1 1182.25 98 25 1 2 24 1 64 2 0 +3513 44 47 6.3 1182.25 98 23 1 2 24 1 62 1 30 +3514 44 48 10.5 1182.25 98 21 1 2 24 1 60 1 28 +3515 44 49 14.7 1182.25 98 22 1 2 24 1 61 1 29 +3516 44 50 18.9 1182.25 98 24 1 2 24 1 63 1 31 +3517 44 51 23.1 1182.25 102 23 1 2 25 1 62 1 30 +3518 44 52 27.3 1182.25 102 21 1 2 25 1 60 1 28 +3519 44 53 31.5 1182.25 102 19 1 2 25 1 58 1 26 +3520 44 54 35.7 1182.25 102 22 1 2 25 1 61 1 29 +3521 44 55 39.9 1182.25 102 24 1 2 25 1 63 1 31 +3522 44 56 44.1 1182.25 106 21 1 2 26 1 60 1 28 +3523 44 57 48.3 1182.25 106 19 1 2 26 1 58 1 26 +3524 44 58 52.5 1182.25 106 17 1 2 26 1 56 1 24 +3525 44 59 56.7 1182.25 106 22 1 2 26 1 61 1 29 +3526 44 60 60.9 1182.25 106 24 1 2 26 1 63 1 31 +3527 44 61 65.1 1182.25 110 23 1 2 27 1 62 1 30 +3528 44 62 69.3 1182.25 110 21 1 2 27 1 60 1 28 +3529 44 63 73.5 1182.25 110 19 1 2 27 1 58 1 26 +3530 44 64 77.7 1182.25 110 22 1 2 27 1 61 1 29 +3531 44 65 81.9 1182.25 110 24 1 2 27 1 63 1 31 +3532 44 66 86.1 1182.25 110 26 1 2 27 1 65 2 1 +3533 44 67 90.3 1182.25 114 23 1 2 28 1 62 1 30 +3534 44 68 94.5 1182.25 114 21 1 2 28 1 60 1 28 +3535 44 69 98.7 1182.25 114 22 1 2 28 1 61 1 29 +3536 44 70 102.9 1182.25 114 24 1 2 28 1 63 1 31 +3537 44 71 107.1 1182.25 114 26 1 2 28 1 65 2 1 +3538 44 72 111.3 1182.25 118 23 1 2 29 1 62 1 30 +3539 44 73 115.5 1182.25 118 21 1 2 29 1 60 1 28 +3540 44 74 119.7 1182.25 118 20 1 2 29 1 59 1 27 +3541 44 75 123.9 1182.25 118 22 1 2 29 1 61 1 29 +3542 44 76 128.1 1182.25 118 24 1 2 29 1 63 1 31 +3543 44 77 132.3 1182.25 122 23 1 2 30 1 62 1 30 +3544 44 78 136.5 1182.25 122 21 1 2 30 1 60 1 28 +3545 44 79 140.7 1182.25 122 20 1 2 30 1 59 1 27 +3546 44 80 144.9 1182.25 122 22 1 2 30 1 61 1 29 +3547 44 81 149.1 1182.25 122 24 1 2 30 1 63 1 31 +3548 44 82 153.3 1182.25 126 23 1 2 31 1 62 1 30 +3549 44 83 157.5 1182.25 126 21 1 2 31 1 60 1 28 +3550 44 84 161.7 1182.25 126 19 1 2 31 1 58 1 26 +3551 44 85 165.9 1182.25 126 22 1 2 31 1 61 1 29 +3552 44 86 170.1 1182.25 126 24 1 2 31 1 63 1 31 +3553 44 87 174.3 1182.25 130 23 1 2 32 1 62 1 30 +3554 44 88 178.5 1182.25 130 21 1 2 32 1 60 1 28 +3555 44 89 182.7 1182.25 130 22 1 2 32 1 61 1 29 +3556 44 90 186.9 1182.25 130 24 1 2 32 1 63 1 31 +3557 44 91 191.1 1182.25 130 26 1 2 32 1 65 2 1 +3558 45 0 -195.3 1189.75 62 29 1 2 15 1 68 2 4 +3559 45 1 -191.1 1189.75 62 27 1 2 15 1 66 2 2 +3560 45 2 -186.9 1189.75 62 26 1 2 15 1 65 2 1 +3561 45 3 -182.7 1189.75 62 28 1 2 15 1 67 2 3 +3562 45 4 -178.5 1189.75 62 30 1 2 15 1 69 2 5 +3563 45 5 -174.3 1189.75 66 29 1 2 16 1 68 2 4 +3564 45 6 -170.1 1189.75 66 27 1 2 16 1 66 2 2 +3565 45 7 -165.9 1189.75 66 25 1 2 16 1 64 2 0 +3566 45 8 -161.7 1189.75 66 26 1 2 16 1 65 2 1 +3567 45 9 -157.5 1189.75 66 28 1 2 16 1 67 2 3 +3568 45 10 -153.3 1189.75 66 30 1 2 16 1 69 2 5 +3569 45 11 -149.1 1189.75 70 29 1 2 17 1 68 2 4 +3570 45 12 -144.9 1189.75 70 27 1 2 17 1 66 2 2 +3571 45 13 -140.7 1189.75 70 25 1 2 17 1 64 2 0 +3572 45 14 -136.5 1189.75 70 26 1 2 17 1 65 2 1 +3573 45 15 -132.3 1189.75 70 28 1 2 17 1 67 2 3 +3574 45 16 -128.1 1189.75 74 29 1 2 18 1 68 2 4 +3575 45 17 -123.9 1189.75 74 27 1 2 18 1 66 2 2 +3576 45 18 -119.7 1189.75 74 25 1 2 18 1 64 2 0 +3577 45 19 -115.5 1189.75 74 26 1 2 18 1 65 2 1 +3578 45 20 -111.3 1189.75 74 28 1 2 18 1 67 2 3 +3579 45 21 -107.1 1189.75 78 29 1 2 19 1 68 2 4 +3580 45 22 -102.9 1189.75 78 27 1 2 19 1 66 2 2 +3581 45 23 -98.7 1189.75 78 26 1 2 19 1 65 2 1 +3582 45 24 -94.5 1189.75 78 28 1 2 19 1 67 2 3 +3583 45 25 -90.3 1189.75 78 30 1 2 19 1 69 2 5 +3584 45 26 -86.1 1189.75 82 29 1 2 20 1 68 2 4 +3585 45 27 -81.9 1189.75 82 27 1 2 20 1 66 2 2 +3586 45 28 -77.7 1189.75 82 26 1 2 20 1 65 2 1 +3587 45 29 -73.5 1189.75 82 28 1 2 20 1 67 2 3 +3588 45 30 -69.3 1189.75 82 30 1 2 20 1 69 2 5 +3589 45 31 -65.1 1189.75 86 29 1 2 21 1 68 2 4 +3590 45 32 -60.9 1189.75 86 27 1 2 21 1 66 2 2 +3591 45 33 -56.7 1189.75 86 25 1 2 21 1 64 2 0 +3592 45 34 -52.5 1189.75 86 24 1 2 21 1 63 1 31 +3593 45 35 -48.3 1189.75 86 26 1 2 21 1 65 2 1 +3594 45 36 -44.1 1189.75 86 28 1 2 21 1 67 2 3 +3595 45 37 -39.9 1189.75 90 29 1 2 22 1 68 2 4 +3596 45 38 -35.7 1189.75 90 27 1 2 22 1 66 2 2 +3597 45 39 -31.5 1189.75 90 25 1 2 22 1 64 2 0 +3598 45 40 -27.3 1189.75 90 26 1 2 22 1 65 2 1 +3599 45 41 -23.1 1189.75 90 28 1 2 22 1 67 2 3 +3600 45 42 -18.9 1189.75 94 29 1 2 23 1 68 2 4 +3601 45 43 -14.7 1189.75 94 27 1 2 23 1 66 2 2 +3602 45 44 -10.5 1189.75 94 25 1 2 23 1 64 2 0 +3603 45 45 -6.3 1189.75 94 28 1 2 23 1 67 2 3 +3604 45 46 -2.1 1189.75 94 30 1 2 23 1 69 2 5 +3605 45 47 2.1 1189.75 98 29 1 2 24 1 68 2 4 +3606 45 48 6.3 1189.75 98 27 1 2 24 1 66 2 2 +3607 45 49 10.5 1189.75 98 26 1 2 24 1 65 2 1 +3608 45 50 14.7 1189.75 98 28 1 2 24 1 67 2 3 +3609 45 51 18.9 1189.75 98 30 1 2 24 1 69 2 5 +3610 45 52 23.1 1189.75 102 27 1 2 25 1 66 2 2 +3611 45 53 27.3 1189.75 102 25 1 2 25 1 64 2 0 +3612 45 54 31.5 1189.75 102 26 1 2 25 1 65 2 1 +3613 45 55 35.7 1189.75 102 28 1 2 25 1 67 2 3 +3614 45 56 39.9 1189.75 102 30 1 2 25 1 69 2 5 +3615 45 57 44.1 1189.75 106 27 1 2 26 1 66 2 2 +3616 45 58 48.3 1189.75 106 25 1 2 26 1 64 2 0 +3617 45 59 52.5 1189.75 106 23 1 2 26 1 62 1 30 +3618 45 60 56.7 1189.75 106 26 1 2 26 1 65 2 1 +3619 45 61 60.9 1189.75 106 28 1 2 26 1 67 2 3 +3620 45 62 65.1 1189.75 106 30 1 2 26 1 69 2 5 +3621 45 63 69.3 1189.75 110 29 1 2 27 1 68 2 4 +3622 45 64 73.5 1189.75 110 27 1 2 27 1 66 2 2 +3623 45 65 77.7 1189.75 110 25 1 2 27 1 64 2 0 +3624 45 66 81.9 1189.75 110 28 1 2 27 1 67 2 3 +3625 45 67 86.1 1189.75 110 30 1 2 27 1 69 2 5 +3626 45 68 90.3 1189.75 114 29 1 2 28 1 68 2 4 +3627 45 69 94.5 1189.75 114 27 1 2 28 1 66 2 2 +3628 45 70 98.7 1189.75 114 25 1 2 28 1 64 2 0 +3629 45 71 102.9 1189.75 114 28 1 2 28 1 67 2 3 +3630 45 72 107.1 1189.75 114 30 1 2 28 1 69 2 5 +3631 45 73 111.3 1189.75 118 27 1 2 29 1 66 2 2 +3632 45 74 115.5 1189.75 118 25 1 2 29 1 64 2 0 +3633 45 75 119.7 1189.75 118 26 1 2 29 1 65 2 1 +3634 45 76 123.9 1189.75 118 28 1 2 29 1 67 2 3 +3635 45 77 128.1 1189.75 118 30 1 2 29 1 69 2 5 +3636 45 78 132.3 1189.75 122 27 1 2 30 1 66 2 2 +3637 45 79 136.5 1189.75 122 25 1 2 30 1 64 2 0 +3638 45 80 140.7 1189.75 122 26 1 2 30 1 65 2 1 +3639 45 81 144.9 1189.75 122 28 1 2 30 1 67 2 3 +3640 45 82 149.1 1189.75 122 30 1 2 30 1 69 2 5 +3641 45 83 153.3 1189.75 126 29 1 2 31 1 68 2 4 +3642 45 84 157.5 1189.75 126 27 1 2 31 1 66 2 2 +3643 45 85 161.7 1189.75 126 25 1 2 31 1 64 2 0 +3644 45 86 165.9 1189.75 126 26 1 2 31 1 65 2 1 +3645 45 87 170.1 1189.75 126 28 1 2 31 1 67 2 3 +3646 45 88 174.3 1189.75 126 30 1 2 31 1 69 2 5 +3647 45 89 178.5 1189.75 130 29 1 2 32 1 68 2 4 +3648 45 90 182.7 1189.75 130 27 1 2 32 1 66 2 2 +3649 45 91 186.9 1189.75 130 25 1 2 32 1 64 2 0 +3650 45 92 191.1 1189.75 130 28 1 2 32 1 67 2 3 +3651 45 93 195.3 1189.75 130 30 1 2 32 1 69 2 5 +3652 46 0 -195.3 1197.25 62 35 1 2 15 1 74 2 10 +3653 46 1 -191.1 1197.25 62 33 1 2 15 1 72 2 8 +3654 46 2 -186.9 1197.25 62 31 1 2 15 1 70 2 6 +3655 46 3 -182.7 1197.25 62 32 1 2 15 1 71 2 7 +3656 46 4 -178.5 1197.25 62 34 1 2 15 1 73 2 9 +3657 46 5 -174.3 1197.25 66 33 1 2 16 1 72 2 8 +3658 46 6 -170.1 1197.25 66 31 1 2 16 1 70 2 6 +3659 46 7 -165.9 1197.25 66 32 1 2 16 1 71 2 7 +3660 46 8 -161.7 1197.25 66 34 1 2 16 1 73 2 9 +3661 46 9 -157.5 1197.25 66 36 1 2 16 1 75 2 11 +3662 46 10 -153.3 1197.25 70 35 1 2 17 1 74 2 10 +3663 46 11 -149.1 1197.25 70 33 1 2 17 1 72 2 8 +3664 46 12 -144.9 1197.25 70 31 1 2 17 1 70 2 6 +3665 46 13 -140.7 1197.25 70 30 1 2 17 1 69 2 5 +3666 46 14 -136.5 1197.25 70 32 1 2 17 1 71 2 7 +3667 46 15 -132.3 1197.25 70 34 1 2 17 1 73 2 9 +3668 46 16 -128.1 1197.25 74 33 1 2 18 1 72 2 8 +3669 46 17 -123.9 1197.25 74 31 1 2 18 1 70 2 6 +3670 46 18 -119.7 1197.25 74 30 1 2 18 1 69 2 5 +3671 46 19 -115.5 1197.25 74 32 1 2 18 1 71 2 7 +3672 46 20 -111.3 1197.25 74 34 1 2 18 1 73 2 9 +3673 46 21 -107.1 1197.25 78 35 1 2 19 1 74 2 10 +3674 46 22 -102.9 1197.25 78 33 1 2 19 1 72 2 8 +3675 46 23 -98.7 1197.25 78 31 1 2 19 1 70 2 6 +3676 46 24 -94.5 1197.25 78 32 1 2 19 1 71 2 7 +3677 46 25 -90.3 1197.25 78 34 1 2 19 1 73 2 9 +3678 46 26 -86.1 1197.25 82 35 1 2 20 1 74 2 10 +3679 46 27 -81.9 1197.25 82 33 1 2 20 1 72 2 8 +3680 46 28 -77.7 1197.25 82 31 1 2 20 1 70 2 6 +3681 46 29 -73.5 1197.25 82 32 1 2 20 1 71 2 7 +3682 46 30 -69.3 1197.25 82 34 1 2 20 1 73 2 9 +3683 46 31 -65.1 1197.25 86 35 1 2 21 1 74 2 10 +3684 46 32 -60.9 1197.25 86 33 1 2 21 1 72 2 8 +3685 46 33 -56.7 1197.25 86 31 1 2 21 1 70 2 6 +3686 46 34 -52.5 1197.25 86 30 1 2 21 1 69 2 5 +3687 46 35 -48.3 1197.25 86 32 1 2 21 1 71 2 7 +3688 46 36 -44.1 1197.25 86 34 1 2 21 1 73 2 9 +3689 46 37 -39.9 1197.25 90 33 1 2 22 1 72 2 8 +3690 46 38 -35.7 1197.25 90 31 1 2 22 1 70 2 6 +3691 46 39 -31.5 1197.25 90 30 1 2 22 1 69 2 5 +3692 46 40 -27.3 1197.25 90 32 1 2 22 1 71 2 7 +3693 46 41 -23.1 1197.25 90 34 1 2 22 1 73 2 9 +3694 46 42 -18.9 1197.25 94 33 1 2 23 1 72 2 8 +3695 46 43 -14.7 1197.25 94 31 1 2 23 1 70 2 6 +3696 46 44 -10.5 1197.25 94 32 1 2 23 1 71 2 7 +3697 46 45 -6.3 1197.25 94 34 1 2 23 1 73 2 9 +3698 46 46 -2.1 1197.25 94 36 1 2 23 1 75 2 11 +3699 46 47 2.1 1197.25 98 35 1 2 24 1 74 2 10 +3700 46 48 6.3 1197.25 98 33 1 2 24 1 72 2 8 +3701 46 49 10.5 1197.25 98 31 1 2 24 1 70 2 6 +3702 46 50 14.7 1197.25 98 32 1 2 24 1 71 2 7 +3703 46 51 18.9 1197.25 98 34 1 2 24 1 73 2 9 +3704 46 52 23.1 1197.25 102 33 1 2 25 1 72 2 8 +3705 46 53 27.3 1197.25 102 31 1 2 25 1 70 2 6 +3706 46 54 31.5 1197.25 102 29 1 2 25 1 68 2 4 +3707 46 55 35.7 1197.25 102 32 1 2 25 1 71 2 7 +3708 46 56 39.9 1197.25 102 34 1 2 25 1 73 2 9 +3709 46 57 44.1 1197.25 106 33 1 2 26 1 72 2 8 +3710 46 58 48.3 1197.25 106 31 1 2 26 1 70 2 6 +3711 46 59 52.5 1197.25 106 29 1 2 26 1 68 2 4 +3712 46 60 56.7 1197.25 106 32 1 2 26 1 71 2 7 +3713 46 61 60.9 1197.25 106 34 1 2 26 1 73 2 9 +3714 46 62 65.1 1197.25 106 36 1 2 26 1 75 2 11 +3715 46 63 69.3 1197.25 110 33 1 2 27 1 72 2 8 +3716 46 64 73.5 1197.25 110 31 1 2 27 1 70 2 6 +3717 46 65 77.7 1197.25 110 32 1 2 27 1 71 2 7 +3718 46 66 81.9 1197.25 110 34 1 2 27 1 73 2 9 +3719 46 67 86.1 1197.25 110 36 1 2 27 1 75 2 11 +3720 46 68 90.3 1197.25 114 33 1 2 28 1 72 2 8 +3721 46 69 94.5 1197.25 114 31 1 2 28 1 70 2 6 +3722 46 70 98.7 1197.25 114 32 1 2 28 1 71 2 7 +3723 46 71 102.9 1197.25 114 34 1 2 28 1 73 2 9 +3724 46 72 107.1 1197.25 114 36 1 2 28 1 75 2 11 +3725 46 73 111.3 1197.25 118 33 1 2 29 1 72 2 8 +3726 46 74 115.5 1197.25 118 31 1 2 29 1 70 2 6 +3727 46 75 119.7 1197.25 118 29 1 2 29 1 68 2 4 +3728 46 76 123.9 1197.25 118 32 1 2 29 1 71 2 7 +3729 46 77 128.1 1197.25 118 34 1 2 29 1 73 2 9 +3730 46 78 132.3 1197.25 122 33 1 2 30 1 72 2 8 +3731 46 79 136.5 1197.25 122 31 1 2 30 1 70 2 6 +3732 46 80 140.7 1197.25 122 29 1 2 30 1 68 2 4 +3733 46 81 144.9 1197.25 122 32 1 2 30 1 71 2 7 +3734 46 82 149.1 1197.25 122 34 1 2 30 1 73 2 9 +3735 46 83 153.3 1197.25 122 36 1 2 30 1 75 2 11 +3736 46 84 157.5 1197.25 126 35 1 2 31 1 74 2 10 +3737 46 85 161.7 1197.25 126 33 1 2 31 1 72 2 8 +3738 46 86 165.9 1197.25 126 31 1 2 31 1 70 2 6 +3739 46 87 170.1 1197.25 126 32 1 2 31 1 71 2 7 +3740 46 88 174.3 1197.25 126 34 1 2 31 1 73 2 9 +3741 46 89 178.5 1197.25 130 33 1 2 32 1 72 2 8 +3742 46 90 182.7 1197.25 130 31 1 2 32 1 70 2 6 +3743 46 91 186.9 1197.25 130 32 1 2 32 1 71 2 7 +3744 46 92 191.1 1197.25 130 34 1 2 32 1 73 2 9 +3745 46 93 195.3 1197.25 130 36 1 2 32 1 75 2 11 +3746 47 0 -195.3 1204.75 62 39 1 2 15 1 78 2 14 +3747 47 1 -191.1 1204.75 62 37 1 2 15 1 76 2 12 +3748 47 2 -186.9 1204.75 62 36 1 2 15 1 75 2 11 +3749 47 3 -182.7 1204.75 62 38 1 2 15 1 77 2 13 +3750 47 4 -178.5 1204.75 62 40 1 2 15 1 79 2 15 +3751 47 5 -174.3 1204.75 66 39 1 2 16 1 78 2 14 +3752 47 6 -170.1 1204.75 66 37 1 2 16 1 76 2 12 +3753 47 7 -165.9 1204.75 66 35 1 2 16 1 74 2 10 +3754 47 8 -161.7 1204.75 66 38 1 2 16 1 77 2 13 +3755 47 9 -157.5 1204.75 66 40 1 2 16 1 79 2 15 +3756 47 10 -153.3 1204.75 70 39 1 2 17 1 78 2 14 +3757 47 11 -149.1 1204.75 70 37 1 2 17 1 76 2 12 +3758 47 12 -144.9 1204.75 70 36 1 2 17 1 75 2 11 +3759 47 13 -140.7 1204.75 70 38 1 2 17 1 77 2 13 +3760 47 14 -136.5 1204.75 70 40 1 2 17 1 79 2 15 +3761 47 15 -132.3 1204.75 74 39 1 2 18 1 78 2 14 +3762 47 16 -128.1 1204.75 74 37 1 2 18 1 76 2 12 +3763 47 17 -123.9 1204.75 74 35 1 2 18 1 74 2 10 +3764 47 18 -119.7 1204.75 74 36 1 2 18 1 75 2 11 +3765 47 19 -115.5 1204.75 74 38 1 2 18 1 77 2 13 +3766 47 20 -111.3 1204.75 74 40 1 2 18 1 79 2 15 +3767 47 21 -107.1 1204.75 78 39 1 2 19 1 78 2 14 +3768 47 22 -102.9 1204.75 78 37 1 2 19 1 76 2 12 +3769 47 23 -98.7 1204.75 78 36 1 2 19 1 75 2 11 +3770 47 24 -94.5 1204.75 78 38 1 2 19 1 77 2 13 +3771 47 25 -90.3 1204.75 78 40 1 2 19 1 79 2 15 +3772 47 26 -86.1 1204.75 82 39 1 2 20 1 78 2 14 +3773 47 27 -81.9 1204.75 82 37 1 2 20 1 76 2 12 +3774 47 28 -77.7 1204.75 82 36 1 2 20 1 75 2 11 +3775 47 29 -73.5 1204.75 82 38 1 2 20 1 77 2 13 +3776 47 30 -69.3 1204.75 82 40 1 2 20 1 79 2 15 +3777 47 31 -65.1 1204.75 86 39 1 2 21 1 78 2 14 +3778 47 32 -60.9 1204.75 86 37 1 2 21 1 76 2 12 +3779 47 33 -56.7 1204.75 86 36 1 2 21 1 75 2 11 +3780 47 34 -52.5 1204.75 86 38 1 2 21 1 77 2 13 +3781 47 35 -48.3 1204.75 86 40 1 2 21 1 79 2 15 +3782 47 36 -44.1 1204.75 90 39 1 2 22 1 78 2 14 +3783 47 37 -39.9 1204.75 90 37 1 2 22 1 76 2 12 +3784 47 38 -35.7 1204.75 90 35 1 2 22 1 74 2 10 +3785 47 39 -31.5 1204.75 90 36 1 2 22 1 75 2 11 +3786 47 40 -27.3 1204.75 90 38 1 2 22 1 77 2 13 +3787 47 41 -23.1 1204.75 90 40 1 2 22 1 79 2 15 +3788 47 42 -18.9 1204.75 94 39 1 2 23 1 78 2 14 +3789 47 43 -14.7 1204.75 94 37 1 2 23 1 76 2 12 +3790 47 44 -10.5 1204.75 94 35 1 2 23 1 74 2 10 +3791 47 45 -6.3 1204.75 94 38 1 2 23 1 77 2 13 +3792 47 46 -2.1 1204.75 94 40 1 2 23 1 79 2 15 +3793 47 47 2.1 1204.75 98 39 1 2 24 1 78 2 14 +3794 47 48 6.3 1204.75 98 37 1 2 24 1 76 2 12 +3795 47 49 10.5 1204.75 98 36 1 2 24 1 75 2 11 +3796 47 50 14.7 1204.75 98 38 1 2 24 1 77 2 13 +3797 47 51 18.9 1204.75 98 40 1 2 24 1 79 2 15 +3798 47 52 23.1 1204.75 102 39 1 2 25 1 78 2 14 +3799 47 53 27.3 1204.75 102 37 1 2 25 1 76 2 12 +3800 47 54 31.5 1204.75 102 35 1 2 25 1 74 2 10 +3801 47 55 35.7 1204.75 102 36 1 2 25 1 75 2 11 +3802 47 56 39.9 1204.75 102 38 1 2 25 1 77 2 13 +3803 47 57 44.1 1204.75 102 40 1 2 25 1 79 2 15 +3804 47 58 48.3 1204.75 106 39 1 2 26 1 78 2 14 +3805 47 59 52.5 1204.75 106 37 1 2 26 1 76 2 12 +3806 47 60 56.7 1204.75 106 35 1 2 26 1 74 2 10 +3807 47 61 60.9 1204.75 106 38 1 2 26 1 77 2 13 +3808 47 62 65.1 1204.75 106 40 1 2 26 1 79 2 15 +3809 47 63 69.3 1204.75 110 39 1 2 27 1 78 2 14 +3810 47 64 73.5 1204.75 110 37 1 2 27 1 76 2 12 +3811 47 65 77.7 1204.75 110 35 1 2 27 1 74 2 10 +3812 47 66 81.9 1204.75 110 38 1 2 27 1 77 2 13 +3813 47 67 86.1 1204.75 110 40 1 2 27 1 79 2 15 +3814 47 68 90.3 1204.75 114 39 1 2 28 1 78 2 14 +3815 47 69 94.5 1204.75 114 37 1 2 28 1 76 2 12 +3816 47 70 98.7 1204.75 114 35 1 2 28 1 74 2 10 +3817 47 71 102.9 1204.75 114 38 1 2 28 1 77 2 13 +3818 47 72 107.1 1204.75 114 40 1 2 28 1 79 2 15 +3819 47 73 111.3 1204.75 118 39 1 2 29 1 78 2 14 +3820 47 74 115.5 1204.75 118 37 1 2 29 1 76 2 12 +3821 47 75 119.7 1204.75 118 35 1 2 29 1 74 2 10 +3822 47 76 123.9 1204.75 118 36 1 2 29 1 75 2 11 +3823 47 77 128.1 1204.75 118 38 1 2 29 1 77 2 13 +3824 47 78 132.3 1204.75 118 40 1 2 29 1 79 2 15 +3825 47 79 136.5 1204.75 122 39 1 2 30 1 78 2 14 +3826 47 80 140.7 1204.75 122 37 1 2 30 1 76 2 12 +3827 47 81 144.9 1204.75 122 35 1 2 30 1 74 2 10 +3828 47 82 149.1 1204.75 122 38 1 2 30 1 77 2 13 +3829 47 83 153.3 1204.75 122 40 1 2 30 1 79 2 15 +3830 47 84 157.5 1204.75 126 39 1 2 31 1 78 2 14 +3831 47 85 161.7 1204.75 126 37 1 2 31 1 76 2 12 +3832 47 86 165.9 1204.75 126 36 1 2 31 1 75 2 11 +3833 47 87 170.1 1204.75 126 38 1 2 31 1 77 2 13 +3834 47 88 174.3 1204.75 126 40 1 2 31 1 79 2 15 +3835 47 89 178.5 1204.75 130 39 1 2 32 1 78 2 14 +3836 47 90 182.7 1204.75 130 37 1 2 32 1 76 2 12 +3837 47 91 186.9 1204.75 130 35 1 2 32 1 74 2 10 +3838 47 92 191.1 1204.75 130 38 1 2 32 1 77 2 13 +3839 47 93 195.3 1204.75 130 40 1 2 32 1 79 2 15 +3840 48 0 -198.38 1212.25 63 3 1 3 15 2 82 2 18 +3841 48 1 -194.02 1212.25 63 1 1 3 15 2 80 2 16 +3842 48 2 -189.66 1212.25 63 2 1 3 15 2 81 2 17 +3843 48 3 -185.3 1212.25 63 4 1 3 15 2 83 2 19 +3844 48 4 -180.94 1212.25 63 6 1 3 15 2 85 2 21 +3845 48 5 -176.58 1212.25 67 3 1 3 16 2 82 2 18 +3846 48 6 -172.22 1212.25 67 1 1 3 16 2 80 2 16 +3847 48 7 -167.86 1212.25 67 2 1 3 16 2 81 2 17 +3848 48 8 -163.5 1212.25 67 4 1 3 16 2 83 2 19 +3849 48 9 -159.14 1212.25 67 6 1 3 16 2 85 2 21 +3850 48 10 -154.78 1212.25 71 5 1 3 17 2 84 2 20 +3851 48 11 -150.42 1212.25 71 3 1 3 17 2 82 2 18 +3852 48 12 -146.06 1212.25 71 1 1 3 17 2 80 2 16 +3853 48 13 -141.7 1212.25 71 2 1 3 17 2 81 2 17 +3854 48 14 -137.34 1212.25 71 4 1 3 17 2 83 2 19 +3855 48 15 -132.98 1212.25 75 5 1 3 18 2 84 2 20 +3856 48 16 -128.62 1212.25 75 3 1 3 18 2 82 2 18 +3857 48 17 -124.26 1212.25 75 1 1 3 18 2 80 2 16 +3858 48 18 -119.9 1212.25 75 2 1 3 18 2 81 2 17 +3859 48 19 -115.54 1212.25 75 4 1 3 18 2 83 2 19 +3860 48 20 -111.18 1212.25 75 6 1 3 18 2 85 2 21 +3861 48 21 -106.82 1212.25 79 3 1 3 19 2 82 2 18 +3862 48 22 -102.46 1212.25 79 1 1 3 19 2 80 2 16 +3863 48 23 -98.1 1212.25 79 2 1 3 19 2 81 2 17 +3864 48 24 -93.74 1212.25 79 4 1 3 19 2 83 2 19 +3865 48 25 -89.38 1212.25 79 6 1 3 19 2 85 2 21 +3866 48 26 -85.02 1212.25 83 5 1 3 20 2 84 2 20 +3867 48 27 -80.66 1212.25 83 3 1 3 20 2 82 2 18 +3868 48 28 -76.3 1212.25 83 1 1 3 20 2 80 2 16 +3869 48 29 -71.94 1212.25 83 2 1 3 20 2 81 2 17 +3870 48 30 -67.58 1212.25 83 4 1 3 20 2 83 2 19 +3871 48 31 -63.22 1212.25 87 5 1 3 21 2 84 2 20 +3872 48 32 -58.86 1212.25 87 3 1 3 21 2 82 2 18 +3873 48 33 -54.5 1212.25 87 1 1 3 21 2 80 2 16 +3874 48 34 -50.14 1212.25 87 2 1 3 21 2 81 2 17 +3875 48 35 -45.78 1212.25 87 4 1 3 21 2 83 2 19 +3876 48 36 -41.42 1212.25 91 3 1 3 22 2 82 2 18 +3877 48 37 -37.06 1212.25 91 1 1 3 22 2 80 2 16 +3878 48 38 -32.7 1212.25 91 2 1 3 22 2 81 2 17 +3879 48 39 -28.34 1212.25 91 4 1 3 22 2 83 2 19 +3880 48 40 -23.98 1212.25 91 6 1 3 22 2 85 2 21 +3881 48 41 -19.62 1212.25 95 3 1 3 23 2 82 2 18 +3882 48 42 -15.26 1212.25 95 1 1 3 23 2 80 2 16 +3883 48 43 -10.9 1212.25 95 2 1 3 23 2 81 2 17 +3884 48 44 -6.54 1212.25 95 4 1 3 23 2 83 2 19 +3885 48 45 -2.18 1212.25 95 6 1 3 23 2 85 2 21 +3886 48 46 2.18 1212.25 99 5 1 3 24 2 84 2 20 +3887 48 47 6.54 1212.25 99 3 1 3 24 2 82 2 18 +3888 48 48 10.9 1212.25 99 1 1 3 24 2 80 2 16 +3889 48 49 15.26 1212.25 99 2 1 3 24 2 81 2 17 +3890 48 50 19.62 1212.25 99 4 1 3 24 2 83 2 19 +3891 48 51 23.98 1212.25 103 5 1 3 25 2 84 2 20 +3892 48 52 28.34 1212.25 103 3 1 3 25 2 82 2 18 +3893 48 53 32.7 1212.25 103 1 1 3 25 2 80 2 16 +3894 48 54 37.06 1212.25 103 2 1 3 25 2 81 2 17 +3895 48 55 41.42 1212.25 103 4 1 3 25 2 83 2 19 +3896 48 56 45.78 1212.25 107 3 1 3 26 2 82 2 18 +3897 48 57 50.14 1212.25 107 1 1 3 26 2 80 2 16 +3898 48 58 54.5 1212.25 107 2 1 3 26 2 81 2 17 +3899 48 59 58.86 1212.25 107 4 1 3 26 2 83 2 19 +3900 48 60 63.22 1212.25 107 6 1 3 26 2 85 2 21 +3901 48 61 67.58 1212.25 111 3 1 3 27 2 82 2 18 +3902 48 62 71.94 1212.25 111 1 1 3 27 2 80 2 16 +3903 48 63 76.3 1212.25 111 2 1 3 27 2 81 2 17 +3904 48 64 80.66 1212.25 111 4 1 3 27 2 83 2 19 +3905 48 65 85.02 1212.25 111 6 1 3 27 2 85 2 21 +3906 48 66 89.38 1212.25 115 5 1 3 28 2 84 2 20 +3907 48 67 93.74 1212.25 115 3 1 3 28 2 82 2 18 +3908 48 68 98.1 1212.25 115 1 1 3 28 2 80 2 16 +3909 48 69 102.46 1212.25 115 2 1 3 28 2 81 2 17 +3910 48 70 106.82 1212.25 115 4 1 3 28 2 83 2 19 +3911 48 71 111.18 1212.25 119 5 1 3 29 2 84 2 20 +3912 48 72 115.54 1212.25 119 3 1 3 29 2 82 2 18 +3913 48 73 119.9 1212.25 119 1 1 3 29 2 80 2 16 +3914 48 74 124.26 1212.25 119 2 1 3 29 2 81 2 17 +3915 48 75 128.62 1212.25 119 4 1 3 29 2 83 2 19 +3916 48 76 132.98 1212.25 119 6 1 3 29 2 85 2 21 +3917 48 77 137.34 1212.25 123 3 1 3 30 2 82 2 18 +3918 48 78 141.7 1212.25 123 1 1 3 30 2 80 2 16 +3919 48 79 146.06 1212.25 123 2 1 3 30 2 81 2 17 +3920 48 80 150.42 1212.25 123 4 1 3 30 2 83 2 19 +3921 48 81 154.78 1212.25 123 6 1 3 30 2 85 2 21 +3922 48 82 159.14 1212.25 127 5 1 3 31 2 84 2 20 +3923 48 83 163.5 1212.25 127 3 1 3 31 2 82 2 18 +3924 48 84 167.86 1212.25 127 1 1 3 31 2 80 2 16 +3925 48 85 172.22 1212.25 127 2 1 3 31 2 81 2 17 +3926 48 86 176.58 1212.25 127 4 1 3 31 2 83 2 19 +3927 48 87 180.94 1212.25 131 5 1 3 32 2 84 2 20 +3928 48 88 185.3 1212.25 131 3 1 3 32 2 82 2 18 +3929 48 89 189.66 1212.25 131 1 1 3 32 2 80 2 16 +3930 48 90 194.02 1212.25 131 2 1 3 32 2 81 2 17 +3931 48 91 198.38 1212.25 131 4 1 3 32 2 83 2 19 +3932 49 0 -198.38 1219.75 63 9 1 3 15 2 88 2 24 +3933 49 1 -194.02 1219.75 63 7 1 3 15 2 86 2 22 +3934 49 2 -189.66 1219.75 63 5 1 3 15 2 84 2 20 +3935 49 3 -185.3 1219.75 63 8 1 3 15 2 87 2 23 +3936 49 4 -180.94 1219.75 63 10 1 3 15 2 89 2 25 +3937 49 5 -176.58 1219.75 67 9 1 3 16 2 88 2 24 +3938 49 6 -172.22 1219.75 67 7 1 3 16 2 86 2 22 +3939 49 7 -167.86 1219.75 67 5 1 3 16 2 84 2 20 +3940 49 8 -163.5 1219.75 67 8 1 3 16 2 87 2 23 +3941 49 9 -159.14 1219.75 67 10 1 3 16 2 89 2 25 +3942 49 10 -154.78 1219.75 71 9 1 3 17 2 88 2 24 +3943 49 11 -150.42 1219.75 71 7 1 3 17 2 86 2 22 +3944 49 12 -146.06 1219.75 71 6 1 3 17 2 85 2 21 +3945 49 13 -141.7 1219.75 71 8 1 3 17 2 87 2 23 +3946 49 14 -137.34 1219.75 71 10 1 3 17 2 89 2 25 +3947 49 15 -132.98 1219.75 75 9 1 3 18 2 88 2 24 +3948 49 16 -128.62 1219.75 75 7 1 3 18 2 86 2 22 +3949 49 17 -124.26 1219.75 75 8 1 3 18 2 87 2 23 +3950 49 18 -119.9 1219.75 75 10 1 3 18 2 89 2 25 +3951 49 19 -115.54 1219.75 75 12 1 3 18 2 91 2 27 +3952 49 20 -111.18 1219.75 79 9 1 3 19 2 88 2 24 +3953 49 21 -106.82 1219.75 79 7 1 3 19 2 86 2 22 +3954 49 22 -102.46 1219.75 79 5 1 3 19 2 84 2 20 +3955 49 23 -98.1 1219.75 79 8 1 3 19 2 87 2 23 +3956 49 24 -93.74 1219.75 79 10 1 3 19 2 89 2 25 +3957 49 25 -89.38 1219.75 83 11 1 3 20 2 90 2 26 +3958 49 26 -85.02 1219.75 83 9 1 3 20 2 88 2 24 +3959 49 27 -80.66 1219.75 83 7 1 3 20 2 86 2 22 +3960 49 28 -76.3 1219.75 83 6 1 3 20 2 85 2 21 +3961 49 29 -71.94 1219.75 83 8 1 3 20 2 87 2 23 +3962 49 30 -67.58 1219.75 83 10 1 3 20 2 89 2 25 +3963 49 31 -63.22 1219.75 87 9 1 3 21 2 88 2 24 +3964 49 32 -58.86 1219.75 87 7 1 3 21 2 86 2 22 +3965 49 33 -54.5 1219.75 87 6 1 3 21 2 85 2 21 +3966 49 34 -50.14 1219.75 87 8 1 3 21 2 87 2 23 +3967 49 35 -45.78 1219.75 87 10 1 3 21 2 89 2 25 +3968 49 36 -41.42 1219.75 91 9 1 3 22 2 88 2 24 +3969 49 37 -37.06 1219.75 91 7 1 3 22 2 86 2 22 +3970 49 38 -32.7 1219.75 91 5 1 3 22 2 84 2 20 +3971 49 39 -28.34 1219.75 91 8 1 3 22 2 87 2 23 +3972 49 40 -23.98 1219.75 91 10 1 3 22 2 89 2 25 +3973 49 41 -19.62 1219.75 95 9 1 3 23 2 88 2 24 +3974 49 42 -15.26 1219.75 95 7 1 3 23 2 86 2 22 +3975 49 43 -10.9 1219.75 95 5 1 3 23 2 84 2 20 +3976 49 44 -6.54 1219.75 95 8 1 3 23 2 87 2 23 +3977 49 45 -2.18 1219.75 95 10 1 3 23 2 89 2 25 +3978 49 46 2.18 1219.75 99 9 1 3 24 2 88 2 24 +3979 49 47 6.54 1219.75 99 7 1 3 24 2 86 2 22 +3980 49 48 10.9 1219.75 99 6 1 3 24 2 85 2 21 +3981 49 49 15.26 1219.75 99 8 1 3 24 2 87 2 23 +3982 49 50 19.62 1219.75 99 10 1 3 24 2 89 2 25 +3983 49 51 23.98 1219.75 103 9 1 3 25 2 88 2 24 +3984 49 52 28.34 1219.75 103 7 1 3 25 2 86 2 22 +3985 49 53 32.7 1219.75 103 6 1 3 25 2 85 2 21 +3986 49 54 37.06 1219.75 103 8 1 3 25 2 87 2 23 +3987 49 55 41.42 1219.75 103 10 1 3 25 2 89 2 25 +3988 49 56 45.78 1219.75 107 9 1 3 26 2 88 2 24 +3989 49 57 50.14 1219.75 107 7 1 3 26 2 86 2 22 +3990 49 58 54.5 1219.75 107 5 1 3 26 2 84 2 20 +3991 49 59 58.86 1219.75 107 8 1 3 26 2 87 2 23 +3992 49 60 63.22 1219.75 107 10 1 3 26 2 89 2 25 +3993 49 61 67.58 1219.75 111 9 1 3 27 2 88 2 24 +3994 49 62 71.94 1219.75 111 7 1 3 27 2 86 2 22 +3995 49 63 76.3 1219.75 111 5 1 3 27 2 84 2 20 +3996 49 64 80.66 1219.75 111 8 1 3 27 2 87 2 23 +3997 49 65 85.02 1219.75 111 10 1 3 27 2 89 2 25 +3998 49 66 89.38 1219.75 111 12 1 3 27 2 91 2 27 +3999 49 67 93.74 1219.75 115 9 1 3 28 2 88 2 24 +4000 49 68 98.1 1219.75 115 7 1 3 28 2 86 2 22 +4001 49 69 102.46 1219.75 115 6 1 3 28 2 85 2 21 +4002 49 70 106.82 1219.75 115 8 1 3 28 2 87 2 23 +4003 49 71 111.18 1219.75 115 10 1 3 28 2 89 2 25 +4004 49 72 115.54 1219.75 119 11 1 3 29 2 90 2 26 +4005 49 73 119.9 1219.75 119 9 1 3 29 2 88 2 24 +4006 49 74 124.26 1219.75 119 7 1 3 29 2 86 2 22 +4007 49 75 128.62 1219.75 119 8 1 3 29 2 87 2 23 +4008 49 76 132.98 1219.75 119 10 1 3 29 2 89 2 25 +4009 49 77 137.34 1219.75 123 9 1 3 30 2 88 2 24 +4010 49 78 141.7 1219.75 123 7 1 3 30 2 86 2 22 +4011 49 79 146.06 1219.75 123 5 1 3 30 2 84 2 20 +4012 49 80 150.42 1219.75 123 8 1 3 30 2 87 2 23 +4013 49 81 154.78 1219.75 123 10 1 3 30 2 89 2 25 +4014 49 82 159.14 1219.75 127 9 1 3 31 2 88 2 24 +4015 49 83 163.5 1219.75 127 7 1 3 31 2 86 2 22 +4016 49 84 167.86 1219.75 127 6 1 3 31 2 85 2 21 +4017 49 85 172.22 1219.75 127 8 1 3 31 2 87 2 23 +4018 49 86 176.58 1219.75 127 10 1 3 31 2 89 2 25 +4019 49 87 180.94 1219.75 131 9 1 3 32 2 88 2 24 +4020 49 88 185.3 1219.75 131 7 1 3 32 2 86 2 22 +4021 49 89 189.66 1219.75 131 6 1 3 32 2 85 2 21 +4022 49 90 194.02 1219.75 131 8 1 3 32 2 87 2 23 +4023 49 91 198.38 1219.75 131 10 1 3 32 2 89 2 25 +4024 50 0 -198.38 1227.25 63 13 1 3 15 2 92 2 28 +4025 50 1 -194.02 1227.25 63 11 1 3 15 2 90 2 26 +4026 50 2 -189.66 1227.25 63 12 1 3 15 2 91 2 27 +4027 50 3 -185.3 1227.25 63 14 1 3 15 2 93 2 29 +4028 50 4 -180.94 1227.25 63 16 1 3 15 2 95 2 31 +4029 50 5 -176.58 1227.25 67 13 1 3 16 2 92 2 28 +4030 50 6 -172.22 1227.25 67 11 1 3 16 2 90 2 26 +4031 50 7 -167.86 1227.25 67 12 1 3 16 2 91 2 27 +4032 50 8 -163.5 1227.25 67 14 1 3 16 2 93 2 29 +4033 50 9 -159.14 1227.25 67 16 1 3 16 2 95 2 31 +4034 50 10 -154.78 1227.25 71 15 1 3 17 2 94 2 30 +4035 50 11 -150.42 1227.25 71 13 1 3 17 2 92 2 28 +4036 50 12 -146.06 1227.25 71 11 1 3 17 2 90 2 26 +4037 50 13 -141.7 1227.25 71 12 1 3 17 2 91 2 27 +4038 50 14 -137.34 1227.25 71 14 1 3 17 2 93 2 29 +4039 50 15 -132.98 1227.25 75 15 1 3 18 2 94 2 30 +4040 50 16 -128.62 1227.25 75 13 1 3 18 2 92 2 28 +4041 50 17 -124.26 1227.25 75 11 1 3 18 2 90 2 26 +4042 50 18 -119.9 1227.25 75 14 1 3 18 2 93 2 29 +4043 50 19 -115.54 1227.25 75 16 1 3 18 2 95 2 31 +4044 50 20 -111.18 1227.25 79 13 1 3 19 2 92 2 28 +4045 50 21 -106.82 1227.25 79 11 1 3 19 2 90 2 26 +4046 50 22 -102.46 1227.25 79 12 1 3 19 2 91 2 27 +4047 50 23 -98.1 1227.25 79 14 1 3 19 2 93 2 29 +4048 50 24 -93.74 1227.25 79 16 1 3 19 2 95 2 31 +4049 50 25 -89.38 1227.25 83 17 1 3 20 2 96 3 0 +4050 50 26 -85.02 1227.25 83 15 1 3 20 2 94 2 30 +4051 50 27 -80.66 1227.25 83 13 1 3 20 2 92 2 28 +4052 50 28 -76.3 1227.25 83 12 1 3 20 2 91 2 27 +4053 50 29 -71.94 1227.25 83 14 1 3 20 2 93 2 29 +4054 50 30 -67.58 1227.25 83 16 1 3 20 2 95 2 31 +4055 50 31 -63.22 1227.25 87 13 1 3 21 2 92 2 28 +4056 50 32 -58.86 1227.25 87 11 1 3 21 2 90 2 26 +4057 50 33 -54.5 1227.25 87 12 1 3 21 2 91 2 27 +4058 50 34 -50.14 1227.25 87 14 1 3 21 2 93 2 29 +4059 50 35 -45.78 1227.25 87 16 1 3 21 2 95 2 31 +4060 50 36 -41.42 1227.25 91 13 1 3 22 2 92 2 28 +4061 50 37 -37.06 1227.25 91 11 1 3 22 2 90 2 26 +4062 50 38 -32.7 1227.25 91 12 1 3 22 2 91 2 27 +4063 50 39 -28.34 1227.25 91 14 1 3 22 2 93 2 29 +4064 50 40 -23.98 1227.25 91 16 1 3 22 2 95 2 31 +4065 50 41 -19.62 1227.25 95 13 1 3 23 2 92 2 28 +4066 50 42 -15.26 1227.25 95 11 1 3 23 2 90 2 26 +4067 50 43 -10.9 1227.25 95 12 1 3 23 2 91 2 27 +4068 50 44 -6.54 1227.25 95 14 1 3 23 2 93 2 29 +4069 50 45 -2.18 1227.25 95 16 1 3 23 2 95 2 31 +4070 50 46 2.18 1227.25 99 15 1 3 24 2 94 2 30 +4071 50 47 6.54 1227.25 99 13 1 3 24 2 92 2 28 +4072 50 48 10.9 1227.25 99 11 1 3 24 2 90 2 26 +4073 50 49 15.26 1227.25 99 12 1 3 24 2 91 2 27 +4074 50 50 19.62 1227.25 99 14 1 3 24 2 93 2 29 +4075 50 51 23.98 1227.25 103 15 1 3 25 2 94 2 30 +4076 50 52 28.34 1227.25 103 13 1 3 25 2 92 2 28 +4077 50 53 32.7 1227.25 103 11 1 3 25 2 90 2 26 +4078 50 54 37.06 1227.25 103 12 1 3 25 2 91 2 27 +4079 50 55 41.42 1227.25 103 14 1 3 25 2 93 2 29 +4080 50 56 45.78 1227.25 107 15 1 3 26 2 94 2 30 +4081 50 57 50.14 1227.25 107 13 1 3 26 2 92 2 28 +4082 50 58 54.5 1227.25 107 11 1 3 26 2 90 2 26 +4083 50 59 58.86 1227.25 107 12 1 3 26 2 91 2 27 +4084 50 60 63.22 1227.25 107 14 1 3 26 2 93 2 29 +4085 50 61 67.58 1227.25 111 15 1 3 27 2 94 2 30 +4086 50 62 71.94 1227.25 111 13 1 3 27 2 92 2 28 +4087 50 63 76.3 1227.25 111 11 1 3 27 2 90 2 26 +4088 50 64 80.66 1227.25 111 14 1 3 27 2 93 2 29 +4089 50 65 85.02 1227.25 111 16 1 3 27 2 95 2 31 +4090 50 66 89.38 1227.25 111 18 1 3 27 2 97 3 1 +4091 50 67 93.74 1227.25 115 15 1 3 28 2 94 2 30 +4092 50 68 98.1 1227.25 115 13 1 3 28 2 92 2 28 +4093 50 69 102.46 1227.25 115 11 1 3 28 2 90 2 26 +4094 50 70 106.82 1227.25 115 12 1 3 28 2 91 2 27 +4095 50 71 111.18 1227.25 115 14 1 3 28 2 93 2 29 +4096 50 72 115.54 1227.25 119 15 1 3 29 2 94 2 30 +4097 50 73 119.9 1227.25 119 13 1 3 29 2 92 2 28 +4098 50 74 124.26 1227.25 119 12 1 3 29 2 91 2 27 +4099 50 75 128.62 1227.25 119 14 1 3 29 2 93 2 29 +4100 50 76 132.98 1227.25 119 16 1 3 29 2 95 2 31 +4101 50 77 137.34 1227.25 123 13 1 3 30 2 92 2 28 +4102 50 78 141.7 1227.25 123 11 1 3 30 2 90 2 26 +4103 50 79 146.06 1227.25 123 12 1 3 30 2 91 2 27 +4104 50 80 150.42 1227.25 123 14 1 3 30 2 93 2 29 +4105 50 81 154.78 1227.25 123 16 1 3 30 2 95 2 31 +4106 50 82 159.14 1227.25 127 15 1 3 31 2 94 2 30 +4107 50 83 163.5 1227.25 127 13 1 3 31 2 92 2 28 +4108 50 84 167.86 1227.25 127 11 1 3 31 2 90 2 26 +4109 50 85 172.22 1227.25 127 12 1 3 31 2 91 2 27 +4110 50 86 176.58 1227.25 127 14 1 3 31 2 93 2 29 +4111 50 87 180.94 1227.25 131 15 1 3 32 2 94 2 30 +4112 50 88 185.3 1227.25 131 13 1 3 32 2 92 2 28 +4113 50 89 189.66 1227.25 131 11 1 3 32 2 90 2 26 +4114 50 90 194.02 1227.25 131 12 1 3 32 2 91 2 27 +4115 50 91 198.38 1227.25 131 14 1 3 32 2 93 2 29 +4116 51 0 -202.74 1234.75 63 19 1 3 15 2 98 3 2 +4117 51 1 -198.38 1234.75 63 17 1 3 15 2 96 3 0 +4118 51 2 -194.02 1234.75 63 15 1 3 15 2 94 2 30 +4119 51 3 -189.66 1234.75 63 18 1 3 15 2 97 3 1 +4120 51 4 -185.3 1234.75 63 20 1 3 15 2 99 3 3 +4121 51 5 -180.94 1234.75 67 19 1 3 16 2 98 3 2 +4122 51 6 -176.58 1234.75 67 17 1 3 16 2 96 3 0 +4123 51 7 -172.22 1234.75 67 15 1 3 16 2 94 2 30 +4124 51 8 -167.86 1234.75 67 18 1 3 16 2 97 3 1 +4125 51 9 -163.5 1234.75 67 20 1 3 16 2 99 3 3 +4126 51 10 -159.14 1234.75 67 22 1 3 16 2 101 3 5 +4127 51 11 -154.78 1234.75 71 19 1 3 17 2 98 3 2 +4128 51 12 -150.42 1234.75 71 17 1 3 17 2 96 3 0 +4129 51 13 -146.06 1234.75 71 16 1 3 17 2 95 2 31 +4130 51 14 -141.7 1234.75 71 18 1 3 17 2 97 3 1 +4131 51 15 -137.34 1234.75 71 20 1 3 17 2 99 3 3 +4132 51 16 -132.98 1234.75 75 19 1 3 18 2 98 3 2 +4133 51 17 -128.62 1234.75 75 17 1 3 18 2 96 3 0 +4134 51 18 -124.26 1234.75 75 18 1 3 18 2 97 3 1 +4135 51 19 -119.9 1234.75 75 20 1 3 18 2 99 3 3 +4136 51 20 -115.54 1234.75 75 22 1 3 18 2 101 3 5 +4137 51 21 -111.18 1234.75 79 19 1 3 19 2 98 3 2 +4138 51 22 -106.82 1234.75 79 17 1 3 19 2 96 3 0 +4139 51 23 -102.46 1234.75 79 15 1 3 19 2 94 2 30 +4140 51 24 -98.1 1234.75 79 18 1 3 19 2 97 3 1 +4141 51 25 -93.74 1234.75 79 20 1 3 19 2 99 3 3 +4142 51 26 -89.38 1234.75 83 21 1 3 20 2 100 3 4 +4143 51 27 -85.02 1234.75 83 19 1 3 20 2 98 3 2 +4144 51 28 -80.66 1234.75 83 18 1 3 20 2 97 3 1 +4145 51 29 -76.3 1234.75 83 20 1 3 20 2 99 3 3 +4146 51 30 -71.94 1234.75 83 22 1 3 20 2 101 3 5 +4147 51 31 -67.58 1234.75 87 19 1 3 21 2 98 3 2 +4148 51 32 -63.22 1234.75 87 17 1 3 21 2 96 3 0 +4149 51 33 -58.86 1234.75 87 15 1 3 21 2 94 2 30 +4150 51 34 -54.5 1234.75 87 18 1 3 21 2 97 3 1 +4151 51 35 -50.14 1234.75 87 20 1 3 21 2 99 3 3 +4152 51 36 -45.78 1234.75 87 22 1 3 21 2 101 3 5 +4153 51 37 -41.42 1234.75 91 19 1 3 22 2 98 3 2 +4154 51 38 -37.06 1234.75 91 17 1 3 22 2 96 3 0 +4155 51 39 -32.7 1234.75 91 15 1 3 22 2 94 2 30 +4156 51 40 -28.34 1234.75 91 18 1 3 22 2 97 3 1 +4157 51 41 -23.98 1234.75 91 20 1 3 22 2 99 3 3 +4158 51 42 -19.62 1234.75 95 19 1 3 23 2 98 3 2 +4159 51 43 -15.26 1234.75 95 17 1 3 23 2 96 3 0 +4160 51 44 -10.9 1234.75 95 15 1 3 23 2 94 2 30 +4161 51 45 -6.54 1234.75 95 18 1 3 23 2 97 3 1 +4162 51 46 -2.18 1234.75 95 20 1 3 23 2 99 3 3 +4163 51 47 2.18 1234.75 99 19 1 3 24 2 98 3 2 +4164 51 48 6.54 1234.75 99 17 1 3 24 2 96 3 0 +4165 51 49 10.9 1234.75 99 16 1 3 24 2 95 2 31 +4166 51 50 15.26 1234.75 99 18 1 3 24 2 97 3 1 +4167 51 51 19.62 1234.75 99 20 1 3 24 2 99 3 3 +4168 51 52 23.98 1234.75 103 19 1 3 25 2 98 3 2 +4169 51 53 28.34 1234.75 103 17 1 3 25 2 96 3 0 +4170 51 54 32.7 1234.75 103 16 1 3 25 2 95 2 31 +4171 51 55 37.06 1234.75 103 18 1 3 25 2 97 3 1 +4172 51 56 41.42 1234.75 103 20 1 3 25 2 99 3 3 +4173 51 57 45.78 1234.75 107 21 1 3 26 2 100 3 4 +4174 51 58 50.14 1234.75 107 19 1 3 26 2 98 3 2 +4175 51 59 54.5 1234.75 107 17 1 3 26 2 96 3 0 +4176 51 60 58.86 1234.75 107 16 1 3 26 2 95 2 31 +4177 51 61 63.22 1234.75 107 18 1 3 26 2 97 3 1 +4178 51 62 67.58 1234.75 107 20 1 3 26 2 99 3 3 +4179 51 63 71.94 1234.75 111 21 1 3 27 2 100 3 4 +4180 51 64 76.3 1234.75 111 19 1 3 27 2 98 3 2 +4181 51 65 80.66 1234.75 111 17 1 3 27 2 96 3 0 +4182 51 66 85.02 1234.75 111 20 1 3 27 2 99 3 3 +4183 51 67 89.38 1234.75 111 22 1 3 27 2 101 3 5 +4184 51 68 93.74 1234.75 115 19 1 3 28 2 98 3 2 +4185 51 69 98.1 1234.75 115 17 1 3 28 2 96 3 0 +4186 51 70 102.46 1234.75 115 16 1 3 28 2 95 2 31 +4187 51 71 106.82 1234.75 115 18 1 3 28 2 97 3 1 +4188 51 72 111.18 1234.75 115 20 1 3 28 2 99 3 3 +4189 51 73 115.54 1234.75 119 21 1 3 29 2 100 3 4 +4190 51 74 119.9 1234.75 119 19 1 3 29 2 98 3 2 +4191 51 75 124.26 1234.75 119 17 1 3 29 2 96 3 0 +4192 51 76 128.62 1234.75 119 18 1 3 29 2 97 3 1 +4193 51 77 132.98 1234.75 119 20 1 3 29 2 99 3 3 +4194 51 78 137.34 1234.75 123 19 1 3 30 2 98 3 2 +4195 51 79 141.7 1234.75 123 17 1 3 30 2 96 3 0 +4196 51 80 146.06 1234.75 123 15 1 3 30 2 94 2 30 +4197 51 81 150.42 1234.75 123 18 1 3 30 2 97 3 1 +4198 51 82 154.78 1234.75 123 20 1 3 30 2 99 3 3 +4199 51 83 159.14 1234.75 127 21 1 3 31 2 100 3 4 +4200 51 84 163.5 1234.75 127 19 1 3 31 2 98 3 2 +4201 51 85 167.86 1234.75 127 17 1 3 31 2 96 3 0 +4202 51 86 172.22 1234.75 127 16 1 3 31 2 95 2 31 +4203 51 87 176.58 1234.75 127 18 1 3 31 2 97 3 1 +4204 51 88 180.94 1234.75 127 20 1 3 31 2 99 3 3 +4205 51 89 185.3 1234.75 131 19 1 3 32 2 98 3 2 +4206 51 90 189.66 1234.75 131 17 1 3 32 2 96 3 0 +4207 51 91 194.02 1234.75 131 16 1 3 32 2 95 2 31 +4208 51 92 198.38 1234.75 131 18 1 3 32 2 97 3 1 +4209 51 93 202.74 1234.75 131 20 1 3 32 2 99 3 3 +4210 52 0 -202.74 1242.25 63 25 1 3 15 2 104 3 8 +4211 52 1 -198.38 1242.25 63 23 1 3 15 2 102 3 6 +4212 52 2 -194.02 1242.25 63 21 1 3 15 2 100 3 4 +4213 52 3 -189.66 1242.25 63 22 1 3 15 2 101 3 5 +4214 52 4 -185.3 1242.25 63 24 1 3 15 2 103 3 7 +4215 52 5 -180.94 1242.25 67 25 1 3 16 2 104 3 8 +4216 52 6 -176.58 1242.25 67 23 1 3 16 2 102 3 6 +4217 52 7 -172.22 1242.25 67 21 1 3 16 2 100 3 4 +4218 52 8 -167.86 1242.25 67 24 1 3 16 2 103 3 7 +4219 52 9 -163.5 1242.25 67 26 1 3 16 2 105 3 9 +4220 52 10 -159.14 1242.25 71 25 1 3 17 2 104 3 8 +4221 52 11 -154.78 1242.25 71 23 1 3 17 2 102 3 6 +4222 52 12 -150.42 1242.25 71 21 1 3 17 2 100 3 4 +4223 52 13 -146.06 1242.25 71 22 1 3 17 2 101 3 5 +4224 52 14 -141.7 1242.25 71 24 1 3 17 2 103 3 7 +4225 52 15 -137.34 1242.25 71 26 1 3 17 2 105 3 9 +4226 52 16 -132.98 1242.25 75 25 1 3 18 2 104 3 8 +4227 52 17 -128.62 1242.25 75 23 1 3 18 2 102 3 6 +4228 52 18 -124.26 1242.25 75 21 1 3 18 2 100 3 4 +4229 52 19 -119.9 1242.25 75 24 1 3 18 2 103 3 7 +4230 52 20 -115.54 1242.25 75 26 1 3 18 2 105 3 9 +4231 52 21 -111.18 1242.25 79 23 1 3 19 2 102 3 6 +4232 52 22 -106.82 1242.25 79 21 1 3 19 2 100 3 4 +4233 52 23 -102.46 1242.25 79 22 1 3 19 2 101 3 5 +4234 52 24 -98.1 1242.25 79 24 1 3 19 2 103 3 7 +4235 52 25 -93.74 1242.25 79 26 1 3 19 2 105 3 9 +4236 52 26 -89.38 1242.25 83 27 1 3 20 2 106 3 10 +4237 52 27 -85.02 1242.25 83 25 1 3 20 2 104 3 8 +4238 52 28 -80.66 1242.25 83 23 1 3 20 2 102 3 6 +4239 52 29 -76.3 1242.25 83 24 1 3 20 2 103 3 7 +4240 52 30 -71.94 1242.25 83 26 1 3 20 2 105 3 9 +4241 52 31 -67.58 1242.25 87 25 1 3 21 2 104 3 8 +4242 52 32 -63.22 1242.25 87 23 1 3 21 2 102 3 6 +4243 52 33 -58.86 1242.25 87 21 1 3 21 2 100 3 4 +4244 52 34 -54.5 1242.25 87 24 1 3 21 2 103 3 7 +4245 52 35 -50.14 1242.25 87 26 1 3 21 2 105 3 9 +4246 52 36 -45.78 1242.25 87 28 1 3 21 2 107 3 11 +4247 52 37 -41.42 1242.25 91 25 1 3 22 2 104 3 8 +4248 52 38 -37.06 1242.25 91 23 1 3 22 2 102 3 6 +4249 52 39 -32.7 1242.25 91 21 1 3 22 2 100 3 4 +4250 52 40 -28.34 1242.25 91 22 1 3 22 2 101 3 5 +4251 52 41 -23.98 1242.25 91 24 1 3 22 2 103 3 7 +4252 52 42 -19.62 1242.25 95 23 1 3 23 2 102 3 6 +4253 52 43 -15.26 1242.25 95 21 1 3 23 2 100 3 4 +4254 52 44 -10.9 1242.25 95 22 1 3 23 2 101 3 5 +4255 52 45 -6.54 1242.25 95 24 1 3 23 2 103 3 7 +4256 52 46 -2.18 1242.25 95 26 1 3 23 2 105 3 9 +4257 52 47 2.18 1242.25 99 25 1 3 24 2 104 3 8 +4258 52 48 6.54 1242.25 99 23 1 3 24 2 102 3 6 +4259 52 49 10.9 1242.25 99 21 1 3 24 2 100 3 4 +4260 52 50 15.26 1242.25 99 22 1 3 24 2 101 3 5 +4261 52 51 19.62 1242.25 99 24 1 3 24 2 103 3 7 +4262 52 52 23.98 1242.25 103 23 1 3 25 2 102 3 6 +4263 52 53 28.34 1242.25 103 21 1 3 25 2 100 3 4 +4264 52 54 32.7 1242.25 103 22 1 3 25 2 101 3 5 +4265 52 55 37.06 1242.25 103 24 1 3 25 2 103 3 7 +4266 52 56 41.42 1242.25 103 26 1 3 25 2 105 3 9 +4267 52 57 45.78 1242.25 107 27 1 3 26 2 106 3 10 +4268 52 58 50.14 1242.25 107 25 1 3 26 2 104 3 8 +4269 52 59 54.5 1242.25 107 23 1 3 26 2 102 3 6 +4270 52 60 58.86 1242.25 107 22 1 3 26 2 101 3 5 +4271 52 61 63.22 1242.25 107 24 1 3 26 2 103 3 7 +4272 52 62 67.58 1242.25 107 26 1 3 26 2 105 3 9 +4273 52 63 71.94 1242.25 111 25 1 3 27 2 104 3 8 +4274 52 64 76.3 1242.25 111 23 1 3 27 2 102 3 6 +4275 52 65 80.66 1242.25 111 24 1 3 27 2 103 3 7 +4276 52 66 85.02 1242.25 111 26 1 3 27 2 105 3 9 +4277 52 67 89.38 1242.25 111 28 1 3 27 2 107 3 11 +4278 52 68 93.74 1242.25 115 25 1 3 28 2 104 3 8 +4279 52 69 98.1 1242.25 115 23 1 3 28 2 102 3 6 +4280 52 70 102.46 1242.25 115 21 1 3 28 2 100 3 4 +4281 52 71 106.82 1242.25 115 22 1 3 28 2 101 3 5 +4282 52 72 111.18 1242.25 115 24 1 3 28 2 103 3 7 +4283 52 73 115.54 1242.25 119 25 1 3 29 2 104 3 8 +4284 52 74 119.9 1242.25 119 23 1 3 29 2 102 3 6 +4285 52 75 124.26 1242.25 119 22 1 3 29 2 101 3 5 +4286 52 76 128.62 1242.25 119 24 1 3 29 2 103 3 7 +4287 52 77 132.98 1242.25 119 26 1 3 29 2 105 3 9 +4288 52 78 137.34 1242.25 123 25 1 3 30 2 104 3 8 +4289 52 79 141.7 1242.25 123 23 1 3 30 2 102 3 6 +4290 52 80 146.06 1242.25 123 21 1 3 30 2 100 3 4 +4291 52 81 150.42 1242.25 123 22 1 3 30 2 101 3 5 +4292 52 82 154.78 1242.25 123 24 1 3 30 2 103 3 7 +4293 52 83 159.14 1242.25 123 26 1 3 30 2 105 3 9 +4294 52 84 163.5 1242.25 127 25 1 3 31 2 104 3 8 +4295 52 85 167.86 1242.25 127 23 1 3 31 2 102 3 6 +4296 52 86 172.22 1242.25 127 22 1 3 31 2 101 3 5 +4297 52 87 176.58 1242.25 127 24 1 3 31 2 103 3 7 +4298 52 88 180.94 1242.25 127 26 1 3 31 2 105 3 9 +4299 52 89 185.3 1242.25 131 23 1 3 32 2 102 3 6 +4300 52 90 189.66 1242.25 131 21 1 3 32 2 100 3 4 +4301 52 91 194.02 1242.25 131 22 1 3 32 2 101 3 5 +4302 52 92 198.38 1242.25 131 24 1 3 32 2 103 3 7 +4303 52 93 202.74 1242.25 131 26 1 3 32 2 105 3 9 +4304 53 0 -202.74 1249.75 63 29 1 3 15 2 108 3 12 +4305 53 1 -198.38 1249.75 63 27 1 3 15 2 106 3 10 +4306 53 2 -194.02 1249.75 63 26 1 3 15 2 105 3 9 +4307 53 3 -189.66 1249.75 63 28 1 3 15 2 107 3 11 +4308 53 4 -185.3 1249.75 63 30 1 3 15 2 109 3 13 +4309 53 5 -180.94 1249.75 67 29 1 3 16 2 108 3 12 +4310 53 6 -176.58 1249.75 67 27 1 3 16 2 106 3 10 +4311 53 7 -172.22 1249.75 67 28 1 3 16 2 107 3 11 +4312 53 8 -167.86 1249.75 67 30 1 3 16 2 109 3 13 +4313 53 9 -163.5 1249.75 67 32 1 3 16 2 111 3 15 +4314 53 10 -159.14 1249.75 71 31 1 3 17 2 110 3 14 +4315 53 11 -154.78 1249.75 71 29 1 3 17 2 108 3 12 +4316 53 12 -150.42 1249.75 71 27 1 3 17 2 106 3 10 +4317 53 13 -146.06 1249.75 71 28 1 3 17 2 107 3 11 +4318 53 14 -141.7 1249.75 71 30 1 3 17 2 109 3 13 +4319 53 15 -137.34 1249.75 75 31 1 3 18 2 110 3 14 +4320 53 16 -132.98 1249.75 75 29 1 3 18 2 108 3 12 +4321 53 17 -128.62 1249.75 75 27 1 3 18 2 106 3 10 +4322 53 18 -124.26 1249.75 75 28 1 3 18 2 107 3 11 +4323 53 19 -119.9 1249.75 75 30 1 3 18 2 109 3 13 +4324 53 20 -115.54 1249.75 75 32 1 3 18 2 111 3 15 +4325 53 21 -111.18 1249.75 79 29 1 3 19 2 108 3 12 +4326 53 22 -106.82 1249.75 79 27 1 3 19 2 106 3 10 +4327 53 23 -102.46 1249.75 79 25 1 3 19 2 104 3 8 +4328 53 24 -98.1 1249.75 79 28 1 3 19 2 107 3 11 +4329 53 25 -93.74 1249.75 79 30 1 3 19 2 109 3 13 +4330 53 26 -89.38 1249.75 83 31 1 3 20 2 110 3 14 +4331 53 27 -85.02 1249.75 83 29 1 3 20 2 108 3 12 +4332 53 28 -80.66 1249.75 83 28 1 3 20 2 107 3 11 +4333 53 29 -76.3 1249.75 83 30 1 3 20 2 109 3 13 +4334 53 30 -71.94 1249.75 83 32 1 3 20 2 111 3 15 +4335 53 31 -67.58 1249.75 87 31 1 3 21 2 110 3 14 +4336 53 32 -63.22 1249.75 87 29 1 3 21 2 108 3 12 +4337 53 33 -58.86 1249.75 87 27 1 3 21 2 106 3 10 +4338 53 34 -54.5 1249.75 87 30 1 3 21 2 109 3 13 +4339 53 35 -50.14 1249.75 87 32 1 3 21 2 111 3 15 +4340 53 36 -45.78 1249.75 91 33 1 3 22 2 112 3 16 +4341 53 37 -41.42 1249.75 91 31 1 3 22 2 110 3 14 +4342 53 38 -37.06 1249.75 91 29 1 3 22 2 108 3 12 +4343 53 39 -32.7 1249.75 91 27 1 3 22 2 106 3 10 +4344 53 40 -28.34 1249.75 91 26 1 3 22 2 105 3 9 +4345 53 41 -23.98 1249.75 91 28 1 3 22 2 107 3 11 +4346 53 42 -19.62 1249.75 95 29 1 3 23 2 108 3 12 +4347 53 43 -15.26 1249.75 95 27 1 3 23 2 106 3 10 +4348 53 44 -10.9 1249.75 95 25 1 3 23 2 104 3 8 +4349 53 45 -6.54 1249.75 95 28 1 3 23 2 107 3 11 +4350 53 46 -2.18 1249.75 95 30 1 3 23 2 109 3 13 +4351 53 47 2.18 1249.75 99 29 1 3 24 2 108 3 12 +4352 53 48 6.54 1249.75 99 27 1 3 24 2 106 3 10 +4353 53 49 10.9 1249.75 99 26 1 3 24 2 105 3 9 +4354 53 50 15.26 1249.75 99 28 1 3 24 2 107 3 11 +4355 53 51 19.62 1249.75 99 30 1 3 24 2 109 3 13 +4356 53 52 23.98 1249.75 103 27 1 3 25 2 106 3 10 +4357 53 53 28.34 1249.75 103 25 1 3 25 2 104 3 8 +4358 53 54 32.7 1249.75 103 28 1 3 25 2 107 3 11 +4359 53 55 37.06 1249.75 103 30 1 3 25 2 109 3 13 +4360 53 56 41.42 1249.75 103 32 1 3 25 2 111 3 15 +4361 53 57 45.78 1249.75 103 34 1 3 25 2 113 3 17 +4362 53 58 50.14 1249.75 107 31 1 3 26 2 110 3 14 +4363 53 59 54.5 1249.75 107 29 1 3 26 2 108 3 12 +4364 53 60 58.86 1249.75 107 28 1 3 26 2 107 3 11 +4365 53 61 63.22 1249.75 107 30 1 3 26 2 109 3 13 +4366 53 62 67.58 1249.75 107 32 1 3 26 2 111 3 15 +4367 53 63 71.94 1249.75 111 31 1 3 27 2 110 3 14 +4368 53 64 76.3 1249.75 111 29 1 3 27 2 108 3 12 +4369 53 65 80.66 1249.75 111 27 1 3 27 2 106 3 10 +4370 53 66 85.02 1249.75 111 30 1 3 27 2 109 3 13 +4371 53 67 89.38 1249.75 111 32 1 3 27 2 111 3 15 +4372 53 68 93.74 1249.75 115 29 1 3 28 2 108 3 12 +4373 53 69 98.1 1249.75 115 27 1 3 28 2 106 3 10 +4374 53 70 102.46 1249.75 115 26 1 3 28 2 105 3 9 +4375 53 71 106.82 1249.75 115 28 1 3 28 2 107 3 11 +4376 53 72 111.18 1249.75 115 30 1 3 28 2 109 3 13 +4377 53 73 115.54 1249.75 119 31 1 3 29 2 110 3 14 +4378 53 74 119.9 1249.75 119 29 1 3 29 2 108 3 12 +4379 53 75 124.26 1249.75 119 27 1 3 29 2 106 3 10 +4380 53 76 128.62 1249.75 119 28 1 3 29 2 107 3 11 +4381 53 77 132.98 1249.75 119 30 1 3 29 2 109 3 13 +4382 53 78 137.34 1249.75 119 32 1 3 29 2 111 3 15 +4383 53 79 141.7 1249.75 123 29 1 3 30 2 108 3 12 +4384 53 80 146.06 1249.75 123 27 1 3 30 2 106 3 10 +4385 53 81 150.42 1249.75 123 28 1 3 30 2 107 3 11 +4386 53 82 154.78 1249.75 123 30 1 3 30 2 109 3 13 +4387 53 83 159.14 1249.75 123 32 1 3 30 2 111 3 15 +4388 53 84 163.5 1249.75 127 31 1 3 31 2 110 3 14 +4389 53 85 167.86 1249.75 127 29 1 3 31 2 108 3 12 +4390 53 86 172.22 1249.75 127 27 1 3 31 2 106 3 10 +4391 53 87 176.58 1249.75 127 28 1 3 31 2 107 3 11 +4392 53 88 180.94 1249.75 127 30 1 3 31 2 109 3 13 +4393 53 89 185.3 1249.75 131 29 1 3 32 2 108 3 12 +4394 53 90 189.66 1249.75 131 27 1 3 32 2 106 3 10 +4395 53 91 194.02 1249.75 131 25 1 3 32 2 104 3 8 +4396 53 92 198.38 1249.75 131 28 1 3 32 2 107 3 11 +4397 53 93 202.74 1249.75 131 30 1 3 32 2 109 3 13 +4398 54 0 -207.1 1257.25 63 35 1 3 15 2 114 3 18 +4399 54 1 -202.74 1257.25 63 33 1 3 15 2 112 3 16 +4400 54 2 -198.38 1257.25 63 31 1 3 15 2 110 3 14 +4401 54 3 -194.02 1257.25 63 32 1 3 15 2 111 3 15 +4402 54 4 -189.66 1257.25 63 34 1 3 15 2 113 3 17 +4403 54 5 -185.3 1257.25 63 36 1 3 15 2 115 3 19 +4404 54 6 -180.94 1257.25 67 35 1 3 16 2 114 3 18 +4405 54 7 -176.58 1257.25 67 33 1 3 16 2 112 3 16 +4406 54 8 -172.22 1257.25 67 31 1 3 16 2 110 3 14 +4407 54 9 -167.86 1257.25 67 34 1 3 16 2 113 3 17 +4408 54 10 -163.5 1257.25 67 36 1 3 16 2 115 3 19 +4409 54 11 -159.14 1257.25 71 35 1 3 17 2 114 3 18 +4410 54 12 -154.78 1257.25 71 33 1 3 17 2 112 3 16 +4411 54 13 -150.42 1257.25 71 32 1 3 17 2 111 3 15 +4412 54 14 -146.06 1257.25 71 34 1 3 17 2 113 3 17 +4413 54 15 -141.7 1257.25 71 36 1 3 17 2 115 3 19 +4414 54 16 -137.34 1257.25 75 39 1 3 18 2 118 3 22 +4415 54 17 -132.98 1257.25 75 37 1 3 18 2 116 3 20 +4416 54 18 -128.62 1257.25 75 35 1 3 18 2 114 3 18 +4417 54 19 -124.26 1257.25 75 33 1 3 18 2 112 3 16 +4418 54 20 -119.9 1257.25 75 34 1 3 18 2 113 3 17 +4419 54 21 -115.54 1257.25 75 36 1 3 18 2 115 3 19 +4420 54 22 -111.18 1257.25 79 33 1 3 19 2 112 3 16 +4421 54 23 -106.82 1257.25 79 31 1 3 19 2 110 3 14 +4422 54 24 -102.46 1257.25 79 32 1 3 19 2 111 3 15 +4423 54 25 -98.1 1257.25 79 34 1 3 19 2 113 3 17 +4424 54 26 -93.74 1257.25 79 36 1 3 19 2 115 3 19 +4425 54 27 -89.38 1257.25 83 37 1 3 20 2 116 3 20 +4426 54 28 -85.02 1257.25 83 35 1 3 20 2 114 3 18 +4427 54 29 -80.66 1257.25 83 33 1 3 20 2 112 3 16 +4428 54 30 -76.3 1257.25 83 34 1 3 20 2 113 3 17 +4429 54 31 -71.94 1257.25 83 36 1 3 20 2 115 3 19 +4430 54 32 -67.58 1257.25 87 35 1 3 21 2 114 3 18 +4431 54 33 -63.22 1257.25 87 33 1 3 21 2 112 3 16 +4432 54 34 -58.86 1257.25 87 34 1 3 21 2 113 3 17 +4433 54 35 -54.5 1257.25 87 36 1 3 21 2 115 3 19 +4434 54 36 -50.14 1257.25 87 38 1 3 21 2 117 3 21 +4435 54 37 -45.78 1257.25 91 39 1 3 22 2 118 3 22 +4436 54 38 -41.42 1257.25 91 37 1 3 22 2 116 3 20 +4437 54 39 -37.06 1257.25 91 35 1 3 22 2 114 3 18 +4438 54 40 -32.7 1257.25 91 30 1 3 22 2 109 3 13 +4439 54 41 -28.34 1257.25 91 32 1 3 22 2 111 3 15 +4440 54 42 -23.98 1257.25 91 34 1 3 22 2 113 3 17 +4441 54 43 -19.62 1257.25 95 33 1 3 23 2 112 3 16 +4442 54 44 -15.26 1257.25 95 31 1 3 23 2 110 3 14 +4443 54 45 -10.9 1257.25 95 32 1 3 23 2 111 3 15 +4444 54 46 -6.54 1257.25 95 34 1 3 23 2 113 3 17 +4445 54 47 -2.18 1257.25 95 36 1 3 23 2 115 3 19 +4446 54 48 2.18 1257.25 99 35 1 3 24 2 114 3 18 +4447 54 49 6.54 1257.25 99 33 1 3 24 2 112 3 16 +4448 54 50 10.9 1257.25 99 31 1 3 24 2 110 3 14 +4449 54 51 15.26 1257.25 99 32 1 3 24 2 111 3 15 +4450 54 52 19.62 1257.25 99 34 1 3 24 2 113 3 17 +4451 54 53 23.98 1257.25 103 33 1 3 25 2 112 3 16 +4452 54 54 28.34 1257.25 103 31 1 3 25 2 110 3 14 +4453 54 55 32.7 1257.25 103 29 1 3 25 2 108 3 12 +4454 54 56 37.06 1257.25 103 36 1 3 25 2 115 3 19 +4455 54 57 41.42 1257.25 103 38 1 3 25 2 117 3 21 +4456 54 58 45.78 1257.25 103 40 1 3 25 2 119 3 23 +4457 54 59 50.14 1257.25 107 37 1 3 26 2 116 3 20 +4458 54 60 54.5 1257.25 107 35 1 3 26 2 114 3 18 +4459 54 61 58.86 1257.25 107 33 1 3 26 2 112 3 16 +4460 54 62 63.22 1257.25 107 34 1 3 26 2 113 3 17 +4461 54 63 67.58 1257.25 107 36 1 3 26 2 115 3 19 +4462 54 64 71.94 1257.25 111 35 1 3 27 2 114 3 18 +4463 54 65 76.3 1257.25 111 33 1 3 27 2 112 3 16 +4464 54 66 80.66 1257.25 111 34 1 3 27 2 113 3 17 +4465 54 67 85.02 1257.25 111 36 1 3 27 2 115 3 19 +4466 54 68 89.38 1257.25 111 38 1 3 27 2 117 3 21 +4467 54 69 93.74 1257.25 115 35 1 3 28 2 114 3 18 +4468 54 70 98.1 1257.25 115 33 1 3 28 2 112 3 16 +4469 54 71 102.46 1257.25 115 31 1 3 28 2 110 3 14 +4470 54 72 106.82 1257.25 115 32 1 3 28 2 111 3 15 +4471 54 73 111.18 1257.25 115 34 1 3 28 2 113 3 17 +4472 54 74 115.54 1257.25 119 35 1 3 29 2 114 3 18 +4473 54 75 119.9 1257.25 119 33 1 3 29 2 112 3 16 +4474 54 76 124.26 1257.25 119 34 1 3 29 2 113 3 17 +4475 54 77 128.62 1257.25 119 36 1 3 29 2 115 3 19 +4476 54 78 132.98 1257.25 119 38 1 3 29 2 117 3 21 +4477 54 79 137.34 1257.25 119 40 1 3 29 2 119 3 23 +4478 54 80 141.7 1257.25 123 35 1 3 30 2 114 3 18 +4479 54 81 146.06 1257.25 123 33 1 3 30 2 112 3 16 +4480 54 82 150.42 1257.25 123 31 1 3 30 2 110 3 14 +4481 54 83 154.78 1257.25 123 34 1 3 30 2 113 3 17 +4482 54 84 159.14 1257.25 123 36 1 3 30 2 115 3 19 +4483 54 85 163.5 1257.25 127 35 1 3 31 2 114 3 18 +4484 54 86 167.86 1257.25 127 33 1 3 31 2 112 3 16 +4485 54 87 172.22 1257.25 127 32 1 3 31 2 111 3 15 +4486 54 88 176.58 1257.25 127 34 1 3 31 2 113 3 17 +4487 54 89 180.94 1257.25 127 36 1 3 31 2 115 3 19 +4488 54 90 185.3 1257.25 131 35 1 3 32 2 114 3 18 +4489 54 91 189.66 1257.25 131 33 1 3 32 2 112 3 16 +4490 54 92 194.02 1257.25 131 31 1 3 32 2 110 3 14 +4491 54 93 198.38 1257.25 131 32 1 3 32 2 111 3 15 +4492 54 94 202.74 1257.25 131 34 1 3 32 2 113 3 17 +4493 54 95 207.1 1257.25 131 36 1 3 32 2 115 3 19 +4494 55 0 -207.1 1264.75 63 39 1 3 15 2 118 3 22 +4495 55 1 -202.74 1264.75 63 37 1 3 15 2 116 3 20 +4496 55 2 -198.38 1264.75 63 38 1 3 15 2 117 3 21 +4497 55 3 -194.02 1264.75 63 40 1 3 15 2 119 3 23 +4498 55 4 -189.66 1264.75 64 2 1 3 15 3 121 3 25 +4499 55 5 -185.3 1264.75 68 3 1 3 16 3 122 3 26 +4500 55 6 -180.94 1264.75 68 1 1 3 16 3 120 3 24 +4501 55 7 -176.58 1264.75 67 39 1 3 16 2 118 3 22 +4502 55 8 -172.22 1264.75 67 37 1 3 16 2 116 3 20 +4503 55 9 -167.86 1264.75 67 38 1 3 16 2 117 3 21 +4504 55 10 -163.5 1264.75 67 40 1 3 16 2 119 3 23 +4505 55 11 -159.14 1264.75 71 39 1 3 17 2 118 3 22 +4506 55 12 -154.78 1264.75 71 37 1 3 17 2 116 3 20 +4507 55 13 -150.42 1264.75 71 38 1 3 17 2 117 3 21 +4508 55 14 -146.06 1264.75 71 40 1 3 17 2 119 3 23 +4509 55 15 -141.7 1264.75 72 2 1 3 17 3 121 3 25 +4510 55 16 -137.34 1264.75 76 3 1 3 18 3 122 3 26 +4511 55 17 -132.98 1264.75 76 1 1 3 18 3 120 3 24 +4512 55 18 -128.62 1264.75 76 2 1 3 18 3 121 3 25 +4513 55 19 -124.26 1264.75 75 38 1 3 18 2 117 3 21 +4514 55 20 -119.9 1264.75 75 40 1 3 18 2 119 3 23 +4515 55 21 -115.54 1264.75 79 39 1 3 19 2 118 3 22 +4516 55 22 -111.18 1264.75 79 37 1 3 19 2 116 3 20 +4517 55 23 -106.82 1264.75 79 35 1 3 19 2 114 3 18 +4518 55 24 -102.46 1264.75 79 38 1 3 19 2 117 3 21 +4519 55 25 -98.1 1264.75 79 40 1 3 19 2 119 3 23 +4520 55 26 -93.74 1264.75 80 2 1 3 19 3 121 3 25 +4521 55 27 -89.38 1264.75 84 3 1 3 20 3 122 3 26 +4522 55 28 -85.02 1264.75 84 1 1 3 20 3 120 3 24 +4523 55 29 -80.66 1264.75 83 39 1 3 20 2 118 3 22 +4524 55 30 -76.3 1264.75 83 38 1 3 20 2 117 3 21 +4525 55 31 -71.94 1264.75 83 40 1 3 20 2 119 3 23 +4526 55 32 -67.58 1264.75 87 39 1 3 21 2 118 3 22 +4527 55 33 -63.22 1264.75 87 37 1 3 21 2 116 3 20 +4528 55 34 -58.86 1264.75 87 40 1 3 21 2 119 3 23 +4529 55 35 -54.5 1264.75 88 2 1 3 21 3 121 3 25 +4530 55 36 -50.14 1264.75 88 4 1 3 21 3 123 3 27 +4531 55 37 -45.78 1264.75 92 5 1 3 22 3 124 3 28 +4532 55 38 -41.42 1264.75 92 3 1 3 22 3 122 3 26 +4533 55 39 -37.06 1264.75 92 1 1 3 22 3 120 3 24 +4534 55 40 -32.7 1264.75 91 36 1 3 22 2 115 3 19 +4535 55 41 -28.34 1264.75 91 38 1 3 22 2 117 3 21 +4536 55 42 -23.98 1264.75 91 40 1 3 22 2 119 3 23 +4537 55 43 -19.62 1264.75 95 39 1 3 23 2 118 3 22 +4538 55 44 -15.26 1264.75 95 37 1 3 23 2 116 3 20 +4539 55 45 -10.9 1264.75 95 35 1 3 23 2 114 3 18 +4540 55 46 -6.54 1264.75 95 38 1 3 23 2 117 3 21 +4541 55 47 -2.18 1264.75 95 40 1 3 23 2 119 3 23 +4542 55 48 2.18 1264.75 99 39 1 3 24 2 118 3 22 +4543 55 49 6.54 1264.75 99 37 1 3 24 2 116 3 20 +4544 55 50 10.9 1264.75 99 36 1 3 24 2 115 3 19 +4545 55 51 15.26 1264.75 99 38 1 3 24 2 117 3 21 +4546 55 52 19.62 1264.75 99 40 1 3 24 2 119 3 23 +4547 55 53 23.98 1264.75 103 39 1 3 25 2 118 3 22 +4548 55 54 28.34 1264.75 103 37 1 3 25 2 116 3 20 +4549 55 55 32.7 1264.75 103 35 1 3 25 2 114 3 18 +4550 55 56 37.06 1264.75 104 2 1 3 25 3 121 3 25 +4551 55 57 41.42 1264.75 104 4 1 3 25 3 123 3 27 +4552 55 58 45.78 1264.75 104 6 1 3 25 3 125 3 29 +4553 55 59 50.14 1264.75 108 3 1 3 26 3 122 3 26 +4554 55 60 54.5 1264.75 108 1 1 3 26 3 120 3 24 +4555 55 61 58.86 1264.75 107 39 1 3 26 2 118 3 22 +4556 55 62 63.22 1264.75 107 38 1 3 26 2 117 3 21 +4557 55 63 67.58 1264.75 107 40 1 3 26 2 119 3 23 +4558 55 64 71.94 1264.75 111 39 1 3 27 2 118 3 22 +4559 55 65 76.3 1264.75 111 37 1 3 27 2 116 3 20 +4560 55 66 80.66 1264.75 111 40 1 3 27 2 119 3 23 +4561 55 67 85.02 1264.75 112 2 1 3 27 3 121 3 25 +4562 55 68 89.38 1264.75 112 4 1 3 27 3 123 3 27 +4563 55 69 93.74 1264.75 116 1 1 3 28 3 120 3 24 +4564 55 70 98.1 1264.75 115 39 1 3 28 2 118 3 22 +4565 55 71 102.46 1264.75 115 37 1 3 28 2 116 3 20 +4566 55 72 106.82 1264.75 115 36 1 3 28 2 115 3 19 +4567 55 73 111.18 1264.75 115 38 1 3 28 2 117 3 21 +4568 55 74 115.54 1264.75 115 40 1 3 28 2 119 3 23 +4569 55 75 119.9 1264.75 119 39 1 3 29 2 118 3 22 +4570 55 76 124.26 1264.75 119 37 1 3 29 2 116 3 20 +4571 55 77 128.62 1264.75 120 1 1 3 29 3 120 3 24 +4572 55 78 132.98 1264.75 120 2 1 3 29 3 121 3 25 +4573 55 79 137.34 1264.75 120 4 1 3 29 3 123 3 27 +4574 55 80 141.7 1264.75 124 1 1 3 30 3 120 3 24 +4575 55 81 146.06 1264.75 123 39 1 3 30 2 118 3 22 +4576 55 82 150.42 1264.75 123 37 1 3 30 2 116 3 20 +4577 55 83 154.78 1264.75 123 38 1 3 30 2 117 3 21 +4578 55 84 159.14 1264.75 123 40 1 3 30 2 119 3 23 +4579 55 85 163.5 1264.75 127 39 1 3 31 2 118 3 22 +4580 55 86 167.86 1264.75 127 37 1 3 31 2 116 3 20 +4581 55 87 172.22 1264.75 127 38 1 3 31 2 117 3 21 +4582 55 88 176.58 1264.75 127 40 1 3 31 2 119 3 23 +4583 55 89 180.94 1264.75 128 2 1 3 31 3 121 3 25 +4584 55 90 185.3 1264.75 128 4 1 3 31 3 123 3 27 +4585 55 91 189.66 1264.75 132 1 1 3 32 3 120 3 24 +4586 55 92 194.02 1264.75 131 39 1 3 32 2 118 3 22 +4587 55 93 198.38 1264.75 131 37 1 3 32 2 116 3 20 +4588 55 94 202.74 1264.75 131 38 1 3 32 2 117 3 21 +4589 55 95 207.1 1264.75 131 40 1 3 32 2 119 3 23 +4590 56 0 -207.1 1272.25 64 5 1 3 15 3 124 3 28 +4591 56 1 -202.74 1272.25 64 3 1 3 15 3 122 3 26 +4592 56 2 -198.38 1272.25 64 1 1 3 15 3 120 3 24 +4593 56 3 -194.02 1272.25 64 4 1 3 15 3 123 3 27 +4594 56 4 -189.66 1272.25 64 6 1 3 15 3 125 3 29 +4595 56 5 -185.3 1272.25 68 7 1 3 16 3 126 3 30 +4596 56 6 -180.94 1272.25 68 5 1 3 16 3 124 3 28 +4597 56 7 -176.58 1272.25 68 2 1 3 16 3 121 3 25 +4598 56 8 -172.22 1272.25 68 4 1 3 16 3 123 3 27 +4599 56 9 -167.86 1272.25 68 6 1 3 16 3 125 3 29 +4600 56 10 -163.5 1272.25 72 5 1 3 17 3 124 3 28 +4601 56 11 -159.14 1272.25 72 3 1 3 17 3 122 3 26 +4602 56 12 -154.78 1272.25 72 1 1 3 17 3 120 3 24 +4603 56 13 -150.42 1272.25 72 4 1 3 17 3 123 3 27 +4604 56 14 -146.06 1272.25 72 6 1 3 17 3 125 3 29 +4605 56 15 -141.7 1272.25 72 8 1 3 17 3 127 3 31 +4606 56 16 -137.34 1272.25 76 7 1 3 18 3 126 3 30 +4607 56 17 -132.98 1272.25 76 5 1 3 18 3 124 3 28 +4608 56 18 -128.62 1272.25 76 4 1 3 18 3 123 3 27 +4609 56 19 -124.26 1272.25 76 6 1 3 18 3 125 3 29 +4610 56 20 -119.9 1272.25 76 8 1 3 18 3 127 3 31 +4611 56 21 -115.54 1272.25 80 5 1 3 19 3 124 3 28 +4612 56 22 -111.18 1272.25 80 3 1 3 19 3 122 3 26 +4613 56 23 -106.82 1272.25 80 1 1 3 19 3 120 3 24 +4614 56 24 -102.46 1272.25 80 4 1 3 19 3 123 3 27 +4615 56 25 -98.1 1272.25 80 6 1 3 19 3 125 3 29 +4616 56 26 -93.74 1272.25 80 8 1 3 19 3 127 3 31 +4617 56 27 -89.38 1272.25 84 7 1 3 20 3 126 3 30 +4618 56 28 -85.02 1272.25 84 5 1 3 20 3 124 3 28 +4619 56 29 -80.66 1272.25 84 2 1 3 20 3 121 3 25 +4620 56 30 -76.3 1272.25 84 4 1 3 20 3 123 3 27 +4621 56 31 -71.94 1272.25 84 6 1 3 20 3 125 3 29 +4622 56 32 -67.58 1272.25 88 5 1 3 21 3 124 3 28 +4623 56 33 -63.22 1272.25 88 3 1 3 21 3 122 3 26 +4624 56 34 -58.86 1272.25 88 1 1 3 21 3 120 3 24 +4625 56 35 -54.5 1272.25 88 6 1 3 21 3 125 3 29 +4626 56 36 -50.14 1272.25 88 8 1 3 21 3 127 3 31 +4627 56 37 -45.78 1272.25 92 11 1 3 22 3 130 4 2 +4628 56 38 -41.42 1272.25 92 9 1 3 22 3 128 4 0 +4629 56 39 -37.06 1272.25 92 7 1 3 22 3 126 3 30 +4630 56 40 -32.7 1272.25 92 2 1 3 22 3 121 3 25 +4631 56 41 -28.34 1272.25 92 4 1 3 22 3 123 3 27 +4632 56 42 -23.98 1272.25 92 6 1 3 22 3 125 3 29 +4633 56 43 -19.62 1272.25 96 5 1 3 23 3 124 3 28 +4634 56 44 -15.26 1272.25 96 3 1 3 23 3 122 3 26 +4635 56 45 -10.9 1272.25 96 1 1 3 23 3 120 3 24 +4636 56 46 -6.54 1272.25 96 2 1 3 23 3 121 3 25 +4637 56 47 -2.18 1272.25 96 4 1 3 23 3 123 3 27 +4638 56 48 2.18 1272.25 100 3 1 3 24 3 122 3 26 +4639 56 49 6.54 1272.25 100 1 1 3 24 3 120 3 24 +4640 56 50 10.9 1272.25 100 2 1 3 24 3 121 3 25 +4641 56 51 15.26 1272.25 100 4 1 3 24 3 123 3 27 +4642 56 52 19.62 1272.25 100 6 1 3 24 3 125 3 29 +4643 56 53 23.98 1272.25 104 5 1 3 25 3 124 3 28 +4644 56 54 28.34 1272.25 104 3 1 3 25 3 122 3 26 +4645 56 55 32.7 1272.25 104 1 1 3 25 3 120 3 24 +4646 56 56 37.06 1272.25 104 8 1 3 25 3 127 3 31 +4647 56 57 41.42 1272.25 104 10 1 3 25 3 129 4 1 +4648 56 58 45.78 1272.25 104 12 1 3 25 3 131 4 3 +4649 56 59 50.14 1272.25 108 7 1 3 26 3 126 3 30 +4650 56 60 54.5 1272.25 108 5 1 3 26 3 124 3 28 +4651 56 61 58.86 1272.25 108 2 1 3 26 3 121 3 25 +4652 56 62 63.22 1272.25 108 4 1 3 26 3 123 3 27 +4653 56 63 67.58 1272.25 108 6 1 3 26 3 125 3 29 +4654 56 64 71.94 1272.25 112 5 1 3 27 3 124 3 28 +4655 56 65 76.3 1272.25 112 3 1 3 27 3 122 3 26 +4656 56 66 80.66 1272.25 112 1 1 3 27 3 120 3 24 +4657 56 67 85.02 1272.25 112 6 1 3 27 3 125 3 29 +4658 56 68 89.38 1272.25 112 8 1 3 27 3 127 3 31 +4659 56 69 93.74 1272.25 116 7 1 3 28 3 126 3 30 +4660 56 70 98.1 1272.25 116 5 1 3 28 3 124 3 28 +4661 56 71 102.46 1272.25 116 3 1 3 28 3 122 3 26 +4662 56 72 106.82 1272.25 116 2 1 3 28 3 121 3 25 +4663 56 73 111.18 1272.25 116 4 1 3 28 3 123 3 27 +4664 56 74 115.54 1272.25 116 6 1 3 28 3 125 3 29 +4665 56 75 119.9 1272.25 120 7 1 3 29 3 126 3 30 +4666 56 76 124.26 1272.25 120 5 1 3 29 3 124 3 28 +4667 56 77 128.62 1272.25 120 3 1 3 29 3 122 3 26 +4668 56 78 132.98 1272.25 120 6 1 3 29 3 125 3 29 +4669 56 79 137.34 1272.25 120 8 1 3 29 3 127 3 31 +4670 56 80 141.7 1272.25 124 7 1 3 30 3 126 3 30 +4671 56 81 146.06 1272.25 124 5 1 3 30 3 124 3 28 +4672 56 82 150.42 1272.25 124 3 1 3 30 3 122 3 26 +4673 56 83 154.78 1272.25 124 2 1 3 30 3 121 3 25 +4674 56 84 159.14 1272.25 124 4 1 3 30 3 123 3 27 +4675 56 85 163.5 1272.25 124 6 1 3 30 3 125 3 29 +4676 56 86 167.86 1272.25 128 5 1 3 31 3 124 3 28 +4677 56 87 172.22 1272.25 128 3 1 3 31 3 122 3 26 +4678 56 88 176.58 1272.25 128 1 1 3 31 3 120 3 24 +4679 56 89 180.94 1272.25 128 6 1 3 31 3 125 3 29 +4680 56 90 185.3 1272.25 128 8 1 3 31 3 127 3 31 +4681 56 91 189.66 1272.25 132 5 1 3 32 3 124 3 28 +4682 56 92 194.02 1272.25 132 3 1 3 32 3 122 3 26 +4683 56 93 198.38 1272.25 132 2 1 3 32 3 121 3 25 +4684 56 94 202.74 1272.25 132 4 1 3 32 3 123 3 27 +4685 56 95 207.1 1272.25 132 6 1 3 32 3 125 3 29 +4686 57 0 -211.46 1279.75 64 11 1 3 15 3 130 4 2 +4687 57 1 -207.1 1279.75 64 9 1 3 15 3 128 4 0 +4688 57 2 -202.74 1279.75 64 7 1 3 15 3 126 3 30 +4689 57 3 -198.38 1279.75 64 8 1 3 15 3 127 3 31 +4690 57 4 -194.02 1279.75 64 10 1 3 15 3 129 4 1 +4691 57 5 -189.66 1279.75 64 12 1 3 15 3 131 4 3 +4692 57 6 -185.3 1279.75 68 11 1 3 16 3 130 4 2 +4693 57 7 -180.94 1279.75 68 9 1 3 16 3 128 4 0 +4694 57 8 -176.58 1279.75 68 8 1 3 16 3 127 3 31 +4695 57 9 -172.22 1279.75 68 10 1 3 16 3 129 4 1 +4696 57 10 -167.86 1279.75 68 12 1 3 16 3 131 4 3 +4697 57 11 -163.5 1279.75 72 11 1 3 17 3 130 4 2 +4698 57 12 -159.14 1279.75 72 9 1 3 17 3 128 4 0 +4699 57 13 -154.78 1279.75 72 7 1 3 17 3 126 3 30 +4700 57 14 -150.42 1279.75 72 10 1 3 17 3 129 4 1 +4701 57 15 -146.06 1279.75 72 12 1 3 17 3 131 4 3 +4702 57 16 -141.7 1279.75 72 14 1 3 17 3 133 4 5 +4703 57 17 -137.34 1279.75 76 13 1 3 18 3 132 4 4 +4704 57 18 -132.98 1279.75 76 11 1 3 18 3 130 4 2 +4705 57 19 -128.62 1279.75 76 9 1 3 18 3 128 4 0 +4706 57 20 -124.26 1279.75 76 10 1 3 18 3 129 4 1 +4707 57 21 -119.9 1279.75 76 12 1 3 18 3 131 4 3 +4708 57 22 -115.54 1279.75 80 11 1 3 19 3 130 4 2 +4709 57 23 -111.18 1279.75 80 9 1 3 19 3 128 4 0 +4710 57 24 -106.82 1279.75 80 7 1 3 19 3 126 3 30 +4711 57 25 -102.46 1279.75 80 10 1 3 19 3 129 4 1 +4712 57 26 -98.1 1279.75 80 12 1 3 19 3 131 4 3 +4713 57 27 -93.74 1279.75 84 13 1 3 20 3 132 4 4 +4714 57 28 -89.38 1279.75 84 11 1 3 20 3 130 4 2 +4715 57 29 -85.02 1279.75 84 9 1 3 20 3 128 4 0 +4716 57 30 -80.66 1279.75 84 8 1 3 20 3 127 3 31 +4717 57 31 -76.3 1279.75 84 10 1 3 20 3 129 4 1 +4718 57 32 -71.94 1279.75 84 12 1 3 20 3 131 4 3 +4719 57 33 -67.58 1279.75 88 11 1 3 21 3 130 4 2 +4720 57 34 -63.22 1279.75 88 9 1 3 21 3 128 4 0 +4721 57 35 -58.86 1279.75 88 7 1 3 21 3 126 3 30 +4722 57 36 -54.5 1279.75 88 10 1 3 21 3 129 4 1 +4723 57 37 -50.14 1279.75 88 12 1 3 21 3 131 4 3 +4724 57 38 -45.78 1279.75 92 15 1 3 22 3 134 4 6 +4725 57 39 -41.42 1279.75 92 13 1 3 22 3 132 4 4 +4726 57 40 -37.06 1279.75 92 8 1 3 22 3 127 3 31 +4727 57 41 -32.7 1279.75 92 10 1 3 22 3 129 4 1 +4728 57 42 -28.34 1279.75 92 12 1 3 22 3 131 4 3 +4729 57 43 -23.98 1279.75 92 14 1 3 22 3 133 4 5 +4730 57 44 -19.62 1279.75 96 9 1 3 23 3 128 4 0 +4731 57 45 -15.26 1279.75 96 7 1 3 23 3 126 3 30 +4732 57 46 -10.9 1279.75 96 6 1 3 23 3 125 3 29 +4733 57 47 -6.54 1279.75 96 8 1 3 23 3 127 3 31 +4734 57 48 -2.18 1279.75 96 10 1 3 23 3 129 4 1 +4735 57 49 2.18 1279.75 100 9 1 3 24 3 128 4 0 +4736 57 50 6.54 1279.75 100 7 1 3 24 3 126 3 30 +4737 57 51 10.9 1279.75 100 5 1 3 24 3 124 3 28 +4738 57 52 15.26 1279.75 100 8 1 3 24 3 127 3 31 +4739 57 53 19.62 1279.75 100 10 1 3 24 3 129 4 1 +4740 57 54 23.98 1279.75 104 13 1 3 25 3 132 4 4 +4741 57 55 28.34 1279.75 104 11 1 3 25 3 130 4 2 +4742 57 56 32.7 1279.75 104 9 1 3 25 3 128 4 0 +4743 57 57 37.06 1279.75 104 7 1 3 25 3 126 3 30 +4744 57 58 41.42 1279.75 104 14 1 3 25 3 133 4 5 +4745 57 59 45.78 1279.75 104 16 1 3 25 3 135 4 7 +4746 57 60 50.14 1279.75 108 11 1 3 26 3 130 4 2 +4747 57 61 54.5 1279.75 108 9 1 3 26 3 128 4 0 +4748 57 62 58.86 1279.75 108 8 1 3 26 3 127 3 31 +4749 57 63 63.22 1279.75 108 10 1 3 26 3 129 4 1 +4750 57 64 67.58 1279.75 108 12 1 3 26 3 131 4 3 +4751 57 65 71.94 1279.75 112 11 1 3 27 3 130 4 2 +4752 57 66 76.3 1279.75 112 9 1 3 27 3 128 4 0 +4753 57 67 80.66 1279.75 112 7 1 3 27 3 126 3 30 +4754 57 68 85.02 1279.75 112 10 1 3 27 3 129 4 1 +4755 57 69 89.38 1279.75 112 12 1 3 27 3 131 4 3 +4756 57 70 93.74 1279.75 112 14 1 3 27 3 133 4 5 +4757 57 71 98.1 1279.75 116 11 1 3 28 3 130 4 2 +4758 57 72 102.46 1279.75 116 9 1 3 28 3 128 4 0 +4759 57 73 106.82 1279.75 116 8 1 3 28 3 127 3 31 +4760 57 74 111.18 1279.75 116 10 1 3 28 3 129 4 1 +4761 57 75 115.54 1279.75 116 12 1 3 28 3 131 4 3 +4762 57 76 119.9 1279.75 120 11 1 3 29 3 130 4 2 +4763 57 77 124.26 1279.75 120 9 1 3 29 3 128 4 0 +4764 57 78 128.62 1279.75 120 10 1 3 29 3 129 4 1 +4765 57 79 132.98 1279.75 120 12 1 3 29 3 131 4 3 +4766 57 80 137.34 1279.75 120 14 1 3 29 3 133 4 5 +4767 57 81 141.7 1279.75 124 13 1 3 30 3 132 4 4 +4768 57 82 146.06 1279.75 124 11 1 3 30 3 130 4 2 +4769 57 83 150.42 1279.75 124 9 1 3 30 3 128 4 0 +4770 57 84 154.78 1279.75 124 8 1 3 30 3 127 3 31 +4771 57 85 159.14 1279.75 124 10 1 3 30 3 129 4 1 +4772 57 86 163.5 1279.75 124 12 1 3 30 3 131 4 3 +4773 57 87 167.86 1279.75 128 11 1 3 31 3 130 4 2 +4774 57 88 172.22 1279.75 128 9 1 3 31 3 128 4 0 +4775 57 89 176.58 1279.75 128 7 1 3 31 3 126 3 30 +4776 57 90 180.94 1279.75 128 10 1 3 31 3 129 4 1 +4777 57 91 185.3 1279.75 128 12 1 3 31 3 131 4 3 +4778 57 92 189.66 1279.75 132 11 1 3 32 3 130 4 2 +4779 57 93 194.02 1279.75 132 9 1 3 32 3 128 4 0 +4780 57 94 198.38 1279.75 132 7 1 3 32 3 126 3 30 +4781 57 95 202.74 1279.75 132 8 1 3 32 3 127 3 31 +4782 57 96 207.1 1279.75 132 10 1 3 32 3 129 4 1 +4783 57 97 211.46 1279.75 132 12 1 3 32 3 131 4 3 +4784 58 0 -211.46 1287.25 64 17 1 3 15 3 136 4 8 +4785 58 1 -207.1 1287.25 64 15 1 3 15 3 134 4 6 +4786 58 2 -202.74 1287.25 64 13 1 3 15 3 132 4 4 +4787 58 3 -198.38 1287.25 64 14 1 3 15 3 133 4 5 +4788 58 4 -194.02 1287.25 64 16 1 3 15 3 135 4 7 +4789 58 5 -189.66 1287.25 64 18 1 3 15 3 137 4 9 +4790 58 6 -185.3 1287.25 68 17 1 3 16 3 136 4 8 +4791 58 7 -180.94 1287.25 68 15 1 3 16 3 134 4 6 +4792 58 8 -176.58 1287.25 68 13 1 3 16 3 132 4 4 +4793 58 9 -172.22 1287.25 68 14 1 3 16 3 133 4 5 +4794 58 10 -167.86 1287.25 68 16 1 3 16 3 135 4 7 +4795 58 11 -163.5 1287.25 72 15 1 3 17 3 134 4 6 +4796 58 12 -159.14 1287.25 72 13 1 3 17 3 132 4 4 +4797 58 13 -154.78 1287.25 72 16 1 3 17 3 135 4 7 +4798 58 14 -150.42 1287.25 72 18 1 3 17 3 137 4 9 +4799 58 15 -146.06 1287.25 72 20 1 3 17 3 139 4 11 +4800 58 16 -141.7 1287.25 76 19 1 3 18 3 138 4 10 +4801 58 17 -137.34 1287.25 76 17 1 3 18 3 136 4 8 +4802 58 18 -132.98 1287.25 76 15 1 3 18 3 134 4 6 +4803 58 19 -128.62 1287.25 76 14 1 3 18 3 133 4 5 +4804 58 20 -124.26 1287.25 76 16 1 3 18 3 135 4 7 +4805 58 21 -119.9 1287.25 76 18 1 3 18 3 137 4 9 +4806 58 22 -115.54 1287.25 80 17 1 3 19 3 136 4 8 +4807 58 23 -111.18 1287.25 80 15 1 3 19 3 134 4 6 +4808 58 24 -106.82 1287.25 80 13 1 3 19 3 132 4 4 +4809 58 25 -102.46 1287.25 80 14 1 3 19 3 133 4 5 +4810 58 26 -98.1 1287.25 80 16 1 3 19 3 135 4 7 +4811 58 27 -93.74 1287.25 84 19 1 3 20 3 138 4 10 +4812 58 28 -89.38 1287.25 84 17 1 3 20 3 136 4 8 +4813 58 29 -85.02 1287.25 84 15 1 3 20 3 134 4 6 +4814 58 30 -80.66 1287.25 84 14 1 3 20 3 133 4 5 +4815 58 31 -76.3 1287.25 84 16 1 3 20 3 135 4 7 +4816 58 32 -71.94 1287.25 84 18 1 3 20 3 137 4 9 +4817 58 33 -67.58 1287.25 88 15 1 3 21 3 134 4 6 +4818 58 34 -63.22 1287.25 88 13 1 3 21 3 132 4 4 +4819 58 35 -58.86 1287.25 88 14 1 3 21 3 133 4 5 +4820 58 36 -54.5 1287.25 88 16 1 3 21 3 135 4 7 +4821 58 37 -50.14 1287.25 88 18 1 3 21 3 137 4 9 +4822 58 38 -45.78 1287.25 92 19 1 3 22 3 138 4 10 +4823 58 39 -41.42 1287.25 92 17 1 3 22 3 136 4 8 +4824 58 40 -37.06 1287.25 92 16 1 3 22 3 135 4 7 +4825 58 41 -32.7 1287.25 92 18 1 3 22 3 137 4 9 +4826 58 42 -28.34 1287.25 92 20 1 3 22 3 139 4 11 +4827 58 43 -23.98 1287.25 96 15 1 3 23 3 134 4 6 +4828 58 44 -19.62 1287.25 96 13 1 3 23 3 132 4 4 +4829 58 45 -15.26 1287.25 96 11 1 3 23 3 130 4 2 +4830 58 46 -10.9 1287.25 96 12 1 3 23 3 131 4 3 +4831 58 47 -6.54 1287.25 96 14 1 3 23 3 133 4 5 +4832 58 48 -2.18 1287.25 96 16 1 3 23 3 135 4 7 +4833 58 49 2.18 1287.25 100 15 1 3 24 3 134 4 6 +4834 58 50 6.54 1287.25 100 13 1 3 24 3 132 4 4 +4835 58 51 10.9 1287.25 100 11 1 3 24 3 130 4 2 +4836 58 52 15.26 1287.25 100 12 1 3 24 3 131 4 3 +4837 58 53 19.62 1287.25 100 14 1 3 24 3 133 4 5 +4838 58 54 23.98 1287.25 100 16 1 3 24 3 135 4 7 +4839 58 55 28.34 1287.25 104 19 1 3 25 3 138 4 10 +4840 58 56 32.7 1287.25 104 17 1 3 25 3 136 4 8 +4841 58 57 37.06 1287.25 104 15 1 3 25 3 134 4 6 +4842 58 58 41.42 1287.25 104 18 1 3 25 3 137 4 9 +4843 58 59 45.78 1287.25 104 20 1 3 25 3 139 4 11 +4844 58 60 50.14 1287.25 108 17 1 3 26 3 136 4 8 +4845 58 61 54.5 1287.25 108 15 1 3 26 3 134 4 6 +4846 58 62 58.86 1287.25 108 13 1 3 26 3 132 4 4 +4847 58 63 63.22 1287.25 108 14 1 3 26 3 133 4 5 +4848 58 64 67.58 1287.25 108 16 1 3 26 3 135 4 7 +4849 58 65 71.94 1287.25 112 17 1 3 27 3 136 4 8 +4850 58 66 76.3 1287.25 112 15 1 3 27 3 134 4 6 +4851 58 67 80.66 1287.25 112 13 1 3 27 3 132 4 4 +4852 58 68 85.02 1287.25 112 16 1 3 27 3 135 4 7 +4853 58 69 89.38 1287.25 112 18 1 3 27 3 137 4 9 +4854 58 70 93.74 1287.25 112 20 1 3 27 3 139 4 11 +4855 58 71 98.1 1287.25 116 15 1 3 28 3 134 4 6 +4856 58 72 102.46 1287.25 116 13 1 3 28 3 132 4 4 +4857 58 73 106.82 1287.25 116 14 1 3 28 3 133 4 5 +4858 58 74 111.18 1287.25 116 16 1 3 28 3 135 4 7 +4859 58 75 115.54 1287.25 116 18 1 3 28 3 137 4 9 +4860 58 76 119.9 1287.25 120 17 1 3 29 3 136 4 8 +4861 58 77 124.26 1287.25 120 15 1 3 29 3 134 4 6 +4862 58 78 128.62 1287.25 120 13 1 3 29 3 132 4 4 +4863 58 79 132.98 1287.25 120 16 1 3 29 3 135 4 7 +4864 58 80 137.34 1287.25 120 18 1 3 29 3 137 4 9 +4865 58 81 141.7 1287.25 120 20 1 3 29 3 139 4 11 +4866 58 82 146.06 1287.25 124 19 1 3 30 3 138 4 10 +4867 58 83 150.42 1287.25 124 17 1 3 30 3 136 4 8 +4868 58 84 154.78 1287.25 124 15 1 3 30 3 134 4 6 +4869 58 85 159.14 1287.25 124 14 1 3 30 3 133 4 5 +4870 58 86 163.5 1287.25 124 16 1 3 30 3 135 4 7 +4871 58 87 167.86 1287.25 128 15 1 3 31 3 134 4 6 +4872 58 88 172.22 1287.25 128 13 1 3 31 3 132 4 4 +4873 58 89 176.58 1287.25 128 14 1 3 31 3 133 4 5 +4874 58 90 180.94 1287.25 128 16 1 3 31 3 135 4 7 +4875 58 91 185.3 1287.25 128 18 1 3 31 3 137 4 9 +4876 58 92 189.66 1287.25 132 17 1 3 32 3 136 4 8 +4877 58 93 194.02 1287.25 132 15 1 3 32 3 134 4 6 +4878 58 94 198.38 1287.25 132 13 1 3 32 3 132 4 4 +4879 58 95 202.74 1287.25 132 14 1 3 32 3 133 4 5 +4880 58 96 207.1 1287.25 132 16 1 3 32 3 135 4 7 +4881 58 97 211.46 1287.25 132 18 1 3 32 3 137 4 9 +4882 59 0 -211.46 1294.75 64 23 1 3 15 3 142 4 14 +4883 59 1 -207.1 1294.75 64 21 1 3 15 3 140 4 12 +4884 59 2 -202.74 1294.75 64 19 1 3 15 3 138 4 10 +4885 59 3 -198.38 1294.75 64 20 1 3 15 3 139 4 11 +4886 59 4 -194.02 1294.75 64 22 1 3 15 3 141 4 13 +4887 59 5 -189.66 1294.75 68 23 1 3 16 3 142 4 14 +4888 59 6 -185.3 1294.75 68 21 1 3 16 3 140 4 12 +4889 59 7 -180.94 1294.75 68 19 1 3 16 3 138 4 10 +4890 59 8 -176.58 1294.75 68 18 1 3 16 3 137 4 9 +4891 59 9 -172.22 1294.75 68 20 1 3 16 3 139 4 11 +4892 59 10 -167.86 1294.75 68 22 1 3 16 3 141 4 13 +4893 59 11 -163.5 1294.75 72 21 1 3 17 3 140 4 12 +4894 59 12 -159.14 1294.75 72 19 1 3 17 3 138 4 10 +4895 59 13 -154.78 1294.75 72 17 1 3 17 3 136 4 8 +4896 59 14 -150.42 1294.75 72 22 1 3 17 3 141 4 13 +4897 59 15 -146.06 1294.75 72 24 1 3 17 3 143 4 15 +4898 59 16 -141.7 1294.75 76 25 1 3 18 3 144 4 16 +4899 59 17 -137.34 1294.75 76 23 1 3 18 3 142 4 14 +4900 59 18 -132.98 1294.75 76 21 1 3 18 3 140 4 12 +4901 59 19 -128.62 1294.75 76 20 1 3 18 3 139 4 11 +4902 59 20 -124.26 1294.75 76 22 1 3 18 3 141 4 13 +4903 59 21 -119.9 1294.75 76 24 1 3 18 3 143 4 15 +4904 59 22 -115.54 1294.75 80 21 1 3 19 3 140 4 12 +4905 59 23 -111.18 1294.75 80 19 1 3 19 3 138 4 10 +4906 59 24 -106.82 1294.75 80 18 1 3 19 3 137 4 9 +4907 59 25 -102.46 1294.75 80 20 1 3 19 3 139 4 11 +4908 59 26 -98.1 1294.75 80 22 1 3 19 3 141 4 13 +4909 59 27 -93.74 1294.75 84 25 1 3 20 3 144 4 16 +4910 59 28 -89.38 1294.75 84 23 1 3 20 3 142 4 14 +4911 59 29 -85.02 1294.75 84 21 1 3 20 3 140 4 12 +4912 59 30 -80.66 1294.75 84 20 1 3 20 3 139 4 11 +4913 59 31 -76.3 1294.75 84 22 1 3 20 3 141 4 13 +4914 59 32 -71.94 1294.75 84 24 1 3 20 3 143 4 15 +4915 59 33 -67.58 1294.75 88 21 1 3 21 3 140 4 12 +4916 59 34 -63.22 1294.75 88 19 1 3 21 3 138 4 10 +4917 59 35 -58.86 1294.75 88 17 1 3 21 3 136 4 8 +4918 59 36 -54.5 1294.75 88 20 1 3 21 3 139 4 11 +4919 59 37 -50.14 1294.75 88 22 1 3 21 3 141 4 13 +4920 59 38 -45.78 1294.75 92 25 1 3 22 3 144 4 16 +4921 59 39 -41.42 1294.75 92 23 1 3 22 3 142 4 14 +4922 59 40 -37.06 1294.75 92 21 1 3 22 3 140 4 12 +4923 59 41 -32.7 1294.75 92 22 1 3 22 3 141 4 13 +4924 59 42 -28.34 1294.75 92 24 1 3 22 3 143 4 15 +4925 59 43 -23.98 1294.75 96 21 1 3 23 3 140 4 12 +4926 59 44 -19.62 1294.75 96 19 1 3 23 3 138 4 10 +4927 59 45 -15.26 1294.75 96 17 1 3 23 3 136 4 8 +4928 59 46 -10.9 1294.75 96 18 1 3 23 3 137 4 9 +4929 59 47 -6.54 1294.75 96 20 1 3 23 3 139 4 11 +4930 59 48 -2.18 1294.75 96 22 1 3 23 3 141 4 13 +4931 59 49 2.18 1294.75 100 21 1 3 24 3 140 4 12 +4932 59 50 6.54 1294.75 100 19 1 3 24 3 138 4 10 +4933 59 51 10.9 1294.75 100 17 1 3 24 3 136 4 8 +4934 59 52 15.26 1294.75 100 18 1 3 24 3 137 4 9 +4935 59 53 19.62 1294.75 100 20 1 3 24 3 139 4 11 +4936 59 54 23.98 1294.75 100 22 1 3 24 3 141 4 13 +4937 59 55 28.34 1294.75 104 23 1 3 25 3 142 4 14 +4938 59 56 32.7 1294.75 104 21 1 3 25 3 140 4 12 +4939 59 57 37.06 1294.75 104 22 1 3 25 3 141 4 13 +4940 59 58 41.42 1294.75 104 24 1 3 25 3 143 4 15 +4941 59 59 45.78 1294.75 104 26 1 3 25 3 145 4 17 +4942 59 60 50.14 1294.75 108 21 1 3 26 3 140 4 12 +4943 59 61 54.5 1294.75 108 19 1 3 26 3 138 4 10 +4944 59 62 58.86 1294.75 108 18 1 3 26 3 137 4 9 +4945 59 63 63.22 1294.75 108 20 1 3 26 3 139 4 11 +4946 59 64 67.58 1294.75 108 22 1 3 26 3 141 4 13 +4947 59 65 71.94 1294.75 112 23 1 3 27 3 142 4 14 +4948 59 66 76.3 1294.75 112 21 1 3 27 3 140 4 12 +4949 59 67 80.66 1294.75 112 19 1 3 27 3 138 4 10 +4950 59 68 85.02 1294.75 112 22 1 3 27 3 141 4 13 +4951 59 69 89.38 1294.75 112 24 1 3 27 3 143 4 15 +4952 59 70 93.74 1294.75 112 26 1 3 27 3 145 4 17 +4953 59 71 98.1 1294.75 116 21 1 3 28 3 140 4 12 +4954 59 72 102.46 1294.75 116 19 1 3 28 3 138 4 10 +4955 59 73 106.82 1294.75 116 17 1 3 28 3 136 4 8 +4956 59 74 111.18 1294.75 116 20 1 3 28 3 139 4 11 +4957 59 75 115.54 1294.75 116 22 1 3 28 3 141 4 13 +4958 59 76 119.9 1294.75 120 23 1 3 29 3 142 4 14 +4959 59 77 124.26 1294.75 120 21 1 3 29 3 140 4 12 +4960 59 78 128.62 1294.75 120 19 1 3 29 3 138 4 10 +4961 59 79 132.98 1294.75 120 22 1 3 29 3 141 4 13 +4962 59 80 137.34 1294.75 120 24 1 3 29 3 143 4 15 +4963 59 81 141.7 1294.75 120 26 1 3 29 3 145 4 17 +4964 59 82 146.06 1294.75 124 23 1 3 30 3 142 4 14 +4965 59 83 150.42 1294.75 124 21 1 3 30 3 140 4 12 +4966 59 84 154.78 1294.75 124 18 1 3 30 3 137 4 9 +4967 59 85 159.14 1294.75 124 20 1 3 30 3 139 4 11 +4968 59 86 163.5 1294.75 124 22 1 3 30 3 141 4 13 +4969 59 87 167.86 1294.75 128 21 1 3 31 3 140 4 12 +4970 59 88 172.22 1294.75 128 19 1 3 31 3 138 4 10 +4971 59 89 176.58 1294.75 128 17 1 3 31 3 136 4 8 +4972 59 90 180.94 1294.75 128 20 1 3 31 3 139 4 11 +4973 59 91 185.3 1294.75 128 22 1 3 31 3 141 4 13 +4974 59 92 189.66 1294.75 128 24 1 3 31 3 143 4 15 +4975 59 93 194.02 1294.75 132 21 1 3 32 3 140 4 12 +4976 59 94 198.38 1294.75 132 19 1 3 32 3 138 4 10 +4977 59 95 202.74 1294.75 132 20 1 3 32 3 139 4 11 +4978 59 96 207.1 1294.75 132 22 1 3 32 3 141 4 13 +4979 59 97 211.46 1294.75 132 24 1 3 32 3 143 4 15 +4980 60 0 -215.82 1302.25 64 29 1 3 15 3 148 4 20 +4981 60 1 -211.46 1302.25 64 27 1 3 15 3 146 4 18 +4982 60 2 -207.1 1302.25 64 25 1 3 15 3 144 4 16 +4983 60 3 -202.74 1302.25 64 24 1 3 15 3 143 4 15 +4984 60 4 -198.38 1302.25 64 26 1 3 15 3 145 4 17 +4985 60 5 -194.02 1302.25 64 28 1 3 15 3 147 4 19 +4986 60 6 -189.66 1302.25 68 29 1 3 16 3 148 4 20 +4987 60 7 -185.3 1302.25 68 27 1 3 16 3 146 4 18 +4988 60 8 -180.94 1302.25 68 25 1 3 16 3 144 4 16 +4989 60 9 -176.58 1302.25 68 24 1 3 16 3 143 4 15 +4990 60 10 -172.22 1302.25 68 26 1 3 16 3 145 4 17 +4991 60 11 -167.86 1302.25 68 28 1 3 16 3 147 4 19 +4992 60 12 -163.5 1302.25 72 25 1 3 17 3 144 4 16 +4993 60 13 -159.14 1302.25 72 23 1 3 17 3 142 4 14 +4994 60 14 -154.78 1302.25 72 26 1 3 17 3 145 4 17 +4995 60 15 -150.42 1302.25 72 28 1 3 17 3 147 4 19 +4996 60 16 -146.06 1302.25 72 30 1 3 17 3 149 4 21 +4997 60 17 -141.7 1302.25 76 29 1 3 18 3 148 4 20 +4998 60 18 -137.34 1302.25 76 27 1 3 18 3 146 4 18 +4999 60 19 -132.98 1302.25 76 26 1 3 18 3 145 4 17 +5000 60 20 -128.62 1302.25 76 28 1 3 18 3 147 4 19 +5001 60 21 -124.26 1302.25 76 30 1 3 18 3 149 4 21 +5002 60 22 -119.9 1302.25 80 27 1 3 19 3 146 4 18 +5003 60 23 -115.54 1302.25 80 25 1 3 19 3 144 4 16 +5004 60 24 -111.18 1302.25 80 23 1 3 19 3 142 4 14 +5005 60 25 -106.82 1302.25 80 24 1 3 19 3 143 4 15 +5006 60 26 -102.46 1302.25 80 26 1 3 19 3 145 4 17 +5007 60 27 -98.1 1302.25 80 28 1 3 19 3 147 4 19 +5008 60 28 -93.74 1302.25 84 29 1 3 20 3 148 4 20 +5009 60 29 -89.38 1302.25 84 27 1 3 20 3 146 4 18 +5010 60 30 -85.02 1302.25 84 26 1 3 20 3 145 4 17 +5011 60 31 -80.66 1302.25 84 28 1 3 20 3 147 4 19 +5012 60 32 -76.3 1302.25 84 30 1 3 20 3 149 4 21 +5013 60 33 -71.94 1302.25 88 27 1 3 21 3 146 4 18 +5014 60 34 -67.58 1302.25 88 25 1 3 21 3 144 4 16 +5015 60 35 -63.22 1302.25 88 23 1 3 21 3 142 4 14 +5016 60 36 -58.86 1302.25 88 24 1 3 21 3 143 4 15 +5017 60 37 -54.5 1302.25 88 26 1 3 21 3 145 4 17 +5018 60 38 -50.14 1302.25 88 28 1 3 21 3 147 4 19 +5019 60 39 -45.78 1302.25 92 29 1 3 22 3 148 4 20 +5020 60 40 -41.42 1302.25 92 27 1 3 22 3 146 4 18 +5021 60 41 -37.06 1302.25 92 26 1 3 22 3 145 4 17 +5022 60 42 -32.7 1302.25 92 28 1 3 22 3 147 4 19 +5023 60 43 -28.34 1302.25 92 30 1 3 22 3 149 4 21 +5024 60 44 -23.98 1302.25 96 27 1 3 23 3 146 4 18 +5025 60 45 -19.62 1302.25 96 25 1 3 23 3 144 4 16 +5026 60 46 -15.26 1302.25 96 23 1 3 23 3 142 4 14 +5027 60 47 -10.9 1302.25 96 24 1 3 23 3 143 4 15 +5028 60 48 -6.54 1302.25 96 26 1 3 23 3 145 4 17 +5029 60 49 -2.18 1302.25 96 28 1 3 23 3 147 4 19 +5030 60 50 2.18 1302.25 100 27 1 3 24 3 146 4 18 +5031 60 51 6.54 1302.25 100 25 1 3 24 3 144 4 16 +5032 60 52 10.9 1302.25 100 23 1 3 24 3 142 4 14 +5033 60 53 15.26 1302.25 100 24 1 3 24 3 143 4 15 +5034 60 54 19.62 1302.25 100 26 1 3 24 3 145 4 17 +5035 60 55 23.98 1302.25 100 28 1 3 24 3 147 4 19 +5036 60 56 28.34 1302.25 104 29 1 3 25 3 148 4 20 +5037 60 57 32.7 1302.25 104 27 1 3 25 3 146 4 18 +5038 60 58 37.06 1302.25 104 25 1 3 25 3 144 4 16 +5039 60 59 41.42 1302.25 104 28 1 3 25 3 147 4 19 +5040 60 60 45.78 1302.25 104 30 1 3 25 3 149 4 21 +5041 60 61 50.14 1302.25 108 27 1 3 26 3 146 4 18 +5042 60 62 54.5 1302.25 108 25 1 3 26 3 144 4 16 +5043 60 63 58.86 1302.25 108 23 1 3 26 3 142 4 14 +5044 60 64 63.22 1302.25 108 24 1 3 26 3 143 4 15 +5045 60 65 67.58 1302.25 108 26 1 3 26 3 145 4 17 +5046 60 66 71.94 1302.25 108 28 1 3 26 3 147 4 19 +5047 60 67 76.3 1302.25 112 29 1 3 27 3 148 4 20 +5048 60 68 80.66 1302.25 112 27 1 3 27 3 146 4 18 +5049 60 69 85.02 1302.25 112 25 1 3 27 3 144 4 16 +5050 60 70 89.38 1302.25 112 28 1 3 27 3 147 4 19 +5051 60 71 93.74 1302.25 112 30 1 3 27 3 149 4 21 +5052 60 72 98.1 1302.25 116 27 1 3 28 3 146 4 18 +5053 60 73 102.46 1302.25 116 25 1 3 28 3 144 4 16 +5054 60 74 106.82 1302.25 116 23 1 3 28 3 142 4 14 +5055 60 75 111.18 1302.25 116 24 1 3 28 3 143 4 15 +5056 60 76 115.54 1302.25 116 26 1 3 28 3 145 4 17 +5057 60 77 119.9 1302.25 116 28 1 3 28 3 147 4 19 +5058 60 78 124.26 1302.25 120 29 1 3 29 3 148 4 20 +5059 60 79 128.62 1302.25 120 27 1 3 29 3 146 4 18 +5060 60 80 132.98 1302.25 120 25 1 3 29 3 144 4 16 +5061 60 81 137.34 1302.25 120 28 1 3 29 3 147 4 19 +5062 60 82 141.7 1302.25 120 30 1 3 29 3 149 4 21 +5063 60 83 146.06 1302.25 124 29 1 3 30 3 148 4 20 +5064 60 84 150.42 1302.25 124 27 1 3 30 3 146 4 18 +5065 60 85 154.78 1302.25 124 25 1 3 30 3 144 4 16 +5066 60 86 159.14 1302.25 124 24 1 3 30 3 143 4 15 +5067 60 87 163.5 1302.25 124 26 1 3 30 3 145 4 17 +5068 60 88 167.86 1302.25 128 27 1 3 31 3 146 4 18 +5069 60 89 172.22 1302.25 128 25 1 3 31 3 144 4 16 +5070 60 90 176.58 1302.25 128 23 1 3 31 3 142 4 14 +5071 60 91 180.94 1302.25 128 26 1 3 31 3 145 4 17 +5072 60 92 185.3 1302.25 128 28 1 3 31 3 147 4 19 +5073 60 93 189.66 1302.25 128 30 1 3 31 3 149 4 21 +5074 60 94 194.02 1302.25 132 27 1 3 32 3 146 4 18 +5075 60 95 198.38 1302.25 132 25 1 3 32 3 144 4 16 +5076 60 96 202.74 1302.25 132 23 1 3 32 3 142 4 14 +5077 60 97 207.1 1302.25 132 26 1 3 32 3 145 4 17 +5078 60 98 211.46 1302.25 132 28 1 3 32 3 147 4 19 +5079 60 99 215.82 1302.25 132 30 1 3 32 3 149 4 21 +5080 61 0 -215.82 1309.75 64 35 1 3 15 3 154 4 26 +5081 61 1 -211.46 1309.75 64 33 1 3 15 3 152 4 24 +5082 61 2 -207.1 1309.75 64 31 1 3 15 3 150 4 22 +5083 61 3 -202.74 1309.75 64 30 1 3 15 3 149 4 21 +5084 61 4 -198.38 1309.75 64 32 1 3 15 3 151 4 23 +5085 61 5 -194.02 1309.75 64 34 1 3 15 3 153 4 25 +5086 61 6 -189.66 1309.75 68 33 1 3 16 3 152 4 24 +5087 61 7 -185.3 1309.75 68 31 1 3 16 3 150 4 22 +5088 61 8 -180.94 1309.75 68 30 1 3 16 3 149 4 21 +5089 61 9 -176.58 1309.75 68 32 1 3 16 3 151 4 23 +5090 61 10 -172.22 1309.75 68 34 1 3 16 3 153 4 25 +5091 61 11 -167.86 1309.75 72 33 1 3 17 3 152 4 24 +5092 61 12 -163.5 1309.75 72 31 1 3 17 3 150 4 22 +5093 61 13 -159.14 1309.75 72 29 1 3 17 3 148 4 20 +5094 61 14 -154.78 1309.75 72 27 1 3 17 3 146 4 18 +5095 61 15 -150.42 1309.75 72 32 1 3 17 3 151 4 23 +5096 61 16 -146.06 1309.75 72 34 1 3 17 3 153 4 25 +5097 61 17 -141.7 1309.75 76 33 1 3 18 3 152 4 24 +5098 61 18 -137.34 1309.75 76 31 1 3 18 3 150 4 22 +5099 61 19 -132.98 1309.75 76 32 1 3 18 3 151 4 23 +5100 61 20 -128.62 1309.75 76 34 1 3 18 3 153 4 25 +5101 61 21 -124.26 1309.75 76 36 1 3 18 3 155 4 27 +5102 61 22 -119.9 1309.75 80 33 1 3 19 3 152 4 24 +5103 61 23 -115.54 1309.75 80 31 1 3 19 3 150 4 22 +5104 61 24 -111.18 1309.75 80 29 1 3 19 3 148 4 20 +5105 61 25 -106.82 1309.75 80 30 1 3 19 3 149 4 21 +5106 61 26 -102.46 1309.75 80 32 1 3 19 3 151 4 23 +5107 61 27 -98.1 1309.75 80 34 1 3 19 3 153 4 25 +5108 61 28 -93.74 1309.75 84 35 1 3 20 3 154 4 26 +5109 61 29 -89.38 1309.75 84 33 1 3 20 3 152 4 24 +5110 61 30 -85.02 1309.75 84 31 1 3 20 3 150 4 22 +5111 61 31 -80.66 1309.75 84 32 1 3 20 3 151 4 23 +5112 61 32 -76.3 1309.75 84 34 1 3 20 3 153 4 25 +5113 61 33 -71.94 1309.75 88 33 1 3 21 3 152 4 24 +5114 61 34 -67.58 1309.75 88 31 1 3 21 3 150 4 22 +5115 61 35 -63.22 1309.75 88 29 1 3 21 3 148 4 20 +5116 61 36 -58.86 1309.75 88 30 1 3 21 3 149 4 21 +5117 61 37 -54.5 1309.75 88 32 1 3 21 3 151 4 23 +5118 61 38 -50.14 1309.75 88 34 1 3 21 3 153 4 25 +5119 61 39 -45.78 1309.75 92 35 1 3 22 3 154 4 26 +5120 61 40 -41.42 1309.75 92 33 1 3 22 3 152 4 24 +5121 61 41 -37.06 1309.75 92 31 1 3 22 3 150 4 22 +5122 61 42 -32.7 1309.75 92 32 1 3 22 3 151 4 23 +5123 61 43 -28.34 1309.75 92 34 1 3 22 3 153 4 25 +5124 61 44 -23.98 1309.75 96 33 1 3 23 3 152 4 24 +5125 61 45 -19.62 1309.75 96 31 1 3 23 3 150 4 22 +5126 61 46 -15.26 1309.75 96 29 1 3 23 3 148 4 20 +5127 61 47 -10.9 1309.75 96 30 1 3 23 3 149 4 21 +5128 61 48 -6.54 1309.75 96 32 1 3 23 3 151 4 23 +5129 61 49 -2.18 1309.75 96 34 1 3 23 3 153 4 25 +5130 61 50 2.18 1309.75 100 33 1 3 24 3 152 4 24 +5131 61 51 6.54 1309.75 100 31 1 3 24 3 150 4 22 +5132 61 52 10.9 1309.75 100 29 1 3 24 3 148 4 20 +5133 61 53 15.26 1309.75 100 30 1 3 24 3 149 4 21 +5134 61 54 19.62 1309.75 100 32 1 3 24 3 151 4 23 +5135 61 55 23.98 1309.75 100 34 1 3 24 3 153 4 25 +5136 61 56 28.34 1309.75 104 33 1 3 25 3 152 4 24 +5137 61 57 32.7 1309.75 104 31 1 3 25 3 150 4 22 +5138 61 58 37.06 1309.75 104 32 1 3 25 3 151 4 23 +5139 61 59 41.42 1309.75 104 34 1 3 25 3 153 4 25 +5140 61 60 45.78 1309.75 104 36 1 3 25 3 155 4 27 +5141 61 61 50.14 1309.75 108 33 1 3 26 3 152 4 24 +5142 61 62 54.5 1309.75 108 31 1 3 26 3 150 4 22 +5143 61 63 58.86 1309.75 108 29 1 3 26 3 148 4 20 +5144 61 64 63.22 1309.75 108 30 1 3 26 3 149 4 21 +5145 61 65 67.58 1309.75 108 32 1 3 26 3 151 4 23 +5146 61 66 71.94 1309.75 108 34 1 3 26 3 153 4 25 +5147 61 67 76.3 1309.75 112 33 1 3 27 3 152 4 24 +5148 61 68 80.66 1309.75 112 31 1 3 27 3 150 4 22 +5149 61 69 85.02 1309.75 112 32 1 3 27 3 151 4 23 +5150 61 70 89.38 1309.75 112 34 1 3 27 3 153 4 25 +5151 61 71 93.74 1309.75 112 36 1 3 27 3 155 4 27 +5152 61 72 98.1 1309.75 116 33 1 3 28 3 152 4 24 +5153 61 73 102.46 1309.75 116 31 1 3 28 3 150 4 22 +5154 61 74 106.82 1309.75 116 29 1 3 28 3 148 4 20 +5155 61 75 111.18 1309.75 116 30 1 3 28 3 149 4 21 +5156 61 76 115.54 1309.75 116 32 1 3 28 3 151 4 23 +5157 61 77 119.9 1309.75 116 34 1 3 28 3 153 4 25 +5158 61 78 124.26 1309.75 120 35 1 3 29 3 154 4 26 +5159 61 79 128.62 1309.75 120 33 1 3 29 3 152 4 24 +5160 61 80 132.98 1309.75 120 31 1 3 29 3 150 4 22 +5161 61 81 137.34 1309.75 120 32 1 3 29 3 151 4 23 +5162 61 82 141.7 1309.75 120 34 1 3 29 3 153 4 25 +5163 61 83 146.06 1309.75 124 33 1 3 30 3 152 4 24 +5164 61 84 150.42 1309.75 124 31 1 3 30 3 150 4 22 +5165 61 85 154.78 1309.75 124 28 1 3 30 3 147 4 19 +5166 61 86 159.14 1309.75 124 30 1 3 30 3 149 4 21 +5167 61 87 163.5 1309.75 124 32 1 3 30 3 151 4 23 +5168 61 88 167.86 1309.75 124 34 1 3 30 3 153 4 25 +5169 61 89 172.22 1309.75 128 33 1 3 31 3 152 4 24 +5170 61 90 176.58 1309.75 128 31 1 3 31 3 150 4 22 +5171 61 91 180.94 1309.75 128 29 1 3 31 3 148 4 20 +5172 61 92 185.3 1309.75 128 32 1 3 31 3 151 4 23 +5173 61 93 189.66 1309.75 128 34 1 3 31 3 153 4 25 +5174 61 94 194.02 1309.75 132 33 1 3 32 3 152 4 24 +5175 61 95 198.38 1309.75 132 31 1 3 32 3 150 4 22 +5176 61 96 202.74 1309.75 132 29 1 3 32 3 148 4 20 +5177 61 97 207.1 1309.75 132 32 1 3 32 3 151 4 23 +5178 61 98 211.46 1309.75 132 34 1 3 32 3 153 4 25 +5179 61 99 215.82 1309.75 132 36 1 3 32 3 155 4 27 +5180 62 0 -215.82 1317.25 64 39 1 3 15 3 158 4 30 +5181 62 1 -211.46 1317.25 64 37 1 3 15 3 156 4 28 +5182 62 2 -207.1 1317.25 64 36 1 3 15 3 155 4 27 +5183 62 3 -202.74 1317.25 64 38 1 3 15 3 157 4 29 +5184 62 4 -198.38 1317.25 64 40 1 3 15 3 159 4 31 +5185 62 5 -194.02 1317.25 68 39 1 3 16 3 158 4 30 +5186 62 6 -189.66 1317.25 68 37 1 3 16 3 156 4 28 +5187 62 7 -185.3 1317.25 68 35 1 3 16 3 154 4 26 +5188 62 8 -180.94 1317.25 68 36 1 3 16 3 155 4 27 +5189 62 9 -176.58 1317.25 68 38 1 3 16 3 157 4 29 +5190 62 10 -172.22 1317.25 68 40 1 3 16 3 159 4 31 +5191 62 11 -167.86 1317.25 72 39 1 3 17 3 158 4 30 +5192 62 12 -163.5 1317.25 72 37 1 3 17 3 156 4 28 +5193 62 13 -159.14 1317.25 72 35 1 3 17 3 154 4 26 +5194 62 14 -154.78 1317.25 72 36 1 3 17 3 155 4 27 +5195 62 15 -150.42 1317.25 72 38 1 3 17 3 157 4 29 +5196 62 16 -146.06 1317.25 72 40 1 3 17 3 159 4 31 +5197 62 17 -141.7 1317.25 76 39 1 3 18 3 158 4 30 +5198 62 18 -137.34 1317.25 76 37 1 3 18 3 156 4 28 +5199 62 19 -132.98 1317.25 76 35 1 3 18 3 154 4 26 +5200 62 20 -128.62 1317.25 76 38 1 3 18 3 157 4 29 +5201 62 21 -124.26 1317.25 76 40 1 3 18 3 159 4 31 +5202 62 22 -119.9 1317.25 80 39 1 3 19 3 158 4 30 +5203 62 23 -115.54 1317.25 80 37 1 3 19 3 156 4 28 +5204 62 24 -111.18 1317.25 80 35 1 3 19 3 154 4 26 +5205 62 25 -106.82 1317.25 80 36 1 3 19 3 155 4 27 +5206 62 26 -102.46 1317.25 80 38 1 3 19 3 157 4 29 +5207 62 27 -98.1 1317.25 80 40 1 3 19 3 159 4 31 +5208 62 28 -93.74 1317.25 84 39 1 3 20 3 158 4 30 +5209 62 29 -89.38 1317.25 84 37 1 3 20 3 156 4 28 +5210 62 30 -85.02 1317.25 84 36 1 3 20 3 155 4 27 +5211 62 31 -80.66 1317.25 84 38 1 3 20 3 157 4 29 +5212 62 32 -76.3 1317.25 84 40 1 3 20 3 159 4 31 +5213 62 33 -71.94 1317.25 88 39 1 3 21 3 158 4 30 +5214 62 34 -67.58 1317.25 88 37 1 3 21 3 156 4 28 +5215 62 35 -63.22 1317.25 88 35 1 3 21 3 154 4 26 +5216 62 36 -58.86 1317.25 88 36 1 3 21 3 155 4 27 +5217 62 37 -54.5 1317.25 88 38 1 3 21 3 157 4 29 +5218 62 38 -50.14 1317.25 88 40 1 3 21 3 159 4 31 +5219 62 39 -45.78 1317.25 92 39 1 3 22 3 158 4 30 +5220 62 40 -41.42 1317.25 92 37 1 3 22 3 156 4 28 +5221 62 41 -37.06 1317.25 92 36 1 3 22 3 155 4 27 +5222 62 42 -32.7 1317.25 92 38 1 3 22 3 157 4 29 +5223 62 43 -28.34 1317.25 92 40 1 3 22 3 159 4 31 +5224 62 44 -23.98 1317.25 96 39 1 3 23 3 158 4 30 +5225 62 45 -19.62 1317.25 96 37 1 3 23 3 156 4 28 +5226 62 46 -15.26 1317.25 96 35 1 3 23 3 154 4 26 +5227 62 47 -10.9 1317.25 96 36 1 3 23 3 155 4 27 +5228 62 48 -6.54 1317.25 96 38 1 3 23 3 157 4 29 +5229 62 49 -2.18 1317.25 96 40 1 3 23 3 159 4 31 +5230 62 50 2.18 1317.25 100 39 1 3 24 3 158 4 30 +5231 62 51 6.54 1317.25 100 37 1 3 24 3 156 4 28 +5232 62 52 10.9 1317.25 100 35 1 3 24 3 154 4 26 +5233 62 53 15.26 1317.25 100 36 1 3 24 3 155 4 27 +5234 62 54 19.62 1317.25 100 38 1 3 24 3 157 4 29 +5235 62 55 23.98 1317.25 100 40 1 3 24 3 159 4 31 +5236 62 56 28.34 1317.25 104 39 1 3 25 3 158 4 30 +5237 62 57 32.7 1317.25 104 37 1 3 25 3 156 4 28 +5238 62 58 37.06 1317.25 104 35 1 3 25 3 154 4 26 +5239 62 59 41.42 1317.25 104 38 1 3 25 3 157 4 29 +5240 62 60 45.78 1317.25 104 40 1 3 25 3 159 4 31 +5241 62 61 50.14 1317.25 108 39 1 3 26 3 158 4 30 +5242 62 62 54.5 1317.25 108 37 1 3 26 3 156 4 28 +5243 62 63 58.86 1317.25 108 35 1 3 26 3 154 4 26 +5244 62 64 63.22 1317.25 108 36 1 3 26 3 155 4 27 +5245 62 65 67.58 1317.25 108 38 1 3 26 3 157 4 29 +5246 62 66 71.94 1317.25 108 40 1 3 26 3 159 4 31 +5247 62 67 76.3 1317.25 112 39 1 3 27 3 158 4 30 +5248 62 68 80.66 1317.25 112 37 1 3 27 3 156 4 28 +5249 62 69 85.02 1317.25 112 35 1 3 27 3 154 4 26 +5250 62 70 89.38 1317.25 112 38 1 3 27 3 157 4 29 +5251 62 71 93.74 1317.25 112 40 1 3 27 3 159 4 31 +5252 62 72 98.1 1317.25 116 39 1 3 28 3 158 4 30 +5253 62 73 102.46 1317.25 116 37 1 3 28 3 156 4 28 +5254 62 74 106.82 1317.25 116 35 1 3 28 3 154 4 26 +5255 62 75 111.18 1317.25 116 36 1 3 28 3 155 4 27 +5256 62 76 115.54 1317.25 116 38 1 3 28 3 157 4 29 +5257 62 77 119.9 1317.25 116 40 1 3 28 3 159 4 31 +5258 62 78 124.26 1317.25 120 39 1 3 29 3 158 4 30 +5259 62 79 128.62 1317.25 120 37 1 3 29 3 156 4 28 +5260 62 80 132.98 1317.25 120 36 1 3 29 3 155 4 27 +5261 62 81 137.34 1317.25 120 38 1 3 29 3 157 4 29 +5262 62 82 141.7 1317.25 120 40 1 3 29 3 159 4 31 +5263 62 83 146.06 1317.25 124 39 1 3 30 3 158 4 30 +5264 62 84 150.42 1317.25 124 37 1 3 30 3 156 4 28 +5265 62 85 154.78 1317.25 124 35 1 3 30 3 154 4 26 +5266 62 86 159.14 1317.25 124 36 1 3 30 3 155 4 27 +5267 62 87 163.5 1317.25 124 38 1 3 30 3 157 4 29 +5268 62 88 167.86 1317.25 124 40 1 3 30 3 159 4 31 +5269 62 89 172.22 1317.25 128 39 1 3 31 3 158 4 30 +5270 62 90 176.58 1317.25 128 37 1 3 31 3 156 4 28 +5271 62 91 180.94 1317.25 128 35 1 3 31 3 154 4 26 +5272 62 92 185.3 1317.25 128 36 1 3 31 3 155 4 27 +5273 62 93 189.66 1317.25 128 38 1 3 31 3 157 4 29 +5274 62 94 194.02 1317.25 128 40 1 3 31 3 159 4 31 +5275 62 95 198.38 1317.25 132 39 1 3 32 3 158 4 30 +5276 62 96 202.74 1317.25 132 37 1 3 32 3 156 4 28 +5277 62 97 207.1 1317.25 132 35 1 3 32 3 154 4 26 +5278 62 98 211.46 1317.25 132 38 1 3 32 3 157 4 29 +5279 62 99 215.82 1317.25 132 40 1 3 32 3 159 4 31 diff --git a/Detectors/TPC/base/files/TABLE-OROC1.txt b/Detectors/TPC/base/files/TABLE-OROC1.txt new file mode 100644 index 0000000000000..aa44f6f63496a --- /dev/null +++ b/Detectors/TPC/base/files/TABLE-OROC1.txt @@ -0,0 +1,2880 @@ +5280 63 0 -225 1352 1 3 2 4 33 0 2 0 2 +5281 63 1 -219 1352 1 1 2 4 33 0 0 0 0 +5282 63 2 -213 1352 1 2 2 4 33 0 1 0 1 +5283 63 3 -207 1352 1 4 2 4 33 0 3 0 3 +5284 63 4 -201 1352 1 6 2 4 33 0 5 0 5 +5285 63 5 -195 1352 5 3 2 4 34 0 2 0 2 +5286 63 6 -189 1352 5 1 2 4 34 0 0 0 0 +5287 63 7 -183 1352 5 2 2 4 34 0 1 0 1 +5288 63 8 -177 1352 5 4 2 4 34 0 3 0 3 +5289 63 9 -171 1352 9 3 2 4 35 0 2 0 2 +5290 63 10 -165 1352 9 1 2 4 35 0 0 0 0 +5291 63 11 -159 1352 9 2 2 4 35 0 1 0 1 +5292 63 12 -153 1352 9 4 2 4 35 0 3 0 3 +5293 63 13 -147 1352 13 3 2 4 36 0 2 0 2 +5294 63 14 -141 1352 13 1 2 4 36 0 0 0 0 +5295 63 15 -135 1352 13 2 2 4 36 0 1 0 1 +5296 63 16 -129 1352 13 4 2 4 36 0 3 0 3 +5297 63 17 -123 1352 17 3 2 4 37 0 2 0 2 +5298 63 18 -117 1352 17 1 2 4 37 0 0 0 0 +5299 63 19 -111 1352 17 2 2 4 37 0 1 0 1 +5300 63 20 -105 1352 17 4 2 4 37 0 3 0 3 +5301 63 21 -99 1352 21 3 2 4 38 0 2 0 2 +5302 63 22 -93 1352 21 1 2 4 38 0 0 0 0 +5303 63 23 -87 1352 21 2 2 4 38 0 1 0 1 +5304 63 24 -81 1352 21 4 2 4 38 0 3 0 3 +5305 63 25 -75 1352 21 6 2 4 38 0 5 0 5 +5306 63 26 -69 1352 25 3 2 4 39 0 2 0 2 +5307 63 27 -63 1352 25 1 2 4 39 0 0 0 0 +5308 63 28 -57 1352 25 2 2 4 39 0 1 0 1 +5309 63 29 -51 1352 25 4 2 4 39 0 3 0 3 +5310 63 30 -45 1352 29 3 2 4 40 0 2 0 2 +5311 63 31 -39 1352 29 1 2 4 40 0 0 0 0 +5312 63 32 -33 1352 29 2 2 4 40 0 1 0 1 +5313 63 33 -27 1352 29 4 2 4 40 0 3 0 3 +5314 63 34 -21 1352 33 3 2 4 41 0 2 0 2 +5315 63 35 -15 1352 33 1 2 4 41 0 0 0 0 +5316 63 36 -9 1352 33 2 2 4 41 0 1 0 1 +5317 63 37 -3 1352 33 4 2 4 41 0 3 0 3 +5318 63 38 3 1352 37 3 2 4 42 0 2 0 2 +5319 63 39 9 1352 37 1 2 4 42 0 0 0 0 +5320 63 40 15 1352 37 2 2 4 42 0 1 0 1 +5321 63 41 21 1352 37 4 2 4 42 0 3 0 3 +5322 63 42 27 1352 41 3 2 4 43 0 2 0 2 +5323 63 43 33 1352 41 1 2 4 43 0 0 0 0 +5324 63 44 39 1352 41 2 2 4 43 0 1 0 1 +5325 63 45 45 1352 41 4 2 4 43 0 3 0 3 +5326 63 46 51 1352 45 3 2 4 44 0 2 0 2 +5327 63 47 57 1352 45 1 2 4 44 0 0 0 0 +5328 63 48 63 1352 45 2 2 4 44 0 1 0 1 +5329 63 49 69 1352 45 4 2 4 44 0 3 0 3 +5330 63 50 75 1352 49 5 2 4 45 0 4 0 4 +5331 63 51 81 1352 49 3 2 4 45 0 2 0 2 +5332 63 52 87 1352 49 1 2 4 45 0 0 0 0 +5333 63 53 93 1352 49 2 2 4 45 0 1 0 1 +5334 63 54 99 1352 49 4 2 4 45 0 3 0 3 +5335 63 55 105 1352 53 3 2 4 46 0 2 0 2 +5336 63 56 111 1352 53 1 2 4 46 0 0 0 0 +5337 63 57 117 1352 53 2 2 4 46 0 1 0 1 +5338 63 58 123 1352 53 4 2 4 46 0 3 0 3 +5339 63 59 129 1352 57 3 2 4 47 0 2 0 2 +5340 63 60 135 1352 57 1 2 4 47 0 0 0 0 +5341 63 61 141 1352 57 2 2 4 47 0 1 0 1 +5342 63 62 147 1352 57 4 2 4 47 0 3 0 3 +5343 63 63 153 1352 61 3 2 4 48 0 2 0 2 +5344 63 64 159 1352 61 1 2 4 48 0 0 0 0 +5345 63 65 165 1352 61 2 2 4 48 0 1 0 1 +5346 63 66 171 1352 61 4 2 4 48 0 3 0 3 +5347 63 67 177 1352 65 3 2 4 49 0 2 0 2 +5348 63 68 183 1352 65 1 2 4 49 0 0 0 0 +5349 63 69 189 1352 65 2 2 4 49 0 1 0 1 +5350 63 70 195 1352 65 4 2 4 49 0 3 0 3 +5351 63 71 201 1352 69 5 2 4 50 0 4 0 4 +5352 63 72 207 1352 69 3 2 4 50 0 2 0 2 +5353 63 73 213 1352 69 1 2 4 50 0 0 0 0 +5354 63 74 219 1352 69 2 2 4 50 0 1 0 1 +5355 63 75 225 1352 69 4 2 4 50 0 3 0 3 +5356 64 0 -225 1362 1 7 2 4 33 0 6 0 6 +5357 64 1 -219 1362 1 5 2 4 33 0 4 0 4 +5358 64 2 -213 1362 1 8 2 4 33 0 7 0 7 +5359 64 3 -207 1362 1 10 2 4 33 0 9 0 9 +5360 64 4 -201 1362 5 9 2 4 34 0 8 0 8 +5361 64 5 -195 1362 5 7 2 4 34 0 6 0 6 +5362 64 6 -189 1362 5 5 2 4 34 0 4 0 4 +5363 64 7 -183 1362 5 6 2 4 34 0 5 0 5 +5364 64 8 -177 1362 5 8 2 4 34 0 7 0 7 +5365 64 9 -171 1362 9 7 2 4 35 0 6 0 6 +5366 64 10 -165 1362 9 5 2 4 35 0 4 0 4 +5367 64 11 -159 1362 9 6 2 4 35 0 5 0 5 +5368 64 12 -153 1362 9 8 2 4 35 0 7 0 7 +5369 64 13 -147 1362 13 7 2 4 36 0 6 0 6 +5370 64 14 -141 1362 13 5 2 4 36 0 4 0 4 +5371 64 15 -135 1362 13 6 2 4 36 0 5 0 5 +5372 64 16 -129 1362 13 8 2 4 36 0 7 0 7 +5373 64 17 -123 1362 17 7 2 4 37 0 6 0 6 +5374 64 18 -117 1362 17 5 2 4 37 0 4 0 4 +5375 64 19 -111 1362 17 6 2 4 37 0 5 0 5 +5376 64 20 -105 1362 17 8 2 4 37 0 7 0 7 +5377 64 21 -99 1362 21 7 2 4 38 0 6 0 6 +5378 64 22 -93 1362 21 5 2 4 38 0 4 0 4 +5379 64 23 -87 1362 21 8 2 4 38 0 7 0 7 +5380 64 24 -81 1362 21 10 2 4 38 0 9 0 9 +5381 64 25 -75 1362 25 7 2 4 39 0 6 0 6 +5382 64 26 -69 1362 25 5 2 4 39 0 4 0 4 +5383 64 27 -63 1362 25 6 2 4 39 0 5 0 5 +5384 64 28 -57 1362 25 8 2 4 39 0 7 0 7 +5385 64 29 -51 1362 25 10 2 4 39 0 9 0 9 +5386 64 30 -45 1362 29 7 2 4 40 0 6 0 6 +5387 64 31 -39 1362 29 5 2 4 40 0 4 0 4 +5388 64 32 -33 1362 29 6 2 4 40 0 5 0 5 +5389 64 33 -27 1362 29 8 2 4 40 0 7 0 7 +5390 64 34 -21 1362 33 7 2 4 41 0 6 0 6 +5391 64 35 -15 1362 33 5 2 4 41 0 4 0 4 +5392 64 36 -9 1362 33 6 2 4 41 0 5 0 5 +5393 64 37 -3 1362 33 8 2 4 41 0 7 0 7 +5394 64 38 3 1362 37 7 2 4 42 0 6 0 6 +5395 64 39 9 1362 37 5 2 4 42 0 4 0 4 +5396 64 40 15 1362 37 6 2 4 42 0 5 0 5 +5397 64 41 21 1362 37 8 2 4 42 0 7 0 7 +5398 64 42 27 1362 41 7 2 4 43 0 6 0 6 +5399 64 43 33 1362 41 5 2 4 43 0 4 0 4 +5400 64 44 39 1362 41 6 2 4 43 0 5 0 5 +5401 64 45 45 1362 41 8 2 4 43 0 7 0 7 +5402 64 46 51 1362 45 9 2 4 44 0 8 0 8 +5403 64 47 57 1362 45 7 2 4 44 0 6 0 6 +5404 64 48 63 1362 45 5 2 4 44 0 4 0 4 +5405 64 49 69 1362 45 6 2 4 44 0 5 0 5 +5406 64 50 75 1362 45 8 2 4 44 0 7 0 7 +5407 64 51 81 1362 49 9 2 4 45 0 8 0 8 +5408 64 52 87 1362 49 7 2 4 45 0 6 0 6 +5409 64 53 93 1362 49 6 2 4 45 0 5 0 5 +5410 64 54 99 1362 49 8 2 4 45 0 7 0 7 +5411 64 55 105 1362 53 7 2 4 46 0 6 0 6 +5412 64 56 111 1362 53 5 2 4 46 0 4 0 4 +5413 64 57 117 1362 53 6 2 4 46 0 5 0 5 +5414 64 58 123 1362 53 8 2 4 46 0 7 0 7 +5415 64 59 129 1362 57 7 2 4 47 0 6 0 6 +5416 64 60 135 1362 57 5 2 4 47 0 4 0 4 +5417 64 61 141 1362 57 6 2 4 47 0 5 0 5 +5418 64 62 147 1362 57 8 2 4 47 0 7 0 7 +5419 64 63 153 1362 61 7 2 4 48 0 6 0 6 +5420 64 64 159 1362 61 5 2 4 48 0 4 0 4 +5421 64 65 165 1362 61 6 2 4 48 0 5 0 5 +5422 64 66 171 1362 61 8 2 4 48 0 7 0 7 +5423 64 67 177 1362 65 7 2 4 49 0 6 0 6 +5424 64 68 183 1362 65 5 2 4 49 0 4 0 4 +5425 64 69 189 1362 65 6 2 4 49 0 5 0 5 +5426 64 70 195 1362 65 8 2 4 49 0 7 0 7 +5427 64 71 201 1362 65 10 2 4 49 0 9 0 9 +5428 64 72 207 1362 69 9 2 4 50 0 8 0 8 +5429 64 73 213 1362 69 7 2 4 50 0 6 0 6 +5430 64 74 219 1362 69 6 2 4 50 0 5 0 5 +5431 64 75 225 1362 69 8 2 4 50 0 7 0 7 +5432 65 0 -225 1372 1 11 2 4 33 0 10 0 10 +5433 65 1 -219 1372 1 9 2 4 33 0 8 0 8 +5434 65 2 -213 1372 1 12 2 4 33 0 11 0 11 +5435 65 3 -207 1372 1 14 2 4 33 0 13 0 13 +5436 65 4 -201 1372 5 13 2 4 34 0 12 0 12 +5437 65 5 -195 1372 5 11 2 4 34 0 10 0 10 +5438 65 6 -189 1372 5 10 2 4 34 0 9 0 9 +5439 65 7 -183 1372 5 12 2 4 34 0 11 0 11 +5440 65 8 -177 1372 9 11 2 4 35 0 10 0 10 +5441 65 9 -171 1372 9 9 2 4 35 0 8 0 8 +5442 65 10 -165 1372 9 10 2 4 35 0 9 0 9 +5443 65 11 -159 1372 9 12 2 4 35 0 11 0 11 +5444 65 12 -153 1372 9 14 2 4 35 0 13 0 13 +5445 65 13 -147 1372 13 11 2 4 36 0 10 0 10 +5446 65 14 -141 1372 13 9 2 4 36 0 8 0 8 +5447 65 15 -135 1372 13 10 2 4 36 0 9 0 9 +5448 65 16 -129 1372 13 12 2 4 36 0 11 0 11 +5449 65 17 -123 1372 17 11 2 4 37 0 10 0 10 +5450 65 18 -117 1372 17 9 2 4 37 0 8 0 8 +5451 65 19 -111 1372 17 10 2 4 37 0 9 0 9 +5452 65 20 -105 1372 17 12 2 4 37 0 11 0 11 +5453 65 21 -99 1372 21 11 2 4 38 0 10 0 10 +5454 65 22 -93 1372 21 9 2 4 38 0 8 0 8 +5455 65 23 -87 1372 21 12 2 4 38 0 11 0 11 +5456 65 24 -81 1372 21 14 2 4 38 0 13 0 13 +5457 65 25 -75 1372 25 11 2 4 39 0 10 0 10 +5458 65 26 -69 1372 25 9 2 4 39 0 8 0 8 +5459 65 27 -63 1372 25 12 2 4 39 0 11 0 11 +5460 65 28 -57 1372 25 14 2 4 39 0 13 0 13 +5461 65 29 -51 1372 29 11 2 4 40 0 10 0 10 +5462 65 30 -45 1372 29 9 2 4 40 0 8 0 8 +5463 65 31 -39 1372 29 10 2 4 40 0 9 0 9 +5464 65 32 -33 1372 29 12 2 4 40 0 11 0 11 +5465 65 33 -27 1372 29 14 2 4 40 0 13 0 13 +5466 65 34 -21 1372 33 11 2 4 41 0 10 0 10 +5467 65 35 -15 1372 33 9 2 4 41 0 8 0 8 +5468 65 36 -9 1372 33 10 2 4 41 0 9 0 9 +5469 65 37 -3 1372 33 12 2 4 41 0 11 0 11 +5470 65 38 3 1372 37 11 2 4 42 0 10 0 10 +5471 65 39 9 1372 37 9 2 4 42 0 8 0 8 +5472 65 40 15 1372 37 10 2 4 42 0 9 0 9 +5473 65 41 21 1372 37 12 2 4 42 0 11 0 11 +5474 65 42 27 1372 41 13 2 4 43 0 12 0 12 +5475 65 43 33 1372 41 11 2 4 43 0 10 0 10 +5476 65 44 39 1372 41 9 2 4 43 0 8 0 8 +5477 65 45 45 1372 41 10 2 4 43 0 9 0 9 +5478 65 46 51 1372 41 12 2 4 43 0 11 0 11 +5479 65 47 57 1372 45 13 2 4 44 0 12 0 12 +5480 65 48 63 1372 45 11 2 4 44 0 10 0 10 +5481 65 49 69 1372 45 10 2 4 44 0 9 0 9 +5482 65 50 75 1372 45 12 2 4 44 0 11 0 11 +5483 65 51 81 1372 49 13 2 4 45 0 12 0 12 +5484 65 52 87 1372 49 11 2 4 45 0 10 0 10 +5485 65 53 93 1372 49 10 2 4 45 0 9 0 9 +5486 65 54 99 1372 49 12 2 4 45 0 11 0 11 +5487 65 55 105 1372 53 11 2 4 46 0 10 0 10 +5488 65 56 111 1372 53 9 2 4 46 0 8 0 8 +5489 65 57 117 1372 53 10 2 4 46 0 9 0 9 +5490 65 58 123 1372 53 12 2 4 46 0 11 0 11 +5491 65 59 129 1372 57 11 2 4 47 0 10 0 10 +5492 65 60 135 1372 57 9 2 4 47 0 8 0 8 +5493 65 61 141 1372 57 10 2 4 47 0 9 0 9 +5494 65 62 147 1372 57 12 2 4 47 0 11 0 11 +5495 65 63 153 1372 61 13 2 4 48 0 12 0 12 +5496 65 64 159 1372 61 11 2 4 48 0 10 0 10 +5497 65 65 165 1372 61 9 2 4 48 0 8 0 8 +5498 65 66 171 1372 61 10 2 4 48 0 9 0 9 +5499 65 67 177 1372 61 12 2 4 48 0 11 0 11 +5500 65 68 183 1372 65 11 2 4 49 0 10 0 10 +5501 65 69 189 1372 65 9 2 4 49 0 8 0 8 +5502 65 70 195 1372 65 12 2 4 49 0 11 0 11 +5503 65 71 201 1372 65 14 2 4 49 0 13 0 13 +5504 65 72 207 1372 69 13 2 4 50 0 12 0 12 +5505 65 73 213 1372 69 11 2 4 50 0 10 0 10 +5506 65 74 219 1372 69 10 2 4 50 0 9 0 9 +5507 65 75 225 1372 69 12 2 4 50 0 11 0 11 +5508 66 0 -225 1382 1 15 2 4 33 0 14 0 14 +5509 66 1 -219 1382 1 13 2 4 33 0 12 0 12 +5510 66 2 -213 1382 1 16 2 4 33 0 15 0 15 +5511 66 3 -207 1382 1 18 2 4 33 0 17 0 17 +5512 66 4 -201 1382 5 17 2 4 34 0 16 0 16 +5513 66 5 -195 1382 5 15 2 4 34 0 14 0 14 +5514 66 6 -189 1382 5 14 2 4 34 0 13 0 13 +5515 66 7 -183 1382 5 16 2 4 34 0 15 0 15 +5516 66 8 -177 1382 9 15 2 4 35 0 14 0 14 +5517 66 9 -171 1382 9 13 2 4 35 0 12 0 12 +5518 66 10 -165 1382 9 16 2 4 35 0 15 0 15 +5519 66 11 -159 1382 9 18 2 4 35 0 17 0 17 +5520 66 12 -153 1382 13 15 2 4 36 0 14 0 14 +5521 66 13 -147 1382 13 13 2 4 36 0 12 0 12 +5522 66 14 -141 1382 13 14 2 4 36 0 13 0 13 +5523 66 15 -135 1382 13 16 2 4 36 0 15 0 15 +5524 66 16 -129 1382 13 18 2 4 36 0 17 0 17 +5525 66 17 -123 1382 17 15 2 4 37 0 14 0 14 +5526 66 18 -117 1382 17 13 2 4 37 0 12 0 12 +5527 66 19 -111 1382 17 14 2 4 37 0 13 0 13 +5528 66 20 -105 1382 17 16 2 4 37 0 15 0 15 +5529 66 21 -99 1382 21 15 2 4 38 0 14 0 14 +5530 66 22 -93 1382 21 13 2 4 38 0 12 0 12 +5531 66 23 -87 1382 21 16 2 4 38 0 15 0 15 +5532 66 24 -81 1382 21 18 2 4 38 0 17 0 17 +5533 66 25 -75 1382 25 15 2 4 39 0 14 0 14 +5534 66 26 -69 1382 25 13 2 4 39 0 12 0 12 +5535 66 27 -63 1382 25 16 2 4 39 0 15 0 15 +5536 66 28 -57 1382 25 18 2 4 39 0 17 0 17 +5537 66 29 -51 1382 29 17 2 4 40 0 16 0 16 +5538 66 30 -45 1382 29 15 2 4 40 0 14 0 14 +5539 66 31 -39 1382 29 13 2 4 40 0 12 0 12 +5540 66 32 -33 1382 29 16 2 4 40 0 15 0 15 +5541 66 33 -27 1382 29 18 2 4 40 0 17 0 17 +5542 66 34 -21 1382 33 15 2 4 41 0 14 0 14 +5543 66 35 -15 1382 33 13 2 4 41 0 12 0 12 +5544 66 36 -9 1382 33 14 2 4 41 0 13 0 13 +5545 66 37 -3 1382 33 16 2 4 41 0 15 0 15 +5546 66 38 3 1382 37 15 2 4 42 0 14 0 14 +5547 66 39 9 1382 37 13 2 4 42 0 12 0 12 +5548 66 40 15 1382 37 14 2 4 42 0 13 0 13 +5549 66 41 21 1382 37 16 2 4 42 0 15 0 15 +5550 66 42 27 1382 41 17 2 4 43 0 16 0 16 +5551 66 43 33 1382 41 15 2 4 43 0 14 0 14 +5552 66 44 39 1382 41 14 2 4 43 0 13 0 13 +5553 66 45 45 1382 41 16 2 4 43 0 15 0 15 +5554 66 46 51 1382 41 18 2 4 43 0 17 0 17 +5555 66 47 57 1382 45 17 2 4 44 0 16 0 16 +5556 66 48 63 1382 45 15 2 4 44 0 14 0 14 +5557 66 49 69 1382 45 14 2 4 44 0 13 0 13 +5558 66 50 75 1382 45 16 2 4 44 0 15 0 15 +5559 66 51 81 1382 49 17 2 4 45 0 16 0 16 +5560 66 52 87 1382 49 15 2 4 45 0 14 0 14 +5561 66 53 93 1382 49 14 2 4 45 0 13 0 13 +5562 66 54 99 1382 49 16 2 4 45 0 15 0 15 +5563 66 55 105 1382 53 15 2 4 46 0 14 0 14 +5564 66 56 111 1382 53 13 2 4 46 0 12 0 12 +5565 66 57 117 1382 53 14 2 4 46 0 13 0 13 +5566 66 58 123 1382 53 16 2 4 46 0 15 0 15 +5567 66 59 129 1382 57 17 2 4 47 0 16 0 16 +5568 66 60 135 1382 57 15 2 4 47 0 14 0 14 +5569 66 61 141 1382 57 13 2 4 47 0 12 0 12 +5570 66 62 147 1382 57 14 2 4 47 0 13 0 13 +5571 66 63 153 1382 57 16 2 4 47 0 15 0 15 +5572 66 64 159 1382 61 17 2 4 48 0 16 0 16 +5573 66 65 165 1382 61 15 2 4 48 0 14 0 14 +5574 66 66 171 1382 61 14 2 4 48 0 13 0 13 +5575 66 67 177 1382 61 16 2 4 48 0 15 0 15 +5576 66 68 183 1382 65 15 2 4 49 0 14 0 14 +5577 66 69 189 1382 65 13 2 4 49 0 12 0 12 +5578 66 70 195 1382 65 16 2 4 49 0 15 0 15 +5579 66 71 201 1382 65 18 2 4 49 0 17 0 17 +5580 66 72 207 1382 69 17 2 4 50 0 16 0 16 +5581 66 73 213 1382 69 15 2 4 50 0 14 0 14 +5582 66 74 219 1382 69 14 2 4 50 0 13 0 13 +5583 66 75 225 1382 69 16 2 4 50 0 15 0 15 +5584 67 0 -231 1392 1 21 2 4 33 0 20 0 20 +5585 67 1 -225 1392 1 19 2 4 33 0 18 0 18 +5586 67 2 -219 1392 1 17 2 4 33 0 16 0 16 +5587 67 3 -213 1392 1 20 2 4 33 0 19 0 19 +5588 67 4 -207 1392 1 22 2 4 33 0 21 0 21 +5589 67 5 -201 1392 5 21 2 4 34 0 20 0 20 +5590 67 6 -195 1392 5 19 2 4 34 0 18 0 18 +5591 67 7 -189 1392 5 18 2 4 34 0 17 0 17 +5592 67 8 -183 1392 5 20 2 4 34 0 19 0 19 +5593 67 9 -177 1392 9 19 2 4 35 0 18 0 18 +5594 67 10 -171 1392 9 17 2 4 35 0 16 0 16 +5595 67 11 -165 1392 9 20 2 4 35 0 19 0 19 +5596 67 12 -159 1392 9 22 2 4 35 0 21 0 21 +5597 67 13 -153 1392 13 19 2 4 36 0 18 0 18 +5598 67 14 -147 1392 13 17 2 4 36 0 16 0 16 +5599 67 15 -141 1392 13 20 2 4 36 0 19 0 19 +5600 67 16 -135 1392 13 22 2 4 36 0 21 0 21 +5601 67 17 -129 1392 17 21 2 4 37 0 20 0 20 +5602 67 18 -123 1392 17 19 2 4 37 0 18 0 18 +5603 67 19 -117 1392 17 17 2 4 37 0 16 0 16 +5604 67 20 -111 1392 17 18 2 4 37 0 17 0 17 +5605 67 21 -105 1392 17 20 2 4 37 0 19 0 19 +5606 67 22 -99 1392 21 19 2 4 38 0 18 0 18 +5607 67 23 -93 1392 21 17 2 4 38 0 16 0 16 +5608 67 24 -87 1392 21 20 2 4 38 0 19 0 19 +5609 67 25 -81 1392 21 22 2 4 38 0 21 0 21 +5610 67 26 -75 1392 25 19 2 4 39 0 18 0 18 +5611 67 27 -69 1392 25 17 2 4 39 0 16 0 16 +5612 67 28 -63 1392 25 20 2 4 39 0 19 0 19 +5613 67 29 -57 1392 25 22 2 4 39 0 21 0 21 +5614 67 30 -51 1392 29 21 2 4 40 0 20 0 20 +5615 67 31 -45 1392 29 19 2 4 40 0 18 0 18 +5616 67 32 -39 1392 29 20 2 4 40 0 19 0 19 +5617 67 33 -33 1392 29 22 2 4 40 0 21 0 21 +5618 67 34 -27 1392 29 24 2 4 40 0 23 0 23 +5619 67 35 -21 1392 33 19 2 4 41 0 18 0 18 +5620 67 36 -15 1392 33 17 2 4 41 0 16 0 16 +5621 67 37 -9 1392 33 18 2 4 41 0 17 0 17 +5622 67 38 -3 1392 33 20 2 4 41 0 19 0 19 +5623 67 39 3 1392 37 19 2 4 42 0 18 0 18 +5624 67 40 9 1392 37 17 2 4 42 0 16 0 16 +5625 67 41 15 1392 37 18 2 4 42 0 17 0 17 +5626 67 42 21 1392 37 20 2 4 42 0 19 0 19 +5627 67 43 27 1392 41 23 2 4 43 0 22 0 22 +5628 67 44 33 1392 41 21 2 4 43 0 20 0 20 +5629 67 45 39 1392 41 19 2 4 43 0 18 0 18 +5630 67 46 45 1392 41 20 2 4 43 0 19 0 19 +5631 67 47 51 1392 41 22 2 4 43 0 21 0 21 +5632 67 48 57 1392 45 21 2 4 44 0 20 0 20 +5633 67 49 63 1392 45 19 2 4 44 0 18 0 18 +5634 67 50 69 1392 45 18 2 4 44 0 17 0 17 +5635 67 51 75 1392 45 20 2 4 44 0 19 0 19 +5636 67 52 81 1392 49 21 2 4 45 0 20 0 20 +5637 67 53 87 1392 49 19 2 4 45 0 18 0 18 +5638 67 54 93 1392 49 18 2 4 45 0 17 0 17 +5639 67 55 99 1392 49 20 2 4 45 0 19 0 19 +5640 67 56 105 1392 53 19 2 4 46 0 18 0 18 +5641 67 57 111 1392 53 17 2 4 46 0 16 0 16 +5642 67 58 117 1392 53 18 2 4 46 0 17 0 17 +5643 67 59 123 1392 53 20 2 4 46 0 19 0 19 +5644 67 60 129 1392 53 22 2 4 46 0 21 0 21 +5645 67 61 135 1392 57 21 2 4 47 0 20 0 20 +5646 67 62 141 1392 57 19 2 4 47 0 18 0 18 +5647 67 63 147 1392 57 18 2 4 47 0 17 0 17 +5648 67 64 153 1392 57 20 2 4 47 0 19 0 19 +5649 67 65 159 1392 61 21 2 4 48 0 20 0 20 +5650 67 66 165 1392 61 19 2 4 48 0 18 0 18 +5651 67 67 171 1392 61 18 2 4 48 0 17 0 17 +5652 67 68 177 1392 61 20 2 4 48 0 19 0 19 +5653 67 69 183 1392 65 19 2 4 49 0 18 0 18 +5654 67 70 189 1392 65 17 2 4 49 0 16 0 16 +5655 67 71 195 1392 65 20 2 4 49 0 19 0 19 +5656 67 72 201 1392 65 22 2 4 49 0 21 0 21 +5657 67 73 207 1392 69 21 2 4 50 0 20 0 20 +5658 67 74 213 1392 69 19 2 4 50 0 18 0 18 +5659 67 75 219 1392 69 18 2 4 50 0 17 0 17 +5660 67 76 225 1392 69 20 2 4 50 0 19 0 19 +5661 67 77 231 1392 69 22 2 4 50 0 21 0 21 +5662 68 0 -231 1402 1 25 2 4 33 0 24 0 24 +5663 68 1 -225 1402 1 23 2 4 33 0 22 0 22 +5664 68 2 -219 1402 1 24 2 4 33 0 23 0 23 +5665 68 3 -213 1402 1 26 2 4 33 0 25 0 25 +5666 68 4 -207 1402 5 27 2 4 34 0 26 0 26 +5667 68 5 -201 1402 5 25 2 4 34 0 24 0 24 +5668 68 6 -195 1402 5 23 2 4 34 0 22 0 22 +5669 68 7 -189 1402 5 22 2 4 34 0 21 0 21 +5670 68 8 -183 1402 5 24 2 4 34 0 23 0 23 +5671 68 9 -177 1402 9 23 2 4 35 0 22 0 22 +5672 68 10 -171 1402 9 21 2 4 35 0 20 0 20 +5673 68 11 -165 1402 9 24 2 4 35 0 23 0 23 +5674 68 12 -159 1402 9 26 2 4 35 0 25 0 25 +5675 68 13 -153 1402 13 23 2 4 36 0 22 0 22 +5676 68 14 -147 1402 13 21 2 4 36 0 20 0 20 +5677 68 15 -141 1402 13 24 2 4 36 0 23 0 23 +5678 68 16 -135 1402 13 26 2 4 36 0 25 0 25 +5679 68 17 -129 1402 17 25 2 4 37 0 24 0 24 +5680 68 18 -123 1402 17 23 2 4 37 0 22 0 22 +5681 68 19 -117 1402 17 22 2 4 37 0 21 0 21 +5682 68 20 -111 1402 17 24 2 4 37 0 23 0 23 +5683 68 21 -105 1402 17 26 2 4 37 0 25 0 25 +5684 68 22 -99 1402 21 23 2 4 38 0 22 0 22 +5685 68 23 -93 1402 21 21 2 4 38 0 20 0 20 +5686 68 24 -87 1402 21 24 2 4 38 0 23 0 23 +5687 68 25 -81 1402 21 26 2 4 38 0 25 0 25 +5688 68 26 -75 1402 25 23 2 4 39 0 22 0 22 +5689 68 27 -69 1402 25 21 2 4 39 0 20 0 20 +5690 68 28 -63 1402 25 24 2 4 39 0 23 0 23 +5691 68 29 -57 1402 25 26 2 4 39 0 25 0 25 +5692 68 30 -51 1402 29 27 2 4 40 0 26 0 26 +5693 68 31 -45 1402 29 25 2 4 40 0 24 0 24 +5694 68 32 -39 1402 29 23 2 4 40 0 22 0 22 +5695 68 33 -33 1402 29 26 2 4 40 0 25 0 25 +5696 68 34 -27 1402 29 28 2 4 40 0 27 0 27 +5697 68 35 -21 1402 33 23 2 4 41 0 22 0 22 +5698 68 36 -15 1402 33 21 2 4 41 0 20 0 20 +5699 68 37 -9 1402 33 22 2 4 41 0 21 0 21 +5700 68 38 -3 1402 33 24 2 4 41 0 23 0 23 +5701 68 39 3 1402 37 23 2 4 42 0 22 0 22 +5702 68 40 9 1402 37 21 2 4 42 0 20 0 20 +5703 68 41 15 1402 37 22 2 4 42 0 21 0 21 +5704 68 42 21 1402 37 24 2 4 42 0 23 0 23 +5705 68 43 27 1402 41 27 2 4 43 0 26 0 26 +5706 68 44 33 1402 41 25 2 4 43 0 24 0 24 +5707 68 45 39 1402 41 24 2 4 43 0 23 0 23 +5708 68 46 45 1402 41 26 2 4 43 0 25 0 25 +5709 68 47 51 1402 41 28 2 4 43 0 27 0 27 +5710 68 48 57 1402 45 25 2 4 44 0 24 0 24 +5711 68 49 63 1402 45 23 2 4 44 0 22 0 22 +5712 68 50 69 1402 45 22 2 4 44 0 21 0 21 +5713 68 51 75 1402 45 24 2 4 44 0 23 0 23 +5714 68 52 81 1402 49 25 2 4 45 0 24 0 24 +5715 68 53 87 1402 49 23 2 4 45 0 22 0 22 +5716 68 54 93 1402 49 22 2 4 45 0 21 0 21 +5717 68 55 99 1402 49 24 2 4 45 0 23 0 23 +5718 68 56 105 1402 53 25 2 4 46 0 24 0 24 +5719 68 57 111 1402 53 23 2 4 46 0 22 0 22 +5720 68 58 117 1402 53 21 2 4 46 0 20 0 20 +5721 68 59 123 1402 53 24 2 4 46 0 23 0 23 +5722 68 60 129 1402 53 26 2 4 46 0 25 0 25 +5723 68 61 135 1402 57 25 2 4 47 0 24 0 24 +5724 68 62 141 1402 57 23 2 4 47 0 22 0 22 +5725 68 63 147 1402 57 22 2 4 47 0 21 0 21 +5726 68 64 153 1402 57 24 2 4 47 0 23 0 23 +5727 68 65 159 1402 61 25 2 4 48 0 24 0 24 +5728 68 66 165 1402 61 23 2 4 48 0 22 0 22 +5729 68 67 171 1402 61 22 2 4 48 0 21 0 21 +5730 68 68 177 1402 61 24 2 4 48 0 23 0 23 +5731 68 69 183 1402 65 23 2 4 49 0 22 0 22 +5732 68 70 189 1402 65 21 2 4 49 0 20 0 20 +5733 68 71 195 1402 65 24 2 4 49 0 23 0 23 +5734 68 72 201 1402 65 26 2 4 49 0 25 0 25 +5735 68 73 207 1402 65 28 2 4 49 0 27 0 27 +5736 68 74 213 1402 69 25 2 4 50 0 24 0 24 +5737 68 75 219 1402 69 23 2 4 50 0 22 0 22 +5738 68 76 225 1402 69 24 2 4 50 0 23 0 23 +5739 68 77 231 1402 69 26 2 4 50 0 25 0 25 +5740 69 0 -231 1412 1 29 2 4 33 0 28 0 28 +5741 69 1 -225 1412 1 27 2 4 33 0 26 0 26 +5742 69 2 -219 1412 1 28 2 4 33 0 27 0 27 +5743 69 3 -213 1412 1 30 2 4 33 0 29 0 29 +5744 69 4 -207 1412 5 31 2 4 34 0 30 0 30 +5745 69 5 -201 1412 5 29 2 4 34 0 28 0 28 +5746 69 6 -195 1412 5 26 2 4 34 0 25 0 25 +5747 69 7 -189 1412 5 28 2 4 34 0 27 0 27 +5748 69 8 -183 1412 9 29 2 4 35 0 28 0 28 +5749 69 9 -177 1412 9 27 2 4 35 0 26 0 26 +5750 69 10 -171 1412 9 25 2 4 35 0 24 0 24 +5751 69 11 -165 1412 9 28 2 4 35 0 27 0 27 +5752 69 12 -159 1412 9 30 2 4 35 0 29 0 29 +5753 69 13 -153 1412 13 27 2 4 36 0 26 0 26 +5754 69 14 -147 1412 13 25 2 4 36 0 24 0 24 +5755 69 15 -141 1412 13 28 2 4 36 0 27 0 27 +5756 69 16 -135 1412 13 30 2 4 36 0 29 0 29 +5757 69 17 -129 1412 17 29 2 4 37 0 28 0 28 +5758 69 18 -123 1412 17 27 2 4 37 0 26 0 26 +5759 69 19 -117 1412 17 28 2 4 37 0 27 0 27 +5760 69 20 -111 1412 17 30 2 4 37 0 29 0 29 +5761 69 21 -105 1412 17 32 2 4 37 0 31 0 31 +5762 69 22 -99 1412 21 27 2 4 38 0 26 0 26 +5763 69 23 -93 1412 21 25 2 4 38 0 24 0 24 +5764 69 24 -87 1412 21 28 2 4 38 0 27 0 27 +5765 69 25 -81 1412 21 30 2 4 38 0 29 0 29 +5766 69 26 -75 1412 25 27 2 4 39 0 26 0 26 +5767 69 27 -69 1412 25 25 2 4 39 0 24 0 24 +5768 69 28 -63 1412 25 28 2 4 39 0 27 0 27 +5769 69 29 -57 1412 25 30 2 4 39 0 29 0 29 +5770 69 30 -51 1412 29 31 2 4 40 0 30 0 30 +5771 69 31 -45 1412 29 29 2 4 40 0 28 0 28 +5772 69 32 -39 1412 29 30 2 4 40 0 29 0 29 +5773 69 33 -33 1412 29 32 2 4 40 0 31 0 31 +5774 69 34 -27 1412 29 34 2 4 40 0 33 1 1 +5775 69 35 -21 1412 33 27 2 4 41 0 26 0 26 +5776 69 36 -15 1412 33 25 2 4 41 0 24 0 24 +5777 69 37 -9 1412 33 26 2 4 41 0 25 0 25 +5778 69 38 -3 1412 33 28 2 4 41 0 27 0 27 +5779 69 39 3 1412 37 27 2 4 42 0 26 0 26 +5780 69 40 9 1412 37 25 2 4 42 0 24 0 24 +5781 69 41 15 1412 37 26 2 4 42 0 25 0 25 +5782 69 42 21 1412 37 28 2 4 42 0 27 0 27 +5783 69 43 27 1412 41 33 2 4 43 0 32 1 0 +5784 69 44 33 1412 41 31 2 4 43 0 30 0 30 +5785 69 45 39 1412 41 29 2 4 43 0 28 0 28 +5786 69 46 45 1412 41 30 2 4 43 0 29 0 29 +5787 69 47 51 1412 41 32 2 4 43 0 31 0 31 +5788 69 48 57 1412 45 29 2 4 44 0 28 0 28 +5789 69 49 63 1412 45 27 2 4 44 0 26 0 26 +5790 69 50 69 1412 45 26 2 4 44 0 25 0 25 +5791 69 51 75 1412 45 28 2 4 44 0 27 0 27 +5792 69 52 81 1412 49 29 2 4 45 0 28 0 28 +5793 69 53 87 1412 49 27 2 4 45 0 26 0 26 +5794 69 54 93 1412 49 26 2 4 45 0 25 0 25 +5795 69 55 99 1412 49 28 2 4 45 0 27 0 27 +5796 69 56 105 1412 53 31 2 4 46 0 30 0 30 +5797 69 57 111 1412 53 29 2 4 46 0 28 0 28 +5798 69 58 117 1412 53 27 2 4 46 0 26 0 26 +5799 69 59 123 1412 53 28 2 4 46 0 27 0 27 +5800 69 60 129 1412 53 30 2 4 46 0 29 0 29 +5801 69 61 135 1412 57 29 2 4 47 0 28 0 28 +5802 69 62 141 1412 57 27 2 4 47 0 26 0 26 +5803 69 63 147 1412 57 26 2 4 47 0 25 0 25 +5804 69 64 153 1412 57 28 2 4 47 0 27 0 27 +5805 69 65 159 1412 61 29 2 4 48 0 28 0 28 +5806 69 66 165 1412 61 27 2 4 48 0 26 0 26 +5807 69 67 171 1412 61 26 2 4 48 0 25 0 25 +5808 69 68 177 1412 61 28 2 4 48 0 27 0 27 +5809 69 69 183 1412 61 30 2 4 48 0 29 0 29 +5810 69 70 189 1412 65 27 2 4 49 0 26 0 26 +5811 69 71 195 1412 65 25 2 4 49 0 24 0 24 +5812 69 72 201 1412 65 30 2 4 49 0 29 0 29 +5813 69 73 207 1412 65 32 2 4 49 0 31 0 31 +5814 69 74 213 1412 69 29 2 4 50 0 28 0 28 +5815 69 75 219 1412 69 27 2 4 50 0 26 0 26 +5816 69 76 225 1412 69 28 2 4 50 0 27 0 27 +5817 69 77 231 1412 69 30 2 4 50 0 29 0 29 +5818 70 0 -237 1422 1 33 2 4 33 0 32 1 0 +5819 70 1 -231 1422 1 31 2 4 33 0 30 0 30 +5820 70 2 -225 1422 1 32 2 4 33 0 31 0 31 +5821 70 3 -219 1422 1 34 2 4 33 0 33 1 1 +5822 70 4 -213 1422 1 36 2 4 33 0 35 1 3 +5823 70 5 -207 1422 5 35 2 4 34 0 34 1 2 +5824 70 6 -201 1422 5 33 2 4 34 0 32 1 0 +5825 70 7 -195 1422 5 30 2 4 34 0 29 0 29 +5826 70 8 -189 1422 5 32 2 4 34 0 31 0 31 +5827 70 9 -183 1422 9 33 2 4 35 0 32 1 0 +5828 70 10 -177 1422 9 31 2 4 35 0 30 0 30 +5829 70 11 -171 1422 9 32 2 4 35 0 31 0 31 +5830 70 12 -165 1422 9 34 2 4 35 0 33 1 1 +5831 70 13 -159 1422 9 36 2 4 35 0 35 1 3 +5832 70 14 -153 1422 13 31 2 4 36 0 30 0 30 +5833 70 15 -147 1422 13 29 2 4 36 0 28 0 28 +5834 70 16 -141 1422 13 32 2 4 36 0 31 0 31 +5835 70 17 -135 1422 13 34 2 4 36 0 33 1 1 +5836 70 18 -129 1422 17 33 2 4 37 0 32 1 0 +5837 70 19 -123 1422 17 31 2 4 37 0 30 0 30 +5838 70 20 -117 1422 17 34 2 4 37 0 33 1 1 +5839 70 21 -111 1422 17 36 2 4 37 0 35 1 3 +5840 70 22 -105 1422 21 33 2 4 38 0 32 1 0 +5841 70 23 -99 1422 21 31 2 4 38 0 30 0 30 +5842 70 24 -93 1422 21 29 2 4 38 0 28 0 28 +5843 70 25 -87 1422 21 32 2 4 38 0 31 0 31 +5844 70 26 -81 1422 21 34 2 4 38 0 33 1 1 +5845 70 27 -75 1422 25 31 2 4 39 0 30 0 30 +5846 70 28 -69 1422 25 29 2 4 39 0 28 0 28 +5847 70 29 -63 1422 25 32 2 4 39 0 31 0 31 +5848 70 30 -57 1422 25 34 2 4 39 0 33 1 1 +5849 70 31 -51 1422 29 35 2 4 40 0 34 1 2 +5850 70 32 -45 1422 29 33 2 4 40 0 32 1 0 +5851 70 33 -39 1422 29 36 2 4 40 0 35 1 3 +5852 70 34 -33 1422 29 38 2 4 40 0 37 1 5 +5853 70 35 -27 1422 29 40 2 4 40 0 39 1 7 +5854 70 36 -21 1422 33 31 2 4 41 0 30 0 30 +5855 70 37 -15 1422 33 29 2 4 41 0 28 0 28 +5856 70 38 -9 1422 33 30 2 4 41 0 29 0 29 +5857 70 39 -3 1422 33 32 2 4 41 0 31 0 31 +5858 70 40 3 1422 37 31 2 4 42 0 30 0 30 +5859 70 41 9 1422 37 29 2 4 42 0 28 0 28 +5860 70 42 15 1422 37 30 2 4 42 0 29 0 29 +5861 70 43 21 1422 37 32 2 4 42 0 31 0 31 +5862 70 44 27 1422 41 39 2 4 43 0 38 1 6 +5863 70 45 33 1422 41 37 2 4 43 0 36 1 4 +5864 70 46 39 1422 41 35 2 4 43 0 34 1 2 +5865 70 47 45 1422 41 34 2 4 43 0 33 1 1 +5866 70 48 51 1422 41 36 2 4 43 0 35 1 3 +5867 70 49 57 1422 45 33 2 4 44 0 32 1 0 +5868 70 50 63 1422 45 31 2 4 44 0 30 0 30 +5869 70 51 69 1422 45 30 2 4 44 0 29 0 29 +5870 70 52 75 1422 45 32 2 4 44 0 31 0 31 +5871 70 53 81 1422 49 33 2 4 45 0 32 1 0 +5872 70 54 87 1422 49 31 2 4 45 0 30 0 30 +5873 70 55 93 1422 49 30 2 4 45 0 29 0 29 +5874 70 56 99 1422 49 32 2 4 45 0 31 0 31 +5875 70 57 105 1422 49 34 2 4 45 0 33 1 1 +5876 70 58 111 1422 53 35 2 4 46 0 34 1 2 +5877 70 59 117 1422 53 33 2 4 46 0 32 1 0 +5878 70 60 123 1422 53 32 2 4 46 0 31 0 31 +5879 70 61 129 1422 53 34 2 4 46 0 33 1 1 +5880 70 62 135 1422 57 33 2 4 47 0 32 1 0 +5881 70 63 141 1422 57 31 2 4 47 0 30 0 30 +5882 70 64 147 1422 57 30 2 4 47 0 29 0 29 +5883 70 65 153 1422 57 32 2 4 47 0 31 0 31 +5884 70 66 159 1422 61 35 2 4 48 0 34 1 2 +5885 70 67 165 1422 61 33 2 4 48 0 32 1 0 +5886 70 68 171 1422 61 31 2 4 48 0 30 0 30 +5887 70 69 177 1422 61 32 2 4 48 0 31 0 31 +5888 70 70 183 1422 61 34 2 4 48 0 33 1 1 +5889 70 71 189 1422 65 31 2 4 49 0 30 0 30 +5890 70 72 195 1422 65 29 2 4 49 0 28 0 28 +5891 70 73 201 1422 65 34 2 4 49 0 33 1 1 +5892 70 74 207 1422 65 36 2 4 49 0 35 1 3 +5893 70 75 213 1422 69 35 2 4 50 0 34 1 2 +5894 70 76 219 1422 69 33 2 4 50 0 32 1 0 +5895 70 77 225 1422 69 31 2 4 50 0 30 0 30 +5896 70 78 231 1422 69 32 2 4 50 0 31 0 31 +5897 70 79 237 1422 69 34 2 4 50 0 33 1 1 +5898 71 0 -237 1432 1 39 2 4 33 0 38 1 6 +5899 71 1 -231 1432 1 37 2 4 33 0 36 1 4 +5900 71 2 -225 1432 1 35 2 4 33 0 34 1 2 +5901 71 3 -219 1432 1 38 2 4 33 0 37 1 5 +5902 71 4 -213 1432 1 40 2 4 33 0 39 1 7 +5903 71 5 -207 1432 5 39 2 4 34 0 38 1 6 +5904 71 6 -201 1432 5 37 2 4 34 0 36 1 4 +5905 71 7 -195 1432 5 34 2 4 34 0 33 1 1 +5906 71 8 -189 1432 5 36 2 4 34 0 35 1 3 +5907 71 9 -183 1432 9 37 2 4 35 0 36 1 4 +5908 71 10 -177 1432 9 35 2 4 35 0 34 1 2 +5909 71 11 -171 1432 9 38 2 4 35 0 37 1 5 +5910 71 12 -165 1432 9 40 2 4 35 0 39 1 7 +5911 71 13 -159 1432 13 35 2 4 36 0 34 1 2 +5912 71 14 -153 1432 13 33 2 4 36 0 32 1 0 +5913 71 15 -147 1432 13 36 2 4 36 0 35 1 3 +5914 71 16 -141 1432 13 38 2 4 36 0 37 1 5 +5915 71 17 -135 1432 13 40 2 4 36 0 39 1 7 +5916 71 18 -129 1432 17 37 2 4 37 0 36 1 4 +5917 71 19 -123 1432 17 35 2 4 37 0 34 1 2 +5918 71 20 -117 1432 17 38 2 4 37 0 37 1 5 +5919 71 21 -111 1432 17 40 2 4 37 0 39 1 7 +5920 71 22 -105 1432 21 37 2 4 38 0 36 1 4 +5921 71 23 -99 1432 21 35 2 4 38 0 34 1 2 +5922 71 24 -93 1432 21 36 2 4 38 0 35 1 3 +5923 71 25 -87 1432 21 38 2 4 38 0 37 1 5 +5924 71 26 -81 1432 21 40 2 4 38 0 39 1 7 +5925 71 27 -75 1432 25 35 2 4 39 0 34 1 2 +5926 71 28 -69 1432 25 33 2 4 39 0 32 1 0 +5927 71 29 -63 1432 25 36 2 4 39 0 35 1 3 +5928 71 30 -57 1432 25 38 2 4 39 0 37 1 5 +5929 71 31 -51 1432 29 39 2 4 40 0 38 1 6 +5930 71 32 -45 1432 29 37 2 4 40 0 36 1 4 +5931 71 33 -39 1432 30 1 2 4 40 1 40 1 8 +5932 71 34 -33 1432 30 2 2 4 40 1 41 1 9 +5933 71 35 -27 1432 30 4 2 4 40 1 43 1 11 +5934 71 36 -21 1432 33 35 2 4 41 0 34 1 2 +5935 71 37 -15 1432 33 33 2 4 41 0 32 1 0 +5936 71 38 -9 1432 33 34 2 4 41 0 33 1 1 +5937 71 39 -3 1432 33 36 2 4 41 0 35 1 3 +5938 71 40 3 1432 37 35 2 4 42 0 34 1 2 +5939 71 41 9 1432 37 33 2 4 42 0 32 1 0 +5940 71 42 15 1432 37 34 2 4 42 0 33 1 1 +5941 71 43 21 1432 37 36 2 4 42 0 35 1 3 +5942 71 44 27 1432 42 3 2 4 43 1 42 1 10 +5943 71 45 33 1432 42 1 2 4 43 1 40 1 8 +5944 71 46 39 1432 42 2 2 4 43 1 41 1 9 +5945 71 47 45 1432 41 38 2 4 43 0 37 1 5 +5946 71 48 51 1432 41 40 2 4 43 0 39 1 7 +5947 71 49 57 1432 45 37 2 4 44 0 36 1 4 +5948 71 50 63 1432 45 35 2 4 44 0 34 1 2 +5949 71 51 69 1432 45 34 2 4 44 0 33 1 1 +5950 71 52 75 1432 45 36 2 4 44 0 35 1 3 +5951 71 53 81 1432 49 39 2 4 45 0 38 1 6 +5952 71 54 87 1432 49 37 2 4 45 0 36 1 4 +5953 71 55 93 1432 49 35 2 4 45 0 34 1 2 +5954 71 56 99 1432 49 36 2 4 45 0 35 1 3 +5955 71 57 105 1432 49 38 2 4 45 0 37 1 5 +5956 71 58 111 1432 53 39 2 4 46 0 38 1 6 +5957 71 59 117 1432 53 37 2 4 46 0 36 1 4 +5958 71 60 123 1432 53 36 2 4 46 0 35 1 3 +5959 71 61 129 1432 53 38 2 4 46 0 37 1 5 +5960 71 62 135 1432 57 39 2 4 47 0 38 1 6 +5961 71 63 141 1432 57 37 2 4 47 0 36 1 4 +5962 71 64 147 1432 57 35 2 4 47 0 34 1 2 +5963 71 65 153 1432 57 34 2 4 47 0 33 1 1 +5964 71 66 159 1432 57 36 2 4 47 0 35 1 3 +5965 71 67 165 1432 61 39 2 4 48 0 38 1 6 +5966 71 68 171 1432 61 37 2 4 48 0 36 1 4 +5967 71 69 177 1432 61 36 2 4 48 0 35 1 3 +5968 71 70 183 1432 61 38 2 4 48 0 37 1 5 +5969 71 71 189 1432 65 35 2 4 49 0 34 1 2 +5970 71 72 195 1432 65 33 2 4 49 0 32 1 0 +5971 71 73 201 1432 65 38 2 4 49 0 37 1 5 +5972 71 74 207 1432 65 40 2 4 49 0 39 1 7 +5973 71 75 213 1432 69 39 2 4 50 0 38 1 6 +5974 71 76 219 1432 69 37 2 4 50 0 36 1 4 +5975 71 77 225 1432 69 36 2 4 50 0 35 1 3 +5976 71 78 231 1432 69 38 2 4 50 0 37 1 5 +5977 71 79 237 1432 69 40 2 4 50 0 39 1 7 +5978 72 0 -237 1442 2 3 2 4 33 1 42 1 10 +5979 72 1 -231 1442 2 1 2 4 33 1 40 1 8 +5980 72 2 -225 1442 2 2 2 4 33 1 41 1 9 +5981 72 3 -219 1442 2 4 2 4 33 1 43 1 11 +5982 72 4 -213 1442 6 3 2 4 34 1 42 1 10 +5983 72 5 -207 1442 6 1 2 4 34 1 40 1 8 +5984 72 6 -201 1442 6 2 2 4 34 1 41 1 9 +5985 72 7 -195 1442 5 38 2 4 34 0 37 1 5 +5986 72 8 -189 1442 5 40 2 4 34 0 39 1 7 +5987 72 9 -183 1442 9 39 2 4 35 0 38 1 6 +5988 72 10 -177 1442 10 1 2 4 35 1 40 1 8 +5989 72 11 -171 1442 10 2 2 4 35 1 41 1 9 +5990 72 12 -165 1442 10 4 2 4 35 1 43 1 11 +5991 72 13 -159 1442 13 39 2 4 36 0 38 1 6 +5992 72 14 -153 1442 13 37 2 4 36 0 36 1 4 +5993 72 15 -147 1442 14 1 2 4 36 1 40 1 8 +5994 72 16 -141 1442 14 2 2 4 36 1 41 1 9 +5995 72 17 -135 1442 14 4 2 4 36 1 43 1 11 +5996 72 18 -129 1442 17 39 2 4 37 0 38 1 6 +5997 72 19 -123 1442 18 1 2 4 37 1 40 1 8 +5998 72 20 -117 1442 18 2 2 4 37 1 41 1 9 +5999 72 21 -111 1442 18 4 2 4 37 1 43 1 11 +6000 72 22 -105 1442 21 39 2 4 38 0 38 1 6 +6001 72 23 -99 1442 22 3 2 4 38 1 42 1 10 +6002 72 24 -93 1442 22 1 2 4 38 1 40 1 8 +6003 72 25 -87 1442 22 2 2 4 38 1 41 1 9 +6004 72 26 -81 1442 22 4 2 4 38 1 43 1 11 +6005 72 27 -75 1442 25 39 2 4 39 0 38 1 6 +6006 72 28 -69 1442 25 37 2 4 39 0 36 1 4 +6007 72 29 -63 1442 25 40 2 4 39 0 39 1 7 +6008 72 30 -57 1442 26 2 2 4 39 1 41 1 9 +6009 72 31 -51 1442 30 7 2 4 40 1 46 1 14 +6010 72 32 -45 1442 30 5 2 4 40 1 44 1 12 +6011 72 33 -39 1442 30 3 2 4 40 1 42 1 10 +6012 72 34 -33 1442 30 6 2 4 40 1 45 1 13 +6013 72 35 -27 1442 30 8 2 4 40 1 47 1 15 +6014 72 36 -21 1442 33 39 2 4 41 0 38 1 6 +6015 72 37 -15 1442 33 37 2 4 41 0 36 1 4 +6016 72 38 -9 1442 33 38 2 4 41 0 37 1 5 +6017 72 39 -3 1442 33 40 2 4 41 0 39 1 7 +6018 72 40 3 1442 37 39 2 4 42 0 38 1 6 +6019 72 41 9 1442 37 37 2 4 42 0 36 1 4 +6020 72 42 15 1442 37 38 2 4 42 0 37 1 5 +6021 72 43 21 1442 37 40 2 4 42 0 39 1 7 +6022 72 44 27 1442 42 7 2 4 43 1 46 1 14 +6023 72 45 33 1442 42 5 2 4 43 1 44 1 12 +6024 72 46 39 1442 42 4 2 4 43 1 43 1 11 +6025 72 47 45 1442 42 6 2 4 43 1 45 1 13 +6026 72 48 51 1442 42 8 2 4 43 1 47 1 15 +6027 72 49 57 1442 46 1 2 4 44 1 40 1 8 +6028 72 50 63 1442 45 39 2 4 44 0 38 1 6 +6029 72 51 69 1442 45 38 2 4 44 0 37 1 5 +6030 72 52 75 1442 45 40 2 4 44 0 39 1 7 +6031 72 53 81 1442 50 3 2 4 45 1 42 1 10 +6032 72 54 87 1442 50 1 2 4 45 1 40 1 8 +6033 72 55 93 1442 50 2 2 4 45 1 41 1 9 +6034 72 56 99 1442 50 4 2 4 45 1 43 1 11 +6035 72 57 105 1442 49 40 2 4 45 0 39 1 7 +6036 72 58 111 1442 54 3 2 4 46 1 42 1 10 +6037 72 59 117 1442 54 1 2 4 46 1 40 1 8 +6038 72 60 123 1442 54 2 2 4 46 1 41 1 9 +6039 72 61 129 1442 53 40 2 4 46 0 39 1 7 +6040 72 62 135 1442 58 3 2 4 47 1 42 1 10 +6041 72 63 141 1442 58 1 2 4 47 1 40 1 8 +6042 72 64 147 1442 58 2 2 4 47 1 41 1 9 +6043 72 65 153 1442 57 38 2 4 47 0 37 1 5 +6044 72 66 159 1442 57 40 2 4 47 0 39 1 7 +6045 72 67 165 1442 62 3 2 4 48 1 42 1 10 +6046 72 68 171 1442 62 1 2 4 48 1 40 1 8 +6047 72 69 177 1442 62 2 2 4 48 1 41 1 9 +6048 72 70 183 1442 61 40 2 4 48 0 39 1 7 +6049 72 71 189 1442 65 39 2 4 49 0 38 1 6 +6050 72 72 195 1442 65 37 2 4 49 0 36 1 4 +6051 72 73 201 1442 66 1 2 4 49 1 40 1 8 +6052 72 74 207 1442 66 2 2 4 49 1 41 1 9 +6053 72 75 213 1442 66 4 2 4 49 1 43 1 11 +6054 72 76 219 1442 70 3 2 4 50 1 42 1 10 +6055 72 77 225 1442 70 1 2 4 50 1 40 1 8 +6056 72 78 231 1442 70 2 2 4 50 1 41 1 9 +6057 72 79 237 1442 70 4 2 4 50 1 43 1 11 +6058 73 0 -237 1452 2 7 2 4 33 1 46 1 14 +6059 73 1 -231 1452 2 5 2 4 33 1 44 1 12 +6060 73 2 -225 1452 2 6 2 4 33 1 45 1 13 +6061 73 3 -219 1452 2 8 2 4 33 1 47 1 15 +6062 73 4 -213 1452 6 7 2 4 34 1 46 1 14 +6063 73 5 -207 1452 6 5 2 4 34 1 44 1 12 +6064 73 6 -201 1452 6 4 2 4 34 1 43 1 11 +6065 73 7 -195 1452 6 6 2 4 34 1 45 1 13 +6066 73 8 -189 1452 6 8 2 4 34 1 47 1 15 +6067 73 9 -183 1452 10 5 2 4 35 1 44 1 12 +6068 73 10 -177 1452 10 3 2 4 35 1 42 1 10 +6069 73 11 -171 1452 10 6 2 4 35 1 45 1 13 +6070 73 12 -165 1452 10 8 2 4 35 1 47 1 15 +6071 73 13 -159 1452 14 7 2 4 36 1 46 1 14 +6072 73 14 -153 1452 14 5 2 4 36 1 44 1 12 +6073 73 15 -147 1452 14 3 2 4 36 1 42 1 10 +6074 73 16 -141 1452 14 6 2 4 36 1 45 1 13 +6075 73 17 -135 1452 14 8 2 4 36 1 47 1 15 +6076 73 18 -129 1452 18 5 2 4 37 1 44 1 12 +6077 73 19 -123 1452 18 3 2 4 37 1 42 1 10 +6078 73 20 -117 1452 18 6 2 4 37 1 45 1 13 +6079 73 21 -111 1452 18 8 2 4 37 1 47 1 15 +6080 73 22 -105 1452 22 7 2 4 38 1 46 1 14 +6081 73 23 -99 1452 22 5 2 4 38 1 44 1 12 +6082 73 24 -93 1452 22 6 2 4 38 1 45 1 13 +6083 73 25 -87 1452 22 8 2 4 38 1 47 1 15 +6084 73 26 -81 1452 22 10 2 4 38 1 49 1 17 +6085 73 27 -75 1452 26 3 2 4 39 1 42 1 10 +6086 73 28 -69 1452 26 1 2 4 39 1 40 1 8 +6087 73 29 -63 1452 26 4 2 4 39 1 43 1 11 +6088 73 30 -57 1452 26 6 2 4 39 1 45 1 13 +6089 73 31 -51 1452 30 11 2 4 40 1 50 1 18 +6090 73 32 -45 1452 30 9 2 4 40 1 48 1 16 +6091 73 33 -39 1452 30 10 2 4 40 1 49 1 17 +6092 73 34 -33 1452 30 12 2 4 40 1 51 1 19 +6093 73 35 -27 1452 34 5 2 4 41 1 44 1 12 +6094 73 36 -21 1452 34 3 2 4 41 1 42 1 10 +6095 73 37 -15 1452 34 1 2 4 41 1 40 1 8 +6096 73 38 -9 1452 34 2 2 4 41 1 41 1 9 +6097 73 39 -3 1452 34 4 2 4 41 1 43 1 11 +6098 73 40 3 1452 38 3 2 4 42 1 42 1 10 +6099 73 41 9 1452 38 1 2 4 42 1 40 1 8 +6100 73 42 15 1452 38 2 2 4 42 1 41 1 9 +6101 73 43 21 1452 38 4 2 4 42 1 43 1 11 +6102 73 44 27 1452 38 6 2 4 42 1 45 1 13 +6103 73 45 33 1452 42 11 2 4 43 1 50 1 18 +6104 73 46 39 1452 42 9 2 4 43 1 48 1 16 +6105 73 47 45 1452 42 10 2 4 43 1 49 1 17 +6106 73 48 51 1452 42 12 2 4 43 1 51 1 19 +6107 73 49 57 1452 46 5 2 4 44 1 44 1 12 +6108 73 50 63 1452 46 3 2 4 44 1 42 1 10 +6109 73 51 69 1452 46 2 2 4 44 1 41 1 9 +6110 73 52 75 1452 46 4 2 4 44 1 43 1 11 +6111 73 53 81 1452 50 9 2 4 45 1 48 1 16 +6112 73 54 87 1452 50 7 2 4 45 1 46 1 14 +6113 73 55 93 1452 50 5 2 4 45 1 44 1 12 +6114 73 56 99 1452 50 6 2 4 45 1 45 1 13 +6115 73 57 105 1452 50 8 2 4 45 1 47 1 15 +6116 73 58 111 1452 54 7 2 4 46 1 46 1 14 +6117 73 59 117 1452 54 5 2 4 46 1 44 1 12 +6118 73 60 123 1452 54 4 2 4 46 1 43 1 11 +6119 73 61 129 1452 54 6 2 4 46 1 45 1 13 +6120 73 62 135 1452 58 7 2 4 47 1 46 1 14 +6121 73 63 141 1452 58 5 2 4 47 1 44 1 12 +6122 73 64 147 1452 58 4 2 4 47 1 43 1 11 +6123 73 65 153 1452 58 6 2 4 47 1 45 1 13 +6124 73 66 159 1452 58 8 2 4 47 1 47 1 15 +6125 73 67 165 1452 62 7 2 4 48 1 46 1 14 +6126 73 68 171 1452 62 5 2 4 48 1 44 1 12 +6127 73 69 177 1452 62 4 2 4 48 1 43 1 11 +6128 73 70 183 1452 62 6 2 4 48 1 45 1 13 +6129 73 71 189 1452 66 7 2 4 49 1 46 1 14 +6130 73 72 195 1452 66 5 2 4 49 1 44 1 12 +6131 73 73 201 1452 66 3 2 4 49 1 42 1 10 +6132 73 74 207 1452 66 6 2 4 49 1 45 1 13 +6133 73 75 213 1452 66 8 2 4 49 1 47 1 15 +6134 73 76 219 1452 70 7 2 4 50 1 46 1 14 +6135 73 77 225 1452 70 5 2 4 50 1 44 1 12 +6136 73 78 231 1452 70 6 2 4 50 1 45 1 13 +6137 73 79 237 1452 70 8 2 4 50 1 47 1 15 +6138 74 0 -243 1462 2 13 2 4 33 1 52 1 20 +6139 74 1 -237 1462 2 11 2 4 33 1 50 1 18 +6140 74 2 -231 1462 2 9 2 4 33 1 48 1 16 +6141 74 3 -225 1462 2 10 2 4 33 1 49 1 17 +6142 74 4 -219 1462 2 12 2 4 33 1 51 1 19 +6143 74 5 -213 1462 6 11 2 4 34 1 50 1 18 +6144 74 6 -207 1462 6 9 2 4 34 1 48 1 16 +6145 74 7 -201 1462 6 10 2 4 34 1 49 1 17 +6146 74 8 -195 1462 6 12 2 4 34 1 51 1 19 +6147 74 9 -189 1462 10 11 2 4 35 1 50 1 18 +6148 74 10 -183 1462 10 9 2 4 35 1 48 1 16 +6149 74 11 -177 1462 10 7 2 4 35 1 46 1 14 +6150 74 12 -171 1462 10 10 2 4 35 1 49 1 17 +6151 74 13 -165 1462 10 12 2 4 35 1 51 1 19 +6152 74 14 -159 1462 14 11 2 4 36 1 50 1 18 +6153 74 15 -153 1462 14 9 2 4 36 1 48 1 16 +6154 74 16 -147 1462 14 10 2 4 36 1 49 1 17 +6155 74 17 -141 1462 14 12 2 4 36 1 51 1 19 +6156 74 18 -135 1462 18 11 2 4 37 1 50 1 18 +6157 74 19 -129 1462 18 9 2 4 37 1 48 1 16 +6158 74 20 -123 1462 18 7 2 4 37 1 46 1 14 +6159 74 21 -117 1462 18 10 2 4 37 1 49 1 17 +6160 74 22 -111 1462 18 12 2 4 37 1 51 1 19 +6161 74 23 -105 1462 22 11 2 4 38 1 50 1 18 +6162 74 24 -99 1462 22 9 2 4 38 1 48 1 16 +6163 74 25 -93 1462 22 12 2 4 38 1 51 1 19 +6164 74 26 -87 1462 22 14 2 4 38 1 53 1 21 +6165 74 27 -81 1462 26 9 2 4 39 1 48 1 16 +6166 74 28 -75 1462 26 7 2 4 39 1 46 1 14 +6167 74 29 -69 1462 26 5 2 4 39 1 44 1 12 +6168 74 30 -63 1462 26 8 2 4 39 1 47 1 15 +6169 74 31 -57 1462 26 10 2 4 39 1 49 1 17 +6170 74 32 -51 1462 30 15 2 4 40 1 54 1 22 +6171 74 33 -45 1462 30 13 2 4 40 1 52 1 20 +6172 74 34 -39 1462 30 14 2 4 40 1 53 1 21 +6173 74 35 -33 1462 30 16 2 4 40 1 55 1 23 +6174 74 36 -27 1462 34 9 2 4 41 1 48 1 16 +6175 74 37 -21 1462 34 7 2 4 41 1 46 1 14 +6176 74 38 -15 1462 34 6 2 4 41 1 45 1 13 +6177 74 39 -9 1462 34 8 2 4 41 1 47 1 15 +6178 74 40 -3 1462 34 10 2 4 41 1 49 1 17 +6179 74 41 3 1462 38 9 2 4 42 1 48 1 16 +6180 74 42 9 1462 38 7 2 4 42 1 46 1 14 +6181 74 43 15 1462 38 5 2 4 42 1 44 1 12 +6182 74 44 21 1462 38 8 2 4 42 1 47 1 15 +6183 74 45 27 1462 38 10 2 4 42 1 49 1 17 +6184 74 46 33 1462 42 15 2 4 43 1 54 1 22 +6185 74 47 39 1462 42 13 2 4 43 1 52 1 20 +6186 74 48 45 1462 42 14 2 4 43 1 53 1 21 +6187 74 49 51 1462 42 16 2 4 43 1 55 1 23 +6188 74 50 57 1462 46 9 2 4 44 1 48 1 16 +6189 74 51 63 1462 46 7 2 4 44 1 46 1 14 +6190 74 52 69 1462 46 6 2 4 44 1 45 1 13 +6191 74 53 75 1462 46 8 2 4 44 1 47 1 15 +6192 74 54 81 1462 46 10 2 4 44 1 49 1 17 +6193 74 55 87 1462 50 13 2 4 45 1 52 1 20 +6194 74 56 93 1462 50 11 2 4 45 1 50 1 18 +6195 74 57 99 1462 50 10 2 4 45 1 49 1 17 +6196 74 58 105 1462 50 12 2 4 45 1 51 1 19 +6197 74 59 111 1462 54 11 2 4 46 1 50 1 18 +6198 74 60 117 1462 54 9 2 4 46 1 48 1 16 +6199 74 61 123 1462 54 8 2 4 46 1 47 1 15 +6200 74 62 129 1462 54 10 2 4 46 1 49 1 17 +6201 74 63 135 1462 54 12 2 4 46 1 51 1 19 +6202 74 64 141 1462 58 11 2 4 47 1 50 1 18 +6203 74 65 147 1462 58 9 2 4 47 1 48 1 16 +6204 74 66 153 1462 58 10 2 4 47 1 49 1 17 +6205 74 67 159 1462 58 12 2 4 47 1 51 1 19 +6206 74 68 165 1462 62 11 2 4 48 1 50 1 18 +6207 74 69 171 1462 62 9 2 4 48 1 48 1 16 +6208 74 70 177 1462 62 8 2 4 48 1 47 1 15 +6209 74 71 183 1462 62 10 2 4 48 1 49 1 17 +6210 74 72 189 1462 62 12 2 4 48 1 51 1 19 +6211 74 73 195 1462 66 11 2 4 49 1 50 1 18 +6212 74 74 201 1462 66 9 2 4 49 1 48 1 16 +6213 74 75 207 1462 66 10 2 4 49 1 49 1 17 +6214 74 76 213 1462 66 12 2 4 49 1 51 1 19 +6215 74 77 219 1462 70 11 2 4 50 1 50 1 18 +6216 74 78 225 1462 70 9 2 4 50 1 48 1 16 +6217 74 79 231 1462 70 10 2 4 50 1 49 1 17 +6218 74 80 237 1462 70 12 2 4 50 1 51 1 19 +6219 74 81 243 1462 70 14 2 4 50 1 53 1 21 +6220 75 0 -243 1472 2 17 2 4 33 1 56 1 24 +6221 75 1 -237 1472 2 15 2 4 33 1 54 1 22 +6222 75 2 -231 1472 2 14 2 4 33 1 53 1 21 +6223 75 3 -225 1472 2 16 2 4 33 1 55 1 23 +6224 75 4 -219 1472 2 18 2 4 33 1 57 1 25 +6225 75 5 -213 1472 6 15 2 4 34 1 54 1 22 +6226 75 6 -207 1472 6 13 2 4 34 1 52 1 20 +6227 75 7 -201 1472 6 14 2 4 34 1 53 1 21 +6228 75 8 -195 1472 6 16 2 4 34 1 55 1 23 +6229 75 9 -189 1472 10 15 2 4 35 1 54 1 22 +6230 75 10 -183 1472 10 13 2 4 35 1 52 1 20 +6231 75 11 -177 1472 10 14 2 4 35 1 53 1 21 +6232 75 12 -171 1472 10 16 2 4 35 1 55 1 23 +6233 75 13 -165 1472 10 18 2 4 35 1 57 1 25 +6234 75 14 -159 1472 14 15 2 4 36 1 54 1 22 +6235 75 15 -153 1472 14 13 2 4 36 1 52 1 20 +6236 75 16 -147 1472 14 14 2 4 36 1 53 1 21 +6237 75 17 -141 1472 14 16 2 4 36 1 55 1 23 +6238 75 18 -135 1472 18 17 2 4 37 1 56 1 24 +6239 75 19 -129 1472 18 15 2 4 37 1 54 1 22 +6240 75 20 -123 1472 18 13 2 4 37 1 52 1 20 +6241 75 21 -117 1472 18 14 2 4 37 1 53 1 21 +6242 75 22 -111 1472 18 16 2 4 37 1 55 1 23 +6243 75 23 -105 1472 22 15 2 4 38 1 54 1 22 +6244 75 24 -99 1472 22 13 2 4 38 1 52 1 20 +6245 75 25 -93 1472 22 16 2 4 38 1 55 1 23 +6246 75 26 -87 1472 22 18 2 4 38 1 57 1 25 +6247 75 27 -81 1472 26 15 2 4 39 1 54 1 22 +6248 75 28 -75 1472 26 13 2 4 39 1 52 1 20 +6249 75 29 -69 1472 26 11 2 4 39 1 50 1 18 +6250 75 30 -63 1472 26 12 2 4 39 1 51 1 19 +6251 75 31 -57 1472 26 14 2 4 39 1 53 1 21 +6252 75 32 -51 1472 30 19 2 4 40 1 58 1 26 +6253 75 33 -45 1472 30 17 2 4 40 1 56 1 24 +6254 75 34 -39 1472 30 18 2 4 40 1 57 1 25 +6255 75 35 -33 1472 30 20 2 4 40 1 59 1 27 +6256 75 36 -27 1472 34 15 2 4 41 1 54 1 22 +6257 75 37 -21 1472 34 13 2 4 41 1 52 1 20 +6258 75 38 -15 1472 34 11 2 4 41 1 50 1 18 +6259 75 39 -9 1472 34 12 2 4 41 1 51 1 19 +6260 75 40 -3 1472 34 14 2 4 41 1 53 1 21 +6261 75 41 3 1472 38 13 2 4 42 1 52 1 20 +6262 75 42 9 1472 38 11 2 4 42 1 50 1 18 +6263 75 43 15 1472 38 12 2 4 42 1 51 1 19 +6264 75 44 21 1472 38 14 2 4 42 1 53 1 21 +6265 75 45 27 1472 38 16 2 4 42 1 55 1 23 +6266 75 46 33 1472 42 19 2 4 43 1 58 1 26 +6267 75 47 39 1472 42 17 2 4 43 1 56 1 24 +6268 75 48 45 1472 42 18 2 4 43 1 57 1 25 +6269 75 49 51 1472 42 20 2 4 43 1 59 1 27 +6270 75 50 57 1472 46 13 2 4 44 1 52 1 20 +6271 75 51 63 1472 46 11 2 4 44 1 50 1 18 +6272 75 52 69 1472 46 12 2 4 44 1 51 1 19 +6273 75 53 75 1472 46 14 2 4 44 1 53 1 21 +6274 75 54 81 1472 46 16 2 4 44 1 55 1 23 +6275 75 55 87 1472 50 17 2 4 45 1 56 1 24 +6276 75 56 93 1472 50 15 2 4 45 1 54 1 22 +6277 75 57 99 1472 50 14 2 4 45 1 53 1 21 +6278 75 58 105 1472 50 16 2 4 45 1 55 1 23 +6279 75 59 111 1472 54 15 2 4 46 1 54 1 22 +6280 75 60 117 1472 54 13 2 4 46 1 52 1 20 +6281 75 61 123 1472 54 14 2 4 46 1 53 1 21 +6282 75 62 129 1472 54 16 2 4 46 1 55 1 23 +6283 75 63 135 1472 54 18 2 4 46 1 57 1 25 +6284 75 64 141 1472 58 15 2 4 47 1 54 1 22 +6285 75 65 147 1472 58 13 2 4 47 1 52 1 20 +6286 75 66 153 1472 58 14 2 4 47 1 53 1 21 +6287 75 67 159 1472 58 16 2 4 47 1 55 1 23 +6288 75 68 165 1472 62 17 2 4 48 1 56 1 24 +6289 75 69 171 1472 62 15 2 4 48 1 54 1 22 +6290 75 70 177 1472 62 13 2 4 48 1 52 1 20 +6291 75 71 183 1472 62 14 2 4 48 1 53 1 21 +6292 75 72 189 1472 62 16 2 4 48 1 55 1 23 +6293 75 73 195 1472 66 15 2 4 49 1 54 1 22 +6294 75 74 201 1472 66 13 2 4 49 1 52 1 20 +6295 75 75 207 1472 66 14 2 4 49 1 53 1 21 +6296 75 76 213 1472 66 16 2 4 49 1 55 1 23 +6297 75 77 219 1472 70 17 2 4 50 1 56 1 24 +6298 75 78 225 1472 70 15 2 4 50 1 54 1 22 +6299 75 79 231 1472 70 13 2 4 50 1 52 1 20 +6300 75 80 237 1472 70 16 2 4 50 1 55 1 23 +6301 75 81 243 1472 70 18 2 4 50 1 57 1 25 +6302 76 0 -243 1482 2 21 2 4 33 1 60 1 28 +6303 76 1 -237 1482 2 19 2 4 33 1 58 1 26 +6304 76 2 -231 1482 2 20 2 4 33 1 59 1 27 +6305 76 3 -225 1482 2 22 2 4 33 1 61 1 29 +6306 76 4 -219 1482 6 21 2 4 34 1 60 1 28 +6307 76 5 -213 1482 6 19 2 4 34 1 58 1 26 +6308 76 6 -207 1482 6 17 2 4 34 1 56 1 24 +6309 76 7 -201 1482 6 18 2 4 34 1 57 1 25 +6310 76 8 -195 1482 6 20 2 4 34 1 59 1 27 +6311 76 9 -189 1482 10 19 2 4 35 1 58 1 26 +6312 76 10 -183 1482 10 17 2 4 35 1 56 1 24 +6313 76 11 -177 1482 10 20 2 4 35 1 59 1 27 +6314 76 12 -171 1482 10 22 2 4 35 1 61 1 29 +6315 76 13 -165 1482 14 21 2 4 36 1 60 1 28 +6316 76 14 -159 1482 14 19 2 4 36 1 58 1 26 +6317 76 15 -153 1482 14 17 2 4 36 1 56 1 24 +6318 76 16 -147 1482 14 18 2 4 36 1 57 1 25 +6319 76 17 -141 1482 14 20 2 4 36 1 59 1 27 +6320 76 18 -135 1482 18 21 2 4 37 1 60 1 28 +6321 76 19 -129 1482 18 19 2 4 37 1 58 1 26 +6322 76 20 -123 1482 18 18 2 4 37 1 57 1 25 +6323 76 21 -117 1482 18 20 2 4 37 1 59 1 27 +6324 76 22 -111 1482 18 22 2 4 37 1 61 1 29 +6325 76 23 -105 1482 22 19 2 4 38 1 58 1 26 +6326 76 24 -99 1482 22 17 2 4 38 1 56 1 24 +6327 76 25 -93 1482 22 20 2 4 38 1 59 1 27 +6328 76 26 -87 1482 22 22 2 4 38 1 61 1 29 +6329 76 27 -81 1482 26 19 2 4 39 1 58 1 26 +6330 76 28 -75 1482 26 17 2 4 39 1 56 1 24 +6331 76 29 -69 1482 26 16 2 4 39 1 55 1 23 +6332 76 30 -63 1482 26 18 2 4 39 1 57 1 25 +6333 76 31 -57 1482 26 20 2 4 39 1 59 1 27 +6334 76 32 -51 1482 30 23 2 4 40 1 62 1 30 +6335 76 33 -45 1482 30 21 2 4 40 1 60 1 28 +6336 76 34 -39 1482 30 22 2 4 40 1 61 1 29 +6337 76 35 -33 1482 30 24 2 4 40 1 63 1 31 +6338 76 36 -27 1482 34 19 2 4 41 1 58 1 26 +6339 76 37 -21 1482 34 17 2 4 41 1 56 1 24 +6340 76 38 -15 1482 34 16 2 4 41 1 55 1 23 +6341 76 39 -9 1482 34 18 2 4 41 1 57 1 25 +6342 76 40 -3 1482 34 20 2 4 41 1 59 1 27 +6343 76 41 3 1482 38 19 2 4 42 1 58 1 26 +6344 76 42 9 1482 38 17 2 4 42 1 56 1 24 +6345 76 43 15 1482 38 15 2 4 42 1 54 1 22 +6346 76 44 21 1482 38 18 2 4 42 1 57 1 25 +6347 76 45 27 1482 38 20 2 4 42 1 59 1 27 +6348 76 46 33 1482 42 23 2 4 43 1 62 1 30 +6349 76 47 39 1482 42 21 2 4 43 1 60 1 28 +6350 76 48 45 1482 42 22 2 4 43 1 61 1 29 +6351 76 49 51 1482 42 24 2 4 43 1 63 1 31 +6352 76 50 57 1482 46 19 2 4 44 1 58 1 26 +6353 76 51 63 1482 46 17 2 4 44 1 56 1 24 +6354 76 52 69 1482 46 15 2 4 44 1 54 1 22 +6355 76 53 75 1482 46 18 2 4 44 1 57 1 25 +6356 76 54 81 1482 46 20 2 4 44 1 59 1 27 +6357 76 55 87 1482 50 21 2 4 45 1 60 1 28 +6358 76 56 93 1482 50 19 2 4 45 1 58 1 26 +6359 76 57 99 1482 50 18 2 4 45 1 57 1 25 +6360 76 58 105 1482 50 20 2 4 45 1 59 1 27 +6361 76 59 111 1482 54 21 2 4 46 1 60 1 28 +6362 76 60 117 1482 54 19 2 4 46 1 58 1 26 +6363 76 61 123 1482 54 17 2 4 46 1 56 1 24 +6364 76 62 129 1482 54 20 2 4 46 1 59 1 27 +6365 76 63 135 1482 54 22 2 4 46 1 61 1 29 +6366 76 64 141 1482 58 19 2 4 47 1 58 1 26 +6367 76 65 147 1482 58 17 2 4 47 1 56 1 24 +6368 76 66 153 1482 58 18 2 4 47 1 57 1 25 +6369 76 67 159 1482 58 20 2 4 47 1 59 1 27 +6370 76 68 165 1482 58 22 2 4 47 1 61 1 29 +6371 76 69 171 1482 62 21 2 4 48 1 60 1 28 +6372 76 70 177 1482 62 19 2 4 48 1 58 1 26 +6373 76 71 183 1482 62 18 2 4 48 1 57 1 25 +6374 76 72 189 1482 62 20 2 4 48 1 59 1 27 +6375 76 73 195 1482 66 19 2 4 49 1 58 1 26 +6376 76 74 201 1482 66 17 2 4 49 1 56 1 24 +6377 76 75 207 1482 66 18 2 4 49 1 57 1 25 +6378 76 76 213 1482 66 20 2 4 49 1 59 1 27 +6379 76 77 219 1482 66 22 2 4 49 1 61 1 29 +6380 76 78 225 1482 70 21 2 4 50 1 60 1 28 +6381 76 79 231 1482 70 19 2 4 50 1 58 1 26 +6382 76 80 237 1482 70 20 2 4 50 1 59 1 27 +6383 76 81 243 1482 70 22 2 4 50 1 61 1 29 +6384 77 0 -249 1492 2 27 2 4 33 1 66 2 2 +6385 77 1 -243 1492 2 25 2 4 33 1 64 2 0 +6386 77 2 -237 1492 2 23 2 4 33 1 62 1 30 +6387 77 3 -231 1492 2 24 2 4 33 1 63 1 31 +6388 77 4 -225 1492 2 26 2 4 33 1 65 2 1 +6389 77 5 -219 1492 6 25 2 4 34 1 64 2 0 +6390 77 6 -213 1492 6 23 2 4 34 1 62 1 30 +6391 77 7 -207 1492 6 22 2 4 34 1 61 1 29 +6392 77 8 -201 1492 6 24 2 4 34 1 63 1 31 +6393 77 9 -195 1492 6 26 2 4 34 1 65 2 1 +6394 77 10 -189 1492 10 23 2 4 35 1 62 1 30 +6395 77 11 -183 1492 10 21 2 4 35 1 60 1 28 +6396 77 12 -177 1492 10 24 2 4 35 1 63 1 31 +6397 77 13 -171 1492 10 26 2 4 35 1 65 2 1 +6398 77 14 -165 1492 14 25 2 4 36 1 64 2 0 +6399 77 15 -159 1492 14 23 2 4 36 1 62 1 30 +6400 77 16 -153 1492 14 22 2 4 36 1 61 1 29 +6401 77 17 -147 1492 14 24 2 4 36 1 63 1 31 +6402 77 18 -141 1492 14 26 2 4 36 1 65 2 1 +6403 77 19 -135 1492 18 25 2 4 37 1 64 2 0 +6404 77 20 -129 1492 18 23 2 4 37 1 62 1 30 +6405 77 21 -123 1492 18 24 2 4 37 1 63 1 31 +6406 77 22 -117 1492 18 26 2 4 37 1 65 2 1 +6407 77 23 -111 1492 18 28 2 4 37 1 67 2 3 +6408 77 24 -105 1492 22 23 2 4 38 1 62 1 30 +6409 77 25 -99 1492 22 21 2 4 38 1 60 1 28 +6410 77 26 -93 1492 22 24 2 4 38 1 63 1 31 +6411 77 27 -87 1492 22 26 2 4 38 1 65 2 1 +6412 77 28 -81 1492 26 25 2 4 39 1 64 2 0 +6413 77 29 -75 1492 26 23 2 4 39 1 62 1 30 +6414 77 30 -69 1492 26 21 2 4 39 1 60 1 28 +6415 77 31 -63 1492 26 22 2 4 39 1 61 1 29 +6416 77 32 -57 1492 26 24 2 4 39 1 63 1 31 +6417 77 33 -51 1492 30 27 2 4 40 1 66 2 2 +6418 77 34 -45 1492 30 25 2 4 40 1 64 2 0 +6419 77 35 -39 1492 30 26 2 4 40 1 65 2 1 +6420 77 36 -33 1492 30 28 2 4 40 1 67 2 3 +6421 77 37 -27 1492 34 25 2 4 41 1 64 2 0 +6422 77 38 -21 1492 34 23 2 4 41 1 62 1 30 +6423 77 39 -15 1492 34 21 2 4 41 1 60 1 28 +6424 77 40 -9 1492 34 22 2 4 41 1 61 1 29 +6425 77 41 -3 1492 34 24 2 4 41 1 63 1 31 +6426 77 42 3 1492 38 23 2 4 42 1 62 1 30 +6427 77 43 9 1492 38 21 2 4 42 1 60 1 28 +6428 77 44 15 1492 38 22 2 4 42 1 61 1 29 +6429 77 45 21 1492 38 24 2 4 42 1 63 1 31 +6430 77 46 27 1492 38 26 2 4 42 1 65 2 1 +6431 77 47 33 1492 42 27 2 4 43 1 66 2 2 +6432 77 48 39 1492 42 25 2 4 43 1 64 2 0 +6433 77 49 45 1492 42 26 2 4 43 1 65 2 1 +6434 77 50 51 1492 42 28 2 4 43 1 67 2 3 +6435 77 51 57 1492 46 23 2 4 44 1 62 1 30 +6436 77 52 63 1492 46 21 2 4 44 1 60 1 28 +6437 77 53 69 1492 46 22 2 4 44 1 61 1 29 +6438 77 54 75 1492 46 24 2 4 44 1 63 1 31 +6439 77 55 81 1492 46 26 2 4 44 1 65 2 1 +6440 77 56 87 1492 50 25 2 4 45 1 64 2 0 +6441 77 57 93 1492 50 23 2 4 45 1 62 1 30 +6442 77 58 99 1492 50 22 2 4 45 1 61 1 29 +6443 77 59 105 1492 50 24 2 4 45 1 63 1 31 +6444 77 60 111 1492 54 27 2 4 46 1 66 2 2 +6445 77 61 117 1492 54 25 2 4 46 1 64 2 0 +6446 77 62 123 1492 54 23 2 4 46 1 62 1 30 +6447 77 63 129 1492 54 24 2 4 46 1 63 1 31 +6448 77 64 135 1492 54 26 2 4 46 1 65 2 1 +6449 77 65 141 1492 58 25 2 4 47 1 64 2 0 +6450 77 66 147 1492 58 23 2 4 47 1 62 1 30 +6451 77 67 153 1492 58 21 2 4 47 1 60 1 28 +6452 77 68 159 1492 58 24 2 4 47 1 63 1 31 +6453 77 69 165 1492 58 26 2 4 47 1 65 2 1 +6454 77 70 171 1492 62 25 2 4 48 1 64 2 0 +6455 77 71 177 1492 62 23 2 4 48 1 62 1 30 +6456 77 72 183 1492 62 22 2 4 48 1 61 1 29 +6457 77 73 189 1492 62 24 2 4 48 1 63 1 31 +6458 77 74 195 1492 66 25 2 4 49 1 64 2 0 +6459 77 75 201 1492 66 23 2 4 49 1 62 1 30 +6460 77 76 207 1492 66 21 2 4 49 1 60 1 28 +6461 77 77 213 1492 66 24 2 4 49 1 63 1 31 +6462 77 78 219 1492 66 26 2 4 49 1 65 2 1 +6463 77 79 225 1492 70 25 2 4 50 1 64 2 0 +6464 77 80 231 1492 70 23 2 4 50 1 62 1 30 +6465 77 81 237 1492 70 24 2 4 50 1 63 1 31 +6466 77 82 243 1492 70 26 2 4 50 1 65 2 1 +6467 77 83 249 1492 70 28 2 4 50 1 67 2 3 +6468 78 0 -249 1502 2 31 2 4 33 1 70 2 6 +6469 78 1 -243 1502 2 29 2 4 33 1 68 2 4 +6470 78 2 -237 1502 2 28 2 4 33 1 67 2 3 +6471 78 3 -231 1502 2 30 2 4 33 1 69 2 5 +6472 78 4 -225 1502 2 32 2 4 33 1 71 2 7 +6473 78 5 -219 1502 6 29 2 4 34 1 68 2 4 +6474 78 6 -213 1502 6 27 2 4 34 1 66 2 2 +6475 78 7 -207 1502 6 28 2 4 34 1 67 2 3 +6476 78 8 -201 1502 6 30 2 4 34 1 69 2 5 +6477 78 9 -195 1502 10 29 2 4 35 1 68 2 4 +6478 78 10 -189 1502 10 27 2 4 35 1 66 2 2 +6479 78 11 -183 1502 10 25 2 4 35 1 64 2 0 +6480 78 12 -177 1502 10 28 2 4 35 1 67 2 3 +6481 78 13 -171 1502 10 30 2 4 35 1 69 2 5 +6482 78 14 -165 1502 14 31 2 4 36 1 70 2 6 +6483 78 15 -159 1502 14 29 2 4 36 1 68 2 4 +6484 78 16 -153 1502 14 27 2 4 36 1 66 2 2 +6485 78 17 -147 1502 14 28 2 4 36 1 67 2 3 +6486 78 18 -141 1502 14 30 2 4 36 1 69 2 5 +6487 78 19 -135 1502 18 29 2 4 37 1 68 2 4 +6488 78 20 -129 1502 18 27 2 4 37 1 66 2 2 +6489 78 21 -123 1502 18 30 2 4 37 1 69 2 5 +6490 78 22 -117 1502 18 32 2 4 37 1 71 2 7 +6491 78 23 -111 1502 22 29 2 4 38 1 68 2 4 +6492 78 24 -105 1502 22 27 2 4 38 1 66 2 2 +6493 78 25 -99 1502 22 25 2 4 38 1 64 2 0 +6494 78 26 -93 1502 22 28 2 4 38 1 67 2 3 +6495 78 27 -87 1502 22 30 2 4 38 1 69 2 5 +6496 78 28 -81 1502 26 29 2 4 39 1 68 2 4 +6497 78 29 -75 1502 26 27 2 4 39 1 66 2 2 +6498 78 30 -69 1502 26 26 2 4 39 1 65 2 1 +6499 78 31 -63 1502 26 28 2 4 39 1 67 2 3 +6500 78 32 -57 1502 26 30 2 4 39 1 69 2 5 +6501 78 33 -51 1502 30 31 2 4 40 1 70 2 6 +6502 78 34 -45 1502 30 29 2 4 40 1 68 2 4 +6503 78 35 -39 1502 30 30 2 4 40 1 69 2 5 +6504 78 36 -33 1502 30 32 2 4 40 1 71 2 7 +6505 78 37 -27 1502 34 29 2 4 41 1 68 2 4 +6506 78 38 -21 1502 34 27 2 4 41 1 66 2 2 +6507 78 39 -15 1502 34 26 2 4 41 1 65 2 1 +6508 78 40 -9 1502 34 28 2 4 41 1 67 2 3 +6509 78 41 -3 1502 34 30 2 4 41 1 69 2 5 +6510 78 42 3 1502 38 29 2 4 42 1 68 2 4 +6511 78 43 9 1502 38 27 2 4 42 1 66 2 2 +6512 78 44 15 1502 38 25 2 4 42 1 64 2 0 +6513 78 45 21 1502 38 28 2 4 42 1 67 2 3 +6514 78 46 27 1502 38 30 2 4 42 1 69 2 5 +6515 78 47 33 1502 42 31 2 4 43 1 70 2 6 +6516 78 48 39 1502 42 29 2 4 43 1 68 2 4 +6517 78 49 45 1502 42 30 2 4 43 1 69 2 5 +6518 78 50 51 1502 42 32 2 4 43 1 71 2 7 +6519 78 51 57 1502 46 29 2 4 44 1 68 2 4 +6520 78 52 63 1502 46 27 2 4 44 1 66 2 2 +6521 78 53 69 1502 46 25 2 4 44 1 64 2 0 +6522 78 54 75 1502 46 28 2 4 44 1 67 2 3 +6523 78 55 81 1502 46 30 2 4 44 1 69 2 5 +6524 78 56 87 1502 50 29 2 4 45 1 68 2 4 +6525 78 57 93 1502 50 27 2 4 45 1 66 2 2 +6526 78 58 99 1502 50 26 2 4 45 1 65 2 1 +6527 78 59 105 1502 50 28 2 4 45 1 67 2 3 +6528 78 60 111 1502 50 30 2 4 45 1 69 2 5 +6529 78 61 117 1502 54 31 2 4 46 1 70 2 6 +6530 78 62 123 1502 54 29 2 4 46 1 68 2 4 +6531 78 63 129 1502 54 28 2 4 46 1 67 2 3 +6532 78 64 135 1502 54 30 2 4 46 1 69 2 5 +6533 78 65 141 1502 58 29 2 4 47 1 68 2 4 +6534 78 66 147 1502 58 27 2 4 47 1 66 2 2 +6535 78 67 153 1502 58 28 2 4 47 1 67 2 3 +6536 78 68 159 1502 58 30 2 4 47 1 69 2 5 +6537 78 69 165 1502 58 32 2 4 47 1 71 2 7 +6538 78 70 171 1502 62 29 2 4 48 1 68 2 4 +6539 78 71 177 1502 62 27 2 4 48 1 66 2 2 +6540 78 72 183 1502 62 26 2 4 48 1 65 2 1 +6541 78 73 189 1502 62 28 2 4 48 1 67 2 3 +6542 78 74 195 1502 62 30 2 4 48 1 69 2 5 +6543 78 75 201 1502 66 29 2 4 49 1 68 2 4 +6544 78 76 207 1502 66 27 2 4 49 1 66 2 2 +6545 78 77 213 1502 66 28 2 4 49 1 67 2 3 +6546 78 78 219 1502 66 30 2 4 49 1 69 2 5 +6547 78 79 225 1502 70 31 2 4 50 1 70 2 6 +6548 78 80 231 1502 70 29 2 4 50 1 68 2 4 +6549 78 81 237 1502 70 27 2 4 50 1 66 2 2 +6550 78 82 243 1502 70 30 2 4 50 1 69 2 5 +6551 78 83 249 1502 70 32 2 4 50 1 71 2 7 +6552 79 0 -249 1512 2 35 2 4 33 1 74 2 10 +6553 79 1 -243 1512 2 33 2 4 33 1 72 2 8 +6554 79 2 -237 1512 2 34 2 4 33 1 73 2 9 +6555 79 3 -231 1512 2 36 2 4 33 1 75 2 11 +6556 79 4 -225 1512 6 35 2 4 34 1 74 2 10 +6557 79 5 -219 1512 6 33 2 4 34 1 72 2 8 +6558 79 6 -213 1512 6 31 2 4 34 1 70 2 6 +6559 79 7 -207 1512 6 32 2 4 34 1 71 2 7 +6560 79 8 -201 1512 6 34 2 4 34 1 73 2 9 +6561 79 9 -195 1512 10 33 2 4 35 1 72 2 8 +6562 79 10 -189 1512 10 31 2 4 35 1 70 2 6 +6563 79 11 -183 1512 10 32 2 4 35 1 71 2 7 +6564 79 12 -177 1512 10 34 2 4 35 1 73 2 9 +6565 79 13 -171 1512 10 36 2 4 35 1 75 2 11 +6566 79 14 -165 1512 14 35 2 4 36 1 74 2 10 +6567 79 15 -159 1512 14 33 2 4 36 1 72 2 8 +6568 79 16 -153 1512 14 32 2 4 36 1 71 2 7 +6569 79 17 -147 1512 14 34 2 4 36 1 73 2 9 +6570 79 18 -141 1512 14 36 2 4 36 1 75 2 11 +6571 79 19 -135 1512 18 33 2 4 37 1 72 2 8 +6572 79 20 -129 1512 18 31 2 4 37 1 70 2 6 +6573 79 21 -123 1512 18 34 2 4 37 1 73 2 9 +6574 79 22 -117 1512 18 36 2 4 37 1 75 2 11 +6575 79 23 -111 1512 22 33 2 4 38 1 72 2 8 +6576 79 24 -105 1512 22 31 2 4 38 1 70 2 6 +6577 79 25 -99 1512 22 32 2 4 38 1 71 2 7 +6578 79 26 -93 1512 22 34 2 4 38 1 73 2 9 +6579 79 27 -87 1512 22 36 2 4 38 1 75 2 11 +6580 79 28 -81 1512 26 35 2 4 39 1 74 2 10 +6581 79 29 -75 1512 26 33 2 4 39 1 72 2 8 +6582 79 30 -69 1512 26 31 2 4 39 1 70 2 6 +6583 79 31 -63 1512 26 32 2 4 39 1 71 2 7 +6584 79 32 -57 1512 26 34 2 4 39 1 73 2 9 +6585 79 33 -51 1512 30 35 2 4 40 1 74 2 10 +6586 79 34 -45 1512 30 33 2 4 40 1 72 2 8 +6587 79 35 -39 1512 30 34 2 4 40 1 73 2 9 +6588 79 36 -33 1512 30 36 2 4 40 1 75 2 11 +6589 79 37 -27 1512 34 35 2 4 41 1 74 2 10 +6590 79 38 -21 1512 34 33 2 4 41 1 72 2 8 +6591 79 39 -15 1512 34 31 2 4 41 1 70 2 6 +6592 79 40 -9 1512 34 32 2 4 41 1 71 2 7 +6593 79 41 -3 1512 34 34 2 4 41 1 73 2 9 +6594 79 42 3 1512 38 33 2 4 42 1 72 2 8 +6595 79 43 9 1512 38 31 2 4 42 1 70 2 6 +6596 79 44 15 1512 38 32 2 4 42 1 71 2 7 +6597 79 45 21 1512 38 34 2 4 42 1 73 2 9 +6598 79 46 27 1512 38 36 2 4 42 1 75 2 11 +6599 79 47 33 1512 42 35 2 4 43 1 74 2 10 +6600 79 48 39 1512 42 33 2 4 43 1 72 2 8 +6601 79 49 45 1512 42 34 2 4 43 1 73 2 9 +6602 79 50 51 1512 42 36 2 4 43 1 75 2 11 +6603 79 51 57 1512 46 33 2 4 44 1 72 2 8 +6604 79 52 63 1512 46 31 2 4 44 1 70 2 6 +6605 79 53 69 1512 46 32 2 4 44 1 71 2 7 +6606 79 54 75 1512 46 34 2 4 44 1 73 2 9 +6607 79 55 81 1512 46 36 2 4 44 1 75 2 11 +6608 79 56 87 1512 50 35 2 4 45 1 74 2 10 +6609 79 57 93 1512 50 33 2 4 45 1 72 2 8 +6610 79 58 99 1512 50 31 2 4 45 1 70 2 6 +6611 79 59 105 1512 50 32 2 4 45 1 71 2 7 +6612 79 60 111 1512 50 34 2 4 45 1 73 2 9 +6613 79 61 117 1512 54 35 2 4 46 1 74 2 10 +6614 79 62 123 1512 54 33 2 4 46 1 72 2 8 +6615 79 63 129 1512 54 32 2 4 46 1 71 2 7 +6616 79 64 135 1512 54 34 2 4 46 1 73 2 9 +6617 79 65 141 1512 58 35 2 4 47 1 74 2 10 +6618 79 66 147 1512 58 33 2 4 47 1 72 2 8 +6619 79 67 153 1512 58 31 2 4 47 1 70 2 6 +6620 79 68 159 1512 58 34 2 4 47 1 73 2 9 +6621 79 69 165 1512 58 36 2 4 47 1 75 2 11 +6622 79 70 171 1512 62 35 2 4 48 1 74 2 10 +6623 79 71 177 1512 62 33 2 4 48 1 72 2 8 +6624 79 72 183 1512 62 31 2 4 48 1 70 2 6 +6625 79 73 189 1512 62 32 2 4 48 1 71 2 7 +6626 79 74 195 1512 62 34 2 4 48 1 73 2 9 +6627 79 75 201 1512 66 33 2 4 49 1 72 2 8 +6628 79 76 207 1512 66 31 2 4 49 1 70 2 6 +6629 79 77 213 1512 66 32 2 4 49 1 71 2 7 +6630 79 78 219 1512 66 34 2 4 49 1 73 2 9 +6631 79 79 225 1512 66 36 2 4 49 1 75 2 11 +6632 79 80 231 1512 70 35 2 4 50 1 74 2 10 +6633 79 81 237 1512 70 33 2 4 50 1 72 2 8 +6634 79 82 243 1512 70 34 2 4 50 1 73 2 9 +6635 79 83 249 1512 70 36 2 4 50 1 75 2 11 +6636 80 0 -249 1522 2 39 2 4 33 1 78 2 14 +6637 80 1 -243 1522 2 37 2 4 33 1 76 2 12 +6638 80 2 -237 1522 2 38 2 4 33 1 77 2 13 +6639 80 3 -231 1522 2 40 2 4 33 1 79 2 15 +6640 80 4 -225 1522 6 39 2 4 34 1 78 2 14 +6641 80 5 -219 1522 6 37 2 4 34 1 76 2 12 +6642 80 6 -213 1522 6 36 2 4 34 1 75 2 11 +6643 80 7 -207 1522 6 38 2 4 34 1 77 2 13 +6644 80 8 -201 1522 6 40 2 4 34 1 79 2 15 +6645 80 9 -195 1522 10 39 2 4 35 1 78 2 14 +6646 80 10 -189 1522 10 37 2 4 35 1 76 2 12 +6647 80 11 -183 1522 10 35 2 4 35 1 74 2 10 +6648 80 12 -177 1522 10 38 2 4 35 1 77 2 13 +6649 80 13 -171 1522 10 40 2 4 35 1 79 2 15 +6650 80 14 -165 1522 14 39 2 4 36 1 78 2 14 +6651 80 15 -159 1522 14 37 2 4 36 1 76 2 12 +6652 80 16 -153 1522 14 38 2 4 36 1 77 2 13 +6653 80 17 -147 1522 14 40 2 4 36 1 79 2 15 +6654 80 18 -141 1522 18 39 2 4 37 1 78 2 14 +6655 80 19 -135 1522 18 37 2 4 37 1 76 2 12 +6656 80 20 -129 1522 18 35 2 4 37 1 74 2 10 +6657 80 21 -123 1522 18 38 2 4 37 1 77 2 13 +6658 80 22 -117 1522 18 40 2 4 37 1 79 2 15 +6659 80 23 -111 1522 22 39 2 4 38 1 78 2 14 +6660 80 24 -105 1522 22 37 2 4 38 1 76 2 12 +6661 80 25 -99 1522 22 35 2 4 38 1 74 2 10 +6662 80 26 -93 1522 22 38 2 4 38 1 77 2 13 +6663 80 27 -87 1522 22 40 2 4 38 1 79 2 15 +6664 80 28 -81 1522 26 39 2 4 39 1 78 2 14 +6665 80 29 -75 1522 26 37 2 4 39 1 76 2 12 +6666 80 30 -69 1522 26 36 2 4 39 1 75 2 11 +6667 80 31 -63 1522 26 38 2 4 39 1 77 2 13 +6668 80 32 -57 1522 26 40 2 4 39 1 79 2 15 +6669 80 33 -51 1522 30 39 2 4 40 1 78 2 14 +6670 80 34 -45 1522 30 37 2 4 40 1 76 2 12 +6671 80 35 -39 1522 30 38 2 4 40 1 77 2 13 +6672 80 36 -33 1522 30 40 2 4 40 1 79 2 15 +6673 80 37 -27 1522 34 39 2 4 41 1 78 2 14 +6674 80 38 -21 1522 34 37 2 4 41 1 76 2 12 +6675 80 39 -15 1522 34 36 2 4 41 1 75 2 11 +6676 80 40 -9 1522 34 38 2 4 41 1 77 2 13 +6677 80 41 -3 1522 34 40 2 4 41 1 79 2 15 +6678 80 42 3 1522 38 39 2 4 42 1 78 2 14 +6679 80 43 9 1522 38 37 2 4 42 1 76 2 12 +6680 80 44 15 1522 38 35 2 4 42 1 74 2 10 +6681 80 45 21 1522 38 38 2 4 42 1 77 2 13 +6682 80 46 27 1522 38 40 2 4 42 1 79 2 15 +6683 80 47 33 1522 42 39 2 4 43 1 78 2 14 +6684 80 48 39 1522 42 37 2 4 43 1 76 2 12 +6685 80 49 45 1522 42 38 2 4 43 1 77 2 13 +6686 80 50 51 1522 42 40 2 4 43 1 79 2 15 +6687 80 51 57 1522 46 39 2 4 44 1 78 2 14 +6688 80 52 63 1522 46 37 2 4 44 1 76 2 12 +6689 80 53 69 1522 46 35 2 4 44 1 74 2 10 +6690 80 54 75 1522 46 38 2 4 44 1 77 2 13 +6691 80 55 81 1522 46 40 2 4 44 1 79 2 15 +6692 80 56 87 1522 50 39 2 4 45 1 78 2 14 +6693 80 57 93 1522 50 37 2 4 45 1 76 2 12 +6694 80 58 99 1522 50 36 2 4 45 1 75 2 11 +6695 80 59 105 1522 50 38 2 4 45 1 77 2 13 +6696 80 60 111 1522 50 40 2 4 45 1 79 2 15 +6697 80 61 117 1522 54 39 2 4 46 1 78 2 14 +6698 80 62 123 1522 54 37 2 4 46 1 76 2 12 +6699 80 63 129 1522 54 36 2 4 46 1 75 2 11 +6700 80 64 135 1522 54 38 2 4 46 1 77 2 13 +6701 80 65 141 1522 54 40 2 4 46 1 79 2 15 +6702 80 66 147 1522 58 39 2 4 47 1 78 2 14 +6703 80 67 153 1522 58 37 2 4 47 1 76 2 12 +6704 80 68 159 1522 58 38 2 4 47 1 77 2 13 +6705 80 69 165 1522 58 40 2 4 47 1 79 2 15 +6706 80 70 171 1522 62 39 2 4 48 1 78 2 14 +6707 80 71 177 1522 62 37 2 4 48 1 76 2 12 +6708 80 72 183 1522 62 36 2 4 48 1 75 2 11 +6709 80 73 189 1522 62 38 2 4 48 1 77 2 13 +6710 80 74 195 1522 62 40 2 4 48 1 79 2 15 +6711 80 75 201 1522 66 39 2 4 49 1 78 2 14 +6712 80 76 207 1522 66 37 2 4 49 1 76 2 12 +6713 80 77 213 1522 66 35 2 4 49 1 74 2 10 +6714 80 78 219 1522 66 38 2 4 49 1 77 2 13 +6715 80 79 225 1522 66 40 2 4 49 1 79 2 15 +6716 80 80 231 1522 70 39 2 4 50 1 78 2 14 +6717 80 81 237 1522 70 37 2 4 50 1 76 2 12 +6718 80 82 243 1522 70 38 2 4 50 1 77 2 13 +6719 80 83 249 1522 70 40 2 4 50 1 79 2 15 +6720 81 0 -255 1532 3 5 2 5 33 2 84 2 20 +6721 81 1 -249 1532 3 3 2 5 33 2 82 2 18 +6722 81 2 -243 1532 3 1 2 5 33 2 80 2 16 +6723 81 3 -237 1532 3 2 2 5 33 2 81 2 17 +6724 81 4 -231 1532 3 4 2 5 33 2 83 2 19 +6725 81 5 -225 1532 7 5 2 5 34 2 84 2 20 +6726 81 6 -219 1532 7 3 2 5 34 2 82 2 18 +6727 81 7 -213 1532 7 1 2 5 34 2 80 2 16 +6728 81 8 -207 1532 7 2 2 5 34 2 81 2 17 +6729 81 9 -201 1532 7 4 2 5 34 2 83 2 19 +6730 81 10 -195 1532 11 3 2 5 35 2 82 2 18 +6731 81 11 -189 1532 11 1 2 5 35 2 80 2 16 +6732 81 12 -183 1532 11 2 2 5 35 2 81 2 17 +6733 81 13 -177 1532 11 4 2 5 35 2 83 2 19 +6734 81 14 -171 1532 15 3 2 5 36 2 82 2 18 +6735 81 15 -165 1532 15 1 2 5 36 2 80 2 16 +6736 81 16 -159 1532 15 2 2 5 36 2 81 2 17 +6737 81 17 -153 1532 15 4 2 5 36 2 83 2 19 +6738 81 18 -147 1532 15 6 2 5 36 2 85 2 21 +6739 81 19 -141 1532 19 5 2 5 37 2 84 2 20 +6740 81 20 -135 1532 19 3 2 5 37 2 82 2 18 +6741 81 21 -129 1532 19 1 2 5 37 2 80 2 16 +6742 81 22 -123 1532 19 2 2 5 37 2 81 2 17 +6743 81 23 -117 1532 19 4 2 5 37 2 83 2 19 +6744 81 24 -111 1532 23 3 2 5 38 2 82 2 18 +6745 81 25 -105 1532 23 1 2 5 38 2 80 2 16 +6746 81 26 -99 1532 23 2 2 5 38 2 81 2 17 +6747 81 27 -93 1532 23 4 2 5 38 2 83 2 19 +6748 81 28 -87 1532 23 6 2 5 38 2 85 2 21 +6749 81 29 -81 1532 27 3 2 5 39 2 82 2 18 +6750 81 30 -75 1532 27 1 2 5 39 2 80 2 16 +6751 81 31 -69 1532 27 2 2 5 39 2 81 2 17 +6752 81 32 -63 1532 27 4 2 5 39 2 83 2 19 +6753 81 33 -57 1532 31 5 2 5 40 2 84 2 20 +6754 81 34 -51 1532 31 3 2 5 40 2 82 2 18 +6755 81 35 -45 1532 31 1 2 5 40 2 80 2 16 +6756 81 36 -39 1532 31 2 2 5 40 2 81 2 17 +6757 81 37 -33 1532 31 4 2 5 40 2 83 2 19 +6758 81 38 -27 1532 35 5 2 5 41 2 84 2 20 +6759 81 39 -21 1532 35 3 2 5 41 2 82 2 18 +6760 81 40 -15 1532 35 1 2 5 41 2 80 2 16 +6761 81 41 -9 1532 35 2 2 5 41 2 81 2 17 +6762 81 42 -3 1532 35 4 2 5 41 2 83 2 19 +6763 81 43 3 1532 39 3 2 5 42 2 82 2 18 +6764 81 44 9 1532 39 1 2 5 42 2 80 2 16 +6765 81 45 15 1532 39 2 2 5 42 2 81 2 17 +6766 81 46 21 1532 39 4 2 5 42 2 83 2 19 +6767 81 47 27 1532 39 6 2 5 42 2 85 2 21 +6768 81 48 33 1532 43 3 2 5 43 2 82 2 18 +6769 81 49 39 1532 43 1 2 5 43 2 80 2 16 +6770 81 50 45 1532 43 2 2 5 43 2 81 2 17 +6771 81 51 51 1532 43 4 2 5 43 2 83 2 19 +6772 81 52 57 1532 43 6 2 5 43 2 85 2 21 +6773 81 53 63 1532 47 3 2 5 44 2 82 2 18 +6774 81 54 69 1532 47 1 2 5 44 2 80 2 16 +6775 81 55 75 1532 47 2 2 5 44 2 81 2 17 +6776 81 56 81 1532 47 4 2 5 44 2 83 2 19 +6777 81 57 87 1532 51 5 2 5 45 2 84 2 20 +6778 81 58 93 1532 51 3 2 5 45 2 82 2 18 +6779 81 59 99 1532 51 1 2 5 45 2 80 2 16 +6780 81 60 105 1532 51 2 2 5 45 2 81 2 17 +6781 81 61 111 1532 51 4 2 5 45 2 83 2 19 +6782 81 62 117 1532 55 3 2 5 46 2 82 2 18 +6783 81 63 123 1532 55 1 2 5 46 2 80 2 16 +6784 81 64 129 1532 55 2 2 5 46 2 81 2 17 +6785 81 65 135 1532 55 4 2 5 46 2 83 2 19 +6786 81 66 141 1532 55 6 2 5 46 2 85 2 21 +6787 81 67 147 1532 59 5 2 5 47 2 84 2 20 +6788 81 68 153 1532 59 3 2 5 47 2 82 2 18 +6789 81 69 159 1532 59 1 2 5 47 2 80 2 16 +6790 81 70 165 1532 59 2 2 5 47 2 81 2 17 +6791 81 71 171 1532 59 4 2 5 47 2 83 2 19 +6792 81 72 177 1532 63 3 2 5 48 2 82 2 18 +6793 81 73 183 1532 63 1 2 5 48 2 80 2 16 +6794 81 74 189 1532 63 2 2 5 48 2 81 2 17 +6795 81 75 195 1532 63 4 2 5 48 2 83 2 19 +6796 81 76 201 1532 67 3 2 5 49 2 82 2 18 +6797 81 77 207 1532 67 1 2 5 49 2 80 2 16 +6798 81 78 213 1532 67 2 2 5 49 2 81 2 17 +6799 81 79 219 1532 67 4 2 5 49 2 83 2 19 +6800 81 80 225 1532 67 6 2 5 49 2 85 2 21 +6801 81 81 231 1532 71 3 2 5 50 2 82 2 18 +6802 81 82 237 1532 71 1 2 5 50 2 80 2 16 +6803 81 83 243 1532 71 2 2 5 50 2 81 2 17 +6804 81 84 249 1532 71 4 2 5 50 2 83 2 19 +6805 81 85 255 1532 71 6 2 5 50 2 85 2 21 +6806 82 0 -255 1542 3 9 2 5 33 2 88 2 24 +6807 82 1 -249 1542 3 7 2 5 33 2 86 2 22 +6808 82 2 -243 1542 3 6 2 5 33 2 85 2 21 +6809 82 3 -237 1542 3 8 2 5 33 2 87 2 23 +6810 82 4 -231 1542 3 10 2 5 33 2 89 2 25 +6811 82 5 -225 1542 7 9 2 5 34 2 88 2 24 +6812 82 6 -219 1542 7 7 2 5 34 2 86 2 22 +6813 82 7 -213 1542 7 6 2 5 34 2 85 2 21 +6814 82 8 -207 1542 7 8 2 5 34 2 87 2 23 +6815 82 9 -201 1542 7 10 2 5 34 2 89 2 25 +6816 82 10 -195 1542 11 7 2 5 35 2 86 2 22 +6817 82 11 -189 1542 11 5 2 5 35 2 84 2 20 +6818 82 12 -183 1542 11 6 2 5 35 2 85 2 21 +6819 82 13 -177 1542 11 8 2 5 35 2 87 2 23 +6820 82 14 -171 1542 15 9 2 5 36 2 88 2 24 +6821 82 15 -165 1542 15 7 2 5 36 2 86 2 22 +6822 82 16 -159 1542 15 5 2 5 36 2 84 2 20 +6823 82 17 -153 1542 15 8 2 5 36 2 87 2 23 +6824 82 18 -147 1542 15 10 2 5 36 2 89 2 25 +6825 82 19 -141 1542 19 9 2 5 37 2 88 2 24 +6826 82 20 -135 1542 19 7 2 5 37 2 86 2 22 +6827 82 21 -129 1542 19 6 2 5 37 2 85 2 21 +6828 82 22 -123 1542 19 8 2 5 37 2 87 2 23 +6829 82 23 -117 1542 19 10 2 5 37 2 89 2 25 +6830 82 24 -111 1542 23 9 2 5 38 2 88 2 24 +6831 82 25 -105 1542 23 7 2 5 38 2 86 2 22 +6832 82 26 -99 1542 23 5 2 5 38 2 84 2 20 +6833 82 27 -93 1542 23 8 2 5 38 2 87 2 23 +6834 82 28 -87 1542 23 10 2 5 38 2 89 2 25 +6835 82 29 -81 1542 27 7 2 5 39 2 86 2 22 +6836 82 30 -75 1542 27 5 2 5 39 2 84 2 20 +6837 82 31 -69 1542 27 6 2 5 39 2 85 2 21 +6838 82 32 -63 1542 27 8 2 5 39 2 87 2 23 +6839 82 33 -57 1542 31 9 2 5 40 2 88 2 24 +6840 82 34 -51 1542 31 7 2 5 40 2 86 2 22 +6841 82 35 -45 1542 31 6 2 5 40 2 85 2 21 +6842 82 36 -39 1542 31 8 2 5 40 2 87 2 23 +6843 82 37 -33 1542 31 10 2 5 40 2 89 2 25 +6844 82 38 -27 1542 35 9 2 5 41 2 88 2 24 +6845 82 39 -21 1542 35 7 2 5 41 2 86 2 22 +6846 82 40 -15 1542 35 6 2 5 41 2 85 2 21 +6847 82 41 -9 1542 35 8 2 5 41 2 87 2 23 +6848 82 42 -3 1542 35 10 2 5 41 2 89 2 25 +6849 82 43 3 1542 39 9 2 5 42 2 88 2 24 +6850 82 44 9 1542 39 7 2 5 42 2 86 2 22 +6851 82 45 15 1542 39 5 2 5 42 2 84 2 20 +6852 82 46 21 1542 39 8 2 5 42 2 87 2 23 +6853 82 47 27 1542 39 10 2 5 42 2 89 2 25 +6854 82 48 33 1542 43 9 2 5 43 2 88 2 24 +6855 82 49 39 1542 43 7 2 5 43 2 86 2 22 +6856 82 50 45 1542 43 5 2 5 43 2 84 2 20 +6857 82 51 51 1542 43 8 2 5 43 2 87 2 23 +6858 82 52 57 1542 43 10 2 5 43 2 89 2 25 +6859 82 53 63 1542 47 7 2 5 44 2 86 2 22 +6860 82 54 69 1542 47 5 2 5 44 2 84 2 20 +6861 82 55 75 1542 47 6 2 5 44 2 85 2 21 +6862 82 56 81 1542 47 8 2 5 44 2 87 2 23 +6863 82 57 87 1542 51 9 2 5 45 2 88 2 24 +6864 82 58 93 1542 51 7 2 5 45 2 86 2 22 +6865 82 59 99 1542 51 6 2 5 45 2 85 2 21 +6866 82 60 105 1542 51 8 2 5 45 2 87 2 23 +6867 82 61 111 1542 51 10 2 5 45 2 89 2 25 +6868 82 62 117 1542 55 9 2 5 46 2 88 2 24 +6869 82 63 123 1542 55 7 2 5 46 2 86 2 22 +6870 82 64 129 1542 55 5 2 5 46 2 84 2 20 +6871 82 65 135 1542 55 8 2 5 46 2 87 2 23 +6872 82 66 141 1542 55 10 2 5 46 2 89 2 25 +6873 82 67 147 1542 59 9 2 5 47 2 88 2 24 +6874 82 68 153 1542 59 7 2 5 47 2 86 2 22 +6875 82 69 159 1542 59 6 2 5 47 2 85 2 21 +6876 82 70 165 1542 59 8 2 5 47 2 87 2 23 +6877 82 71 171 1542 59 10 2 5 47 2 89 2 25 +6878 82 72 177 1542 63 7 2 5 48 2 86 2 22 +6879 82 73 183 1542 63 5 2 5 48 2 84 2 20 +6880 82 74 189 1542 63 6 2 5 48 2 85 2 21 +6881 82 75 195 1542 63 8 2 5 48 2 87 2 23 +6882 82 76 201 1542 67 9 2 5 49 2 88 2 24 +6883 82 77 207 1542 67 7 2 5 49 2 86 2 22 +6884 82 78 213 1542 67 5 2 5 49 2 84 2 20 +6885 82 79 219 1542 67 8 2 5 49 2 87 2 23 +6886 82 80 225 1542 67 10 2 5 49 2 89 2 25 +6887 82 81 231 1542 71 9 2 5 50 2 88 2 24 +6888 82 82 237 1542 71 7 2 5 50 2 86 2 22 +6889 82 83 243 1542 71 5 2 5 50 2 84 2 20 +6890 82 84 249 1542 71 8 2 5 50 2 87 2 23 +6891 82 85 255 1542 71 10 2 5 50 2 89 2 25 +6892 83 0 -255 1552 3 13 2 5 33 2 92 2 28 +6893 83 1 -249 1552 3 11 2 5 33 2 90 2 26 +6894 83 2 -243 1552 3 12 2 5 33 2 91 2 27 +6895 83 3 -237 1552 3 14 2 5 33 2 93 2 29 +6896 83 4 -231 1552 7 15 2 5 34 2 94 2 30 +6897 83 5 -225 1552 7 13 2 5 34 2 92 2 28 +6898 83 6 -219 1552 7 11 2 5 34 2 90 2 26 +6899 83 7 -213 1552 7 12 2 5 34 2 91 2 27 +6900 83 8 -207 1552 7 14 2 5 34 2 93 2 29 +6901 83 9 -201 1552 11 13 2 5 35 2 92 2 28 +6902 83 10 -195 1552 11 11 2 5 35 2 90 2 26 +6903 83 11 -189 1552 11 9 2 5 35 2 88 2 24 +6904 83 12 -183 1552 11 10 2 5 35 2 89 2 25 +6905 83 13 -177 1552 11 12 2 5 35 2 91 2 27 +6906 83 14 -171 1552 15 13 2 5 36 2 92 2 28 +6907 83 15 -165 1552 15 11 2 5 36 2 90 2 26 +6908 83 16 -159 1552 15 12 2 5 36 2 91 2 27 +6909 83 17 -153 1552 15 14 2 5 36 2 93 2 29 +6910 83 18 -147 1552 15 16 2 5 36 2 95 2 31 +6911 83 19 -141 1552 19 15 2 5 37 2 94 2 30 +6912 83 20 -135 1552 19 13 2 5 37 2 92 2 28 +6913 83 21 -129 1552 19 11 2 5 37 2 90 2 26 +6914 83 22 -123 1552 19 12 2 5 37 2 91 2 27 +6915 83 23 -117 1552 19 14 2 5 37 2 93 2 29 +6916 83 24 -111 1552 23 13 2 5 38 2 92 2 28 +6917 83 25 -105 1552 23 11 2 5 38 2 90 2 26 +6918 83 26 -99 1552 23 12 2 5 38 2 91 2 27 +6919 83 27 -93 1552 23 14 2 5 38 2 93 2 29 +6920 83 28 -87 1552 23 16 2 5 38 2 95 2 31 +6921 83 29 -81 1552 27 11 2 5 39 2 90 2 26 +6922 83 30 -75 1552 27 9 2 5 39 2 88 2 24 +6923 83 31 -69 1552 27 10 2 5 39 2 89 2 25 +6924 83 32 -63 1552 27 12 2 5 39 2 91 2 27 +6925 83 33 -57 1552 31 15 2 5 40 2 94 2 30 +6926 83 34 -51 1552 31 13 2 5 40 2 92 2 28 +6927 83 35 -45 1552 31 11 2 5 40 2 90 2 26 +6928 83 36 -39 1552 31 12 2 5 40 2 91 2 27 +6929 83 37 -33 1552 31 14 2 5 40 2 93 2 29 +6930 83 38 -27 1552 35 15 2 5 41 2 94 2 30 +6931 83 39 -21 1552 35 13 2 5 41 2 92 2 28 +6932 83 40 -15 1552 35 11 2 5 41 2 90 2 26 +6933 83 41 -9 1552 35 12 2 5 41 2 91 2 27 +6934 83 42 -3 1552 35 14 2 5 41 2 93 2 29 +6935 83 43 3 1552 39 13 2 5 42 2 92 2 28 +6936 83 44 9 1552 39 11 2 5 42 2 90 2 26 +6937 83 45 15 1552 39 12 2 5 42 2 91 2 27 +6938 83 46 21 1552 39 14 2 5 42 2 93 2 29 +6939 83 47 27 1552 39 16 2 5 42 2 95 2 31 +6940 83 48 33 1552 43 13 2 5 43 2 92 2 28 +6941 83 49 39 1552 43 11 2 5 43 2 90 2 26 +6942 83 50 45 1552 43 12 2 5 43 2 91 2 27 +6943 83 51 51 1552 43 14 2 5 43 2 93 2 29 +6944 83 52 57 1552 43 16 2 5 43 2 95 2 31 +6945 83 53 63 1552 47 11 2 5 44 2 90 2 26 +6946 83 54 69 1552 47 9 2 5 44 2 88 2 24 +6947 83 55 75 1552 47 10 2 5 44 2 89 2 25 +6948 83 56 81 1552 47 12 2 5 44 2 91 2 27 +6949 83 57 87 1552 51 15 2 5 45 2 94 2 30 +6950 83 58 93 1552 51 13 2 5 45 2 92 2 28 +6951 83 59 99 1552 51 11 2 5 45 2 90 2 26 +6952 83 60 105 1552 51 12 2 5 45 2 91 2 27 +6953 83 61 111 1552 51 14 2 5 45 2 93 2 29 +6954 83 62 117 1552 55 13 2 5 46 2 92 2 28 +6955 83 63 123 1552 55 11 2 5 46 2 90 2 26 +6956 83 64 129 1552 55 12 2 5 46 2 91 2 27 +6957 83 65 135 1552 55 14 2 5 46 2 93 2 29 +6958 83 66 141 1552 55 16 2 5 46 2 95 2 31 +6959 83 67 147 1552 59 15 2 5 47 2 94 2 30 +6960 83 68 153 1552 59 13 2 5 47 2 92 2 28 +6961 83 69 159 1552 59 11 2 5 47 2 90 2 26 +6962 83 70 165 1552 59 12 2 5 47 2 91 2 27 +6963 83 71 171 1552 59 14 2 5 47 2 93 2 29 +6964 83 72 177 1552 63 11 2 5 48 2 90 2 26 +6965 83 73 183 1552 63 9 2 5 48 2 88 2 24 +6966 83 74 189 1552 63 10 2 5 48 2 89 2 25 +6967 83 75 195 1552 63 12 2 5 48 2 91 2 27 +6968 83 76 201 1552 63 14 2 5 48 2 93 2 29 +6969 83 77 207 1552 67 13 2 5 49 2 92 2 28 +6970 83 78 213 1552 67 11 2 5 49 2 90 2 26 +6971 83 79 219 1552 67 12 2 5 49 2 91 2 27 +6972 83 80 225 1552 67 14 2 5 49 2 93 2 29 +6973 83 81 231 1552 67 16 2 5 49 2 95 2 31 +6974 83 82 237 1552 71 13 2 5 50 2 92 2 28 +6975 83 83 243 1552 71 11 2 5 50 2 90 2 26 +6976 83 84 249 1552 71 12 2 5 50 2 91 2 27 +6977 83 85 255 1552 71 14 2 5 50 2 93 2 29 +6978 84 0 -261 1562 3 19 2 5 33 2 98 3 2 +6979 84 1 -255 1562 3 17 2 5 33 2 96 3 0 +6980 84 2 -249 1562 3 15 2 5 33 2 94 2 30 +6981 84 3 -243 1562 3 16 2 5 33 2 95 2 31 +6982 84 4 -237 1562 3 18 2 5 33 2 97 3 1 +6983 84 5 -231 1562 7 19 2 5 34 2 98 3 2 +6984 84 6 -225 1562 7 17 2 5 34 2 96 3 0 +6985 84 7 -219 1562 7 16 2 5 34 2 95 2 31 +6986 84 8 -213 1562 7 18 2 5 34 2 97 3 1 +6987 84 9 -207 1562 7 20 2 5 34 2 99 3 3 +6988 84 10 -201 1562 11 17 2 5 35 2 96 3 0 +6989 84 11 -195 1562 11 15 2 5 35 2 94 2 30 +6990 84 12 -189 1562 11 14 2 5 35 2 93 2 29 +6991 84 13 -183 1562 11 16 2 5 35 2 95 2 31 +6992 84 14 -177 1562 11 18 2 5 35 2 97 3 1 +6993 84 15 -171 1562 15 19 2 5 36 2 98 3 2 +6994 84 16 -165 1562 15 17 2 5 36 2 96 3 0 +6995 84 17 -159 1562 15 15 2 5 36 2 94 2 30 +6996 84 18 -153 1562 15 18 2 5 36 2 97 3 1 +6997 84 19 -147 1562 15 20 2 5 36 2 99 3 3 +6998 84 20 -141 1562 19 19 2 5 37 2 98 3 2 +6999 84 21 -135 1562 19 17 2 5 37 2 96 3 0 +7000 84 22 -129 1562 19 16 2 5 37 2 95 2 31 +7001 84 23 -123 1562 19 18 2 5 37 2 97 3 1 +7002 84 24 -117 1562 19 20 2 5 37 2 99 3 3 +7003 84 25 -111 1562 23 17 2 5 38 2 96 3 0 +7004 84 26 -105 1562 23 15 2 5 38 2 94 2 30 +7005 84 27 -99 1562 23 18 2 5 38 2 97 3 1 +7006 84 28 -93 1562 23 20 2 5 38 2 99 3 3 +7007 84 29 -87 1562 27 17 2 5 39 2 96 3 0 +7008 84 30 -81 1562 27 15 2 5 39 2 94 2 30 +7009 84 31 -75 1562 27 13 2 5 39 2 92 2 28 +7010 84 32 -69 1562 27 14 2 5 39 2 93 2 29 +7011 84 33 -63 1562 27 16 2 5 39 2 95 2 31 +7012 84 34 -57 1562 31 19 2 5 40 2 98 3 2 +7013 84 35 -51 1562 31 17 2 5 40 2 96 3 0 +7014 84 36 -45 1562 31 16 2 5 40 2 95 2 31 +7015 84 37 -39 1562 31 18 2 5 40 2 97 3 1 +7016 84 38 -33 1562 31 20 2 5 40 2 99 3 3 +7017 84 39 -27 1562 35 19 2 5 41 2 98 3 2 +7018 84 40 -21 1562 35 17 2 5 41 2 96 3 0 +7019 84 41 -15 1562 35 16 2 5 41 2 95 2 31 +7020 84 42 -9 1562 35 18 2 5 41 2 97 3 1 +7021 84 43 -3 1562 35 20 2 5 41 2 99 3 3 +7022 84 44 3 1562 39 19 2 5 42 2 98 3 2 +7023 84 45 9 1562 39 17 2 5 42 2 96 3 0 +7024 84 46 15 1562 39 15 2 5 42 2 94 2 30 +7025 84 47 21 1562 39 18 2 5 42 2 97 3 1 +7026 84 48 27 1562 39 20 2 5 42 2 99 3 3 +7027 84 49 33 1562 43 19 2 5 43 2 98 3 2 +7028 84 50 39 1562 43 17 2 5 43 2 96 3 0 +7029 84 51 45 1562 43 15 2 5 43 2 94 2 30 +7030 84 52 51 1562 43 18 2 5 43 2 97 3 1 +7031 84 53 57 1562 43 20 2 5 43 2 99 3 3 +7032 84 54 63 1562 47 15 2 5 44 2 94 2 30 +7033 84 55 69 1562 47 13 2 5 44 2 92 2 28 +7034 84 56 75 1562 47 14 2 5 44 2 93 2 29 +7035 84 57 81 1562 47 16 2 5 44 2 95 2 31 +7036 84 58 87 1562 47 18 2 5 44 2 97 3 1 +7037 84 59 93 1562 51 19 2 5 45 2 98 3 2 +7038 84 60 99 1562 51 17 2 5 45 2 96 3 0 +7039 84 61 105 1562 51 16 2 5 45 2 95 2 31 +7040 84 62 111 1562 51 18 2 5 45 2 97 3 1 +7041 84 63 117 1562 55 19 2 5 46 2 98 3 2 +7042 84 64 123 1562 55 17 2 5 46 2 96 3 0 +7043 84 65 129 1562 55 15 2 5 46 2 94 2 30 +7044 84 66 135 1562 55 18 2 5 46 2 97 3 1 +7045 84 67 141 1562 55 20 2 5 46 2 99 3 3 +7046 84 68 147 1562 59 19 2 5 47 2 98 3 2 +7047 84 69 153 1562 59 17 2 5 47 2 96 3 0 +7048 84 70 159 1562 59 16 2 5 47 2 95 2 31 +7049 84 71 165 1562 59 18 2 5 47 2 97 3 1 +7050 84 72 171 1562 59 20 2 5 47 2 99 3 3 +7051 84 73 177 1562 63 17 2 5 48 2 96 3 0 +7052 84 74 183 1562 63 15 2 5 48 2 94 2 30 +7053 84 75 189 1562 63 13 2 5 48 2 92 2 28 +7054 84 76 195 1562 63 16 2 5 48 2 95 2 31 +7055 84 77 201 1562 63 18 2 5 48 2 97 3 1 +7056 84 78 207 1562 67 19 2 5 49 2 98 3 2 +7057 84 79 213 1562 67 17 2 5 49 2 96 3 0 +7058 84 80 219 1562 67 15 2 5 49 2 94 2 30 +7059 84 81 225 1562 67 18 2 5 49 2 97 3 1 +7060 84 82 231 1562 67 20 2 5 49 2 99 3 3 +7061 84 83 237 1562 71 17 2 5 50 2 96 3 0 +7062 84 84 243 1562 71 15 2 5 50 2 94 2 30 +7063 84 85 249 1562 71 16 2 5 50 2 95 2 31 +7064 84 86 255 1562 71 18 2 5 50 2 97 3 1 +7065 84 87 261 1562 71 20 2 5 50 2 99 3 3 +7066 85 0 -261 1572 3 23 2 5 33 2 102 3 6 +7067 85 1 -255 1572 3 21 2 5 33 2 100 3 4 +7068 85 2 -249 1572 3 20 2 5 33 2 99 3 3 +7069 85 3 -243 1572 3 22 2 5 33 2 101 3 5 +7070 85 4 -237 1572 3 24 2 5 33 2 103 3 7 +7071 85 5 -231 1572 7 25 2 5 34 2 104 3 8 +7072 85 6 -225 1572 7 23 2 5 34 2 102 3 6 +7073 85 7 -219 1572 7 21 2 5 34 2 100 3 4 +7074 85 8 -213 1572 7 22 2 5 34 2 101 3 5 +7075 85 9 -207 1572 7 24 2 5 34 2 103 3 7 +7076 85 10 -201 1572 11 21 2 5 35 2 100 3 4 +7077 85 11 -195 1572 11 19 2 5 35 2 98 3 2 +7078 85 12 -189 1572 11 20 2 5 35 2 99 3 3 +7079 85 13 -183 1572 11 22 2 5 35 2 101 3 5 +7080 85 14 -177 1572 11 24 2 5 35 2 103 3 7 +7081 85 15 -171 1572 15 23 2 5 36 2 102 3 6 +7082 85 16 -165 1572 15 21 2 5 36 2 100 3 4 +7083 85 17 -159 1572 15 22 2 5 36 2 101 3 5 +7084 85 18 -153 1572 15 24 2 5 36 2 103 3 7 +7085 85 19 -147 1572 15 26 2 5 36 2 105 3 9 +7086 85 20 -141 1572 19 23 2 5 37 2 102 3 6 +7087 85 21 -135 1572 19 21 2 5 37 2 100 3 4 +7088 85 22 -129 1572 19 22 2 5 37 2 101 3 5 +7089 85 23 -123 1572 19 24 2 5 37 2 103 3 7 +7090 85 24 -117 1572 23 23 2 5 38 2 102 3 6 +7091 85 25 -111 1572 23 21 2 5 38 2 100 3 4 +7092 85 26 -105 1572 23 19 2 5 38 2 98 3 2 +7093 85 27 -99 1572 23 22 2 5 38 2 101 3 5 +7094 85 28 -93 1572 23 24 2 5 38 2 103 3 7 +7095 85 29 -87 1572 27 21 2 5 39 2 100 3 4 +7096 85 30 -81 1572 27 19 2 5 39 2 98 3 2 +7097 85 31 -75 1572 27 18 2 5 39 2 97 3 1 +7098 85 32 -69 1572 27 20 2 5 39 2 99 3 3 +7099 85 33 -63 1572 27 22 2 5 39 2 101 3 5 +7100 85 34 -57 1572 31 25 2 5 40 2 104 3 8 +7101 85 35 -51 1572 31 23 2 5 40 2 102 3 6 +7102 85 36 -45 1572 31 21 2 5 40 2 100 3 4 +7103 85 37 -39 1572 31 22 2 5 40 2 101 3 5 +7104 85 38 -33 1572 31 24 2 5 40 2 103 3 7 +7105 85 39 -27 1572 35 25 2 5 41 2 104 3 8 +7106 85 40 -21 1572 35 23 2 5 41 2 102 3 6 +7107 85 41 -15 1572 35 21 2 5 41 2 100 3 4 +7108 85 42 -9 1572 35 22 2 5 41 2 101 3 5 +7109 85 43 -3 1572 35 24 2 5 41 2 103 3 7 +7110 85 44 3 1572 39 23 2 5 42 2 102 3 6 +7111 85 45 9 1572 39 21 2 5 42 2 100 3 4 +7112 85 46 15 1572 39 22 2 5 42 2 101 3 5 +7113 85 47 21 1572 39 24 2 5 42 2 103 3 7 +7114 85 48 27 1572 39 26 2 5 42 2 105 3 9 +7115 85 49 33 1572 43 23 2 5 43 2 102 3 6 +7116 85 50 39 1572 43 21 2 5 43 2 100 3 4 +7117 85 51 45 1572 43 22 2 5 43 2 101 3 5 +7118 85 52 51 1572 43 24 2 5 43 2 103 3 7 +7119 85 53 57 1572 43 26 2 5 43 2 105 3 9 +7120 85 54 63 1572 47 21 2 5 44 2 100 3 4 +7121 85 55 69 1572 47 19 2 5 44 2 98 3 2 +7122 85 56 75 1572 47 17 2 5 44 2 96 3 0 +7123 85 57 81 1572 47 20 2 5 44 2 99 3 3 +7124 85 58 87 1572 47 22 2 5 44 2 101 3 5 +7125 85 59 93 1572 51 23 2 5 45 2 102 3 6 +7126 85 60 99 1572 51 21 2 5 45 2 100 3 4 +7127 85 61 105 1572 51 20 2 5 45 2 99 3 3 +7128 85 62 111 1572 51 22 2 5 45 2 101 3 5 +7129 85 63 117 1572 51 24 2 5 45 2 103 3 7 +7130 85 64 123 1572 55 23 2 5 46 2 102 3 6 +7131 85 65 129 1572 55 21 2 5 46 2 100 3 4 +7132 85 66 135 1572 55 22 2 5 46 2 101 3 5 +7133 85 67 141 1572 55 24 2 5 46 2 103 3 7 +7134 85 68 147 1572 59 25 2 5 47 2 104 3 8 +7135 85 69 153 1572 59 23 2 5 47 2 102 3 6 +7136 85 70 159 1572 59 21 2 5 47 2 100 3 4 +7137 85 71 165 1572 59 22 2 5 47 2 101 3 5 +7138 85 72 171 1572 59 24 2 5 47 2 103 3 7 +7139 85 73 177 1572 63 23 2 5 48 2 102 3 6 +7140 85 74 183 1572 63 21 2 5 48 2 100 3 4 +7141 85 75 189 1572 63 19 2 5 48 2 98 3 2 +7142 85 76 195 1572 63 20 2 5 48 2 99 3 3 +7143 85 77 201 1572 63 22 2 5 48 2 101 3 5 +7144 85 78 207 1572 67 23 2 5 49 2 102 3 6 +7145 85 79 213 1572 67 21 2 5 49 2 100 3 4 +7146 85 80 219 1572 67 22 2 5 49 2 101 3 5 +7147 85 81 225 1572 67 24 2 5 49 2 103 3 7 +7148 85 82 231 1572 67 26 2 5 49 2 105 3 9 +7149 85 83 237 1572 71 23 2 5 50 2 102 3 6 +7150 85 84 243 1572 71 21 2 5 50 2 100 3 4 +7151 85 85 249 1572 71 19 2 5 50 2 98 3 2 +7152 85 86 255 1572 71 22 2 5 50 2 101 3 5 +7153 85 87 261 1572 71 24 2 5 50 2 103 3 7 +7154 86 0 -261 1582 3 27 2 5 33 2 106 3 10 +7155 86 1 -255 1582 3 25 2 5 33 2 104 3 8 +7156 86 2 -249 1582 3 26 2 5 33 2 105 3 9 +7157 86 3 -243 1582 3 28 2 5 33 2 107 3 11 +7158 86 4 -237 1582 3 30 2 5 33 2 109 3 13 +7159 86 5 -231 1582 7 29 2 5 34 2 108 3 12 +7160 86 6 -225 1582 7 27 2 5 34 2 106 3 10 +7161 86 7 -219 1582 7 26 2 5 34 2 105 3 9 +7162 86 8 -213 1582 7 28 2 5 34 2 107 3 11 +7163 86 9 -207 1582 11 27 2 5 35 2 106 3 10 +7164 86 10 -201 1582 11 25 2 5 35 2 104 3 8 +7165 86 11 -195 1582 11 23 2 5 35 2 102 3 6 +7166 86 12 -189 1582 11 26 2 5 35 2 105 3 9 +7167 86 13 -183 1582 11 28 2 5 35 2 107 3 11 +7168 86 14 -177 1582 15 29 2 5 36 2 108 3 12 +7169 86 15 -171 1582 15 27 2 5 36 2 106 3 10 +7170 86 16 -165 1582 15 25 2 5 36 2 104 3 8 +7171 86 17 -159 1582 15 28 2 5 36 2 107 3 11 +7172 86 18 -153 1582 15 30 2 5 36 2 109 3 13 +7173 86 19 -147 1582 19 29 2 5 37 2 108 3 12 +7174 86 20 -141 1582 19 27 2 5 37 2 106 3 10 +7175 86 21 -135 1582 19 25 2 5 37 2 104 3 8 +7176 86 22 -129 1582 19 26 2 5 37 2 105 3 9 +7177 86 23 -123 1582 19 28 2 5 37 2 107 3 11 +7178 86 24 -117 1582 23 27 2 5 38 2 106 3 10 +7179 86 25 -111 1582 23 25 2 5 38 2 104 3 8 +7180 86 26 -105 1582 23 26 2 5 38 2 105 3 9 +7181 86 27 -99 1582 23 28 2 5 38 2 107 3 11 +7182 86 28 -93 1582 23 30 2 5 38 2 109 3 13 +7183 86 29 -87 1582 27 25 2 5 39 2 104 3 8 +7184 86 30 -81 1582 27 23 2 5 39 2 102 3 6 +7185 86 31 -75 1582 27 24 2 5 39 2 103 3 7 +7186 86 32 -69 1582 27 26 2 5 39 2 105 3 9 +7187 86 33 -63 1582 27 28 2 5 39 2 107 3 11 +7188 86 34 -57 1582 31 29 2 5 40 2 108 3 12 +7189 86 35 -51 1582 31 27 2 5 40 2 106 3 10 +7190 86 36 -45 1582 31 26 2 5 40 2 105 3 9 +7191 86 37 -39 1582 31 28 2 5 40 2 107 3 11 +7192 86 38 -33 1582 31 30 2 5 40 2 109 3 13 +7193 86 39 -27 1582 35 29 2 5 41 2 108 3 12 +7194 86 40 -21 1582 35 27 2 5 41 2 106 3 10 +7195 86 41 -15 1582 35 26 2 5 41 2 105 3 9 +7196 86 42 -9 1582 35 28 2 5 41 2 107 3 11 +7197 86 43 -3 1582 35 30 2 5 41 2 109 3 13 +7198 86 44 3 1582 39 29 2 5 42 2 108 3 12 +7199 86 45 9 1582 39 27 2 5 42 2 106 3 10 +7200 86 46 15 1582 39 25 2 5 42 2 104 3 8 +7201 86 47 21 1582 39 28 2 5 42 2 107 3 11 +7202 86 48 27 1582 39 30 2 5 42 2 109 3 13 +7203 86 49 33 1582 43 29 2 5 43 2 108 3 12 +7204 86 50 39 1582 43 27 2 5 43 2 106 3 10 +7205 86 51 45 1582 43 25 2 5 43 2 104 3 8 +7206 86 52 51 1582 43 28 2 5 43 2 107 3 11 +7207 86 53 57 1582 43 30 2 5 43 2 109 3 13 +7208 86 54 63 1582 47 27 2 5 44 2 106 3 10 +7209 86 55 69 1582 47 25 2 5 44 2 104 3 8 +7210 86 56 75 1582 47 23 2 5 44 2 102 3 6 +7211 86 57 81 1582 47 24 2 5 44 2 103 3 7 +7212 86 58 87 1582 47 26 2 5 44 2 105 3 9 +7213 86 59 93 1582 51 29 2 5 45 2 108 3 12 +7214 86 60 99 1582 51 27 2 5 45 2 106 3 10 +7215 86 61 105 1582 51 25 2 5 45 2 104 3 8 +7216 86 62 111 1582 51 26 2 5 45 2 105 3 9 +7217 86 63 117 1582 51 28 2 5 45 2 107 3 11 +7218 86 64 123 1582 55 27 2 5 46 2 106 3 10 +7219 86 65 129 1582 55 25 2 5 46 2 104 3 8 +7220 86 66 135 1582 55 26 2 5 46 2 105 3 9 +7221 86 67 141 1582 55 28 2 5 46 2 107 3 11 +7222 86 68 147 1582 55 30 2 5 46 2 109 3 13 +7223 86 69 153 1582 59 29 2 5 47 2 108 3 12 +7224 86 70 159 1582 59 27 2 5 47 2 106 3 10 +7225 86 71 165 1582 59 26 2 5 47 2 105 3 9 +7226 86 72 171 1582 59 28 2 5 47 2 107 3 11 +7227 86 73 177 1582 59 30 2 5 47 2 109 3 13 +7228 86 74 183 1582 63 27 2 5 48 2 106 3 10 +7229 86 75 189 1582 63 25 2 5 48 2 104 3 8 +7230 86 76 195 1582 63 24 2 5 48 2 103 3 7 +7231 86 77 201 1582 63 26 2 5 48 2 105 3 9 +7232 86 78 207 1582 63 28 2 5 48 2 107 3 11 +7233 86 79 213 1582 67 27 2 5 49 2 106 3 10 +7234 86 80 219 1582 67 25 2 5 49 2 104 3 8 +7235 86 81 225 1582 67 28 2 5 49 2 107 3 11 +7236 86 82 231 1582 67 30 2 5 49 2 109 3 13 +7237 86 83 237 1582 71 29 2 5 50 2 108 3 12 +7238 86 84 243 1582 71 27 2 5 50 2 106 3 10 +7239 86 85 249 1582 71 25 2 5 50 2 104 3 8 +7240 86 86 255 1582 71 26 2 5 50 2 105 3 9 +7241 86 87 261 1582 71 28 2 5 50 2 107 3 11 +7242 87 0 -267 1592 3 33 2 5 33 2 112 3 16 +7243 87 1 -261 1592 3 31 2 5 33 2 110 3 14 +7244 87 2 -255 1592 3 29 2 5 33 2 108 3 12 +7245 87 3 -249 1592 3 32 2 5 33 2 111 3 15 +7246 87 4 -243 1592 3 34 2 5 33 2 113 3 17 +7247 87 5 -237 1592 7 33 2 5 34 2 112 3 16 +7248 87 6 -231 1592 7 31 2 5 34 2 110 3 14 +7249 87 7 -225 1592 7 30 2 5 34 2 109 3 13 +7250 87 8 -219 1592 7 32 2 5 34 2 111 3 15 +7251 87 9 -213 1592 7 34 2 5 34 2 113 3 17 +7252 87 10 -207 1592 11 31 2 5 35 2 110 3 14 +7253 87 11 -201 1592 11 29 2 5 35 2 108 3 12 +7254 87 12 -195 1592 11 30 2 5 35 2 109 3 13 +7255 87 13 -189 1592 11 32 2 5 35 2 111 3 15 +7256 87 14 -183 1592 11 34 2 5 35 2 113 3 17 +7257 87 15 -177 1592 15 33 2 5 36 2 112 3 16 +7258 87 16 -171 1592 15 31 2 5 36 2 110 3 14 +7259 87 17 -165 1592 15 32 2 5 36 2 111 3 15 +7260 87 18 -159 1592 15 34 2 5 36 2 113 3 17 +7261 87 19 -153 1592 15 36 2 5 36 2 115 3 19 +7262 87 20 -147 1592 19 33 2 5 37 2 112 3 16 +7263 87 21 -141 1592 19 31 2 5 37 2 110 3 14 +7264 87 22 -135 1592 19 30 2 5 37 2 109 3 13 +7265 87 23 -129 1592 19 32 2 5 37 2 111 3 15 +7266 87 24 -123 1592 19 34 2 5 37 2 113 3 17 +7267 87 25 -117 1592 23 33 2 5 38 2 112 3 16 +7268 87 26 -111 1592 23 31 2 5 38 2 110 3 14 +7269 87 27 -105 1592 23 29 2 5 38 2 108 3 12 +7270 87 28 -99 1592 23 32 2 5 38 2 111 3 15 +7271 87 29 -93 1592 23 34 2 5 38 2 113 3 17 +7272 87 30 -87 1592 27 29 2 5 39 2 108 3 12 +7273 87 31 -81 1592 27 27 2 5 39 2 106 3 10 +7274 87 32 -75 1592 27 30 2 5 39 2 109 3 13 +7275 87 33 -69 1592 27 32 2 5 39 2 111 3 15 +7276 87 34 -63 1592 27 34 2 5 39 2 113 3 17 +7277 87 35 -57 1592 31 35 2 5 40 2 114 3 18 +7278 87 36 -51 1592 31 33 2 5 40 2 112 3 16 +7279 87 37 -45 1592 31 31 2 5 40 2 110 3 14 +7280 87 38 -39 1592 31 32 2 5 40 2 111 3 15 +7281 87 39 -33 1592 31 34 2 5 40 2 113 3 17 +7282 87 40 -27 1592 35 35 2 5 41 2 114 3 18 +7283 87 41 -21 1592 35 33 2 5 41 2 112 3 16 +7284 87 42 -15 1592 35 31 2 5 41 2 110 3 14 +7285 87 43 -9 1592 35 32 2 5 41 2 111 3 15 +7286 87 44 -3 1592 35 34 2 5 41 2 113 3 17 +7287 87 45 3 1592 39 33 2 5 42 2 112 3 16 +7288 87 46 9 1592 39 31 2 5 42 2 110 3 14 +7289 87 47 15 1592 39 32 2 5 42 2 111 3 15 +7290 87 48 21 1592 39 34 2 5 42 2 113 3 17 +7291 87 49 27 1592 39 36 2 5 42 2 115 3 19 +7292 87 50 33 1592 43 33 2 5 43 2 112 3 16 +7293 87 51 39 1592 43 31 2 5 43 2 110 3 14 +7294 87 52 45 1592 43 32 2 5 43 2 111 3 15 +7295 87 53 51 1592 43 34 2 5 43 2 113 3 17 +7296 87 54 57 1592 43 36 2 5 43 2 115 3 19 +7297 87 55 63 1592 47 33 2 5 44 2 112 3 16 +7298 87 56 69 1592 47 31 2 5 44 2 110 3 14 +7299 87 57 75 1592 47 29 2 5 44 2 108 3 12 +7300 87 58 81 1592 47 28 2 5 44 2 107 3 11 +7301 87 59 87 1592 47 30 2 5 44 2 109 3 13 +7302 87 60 93 1592 51 33 2 5 45 2 112 3 16 +7303 87 61 99 1592 51 31 2 5 45 2 110 3 14 +7304 87 62 105 1592 51 30 2 5 45 2 109 3 13 +7305 87 63 111 1592 51 32 2 5 45 2 111 3 15 +7306 87 64 117 1592 51 34 2 5 45 2 113 3 17 +7307 87 65 123 1592 55 33 2 5 46 2 112 3 16 +7308 87 66 129 1592 55 31 2 5 46 2 110 3 14 +7309 87 67 135 1592 55 29 2 5 46 2 108 3 12 +7310 87 68 141 1592 55 32 2 5 46 2 111 3 15 +7311 87 69 147 1592 55 34 2 5 46 2 113 3 17 +7312 87 70 153 1592 59 35 2 5 47 2 114 3 18 +7313 87 71 159 1592 59 33 2 5 47 2 112 3 16 +7314 87 72 165 1592 59 31 2 5 47 2 110 3 14 +7315 87 73 171 1592 59 32 2 5 47 2 111 3 15 +7316 87 74 177 1592 59 34 2 5 47 2 113 3 17 +7317 87 75 183 1592 63 33 2 5 48 2 112 3 16 +7318 87 76 189 1592 63 31 2 5 48 2 110 3 14 +7319 87 77 195 1592 63 29 2 5 48 2 108 3 12 +7320 87 78 201 1592 63 30 2 5 48 2 109 3 13 +7321 87 79 207 1592 63 32 2 5 48 2 111 3 15 +7322 87 80 213 1592 67 33 2 5 49 2 112 3 16 +7323 87 81 219 1592 67 31 2 5 49 2 110 3 14 +7324 87 82 225 1592 67 29 2 5 49 2 108 3 12 +7325 87 83 231 1592 67 32 2 5 49 2 111 3 15 +7326 87 84 237 1592 67 34 2 5 49 2 113 3 17 +7327 87 85 243 1592 71 33 2 5 50 2 112 3 16 +7328 87 86 249 1592 71 31 2 5 50 2 110 3 14 +7329 87 87 255 1592 71 30 2 5 50 2 109 3 13 +7330 87 88 261 1592 71 32 2 5 50 2 111 3 15 +7331 87 89 267 1592 71 34 2 5 50 2 113 3 17 +7332 88 0 -267 1602 3 37 2 5 33 2 116 3 20 +7333 88 1 -261 1602 3 35 2 5 33 2 114 3 18 +7334 88 2 -255 1602 3 36 2 5 33 2 115 3 19 +7335 88 3 -249 1602 3 38 2 5 33 2 117 3 21 +7336 88 4 -243 1602 3 40 2 5 33 2 119 3 23 +7337 88 5 -237 1602 7 37 2 5 34 2 116 3 20 +7338 88 6 -231 1602 7 35 2 5 34 2 114 3 18 +7339 88 7 -225 1602 7 36 2 5 34 2 115 3 19 +7340 88 8 -219 1602 7 38 2 5 34 2 117 3 21 +7341 88 9 -213 1602 7 40 2 5 34 2 119 3 23 +7342 88 10 -207 1602 11 35 2 5 35 2 114 3 18 +7343 88 11 -201 1602 11 33 2 5 35 2 112 3 16 +7344 88 12 -195 1602 11 36 2 5 35 2 115 3 19 +7345 88 13 -189 1602 11 38 2 5 35 2 117 3 21 +7346 88 14 -183 1602 11 40 2 5 35 2 119 3 23 +7347 88 15 -177 1602 15 39 2 5 36 2 118 3 22 +7348 88 16 -171 1602 15 37 2 5 36 2 116 3 20 +7349 88 17 -165 1602 15 35 2 5 36 2 114 3 18 +7350 88 18 -159 1602 15 38 2 5 36 2 117 3 21 +7351 88 19 -153 1602 15 40 2 5 36 2 119 3 23 +7352 88 20 -147 1602 19 37 2 5 37 2 116 3 20 +7353 88 21 -141 1602 19 35 2 5 37 2 114 3 18 +7354 88 22 -135 1602 19 36 2 5 37 2 115 3 19 +7355 88 23 -129 1602 19 38 2 5 37 2 117 3 21 +7356 88 24 -123 1602 19 40 2 5 37 2 119 3 23 +7357 88 25 -117 1602 23 37 2 5 38 2 116 3 20 +7358 88 26 -111 1602 23 35 2 5 38 2 114 3 18 +7359 88 27 -105 1602 23 36 2 5 38 2 115 3 19 +7360 88 28 -99 1602 23 38 2 5 38 2 117 3 21 +7361 88 29 -93 1602 23 40 2 5 38 2 119 3 23 +7362 88 30 -87 1602 27 33 2 5 39 2 112 3 16 +7363 88 31 -81 1602 27 31 2 5 39 2 110 3 14 +7364 88 32 -75 1602 27 36 2 5 39 2 115 3 19 +7365 88 33 -69 1602 27 38 2 5 39 2 117 3 21 +7366 88 34 -63 1602 27 40 2 5 39 2 119 3 23 +7367 88 35 -57 1602 31 39 2 5 40 2 118 3 22 +7368 88 36 -51 1602 31 37 2 5 40 2 116 3 20 +7369 88 37 -45 1602 31 36 2 5 40 2 115 3 19 +7370 88 38 -39 1602 31 38 2 5 40 2 117 3 21 +7371 88 39 -33 1602 31 40 2 5 40 2 119 3 23 +7372 88 40 -27 1602 35 39 2 5 41 2 118 3 22 +7373 88 41 -21 1602 35 37 2 5 41 2 116 3 20 +7374 88 42 -15 1602 35 36 2 5 41 2 115 3 19 +7375 88 43 -9 1602 35 38 2 5 41 2 117 3 21 +7376 88 44 -3 1602 35 40 2 5 41 2 119 3 23 +7377 88 45 3 1602 39 39 2 5 42 2 118 3 22 +7378 88 46 9 1602 39 37 2 5 42 2 116 3 20 +7379 88 47 15 1602 39 35 2 5 42 2 114 3 18 +7380 88 48 21 1602 39 38 2 5 42 2 117 3 21 +7381 88 49 27 1602 39 40 2 5 42 2 119 3 23 +7382 88 50 33 1602 43 39 2 5 43 2 118 3 22 +7383 88 51 39 1602 43 37 2 5 43 2 116 3 20 +7384 88 52 45 1602 43 35 2 5 43 2 114 3 18 +7385 88 53 51 1602 43 38 2 5 43 2 117 3 21 +7386 88 54 57 1602 43 40 2 5 43 2 119 3 23 +7387 88 55 63 1602 47 39 2 5 44 2 118 3 22 +7388 88 56 69 1602 47 37 2 5 44 2 116 3 20 +7389 88 57 75 1602 47 35 2 5 44 2 114 3 18 +7390 88 58 81 1602 47 32 2 5 44 2 111 3 15 +7391 88 59 87 1602 47 34 2 5 44 2 113 3 17 +7392 88 60 93 1602 51 39 2 5 45 2 118 3 22 +7393 88 61 99 1602 51 37 2 5 45 2 116 3 20 +7394 88 62 105 1602 51 35 2 5 45 2 114 3 18 +7395 88 63 111 1602 51 36 2 5 45 2 115 3 19 +7396 88 64 117 1602 51 38 2 5 45 2 117 3 21 +7397 88 65 123 1602 55 39 2 5 46 2 118 3 22 +7398 88 66 129 1602 55 37 2 5 46 2 116 3 20 +7399 88 67 135 1602 55 35 2 5 46 2 114 3 18 +7400 88 68 141 1602 55 36 2 5 46 2 115 3 19 +7401 88 69 147 1602 55 38 2 5 46 2 117 3 21 +7402 88 70 153 1602 59 39 2 5 47 2 118 3 22 +7403 88 71 159 1602 59 37 2 5 47 2 116 3 20 +7404 88 72 165 1602 59 36 2 5 47 2 115 3 19 +7405 88 73 171 1602 59 38 2 5 47 2 117 3 21 +7406 88 74 177 1602 59 40 2 5 47 2 119 3 23 +7407 88 75 183 1602 63 39 2 5 48 2 118 3 22 +7408 88 76 189 1602 63 37 2 5 48 2 116 3 20 +7409 88 77 195 1602 63 35 2 5 48 2 114 3 18 +7410 88 78 201 1602 63 34 2 5 48 2 113 3 17 +7411 88 79 207 1602 63 36 2 5 48 2 115 3 19 +7412 88 80 213 1602 67 39 2 5 49 2 118 3 22 +7413 88 81 219 1602 67 37 2 5 49 2 116 3 20 +7414 88 82 225 1602 67 35 2 5 49 2 114 3 18 +7415 88 83 231 1602 67 36 2 5 49 2 115 3 19 +7416 88 84 237 1602 67 38 2 5 49 2 117 3 21 +7417 88 85 243 1602 71 39 2 5 50 2 118 3 22 +7418 88 86 249 1602 71 37 2 5 50 2 116 3 20 +7419 88 87 255 1602 71 35 2 5 50 2 114 3 18 +7420 88 88 261 1602 71 36 2 5 50 2 115 3 19 +7421 88 89 267 1602 71 38 2 5 50 2 117 3 21 +7422 89 0 -267 1612 3 39 2 5 33 2 118 3 22 +7423 89 1 -261 1612 4 3 2 5 33 3 122 3 26 +7424 89 2 -255 1612 4 1 2 5 33 3 120 3 24 +7425 89 3 -249 1612 4 2 2 5 33 3 121 3 25 +7426 89 4 -243 1612 4 4 2 5 33 3 123 3 27 +7427 89 5 -237 1612 7 39 2 5 34 2 118 3 22 +7428 89 6 -231 1612 8 3 2 5 34 3 122 3 26 +7429 89 7 -225 1612 8 1 2 5 34 3 120 3 24 +7430 89 8 -219 1612 8 2 2 5 34 3 121 3 25 +7431 89 9 -213 1612 8 4 2 5 34 3 123 3 27 +7432 89 10 -207 1612 11 39 2 5 35 2 118 3 22 +7433 89 11 -201 1612 11 37 2 5 35 2 116 3 20 +7434 89 12 -195 1612 12 1 2 5 35 3 120 3 24 +7435 89 13 -189 1612 12 2 2 5 35 3 121 3 25 +7436 89 14 -183 1612 12 4 2 5 35 3 123 3 27 +7437 89 15 -177 1612 16 3 2 5 36 3 122 3 26 +7438 89 16 -171 1612 16 1 2 5 36 3 120 3 24 +7439 89 17 -165 1612 16 2 2 5 36 3 121 3 25 +7440 89 18 -159 1612 16 4 2 5 36 3 123 3 27 +7441 89 19 -153 1612 16 6 2 5 36 3 125 3 29 +7442 89 20 -147 1612 19 39 2 5 37 2 118 3 22 +7443 89 21 -141 1612 20 3 2 5 37 3 122 3 26 +7444 89 22 -135 1612 20 1 2 5 37 3 120 3 24 +7445 89 23 -129 1612 20 2 2 5 37 3 121 3 25 +7446 89 24 -123 1612 20 4 2 5 37 3 123 3 27 +7447 89 25 -117 1612 23 39 2 5 38 2 118 3 22 +7448 89 26 -111 1612 24 3 2 5 38 3 122 3 26 +7449 89 27 -105 1612 24 1 2 5 38 3 120 3 24 +7450 89 28 -99 1612 24 2 2 5 38 3 121 3 25 +7451 89 29 -93 1612 24 4 2 5 38 3 123 3 27 +7452 89 30 -87 1612 27 39 2 5 39 2 118 3 22 +7453 89 31 -81 1612 27 37 2 5 39 2 116 3 20 +7454 89 32 -75 1612 27 35 2 5 39 2 114 3 18 +7455 89 33 -69 1612 28 2 2 5 39 3 121 3 25 +7456 89 34 -63 1612 28 4 2 5 39 3 123 3 27 +7457 89 35 -57 1612 32 5 2 5 40 3 124 3 28 +7458 89 36 -51 1612 32 3 2 5 40 3 122 3 26 +7459 89 37 -45 1612 32 1 2 5 40 3 120 3 24 +7460 89 38 -39 1612 32 2 2 5 40 3 121 3 25 +7461 89 39 -33 1612 32 4 2 5 40 3 123 3 27 +7462 89 40 -27 1612 36 5 2 5 41 3 124 3 28 +7463 89 41 -21 1612 36 3 2 5 41 3 122 3 26 +7464 89 42 -15 1612 36 1 2 5 41 3 120 3 24 +7465 89 43 -9 1612 36 2 2 5 41 3 121 3 25 +7466 89 44 -3 1612 36 4 2 5 41 3 123 3 27 +7467 89 45 3 1612 40 3 2 5 42 3 122 3 26 +7468 89 46 9 1612 40 1 2 5 42 3 120 3 24 +7469 89 47 15 1612 40 2 2 5 42 3 121 3 25 +7470 89 48 21 1612 40 4 2 5 42 3 123 3 27 +7471 89 49 27 1612 40 6 2 5 42 3 125 3 29 +7472 89 50 33 1612 44 3 2 5 43 3 122 3 26 +7473 89 51 39 1612 44 1 2 5 43 3 120 3 24 +7474 89 52 45 1612 44 2 2 5 43 3 121 3 25 +7475 89 53 51 1612 44 4 2 5 43 3 123 3 27 +7476 89 54 57 1612 44 6 2 5 43 3 125 3 29 +7477 89 55 63 1612 48 3 2 5 44 3 122 3 26 +7478 89 56 69 1612 48 1 2 5 44 3 120 3 24 +7479 89 57 75 1612 47 36 2 5 44 2 115 3 19 +7480 89 58 81 1612 47 38 2 5 44 2 117 3 21 +7481 89 59 87 1612 47 40 2 5 44 2 119 3 23 +7482 89 60 93 1612 52 3 2 5 45 3 122 3 26 +7483 89 61 99 1612 52 1 2 5 45 3 120 3 24 +7484 89 62 105 1612 52 2 2 5 45 3 121 3 25 +7485 89 63 111 1612 52 4 2 5 45 3 123 3 27 +7486 89 64 117 1612 51 40 2 5 45 2 119 3 23 +7487 89 65 123 1612 56 3 2 5 46 3 122 3 26 +7488 89 66 129 1612 56 1 2 5 46 3 120 3 24 +7489 89 67 135 1612 56 2 2 5 46 3 121 3 25 +7490 89 68 141 1612 56 4 2 5 46 3 123 3 27 +7491 89 69 147 1612 55 40 2 5 46 2 119 3 23 +7492 89 70 153 1612 60 5 2 5 47 3 124 3 28 +7493 89 71 159 1612 60 3 2 5 47 3 122 3 26 +7494 89 72 165 1612 60 1 2 5 47 3 120 3 24 +7495 89 73 171 1612 60 2 2 5 47 3 121 3 25 +7496 89 74 177 1612 60 4 2 5 47 3 123 3 27 +7497 89 75 183 1612 64 3 2 5 48 3 122 3 26 +7498 89 76 189 1612 64 1 2 5 48 3 120 3 24 +7499 89 77 195 1612 64 2 2 5 48 3 121 3 25 +7500 89 78 201 1612 63 38 2 5 48 2 117 3 21 +7501 89 79 207 1612 63 40 2 5 48 2 119 3 23 +7502 89 80 213 1612 68 3 2 5 49 3 122 3 26 +7503 89 81 219 1612 68 1 2 5 49 3 120 3 24 +7504 89 82 225 1612 68 2 2 5 49 3 121 3 25 +7505 89 83 231 1612 68 4 2 5 49 3 123 3 27 +7506 89 84 237 1612 67 40 2 5 49 2 119 3 23 +7507 89 85 243 1612 72 3 2 5 50 3 122 3 26 +7508 89 86 249 1612 72 1 2 5 50 3 120 3 24 +7509 89 87 255 1612 72 2 2 5 50 3 121 3 25 +7510 89 88 261 1612 72 4 2 5 50 3 123 3 27 +7511 89 89 267 1612 71 40 2 5 50 2 119 3 23 +7512 90 0 -267 1622 4 9 2 5 33 3 128 4 0 +7513 90 1 -261 1622 4 7 2 5 33 3 126 3 30 +7514 90 2 -255 1622 4 5 2 5 33 3 124 3 28 +7515 90 3 -249 1622 4 6 2 5 33 3 125 3 29 +7516 90 4 -243 1622 4 8 2 5 33 3 127 3 31 +7517 90 5 -237 1622 8 7 2 5 34 3 126 3 30 +7518 90 6 -231 1622 8 5 2 5 34 3 124 3 28 +7519 90 7 -225 1622 8 6 2 5 34 3 125 3 29 +7520 90 8 -219 1622 8 8 2 5 34 3 127 3 31 +7521 90 9 -213 1622 8 10 2 5 34 3 129 4 1 +7522 90 10 -207 1622 12 7 2 5 35 3 126 3 30 +7523 90 11 -201 1622 12 5 2 5 35 3 124 3 28 +7524 90 12 -195 1622 12 3 2 5 35 3 122 3 26 +7525 90 13 -189 1622 12 6 2 5 35 3 125 3 29 +7526 90 14 -183 1622 12 8 2 5 35 3 127 3 31 +7527 90 15 -177 1622 16 9 2 5 36 3 128 4 0 +7528 90 16 -171 1622 16 7 2 5 36 3 126 3 30 +7529 90 17 -165 1622 16 5 2 5 36 3 124 3 28 +7530 90 18 -159 1622 16 8 2 5 36 3 127 3 31 +7531 90 19 -153 1622 16 10 2 5 36 3 129 4 1 +7532 90 20 -147 1622 20 9 2 5 37 3 128 4 0 +7533 90 21 -141 1622 20 7 2 5 37 3 126 3 30 +7534 90 22 -135 1622 20 5 2 5 37 3 124 3 28 +7535 90 23 -129 1622 20 6 2 5 37 3 125 3 29 +7536 90 24 -123 1622 20 8 2 5 37 3 127 3 31 +7537 90 25 -117 1622 24 9 2 5 38 3 128 4 0 +7538 90 26 -111 1622 24 7 2 5 38 3 126 3 30 +7539 90 27 -105 1622 24 5 2 5 38 3 124 3 28 +7540 90 28 -99 1622 24 6 2 5 38 3 125 3 29 +7541 90 29 -93 1622 24 8 2 5 38 3 127 3 31 +7542 90 30 -87 1622 28 5 2 5 39 3 124 3 28 +7543 90 31 -81 1622 28 3 2 5 39 3 122 3 26 +7544 90 32 -75 1622 28 1 2 5 39 3 120 3 24 +7545 90 33 -69 1622 28 6 2 5 39 3 125 3 29 +7546 90 34 -63 1622 28 8 2 5 39 3 127 3 31 +7547 90 35 -57 1622 32 9 2 5 40 3 128 4 0 +7548 90 36 -51 1622 32 7 2 5 40 3 126 3 30 +7549 90 37 -45 1622 32 6 2 5 40 3 125 3 29 +7550 90 38 -39 1622 32 8 2 5 40 3 127 3 31 +7551 90 39 -33 1622 32 10 2 5 40 3 129 4 1 +7552 90 40 -27 1622 36 9 2 5 41 3 128 4 0 +7553 90 41 -21 1622 36 7 2 5 41 3 126 3 30 +7554 90 42 -15 1622 36 6 2 5 41 3 125 3 29 +7555 90 43 -9 1622 36 8 2 5 41 3 127 3 31 +7556 90 44 -3 1622 36 10 2 5 41 3 129 4 1 +7557 90 45 3 1622 40 9 2 5 42 3 128 4 0 +7558 90 46 9 1622 40 7 2 5 42 3 126 3 30 +7559 90 47 15 1622 40 5 2 5 42 3 124 3 28 +7560 90 48 21 1622 40 8 2 5 42 3 127 3 31 +7561 90 49 27 1622 40 10 2 5 42 3 129 4 1 +7562 90 50 33 1622 44 9 2 5 43 3 128 4 0 +7563 90 51 39 1622 44 7 2 5 43 3 126 3 30 +7564 90 52 45 1622 44 5 2 5 43 3 124 3 28 +7565 90 53 51 1622 44 8 2 5 43 3 127 3 31 +7566 90 54 57 1622 44 10 2 5 43 3 129 4 1 +7567 90 55 63 1622 48 7 2 5 44 3 126 3 30 +7568 90 56 69 1622 48 5 2 5 44 3 124 3 28 +7569 90 57 75 1622 48 2 2 5 44 3 121 3 25 +7570 90 58 81 1622 48 4 2 5 44 3 123 3 27 +7571 90 59 87 1622 48 6 2 5 44 3 125 3 29 +7572 90 60 93 1622 52 7 2 5 45 3 126 3 30 +7573 90 61 99 1622 52 5 2 5 45 3 124 3 28 +7574 90 62 105 1622 52 6 2 5 45 3 125 3 29 +7575 90 63 111 1622 52 8 2 5 45 3 127 3 31 +7576 90 64 117 1622 52 10 2 5 45 3 129 4 1 +7577 90 65 123 1622 56 7 2 5 46 3 126 3 30 +7578 90 66 129 1622 56 5 2 5 46 3 124 3 28 +7579 90 67 135 1622 56 6 2 5 46 3 125 3 29 +7580 90 68 141 1622 56 8 2 5 46 3 127 3 31 +7581 90 69 147 1622 56 10 2 5 46 3 129 4 1 +7582 90 70 153 1622 60 9 2 5 47 3 128 4 0 +7583 90 71 159 1622 60 7 2 5 47 3 126 3 30 +7584 90 72 165 1622 60 6 2 5 47 3 125 3 29 +7585 90 73 171 1622 60 8 2 5 47 3 127 3 31 +7586 90 74 177 1622 60 10 2 5 47 3 129 4 1 +7587 90 75 183 1622 64 7 2 5 48 3 126 3 30 +7588 90 76 189 1622 64 5 2 5 48 3 124 3 28 +7589 90 77 195 1622 64 4 2 5 48 3 123 3 27 +7590 90 78 201 1622 64 6 2 5 48 3 125 3 29 +7591 90 79 207 1622 64 8 2 5 48 3 127 3 31 +7592 90 80 213 1622 68 9 2 5 49 3 128 4 0 +7593 90 81 219 1622 68 7 2 5 49 3 126 3 30 +7594 90 82 225 1622 68 5 2 5 49 3 124 3 28 +7595 90 83 231 1622 68 6 2 5 49 3 125 3 29 +7596 90 84 237 1622 68 8 2 5 49 3 127 3 31 +7597 90 85 243 1622 72 7 2 5 50 3 126 3 30 +7598 90 86 249 1622 72 5 2 5 50 3 124 3 28 +7599 90 87 255 1622 72 6 2 5 50 3 125 3 29 +7600 90 88 261 1622 72 8 2 5 50 3 127 3 31 +7601 90 89 267 1622 72 10 2 5 50 3 129 4 1 +7602 91 0 -273 1632 4 13 2 5 33 3 132 4 4 +7603 91 1 -267 1632 4 11 2 5 33 3 130 4 2 +7604 91 2 -261 1632 4 10 2 5 33 3 129 4 1 +7605 91 3 -255 1632 4 12 2 5 33 3 131 4 3 +7606 91 4 -249 1632 4 14 2 5 33 3 133 4 5 +7607 91 5 -243 1632 8 13 2 5 34 3 132 4 4 +7608 91 6 -237 1632 8 11 2 5 34 3 130 4 2 +7609 91 7 -231 1632 8 9 2 5 34 3 128 4 0 +7610 91 8 -225 1632 8 12 2 5 34 3 131 4 3 +7611 91 9 -219 1632 8 14 2 5 34 3 133 4 5 +7612 91 10 -213 1632 12 13 2 5 35 3 132 4 4 +7613 91 11 -207 1632 12 11 2 5 35 3 130 4 2 +7614 91 12 -201 1632 12 9 2 5 35 3 128 4 0 +7615 91 13 -195 1632 12 10 2 5 35 3 129 4 1 +7616 91 14 -189 1632 12 12 2 5 35 3 131 4 3 +7617 91 15 -183 1632 12 14 2 5 35 3 133 4 5 +7618 91 16 -177 1632 16 13 2 5 36 3 132 4 4 +7619 91 17 -171 1632 16 11 2 5 36 3 130 4 2 +7620 91 18 -165 1632 16 12 2 5 36 3 131 4 3 +7621 91 19 -159 1632 16 14 2 5 36 3 133 4 5 +7622 91 20 -153 1632 16 16 2 5 36 3 135 4 7 +7623 91 21 -147 1632 20 13 2 5 37 3 132 4 4 +7624 91 22 -141 1632 20 11 2 5 37 3 130 4 2 +7625 91 23 -135 1632 20 10 2 5 37 3 129 4 1 +7626 91 24 -129 1632 20 12 2 5 37 3 131 4 3 +7627 91 25 -123 1632 20 14 2 5 37 3 133 4 5 +7628 91 26 -117 1632 24 13 2 5 38 3 132 4 4 +7629 91 27 -111 1632 24 11 2 5 38 3 130 4 2 +7630 91 28 -105 1632 24 10 2 5 38 3 129 4 1 +7631 91 29 -99 1632 24 12 2 5 38 3 131 4 3 +7632 91 30 -93 1632 24 14 2 5 38 3 133 4 5 +7633 91 31 -87 1632 28 11 2 5 39 3 130 4 2 +7634 91 32 -81 1632 28 9 2 5 39 3 128 4 0 +7635 91 33 -75 1632 28 7 2 5 39 3 126 3 30 +7636 91 34 -69 1632 28 10 2 5 39 3 129 4 1 +7637 91 35 -63 1632 28 12 2 5 39 3 131 4 3 +7638 91 36 -57 1632 32 15 2 5 40 3 134 4 6 +7639 91 37 -51 1632 32 13 2 5 40 3 132 4 4 +7640 91 38 -45 1632 32 11 2 5 40 3 130 4 2 +7641 91 39 -39 1632 32 12 2 5 40 3 131 4 3 +7642 91 40 -33 1632 32 14 2 5 40 3 133 4 5 +7643 91 41 -27 1632 36 15 2 5 41 3 134 4 6 +7644 91 42 -21 1632 36 13 2 5 41 3 132 4 4 +7645 91 43 -15 1632 36 11 2 5 41 3 130 4 2 +7646 91 44 -9 1632 36 12 2 5 41 3 131 4 3 +7647 91 45 -3 1632 36 14 2 5 41 3 133 4 5 +7648 91 46 3 1632 40 13 2 5 42 3 132 4 4 +7649 91 47 9 1632 40 11 2 5 42 3 130 4 2 +7650 91 48 15 1632 40 12 2 5 42 3 131 4 3 +7651 91 49 21 1632 40 14 2 5 42 3 133 4 5 +7652 91 50 27 1632 40 16 2 5 42 3 135 4 7 +7653 91 51 33 1632 44 13 2 5 43 3 132 4 4 +7654 91 52 39 1632 44 11 2 5 43 3 130 4 2 +7655 91 53 45 1632 44 12 2 5 43 3 131 4 3 +7656 91 54 51 1632 44 14 2 5 43 3 133 4 5 +7657 91 55 57 1632 44 16 2 5 43 3 135 4 7 +7658 91 56 63 1632 48 11 2 5 44 3 130 4 2 +7659 91 57 69 1632 48 9 2 5 44 3 128 4 0 +7660 91 58 75 1632 48 8 2 5 44 3 127 3 31 +7661 91 59 81 1632 48 10 2 5 44 3 129 4 1 +7662 91 60 87 1632 48 12 2 5 44 3 131 4 3 +7663 91 61 93 1632 52 13 2 5 45 3 132 4 4 +7664 91 62 99 1632 52 11 2 5 45 3 130 4 2 +7665 91 63 105 1632 52 9 2 5 45 3 128 4 0 +7666 91 64 111 1632 52 12 2 5 45 3 131 4 3 +7667 91 65 117 1632 52 14 2 5 45 3 133 4 5 +7668 91 66 123 1632 56 13 2 5 46 3 132 4 4 +7669 91 67 129 1632 56 11 2 5 46 3 130 4 2 +7670 91 68 135 1632 56 9 2 5 46 3 128 4 0 +7671 91 69 141 1632 56 12 2 5 46 3 131 4 3 +7672 91 70 147 1632 56 14 2 5 46 3 133 4 5 +7673 91 71 153 1632 60 15 2 5 47 3 134 4 6 +7674 91 72 159 1632 60 13 2 5 47 3 132 4 4 +7675 91 73 165 1632 60 11 2 5 47 3 130 4 2 +7676 91 74 171 1632 60 12 2 5 47 3 131 4 3 +7677 91 75 177 1632 60 14 2 5 47 3 133 4 5 +7678 91 76 183 1632 64 13 2 5 48 3 132 4 4 +7679 91 77 189 1632 64 11 2 5 48 3 130 4 2 +7680 91 78 195 1632 64 9 2 5 48 3 128 4 0 +7681 91 79 201 1632 64 10 2 5 48 3 129 4 1 +7682 91 80 207 1632 64 12 2 5 48 3 131 4 3 +7683 91 81 213 1632 64 14 2 5 48 3 133 4 5 +7684 91 82 219 1632 68 13 2 5 49 3 132 4 4 +7685 91 83 225 1632 68 11 2 5 49 3 130 4 2 +7686 91 84 231 1632 68 10 2 5 49 3 129 4 1 +7687 91 85 237 1632 68 12 2 5 49 3 131 4 3 +7688 91 86 243 1632 68 14 2 5 49 3 133 4 5 +7689 91 87 249 1632 72 13 2 5 50 3 132 4 4 +7690 91 88 255 1632 72 11 2 5 50 3 130 4 2 +7691 91 89 261 1632 72 9 2 5 50 3 128 4 0 +7692 91 90 267 1632 72 12 2 5 50 3 131 4 3 +7693 91 91 273 1632 72 14 2 5 50 3 133 4 5 +7694 92 0 -273 1642 4 19 2 5 33 3 138 4 10 +7695 92 1 -267 1642 4 17 2 5 33 3 136 4 8 +7696 92 2 -261 1642 4 15 2 5 33 3 134 4 6 +7697 92 3 -255 1642 4 16 2 5 33 3 135 4 7 +7698 92 4 -249 1642 4 18 2 5 33 3 137 4 9 +7699 92 5 -243 1642 8 17 2 5 34 3 136 4 8 +7700 92 6 -237 1642 8 15 2 5 34 3 134 4 6 +7701 92 7 -231 1642 8 16 2 5 34 3 135 4 7 +7702 92 8 -225 1642 8 18 2 5 34 3 137 4 9 +7703 92 9 -219 1642 8 20 2 5 34 3 139 4 11 +7704 92 10 -213 1642 12 19 2 5 35 3 138 4 10 +7705 92 11 -207 1642 12 17 2 5 35 3 136 4 8 +7706 92 12 -201 1642 12 15 2 5 35 3 134 4 6 +7707 92 13 -195 1642 12 16 2 5 35 3 135 4 7 +7708 92 14 -189 1642 12 18 2 5 35 3 137 4 9 +7709 92 15 -183 1642 16 19 2 5 36 3 138 4 10 +7710 92 16 -177 1642 16 17 2 5 36 3 136 4 8 +7711 92 17 -171 1642 16 15 2 5 36 3 134 4 6 +7712 92 18 -165 1642 16 18 2 5 36 3 137 4 9 +7713 92 19 -159 1642 16 20 2 5 36 3 139 4 11 +7714 92 20 -153 1642 20 19 2 5 37 3 138 4 10 +7715 92 21 -147 1642 20 17 2 5 37 3 136 4 8 +7716 92 22 -141 1642 20 15 2 5 37 3 134 4 6 +7717 92 23 -135 1642 20 16 2 5 37 3 135 4 7 +7718 92 24 -129 1642 20 18 2 5 37 3 137 4 9 +7719 92 25 -123 1642 20 20 2 5 37 3 139 4 11 +7720 92 26 -117 1642 24 19 2 5 38 3 138 4 10 +7721 92 27 -111 1642 24 17 2 5 38 3 136 4 8 +7722 92 28 -105 1642 24 15 2 5 38 3 134 4 6 +7723 92 29 -99 1642 24 16 2 5 38 3 135 4 7 +7724 92 30 -93 1642 24 18 2 5 38 3 137 4 9 +7725 92 31 -87 1642 28 17 2 5 39 3 136 4 8 +7726 92 32 -81 1642 28 15 2 5 39 3 134 4 6 +7727 92 33 -75 1642 28 13 2 5 39 3 132 4 4 +7728 92 34 -69 1642 28 14 2 5 39 3 133 4 5 +7729 92 35 -63 1642 28 16 2 5 39 3 135 4 7 +7730 92 36 -57 1642 32 19 2 5 40 3 138 4 10 +7731 92 37 -51 1642 32 17 2 5 40 3 136 4 8 +7732 92 38 -45 1642 32 16 2 5 40 3 135 4 7 +7733 92 39 -39 1642 32 18 2 5 40 3 137 4 9 +7734 92 40 -33 1642 32 20 2 5 40 3 139 4 11 +7735 92 41 -27 1642 36 19 2 5 41 3 138 4 10 +7736 92 42 -21 1642 36 17 2 5 41 3 136 4 8 +7737 92 43 -15 1642 36 16 2 5 41 3 135 4 7 +7738 92 44 -9 1642 36 18 2 5 41 3 137 4 9 +7739 92 45 -3 1642 36 20 2 5 41 3 139 4 11 +7740 92 46 3 1642 40 19 2 5 42 3 138 4 10 +7741 92 47 9 1642 40 17 2 5 42 3 136 4 8 +7742 92 48 15 1642 40 15 2 5 42 3 134 4 6 +7743 92 49 21 1642 40 18 2 5 42 3 137 4 9 +7744 92 50 27 1642 40 20 2 5 42 3 139 4 11 +7745 92 51 33 1642 44 19 2 5 43 3 138 4 10 +7746 92 52 39 1642 44 17 2 5 43 3 136 4 8 +7747 92 53 45 1642 44 15 2 5 43 3 134 4 6 +7748 92 54 51 1642 44 18 2 5 43 3 137 4 9 +7749 92 55 57 1642 44 20 2 5 43 3 139 4 11 +7750 92 56 63 1642 48 15 2 5 44 3 134 4 6 +7751 92 57 69 1642 48 13 2 5 44 3 132 4 4 +7752 92 58 75 1642 48 14 2 5 44 3 133 4 5 +7753 92 59 81 1642 48 16 2 5 44 3 135 4 7 +7754 92 60 87 1642 48 18 2 5 44 3 137 4 9 +7755 92 61 93 1642 52 17 2 5 45 3 136 4 8 +7756 92 62 99 1642 52 15 2 5 45 3 134 4 6 +7757 92 63 105 1642 52 16 2 5 45 3 135 4 7 +7758 92 64 111 1642 52 18 2 5 45 3 137 4 9 +7759 92 65 117 1642 52 20 2 5 45 3 139 4 11 +7760 92 66 123 1642 56 19 2 5 46 3 138 4 10 +7761 92 67 129 1642 56 17 2 5 46 3 136 4 8 +7762 92 68 135 1642 56 15 2 5 46 3 134 4 6 +7763 92 69 141 1642 56 16 2 5 46 3 135 4 7 +7764 92 70 147 1642 56 18 2 5 46 3 137 4 9 +7765 92 71 153 1642 56 20 2 5 46 3 139 4 11 +7766 92 72 159 1642 60 19 2 5 47 3 138 4 10 +7767 92 73 165 1642 60 17 2 5 47 3 136 4 8 +7768 92 74 171 1642 60 16 2 5 47 3 135 4 7 +7769 92 75 177 1642 60 18 2 5 47 3 137 4 9 +7770 92 76 183 1642 60 20 2 5 47 3 139 4 11 +7771 92 77 189 1642 64 17 2 5 48 3 136 4 8 +7772 92 78 195 1642 64 15 2 5 48 3 134 4 6 +7773 92 79 201 1642 64 16 2 5 48 3 135 4 7 +7774 92 80 207 1642 64 18 2 5 48 3 137 4 9 +7775 92 81 213 1642 64 20 2 5 48 3 139 4 11 +7776 92 82 219 1642 68 19 2 5 49 3 138 4 10 +7777 92 83 225 1642 68 17 2 5 49 3 136 4 8 +7778 92 84 231 1642 68 15 2 5 49 3 134 4 6 +7779 92 85 237 1642 68 16 2 5 49 3 135 4 7 +7780 92 86 243 1642 68 18 2 5 49 3 137 4 9 +7781 92 87 249 1642 72 17 2 5 50 3 136 4 8 +7782 92 88 255 1642 72 15 2 5 50 3 134 4 6 +7783 92 89 261 1642 72 16 2 5 50 3 135 4 7 +7784 92 90 267 1642 72 18 2 5 50 3 137 4 9 +7785 92 91 273 1642 72 20 2 5 50 3 139 4 11 +7786 93 0 -273 1652 4 23 2 5 33 3 142 4 14 +7787 93 1 -267 1652 4 21 2 5 33 3 140 4 12 +7788 93 2 -261 1652 4 20 2 5 33 3 139 4 11 +7789 93 3 -255 1652 4 22 2 5 33 3 141 4 13 +7790 93 4 -249 1652 4 24 2 5 33 3 143 4 15 +7791 93 5 -243 1652 8 23 2 5 34 3 142 4 14 +7792 93 6 -237 1652 8 21 2 5 34 3 140 4 12 +7793 93 7 -231 1652 8 19 2 5 34 3 138 4 10 +7794 93 8 -225 1652 8 22 2 5 34 3 141 4 13 +7795 93 9 -219 1652 8 24 2 5 34 3 143 4 15 +7796 93 10 -213 1652 12 23 2 5 35 3 142 4 14 +7797 93 11 -207 1652 12 21 2 5 35 3 140 4 12 +7798 93 12 -201 1652 12 20 2 5 35 3 139 4 11 +7799 93 13 -195 1652 12 22 2 5 35 3 141 4 13 +7800 93 14 -189 1652 12 24 2 5 35 3 143 4 15 +7801 93 15 -183 1652 16 23 2 5 36 3 142 4 14 +7802 93 16 -177 1652 16 21 2 5 36 3 140 4 12 +7803 93 17 -171 1652 16 22 2 5 36 3 141 4 13 +7804 93 18 -165 1652 16 24 2 5 36 3 143 4 15 +7805 93 19 -159 1652 16 26 2 5 36 3 145 4 17 +7806 93 20 -153 1652 20 25 2 5 37 3 144 4 16 +7807 93 21 -147 1652 20 23 2 5 37 3 142 4 14 +7808 93 22 -141 1652 20 21 2 5 37 3 140 4 12 +7809 93 23 -135 1652 20 22 2 5 37 3 141 4 13 +7810 93 24 -129 1652 20 24 2 5 37 3 143 4 15 +7811 93 25 -123 1652 24 25 2 5 38 3 144 4 16 +7812 93 26 -117 1652 24 23 2 5 38 3 142 4 14 +7813 93 27 -111 1652 24 21 2 5 38 3 140 4 12 +7814 93 28 -105 1652 24 20 2 5 38 3 139 4 11 +7815 93 29 -99 1652 24 22 2 5 38 3 141 4 13 +7816 93 30 -93 1652 24 24 2 5 38 3 143 4 15 +7817 93 31 -87 1652 28 21 2 5 39 3 140 4 12 +7818 93 32 -81 1652 28 19 2 5 39 3 138 4 10 +7819 93 33 -75 1652 28 18 2 5 39 3 137 4 9 +7820 93 34 -69 1652 28 20 2 5 39 3 139 4 11 +7821 93 35 -63 1652 28 22 2 5 39 3 141 4 13 +7822 93 36 -57 1652 32 25 2 5 40 3 144 4 16 +7823 93 37 -51 1652 32 23 2 5 40 3 142 4 14 +7824 93 38 -45 1652 32 21 2 5 40 3 140 4 12 +7825 93 39 -39 1652 32 22 2 5 40 3 141 4 13 +7826 93 40 -33 1652 32 24 2 5 40 3 143 4 15 +7827 93 41 -27 1652 36 25 2 5 41 3 144 4 16 +7828 93 42 -21 1652 36 23 2 5 41 3 142 4 14 +7829 93 43 -15 1652 36 21 2 5 41 3 140 4 12 +7830 93 44 -9 1652 36 22 2 5 41 3 141 4 13 +7831 93 45 -3 1652 36 24 2 5 41 3 143 4 15 +7832 93 46 3 1652 40 23 2 5 42 3 142 4 14 +7833 93 47 9 1652 40 21 2 5 42 3 140 4 12 +7834 93 48 15 1652 40 22 2 5 42 3 141 4 13 +7835 93 49 21 1652 40 24 2 5 42 3 143 4 15 +7836 93 50 27 1652 40 26 2 5 42 3 145 4 17 +7837 93 51 33 1652 44 23 2 5 43 3 142 4 14 +7838 93 52 39 1652 44 21 2 5 43 3 140 4 12 +7839 93 53 45 1652 44 22 2 5 43 3 141 4 13 +7840 93 54 51 1652 44 24 2 5 43 3 143 4 15 +7841 93 55 57 1652 44 26 2 5 43 3 145 4 17 +7842 93 56 63 1652 48 21 2 5 44 3 140 4 12 +7843 93 57 69 1652 48 19 2 5 44 3 138 4 10 +7844 93 58 75 1652 48 17 2 5 44 3 136 4 8 +7845 93 59 81 1652 48 20 2 5 44 3 139 4 11 +7846 93 60 87 1652 48 22 2 5 44 3 141 4 13 +7847 93 61 93 1652 52 23 2 5 45 3 142 4 14 +7848 93 62 99 1652 52 21 2 5 45 3 140 4 12 +7849 93 63 105 1652 52 19 2 5 45 3 138 4 10 +7850 93 64 111 1652 52 22 2 5 45 3 141 4 13 +7851 93 65 117 1652 52 24 2 5 45 3 143 4 15 +7852 93 66 123 1652 52 26 2 5 45 3 145 4 17 +7853 93 67 129 1652 56 23 2 5 46 3 142 4 14 +7854 93 68 135 1652 56 21 2 5 46 3 140 4 12 +7855 93 69 141 1652 56 22 2 5 46 3 141 4 13 +7856 93 70 147 1652 56 24 2 5 46 3 143 4 15 +7857 93 71 153 1652 56 26 2 5 46 3 145 4 17 +7858 93 72 159 1652 60 25 2 5 47 3 144 4 16 +7859 93 73 165 1652 60 23 2 5 47 3 142 4 14 +7860 93 74 171 1652 60 21 2 5 47 3 140 4 12 +7861 93 75 177 1652 60 22 2 5 47 3 141 4 13 +7862 93 76 183 1652 60 24 2 5 47 3 143 4 15 +7863 93 77 189 1652 64 23 2 5 48 3 142 4 14 +7864 93 78 195 1652 64 21 2 5 48 3 140 4 12 +7865 93 79 201 1652 64 19 2 5 48 3 138 4 10 +7866 93 80 207 1652 64 22 2 5 48 3 141 4 13 +7867 93 81 213 1652 64 24 2 5 48 3 143 4 15 +7868 93 82 219 1652 68 23 2 5 49 3 142 4 14 +7869 93 83 225 1652 68 21 2 5 49 3 140 4 12 +7870 93 84 231 1652 68 20 2 5 49 3 139 4 11 +7871 93 85 237 1652 68 22 2 5 49 3 141 4 13 +7872 93 86 243 1652 68 24 2 5 49 3 143 4 15 +7873 93 87 249 1652 72 23 2 5 50 3 142 4 14 +7874 93 88 255 1652 72 21 2 5 50 3 140 4 12 +7875 93 89 261 1652 72 19 2 5 50 3 138 4 10 +7876 93 90 267 1652 72 22 2 5 50 3 141 4 13 +7877 93 91 273 1652 72 24 2 5 50 3 143 4 15 +7878 94 0 -279 1662 4 29 2 5 33 3 148 4 20 +7879 94 1 -273 1662 4 27 2 5 33 3 146 4 18 +7880 94 2 -267 1662 4 25 2 5 33 3 144 4 16 +7881 94 3 -261 1662 4 26 2 5 33 3 145 4 17 +7882 94 4 -255 1662 4 28 2 5 33 3 147 4 19 +7883 94 5 -249 1662 4 30 2 5 33 3 149 4 21 +7884 94 6 -243 1662 8 27 2 5 34 3 146 4 18 +7885 94 7 -237 1662 8 25 2 5 34 3 144 4 16 +7886 94 8 -231 1662 8 26 2 5 34 3 145 4 17 +7887 94 9 -225 1662 8 28 2 5 34 3 147 4 19 +7888 94 10 -219 1662 8 30 2 5 34 3 149 4 21 +7889 94 11 -213 1662 12 29 2 5 35 3 148 4 20 +7890 94 12 -207 1662 12 27 2 5 35 3 146 4 18 +7891 94 13 -201 1662 12 25 2 5 35 3 144 4 16 +7892 94 14 -195 1662 12 26 2 5 35 3 145 4 17 +7893 94 15 -189 1662 12 28 2 5 35 3 147 4 19 +7894 94 16 -183 1662 16 29 2 5 36 3 148 4 20 +7895 94 17 -177 1662 16 27 2 5 36 3 146 4 18 +7896 94 18 -171 1662 16 25 2 5 36 3 144 4 16 +7897 94 19 -165 1662 16 28 2 5 36 3 147 4 19 +7898 94 20 -159 1662 16 30 2 5 36 3 149 4 21 +7899 94 21 -153 1662 20 29 2 5 37 3 148 4 20 +7900 94 22 -147 1662 20 27 2 5 37 3 146 4 18 +7901 94 23 -141 1662 20 26 2 5 37 3 145 4 17 +7902 94 24 -135 1662 20 28 2 5 37 3 147 4 19 +7903 94 25 -129 1662 20 30 2 5 37 3 149 4 21 +7904 94 26 -123 1662 24 29 2 5 38 3 148 4 20 +7905 94 27 -117 1662 24 27 2 5 38 3 146 4 18 +7906 94 28 -111 1662 24 26 2 5 38 3 145 4 17 +7907 94 29 -105 1662 24 28 2 5 38 3 147 4 19 +7908 94 30 -99 1662 24 30 2 5 38 3 149 4 21 +7909 94 31 -93 1662 28 27 2 5 39 3 146 4 18 +7910 94 32 -87 1662 28 25 2 5 39 3 144 4 16 +7911 94 33 -81 1662 28 23 2 5 39 3 142 4 14 +7912 94 34 -75 1662 28 24 2 5 39 3 143 4 15 +7913 94 35 -69 1662 28 26 2 5 39 3 145 4 17 +7914 94 36 -63 1662 28 28 2 5 39 3 147 4 19 +7915 94 37 -57 1662 32 29 2 5 40 3 148 4 20 +7916 94 38 -51 1662 32 27 2 5 40 3 146 4 18 +7917 94 39 -45 1662 32 26 2 5 40 3 145 4 17 +7918 94 40 -39 1662 32 28 2 5 40 3 147 4 19 +7919 94 41 -33 1662 32 30 2 5 40 3 149 4 21 +7920 94 42 -27 1662 36 29 2 5 41 3 148 4 20 +7921 94 43 -21 1662 36 27 2 5 41 3 146 4 18 +7922 94 44 -15 1662 36 26 2 5 41 3 145 4 17 +7923 94 45 -9 1662 36 28 2 5 41 3 147 4 19 +7924 94 46 -3 1662 36 30 2 5 41 3 149 4 21 +7925 94 47 3 1662 40 29 2 5 42 3 148 4 20 +7926 94 48 9 1662 40 27 2 5 42 3 146 4 18 +7927 94 49 15 1662 40 25 2 5 42 3 144 4 16 +7928 94 50 21 1662 40 28 2 5 42 3 147 4 19 +7929 94 51 27 1662 40 30 2 5 42 3 149 4 21 +7930 94 52 33 1662 44 29 2 5 43 3 148 4 20 +7931 94 53 39 1662 44 27 2 5 43 3 146 4 18 +7932 94 54 45 1662 44 25 2 5 43 3 144 4 16 +7933 94 55 51 1662 44 28 2 5 43 3 147 4 19 +7934 94 56 57 1662 44 30 2 5 43 3 149 4 21 +7935 94 57 63 1662 48 27 2 5 44 3 146 4 18 +7936 94 58 69 1662 48 25 2 5 44 3 144 4 16 +7937 94 59 75 1662 48 23 2 5 44 3 142 4 14 +7938 94 60 81 1662 48 24 2 5 44 3 143 4 15 +7939 94 61 87 1662 48 26 2 5 44 3 145 4 17 +7940 94 62 93 1662 48 28 2 5 44 3 147 4 19 +7941 94 63 99 1662 52 29 2 5 45 3 148 4 20 +7942 94 64 105 1662 52 27 2 5 45 3 146 4 18 +7943 94 65 111 1662 52 25 2 5 45 3 144 4 16 +7944 94 66 117 1662 52 28 2 5 45 3 147 4 19 +7945 94 67 123 1662 52 30 2 5 45 3 149 4 21 +7946 94 68 129 1662 56 29 2 5 46 3 148 4 20 +7947 94 69 135 1662 56 27 2 5 46 3 146 4 18 +7948 94 70 141 1662 56 25 2 5 46 3 144 4 16 +7949 94 71 147 1662 56 28 2 5 46 3 147 4 19 +7950 94 72 153 1662 56 30 2 5 46 3 149 4 21 +7951 94 73 159 1662 60 29 2 5 47 3 148 4 20 +7952 94 74 165 1662 60 27 2 5 47 3 146 4 18 +7953 94 75 171 1662 60 26 2 5 47 3 145 4 17 +7954 94 76 177 1662 60 28 2 5 47 3 147 4 19 +7955 94 77 183 1662 60 30 2 5 47 3 149 4 21 +7956 94 78 189 1662 64 27 2 5 48 3 146 4 18 +7957 94 79 195 1662 64 25 2 5 48 3 144 4 16 +7958 94 80 201 1662 64 26 2 5 48 3 145 4 17 +7959 94 81 207 1662 64 28 2 5 48 3 147 4 19 +7960 94 82 213 1662 64 30 2 5 48 3 149 4 21 +7961 94 83 219 1662 68 29 2 5 49 3 148 4 20 +7962 94 84 225 1662 68 27 2 5 49 3 146 4 18 +7963 94 85 231 1662 68 25 2 5 49 3 144 4 16 +7964 94 86 237 1662 68 26 2 5 49 3 145 4 17 +7965 94 87 243 1662 68 28 2 5 49 3 147 4 19 +7966 94 88 249 1662 72 29 2 5 50 3 148 4 20 +7967 94 89 255 1662 72 27 2 5 50 3 146 4 18 +7968 94 90 261 1662 72 25 2 5 50 3 144 4 16 +7969 94 91 267 1662 72 26 2 5 50 3 145 4 17 +7970 94 92 273 1662 72 28 2 5 50 3 147 4 19 +7971 94 93 279 1662 72 30 2 5 50 3 149 4 21 +7972 95 0 -279 1672 4 33 2 5 33 3 152 4 24 +7973 95 1 -273 1672 4 31 2 5 33 3 150 4 22 +7974 95 2 -267 1672 4 32 2 5 33 3 151 4 23 +7975 95 3 -261 1672 4 34 2 5 33 3 153 4 25 +7976 95 4 -255 1672 4 36 2 5 33 3 155 4 27 +7977 95 5 -249 1672 8 33 2 5 34 3 152 4 24 +7978 95 6 -243 1672 8 31 2 5 34 3 150 4 22 +7979 95 7 -237 1672 8 29 2 5 34 3 148 4 20 +7980 95 8 -231 1672 8 32 2 5 34 3 151 4 23 +7981 95 9 -225 1672 8 34 2 5 34 3 153 4 25 +7982 95 10 -219 1672 8 36 2 5 34 3 155 4 27 +7983 95 11 -213 1672 12 33 2 5 35 3 152 4 24 +7984 95 12 -207 1672 12 31 2 5 35 3 150 4 22 +7985 95 13 -201 1672 12 30 2 5 35 3 149 4 21 +7986 95 14 -195 1672 12 32 2 5 35 3 151 4 23 +7987 95 15 -189 1672 12 34 2 5 35 3 153 4 25 +7988 95 16 -183 1672 16 33 2 5 36 3 152 4 24 +7989 95 17 -177 1672 16 31 2 5 36 3 150 4 22 +7990 95 18 -171 1672 16 32 2 5 36 3 151 4 23 +7991 95 19 -165 1672 16 34 2 5 36 3 153 4 25 +7992 95 20 -159 1672 16 36 2 5 36 3 155 4 27 +7993 95 21 -153 1672 20 35 2 5 37 3 154 4 26 +7994 95 22 -147 1672 20 33 2 5 37 3 152 4 24 +7995 95 23 -141 1672 20 31 2 5 37 3 150 4 22 +7996 95 24 -135 1672 20 32 2 5 37 3 151 4 23 +7997 95 25 -129 1672 20 34 2 5 37 3 153 4 25 +7998 95 26 -123 1672 24 35 2 5 38 3 154 4 26 +7999 95 27 -117 1672 24 33 2 5 38 3 152 4 24 +8000 95 28 -111 1672 24 31 2 5 38 3 150 4 22 +8001 95 29 -105 1672 24 32 2 5 38 3 151 4 23 +8002 95 30 -99 1672 24 34 2 5 38 3 153 4 25 +8003 95 31 -93 1672 28 33 2 5 39 3 152 4 24 +8004 95 32 -87 1672 28 31 2 5 39 3 150 4 22 +8005 95 33 -81 1672 28 29 2 5 39 3 148 4 20 +8006 95 34 -75 1672 28 30 2 5 39 3 149 4 21 +8007 95 35 -69 1672 28 32 2 5 39 3 151 4 23 +8008 95 36 -63 1672 28 34 2 5 39 3 153 4 25 +8009 95 37 -57 1672 32 35 2 5 40 3 154 4 26 +8010 95 38 -51 1672 32 33 2 5 40 3 152 4 24 +8011 95 39 -45 1672 32 31 2 5 40 3 150 4 22 +8012 95 40 -39 1672 32 32 2 5 40 3 151 4 23 +8013 95 41 -33 1672 32 34 2 5 40 3 153 4 25 +8014 95 42 -27 1672 36 35 2 5 41 3 154 4 26 +8015 95 43 -21 1672 36 33 2 5 41 3 152 4 24 +8016 95 44 -15 1672 36 31 2 5 41 3 150 4 22 +8017 95 45 -9 1672 36 32 2 5 41 3 151 4 23 +8018 95 46 -3 1672 36 34 2 5 41 3 153 4 25 +8019 95 47 3 1672 40 33 2 5 42 3 152 4 24 +8020 95 48 9 1672 40 31 2 5 42 3 150 4 22 +8021 95 49 15 1672 40 32 2 5 42 3 151 4 23 +8022 95 50 21 1672 40 34 2 5 42 3 153 4 25 +8023 95 51 27 1672 40 36 2 5 42 3 155 4 27 +8024 95 52 33 1672 44 33 2 5 43 3 152 4 24 +8025 95 53 39 1672 44 31 2 5 43 3 150 4 22 +8026 95 54 45 1672 44 32 2 5 43 3 151 4 23 +8027 95 55 51 1672 44 34 2 5 43 3 153 4 25 +8028 95 56 57 1672 44 36 2 5 43 3 155 4 27 +8029 95 57 63 1672 48 33 2 5 44 3 152 4 24 +8030 95 58 69 1672 48 31 2 5 44 3 150 4 22 +8031 95 59 75 1672 48 29 2 5 44 3 148 4 20 +8032 95 60 81 1672 48 30 2 5 44 3 149 4 21 +8033 95 61 87 1672 48 32 2 5 44 3 151 4 23 +8034 95 62 93 1672 48 34 2 5 44 3 153 4 25 +8035 95 63 99 1672 52 33 2 5 45 3 152 4 24 +8036 95 64 105 1672 52 31 2 5 45 3 150 4 22 +8037 95 65 111 1672 52 32 2 5 45 3 151 4 23 +8038 95 66 117 1672 52 34 2 5 45 3 153 4 25 +8039 95 67 123 1672 52 36 2 5 45 3 155 4 27 +8040 95 68 129 1672 56 33 2 5 46 3 152 4 24 +8041 95 69 135 1672 56 31 2 5 46 3 150 4 22 +8042 95 70 141 1672 56 32 2 5 46 3 151 4 23 +8043 95 71 147 1672 56 34 2 5 46 3 153 4 25 +8044 95 72 153 1672 56 36 2 5 46 3 155 4 27 +8045 95 73 159 1672 60 35 2 5 47 3 154 4 26 +8046 95 74 165 1672 60 33 2 5 47 3 152 4 24 +8047 95 75 171 1672 60 31 2 5 47 3 150 4 22 +8048 95 76 177 1672 60 32 2 5 47 3 151 4 23 +8049 95 77 183 1672 60 34 2 5 47 3 153 4 25 +8050 95 78 189 1672 64 33 2 5 48 3 152 4 24 +8051 95 79 195 1672 64 31 2 5 48 3 150 4 22 +8052 95 80 201 1672 64 29 2 5 48 3 148 4 20 +8053 95 81 207 1672 64 32 2 5 48 3 151 4 23 +8054 95 82 213 1672 64 34 2 5 48 3 153 4 25 +8055 95 83 219 1672 68 35 2 5 49 3 154 4 26 +8056 95 84 225 1672 68 33 2 5 49 3 152 4 24 +8057 95 85 231 1672 68 31 2 5 49 3 150 4 22 +8058 95 86 237 1672 68 30 2 5 49 3 149 4 21 +8059 95 87 243 1672 68 32 2 5 49 3 151 4 23 +8060 95 88 249 1672 68 34 2 5 49 3 153 4 25 +8061 95 89 255 1672 72 35 2 5 50 3 154 4 26 +8062 95 90 261 1672 72 33 2 5 50 3 152 4 24 +8063 95 91 267 1672 72 31 2 5 50 3 150 4 22 +8064 95 92 273 1672 72 32 2 5 50 3 151 4 23 +8065 95 93 279 1672 72 34 2 5 50 3 153 4 25 +8066 96 0 -279 1682 4 39 2 5 33 3 158 4 30 +8067 96 1 -273 1682 4 37 2 5 33 3 156 4 28 +8068 96 2 -267 1682 4 35 2 5 33 3 154 4 26 +8069 96 3 -261 1682 4 38 2 5 33 3 157 4 29 +8070 96 4 -255 1682 4 40 2 5 33 3 159 4 31 +8071 96 5 -249 1682 8 39 2 5 34 3 158 4 30 +8072 96 6 -243 1682 8 37 2 5 34 3 156 4 28 +8073 96 7 -237 1682 8 35 2 5 34 3 154 4 26 +8074 96 8 -231 1682 8 38 2 5 34 3 157 4 29 +8075 96 9 -225 1682 8 40 2 5 34 3 159 4 31 +8076 96 10 -219 1682 12 39 2 5 35 3 158 4 30 +8077 96 11 -213 1682 12 37 2 5 35 3 156 4 28 +8078 96 12 -207 1682 12 35 2 5 35 3 154 4 26 +8079 96 13 -201 1682 12 36 2 5 35 3 155 4 27 +8080 96 14 -195 1682 12 38 2 5 35 3 157 4 29 +8081 96 15 -189 1682 12 40 2 5 35 3 159 4 31 +8082 96 16 -183 1682 16 39 2 5 36 3 158 4 30 +8083 96 17 -177 1682 16 37 2 5 36 3 156 4 28 +8084 96 18 -171 1682 16 35 2 5 36 3 154 4 26 +8085 96 19 -165 1682 16 38 2 5 36 3 157 4 29 +8086 96 20 -159 1682 16 40 2 5 36 3 159 4 31 +8087 96 21 -153 1682 20 39 2 5 37 3 158 4 30 +8088 96 22 -147 1682 20 37 2 5 37 3 156 4 28 +8089 96 23 -141 1682 20 36 2 5 37 3 155 4 27 +8090 96 24 -135 1682 20 38 2 5 37 3 157 4 29 +8091 96 25 -129 1682 20 40 2 5 37 3 159 4 31 +8092 96 26 -123 1682 24 39 2 5 38 3 158 4 30 +8093 96 27 -117 1682 24 37 2 5 38 3 156 4 28 +8094 96 28 -111 1682 24 36 2 5 38 3 155 4 27 +8095 96 29 -105 1682 24 38 2 5 38 3 157 4 29 +8096 96 30 -99 1682 24 40 2 5 38 3 159 4 31 +8097 96 31 -93 1682 28 39 2 5 39 3 158 4 30 +8098 96 32 -87 1682 28 37 2 5 39 3 156 4 28 +8099 96 33 -81 1682 28 35 2 5 39 3 154 4 26 +8100 96 34 -75 1682 28 36 2 5 39 3 155 4 27 +8101 96 35 -69 1682 28 38 2 5 39 3 157 4 29 +8102 96 36 -63 1682 28 40 2 5 39 3 159 4 31 +8103 96 37 -57 1682 32 39 2 5 40 3 158 4 30 +8104 96 38 -51 1682 32 37 2 5 40 3 156 4 28 +8105 96 39 -45 1682 32 36 2 5 40 3 155 4 27 +8106 96 40 -39 1682 32 38 2 5 40 3 157 4 29 +8107 96 41 -33 1682 32 40 2 5 40 3 159 4 31 +8108 96 42 -27 1682 36 39 2 5 41 3 158 4 30 +8109 96 43 -21 1682 36 37 2 5 41 3 156 4 28 +8110 96 44 -15 1682 36 36 2 5 41 3 155 4 27 +8111 96 45 -9 1682 36 38 2 5 41 3 157 4 29 +8112 96 46 -3 1682 36 40 2 5 41 3 159 4 31 +8113 96 47 3 1682 40 39 2 5 42 3 158 4 30 +8114 96 48 9 1682 40 37 2 5 42 3 156 4 28 +8115 96 49 15 1682 40 35 2 5 42 3 154 4 26 +8116 96 50 21 1682 40 38 2 5 42 3 157 4 29 +8117 96 51 27 1682 40 40 2 5 42 3 159 4 31 +8118 96 52 33 1682 44 39 2 5 43 3 158 4 30 +8119 96 53 39 1682 44 37 2 5 43 3 156 4 28 +8120 96 54 45 1682 44 35 2 5 43 3 154 4 26 +8121 96 55 51 1682 44 38 2 5 43 3 157 4 29 +8122 96 56 57 1682 44 40 2 5 43 3 159 4 31 +8123 96 57 63 1682 48 39 2 5 44 3 158 4 30 +8124 96 58 69 1682 48 37 2 5 44 3 156 4 28 +8125 96 59 75 1682 48 35 2 5 44 3 154 4 26 +8126 96 60 81 1682 48 36 2 5 44 3 155 4 27 +8127 96 61 87 1682 48 38 2 5 44 3 157 4 29 +8128 96 62 93 1682 48 40 2 5 44 3 159 4 31 +8129 96 63 99 1682 52 39 2 5 45 3 158 4 30 +8130 96 64 105 1682 52 37 2 5 45 3 156 4 28 +8131 96 65 111 1682 52 35 2 5 45 3 154 4 26 +8132 96 66 117 1682 52 38 2 5 45 3 157 4 29 +8133 96 67 123 1682 52 40 2 5 45 3 159 4 31 +8134 96 68 129 1682 56 39 2 5 46 3 158 4 30 +8135 96 69 135 1682 56 37 2 5 46 3 156 4 28 +8136 96 70 141 1682 56 35 2 5 46 3 154 4 26 +8137 96 71 147 1682 56 38 2 5 46 3 157 4 29 +8138 96 72 153 1682 56 40 2 5 46 3 159 4 31 +8139 96 73 159 1682 60 39 2 5 47 3 158 4 30 +8140 96 74 165 1682 60 37 2 5 47 3 156 4 28 +8141 96 75 171 1682 60 36 2 5 47 3 155 4 27 +8142 96 76 177 1682 60 38 2 5 47 3 157 4 29 +8143 96 77 183 1682 60 40 2 5 47 3 159 4 31 +8144 96 78 189 1682 64 39 2 5 48 3 158 4 30 +8145 96 79 195 1682 64 37 2 5 48 3 156 4 28 +8146 96 80 201 1682 64 35 2 5 48 3 154 4 26 +8147 96 81 207 1682 64 36 2 5 48 3 155 4 27 +8148 96 82 213 1682 64 38 2 5 48 3 157 4 29 +8149 96 83 219 1682 64 40 2 5 48 3 159 4 31 +8150 96 84 225 1682 68 39 2 5 49 3 158 4 30 +8151 96 85 231 1682 68 37 2 5 49 3 156 4 28 +8152 96 86 237 1682 68 36 2 5 49 3 155 4 27 +8153 96 87 243 1682 68 38 2 5 49 3 157 4 29 +8154 96 88 249 1682 68 40 2 5 49 3 159 4 31 +8155 96 89 255 1682 72 39 2 5 50 3 158 4 30 +8156 96 90 261 1682 72 37 2 5 50 3 156 4 28 +8157 96 91 267 1682 72 36 2 5 50 3 155 4 27 +8158 96 92 273 1682 72 38 2 5 50 3 157 4 29 +8159 96 93 279 1682 72 40 2 5 50 3 159 4 31 diff --git a/Detectors/TPC/base/files/TABLE-OROC2.txt b/Detectors/TPC/base/files/TABLE-OROC2.txt new file mode 100644 index 0000000000000..7009ac072c038 --- /dev/null +++ b/Detectors/TPC/base/files/TABLE-OROC2.txt @@ -0,0 +1,3200 @@ +8160 97 0 -282.72 1714 1 3 3 6 51 0 2 0 2 +8161 97 1 -276.64 1714 1 1 3 6 51 0 0 0 0 +8162 97 2 -270.56 1714 1 2 3 6 51 0 1 0 1 +8163 97 3 -264.48 1714 1 4 3 6 51 0 3 0 3 +8164 97 4 -258.4 1714 5 3 3 6 52 0 2 0 2 +8165 97 5 -252.32 1714 5 1 3 6 52 0 0 0 0 +8166 97 6 -246.24 1714 5 2 3 6 52 0 1 0 1 +8167 97 7 -240.16 1714 5 4 3 6 52 0 3 0 3 +8168 97 8 -234.08 1714 5 6 3 6 52 0 5 0 5 +8169 97 9 -228 1714 9 5 3 6 53 0 4 0 4 +8170 97 10 -221.92 1714 9 3 3 6 53 0 2 0 2 +8171 97 11 -215.84 1714 9 1 3 6 53 0 0 0 0 +8172 97 12 -209.76 1714 9 2 3 6 53 0 1 0 1 +8173 97 13 -203.68 1714 9 4 3 6 53 0 3 0 3 +8174 97 14 -197.6 1714 13 3 3 6 54 0 2 0 2 +8175 97 15 -191.52 1714 13 1 3 6 54 0 0 0 0 +8176 97 16 -185.44 1714 13 2 3 6 54 0 1 0 1 +8177 97 17 -179.36 1714 13 4 3 6 54 0 3 0 3 +8178 97 18 -173.28 1714 13 6 3 6 54 0 5 0 5 +8179 97 19 -167.2 1714 17 3 3 6 55 0 2 0 2 +8180 97 20 -161.12 1714 17 1 3 6 55 0 0 0 0 +8181 97 21 -155.04 1714 17 2 3 6 55 0 1 0 1 +8182 97 22 -148.96 1714 17 4 3 6 55 0 3 0 3 +8183 97 23 -142.88 1714 21 5 3 6 56 0 4 0 4 +8184 97 24 -136.8 1714 21 3 3 6 56 0 2 0 2 +8185 97 25 -130.72 1714 21 1 3 6 56 0 0 0 0 +8186 97 26 -124.64 1714 21 2 3 6 56 0 1 0 1 +8187 97 27 -118.56 1714 21 4 3 6 56 0 3 0 3 +8188 97 28 -112.48 1714 25 3 3 6 57 0 2 0 2 +8189 97 29 -106.4 1714 25 1 3 6 57 0 0 0 0 +8190 97 30 -100.32 1714 25 2 3 6 57 0 1 0 1 +8191 97 31 -94.24 1714 25 4 3 6 57 0 3 0 3 +8192 97 32 -88.16 1714 25 6 3 6 57 0 5 0 5 +8193 97 33 -82.08 1714 29 3 3 6 58 0 2 0 2 +8194 97 34 -76 1714 29 1 3 6 58 0 0 0 0 +8195 97 35 -69.92 1714 29 2 3 6 58 0 1 0 1 +8196 97 36 -63.84 1714 29 4 3 6 58 0 3 0 3 +8197 97 37 -57.76 1714 33 5 3 6 59 0 4 0 4 +8198 97 38 -51.68 1714 33 3 3 6 59 0 2 0 2 +8199 97 39 -45.6 1714 33 1 3 6 59 0 0 0 0 +8200 97 40 -39.52 1714 33 2 3 6 59 0 1 0 1 +8201 97 41 -33.44 1714 33 4 3 6 59 0 3 0 3 +8202 97 42 -27.36 1714 37 5 3 6 60 0 4 0 4 +8203 97 43 -21.28 1714 37 3 3 6 60 0 2 0 2 +8204 97 44 -15.2 1714 37 1 3 6 60 0 0 0 0 +8205 97 45 -9.12 1714 37 2 3 6 60 0 1 0 1 +8206 97 46 -3.04 1714 37 4 3 6 60 0 3 0 3 +8207 97 47 3.04 1714 41 3 3 6 61 0 2 0 2 +8208 97 48 9.12 1714 41 1 3 6 61 0 0 0 0 +8209 97 49 15.2 1714 41 2 3 6 61 0 1 0 1 +8210 97 50 21.28 1714 41 4 3 6 61 0 3 0 3 +8211 97 51 27.36 1714 41 6 3 6 61 0 5 0 5 +8212 97 52 33.44 1714 45 3 3 6 62 0 2 0 2 +8213 97 53 39.52 1714 45 1 3 6 62 0 0 0 0 +8214 97 54 45.6 1714 45 2 3 6 62 0 1 0 1 +8215 97 55 51.68 1714 45 4 3 6 62 0 3 0 3 +8216 97 56 57.76 1714 45 6 3 6 62 0 5 0 5 +8217 97 57 63.84 1714 49 3 3 6 63 0 2 0 2 +8218 97 58 69.92 1714 49 1 3 6 63 0 0 0 0 +8219 97 59 76 1714 49 2 3 6 63 0 1 0 1 +8220 97 60 82.08 1714 49 4 3 6 63 0 3 0 3 +8221 97 61 88.16 1714 53 5 3 6 64 0 4 0 4 +8222 97 62 94.24 1714 53 3 3 6 64 0 2 0 2 +8223 97 63 100.32 1714 53 1 3 6 64 0 0 0 0 +8224 97 64 106.4 1714 53 2 3 6 64 0 1 0 1 +8225 97 65 112.48 1714 53 4 3 6 64 0 3 0 3 +8226 97 66 118.56 1714 57 3 3 6 65 0 2 0 2 +8227 97 67 124.64 1714 57 1 3 6 65 0 0 0 0 +8228 97 68 130.72 1714 57 2 3 6 65 0 1 0 1 +8229 97 69 136.8 1714 57 4 3 6 65 0 3 0 3 +8230 97 70 142.88 1714 57 6 3 6 65 0 5 0 5 +8231 97 71 148.96 1714 61 3 3 6 66 0 2 0 2 +8232 97 72 155.04 1714 61 1 3 6 66 0 0 0 0 +8233 97 73 161.12 1714 61 2 3 6 66 0 1 0 1 +8234 97 74 167.2 1714 61 4 3 6 66 0 3 0 3 +8235 97 75 173.28 1714 65 5 3 6 67 0 4 0 4 +8236 97 76 179.36 1714 65 3 3 6 67 0 2 0 2 +8237 97 77 185.44 1714 65 1 3 6 67 0 0 0 0 +8238 97 78 191.52 1714 65 2 3 6 67 0 1 0 1 +8239 97 79 197.6 1714 65 4 3 6 67 0 3 0 3 +8240 97 80 203.68 1714 69 3 3 6 68 0 2 0 2 +8241 97 81 209.76 1714 69 1 3 6 68 0 0 0 0 +8242 97 82 215.84 1714 69 2 3 6 68 0 1 0 1 +8243 97 83 221.92 1714 69 4 3 6 68 0 3 0 3 +8244 97 84 228 1714 69 6 3 6 68 0 5 0 5 +8245 97 85 234.08 1714 73 5 3 6 69 0 4 0 4 +8246 97 86 240.16 1714 73 3 3 6 69 0 2 0 2 +8247 97 87 246.24 1714 73 1 3 6 69 0 0 0 0 +8248 97 88 252.32 1714 73 2 3 6 69 0 1 0 1 +8249 97 89 258.4 1714 73 4 3 6 69 0 3 0 3 +8250 97 90 264.48 1714 77 3 3 6 70 0 2 0 2 +8251 97 91 270.56 1714 77 1 3 6 70 0 0 0 0 +8252 97 92 276.64 1714 77 2 3 6 70 0 1 0 1 +8253 97 93 282.72 1714 77 4 3 6 70 0 3 0 3 +8254 98 0 -288.8 1726 1 7 3 6 51 0 6 0 6 +8255 98 1 -282.72 1726 1 5 3 6 51 0 4 0 4 +8256 98 2 -276.64 1726 1 6 3 6 51 0 5 0 5 +8257 98 3 -270.56 1726 1 8 3 6 51 0 7 0 7 +8258 98 4 -264.48 1726 1 10 3 6 51 0 9 0 9 +8259 98 5 -258.4 1726 5 9 3 6 52 0 8 0 8 +8260 98 6 -252.32 1726 5 7 3 6 52 0 6 0 6 +8261 98 7 -246.24 1726 5 5 3 6 52 0 4 0 4 +8262 98 8 -240.16 1726 5 8 3 6 52 0 7 0 7 +8263 98 9 -234.08 1726 5 10 3 6 52 0 9 0 9 +8264 98 10 -228 1726 9 9 3 6 53 0 8 0 8 +8265 98 11 -221.92 1726 9 7 3 6 53 0 6 0 6 +8266 98 12 -215.84 1726 9 6 3 6 53 0 5 0 5 +8267 98 13 -209.76 1726 9 8 3 6 53 0 7 0 7 +8268 98 14 -203.68 1726 9 10 3 6 53 0 9 0 9 +8269 98 15 -197.6 1726 13 7 3 6 54 0 6 0 6 +8270 98 16 -191.52 1726 13 5 3 6 54 0 4 0 4 +8271 98 17 -185.44 1726 13 8 3 6 54 0 7 0 7 +8272 98 18 -179.36 1726 13 10 3 6 54 0 9 0 9 +8273 98 19 -173.28 1726 17 9 3 6 55 0 8 0 8 +8274 98 20 -167.2 1726 17 7 3 6 55 0 6 0 6 +8275 98 21 -161.12 1726 17 5 3 6 55 0 4 0 4 +8276 98 22 -155.04 1726 17 6 3 6 55 0 5 0 5 +8277 98 23 -148.96 1726 17 8 3 6 55 0 7 0 7 +8278 98 24 -142.88 1726 21 9 3 6 56 0 8 0 8 +8279 98 25 -136.8 1726 21 7 3 6 56 0 6 0 6 +8280 98 26 -130.72 1726 21 6 3 6 56 0 5 0 5 +8281 98 27 -124.64 1726 21 8 3 6 56 0 7 0 7 +8282 98 28 -118.56 1726 21 10 3 6 56 0 9 0 9 +8283 98 29 -112.48 1726 25 9 3 6 57 0 8 0 8 +8284 98 30 -106.4 1726 25 7 3 6 57 0 6 0 6 +8285 98 31 -100.32 1726 25 5 3 6 57 0 4 0 4 +8286 98 32 -94.24 1726 25 8 3 6 57 0 7 0 7 +8287 98 33 -88.16 1726 25 10 3 6 57 0 9 0 9 +8288 98 34 -82.08 1726 29 7 3 6 58 0 6 0 6 +8289 98 35 -76 1726 29 5 3 6 58 0 4 0 4 +8290 98 36 -69.92 1726 29 6 3 6 58 0 5 0 5 +8291 98 37 -63.84 1726 29 8 3 6 58 0 7 0 7 +8292 98 38 -57.76 1726 33 9 3 6 59 0 8 0 8 +8293 98 39 -51.68 1726 33 7 3 6 59 0 6 0 6 +8294 98 40 -45.6 1726 33 6 3 6 59 0 5 0 5 +8295 98 41 -39.52 1726 33 8 3 6 59 0 7 0 7 +8296 98 42 -33.44 1726 33 10 3 6 59 0 9 0 9 +8297 98 43 -27.36 1726 37 9 3 6 60 0 8 0 8 +8298 98 44 -21.28 1726 37 7 3 6 60 0 6 0 6 +8299 98 45 -15.2 1726 37 6 3 6 60 0 5 0 5 +8300 98 46 -9.12 1726 37 8 3 6 60 0 7 0 7 +8301 98 47 -3.04 1726 37 10 3 6 60 0 9 0 9 +8302 98 48 3.04 1726 41 9 3 6 61 0 8 0 8 +8303 98 49 9.12 1726 41 7 3 6 61 0 6 0 6 +8304 98 50 15.2 1726 41 5 3 6 61 0 4 0 4 +8305 98 51 21.28 1726 41 8 3 6 61 0 7 0 7 +8306 98 52 27.36 1726 41 10 3 6 61 0 9 0 9 +8307 98 53 33.44 1726 45 9 3 6 62 0 8 0 8 +8308 98 54 39.52 1726 45 7 3 6 62 0 6 0 6 +8309 98 55 45.6 1726 45 5 3 6 62 0 4 0 4 +8310 98 56 51.68 1726 45 8 3 6 62 0 7 0 7 +8311 98 57 57.76 1726 45 10 3 6 62 0 9 0 9 +8312 98 58 63.84 1726 49 7 3 6 63 0 6 0 6 +8313 98 59 69.92 1726 49 5 3 6 63 0 4 0 4 +8314 98 60 76 1726 49 6 3 6 63 0 5 0 5 +8315 98 61 82.08 1726 49 8 3 6 63 0 7 0 7 +8316 98 62 88.16 1726 53 9 3 6 64 0 8 0 8 +8317 98 63 94.24 1726 53 7 3 6 64 0 6 0 6 +8318 98 64 100.32 1726 53 6 3 6 64 0 5 0 5 +8319 98 65 106.4 1726 53 8 3 6 64 0 7 0 7 +8320 98 66 112.48 1726 53 10 3 6 64 0 9 0 9 +8321 98 67 118.56 1726 57 9 3 6 65 0 8 0 8 +8322 98 68 124.64 1726 57 7 3 6 65 0 6 0 6 +8323 98 69 130.72 1726 57 5 3 6 65 0 4 0 4 +8324 98 70 136.8 1726 57 8 3 6 65 0 7 0 7 +8325 98 71 142.88 1726 57 10 3 6 65 0 9 0 9 +8326 98 72 148.96 1726 61 7 3 6 66 0 6 0 6 +8327 98 73 155.04 1726 61 5 3 6 66 0 4 0 4 +8328 98 74 161.12 1726 61 6 3 6 66 0 5 0 5 +8329 98 75 167.2 1726 61 8 3 6 66 0 7 0 7 +8330 98 76 173.28 1726 61 10 3 6 66 0 9 0 9 +8331 98 77 179.36 1726 65 9 3 6 67 0 8 0 8 +8332 98 78 185.44 1726 65 7 3 6 67 0 6 0 6 +8333 98 79 191.52 1726 65 6 3 6 67 0 5 0 5 +8334 98 80 197.6 1726 65 8 3 6 67 0 7 0 7 +8335 98 81 203.68 1726 69 9 3 6 68 0 8 0 8 +8336 98 82 209.76 1726 69 7 3 6 68 0 6 0 6 +8337 98 83 215.84 1726 69 5 3 6 68 0 4 0 4 +8338 98 84 221.92 1726 69 8 3 6 68 0 7 0 7 +8339 98 85 228 1726 69 10 3 6 68 0 9 0 9 +8340 98 86 234.08 1726 73 9 3 6 69 0 8 0 8 +8341 98 87 240.16 1726 73 7 3 6 69 0 6 0 6 +8342 98 88 246.24 1726 73 6 3 6 69 0 5 0 5 +8343 98 89 252.32 1726 73 8 3 6 69 0 7 0 7 +8344 98 90 258.4 1726 73 10 3 6 69 0 9 0 9 +8345 98 91 264.48 1726 77 9 3 6 70 0 8 0 8 +8346 98 92 270.56 1726 77 7 3 6 70 0 6 0 6 +8347 98 93 276.64 1726 77 5 3 6 70 0 4 0 4 +8348 98 94 282.72 1726 77 6 3 6 70 0 5 0 5 +8349 98 95 288.8 1726 77 8 3 6 70 0 7 0 7 +8350 99 0 -288.8 1738 1 13 3 6 51 0 12 0 12 +8351 99 1 -282.72 1738 1 11 3 6 51 0 10 0 10 +8352 99 2 -276.64 1738 1 9 3 6 51 0 8 0 8 +8353 99 3 -270.56 1738 1 12 3 6 51 0 11 0 11 +8354 99 4 -264.48 1738 1 14 3 6 51 0 13 0 13 +8355 99 5 -258.4 1738 5 13 3 6 52 0 12 0 12 +8356 99 6 -252.32 1738 5 11 3 6 52 0 10 0 10 +8357 99 7 -246.24 1738 5 12 3 6 52 0 11 0 11 +8358 99 8 -240.16 1738 5 14 3 6 52 0 13 0 13 +8359 99 9 -234.08 1738 5 16 3 6 52 0 15 0 15 +8360 99 10 -228 1738 9 13 3 6 53 0 12 0 12 +8361 99 11 -221.92 1738 9 11 3 6 53 0 10 0 10 +8362 99 12 -215.84 1738 9 12 3 6 53 0 11 0 11 +8363 99 13 -209.76 1738 9 14 3 6 53 0 13 0 13 +8364 99 14 -203.68 1738 13 13 3 6 54 0 12 0 12 +8365 99 15 -197.6 1738 13 11 3 6 54 0 10 0 10 +8366 99 16 -191.52 1738 13 9 3 6 54 0 8 0 8 +8367 99 17 -185.44 1738 13 12 3 6 54 0 11 0 11 +8368 99 18 -179.36 1738 13 14 3 6 54 0 13 0 13 +8369 99 19 -173.28 1738 17 13 3 6 55 0 12 0 12 +8370 99 20 -167.2 1738 17 11 3 6 55 0 10 0 10 +8371 99 21 -161.12 1738 17 10 3 6 55 0 9 0 9 +8372 99 22 -155.04 1738 17 12 3 6 55 0 11 0 11 +8373 99 23 -148.96 1738 17 14 3 6 55 0 13 0 13 +8374 99 24 -142.88 1738 21 15 3 6 56 0 14 0 14 +8375 99 25 -136.8 1738 21 13 3 6 56 0 12 0 12 +8376 99 26 -130.72 1738 21 11 3 6 56 0 10 0 10 +8377 99 27 -124.64 1738 21 12 3 6 56 0 11 0 11 +8378 99 28 -118.56 1738 21 14 3 6 56 0 13 0 13 +8379 99 29 -112.48 1738 25 13 3 6 57 0 12 0 12 +8380 99 30 -106.4 1738 25 11 3 6 57 0 10 0 10 +8381 99 31 -100.32 1738 25 12 3 6 57 0 11 0 11 +8382 99 32 -94.24 1738 25 14 3 6 57 0 13 0 13 +8383 99 33 -88.16 1738 25 16 3 6 57 0 15 0 15 +8384 99 34 -82.08 1738 29 11 3 6 58 0 10 0 10 +8385 99 35 -76 1738 29 9 3 6 58 0 8 0 8 +8386 99 36 -69.92 1738 29 10 3 6 58 0 9 0 9 +8387 99 37 -63.84 1738 29 12 3 6 58 0 11 0 11 +8388 99 38 -57.76 1738 33 15 3 6 59 0 14 0 14 +8389 99 39 -51.68 1738 33 13 3 6 59 0 12 0 12 +8390 99 40 -45.6 1738 33 11 3 6 59 0 10 0 10 +8391 99 41 -39.52 1738 33 12 3 6 59 0 11 0 11 +8392 99 42 -33.44 1738 33 14 3 6 59 0 13 0 13 +8393 99 43 -27.36 1738 37 15 3 6 60 0 14 0 14 +8394 99 44 -21.28 1738 37 13 3 6 60 0 12 0 12 +8395 99 45 -15.2 1738 37 11 3 6 60 0 10 0 10 +8396 99 46 -9.12 1738 37 12 3 6 60 0 11 0 11 +8397 99 47 -3.04 1738 37 14 3 6 60 0 13 0 13 +8398 99 48 3.04 1738 41 13 3 6 61 0 12 0 12 +8399 99 49 9.12 1738 41 11 3 6 61 0 10 0 10 +8400 99 50 15.2 1738 41 12 3 6 61 0 11 0 11 +8401 99 51 21.28 1738 41 14 3 6 61 0 13 0 13 +8402 99 52 27.36 1738 41 16 3 6 61 0 15 0 15 +8403 99 53 33.44 1738 45 13 3 6 62 0 12 0 12 +8404 99 54 39.52 1738 45 11 3 6 62 0 10 0 10 +8405 99 55 45.6 1738 45 12 3 6 62 0 11 0 11 +8406 99 56 51.68 1738 45 14 3 6 62 0 13 0 13 +8407 99 57 57.76 1738 45 16 3 6 62 0 15 0 15 +8408 99 58 63.84 1738 49 11 3 6 63 0 10 0 10 +8409 99 59 69.92 1738 49 9 3 6 63 0 8 0 8 +8410 99 60 76 1738 49 10 3 6 63 0 9 0 9 +8411 99 61 82.08 1738 49 12 3 6 63 0 11 0 11 +8412 99 62 88.16 1738 53 15 3 6 64 0 14 0 14 +8413 99 63 94.24 1738 53 13 3 6 64 0 12 0 12 +8414 99 64 100.32 1738 53 11 3 6 64 0 10 0 10 +8415 99 65 106.4 1738 53 12 3 6 64 0 11 0 11 +8416 99 66 112.48 1738 53 14 3 6 64 0 13 0 13 +8417 99 67 118.56 1738 57 13 3 6 65 0 12 0 12 +8418 99 68 124.64 1738 57 11 3 6 65 0 10 0 10 +8419 99 69 130.72 1738 57 12 3 6 65 0 11 0 11 +8420 99 70 136.8 1738 57 14 3 6 65 0 13 0 13 +8421 99 71 142.88 1738 57 16 3 6 65 0 15 0 15 +8422 99 72 148.96 1738 61 13 3 6 66 0 12 0 12 +8423 99 73 155.04 1738 61 11 3 6 66 0 10 0 10 +8424 99 74 161.12 1738 61 9 3 6 66 0 8 0 8 +8425 99 75 167.2 1738 61 12 3 6 66 0 11 0 11 +8426 99 76 173.28 1738 61 14 3 6 66 0 13 0 13 +8427 99 77 179.36 1738 65 13 3 6 67 0 12 0 12 +8428 99 78 185.44 1738 65 11 3 6 67 0 10 0 10 +8429 99 79 191.52 1738 65 10 3 6 67 0 9 0 9 +8430 99 80 197.6 1738 65 12 3 6 67 0 11 0 11 +8431 99 81 203.68 1738 65 14 3 6 67 0 13 0 13 +8432 99 82 209.76 1738 69 13 3 6 68 0 12 0 12 +8433 99 83 215.84 1738 69 11 3 6 68 0 10 0 10 +8434 99 84 221.92 1738 69 12 3 6 68 0 11 0 11 +8435 99 85 228 1738 69 14 3 6 68 0 13 0 13 +8436 99 86 234.08 1738 73 15 3 6 69 0 14 0 14 +8437 99 87 240.16 1738 73 13 3 6 69 0 12 0 12 +8438 99 88 246.24 1738 73 11 3 6 69 0 10 0 10 +8439 99 89 252.32 1738 73 12 3 6 69 0 11 0 11 +8440 99 90 258.4 1738 73 14 3 6 69 0 13 0 13 +8441 99 91 264.48 1738 77 13 3 6 70 0 12 0 12 +8442 99 92 270.56 1738 77 11 3 6 70 0 10 0 10 +8443 99 93 276.64 1738 77 10 3 6 70 0 9 0 9 +8444 99 94 282.72 1738 77 12 3 6 70 0 11 0 11 +8445 99 95 288.8 1738 77 14 3 6 70 0 13 0 13 +8446 100 0 -288.8 1750 1 17 3 6 51 0 16 0 16 +8447 100 1 -282.72 1750 1 15 3 6 51 0 14 0 14 +8448 100 2 -276.64 1750 1 16 3 6 51 0 15 0 15 +8449 100 3 -270.56 1750 1 18 3 6 51 0 17 0 17 +8450 100 4 -264.48 1750 5 19 3 6 52 0 18 0 18 +8451 100 5 -258.4 1750 5 17 3 6 52 0 16 0 16 +8452 100 6 -252.32 1750 5 15 3 6 52 0 14 0 14 +8453 100 7 -246.24 1750 5 18 3 6 52 0 17 0 17 +8454 100 8 -240.16 1750 5 20 3 6 52 0 19 0 19 +8455 100 9 -234.08 1750 9 19 3 6 53 0 18 0 18 +8456 100 10 -228 1750 9 17 3 6 53 0 16 0 16 +8457 100 11 -221.92 1750 9 15 3 6 53 0 14 0 14 +8458 100 12 -215.84 1750 9 16 3 6 53 0 15 0 15 +8459 100 13 -209.76 1750 9 18 3 6 53 0 17 0 17 +8460 100 14 -203.68 1750 13 17 3 6 54 0 16 0 16 +8461 100 15 -197.6 1750 13 15 3 6 54 0 14 0 14 +8462 100 16 -191.52 1750 13 16 3 6 54 0 15 0 15 +8463 100 17 -185.44 1750 13 18 3 6 54 0 17 0 17 +8464 100 18 -179.36 1750 13 20 3 6 54 0 19 0 19 +8465 100 19 -173.28 1750 17 19 3 6 55 0 18 0 18 +8466 100 20 -167.2 1750 17 17 3 6 55 0 16 0 16 +8467 100 21 -161.12 1750 17 15 3 6 55 0 14 0 14 +8468 100 22 -155.04 1750 17 16 3 6 55 0 15 0 15 +8469 100 23 -148.96 1750 17 18 3 6 55 0 17 0 17 +8470 100 24 -142.88 1750 21 19 3 6 56 0 18 0 18 +8471 100 25 -136.8 1750 21 17 3 6 56 0 16 0 16 +8472 100 26 -130.72 1750 21 16 3 6 56 0 15 0 15 +8473 100 27 -124.64 1750 21 18 3 6 56 0 17 0 17 +8474 100 28 -118.56 1750 21 20 3 6 56 0 19 0 19 +8475 100 29 -112.48 1750 25 17 3 6 57 0 16 0 16 +8476 100 30 -106.4 1750 25 15 3 6 57 0 14 0 14 +8477 100 31 -100.32 1750 25 18 3 6 57 0 17 0 17 +8478 100 32 -94.24 1750 25 20 3 6 57 0 19 0 19 +8479 100 33 -88.16 1750 29 17 3 6 58 0 16 0 16 +8480 100 34 -82.08 1750 29 15 3 6 58 0 14 0 14 +8481 100 35 -76 1750 29 13 3 6 58 0 12 0 12 +8482 100 36 -69.92 1750 29 14 3 6 58 0 13 0 13 +8483 100 37 -63.84 1750 29 16 3 6 58 0 15 0 15 +8484 100 38 -57.76 1750 33 19 3 6 59 0 18 0 18 +8485 100 39 -51.68 1750 33 17 3 6 59 0 16 0 16 +8486 100 40 -45.6 1750 33 16 3 6 59 0 15 0 15 +8487 100 41 -39.52 1750 33 18 3 6 59 0 17 0 17 +8488 100 42 -33.44 1750 33 20 3 6 59 0 19 0 19 +8489 100 43 -27.36 1750 37 19 3 6 60 0 18 0 18 +8490 100 44 -21.28 1750 37 17 3 6 60 0 16 0 16 +8491 100 45 -15.2 1750 37 16 3 6 60 0 15 0 15 +8492 100 46 -9.12 1750 37 18 3 6 60 0 17 0 17 +8493 100 47 -3.04 1750 37 20 3 6 60 0 19 0 19 +8494 100 48 3.04 1750 41 19 3 6 61 0 18 0 18 +8495 100 49 9.12 1750 41 17 3 6 61 0 16 0 16 +8496 100 50 15.2 1750 41 15 3 6 61 0 14 0 14 +8497 100 51 21.28 1750 41 18 3 6 61 0 17 0 17 +8498 100 52 27.36 1750 41 20 3 6 61 0 19 0 19 +8499 100 53 33.44 1750 45 19 3 6 62 0 18 0 18 +8500 100 54 39.52 1750 45 17 3 6 62 0 16 0 16 +8501 100 55 45.6 1750 45 15 3 6 62 0 14 0 14 +8502 100 56 51.68 1750 45 18 3 6 62 0 17 0 17 +8503 100 57 57.76 1750 45 20 3 6 62 0 19 0 19 +8504 100 58 63.84 1750 49 15 3 6 63 0 14 0 14 +8505 100 59 69.92 1750 49 13 3 6 63 0 12 0 12 +8506 100 60 76 1750 49 14 3 6 63 0 13 0 13 +8507 100 61 82.08 1750 49 16 3 6 63 0 15 0 15 +8508 100 62 88.16 1750 49 18 3 6 63 0 17 0 17 +8509 100 63 94.24 1750 53 19 3 6 64 0 18 0 18 +8510 100 64 100.32 1750 53 17 3 6 64 0 16 0 16 +8511 100 65 106.4 1750 53 16 3 6 64 0 15 0 15 +8512 100 66 112.48 1750 53 18 3 6 64 0 17 0 17 +8513 100 67 118.56 1750 57 19 3 6 65 0 18 0 18 +8514 100 68 124.64 1750 57 17 3 6 65 0 16 0 16 +8515 100 69 130.72 1750 57 15 3 6 65 0 14 0 14 +8516 100 70 136.8 1750 57 18 3 6 65 0 17 0 17 +8517 100 71 142.88 1750 57 20 3 6 65 0 19 0 19 +8518 100 72 148.96 1750 61 17 3 6 66 0 16 0 16 +8519 100 73 155.04 1750 61 15 3 6 66 0 14 0 14 +8520 100 74 161.12 1750 61 16 3 6 66 0 15 0 15 +8521 100 75 167.2 1750 61 18 3 6 66 0 17 0 17 +8522 100 76 173.28 1750 61 20 3 6 66 0 19 0 19 +8523 100 77 179.36 1750 65 19 3 6 67 0 18 0 18 +8524 100 78 185.44 1750 65 17 3 6 67 0 16 0 16 +8525 100 79 191.52 1750 65 15 3 6 67 0 14 0 14 +8526 100 80 197.6 1750 65 16 3 6 67 0 15 0 15 +8527 100 81 203.68 1750 65 18 3 6 67 0 17 0 17 +8528 100 82 209.76 1750 69 17 3 6 68 0 16 0 16 +8529 100 83 215.84 1750 69 15 3 6 68 0 14 0 14 +8530 100 84 221.92 1750 69 16 3 6 68 0 15 0 15 +8531 100 85 228 1750 69 18 3 6 68 0 17 0 17 +8532 100 86 234.08 1750 69 20 3 6 68 0 19 0 19 +8533 100 87 240.16 1750 73 19 3 6 69 0 18 0 18 +8534 100 88 246.24 1750 73 17 3 6 69 0 16 0 16 +8535 100 89 252.32 1750 73 16 3 6 69 0 15 0 15 +8536 100 90 258.4 1750 73 18 3 6 69 0 17 0 17 +8537 100 91 264.48 1750 73 20 3 6 69 0 19 0 19 +8538 100 92 270.56 1750 77 17 3 6 70 0 16 0 16 +8539 100 93 276.64 1750 77 15 3 6 70 0 14 0 14 +8540 100 94 282.72 1750 77 16 3 6 70 0 15 0 15 +8541 100 95 288.8 1750 77 18 3 6 70 0 17 0 17 +8542 101 0 -294.88 1762 1 23 3 6 51 0 22 0 22 +8543 101 1 -288.8 1762 1 21 3 6 51 0 20 0 20 +8544 101 2 -282.72 1762 1 19 3 6 51 0 18 0 18 +8545 101 3 -276.64 1762 1 20 3 6 51 0 19 0 19 +8546 101 4 -270.56 1762 1 22 3 6 51 0 21 0 21 +8547 101 5 -264.48 1762 5 23 3 6 52 0 22 0 22 +8548 101 6 -258.4 1762 5 21 3 6 52 0 20 0 20 +8549 101 7 -252.32 1762 5 22 3 6 52 0 21 0 21 +8550 101 8 -246.24 1762 5 24 3 6 52 0 23 0 23 +8551 101 9 -240.16 1762 5 26 3 6 52 0 25 0 25 +8552 101 10 -234.08 1762 9 23 3 6 53 0 22 0 22 +8553 101 11 -228 1762 9 21 3 6 53 0 20 0 20 +8554 101 12 -221.92 1762 9 20 3 6 53 0 19 0 19 +8555 101 13 -215.84 1762 9 22 3 6 53 0 21 0 21 +8556 101 14 -209.76 1762 9 24 3 6 53 0 23 0 23 +8557 101 15 -203.68 1762 13 23 3 6 54 0 22 0 22 +8558 101 16 -197.6 1762 13 21 3 6 54 0 20 0 20 +8559 101 17 -191.52 1762 13 19 3 6 54 0 18 0 18 +8560 101 18 -185.44 1762 13 22 3 6 54 0 21 0 21 +8561 101 19 -179.36 1762 13 24 3 6 54 0 23 0 23 +8562 101 20 -173.28 1762 17 23 3 6 55 0 22 0 22 +8563 101 21 -167.2 1762 17 21 3 6 55 0 20 0 20 +8564 101 22 -161.12 1762 17 20 3 6 55 0 19 0 19 +8565 101 23 -155.04 1762 17 22 3 6 55 0 21 0 21 +8566 101 24 -148.96 1762 17 24 3 6 55 0 23 0 23 +8567 101 25 -142.88 1762 21 23 3 6 56 0 22 0 22 +8568 101 26 -136.8 1762 21 21 3 6 56 0 20 0 20 +8569 101 27 -130.72 1762 21 22 3 6 56 0 21 0 21 +8570 101 28 -124.64 1762 21 24 3 6 56 0 23 0 23 +8571 101 29 -118.56 1762 25 23 3 6 57 0 22 0 22 +8572 101 30 -112.48 1762 25 21 3 6 57 0 20 0 20 +8573 101 31 -106.4 1762 25 19 3 6 57 0 18 0 18 +8574 101 32 -100.32 1762 25 22 3 6 57 0 21 0 21 +8575 101 33 -94.24 1762 25 24 3 6 57 0 23 0 23 +8576 101 34 -88.16 1762 29 21 3 6 58 0 20 0 20 +8577 101 35 -82.08 1762 29 19 3 6 58 0 18 0 18 +8578 101 36 -76 1762 29 18 3 6 58 0 17 0 17 +8579 101 37 -69.92 1762 29 20 3 6 58 0 19 0 19 +8580 101 38 -63.84 1762 29 22 3 6 58 0 21 0 21 +8581 101 39 -57.76 1762 33 25 3 6 59 0 24 0 24 +8582 101 40 -51.68 1762 33 23 3 6 59 0 22 0 22 +8583 101 41 -45.6 1762 33 21 3 6 59 0 20 0 20 +8584 101 42 -39.52 1762 33 22 3 6 59 0 21 0 21 +8585 101 43 -33.44 1762 33 24 3 6 59 0 23 0 23 +8586 101 44 -27.36 1762 37 25 3 6 60 0 24 0 24 +8587 101 45 -21.28 1762 37 23 3 6 60 0 22 0 22 +8588 101 46 -15.2 1762 37 21 3 6 60 0 20 0 20 +8589 101 47 -9.12 1762 37 22 3 6 60 0 21 0 21 +8590 101 48 -3.04 1762 37 24 3 6 60 0 23 0 23 +8591 101 49 3.04 1762 41 23 3 6 61 0 22 0 22 +8592 101 50 9.12 1762 41 21 3 6 61 0 20 0 20 +8593 101 51 15.2 1762 41 22 3 6 61 0 21 0 21 +8594 101 52 21.28 1762 41 24 3 6 61 0 23 0 23 +8595 101 53 27.36 1762 41 26 3 6 61 0 25 0 25 +8596 101 54 33.44 1762 45 23 3 6 62 0 22 0 22 +8597 101 55 39.52 1762 45 21 3 6 62 0 20 0 20 +8598 101 56 45.6 1762 45 22 3 6 62 0 21 0 21 +8599 101 57 51.68 1762 45 24 3 6 62 0 23 0 23 +8600 101 58 57.76 1762 45 26 3 6 62 0 25 0 25 +8601 101 59 63.84 1762 49 21 3 6 63 0 20 0 20 +8602 101 60 69.92 1762 49 19 3 6 63 0 18 0 18 +8603 101 61 76 1762 49 17 3 6 63 0 16 0 16 +8604 101 62 82.08 1762 49 20 3 6 63 0 19 0 19 +8605 101 63 88.16 1762 49 22 3 6 63 0 21 0 21 +8606 101 64 94.24 1762 53 23 3 6 64 0 22 0 22 +8607 101 65 100.32 1762 53 21 3 6 64 0 20 0 20 +8608 101 66 106.4 1762 53 20 3 6 64 0 19 0 19 +8609 101 67 112.48 1762 53 22 3 6 64 0 21 0 21 +8610 101 68 118.56 1762 53 24 3 6 64 0 23 0 23 +8611 101 69 124.64 1762 57 23 3 6 65 0 22 0 22 +8612 101 70 130.72 1762 57 21 3 6 65 0 20 0 20 +8613 101 71 136.8 1762 57 22 3 6 65 0 21 0 21 +8614 101 72 142.88 1762 57 24 3 6 65 0 23 0 23 +8615 101 73 148.96 1762 61 23 3 6 66 0 22 0 22 +8616 101 74 155.04 1762 61 21 3 6 66 0 20 0 20 +8617 101 75 161.12 1762 61 19 3 6 66 0 18 0 18 +8618 101 76 167.2 1762 61 22 3 6 66 0 21 0 21 +8619 101 77 173.28 1762 61 24 3 6 66 0 23 0 23 +8620 101 78 179.36 1762 65 23 3 6 67 0 22 0 22 +8621 101 79 185.44 1762 65 21 3 6 67 0 20 0 20 +8622 101 80 191.52 1762 65 20 3 6 67 0 19 0 19 +8623 101 81 197.6 1762 65 22 3 6 67 0 21 0 21 +8624 101 82 203.68 1762 65 24 3 6 67 0 23 0 23 +8625 101 83 209.76 1762 69 23 3 6 68 0 22 0 22 +8626 101 84 215.84 1762 69 21 3 6 68 0 20 0 20 +8627 101 85 221.92 1762 69 19 3 6 68 0 18 0 18 +8628 101 86 228 1762 69 22 3 6 68 0 21 0 21 +8629 101 87 234.08 1762 69 24 3 6 68 0 23 0 23 +8630 101 88 240.16 1762 73 25 3 6 69 0 24 0 24 +8631 101 89 246.24 1762 73 23 3 6 69 0 22 0 22 +8632 101 90 252.32 1762 73 21 3 6 69 0 20 0 20 +8633 101 91 258.4 1762 73 22 3 6 69 0 21 0 21 +8634 101 92 264.48 1762 73 24 3 6 69 0 23 0 23 +8635 101 93 270.56 1762 77 21 3 6 70 0 20 0 20 +8636 101 94 276.64 1762 77 19 3 6 70 0 18 0 18 +8637 101 95 282.72 1762 77 20 3 6 70 0 19 0 19 +8638 101 96 288.8 1762 77 22 3 6 70 0 21 0 21 +8639 101 97 294.88 1762 77 24 3 6 70 0 23 0 23 +8640 102 0 -294.88 1774 1 27 3 6 51 0 26 0 26 +8641 102 1 -288.8 1774 1 25 3 6 51 0 24 0 24 +8642 102 2 -282.72 1774 1 24 3 6 51 0 23 0 23 +8643 102 3 -276.64 1774 1 26 3 6 51 0 25 0 25 +8644 102 4 -270.56 1774 1 28 3 6 51 0 27 0 27 +8645 102 5 -264.48 1774 5 27 3 6 52 0 26 0 26 +8646 102 6 -258.4 1774 5 25 3 6 52 0 24 0 24 +8647 102 7 -252.32 1774 5 28 3 6 52 0 27 0 27 +8648 102 8 -246.24 1774 5 30 3 6 52 0 29 0 29 +8649 102 9 -240.16 1774 5 32 3 6 52 0 31 0 31 +8650 102 10 -234.08 1774 9 27 3 6 53 0 26 0 26 +8651 102 11 -228 1774 9 25 3 6 53 0 24 0 24 +8652 102 12 -221.92 1774 9 26 3 6 53 0 25 0 25 +8653 102 13 -215.84 1774 9 28 3 6 53 0 27 0 27 +8654 102 14 -209.76 1774 9 30 3 6 53 0 29 0 29 +8655 102 15 -203.68 1774 13 27 3 6 54 0 26 0 26 +8656 102 16 -197.6 1774 13 25 3 6 54 0 24 0 24 +8657 102 17 -191.52 1774 13 26 3 6 54 0 25 0 25 +8658 102 18 -185.44 1774 13 28 3 6 54 0 27 0 27 +8659 102 19 -179.36 1774 13 30 3 6 54 0 29 0 29 +8660 102 20 -173.28 1774 17 27 3 6 55 0 26 0 26 +8661 102 21 -167.2 1774 17 25 3 6 55 0 24 0 24 +8662 102 22 -161.12 1774 17 26 3 6 55 0 25 0 25 +8663 102 23 -155.04 1774 17 28 3 6 55 0 27 0 27 +8664 102 24 -148.96 1774 21 29 3 6 56 0 28 0 28 +8665 102 25 -142.88 1774 21 27 3 6 56 0 26 0 26 +8666 102 26 -136.8 1774 21 25 3 6 56 0 24 0 24 +8667 102 27 -130.72 1774 21 26 3 6 56 0 25 0 25 +8668 102 28 -124.64 1774 21 28 3 6 56 0 27 0 27 +8669 102 29 -118.56 1774 25 27 3 6 57 0 26 0 26 +8670 102 30 -112.48 1774 25 25 3 6 57 0 24 0 24 +8671 102 31 -106.4 1774 25 26 3 6 57 0 25 0 25 +8672 102 32 -100.32 1774 25 28 3 6 57 0 27 0 27 +8673 102 33 -94.24 1774 25 30 3 6 57 0 29 0 29 +8674 102 34 -88.16 1774 29 27 3 6 58 0 26 0 26 +8675 102 35 -82.08 1774 29 25 3 6 58 0 24 0 24 +8676 102 36 -76 1774 29 23 3 6 58 0 22 0 22 +8677 102 37 -69.92 1774 29 24 3 6 58 0 23 0 23 +8678 102 38 -63.84 1774 29 26 3 6 58 0 25 0 25 +8679 102 39 -57.76 1774 33 29 3 6 59 0 28 0 28 +8680 102 40 -51.68 1774 33 27 3 6 59 0 26 0 26 +8681 102 41 -45.6 1774 33 26 3 6 59 0 25 0 25 +8682 102 42 -39.52 1774 33 28 3 6 59 0 27 0 27 +8683 102 43 -33.44 1774 33 30 3 6 59 0 29 0 29 +8684 102 44 -27.36 1774 37 29 3 6 60 0 28 0 28 +8685 102 45 -21.28 1774 37 27 3 6 60 0 26 0 26 +8686 102 46 -15.2 1774 37 26 3 6 60 0 25 0 25 +8687 102 47 -9.12 1774 37 28 3 6 60 0 27 0 27 +8688 102 48 -3.04 1774 37 30 3 6 60 0 29 0 29 +8689 102 49 3.04 1774 41 29 3 6 61 0 28 0 28 +8690 102 50 9.12 1774 41 27 3 6 61 0 26 0 26 +8691 102 51 15.2 1774 41 25 3 6 61 0 24 0 24 +8692 102 52 21.28 1774 41 28 3 6 61 0 27 0 27 +8693 102 53 27.36 1774 41 30 3 6 61 0 29 0 29 +8694 102 54 33.44 1774 45 29 3 6 62 0 28 0 28 +8695 102 55 39.52 1774 45 27 3 6 62 0 26 0 26 +8696 102 56 45.6 1774 45 25 3 6 62 0 24 0 24 +8697 102 57 51.68 1774 45 28 3 6 62 0 27 0 27 +8698 102 58 57.76 1774 45 30 3 6 62 0 29 0 29 +8699 102 59 63.84 1774 49 25 3 6 63 0 24 0 24 +8700 102 60 69.92 1774 49 23 3 6 63 0 22 0 22 +8701 102 61 76 1774 49 24 3 6 63 0 23 0 23 +8702 102 62 82.08 1774 49 26 3 6 63 0 25 0 25 +8703 102 63 88.16 1774 49 28 3 6 63 0 27 0 27 +8704 102 64 94.24 1774 53 29 3 6 64 0 28 0 28 +8705 102 65 100.32 1774 53 27 3 6 64 0 26 0 26 +8706 102 66 106.4 1774 53 25 3 6 64 0 24 0 24 +8707 102 67 112.48 1774 53 26 3 6 64 0 25 0 25 +8708 102 68 118.56 1774 53 28 3 6 64 0 27 0 27 +8709 102 69 124.64 1774 57 27 3 6 65 0 26 0 26 +8710 102 70 130.72 1774 57 25 3 6 65 0 24 0 24 +8711 102 71 136.8 1774 57 26 3 6 65 0 25 0 25 +8712 102 72 142.88 1774 57 28 3 6 65 0 27 0 27 +8713 102 73 148.96 1774 57 30 3 6 65 0 29 0 29 +8714 102 74 155.04 1774 61 27 3 6 66 0 26 0 26 +8715 102 75 161.12 1774 61 25 3 6 66 0 24 0 24 +8716 102 76 167.2 1774 61 26 3 6 66 0 25 0 25 +8717 102 77 173.28 1774 61 28 3 6 66 0 27 0 27 +8718 102 78 179.36 1774 65 29 3 6 67 0 28 0 28 +8719 102 79 185.44 1774 65 27 3 6 67 0 26 0 26 +8720 102 80 191.52 1774 65 25 3 6 67 0 24 0 24 +8721 102 81 197.6 1774 65 26 3 6 67 0 25 0 25 +8722 102 82 203.68 1774 65 28 3 6 67 0 27 0 27 +8723 102 83 209.76 1774 69 29 3 6 68 0 28 0 28 +8724 102 84 215.84 1774 69 27 3 6 68 0 26 0 26 +8725 102 85 221.92 1774 69 25 3 6 68 0 24 0 24 +8726 102 86 228 1774 69 26 3 6 68 0 25 0 25 +8727 102 87 234.08 1774 69 28 3 6 68 0 27 0 27 +8728 102 88 240.16 1774 73 31 3 6 69 0 30 0 30 +8729 102 89 246.24 1774 73 29 3 6 69 0 28 0 28 +8730 102 90 252.32 1774 73 27 3 6 69 0 26 0 26 +8731 102 91 258.4 1774 73 26 3 6 69 0 25 0 25 +8732 102 92 264.48 1774 73 28 3 6 69 0 27 0 27 +8733 102 93 270.56 1774 77 27 3 6 70 0 26 0 26 +8734 102 94 276.64 1774 77 25 3 6 70 0 24 0 24 +8735 102 95 282.72 1774 77 23 3 6 70 0 22 0 22 +8736 102 96 288.8 1774 77 26 3 6 70 0 25 0 25 +8737 102 97 294.88 1774 77 28 3 6 70 0 27 0 27 +8738 103 0 -294.88 1786 1 31 3 6 51 0 30 0 30 +8739 103 1 -288.8 1786 1 29 3 6 51 0 28 0 28 +8740 103 2 -282.72 1786 1 30 3 6 51 0 29 0 29 +8741 103 3 -276.64 1786 1 32 3 6 51 0 31 0 31 +8742 103 4 -270.56 1786 5 33 3 6 52 0 32 1 0 +8743 103 5 -264.48 1786 5 31 3 6 52 0 30 0 30 +8744 103 6 -258.4 1786 5 29 3 6 52 0 28 0 28 +8745 103 7 -252.32 1786 5 34 3 6 52 0 33 1 1 +8746 103 8 -246.24 1786 5 36 3 6 52 0 35 1 3 +8747 103 9 -240.16 1786 9 33 3 6 53 0 32 1 0 +8748 103 10 -234.08 1786 9 31 3 6 53 0 30 0 30 +8749 103 11 -228 1786 9 29 3 6 53 0 28 0 28 +8750 103 12 -221.92 1786 9 32 3 6 53 0 31 0 31 +8751 103 13 -215.84 1786 9 34 3 6 53 0 33 1 1 +8752 103 14 -209.76 1786 13 33 3 6 54 0 32 1 0 +8753 103 15 -203.68 1786 13 31 3 6 54 0 30 0 30 +8754 103 16 -197.6 1786 13 29 3 6 54 0 28 0 28 +8755 103 17 -191.52 1786 13 32 3 6 54 0 31 0 31 +8756 103 18 -185.44 1786 13 34 3 6 54 0 33 1 1 +8757 103 19 -179.36 1786 17 31 3 6 55 0 30 0 30 +8758 103 20 -173.28 1786 17 29 3 6 55 0 28 0 28 +8759 103 21 -167.2 1786 17 30 3 6 55 0 29 0 29 +8760 103 22 -161.12 1786 17 32 3 6 55 0 31 0 31 +8761 103 23 -155.04 1786 17 34 3 6 55 0 33 1 1 +8762 103 24 -148.96 1786 21 33 3 6 56 0 32 1 0 +8763 103 25 -142.88 1786 21 31 3 6 56 0 30 0 30 +8764 103 26 -136.8 1786 21 30 3 6 56 0 29 0 29 +8765 103 27 -130.72 1786 21 32 3 6 56 0 31 0 31 +8766 103 28 -124.64 1786 21 34 3 6 56 0 33 1 1 +8767 103 29 -118.56 1786 25 33 3 6 57 0 32 1 0 +8768 103 30 -112.48 1786 25 31 3 6 57 0 30 0 30 +8769 103 31 -106.4 1786 25 29 3 6 57 0 28 0 28 +8770 103 32 -100.32 1786 25 32 3 6 57 0 31 0 31 +8771 103 33 -94.24 1786 25 34 3 6 57 0 33 1 1 +8772 103 34 -88.16 1786 29 31 3 6 58 0 30 0 30 +8773 103 35 -82.08 1786 29 29 3 6 58 0 28 0 28 +8774 103 36 -76 1786 29 28 3 6 58 0 27 0 27 +8775 103 37 -69.92 1786 29 30 3 6 58 0 29 0 29 +8776 103 38 -63.84 1786 29 32 3 6 58 0 31 0 31 +8777 103 39 -57.76 1786 33 35 3 6 59 0 34 1 2 +8778 103 40 -51.68 1786 33 33 3 6 59 0 32 1 0 +8779 103 41 -45.6 1786 33 31 3 6 59 0 30 0 30 +8780 103 42 -39.52 1786 33 32 3 6 59 0 31 0 31 +8781 103 43 -33.44 1786 33 34 3 6 59 0 33 1 1 +8782 103 44 -27.36 1786 37 35 3 6 60 0 34 1 2 +8783 103 45 -21.28 1786 37 33 3 6 60 0 32 1 0 +8784 103 46 -15.2 1786 37 31 3 6 60 0 30 0 30 +8785 103 47 -9.12 1786 37 32 3 6 60 0 31 0 31 +8786 103 48 -3.04 1786 37 34 3 6 60 0 33 1 1 +8787 103 49 3.04 1786 41 33 3 6 61 0 32 1 0 +8788 103 50 9.12 1786 41 31 3 6 61 0 30 0 30 +8789 103 51 15.2 1786 41 32 3 6 61 0 31 0 31 +8790 103 52 21.28 1786 41 34 3 6 61 0 33 1 1 +8791 103 53 27.36 1786 41 36 3 6 61 0 35 1 3 +8792 103 54 33.44 1786 45 33 3 6 62 0 32 1 0 +8793 103 55 39.52 1786 45 31 3 6 62 0 30 0 30 +8794 103 56 45.6 1786 45 32 3 6 62 0 31 0 31 +8795 103 57 51.68 1786 45 34 3 6 62 0 33 1 1 +8796 103 58 57.76 1786 45 36 3 6 62 0 35 1 3 +8797 103 59 63.84 1786 49 31 3 6 63 0 30 0 30 +8798 103 60 69.92 1786 49 29 3 6 63 0 28 0 28 +8799 103 61 76 1786 49 27 3 6 63 0 26 0 26 +8800 103 62 82.08 1786 49 30 3 6 63 0 29 0 29 +8801 103 63 88.16 1786 49 32 3 6 63 0 31 0 31 +8802 103 64 94.24 1786 53 33 3 6 64 0 32 1 0 +8803 103 65 100.32 1786 53 31 3 6 64 0 30 0 30 +8804 103 66 106.4 1786 53 30 3 6 64 0 29 0 29 +8805 103 67 112.48 1786 53 32 3 6 64 0 31 0 31 +8806 103 68 118.56 1786 53 34 3 6 64 0 33 1 1 +8807 103 69 124.64 1786 57 33 3 6 65 0 32 1 0 +8808 103 70 130.72 1786 57 31 3 6 65 0 30 0 30 +8809 103 71 136.8 1786 57 29 3 6 65 0 28 0 28 +8810 103 72 142.88 1786 57 32 3 6 65 0 31 0 31 +8811 103 73 148.96 1786 57 34 3 6 65 0 33 1 1 +8812 103 74 155.04 1786 61 33 3 6 66 0 32 1 0 +8813 103 75 161.12 1786 61 31 3 6 66 0 30 0 30 +8814 103 76 167.2 1786 61 29 3 6 66 0 28 0 28 +8815 103 77 173.28 1786 61 30 3 6 66 0 29 0 29 +8816 103 78 179.36 1786 61 32 3 6 66 0 31 0 31 +8817 103 79 185.44 1786 65 33 3 6 67 0 32 1 0 +8818 103 80 191.52 1786 65 31 3 6 67 0 30 0 30 +8819 103 81 197.6 1786 65 30 3 6 67 0 29 0 29 +8820 103 82 203.68 1786 65 32 3 6 67 0 31 0 31 +8821 103 83 209.76 1786 65 34 3 6 67 0 33 1 1 +8822 103 84 215.84 1786 69 33 3 6 68 0 32 1 0 +8823 103 85 221.92 1786 69 31 3 6 68 0 30 0 30 +8824 103 86 228 1786 69 30 3 6 68 0 29 0 29 +8825 103 87 234.08 1786 69 32 3 6 68 0 31 0 31 +8826 103 88 240.16 1786 69 34 3 6 68 0 33 1 1 +8827 103 89 246.24 1786 73 35 3 6 69 0 34 1 2 +8828 103 90 252.32 1786 73 33 3 6 69 0 32 1 0 +8829 103 91 258.4 1786 73 30 3 6 69 0 29 0 29 +8830 103 92 264.48 1786 73 32 3 6 69 0 31 0 31 +8831 103 93 270.56 1786 73 34 3 6 69 0 33 1 1 +8832 103 94 276.64 1786 77 31 3 6 70 0 30 0 30 +8833 103 95 282.72 1786 77 29 3 6 70 0 28 0 28 +8834 103 96 288.8 1786 77 30 3 6 70 0 29 0 29 +8835 103 97 294.88 1786 77 32 3 6 70 0 31 0 31 +8836 104 0 -300.96 1798 1 35 3 6 51 0 34 1 2 +8837 104 1 -294.88 1798 1 33 3 6 51 0 32 1 0 +8838 104 2 -288.8 1798 1 34 3 6 51 0 33 1 1 +8839 104 3 -282.72 1798 1 36 3 6 51 0 35 1 3 +8840 104 4 -276.64 1798 1 38 3 6 51 0 37 1 5 +8841 104 5 -270.56 1798 5 39 3 6 52 0 38 1 6 +8842 104 6 -264.48 1798 5 37 3 6 52 0 36 1 4 +8843 104 7 -258.4 1798 5 35 3 6 52 0 34 1 2 +8844 104 8 -252.32 1798 5 38 3 6 52 0 37 1 5 +8845 104 9 -246.24 1798 5 40 3 6 52 0 39 1 7 +8846 104 10 -240.16 1798 9 37 3 6 53 0 36 1 4 +8847 104 11 -234.08 1798 9 35 3 6 53 0 34 1 2 +8848 104 12 -228 1798 9 36 3 6 53 0 35 1 3 +8849 104 13 -221.92 1798 9 38 3 6 53 0 37 1 5 +8850 104 14 -215.84 1798 9 40 3 6 53 0 39 1 7 +8851 104 15 -209.76 1798 13 37 3 6 54 0 36 1 4 +8852 104 16 -203.68 1798 13 35 3 6 54 0 34 1 2 +8853 104 17 -197.6 1798 13 36 3 6 54 0 35 1 3 +8854 104 18 -191.52 1798 13 38 3 6 54 0 37 1 5 +8855 104 19 -185.44 1798 13 40 3 6 54 0 39 1 7 +8856 104 20 -179.36 1798 17 35 3 6 55 0 34 1 2 +8857 104 21 -173.28 1798 17 33 3 6 55 0 32 1 0 +8858 104 22 -167.2 1798 17 36 3 6 55 0 35 1 3 +8859 104 23 -161.12 1798 17 38 3 6 55 0 37 1 5 +8860 104 24 -155.04 1798 17 40 3 6 55 0 39 1 7 +8861 104 25 -148.96 1798 21 37 3 6 56 0 36 1 4 +8862 104 26 -142.88 1798 21 35 3 6 56 0 34 1 2 +8863 104 27 -136.8 1798 21 36 3 6 56 0 35 1 3 +8864 104 28 -130.72 1798 21 38 3 6 56 0 37 1 5 +8865 104 29 -124.64 1798 21 40 3 6 56 0 39 1 7 +8866 104 30 -118.56 1798 25 37 3 6 57 0 36 1 4 +8867 104 31 -112.48 1798 25 35 3 6 57 0 34 1 2 +8868 104 32 -106.4 1798 25 36 3 6 57 0 35 1 3 +8869 104 33 -100.32 1798 25 38 3 6 57 0 37 1 5 +8870 104 34 -94.24 1798 25 40 3 6 57 0 39 1 7 +8871 104 35 -88.16 1798 29 35 3 6 58 0 34 1 2 +8872 104 36 -82.08 1798 29 33 3 6 58 0 32 1 0 +8873 104 37 -76 1798 29 34 3 6 58 0 33 1 1 +8874 104 38 -69.92 1798 29 36 3 6 58 0 35 1 3 +8875 104 39 -63.84 1798 29 38 3 6 58 0 37 1 5 +8876 104 40 -57.76 1798 33 39 3 6 59 0 38 1 6 +8877 104 41 -51.68 1798 33 37 3 6 59 0 36 1 4 +8878 104 42 -45.6 1798 33 36 3 6 59 0 35 1 3 +8879 104 43 -39.52 1798 33 38 3 6 59 0 37 1 5 +8880 104 44 -33.44 1798 33 40 3 6 59 0 39 1 7 +8881 104 45 -27.36 1798 37 39 3 6 60 0 38 1 6 +8882 104 46 -21.28 1798 37 37 3 6 60 0 36 1 4 +8883 104 47 -15.2 1798 37 36 3 6 60 0 35 1 3 +8884 104 48 -9.12 1798 37 38 3 6 60 0 37 1 5 +8885 104 49 -3.04 1798 37 40 3 6 60 0 39 1 7 +8886 104 50 3.04 1798 41 39 3 6 61 0 38 1 6 +8887 104 51 9.12 1798 41 37 3 6 61 0 36 1 4 +8888 104 52 15.2 1798 41 35 3 6 61 0 34 1 2 +8889 104 53 21.28 1798 41 38 3 6 61 0 37 1 5 +8890 104 54 27.36 1798 41 40 3 6 61 0 39 1 7 +8891 104 55 33.44 1798 45 39 3 6 62 0 38 1 6 +8892 104 56 39.52 1798 45 37 3 6 62 0 36 1 4 +8893 104 57 45.6 1798 45 35 3 6 62 0 34 1 2 +8894 104 58 51.68 1798 45 38 3 6 62 0 37 1 5 +8895 104 59 57.76 1798 45 40 3 6 62 0 39 1 7 +8896 104 60 63.84 1798 49 37 3 6 63 0 36 1 4 +8897 104 61 69.92 1798 49 35 3 6 63 0 34 1 2 +8898 104 62 76 1798 49 33 3 6 63 0 32 1 0 +8899 104 63 82.08 1798 49 34 3 6 63 0 33 1 1 +8900 104 64 88.16 1798 49 36 3 6 63 0 35 1 3 +8901 104 65 94.24 1798 53 39 3 6 64 0 38 1 6 +8902 104 66 100.32 1798 53 37 3 6 64 0 36 1 4 +8903 104 67 106.4 1798 53 35 3 6 64 0 34 1 2 +8904 104 68 112.48 1798 53 36 3 6 64 0 35 1 3 +8905 104 69 118.56 1798 53 38 3 6 64 0 37 1 5 +8906 104 70 124.64 1798 57 39 3 6 65 0 38 1 6 +8907 104 71 130.72 1798 57 37 3 6 65 0 36 1 4 +8908 104 72 136.8 1798 57 35 3 6 65 0 34 1 2 +8909 104 73 142.88 1798 57 36 3 6 65 0 35 1 3 +8910 104 74 148.96 1798 57 38 3 6 65 0 37 1 5 +8911 104 75 155.04 1798 61 39 3 6 66 0 38 1 6 +8912 104 76 161.12 1798 61 37 3 6 66 0 36 1 4 +8913 104 77 167.2 1798 61 35 3 6 66 0 34 1 2 +8914 104 78 173.28 1798 61 34 3 6 66 0 33 1 1 +8915 104 79 179.36 1798 61 36 3 6 66 0 35 1 3 +8916 104 80 185.44 1798 65 39 3 6 67 0 38 1 6 +8917 104 81 191.52 1798 65 37 3 6 67 0 36 1 4 +8918 104 82 197.6 1798 65 35 3 6 67 0 34 1 2 +8919 104 83 203.68 1798 65 36 3 6 67 0 35 1 3 +8920 104 84 209.76 1798 65 38 3 6 67 0 37 1 5 +8921 104 85 215.84 1798 69 39 3 6 68 0 38 1 6 +8922 104 86 221.92 1798 69 37 3 6 68 0 36 1 4 +8923 104 87 228 1798 69 35 3 6 68 0 34 1 2 +8924 104 88 234.08 1798 69 36 3 6 68 0 35 1 3 +8925 104 89 240.16 1798 69 38 3 6 68 0 37 1 5 +8926 104 90 246.24 1798 73 39 3 6 69 0 38 1 6 +8927 104 91 252.32 1798 73 37 3 6 69 0 36 1 4 +8928 104 92 258.4 1798 73 36 3 6 69 0 35 1 3 +8929 104 93 264.48 1798 73 38 3 6 69 0 37 1 5 +8930 104 94 270.56 1798 73 40 3 6 69 0 39 1 7 +8931 104 95 276.64 1798 77 37 3 6 70 0 36 1 4 +8932 104 96 282.72 1798 77 35 3 6 70 0 34 1 2 +8933 104 97 288.8 1798 77 33 3 6 70 0 32 1 0 +8934 104 98 294.88 1798 77 34 3 6 70 0 33 1 1 +8935 104 99 300.96 1798 77 36 3 6 70 0 35 1 3 +8936 105 0 -300.96 1810 1 39 3 6 51 0 38 1 6 +8937 105 1 -294.88 1810 1 37 3 6 51 0 36 1 4 +8938 105 2 -288.8 1810 1 40 3 6 51 0 39 1 7 +8939 105 3 -282.72 1810 2 2 3 6 51 1 41 1 9 +8940 105 4 -276.64 1810 2 4 3 6 51 1 43 1 11 +8941 105 5 -270.56 1810 6 5 3 6 52 1 44 1 12 +8942 105 6 -264.48 1810 6 3 3 6 52 1 42 1 10 +8943 105 7 -258.4 1810 6 1 3 6 52 1 40 1 8 +8944 105 8 -252.32 1810 6 2 3 6 52 1 41 1 9 +8945 105 9 -246.24 1810 6 4 3 6 52 1 43 1 11 +8946 105 10 -240.16 1810 9 39 3 6 53 0 38 1 6 +8947 105 11 -234.08 1810 10 3 3 6 53 1 42 1 10 +8948 105 12 -228 1810 10 1 3 6 53 1 40 1 8 +8949 105 13 -221.92 1810 10 2 3 6 53 1 41 1 9 +8950 105 14 -215.84 1810 10 4 3 6 53 1 43 1 11 +8951 105 15 -209.76 1810 13 39 3 6 54 0 38 1 6 +8952 105 16 -203.68 1810 14 3 3 6 54 1 42 1 10 +8953 105 17 -197.6 1810 14 1 3 6 54 1 40 1 8 +8954 105 18 -191.52 1810 14 2 3 6 54 1 41 1 9 +8955 105 19 -185.44 1810 14 4 3 6 54 1 43 1 11 +8956 105 20 -179.36 1810 17 39 3 6 55 0 38 1 6 +8957 105 21 -173.28 1810 17 37 3 6 55 0 36 1 4 +8958 105 22 -167.2 1810 18 1 3 6 55 1 40 1 8 +8959 105 23 -161.12 1810 18 2 3 6 55 1 41 1 9 +8960 105 24 -155.04 1810 18 4 3 6 55 1 43 1 11 +8961 105 25 -148.96 1810 21 39 3 6 56 0 38 1 6 +8962 105 26 -142.88 1810 22 3 3 6 56 1 42 1 10 +8963 105 27 -136.8 1810 22 1 3 6 56 1 40 1 8 +8964 105 28 -130.72 1810 22 2 3 6 56 1 41 1 9 +8965 105 29 -124.64 1810 22 4 3 6 56 1 43 1 11 +8966 105 30 -118.56 1810 25 39 3 6 57 0 38 1 6 +8967 105 31 -112.48 1810 26 3 3 6 57 1 42 1 10 +8968 105 32 -106.4 1810 26 1 3 6 57 1 40 1 8 +8969 105 33 -100.32 1810 26 2 3 6 57 1 41 1 9 +8970 105 34 -94.24 1810 26 4 3 6 57 1 43 1 11 +8971 105 35 -88.16 1810 29 39 3 6 58 0 38 1 6 +8972 105 36 -82.08 1810 29 37 3 6 58 0 36 1 4 +8973 105 37 -76 1810 29 40 3 6 58 0 39 1 7 +8974 105 38 -69.92 1810 30 2 3 6 58 1 41 1 9 +8975 105 39 -63.84 1810 30 4 3 6 58 1 43 1 11 +8976 105 40 -57.76 1810 34 5 3 6 59 1 44 1 12 +8977 105 41 -51.68 1810 34 3 3 6 59 1 42 1 10 +8978 105 42 -45.6 1810 34 1 3 6 59 1 40 1 8 +8979 105 43 -39.52 1810 34 2 3 6 59 1 41 1 9 +8980 105 44 -33.44 1810 34 4 3 6 59 1 43 1 11 +8981 105 45 -27.36 1810 38 5 3 6 60 1 44 1 12 +8982 105 46 -21.28 1810 38 3 3 6 60 1 42 1 10 +8983 105 47 -15.2 1810 38 1 3 6 60 1 40 1 8 +8984 105 48 -9.12 1810 38 2 3 6 60 1 41 1 9 +8985 105 49 -3.04 1810 38 4 3 6 60 1 43 1 11 +8986 105 50 3.04 1810 42 3 3 6 61 1 42 1 10 +8987 105 51 9.12 1810 42 1 3 6 61 1 40 1 8 +8988 105 52 15.2 1810 42 2 3 6 61 1 41 1 9 +8989 105 53 21.28 1810 42 4 3 6 61 1 43 1 11 +8990 105 54 27.36 1810 42 6 3 6 61 1 45 1 13 +8991 105 55 33.44 1810 46 3 3 6 62 1 42 1 10 +8992 105 56 39.52 1810 46 1 3 6 62 1 40 1 8 +8993 105 57 45.6 1810 46 2 3 6 62 1 41 1 9 +8994 105 58 51.68 1810 46 4 3 6 62 1 43 1 11 +8995 105 59 57.76 1810 46 6 3 6 62 1 45 1 13 +8996 105 60 63.84 1810 50 3 3 6 63 1 42 1 10 +8997 105 61 69.92 1810 50 1 3 6 63 1 40 1 8 +8998 105 62 76 1810 49 39 3 6 63 0 38 1 6 +8999 105 63 82.08 1810 49 38 3 6 63 0 37 1 5 +9000 105 64 88.16 1810 49 40 3 6 63 0 39 1 7 +9001 105 65 94.24 1810 54 3 3 6 64 1 42 1 10 +9002 105 66 100.32 1810 54 1 3 6 64 1 40 1 8 +9003 105 67 106.4 1810 54 2 3 6 64 1 41 1 9 +9004 105 68 112.48 1810 54 4 3 6 64 1 43 1 11 +9005 105 69 118.56 1810 53 40 3 6 64 0 39 1 7 +9006 105 70 124.64 1810 58 3 3 6 65 1 42 1 10 +9007 105 71 130.72 1810 58 1 3 6 65 1 40 1 8 +9008 105 72 136.8 1810 58 2 3 6 65 1 41 1 9 +9009 105 73 142.88 1810 58 4 3 6 65 1 43 1 11 +9010 105 74 148.96 1810 57 40 3 6 65 0 39 1 7 +9011 105 75 155.04 1810 62 3 3 6 66 1 42 1 10 +9012 105 76 161.12 1810 62 1 3 6 66 1 40 1 8 +9013 105 77 167.2 1810 62 2 3 6 66 1 41 1 9 +9014 105 78 173.28 1810 61 38 3 6 66 0 37 1 5 +9015 105 79 179.36 1810 61 40 3 6 66 0 39 1 7 +9016 105 80 185.44 1810 66 3 3 6 67 1 42 1 10 +9017 105 81 191.52 1810 66 1 3 6 67 1 40 1 8 +9018 105 82 197.6 1810 66 2 3 6 67 1 41 1 9 +9019 105 83 203.68 1810 66 4 3 6 67 1 43 1 11 +9020 105 84 209.76 1810 65 40 3 6 67 0 39 1 7 +9021 105 85 215.84 1810 70 3 3 6 68 1 42 1 10 +9022 105 86 221.92 1810 70 1 3 6 68 1 40 1 8 +9023 105 87 228 1810 70 2 3 6 68 1 41 1 9 +9024 105 88 234.08 1810 70 4 3 6 68 1 43 1 11 +9025 105 89 240.16 1810 69 40 3 6 68 0 39 1 7 +9026 105 90 246.24 1810 74 3 3 6 69 1 42 1 10 +9027 105 91 252.32 1810 74 1 3 6 69 1 40 1 8 +9028 105 92 258.4 1810 74 2 3 6 69 1 41 1 9 +9029 105 93 264.48 1810 74 4 3 6 69 1 43 1 11 +9030 105 94 270.56 1810 74 6 3 6 69 1 45 1 13 +9031 105 95 276.64 1810 78 3 3 6 70 1 42 1 10 +9032 105 96 282.72 1810 78 1 3 6 70 1 40 1 8 +9033 105 97 288.8 1810 77 39 3 6 70 0 38 1 6 +9034 105 98 294.88 1810 77 38 3 6 70 0 37 1 5 +9035 105 99 300.96 1810 77 40 3 6 70 0 39 1 7 +9036 106 0 -307.04 1822 2 5 3 6 51 1 44 1 12 +9037 106 1 -300.96 1822 2 3 3 6 51 1 42 1 10 +9038 106 2 -294.88 1822 2 1 3 6 51 1 40 1 8 +9039 106 3 -288.8 1822 2 6 3 6 51 1 45 1 13 +9040 106 4 -282.72 1822 2 8 3 6 51 1 47 1 15 +9041 106 5 -276.64 1822 2 10 3 6 51 1 49 1 17 +9042 106 6 -270.56 1822 6 9 3 6 52 1 48 1 16 +9043 106 7 -264.48 1822 6 7 3 6 52 1 46 1 14 +9044 106 8 -258.4 1822 6 6 3 6 52 1 45 1 13 +9045 106 9 -252.32 1822 6 8 3 6 52 1 47 1 15 +9046 106 10 -246.24 1822 6 10 3 6 52 1 49 1 17 +9047 106 11 -240.16 1822 10 9 3 6 53 1 48 1 16 +9048 106 12 -234.08 1822 10 7 3 6 53 1 46 1 14 +9049 106 13 -228 1822 10 5 3 6 53 1 44 1 12 +9050 106 14 -221.92 1822 10 6 3 6 53 1 45 1 13 +9051 106 15 -215.84 1822 10 8 3 6 53 1 47 1 15 +9052 106 16 -209.76 1822 14 9 3 6 54 1 48 1 16 +9053 106 17 -203.68 1822 14 7 3 6 54 1 46 1 14 +9054 106 18 -197.6 1822 14 5 3 6 54 1 44 1 12 +9055 106 19 -191.52 1822 14 6 3 6 54 1 45 1 13 +9056 106 20 -185.44 1822 14 8 3 6 54 1 47 1 15 +9057 106 21 -179.36 1822 18 7 3 6 55 1 46 1 14 +9058 106 22 -173.28 1822 18 5 3 6 55 1 44 1 12 +9059 106 23 -167.2 1822 18 3 3 6 55 1 42 1 10 +9060 106 24 -161.12 1822 18 6 3 6 55 1 45 1 13 +9061 106 25 -155.04 1822 18 8 3 6 55 1 47 1 15 +9062 106 26 -148.96 1822 22 9 3 6 56 1 48 1 16 +9063 106 27 -142.88 1822 22 7 3 6 56 1 46 1 14 +9064 106 28 -136.8 1822 22 5 3 6 56 1 44 1 12 +9065 106 29 -130.72 1822 22 6 3 6 56 1 45 1 13 +9066 106 30 -124.64 1822 22 8 3 6 56 1 47 1 15 +9067 106 31 -118.56 1822 26 9 3 6 57 1 48 1 16 +9068 106 32 -112.48 1822 26 7 3 6 57 1 46 1 14 +9069 106 33 -106.4 1822 26 5 3 6 57 1 44 1 12 +9070 106 34 -100.32 1822 26 6 3 6 57 1 45 1 13 +9071 106 35 -94.24 1822 26 8 3 6 57 1 47 1 15 +9072 106 36 -88.16 1822 30 5 3 6 58 1 44 1 12 +9073 106 37 -82.08 1822 30 3 3 6 58 1 42 1 10 +9074 106 38 -76 1822 30 1 3 6 58 1 40 1 8 +9075 106 39 -69.92 1822 30 6 3 6 58 1 45 1 13 +9076 106 40 -63.84 1822 30 8 3 6 58 1 47 1 15 +9077 106 41 -57.76 1822 34 9 3 6 59 1 48 1 16 +9078 106 42 -51.68 1822 34 7 3 6 59 1 46 1 14 +9079 106 43 -45.6 1822 34 6 3 6 59 1 45 1 13 +9080 106 44 -39.52 1822 34 8 3 6 59 1 47 1 15 +9081 106 45 -33.44 1822 34 10 3 6 59 1 49 1 17 +9082 106 46 -27.36 1822 38 9 3 6 60 1 48 1 16 +9083 106 47 -21.28 1822 38 7 3 6 60 1 46 1 14 +9084 106 48 -15.2 1822 38 6 3 6 60 1 45 1 13 +9085 106 49 -9.12 1822 38 8 3 6 60 1 47 1 15 +9086 106 50 -3.04 1822 38 10 3 6 60 1 49 1 17 +9087 106 51 3.04 1822 42 9 3 6 61 1 48 1 16 +9088 106 52 9.12 1822 42 7 3 6 61 1 46 1 14 +9089 106 53 15.2 1822 42 5 3 6 61 1 44 1 12 +9090 106 54 21.28 1822 42 8 3 6 61 1 47 1 15 +9091 106 55 27.36 1822 42 10 3 6 61 1 49 1 17 +9092 106 56 33.44 1822 46 9 3 6 62 1 48 1 16 +9093 106 57 39.52 1822 46 7 3 6 62 1 46 1 14 +9094 106 58 45.6 1822 46 5 3 6 62 1 44 1 12 +9095 106 59 51.68 1822 46 8 3 6 62 1 47 1 15 +9096 106 60 57.76 1822 46 10 3 6 62 1 49 1 17 +9097 106 61 63.84 1822 50 7 3 6 63 1 46 1 14 +9098 106 62 69.92 1822 50 5 3 6 63 1 44 1 12 +9099 106 63 76 1822 50 2 3 6 63 1 41 1 9 +9100 106 64 82.08 1822 50 4 3 6 63 1 43 1 11 +9101 106 65 88.16 1822 50 6 3 6 63 1 45 1 13 +9102 106 66 94.24 1822 54 7 3 6 64 1 46 1 14 +9103 106 67 100.32 1822 54 5 3 6 64 1 44 1 12 +9104 106 68 106.4 1822 54 6 3 6 64 1 45 1 13 +9105 106 69 112.48 1822 54 8 3 6 64 1 47 1 15 +9106 106 70 118.56 1822 54 10 3 6 64 1 49 1 17 +9107 106 71 124.64 1822 58 7 3 6 65 1 46 1 14 +9108 106 72 130.72 1822 58 5 3 6 65 1 44 1 12 +9109 106 73 136.8 1822 58 6 3 6 65 1 45 1 13 +9110 106 74 142.88 1822 58 8 3 6 65 1 47 1 15 +9111 106 75 148.96 1822 58 10 3 6 65 1 49 1 17 +9112 106 76 155.04 1822 62 7 3 6 66 1 46 1 14 +9113 106 77 161.12 1822 62 5 3 6 66 1 44 1 12 +9114 106 78 167.2 1822 62 4 3 6 66 1 43 1 11 +9115 106 79 173.28 1822 62 6 3 6 66 1 45 1 13 +9116 106 80 179.36 1822 62 8 3 6 66 1 47 1 15 +9117 106 81 185.44 1822 66 7 3 6 67 1 46 1 14 +9118 106 82 191.52 1822 66 5 3 6 67 1 44 1 12 +9119 106 83 197.6 1822 66 6 3 6 67 1 45 1 13 +9120 106 84 203.68 1822 66 8 3 6 67 1 47 1 15 +9121 106 85 209.76 1822 66 10 3 6 67 1 49 1 17 +9122 106 86 215.84 1822 70 7 3 6 68 1 46 1 14 +9123 106 87 221.92 1822 70 5 3 6 68 1 44 1 12 +9124 106 88 228 1822 70 6 3 6 68 1 45 1 13 +9125 106 89 234.08 1822 70 8 3 6 68 1 47 1 15 +9126 106 90 240.16 1822 70 10 3 6 68 1 49 1 17 +9127 106 91 246.24 1822 74 9 3 6 69 1 48 1 16 +9128 106 92 252.32 1822 74 7 3 6 69 1 46 1 14 +9129 106 93 258.4 1822 74 5 3 6 69 1 44 1 12 +9130 106 94 264.48 1822 74 8 3 6 69 1 47 1 15 +9131 106 95 270.56 1822 74 10 3 6 69 1 49 1 17 +9132 106 96 276.64 1822 78 9 3 6 70 1 48 1 16 +9133 106 97 282.72 1822 78 7 3 6 70 1 46 1 14 +9134 106 98 288.8 1822 78 5 3 6 70 1 44 1 12 +9135 106 99 294.88 1822 78 2 3 6 70 1 41 1 9 +9136 106 100 300.96 1822 78 4 3 6 70 1 43 1 11 +9137 106 101 307.04 1822 78 6 3 6 70 1 45 1 13 +9138 107 0 -307.04 1834 2 11 3 6 51 1 50 1 18 +9139 107 1 -300.96 1834 2 9 3 6 51 1 48 1 16 +9140 107 2 -294.88 1834 2 7 3 6 51 1 46 1 14 +9141 107 3 -288.8 1834 2 12 3 6 51 1 51 1 19 +9142 107 4 -282.72 1834 2 14 3 6 51 1 53 1 21 +9143 107 5 -276.64 1834 6 15 3 6 52 1 54 1 22 +9144 107 6 -270.56 1834 6 13 3 6 52 1 52 1 20 +9145 107 7 -264.48 1834 6 11 3 6 52 1 50 1 18 +9146 107 8 -258.4 1834 6 12 3 6 52 1 51 1 19 +9147 107 9 -252.32 1834 6 14 3 6 52 1 53 1 21 +9148 107 10 -246.24 1834 10 15 3 6 53 1 54 1 22 +9149 107 11 -240.16 1834 10 13 3 6 53 1 52 1 20 +9150 107 12 -234.08 1834 10 11 3 6 53 1 50 1 18 +9151 107 13 -228 1834 10 10 3 6 53 1 49 1 17 +9152 107 14 -221.92 1834 10 12 3 6 53 1 51 1 19 +9153 107 15 -215.84 1834 14 15 3 6 54 1 54 1 22 +9154 107 16 -209.76 1834 14 13 3 6 54 1 52 1 20 +9155 107 17 -203.68 1834 14 11 3 6 54 1 50 1 18 +9156 107 18 -197.6 1834 14 10 3 6 54 1 49 1 17 +9157 107 19 -191.52 1834 14 12 3 6 54 1 51 1 19 +9158 107 20 -185.44 1834 18 13 3 6 55 1 52 1 20 +9159 107 21 -179.36 1834 18 11 3 6 55 1 50 1 18 +9160 107 22 -173.28 1834 18 9 3 6 55 1 48 1 16 +9161 107 23 -167.2 1834 18 10 3 6 55 1 49 1 17 +9162 107 24 -161.12 1834 18 12 3 6 55 1 51 1 19 +9163 107 25 -155.04 1834 18 14 3 6 55 1 53 1 21 +9164 107 26 -148.96 1834 22 13 3 6 56 1 52 1 20 +9165 107 27 -142.88 1834 22 11 3 6 56 1 50 1 18 +9166 107 28 -136.8 1834 22 10 3 6 56 1 49 1 17 +9167 107 29 -130.72 1834 22 12 3 6 56 1 51 1 19 +9168 107 30 -124.64 1834 22 14 3 6 56 1 53 1 21 +9169 107 31 -118.56 1834 26 13 3 6 57 1 52 1 20 +9170 107 32 -112.48 1834 26 11 3 6 57 1 50 1 18 +9171 107 33 -106.4 1834 26 10 3 6 57 1 49 1 17 +9172 107 34 -100.32 1834 26 12 3 6 57 1 51 1 19 +9173 107 35 -94.24 1834 26 14 3 6 57 1 53 1 21 +9174 107 36 -88.16 1834 30 11 3 6 58 1 50 1 18 +9175 107 37 -82.08 1834 30 9 3 6 58 1 48 1 16 +9176 107 38 -76 1834 30 7 3 6 58 1 46 1 14 +9177 107 39 -69.92 1834 30 10 3 6 58 1 49 1 17 +9178 107 40 -63.84 1834 30 12 3 6 58 1 51 1 19 +9179 107 41 -57.76 1834 34 15 3 6 59 1 54 1 22 +9180 107 42 -51.68 1834 34 13 3 6 59 1 52 1 20 +9181 107 43 -45.6 1834 34 11 3 6 59 1 50 1 18 +9182 107 44 -39.52 1834 34 12 3 6 59 1 51 1 19 +9183 107 45 -33.44 1834 34 14 3 6 59 1 53 1 21 +9184 107 46 -27.36 1834 38 15 3 6 60 1 54 1 22 +9185 107 47 -21.28 1834 38 13 3 6 60 1 52 1 20 +9186 107 48 -15.2 1834 38 11 3 6 60 1 50 1 18 +9187 107 49 -9.12 1834 38 12 3 6 60 1 51 1 19 +9188 107 50 -3.04 1834 38 14 3 6 60 1 53 1 21 +9189 107 51 3.04 1834 42 13 3 6 61 1 52 1 20 +9190 107 52 9.12 1834 42 11 3 6 61 1 50 1 18 +9191 107 53 15.2 1834 42 12 3 6 61 1 51 1 19 +9192 107 54 21.28 1834 42 14 3 6 61 1 53 1 21 +9193 107 55 27.36 1834 42 16 3 6 61 1 55 1 23 +9194 107 56 33.44 1834 46 13 3 6 62 1 52 1 20 +9195 107 57 39.52 1834 46 11 3 6 62 1 50 1 18 +9196 107 58 45.6 1834 46 12 3 6 62 1 51 1 19 +9197 107 59 51.68 1834 46 14 3 6 62 1 53 1 21 +9198 107 60 57.76 1834 46 16 3 6 62 1 55 1 23 +9199 107 61 63.84 1834 50 11 3 6 63 1 50 1 18 +9200 107 62 69.92 1834 50 9 3 6 63 1 48 1 16 +9201 107 63 76 1834 50 8 3 6 63 1 47 1 15 +9202 107 64 82.08 1834 50 10 3 6 63 1 49 1 17 +9203 107 65 88.16 1834 50 12 3 6 63 1 51 1 19 +9204 107 66 94.24 1834 54 13 3 6 64 1 52 1 20 +9205 107 67 100.32 1834 54 11 3 6 64 1 50 1 18 +9206 107 68 106.4 1834 54 9 3 6 64 1 48 1 16 +9207 107 69 112.48 1834 54 12 3 6 64 1 51 1 19 +9208 107 70 118.56 1834 54 14 3 6 64 1 53 1 21 +9209 107 71 124.64 1834 58 13 3 6 65 1 52 1 20 +9210 107 72 130.72 1834 58 11 3 6 65 1 50 1 18 +9211 107 73 136.8 1834 58 9 3 6 65 1 48 1 16 +9212 107 74 142.88 1834 58 12 3 6 65 1 51 1 19 +9213 107 75 148.96 1834 58 14 3 6 65 1 53 1 21 +9214 107 76 155.04 1834 62 13 3 6 66 1 52 1 20 +9215 107 77 161.12 1834 62 11 3 6 66 1 50 1 18 +9216 107 78 167.2 1834 62 9 3 6 66 1 48 1 16 +9217 107 79 173.28 1834 62 10 3 6 66 1 49 1 17 +9218 107 80 179.36 1834 62 12 3 6 66 1 51 1 19 +9219 107 81 185.44 1834 62 14 3 6 66 1 53 1 21 +9220 107 82 191.52 1834 66 11 3 6 67 1 50 1 18 +9221 107 83 197.6 1834 66 9 3 6 67 1 48 1 16 +9222 107 84 203.68 1834 66 12 3 6 67 1 51 1 19 +9223 107 85 209.76 1834 66 14 3 6 67 1 53 1 21 +9224 107 86 215.84 1834 66 16 3 6 67 1 55 1 23 +9225 107 87 221.92 1834 70 11 3 6 68 1 50 1 18 +9226 107 88 228 1834 70 9 3 6 68 1 48 1 16 +9227 107 89 234.08 1834 70 12 3 6 68 1 51 1 19 +9228 107 90 240.16 1834 70 14 3 6 68 1 53 1 21 +9229 107 91 246.24 1834 70 16 3 6 68 1 55 1 23 +9230 107 92 252.32 1834 74 13 3 6 69 1 52 1 20 +9231 107 93 258.4 1834 74 11 3 6 69 1 50 1 18 +9232 107 94 264.48 1834 74 12 3 6 69 1 51 1 19 +9233 107 95 270.56 1834 74 14 3 6 69 1 53 1 21 +9234 107 96 276.64 1834 74 16 3 6 69 1 55 1 23 +9235 107 97 282.72 1834 78 13 3 6 70 1 52 1 20 +9236 107 98 288.8 1834 78 11 3 6 70 1 50 1 18 +9237 107 99 294.88 1834 78 8 3 6 70 1 47 1 15 +9238 107 100 300.96 1834 78 10 3 6 70 1 49 1 17 +9239 107 101 307.04 1834 78 12 3 6 70 1 51 1 19 +9240 108 0 -307.04 1846 2 17 3 6 51 1 56 1 24 +9241 108 1 -300.96 1846 2 15 3 6 51 1 54 1 22 +9242 108 2 -294.88 1846 2 13 3 6 51 1 52 1 20 +9243 108 3 -288.8 1846 2 16 3 6 51 1 55 1 23 +9244 108 4 -282.72 1846 2 18 3 6 51 1 57 1 25 +9245 108 5 -276.64 1846 6 21 3 6 52 1 60 1 28 +9246 108 6 -270.56 1846 6 19 3 6 52 1 58 1 26 +9247 108 7 -264.48 1846 6 17 3 6 52 1 56 1 24 +9248 108 8 -258.4 1846 6 16 3 6 52 1 55 1 23 +9249 108 9 -252.32 1846 6 18 3 6 52 1 57 1 25 +9250 108 10 -246.24 1846 10 19 3 6 53 1 58 1 26 +9251 108 11 -240.16 1846 10 17 3 6 53 1 56 1 24 +9252 108 12 -234.08 1846 10 14 3 6 53 1 53 1 21 +9253 108 13 -228 1846 10 16 3 6 53 1 55 1 23 +9254 108 14 -221.92 1846 10 18 3 6 53 1 57 1 25 +9255 108 15 -215.84 1846 14 21 3 6 54 1 60 1 28 +9256 108 16 -209.76 1846 14 19 3 6 54 1 58 1 26 +9257 108 17 -203.68 1846 14 17 3 6 54 1 56 1 24 +9258 108 18 -197.6 1846 14 14 3 6 54 1 53 1 21 +9259 108 19 -191.52 1846 14 16 3 6 54 1 55 1 23 +9260 108 20 -185.44 1846 18 19 3 6 55 1 58 1 26 +9261 108 21 -179.36 1846 18 17 3 6 55 1 56 1 24 +9262 108 22 -173.28 1846 18 15 3 6 55 1 54 1 22 +9263 108 23 -167.2 1846 18 16 3 6 55 1 55 1 23 +9264 108 24 -161.12 1846 18 18 3 6 55 1 57 1 25 +9265 108 25 -155.04 1846 22 19 3 6 56 1 58 1 26 +9266 108 26 -148.96 1846 22 17 3 6 56 1 56 1 24 +9267 108 27 -142.88 1846 22 15 3 6 56 1 54 1 22 +9268 108 28 -136.8 1846 22 16 3 6 56 1 55 1 23 +9269 108 29 -130.72 1846 22 18 3 6 56 1 57 1 25 +9270 108 30 -124.64 1846 22 20 3 6 56 1 59 1 27 +9271 108 31 -118.56 1846 26 19 3 6 57 1 58 1 26 +9272 108 32 -112.48 1846 26 17 3 6 57 1 56 1 24 +9273 108 33 -106.4 1846 26 15 3 6 57 1 54 1 22 +9274 108 34 -100.32 1846 26 16 3 6 57 1 55 1 23 +9275 108 35 -94.24 1846 26 18 3 6 57 1 57 1 25 +9276 108 36 -88.16 1846 30 17 3 6 58 1 56 1 24 +9277 108 37 -82.08 1846 30 15 3 6 58 1 54 1 22 +9278 108 38 -76 1846 30 13 3 6 58 1 52 1 20 +9279 108 39 -69.92 1846 30 14 3 6 58 1 53 1 21 +9280 108 40 -63.84 1846 30 16 3 6 58 1 55 1 23 +9281 108 41 -57.76 1846 34 19 3 6 59 1 58 1 26 +9282 108 42 -51.68 1846 34 17 3 6 59 1 56 1 24 +9283 108 43 -45.6 1846 34 16 3 6 59 1 55 1 23 +9284 108 44 -39.52 1846 34 18 3 6 59 1 57 1 25 +9285 108 45 -33.44 1846 34 20 3 6 59 1 59 1 27 +9286 108 46 -27.36 1846 38 19 3 6 60 1 58 1 26 +9287 108 47 -21.28 1846 38 17 3 6 60 1 56 1 24 +9288 108 48 -15.2 1846 38 16 3 6 60 1 55 1 23 +9289 108 49 -9.12 1846 38 18 3 6 60 1 57 1 25 +9290 108 50 -3.04 1846 38 20 3 6 60 1 59 1 27 +9291 108 51 3.04 1846 42 19 3 6 61 1 58 1 26 +9292 108 52 9.12 1846 42 17 3 6 61 1 56 1 24 +9293 108 53 15.2 1846 42 15 3 6 61 1 54 1 22 +9294 108 54 21.28 1846 42 18 3 6 61 1 57 1 25 +9295 108 55 27.36 1846 42 20 3 6 61 1 59 1 27 +9296 108 56 33.44 1846 46 19 3 6 62 1 58 1 26 +9297 108 57 39.52 1846 46 17 3 6 62 1 56 1 24 +9298 108 58 45.6 1846 46 15 3 6 62 1 54 1 22 +9299 108 59 51.68 1846 46 18 3 6 62 1 57 1 25 +9300 108 60 57.76 1846 46 20 3 6 62 1 59 1 27 +9301 108 61 63.84 1846 50 15 3 6 63 1 54 1 22 +9302 108 62 69.92 1846 50 13 3 6 63 1 52 1 20 +9303 108 63 76 1846 50 14 3 6 63 1 53 1 21 +9304 108 64 82.08 1846 50 16 3 6 63 1 55 1 23 +9305 108 65 88.16 1846 50 18 3 6 63 1 57 1 25 +9306 108 66 94.24 1846 54 17 3 6 64 1 56 1 24 +9307 108 67 100.32 1846 54 15 3 6 64 1 54 1 22 +9308 108 68 106.4 1846 54 16 3 6 64 1 55 1 23 +9309 108 69 112.48 1846 54 18 3 6 64 1 57 1 25 +9310 108 70 118.56 1846 54 20 3 6 64 1 59 1 27 +9311 108 71 124.64 1846 58 19 3 6 65 1 58 1 26 +9312 108 72 130.72 1846 58 17 3 6 65 1 56 1 24 +9313 108 73 136.8 1846 58 15 3 6 65 1 54 1 22 +9314 108 74 142.88 1846 58 16 3 6 65 1 55 1 23 +9315 108 75 148.96 1846 58 18 3 6 65 1 57 1 25 +9316 108 76 155.04 1846 58 20 3 6 65 1 59 1 27 +9317 108 77 161.12 1846 62 17 3 6 66 1 56 1 24 +9318 108 78 167.2 1846 62 15 3 6 66 1 54 1 22 +9319 108 79 173.28 1846 62 16 3 6 66 1 55 1 23 +9320 108 80 179.36 1846 62 18 3 6 66 1 57 1 25 +9321 108 81 185.44 1846 62 20 3 6 66 1 59 1 27 +9322 108 82 191.52 1846 66 15 3 6 67 1 54 1 22 +9323 108 83 197.6 1846 66 13 3 6 67 1 52 1 20 +9324 108 84 203.68 1846 66 18 3 6 67 1 57 1 25 +9325 108 85 209.76 1846 66 20 3 6 67 1 59 1 27 +9326 108 86 215.84 1846 66 22 3 6 67 1 61 1 29 +9327 108 87 221.92 1846 70 17 3 6 68 1 56 1 24 +9328 108 88 228 1846 70 15 3 6 68 1 54 1 22 +9329 108 89 234.08 1846 70 13 3 6 68 1 52 1 20 +9330 108 90 240.16 1846 70 18 3 6 68 1 57 1 25 +9331 108 91 246.24 1846 70 20 3 6 68 1 59 1 27 +9332 108 92 252.32 1846 74 17 3 6 69 1 56 1 24 +9333 108 93 258.4 1846 74 15 3 6 69 1 54 1 22 +9334 108 94 264.48 1846 74 18 3 6 69 1 57 1 25 +9335 108 95 270.56 1846 74 20 3 6 69 1 59 1 27 +9336 108 96 276.64 1846 74 22 3 6 69 1 61 1 29 +9337 108 97 282.72 1846 78 17 3 6 70 1 56 1 24 +9338 108 98 288.8 1846 78 15 3 6 70 1 54 1 22 +9339 108 99 294.88 1846 78 14 3 6 70 1 53 1 21 +9340 108 100 300.96 1846 78 16 3 6 70 1 55 1 23 +9341 108 101 307.04 1846 78 18 3 6 70 1 57 1 25 +9342 109 0 -313.12 1858 2 23 3 6 51 1 62 1 30 +9343 109 1 -307.04 1858 2 21 3 6 51 1 60 1 28 +9344 109 2 -300.96 1858 2 19 3 6 51 1 58 1 26 +9345 109 3 -294.88 1858 2 20 3 6 51 1 59 1 27 +9346 109 4 -288.8 1858 2 22 3 6 51 1 61 1 29 +9347 109 5 -282.72 1858 2 24 3 6 51 1 63 1 31 +9348 109 6 -276.64 1858 6 25 3 6 52 1 64 2 0 +9349 109 7 -270.56 1858 6 23 3 6 52 1 62 1 30 +9350 109 8 -264.48 1858 6 20 3 6 52 1 59 1 27 +9351 109 9 -258.4 1858 6 22 3 6 52 1 61 1 29 +9352 109 10 -252.32 1858 6 24 3 6 52 1 63 1 31 +9353 109 11 -246.24 1858 10 23 3 6 53 1 62 1 30 +9354 109 12 -240.16 1858 10 21 3 6 53 1 60 1 28 +9355 109 13 -234.08 1858 10 20 3 6 53 1 59 1 27 +9356 109 14 -228 1858 10 22 3 6 53 1 61 1 29 +9357 109 15 -221.92 1858 10 24 3 6 53 1 63 1 31 +9358 109 16 -215.84 1858 14 25 3 6 54 1 64 2 0 +9359 109 17 -209.76 1858 14 23 3 6 54 1 62 1 30 +9360 109 18 -203.68 1858 14 18 3 6 54 1 57 1 25 +9361 109 19 -197.6 1858 14 20 3 6 54 1 59 1 27 +9362 109 20 -191.52 1858 14 22 3 6 54 1 61 1 29 +9363 109 21 -185.44 1858 18 23 3 6 55 1 62 1 30 +9364 109 22 -179.36 1858 18 21 3 6 55 1 60 1 28 +9365 109 23 -173.28 1858 18 20 3 6 55 1 59 1 27 +9366 109 24 -167.2 1858 18 22 3 6 55 1 61 1 29 +9367 109 25 -161.12 1858 18 24 3 6 55 1 63 1 31 +9368 109 26 -155.04 1858 22 23 3 6 56 1 62 1 30 +9369 109 27 -148.96 1858 22 21 3 6 56 1 60 1 28 +9370 109 28 -142.88 1858 22 22 3 6 56 1 61 1 29 +9371 109 29 -136.8 1858 22 24 3 6 56 1 63 1 31 +9372 109 30 -130.72 1858 22 26 3 6 56 1 65 2 1 +9373 109 31 -124.64 1858 26 25 3 6 57 1 64 2 0 +9374 109 32 -118.56 1858 26 23 3 6 57 1 62 1 30 +9375 109 33 -112.48 1858 26 21 3 6 57 1 60 1 28 +9376 109 34 -106.4 1858 26 20 3 6 57 1 59 1 27 +9377 109 35 -100.32 1858 26 22 3 6 57 1 61 1 29 +9378 109 36 -94.24 1858 26 24 3 6 57 1 63 1 31 +9379 109 37 -88.16 1858 30 21 3 6 58 1 60 1 28 +9380 109 38 -82.08 1858 30 19 3 6 58 1 58 1 26 +9381 109 39 -76 1858 30 18 3 6 58 1 57 1 25 +9382 109 40 -69.92 1858 30 20 3 6 58 1 59 1 27 +9383 109 41 -63.84 1858 30 22 3 6 58 1 61 1 29 +9384 109 42 -57.76 1858 34 25 3 6 59 1 64 2 0 +9385 109 43 -51.68 1858 34 23 3 6 59 1 62 1 30 +9386 109 44 -45.6 1858 34 21 3 6 59 1 60 1 28 +9387 109 45 -39.52 1858 34 22 3 6 59 1 61 1 29 +9388 109 46 -33.44 1858 34 24 3 6 59 1 63 1 31 +9389 109 47 -27.36 1858 38 25 3 6 60 1 64 2 0 +9390 109 48 -21.28 1858 38 23 3 6 60 1 62 1 30 +9391 109 49 -15.2 1858 38 21 3 6 60 1 60 1 28 +9392 109 50 -9.12 1858 38 22 3 6 60 1 61 1 29 +9393 109 51 -3.04 1858 38 24 3 6 60 1 63 1 31 +9394 109 52 3.04 1858 42 23 3 6 61 1 62 1 30 +9395 109 53 9.12 1858 42 21 3 6 61 1 60 1 28 +9396 109 54 15.2 1858 42 22 3 6 61 1 61 1 29 +9397 109 55 21.28 1858 42 24 3 6 61 1 63 1 31 +9398 109 56 27.36 1858 42 26 3 6 61 1 65 2 1 +9399 109 57 33.44 1858 46 23 3 6 62 1 62 1 30 +9400 109 58 39.52 1858 46 21 3 6 62 1 60 1 28 +9401 109 59 45.6 1858 46 22 3 6 62 1 61 1 29 +9402 109 60 51.68 1858 46 24 3 6 62 1 63 1 31 +9403 109 61 57.76 1858 46 26 3 6 62 1 65 2 1 +9404 109 62 63.84 1858 50 21 3 6 63 1 60 1 28 +9405 109 63 69.92 1858 50 19 3 6 63 1 58 1 26 +9406 109 64 76 1858 50 17 3 6 63 1 56 1 24 +9407 109 65 82.08 1858 50 20 3 6 63 1 59 1 27 +9408 109 66 88.16 1858 50 22 3 6 63 1 61 1 29 +9409 109 67 94.24 1858 54 23 3 6 64 1 62 1 30 +9410 109 68 100.32 1858 54 21 3 6 64 1 60 1 28 +9411 109 69 106.4 1858 54 19 3 6 64 1 58 1 26 +9412 109 70 112.48 1858 54 22 3 6 64 1 61 1 29 +9413 109 71 118.56 1858 54 24 3 6 64 1 63 1 31 +9414 109 72 124.64 1858 54 26 3 6 64 1 65 2 1 +9415 109 73 130.72 1858 58 25 3 6 65 1 64 2 0 +9416 109 74 136.8 1858 58 23 3 6 65 1 62 1 30 +9417 109 75 142.88 1858 58 21 3 6 65 1 60 1 28 +9418 109 76 148.96 1858 58 22 3 6 65 1 61 1 29 +9419 109 77 155.04 1858 58 24 3 6 65 1 63 1 31 +9420 109 78 161.12 1858 62 23 3 6 66 1 62 1 30 +9421 109 79 167.2 1858 62 21 3 6 66 1 60 1 28 +9422 109 80 173.28 1858 62 19 3 6 66 1 58 1 26 +9423 109 81 179.36 1858 62 22 3 6 66 1 61 1 29 +9424 109 82 185.44 1858 62 24 3 6 66 1 63 1 31 +9425 109 83 191.52 1858 66 21 3 6 67 1 60 1 28 +9426 109 84 197.6 1858 66 19 3 6 67 1 58 1 26 +9427 109 85 203.68 1858 66 17 3 6 67 1 56 1 24 +9428 109 86 209.76 1858 66 24 3 6 67 1 63 1 31 +9429 109 87 215.84 1858 66 26 3 6 67 1 65 2 1 +9430 109 88 221.92 1858 70 23 3 6 68 1 62 1 30 +9431 109 89 228 1858 70 21 3 6 68 1 60 1 28 +9432 109 90 234.08 1858 70 19 3 6 68 1 58 1 26 +9433 109 91 240.16 1858 70 22 3 6 68 1 61 1 29 +9434 109 92 246.24 1858 70 24 3 6 68 1 63 1 31 +9435 109 93 252.32 1858 74 23 3 6 69 1 62 1 30 +9436 109 94 258.4 1858 74 21 3 6 69 1 60 1 28 +9437 109 95 264.48 1858 74 19 3 6 69 1 58 1 26 +9438 109 96 270.56 1858 74 24 3 6 69 1 63 1 31 +9439 109 97 276.64 1858 74 26 3 6 69 1 65 2 1 +9440 109 98 282.72 1858 78 23 3 6 70 1 62 1 30 +9441 109 99 288.8 1858 78 21 3 6 70 1 60 1 28 +9442 109 100 294.88 1858 78 19 3 6 70 1 58 1 26 +9443 109 101 300.96 1858 78 20 3 6 70 1 59 1 27 +9444 109 102 307.04 1858 78 22 3 6 70 1 61 1 29 +9445 109 103 313.12 1858 78 24 3 6 70 1 63 1 31 +9446 110 0 -313.12 1870 2 29 3 6 51 1 68 2 4 +9447 110 1 -307.04 1870 2 27 3 6 51 1 66 2 2 +9448 110 2 -300.96 1870 2 25 3 6 51 1 64 2 0 +9449 110 3 -294.88 1870 2 26 3 6 51 1 65 2 1 +9450 110 4 -288.8 1870 2 28 3 6 51 1 67 2 3 +9451 110 5 -282.72 1870 6 29 3 6 52 1 68 2 4 +9452 110 6 -276.64 1870 6 27 3 6 52 1 66 2 2 +9453 110 7 -270.56 1870 6 26 3 6 52 1 65 2 1 +9454 110 8 -264.48 1870 6 28 3 6 52 1 67 2 3 +9455 110 9 -258.4 1870 6 30 3 6 52 1 69 2 5 +9456 110 10 -252.32 1870 10 29 3 6 53 1 68 2 4 +9457 110 11 -246.24 1870 10 27 3 6 53 1 66 2 2 +9458 110 12 -240.16 1870 10 25 3 6 53 1 64 2 0 +9459 110 13 -234.08 1870 10 26 3 6 53 1 65 2 1 +9460 110 14 -228 1870 10 28 3 6 53 1 67 2 3 +9461 110 15 -221.92 1870 10 30 3 6 53 1 69 2 5 +9462 110 16 -215.84 1870 14 29 3 6 54 1 68 2 4 +9463 110 17 -209.76 1870 14 27 3 6 54 1 66 2 2 +9464 110 18 -203.68 1870 14 24 3 6 54 1 63 1 31 +9465 110 19 -197.6 1870 14 26 3 6 54 1 65 2 1 +9466 110 20 -191.52 1870 14 28 3 6 54 1 67 2 3 +9467 110 21 -185.44 1870 18 29 3 6 55 1 68 2 4 +9468 110 22 -179.36 1870 18 27 3 6 55 1 66 2 2 +9469 110 23 -173.28 1870 18 25 3 6 55 1 64 2 0 +9470 110 24 -167.2 1870 18 26 3 6 55 1 65 2 1 +9471 110 25 -161.12 1870 18 28 3 6 55 1 67 2 3 +9472 110 26 -155.04 1870 22 29 3 6 56 1 68 2 4 +9473 110 27 -148.96 1870 22 27 3 6 56 1 66 2 2 +9474 110 28 -142.88 1870 22 25 3 6 56 1 64 2 0 +9475 110 29 -136.8 1870 22 28 3 6 56 1 67 2 3 +9476 110 30 -130.72 1870 22 30 3 6 56 1 69 2 5 +9477 110 31 -124.64 1870 26 29 3 6 57 1 68 2 4 +9478 110 32 -118.56 1870 26 27 3 6 57 1 66 2 2 +9479 110 33 -112.48 1870 26 26 3 6 57 1 65 2 1 +9480 110 34 -106.4 1870 26 28 3 6 57 1 67 2 3 +9481 110 35 -100.32 1870 26 30 3 6 57 1 69 2 5 +9482 110 36 -94.24 1870 30 27 3 6 58 1 66 2 2 +9483 110 37 -88.16 1870 30 25 3 6 58 1 64 2 0 +9484 110 38 -82.08 1870 30 23 3 6 58 1 62 1 30 +9485 110 39 -76 1870 30 24 3 6 58 1 63 1 31 +9486 110 40 -69.92 1870 30 26 3 6 58 1 65 2 1 +9487 110 41 -63.84 1870 30 28 3 6 58 1 67 2 3 +9488 110 42 -57.76 1870 34 29 3 6 59 1 68 2 4 +9489 110 43 -51.68 1870 34 27 3 6 59 1 66 2 2 +9490 110 44 -45.6 1870 34 26 3 6 59 1 65 2 1 +9491 110 45 -39.52 1870 34 28 3 6 59 1 67 2 3 +9492 110 46 -33.44 1870 34 30 3 6 59 1 69 2 5 +9493 110 47 -27.36 1870 38 29 3 6 60 1 68 2 4 +9494 110 48 -21.28 1870 38 27 3 6 60 1 66 2 2 +9495 110 49 -15.2 1870 38 26 3 6 60 1 65 2 1 +9496 110 50 -9.12 1870 38 28 3 6 60 1 67 2 3 +9497 110 51 -3.04 1870 38 30 3 6 60 1 69 2 5 +9498 110 52 3.04 1870 42 29 3 6 61 1 68 2 4 +9499 110 53 9.12 1870 42 27 3 6 61 1 66 2 2 +9500 110 54 15.2 1870 42 25 3 6 61 1 64 2 0 +9501 110 55 21.28 1870 42 28 3 6 61 1 67 2 3 +9502 110 56 27.36 1870 42 30 3 6 61 1 69 2 5 +9503 110 57 33.44 1870 46 29 3 6 62 1 68 2 4 +9504 110 58 39.52 1870 46 27 3 6 62 1 66 2 2 +9505 110 59 45.6 1870 46 25 3 6 62 1 64 2 0 +9506 110 60 51.68 1870 46 28 3 6 62 1 67 2 3 +9507 110 61 57.76 1870 46 30 3 6 62 1 69 2 5 +9508 110 62 63.84 1870 50 27 3 6 63 1 66 2 2 +9509 110 63 69.92 1870 50 25 3 6 63 1 64 2 0 +9510 110 64 76 1870 50 23 3 6 63 1 62 1 30 +9511 110 65 82.08 1870 50 24 3 6 63 1 63 1 31 +9512 110 66 88.16 1870 50 26 3 6 63 1 65 2 1 +9513 110 67 94.24 1870 50 28 3 6 63 1 67 2 3 +9514 110 68 100.32 1870 54 29 3 6 64 1 68 2 4 +9515 110 69 106.4 1870 54 27 3 6 64 1 66 2 2 +9516 110 70 112.48 1870 54 25 3 6 64 1 64 2 0 +9517 110 71 118.56 1870 54 28 3 6 64 1 67 2 3 +9518 110 72 124.64 1870 54 30 3 6 64 1 69 2 5 +9519 110 73 130.72 1870 58 29 3 6 65 1 68 2 4 +9520 110 74 136.8 1870 58 27 3 6 65 1 66 2 2 +9521 110 75 142.88 1870 58 26 3 6 65 1 65 2 1 +9522 110 76 148.96 1870 58 28 3 6 65 1 67 2 3 +9523 110 77 155.04 1870 58 30 3 6 65 1 69 2 5 +9524 110 78 161.12 1870 62 27 3 6 66 1 66 2 2 +9525 110 79 167.2 1870 62 25 3 6 66 1 64 2 0 +9526 110 80 173.28 1870 62 26 3 6 66 1 65 2 1 +9527 110 81 179.36 1870 62 28 3 6 66 1 67 2 3 +9528 110 82 185.44 1870 62 30 3 6 66 1 69 2 5 +9529 110 83 191.52 1870 66 27 3 6 67 1 66 2 2 +9530 110 84 197.6 1870 66 25 3 6 67 1 64 2 0 +9531 110 85 203.68 1870 66 23 3 6 67 1 62 1 30 +9532 110 86 209.76 1870 66 28 3 6 67 1 67 2 3 +9533 110 87 215.84 1870 66 30 3 6 67 1 69 2 5 +9534 110 88 221.92 1870 70 29 3 6 68 1 68 2 4 +9535 110 89 228 1870 70 27 3 6 68 1 66 2 2 +9536 110 90 234.08 1870 70 25 3 6 68 1 64 2 0 +9537 110 91 240.16 1870 70 26 3 6 68 1 65 2 1 +9538 110 92 246.24 1870 70 28 3 6 68 1 67 2 3 +9539 110 93 252.32 1870 70 30 3 6 68 1 69 2 5 +9540 110 94 258.4 1870 74 29 3 6 69 1 68 2 4 +9541 110 95 264.48 1870 74 27 3 6 69 1 66 2 2 +9542 110 96 270.56 1870 74 25 3 6 69 1 64 2 0 +9543 110 97 276.64 1870 74 28 3 6 69 1 67 2 3 +9544 110 98 282.72 1870 74 30 3 6 69 1 69 2 5 +9545 110 99 288.8 1870 78 27 3 6 70 1 66 2 2 +9546 110 100 294.88 1870 78 25 3 6 70 1 64 2 0 +9547 110 101 300.96 1870 78 26 3 6 70 1 65 2 1 +9548 110 102 307.04 1870 78 28 3 6 70 1 67 2 3 +9549 110 103 313.12 1870 78 30 3 6 70 1 69 2 5 +9550 111 0 -313.12 1882 2 33 3 6 51 1 72 2 8 +9551 111 1 -307.04 1882 2 31 3 6 51 1 70 2 6 +9552 111 2 -300.96 1882 2 30 3 6 51 1 69 2 5 +9553 111 3 -294.88 1882 2 32 3 6 51 1 71 2 7 +9554 111 4 -288.8 1882 2 34 3 6 51 1 73 2 9 +9555 111 5 -282.72 1882 6 35 3 6 52 1 74 2 10 +9556 111 6 -276.64 1882 6 33 3 6 52 1 72 2 8 +9557 111 7 -270.56 1882 6 31 3 6 52 1 70 2 6 +9558 111 8 -264.48 1882 6 32 3 6 52 1 71 2 7 +9559 111 9 -258.4 1882 6 34 3 6 52 1 73 2 9 +9560 111 10 -252.32 1882 10 35 3 6 53 1 74 2 10 +9561 111 11 -246.24 1882 10 33 3 6 53 1 72 2 8 +9562 111 12 -240.16 1882 10 31 3 6 53 1 70 2 6 +9563 111 13 -234.08 1882 10 32 3 6 53 1 71 2 7 +9564 111 14 -228 1882 10 34 3 6 53 1 73 2 9 +9565 111 15 -221.92 1882 14 35 3 6 54 1 74 2 10 +9566 111 16 -215.84 1882 14 33 3 6 54 1 72 2 8 +9567 111 17 -209.76 1882 14 31 3 6 54 1 70 2 6 +9568 111 18 -203.68 1882 14 30 3 6 54 1 69 2 5 +9569 111 19 -197.6 1882 14 32 3 6 54 1 71 2 7 +9570 111 20 -191.52 1882 14 34 3 6 54 1 73 2 9 +9571 111 21 -185.44 1882 18 33 3 6 55 1 72 2 8 +9572 111 22 -179.36 1882 18 31 3 6 55 1 70 2 6 +9573 111 23 -173.28 1882 18 30 3 6 55 1 69 2 5 +9574 111 24 -167.2 1882 18 32 3 6 55 1 71 2 7 +9575 111 25 -161.12 1882 18 34 3 6 55 1 73 2 9 +9576 111 26 -155.04 1882 22 33 3 6 56 1 72 2 8 +9577 111 27 -148.96 1882 22 31 3 6 56 1 70 2 6 +9578 111 28 -142.88 1882 22 32 3 6 56 1 71 2 7 +9579 111 29 -136.8 1882 22 34 3 6 56 1 73 2 9 +9580 111 30 -130.72 1882 22 36 3 6 56 1 75 2 11 +9581 111 31 -124.64 1882 26 35 3 6 57 1 74 2 10 +9582 111 32 -118.56 1882 26 33 3 6 57 1 72 2 8 +9583 111 33 -112.48 1882 26 31 3 6 57 1 70 2 6 +9584 111 34 -106.4 1882 26 32 3 6 57 1 71 2 7 +9585 111 35 -100.32 1882 26 34 3 6 57 1 73 2 9 +9586 111 36 -94.24 1882 30 33 3 6 58 1 72 2 8 +9587 111 37 -88.16 1882 30 31 3 6 58 1 70 2 6 +9588 111 38 -82.08 1882 30 29 3 6 58 1 68 2 4 +9589 111 39 -76 1882 30 30 3 6 58 1 69 2 5 +9590 111 40 -69.92 1882 30 32 3 6 58 1 71 2 7 +9591 111 41 -63.84 1882 30 34 3 6 58 1 73 2 9 +9592 111 42 -57.76 1882 34 35 3 6 59 1 74 2 10 +9593 111 43 -51.68 1882 34 33 3 6 59 1 72 2 8 +9594 111 44 -45.6 1882 34 31 3 6 59 1 70 2 6 +9595 111 45 -39.52 1882 34 32 3 6 59 1 71 2 7 +9596 111 46 -33.44 1882 34 34 3 6 59 1 73 2 9 +9597 111 47 -27.36 1882 38 35 3 6 60 1 74 2 10 +9598 111 48 -21.28 1882 38 33 3 6 60 1 72 2 8 +9599 111 49 -15.2 1882 38 31 3 6 60 1 70 2 6 +9600 111 50 -9.12 1882 38 32 3 6 60 1 71 2 7 +9601 111 51 -3.04 1882 38 34 3 6 60 1 73 2 9 +9602 111 52 3.04 1882 42 33 3 6 61 1 72 2 8 +9603 111 53 9.12 1882 42 31 3 6 61 1 70 2 6 +9604 111 54 15.2 1882 42 32 3 6 61 1 71 2 7 +9605 111 55 21.28 1882 42 34 3 6 61 1 73 2 9 +9606 111 56 27.36 1882 42 36 3 6 61 1 75 2 11 +9607 111 57 33.44 1882 46 33 3 6 62 1 72 2 8 +9608 111 58 39.52 1882 46 31 3 6 62 1 70 2 6 +9609 111 59 45.6 1882 46 32 3 6 62 1 71 2 7 +9610 111 60 51.68 1882 46 34 3 6 62 1 73 2 9 +9611 111 61 57.76 1882 46 36 3 6 62 1 75 2 11 +9612 111 62 63.84 1882 50 33 3 6 63 1 72 2 8 +9613 111 63 69.92 1882 50 31 3 6 63 1 70 2 6 +9614 111 64 76 1882 50 29 3 6 63 1 68 2 4 +9615 111 65 82.08 1882 50 30 3 6 63 1 69 2 5 +9616 111 66 88.16 1882 50 32 3 6 63 1 71 2 7 +9617 111 67 94.24 1882 50 34 3 6 63 1 73 2 9 +9618 111 68 100.32 1882 54 33 3 6 64 1 72 2 8 +9619 111 69 106.4 1882 54 31 3 6 64 1 70 2 6 +9620 111 70 112.48 1882 54 32 3 6 64 1 71 2 7 +9621 111 71 118.56 1882 54 34 3 6 64 1 73 2 9 +9622 111 72 124.64 1882 54 36 3 6 64 1 75 2 11 +9623 111 73 130.72 1882 58 35 3 6 65 1 74 2 10 +9624 111 74 136.8 1882 58 33 3 6 65 1 72 2 8 +9625 111 75 142.88 1882 58 31 3 6 65 1 70 2 6 +9626 111 76 148.96 1882 58 32 3 6 65 1 71 2 7 +9627 111 77 155.04 1882 58 34 3 6 65 1 73 2 9 +9628 111 78 161.12 1882 62 33 3 6 66 1 72 2 8 +9629 111 79 167.2 1882 62 31 3 6 66 1 70 2 6 +9630 111 80 173.28 1882 62 29 3 6 66 1 68 2 4 +9631 111 81 179.36 1882 62 32 3 6 66 1 71 2 7 +9632 111 82 185.44 1882 62 34 3 6 66 1 73 2 9 +9633 111 83 191.52 1882 66 33 3 6 67 1 72 2 8 +9634 111 84 197.6 1882 66 31 3 6 67 1 70 2 6 +9635 111 85 203.68 1882 66 29 3 6 67 1 68 2 4 +9636 111 86 209.76 1882 66 32 3 6 67 1 71 2 7 +9637 111 87 215.84 1882 66 34 3 6 67 1 73 2 9 +9638 111 88 221.92 1882 66 36 3 6 67 1 75 2 11 +9639 111 89 228 1882 70 33 3 6 68 1 72 2 8 +9640 111 90 234.08 1882 70 31 3 6 68 1 70 2 6 +9641 111 91 240.16 1882 70 32 3 6 68 1 71 2 7 +9642 111 92 246.24 1882 70 34 3 6 68 1 73 2 9 +9643 111 93 252.32 1882 70 36 3 6 68 1 75 2 11 +9644 111 94 258.4 1882 74 33 3 6 69 1 72 2 8 +9645 111 95 264.48 1882 74 31 3 6 69 1 70 2 6 +9646 111 96 270.56 1882 74 32 3 6 69 1 71 2 7 +9647 111 97 276.64 1882 74 34 3 6 69 1 73 2 9 +9648 111 98 282.72 1882 74 36 3 6 69 1 75 2 11 +9649 111 99 288.8 1882 78 33 3 6 70 1 72 2 8 +9650 111 100 294.88 1882 78 31 3 6 70 1 70 2 6 +9651 111 101 300.96 1882 78 29 3 6 70 1 68 2 4 +9652 111 102 307.04 1882 78 32 3 6 70 1 71 2 7 +9653 111 103 313.12 1882 78 34 3 6 70 1 73 2 9 +9654 112 0 -319.2 1894 2 39 3 6 51 1 78 2 14 +9655 112 1 -313.12 1894 2 37 3 6 51 1 76 2 12 +9656 112 2 -307.04 1894 2 35 3 6 51 1 74 2 10 +9657 112 3 -300.96 1894 2 36 3 6 51 1 75 2 11 +9658 112 4 -294.88 1894 2 38 3 6 51 1 77 2 13 +9659 112 5 -288.8 1894 2 40 3 6 51 1 79 2 15 +9660 112 6 -282.72 1894 6 39 3 6 52 1 78 2 14 +9661 112 7 -276.64 1894 6 37 3 6 52 1 76 2 12 +9662 112 8 -270.56 1894 6 36 3 6 52 1 75 2 11 +9663 112 9 -264.48 1894 6 38 3 6 52 1 77 2 13 +9664 112 10 -258.4 1894 6 40 3 6 52 1 79 2 15 +9665 112 11 -252.32 1894 10 39 3 6 53 1 78 2 14 +9666 112 12 -246.24 1894 10 37 3 6 53 1 76 2 12 +9667 112 13 -240.16 1894 10 36 3 6 53 1 75 2 11 +9668 112 14 -234.08 1894 10 38 3 6 53 1 77 2 13 +9669 112 15 -228 1894 10 40 3 6 53 1 79 2 15 +9670 112 16 -221.92 1894 14 39 3 6 54 1 78 2 14 +9671 112 17 -215.84 1894 14 37 3 6 54 1 76 2 12 +9672 112 18 -209.76 1894 14 36 3 6 54 1 75 2 11 +9673 112 19 -203.68 1894 14 38 3 6 54 1 77 2 13 +9674 112 20 -197.6 1894 14 40 3 6 54 1 79 2 15 +9675 112 21 -191.52 1894 18 39 3 6 55 1 78 2 14 +9676 112 22 -185.44 1894 18 37 3 6 55 1 76 2 12 +9677 112 23 -179.36 1894 18 35 3 6 55 1 74 2 10 +9678 112 24 -173.28 1894 18 36 3 6 55 1 75 2 11 +9679 112 25 -167.2 1894 18 38 3 6 55 1 77 2 13 +9680 112 26 -161.12 1894 18 40 3 6 55 1 79 2 15 +9681 112 27 -155.04 1894 22 39 3 6 56 1 78 2 14 +9682 112 28 -148.96 1894 22 37 3 6 56 1 76 2 12 +9683 112 29 -142.88 1894 22 35 3 6 56 1 74 2 10 +9684 112 30 -136.8 1894 22 38 3 6 56 1 77 2 13 +9685 112 31 -130.72 1894 22 40 3 6 56 1 79 2 15 +9686 112 32 -124.64 1894 26 39 3 6 57 1 78 2 14 +9687 112 33 -118.56 1894 26 37 3 6 57 1 76 2 12 +9688 112 34 -112.48 1894 26 36 3 6 57 1 75 2 11 +9689 112 35 -106.4 1894 26 38 3 6 57 1 77 2 13 +9690 112 36 -100.32 1894 26 40 3 6 57 1 79 2 15 +9691 112 37 -94.24 1894 30 39 3 6 58 1 78 2 14 +9692 112 38 -88.16 1894 30 37 3 6 58 1 76 2 12 +9693 112 39 -82.08 1894 30 35 3 6 58 1 74 2 10 +9694 112 40 -76 1894 30 36 3 6 58 1 75 2 11 +9695 112 41 -69.92 1894 30 38 3 6 58 1 77 2 13 +9696 112 42 -63.84 1894 30 40 3 6 58 1 79 2 15 +9697 112 43 -57.76 1894 34 39 3 6 59 1 78 2 14 +9698 112 44 -51.68 1894 34 37 3 6 59 1 76 2 12 +9699 112 45 -45.6 1894 34 36 3 6 59 1 75 2 11 +9700 112 46 -39.52 1894 34 38 3 6 59 1 77 2 13 +9701 112 47 -33.44 1894 34 40 3 6 59 1 79 2 15 +9702 112 48 -27.36 1894 38 39 3 6 60 1 78 2 14 +9703 112 49 -21.28 1894 38 37 3 6 60 1 76 2 12 +9704 112 50 -15.2 1894 38 36 3 6 60 1 75 2 11 +9705 112 51 -9.12 1894 38 38 3 6 60 1 77 2 13 +9706 112 52 -3.04 1894 38 40 3 6 60 1 79 2 15 +9707 112 53 3.04 1894 42 39 3 6 61 1 78 2 14 +9708 112 54 9.12 1894 42 37 3 6 61 1 76 2 12 +9709 112 55 15.2 1894 42 35 3 6 61 1 74 2 10 +9710 112 56 21.28 1894 42 38 3 6 61 1 77 2 13 +9711 112 57 27.36 1894 42 40 3 6 61 1 79 2 15 +9712 112 58 33.44 1894 46 39 3 6 62 1 78 2 14 +9713 112 59 39.52 1894 46 37 3 6 62 1 76 2 12 +9714 112 60 45.6 1894 46 35 3 6 62 1 74 2 10 +9715 112 61 51.68 1894 46 38 3 6 62 1 77 2 13 +9716 112 62 57.76 1894 46 40 3 6 62 1 79 2 15 +9717 112 63 63.84 1894 50 39 3 6 63 1 78 2 14 +9718 112 64 69.92 1894 50 37 3 6 63 1 76 2 12 +9719 112 65 76 1894 50 35 3 6 63 1 74 2 10 +9720 112 66 82.08 1894 50 36 3 6 63 1 75 2 11 +9721 112 67 88.16 1894 50 38 3 6 63 1 77 2 13 +9722 112 68 94.24 1894 50 40 3 6 63 1 79 2 15 +9723 112 69 100.32 1894 54 39 3 6 64 1 78 2 14 +9724 112 70 106.4 1894 54 37 3 6 64 1 76 2 12 +9725 112 71 112.48 1894 54 35 3 6 64 1 74 2 10 +9726 112 72 118.56 1894 54 38 3 6 64 1 77 2 13 +9727 112 73 124.64 1894 54 40 3 6 64 1 79 2 15 +9728 112 74 130.72 1894 58 39 3 6 65 1 78 2 14 +9729 112 75 136.8 1894 58 37 3 6 65 1 76 2 12 +9730 112 76 142.88 1894 58 36 3 6 65 1 75 2 11 +9731 112 77 148.96 1894 58 38 3 6 65 1 77 2 13 +9732 112 78 155.04 1894 58 40 3 6 65 1 79 2 15 +9733 112 79 161.12 1894 62 39 3 6 66 1 78 2 14 +9734 112 80 167.2 1894 62 37 3 6 66 1 76 2 12 +9735 112 81 173.28 1894 62 35 3 6 66 1 74 2 10 +9736 112 82 179.36 1894 62 36 3 6 66 1 75 2 11 +9737 112 83 185.44 1894 62 38 3 6 66 1 77 2 13 +9738 112 84 191.52 1894 62 40 3 6 66 1 79 2 15 +9739 112 85 197.6 1894 66 39 3 6 67 1 78 2 14 +9740 112 86 203.68 1894 66 37 3 6 67 1 76 2 12 +9741 112 87 209.76 1894 66 35 3 6 67 1 74 2 10 +9742 112 88 215.84 1894 66 38 3 6 67 1 77 2 13 +9743 112 89 221.92 1894 66 40 3 6 67 1 79 2 15 +9744 112 90 228 1894 70 39 3 6 68 1 78 2 14 +9745 112 91 234.08 1894 70 37 3 6 68 1 76 2 12 +9746 112 92 240.16 1894 70 35 3 6 68 1 74 2 10 +9747 112 93 246.24 1894 70 38 3 6 68 1 77 2 13 +9748 112 94 252.32 1894 70 40 3 6 68 1 79 2 15 +9749 112 95 258.4 1894 74 39 3 6 69 1 78 2 14 +9750 112 96 264.48 1894 74 37 3 6 69 1 76 2 12 +9751 112 97 270.56 1894 74 35 3 6 69 1 74 2 10 +9752 112 98 276.64 1894 74 38 3 6 69 1 77 2 13 +9753 112 99 282.72 1894 74 40 3 6 69 1 79 2 15 +9754 112 100 288.8 1894 78 39 3 6 70 1 78 2 14 +9755 112 101 294.88 1894 78 37 3 6 70 1 76 2 12 +9756 112 102 300.96 1894 78 35 3 6 70 1 74 2 10 +9757 112 103 307.04 1894 78 36 3 6 70 1 75 2 11 +9758 112 104 313.12 1894 78 38 3 6 70 1 77 2 13 +9759 112 105 319.2 1894 78 40 3 6 70 1 79 2 15 +9760 113 0 -320.46 1906 3 5 3 7 51 2 84 2 20 +9761 113 1 -314.58 1906 3 3 3 7 51 2 82 2 18 +9762 113 2 -308.7 1906 3 1 3 7 51 2 80 2 16 +9763 113 3 -302.82 1906 3 2 3 7 51 2 81 2 17 +9764 113 4 -296.94 1906 3 4 3 7 51 2 83 2 19 +9765 113 5 -291.06 1906 3 6 3 7 51 2 85 2 21 +9766 113 6 -285.18 1906 7 3 3 7 52 2 82 2 18 +9767 113 7 -279.3 1906 7 1 3 7 52 2 80 2 16 +9768 113 8 -273.42 1906 7 2 3 7 52 2 81 2 17 +9769 113 9 -267.54 1906 7 4 3 7 52 2 83 2 19 +9770 113 10 -261.66 1906 7 6 3 7 52 2 85 2 21 +9771 113 11 -255.78 1906 11 5 3 7 53 2 84 2 20 +9772 113 12 -249.9 1906 11 3 3 7 53 2 82 2 18 +9773 113 13 -244.02 1906 11 1 3 7 53 2 80 2 16 +9774 113 14 -238.14 1906 11 2 3 7 53 2 81 2 17 +9775 113 15 -232.26 1906 11 4 3 7 53 2 83 2 19 +9776 113 16 -226.38 1906 11 6 3 7 53 2 85 2 21 +9777 113 17 -220.5 1906 15 3 3 7 54 2 82 2 18 +9778 113 18 -214.62 1906 15 1 3 7 54 2 80 2 16 +9779 113 19 -208.74 1906 15 2 3 7 54 2 81 2 17 +9780 113 20 -202.86 1906 15 4 3 7 54 2 83 2 19 +9781 113 21 -196.98 1906 15 6 3 7 54 2 85 2 21 +9782 113 22 -191.1 1906 19 5 3 7 55 2 84 2 20 +9783 113 23 -185.22 1906 19 3 3 7 55 2 82 2 18 +9784 113 24 -179.34 1906 19 1 3 7 55 2 80 2 16 +9785 113 25 -173.46 1906 19 2 3 7 55 2 81 2 17 +9786 113 26 -167.58 1906 19 4 3 7 55 2 83 2 19 +9787 113 27 -161.7 1906 19 6 3 7 55 2 85 2 21 +9788 113 28 -155.82 1906 23 5 3 7 56 2 84 2 20 +9789 113 29 -149.94 1906 23 3 3 7 56 2 82 2 18 +9790 113 30 -144.06 1906 23 1 3 7 56 2 80 2 16 +9791 113 31 -138.18 1906 23 2 3 7 56 2 81 2 17 +9792 113 32 -132.3 1906 23 4 3 7 56 2 83 2 19 +9793 113 33 -126.42 1906 27 5 3 7 57 2 84 2 20 +9794 113 34 -120.54 1906 27 3 3 7 57 2 82 2 18 +9795 113 35 -114.66 1906 27 1 3 7 57 2 80 2 16 +9796 113 36 -108.78 1906 27 2 3 7 57 2 81 2 17 +9797 113 37 -102.9 1906 27 4 3 7 57 2 83 2 19 +9798 113 38 -97.02 1906 27 6 3 7 57 2 85 2 21 +9799 113 39 -91.14 1906 31 5 3 7 58 2 84 2 20 +9800 113 40 -85.26 1906 31 3 3 7 58 2 82 2 18 +9801 113 41 -79.38 1906 31 1 3 7 58 2 80 2 16 +9802 113 42 -73.5 1906 31 2 3 7 58 2 81 2 17 +9803 113 43 -67.62 1906 31 4 3 7 58 2 83 2 19 +9804 113 44 -61.74 1906 35 5 3 7 59 2 84 2 20 +9805 113 45 -55.86 1906 35 3 3 7 59 2 82 2 18 +9806 113 46 -49.98 1906 35 1 3 7 59 2 80 2 16 +9807 113 47 -44.1 1906 35 2 3 7 59 2 81 2 17 +9808 113 48 -38.22 1906 35 4 3 7 59 2 83 2 19 +9809 113 49 -32.34 1906 35 6 3 7 59 2 85 2 21 +9810 113 50 -26.46 1906 39 3 3 7 60 2 82 2 18 +9811 113 51 -20.58 1906 39 1 3 7 60 2 80 2 16 +9812 113 52 -14.7 1906 39 2 3 7 60 2 81 2 17 +9813 113 53 -8.82 1906 39 4 3 7 60 2 83 2 19 +9814 113 54 -2.94 1906 39 6 3 7 60 2 85 2 21 +9815 113 55 2.94 1906 43 5 3 7 61 2 84 2 20 +9816 113 56 8.82 1906 43 3 3 7 61 2 82 2 18 +9817 113 57 14.7 1906 43 1 3 7 61 2 80 2 16 +9818 113 58 20.58 1906 43 2 3 7 61 2 81 2 17 +9819 113 59 26.46 1906 43 4 3 7 61 2 83 2 19 +9820 113 60 32.34 1906 47 5 3 7 62 2 84 2 20 +9821 113 61 38.22 1906 47 3 3 7 62 2 82 2 18 +9822 113 62 44.1 1906 47 1 3 7 62 2 80 2 16 +9823 113 63 49.98 1906 47 2 3 7 62 2 81 2 17 +9824 113 64 55.86 1906 47 4 3 7 62 2 83 2 19 +9825 113 65 61.74 1906 47 6 3 7 62 2 85 2 21 +9826 113 66 67.62 1906 51 3 3 7 63 2 82 2 18 +9827 113 67 73.5 1906 51 1 3 7 63 2 80 2 16 +9828 113 68 79.38 1906 51 2 3 7 63 2 81 2 17 +9829 113 69 85.26 1906 51 4 3 7 63 2 83 2 19 +9830 113 70 91.14 1906 51 6 3 7 63 2 85 2 21 +9831 113 71 97.02 1906 55 5 3 7 64 2 84 2 20 +9832 113 72 102.9 1906 55 3 3 7 64 2 82 2 18 +9833 113 73 108.78 1906 55 1 3 7 64 2 80 2 16 +9834 113 74 114.66 1906 55 2 3 7 64 2 81 2 17 +9835 113 75 120.54 1906 55 4 3 7 64 2 83 2 19 +9836 113 76 126.42 1906 55 6 3 7 64 2 85 2 21 +9837 113 77 132.3 1906 59 3 3 7 65 2 82 2 18 +9838 113 78 138.18 1906 59 1 3 7 65 2 80 2 16 +9839 113 79 144.06 1906 59 2 3 7 65 2 81 2 17 +9840 113 80 149.94 1906 59 4 3 7 65 2 83 2 19 +9841 113 81 155.82 1906 59 6 3 7 65 2 85 2 21 +9842 113 82 161.7 1906 63 5 3 7 66 2 84 2 20 +9843 113 83 167.58 1906 63 3 3 7 66 2 82 2 18 +9844 113 84 173.46 1906 63 1 3 7 66 2 80 2 16 +9845 113 85 179.34 1906 63 2 3 7 66 2 81 2 17 +9846 113 86 185.22 1906 63 4 3 7 66 2 83 2 19 +9847 113 87 191.1 1906 63 6 3 7 66 2 85 2 21 +9848 113 88 196.98 1906 67 5 3 7 67 2 84 2 20 +9849 113 89 202.86 1906 67 3 3 7 67 2 82 2 18 +9850 113 90 208.74 1906 67 1 3 7 67 2 80 2 16 +9851 113 91 214.62 1906 67 2 3 7 67 2 81 2 17 +9852 113 92 220.5 1906 67 4 3 7 67 2 83 2 19 +9853 113 93 226.38 1906 71 5 3 7 68 2 84 2 20 +9854 113 94 232.26 1906 71 3 3 7 68 2 82 2 18 +9855 113 95 238.14 1906 71 1 3 7 68 2 80 2 16 +9856 113 96 244.02 1906 71 2 3 7 68 2 81 2 17 +9857 113 97 249.9 1906 71 4 3 7 68 2 83 2 19 +9858 113 98 255.78 1906 71 6 3 7 68 2 85 2 21 +9859 113 99 261.66 1906 75 5 3 7 69 2 84 2 20 +9860 113 100 267.54 1906 75 3 3 7 69 2 82 2 18 +9861 113 101 273.42 1906 75 1 3 7 69 2 80 2 16 +9862 113 102 279.3 1906 75 2 3 7 69 2 81 2 17 +9863 113 103 285.18 1906 75 4 3 7 69 2 83 2 19 +9864 113 104 291.06 1906 79 5 3 7 70 2 84 2 20 +9865 113 105 296.94 1906 79 3 3 7 70 2 82 2 18 +9866 113 106 302.82 1906 79 1 3 7 70 2 80 2 16 +9867 113 107 308.7 1906 79 2 3 7 70 2 81 2 17 +9868 113 108 314.58 1906 79 4 3 7 70 2 83 2 19 +9869 113 109 320.46 1906 79 6 3 7 70 2 85 2 21 +9870 114 0 -320.46 1918 3 9 3 7 51 2 88 2 24 +9871 114 1 -314.58 1918 3 7 3 7 51 2 86 2 22 +9872 114 2 -308.7 1918 3 8 3 7 51 2 87 2 23 +9873 114 3 -302.82 1918 3 10 3 7 51 2 89 2 25 +9874 114 4 -296.94 1918 3 12 3 7 51 2 91 2 27 +9875 114 5 -291.06 1918 7 9 3 7 52 2 88 2 24 +9876 114 6 -285.18 1918 7 7 3 7 52 2 86 2 22 +9877 114 7 -279.3 1918 7 5 3 7 52 2 84 2 20 +9878 114 8 -273.42 1918 7 8 3 7 52 2 87 2 23 +9879 114 9 -267.54 1918 7 10 3 7 52 2 89 2 25 +9880 114 10 -261.66 1918 7 12 3 7 52 2 91 2 27 +9881 114 11 -255.78 1918 11 11 3 7 53 2 90 2 26 +9882 114 12 -249.9 1918 11 9 3 7 53 2 88 2 24 +9883 114 13 -244.02 1918 11 7 3 7 53 2 86 2 22 +9884 114 14 -238.14 1918 11 8 3 7 53 2 87 2 23 +9885 114 15 -232.26 1918 11 10 3 7 53 2 89 2 25 +9886 114 16 -226.38 1918 15 9 3 7 54 2 88 2 24 +9887 114 17 -220.5 1918 15 7 3 7 54 2 86 2 22 +9888 114 18 -214.62 1918 15 5 3 7 54 2 84 2 20 +9889 114 19 -208.74 1918 15 8 3 7 54 2 87 2 23 +9890 114 20 -202.86 1918 15 10 3 7 54 2 89 2 25 +9891 114 21 -196.98 1918 15 12 3 7 54 2 91 2 27 +9892 114 22 -191.1 1918 19 11 3 7 55 2 90 2 26 +9893 114 23 -185.22 1918 19 9 3 7 55 2 88 2 24 +9894 114 24 -179.34 1918 19 7 3 7 55 2 86 2 22 +9895 114 25 -173.46 1918 19 8 3 7 55 2 87 2 23 +9896 114 26 -167.58 1918 19 10 3 7 55 2 89 2 25 +9897 114 27 -161.7 1918 23 11 3 7 56 2 90 2 26 +9898 114 28 -155.82 1918 23 9 3 7 56 2 88 2 24 +9899 114 29 -149.94 1918 23 7 3 7 56 2 86 2 22 +9900 114 30 -144.06 1918 23 6 3 7 56 2 85 2 21 +9901 114 31 -138.18 1918 23 8 3 7 56 2 87 2 23 +9902 114 32 -132.3 1918 23 10 3 7 56 2 89 2 25 +9903 114 33 -126.42 1918 27 11 3 7 57 2 90 2 26 +9904 114 34 -120.54 1918 27 9 3 7 57 2 88 2 24 +9905 114 35 -114.66 1918 27 7 3 7 57 2 86 2 22 +9906 114 36 -108.78 1918 27 8 3 7 57 2 87 2 23 +9907 114 37 -102.9 1918 27 10 3 7 57 2 89 2 25 +9908 114 38 -97.02 1918 27 12 3 7 57 2 91 2 27 +9909 114 39 -91.14 1918 31 9 3 7 58 2 88 2 24 +9910 114 40 -85.26 1918 31 7 3 7 58 2 86 2 22 +9911 114 41 -79.38 1918 31 6 3 7 58 2 85 2 21 +9912 114 42 -73.5 1918 31 8 3 7 58 2 87 2 23 +9913 114 43 -67.62 1918 31 10 3 7 58 2 89 2 25 +9914 114 44 -61.74 1918 35 11 3 7 59 2 90 2 26 +9915 114 45 -55.86 1918 35 9 3 7 59 2 88 2 24 +9916 114 46 -49.98 1918 35 7 3 7 59 2 86 2 22 +9917 114 47 -44.1 1918 35 8 3 7 59 2 87 2 23 +9918 114 48 -38.22 1918 35 10 3 7 59 2 89 2 25 +9919 114 49 -32.34 1918 35 12 3 7 59 2 91 2 27 +9920 114 50 -26.46 1918 39 9 3 7 60 2 88 2 24 +9921 114 51 -20.58 1918 39 7 3 7 60 2 86 2 22 +9922 114 52 -14.7 1918 39 5 3 7 60 2 84 2 20 +9923 114 53 -8.82 1918 39 8 3 7 60 2 87 2 23 +9924 114 54 -2.94 1918 39 10 3 7 60 2 89 2 25 +9925 114 55 2.94 1918 43 9 3 7 61 2 88 2 24 +9926 114 56 8.82 1918 43 7 3 7 61 2 86 2 22 +9927 114 57 14.7 1918 43 6 3 7 61 2 85 2 21 +9928 114 58 20.58 1918 43 8 3 7 61 2 87 2 23 +9929 114 59 26.46 1918 43 10 3 7 61 2 89 2 25 +9930 114 60 32.34 1918 47 11 3 7 62 2 90 2 26 +9931 114 61 38.22 1918 47 9 3 7 62 2 88 2 24 +9932 114 62 44.1 1918 47 7 3 7 62 2 86 2 22 +9933 114 63 49.98 1918 47 8 3 7 62 2 87 2 23 +9934 114 64 55.86 1918 47 10 3 7 62 2 89 2 25 +9935 114 65 61.74 1918 47 12 3 7 62 2 91 2 27 +9936 114 66 67.62 1918 51 9 3 7 63 2 88 2 24 +9937 114 67 73.5 1918 51 7 3 7 63 2 86 2 22 +9938 114 68 79.38 1918 51 5 3 7 63 2 84 2 20 +9939 114 69 85.26 1918 51 8 3 7 63 2 87 2 23 +9940 114 70 91.14 1918 51 10 3 7 63 2 89 2 25 +9941 114 71 97.02 1918 55 11 3 7 64 2 90 2 26 +9942 114 72 102.9 1918 55 9 3 7 64 2 88 2 24 +9943 114 73 108.78 1918 55 7 3 7 64 2 86 2 22 +9944 114 74 114.66 1918 55 8 3 7 64 2 87 2 23 +9945 114 75 120.54 1918 55 10 3 7 64 2 89 2 25 +9946 114 76 126.42 1918 55 12 3 7 64 2 91 2 27 +9947 114 77 132.3 1918 59 9 3 7 65 2 88 2 24 +9948 114 78 138.18 1918 59 7 3 7 65 2 86 2 22 +9949 114 79 144.06 1918 59 5 3 7 65 2 84 2 20 +9950 114 80 149.94 1918 59 8 3 7 65 2 87 2 23 +9951 114 81 155.82 1918 59 10 3 7 65 2 89 2 25 +9952 114 82 161.7 1918 59 12 3 7 65 2 91 2 27 +9953 114 83 167.58 1918 63 9 3 7 66 2 88 2 24 +9954 114 84 173.46 1918 63 7 3 7 66 2 86 2 22 +9955 114 85 179.34 1918 63 8 3 7 66 2 87 2 23 +9956 114 86 185.22 1918 63 10 3 7 66 2 89 2 25 +9957 114 87 191.1 1918 63 12 3 7 66 2 91 2 27 +9958 114 88 196.98 1918 67 11 3 7 67 2 90 2 26 +9959 114 89 202.86 1918 67 9 3 7 67 2 88 2 24 +9960 114 90 208.74 1918 67 7 3 7 67 2 86 2 22 +9961 114 91 214.62 1918 67 6 3 7 67 2 85 2 21 +9962 114 92 220.5 1918 67 8 3 7 67 2 87 2 23 +9963 114 93 226.38 1918 67 10 3 7 67 2 89 2 25 +9964 114 94 232.26 1918 71 9 3 7 68 2 88 2 24 +9965 114 95 238.14 1918 71 7 3 7 68 2 86 2 22 +9966 114 96 244.02 1918 71 8 3 7 68 2 87 2 23 +9967 114 97 249.9 1918 71 10 3 7 68 2 89 2 25 +9968 114 98 255.78 1918 71 12 3 7 68 2 91 2 27 +9969 114 99 261.66 1918 75 11 3 7 69 2 90 2 26 +9970 114 100 267.54 1918 75 9 3 7 69 2 88 2 24 +9971 114 101 273.42 1918 75 7 3 7 69 2 86 2 22 +9972 114 102 279.3 1918 75 6 3 7 69 2 85 2 21 +9973 114 103 285.18 1918 75 8 3 7 69 2 87 2 23 +9974 114 104 291.06 1918 75 10 3 7 69 2 89 2 25 +9975 114 105 296.94 1918 79 11 3 7 70 2 90 2 26 +9976 114 106 302.82 1918 79 9 3 7 70 2 88 2 24 +9977 114 107 308.7 1918 79 7 3 7 70 2 86 2 22 +9978 114 108 314.58 1918 79 8 3 7 70 2 87 2 23 +9979 114 109 320.46 1918 79 10 3 7 70 2 89 2 25 +9980 115 0 -326.34 1930 3 15 3 7 51 2 94 2 30 +9981 115 1 -320.46 1930 3 13 3 7 51 2 92 2 28 +9982 115 2 -314.58 1930 3 11 3 7 51 2 90 2 26 +9983 115 3 -308.7 1930 3 14 3 7 51 2 93 2 29 +9984 115 4 -302.82 1930 3 16 3 7 51 2 95 2 31 +9985 115 5 -296.94 1930 3 18 3 7 51 2 97 3 1 +9986 115 6 -291.06 1930 7 15 3 7 52 2 94 2 30 +9987 115 7 -285.18 1930 7 13 3 7 52 2 92 2 28 +9988 115 8 -279.3 1930 7 11 3 7 52 2 90 2 26 +9989 115 9 -273.42 1930 7 14 3 7 52 2 93 2 29 +9990 115 10 -267.54 1930 7 16 3 7 52 2 95 2 31 +9991 115 11 -261.66 1930 7 18 3 7 52 2 97 3 1 +9992 115 12 -255.78 1930 11 15 3 7 53 2 94 2 30 +9993 115 13 -249.9 1930 11 13 3 7 53 2 92 2 28 +9994 115 14 -244.02 1930 11 12 3 7 53 2 91 2 27 +9995 115 15 -238.14 1930 11 14 3 7 53 2 93 2 29 +9996 115 16 -232.26 1930 11 16 3 7 53 2 95 2 31 +9997 115 17 -226.38 1930 15 15 3 7 54 2 94 2 30 +9998 115 18 -220.5 1930 15 13 3 7 54 2 92 2 28 +9999 115 19 -214.62 1930 15 11 3 7 54 2 90 2 26 +10000 115 20 -208.74 1930 15 14 3 7 54 2 93 2 29 +10001 115 21 -202.86 1930 15 16 3 7 54 2 95 2 31 +10002 115 22 -196.98 1930 15 18 3 7 54 2 97 3 1 +10003 115 23 -191.1 1930 19 15 3 7 55 2 94 2 30 +10004 115 24 -185.22 1930 19 13 3 7 55 2 92 2 28 +10005 115 25 -179.34 1930 19 12 3 7 55 2 91 2 27 +10006 115 26 -173.46 1930 19 14 3 7 55 2 93 2 29 +10007 115 27 -167.58 1930 19 16 3 7 55 2 95 2 31 +10008 115 28 -161.7 1930 23 17 3 7 56 2 96 3 0 +10009 115 29 -155.82 1930 23 15 3 7 56 2 94 2 30 +10010 115 30 -149.94 1930 23 13 3 7 56 2 92 2 28 +10011 115 31 -144.06 1930 23 12 3 7 56 2 91 2 27 +10012 115 32 -138.18 1930 23 14 3 7 56 2 93 2 29 +10013 115 33 -132.3 1930 23 16 3 7 56 2 95 2 31 +10014 115 34 -126.42 1930 27 17 3 7 57 2 96 3 0 +10015 115 35 -120.54 1930 27 15 3 7 57 2 94 2 30 +10016 115 36 -114.66 1930 27 13 3 7 57 2 92 2 28 +10017 115 37 -108.78 1930 27 14 3 7 57 2 93 2 29 +10018 115 38 -102.9 1930 27 16 3 7 57 2 95 2 31 +10019 115 39 -97.02 1930 31 15 3 7 58 2 94 2 30 +10020 115 40 -91.14 1930 31 13 3 7 58 2 92 2 28 +10021 115 41 -85.26 1930 31 11 3 7 58 2 90 2 26 +10022 115 42 -79.38 1930 31 12 3 7 58 2 91 2 27 +10023 115 43 -73.5 1930 31 14 3 7 58 2 93 2 29 +10024 115 44 -67.62 1930 31 16 3 7 58 2 95 2 31 +10025 115 45 -61.74 1930 35 17 3 7 59 2 96 3 0 +10026 115 46 -55.86 1930 35 15 3 7 59 2 94 2 30 +10027 115 47 -49.98 1930 35 13 3 7 59 2 92 2 28 +10028 115 48 -44.1 1930 35 14 3 7 59 2 93 2 29 +10029 115 49 -38.22 1930 35 16 3 7 59 2 95 2 31 +10030 115 50 -32.34 1930 35 18 3 7 59 2 97 3 1 +10031 115 51 -26.46 1930 39 13 3 7 60 2 92 2 28 +10032 115 52 -20.58 1930 39 11 3 7 60 2 90 2 26 +10033 115 53 -14.7 1930 39 12 3 7 60 2 91 2 27 +10034 115 54 -8.82 1930 39 14 3 7 60 2 93 2 29 +10035 115 55 -2.94 1930 39 16 3 7 60 2 95 2 31 +10036 115 56 2.94 1930 43 15 3 7 61 2 94 2 30 +10037 115 57 8.82 1930 43 13 3 7 61 2 92 2 28 +10038 115 58 14.7 1930 43 11 3 7 61 2 90 2 26 +10039 115 59 20.58 1930 43 12 3 7 61 2 91 2 27 +10040 115 60 26.46 1930 43 14 3 7 61 2 93 2 29 +10041 115 61 32.34 1930 47 17 3 7 62 2 96 3 0 +10042 115 62 38.22 1930 47 15 3 7 62 2 94 2 30 +10043 115 63 44.1 1930 47 13 3 7 62 2 92 2 28 +10044 115 64 49.98 1930 47 14 3 7 62 2 93 2 29 +10045 115 65 55.86 1930 47 16 3 7 62 2 95 2 31 +10046 115 66 61.74 1930 47 18 3 7 62 2 97 3 1 +10047 115 67 67.62 1930 51 15 3 7 63 2 94 2 30 +10048 115 68 73.5 1930 51 13 3 7 63 2 92 2 28 +10049 115 69 79.38 1930 51 11 3 7 63 2 90 2 26 +10050 115 70 85.26 1930 51 12 3 7 63 2 91 2 27 +10051 115 71 91.14 1930 51 14 3 7 63 2 93 2 29 +10052 115 72 97.02 1930 51 16 3 7 63 2 95 2 31 +10053 115 73 102.9 1930 55 15 3 7 64 2 94 2 30 +10054 115 74 108.78 1930 55 13 3 7 64 2 92 2 28 +10055 115 75 114.66 1930 55 14 3 7 64 2 93 2 29 +10056 115 76 120.54 1930 55 16 3 7 64 2 95 2 31 +10057 115 77 126.42 1930 55 18 3 7 64 2 97 3 1 +10058 115 78 132.3 1930 59 15 3 7 65 2 94 2 30 +10059 115 79 138.18 1930 59 13 3 7 65 2 92 2 28 +10060 115 80 144.06 1930 59 11 3 7 65 2 90 2 26 +10061 115 81 149.94 1930 59 14 3 7 65 2 93 2 29 +10062 115 82 155.82 1930 59 16 3 7 65 2 95 2 31 +10063 115 83 161.7 1930 59 18 3 7 65 2 97 3 1 +10064 115 84 167.58 1930 63 15 3 7 66 2 94 2 30 +10065 115 85 173.46 1930 63 13 3 7 66 2 92 2 28 +10066 115 86 179.34 1930 63 11 3 7 66 2 90 2 26 +10067 115 87 185.22 1930 63 14 3 7 66 2 93 2 29 +10068 115 88 191.1 1930 63 16 3 7 66 2 95 2 31 +10069 115 89 196.98 1930 67 17 3 7 67 2 96 3 0 +10070 115 90 202.86 1930 67 15 3 7 67 2 94 2 30 +10071 115 91 208.74 1930 67 13 3 7 67 2 92 2 28 +10072 115 92 214.62 1930 67 12 3 7 67 2 91 2 27 +10073 115 93 220.5 1930 67 14 3 7 67 2 93 2 29 +10074 115 94 226.38 1930 67 16 3 7 67 2 95 2 31 +10075 115 95 232.26 1930 71 15 3 7 68 2 94 2 30 +10076 115 96 238.14 1930 71 13 3 7 68 2 92 2 28 +10077 115 97 244.02 1930 71 11 3 7 68 2 90 2 26 +10078 115 98 249.9 1930 71 14 3 7 68 2 93 2 29 +10079 115 99 255.78 1930 71 16 3 7 68 2 95 2 31 +10080 115 100 261.66 1930 75 17 3 7 69 2 96 3 0 +10081 115 101 267.54 1930 75 15 3 7 69 2 94 2 30 +10082 115 102 273.42 1930 75 13 3 7 69 2 92 2 28 +10083 115 103 279.3 1930 75 12 3 7 69 2 91 2 27 +10084 115 104 285.18 1930 75 14 3 7 69 2 93 2 29 +10085 115 105 291.06 1930 75 16 3 7 69 2 95 2 31 +10086 115 106 296.94 1930 79 17 3 7 70 2 96 3 0 +10087 115 107 302.82 1930 79 15 3 7 70 2 94 2 30 +10088 115 108 308.7 1930 79 13 3 7 70 2 92 2 28 +10089 115 109 314.58 1930 79 12 3 7 70 2 91 2 27 +10090 115 110 320.46 1930 79 14 3 7 70 2 93 2 29 +10091 115 111 326.34 1930 79 16 3 7 70 2 95 2 31 +10092 116 0 -326.34 1942 3 21 3 7 51 2 100 3 4 +10093 116 1 -320.46 1942 3 19 3 7 51 2 98 3 2 +10094 116 2 -314.58 1942 3 17 3 7 51 2 96 3 0 +10095 116 3 -308.7 1942 3 20 3 7 51 2 99 3 3 +10096 116 4 -302.82 1942 3 22 3 7 51 2 101 3 5 +10097 116 5 -296.94 1942 3 24 3 7 51 2 103 3 7 +10098 116 6 -291.06 1942 7 21 3 7 52 2 100 3 4 +10099 116 7 -285.18 1942 7 19 3 7 52 2 98 3 2 +10100 116 8 -279.3 1942 7 17 3 7 52 2 96 3 0 +10101 116 9 -273.42 1942 7 20 3 7 52 2 99 3 3 +10102 116 10 -267.54 1942 7 22 3 7 52 2 101 3 5 +10103 116 11 -261.66 1942 11 21 3 7 53 2 100 3 4 +10104 116 12 -255.78 1942 11 19 3 7 53 2 98 3 2 +10105 116 13 -249.9 1942 11 17 3 7 53 2 96 3 0 +10106 116 14 -244.02 1942 11 18 3 7 53 2 97 3 1 +10107 116 15 -238.14 1942 11 20 3 7 53 2 99 3 3 +10108 116 16 -232.26 1942 11 22 3 7 53 2 101 3 5 +10109 116 17 -226.38 1942 15 21 3 7 54 2 100 3 4 +10110 116 18 -220.5 1942 15 19 3 7 54 2 98 3 2 +10111 116 19 -214.62 1942 15 17 3 7 54 2 96 3 0 +10112 116 20 -208.74 1942 15 20 3 7 54 2 99 3 3 +10113 116 21 -202.86 1942 15 22 3 7 54 2 101 3 5 +10114 116 22 -196.98 1942 19 21 3 7 55 2 100 3 4 +10115 116 23 -191.1 1942 19 19 3 7 55 2 98 3 2 +10116 116 24 -185.22 1942 19 17 3 7 55 2 96 3 0 +10117 116 25 -179.34 1942 19 18 3 7 55 2 97 3 1 +10118 116 26 -173.46 1942 19 20 3 7 55 2 99 3 3 +10119 116 27 -167.58 1942 19 22 3 7 55 2 101 3 5 +10120 116 28 -161.7 1942 23 23 3 7 56 2 102 3 6 +10121 116 29 -155.82 1942 23 21 3 7 56 2 100 3 4 +10122 116 30 -149.94 1942 23 19 3 7 56 2 98 3 2 +10123 116 31 -144.06 1942 23 18 3 7 56 2 97 3 1 +10124 116 32 -138.18 1942 23 20 3 7 56 2 99 3 3 +10125 116 33 -132.3 1942 23 22 3 7 56 2 101 3 5 +10126 116 34 -126.42 1942 27 21 3 7 57 2 100 3 4 +10127 116 35 -120.54 1942 27 19 3 7 57 2 98 3 2 +10128 116 36 -114.66 1942 27 18 3 7 57 2 97 3 1 +10129 116 37 -108.78 1942 27 20 3 7 57 2 99 3 3 +10130 116 38 -102.9 1942 27 22 3 7 57 2 101 3 5 +10131 116 39 -97.02 1942 31 21 3 7 58 2 100 3 4 +10132 116 40 -91.14 1942 31 19 3 7 58 2 98 3 2 +10133 116 41 -85.26 1942 31 17 3 7 58 2 96 3 0 +10134 116 42 -79.38 1942 31 18 3 7 58 2 97 3 1 +10135 116 43 -73.5 1942 31 20 3 7 58 2 99 3 3 +10136 116 44 -67.62 1942 31 22 3 7 58 2 101 3 5 +10137 116 45 -61.74 1942 35 23 3 7 59 2 102 3 6 +10138 116 46 -55.86 1942 35 21 3 7 59 2 100 3 4 +10139 116 47 -49.98 1942 35 19 3 7 59 2 98 3 2 +10140 116 48 -44.1 1942 35 20 3 7 59 2 99 3 3 +10141 116 49 -38.22 1942 35 22 3 7 59 2 101 3 5 +10142 116 50 -32.34 1942 35 24 3 7 59 2 103 3 7 +10143 116 51 -26.46 1942 39 19 3 7 60 2 98 3 2 +10144 116 52 -20.58 1942 39 17 3 7 60 2 96 3 0 +10145 116 53 -14.7 1942 39 15 3 7 60 2 94 2 30 +10146 116 54 -8.82 1942 39 18 3 7 60 2 97 3 1 +10147 116 55 -2.94 1942 39 20 3 7 60 2 99 3 3 +10148 116 56 2.94 1942 43 19 3 7 61 2 98 3 2 +10149 116 57 8.82 1942 43 17 3 7 61 2 96 3 0 +10150 116 58 14.7 1942 43 16 3 7 61 2 95 2 31 +10151 116 59 20.58 1942 43 18 3 7 61 2 97 3 1 +10152 116 60 26.46 1942 43 20 3 7 61 2 99 3 3 +10153 116 61 32.34 1942 47 23 3 7 62 2 102 3 6 +10154 116 62 38.22 1942 47 21 3 7 62 2 100 3 4 +10155 116 63 44.1 1942 47 19 3 7 62 2 98 3 2 +10156 116 64 49.98 1942 47 20 3 7 62 2 99 3 3 +10157 116 65 55.86 1942 47 22 3 7 62 2 101 3 5 +10158 116 66 61.74 1942 47 24 3 7 62 2 103 3 7 +10159 116 67 67.62 1942 51 21 3 7 63 2 100 3 4 +10160 116 68 73.5 1942 51 19 3 7 63 2 98 3 2 +10161 116 69 79.38 1942 51 17 3 7 63 2 96 3 0 +10162 116 70 85.26 1942 51 18 3 7 63 2 97 3 1 +10163 116 71 91.14 1942 51 20 3 7 63 2 99 3 3 +10164 116 72 97.02 1942 51 22 3 7 63 2 101 3 5 +10165 116 73 102.9 1942 55 21 3 7 64 2 100 3 4 +10166 116 74 108.78 1942 55 19 3 7 64 2 98 3 2 +10167 116 75 114.66 1942 55 17 3 7 64 2 96 3 0 +10168 116 76 120.54 1942 55 20 3 7 64 2 99 3 3 +10169 116 77 126.42 1942 55 22 3 7 64 2 101 3 5 +10170 116 78 132.3 1942 59 21 3 7 65 2 100 3 4 +10171 116 79 138.18 1942 59 19 3 7 65 2 98 3 2 +10172 116 80 144.06 1942 59 17 3 7 65 2 96 3 0 +10173 116 81 149.94 1942 59 20 3 7 65 2 99 3 3 +10174 116 82 155.82 1942 59 22 3 7 65 2 101 3 5 +10175 116 83 161.7 1942 59 24 3 7 65 2 103 3 7 +10176 116 84 167.58 1942 63 21 3 7 66 2 100 3 4 +10177 116 85 173.46 1942 63 19 3 7 66 2 98 3 2 +10178 116 86 179.34 1942 63 17 3 7 66 2 96 3 0 +10179 116 87 185.22 1942 63 18 3 7 66 2 97 3 1 +10180 116 88 191.1 1942 63 20 3 7 66 2 99 3 3 +10181 116 89 196.98 1942 63 22 3 7 66 2 101 3 5 +10182 116 90 202.86 1942 67 21 3 7 67 2 100 3 4 +10183 116 91 208.74 1942 67 19 3 7 67 2 98 3 2 +10184 116 92 214.62 1942 67 18 3 7 67 2 97 3 1 +10185 116 93 220.5 1942 67 20 3 7 67 2 99 3 3 +10186 116 94 226.38 1942 67 22 3 7 67 2 101 3 5 +10187 116 95 232.26 1942 71 21 3 7 68 2 100 3 4 +10188 116 96 238.14 1942 71 19 3 7 68 2 98 3 2 +10189 116 97 244.02 1942 71 17 3 7 68 2 96 3 0 +10190 116 98 249.9 1942 71 18 3 7 68 2 97 3 1 +10191 116 99 255.78 1942 71 20 3 7 68 2 99 3 3 +10192 116 100 261.66 1942 71 22 3 7 68 2 101 3 5 +10193 116 101 267.54 1942 75 21 3 7 69 2 100 3 4 +10194 116 102 273.42 1942 75 19 3 7 69 2 98 3 2 +10195 116 103 279.3 1942 75 18 3 7 69 2 97 3 1 +10196 116 104 285.18 1942 75 20 3 7 69 2 99 3 3 +10197 116 105 291.06 1942 75 22 3 7 69 2 101 3 5 +10198 116 106 296.94 1942 79 23 3 7 70 2 102 3 6 +10199 116 107 302.82 1942 79 21 3 7 70 2 100 3 4 +10200 116 108 308.7 1942 79 19 3 7 70 2 98 3 2 +10201 116 109 314.58 1942 79 18 3 7 70 2 97 3 1 +10202 116 110 320.46 1942 79 20 3 7 70 2 99 3 3 +10203 116 111 326.34 1942 79 22 3 7 70 2 101 3 5 +10204 117 0 -326.34 1954 3 27 3 7 51 2 106 3 10 +10205 117 1 -320.46 1954 3 25 3 7 51 2 104 3 8 +10206 117 2 -314.58 1954 3 23 3 7 51 2 102 3 6 +10207 117 3 -308.7 1954 3 26 3 7 51 2 105 3 9 +10208 117 4 -302.82 1954 3 28 3 7 51 2 107 3 11 +10209 117 5 -296.94 1954 7 27 3 7 52 2 106 3 10 +10210 117 6 -291.06 1954 7 25 3 7 52 2 104 3 8 +10211 117 7 -285.18 1954 7 23 3 7 52 2 102 3 6 +10212 117 8 -279.3 1954 7 24 3 7 52 2 103 3 7 +10213 117 9 -273.42 1954 7 26 3 7 52 2 105 3 9 +10214 117 10 -267.54 1954 7 28 3 7 52 2 107 3 11 +10215 117 11 -261.66 1954 11 27 3 7 53 2 106 3 10 +10216 117 12 -255.78 1954 11 25 3 7 53 2 104 3 8 +10217 117 13 -249.9 1954 11 23 3 7 53 2 102 3 6 +10218 117 14 -244.02 1954 11 24 3 7 53 2 103 3 7 +10219 117 15 -238.14 1954 11 26 3 7 53 2 105 3 9 +10220 117 16 -232.26 1954 11 28 3 7 53 2 107 3 11 +10221 117 17 -226.38 1954 15 25 3 7 54 2 104 3 8 +10222 117 18 -220.5 1954 15 23 3 7 54 2 102 3 6 +10223 117 19 -214.62 1954 15 24 3 7 54 2 103 3 7 +10224 117 20 -208.74 1954 15 26 3 7 54 2 105 3 9 +10225 117 21 -202.86 1954 15 28 3 7 54 2 107 3 11 +10226 117 22 -196.98 1954 19 27 3 7 55 2 106 3 10 +10227 117 23 -191.1 1954 19 25 3 7 55 2 104 3 8 +10228 117 24 -185.22 1954 19 23 3 7 55 2 102 3 6 +10229 117 25 -179.34 1954 19 24 3 7 55 2 103 3 7 +10230 117 26 -173.46 1954 19 26 3 7 55 2 105 3 9 +10231 117 27 -167.58 1954 19 28 3 7 55 2 107 3 11 +10232 117 28 -161.7 1954 23 29 3 7 56 2 108 3 12 +10233 117 29 -155.82 1954 23 27 3 7 56 2 106 3 10 +10234 117 30 -149.94 1954 23 25 3 7 56 2 104 3 8 +10235 117 31 -144.06 1954 23 24 3 7 56 2 103 3 7 +10236 117 32 -138.18 1954 23 26 3 7 56 2 105 3 9 +10237 117 33 -132.3 1954 23 28 3 7 56 2 107 3 11 +10238 117 34 -126.42 1954 27 25 3 7 57 2 104 3 8 +10239 117 35 -120.54 1954 27 23 3 7 57 2 102 3 6 +10240 117 36 -114.66 1954 27 24 3 7 57 2 103 3 7 +10241 117 37 -108.78 1954 27 26 3 7 57 2 105 3 9 +10242 117 38 -102.9 1954 27 28 3 7 57 2 107 3 11 +10243 117 39 -97.02 1954 31 27 3 7 58 2 106 3 10 +10244 117 40 -91.14 1954 31 25 3 7 58 2 104 3 8 +10245 117 41 -85.26 1954 31 23 3 7 58 2 102 3 6 +10246 117 42 -79.38 1954 31 24 3 7 58 2 103 3 7 +10247 117 43 -73.5 1954 31 26 3 7 58 2 105 3 9 +10248 117 44 -67.62 1954 31 28 3 7 58 2 107 3 11 +10249 117 45 -61.74 1954 35 27 3 7 59 2 106 3 10 +10250 117 46 -55.86 1954 35 25 3 7 59 2 104 3 8 +10251 117 47 -49.98 1954 35 26 3 7 59 2 105 3 9 +10252 117 48 -44.1 1954 35 28 3 7 59 2 107 3 11 +10253 117 49 -38.22 1954 35 30 3 7 59 2 109 3 13 +10254 117 50 -32.34 1954 39 25 3 7 60 2 104 3 8 +10255 117 51 -26.46 1954 39 23 3 7 60 2 102 3 6 +10256 117 52 -20.58 1954 39 21 3 7 60 2 100 3 4 +10257 117 53 -14.7 1954 39 22 3 7 60 2 101 3 5 +10258 117 54 -8.82 1954 39 24 3 7 60 2 103 3 7 +10259 117 55 -2.94 1954 39 26 3 7 60 2 105 3 9 +10260 117 56 2.94 1954 43 25 3 7 61 2 104 3 8 +10261 117 57 8.82 1954 43 23 3 7 61 2 102 3 6 +10262 117 58 14.7 1954 43 21 3 7 61 2 100 3 4 +10263 117 59 20.58 1954 43 22 3 7 61 2 101 3 5 +10264 117 60 26.46 1954 43 24 3 7 61 2 103 3 7 +10265 117 61 32.34 1954 43 26 3 7 61 2 105 3 9 +10266 117 62 38.22 1954 47 29 3 7 62 2 108 3 12 +10267 117 63 44.1 1954 47 27 3 7 62 2 106 3 10 +10268 117 64 49.98 1954 47 25 3 7 62 2 104 3 8 +10269 117 65 55.86 1954 47 26 3 7 62 2 105 3 9 +10270 117 66 61.74 1954 47 28 3 7 62 2 107 3 11 +10271 117 67 67.62 1954 51 27 3 7 63 2 106 3 10 +10272 117 68 73.5 1954 51 25 3 7 63 2 104 3 8 +10273 117 69 79.38 1954 51 23 3 7 63 2 102 3 6 +10274 117 70 85.26 1954 51 24 3 7 63 2 103 3 7 +10275 117 71 91.14 1954 51 26 3 7 63 2 105 3 9 +10276 117 72 97.02 1954 51 28 3 7 63 2 107 3 11 +10277 117 73 102.9 1954 55 27 3 7 64 2 106 3 10 +10278 117 74 108.78 1954 55 25 3 7 64 2 104 3 8 +10279 117 75 114.66 1954 55 23 3 7 64 2 102 3 6 +10280 117 76 120.54 1954 55 24 3 7 64 2 103 3 7 +10281 117 77 126.42 1954 55 26 3 7 64 2 105 3 9 +10282 117 78 132.3 1954 59 27 3 7 65 2 106 3 10 +10283 117 79 138.18 1954 59 25 3 7 65 2 104 3 8 +10284 117 80 144.06 1954 59 23 3 7 65 2 102 3 6 +10285 117 81 149.94 1954 59 26 3 7 65 2 105 3 9 +10286 117 82 155.82 1954 59 28 3 7 65 2 107 3 11 +10287 117 83 161.7 1954 59 30 3 7 65 2 109 3 13 +10288 117 84 167.58 1954 63 27 3 7 66 2 106 3 10 +10289 117 85 173.46 1954 63 25 3 7 66 2 104 3 8 +10290 117 86 179.34 1954 63 23 3 7 66 2 102 3 6 +10291 117 87 185.22 1954 63 24 3 7 66 2 103 3 7 +10292 117 88 191.1 1954 63 26 3 7 66 2 105 3 9 +10293 117 89 196.98 1954 63 28 3 7 66 2 107 3 11 +10294 117 90 202.86 1954 67 27 3 7 67 2 106 3 10 +10295 117 91 208.74 1954 67 25 3 7 67 2 104 3 8 +10296 117 92 214.62 1954 67 23 3 7 67 2 102 3 6 +10297 117 93 220.5 1954 67 24 3 7 67 2 103 3 7 +10298 117 94 226.38 1954 67 26 3 7 67 2 105 3 9 +10299 117 95 232.26 1954 71 27 3 7 68 2 106 3 10 +10300 117 96 238.14 1954 71 25 3 7 68 2 104 3 8 +10301 117 97 244.02 1954 71 23 3 7 68 2 102 3 6 +10302 117 98 249.9 1954 71 24 3 7 68 2 103 3 7 +10303 117 99 255.78 1954 71 26 3 7 68 2 105 3 9 +10304 117 100 261.66 1954 71 28 3 7 68 2 107 3 11 +10305 117 101 267.54 1954 75 27 3 7 69 2 106 3 10 +10306 117 102 273.42 1954 75 25 3 7 69 2 104 3 8 +10307 117 103 279.3 1954 75 23 3 7 69 2 102 3 6 +10308 117 104 285.18 1954 75 24 3 7 69 2 103 3 7 +10309 117 105 291.06 1954 75 26 3 7 69 2 105 3 9 +10310 117 106 296.94 1954 75 28 3 7 69 2 107 3 11 +10311 117 107 302.82 1954 79 27 3 7 70 2 106 3 10 +10312 117 108 308.7 1954 79 25 3 7 70 2 104 3 8 +10313 117 109 314.58 1954 79 24 3 7 70 2 103 3 7 +10314 117 110 320.46 1954 79 26 3 7 70 2 105 3 9 +10315 117 111 326.34 1954 79 28 3 7 70 2 107 3 11 +10316 118 0 -332.22 1966 3 33 3 7 51 2 112 3 16 +10317 118 1 -326.34 1966 3 31 3 7 51 2 110 3 14 +10318 118 2 -320.46 1966 3 29 3 7 51 2 108 3 12 +10319 118 3 -314.58 1966 3 30 3 7 51 2 109 3 13 +10320 118 4 -308.7 1966 3 32 3 7 51 2 111 3 15 +10321 118 5 -302.82 1966 3 34 3 7 51 2 113 3 17 +10322 118 6 -296.94 1966 7 33 3 7 52 2 112 3 16 +10323 118 7 -291.06 1966 7 31 3 7 52 2 110 3 14 +10324 118 8 -285.18 1966 7 29 3 7 52 2 108 3 12 +10325 118 9 -279.3 1966 7 30 3 7 52 2 109 3 13 +10326 118 10 -273.42 1966 7 32 3 7 52 2 111 3 15 +10327 118 11 -267.54 1966 7 34 3 7 52 2 113 3 17 +10328 118 12 -261.66 1966 11 31 3 7 53 2 110 3 14 +10329 118 13 -255.78 1966 11 29 3 7 53 2 108 3 12 +10330 118 14 -249.9 1966 11 30 3 7 53 2 109 3 13 +10331 118 15 -244.02 1966 11 32 3 7 53 2 111 3 15 +10332 118 16 -238.14 1966 11 34 3 7 53 2 113 3 17 +10333 118 17 -232.26 1966 15 31 3 7 54 2 110 3 14 +10334 118 18 -226.38 1966 15 29 3 7 54 2 108 3 12 +10335 118 19 -220.5 1966 15 27 3 7 54 2 106 3 10 +10336 118 20 -214.62 1966 15 30 3 7 54 2 109 3 13 +10337 118 21 -208.74 1966 15 32 3 7 54 2 111 3 15 +10338 118 22 -202.86 1966 15 34 3 7 54 2 113 3 17 +10339 118 23 -196.98 1966 19 33 3 7 55 2 112 3 16 +10340 118 24 -191.1 1966 19 31 3 7 55 2 110 3 14 +10341 118 25 -185.22 1966 19 29 3 7 55 2 108 3 12 +10342 118 26 -179.34 1966 19 30 3 7 55 2 109 3 13 +10343 118 27 -173.46 1966 19 32 3 7 55 2 111 3 15 +10344 118 28 -167.58 1966 19 34 3 7 55 2 113 3 17 +10345 118 29 -161.7 1966 23 33 3 7 56 2 112 3 16 +10346 118 30 -155.82 1966 23 31 3 7 56 2 110 3 14 +10347 118 31 -149.94 1966 23 30 3 7 56 2 109 3 13 +10348 118 32 -144.06 1966 23 32 3 7 56 2 111 3 15 +10349 118 33 -138.18 1966 23 34 3 7 56 2 113 3 17 +10350 118 34 -132.3 1966 27 31 3 7 57 2 110 3 14 +10351 118 35 -126.42 1966 27 29 3 7 57 2 108 3 12 +10352 118 36 -120.54 1966 27 27 3 7 57 2 106 3 10 +10353 118 37 -114.66 1966 27 30 3 7 57 2 109 3 13 +10354 118 38 -108.78 1966 27 32 3 7 57 2 111 3 15 +10355 118 39 -102.9 1966 27 34 3 7 57 2 113 3 17 +10356 118 40 -97.02 1966 31 33 3 7 58 2 112 3 16 +10357 118 41 -91.14 1966 31 31 3 7 58 2 110 3 14 +10358 118 42 -85.26 1966 31 29 3 7 58 2 108 3 12 +10359 118 43 -79.38 1966 31 30 3 7 58 2 109 3 13 +10360 118 44 -73.5 1966 31 32 3 7 58 2 111 3 15 +10361 118 45 -67.62 1966 31 34 3 7 58 2 113 3 17 +10362 118 46 -61.74 1966 35 33 3 7 59 2 112 3 16 +10363 118 47 -55.86 1966 35 31 3 7 59 2 110 3 14 +10364 118 48 -49.98 1966 35 29 3 7 59 2 108 3 12 +10365 118 49 -44.1 1966 35 32 3 7 59 2 111 3 15 +10366 118 50 -38.22 1966 35 34 3 7 59 2 113 3 17 +10367 118 51 -32.34 1966 39 31 3 7 60 2 110 3 14 +10368 118 52 -26.46 1966 39 29 3 7 60 2 108 3 12 +10369 118 53 -20.58 1966 39 27 3 7 60 2 106 3 10 +10370 118 54 -14.7 1966 39 28 3 7 60 2 107 3 11 +10371 118 55 -8.82 1966 39 30 3 7 60 2 109 3 13 +10372 118 56 -2.94 1966 39 32 3 7 60 2 111 3 15 +10373 118 57 2.94 1966 43 31 3 7 61 2 110 3 14 +10374 118 58 8.82 1966 43 29 3 7 61 2 108 3 12 +10375 118 59 14.7 1966 43 27 3 7 61 2 106 3 10 +10376 118 60 20.58 1966 43 28 3 7 61 2 107 3 11 +10377 118 61 26.46 1966 43 30 3 7 61 2 109 3 13 +10378 118 62 32.34 1966 43 32 3 7 61 2 111 3 15 +10379 118 63 38.22 1966 47 33 3 7 62 2 112 3 16 +10380 118 64 44.1 1966 47 31 3 7 62 2 110 3 14 +10381 118 65 49.98 1966 47 30 3 7 62 2 109 3 13 +10382 118 66 55.86 1966 47 32 3 7 62 2 111 3 15 +10383 118 67 61.74 1966 47 34 3 7 62 2 113 3 17 +10384 118 68 67.62 1966 51 33 3 7 63 2 112 3 16 +10385 118 69 73.5 1966 51 31 3 7 63 2 110 3 14 +10386 118 70 79.38 1966 51 29 3 7 63 2 108 3 12 +10387 118 71 85.26 1966 51 30 3 7 63 2 109 3 13 +10388 118 72 91.14 1966 51 32 3 7 63 2 111 3 15 +10389 118 73 97.02 1966 51 34 3 7 63 2 113 3 17 +10390 118 74 102.9 1966 55 33 3 7 64 2 112 3 16 +10391 118 75 108.78 1966 55 31 3 7 64 2 110 3 14 +10392 118 76 114.66 1966 55 29 3 7 64 2 108 3 12 +10393 118 77 120.54 1966 55 28 3 7 64 2 107 3 11 +10394 118 78 126.42 1966 55 30 3 7 64 2 109 3 13 +10395 118 79 132.3 1966 55 32 3 7 64 2 111 3 15 +10396 118 80 138.18 1966 59 33 3 7 65 2 112 3 16 +10397 118 81 144.06 1966 59 31 3 7 65 2 110 3 14 +10398 118 82 149.94 1966 59 29 3 7 65 2 108 3 12 +10399 118 83 155.82 1966 59 32 3 7 65 2 111 3 15 +10400 118 84 161.7 1966 59 34 3 7 65 2 113 3 17 +10401 118 85 167.58 1966 63 33 3 7 66 2 112 3 16 +10402 118 86 173.46 1966 63 31 3 7 66 2 110 3 14 +10403 118 87 179.34 1966 63 29 3 7 66 2 108 3 12 +10404 118 88 185.22 1966 63 30 3 7 66 2 109 3 13 +10405 118 89 191.1 1966 63 32 3 7 66 2 111 3 15 +10406 118 90 196.98 1966 63 34 3 7 66 2 113 3 17 +10407 118 91 202.86 1966 67 33 3 7 67 2 112 3 16 +10408 118 92 208.74 1966 67 31 3 7 67 2 110 3 14 +10409 118 93 214.62 1966 67 29 3 7 67 2 108 3 12 +10410 118 94 220.5 1966 67 28 3 7 67 2 107 3 11 +10411 118 95 226.38 1966 67 30 3 7 67 2 109 3 13 +10412 118 96 232.26 1966 67 32 3 7 67 2 111 3 15 +10413 118 97 238.14 1966 71 33 3 7 68 2 112 3 16 +10414 118 98 244.02 1966 71 31 3 7 68 2 110 3 14 +10415 118 99 249.9 1966 71 29 3 7 68 2 108 3 12 +10416 118 100 255.78 1966 71 30 3 7 68 2 109 3 13 +10417 118 101 261.66 1966 71 32 3 7 68 2 111 3 15 +10418 118 102 267.54 1966 75 33 3 7 69 2 112 3 16 +10419 118 103 273.42 1966 75 31 3 7 69 2 110 3 14 +10420 118 104 279.3 1966 75 29 3 7 69 2 108 3 12 +10421 118 105 285.18 1966 75 30 3 7 69 2 109 3 13 +10422 118 106 291.06 1966 75 32 3 7 69 2 111 3 15 +10423 118 107 296.94 1966 75 34 3 7 69 2 113 3 17 +10424 118 108 302.82 1966 79 33 3 7 70 2 112 3 16 +10425 118 109 308.7 1966 79 31 3 7 70 2 110 3 14 +10426 118 110 314.58 1966 79 29 3 7 70 2 108 3 12 +10427 118 111 320.46 1966 79 30 3 7 70 2 109 3 13 +10428 118 112 326.34 1966 79 32 3 7 70 2 111 3 15 +10429 118 113 332.22 1966 79 34 3 7 70 2 113 3 17 +10430 119 0 -332.22 1978 3 39 3 7 51 2 118 3 22 +10431 119 1 -326.34 1978 3 37 3 7 51 2 116 3 20 +10432 119 2 -320.46 1978 3 35 3 7 51 2 114 3 18 +10433 119 3 -314.58 1978 3 36 3 7 51 2 115 3 19 +10434 119 4 -308.7 1978 3 38 3 7 51 2 117 3 21 +10435 119 5 -302.82 1978 3 40 3 7 51 2 119 3 23 +10436 119 6 -296.94 1978 7 37 3 7 52 2 116 3 20 +10437 119 7 -291.06 1978 7 35 3 7 52 2 114 3 18 +10438 119 8 -285.18 1978 7 36 3 7 52 2 115 3 19 +10439 119 9 -279.3 1978 7 38 3 7 52 2 117 3 21 +10440 119 10 -273.42 1978 7 40 3 7 52 2 119 3 23 +10441 119 11 -267.54 1978 11 37 3 7 53 2 116 3 20 +10442 119 12 -261.66 1978 11 35 3 7 53 2 114 3 18 +10443 119 13 -255.78 1978 11 33 3 7 53 2 112 3 16 +10444 119 14 -249.9 1978 11 36 3 7 53 2 115 3 19 +10445 119 15 -244.02 1978 11 38 3 7 53 2 117 3 21 +10446 119 16 -238.14 1978 11 40 3 7 53 2 119 3 23 +10447 119 17 -232.26 1978 15 37 3 7 54 2 116 3 20 +10448 119 18 -226.38 1978 15 35 3 7 54 2 114 3 18 +10449 119 19 -220.5 1978 15 33 3 7 54 2 112 3 16 +10450 119 20 -214.62 1978 15 36 3 7 54 2 115 3 19 +10451 119 21 -208.74 1978 15 38 3 7 54 2 117 3 21 +10452 119 22 -202.86 1978 15 40 3 7 54 2 119 3 23 +10453 119 23 -196.98 1978 19 39 3 7 55 2 118 3 22 +10454 119 24 -191.1 1978 19 37 3 7 55 2 116 3 20 +10455 119 25 -185.22 1978 19 35 3 7 55 2 114 3 18 +10456 119 26 -179.34 1978 19 36 3 7 55 2 115 3 19 +10457 119 27 -173.46 1978 19 38 3 7 55 2 117 3 21 +10458 119 28 -167.58 1978 19 40 3 7 55 2 119 3 23 +10459 119 29 -161.7 1978 23 39 3 7 56 2 118 3 22 +10460 119 30 -155.82 1978 23 37 3 7 56 2 116 3 20 +10461 119 31 -149.94 1978 23 35 3 7 56 2 114 3 18 +10462 119 32 -144.06 1978 23 36 3 7 56 2 115 3 19 +10463 119 33 -138.18 1978 23 38 3 7 56 2 117 3 21 +10464 119 34 -132.3 1978 27 37 3 7 57 2 116 3 20 +10465 119 35 -126.42 1978 27 35 3 7 57 2 114 3 18 +10466 119 36 -120.54 1978 27 33 3 7 57 2 112 3 16 +10467 119 37 -114.66 1978 27 36 3 7 57 2 115 3 19 +10468 119 38 -108.78 1978 27 38 3 7 57 2 117 3 21 +10469 119 39 -102.9 1978 27 40 3 7 57 2 119 3 23 +10470 119 40 -97.02 1978 31 39 3 7 58 2 118 3 22 +10471 119 41 -91.14 1978 31 37 3 7 58 2 116 3 20 +10472 119 42 -85.26 1978 31 35 3 7 58 2 114 3 18 +10473 119 43 -79.38 1978 31 36 3 7 58 2 115 3 19 +10474 119 44 -73.5 1978 31 38 3 7 58 2 117 3 21 +10475 119 45 -67.62 1978 31 40 3 7 58 2 119 3 23 +10476 119 46 -61.74 1978 35 37 3 7 59 2 116 3 20 +10477 119 47 -55.86 1978 35 35 3 7 59 2 114 3 18 +10478 119 48 -49.98 1978 35 36 3 7 59 2 115 3 19 +10479 119 49 -44.1 1978 35 38 3 7 59 2 117 3 21 +10480 119 50 -38.22 1978 35 40 3 7 59 2 119 3 23 +10481 119 51 -32.34 1978 39 35 3 7 60 2 114 3 18 +10482 119 52 -26.46 1978 39 33 3 7 60 2 112 3 16 +10483 119 53 -20.58 1978 39 34 3 7 60 2 113 3 17 +10484 119 54 -14.7 1978 39 36 3 7 60 2 115 3 19 +10485 119 55 -8.82 1978 39 38 3 7 60 2 117 3 21 +10486 119 56 -2.94 1978 39 40 3 7 60 2 119 3 23 +10487 119 57 2.94 1978 43 39 3 7 61 2 118 3 22 +10488 119 58 8.82 1978 43 37 3 7 61 2 116 3 20 +10489 119 59 14.7 1978 43 35 3 7 61 2 114 3 18 +10490 119 60 20.58 1978 43 33 3 7 61 2 112 3 16 +10491 119 61 26.46 1978 43 34 3 7 61 2 113 3 17 +10492 119 62 32.34 1978 43 36 3 7 61 2 115 3 19 +10493 119 63 38.22 1978 47 39 3 7 62 2 118 3 22 +10494 119 64 44.1 1978 47 37 3 7 62 2 116 3 20 +10495 119 65 49.98 1978 47 35 3 7 62 2 114 3 18 +10496 119 66 55.86 1978 47 36 3 7 62 2 115 3 19 +10497 119 67 61.74 1978 47 38 3 7 62 2 117 3 21 +10498 119 68 67.62 1978 51 39 3 7 63 2 118 3 22 +10499 119 69 73.5 1978 51 37 3 7 63 2 116 3 20 +10500 119 70 79.38 1978 51 35 3 7 63 2 114 3 18 +10501 119 71 85.26 1978 51 36 3 7 63 2 115 3 19 +10502 119 72 91.14 1978 51 38 3 7 63 2 117 3 21 +10503 119 73 97.02 1978 51 40 3 7 63 2 119 3 23 +10504 119 74 102.9 1978 55 39 3 7 64 2 118 3 22 +10505 119 75 108.78 1978 55 37 3 7 64 2 116 3 20 +10506 119 76 114.66 1978 55 35 3 7 64 2 114 3 18 +10507 119 77 120.54 1978 55 34 3 7 64 2 113 3 17 +10508 119 78 126.42 1978 55 36 3 7 64 2 115 3 19 +10509 119 79 132.3 1978 55 38 3 7 64 2 117 3 21 +10510 119 80 138.18 1978 59 37 3 7 65 2 116 3 20 +10511 119 81 144.06 1978 59 35 3 7 65 2 114 3 18 +10512 119 82 149.94 1978 59 36 3 7 65 2 115 3 19 +10513 119 83 155.82 1978 59 38 3 7 65 2 117 3 21 +10514 119 84 161.7 1978 59 40 3 7 65 2 119 3 23 +10515 119 85 167.58 1978 63 39 3 7 66 2 118 3 22 +10516 119 86 173.46 1978 63 37 3 7 66 2 116 3 20 +10517 119 87 179.34 1978 63 35 3 7 66 2 114 3 18 +10518 119 88 185.22 1978 63 36 3 7 66 2 115 3 19 +10519 119 89 191.1 1978 63 38 3 7 66 2 117 3 21 +10520 119 90 196.98 1978 63 40 3 7 66 2 119 3 23 +10521 119 91 202.86 1978 67 39 3 7 67 2 118 3 22 +10522 119 92 208.74 1978 67 37 3 7 67 2 116 3 20 +10523 119 93 214.62 1978 67 35 3 7 67 2 114 3 18 +10524 119 94 220.5 1978 67 34 3 7 67 2 113 3 17 +10525 119 95 226.38 1978 67 36 3 7 67 2 115 3 19 +10526 119 96 232.26 1978 67 38 3 7 67 2 117 3 21 +10527 119 97 238.14 1978 71 39 3 7 68 2 118 3 22 +10528 119 98 244.02 1978 71 37 3 7 68 2 116 3 20 +10529 119 99 249.9 1978 71 35 3 7 68 2 114 3 18 +10530 119 100 255.78 1978 71 34 3 7 68 2 113 3 17 +10531 119 101 261.66 1978 71 36 3 7 68 2 115 3 19 +10532 119 102 267.54 1978 71 38 3 7 68 2 117 3 21 +10533 119 103 273.42 1978 75 39 3 7 69 2 118 3 22 +10534 119 104 279.3 1978 75 37 3 7 69 2 116 3 20 +10535 119 105 285.18 1978 75 35 3 7 69 2 114 3 18 +10536 119 106 291.06 1978 75 36 3 7 69 2 115 3 19 +10537 119 107 296.94 1978 75 38 3 7 69 2 117 3 21 +10538 119 108 302.82 1978 79 39 3 7 70 2 118 3 22 +10539 119 109 308.7 1978 79 37 3 7 70 2 116 3 20 +10540 119 110 314.58 1978 79 35 3 7 70 2 114 3 18 +10541 119 111 320.46 1978 79 36 3 7 70 2 115 3 19 +10542 119 112 326.34 1978 79 38 3 7 70 2 117 3 21 +10543 119 113 332.22 1978 79 40 3 7 70 2 119 3 23 +10544 120 0 -332.22 1990 4 5 3 7 51 3 124 3 28 +10545 120 1 -326.34 1990 4 3 3 7 51 3 122 3 26 +10546 120 2 -320.46 1990 4 1 3 7 51 3 120 3 24 +10547 120 3 -314.58 1990 4 2 3 7 51 3 121 3 25 +10548 120 4 -308.7 1990 4 4 3 7 51 3 123 3 27 +10549 120 5 -302.82 1990 4 6 3 7 51 3 125 3 29 +10550 120 6 -296.94 1990 7 39 3 7 52 2 118 3 22 +10551 120 7 -291.06 1990 8 3 3 7 52 3 122 3 26 +10552 120 8 -285.18 1990 8 1 3 7 52 3 120 3 24 +10553 120 9 -279.3 1990 8 2 3 7 52 3 121 3 25 +10554 120 10 -273.42 1990 8 4 3 7 52 3 123 3 27 +10555 120 11 -267.54 1990 11 39 3 7 53 2 118 3 22 +10556 120 12 -261.66 1990 12 3 3 7 53 3 122 3 26 +10557 120 13 -255.78 1990 12 1 3 7 53 3 120 3 24 +10558 120 14 -249.9 1990 12 2 3 7 53 3 121 3 25 +10559 120 15 -244.02 1990 12 4 3 7 53 3 123 3 27 +10560 120 16 -238.14 1990 12 6 3 7 53 3 125 3 29 +10561 120 17 -232.26 1990 15 39 3 7 54 2 118 3 22 +10562 120 18 -226.38 1990 16 3 3 7 54 3 122 3 26 +10563 120 19 -220.5 1990 16 1 3 7 54 3 120 3 24 +10564 120 20 -214.62 1990 16 2 3 7 54 3 121 3 25 +10565 120 21 -208.74 1990 16 4 3 7 54 3 123 3 27 +10566 120 22 -202.86 1990 16 6 3 7 54 3 125 3 29 +10567 120 23 -196.98 1990 20 3 3 7 55 3 122 3 26 +10568 120 24 -191.1 1990 20 1 3 7 55 3 120 3 24 +10569 120 25 -185.22 1990 20 2 3 7 55 3 121 3 25 +10570 120 26 -179.34 1990 20 4 3 7 55 3 123 3 27 +10571 120 27 -173.46 1990 20 6 3 7 55 3 125 3 29 +10572 120 28 -167.58 1990 24 5 3 7 56 3 124 3 28 +10573 120 29 -161.7 1990 24 3 3 7 56 3 122 3 26 +10574 120 30 -155.82 1990 24 1 3 7 56 3 120 3 24 +10575 120 31 -149.94 1990 24 2 3 7 56 3 121 3 25 +10576 120 32 -144.06 1990 24 4 3 7 56 3 123 3 27 +10577 120 33 -138.18 1990 23 40 3 7 56 2 119 3 23 +10578 120 34 -132.3 1990 27 39 3 7 57 2 118 3 22 +10579 120 35 -126.42 1990 28 5 3 7 57 3 124 3 28 +10580 120 36 -120.54 1990 28 3 3 7 57 3 122 3 26 +10581 120 37 -114.66 1990 28 1 3 7 57 3 120 3 24 +10582 120 38 -108.78 1990 28 2 3 7 57 3 121 3 25 +10583 120 39 -102.9 1990 28 4 3 7 57 3 123 3 27 +10584 120 40 -97.02 1990 32 5 3 7 58 3 124 3 28 +10585 120 41 -91.14 1990 32 3 3 7 58 3 122 3 26 +10586 120 42 -85.26 1990 32 1 3 7 58 3 120 3 24 +10587 120 43 -79.38 1990 32 2 3 7 58 3 121 3 25 +10588 120 44 -73.5 1990 32 4 3 7 58 3 123 3 27 +10589 120 45 -67.62 1990 32 6 3 7 58 3 125 3 29 +10590 120 46 -61.74 1990 35 39 3 7 59 2 118 3 22 +10591 120 47 -55.86 1990 36 3 3 7 59 3 122 3 26 +10592 120 48 -49.98 1990 36 1 3 7 59 3 120 3 24 +10593 120 49 -44.1 1990 36 2 3 7 59 3 121 3 25 +10594 120 50 -38.22 1990 36 4 3 7 59 3 123 3 27 +10595 120 51 -32.34 1990 39 39 3 7 60 2 118 3 22 +10596 120 52 -26.46 1990 39 37 3 7 60 2 116 3 20 +10597 120 53 -20.58 1990 40 3 3 7 60 3 122 3 26 +10598 120 54 -14.7 1990 40 1 3 7 60 3 120 3 24 +10599 120 55 -8.82 1990 40 2 3 7 60 3 121 3 25 +10600 120 56 -2.94 1990 40 4 3 7 60 3 123 3 27 +10601 120 57 2.94 1990 44 3 3 7 61 3 122 3 26 +10602 120 58 8.82 1990 44 1 3 7 61 3 120 3 24 +10603 120 59 14.7 1990 44 2 3 7 61 3 121 3 25 +10604 120 60 20.58 1990 44 4 3 7 61 3 123 3 27 +10605 120 61 26.46 1990 43 38 3 7 61 2 117 3 21 +10606 120 62 32.34 1990 43 40 3 7 61 2 119 3 23 +10607 120 63 38.22 1990 48 3 3 7 62 3 122 3 26 +10608 120 64 44.1 1990 48 1 3 7 62 3 120 3 24 +10609 120 65 49.98 1990 48 2 3 7 62 3 121 3 25 +10610 120 66 55.86 1990 48 4 3 7 62 3 123 3 27 +10611 120 67 61.74 1990 47 40 3 7 62 2 119 3 23 +10612 120 68 67.62 1990 52 5 3 7 63 3 124 3 28 +10613 120 69 73.5 1990 52 3 3 7 63 3 122 3 26 +10614 120 70 79.38 1990 52 1 3 7 63 3 120 3 24 +10615 120 71 85.26 1990 52 2 3 7 63 3 121 3 25 +10616 120 72 91.14 1990 52 4 3 7 63 3 123 3 27 +10617 120 73 97.02 1990 52 6 3 7 63 3 125 3 29 +10618 120 74 102.9 1990 56 3 3 7 64 3 122 3 26 +10619 120 75 108.78 1990 56 1 3 7 64 3 120 3 24 +10620 120 76 114.66 1990 56 2 3 7 64 3 121 3 25 +10621 120 77 120.54 1990 56 4 3 7 64 3 123 3 27 +10622 120 78 126.42 1990 56 6 3 7 64 3 125 3 29 +10623 120 79 132.3 1990 55 40 3 7 64 2 119 3 23 +10624 120 80 138.18 1990 59 39 3 7 65 2 118 3 22 +10625 120 81 144.06 1990 60 3 3 7 65 3 122 3 26 +10626 120 82 149.94 1990 60 1 3 7 65 3 120 3 24 +10627 120 83 155.82 1990 60 2 3 7 65 3 121 3 25 +10628 120 84 161.7 1990 60 4 3 7 65 3 123 3 27 +10629 120 85 167.58 1990 60 6 3 7 65 3 125 3 29 +10630 120 86 173.46 1990 64 5 3 7 66 3 124 3 28 +10631 120 87 179.34 1990 64 3 3 7 66 3 122 3 26 +10632 120 88 185.22 1990 64 1 3 7 66 3 120 3 24 +10633 120 89 191.1 1990 64 2 3 7 66 3 121 3 25 +10634 120 90 196.98 1990 64 4 3 7 66 3 123 3 27 +10635 120 91 202.86 1990 68 5 3 7 67 3 124 3 28 +10636 120 92 208.74 1990 68 3 3 7 67 3 122 3 26 +10637 120 93 214.62 1990 68 1 3 7 67 3 120 3 24 +10638 120 94 220.5 1990 68 2 3 7 67 3 121 3 25 +10639 120 95 226.38 1990 68 4 3 7 67 3 123 3 27 +10640 120 96 232.26 1990 67 40 3 7 67 2 119 3 23 +10641 120 97 238.14 1990 72 5 3 7 68 3 124 3 28 +10642 120 98 244.02 1990 72 3 3 7 68 3 122 3 26 +10643 120 99 249.9 1990 72 1 3 7 68 3 120 3 24 +10644 120 100 255.78 1990 72 2 3 7 68 3 121 3 25 +10645 120 101 261.66 1990 72 4 3 7 68 3 123 3 27 +10646 120 102 267.54 1990 71 40 3 7 68 2 119 3 23 +10647 120 103 273.42 1990 76 3 3 7 69 3 122 3 26 +10648 120 104 279.3 1990 76 1 3 7 69 3 120 3 24 +10649 120 105 285.18 1990 76 2 3 7 69 3 121 3 25 +10650 120 106 291.06 1990 76 4 3 7 69 3 123 3 27 +10651 120 107 296.94 1990 75 40 3 7 69 2 119 3 23 +10652 120 108 302.82 1990 80 5 3 7 70 3 124 3 28 +10653 120 109 308.7 1990 80 3 3 7 70 3 122 3 26 +10654 120 110 314.58 1990 80 1 3 7 70 3 120 3 24 +10655 120 111 320.46 1990 80 2 3 7 70 3 121 3 25 +10656 120 112 326.34 1990 80 4 3 7 70 3 123 3 27 +10657 120 113 332.22 1990 80 6 3 7 70 3 125 3 29 +10658 121 0 -338.1 2002 4 11 3 7 51 3 130 4 2 +10659 121 1 -332.22 2002 4 9 3 7 51 3 128 4 0 +10660 121 2 -326.34 2002 4 7 3 7 51 3 126 3 30 +10661 121 3 -320.46 2002 4 8 3 7 51 3 127 3 31 +10662 121 4 -314.58 2002 4 10 3 7 51 3 129 4 1 +10663 121 5 -308.7 2002 4 12 3 7 51 3 131 4 3 +10664 121 6 -302.82 2002 8 9 3 7 52 3 128 4 0 +10665 121 7 -296.94 2002 8 7 3 7 52 3 126 3 30 +10666 121 8 -291.06 2002 8 5 3 7 52 3 124 3 28 +10667 121 9 -285.18 2002 8 6 3 7 52 3 125 3 29 +10668 121 10 -279.3 2002 8 8 3 7 52 3 127 3 31 +10669 121 11 -273.42 2002 8 10 3 7 52 3 129 4 1 +10670 121 12 -267.54 2002 12 9 3 7 53 3 128 4 0 +10671 121 13 -261.66 2002 12 7 3 7 53 3 126 3 30 +10672 121 14 -255.78 2002 12 5 3 7 53 3 124 3 28 +10673 121 15 -249.9 2002 12 8 3 7 53 3 127 3 31 +10674 121 16 -244.02 2002 12 10 3 7 53 3 129 4 1 +10675 121 17 -238.14 2002 12 12 3 7 53 3 131 4 3 +10676 121 18 -232.26 2002 16 9 3 7 54 3 128 4 0 +10677 121 19 -226.38 2002 16 7 3 7 54 3 126 3 30 +10678 121 20 -220.5 2002 16 5 3 7 54 3 124 3 28 +10679 121 21 -214.62 2002 16 8 3 7 54 3 127 3 31 +10680 121 22 -208.74 2002 16 10 3 7 54 3 129 4 1 +10681 121 23 -202.86 2002 20 9 3 7 55 3 128 4 0 +10682 121 24 -196.98 2002 20 7 3 7 55 3 126 3 30 +10683 121 25 -191.1 2002 20 5 3 7 55 3 124 3 28 +10684 121 26 -185.22 2002 20 8 3 7 55 3 127 3 31 +10685 121 27 -179.34 2002 20 10 3 7 55 3 129 4 1 +10686 121 28 -173.46 2002 20 12 3 7 55 3 131 4 3 +10687 121 29 -167.58 2002 24 11 3 7 56 3 130 4 2 +10688 121 30 -161.7 2002 24 9 3 7 56 3 128 4 0 +10689 121 31 -155.82 2002 24 7 3 7 56 3 126 3 30 +10690 121 32 -149.94 2002 24 6 3 7 56 3 125 3 29 +10691 121 33 -144.06 2002 24 8 3 7 56 3 127 3 31 +10692 121 34 -138.18 2002 24 10 3 7 56 3 129 4 1 +10693 121 35 -132.3 2002 28 11 3 7 57 3 130 4 2 +10694 121 36 -126.42 2002 28 9 3 7 57 3 128 4 0 +10695 121 37 -120.54 2002 28 7 3 7 57 3 126 3 30 +10696 121 38 -114.66 2002 28 6 3 7 57 3 125 3 29 +10697 121 39 -108.78 2002 28 8 3 7 57 3 127 3 31 +10698 121 40 -102.9 2002 28 10 3 7 57 3 129 4 1 +10699 121 41 -97.02 2002 32 9 3 7 58 3 128 4 0 +10700 121 42 -91.14 2002 32 7 3 7 58 3 126 3 30 +10701 121 43 -85.26 2002 32 8 3 7 58 3 127 3 31 +10702 121 44 -79.38 2002 32 10 3 7 58 3 129 4 1 +10703 121 45 -73.5 2002 32 12 3 7 58 3 131 4 3 +10704 121 46 -67.62 2002 36 9 3 7 59 3 128 4 0 +10705 121 47 -61.74 2002 36 7 3 7 59 3 126 3 30 +10706 121 48 -55.86 2002 36 5 3 7 59 3 124 3 28 +10707 121 49 -49.98 2002 36 6 3 7 59 3 125 3 29 +10708 121 50 -44.1 2002 36 8 3 7 59 3 127 3 31 +10709 121 51 -38.22 2002 36 10 3 7 59 3 129 4 1 +10710 121 52 -32.34 2002 40 9 3 7 60 3 128 4 0 +10711 121 53 -26.46 2002 40 7 3 7 60 3 126 3 30 +10712 121 54 -20.58 2002 40 5 3 7 60 3 124 3 28 +10713 121 55 -14.7 2002 40 6 3 7 60 3 125 3 29 +10714 121 56 -8.82 2002 40 8 3 7 60 3 127 3 31 +10715 121 57 -2.94 2002 40 10 3 7 60 3 129 4 1 +10716 121 58 2.94 2002 44 9 3 7 61 3 128 4 0 +10717 121 59 8.82 2002 44 7 3 7 61 3 126 3 30 +10718 121 60 14.7 2002 44 5 3 7 61 3 124 3 28 +10719 121 61 20.58 2002 44 6 3 7 61 3 125 3 29 +10720 121 62 26.46 2002 44 8 3 7 61 3 127 3 31 +10721 121 63 32.34 2002 44 10 3 7 61 3 129 4 1 +10722 121 64 38.22 2002 48 9 3 7 62 3 128 4 0 +10723 121 65 44.1 2002 48 7 3 7 62 3 126 3 30 +10724 121 66 49.98 2002 48 5 3 7 62 3 124 3 28 +10725 121 67 55.86 2002 48 6 3 7 62 3 125 3 29 +10726 121 68 61.74 2002 48 8 3 7 62 3 127 3 31 +10727 121 69 67.62 2002 48 10 3 7 62 3 129 4 1 +10728 121 70 73.5 2002 52 11 3 7 63 3 130 4 2 +10729 121 71 79.38 2002 52 9 3 7 63 3 128 4 0 +10730 121 72 85.26 2002 52 7 3 7 63 3 126 3 30 +10731 121 73 91.14 2002 52 8 3 7 63 3 127 3 31 +10732 121 74 97.02 2002 52 10 3 7 63 3 129 4 1 +10733 121 75 102.9 2002 56 9 3 7 64 3 128 4 0 +10734 121 76 108.78 2002 56 7 3 7 64 3 126 3 30 +10735 121 77 114.66 2002 56 5 3 7 64 3 124 3 28 +10736 121 78 120.54 2002 56 8 3 7 64 3 127 3 31 +10737 121 79 126.42 2002 56 10 3 7 64 3 129 4 1 +10738 121 80 132.3 2002 56 12 3 7 64 3 131 4 3 +10739 121 81 138.18 2002 60 9 3 7 65 3 128 4 0 +10740 121 82 144.06 2002 60 7 3 7 65 3 126 3 30 +10741 121 83 149.94 2002 60 5 3 7 65 3 124 3 28 +10742 121 84 155.82 2002 60 8 3 7 65 3 127 3 31 +10743 121 85 161.7 2002 60 10 3 7 65 3 129 4 1 +10744 121 86 167.58 2002 60 12 3 7 65 3 131 4 3 +10745 121 87 173.46 2002 64 11 3 7 66 3 130 4 2 +10746 121 88 179.34 2002 64 9 3 7 66 3 128 4 0 +10747 121 89 185.22 2002 64 7 3 7 66 3 126 3 30 +10748 121 90 191.1 2002 64 6 3 7 66 3 125 3 29 +10749 121 91 196.98 2002 64 8 3 7 66 3 127 3 31 +10750 121 92 202.86 2002 64 10 3 7 66 3 129 4 1 +10751 121 93 208.74 2002 68 9 3 7 67 3 128 4 0 +10752 121 94 214.62 2002 68 7 3 7 67 3 126 3 30 +10753 121 95 220.5 2002 68 6 3 7 67 3 125 3 29 +10754 121 96 226.38 2002 68 8 3 7 67 3 127 3 31 +10755 121 97 232.26 2002 68 10 3 7 67 3 129 4 1 +10756 121 98 238.14 2002 72 11 3 7 68 3 130 4 2 +10757 121 99 244.02 2002 72 9 3 7 68 3 128 4 0 +10758 121 100 249.9 2002 72 7 3 7 68 3 126 3 30 +10759 121 101 255.78 2002 72 6 3 7 68 3 125 3 29 +10760 121 102 261.66 2002 72 8 3 7 68 3 127 3 31 +10761 121 103 267.54 2002 72 10 3 7 68 3 129 4 1 +10762 121 104 273.42 2002 76 9 3 7 69 3 128 4 0 +10763 121 105 279.3 2002 76 7 3 7 69 3 126 3 30 +10764 121 106 285.18 2002 76 5 3 7 69 3 124 3 28 +10765 121 107 291.06 2002 76 6 3 7 69 3 125 3 29 +10766 121 108 296.94 2002 76 8 3 7 69 3 127 3 31 +10767 121 109 302.82 2002 76 10 3 7 69 3 129 4 1 +10768 121 110 308.7 2002 80 11 3 7 70 3 130 4 2 +10769 121 111 314.58 2002 80 9 3 7 70 3 128 4 0 +10770 121 112 320.46 2002 80 7 3 7 70 3 126 3 30 +10771 121 113 326.34 2002 80 8 3 7 70 3 127 3 31 +10772 121 114 332.22 2002 80 10 3 7 70 3 129 4 1 +10773 121 115 338.1 2002 80 12 3 7 70 3 131 4 3 +10774 122 0 -338.1 2014 4 17 3 7 51 3 136 4 8 +10775 122 1 -332.22 2014 4 15 3 7 51 3 134 4 6 +10776 122 2 -326.34 2014 4 13 3 7 51 3 132 4 4 +10777 122 3 -320.46 2014 4 14 3 7 51 3 133 4 5 +10778 122 4 -314.58 2014 4 16 3 7 51 3 135 4 7 +10779 122 5 -308.7 2014 4 18 3 7 51 3 137 4 9 +10780 122 6 -302.82 2014 8 15 3 7 52 3 134 4 6 +10781 122 7 -296.94 2014 8 13 3 7 52 3 132 4 4 +10782 122 8 -291.06 2014 8 11 3 7 52 3 130 4 2 +10783 122 9 -285.18 2014 8 12 3 7 52 3 131 4 3 +10784 122 10 -279.3 2014 8 14 3 7 52 3 133 4 5 +10785 122 11 -273.42 2014 8 16 3 7 52 3 135 4 7 +10786 122 12 -267.54 2014 12 15 3 7 53 3 134 4 6 +10787 122 13 -261.66 2014 12 13 3 7 53 3 132 4 4 +10788 122 14 -255.78 2014 12 11 3 7 53 3 130 4 2 +10789 122 15 -249.9 2014 12 14 3 7 53 3 133 4 5 +10790 122 16 -244.02 2014 12 16 3 7 53 3 135 4 7 +10791 122 17 -238.14 2014 16 15 3 7 54 3 134 4 6 +10792 122 18 -232.26 2014 16 13 3 7 54 3 132 4 4 +10793 122 19 -226.38 2014 16 11 3 7 54 3 130 4 2 +10794 122 20 -220.5 2014 16 12 3 7 54 3 131 4 3 +10795 122 21 -214.62 2014 16 14 3 7 54 3 133 4 5 +10796 122 22 -208.74 2014 16 16 3 7 54 3 135 4 7 +10797 122 23 -202.86 2014 20 15 3 7 55 3 134 4 6 +10798 122 24 -196.98 2014 20 13 3 7 55 3 132 4 4 +10799 122 25 -191.1 2014 20 11 3 7 55 3 130 4 2 +10800 122 26 -185.22 2014 20 14 3 7 55 3 133 4 5 +10801 122 27 -179.34 2014 20 16 3 7 55 3 135 4 7 +10802 122 28 -173.46 2014 20 18 3 7 55 3 137 4 9 +10803 122 29 -167.58 2014 24 17 3 7 56 3 136 4 8 +10804 122 30 -161.7 2014 24 15 3 7 56 3 134 4 6 +10805 122 31 -155.82 2014 24 13 3 7 56 3 132 4 4 +10806 122 32 -149.94 2014 24 12 3 7 56 3 131 4 3 +10807 122 33 -144.06 2014 24 14 3 7 56 3 133 4 5 +10808 122 34 -138.18 2014 24 16 3 7 56 3 135 4 7 +10809 122 35 -132.3 2014 28 17 3 7 57 3 136 4 8 +10810 122 36 -126.42 2014 28 15 3 7 57 3 134 4 6 +10811 122 37 -120.54 2014 28 13 3 7 57 3 132 4 4 +10812 122 38 -114.66 2014 28 12 3 7 57 3 131 4 3 +10813 122 39 -108.78 2014 28 14 3 7 57 3 133 4 5 +10814 122 40 -102.9 2014 28 16 3 7 57 3 135 4 7 +10815 122 41 -97.02 2014 32 15 3 7 58 3 134 4 6 +10816 122 42 -91.14 2014 32 13 3 7 58 3 132 4 4 +10817 122 43 -85.26 2014 32 11 3 7 58 3 130 4 2 +10818 122 44 -79.38 2014 32 14 3 7 58 3 133 4 5 +10819 122 45 -73.5 2014 32 16 3 7 58 3 135 4 7 +10820 122 46 -67.62 2014 36 15 3 7 59 3 134 4 6 +10821 122 47 -61.74 2014 36 13 3 7 59 3 132 4 4 +10822 122 48 -55.86 2014 36 11 3 7 59 3 130 4 2 +10823 122 49 -49.98 2014 36 12 3 7 59 3 131 4 3 +10824 122 50 -44.1 2014 36 14 3 7 59 3 133 4 5 +10825 122 51 -38.22 2014 36 16 3 7 59 3 135 4 7 +10826 122 52 -32.34 2014 40 15 3 7 60 3 134 4 6 +10827 122 53 -26.46 2014 40 13 3 7 60 3 132 4 4 +10828 122 54 -20.58 2014 40 11 3 7 60 3 130 4 2 +10829 122 55 -14.7 2014 40 12 3 7 60 3 131 4 3 +10830 122 56 -8.82 2014 40 14 3 7 60 3 133 4 5 +10831 122 57 -2.94 2014 40 16 3 7 60 3 135 4 7 +10832 122 58 2.94 2014 44 15 3 7 61 3 134 4 6 +10833 122 59 8.82 2014 44 13 3 7 61 3 132 4 4 +10834 122 60 14.7 2014 44 11 3 7 61 3 130 4 2 +10835 122 61 20.58 2014 44 12 3 7 61 3 131 4 3 +10836 122 62 26.46 2014 44 14 3 7 61 3 133 4 5 +10837 122 63 32.34 2014 44 16 3 7 61 3 135 4 7 +10838 122 64 38.22 2014 48 15 3 7 62 3 134 4 6 +10839 122 65 44.1 2014 48 13 3 7 62 3 132 4 4 +10840 122 66 49.98 2014 48 11 3 7 62 3 130 4 2 +10841 122 67 55.86 2014 48 12 3 7 62 3 131 4 3 +10842 122 68 61.74 2014 48 14 3 7 62 3 133 4 5 +10843 122 69 67.62 2014 48 16 3 7 62 3 135 4 7 +10844 122 70 73.5 2014 52 15 3 7 63 3 134 4 6 +10845 122 71 79.38 2014 52 13 3 7 63 3 132 4 4 +10846 122 72 85.26 2014 52 12 3 7 63 3 131 4 3 +10847 122 73 91.14 2014 52 14 3 7 63 3 133 4 5 +10848 122 74 97.02 2014 52 16 3 7 63 3 135 4 7 +10849 122 75 102.9 2014 56 15 3 7 64 3 134 4 6 +10850 122 76 108.78 2014 56 13 3 7 64 3 132 4 4 +10851 122 77 114.66 2014 56 11 3 7 64 3 130 4 2 +10852 122 78 120.54 2014 56 14 3 7 64 3 133 4 5 +10853 122 79 126.42 2014 56 16 3 7 64 3 135 4 7 +10854 122 80 132.3 2014 56 18 3 7 64 3 137 4 9 +10855 122 81 138.18 2014 60 15 3 7 65 3 134 4 6 +10856 122 82 144.06 2014 60 13 3 7 65 3 132 4 4 +10857 122 83 149.94 2014 60 11 3 7 65 3 130 4 2 +10858 122 84 155.82 2014 60 14 3 7 65 3 133 4 5 +10859 122 85 161.7 2014 60 16 3 7 65 3 135 4 7 +10860 122 86 167.58 2014 60 18 3 7 65 3 137 4 9 +10861 122 87 173.46 2014 64 17 3 7 66 3 136 4 8 +10862 122 88 179.34 2014 64 15 3 7 66 3 134 4 6 +10863 122 89 185.22 2014 64 13 3 7 66 3 132 4 4 +10864 122 90 191.1 2014 64 12 3 7 66 3 131 4 3 +10865 122 91 196.98 2014 64 14 3 7 66 3 133 4 5 +10866 122 92 202.86 2014 64 16 3 7 66 3 135 4 7 +10867 122 93 208.74 2014 68 15 3 7 67 3 134 4 6 +10868 122 94 214.62 2014 68 13 3 7 67 3 132 4 4 +10869 122 95 220.5 2014 68 11 3 7 67 3 130 4 2 +10870 122 96 226.38 2014 68 12 3 7 67 3 131 4 3 +10871 122 97 232.26 2014 68 14 3 7 67 3 133 4 5 +10872 122 98 238.14 2014 68 16 3 7 67 3 135 4 7 +10873 122 99 244.02 2014 72 15 3 7 68 3 134 4 6 +10874 122 100 249.9 2014 72 13 3 7 68 3 132 4 4 +10875 122 101 255.78 2014 72 12 3 7 68 3 131 4 3 +10876 122 102 261.66 2014 72 14 3 7 68 3 133 4 5 +10877 122 103 267.54 2014 72 16 3 7 68 3 135 4 7 +10878 122 104 273.42 2014 76 15 3 7 69 3 134 4 6 +10879 122 105 279.3 2014 76 13 3 7 69 3 132 4 4 +10880 122 106 285.18 2014 76 11 3 7 69 3 130 4 2 +10881 122 107 291.06 2014 76 12 3 7 69 3 131 4 3 +10882 122 108 296.94 2014 76 14 3 7 69 3 133 4 5 +10883 122 109 302.82 2014 76 16 3 7 69 3 135 4 7 +10884 122 110 308.7 2014 80 17 3 7 70 3 136 4 8 +10885 122 111 314.58 2014 80 15 3 7 70 3 134 4 6 +10886 122 112 320.46 2014 80 13 3 7 70 3 132 4 4 +10887 122 113 326.34 2014 80 14 3 7 70 3 133 4 5 +10888 122 114 332.22 2014 80 16 3 7 70 3 135 4 7 +10889 122 115 338.1 2014 80 18 3 7 70 3 137 4 9 +10890 123 0 -338.1 2026 4 23 3 7 51 3 142 4 14 +10891 123 1 -332.22 2026 4 21 3 7 51 3 140 4 12 +10892 123 2 -326.34 2026 4 19 3 7 51 3 138 4 10 +10893 123 3 -320.46 2026 4 20 3 7 51 3 139 4 11 +10894 123 4 -314.58 2026 4 22 3 7 51 3 141 4 13 +10895 123 5 -308.7 2026 8 21 3 7 52 3 140 4 12 +10896 123 6 -302.82 2026 8 19 3 7 52 3 138 4 10 +10897 123 7 -296.94 2026 8 17 3 7 52 3 136 4 8 +10898 123 8 -291.06 2026 8 18 3 7 52 3 137 4 9 +10899 123 9 -285.18 2026 8 20 3 7 52 3 139 4 11 +10900 123 10 -279.3 2026 8 22 3 7 52 3 141 4 13 +10901 123 11 -273.42 2026 12 21 3 7 53 3 140 4 12 +10902 123 12 -267.54 2026 12 19 3 7 53 3 138 4 10 +10903 123 13 -261.66 2026 12 17 3 7 53 3 136 4 8 +10904 123 14 -255.78 2026 12 18 3 7 53 3 137 4 9 +10905 123 15 -249.9 2026 12 20 3 7 53 3 139 4 11 +10906 123 16 -244.02 2026 12 22 3 7 53 3 141 4 13 +10907 123 17 -238.14 2026 16 21 3 7 54 3 140 4 12 +10908 123 18 -232.26 2026 16 19 3 7 54 3 138 4 10 +10909 123 19 -226.38 2026 16 17 3 7 54 3 136 4 8 +10910 123 20 -220.5 2026 16 18 3 7 54 3 137 4 9 +10911 123 21 -214.62 2026 16 20 3 7 54 3 139 4 11 +10912 123 22 -208.74 2026 16 22 3 7 54 3 141 4 13 +10913 123 23 -202.86 2026 20 21 3 7 55 3 140 4 12 +10914 123 24 -196.98 2026 20 19 3 7 55 3 138 4 10 +10915 123 25 -191.1 2026 20 17 3 7 55 3 136 4 8 +10916 123 26 -185.22 2026 20 20 3 7 55 3 139 4 11 +10917 123 27 -179.34 2026 20 22 3 7 55 3 141 4 13 +10918 123 28 -173.46 2026 20 24 3 7 55 3 143 4 15 +10919 123 29 -167.58 2026 24 23 3 7 56 3 142 4 14 +10920 123 30 -161.7 2026 24 21 3 7 56 3 140 4 12 +10921 123 31 -155.82 2026 24 19 3 7 56 3 138 4 10 +10922 123 32 -149.94 2026 24 18 3 7 56 3 137 4 9 +10923 123 33 -144.06 2026 24 20 3 7 56 3 139 4 11 +10924 123 34 -138.18 2026 24 22 3 7 56 3 141 4 13 +10925 123 35 -132.3 2026 28 21 3 7 57 3 140 4 12 +10926 123 36 -126.42 2026 28 19 3 7 57 3 138 4 10 +10927 123 37 -120.54 2026 28 18 3 7 57 3 137 4 9 +10928 123 38 -114.66 2026 28 20 3 7 57 3 139 4 11 +10929 123 39 -108.78 2026 28 22 3 7 57 3 141 4 13 +10930 123 40 -102.9 2026 32 21 3 7 58 3 140 4 12 +10931 123 41 -97.02 2026 32 19 3 7 58 3 138 4 10 +10932 123 42 -91.14 2026 32 17 3 7 58 3 136 4 8 +10933 123 43 -85.26 2026 32 18 3 7 58 3 137 4 9 +10934 123 44 -79.38 2026 32 20 3 7 58 3 139 4 11 +10935 123 45 -73.5 2026 32 22 3 7 58 3 141 4 13 +10936 123 46 -67.62 2026 36 21 3 7 59 3 140 4 12 +10937 123 47 -61.74 2026 36 19 3 7 59 3 138 4 10 +10938 123 48 -55.86 2026 36 17 3 7 59 3 136 4 8 +10939 123 49 -49.98 2026 36 18 3 7 59 3 137 4 9 +10940 123 50 -44.1 2026 36 20 3 7 59 3 139 4 11 +10941 123 51 -38.22 2026 36 22 3 7 59 3 141 4 13 +10942 123 52 -32.34 2026 40 21 3 7 60 3 140 4 12 +10943 123 53 -26.46 2026 40 19 3 7 60 3 138 4 10 +10944 123 54 -20.58 2026 40 17 3 7 60 3 136 4 8 +10945 123 55 -14.7 2026 40 18 3 7 60 3 137 4 9 +10946 123 56 -8.82 2026 40 20 3 7 60 3 139 4 11 +10947 123 57 -2.94 2026 40 22 3 7 60 3 141 4 13 +10948 123 58 2.94 2026 44 21 3 7 61 3 140 4 12 +10949 123 59 8.82 2026 44 19 3 7 61 3 138 4 10 +10950 123 60 14.7 2026 44 17 3 7 61 3 136 4 8 +10951 123 61 20.58 2026 44 18 3 7 61 3 137 4 9 +10952 123 62 26.46 2026 44 20 3 7 61 3 139 4 11 +10953 123 63 32.34 2026 44 22 3 7 61 3 141 4 13 +10954 123 64 38.22 2026 48 21 3 7 62 3 140 4 12 +10955 123 65 44.1 2026 48 19 3 7 62 3 138 4 10 +10956 123 66 49.98 2026 48 17 3 7 62 3 136 4 8 +10957 123 67 55.86 2026 48 18 3 7 62 3 137 4 9 +10958 123 68 61.74 2026 48 20 3 7 62 3 139 4 11 +10959 123 69 67.62 2026 48 22 3 7 62 3 141 4 13 +10960 123 70 73.5 2026 52 21 3 7 63 3 140 4 12 +10961 123 71 79.38 2026 52 19 3 7 63 3 138 4 10 +10962 123 72 85.26 2026 52 17 3 7 63 3 136 4 8 +10963 123 73 91.14 2026 52 18 3 7 63 3 137 4 9 +10964 123 74 97.02 2026 52 20 3 7 63 3 139 4 11 +10965 123 75 102.9 2026 52 22 3 7 63 3 141 4 13 +10966 123 76 108.78 2026 56 21 3 7 64 3 140 4 12 +10967 123 77 114.66 2026 56 19 3 7 64 3 138 4 10 +10968 123 78 120.54 2026 56 17 3 7 64 3 136 4 8 +10969 123 79 126.42 2026 56 20 3 7 64 3 139 4 11 +10970 123 80 132.3 2026 56 22 3 7 64 3 141 4 13 +10971 123 81 138.18 2026 60 21 3 7 65 3 140 4 12 +10972 123 82 144.06 2026 60 19 3 7 65 3 138 4 10 +10973 123 83 149.94 2026 60 17 3 7 65 3 136 4 8 +10974 123 84 155.82 2026 60 20 3 7 65 3 139 4 11 +10975 123 85 161.7 2026 60 22 3 7 65 3 141 4 13 +10976 123 86 167.58 2026 60 24 3 7 65 3 143 4 15 +10977 123 87 173.46 2026 64 23 3 7 66 3 142 4 14 +10978 123 88 179.34 2026 64 21 3 7 66 3 140 4 12 +10979 123 89 185.22 2026 64 19 3 7 66 3 138 4 10 +10980 123 90 191.1 2026 64 18 3 7 66 3 137 4 9 +10981 123 91 196.98 2026 64 20 3 7 66 3 139 4 11 +10982 123 92 202.86 2026 64 22 3 7 66 3 141 4 13 +10983 123 93 208.74 2026 68 21 3 7 67 3 140 4 12 +10984 123 94 214.62 2026 68 19 3 7 67 3 138 4 10 +10985 123 95 220.5 2026 68 17 3 7 67 3 136 4 8 +10986 123 96 226.38 2026 68 18 3 7 67 3 137 4 9 +10987 123 97 232.26 2026 68 20 3 7 67 3 139 4 11 +10988 123 98 238.14 2026 68 22 3 7 67 3 141 4 13 +10989 123 99 244.02 2026 72 21 3 7 68 3 140 4 12 +10990 123 100 249.9 2026 72 19 3 7 68 3 138 4 10 +10991 123 101 255.78 2026 72 17 3 7 68 3 136 4 8 +10992 123 102 261.66 2026 72 18 3 7 68 3 137 4 9 +10993 123 103 267.54 2026 72 20 3 7 68 3 139 4 11 +10994 123 104 273.42 2026 72 22 3 7 68 3 141 4 13 +10995 123 105 279.3 2026 76 21 3 7 69 3 140 4 12 +10996 123 106 285.18 2026 76 19 3 7 69 3 138 4 10 +10997 123 107 291.06 2026 76 17 3 7 69 3 136 4 8 +10998 123 108 296.94 2026 76 18 3 7 69 3 137 4 9 +10999 123 109 302.82 2026 76 20 3 7 69 3 139 4 11 +11000 123 110 308.7 2026 76 22 3 7 69 3 141 4 13 +11001 123 111 314.58 2026 80 21 3 7 70 3 140 4 12 +11002 123 112 320.46 2026 80 19 3 7 70 3 138 4 10 +11003 123 113 326.34 2026 80 20 3 7 70 3 139 4 11 +11004 123 114 332.22 2026 80 22 3 7 70 3 141 4 13 +11005 123 115 338.1 2026 80 24 3 7 70 3 143 4 15 +11006 124 0 -343.98 2038 4 29 3 7 51 3 148 4 20 +11007 124 1 -338.1 2038 4 27 3 7 51 3 146 4 18 +11008 124 2 -332.22 2038 4 25 3 7 51 3 144 4 16 +11009 124 3 -326.34 2038 4 24 3 7 51 3 143 4 15 +11010 124 4 -320.46 2038 4 26 3 7 51 3 145 4 17 +11011 124 5 -314.58 2038 4 28 3 7 51 3 147 4 19 +11012 124 6 -308.7 2038 8 27 3 7 52 3 146 4 18 +11013 124 7 -302.82 2038 8 25 3 7 52 3 144 4 16 +11014 124 8 -296.94 2038 8 23 3 7 52 3 142 4 14 +11015 124 9 -291.06 2038 8 24 3 7 52 3 143 4 15 +11016 124 10 -285.18 2038 8 26 3 7 52 3 145 4 17 +11017 124 11 -279.3 2038 8 28 3 7 52 3 147 4 19 +11018 124 12 -273.42 2038 12 27 3 7 53 3 146 4 18 +11019 124 13 -267.54 2038 12 25 3 7 53 3 144 4 16 +11020 124 14 -261.66 2038 12 23 3 7 53 3 142 4 14 +11021 124 15 -255.78 2038 12 24 3 7 53 3 143 4 15 +11022 124 16 -249.9 2038 12 26 3 7 53 3 145 4 17 +11023 124 17 -244.02 2038 12 28 3 7 53 3 147 4 19 +11024 124 18 -238.14 2038 16 27 3 7 54 3 146 4 18 +11025 124 19 -232.26 2038 16 25 3 7 54 3 144 4 16 +11026 124 20 -226.38 2038 16 23 3 7 54 3 142 4 14 +11027 124 21 -220.5 2038 16 24 3 7 54 3 143 4 15 +11028 124 22 -214.62 2038 16 26 3 7 54 3 145 4 17 +11029 124 23 -208.74 2038 16 28 3 7 54 3 147 4 19 +11030 124 24 -202.86 2038 20 27 3 7 55 3 146 4 18 +11031 124 25 -196.98 2038 20 25 3 7 55 3 144 4 16 +11032 124 26 -191.1 2038 20 23 3 7 55 3 142 4 14 +11033 124 27 -185.22 2038 20 26 3 7 55 3 145 4 17 +11034 124 28 -179.34 2038 20 28 3 7 55 3 147 4 19 +11035 124 29 -173.46 2038 20 30 3 7 55 3 149 4 21 +11036 124 30 -167.58 2038 24 27 3 7 56 3 146 4 18 +11037 124 31 -161.7 2038 24 25 3 7 56 3 144 4 16 +11038 124 32 -155.82 2038 24 24 3 7 56 3 143 4 15 +11039 124 33 -149.94 2038 24 26 3 7 56 3 145 4 17 +11040 124 34 -144.06 2038 24 28 3 7 56 3 147 4 19 +11041 124 35 -138.18 2038 28 27 3 7 57 3 146 4 18 +11042 124 36 -132.3 2038 28 25 3 7 57 3 144 4 16 +11043 124 37 -126.42 2038 28 23 3 7 57 3 142 4 14 +11044 124 38 -120.54 2038 28 24 3 7 57 3 143 4 15 +11045 124 39 -114.66 2038 28 26 3 7 57 3 145 4 17 +11046 124 40 -108.78 2038 28 28 3 7 57 3 147 4 19 +11047 124 41 -102.9 2038 32 27 3 7 58 3 146 4 18 +11048 124 42 -97.02 2038 32 25 3 7 58 3 144 4 16 +11049 124 43 -91.14 2038 32 23 3 7 58 3 142 4 14 +11050 124 44 -85.26 2038 32 24 3 7 58 3 143 4 15 +11051 124 45 -79.38 2038 32 26 3 7 58 3 145 4 17 +11052 124 46 -73.5 2038 32 28 3 7 58 3 147 4 19 +11053 124 47 -67.62 2038 36 27 3 7 59 3 146 4 18 +11054 124 48 -61.74 2038 36 25 3 7 59 3 144 4 16 +11055 124 49 -55.86 2038 36 23 3 7 59 3 142 4 14 +11056 124 50 -49.98 2038 36 24 3 7 59 3 143 4 15 +11057 124 51 -44.1 2038 36 26 3 7 59 3 145 4 17 +11058 124 52 -38.22 2038 36 28 3 7 59 3 147 4 19 +11059 124 53 -32.34 2038 40 27 3 7 60 3 146 4 18 +11060 124 54 -26.46 2038 40 25 3 7 60 3 144 4 16 +11061 124 55 -20.58 2038 40 23 3 7 60 3 142 4 14 +11062 124 56 -14.7 2038 40 24 3 7 60 3 143 4 15 +11063 124 57 -8.82 2038 40 26 3 7 60 3 145 4 17 +11064 124 58 -2.94 2038 40 28 3 7 60 3 147 4 19 +11065 124 59 2.94 2038 44 27 3 7 61 3 146 4 18 +11066 124 60 8.82 2038 44 25 3 7 61 3 144 4 16 +11067 124 61 14.7 2038 44 23 3 7 61 3 142 4 14 +11068 124 62 20.58 2038 44 24 3 7 61 3 143 4 15 +11069 124 63 26.46 2038 44 26 3 7 61 3 145 4 17 +11070 124 64 32.34 2038 44 28 3 7 61 3 147 4 19 +11071 124 65 38.22 2038 48 27 3 7 62 3 146 4 18 +11072 124 66 44.1 2038 48 25 3 7 62 3 144 4 16 +11073 124 67 49.98 2038 48 23 3 7 62 3 142 4 14 +11074 124 68 55.86 2038 48 24 3 7 62 3 143 4 15 +11075 124 69 61.74 2038 48 26 3 7 62 3 145 4 17 +11076 124 70 67.62 2038 48 28 3 7 62 3 147 4 19 +11077 124 71 73.5 2038 52 27 3 7 63 3 146 4 18 +11078 124 72 79.38 2038 52 25 3 7 63 3 144 4 16 +11079 124 73 85.26 2038 52 23 3 7 63 3 142 4 14 +11080 124 74 91.14 2038 52 24 3 7 63 3 143 4 15 +11081 124 75 97.02 2038 52 26 3 7 63 3 145 4 17 +11082 124 76 102.9 2038 52 28 3 7 63 3 147 4 19 +11083 124 77 108.78 2038 56 27 3 7 64 3 146 4 18 +11084 124 78 114.66 2038 56 25 3 7 64 3 144 4 16 +11085 124 79 120.54 2038 56 23 3 7 64 3 142 4 14 +11086 124 80 126.42 2038 56 24 3 7 64 3 143 4 15 +11087 124 81 132.3 2038 56 26 3 7 64 3 145 4 17 +11088 124 82 138.18 2038 56 28 3 7 64 3 147 4 19 +11089 124 83 144.06 2038 60 27 3 7 65 3 146 4 18 +11090 124 84 149.94 2038 60 25 3 7 65 3 144 4 16 +11091 124 85 155.82 2038 60 23 3 7 65 3 142 4 14 +11092 124 86 161.7 2038 60 26 3 7 65 3 145 4 17 +11093 124 87 167.58 2038 60 28 3 7 65 3 147 4 19 +11094 124 88 173.46 2038 64 29 3 7 66 3 148 4 20 +11095 124 89 179.34 2038 64 27 3 7 66 3 146 4 18 +11096 124 90 185.22 2038 64 25 3 7 66 3 144 4 16 +11097 124 91 191.1 2038 64 24 3 7 66 3 143 4 15 +11098 124 92 196.98 2038 64 26 3 7 66 3 145 4 17 +11099 124 93 202.86 2038 64 28 3 7 66 3 147 4 19 +11100 124 94 208.74 2038 68 27 3 7 67 3 146 4 18 +11101 124 95 214.62 2038 68 25 3 7 67 3 144 4 16 +11102 124 96 220.5 2038 68 23 3 7 67 3 142 4 14 +11103 124 97 226.38 2038 68 24 3 7 67 3 143 4 15 +11104 124 98 232.26 2038 68 26 3 7 67 3 145 4 17 +11105 124 99 238.14 2038 68 28 3 7 67 3 147 4 19 +11106 124 100 244.02 2038 72 27 3 7 68 3 146 4 18 +11107 124 101 249.9 2038 72 25 3 7 68 3 144 4 16 +11108 124 102 255.78 2038 72 23 3 7 68 3 142 4 14 +11109 124 103 261.66 2038 72 24 3 7 68 3 143 4 15 +11110 124 104 267.54 2038 72 26 3 7 68 3 145 4 17 +11111 124 105 273.42 2038 72 28 3 7 68 3 147 4 19 +11112 124 106 279.3 2038 76 27 3 7 69 3 146 4 18 +11113 124 107 285.18 2038 76 25 3 7 69 3 144 4 16 +11114 124 108 291.06 2038 76 23 3 7 69 3 142 4 14 +11115 124 109 296.94 2038 76 24 3 7 69 3 143 4 15 +11116 124 110 302.82 2038 76 26 3 7 69 3 145 4 17 +11117 124 111 308.7 2038 76 28 3 7 69 3 147 4 19 +11118 124 112 314.58 2038 80 27 3 7 70 3 146 4 18 +11119 124 113 320.46 2038 80 25 3 7 70 3 144 4 16 +11120 124 114 326.34 2038 80 23 3 7 70 3 142 4 14 +11121 124 115 332.22 2038 80 26 3 7 70 3 145 4 17 +11122 124 116 338.1 2038 80 28 3 7 70 3 147 4 19 +11123 124 117 343.98 2038 80 30 3 7 70 3 149 4 21 +11124 125 0 -343.98 2050 4 35 3 7 51 3 154 4 26 +11125 125 1 -338.1 2050 4 33 3 7 51 3 152 4 24 +11126 125 2 -332.22 2050 4 31 3 7 51 3 150 4 22 +11127 125 3 -326.34 2050 4 30 3 7 51 3 149 4 21 +11128 125 4 -320.46 2050 4 32 3 7 51 3 151 4 23 +11129 125 5 -314.58 2050 4 34 3 7 51 3 153 4 25 +11130 125 6 -308.7 2050 8 33 3 7 52 3 152 4 24 +11131 125 7 -302.82 2050 8 31 3 7 52 3 150 4 22 +11132 125 8 -296.94 2050 8 29 3 7 52 3 148 4 20 +11133 125 9 -291.06 2050 8 30 3 7 52 3 149 4 21 +11134 125 10 -285.18 2050 8 32 3 7 52 3 151 4 23 +11135 125 11 -279.3 2050 8 34 3 7 52 3 153 4 25 +11136 125 12 -273.42 2050 12 33 3 7 53 3 152 4 24 +11137 125 13 -267.54 2050 12 31 3 7 53 3 150 4 22 +11138 125 14 -261.66 2050 12 29 3 7 53 3 148 4 20 +11139 125 15 -255.78 2050 12 30 3 7 53 3 149 4 21 +11140 125 16 -249.9 2050 12 32 3 7 53 3 151 4 23 +11141 125 17 -244.02 2050 12 34 3 7 53 3 153 4 25 +11142 125 18 -238.14 2050 16 33 3 7 54 3 152 4 24 +11143 125 19 -232.26 2050 16 31 3 7 54 3 150 4 22 +11144 125 20 -226.38 2050 16 29 3 7 54 3 148 4 20 +11145 125 21 -220.5 2050 16 30 3 7 54 3 149 4 21 +11146 125 22 -214.62 2050 16 32 3 7 54 3 151 4 23 +11147 125 23 -208.74 2050 16 34 3 7 54 3 153 4 25 +11148 125 24 -202.86 2050 20 33 3 7 55 3 152 4 24 +11149 125 25 -196.98 2050 20 31 3 7 55 3 150 4 22 +11150 125 26 -191.1 2050 20 29 3 7 55 3 148 4 20 +11151 125 27 -185.22 2050 20 32 3 7 55 3 151 4 23 +11152 125 28 -179.34 2050 20 34 3 7 55 3 153 4 25 +11153 125 29 -173.46 2050 24 33 3 7 56 3 152 4 24 +11154 125 30 -167.58 2050 24 31 3 7 56 3 150 4 22 +11155 125 31 -161.7 2050 24 29 3 7 56 3 148 4 20 +11156 125 32 -155.82 2050 24 30 3 7 56 3 149 4 21 +11157 125 33 -149.94 2050 24 32 3 7 56 3 151 4 23 +11158 125 34 -144.06 2050 24 34 3 7 56 3 153 4 25 +11159 125 35 -138.18 2050 28 33 3 7 57 3 152 4 24 +11160 125 36 -132.3 2050 28 31 3 7 57 3 150 4 22 +11161 125 37 -126.42 2050 28 29 3 7 57 3 148 4 20 +11162 125 38 -120.54 2050 28 30 3 7 57 3 149 4 21 +11163 125 39 -114.66 2050 28 32 3 7 57 3 151 4 23 +11164 125 40 -108.78 2050 28 34 3 7 57 3 153 4 25 +11165 125 41 -102.9 2050 32 33 3 7 58 3 152 4 24 +11166 125 42 -97.02 2050 32 31 3 7 58 3 150 4 22 +11167 125 43 -91.14 2050 32 29 3 7 58 3 148 4 20 +11168 125 44 -85.26 2050 32 30 3 7 58 3 149 4 21 +11169 125 45 -79.38 2050 32 32 3 7 58 3 151 4 23 +11170 125 46 -73.5 2050 32 34 3 7 58 3 153 4 25 +11171 125 47 -67.62 2050 36 33 3 7 59 3 152 4 24 +11172 125 48 -61.74 2050 36 31 3 7 59 3 150 4 22 +11173 125 49 -55.86 2050 36 29 3 7 59 3 148 4 20 +11174 125 50 -49.98 2050 36 30 3 7 59 3 149 4 21 +11175 125 51 -44.1 2050 36 32 3 7 59 3 151 4 23 +11176 125 52 -38.22 2050 36 34 3 7 59 3 153 4 25 +11177 125 53 -32.34 2050 40 33 3 7 60 3 152 4 24 +11178 125 54 -26.46 2050 40 31 3 7 60 3 150 4 22 +11179 125 55 -20.58 2050 40 29 3 7 60 3 148 4 20 +11180 125 56 -14.7 2050 40 30 3 7 60 3 149 4 21 +11181 125 57 -8.82 2050 40 32 3 7 60 3 151 4 23 +11182 125 58 -2.94 2050 40 34 3 7 60 3 153 4 25 +11183 125 59 2.94 2050 44 33 3 7 61 3 152 4 24 +11184 125 60 8.82 2050 44 31 3 7 61 3 150 4 22 +11185 125 61 14.7 2050 44 29 3 7 61 3 148 4 20 +11186 125 62 20.58 2050 44 30 3 7 61 3 149 4 21 +11187 125 63 26.46 2050 44 32 3 7 61 3 151 4 23 +11188 125 64 32.34 2050 44 34 3 7 61 3 153 4 25 +11189 125 65 38.22 2050 48 33 3 7 62 3 152 4 24 +11190 125 66 44.1 2050 48 31 3 7 62 3 150 4 22 +11191 125 67 49.98 2050 48 29 3 7 62 3 148 4 20 +11192 125 68 55.86 2050 48 30 3 7 62 3 149 4 21 +11193 125 69 61.74 2050 48 32 3 7 62 3 151 4 23 +11194 125 70 67.62 2050 48 34 3 7 62 3 153 4 25 +11195 125 71 73.5 2050 52 33 3 7 63 3 152 4 24 +11196 125 72 79.38 2050 52 31 3 7 63 3 150 4 22 +11197 125 73 85.26 2050 52 29 3 7 63 3 148 4 20 +11198 125 74 91.14 2050 52 30 3 7 63 3 149 4 21 +11199 125 75 97.02 2050 52 32 3 7 63 3 151 4 23 +11200 125 76 102.9 2050 52 34 3 7 63 3 153 4 25 +11201 125 77 108.78 2050 56 33 3 7 64 3 152 4 24 +11202 125 78 114.66 2050 56 31 3 7 64 3 150 4 22 +11203 125 79 120.54 2050 56 29 3 7 64 3 148 4 20 +11204 125 80 126.42 2050 56 30 3 7 64 3 149 4 21 +11205 125 81 132.3 2050 56 32 3 7 64 3 151 4 23 +11206 125 82 138.18 2050 56 34 3 7 64 3 153 4 25 +11207 125 83 144.06 2050 60 33 3 7 65 3 152 4 24 +11208 125 84 149.94 2050 60 31 3 7 65 3 150 4 22 +11209 125 85 155.82 2050 60 29 3 7 65 3 148 4 20 +11210 125 86 161.7 2050 60 30 3 7 65 3 149 4 21 +11211 125 87 167.58 2050 60 32 3 7 65 3 151 4 23 +11212 125 88 173.46 2050 60 34 3 7 65 3 153 4 25 +11213 125 89 179.34 2050 64 33 3 7 66 3 152 4 24 +11214 125 90 185.22 2050 64 31 3 7 66 3 150 4 22 +11215 125 91 191.1 2050 64 30 3 7 66 3 149 4 21 +11216 125 92 196.98 2050 64 32 3 7 66 3 151 4 23 +11217 125 93 202.86 2050 64 34 3 7 66 3 153 4 25 +11218 125 94 208.74 2050 68 33 3 7 67 3 152 4 24 +11219 125 95 214.62 2050 68 31 3 7 67 3 150 4 22 +11220 125 96 220.5 2050 68 29 3 7 67 3 148 4 20 +11221 125 97 226.38 2050 68 30 3 7 67 3 149 4 21 +11222 125 98 232.26 2050 68 32 3 7 67 3 151 4 23 +11223 125 99 238.14 2050 68 34 3 7 67 3 153 4 25 +11224 125 100 244.02 2050 72 33 3 7 68 3 152 4 24 +11225 125 101 249.9 2050 72 31 3 7 68 3 150 4 22 +11226 125 102 255.78 2050 72 29 3 7 68 3 148 4 20 +11227 125 103 261.66 2050 72 30 3 7 68 3 149 4 21 +11228 125 104 267.54 2050 72 32 3 7 68 3 151 4 23 +11229 125 105 273.42 2050 72 34 3 7 68 3 153 4 25 +11230 125 106 279.3 2050 76 33 3 7 69 3 152 4 24 +11231 125 107 285.18 2050 76 31 3 7 69 3 150 4 22 +11232 125 108 291.06 2050 76 29 3 7 69 3 148 4 20 +11233 125 109 296.94 2050 76 30 3 7 69 3 149 4 21 +11234 125 110 302.82 2050 76 32 3 7 69 3 151 4 23 +11235 125 111 308.7 2050 76 34 3 7 69 3 153 4 25 +11236 125 112 314.58 2050 80 33 3 7 70 3 152 4 24 +11237 125 113 320.46 2050 80 31 3 7 70 3 150 4 22 +11238 125 114 326.34 2050 80 29 3 7 70 3 148 4 20 +11239 125 115 332.22 2050 80 32 3 7 70 3 151 4 23 +11240 125 116 338.1 2050 80 34 3 7 70 3 153 4 25 +11241 125 117 343.98 2050 80 36 3 7 70 3 155 4 27 +11242 126 0 -343.98 2062 4 39 3 7 51 3 158 4 30 +11243 126 1 -338.1 2062 4 37 3 7 51 3 156 4 28 +11244 126 2 -332.22 2062 4 36 3 7 51 3 155 4 27 +11245 126 3 -326.34 2062 4 38 3 7 51 3 157 4 29 +11246 126 4 -320.46 2062 4 40 3 7 51 3 159 4 31 +11247 126 5 -314.58 2062 8 39 3 7 52 3 158 4 30 +11248 126 6 -308.7 2062 8 37 3 7 52 3 156 4 28 +11249 126 7 -302.82 2062 8 35 3 7 52 3 154 4 26 +11250 126 8 -296.94 2062 8 36 3 7 52 3 155 4 27 +11251 126 9 -291.06 2062 8 38 3 7 52 3 157 4 29 +11252 126 10 -285.18 2062 8 40 3 7 52 3 159 4 31 +11253 126 11 -279.3 2062 12 39 3 7 53 3 158 4 30 +11254 126 12 -273.42 2062 12 37 3 7 53 3 156 4 28 +11255 126 13 -267.54 2062 12 35 3 7 53 3 154 4 26 +11256 126 14 -261.66 2062 12 36 3 7 53 3 155 4 27 +11257 126 15 -255.78 2062 12 38 3 7 53 3 157 4 29 +11258 126 16 -249.9 2062 12 40 3 7 53 3 159 4 31 +11259 126 17 -244.02 2062 16 39 3 7 54 3 158 4 30 +11260 126 18 -238.14 2062 16 37 3 7 54 3 156 4 28 +11261 126 19 -232.26 2062 16 35 3 7 54 3 154 4 26 +11262 126 20 -226.38 2062 16 36 3 7 54 3 155 4 27 +11263 126 21 -220.5 2062 16 38 3 7 54 3 157 4 29 +11264 126 22 -214.62 2062 16 40 3 7 54 3 159 4 31 +11265 126 23 -208.74 2062 20 39 3 7 55 3 158 4 30 +11266 126 24 -202.86 2062 20 37 3 7 55 3 156 4 28 +11267 126 25 -196.98 2062 20 35 3 7 55 3 154 4 26 +11268 126 26 -191.1 2062 20 36 3 7 55 3 155 4 27 +11269 126 27 -185.22 2062 20 38 3 7 55 3 157 4 29 +11270 126 28 -179.34 2062 20 40 3 7 55 3 159 4 31 +11271 126 29 -173.46 2062 24 39 3 7 56 3 158 4 30 +11272 126 30 -167.58 2062 24 37 3 7 56 3 156 4 28 +11273 126 31 -161.7 2062 24 35 3 7 56 3 154 4 26 +11274 126 32 -155.82 2062 24 36 3 7 56 3 155 4 27 +11275 126 33 -149.94 2062 24 38 3 7 56 3 157 4 29 +11276 126 34 -144.06 2062 24 40 3 7 56 3 159 4 31 +11277 126 35 -138.18 2062 28 39 3 7 57 3 158 4 30 +11278 126 36 -132.3 2062 28 37 3 7 57 3 156 4 28 +11279 126 37 -126.42 2062 28 35 3 7 57 3 154 4 26 +11280 126 38 -120.54 2062 28 36 3 7 57 3 155 4 27 +11281 126 39 -114.66 2062 28 38 3 7 57 3 157 4 29 +11282 126 40 -108.78 2062 28 40 3 7 57 3 159 4 31 +11283 126 41 -102.9 2062 32 39 3 7 58 3 158 4 30 +11284 126 42 -97.02 2062 32 37 3 7 58 3 156 4 28 +11285 126 43 -91.14 2062 32 35 3 7 58 3 154 4 26 +11286 126 44 -85.26 2062 32 36 3 7 58 3 155 4 27 +11287 126 45 -79.38 2062 32 38 3 7 58 3 157 4 29 +11288 126 46 -73.5 2062 32 40 3 7 58 3 159 4 31 +11289 126 47 -67.62 2062 36 39 3 7 59 3 158 4 30 +11290 126 48 -61.74 2062 36 37 3 7 59 3 156 4 28 +11291 126 49 -55.86 2062 36 35 3 7 59 3 154 4 26 +11292 126 50 -49.98 2062 36 36 3 7 59 3 155 4 27 +11293 126 51 -44.1 2062 36 38 3 7 59 3 157 4 29 +11294 126 52 -38.22 2062 36 40 3 7 59 3 159 4 31 +11295 126 53 -32.34 2062 40 39 3 7 60 3 158 4 30 +11296 126 54 -26.46 2062 40 37 3 7 60 3 156 4 28 +11297 126 55 -20.58 2062 40 35 3 7 60 3 154 4 26 +11298 126 56 -14.7 2062 40 36 3 7 60 3 155 4 27 +11299 126 57 -8.82 2062 40 38 3 7 60 3 157 4 29 +11300 126 58 -2.94 2062 40 40 3 7 60 3 159 4 31 +11301 126 59 2.94 2062 44 39 3 7 61 3 158 4 30 +11302 126 60 8.82 2062 44 37 3 7 61 3 156 4 28 +11303 126 61 14.7 2062 44 35 3 7 61 3 154 4 26 +11304 126 62 20.58 2062 44 36 3 7 61 3 155 4 27 +11305 126 63 26.46 2062 44 38 3 7 61 3 157 4 29 +11306 126 64 32.34 2062 44 40 3 7 61 3 159 4 31 +11307 126 65 38.22 2062 48 39 3 7 62 3 158 4 30 +11308 126 66 44.1 2062 48 37 3 7 62 3 156 4 28 +11309 126 67 49.98 2062 48 35 3 7 62 3 154 4 26 +11310 126 68 55.86 2062 48 36 3 7 62 3 155 4 27 +11311 126 69 61.74 2062 48 38 3 7 62 3 157 4 29 +11312 126 70 67.62 2062 48 40 3 7 62 3 159 4 31 +11313 126 71 73.5 2062 52 39 3 7 63 3 158 4 30 +11314 126 72 79.38 2062 52 37 3 7 63 3 156 4 28 +11315 126 73 85.26 2062 52 35 3 7 63 3 154 4 26 +11316 126 74 91.14 2062 52 36 3 7 63 3 155 4 27 +11317 126 75 97.02 2062 52 38 3 7 63 3 157 4 29 +11318 126 76 102.9 2062 52 40 3 7 63 3 159 4 31 +11319 126 77 108.78 2062 56 39 3 7 64 3 158 4 30 +11320 126 78 114.66 2062 56 37 3 7 64 3 156 4 28 +11321 126 79 120.54 2062 56 35 3 7 64 3 154 4 26 +11322 126 80 126.42 2062 56 36 3 7 64 3 155 4 27 +11323 126 81 132.3 2062 56 38 3 7 64 3 157 4 29 +11324 126 82 138.18 2062 56 40 3 7 64 3 159 4 31 +11325 126 83 144.06 2062 60 39 3 7 65 3 158 4 30 +11326 126 84 149.94 2062 60 37 3 7 65 3 156 4 28 +11327 126 85 155.82 2062 60 35 3 7 65 3 154 4 26 +11328 126 86 161.7 2062 60 36 3 7 65 3 155 4 27 +11329 126 87 167.58 2062 60 38 3 7 65 3 157 4 29 +11330 126 88 173.46 2062 60 40 3 7 65 3 159 4 31 +11331 126 89 179.34 2062 64 39 3 7 66 3 158 4 30 +11332 126 90 185.22 2062 64 37 3 7 66 3 156 4 28 +11333 126 91 191.1 2062 64 35 3 7 66 3 154 4 26 +11334 126 92 196.98 2062 64 36 3 7 66 3 155 4 27 +11335 126 93 202.86 2062 64 38 3 7 66 3 157 4 29 +11336 126 94 208.74 2062 64 40 3 7 66 3 159 4 31 +11337 126 95 214.62 2062 68 39 3 7 67 3 158 4 30 +11338 126 96 220.5 2062 68 37 3 7 67 3 156 4 28 +11339 126 97 226.38 2062 68 35 3 7 67 3 154 4 26 +11340 126 98 232.26 2062 68 36 3 7 67 3 155 4 27 +11341 126 99 238.14 2062 68 38 3 7 67 3 157 4 29 +11342 126 100 244.02 2062 68 40 3 7 67 3 159 4 31 +11343 126 101 249.9 2062 72 39 3 7 68 3 158 4 30 +11344 126 102 255.78 2062 72 37 3 7 68 3 156 4 28 +11345 126 103 261.66 2062 72 35 3 7 68 3 154 4 26 +11346 126 104 267.54 2062 72 36 3 7 68 3 155 4 27 +11347 126 105 273.42 2062 72 38 3 7 68 3 157 4 29 +11348 126 106 279.3 2062 72 40 3 7 68 3 159 4 31 +11349 126 107 285.18 2062 76 39 3 7 69 3 158 4 30 +11350 126 108 291.06 2062 76 37 3 7 69 3 156 4 28 +11351 126 109 296.94 2062 76 35 3 7 69 3 154 4 26 +11352 126 110 302.82 2062 76 36 3 7 69 3 155 4 27 +11353 126 111 308.7 2062 76 38 3 7 69 3 157 4 29 +11354 126 112 314.58 2062 76 40 3 7 69 3 159 4 31 +11355 126 113 320.46 2062 80 39 3 7 70 3 158 4 30 +11356 126 114 326.34 2062 80 37 3 7 70 3 156 4 28 +11357 126 115 332.22 2062 80 35 3 7 70 3 154 4 26 +11358 126 116 338.1 2062 80 38 3 7 70 3 157 4 29 +11359 126 117 343.98 2062 80 40 3 7 70 3 159 4 31 diff --git a/Detectors/TPC/base/files/TABLE-OROC3.txt b/Detectors/TPC/base/files/TABLE-OROC3.txt new file mode 100644 index 0000000000000..a541c91e2666c --- /dev/null +++ b/Detectors/TPC/base/files/TABLE-OROC3.txt @@ -0,0 +1,3200 @@ +11360 127 0 -353.34 2096.5 1 5 4 8 71 0 4 0 4 +11361 127 1 -347.3 2096.5 1 3 4 8 71 0 2 0 2 +11362 127 2 -341.26 2096.5 1 1 4 8 71 0 0 0 0 +11363 127 3 -335.22 2096.5 1 2 4 8 71 0 1 0 1 +11364 127 4 -329.18 2096.5 1 4 4 8 71 0 3 0 3 +11365 127 5 -323.14 2096.5 1 6 4 8 71 0 5 0 5 +11366 127 6 -317.1 2096.5 5 5 4 8 72 0 4 0 4 +11367 127 7 -311.06 2096.5 5 3 4 8 72 0 2 0 2 +11368 127 8 -305.02 2096.5 5 1 4 8 72 0 0 0 0 +11369 127 9 -298.98 2096.5 5 2 4 8 72 0 1 0 1 +11370 127 10 -292.94 2096.5 5 4 4 8 72 0 3 0 3 +11371 127 11 -286.9 2096.5 5 6 4 8 72 0 5 0 5 +11372 127 12 -280.86 2096.5 9 5 4 8 73 0 4 0 4 +11373 127 13 -274.82 2096.5 9 3 4 8 73 0 2 0 2 +11374 127 14 -268.78 2096.5 9 1 4 8 73 0 0 0 0 +11375 127 15 -262.74 2096.5 9 2 4 8 73 0 1 0 1 +11376 127 16 -256.7 2096.5 9 4 4 8 73 0 3 0 3 +11377 127 17 -250.66 2096.5 9 6 4 8 73 0 5 0 5 +11378 127 18 -244.62 2096.5 13 5 4 8 74 0 4 0 4 +11379 127 19 -238.58 2096.5 13 3 4 8 74 0 2 0 2 +11380 127 20 -232.54 2096.5 13 1 4 8 74 0 0 0 0 +11381 127 21 -226.5 2096.5 13 2 4 8 74 0 1 0 1 +11382 127 22 -220.46 2096.5 13 4 4 8 74 0 3 0 3 +11383 127 23 -214.42 2096.5 13 6 4 8 74 0 5 0 5 +11384 127 24 -208.38 2096.5 17 5 4 8 75 0 4 0 4 +11385 127 25 -202.34 2096.5 17 3 4 8 75 0 2 0 2 +11386 127 26 -196.3 2096.5 17 1 4 8 75 0 0 0 0 +11387 127 27 -190.26 2096.5 17 2 4 8 75 0 1 0 1 +11388 127 28 -184.22 2096.5 17 4 4 8 75 0 3 0 3 +11389 127 29 -178.18 2096.5 17 6 4 8 75 0 5 0 5 +11390 127 30 -172.14 2096.5 21 5 4 8 76 0 4 0 4 +11391 127 31 -166.1 2096.5 21 3 4 8 76 0 2 0 2 +11392 127 32 -160.06 2096.5 21 1 4 8 76 0 0 0 0 +11393 127 33 -154.02 2096.5 21 2 4 8 76 0 1 0 1 +11394 127 34 -147.98 2096.5 21 4 4 8 76 0 3 0 3 +11395 127 35 -141.94 2096.5 25 5 4 8 77 0 4 0 4 +11396 127 36 -135.9 2096.5 25 3 4 8 77 0 2 0 2 +11397 127 37 -129.86 2096.5 25 1 4 8 77 0 0 0 0 +11398 127 38 -123.82 2096.5 25 2 4 8 77 0 1 0 1 +11399 127 39 -117.78 2096.5 25 4 4 8 77 0 3 0 3 +11400 127 40 -111.74 2096.5 25 6 4 8 77 0 5 0 5 +11401 127 41 -105.7 2096.5 29 5 4 8 78 0 4 0 4 +11402 127 42 -99.66 2096.5 29 3 4 8 78 0 2 0 2 +11403 127 43 -93.62 2096.5 29 1 4 8 78 0 0 0 0 +11404 127 44 -87.58 2096.5 29 2 4 8 78 0 1 0 1 +11405 127 45 -81.54 2096.5 29 4 4 8 78 0 3 0 3 +11406 127 46 -75.5 2096.5 29 6 4 8 78 0 5 0 5 +11407 127 47 -69.46 2096.5 33 5 4 8 79 0 4 0 4 +11408 127 48 -63.42 2096.5 33 3 4 8 79 0 2 0 2 +11409 127 49 -57.38 2096.5 33 1 4 8 79 0 0 0 0 +11410 127 50 -51.34 2096.5 33 2 4 8 79 0 1 0 1 +11411 127 51 -45.3 2096.5 33 4 4 8 79 0 3 0 3 +11412 127 52 -39.26 2096.5 33 6 4 8 79 0 5 0 5 +11413 127 53 -33.22 2096.5 37 5 4 8 80 0 4 0 4 +11414 127 54 -27.18 2096.5 37 3 4 8 80 0 2 0 2 +11415 127 55 -21.14 2096.5 37 1 4 8 80 0 0 0 0 +11416 127 56 -15.1 2096.5 37 2 4 8 80 0 1 0 1 +11417 127 57 -9.06 2096.5 37 4 4 8 80 0 3 0 3 +11418 127 58 -3.02 2096.5 37 6 4 8 80 0 5 0 5 +11419 127 59 3.02 2096.5 41 5 4 8 81 0 4 0 4 +11420 127 60 9.06 2096.5 41 3 4 8 81 0 2 0 2 +11421 127 61 15.1 2096.5 41 1 4 8 81 0 0 0 0 +11422 127 62 21.14 2096.5 41 2 4 8 81 0 1 0 1 +11423 127 63 27.18 2096.5 41 4 4 8 81 0 3 0 3 +11424 127 64 33.22 2096.5 41 6 4 8 81 0 5 0 5 +11425 127 65 39.26 2096.5 45 5 4 8 82 0 4 0 4 +11426 127 66 45.3 2096.5 45 3 4 8 82 0 2 0 2 +11427 127 67 51.34 2096.5 45 1 4 8 82 0 0 0 0 +11428 127 68 57.38 2096.5 45 2 4 8 82 0 1 0 1 +11429 127 69 63.42 2096.5 45 4 4 8 82 0 3 0 3 +11430 127 70 69.46 2096.5 45 6 4 8 82 0 5 0 5 +11431 127 71 75.5 2096.5 49 5 4 8 83 0 4 0 4 +11432 127 72 81.54 2096.5 49 3 4 8 83 0 2 0 2 +11433 127 73 87.58 2096.5 49 1 4 8 83 0 0 0 0 +11434 127 74 93.62 2096.5 49 2 4 8 83 0 1 0 1 +11435 127 75 99.66 2096.5 49 4 4 8 83 0 3 0 3 +11436 127 76 105.7 2096.5 49 6 4 8 83 0 5 0 5 +11437 127 77 111.74 2096.5 53 5 4 8 84 0 4 0 4 +11438 127 78 117.78 2096.5 53 3 4 8 84 0 2 0 2 +11439 127 79 123.82 2096.5 53 1 4 8 84 0 0 0 0 +11440 127 80 129.86 2096.5 53 2 4 8 84 0 1 0 1 +11441 127 81 135.9 2096.5 53 4 4 8 84 0 3 0 3 +11442 127 82 141.94 2096.5 53 6 4 8 84 0 5 0 5 +11443 127 83 147.98 2096.5 57 3 4 8 85 0 2 0 2 +11444 127 84 154.02 2096.5 57 1 4 8 85 0 0 0 0 +11445 127 85 160.06 2096.5 57 2 4 8 85 0 1 0 1 +11446 127 86 166.1 2096.5 57 4 4 8 85 0 3 0 3 +11447 127 87 172.14 2096.5 57 6 4 8 85 0 5 0 5 +11448 127 88 178.18 2096.5 61 5 4 8 86 0 4 0 4 +11449 127 89 184.22 2096.5 61 3 4 8 86 0 2 0 2 +11450 127 90 190.26 2096.5 61 1 4 8 86 0 0 0 0 +11451 127 91 196.3 2096.5 61 2 4 8 86 0 1 0 1 +11452 127 92 202.34 2096.5 61 4 4 8 86 0 3 0 3 +11453 127 93 208.38 2096.5 61 6 4 8 86 0 5 0 5 +11454 127 94 214.42 2096.5 65 5 4 8 87 0 4 0 4 +11455 127 95 220.46 2096.5 65 3 4 8 87 0 2 0 2 +11456 127 96 226.5 2096.5 65 1 4 8 87 0 0 0 0 +11457 127 97 232.54 2096.5 65 2 4 8 87 0 1 0 1 +11458 127 98 238.58 2096.5 65 4 4 8 87 0 3 0 3 +11459 127 99 244.62 2096.5 65 6 4 8 87 0 5 0 5 +11460 127 100 250.66 2096.5 69 5 4 8 88 0 4 0 4 +11461 127 101 256.7 2096.5 69 3 4 8 88 0 2 0 2 +11462 127 102 262.74 2096.5 69 1 4 8 88 0 0 0 0 +11463 127 103 268.78 2096.5 69 2 4 8 88 0 1 0 1 +11464 127 104 274.82 2096.5 69 4 4 8 88 0 3 0 3 +11465 127 105 280.86 2096.5 69 6 4 8 88 0 5 0 5 +11466 127 106 286.9 2096.5 73 5 4 8 89 0 4 0 4 +11467 127 107 292.94 2096.5 73 3 4 8 89 0 2 0 2 +11468 127 108 298.98 2096.5 73 1 4 8 89 0 0 0 0 +11469 127 109 305.02 2096.5 73 2 4 8 89 0 1 0 1 +11470 127 110 311.06 2096.5 73 4 4 8 89 0 3 0 3 +11471 127 111 317.1 2096.5 73 6 4 8 89 0 5 0 5 +11472 127 112 323.14 2096.5 77 5 4 8 90 0 4 0 4 +11473 127 113 329.18 2096.5 77 3 4 8 90 0 2 0 2 +11474 127 114 335.22 2096.5 77 1 4 8 90 0 0 0 0 +11475 127 115 341.26 2096.5 77 2 4 8 90 0 1 0 1 +11476 127 116 347.3 2096.5 77 4 4 8 90 0 3 0 3 +11477 127 117 353.34 2096.5 77 6 4 8 90 0 5 0 5 +11478 128 0 -353.34 2111.5 1 11 4 8 71 0 10 0 10 +11479 128 1 -347.3 2111.5 1 9 4 8 71 0 8 0 8 +11480 128 2 -341.26 2111.5 1 7 4 8 71 0 6 0 6 +11481 128 3 -335.22 2111.5 1 8 4 8 71 0 7 0 7 +11482 128 4 -329.18 2111.5 1 10 4 8 71 0 9 0 9 +11483 128 5 -323.14 2111.5 1 12 4 8 71 0 11 0 11 +11484 128 6 -317.1 2111.5 5 11 4 8 72 0 10 0 10 +11485 128 7 -311.06 2111.5 5 9 4 8 72 0 8 0 8 +11486 128 8 -305.02 2111.5 5 7 4 8 72 0 6 0 6 +11487 128 9 -298.98 2111.5 5 8 4 8 72 0 7 0 7 +11488 128 10 -292.94 2111.5 5 10 4 8 72 0 9 0 9 +11489 128 11 -286.9 2111.5 5 12 4 8 72 0 11 0 11 +11490 128 12 -280.86 2111.5 9 11 4 8 73 0 10 0 10 +11491 128 13 -274.82 2111.5 9 9 4 8 73 0 8 0 8 +11492 128 14 -268.78 2111.5 9 7 4 8 73 0 6 0 6 +11493 128 15 -262.74 2111.5 9 8 4 8 73 0 7 0 7 +11494 128 16 -256.7 2111.5 9 10 4 8 73 0 9 0 9 +11495 128 17 -250.66 2111.5 13 11 4 8 74 0 10 0 10 +11496 128 18 -244.62 2111.5 13 9 4 8 74 0 8 0 8 +11497 128 19 -238.58 2111.5 13 7 4 8 74 0 6 0 6 +11498 128 20 -232.54 2111.5 13 8 4 8 74 0 7 0 7 +11499 128 21 -226.5 2111.5 13 10 4 8 74 0 9 0 9 +11500 128 22 -220.46 2111.5 13 12 4 8 74 0 11 0 11 +11501 128 23 -214.42 2111.5 17 11 4 8 75 0 10 0 10 +11502 128 24 -208.38 2111.5 17 9 4 8 75 0 8 0 8 +11503 128 25 -202.34 2111.5 17 7 4 8 75 0 6 0 6 +11504 128 26 -196.3 2111.5 17 8 4 8 75 0 7 0 7 +11505 128 27 -190.26 2111.5 17 10 4 8 75 0 9 0 9 +11506 128 28 -184.22 2111.5 17 12 4 8 75 0 11 0 11 +11507 128 29 -178.18 2111.5 21 11 4 8 76 0 10 0 10 +11508 128 30 -172.14 2111.5 21 9 4 8 76 0 8 0 8 +11509 128 31 -166.1 2111.5 21 7 4 8 76 0 6 0 6 +11510 128 32 -160.06 2111.5 21 6 4 8 76 0 5 0 5 +11511 128 33 -154.02 2111.5 21 8 4 8 76 0 7 0 7 +11512 128 34 -147.98 2111.5 21 10 4 8 76 0 9 0 9 +11513 128 35 -141.94 2111.5 25 11 4 8 77 0 10 0 10 +11514 128 36 -135.9 2111.5 25 9 4 8 77 0 8 0 8 +11515 128 37 -129.86 2111.5 25 7 4 8 77 0 6 0 6 +11516 128 38 -123.82 2111.5 25 8 4 8 77 0 7 0 7 +11517 128 39 -117.78 2111.5 25 10 4 8 77 0 9 0 9 +11518 128 40 -111.74 2111.5 25 12 4 8 77 0 11 0 11 +11519 128 41 -105.7 2111.5 29 11 4 8 78 0 10 0 10 +11520 128 42 -99.66 2111.5 29 9 4 8 78 0 8 0 8 +11521 128 43 -93.62 2111.5 29 7 4 8 78 0 6 0 6 +11522 128 44 -87.58 2111.5 29 8 4 8 78 0 7 0 7 +11523 128 45 -81.54 2111.5 29 10 4 8 78 0 9 0 9 +11524 128 46 -75.5 2111.5 29 12 4 8 78 0 11 0 11 +11525 128 47 -69.46 2111.5 33 11 4 8 79 0 10 0 10 +11526 128 48 -63.42 2111.5 33 9 4 8 79 0 8 0 8 +11527 128 49 -57.38 2111.5 33 7 4 8 79 0 6 0 6 +11528 128 50 -51.34 2111.5 33 8 4 8 79 0 7 0 7 +11529 128 51 -45.3 2111.5 33 10 4 8 79 0 9 0 9 +11530 128 52 -39.26 2111.5 33 12 4 8 79 0 11 0 11 +11531 128 53 -33.22 2111.5 37 11 4 8 80 0 10 0 10 +11532 128 54 -27.18 2111.5 37 9 4 8 80 0 8 0 8 +11533 128 55 -21.14 2111.5 37 7 4 8 80 0 6 0 6 +11534 128 56 -15.1 2111.5 37 8 4 8 80 0 7 0 7 +11535 128 57 -9.06 2111.5 37 10 4 8 80 0 9 0 9 +11536 128 58 -3.02 2111.5 37 12 4 8 80 0 11 0 11 +11537 128 59 3.02 2111.5 41 11 4 8 81 0 10 0 10 +11538 128 60 9.06 2111.5 41 9 4 8 81 0 8 0 8 +11539 128 61 15.1 2111.5 41 7 4 8 81 0 6 0 6 +11540 128 62 21.14 2111.5 41 8 4 8 81 0 7 0 7 +11541 128 63 27.18 2111.5 41 10 4 8 81 0 9 0 9 +11542 128 64 33.22 2111.5 41 12 4 8 81 0 11 0 11 +11543 128 65 39.26 2111.5 45 11 4 8 82 0 10 0 10 +11544 128 66 45.3 2111.5 45 9 4 8 82 0 8 0 8 +11545 128 67 51.34 2111.5 45 7 4 8 82 0 6 0 6 +11546 128 68 57.38 2111.5 45 8 4 8 82 0 7 0 7 +11547 128 69 63.42 2111.5 45 10 4 8 82 0 9 0 9 +11548 128 70 69.46 2111.5 45 12 4 8 82 0 11 0 11 +11549 128 71 75.5 2111.5 49 11 4 8 83 0 10 0 10 +11550 128 72 81.54 2111.5 49 9 4 8 83 0 8 0 8 +11551 128 73 87.58 2111.5 49 7 4 8 83 0 6 0 6 +11552 128 74 93.62 2111.5 49 8 4 8 83 0 7 0 7 +11553 128 75 99.66 2111.5 49 10 4 8 83 0 9 0 9 +11554 128 76 105.7 2111.5 49 12 4 8 83 0 11 0 11 +11555 128 77 111.74 2111.5 53 11 4 8 84 0 10 0 10 +11556 128 78 117.78 2111.5 53 9 4 8 84 0 8 0 8 +11557 128 79 123.82 2111.5 53 7 4 8 84 0 6 0 6 +11558 128 80 129.86 2111.5 53 8 4 8 84 0 7 0 7 +11559 128 81 135.9 2111.5 53 10 4 8 84 0 9 0 9 +11560 128 82 141.94 2111.5 53 12 4 8 84 0 11 0 11 +11561 128 83 147.98 2111.5 57 9 4 8 85 0 8 0 8 +11562 128 84 154.02 2111.5 57 7 4 8 85 0 6 0 6 +11563 128 85 160.06 2111.5 57 5 4 8 85 0 4 0 4 +11564 128 86 166.1 2111.5 57 8 4 8 85 0 7 0 7 +11565 128 87 172.14 2111.5 57 10 4 8 85 0 9 0 9 +11566 128 88 178.18 2111.5 57 12 4 8 85 0 11 0 11 +11567 128 89 184.22 2111.5 61 11 4 8 86 0 10 0 10 +11568 128 90 190.26 2111.5 61 9 4 8 86 0 8 0 8 +11569 128 91 196.3 2111.5 61 7 4 8 86 0 6 0 6 +11570 128 92 202.34 2111.5 61 8 4 8 86 0 7 0 7 +11571 128 93 208.38 2111.5 61 10 4 8 86 0 9 0 9 +11572 128 94 214.42 2111.5 61 12 4 8 86 0 11 0 11 +11573 128 95 220.46 2111.5 65 11 4 8 87 0 10 0 10 +11574 128 96 226.5 2111.5 65 9 4 8 87 0 8 0 8 +11575 128 97 232.54 2111.5 65 7 4 8 87 0 6 0 6 +11576 128 98 238.58 2111.5 65 8 4 8 87 0 7 0 7 +11577 128 99 244.62 2111.5 65 10 4 8 87 0 9 0 9 +11578 128 100 250.66 2111.5 65 12 4 8 87 0 11 0 11 +11579 128 101 256.7 2111.5 69 9 4 8 88 0 8 0 8 +11580 128 102 262.74 2111.5 69 7 4 8 88 0 6 0 6 +11581 128 103 268.78 2111.5 69 8 4 8 88 0 7 0 7 +11582 128 104 274.82 2111.5 69 10 4 8 88 0 9 0 9 +11583 128 105 280.86 2111.5 69 12 4 8 88 0 11 0 11 +11584 128 106 286.9 2111.5 73 11 4 8 89 0 10 0 10 +11585 128 107 292.94 2111.5 73 9 4 8 89 0 8 0 8 +11586 128 108 298.98 2111.5 73 7 4 8 89 0 6 0 6 +11587 128 109 305.02 2111.5 73 8 4 8 89 0 7 0 7 +11588 128 110 311.06 2111.5 73 10 4 8 89 0 9 0 9 +11589 128 111 317.1 2111.5 73 12 4 8 89 0 11 0 11 +11590 128 112 323.14 2111.5 77 11 4 8 90 0 10 0 10 +11591 128 113 329.18 2111.5 77 9 4 8 90 0 8 0 8 +11592 128 114 335.22 2111.5 77 7 4 8 90 0 6 0 6 +11593 128 115 341.26 2111.5 77 8 4 8 90 0 7 0 7 +11594 128 116 347.3 2111.5 77 10 4 8 90 0 9 0 9 +11595 128 117 353.34 2111.5 77 12 4 8 90 0 11 0 11 +11596 129 0 -359.38 2126.5 1 17 4 8 71 0 16 0 16 +11597 129 1 -353.34 2126.5 1 15 4 8 71 0 14 0 14 +11598 129 2 -347.3 2126.5 1 13 4 8 71 0 12 0 12 +11599 129 3 -341.26 2126.5 1 14 4 8 71 0 13 0 13 +11600 129 4 -335.22 2126.5 1 16 4 8 71 0 15 0 15 +11601 129 5 -329.18 2126.5 1 18 4 8 71 0 17 0 17 +11602 129 6 -323.14 2126.5 5 17 4 8 72 0 16 0 16 +11603 129 7 -317.1 2126.5 5 15 4 8 72 0 14 0 14 +11604 129 8 -311.06 2126.5 5 13 4 8 72 0 12 0 12 +11605 129 9 -305.02 2126.5 5 14 4 8 72 0 13 0 13 +11606 129 10 -298.98 2126.5 5 16 4 8 72 0 15 0 15 +11607 129 11 -292.94 2126.5 5 18 4 8 72 0 17 0 17 +11608 129 12 -286.9 2126.5 9 17 4 8 73 0 16 0 16 +11609 129 13 -280.86 2126.5 9 15 4 8 73 0 14 0 14 +11610 129 14 -274.82 2126.5 9 13 4 8 73 0 12 0 12 +11611 129 15 -268.78 2126.5 9 12 4 8 73 0 11 0 11 +11612 129 16 -262.74 2126.5 9 14 4 8 73 0 13 0 13 +11613 129 17 -256.7 2126.5 9 16 4 8 73 0 15 0 15 +11614 129 18 -250.66 2126.5 13 17 4 8 74 0 16 0 16 +11615 129 19 -244.62 2126.5 13 15 4 8 74 0 14 0 14 +11616 129 20 -238.58 2126.5 13 13 4 8 74 0 12 0 12 +11617 129 21 -232.54 2126.5 13 14 4 8 74 0 13 0 13 +11618 129 22 -226.5 2126.5 13 16 4 8 74 0 15 0 15 +11619 129 23 -220.46 2126.5 13 18 4 8 74 0 17 0 17 +11620 129 24 -214.42 2126.5 17 17 4 8 75 0 16 0 16 +11621 129 25 -208.38 2126.5 17 15 4 8 75 0 14 0 14 +11622 129 26 -202.34 2126.5 17 13 4 8 75 0 12 0 12 +11623 129 27 -196.3 2126.5 17 14 4 8 75 0 13 0 13 +11624 129 28 -190.26 2126.5 17 16 4 8 75 0 15 0 15 +11625 129 29 -184.22 2126.5 17 18 4 8 75 0 17 0 17 +11626 129 30 -178.18 2126.5 21 17 4 8 76 0 16 0 16 +11627 129 31 -172.14 2126.5 21 15 4 8 76 0 14 0 14 +11628 129 32 -166.1 2126.5 21 13 4 8 76 0 12 0 12 +11629 129 33 -160.06 2126.5 21 12 4 8 76 0 11 0 11 +11630 129 34 -154.02 2126.5 21 14 4 8 76 0 13 0 13 +11631 129 35 -147.98 2126.5 21 16 4 8 76 0 15 0 15 +11632 129 36 -141.94 2126.5 25 17 4 8 77 0 16 0 16 +11633 129 37 -135.9 2126.5 25 15 4 8 77 0 14 0 14 +11634 129 38 -129.86 2126.5 25 13 4 8 77 0 12 0 12 +11635 129 39 -123.82 2126.5 25 14 4 8 77 0 13 0 13 +11636 129 40 -117.78 2126.5 25 16 4 8 77 0 15 0 15 +11637 129 41 -111.74 2126.5 25 18 4 8 77 0 17 0 17 +11638 129 42 -105.7 2126.5 29 17 4 8 78 0 16 0 16 +11639 129 43 -99.66 2126.5 29 15 4 8 78 0 14 0 14 +11640 129 44 -93.62 2126.5 29 13 4 8 78 0 12 0 12 +11641 129 45 -87.58 2126.5 29 14 4 8 78 0 13 0 13 +11642 129 46 -81.54 2126.5 29 16 4 8 78 0 15 0 15 +11643 129 47 -75.5 2126.5 29 18 4 8 78 0 17 0 17 +11644 129 48 -69.46 2126.5 33 17 4 8 79 0 16 0 16 +11645 129 49 -63.42 2126.5 33 15 4 8 79 0 14 0 14 +11646 129 50 -57.38 2126.5 33 13 4 8 79 0 12 0 12 +11647 129 51 -51.34 2126.5 33 14 4 8 79 0 13 0 13 +11648 129 52 -45.3 2126.5 33 16 4 8 79 0 15 0 15 +11649 129 53 -39.26 2126.5 33 18 4 8 79 0 17 0 17 +11650 129 54 -33.22 2126.5 37 17 4 8 80 0 16 0 16 +11651 129 55 -27.18 2126.5 37 15 4 8 80 0 14 0 14 +11652 129 56 -21.14 2126.5 37 13 4 8 80 0 12 0 12 +11653 129 57 -15.1 2126.5 37 14 4 8 80 0 13 0 13 +11654 129 58 -9.06 2126.5 37 16 4 8 80 0 15 0 15 +11655 129 59 -3.02 2126.5 37 18 4 8 80 0 17 0 17 +11656 129 60 3.02 2126.5 41 17 4 8 81 0 16 0 16 +11657 129 61 9.06 2126.5 41 15 4 8 81 0 14 0 14 +11658 129 62 15.1 2126.5 41 13 4 8 81 0 12 0 12 +11659 129 63 21.14 2126.5 41 14 4 8 81 0 13 0 13 +11660 129 64 27.18 2126.5 41 16 4 8 81 0 15 0 15 +11661 129 65 33.22 2126.5 41 18 4 8 81 0 17 0 17 +11662 129 66 39.26 2126.5 45 17 4 8 82 0 16 0 16 +11663 129 67 45.3 2126.5 45 15 4 8 82 0 14 0 14 +11664 129 68 51.34 2126.5 45 13 4 8 82 0 12 0 12 +11665 129 69 57.38 2126.5 45 14 4 8 82 0 13 0 13 +11666 129 70 63.42 2126.5 45 16 4 8 82 0 15 0 15 +11667 129 71 69.46 2126.5 45 18 4 8 82 0 17 0 17 +11668 129 72 75.5 2126.5 49 17 4 8 83 0 16 0 16 +11669 129 73 81.54 2126.5 49 15 4 8 83 0 14 0 14 +11670 129 74 87.58 2126.5 49 13 4 8 83 0 12 0 12 +11671 129 75 93.62 2126.5 49 14 4 8 83 0 13 0 13 +11672 129 76 99.66 2126.5 49 16 4 8 83 0 15 0 15 +11673 129 77 105.7 2126.5 49 18 4 8 83 0 17 0 17 +11674 129 78 111.74 2126.5 53 17 4 8 84 0 16 0 16 +11675 129 79 117.78 2126.5 53 15 4 8 84 0 14 0 14 +11676 129 80 123.82 2126.5 53 13 4 8 84 0 12 0 12 +11677 129 81 129.86 2126.5 53 14 4 8 84 0 13 0 13 +11678 129 82 135.9 2126.5 53 16 4 8 84 0 15 0 15 +11679 129 83 141.94 2126.5 53 18 4 8 84 0 17 0 17 +11680 129 84 147.98 2126.5 57 15 4 8 85 0 14 0 14 +11681 129 85 154.02 2126.5 57 13 4 8 85 0 12 0 12 +11682 129 86 160.06 2126.5 57 11 4 8 85 0 10 0 10 +11683 129 87 166.1 2126.5 57 14 4 8 85 0 13 0 13 +11684 129 88 172.14 2126.5 57 16 4 8 85 0 15 0 15 +11685 129 89 178.18 2126.5 57 18 4 8 85 0 17 0 17 +11686 129 90 184.22 2126.5 61 17 4 8 86 0 16 0 16 +11687 129 91 190.26 2126.5 61 15 4 8 86 0 14 0 14 +11688 129 92 196.3 2126.5 61 13 4 8 86 0 12 0 12 +11689 129 93 202.34 2126.5 61 14 4 8 86 0 13 0 13 +11690 129 94 208.38 2126.5 61 16 4 8 86 0 15 0 15 +11691 129 95 214.42 2126.5 61 18 4 8 86 0 17 0 17 +11692 129 96 220.46 2126.5 65 17 4 8 87 0 16 0 16 +11693 129 97 226.5 2126.5 65 15 4 8 87 0 14 0 14 +11694 129 98 232.54 2126.5 65 13 4 8 87 0 12 0 12 +11695 129 99 238.58 2126.5 65 14 4 8 87 0 13 0 13 +11696 129 100 244.62 2126.5 65 16 4 8 87 0 15 0 15 +11697 129 101 250.66 2126.5 65 18 4 8 87 0 17 0 17 +11698 129 102 256.7 2126.5 69 15 4 8 88 0 14 0 14 +11699 129 103 262.74 2126.5 69 13 4 8 88 0 12 0 12 +11700 129 104 268.78 2126.5 69 11 4 8 88 0 10 0 10 +11701 129 105 274.82 2126.5 69 14 4 8 88 0 13 0 13 +11702 129 106 280.86 2126.5 69 16 4 8 88 0 15 0 15 +11703 129 107 286.9 2126.5 69 18 4 8 88 0 17 0 17 +11704 129 108 292.94 2126.5 73 17 4 8 89 0 16 0 16 +11705 129 109 298.98 2126.5 73 15 4 8 89 0 14 0 14 +11706 129 110 305.02 2126.5 73 13 4 8 89 0 12 0 12 +11707 129 111 311.06 2126.5 73 14 4 8 89 0 13 0 13 +11708 129 112 317.1 2126.5 73 16 4 8 89 0 15 0 15 +11709 129 113 323.14 2126.5 73 18 4 8 89 0 17 0 17 +11710 129 114 329.18 2126.5 77 17 4 8 90 0 16 0 16 +11711 129 115 335.22 2126.5 77 15 4 8 90 0 14 0 14 +11712 129 116 341.26 2126.5 77 13 4 8 90 0 12 0 12 +11713 129 117 347.3 2126.5 77 14 4 8 90 0 13 0 13 +11714 129 118 353.34 2126.5 77 16 4 8 90 0 15 0 15 +11715 129 119 359.38 2126.5 77 18 4 8 90 0 17 0 17 +11716 130 0 -359.38 2141.5 1 23 4 8 71 0 22 0 22 +11717 130 1 -353.34 2141.5 1 21 4 8 71 0 20 0 20 +11718 130 2 -347.3 2141.5 1 19 4 8 71 0 18 0 18 +11719 130 3 -341.26 2141.5 1 20 4 8 71 0 19 0 19 +11720 130 4 -335.22 2141.5 1 22 4 8 71 0 21 0 21 +11721 130 5 -329.18 2141.5 1 24 4 8 71 0 23 0 23 +11722 130 6 -323.14 2141.5 5 23 4 8 72 0 22 0 22 +11723 130 7 -317.1 2141.5 5 21 4 8 72 0 20 0 20 +11724 130 8 -311.06 2141.5 5 19 4 8 72 0 18 0 18 +11725 130 9 -305.02 2141.5 5 20 4 8 72 0 19 0 19 +11726 130 10 -298.98 2141.5 5 22 4 8 72 0 21 0 21 +11727 130 11 -292.94 2141.5 5 24 4 8 72 0 23 0 23 +11728 130 12 -286.9 2141.5 9 23 4 8 73 0 22 0 22 +11729 130 13 -280.86 2141.5 9 21 4 8 73 0 20 0 20 +11730 130 14 -274.82 2141.5 9 19 4 8 73 0 18 0 18 +11731 130 15 -268.78 2141.5 9 18 4 8 73 0 17 0 17 +11732 130 16 -262.74 2141.5 9 20 4 8 73 0 19 0 19 +11733 130 17 -256.7 2141.5 9 22 4 8 73 0 21 0 21 +11734 130 18 -250.66 2141.5 13 23 4 8 74 0 22 0 22 +11735 130 19 -244.62 2141.5 13 21 4 8 74 0 20 0 20 +11736 130 20 -238.58 2141.5 13 19 4 8 74 0 18 0 18 +11737 130 21 -232.54 2141.5 13 20 4 8 74 0 19 0 19 +11738 130 22 -226.5 2141.5 13 22 4 8 74 0 21 0 21 +11739 130 23 -220.46 2141.5 13 24 4 8 74 0 23 0 23 +11740 130 24 -214.42 2141.5 17 23 4 8 75 0 22 0 22 +11741 130 25 -208.38 2141.5 17 21 4 8 75 0 20 0 20 +11742 130 26 -202.34 2141.5 17 19 4 8 75 0 18 0 18 +11743 130 27 -196.3 2141.5 17 20 4 8 75 0 19 0 19 +11744 130 28 -190.26 2141.5 17 22 4 8 75 0 21 0 21 +11745 130 29 -184.22 2141.5 17 24 4 8 75 0 23 0 23 +11746 130 30 -178.18 2141.5 21 23 4 8 76 0 22 0 22 +11747 130 31 -172.14 2141.5 21 21 4 8 76 0 20 0 20 +11748 130 32 -166.1 2141.5 21 19 4 8 76 0 18 0 18 +11749 130 33 -160.06 2141.5 21 18 4 8 76 0 17 0 17 +11750 130 34 -154.02 2141.5 21 20 4 8 76 0 19 0 19 +11751 130 35 -147.98 2141.5 21 22 4 8 76 0 21 0 21 +11752 130 36 -141.94 2141.5 25 23 4 8 77 0 22 0 22 +11753 130 37 -135.9 2141.5 25 21 4 8 77 0 20 0 20 +11754 130 38 -129.86 2141.5 25 19 4 8 77 0 18 0 18 +11755 130 39 -123.82 2141.5 25 20 4 8 77 0 19 0 19 +11756 130 40 -117.78 2141.5 25 22 4 8 77 0 21 0 21 +11757 130 41 -111.74 2141.5 25 24 4 8 77 0 23 0 23 +11758 130 42 -105.7 2141.5 29 23 4 8 78 0 22 0 22 +11759 130 43 -99.66 2141.5 29 21 4 8 78 0 20 0 20 +11760 130 44 -93.62 2141.5 29 19 4 8 78 0 18 0 18 +11761 130 45 -87.58 2141.5 29 20 4 8 78 0 19 0 19 +11762 130 46 -81.54 2141.5 29 22 4 8 78 0 21 0 21 +11763 130 47 -75.5 2141.5 29 24 4 8 78 0 23 0 23 +11764 130 48 -69.46 2141.5 33 23 4 8 79 0 22 0 22 +11765 130 49 -63.42 2141.5 33 21 4 8 79 0 20 0 20 +11766 130 50 -57.38 2141.5 33 19 4 8 79 0 18 0 18 +11767 130 51 -51.34 2141.5 33 20 4 8 79 0 19 0 19 +11768 130 52 -45.3 2141.5 33 22 4 8 79 0 21 0 21 +11769 130 53 -39.26 2141.5 33 24 4 8 79 0 23 0 23 +11770 130 54 -33.22 2141.5 37 23 4 8 80 0 22 0 22 +11771 130 55 -27.18 2141.5 37 21 4 8 80 0 20 0 20 +11772 130 56 -21.14 2141.5 37 19 4 8 80 0 18 0 18 +11773 130 57 -15.1 2141.5 37 20 4 8 80 0 19 0 19 +11774 130 58 -9.06 2141.5 37 22 4 8 80 0 21 0 21 +11775 130 59 -3.02 2141.5 37 24 4 8 80 0 23 0 23 +11776 130 60 3.02 2141.5 41 23 4 8 81 0 22 0 22 +11777 130 61 9.06 2141.5 41 21 4 8 81 0 20 0 20 +11778 130 62 15.1 2141.5 41 19 4 8 81 0 18 0 18 +11779 130 63 21.14 2141.5 41 20 4 8 81 0 19 0 19 +11780 130 64 27.18 2141.5 41 22 4 8 81 0 21 0 21 +11781 130 65 33.22 2141.5 41 24 4 8 81 0 23 0 23 +11782 130 66 39.26 2141.5 45 23 4 8 82 0 22 0 22 +11783 130 67 45.3 2141.5 45 21 4 8 82 0 20 0 20 +11784 130 68 51.34 2141.5 45 19 4 8 82 0 18 0 18 +11785 130 69 57.38 2141.5 45 20 4 8 82 0 19 0 19 +11786 130 70 63.42 2141.5 45 22 4 8 82 0 21 0 21 +11787 130 71 69.46 2141.5 45 24 4 8 82 0 23 0 23 +11788 130 72 75.5 2141.5 49 23 4 8 83 0 22 0 22 +11789 130 73 81.54 2141.5 49 21 4 8 83 0 20 0 20 +11790 130 74 87.58 2141.5 49 19 4 8 83 0 18 0 18 +11791 130 75 93.62 2141.5 49 20 4 8 83 0 19 0 19 +11792 130 76 99.66 2141.5 49 22 4 8 83 0 21 0 21 +11793 130 77 105.7 2141.5 49 24 4 8 83 0 23 0 23 +11794 130 78 111.74 2141.5 53 23 4 8 84 0 22 0 22 +11795 130 79 117.78 2141.5 53 21 4 8 84 0 20 0 20 +11796 130 80 123.82 2141.5 53 19 4 8 84 0 18 0 18 +11797 130 81 129.86 2141.5 53 20 4 8 84 0 19 0 19 +11798 130 82 135.9 2141.5 53 22 4 8 84 0 21 0 21 +11799 130 83 141.94 2141.5 53 24 4 8 84 0 23 0 23 +11800 130 84 147.98 2141.5 57 21 4 8 85 0 20 0 20 +11801 130 85 154.02 2141.5 57 19 4 8 85 0 18 0 18 +11802 130 86 160.06 2141.5 57 17 4 8 85 0 16 0 16 +11803 130 87 166.1 2141.5 57 20 4 8 85 0 19 0 19 +11804 130 88 172.14 2141.5 57 22 4 8 85 0 21 0 21 +11805 130 89 178.18 2141.5 57 24 4 8 85 0 23 0 23 +11806 130 90 184.22 2141.5 61 23 4 8 86 0 22 0 22 +11807 130 91 190.26 2141.5 61 21 4 8 86 0 20 0 20 +11808 130 92 196.3 2141.5 61 19 4 8 86 0 18 0 18 +11809 130 93 202.34 2141.5 61 20 4 8 86 0 19 0 19 +11810 130 94 208.38 2141.5 61 22 4 8 86 0 21 0 21 +11811 130 95 214.42 2141.5 61 24 4 8 86 0 23 0 23 +11812 130 96 220.46 2141.5 65 23 4 8 87 0 22 0 22 +11813 130 97 226.5 2141.5 65 21 4 8 87 0 20 0 20 +11814 130 98 232.54 2141.5 65 19 4 8 87 0 18 0 18 +11815 130 99 238.58 2141.5 65 20 4 8 87 0 19 0 19 +11816 130 100 244.62 2141.5 65 22 4 8 87 0 21 0 21 +11817 130 101 250.66 2141.5 65 24 4 8 87 0 23 0 23 +11818 130 102 256.7 2141.5 69 21 4 8 88 0 20 0 20 +11819 130 103 262.74 2141.5 69 19 4 8 88 0 18 0 18 +11820 130 104 268.78 2141.5 69 17 4 8 88 0 16 0 16 +11821 130 105 274.82 2141.5 69 20 4 8 88 0 19 0 19 +11822 130 106 280.86 2141.5 69 22 4 8 88 0 21 0 21 +11823 130 107 286.9 2141.5 69 24 4 8 88 0 23 0 23 +11824 130 108 292.94 2141.5 73 23 4 8 89 0 22 0 22 +11825 130 109 298.98 2141.5 73 21 4 8 89 0 20 0 20 +11826 130 110 305.02 2141.5 73 19 4 8 89 0 18 0 18 +11827 130 111 311.06 2141.5 73 20 4 8 89 0 19 0 19 +11828 130 112 317.1 2141.5 73 22 4 8 89 0 21 0 21 +11829 130 113 323.14 2141.5 73 24 4 8 89 0 23 0 23 +11830 130 114 329.18 2141.5 77 23 4 8 90 0 22 0 22 +11831 130 115 335.22 2141.5 77 21 4 8 90 0 20 0 20 +11832 130 116 341.26 2141.5 77 19 4 8 90 0 18 0 18 +11833 130 117 347.3 2141.5 77 20 4 8 90 0 19 0 19 +11834 130 118 353.34 2141.5 77 22 4 8 90 0 21 0 21 +11835 130 119 359.38 2141.5 77 24 4 8 90 0 23 0 23 +11836 131 0 -365.42 2156.5 1 29 4 8 71 0 28 0 28 +11837 131 1 -359.38 2156.5 1 27 4 8 71 0 26 0 26 +11838 131 2 -353.34 2156.5 1 25 4 8 71 0 24 0 24 +11839 131 3 -347.3 2156.5 1 26 4 8 71 0 25 0 25 +11840 131 4 -341.26 2156.5 1 28 4 8 71 0 27 0 27 +11841 131 5 -335.22 2156.5 1 30 4 8 71 0 29 0 29 +11842 131 6 -329.18 2156.5 5 29 4 8 72 0 28 0 28 +11843 131 7 -323.14 2156.5 5 27 4 8 72 0 26 0 26 +11844 131 8 -317.1 2156.5 5 25 4 8 72 0 24 0 24 +11845 131 9 -311.06 2156.5 5 26 4 8 72 0 25 0 25 +11846 131 10 -305.02 2156.5 5 28 4 8 72 0 27 0 27 +11847 131 11 -298.98 2156.5 5 30 4 8 72 0 29 0 29 +11848 131 12 -292.94 2156.5 9 29 4 8 73 0 28 0 28 +11849 131 13 -286.9 2156.5 9 27 4 8 73 0 26 0 26 +11850 131 14 -280.86 2156.5 9 25 4 8 73 0 24 0 24 +11851 131 15 -274.82 2156.5 9 24 4 8 73 0 23 0 23 +11852 131 16 -268.78 2156.5 9 26 4 8 73 0 25 0 25 +11853 131 17 -262.74 2156.5 9 28 4 8 73 0 27 0 27 +11854 131 18 -256.7 2156.5 9 30 4 8 73 0 29 0 29 +11855 131 19 -250.66 2156.5 13 29 4 8 74 0 28 0 28 +11856 131 20 -244.62 2156.5 13 27 4 8 74 0 26 0 26 +11857 131 21 -238.58 2156.5 13 25 4 8 74 0 24 0 24 +11858 131 22 -232.54 2156.5 13 26 4 8 74 0 25 0 25 +11859 131 23 -226.5 2156.5 13 28 4 8 74 0 27 0 27 +11860 131 24 -220.46 2156.5 13 30 4 8 74 0 29 0 29 +11861 131 25 -214.42 2156.5 17 29 4 8 75 0 28 0 28 +11862 131 26 -208.38 2156.5 17 27 4 8 75 0 26 0 26 +11863 131 27 -202.34 2156.5 17 25 4 8 75 0 24 0 24 +11864 131 28 -196.3 2156.5 17 26 4 8 75 0 25 0 25 +11865 131 29 -190.26 2156.5 17 28 4 8 75 0 27 0 27 +11866 131 30 -184.22 2156.5 17 30 4 8 75 0 29 0 29 +11867 131 31 -178.18 2156.5 21 29 4 8 76 0 28 0 28 +11868 131 32 -172.14 2156.5 21 27 4 8 76 0 26 0 26 +11869 131 33 -166.1 2156.5 21 25 4 8 76 0 24 0 24 +11870 131 34 -160.06 2156.5 21 24 4 8 76 0 23 0 23 +11871 131 35 -154.02 2156.5 21 26 4 8 76 0 25 0 25 +11872 131 36 -147.98 2156.5 21 28 4 8 76 0 27 0 27 +11873 131 37 -141.94 2156.5 25 29 4 8 77 0 28 0 28 +11874 131 38 -135.9 2156.5 25 27 4 8 77 0 26 0 26 +11875 131 39 -129.86 2156.5 25 25 4 8 77 0 24 0 24 +11876 131 40 -123.82 2156.5 25 26 4 8 77 0 25 0 25 +11877 131 41 -117.78 2156.5 25 28 4 8 77 0 27 0 27 +11878 131 42 -111.74 2156.5 25 30 4 8 77 0 29 0 29 +11879 131 43 -105.7 2156.5 29 29 4 8 78 0 28 0 28 +11880 131 44 -99.66 2156.5 29 27 4 8 78 0 26 0 26 +11881 131 45 -93.62 2156.5 29 25 4 8 78 0 24 0 24 +11882 131 46 -87.58 2156.5 29 26 4 8 78 0 25 0 25 +11883 131 47 -81.54 2156.5 29 28 4 8 78 0 27 0 27 +11884 131 48 -75.5 2156.5 29 30 4 8 78 0 29 0 29 +11885 131 49 -69.46 2156.5 33 29 4 8 79 0 28 0 28 +11886 131 50 -63.42 2156.5 33 27 4 8 79 0 26 0 26 +11887 131 51 -57.38 2156.5 33 25 4 8 79 0 24 0 24 +11888 131 52 -51.34 2156.5 33 26 4 8 79 0 25 0 25 +11889 131 53 -45.3 2156.5 33 28 4 8 79 0 27 0 27 +11890 131 54 -39.26 2156.5 33 30 4 8 79 0 29 0 29 +11891 131 55 -33.22 2156.5 37 29 4 8 80 0 28 0 28 +11892 131 56 -27.18 2156.5 37 27 4 8 80 0 26 0 26 +11893 131 57 -21.14 2156.5 37 25 4 8 80 0 24 0 24 +11894 131 58 -15.1 2156.5 37 26 4 8 80 0 25 0 25 +11895 131 59 -9.06 2156.5 37 28 4 8 80 0 27 0 27 +11896 131 60 -3.02 2156.5 37 30 4 8 80 0 29 0 29 +11897 131 61 3.02 2156.5 41 29 4 8 81 0 28 0 28 +11898 131 62 9.06 2156.5 41 27 4 8 81 0 26 0 26 +11899 131 63 15.1 2156.5 41 25 4 8 81 0 24 0 24 +11900 131 64 21.14 2156.5 41 26 4 8 81 0 25 0 25 +11901 131 65 27.18 2156.5 41 28 4 8 81 0 27 0 27 +11902 131 66 33.22 2156.5 41 30 4 8 81 0 29 0 29 +11903 131 67 39.26 2156.5 45 29 4 8 82 0 28 0 28 +11904 131 68 45.3 2156.5 45 27 4 8 82 0 26 0 26 +11905 131 69 51.34 2156.5 45 25 4 8 82 0 24 0 24 +11906 131 70 57.38 2156.5 45 26 4 8 82 0 25 0 25 +11907 131 71 63.42 2156.5 45 28 4 8 82 0 27 0 27 +11908 131 72 69.46 2156.5 45 30 4 8 82 0 29 0 29 +11909 131 73 75.5 2156.5 49 29 4 8 83 0 28 0 28 +11910 131 74 81.54 2156.5 49 27 4 8 83 0 26 0 26 +11911 131 75 87.58 2156.5 49 25 4 8 83 0 24 0 24 +11912 131 76 93.62 2156.5 49 26 4 8 83 0 25 0 25 +11913 131 77 99.66 2156.5 49 28 4 8 83 0 27 0 27 +11914 131 78 105.7 2156.5 49 30 4 8 83 0 29 0 29 +11915 131 79 111.74 2156.5 53 29 4 8 84 0 28 0 28 +11916 131 80 117.78 2156.5 53 27 4 8 84 0 26 0 26 +11917 131 81 123.82 2156.5 53 25 4 8 84 0 24 0 24 +11918 131 82 129.86 2156.5 53 26 4 8 84 0 25 0 25 +11919 131 83 135.9 2156.5 53 28 4 8 84 0 27 0 27 +11920 131 84 141.94 2156.5 53 30 4 8 84 0 29 0 29 +11921 131 85 147.98 2156.5 57 27 4 8 85 0 26 0 26 +11922 131 86 154.02 2156.5 57 25 4 8 85 0 24 0 24 +11923 131 87 160.06 2156.5 57 23 4 8 85 0 22 0 22 +11924 131 88 166.1 2156.5 57 26 4 8 85 0 25 0 25 +11925 131 89 172.14 2156.5 57 28 4 8 85 0 27 0 27 +11926 131 90 178.18 2156.5 57 30 4 8 85 0 29 0 29 +11927 131 91 184.22 2156.5 61 29 4 8 86 0 28 0 28 +11928 131 92 190.26 2156.5 61 27 4 8 86 0 26 0 26 +11929 131 93 196.3 2156.5 61 25 4 8 86 0 24 0 24 +11930 131 94 202.34 2156.5 61 26 4 8 86 0 25 0 25 +11931 131 95 208.38 2156.5 61 28 4 8 86 0 27 0 27 +11932 131 96 214.42 2156.5 61 30 4 8 86 0 29 0 29 +11933 131 97 220.46 2156.5 65 29 4 8 87 0 28 0 28 +11934 131 98 226.5 2156.5 65 27 4 8 87 0 26 0 26 +11935 131 99 232.54 2156.5 65 25 4 8 87 0 24 0 24 +11936 131 100 238.58 2156.5 65 26 4 8 87 0 25 0 25 +11937 131 101 244.62 2156.5 65 28 4 8 87 0 27 0 27 +11938 131 102 250.66 2156.5 65 30 4 8 87 0 29 0 29 +11939 131 103 256.7 2156.5 69 29 4 8 88 0 28 0 28 +11940 131 104 262.74 2156.5 69 27 4 8 88 0 26 0 26 +11941 131 105 268.78 2156.5 69 25 4 8 88 0 24 0 24 +11942 131 106 274.82 2156.5 69 23 4 8 88 0 22 0 22 +11943 131 107 280.86 2156.5 69 26 4 8 88 0 25 0 25 +11944 131 108 286.9 2156.5 69 28 4 8 88 0 27 0 27 +11945 131 109 292.94 2156.5 69 30 4 8 88 0 29 0 29 +11946 131 110 298.98 2156.5 73 29 4 8 89 0 28 0 28 +11947 131 111 305.02 2156.5 73 27 4 8 89 0 26 0 26 +11948 131 112 311.06 2156.5 73 25 4 8 89 0 24 0 24 +11949 131 113 317.1 2156.5 73 26 4 8 89 0 25 0 25 +11950 131 114 323.14 2156.5 73 28 4 8 89 0 27 0 27 +11951 131 115 329.18 2156.5 73 30 4 8 89 0 29 0 29 +11952 131 116 335.22 2156.5 77 29 4 8 90 0 28 0 28 +11953 131 117 341.26 2156.5 77 27 4 8 90 0 26 0 26 +11954 131 118 347.3 2156.5 77 25 4 8 90 0 24 0 24 +11955 131 119 353.34 2156.5 77 26 4 8 90 0 25 0 25 +11956 131 120 359.38 2156.5 77 28 4 8 90 0 27 0 27 +11957 131 121 365.42 2156.5 77 30 4 8 90 0 29 0 29 +11958 132 0 -365.42 2171.5 1 35 4 8 71 0 34 1 2 +11959 132 1 -359.38 2171.5 1 33 4 8 71 0 32 1 0 +11960 132 2 -353.34 2171.5 1 31 4 8 71 0 30 0 30 +11961 132 3 -347.3 2171.5 1 32 4 8 71 0 31 0 31 +11962 132 4 -341.26 2171.5 1 34 4 8 71 0 33 1 1 +11963 132 5 -335.22 2171.5 1 36 4 8 71 0 35 1 3 +11964 132 6 -329.18 2171.5 5 35 4 8 72 0 34 1 2 +11965 132 7 -323.14 2171.5 5 33 4 8 72 0 32 1 0 +11966 132 8 -317.1 2171.5 5 31 4 8 72 0 30 0 30 +11967 132 9 -311.06 2171.5 5 32 4 8 72 0 31 0 31 +11968 132 10 -305.02 2171.5 5 34 4 8 72 0 33 1 1 +11969 132 11 -298.98 2171.5 5 36 4 8 72 0 35 1 3 +11970 132 12 -292.94 2171.5 9 35 4 8 73 0 34 1 2 +11971 132 13 -286.9 2171.5 9 33 4 8 73 0 32 1 0 +11972 132 14 -280.86 2171.5 9 31 4 8 73 0 30 0 30 +11973 132 15 -274.82 2171.5 9 32 4 8 73 0 31 0 31 +11974 132 16 -268.78 2171.5 9 34 4 8 73 0 33 1 1 +11975 132 17 -262.74 2171.5 9 36 4 8 73 0 35 1 3 +11976 132 18 -256.7 2171.5 13 35 4 8 74 0 34 1 2 +11977 132 19 -250.66 2171.5 13 33 4 8 74 0 32 1 0 +11978 132 20 -244.62 2171.5 13 31 4 8 74 0 30 0 30 +11979 132 21 -238.58 2171.5 13 32 4 8 74 0 31 0 31 +11980 132 22 -232.54 2171.5 13 34 4 8 74 0 33 1 1 +11981 132 23 -226.5 2171.5 13 36 4 8 74 0 35 1 3 +11982 132 24 -220.46 2171.5 17 35 4 8 75 0 34 1 2 +11983 132 25 -214.42 2171.5 17 33 4 8 75 0 32 1 0 +11984 132 26 -208.38 2171.5 17 31 4 8 75 0 30 0 30 +11985 132 27 -202.34 2171.5 17 32 4 8 75 0 31 0 31 +11986 132 28 -196.3 2171.5 17 34 4 8 75 0 33 1 1 +11987 132 29 -190.26 2171.5 17 36 4 8 75 0 35 1 3 +11988 132 30 -184.22 2171.5 21 35 4 8 76 0 34 1 2 +11989 132 31 -178.18 2171.5 21 33 4 8 76 0 32 1 0 +11990 132 32 -172.14 2171.5 21 31 4 8 76 0 30 0 30 +11991 132 33 -166.1 2171.5 21 30 4 8 76 0 29 0 29 +11992 132 34 -160.06 2171.5 21 32 4 8 76 0 31 0 31 +11993 132 35 -154.02 2171.5 21 34 4 8 76 0 33 1 1 +11994 132 36 -147.98 2171.5 21 36 4 8 76 0 35 1 3 +11995 132 37 -141.94 2171.5 25 35 4 8 77 0 34 1 2 +11996 132 38 -135.9 2171.5 25 33 4 8 77 0 32 1 0 +11997 132 39 -129.86 2171.5 25 31 4 8 77 0 30 0 30 +11998 132 40 -123.82 2171.5 25 32 4 8 77 0 31 0 31 +11999 132 41 -117.78 2171.5 25 34 4 8 77 0 33 1 1 +12000 132 42 -111.74 2171.5 25 36 4 8 77 0 35 1 3 +12001 132 43 -105.7 2171.5 29 35 4 8 78 0 34 1 2 +12002 132 44 -99.66 2171.5 29 33 4 8 78 0 32 1 0 +12003 132 45 -93.62 2171.5 29 31 4 8 78 0 30 0 30 +12004 132 46 -87.58 2171.5 29 32 4 8 78 0 31 0 31 +12005 132 47 -81.54 2171.5 29 34 4 8 78 0 33 1 1 +12006 132 48 -75.5 2171.5 29 36 4 8 78 0 35 1 3 +12007 132 49 -69.46 2171.5 33 35 4 8 79 0 34 1 2 +12008 132 50 -63.42 2171.5 33 33 4 8 79 0 32 1 0 +12009 132 51 -57.38 2171.5 33 31 4 8 79 0 30 0 30 +12010 132 52 -51.34 2171.5 33 32 4 8 79 0 31 0 31 +12011 132 53 -45.3 2171.5 33 34 4 8 79 0 33 1 1 +12012 132 54 -39.26 2171.5 33 36 4 8 79 0 35 1 3 +12013 132 55 -33.22 2171.5 37 35 4 8 80 0 34 1 2 +12014 132 56 -27.18 2171.5 37 33 4 8 80 0 32 1 0 +12015 132 57 -21.14 2171.5 37 31 4 8 80 0 30 0 30 +12016 132 58 -15.1 2171.5 37 32 4 8 80 0 31 0 31 +12017 132 59 -9.06 2171.5 37 34 4 8 80 0 33 1 1 +12018 132 60 -3.02 2171.5 37 36 4 8 80 0 35 1 3 +12019 132 61 3.02 2171.5 41 35 4 8 81 0 34 1 2 +12020 132 62 9.06 2171.5 41 33 4 8 81 0 32 1 0 +12021 132 63 15.1 2171.5 41 31 4 8 81 0 30 0 30 +12022 132 64 21.14 2171.5 41 32 4 8 81 0 31 0 31 +12023 132 65 27.18 2171.5 41 34 4 8 81 0 33 1 1 +12024 132 66 33.22 2171.5 41 36 4 8 81 0 35 1 3 +12025 132 67 39.26 2171.5 45 35 4 8 82 0 34 1 2 +12026 132 68 45.3 2171.5 45 33 4 8 82 0 32 1 0 +12027 132 69 51.34 2171.5 45 31 4 8 82 0 30 0 30 +12028 132 70 57.38 2171.5 45 32 4 8 82 0 31 0 31 +12029 132 71 63.42 2171.5 45 34 4 8 82 0 33 1 1 +12030 132 72 69.46 2171.5 45 36 4 8 82 0 35 1 3 +12031 132 73 75.5 2171.5 49 35 4 8 83 0 34 1 2 +12032 132 74 81.54 2171.5 49 33 4 8 83 0 32 1 0 +12033 132 75 87.58 2171.5 49 31 4 8 83 0 30 0 30 +12034 132 76 93.62 2171.5 49 32 4 8 83 0 31 0 31 +12035 132 77 99.66 2171.5 49 34 4 8 83 0 33 1 1 +12036 132 78 105.7 2171.5 49 36 4 8 83 0 35 1 3 +12037 132 79 111.74 2171.5 53 35 4 8 84 0 34 1 2 +12038 132 80 117.78 2171.5 53 33 4 8 84 0 32 1 0 +12039 132 81 123.82 2171.5 53 31 4 8 84 0 30 0 30 +12040 132 82 129.86 2171.5 53 32 4 8 84 0 31 0 31 +12041 132 83 135.9 2171.5 53 34 4 8 84 0 33 1 1 +12042 132 84 141.94 2171.5 53 36 4 8 84 0 35 1 3 +12043 132 85 147.98 2171.5 57 35 4 8 85 0 34 1 2 +12044 132 86 154.02 2171.5 57 33 4 8 85 0 32 1 0 +12045 132 87 160.06 2171.5 57 31 4 8 85 0 30 0 30 +12046 132 88 166.1 2171.5 57 29 4 8 85 0 28 0 28 +12047 132 89 172.14 2171.5 57 32 4 8 85 0 31 0 31 +12048 132 90 178.18 2171.5 57 34 4 8 85 0 33 1 1 +12049 132 91 184.22 2171.5 57 36 4 8 85 0 35 1 3 +12050 132 92 190.26 2171.5 61 35 4 8 86 0 34 1 2 +12051 132 93 196.3 2171.5 61 33 4 8 86 0 32 1 0 +12052 132 94 202.34 2171.5 61 31 4 8 86 0 30 0 30 +12053 132 95 208.38 2171.5 61 32 4 8 86 0 31 0 31 +12054 132 96 214.42 2171.5 61 34 4 8 86 0 33 1 1 +12055 132 97 220.46 2171.5 61 36 4 8 86 0 35 1 3 +12056 132 98 226.5 2171.5 65 35 4 8 87 0 34 1 2 +12057 132 99 232.54 2171.5 65 33 4 8 87 0 32 1 0 +12058 132 100 238.58 2171.5 65 31 4 8 87 0 30 0 30 +12059 132 101 244.62 2171.5 65 32 4 8 87 0 31 0 31 +12060 132 102 250.66 2171.5 65 34 4 8 87 0 33 1 1 +12061 132 103 256.7 2171.5 65 36 4 8 87 0 35 1 3 +12062 132 104 262.74 2171.5 69 35 4 8 88 0 34 1 2 +12063 132 105 268.78 2171.5 69 33 4 8 88 0 32 1 0 +12064 132 106 274.82 2171.5 69 31 4 8 88 0 30 0 30 +12065 132 107 280.86 2171.5 69 32 4 8 88 0 31 0 31 +12066 132 108 286.9 2171.5 69 34 4 8 88 0 33 1 1 +12067 132 109 292.94 2171.5 69 36 4 8 88 0 35 1 3 +12068 132 110 298.98 2171.5 73 35 4 8 89 0 34 1 2 +12069 132 111 305.02 2171.5 73 33 4 8 89 0 32 1 0 +12070 132 112 311.06 2171.5 73 31 4 8 89 0 30 0 30 +12071 132 113 317.1 2171.5 73 32 4 8 89 0 31 0 31 +12072 132 114 323.14 2171.5 73 34 4 8 89 0 33 1 1 +12073 132 115 329.18 2171.5 73 36 4 8 89 0 35 1 3 +12074 132 116 335.22 2171.5 77 35 4 8 90 0 34 1 2 +12075 132 117 341.26 2171.5 77 33 4 8 90 0 32 1 0 +12076 132 118 347.3 2171.5 77 31 4 8 90 0 30 0 30 +12077 132 119 353.34 2171.5 77 32 4 8 90 0 31 0 31 +12078 132 120 359.38 2171.5 77 34 4 8 90 0 33 1 1 +12079 132 121 365.42 2171.5 77 36 4 8 90 0 35 1 3 +12080 133 0 -371.46 2186.5 1 39 4 8 71 0 38 1 6 +12081 133 1 -365.42 2186.5 1 37 4 8 71 0 36 1 4 +12082 133 2 -359.38 2186.5 1 38 4 8 71 0 37 1 5 +12083 133 3 -353.34 2186.5 1 40 4 8 71 0 39 1 7 +12084 133 4 -347.3 2186.5 2 2 4 8 71 1 41 1 9 +12085 133 5 -341.26 2186.5 2 4 4 8 71 1 43 1 11 +12086 133 6 -335.22 2186.5 2 6 4 8 71 1 45 1 13 +12087 133 7 -329.18 2186.5 6 3 4 8 72 1 42 1 10 +12088 133 8 -323.14 2186.5 6 1 4 8 72 1 40 1 8 +12089 133 9 -317.1 2186.5 5 39 4 8 72 0 38 1 6 +12090 133 10 -311.06 2186.5 5 37 4 8 72 0 36 1 4 +12091 133 11 -305.02 2186.5 5 38 4 8 72 0 37 1 5 +12092 133 12 -298.98 2186.5 5 40 4 8 72 0 39 1 7 +12093 133 13 -292.94 2186.5 9 39 4 8 73 0 38 1 6 +12094 133 14 -286.9 2186.5 9 37 4 8 73 0 36 1 4 +12095 133 15 -280.86 2186.5 9 38 4 8 73 0 37 1 5 +12096 133 16 -274.82 2186.5 9 40 4 8 73 0 39 1 7 +12097 133 17 -268.78 2186.5 10 2 4 8 73 1 41 1 9 +12098 133 18 -262.74 2186.5 10 4 4 8 73 1 43 1 11 +12099 133 19 -256.7 2186.5 13 39 4 8 74 0 38 1 6 +12100 133 20 -250.66 2186.5 13 37 4 8 74 0 36 1 4 +12101 133 21 -244.62 2186.5 13 38 4 8 74 0 37 1 5 +12102 133 22 -238.58 2186.5 13 40 4 8 74 0 39 1 7 +12103 133 23 -232.54 2186.5 14 2 4 8 74 1 41 1 9 +12104 133 24 -226.5 2186.5 14 4 4 8 74 1 43 1 11 +12105 133 25 -220.46 2186.5 17 39 4 8 75 0 38 1 6 +12106 133 26 -214.42 2186.5 17 37 4 8 75 0 36 1 4 +12107 133 27 -208.38 2186.5 17 38 4 8 75 0 37 1 5 +12108 133 28 -202.34 2186.5 17 40 4 8 75 0 39 1 7 +12109 133 29 -196.3 2186.5 18 2 4 8 75 1 41 1 9 +12110 133 30 -190.26 2186.5 18 4 4 8 75 1 43 1 11 +12111 133 31 -184.22 2186.5 21 39 4 8 76 0 38 1 6 +12112 133 32 -178.18 2186.5 21 37 4 8 76 0 36 1 4 +12113 133 33 -172.14 2186.5 21 38 4 8 76 0 37 1 5 +12114 133 34 -166.1 2186.5 21 40 4 8 76 0 39 1 7 +12115 133 35 -160.06 2186.5 22 2 4 8 76 1 41 1 9 +12116 133 36 -154.02 2186.5 22 4 4 8 76 1 43 1 11 +12117 133 37 -147.98 2186.5 26 5 4 8 77 1 44 1 12 +12118 133 38 -141.94 2186.5 26 3 4 8 77 1 42 1 10 +12119 133 39 -135.9 2186.5 26 1 4 8 77 1 40 1 8 +12120 133 40 -129.86 2186.5 25 39 4 8 77 0 38 1 6 +12121 133 41 -123.82 2186.5 25 37 4 8 77 0 36 1 4 +12122 133 42 -117.78 2186.5 25 38 4 8 77 0 37 1 5 +12123 133 43 -111.74 2186.5 25 40 4 8 77 0 39 1 7 +12124 133 44 -105.7 2186.5 29 39 4 8 78 0 38 1 6 +12125 133 45 -99.66 2186.5 29 37 4 8 78 0 36 1 4 +12126 133 46 -93.62 2186.5 29 38 4 8 78 0 37 1 5 +12127 133 47 -87.58 2186.5 29 40 4 8 78 0 39 1 7 +12128 133 48 -81.54 2186.5 30 2 4 8 78 1 41 1 9 +12129 133 49 -75.5 2186.5 30 4 4 8 78 1 43 1 11 +12130 133 50 -69.46 2186.5 33 39 4 8 79 0 38 1 6 +12131 133 51 -63.42 2186.5 33 37 4 8 79 0 36 1 4 +12132 133 52 -57.38 2186.5 33 38 4 8 79 0 37 1 5 +12133 133 53 -51.34 2186.5 33 40 4 8 79 0 39 1 7 +12134 133 54 -45.3 2186.5 34 2 4 8 79 1 41 1 9 +12135 133 55 -39.26 2186.5 34 4 4 8 79 1 43 1 11 +12136 133 56 -33.22 2186.5 37 39 4 8 80 0 38 1 6 +12137 133 57 -27.18 2186.5 37 37 4 8 80 0 36 1 4 +12138 133 58 -21.14 2186.5 37 38 4 8 80 0 37 1 5 +12139 133 59 -15.1 2186.5 37 40 4 8 80 0 39 1 7 +12140 133 60 -9.06 2186.5 38 2 4 8 80 1 41 1 9 +12141 133 61 -3.02 2186.5 38 4 4 8 80 1 43 1 11 +12142 133 62 3.02 2186.5 42 3 4 8 81 1 42 1 10 +12143 133 63 9.06 2186.5 42 1 4 8 81 1 40 1 8 +12144 133 64 15.1 2186.5 41 39 4 8 81 0 38 1 6 +12145 133 65 21.14 2186.5 41 37 4 8 81 0 36 1 4 +12146 133 66 27.18 2186.5 41 38 4 8 81 0 37 1 5 +12147 133 67 33.22 2186.5 41 40 4 8 81 0 39 1 7 +12148 133 68 39.26 2186.5 46 3 4 8 82 1 42 1 10 +12149 133 69 45.3 2186.5 46 1 4 8 82 1 40 1 8 +12150 133 70 51.34 2186.5 45 39 4 8 82 0 38 1 6 +12151 133 71 57.38 2186.5 45 37 4 8 82 0 36 1 4 +12152 133 72 63.42 2186.5 45 38 4 8 82 0 37 1 5 +12153 133 73 69.46 2186.5 45 40 4 8 82 0 39 1 7 +12154 133 74 75.5 2186.5 50 3 4 8 83 1 42 1 10 +12155 133 75 81.54 2186.5 50 1 4 8 83 1 40 1 8 +12156 133 76 87.58 2186.5 49 39 4 8 83 0 38 1 6 +12157 133 77 93.62 2186.5 49 37 4 8 83 0 36 1 4 +12158 133 78 99.66 2186.5 49 38 4 8 83 0 37 1 5 +12159 133 79 105.7 2186.5 49 40 4 8 83 0 39 1 7 +12160 133 80 111.74 2186.5 53 39 4 8 84 0 38 1 6 +12161 133 81 117.78 2186.5 53 37 4 8 84 0 36 1 4 +12162 133 82 123.82 2186.5 53 38 4 8 84 0 37 1 5 +12163 133 83 129.86 2186.5 53 40 4 8 84 0 39 1 7 +12164 133 84 135.9 2186.5 54 2 4 8 84 1 41 1 9 +12165 133 85 141.94 2186.5 54 4 4 8 84 1 43 1 11 +12166 133 86 147.98 2186.5 54 6 4 8 84 1 45 1 13 +12167 133 87 154.02 2186.5 58 3 4 8 85 1 42 1 10 +12168 133 88 160.06 2186.5 58 1 4 8 85 1 40 1 8 +12169 133 89 166.1 2186.5 57 39 4 8 85 0 38 1 6 +12170 133 90 172.14 2186.5 57 37 4 8 85 0 36 1 4 +12171 133 91 178.18 2186.5 57 38 4 8 85 0 37 1 5 +12172 133 92 184.22 2186.5 57 40 4 8 85 0 39 1 7 +12173 133 93 190.26 2186.5 62 3 4 8 86 1 42 1 10 +12174 133 94 196.3 2186.5 62 1 4 8 86 1 40 1 8 +12175 133 95 202.34 2186.5 61 39 4 8 86 0 38 1 6 +12176 133 96 208.38 2186.5 61 37 4 8 86 0 36 1 4 +12177 133 97 214.42 2186.5 61 38 4 8 86 0 37 1 5 +12178 133 98 220.46 2186.5 61 40 4 8 86 0 39 1 7 +12179 133 99 226.5 2186.5 66 3 4 8 87 1 42 1 10 +12180 133 100 232.54 2186.5 66 1 4 8 87 1 40 1 8 +12181 133 101 238.58 2186.5 65 39 4 8 87 0 38 1 6 +12182 133 102 244.62 2186.5 65 37 4 8 87 0 36 1 4 +12183 133 103 250.66 2186.5 65 38 4 8 87 0 37 1 5 +12184 133 104 256.7 2186.5 65 40 4 8 87 0 39 1 7 +12185 133 105 262.74 2186.5 70 3 4 8 88 1 42 1 10 +12186 133 106 268.78 2186.5 70 1 4 8 88 1 40 1 8 +12187 133 107 274.82 2186.5 69 39 4 8 88 0 38 1 6 +12188 133 108 280.86 2186.5 69 37 4 8 88 0 36 1 4 +12189 133 109 286.9 2186.5 69 38 4 8 88 0 37 1 5 +12190 133 110 292.94 2186.5 69 40 4 8 88 0 39 1 7 +12191 133 111 298.98 2186.5 73 39 4 8 89 0 38 1 6 +12192 133 112 305.02 2186.5 73 37 4 8 89 0 36 1 4 +12193 133 113 311.06 2186.5 73 38 4 8 89 0 37 1 5 +12194 133 114 317.1 2186.5 73 40 4 8 89 0 39 1 7 +12195 133 115 323.14 2186.5 74 2 4 8 89 1 41 1 9 +12196 133 116 329.18 2186.5 74 4 4 8 89 1 43 1 11 +12197 133 117 335.22 2186.5 78 5 4 8 90 1 44 1 12 +12198 133 118 341.26 2186.5 78 3 4 8 90 1 42 1 10 +12199 133 119 347.3 2186.5 78 1 4 8 90 1 40 1 8 +12200 133 120 353.34 2186.5 77 39 4 8 90 0 38 1 6 +12201 133 121 359.38 2186.5 77 37 4 8 90 0 36 1 4 +12202 133 122 365.42 2186.5 77 38 4 8 90 0 37 1 5 +12203 133 123 371.46 2186.5 77 40 4 8 90 0 39 1 7 +12204 134 0 -371.46 2201.5 2 7 4 8 71 1 46 1 14 +12205 134 1 -365.42 2201.5 2 5 4 8 71 1 44 1 12 +12206 134 2 -359.38 2201.5 2 3 4 8 71 1 42 1 10 +12207 134 3 -353.34 2201.5 2 1 4 8 71 1 40 1 8 +12208 134 4 -347.3 2201.5 2 8 4 8 71 1 47 1 15 +12209 134 5 -341.26 2201.5 2 10 4 8 71 1 49 1 17 +12210 134 6 -335.22 2201.5 6 9 4 8 72 1 48 1 16 +12211 134 7 -329.18 2201.5 6 7 4 8 72 1 46 1 14 +12212 134 8 -323.14 2201.5 6 5 4 8 72 1 44 1 12 +12213 134 9 -317.1 2201.5 6 2 4 8 72 1 41 1 9 +12214 134 10 -311.06 2201.5 6 4 4 8 72 1 43 1 11 +12215 134 11 -305.02 2201.5 6 6 4 8 72 1 45 1 13 +12216 134 12 -298.98 2201.5 10 7 4 8 73 1 46 1 14 +12217 134 13 -292.94 2201.5 10 5 4 8 73 1 44 1 12 +12218 134 14 -286.9 2201.5 10 3 4 8 73 1 42 1 10 +12219 134 15 -280.86 2201.5 10 1 4 8 73 1 40 1 8 +12220 134 16 -274.82 2201.5 10 6 4 8 73 1 45 1 13 +12221 134 17 -268.78 2201.5 10 8 4 8 73 1 47 1 15 +12222 134 18 -262.74 2201.5 10 10 4 8 73 1 49 1 17 +12223 134 19 -256.7 2201.5 14 7 4 8 74 1 46 1 14 +12224 134 20 -250.66 2201.5 14 5 4 8 74 1 44 1 12 +12225 134 21 -244.62 2201.5 14 3 4 8 74 1 42 1 10 +12226 134 22 -238.58 2201.5 14 1 4 8 74 1 40 1 8 +12227 134 23 -232.54 2201.5 14 6 4 8 74 1 45 1 13 +12228 134 24 -226.5 2201.5 14 8 4 8 74 1 47 1 15 +12229 134 25 -220.46 2201.5 18 7 4 8 75 1 46 1 14 +12230 134 26 -214.42 2201.5 18 5 4 8 75 1 44 1 12 +12231 134 27 -208.38 2201.5 18 3 4 8 75 1 42 1 10 +12232 134 28 -202.34 2201.5 18 1 4 8 75 1 40 1 8 +12233 134 29 -196.3 2201.5 18 6 4 8 75 1 45 1 13 +12234 134 30 -190.26 2201.5 18 8 4 8 75 1 47 1 15 +12235 134 31 -184.22 2201.5 22 7 4 8 76 1 46 1 14 +12236 134 32 -178.18 2201.5 22 5 4 8 76 1 44 1 12 +12237 134 33 -172.14 2201.5 22 3 4 8 76 1 42 1 10 +12238 134 34 -166.1 2201.5 22 1 4 8 76 1 40 1 8 +12239 134 35 -160.06 2201.5 22 6 4 8 76 1 45 1 13 +12240 134 36 -154.02 2201.5 22 8 4 8 76 1 47 1 15 +12241 134 37 -147.98 2201.5 26 9 4 8 77 1 48 1 16 +12242 134 38 -141.94 2201.5 26 7 4 8 77 1 46 1 14 +12243 134 39 -135.9 2201.5 26 2 4 8 77 1 41 1 9 +12244 134 40 -129.86 2201.5 26 4 4 8 77 1 43 1 11 +12245 134 41 -123.82 2201.5 26 6 4 8 77 1 45 1 13 +12246 134 42 -117.78 2201.5 26 8 4 8 77 1 47 1 15 +12247 134 43 -111.74 2201.5 30 7 4 8 78 1 46 1 14 +12248 134 44 -105.7 2201.5 30 5 4 8 78 1 44 1 12 +12249 134 45 -99.66 2201.5 30 3 4 8 78 1 42 1 10 +12250 134 46 -93.62 2201.5 30 1 4 8 78 1 40 1 8 +12251 134 47 -87.58 2201.5 30 6 4 8 78 1 45 1 13 +12252 134 48 -81.54 2201.5 30 8 4 8 78 1 47 1 15 +12253 134 49 -75.5 2201.5 30 10 4 8 78 1 49 1 17 +12254 134 50 -69.46 2201.5 34 5 4 8 79 1 44 1 12 +12255 134 51 -63.42 2201.5 34 3 4 8 79 1 42 1 10 +12256 134 52 -57.38 2201.5 34 1 4 8 79 1 40 1 8 +12257 134 53 -51.34 2201.5 34 6 4 8 79 1 45 1 13 +12258 134 54 -45.3 2201.5 34 8 4 8 79 1 47 1 15 +12259 134 55 -39.26 2201.5 34 10 4 8 79 1 49 1 17 +12260 134 56 -33.22 2201.5 38 5 4 8 80 1 44 1 12 +12261 134 57 -27.18 2201.5 38 3 4 8 80 1 42 1 10 +12262 134 58 -21.14 2201.5 38 1 4 8 80 1 40 1 8 +12263 134 59 -15.1 2201.5 38 6 4 8 80 1 45 1 13 +12264 134 60 -9.06 2201.5 38 8 4 8 80 1 47 1 15 +12265 134 61 -3.02 2201.5 38 10 4 8 80 1 49 1 17 +12266 134 62 3.02 2201.5 42 9 4 8 81 1 48 1 16 +12267 134 63 9.06 2201.5 42 7 4 8 81 1 46 1 14 +12268 134 64 15.1 2201.5 42 5 4 8 81 1 44 1 12 +12269 134 65 21.14 2201.5 42 2 4 8 81 1 41 1 9 +12270 134 66 27.18 2201.5 42 4 4 8 81 1 43 1 11 +12271 134 67 33.22 2201.5 42 6 4 8 81 1 45 1 13 +12272 134 68 39.26 2201.5 46 9 4 8 82 1 48 1 16 +12273 134 69 45.3 2201.5 46 7 4 8 82 1 46 1 14 +12274 134 70 51.34 2201.5 46 5 4 8 82 1 44 1 12 +12275 134 71 57.38 2201.5 46 2 4 8 82 1 41 1 9 +12276 134 72 63.42 2201.5 46 4 4 8 82 1 43 1 11 +12277 134 73 69.46 2201.5 46 6 4 8 82 1 45 1 13 +12278 134 74 75.5 2201.5 50 9 4 8 83 1 48 1 16 +12279 134 75 81.54 2201.5 50 7 4 8 83 1 46 1 14 +12280 134 76 87.58 2201.5 50 5 4 8 83 1 44 1 12 +12281 134 77 93.62 2201.5 50 2 4 8 83 1 41 1 9 +12282 134 78 99.66 2201.5 50 4 4 8 83 1 43 1 11 +12283 134 79 105.7 2201.5 50 6 4 8 83 1 45 1 13 +12284 134 80 111.74 2201.5 50 8 4 8 83 1 47 1 15 +12285 134 81 117.78 2201.5 54 7 4 8 84 1 46 1 14 +12286 134 82 123.82 2201.5 54 5 4 8 84 1 44 1 12 +12287 134 83 129.86 2201.5 54 3 4 8 84 1 42 1 10 +12288 134 84 135.9 2201.5 54 1 4 8 84 1 40 1 8 +12289 134 85 141.94 2201.5 54 8 4 8 84 1 47 1 15 +12290 134 86 147.98 2201.5 54 10 4 8 84 1 49 1 17 +12291 134 87 154.02 2201.5 58 7 4 8 85 1 46 1 14 +12292 134 88 160.06 2201.5 58 5 4 8 85 1 44 1 12 +12293 134 89 166.1 2201.5 58 2 4 8 85 1 41 1 9 +12294 134 90 172.14 2201.5 58 4 4 8 85 1 43 1 11 +12295 134 91 178.18 2201.5 58 6 4 8 85 1 45 1 13 +12296 134 92 184.22 2201.5 58 8 4 8 85 1 47 1 15 +12297 134 93 190.26 2201.5 62 7 4 8 86 1 46 1 14 +12298 134 94 196.3 2201.5 62 5 4 8 86 1 44 1 12 +12299 134 95 202.34 2201.5 62 2 4 8 86 1 41 1 9 +12300 134 96 208.38 2201.5 62 4 4 8 86 1 43 1 11 +12301 134 97 214.42 2201.5 62 6 4 8 86 1 45 1 13 +12302 134 98 220.46 2201.5 62 8 4 8 86 1 47 1 15 +12303 134 99 226.5 2201.5 66 7 4 8 87 1 46 1 14 +12304 134 100 232.54 2201.5 66 5 4 8 87 1 44 1 12 +12305 134 101 238.58 2201.5 66 2 4 8 87 1 41 1 9 +12306 134 102 244.62 2201.5 66 4 4 8 87 1 43 1 11 +12307 134 103 250.66 2201.5 66 6 4 8 87 1 45 1 13 +12308 134 104 256.7 2201.5 66 8 4 8 87 1 47 1 15 +12309 134 105 262.74 2201.5 70 9 4 8 88 1 48 1 16 +12310 134 106 268.78 2201.5 70 7 4 8 88 1 46 1 14 +12311 134 107 274.82 2201.5 70 5 4 8 88 1 44 1 12 +12312 134 108 280.86 2201.5 70 2 4 8 88 1 41 1 9 +12313 134 109 286.9 2201.5 70 4 4 8 88 1 43 1 11 +12314 134 110 292.94 2201.5 70 6 4 8 88 1 45 1 13 +12315 134 111 298.98 2201.5 70 8 4 8 88 1 47 1 15 +12316 134 112 305.02 2201.5 74 5 4 8 89 1 44 1 12 +12317 134 113 311.06 2201.5 74 3 4 8 89 1 42 1 10 +12318 134 114 317.1 2201.5 74 1 4 8 89 1 40 1 8 +12319 134 115 323.14 2201.5 74 6 4 8 89 1 45 1 13 +12320 134 116 329.18 2201.5 74 8 4 8 89 1 47 1 15 +12321 134 117 335.22 2201.5 74 10 4 8 89 1 49 1 17 +12322 134 118 341.26 2201.5 78 9 4 8 90 1 48 1 16 +12323 134 119 347.3 2201.5 78 7 4 8 90 1 46 1 14 +12324 134 120 353.34 2201.5 78 2 4 8 90 1 41 1 9 +12325 134 121 359.38 2201.5 78 4 4 8 90 1 43 1 11 +12326 134 122 365.42 2201.5 78 6 4 8 90 1 45 1 13 +12327 134 123 371.46 2201.5 78 8 4 8 90 1 47 1 15 +12328 135 0 -371.46 2216.5 2 13 4 8 71 1 52 1 20 +12329 135 1 -365.42 2216.5 2 11 4 8 71 1 50 1 18 +12330 135 2 -359.38 2216.5 2 9 4 8 71 1 48 1 16 +12331 135 3 -353.34 2216.5 2 12 4 8 71 1 51 1 19 +12332 135 4 -347.3 2216.5 2 14 4 8 71 1 53 1 21 +12333 135 5 -341.26 2216.5 2 16 4 8 71 1 55 1 23 +12334 135 6 -335.22 2216.5 6 15 4 8 72 1 54 1 22 +12335 135 7 -329.18 2216.5 6 13 4 8 72 1 52 1 20 +12336 135 8 -323.14 2216.5 6 11 4 8 72 1 50 1 18 +12337 135 9 -317.1 2216.5 6 8 4 8 72 1 47 1 15 +12338 135 10 -311.06 2216.5 6 10 4 8 72 1 49 1 17 +12339 135 11 -305.02 2216.5 6 12 4 8 72 1 51 1 19 +12340 135 12 -298.98 2216.5 10 13 4 8 73 1 52 1 20 +12341 135 13 -292.94 2216.5 10 11 4 8 73 1 50 1 18 +12342 135 14 -286.9 2216.5 10 9 4 8 73 1 48 1 16 +12343 135 15 -280.86 2216.5 10 12 4 8 73 1 51 1 19 +12344 135 16 -274.82 2216.5 10 14 4 8 73 1 53 1 21 +12345 135 17 -268.78 2216.5 10 16 4 8 73 1 55 1 23 +12346 135 18 -262.74 2216.5 14 15 4 8 74 1 54 1 22 +12347 135 19 -256.7 2216.5 14 13 4 8 74 1 52 1 20 +12348 135 20 -250.66 2216.5 14 11 4 8 74 1 50 1 18 +12349 135 21 -244.62 2216.5 14 9 4 8 74 1 48 1 16 +12350 135 22 -238.58 2216.5 14 10 4 8 74 1 49 1 17 +12351 135 23 -232.54 2216.5 14 12 4 8 74 1 51 1 19 +12352 135 24 -226.5 2216.5 14 14 4 8 74 1 53 1 21 +12353 135 25 -220.46 2216.5 18 13 4 8 75 1 52 1 20 +12354 135 26 -214.42 2216.5 18 11 4 8 75 1 50 1 18 +12355 135 27 -208.38 2216.5 18 9 4 8 75 1 48 1 16 +12356 135 28 -202.34 2216.5 18 10 4 8 75 1 49 1 17 +12357 135 29 -196.3 2216.5 18 12 4 8 75 1 51 1 19 +12358 135 30 -190.26 2216.5 18 14 4 8 75 1 53 1 21 +12359 135 31 -184.22 2216.5 22 13 4 8 76 1 52 1 20 +12360 135 32 -178.18 2216.5 22 11 4 8 76 1 50 1 18 +12361 135 33 -172.14 2216.5 22 9 4 8 76 1 48 1 16 +12362 135 34 -166.1 2216.5 22 10 4 8 76 1 49 1 17 +12363 135 35 -160.06 2216.5 22 12 4 8 76 1 51 1 19 +12364 135 36 -154.02 2216.5 22 14 4 8 76 1 53 1 21 +12365 135 37 -147.98 2216.5 26 15 4 8 77 1 54 1 22 +12366 135 38 -141.94 2216.5 26 13 4 8 77 1 52 1 20 +12367 135 39 -135.9 2216.5 26 11 4 8 77 1 50 1 18 +12368 135 40 -129.86 2216.5 26 10 4 8 77 1 49 1 17 +12369 135 41 -123.82 2216.5 26 12 4 8 77 1 51 1 19 +12370 135 42 -117.78 2216.5 26 14 4 8 77 1 53 1 21 +12371 135 43 -111.74 2216.5 30 15 4 8 78 1 54 1 22 +12372 135 44 -105.7 2216.5 30 13 4 8 78 1 52 1 20 +12373 135 45 -99.66 2216.5 30 11 4 8 78 1 50 1 18 +12374 135 46 -93.62 2216.5 30 9 4 8 78 1 48 1 16 +12375 135 47 -87.58 2216.5 30 12 4 8 78 1 51 1 19 +12376 135 48 -81.54 2216.5 30 14 4 8 78 1 53 1 21 +12377 135 49 -75.5 2216.5 30 16 4 8 78 1 55 1 23 +12378 135 50 -69.46 2216.5 34 11 4 8 79 1 50 1 18 +12379 135 51 -63.42 2216.5 34 9 4 8 79 1 48 1 16 +12380 135 52 -57.38 2216.5 34 7 4 8 79 1 46 1 14 +12381 135 53 -51.34 2216.5 34 12 4 8 79 1 51 1 19 +12382 135 54 -45.3 2216.5 34 14 4 8 79 1 53 1 21 +12383 135 55 -39.26 2216.5 34 16 4 8 79 1 55 1 23 +12384 135 56 -33.22 2216.5 38 11 4 8 80 1 50 1 18 +12385 135 57 -27.18 2216.5 38 9 4 8 80 1 48 1 16 +12386 135 58 -21.14 2216.5 38 7 4 8 80 1 46 1 14 +12387 135 59 -15.1 2216.5 38 12 4 8 80 1 51 1 19 +12388 135 60 -9.06 2216.5 38 14 4 8 80 1 53 1 21 +12389 135 61 -3.02 2216.5 38 16 4 8 80 1 55 1 23 +12390 135 62 3.02 2216.5 42 15 4 8 81 1 54 1 22 +12391 135 63 9.06 2216.5 42 13 4 8 81 1 52 1 20 +12392 135 64 15.1 2216.5 42 11 4 8 81 1 50 1 18 +12393 135 65 21.14 2216.5 42 8 4 8 81 1 47 1 15 +12394 135 66 27.18 2216.5 42 10 4 8 81 1 49 1 17 +12395 135 67 33.22 2216.5 42 12 4 8 81 1 51 1 19 +12396 135 68 39.26 2216.5 46 15 4 8 82 1 54 1 22 +12397 135 69 45.3 2216.5 46 13 4 8 82 1 52 1 20 +12398 135 70 51.34 2216.5 46 11 4 8 82 1 50 1 18 +12399 135 71 57.38 2216.5 46 8 4 8 82 1 47 1 15 +12400 135 72 63.42 2216.5 46 10 4 8 82 1 49 1 17 +12401 135 73 69.46 2216.5 46 12 4 8 82 1 51 1 19 +12402 135 74 75.5 2216.5 50 15 4 8 83 1 54 1 22 +12403 135 75 81.54 2216.5 50 13 4 8 83 1 52 1 20 +12404 135 76 87.58 2216.5 50 11 4 8 83 1 50 1 18 +12405 135 77 93.62 2216.5 50 10 4 8 83 1 49 1 17 +12406 135 78 99.66 2216.5 50 12 4 8 83 1 51 1 19 +12407 135 79 105.7 2216.5 50 14 4 8 83 1 53 1 21 +12408 135 80 111.74 2216.5 50 16 4 8 83 1 55 1 23 +12409 135 81 117.78 2216.5 54 13 4 8 84 1 52 1 20 +12410 135 82 123.82 2216.5 54 11 4 8 84 1 50 1 18 +12411 135 83 129.86 2216.5 54 9 4 8 84 1 48 1 16 +12412 135 84 135.9 2216.5 54 12 4 8 84 1 51 1 19 +12413 135 85 141.94 2216.5 54 14 4 8 84 1 53 1 21 +12414 135 86 147.98 2216.5 54 16 4 8 84 1 55 1 23 +12415 135 87 154.02 2216.5 58 13 4 8 85 1 52 1 20 +12416 135 88 160.06 2216.5 58 11 4 8 85 1 50 1 18 +12417 135 89 166.1 2216.5 58 9 4 8 85 1 48 1 16 +12418 135 90 172.14 2216.5 58 10 4 8 85 1 49 1 17 +12419 135 91 178.18 2216.5 58 12 4 8 85 1 51 1 19 +12420 135 92 184.22 2216.5 58 14 4 8 85 1 53 1 21 +12421 135 93 190.26 2216.5 62 13 4 8 86 1 52 1 20 +12422 135 94 196.3 2216.5 62 11 4 8 86 1 50 1 18 +12423 135 95 202.34 2216.5 62 9 4 8 86 1 48 1 16 +12424 135 96 208.38 2216.5 62 10 4 8 86 1 49 1 17 +12425 135 97 214.42 2216.5 62 12 4 8 86 1 51 1 19 +12426 135 98 220.46 2216.5 62 14 4 8 86 1 53 1 21 +12427 135 99 226.5 2216.5 66 13 4 8 87 1 52 1 20 +12428 135 100 232.54 2216.5 66 11 4 8 87 1 50 1 18 +12429 135 101 238.58 2216.5 66 9 4 8 87 1 48 1 16 +12430 135 102 244.62 2216.5 66 10 4 8 87 1 49 1 17 +12431 135 103 250.66 2216.5 66 12 4 8 87 1 51 1 19 +12432 135 104 256.7 2216.5 66 14 4 8 87 1 53 1 21 +12433 135 105 262.74 2216.5 66 16 4 8 87 1 55 1 23 +12434 135 106 268.78 2216.5 70 15 4 8 88 1 54 1 22 +12435 135 107 274.82 2216.5 70 13 4 8 88 1 52 1 20 +12436 135 108 280.86 2216.5 70 11 4 8 88 1 50 1 18 +12437 135 109 286.9 2216.5 70 10 4 8 88 1 49 1 17 +12438 135 110 292.94 2216.5 70 12 4 8 88 1 51 1 19 +12439 135 111 298.98 2216.5 70 14 4 8 88 1 53 1 21 +12440 135 112 305.02 2216.5 74 11 4 8 89 1 50 1 18 +12441 135 113 311.06 2216.5 74 9 4 8 89 1 48 1 16 +12442 135 114 317.1 2216.5 74 7 4 8 89 1 46 1 14 +12443 135 115 323.14 2216.5 74 12 4 8 89 1 51 1 19 +12444 135 116 329.18 2216.5 74 14 4 8 89 1 53 1 21 +12445 135 117 335.22 2216.5 74 16 4 8 89 1 55 1 23 +12446 135 118 341.26 2216.5 78 15 4 8 90 1 54 1 22 +12447 135 119 347.3 2216.5 78 13 4 8 90 1 52 1 20 +12448 135 120 353.34 2216.5 78 11 4 8 90 1 50 1 18 +12449 135 121 359.38 2216.5 78 10 4 8 90 1 49 1 17 +12450 135 122 365.42 2216.5 78 12 4 8 90 1 51 1 19 +12451 135 123 371.46 2216.5 78 14 4 8 90 1 53 1 21 +12452 136 0 -377.5 2231.5 2 19 4 8 71 1 58 1 26 +12453 136 1 -371.46 2231.5 2 17 4 8 71 1 56 1 24 +12454 136 2 -365.42 2231.5 2 15 4 8 71 1 54 1 22 +12455 136 3 -359.38 2231.5 2 18 4 8 71 1 57 1 25 +12456 136 4 -353.34 2231.5 2 20 4 8 71 1 59 1 27 +12457 136 5 -347.3 2231.5 2 22 4 8 71 1 61 1 29 +12458 136 6 -341.26 2231.5 6 21 4 8 72 1 60 1 28 +12459 136 7 -335.22 2231.5 6 19 4 8 72 1 58 1 26 +12460 136 8 -329.18 2231.5 6 17 4 8 72 1 56 1 24 +12461 136 9 -323.14 2231.5 6 14 4 8 72 1 53 1 21 +12462 136 10 -317.1 2231.5 6 16 4 8 72 1 55 1 23 +12463 136 11 -311.06 2231.5 6 18 4 8 72 1 57 1 25 +12464 136 12 -305.02 2231.5 6 20 4 8 72 1 59 1 27 +12465 136 13 -298.98 2231.5 10 19 4 8 73 1 58 1 26 +12466 136 14 -292.94 2231.5 10 17 4 8 73 1 56 1 24 +12467 136 15 -286.9 2231.5 10 15 4 8 73 1 54 1 22 +12468 136 16 -280.86 2231.5 10 18 4 8 73 1 57 1 25 +12469 136 17 -274.82 2231.5 10 20 4 8 73 1 59 1 27 +12470 136 18 -268.78 2231.5 10 22 4 8 73 1 61 1 29 +12471 136 19 -262.74 2231.5 14 21 4 8 74 1 60 1 28 +12472 136 20 -256.7 2231.5 14 19 4 8 74 1 58 1 26 +12473 136 21 -250.66 2231.5 14 17 4 8 74 1 56 1 24 +12474 136 22 -244.62 2231.5 14 16 4 8 74 1 55 1 23 +12475 136 23 -238.58 2231.5 14 18 4 8 74 1 57 1 25 +12476 136 24 -232.54 2231.5 14 20 4 8 74 1 59 1 27 +12477 136 25 -226.5 2231.5 18 21 4 8 75 1 60 1 28 +12478 136 26 -220.46 2231.5 18 19 4 8 75 1 58 1 26 +12479 136 27 -214.42 2231.5 18 17 4 8 75 1 56 1 24 +12480 136 28 -208.38 2231.5 18 15 4 8 75 1 54 1 22 +12481 136 29 -202.34 2231.5 18 16 4 8 75 1 55 1 23 +12482 136 30 -196.3 2231.5 18 18 4 8 75 1 57 1 25 +12483 136 31 -190.26 2231.5 18 20 4 8 75 1 59 1 27 +12484 136 32 -184.22 2231.5 22 19 4 8 76 1 58 1 26 +12485 136 33 -178.18 2231.5 22 17 4 8 76 1 56 1 24 +12486 136 34 -172.14 2231.5 22 15 4 8 76 1 54 1 22 +12487 136 35 -166.1 2231.5 22 16 4 8 76 1 55 1 23 +12488 136 36 -160.06 2231.5 22 18 4 8 76 1 57 1 25 +12489 136 37 -154.02 2231.5 22 20 4 8 76 1 59 1 27 +12490 136 38 -147.98 2231.5 26 21 4 8 77 1 60 1 28 +12491 136 39 -141.94 2231.5 26 19 4 8 77 1 58 1 26 +12492 136 40 -135.9 2231.5 26 17 4 8 77 1 56 1 24 +12493 136 41 -129.86 2231.5 26 16 4 8 77 1 55 1 23 +12494 136 42 -123.82 2231.5 26 18 4 8 77 1 57 1 25 +12495 136 43 -117.78 2231.5 26 20 4 8 77 1 59 1 27 +12496 136 44 -111.74 2231.5 30 21 4 8 78 1 60 1 28 +12497 136 45 -105.7 2231.5 30 19 4 8 78 1 58 1 26 +12498 136 46 -99.66 2231.5 30 17 4 8 78 1 56 1 24 +12499 136 47 -93.62 2231.5 30 18 4 8 78 1 57 1 25 +12500 136 48 -87.58 2231.5 30 20 4 8 78 1 59 1 27 +12501 136 49 -81.54 2231.5 30 22 4 8 78 1 61 1 29 +12502 136 50 -75.5 2231.5 34 19 4 8 79 1 58 1 26 +12503 136 51 -69.46 2231.5 34 17 4 8 79 1 56 1 24 +12504 136 52 -63.42 2231.5 34 15 4 8 79 1 54 1 22 +12505 136 53 -57.38 2231.5 34 13 4 8 79 1 52 1 20 +12506 136 54 -51.34 2231.5 34 18 4 8 79 1 57 1 25 +12507 136 55 -45.3 2231.5 34 20 4 8 79 1 59 1 27 +12508 136 56 -39.26 2231.5 34 22 4 8 79 1 61 1 29 +12509 136 57 -33.22 2231.5 38 17 4 8 80 1 56 1 24 +12510 136 58 -27.18 2231.5 38 15 4 8 80 1 54 1 22 +12511 136 59 -21.14 2231.5 38 13 4 8 80 1 52 1 20 +12512 136 60 -15.1 2231.5 38 18 4 8 80 1 57 1 25 +12513 136 61 -9.06 2231.5 38 20 4 8 80 1 59 1 27 +12514 136 62 -3.02 2231.5 38 22 4 8 80 1 61 1 29 +12515 136 63 3.02 2231.5 42 21 4 8 81 1 60 1 28 +12516 136 64 9.06 2231.5 42 19 4 8 81 1 58 1 26 +12517 136 65 15.1 2231.5 42 17 4 8 81 1 56 1 24 +12518 136 66 21.14 2231.5 42 14 4 8 81 1 53 1 21 +12519 136 67 27.18 2231.5 42 16 4 8 81 1 55 1 23 +12520 136 68 33.22 2231.5 42 18 4 8 81 1 57 1 25 +12521 136 69 39.26 2231.5 46 21 4 8 82 1 60 1 28 +12522 136 70 45.3 2231.5 46 19 4 8 82 1 58 1 26 +12523 136 71 51.34 2231.5 46 17 4 8 82 1 56 1 24 +12524 136 72 57.38 2231.5 46 14 4 8 82 1 53 1 21 +12525 136 73 63.42 2231.5 46 16 4 8 82 1 55 1 23 +12526 136 74 69.46 2231.5 46 18 4 8 82 1 57 1 25 +12527 136 75 75.5 2231.5 46 20 4 8 82 1 59 1 27 +12528 136 76 81.54 2231.5 50 21 4 8 83 1 60 1 28 +12529 136 77 87.58 2231.5 50 19 4 8 83 1 58 1 26 +12530 136 78 93.62 2231.5 50 17 4 8 83 1 56 1 24 +12531 136 79 99.66 2231.5 50 18 4 8 83 1 57 1 25 +12532 136 80 105.7 2231.5 50 20 4 8 83 1 59 1 27 +12533 136 81 111.74 2231.5 50 22 4 8 83 1 61 1 29 +12534 136 82 117.78 2231.5 54 19 4 8 84 1 58 1 26 +12535 136 83 123.82 2231.5 54 17 4 8 84 1 56 1 24 +12536 136 84 129.86 2231.5 54 15 4 8 84 1 54 1 22 +12537 136 85 135.9 2231.5 54 18 4 8 84 1 57 1 25 +12538 136 86 141.94 2231.5 54 20 4 8 84 1 59 1 27 +12539 136 87 147.98 2231.5 54 22 4 8 84 1 61 1 29 +12540 136 88 154.02 2231.5 58 19 4 8 85 1 58 1 26 +12541 136 89 160.06 2231.5 58 17 4 8 85 1 56 1 24 +12542 136 90 166.1 2231.5 58 15 4 8 85 1 54 1 22 +12543 136 91 172.14 2231.5 58 16 4 8 85 1 55 1 23 +12544 136 92 178.18 2231.5 58 18 4 8 85 1 57 1 25 +12545 136 93 184.22 2231.5 58 20 4 8 85 1 59 1 27 +12546 136 94 190.26 2231.5 62 19 4 8 86 1 58 1 26 +12547 136 95 196.3 2231.5 62 17 4 8 86 1 56 1 24 +12548 136 96 202.34 2231.5 62 15 4 8 86 1 54 1 22 +12549 136 97 208.38 2231.5 62 16 4 8 86 1 55 1 23 +12550 136 98 214.42 2231.5 62 18 4 8 86 1 57 1 25 +12551 136 99 220.46 2231.5 62 20 4 8 86 1 59 1 27 +12552 136 100 226.5 2231.5 62 22 4 8 86 1 61 1 29 +12553 136 101 232.54 2231.5 66 19 4 8 87 1 58 1 26 +12554 136 102 238.58 2231.5 66 17 4 8 87 1 56 1 24 +12555 136 103 244.62 2231.5 66 15 4 8 87 1 54 1 22 +12556 136 104 250.66 2231.5 66 18 4 8 87 1 57 1 25 +12557 136 105 256.7 2231.5 66 20 4 8 87 1 59 1 27 +12558 136 106 262.74 2231.5 66 22 4 8 87 1 61 1 29 +12559 136 107 268.78 2231.5 70 21 4 8 88 1 60 1 28 +12560 136 108 274.82 2231.5 70 19 4 8 88 1 58 1 26 +12561 136 109 280.86 2231.5 70 17 4 8 88 1 56 1 24 +12562 136 110 286.9 2231.5 70 16 4 8 88 1 55 1 23 +12563 136 111 292.94 2231.5 70 18 4 8 88 1 57 1 25 +12564 136 112 298.98 2231.5 70 20 4 8 88 1 59 1 27 +12565 136 113 305.02 2231.5 74 19 4 8 89 1 58 1 26 +12566 136 114 311.06 2231.5 74 17 4 8 89 1 56 1 24 +12567 136 115 317.1 2231.5 74 15 4 8 89 1 54 1 22 +12568 136 116 323.14 2231.5 74 13 4 8 89 1 52 1 20 +12569 136 117 329.18 2231.5 74 18 4 8 89 1 57 1 25 +12570 136 118 335.22 2231.5 74 20 4 8 89 1 59 1 27 +12571 136 119 341.26 2231.5 74 22 4 8 89 1 61 1 29 +12572 136 120 347.3 2231.5 78 21 4 8 90 1 60 1 28 +12573 136 121 353.34 2231.5 78 19 4 8 90 1 58 1 26 +12574 136 122 359.38 2231.5 78 17 4 8 90 1 56 1 24 +12575 136 123 365.42 2231.5 78 16 4 8 90 1 55 1 23 +12576 136 124 371.46 2231.5 78 18 4 8 90 1 57 1 25 +12577 136 125 377.5 2231.5 78 20 4 8 90 1 59 1 27 +12578 137 0 -377.5 2246.5 2 25 4 8 71 1 64 2 0 +12579 137 1 -371.46 2246.5 2 23 4 8 71 1 62 1 30 +12580 137 2 -365.42 2246.5 2 21 4 8 71 1 60 1 28 +12581 137 3 -359.38 2246.5 2 24 4 8 71 1 63 1 31 +12582 137 4 -353.34 2246.5 2 26 4 8 71 1 65 2 1 +12583 137 5 -347.3 2246.5 2 28 4 8 71 1 67 2 3 +12584 137 6 -341.26 2246.5 6 27 4 8 72 1 66 2 2 +12585 137 7 -335.22 2246.5 6 25 4 8 72 1 64 2 0 +12586 137 8 -329.18 2246.5 6 23 4 8 72 1 62 1 30 +12587 137 9 -323.14 2246.5 6 22 4 8 72 1 61 1 29 +12588 137 10 -317.1 2246.5 6 24 4 8 72 1 63 1 31 +12589 137 11 -311.06 2246.5 6 26 4 8 72 1 65 2 1 +12590 137 12 -305.02 2246.5 10 27 4 8 73 1 66 2 2 +12591 137 13 -298.98 2246.5 10 25 4 8 73 1 64 2 0 +12592 137 14 -292.94 2246.5 10 23 4 8 73 1 62 1 30 +12593 137 15 -286.9 2246.5 10 21 4 8 73 1 60 1 28 +12594 137 16 -280.86 2246.5 10 24 4 8 73 1 63 1 31 +12595 137 17 -274.82 2246.5 10 26 4 8 73 1 65 2 1 +12596 137 18 -268.78 2246.5 10 28 4 8 73 1 67 2 3 +12597 137 19 -262.74 2246.5 14 27 4 8 74 1 66 2 2 +12598 137 20 -256.7 2246.5 14 25 4 8 74 1 64 2 0 +12599 137 21 -250.66 2246.5 14 23 4 8 74 1 62 1 30 +12600 137 22 -244.62 2246.5 14 22 4 8 74 1 61 1 29 +12601 137 23 -238.58 2246.5 14 24 4 8 74 1 63 1 31 +12602 137 24 -232.54 2246.5 14 26 4 8 74 1 65 2 1 +12603 137 25 -226.5 2246.5 18 27 4 8 75 1 66 2 2 +12604 137 26 -220.46 2246.5 18 25 4 8 75 1 64 2 0 +12605 137 27 -214.42 2246.5 18 23 4 8 75 1 62 1 30 +12606 137 28 -208.38 2246.5 18 22 4 8 75 1 61 1 29 +12607 137 29 -202.34 2246.5 18 24 4 8 75 1 63 1 31 +12608 137 30 -196.3 2246.5 18 26 4 8 75 1 65 2 1 +12609 137 31 -190.26 2246.5 22 27 4 8 76 1 66 2 2 +12610 137 32 -184.22 2246.5 22 25 4 8 76 1 64 2 0 +12611 137 33 -178.18 2246.5 22 23 4 8 76 1 62 1 30 +12612 137 34 -172.14 2246.5 22 21 4 8 76 1 60 1 28 +12613 137 35 -166.1 2246.5 22 22 4 8 76 1 61 1 29 +12614 137 36 -160.06 2246.5 22 24 4 8 76 1 63 1 31 +12615 137 37 -154.02 2246.5 22 26 4 8 76 1 65 2 1 +12616 137 38 -147.98 2246.5 26 27 4 8 77 1 66 2 2 +12617 137 39 -141.94 2246.5 26 25 4 8 77 1 64 2 0 +12618 137 40 -135.9 2246.5 26 23 4 8 77 1 62 1 30 +12619 137 41 -129.86 2246.5 26 22 4 8 77 1 61 1 29 +12620 137 42 -123.82 2246.5 26 24 4 8 77 1 63 1 31 +12621 137 43 -117.78 2246.5 26 26 4 8 77 1 65 2 1 +12622 137 44 -111.74 2246.5 30 27 4 8 78 1 66 2 2 +12623 137 45 -105.7 2246.5 30 25 4 8 78 1 64 2 0 +12624 137 46 -99.66 2246.5 30 23 4 8 78 1 62 1 30 +12625 137 47 -93.62 2246.5 30 24 4 8 78 1 63 1 31 +12626 137 48 -87.58 2246.5 30 26 4 8 78 1 65 2 1 +12627 137 49 -81.54 2246.5 30 28 4 8 78 1 67 2 3 +12628 137 50 -75.5 2246.5 34 27 4 8 79 1 66 2 2 +12629 137 51 -69.46 2246.5 34 25 4 8 79 1 64 2 0 +12630 137 52 -63.42 2246.5 34 23 4 8 79 1 62 1 30 +12631 137 53 -57.38 2246.5 34 21 4 8 79 1 60 1 28 +12632 137 54 -51.34 2246.5 34 24 4 8 79 1 63 1 31 +12633 137 55 -45.3 2246.5 34 26 4 8 79 1 65 2 1 +12634 137 56 -39.26 2246.5 34 28 4 8 79 1 67 2 3 +12635 137 57 -33.22 2246.5 38 23 4 8 80 1 62 1 30 +12636 137 58 -27.18 2246.5 38 21 4 8 80 1 60 1 28 +12637 137 59 -21.14 2246.5 38 19 4 8 80 1 58 1 26 +12638 137 60 -15.1 2246.5 38 24 4 8 80 1 63 1 31 +12639 137 61 -9.06 2246.5 38 26 4 8 80 1 65 2 1 +12640 137 62 -3.02 2246.5 38 28 4 8 80 1 67 2 3 +12641 137 63 3.02 2246.5 42 27 4 8 81 1 66 2 2 +12642 137 64 9.06 2246.5 42 25 4 8 81 1 64 2 0 +12643 137 65 15.1 2246.5 42 23 4 8 81 1 62 1 30 +12644 137 66 21.14 2246.5 42 20 4 8 81 1 59 1 27 +12645 137 67 27.18 2246.5 42 22 4 8 81 1 61 1 29 +12646 137 68 33.22 2246.5 42 24 4 8 81 1 63 1 31 +12647 137 69 39.26 2246.5 46 27 4 8 82 1 66 2 2 +12648 137 70 45.3 2246.5 46 25 4 8 82 1 64 2 0 +12649 137 71 51.34 2246.5 46 23 4 8 82 1 62 1 30 +12650 137 72 57.38 2246.5 46 22 4 8 82 1 61 1 29 +12651 137 73 63.42 2246.5 46 24 4 8 82 1 63 1 31 +12652 137 74 69.46 2246.5 46 26 4 8 82 1 65 2 1 +12653 137 75 75.5 2246.5 46 28 4 8 82 1 67 2 3 +12654 137 76 81.54 2246.5 50 27 4 8 83 1 66 2 2 +12655 137 77 87.58 2246.5 50 25 4 8 83 1 64 2 0 +12656 137 78 93.62 2246.5 50 23 4 8 83 1 62 1 30 +12657 137 79 99.66 2246.5 50 24 4 8 83 1 63 1 31 +12658 137 80 105.7 2246.5 50 26 4 8 83 1 65 2 1 +12659 137 81 111.74 2246.5 50 28 4 8 83 1 67 2 3 +12660 137 82 117.78 2246.5 54 25 4 8 84 1 64 2 0 +12661 137 83 123.82 2246.5 54 23 4 8 84 1 62 1 30 +12662 137 84 129.86 2246.5 54 21 4 8 84 1 60 1 28 +12663 137 85 135.9 2246.5 54 24 4 8 84 1 63 1 31 +12664 137 86 141.94 2246.5 54 26 4 8 84 1 65 2 1 +12665 137 87 147.98 2246.5 54 28 4 8 84 1 67 2 3 +12666 137 88 154.02 2246.5 58 25 4 8 85 1 64 2 0 +12667 137 89 160.06 2246.5 58 23 4 8 85 1 62 1 30 +12668 137 90 166.1 2246.5 58 21 4 8 85 1 60 1 28 +12669 137 91 172.14 2246.5 58 22 4 8 85 1 61 1 29 +12670 137 92 178.18 2246.5 58 24 4 8 85 1 63 1 31 +12671 137 93 184.22 2246.5 58 26 4 8 85 1 65 2 1 +12672 137 94 190.26 2246.5 58 28 4 8 85 1 67 2 3 +12673 137 95 196.3 2246.5 62 25 4 8 86 1 64 2 0 +12674 137 96 202.34 2246.5 62 23 4 8 86 1 62 1 30 +12675 137 97 208.38 2246.5 62 21 4 8 86 1 60 1 28 +12676 137 98 214.42 2246.5 62 24 4 8 86 1 63 1 31 +12677 137 99 220.46 2246.5 62 26 4 8 86 1 65 2 1 +12678 137 100 226.5 2246.5 62 28 4 8 86 1 67 2 3 +12679 137 101 232.54 2246.5 66 25 4 8 87 1 64 2 0 +12680 137 102 238.58 2246.5 66 23 4 8 87 1 62 1 30 +12681 137 103 244.62 2246.5 66 21 4 8 87 1 60 1 28 +12682 137 104 250.66 2246.5 66 24 4 8 87 1 63 1 31 +12683 137 105 256.7 2246.5 66 26 4 8 87 1 65 2 1 +12684 137 106 262.74 2246.5 66 28 4 8 87 1 67 2 3 +12685 137 107 268.78 2246.5 70 27 4 8 88 1 66 2 2 +12686 137 108 274.82 2246.5 70 25 4 8 88 1 64 2 0 +12687 137 109 280.86 2246.5 70 23 4 8 88 1 62 1 30 +12688 137 110 286.9 2246.5 70 22 4 8 88 1 61 1 29 +12689 137 111 292.94 2246.5 70 24 4 8 88 1 63 1 31 +12690 137 112 298.98 2246.5 70 26 4 8 88 1 65 2 1 +12691 137 113 305.02 2246.5 70 28 4 8 88 1 67 2 3 +12692 137 114 311.06 2246.5 74 25 4 8 89 1 64 2 0 +12693 137 115 317.1 2246.5 74 23 4 8 89 1 62 1 30 +12694 137 116 323.14 2246.5 74 21 4 8 89 1 60 1 28 +12695 137 117 329.18 2246.5 74 24 4 8 89 1 63 1 31 +12696 137 118 335.22 2246.5 74 26 4 8 89 1 65 2 1 +12697 137 119 341.26 2246.5 74 28 4 8 89 1 67 2 3 +12698 137 120 347.3 2246.5 78 27 4 8 90 1 66 2 2 +12699 137 121 353.34 2246.5 78 25 4 8 90 1 64 2 0 +12700 137 122 359.38 2246.5 78 23 4 8 90 1 62 1 30 +12701 137 123 365.42 2246.5 78 22 4 8 90 1 61 1 29 +12702 137 124 371.46 2246.5 78 24 4 8 90 1 63 1 31 +12703 137 125 377.5 2246.5 78 26 4 8 90 1 65 2 1 +12704 138 0 -383.54 2261.5 2 33 4 8 71 1 72 2 8 +12705 138 1 -377.5 2261.5 2 31 4 8 71 1 70 2 6 +12706 138 2 -371.46 2261.5 2 29 4 8 71 1 68 2 4 +12707 138 3 -365.42 2261.5 2 27 4 8 71 1 66 2 2 +12708 138 4 -359.38 2261.5 2 30 4 8 71 1 69 2 5 +12709 138 5 -353.34 2261.5 2 32 4 8 71 1 71 2 7 +12710 138 6 -347.3 2261.5 2 34 4 8 71 1 73 2 9 +12711 138 7 -341.26 2261.5 6 33 4 8 72 1 72 2 8 +12712 138 8 -335.22 2261.5 6 31 4 8 72 1 70 2 6 +12713 138 9 -329.18 2261.5 6 29 4 8 72 1 68 2 4 +12714 138 10 -323.14 2261.5 6 28 4 8 72 1 67 2 3 +12715 138 11 -317.1 2261.5 6 30 4 8 72 1 69 2 5 +12716 138 12 -311.06 2261.5 6 32 4 8 72 1 71 2 7 +12717 138 13 -305.02 2261.5 10 33 4 8 73 1 72 2 8 +12718 138 14 -298.98 2261.5 10 31 4 8 73 1 70 2 6 +12719 138 15 -292.94 2261.5 10 29 4 8 73 1 68 2 4 +12720 138 16 -286.9 2261.5 10 30 4 8 73 1 69 2 5 +12721 138 17 -280.86 2261.5 10 32 4 8 73 1 71 2 7 +12722 138 18 -274.82 2261.5 10 34 4 8 73 1 73 2 9 +12723 138 19 -268.78 2261.5 14 33 4 8 74 1 72 2 8 +12724 138 20 -262.74 2261.5 14 31 4 8 74 1 70 2 6 +12725 138 21 -256.7 2261.5 14 29 4 8 74 1 68 2 4 +12726 138 22 -250.66 2261.5 14 28 4 8 74 1 67 2 3 +12727 138 23 -244.62 2261.5 14 30 4 8 74 1 69 2 5 +12728 138 24 -238.58 2261.5 14 32 4 8 74 1 71 2 7 +12729 138 25 -232.54 2261.5 14 34 4 8 74 1 73 2 9 +12730 138 26 -226.5 2261.5 18 33 4 8 75 1 72 2 8 +12731 138 27 -220.46 2261.5 18 31 4 8 75 1 70 2 6 +12732 138 28 -214.42 2261.5 18 29 4 8 75 1 68 2 4 +12733 138 29 -208.38 2261.5 18 28 4 8 75 1 67 2 3 +12734 138 30 -202.34 2261.5 18 30 4 8 75 1 69 2 5 +12735 138 31 -196.3 2261.5 18 32 4 8 75 1 71 2 7 +12736 138 32 -190.26 2261.5 22 33 4 8 76 1 72 2 8 +12737 138 33 -184.22 2261.5 22 31 4 8 76 1 70 2 6 +12738 138 34 -178.18 2261.5 22 29 4 8 76 1 68 2 4 +12739 138 35 -172.14 2261.5 22 28 4 8 76 1 67 2 3 +12740 138 36 -166.1 2261.5 22 30 4 8 76 1 69 2 5 +12741 138 37 -160.06 2261.5 22 32 4 8 76 1 71 2 7 +12742 138 38 -154.02 2261.5 22 34 4 8 76 1 73 2 9 +12743 138 39 -147.98 2261.5 26 33 4 8 77 1 72 2 8 +12744 138 40 -141.94 2261.5 26 31 4 8 77 1 70 2 6 +12745 138 41 -135.9 2261.5 26 29 4 8 77 1 68 2 4 +12746 138 42 -129.86 2261.5 26 28 4 8 77 1 67 2 3 +12747 138 43 -123.82 2261.5 26 30 4 8 77 1 69 2 5 +12748 138 44 -117.78 2261.5 26 32 4 8 77 1 71 2 7 +12749 138 45 -111.74 2261.5 30 33 4 8 78 1 72 2 8 +12750 138 46 -105.7 2261.5 30 31 4 8 78 1 70 2 6 +12751 138 47 -99.66 2261.5 30 29 4 8 78 1 68 2 4 +12752 138 48 -93.62 2261.5 30 30 4 8 78 1 69 2 5 +12753 138 49 -87.58 2261.5 30 32 4 8 78 1 71 2 7 +12754 138 50 -81.54 2261.5 30 34 4 8 78 1 73 2 9 +12755 138 51 -75.5 2261.5 34 33 4 8 79 1 72 2 8 +12756 138 52 -69.46 2261.5 34 31 4 8 79 1 70 2 6 +12757 138 53 -63.42 2261.5 34 29 4 8 79 1 68 2 4 +12758 138 54 -57.38 2261.5 34 30 4 8 79 1 69 2 5 +12759 138 55 -51.34 2261.5 34 32 4 8 79 1 71 2 7 +12760 138 56 -45.3 2261.5 34 34 4 8 79 1 73 2 9 +12761 138 57 -39.26 2261.5 38 31 4 8 80 1 70 2 6 +12762 138 58 -33.22 2261.5 38 29 4 8 80 1 68 2 4 +12763 138 59 -27.18 2261.5 38 27 4 8 80 1 66 2 2 +12764 138 60 -21.14 2261.5 38 25 4 8 80 1 64 2 0 +12765 138 61 -15.1 2261.5 38 30 4 8 80 1 69 2 5 +12766 138 62 -9.06 2261.5 38 32 4 8 80 1 71 2 7 +12767 138 63 -3.02 2261.5 38 34 4 8 80 1 73 2 9 +12768 138 64 3.02 2261.5 42 33 4 8 81 1 72 2 8 +12769 138 65 9.06 2261.5 42 31 4 8 81 1 70 2 6 +12770 138 66 15.1 2261.5 42 29 4 8 81 1 68 2 4 +12771 138 67 21.14 2261.5 42 26 4 8 81 1 65 2 1 +12772 138 68 27.18 2261.5 42 28 4 8 81 1 67 2 3 +12773 138 69 33.22 2261.5 42 30 4 8 81 1 69 2 5 +12774 138 70 39.26 2261.5 42 32 4 8 81 1 71 2 7 +12775 138 71 45.3 2261.5 46 33 4 8 82 1 72 2 8 +12776 138 72 51.34 2261.5 46 31 4 8 82 1 70 2 6 +12777 138 73 57.38 2261.5 46 29 4 8 82 1 68 2 4 +12778 138 74 63.42 2261.5 46 30 4 8 82 1 69 2 5 +12779 138 75 69.46 2261.5 46 32 4 8 82 1 71 2 7 +12780 138 76 75.5 2261.5 46 34 4 8 82 1 73 2 9 +12781 138 77 81.54 2261.5 50 33 4 8 83 1 72 2 8 +12782 138 78 87.58 2261.5 50 31 4 8 83 1 70 2 6 +12783 138 79 93.62 2261.5 50 29 4 8 83 1 68 2 4 +12784 138 80 99.66 2261.5 50 30 4 8 83 1 69 2 5 +12785 138 81 105.7 2261.5 50 32 4 8 83 1 71 2 7 +12786 138 82 111.74 2261.5 50 34 4 8 83 1 73 2 9 +12787 138 83 117.78 2261.5 54 31 4 8 84 1 70 2 6 +12788 138 84 123.82 2261.5 54 29 4 8 84 1 68 2 4 +12789 138 85 129.86 2261.5 54 27 4 8 84 1 66 2 2 +12790 138 86 135.9 2261.5 54 30 4 8 84 1 69 2 5 +12791 138 87 141.94 2261.5 54 32 4 8 84 1 71 2 7 +12792 138 88 147.98 2261.5 54 34 4 8 84 1 73 2 9 +12793 138 89 154.02 2261.5 58 33 4 8 85 1 72 2 8 +12794 138 90 160.06 2261.5 58 31 4 8 85 1 70 2 6 +12795 138 91 166.1 2261.5 58 29 4 8 85 1 68 2 4 +12796 138 92 172.14 2261.5 58 27 4 8 85 1 66 2 2 +12797 138 93 178.18 2261.5 58 30 4 8 85 1 69 2 5 +12798 138 94 184.22 2261.5 58 32 4 8 85 1 71 2 7 +12799 138 95 190.26 2261.5 58 34 4 8 85 1 73 2 9 +12800 138 96 196.3 2261.5 62 31 4 8 86 1 70 2 6 +12801 138 97 202.34 2261.5 62 29 4 8 86 1 68 2 4 +12802 138 98 208.38 2261.5 62 27 4 8 86 1 66 2 2 +12803 138 99 214.42 2261.5 62 30 4 8 86 1 69 2 5 +12804 138 100 220.46 2261.5 62 32 4 8 86 1 71 2 7 +12805 138 101 226.5 2261.5 62 34 4 8 86 1 73 2 9 +12806 138 102 232.54 2261.5 66 33 4 8 87 1 72 2 8 +12807 138 103 238.58 2261.5 66 31 4 8 87 1 70 2 6 +12808 138 104 244.62 2261.5 66 29 4 8 87 1 68 2 4 +12809 138 105 250.66 2261.5 66 27 4 8 87 1 66 2 2 +12810 138 106 256.7 2261.5 66 30 4 8 87 1 69 2 5 +12811 138 107 262.74 2261.5 66 32 4 8 87 1 71 2 7 +12812 138 108 268.78 2261.5 66 34 4 8 87 1 73 2 9 +12813 138 109 274.82 2261.5 70 33 4 8 88 1 72 2 8 +12814 138 110 280.86 2261.5 70 31 4 8 88 1 70 2 6 +12815 138 111 286.9 2261.5 70 29 4 8 88 1 68 2 4 +12816 138 112 292.94 2261.5 70 30 4 8 88 1 69 2 5 +12817 138 113 298.98 2261.5 70 32 4 8 88 1 71 2 7 +12818 138 114 305.02 2261.5 70 34 4 8 88 1 73 2 9 +12819 138 115 311.06 2261.5 74 31 4 8 89 1 70 2 6 +12820 138 116 317.1 2261.5 74 29 4 8 89 1 68 2 4 +12821 138 117 323.14 2261.5 74 27 4 8 89 1 66 2 2 +12822 138 118 329.18 2261.5 74 30 4 8 89 1 69 2 5 +12823 138 119 335.22 2261.5 74 32 4 8 89 1 71 2 7 +12824 138 120 341.26 2261.5 74 34 4 8 89 1 73 2 9 +12825 138 121 347.3 2261.5 78 33 4 8 90 1 72 2 8 +12826 138 122 353.34 2261.5 78 31 4 8 90 1 70 2 6 +12827 138 123 359.38 2261.5 78 29 4 8 90 1 68 2 4 +12828 138 124 365.42 2261.5 78 28 4 8 90 1 67 2 3 +12829 138 125 371.46 2261.5 78 30 4 8 90 1 69 2 5 +12830 138 126 377.5 2261.5 78 32 4 8 90 1 71 2 7 +12831 138 127 383.54 2261.5 78 34 4 8 90 1 73 2 9 +12832 139 0 -383.54 2276.5 2 39 4 8 71 1 78 2 14 +12833 139 1 -377.5 2276.5 2 37 4 8 71 1 76 2 12 +12834 139 2 -371.46 2276.5 2 35 4 8 71 1 74 2 10 +12835 139 3 -365.42 2276.5 2 36 4 8 71 1 75 2 11 +12836 139 4 -359.38 2276.5 2 38 4 8 71 1 77 2 13 +12837 139 5 -353.34 2276.5 2 40 4 8 71 1 79 2 15 +12838 139 6 -347.3 2276.5 6 39 4 8 72 1 78 2 14 +12839 139 7 -341.26 2276.5 6 37 4 8 72 1 76 2 12 +12840 139 8 -335.22 2276.5 6 35 4 8 72 1 74 2 10 +12841 139 9 -329.18 2276.5 6 34 4 8 72 1 73 2 9 +12842 139 10 -323.14 2276.5 6 36 4 8 72 1 75 2 11 +12843 139 11 -317.1 2276.5 6 38 4 8 72 1 77 2 13 +12844 139 12 -311.06 2276.5 6 40 4 8 72 1 79 2 15 +12845 139 13 -305.02 2276.5 10 39 4 8 73 1 78 2 14 +12846 139 14 -298.98 2276.5 10 37 4 8 73 1 76 2 12 +12847 139 15 -292.94 2276.5 10 35 4 8 73 1 74 2 10 +12848 139 16 -286.9 2276.5 10 36 4 8 73 1 75 2 11 +12849 139 17 -280.86 2276.5 10 38 4 8 73 1 77 2 13 +12850 139 18 -274.82 2276.5 10 40 4 8 73 1 79 2 15 +12851 139 19 -268.78 2276.5 14 39 4 8 74 1 78 2 14 +12852 139 20 -262.74 2276.5 14 37 4 8 74 1 76 2 12 +12853 139 21 -256.7 2276.5 14 35 4 8 74 1 74 2 10 +12854 139 22 -250.66 2276.5 14 36 4 8 74 1 75 2 11 +12855 139 23 -244.62 2276.5 14 38 4 8 74 1 77 2 13 +12856 139 24 -238.58 2276.5 14 40 4 8 74 1 79 2 15 +12857 139 25 -232.54 2276.5 18 39 4 8 75 1 78 2 14 +12858 139 26 -226.5 2276.5 18 37 4 8 75 1 76 2 12 +12859 139 27 -220.46 2276.5 18 35 4 8 75 1 74 2 10 +12860 139 28 -214.42 2276.5 18 34 4 8 75 1 73 2 9 +12861 139 29 -208.38 2276.5 18 36 4 8 75 1 75 2 11 +12862 139 30 -202.34 2276.5 18 38 4 8 75 1 77 2 13 +12863 139 31 -196.3 2276.5 18 40 4 8 75 1 79 2 15 +12864 139 32 -190.26 2276.5 22 39 4 8 76 1 78 2 14 +12865 139 33 -184.22 2276.5 22 37 4 8 76 1 76 2 12 +12866 139 34 -178.18 2276.5 22 35 4 8 76 1 74 2 10 +12867 139 35 -172.14 2276.5 22 36 4 8 76 1 75 2 11 +12868 139 36 -166.1 2276.5 22 38 4 8 76 1 77 2 13 +12869 139 37 -160.06 2276.5 22 40 4 8 76 1 79 2 15 +12870 139 38 -154.02 2276.5 26 39 4 8 77 1 78 2 14 +12871 139 39 -147.98 2276.5 26 37 4 8 77 1 76 2 12 +12872 139 40 -141.94 2276.5 26 35 4 8 77 1 74 2 10 +12873 139 41 -135.9 2276.5 26 34 4 8 77 1 73 2 9 +12874 139 42 -129.86 2276.5 26 36 4 8 77 1 75 2 11 +12875 139 43 -123.82 2276.5 26 38 4 8 77 1 77 2 13 +12876 139 44 -117.78 2276.5 26 40 4 8 77 1 79 2 15 +12877 139 45 -111.74 2276.5 30 39 4 8 78 1 78 2 14 +12878 139 46 -105.7 2276.5 30 37 4 8 78 1 76 2 12 +12879 139 47 -99.66 2276.5 30 35 4 8 78 1 74 2 10 +12880 139 48 -93.62 2276.5 30 36 4 8 78 1 75 2 11 +12881 139 49 -87.58 2276.5 30 38 4 8 78 1 77 2 13 +12882 139 50 -81.54 2276.5 30 40 4 8 78 1 79 2 15 +12883 139 51 -75.5 2276.5 34 39 4 8 79 1 78 2 14 +12884 139 52 -69.46 2276.5 34 37 4 8 79 1 76 2 12 +12885 139 53 -63.42 2276.5 34 35 4 8 79 1 74 2 10 +12886 139 54 -57.38 2276.5 34 36 4 8 79 1 75 2 11 +12887 139 55 -51.34 2276.5 34 38 4 8 79 1 77 2 13 +12888 139 56 -45.3 2276.5 34 40 4 8 79 1 79 2 15 +12889 139 57 -39.26 2276.5 38 39 4 8 80 1 78 2 14 +12890 139 58 -33.22 2276.5 38 37 4 8 80 1 76 2 12 +12891 139 59 -27.18 2276.5 38 35 4 8 80 1 74 2 10 +12892 139 60 -21.14 2276.5 38 33 4 8 80 1 72 2 8 +12893 139 61 -15.1 2276.5 38 36 4 8 80 1 75 2 11 +12894 139 62 -9.06 2276.5 38 38 4 8 80 1 77 2 13 +12895 139 63 -3.02 2276.5 38 40 4 8 80 1 79 2 15 +12896 139 64 3.02 2276.5 42 39 4 8 81 1 78 2 14 +12897 139 65 9.06 2276.5 42 37 4 8 81 1 76 2 12 +12898 139 66 15.1 2276.5 42 35 4 8 81 1 74 2 10 +12899 139 67 21.14 2276.5 42 34 4 8 81 1 73 2 9 +12900 139 68 27.18 2276.5 42 36 4 8 81 1 75 2 11 +12901 139 69 33.22 2276.5 42 38 4 8 81 1 77 2 13 +12902 139 70 39.26 2276.5 42 40 4 8 81 1 79 2 15 +12903 139 71 45.3 2276.5 46 39 4 8 82 1 78 2 14 +12904 139 72 51.34 2276.5 46 37 4 8 82 1 76 2 12 +12905 139 73 57.38 2276.5 46 35 4 8 82 1 74 2 10 +12906 139 74 63.42 2276.5 46 36 4 8 82 1 75 2 11 +12907 139 75 69.46 2276.5 46 38 4 8 82 1 77 2 13 +12908 139 76 75.5 2276.5 46 40 4 8 82 1 79 2 15 +12909 139 77 81.54 2276.5 50 39 4 8 83 1 78 2 14 +12910 139 78 87.58 2276.5 50 37 4 8 83 1 76 2 12 +12911 139 79 93.62 2276.5 50 35 4 8 83 1 74 2 10 +12912 139 80 99.66 2276.5 50 36 4 8 83 1 75 2 11 +12913 139 81 105.7 2276.5 50 38 4 8 83 1 77 2 13 +12914 139 82 111.74 2276.5 50 40 4 8 83 1 79 2 15 +12915 139 83 117.78 2276.5 54 39 4 8 84 1 78 2 14 +12916 139 84 123.82 2276.5 54 37 4 8 84 1 76 2 12 +12917 139 85 129.86 2276.5 54 35 4 8 84 1 74 2 10 +12918 139 86 135.9 2276.5 54 33 4 8 84 1 72 2 8 +12919 139 87 141.94 2276.5 54 36 4 8 84 1 75 2 11 +12920 139 88 147.98 2276.5 54 38 4 8 84 1 77 2 13 +12921 139 89 154.02 2276.5 54 40 4 8 84 1 79 2 15 +12922 139 90 160.06 2276.5 58 39 4 8 85 1 78 2 14 +12923 139 91 166.1 2276.5 58 37 4 8 85 1 76 2 12 +12924 139 92 172.14 2276.5 58 35 4 8 85 1 74 2 10 +12925 139 93 178.18 2276.5 58 36 4 8 85 1 75 2 11 +12926 139 94 184.22 2276.5 58 38 4 8 85 1 77 2 13 +12927 139 95 190.26 2276.5 58 40 4 8 85 1 79 2 15 +12928 139 96 196.3 2276.5 62 39 4 8 86 1 78 2 14 +12929 139 97 202.34 2276.5 62 37 4 8 86 1 76 2 12 +12930 139 98 208.38 2276.5 62 35 4 8 86 1 74 2 10 +12931 139 99 214.42 2276.5 62 33 4 8 86 1 72 2 8 +12932 139 100 220.46 2276.5 62 36 4 8 86 1 75 2 11 +12933 139 101 226.5 2276.5 62 38 4 8 86 1 77 2 13 +12934 139 102 232.54 2276.5 62 40 4 8 86 1 79 2 15 +12935 139 103 238.58 2276.5 66 39 4 8 87 1 78 2 14 +12936 139 104 244.62 2276.5 66 37 4 8 87 1 76 2 12 +12937 139 105 250.66 2276.5 66 35 4 8 87 1 74 2 10 +12938 139 106 256.7 2276.5 66 36 4 8 87 1 75 2 11 +12939 139 107 262.74 2276.5 66 38 4 8 87 1 77 2 13 +12940 139 108 268.78 2276.5 66 40 4 8 87 1 79 2 15 +12941 139 109 274.82 2276.5 70 39 4 8 88 1 78 2 14 +12942 139 110 280.86 2276.5 70 37 4 8 88 1 76 2 12 +12943 139 111 286.9 2276.5 70 35 4 8 88 1 74 2 10 +12944 139 112 292.94 2276.5 70 36 4 8 88 1 75 2 11 +12945 139 113 298.98 2276.5 70 38 4 8 88 1 77 2 13 +12946 139 114 305.02 2276.5 70 40 4 8 88 1 79 2 15 +12947 139 115 311.06 2276.5 74 39 4 8 89 1 78 2 14 +12948 139 116 317.1 2276.5 74 37 4 8 89 1 76 2 12 +12949 139 117 323.14 2276.5 74 35 4 8 89 1 74 2 10 +12950 139 118 329.18 2276.5 74 33 4 8 89 1 72 2 8 +12951 139 119 335.22 2276.5 74 36 4 8 89 1 75 2 11 +12952 139 120 341.26 2276.5 74 38 4 8 89 1 77 2 13 +12953 139 121 347.3 2276.5 74 40 4 8 89 1 79 2 15 +12954 139 122 353.34 2276.5 78 39 4 8 90 1 78 2 14 +12955 139 123 359.38 2276.5 78 37 4 8 90 1 76 2 12 +12956 139 124 365.42 2276.5 78 35 4 8 90 1 74 2 10 +12957 139 125 371.46 2276.5 78 36 4 8 90 1 75 2 11 +12958 139 126 377.5 2276.5 78 38 4 8 90 1 77 2 13 +12959 139 127 383.54 2276.5 78 40 4 8 90 1 79 2 15 +12960 140 0 -385.445 2291.5 3 5 4 9 71 2 84 2 20 +12961 140 1 -379.375 2291.5 3 3 4 9 71 2 82 2 18 +12962 140 2 -373.305 2291.5 3 1 4 9 71 2 80 2 16 +12963 140 3 -367.235 2291.5 3 2 4 9 71 2 81 2 17 +12964 140 4 -361.165 2291.5 3 4 4 9 71 2 83 2 19 +12965 140 5 -355.095 2291.5 3 6 4 9 71 2 85 2 21 +12966 140 6 -349.025 2291.5 7 7 4 9 72 2 86 2 22 +12967 140 7 -342.955 2291.5 7 5 4 9 72 2 84 2 20 +12968 140 8 -336.885 2291.5 7 3 4 9 72 2 82 2 18 +12969 140 9 -330.815 2291.5 7 1 4 9 72 2 80 2 16 +12970 140 10 -324.745 2291.5 7 2 4 9 72 2 81 2 17 +12971 140 11 -318.675 2291.5 7 4 4 9 72 2 83 2 19 +12972 140 12 -312.605 2291.5 7 6 4 9 72 2 85 2 21 +12973 140 13 -306.535 2291.5 11 5 4 9 73 2 84 2 20 +12974 140 14 -300.465 2291.5 11 3 4 9 73 2 82 2 18 +12975 140 15 -294.395 2291.5 11 1 4 9 73 2 80 2 16 +12976 140 16 -288.325 2291.5 11 2 4 9 73 2 81 2 17 +12977 140 17 -282.255 2291.5 11 4 4 9 73 2 83 2 19 +12978 140 18 -276.185 2291.5 11 6 4 9 73 2 85 2 21 +12979 140 19 -270.115 2291.5 15 5 4 9 74 2 84 2 20 +12980 140 20 -264.045 2291.5 15 3 4 9 74 2 82 2 18 +12981 140 21 -257.975 2291.5 15 1 4 9 74 2 80 2 16 +12982 140 22 -251.905 2291.5 15 2 4 9 74 2 81 2 17 +12983 140 23 -245.835 2291.5 15 4 4 9 74 2 83 2 19 +12984 140 24 -239.765 2291.5 15 6 4 9 74 2 85 2 21 +12985 140 25 -233.695 2291.5 19 7 4 9 75 2 86 2 22 +12986 140 26 -227.625 2291.5 19 5 4 9 75 2 84 2 20 +12987 140 27 -221.555 2291.5 19 3 4 9 75 2 82 2 18 +12988 140 28 -215.485 2291.5 19 1 4 9 75 2 80 2 16 +12989 140 29 -209.415 2291.5 19 2 4 9 75 2 81 2 17 +12990 140 30 -203.345 2291.5 19 4 4 9 75 2 83 2 19 +12991 140 31 -197.275 2291.5 19 6 4 9 75 2 85 2 21 +12992 140 32 -191.205 2291.5 23 5 4 9 76 2 84 2 20 +12993 140 33 -185.135 2291.5 23 3 4 9 76 2 82 2 18 +12994 140 34 -179.065 2291.5 23 1 4 9 76 2 80 2 16 +12995 140 35 -172.995 2291.5 23 2 4 9 76 2 81 2 17 +12996 140 36 -166.925 2291.5 23 4 4 9 76 2 83 2 19 +12997 140 37 -160.855 2291.5 23 6 4 9 76 2 85 2 21 +12998 140 38 -154.785 2291.5 27 7 4 9 77 2 86 2 22 +12999 140 39 -148.715 2291.5 27 5 4 9 77 2 84 2 20 +13000 140 40 -142.645 2291.5 27 3 4 9 77 2 82 2 18 +13001 140 41 -136.575 2291.5 27 1 4 9 77 2 80 2 16 +13002 140 42 -130.505 2291.5 27 2 4 9 77 2 81 2 17 +13003 140 43 -124.435 2291.5 27 4 4 9 77 2 83 2 19 +13004 140 44 -118.365 2291.5 27 6 4 9 77 2 85 2 21 +13005 140 45 -112.295 2291.5 31 5 4 9 78 2 84 2 20 +13006 140 46 -106.225 2291.5 31 3 4 9 78 2 82 2 18 +13007 140 47 -100.155 2291.5 31 1 4 9 78 2 80 2 16 +13008 140 48 -94.085 2291.5 31 2 4 9 78 2 81 2 17 +13009 140 49 -88.015 2291.5 31 4 4 9 78 2 83 2 19 +13010 140 50 -81.945 2291.5 31 6 4 9 78 2 85 2 21 +13011 140 51 -75.875 2291.5 35 7 4 9 79 2 86 2 22 +13012 140 52 -69.805 2291.5 35 5 4 9 79 2 84 2 20 +13013 140 53 -63.735 2291.5 35 3 4 9 79 2 82 2 18 +13014 140 54 -57.665 2291.5 35 1 4 9 79 2 80 2 16 +13015 140 55 -51.595 2291.5 35 2 4 9 79 2 81 2 17 +13016 140 56 -45.525 2291.5 35 4 4 9 79 2 83 2 19 +13017 140 57 -39.455 2291.5 35 6 4 9 79 2 85 2 21 +13018 140 58 -33.385 2291.5 39 5 4 9 80 2 84 2 20 +13019 140 59 -27.315 2291.5 39 3 4 9 80 2 82 2 18 +13020 140 60 -21.245 2291.5 39 1 4 9 80 2 80 2 16 +13021 140 61 -15.175 2291.5 39 2 4 9 80 2 81 2 17 +13022 140 62 -9.105 2291.5 39 4 4 9 80 2 83 2 19 +13023 140 63 -3.035 2291.5 39 6 4 9 80 2 85 2 21 +13024 140 64 3.035 2291.5 43 5 4 9 81 2 84 2 20 +13025 140 65 9.105 2291.5 43 3 4 9 81 2 82 2 18 +13026 140 66 15.175 2291.5 43 1 4 9 81 2 80 2 16 +13027 140 67 21.245 2291.5 43 2 4 9 81 2 81 2 17 +13028 140 68 27.315 2291.5 43 4 4 9 81 2 83 2 19 +13029 140 69 33.385 2291.5 43 6 4 9 81 2 85 2 21 +13030 140 70 39.455 2291.5 47 5 4 9 82 2 84 2 20 +13031 140 71 45.525 2291.5 47 3 4 9 82 2 82 2 18 +13032 140 72 51.595 2291.5 47 1 4 9 82 2 80 2 16 +13033 140 73 57.665 2291.5 47 2 4 9 82 2 81 2 17 +13034 140 74 63.735 2291.5 47 4 4 9 82 2 83 2 19 +13035 140 75 69.805 2291.5 47 6 4 9 82 2 85 2 21 +13036 140 76 75.875 2291.5 47 8 4 9 82 2 87 2 23 +13037 140 77 81.945 2291.5 51 5 4 9 83 2 84 2 20 +13038 140 78 88.015 2291.5 51 3 4 9 83 2 82 2 18 +13039 140 79 94.085 2291.5 51 1 4 9 83 2 80 2 16 +13040 140 80 100.155 2291.5 51 2 4 9 83 2 81 2 17 +13041 140 81 106.225 2291.5 51 4 4 9 83 2 83 2 19 +13042 140 82 112.295 2291.5 51 6 4 9 83 2 85 2 21 +13043 140 83 118.365 2291.5 55 5 4 9 84 2 84 2 20 +13044 140 84 124.435 2291.5 55 3 4 9 84 2 82 2 18 +13045 140 85 130.505 2291.5 55 1 4 9 84 2 80 2 16 +13046 140 86 136.575 2291.5 55 2 4 9 84 2 81 2 17 +13047 140 87 142.645 2291.5 55 4 4 9 84 2 83 2 19 +13048 140 88 148.715 2291.5 55 6 4 9 84 2 85 2 21 +13049 140 89 154.785 2291.5 55 8 4 9 84 2 87 2 23 +13050 140 90 160.855 2291.5 59 5 4 9 85 2 84 2 20 +13051 140 91 166.925 2291.5 59 3 4 9 85 2 82 2 18 +13052 140 92 172.995 2291.5 59 1 4 9 85 2 80 2 16 +13053 140 93 179.065 2291.5 59 2 4 9 85 2 81 2 17 +13054 140 94 185.135 2291.5 59 4 4 9 85 2 83 2 19 +13055 140 95 191.205 2291.5 59 6 4 9 85 2 85 2 21 +13056 140 96 197.275 2291.5 63 5 4 9 86 2 84 2 20 +13057 140 97 203.345 2291.5 63 3 4 9 86 2 82 2 18 +13058 140 98 209.415 2291.5 63 1 4 9 86 2 80 2 16 +13059 140 99 215.485 2291.5 63 2 4 9 86 2 81 2 17 +13060 140 100 221.555 2291.5 63 4 4 9 86 2 83 2 19 +13061 140 101 227.625 2291.5 63 6 4 9 86 2 85 2 21 +13062 140 102 233.695 2291.5 63 8 4 9 86 2 87 2 23 +13063 140 103 239.765 2291.5 67 5 4 9 87 2 84 2 20 +13064 140 104 245.835 2291.5 67 3 4 9 87 2 82 2 18 +13065 140 105 251.905 2291.5 67 1 4 9 87 2 80 2 16 +13066 140 106 257.975 2291.5 67 2 4 9 87 2 81 2 17 +13067 140 107 264.045 2291.5 67 4 4 9 87 2 83 2 19 +13068 140 108 270.115 2291.5 67 6 4 9 87 2 85 2 21 +13069 140 109 276.185 2291.5 71 5 4 9 88 2 84 2 20 +13070 140 110 282.255 2291.5 71 3 4 9 88 2 82 2 18 +13071 140 111 288.325 2291.5 71 1 4 9 88 2 80 2 16 +13072 140 112 294.395 2291.5 71 2 4 9 88 2 81 2 17 +13073 140 113 300.465 2291.5 71 4 4 9 88 2 83 2 19 +13074 140 114 306.535 2291.5 71 6 4 9 88 2 85 2 21 +13075 140 115 312.605 2291.5 75 5 4 9 89 2 84 2 20 +13076 140 116 318.675 2291.5 75 3 4 9 89 2 82 2 18 +13077 140 117 324.745 2291.5 75 1 4 9 89 2 80 2 16 +13078 140 118 330.815 2291.5 75 2 4 9 89 2 81 2 17 +13079 140 119 336.885 2291.5 75 4 4 9 89 2 83 2 19 +13080 140 120 342.955 2291.5 75 6 4 9 89 2 85 2 21 +13081 140 121 349.025 2291.5 75 8 4 9 89 2 87 2 23 +13082 140 122 355.095 2291.5 79 5 4 9 90 2 84 2 20 +13083 140 123 361.165 2291.5 79 3 4 9 90 2 82 2 18 +13084 140 124 367.235 2291.5 79 1 4 9 90 2 80 2 16 +13085 140 125 373.305 2291.5 79 2 4 9 90 2 81 2 17 +13086 140 126 379.375 2291.5 79 4 4 9 90 2 83 2 19 +13087 140 127 385.445 2291.5 79 6 4 9 90 2 85 2 21 +13088 141 0 -391.515 2306.5 3 11 4 9 71 2 90 2 26 +13089 141 1 -385.445 2306.5 3 9 4 9 71 2 88 2 24 +13090 141 2 -379.375 2306.5 3 7 4 9 71 2 86 2 22 +13091 141 3 -373.305 2306.5 3 8 4 9 71 2 87 2 23 +13092 141 4 -367.235 2306.5 3 10 4 9 71 2 89 2 25 +13093 141 5 -361.165 2306.5 3 12 4 9 71 2 91 2 27 +13094 141 6 -355.095 2306.5 3 14 4 9 71 2 93 2 29 +13095 141 7 -349.025 2306.5 7 13 4 9 72 2 92 2 28 +13096 141 8 -342.955 2306.5 7 11 4 9 72 2 90 2 26 +13097 141 9 -336.885 2306.5 7 9 4 9 72 2 88 2 24 +13098 141 10 -330.815 2306.5 7 8 4 9 72 2 87 2 23 +13099 141 11 -324.745 2306.5 7 10 4 9 72 2 89 2 25 +13100 141 12 -318.675 2306.5 7 12 4 9 72 2 91 2 27 +13101 141 13 -312.605 2306.5 11 13 4 9 73 2 92 2 28 +13102 141 14 -306.535 2306.5 11 11 4 9 73 2 90 2 26 +13103 141 15 -300.465 2306.5 11 9 4 9 73 2 88 2 24 +13104 141 16 -294.395 2306.5 11 7 4 9 73 2 86 2 22 +13105 141 17 -288.325 2306.5 11 8 4 9 73 2 87 2 23 +13106 141 18 -282.255 2306.5 11 10 4 9 73 2 89 2 25 +13107 141 19 -276.185 2306.5 11 12 4 9 73 2 91 2 27 +13108 141 20 -270.115 2306.5 15 11 4 9 74 2 90 2 26 +13109 141 21 -264.045 2306.5 15 9 4 9 74 2 88 2 24 +13110 141 22 -257.975 2306.5 15 7 4 9 74 2 86 2 22 +13111 141 23 -251.905 2306.5 15 8 4 9 74 2 87 2 23 +13112 141 24 -245.835 2306.5 15 10 4 9 74 2 89 2 25 +13113 141 25 -239.765 2306.5 15 12 4 9 74 2 91 2 27 +13114 141 26 -233.695 2306.5 19 13 4 9 75 2 92 2 28 +13115 141 27 -227.625 2306.5 19 11 4 9 75 2 90 2 26 +13116 141 28 -221.555 2306.5 19 9 4 9 75 2 88 2 24 +13117 141 29 -215.485 2306.5 19 8 4 9 75 2 87 2 23 +13118 141 30 -209.415 2306.5 19 10 4 9 75 2 89 2 25 +13119 141 31 -203.345 2306.5 19 12 4 9 75 2 91 2 27 +13120 141 32 -197.275 2306.5 19 14 4 9 75 2 93 2 29 +13121 141 33 -191.205 2306.5 23 11 4 9 76 2 90 2 26 +13122 141 34 -185.135 2306.5 23 9 4 9 76 2 88 2 24 +13123 141 35 -179.065 2306.5 23 7 4 9 76 2 86 2 22 +13124 141 36 -172.995 2306.5 23 8 4 9 76 2 87 2 23 +13125 141 37 -166.925 2306.5 23 10 4 9 76 2 89 2 25 +13126 141 38 -160.855 2306.5 23 12 4 9 76 2 91 2 27 +13127 141 39 -154.785 2306.5 27 13 4 9 77 2 92 2 28 +13128 141 40 -148.715 2306.5 27 11 4 9 77 2 90 2 26 +13129 141 41 -142.645 2306.5 27 9 4 9 77 2 88 2 24 +13130 141 42 -136.575 2306.5 27 8 4 9 77 2 87 2 23 +13131 141 43 -130.505 2306.5 27 10 4 9 77 2 89 2 25 +13132 141 44 -124.435 2306.5 27 12 4 9 77 2 91 2 27 +13133 141 45 -118.365 2306.5 27 14 4 9 77 2 93 2 29 +13134 141 46 -112.295 2306.5 31 11 4 9 78 2 90 2 26 +13135 141 47 -106.225 2306.5 31 9 4 9 78 2 88 2 24 +13136 141 48 -100.155 2306.5 31 7 4 9 78 2 86 2 22 +13137 141 49 -94.085 2306.5 31 8 4 9 78 2 87 2 23 +13138 141 50 -88.015 2306.5 31 10 4 9 78 2 89 2 25 +13139 141 51 -81.945 2306.5 31 12 4 9 78 2 91 2 27 +13140 141 52 -75.875 2306.5 35 13 4 9 79 2 92 2 28 +13141 141 53 -69.805 2306.5 35 11 4 9 79 2 90 2 26 +13142 141 54 -63.735 2306.5 35 9 4 9 79 2 88 2 24 +13143 141 55 -57.665 2306.5 35 8 4 9 79 2 87 2 23 +13144 141 56 -51.595 2306.5 35 10 4 9 79 2 89 2 25 +13145 141 57 -45.525 2306.5 35 12 4 9 79 2 91 2 27 +13146 141 58 -39.455 2306.5 35 14 4 9 79 2 93 2 29 +13147 141 59 -33.385 2306.5 39 11 4 9 80 2 90 2 26 +13148 141 60 -27.315 2306.5 39 9 4 9 80 2 88 2 24 +13149 141 61 -21.245 2306.5 39 7 4 9 80 2 86 2 22 +13150 141 62 -15.175 2306.5 39 8 4 9 80 2 87 2 23 +13151 141 63 -9.105 2306.5 39 10 4 9 80 2 89 2 25 +13152 141 64 -3.035 2306.5 39 12 4 9 80 2 91 2 27 +13153 141 65 3.035 2306.5 43 11 4 9 81 2 90 2 26 +13154 141 66 9.105 2306.5 43 9 4 9 81 2 88 2 24 +13155 141 67 15.175 2306.5 43 7 4 9 81 2 86 2 22 +13156 141 68 21.245 2306.5 43 8 4 9 81 2 87 2 23 +13157 141 69 27.315 2306.5 43 10 4 9 81 2 89 2 25 +13158 141 70 33.385 2306.5 43 12 4 9 81 2 91 2 27 +13159 141 71 39.455 2306.5 47 13 4 9 82 2 92 2 28 +13160 141 72 45.525 2306.5 47 11 4 9 82 2 90 2 26 +13161 141 73 51.595 2306.5 47 9 4 9 82 2 88 2 24 +13162 141 74 57.665 2306.5 47 7 4 9 82 2 86 2 22 +13163 141 75 63.735 2306.5 47 10 4 9 82 2 89 2 25 +13164 141 76 69.805 2306.5 47 12 4 9 82 2 91 2 27 +13165 141 77 75.875 2306.5 47 14 4 9 82 2 93 2 29 +13166 141 78 81.945 2306.5 51 11 4 9 83 2 90 2 26 +13167 141 79 88.015 2306.5 51 9 4 9 83 2 88 2 24 +13168 141 80 94.085 2306.5 51 7 4 9 83 2 86 2 22 +13169 141 81 100.155 2306.5 51 8 4 9 83 2 87 2 23 +13170 141 82 106.225 2306.5 51 10 4 9 83 2 89 2 25 +13171 141 83 112.295 2306.5 51 12 4 9 83 2 91 2 27 +13172 141 84 118.365 2306.5 55 13 4 9 84 2 92 2 28 +13173 141 85 124.435 2306.5 55 11 4 9 84 2 90 2 26 +13174 141 86 130.505 2306.5 55 9 4 9 84 2 88 2 24 +13175 141 87 136.575 2306.5 55 7 4 9 84 2 86 2 22 +13176 141 88 142.645 2306.5 55 10 4 9 84 2 89 2 25 +13177 141 89 148.715 2306.5 55 12 4 9 84 2 91 2 27 +13178 141 90 154.785 2306.5 55 14 4 9 84 2 93 2 29 +13179 141 91 160.855 2306.5 59 11 4 9 85 2 90 2 26 +13180 141 92 166.925 2306.5 59 9 4 9 85 2 88 2 24 +13181 141 93 172.995 2306.5 59 7 4 9 85 2 86 2 22 +13182 141 94 179.065 2306.5 59 8 4 9 85 2 87 2 23 +13183 141 95 185.135 2306.5 59 10 4 9 85 2 89 2 25 +13184 141 96 191.205 2306.5 59 12 4 9 85 2 91 2 27 +13185 141 97 197.275 2306.5 63 13 4 9 86 2 92 2 28 +13186 141 98 203.345 2306.5 63 11 4 9 86 2 90 2 26 +13187 141 99 209.415 2306.5 63 9 4 9 86 2 88 2 24 +13188 141 100 215.485 2306.5 63 7 4 9 86 2 86 2 22 +13189 141 101 221.555 2306.5 63 10 4 9 86 2 89 2 25 +13190 141 102 227.625 2306.5 63 12 4 9 86 2 91 2 27 +13191 141 103 233.695 2306.5 63 14 4 9 86 2 93 2 29 +13192 141 104 239.765 2306.5 67 11 4 9 87 2 90 2 26 +13193 141 105 245.835 2306.5 67 9 4 9 87 2 88 2 24 +13194 141 106 251.905 2306.5 67 7 4 9 87 2 86 2 22 +13195 141 107 257.975 2306.5 67 8 4 9 87 2 87 2 23 +13196 141 108 264.045 2306.5 67 10 4 9 87 2 89 2 25 +13197 141 109 270.115 2306.5 67 12 4 9 87 2 91 2 27 +13198 141 110 276.185 2306.5 71 11 4 9 88 2 90 2 26 +13199 141 111 282.255 2306.5 71 9 4 9 88 2 88 2 24 +13200 141 112 288.325 2306.5 71 7 4 9 88 2 86 2 22 +13201 141 113 294.395 2306.5 71 8 4 9 88 2 87 2 23 +13202 141 114 300.465 2306.5 71 10 4 9 88 2 89 2 25 +13203 141 115 306.535 2306.5 71 12 4 9 88 2 91 2 27 +13204 141 116 312.605 2306.5 71 14 4 9 88 2 93 2 29 +13205 141 117 318.675 2306.5 75 11 4 9 89 2 90 2 26 +13206 141 118 324.745 2306.5 75 9 4 9 89 2 88 2 24 +13207 141 119 330.815 2306.5 75 7 4 9 89 2 86 2 22 +13208 141 120 336.885 2306.5 75 10 4 9 89 2 89 2 25 +13209 141 121 342.955 2306.5 75 12 4 9 89 2 91 2 27 +13210 141 122 349.025 2306.5 75 14 4 9 89 2 93 2 29 +13211 141 123 355.095 2306.5 79 13 4 9 90 2 92 2 28 +13212 141 124 361.165 2306.5 79 11 4 9 90 2 90 2 26 +13213 141 125 367.235 2306.5 79 9 4 9 90 2 88 2 24 +13214 141 126 373.305 2306.5 79 7 4 9 90 2 86 2 22 +13215 141 127 379.375 2306.5 79 8 4 9 90 2 87 2 23 +13216 141 128 385.445 2306.5 79 10 4 9 90 2 89 2 25 +13217 141 129 391.515 2306.5 79 12 4 9 90 2 91 2 27 +13218 142 0 -391.515 2321.5 3 17 4 9 71 2 96 3 0 +13219 142 1 -385.445 2321.5 3 15 4 9 71 2 94 2 30 +13220 142 2 -379.375 2321.5 3 13 4 9 71 2 92 2 28 +13221 142 3 -373.305 2321.5 3 16 4 9 71 2 95 2 31 +13222 142 4 -367.235 2321.5 3 18 4 9 71 2 97 3 1 +13223 142 5 -361.165 2321.5 3 20 4 9 71 2 99 3 3 +13224 142 6 -355.095 2321.5 7 21 4 9 72 2 100 3 4 +13225 142 7 -349.025 2321.5 7 19 4 9 72 2 98 3 2 +13226 142 8 -342.955 2321.5 7 17 4 9 72 2 96 3 0 +13227 142 9 -336.885 2321.5 7 15 4 9 72 2 94 2 30 +13228 142 10 -330.815 2321.5 7 14 4 9 72 2 93 2 29 +13229 142 11 -324.745 2321.5 7 16 4 9 72 2 95 2 31 +13230 142 12 -318.675 2321.5 7 18 4 9 72 2 97 3 1 +13231 142 13 -312.605 2321.5 11 19 4 9 73 2 98 3 2 +13232 142 14 -306.535 2321.5 11 17 4 9 73 2 96 3 0 +13233 142 15 -300.465 2321.5 11 15 4 9 73 2 94 2 30 +13234 142 16 -294.395 2321.5 11 14 4 9 73 2 93 2 29 +13235 142 17 -288.325 2321.5 11 16 4 9 73 2 95 2 31 +13236 142 18 -282.255 2321.5 11 18 4 9 73 2 97 3 1 +13237 142 19 -276.185 2321.5 15 19 4 9 74 2 98 3 2 +13238 142 20 -270.115 2321.5 15 17 4 9 74 2 96 3 0 +13239 142 21 -264.045 2321.5 15 15 4 9 74 2 94 2 30 +13240 142 22 -257.975 2321.5 15 13 4 9 74 2 92 2 28 +13241 142 23 -251.905 2321.5 15 14 4 9 74 2 93 2 29 +13242 142 24 -245.835 2321.5 15 16 4 9 74 2 95 2 31 +13243 142 25 -239.765 2321.5 15 18 4 9 74 2 97 3 1 +13244 142 26 -233.695 2321.5 19 19 4 9 75 2 98 3 2 +13245 142 27 -227.625 2321.5 19 17 4 9 75 2 96 3 0 +13246 142 28 -221.555 2321.5 19 15 4 9 75 2 94 2 30 +13247 142 29 -215.485 2321.5 19 16 4 9 75 2 95 2 31 +13248 142 30 -209.415 2321.5 19 18 4 9 75 2 97 3 1 +13249 142 31 -203.345 2321.5 19 20 4 9 75 2 99 3 3 +13250 142 32 -197.275 2321.5 23 19 4 9 76 2 98 3 2 +13251 142 33 -191.205 2321.5 23 17 4 9 76 2 96 3 0 +13252 142 34 -185.135 2321.5 23 15 4 9 76 2 94 2 30 +13253 142 35 -179.065 2321.5 23 13 4 9 76 2 92 2 28 +13254 142 36 -172.995 2321.5 23 14 4 9 76 2 93 2 29 +13255 142 37 -166.925 2321.5 23 16 4 9 76 2 95 2 31 +13256 142 38 -160.855 2321.5 23 18 4 9 76 2 97 3 1 +13257 142 39 -154.785 2321.5 27 19 4 9 77 2 98 3 2 +13258 142 40 -148.715 2321.5 27 17 4 9 77 2 96 3 0 +13259 142 41 -142.645 2321.5 27 15 4 9 77 2 94 2 30 +13260 142 42 -136.575 2321.5 27 16 4 9 77 2 95 2 31 +13261 142 43 -130.505 2321.5 27 18 4 9 77 2 97 3 1 +13262 142 44 -124.435 2321.5 27 20 4 9 77 2 99 3 3 +13263 142 45 -118.365 2321.5 31 19 4 9 78 2 98 3 2 +13264 142 46 -112.295 2321.5 31 17 4 9 78 2 96 3 0 +13265 142 47 -106.225 2321.5 31 15 4 9 78 2 94 2 30 +13266 142 48 -100.155 2321.5 31 13 4 9 78 2 92 2 28 +13267 142 49 -94.085 2321.5 31 14 4 9 78 2 93 2 29 +13268 142 50 -88.015 2321.5 31 16 4 9 78 2 95 2 31 +13269 142 51 -81.945 2321.5 31 18 4 9 78 2 97 3 1 +13270 142 52 -75.875 2321.5 35 21 4 9 79 2 100 3 4 +13271 142 53 -69.805 2321.5 35 19 4 9 79 2 98 3 2 +13272 142 54 -63.735 2321.5 35 17 4 9 79 2 96 3 0 +13273 142 55 -57.665 2321.5 35 15 4 9 79 2 94 2 30 +13274 142 56 -51.595 2321.5 35 16 4 9 79 2 95 2 31 +13275 142 57 -45.525 2321.5 35 18 4 9 79 2 97 3 1 +13276 142 58 -39.455 2321.5 35 20 4 9 79 2 99 3 3 +13277 142 59 -33.385 2321.5 39 17 4 9 80 2 96 3 0 +13278 142 60 -27.315 2321.5 39 15 4 9 80 2 94 2 30 +13279 142 61 -21.245 2321.5 39 13 4 9 80 2 92 2 28 +13280 142 62 -15.175 2321.5 39 14 4 9 80 2 93 2 29 +13281 142 63 -9.105 2321.5 39 16 4 9 80 2 95 2 31 +13282 142 64 -3.035 2321.5 39 18 4 9 80 2 97 3 1 +13283 142 65 3.035 2321.5 43 17 4 9 81 2 96 3 0 +13284 142 66 9.105 2321.5 43 15 4 9 81 2 94 2 30 +13285 142 67 15.175 2321.5 43 13 4 9 81 2 92 2 28 +13286 142 68 21.245 2321.5 43 14 4 9 81 2 93 2 29 +13287 142 69 27.315 2321.5 43 16 4 9 81 2 95 2 31 +13288 142 70 33.385 2321.5 43 18 4 9 81 2 97 3 1 +13289 142 71 39.455 2321.5 47 19 4 9 82 2 98 3 2 +13290 142 72 45.525 2321.5 47 17 4 9 82 2 96 3 0 +13291 142 73 51.595 2321.5 47 15 4 9 82 2 94 2 30 +13292 142 74 57.665 2321.5 47 16 4 9 82 2 95 2 31 +13293 142 75 63.735 2321.5 47 18 4 9 82 2 97 3 1 +13294 142 76 69.805 2321.5 47 20 4 9 82 2 99 3 3 +13295 142 77 75.875 2321.5 47 22 4 9 82 2 101 3 5 +13296 142 78 81.945 2321.5 51 17 4 9 83 2 96 3 0 +13297 142 79 88.015 2321.5 51 15 4 9 83 2 94 2 30 +13298 142 80 94.085 2321.5 51 13 4 9 83 2 92 2 28 +13299 142 81 100.155 2321.5 51 14 4 9 83 2 93 2 29 +13300 142 82 106.225 2321.5 51 16 4 9 83 2 95 2 31 +13301 142 83 112.295 2321.5 51 18 4 9 83 2 97 3 1 +13302 142 84 118.365 2321.5 51 20 4 9 83 2 99 3 3 +13303 142 85 124.435 2321.5 55 19 4 9 84 2 98 3 2 +13304 142 86 130.505 2321.5 55 17 4 9 84 2 96 3 0 +13305 142 87 136.575 2321.5 55 15 4 9 84 2 94 2 30 +13306 142 88 142.645 2321.5 55 16 4 9 84 2 95 2 31 +13307 142 89 148.715 2321.5 55 18 4 9 84 2 97 3 1 +13308 142 90 154.785 2321.5 55 20 4 9 84 2 99 3 3 +13309 142 91 160.855 2321.5 59 17 4 9 85 2 96 3 0 +13310 142 92 166.925 2321.5 59 15 4 9 85 2 94 2 30 +13311 142 93 172.995 2321.5 59 13 4 9 85 2 92 2 28 +13312 142 94 179.065 2321.5 59 14 4 9 85 2 93 2 29 +13313 142 95 185.135 2321.5 59 16 4 9 85 2 95 2 31 +13314 142 96 191.205 2321.5 59 18 4 9 85 2 97 3 1 +13315 142 97 197.275 2321.5 59 20 4 9 85 2 99 3 3 +13316 142 98 203.345 2321.5 63 19 4 9 86 2 98 3 2 +13317 142 99 209.415 2321.5 63 17 4 9 86 2 96 3 0 +13318 142 100 215.485 2321.5 63 15 4 9 86 2 94 2 30 +13319 142 101 221.555 2321.5 63 16 4 9 86 2 95 2 31 +13320 142 102 227.625 2321.5 63 18 4 9 86 2 97 3 1 +13321 142 103 233.695 2321.5 63 20 4 9 86 2 99 3 3 +13322 142 104 239.765 2321.5 67 17 4 9 87 2 96 3 0 +13323 142 105 245.835 2321.5 67 15 4 9 87 2 94 2 30 +13324 142 106 251.905 2321.5 67 13 4 9 87 2 92 2 28 +13325 142 107 257.975 2321.5 67 14 4 9 87 2 93 2 29 +13326 142 108 264.045 2321.5 67 16 4 9 87 2 95 2 31 +13327 142 109 270.115 2321.5 67 18 4 9 87 2 97 3 1 +13328 142 110 276.185 2321.5 67 20 4 9 87 2 99 3 3 +13329 142 111 282.255 2321.5 71 17 4 9 88 2 96 3 0 +13330 142 112 288.325 2321.5 71 15 4 9 88 2 94 2 30 +13331 142 113 294.395 2321.5 71 13 4 9 88 2 92 2 28 +13332 142 114 300.465 2321.5 71 16 4 9 88 2 95 2 31 +13333 142 115 306.535 2321.5 71 18 4 9 88 2 97 3 1 +13334 142 116 312.605 2321.5 71 20 4 9 88 2 99 3 3 +13335 142 117 318.675 2321.5 75 17 4 9 89 2 96 3 0 +13336 142 118 324.745 2321.5 75 15 4 9 89 2 94 2 30 +13337 142 119 330.815 2321.5 75 13 4 9 89 2 92 2 28 +13338 142 120 336.885 2321.5 75 16 4 9 89 2 95 2 31 +13339 142 121 342.955 2321.5 75 18 4 9 89 2 97 3 1 +13340 142 122 349.025 2321.5 75 20 4 9 89 2 99 3 3 +13341 142 123 355.095 2321.5 75 22 4 9 89 2 101 3 5 +13342 142 124 361.165 2321.5 79 19 4 9 90 2 98 3 2 +13343 142 125 367.235 2321.5 79 17 4 9 90 2 96 3 0 +13344 142 126 373.305 2321.5 79 15 4 9 90 2 94 2 30 +13345 142 127 379.375 2321.5 79 14 4 9 90 2 93 2 29 +13346 142 128 385.445 2321.5 79 16 4 9 90 2 95 2 31 +13347 142 129 391.515 2321.5 79 18 4 9 90 2 97 3 1 +13348 143 0 -397.585 2336.5 3 25 4 9 71 2 104 3 8 +13349 143 1 -391.515 2336.5 3 23 4 9 71 2 102 3 6 +13350 143 2 -385.445 2336.5 3 21 4 9 71 2 100 3 4 +13351 143 3 -379.375 2336.5 3 19 4 9 71 2 98 3 2 +13352 143 4 -373.305 2336.5 3 22 4 9 71 2 101 3 5 +13353 143 5 -367.235 2336.5 3 24 4 9 71 2 103 3 7 +13354 143 6 -361.165 2336.5 3 26 4 9 71 2 105 3 9 +13355 143 7 -355.095 2336.5 7 27 4 9 72 2 106 3 10 +13356 143 8 -349.025 2336.5 7 25 4 9 72 2 104 3 8 +13357 143 9 -342.955 2336.5 7 23 4 9 72 2 102 3 6 +13358 143 10 -336.885 2336.5 7 20 4 9 72 2 99 3 3 +13359 143 11 -330.815 2336.5 7 22 4 9 72 2 101 3 5 +13360 143 12 -324.745 2336.5 7 24 4 9 72 2 103 3 7 +13361 143 13 -318.675 2336.5 7 26 4 9 72 2 105 3 9 +13362 143 14 -312.605 2336.5 11 25 4 9 73 2 104 3 8 +13363 143 15 -306.535 2336.5 11 23 4 9 73 2 102 3 6 +13364 143 16 -300.465 2336.5 11 21 4 9 73 2 100 3 4 +13365 143 17 -294.395 2336.5 11 20 4 9 73 2 99 3 3 +13366 143 18 -288.325 2336.5 11 22 4 9 73 2 101 3 5 +13367 143 19 -282.255 2336.5 11 24 4 9 73 2 103 3 7 +13368 143 20 -276.185 2336.5 15 25 4 9 74 2 104 3 8 +13369 143 21 -270.115 2336.5 15 23 4 9 74 2 102 3 6 +13370 143 22 -264.045 2336.5 15 21 4 9 74 2 100 3 4 +13371 143 23 -257.975 2336.5 15 20 4 9 74 2 99 3 3 +13372 143 24 -251.905 2336.5 15 22 4 9 74 2 101 3 5 +13373 143 25 -245.835 2336.5 15 24 4 9 74 2 103 3 7 +13374 143 26 -239.765 2336.5 15 26 4 9 74 2 105 3 9 +13375 143 27 -233.695 2336.5 19 25 4 9 75 2 104 3 8 +13376 143 28 -227.625 2336.5 19 23 4 9 75 2 102 3 6 +13377 143 29 -221.555 2336.5 19 21 4 9 75 2 100 3 4 +13378 143 30 -215.485 2336.5 19 22 4 9 75 2 101 3 5 +13379 143 31 -209.415 2336.5 19 24 4 9 75 2 103 3 7 +13380 143 32 -203.345 2336.5 19 26 4 9 75 2 105 3 9 +13381 143 33 -197.275 2336.5 23 25 4 9 76 2 104 3 8 +13382 143 34 -191.205 2336.5 23 23 4 9 76 2 102 3 6 +13383 143 35 -185.135 2336.5 23 21 4 9 76 2 100 3 4 +13384 143 36 -179.065 2336.5 23 20 4 9 76 2 99 3 3 +13385 143 37 -172.995 2336.5 23 22 4 9 76 2 101 3 5 +13386 143 38 -166.925 2336.5 23 24 4 9 76 2 103 3 7 +13387 143 39 -160.855 2336.5 23 26 4 9 76 2 105 3 9 +13388 143 40 -154.785 2336.5 27 25 4 9 77 2 104 3 8 +13389 143 41 -148.715 2336.5 27 23 4 9 77 2 102 3 6 +13390 143 42 -142.645 2336.5 27 21 4 9 77 2 100 3 4 +13391 143 43 -136.575 2336.5 27 22 4 9 77 2 101 3 5 +13392 143 44 -130.505 2336.5 27 24 4 9 77 2 103 3 7 +13393 143 45 -124.435 2336.5 27 26 4 9 77 2 105 3 9 +13394 143 46 -118.365 2336.5 31 25 4 9 78 2 104 3 8 +13395 143 47 -112.295 2336.5 31 23 4 9 78 2 102 3 6 +13396 143 48 -106.225 2336.5 31 21 4 9 78 2 100 3 4 +13397 143 49 -100.155 2336.5 31 20 4 9 78 2 99 3 3 +13398 143 50 -94.085 2336.5 31 22 4 9 78 2 101 3 5 +13399 143 51 -88.015 2336.5 31 24 4 9 78 2 103 3 7 +13400 143 52 -81.945 2336.5 31 26 4 9 78 2 105 3 9 +13401 143 53 -75.875 2336.5 35 27 4 9 79 2 106 3 10 +13402 143 54 -69.805 2336.5 35 25 4 9 79 2 104 3 8 +13403 143 55 -63.735 2336.5 35 23 4 9 79 2 102 3 6 +13404 143 56 -57.665 2336.5 35 22 4 9 79 2 101 3 5 +13405 143 57 -51.595 2336.5 35 24 4 9 79 2 103 3 7 +13406 143 58 -45.525 2336.5 35 26 4 9 79 2 105 3 9 +13407 143 59 -39.455 2336.5 35 28 4 9 79 2 107 3 11 +13408 143 60 -33.385 2336.5 39 23 4 9 80 2 102 3 6 +13409 143 61 -27.315 2336.5 39 21 4 9 80 2 100 3 4 +13410 143 62 -21.245 2336.5 39 19 4 9 80 2 98 3 2 +13411 143 63 -15.175 2336.5 39 20 4 9 80 2 99 3 3 +13412 143 64 -9.105 2336.5 39 22 4 9 80 2 101 3 5 +13413 143 65 -3.035 2336.5 39 24 4 9 80 2 103 3 7 +13414 143 66 3.035 2336.5 43 23 4 9 81 2 102 3 6 +13415 143 67 9.105 2336.5 43 21 4 9 81 2 100 3 4 +13416 143 68 15.175 2336.5 43 19 4 9 81 2 98 3 2 +13417 143 69 21.245 2336.5 43 20 4 9 81 2 99 3 3 +13418 143 70 27.315 2336.5 43 22 4 9 81 2 101 3 5 +13419 143 71 33.385 2336.5 43 24 4 9 81 2 103 3 7 +13420 143 72 39.455 2336.5 47 27 4 9 82 2 106 3 10 +13421 143 73 45.525 2336.5 47 25 4 9 82 2 104 3 8 +13422 143 74 51.595 2336.5 47 23 4 9 82 2 102 3 6 +13423 143 75 57.665 2336.5 47 21 4 9 82 2 100 3 4 +13424 143 76 63.735 2336.5 47 24 4 9 82 2 103 3 7 +13425 143 77 69.805 2336.5 47 26 4 9 82 2 105 3 9 +13426 143 78 75.875 2336.5 47 28 4 9 82 2 107 3 11 +13427 143 79 81.945 2336.5 51 25 4 9 83 2 104 3 8 +13428 143 80 88.015 2336.5 51 23 4 9 83 2 102 3 6 +13429 143 81 94.085 2336.5 51 21 4 9 83 2 100 3 4 +13430 143 82 100.155 2336.5 51 19 4 9 83 2 98 3 2 +13431 143 83 106.225 2336.5 51 22 4 9 83 2 101 3 5 +13432 143 84 112.295 2336.5 51 24 4 9 83 2 103 3 7 +13433 143 85 118.365 2336.5 51 26 4 9 83 2 105 3 9 +13434 143 86 124.435 2336.5 55 25 4 9 84 2 104 3 8 +13435 143 87 130.505 2336.5 55 23 4 9 84 2 102 3 6 +13436 143 88 136.575 2336.5 55 21 4 9 84 2 100 3 4 +13437 143 89 142.645 2336.5 55 22 4 9 84 2 101 3 5 +13438 143 90 148.715 2336.5 55 24 4 9 84 2 103 3 7 +13439 143 91 154.785 2336.5 55 26 4 9 84 2 105 3 9 +13440 143 92 160.855 2336.5 59 25 4 9 85 2 104 3 8 +13441 143 93 166.925 2336.5 59 23 4 9 85 2 102 3 6 +13442 143 94 172.995 2336.5 59 21 4 9 85 2 100 3 4 +13443 143 95 179.065 2336.5 59 19 4 9 85 2 98 3 2 +13444 143 96 185.135 2336.5 59 22 4 9 85 2 101 3 5 +13445 143 97 191.205 2336.5 59 24 4 9 85 2 103 3 7 +13446 143 98 197.275 2336.5 59 26 4 9 85 2 105 3 9 +13447 143 99 203.345 2336.5 63 25 4 9 86 2 104 3 8 +13448 143 100 209.415 2336.5 63 23 4 9 86 2 102 3 6 +13449 143 101 215.485 2336.5 63 21 4 9 86 2 100 3 4 +13450 143 102 221.555 2336.5 63 22 4 9 86 2 101 3 5 +13451 143 103 227.625 2336.5 63 24 4 9 86 2 103 3 7 +13452 143 104 233.695 2336.5 63 26 4 9 86 2 105 3 9 +13453 143 105 239.765 2336.5 67 25 4 9 87 2 104 3 8 +13454 143 106 245.835 2336.5 67 23 4 9 87 2 102 3 6 +13455 143 107 251.905 2336.5 67 21 4 9 87 2 100 3 4 +13456 143 108 257.975 2336.5 67 19 4 9 87 2 98 3 2 +13457 143 109 264.045 2336.5 67 22 4 9 87 2 101 3 5 +13458 143 110 270.115 2336.5 67 24 4 9 87 2 103 3 7 +13459 143 111 276.185 2336.5 67 26 4 9 87 2 105 3 9 +13460 143 112 282.255 2336.5 71 23 4 9 88 2 102 3 6 +13461 143 113 288.325 2336.5 71 21 4 9 88 2 100 3 4 +13462 143 114 294.395 2336.5 71 19 4 9 88 2 98 3 2 +13463 143 115 300.465 2336.5 71 22 4 9 88 2 101 3 5 +13464 143 116 306.535 2336.5 71 24 4 9 88 2 103 3 7 +13465 143 117 312.605 2336.5 71 26 4 9 88 2 105 3 9 +13466 143 118 318.675 2336.5 75 25 4 9 89 2 104 3 8 +13467 143 119 324.745 2336.5 75 23 4 9 89 2 102 3 6 +13468 143 120 330.815 2336.5 75 21 4 9 89 2 100 3 4 +13469 143 121 336.885 2336.5 75 19 4 9 89 2 98 3 2 +13470 143 122 342.955 2336.5 75 24 4 9 89 2 103 3 7 +13471 143 123 349.025 2336.5 75 26 4 9 89 2 105 3 9 +13472 143 124 355.095 2336.5 75 28 4 9 89 2 107 3 11 +13473 143 125 361.165 2336.5 79 25 4 9 90 2 104 3 8 +13474 143 126 367.235 2336.5 79 23 4 9 90 2 102 3 6 +13475 143 127 373.305 2336.5 79 21 4 9 90 2 100 3 4 +13476 143 128 379.375 2336.5 79 20 4 9 90 2 99 3 3 +13477 143 129 385.445 2336.5 79 22 4 9 90 2 101 3 5 +13478 143 130 391.515 2336.5 79 24 4 9 90 2 103 3 7 +13479 143 131 397.585 2336.5 79 26 4 9 90 2 105 3 9 +13480 144 0 -397.585 2351.5 3 33 4 9 71 2 112 3 16 +13481 144 1 -391.515 2351.5 3 31 4 9 71 2 110 3 14 +13482 144 2 -385.445 2351.5 3 29 4 9 71 2 108 3 12 +13483 144 3 -379.375 2351.5 3 27 4 9 71 2 106 3 10 +13484 144 4 -373.305 2351.5 3 28 4 9 71 2 107 3 11 +13485 144 5 -367.235 2351.5 3 30 4 9 71 2 109 3 13 +13486 144 6 -361.165 2351.5 3 32 4 9 71 2 111 3 15 +13487 144 7 -355.095 2351.5 7 33 4 9 72 2 112 3 16 +13488 144 8 -349.025 2351.5 7 31 4 9 72 2 110 3 14 +13489 144 9 -342.955 2351.5 7 29 4 9 72 2 108 3 12 +13490 144 10 -336.885 2351.5 7 28 4 9 72 2 107 3 11 +13491 144 11 -330.815 2351.5 7 30 4 9 72 2 109 3 13 +13492 144 12 -324.745 2351.5 7 32 4 9 72 2 111 3 15 +13493 144 13 -318.675 2351.5 11 31 4 9 73 2 110 3 14 +13494 144 14 -312.605 2351.5 11 29 4 9 73 2 108 3 12 +13495 144 15 -306.535 2351.5 11 27 4 9 73 2 106 3 10 +13496 144 16 -300.465 2351.5 11 26 4 9 73 2 105 3 9 +13497 144 17 -294.395 2351.5 11 28 4 9 73 2 107 3 11 +13498 144 18 -288.325 2351.5 11 30 4 9 73 2 109 3 13 +13499 144 19 -282.255 2351.5 11 32 4 9 73 2 111 3 15 +13500 144 20 -276.185 2351.5 15 31 4 9 74 2 110 3 14 +13501 144 21 -270.115 2351.5 15 29 4 9 74 2 108 3 12 +13502 144 22 -264.045 2351.5 15 27 4 9 74 2 106 3 10 +13503 144 23 -257.975 2351.5 15 28 4 9 74 2 107 3 11 +13504 144 24 -251.905 2351.5 15 30 4 9 74 2 109 3 13 +13505 144 25 -245.835 2351.5 15 32 4 9 74 2 111 3 15 +13506 144 26 -239.765 2351.5 19 33 4 9 75 2 112 3 16 +13507 144 27 -233.695 2351.5 19 31 4 9 75 2 110 3 14 +13508 144 28 -227.625 2351.5 19 29 4 9 75 2 108 3 12 +13509 144 29 -221.555 2351.5 19 27 4 9 75 2 106 3 10 +13510 144 30 -215.485 2351.5 19 28 4 9 75 2 107 3 11 +13511 144 31 -209.415 2351.5 19 30 4 9 75 2 109 3 13 +13512 144 32 -203.345 2351.5 19 32 4 9 75 2 111 3 15 +13513 144 33 -197.275 2351.5 23 31 4 9 76 2 110 3 14 +13514 144 34 -191.205 2351.5 23 29 4 9 76 2 108 3 12 +13515 144 35 -185.135 2351.5 23 27 4 9 76 2 106 3 10 +13516 144 36 -179.065 2351.5 23 28 4 9 76 2 107 3 11 +13517 144 37 -172.995 2351.5 23 30 4 9 76 2 109 3 13 +13518 144 38 -166.925 2351.5 23 32 4 9 76 2 111 3 15 +13519 144 39 -160.855 2351.5 23 34 4 9 76 2 113 3 17 +13520 144 40 -154.785 2351.5 27 31 4 9 77 2 110 3 14 +13521 144 41 -148.715 2351.5 27 29 4 9 77 2 108 3 12 +13522 144 42 -142.645 2351.5 27 27 4 9 77 2 106 3 10 +13523 144 43 -136.575 2351.5 27 28 4 9 77 2 107 3 11 +13524 144 44 -130.505 2351.5 27 30 4 9 77 2 109 3 13 +13525 144 45 -124.435 2351.5 27 32 4 9 77 2 111 3 15 +13526 144 46 -118.365 2351.5 31 33 4 9 78 2 112 3 16 +13527 144 47 -112.295 2351.5 31 31 4 9 78 2 110 3 14 +13528 144 48 -106.225 2351.5 31 29 4 9 78 2 108 3 12 +13529 144 49 -100.155 2351.5 31 27 4 9 78 2 106 3 10 +13530 144 50 -94.085 2351.5 31 28 4 9 78 2 107 3 11 +13531 144 51 -88.015 2351.5 31 30 4 9 78 2 109 3 13 +13532 144 52 -81.945 2351.5 31 32 4 9 78 2 111 3 15 +13533 144 53 -75.875 2351.5 35 33 4 9 79 2 112 3 16 +13534 144 54 -69.805 2351.5 35 31 4 9 79 2 110 3 14 +13535 144 55 -63.735 2351.5 35 29 4 9 79 2 108 3 12 +13536 144 56 -57.665 2351.5 35 30 4 9 79 2 109 3 13 +13537 144 57 -51.595 2351.5 35 32 4 9 79 2 111 3 15 +13538 144 58 -45.525 2351.5 35 34 4 9 79 2 113 3 17 +13539 144 59 -39.455 2351.5 39 29 4 9 80 2 108 3 12 +13540 144 60 -33.385 2351.5 39 27 4 9 80 2 106 3 10 +13541 144 61 -27.315 2351.5 39 25 4 9 80 2 104 3 8 +13542 144 62 -21.245 2351.5 39 26 4 9 80 2 105 3 9 +13543 144 63 -15.175 2351.5 39 28 4 9 80 2 107 3 11 +13544 144 64 -9.105 2351.5 39 30 4 9 80 2 109 3 13 +13545 144 65 -3.035 2351.5 39 32 4 9 80 2 111 3 15 +13546 144 66 3.035 2351.5 43 31 4 9 81 2 110 3 14 +13547 144 67 9.105 2351.5 43 29 4 9 81 2 108 3 12 +13548 144 68 15.175 2351.5 43 27 4 9 81 2 106 3 10 +13549 144 69 21.245 2351.5 43 25 4 9 81 2 104 3 8 +13550 144 70 27.315 2351.5 43 26 4 9 81 2 105 3 9 +13551 144 71 33.385 2351.5 43 28 4 9 81 2 107 3 11 +13552 144 72 39.455 2351.5 43 30 4 9 81 2 109 3 13 +13553 144 73 45.525 2351.5 47 33 4 9 82 2 112 3 16 +13554 144 74 51.595 2351.5 47 31 4 9 82 2 110 3 14 +13555 144 75 57.665 2351.5 47 29 4 9 82 2 108 3 12 +13556 144 76 63.735 2351.5 47 30 4 9 82 2 109 3 13 +13557 144 77 69.805 2351.5 47 32 4 9 82 2 111 3 15 +13558 144 78 75.875 2351.5 47 34 4 9 82 2 113 3 17 +13559 144 79 81.945 2351.5 51 31 4 9 83 2 110 3 14 +13560 144 80 88.015 2351.5 51 29 4 9 83 2 108 3 12 +13561 144 81 94.085 2351.5 51 27 4 9 83 2 106 3 10 +13562 144 82 100.155 2351.5 51 28 4 9 83 2 107 3 11 +13563 144 83 106.225 2351.5 51 30 4 9 83 2 109 3 13 +13564 144 84 112.295 2351.5 51 32 4 9 83 2 111 3 15 +13565 144 85 118.365 2351.5 51 34 4 9 83 2 113 3 17 +13566 144 86 124.435 2351.5 55 31 4 9 84 2 110 3 14 +13567 144 87 130.505 2351.5 55 29 4 9 84 2 108 3 12 +13568 144 88 136.575 2351.5 55 27 4 9 84 2 106 3 10 +13569 144 89 142.645 2351.5 55 28 4 9 84 2 107 3 11 +13570 144 90 148.715 2351.5 55 30 4 9 84 2 109 3 13 +13571 144 91 154.785 2351.5 55 32 4 9 84 2 111 3 15 +13572 144 92 160.855 2351.5 59 33 4 9 85 2 112 3 16 +13573 144 93 166.925 2351.5 59 31 4 9 85 2 110 3 14 +13574 144 94 172.995 2351.5 59 29 4 9 85 2 108 3 12 +13575 144 95 179.065 2351.5 59 27 4 9 85 2 106 3 10 +13576 144 96 185.135 2351.5 59 28 4 9 85 2 107 3 11 +13577 144 97 191.205 2351.5 59 30 4 9 85 2 109 3 13 +13578 144 98 197.275 2351.5 59 32 4 9 85 2 111 3 15 +13579 144 99 203.345 2351.5 63 31 4 9 86 2 110 3 14 +13580 144 100 209.415 2351.5 63 29 4 9 86 2 108 3 12 +13581 144 101 215.485 2351.5 63 27 4 9 86 2 106 3 10 +13582 144 102 221.555 2351.5 63 28 4 9 86 2 107 3 11 +13583 144 103 227.625 2351.5 63 30 4 9 86 2 109 3 13 +13584 144 104 233.695 2351.5 63 32 4 9 86 2 111 3 15 +13585 144 105 239.765 2351.5 63 34 4 9 86 2 113 3 17 +13586 144 106 245.835 2351.5 67 31 4 9 87 2 110 3 14 +13587 144 107 251.905 2351.5 67 29 4 9 87 2 108 3 12 +13588 144 108 257.975 2351.5 67 27 4 9 87 2 106 3 10 +13589 144 109 264.045 2351.5 67 28 4 9 87 2 107 3 11 +13590 144 110 270.115 2351.5 67 30 4 9 87 2 109 3 13 +13591 144 111 276.185 2351.5 67 32 4 9 87 2 111 3 15 +13592 144 112 282.255 2351.5 71 31 4 9 88 2 110 3 14 +13593 144 113 288.325 2351.5 71 29 4 9 88 2 108 3 12 +13594 144 114 294.395 2351.5 71 27 4 9 88 2 106 3 10 +13595 144 115 300.465 2351.5 71 25 4 9 88 2 104 3 8 +13596 144 116 306.535 2351.5 71 28 4 9 88 2 107 3 11 +13597 144 117 312.605 2351.5 71 30 4 9 88 2 109 3 13 +13598 144 118 318.675 2351.5 71 32 4 9 88 2 111 3 15 +13599 144 119 324.745 2351.5 75 31 4 9 89 2 110 3 14 +13600 144 120 330.815 2351.5 75 29 4 9 89 2 108 3 12 +13601 144 121 336.885 2351.5 75 27 4 9 89 2 106 3 10 +13602 144 122 342.955 2351.5 75 30 4 9 89 2 109 3 13 +13603 144 123 349.025 2351.5 75 32 4 9 89 2 111 3 15 +13604 144 124 355.095 2351.5 75 34 4 9 89 2 113 3 17 +13605 144 125 361.165 2351.5 79 31 4 9 90 2 110 3 14 +13606 144 126 367.235 2351.5 79 29 4 9 90 2 108 3 12 +13607 144 127 373.305 2351.5 79 27 4 9 90 2 106 3 10 +13608 144 128 379.375 2351.5 79 28 4 9 90 2 107 3 11 +13609 144 129 385.445 2351.5 79 30 4 9 90 2 109 3 13 +13610 144 130 391.515 2351.5 79 32 4 9 90 2 111 3 15 +13611 144 131 397.585 2351.5 79 34 4 9 90 2 113 3 17 +13612 145 0 -397.585 2366.5 3 39 4 9 71 2 118 3 22 +13613 145 1 -391.515 2366.5 3 37 4 9 71 2 116 3 20 +13614 145 2 -385.445 2366.5 3 35 4 9 71 2 114 3 18 +13615 145 3 -379.375 2366.5 3 34 4 9 71 2 113 3 17 +13616 145 4 -373.305 2366.5 3 36 4 9 71 2 115 3 19 +13617 145 5 -367.235 2366.5 3 38 4 9 71 2 117 3 21 +13618 145 6 -361.165 2366.5 7 39 4 9 72 2 118 3 22 +13619 145 7 -355.095 2366.5 7 37 4 9 72 2 116 3 20 +13620 145 8 -349.025 2366.5 7 35 4 9 72 2 114 3 18 +13621 145 9 -342.955 2366.5 7 34 4 9 72 2 113 3 17 +13622 145 10 -336.885 2366.5 7 36 4 9 72 2 115 3 19 +13623 145 11 -330.815 2366.5 7 38 4 9 72 2 117 3 21 +13624 145 12 -324.745 2366.5 7 40 4 9 72 2 119 3 23 +13625 145 13 -318.675 2366.5 11 39 4 9 73 2 118 3 22 +13626 145 14 -312.605 2366.5 11 37 4 9 73 2 116 3 20 +13627 145 15 -306.535 2366.5 11 35 4 9 73 2 114 3 18 +13628 145 16 -300.465 2366.5 11 33 4 9 73 2 112 3 16 +13629 145 17 -294.395 2366.5 11 34 4 9 73 2 113 3 17 +13630 145 18 -288.325 2366.5 11 36 4 9 73 2 115 3 19 +13631 145 19 -282.255 2366.5 15 37 4 9 74 2 116 3 20 +13632 145 20 -276.185 2366.5 15 35 4 9 74 2 114 3 18 +13633 145 21 -270.115 2366.5 15 33 4 9 74 2 112 3 16 +13634 145 22 -264.045 2366.5 15 34 4 9 74 2 113 3 17 +13635 145 23 -257.975 2366.5 15 36 4 9 74 2 115 3 19 +13636 145 24 -251.905 2366.5 15 38 4 9 74 2 117 3 21 +13637 145 25 -245.835 2366.5 15 40 4 9 74 2 119 3 23 +13638 145 26 -239.765 2366.5 19 39 4 9 75 2 118 3 22 +13639 145 27 -233.695 2366.5 19 37 4 9 75 2 116 3 20 +13640 145 28 -227.625 2366.5 19 35 4 9 75 2 114 3 18 +13641 145 29 -221.555 2366.5 19 34 4 9 75 2 113 3 17 +13642 145 30 -215.485 2366.5 19 36 4 9 75 2 115 3 19 +13643 145 31 -209.415 2366.5 19 38 4 9 75 2 117 3 21 +13644 145 32 -203.345 2366.5 19 40 4 9 75 2 119 3 23 +13645 145 33 -197.275 2366.5 23 37 4 9 76 2 116 3 20 +13646 145 34 -191.205 2366.5 23 35 4 9 76 2 114 3 18 +13647 145 35 -185.135 2366.5 23 33 4 9 76 2 112 3 16 +13648 145 36 -179.065 2366.5 23 36 4 9 76 2 115 3 19 +13649 145 37 -172.995 2366.5 23 38 4 9 76 2 117 3 21 +13650 145 38 -166.925 2366.5 23 40 4 9 76 2 119 3 23 +13651 145 39 -160.855 2366.5 27 37 4 9 77 2 116 3 20 +13652 145 40 -154.785 2366.5 27 35 4 9 77 2 114 3 18 +13653 145 41 -148.715 2366.5 27 33 4 9 77 2 112 3 16 +13654 145 42 -142.645 2366.5 27 34 4 9 77 2 113 3 17 +13655 145 43 -136.575 2366.5 27 36 4 9 77 2 115 3 19 +13656 145 44 -130.505 2366.5 27 38 4 9 77 2 117 3 21 +13657 145 45 -124.435 2366.5 27 40 4 9 77 2 119 3 23 +13658 145 46 -118.365 2366.5 31 39 4 9 78 2 118 3 22 +13659 145 47 -112.295 2366.5 31 37 4 9 78 2 116 3 20 +13660 145 48 -106.225 2366.5 31 35 4 9 78 2 114 3 18 +13661 145 49 -100.155 2366.5 31 34 4 9 78 2 113 3 17 +13662 145 50 -94.085 2366.5 31 36 4 9 78 2 115 3 19 +13663 145 51 -88.015 2366.5 31 38 4 9 78 2 117 3 21 +13664 145 52 -81.945 2366.5 31 40 4 9 78 2 119 3 23 +13665 145 53 -75.875 2366.5 35 39 4 9 79 2 118 3 22 +13666 145 54 -69.805 2366.5 35 37 4 9 79 2 116 3 20 +13667 145 55 -63.735 2366.5 35 35 4 9 79 2 114 3 18 +13668 145 56 -57.665 2366.5 35 36 4 9 79 2 115 3 19 +13669 145 57 -51.595 2366.5 35 38 4 9 79 2 117 3 21 +13670 145 58 -45.525 2366.5 35 40 4 9 79 2 119 3 23 +13671 145 59 -39.455 2366.5 39 35 4 9 80 2 114 3 18 +13672 145 60 -33.385 2366.5 39 33 4 9 80 2 112 3 16 +13673 145 61 -27.315 2366.5 39 31 4 9 80 2 110 3 14 +13674 145 62 -21.245 2366.5 39 34 4 9 80 2 113 3 17 +13675 145 63 -15.175 2366.5 39 36 4 9 80 2 115 3 19 +13676 145 64 -9.105 2366.5 39 38 4 9 80 2 117 3 21 +13677 145 65 -3.035 2366.5 39 40 4 9 80 2 119 3 23 +13678 145 66 3.035 2366.5 43 39 4 9 81 2 118 3 22 +13679 145 67 9.105 2366.5 43 37 4 9 81 2 116 3 20 +13680 145 68 15.175 2366.5 43 35 4 9 81 2 114 3 18 +13681 145 69 21.245 2366.5 43 33 4 9 81 2 112 3 16 +13682 145 70 27.315 2366.5 43 32 4 9 81 2 111 3 15 +13683 145 71 33.385 2366.5 43 34 4 9 81 2 113 3 17 +13684 145 72 39.455 2366.5 43 36 4 9 81 2 115 3 19 +13685 145 73 45.525 2366.5 47 39 4 9 82 2 118 3 22 +13686 145 74 51.595 2366.5 47 37 4 9 82 2 116 3 20 +13687 145 75 57.665 2366.5 47 35 4 9 82 2 114 3 18 +13688 145 76 63.735 2366.5 47 36 4 9 82 2 115 3 19 +13689 145 77 69.805 2366.5 47 38 4 9 82 2 117 3 21 +13690 145 78 75.875 2366.5 47 40 4 9 82 2 119 3 23 +13691 145 79 81.945 2366.5 51 39 4 9 83 2 118 3 22 +13692 145 80 88.015 2366.5 51 37 4 9 83 2 116 3 20 +13693 145 81 94.085 2366.5 51 35 4 9 83 2 114 3 18 +13694 145 82 100.155 2366.5 51 33 4 9 83 2 112 3 16 +13695 145 83 106.225 2366.5 51 36 4 9 83 2 115 3 19 +13696 145 84 112.295 2366.5 51 38 4 9 83 2 117 3 21 +13697 145 85 118.365 2366.5 51 40 4 9 83 2 119 3 23 +13698 145 86 124.435 2366.5 55 39 4 9 84 2 118 3 22 +13699 145 87 130.505 2366.5 55 37 4 9 84 2 116 3 20 +13700 145 88 136.575 2366.5 55 35 4 9 84 2 114 3 18 +13701 145 89 142.645 2366.5 55 33 4 9 84 2 112 3 16 +13702 145 90 148.715 2366.5 55 34 4 9 84 2 113 3 17 +13703 145 91 154.785 2366.5 55 36 4 9 84 2 115 3 19 +13704 145 92 160.855 2366.5 55 38 4 9 84 2 117 3 21 +13705 145 93 166.925 2366.5 59 39 4 9 85 2 118 3 22 +13706 145 94 172.995 2366.5 59 37 4 9 85 2 116 3 20 +13707 145 95 179.065 2366.5 59 35 4 9 85 2 114 3 18 +13708 145 96 185.135 2366.5 59 34 4 9 85 2 113 3 17 +13709 145 97 191.205 2366.5 59 36 4 9 85 2 115 3 19 +13710 145 98 197.275 2366.5 59 38 4 9 85 2 117 3 21 +13711 145 99 203.345 2366.5 63 39 4 9 86 2 118 3 22 +13712 145 100 209.415 2366.5 63 37 4 9 86 2 116 3 20 +13713 145 101 215.485 2366.5 63 35 4 9 86 2 114 3 18 +13714 145 102 221.555 2366.5 63 33 4 9 86 2 112 3 16 +13715 145 103 227.625 2366.5 63 36 4 9 86 2 115 3 19 +13716 145 104 233.695 2366.5 63 38 4 9 86 2 117 3 21 +13717 145 105 239.765 2366.5 63 40 4 9 86 2 119 3 23 +13718 145 106 245.835 2366.5 67 39 4 9 87 2 118 3 22 +13719 145 107 251.905 2366.5 67 37 4 9 87 2 116 3 20 +13720 145 108 257.975 2366.5 67 35 4 9 87 2 114 3 18 +13721 145 109 264.045 2366.5 67 33 4 9 87 2 112 3 16 +13722 145 110 270.115 2366.5 67 34 4 9 87 2 113 3 17 +13723 145 111 276.185 2366.5 67 36 4 9 87 2 115 3 19 +13724 145 112 282.255 2366.5 67 38 4 9 87 2 117 3 21 +13725 145 113 288.325 2366.5 71 35 4 9 88 2 114 3 18 +13726 145 114 294.395 2366.5 71 33 4 9 88 2 112 3 16 +13727 145 115 300.465 2366.5 71 34 4 9 88 2 113 3 17 +13728 145 116 306.535 2366.5 71 36 4 9 88 2 115 3 19 +13729 145 117 312.605 2366.5 71 38 4 9 88 2 117 3 21 +13730 145 118 318.675 2366.5 71 40 4 9 88 2 119 3 23 +13731 145 119 324.745 2366.5 75 39 4 9 89 2 118 3 22 +13732 145 120 330.815 2366.5 75 37 4 9 89 2 116 3 20 +13733 145 121 336.885 2366.5 75 35 4 9 89 2 114 3 18 +13734 145 122 342.955 2366.5 75 33 4 9 89 2 112 3 16 +13735 145 123 349.025 2366.5 75 36 4 9 89 2 115 3 19 +13736 145 124 355.095 2366.5 75 38 4 9 89 2 117 3 21 +13737 145 125 361.165 2366.5 75 40 4 9 89 2 119 3 23 +13738 145 126 367.235 2366.5 79 37 4 9 90 2 116 3 20 +13739 145 127 373.305 2366.5 79 35 4 9 90 2 114 3 18 +13740 145 128 379.375 2366.5 79 33 4 9 90 2 112 3 16 +13741 145 129 385.445 2366.5 79 36 4 9 90 2 115 3 19 +13742 145 130 391.515 2366.5 79 38 4 9 90 2 117 3 21 +13743 145 131 397.585 2366.5 79 40 4 9 90 2 119 3 23 +13744 146 0 -403.655 2381.5 4 5 4 9 71 3 124 3 28 +13745 146 1 -397.585 2381.5 4 3 4 9 71 3 122 3 26 +13746 146 2 -391.515 2381.5 4 1 4 9 71 3 120 3 24 +13747 146 3 -385.445 2381.5 4 2 4 9 71 3 121 3 25 +13748 146 4 -379.375 2381.5 4 4 4 9 71 3 123 3 27 +13749 146 5 -373.305 2381.5 4 6 4 9 71 3 125 3 29 +13750 146 6 -367.235 2381.5 3 40 4 9 71 2 119 3 23 +13751 146 7 -361.165 2381.5 8 5 4 9 72 3 124 3 28 +13752 146 8 -355.095 2381.5 8 3 4 9 72 3 122 3 26 +13753 146 9 -349.025 2381.5 8 1 4 9 72 3 120 3 24 +13754 146 10 -342.955 2381.5 8 2 4 9 72 3 121 3 25 +13755 146 11 -336.885 2381.5 8 4 4 9 72 3 123 3 27 +13756 146 12 -330.815 2381.5 8 6 4 9 72 3 125 3 29 +13757 146 13 -324.745 2381.5 12 5 4 9 73 3 124 3 28 +13758 146 14 -318.675 2381.5 12 3 4 9 73 3 122 3 26 +13759 146 15 -312.605 2381.5 12 1 4 9 73 3 120 3 24 +13760 146 16 -306.535 2381.5 12 2 4 9 73 3 121 3 25 +13761 146 17 -300.465 2381.5 12 4 4 9 73 3 123 3 27 +13762 146 18 -294.395 2381.5 11 38 4 9 73 2 117 3 21 +13763 146 19 -288.325 2381.5 11 40 4 9 73 2 119 3 23 +13764 146 20 -282.255 2381.5 15 39 4 9 74 2 118 3 22 +13765 146 21 -276.185 2381.5 16 5 4 9 74 3 124 3 28 +13766 146 22 -270.115 2381.5 16 3 4 9 74 3 122 3 26 +13767 146 23 -264.045 2381.5 16 1 4 9 74 3 120 3 24 +13768 146 24 -257.975 2381.5 16 2 4 9 74 3 121 3 25 +13769 146 25 -251.905 2381.5 16 4 4 9 74 3 123 3 27 +13770 146 26 -245.835 2381.5 16 6 4 9 74 3 125 3 29 +13771 146 27 -239.765 2381.5 20 7 4 9 75 3 126 3 30 +13772 146 28 -233.695 2381.5 20 5 4 9 75 3 124 3 28 +13773 146 29 -227.625 2381.5 20 3 4 9 75 3 122 3 26 +13774 146 30 -221.555 2381.5 20 1 4 9 75 3 120 3 24 +13775 146 31 -215.485 2381.5 20 2 4 9 75 3 121 3 25 +13776 146 32 -209.415 2381.5 20 4 4 9 75 3 123 3 27 +13777 146 33 -203.345 2381.5 20 6 4 9 75 3 125 3 29 +13778 146 34 -197.275 2381.5 23 39 4 9 76 2 118 3 22 +13779 146 35 -191.205 2381.5 24 3 4 9 76 3 122 3 26 +13780 146 36 -185.135 2381.5 24 1 4 9 76 3 120 3 24 +13781 146 37 -179.065 2381.5 24 2 4 9 76 3 121 3 25 +13782 146 38 -172.995 2381.5 24 4 4 9 76 3 123 3 27 +13783 146 39 -166.925 2381.5 24 6 4 9 76 3 125 3 29 +13784 146 40 -160.855 2381.5 27 39 4 9 77 2 118 3 22 +13785 146 41 -154.785 2381.5 28 5 4 9 77 3 124 3 28 +13786 146 42 -148.715 2381.5 28 3 4 9 77 3 122 3 26 +13787 146 43 -142.645 2381.5 28 1 4 9 77 3 120 3 24 +13788 146 44 -136.575 2381.5 28 2 4 9 77 3 121 3 25 +13789 146 45 -130.505 2381.5 28 4 4 9 77 3 123 3 27 +13790 146 46 -124.435 2381.5 28 6 4 9 77 3 125 3 29 +13791 146 47 -118.365 2381.5 32 5 4 9 78 3 124 3 28 +13792 146 48 -112.295 2381.5 32 3 4 9 78 3 122 3 26 +13793 146 49 -106.225 2381.5 32 1 4 9 78 3 120 3 24 +13794 146 50 -100.155 2381.5 32 2 4 9 78 3 121 3 25 +13795 146 51 -94.085 2381.5 32 4 4 9 78 3 123 3 27 +13796 146 52 -88.015 2381.5 32 6 4 9 78 3 125 3 29 +13797 146 53 -81.945 2381.5 32 8 4 9 78 3 127 3 31 +13798 146 54 -75.875 2381.5 36 5 4 9 79 3 124 3 28 +13799 146 55 -69.805 2381.5 36 3 4 9 79 3 122 3 26 +13800 146 56 -63.735 2381.5 36 1 4 9 79 3 120 3 24 +13801 146 57 -57.665 2381.5 36 2 4 9 79 3 121 3 25 +13802 146 58 -51.595 2381.5 36 4 4 9 79 3 123 3 27 +13803 146 59 -45.525 2381.5 36 6 4 9 79 3 125 3 29 +13804 146 60 -39.455 2381.5 39 39 4 9 80 2 118 3 22 +13805 146 61 -33.385 2381.5 39 37 4 9 80 2 116 3 20 +13806 146 62 -27.315 2381.5 40 3 4 9 80 3 122 3 26 +13807 146 63 -21.245 2381.5 40 1 4 9 80 3 120 3 24 +13808 146 64 -15.175 2381.5 40 2 4 9 80 3 121 3 25 +13809 146 65 -9.105 2381.5 40 4 4 9 80 3 123 3 27 +13810 146 66 -3.035 2381.5 40 6 4 9 80 3 125 3 29 +13811 146 67 3.035 2381.5 44 5 4 9 81 3 124 3 28 +13812 146 68 9.105 2381.5 44 3 4 9 81 3 122 3 26 +13813 146 69 15.175 2381.5 44 1 4 9 81 3 120 3 24 +13814 146 70 21.245 2381.5 44 2 4 9 81 3 121 3 25 +13815 146 71 27.315 2381.5 44 4 4 9 81 3 123 3 27 +13816 146 72 33.385 2381.5 43 38 4 9 81 2 117 3 21 +13817 146 73 39.455 2381.5 43 40 4 9 81 2 119 3 23 +13818 146 74 45.525 2381.5 48 5 4 9 82 3 124 3 28 +13819 146 75 51.595 2381.5 48 3 4 9 82 3 122 3 26 +13820 146 76 57.665 2381.5 48 1 4 9 82 3 120 3 24 +13821 146 77 63.735 2381.5 48 2 4 9 82 3 121 3 25 +13822 146 78 69.805 2381.5 48 4 4 9 82 3 123 3 27 +13823 146 79 75.875 2381.5 48 6 4 9 82 3 125 3 29 +13824 146 80 81.945 2381.5 52 7 4 9 83 3 126 3 30 +13825 146 81 88.015 2381.5 52 5 4 9 83 3 124 3 28 +13826 146 82 94.085 2381.5 52 3 4 9 83 3 122 3 26 +13827 146 83 100.155 2381.5 52 1 4 9 83 3 120 3 24 +13828 146 84 106.225 2381.5 52 2 4 9 83 3 121 3 25 +13829 146 85 112.295 2381.5 52 4 4 9 83 3 123 3 27 +13830 146 86 118.365 2381.5 52 6 4 9 83 3 125 3 29 +13831 146 87 124.435 2381.5 56 5 4 9 84 3 124 3 28 +13832 146 88 130.505 2381.5 56 3 4 9 84 3 122 3 26 +13833 146 89 136.575 2381.5 56 1 4 9 84 3 120 3 24 +13834 146 90 142.645 2381.5 56 2 4 9 84 3 121 3 25 +13835 146 91 148.715 2381.5 56 4 4 9 84 3 123 3 27 +13836 146 92 154.785 2381.5 56 6 4 9 84 3 125 3 29 +13837 146 93 160.855 2381.5 55 40 4 9 84 2 119 3 23 +13838 146 94 166.925 2381.5 60 5 4 9 85 3 124 3 28 +13839 146 95 172.995 2381.5 60 3 4 9 85 3 122 3 26 +13840 146 96 179.065 2381.5 60 1 4 9 85 3 120 3 24 +13841 146 97 185.135 2381.5 60 2 4 9 85 3 121 3 25 +13842 146 98 191.205 2381.5 60 4 4 9 85 3 123 3 27 +13843 146 99 197.275 2381.5 59 40 4 9 85 2 119 3 23 +13844 146 100 203.345 2381.5 64 5 4 9 86 3 124 3 28 +13845 146 101 209.415 2381.5 64 3 4 9 86 3 122 3 26 +13846 146 102 215.485 2381.5 64 1 4 9 86 3 120 3 24 +13847 146 103 221.555 2381.5 64 2 4 9 86 3 121 3 25 +13848 146 104 227.625 2381.5 64 4 4 9 86 3 123 3 27 +13849 146 105 233.695 2381.5 64 6 4 9 86 3 125 3 29 +13850 146 106 239.765 2381.5 64 8 4 9 86 3 127 3 31 +13851 146 107 245.835 2381.5 68 5 4 9 87 3 124 3 28 +13852 146 108 251.905 2381.5 68 3 4 9 87 3 122 3 26 +13853 146 109 257.975 2381.5 68 1 4 9 87 3 120 3 24 +13854 146 110 264.045 2381.5 68 2 4 9 87 3 121 3 25 +13855 146 111 270.115 2381.5 68 4 4 9 87 3 123 3 27 +13856 146 112 276.185 2381.5 68 6 4 9 87 3 125 3 29 +13857 146 113 282.255 2381.5 67 40 4 9 87 2 119 3 23 +13858 146 114 288.325 2381.5 71 39 4 9 88 2 118 3 22 +13859 146 115 294.395 2381.5 71 37 4 9 88 2 116 3 20 +13860 146 116 300.465 2381.5 72 3 4 9 88 3 122 3 26 +13861 146 117 306.535 2381.5 72 1 4 9 88 3 120 3 24 +13862 146 118 312.605 2381.5 72 2 4 9 88 3 121 3 25 +13863 146 119 318.675 2381.5 72 4 4 9 88 3 123 3 27 +13864 146 120 324.745 2381.5 72 6 4 9 88 3 125 3 29 +13865 146 121 330.815 2381.5 76 5 4 9 89 3 124 3 28 +13866 146 122 336.885 2381.5 76 3 4 9 89 3 122 3 26 +13867 146 123 342.955 2381.5 76 1 4 9 89 3 120 3 24 +13868 146 124 349.025 2381.5 76 2 4 9 89 3 121 3 25 +13869 146 125 355.095 2381.5 76 4 4 9 89 3 123 3 27 +13870 146 126 361.165 2381.5 76 6 4 9 89 3 125 3 29 +13871 146 127 367.235 2381.5 79 39 4 9 90 2 118 3 22 +13872 146 128 373.305 2381.5 80 5 4 9 90 3 124 3 28 +13873 146 129 379.375 2381.5 80 3 4 9 90 3 122 3 26 +13874 146 130 385.445 2381.5 80 1 4 9 90 3 120 3 24 +13875 146 131 391.515 2381.5 80 2 4 9 90 3 121 3 25 +13876 146 132 397.585 2381.5 80 4 4 9 90 3 123 3 27 +13877 146 133 403.655 2381.5 80 6 4 9 90 3 125 3 29 +13878 147 0 -403.655 2396.5 4 11 4 9 71 3 130 4 2 +13879 147 1 -397.585 2396.5 4 9 4 9 71 3 128 4 0 +13880 147 2 -391.515 2396.5 4 7 4 9 71 3 126 3 30 +13881 147 3 -385.445 2396.5 4 8 4 9 71 3 127 3 31 +13882 147 4 -379.375 2396.5 4 10 4 9 71 3 129 4 1 +13883 147 5 -373.305 2396.5 4 12 4 9 71 3 131 4 3 +13884 147 6 -367.235 2396.5 8 13 4 9 72 3 132 4 4 +13885 147 7 -361.165 2396.5 8 11 4 9 72 3 130 4 2 +13886 147 8 -355.095 2396.5 8 9 4 9 72 3 128 4 0 +13887 147 9 -349.025 2396.5 8 7 4 9 72 3 126 3 30 +13888 147 10 -342.955 2396.5 8 8 4 9 72 3 127 3 31 +13889 147 11 -336.885 2396.5 8 10 4 9 72 3 129 4 1 +13890 147 12 -330.815 2396.5 8 12 4 9 72 3 131 4 3 +13891 147 13 -324.745 2396.5 12 11 4 9 73 3 130 4 2 +13892 147 14 -318.675 2396.5 12 9 4 9 73 3 128 4 0 +13893 147 15 -312.605 2396.5 12 7 4 9 73 3 126 3 30 +13894 147 16 -306.535 2396.5 12 6 4 9 73 3 125 3 29 +13895 147 17 -300.465 2396.5 12 8 4 9 73 3 127 3 31 +13896 147 18 -294.395 2396.5 12 10 4 9 73 3 129 4 1 +13897 147 19 -288.325 2396.5 12 12 4 9 73 3 131 4 3 +13898 147 20 -282.255 2396.5 16 13 4 9 74 3 132 4 4 +13899 147 21 -276.185 2396.5 16 11 4 9 74 3 130 4 2 +13900 147 22 -270.115 2396.5 16 9 4 9 74 3 128 4 0 +13901 147 23 -264.045 2396.5 16 7 4 9 74 3 126 3 30 +13902 147 24 -257.975 2396.5 16 8 4 9 74 3 127 3 31 +13903 147 25 -251.905 2396.5 16 10 4 9 74 3 129 4 1 +13904 147 26 -245.835 2396.5 16 12 4 9 74 3 131 4 3 +13905 147 27 -239.765 2396.5 20 13 4 9 75 3 132 4 4 +13906 147 28 -233.695 2396.5 20 11 4 9 75 3 130 4 2 +13907 147 29 -227.625 2396.5 20 9 4 9 75 3 128 4 0 +13908 147 30 -221.555 2396.5 20 8 4 9 75 3 127 3 31 +13909 147 31 -215.485 2396.5 20 10 4 9 75 3 129 4 1 +13910 147 32 -209.415 2396.5 20 12 4 9 75 3 131 4 3 +13911 147 33 -203.345 2396.5 24 11 4 9 76 3 130 4 2 +13912 147 34 -197.275 2396.5 24 9 4 9 76 3 128 4 0 +13913 147 35 -191.205 2396.5 24 7 4 9 76 3 126 3 30 +13914 147 36 -185.135 2396.5 24 5 4 9 76 3 124 3 28 +13915 147 37 -179.065 2396.5 24 8 4 9 76 3 127 3 31 +13916 147 38 -172.995 2396.5 24 10 4 9 76 3 129 4 1 +13917 147 39 -166.925 2396.5 24 12 4 9 76 3 131 4 3 +13918 147 40 -160.855 2396.5 28 13 4 9 77 3 132 4 4 +13919 147 41 -154.785 2396.5 28 11 4 9 77 3 130 4 2 +13920 147 42 -148.715 2396.5 28 9 4 9 77 3 128 4 0 +13921 147 43 -142.645 2396.5 28 7 4 9 77 3 126 3 30 +13922 147 44 -136.575 2396.5 28 8 4 9 77 3 127 3 31 +13923 147 45 -130.505 2396.5 28 10 4 9 77 3 129 4 1 +13924 147 46 -124.435 2396.5 28 12 4 9 77 3 131 4 3 +13925 147 47 -118.365 2396.5 32 13 4 9 78 3 132 4 4 +13926 147 48 -112.295 2396.5 32 11 4 9 78 3 130 4 2 +13927 147 49 -106.225 2396.5 32 9 4 9 78 3 128 4 0 +13928 147 50 -100.155 2396.5 32 7 4 9 78 3 126 3 30 +13929 147 51 -94.085 2396.5 32 10 4 9 78 3 129 4 1 +13930 147 52 -88.015 2396.5 32 12 4 9 78 3 131 4 3 +13931 147 53 -81.945 2396.5 32 14 4 9 78 3 133 4 5 +13932 147 54 -75.875 2396.5 36 11 4 9 79 3 130 4 2 +13933 147 55 -69.805 2396.5 36 9 4 9 79 3 128 4 0 +13934 147 56 -63.735 2396.5 36 7 4 9 79 3 126 3 30 +13935 147 57 -57.665 2396.5 36 8 4 9 79 3 127 3 31 +13936 147 58 -51.595 2396.5 36 10 4 9 79 3 129 4 1 +13937 147 59 -45.525 2396.5 36 12 4 9 79 3 131 4 3 +13938 147 60 -39.455 2396.5 40 11 4 9 80 3 130 4 2 +13939 147 61 -33.385 2396.5 40 9 4 9 80 3 128 4 0 +13940 147 62 -27.315 2396.5 40 7 4 9 80 3 126 3 30 +13941 147 63 -21.245 2396.5 40 5 4 9 80 3 124 3 28 +13942 147 64 -15.175 2396.5 40 8 4 9 80 3 127 3 31 +13943 147 65 -9.105 2396.5 40 10 4 9 80 3 129 4 1 +13944 147 66 -3.035 2396.5 40 12 4 9 80 3 131 4 3 +13945 147 67 3.035 2396.5 44 11 4 9 81 3 130 4 2 +13946 147 68 9.105 2396.5 44 9 4 9 81 3 128 4 0 +13947 147 69 15.175 2396.5 44 7 4 9 81 3 126 3 30 +13948 147 70 21.245 2396.5 44 6 4 9 81 3 125 3 29 +13949 147 71 27.315 2396.5 44 8 4 9 81 3 127 3 31 +13950 147 72 33.385 2396.5 44 10 4 9 81 3 129 4 1 +13951 147 73 39.455 2396.5 44 12 4 9 81 3 131 4 3 +13952 147 74 45.525 2396.5 48 11 4 9 82 3 130 4 2 +13953 147 75 51.595 2396.5 48 9 4 9 82 3 128 4 0 +13954 147 76 57.665 2396.5 48 7 4 9 82 3 126 3 30 +13955 147 77 63.735 2396.5 48 8 4 9 82 3 127 3 31 +13956 147 78 69.805 2396.5 48 10 4 9 82 3 129 4 1 +13957 147 79 75.875 2396.5 48 12 4 9 82 3 131 4 3 +13958 147 80 81.945 2396.5 52 13 4 9 83 3 132 4 4 +13959 147 81 88.015 2396.5 52 11 4 9 83 3 130 4 2 +13960 147 82 94.085 2396.5 52 9 4 9 83 3 128 4 0 +13961 147 83 100.155 2396.5 52 8 4 9 83 3 127 3 31 +13962 147 84 106.225 2396.5 52 10 4 9 83 3 129 4 1 +13963 147 85 112.295 2396.5 52 12 4 9 83 3 131 4 3 +13964 147 86 118.365 2396.5 52 14 4 9 83 3 133 4 5 +13965 147 87 124.435 2396.5 56 11 4 9 84 3 130 4 2 +13966 147 88 130.505 2396.5 56 9 4 9 84 3 128 4 0 +13967 147 89 136.575 2396.5 56 7 4 9 84 3 126 3 30 +13968 147 90 142.645 2396.5 56 8 4 9 84 3 127 3 31 +13969 147 91 148.715 2396.5 56 10 4 9 84 3 129 4 1 +13970 147 92 154.785 2396.5 56 12 4 9 84 3 131 4 3 +13971 147 93 160.855 2396.5 56 14 4 9 84 3 133 4 5 +13972 147 94 166.925 2396.5 60 11 4 9 85 3 130 4 2 +13973 147 95 172.995 2396.5 60 9 4 9 85 3 128 4 0 +13974 147 96 179.065 2396.5 60 7 4 9 85 3 126 3 30 +13975 147 97 185.135 2396.5 60 6 4 9 85 3 125 3 29 +13976 147 98 191.205 2396.5 60 8 4 9 85 3 127 3 31 +13977 147 99 197.275 2396.5 60 10 4 9 85 3 129 4 1 +13978 147 100 203.345 2396.5 60 12 4 9 85 3 131 4 3 +13979 147 101 209.415 2396.5 64 11 4 9 86 3 130 4 2 +13980 147 102 215.485 2396.5 64 9 4 9 86 3 128 4 0 +13981 147 103 221.555 2396.5 64 7 4 9 86 3 126 3 30 +13982 147 104 227.625 2396.5 64 10 4 9 86 3 129 4 1 +13983 147 105 233.695 2396.5 64 12 4 9 86 3 131 4 3 +13984 147 106 239.765 2396.5 64 14 4 9 86 3 133 4 5 +13985 147 107 245.835 2396.5 68 11 4 9 87 3 130 4 2 +13986 147 108 251.905 2396.5 68 9 4 9 87 3 128 4 0 +13987 147 109 257.975 2396.5 68 7 4 9 87 3 126 3 30 +13988 147 110 264.045 2396.5 68 8 4 9 87 3 127 3 31 +13989 147 111 270.115 2396.5 68 10 4 9 87 3 129 4 1 +13990 147 112 276.185 2396.5 68 12 4 9 87 3 131 4 3 +13991 147 113 282.255 2396.5 68 14 4 9 87 3 133 4 5 +13992 147 114 288.325 2396.5 72 11 4 9 88 3 130 4 2 +13993 147 115 294.395 2396.5 72 9 4 9 88 3 128 4 0 +13994 147 116 300.465 2396.5 72 7 4 9 88 3 126 3 30 +13995 147 117 306.535 2396.5 72 5 4 9 88 3 124 3 28 +13996 147 118 312.605 2396.5 72 8 4 9 88 3 127 3 31 +13997 147 119 318.675 2396.5 72 10 4 9 88 3 129 4 1 +13998 147 120 324.745 2396.5 72 12 4 9 88 3 131 4 3 +13999 147 121 330.815 2396.5 76 11 4 9 89 3 130 4 2 +14000 147 122 336.885 2396.5 76 9 4 9 89 3 128 4 0 +14001 147 123 342.955 2396.5 76 7 4 9 89 3 126 3 30 +14002 147 124 349.025 2396.5 76 8 4 9 89 3 127 3 31 +14003 147 125 355.095 2396.5 76 10 4 9 89 3 129 4 1 +14004 147 126 361.165 2396.5 76 12 4 9 89 3 131 4 3 +14005 147 127 367.235 2396.5 76 14 4 9 89 3 133 4 5 +14006 147 128 373.305 2396.5 80 11 4 9 90 3 130 4 2 +14007 147 129 379.375 2396.5 80 9 4 9 90 3 128 4 0 +14008 147 130 385.445 2396.5 80 7 4 9 90 3 126 3 30 +14009 147 131 391.515 2396.5 80 8 4 9 90 3 127 3 31 +14010 147 132 397.585 2396.5 80 10 4 9 90 3 129 4 1 +14011 147 133 403.655 2396.5 80 12 4 9 90 3 131 4 3 +14012 148 0 -409.725 2411.5 4 19 4 9 71 3 138 4 10 +14013 148 1 -403.655 2411.5 4 17 4 9 71 3 136 4 8 +14014 148 2 -397.585 2411.5 4 15 4 9 71 3 134 4 6 +14015 148 3 -391.515 2411.5 4 13 4 9 71 3 132 4 4 +14016 148 4 -385.445 2411.5 4 14 4 9 71 3 133 4 5 +14017 148 5 -379.375 2411.5 4 16 4 9 71 3 135 4 7 +14018 148 6 -373.305 2411.5 4 18 4 9 71 3 137 4 9 +14019 148 7 -367.235 2411.5 8 19 4 9 72 3 138 4 10 +14020 148 8 -361.165 2411.5 8 17 4 9 72 3 136 4 8 +14021 148 9 -355.095 2411.5 8 15 4 9 72 3 134 4 6 +14022 148 10 -349.025 2411.5 8 14 4 9 72 3 133 4 5 +14023 148 11 -342.955 2411.5 8 16 4 9 72 3 135 4 7 +14024 148 12 -336.885 2411.5 8 18 4 9 72 3 137 4 9 +14025 148 13 -330.815 2411.5 8 20 4 9 72 3 139 4 11 +14026 148 14 -324.745 2411.5 12 17 4 9 73 3 136 4 8 +14027 148 15 -318.675 2411.5 12 15 4 9 73 3 134 4 6 +14028 148 16 -312.605 2411.5 12 13 4 9 73 3 132 4 4 +14029 148 17 -306.535 2411.5 12 14 4 9 73 3 133 4 5 +14030 148 18 -300.465 2411.5 12 16 4 9 73 3 135 4 7 +14031 148 19 -294.395 2411.5 12 18 4 9 73 3 137 4 9 +14032 148 20 -288.325 2411.5 12 20 4 9 73 3 139 4 11 +14033 148 21 -282.255 2411.5 16 19 4 9 74 3 138 4 10 +14034 148 22 -276.185 2411.5 16 17 4 9 74 3 136 4 8 +14035 148 23 -270.115 2411.5 16 15 4 9 74 3 134 4 6 +14036 148 24 -264.045 2411.5 16 14 4 9 74 3 133 4 5 +14037 148 25 -257.975 2411.5 16 16 4 9 74 3 135 4 7 +14038 148 26 -251.905 2411.5 16 18 4 9 74 3 137 4 9 +14039 148 27 -245.835 2411.5 20 19 4 9 75 3 138 4 10 +14040 148 28 -239.765 2411.5 20 17 4 9 75 3 136 4 8 +14041 148 29 -233.695 2411.5 20 15 4 9 75 3 134 4 6 +14042 148 30 -227.625 2411.5 20 14 4 9 75 3 133 4 5 +14043 148 31 -221.555 2411.5 20 16 4 9 75 3 135 4 7 +14044 148 32 -215.485 2411.5 20 18 4 9 75 3 137 4 9 +14045 148 33 -209.415 2411.5 20 20 4 9 75 3 139 4 11 +14046 148 34 -203.345 2411.5 24 17 4 9 76 3 136 4 8 +14047 148 35 -197.275 2411.5 24 15 4 9 76 3 134 4 6 +14048 148 36 -191.205 2411.5 24 13 4 9 76 3 132 4 4 +14049 148 37 -185.135 2411.5 24 14 4 9 76 3 133 4 5 +14050 148 38 -179.065 2411.5 24 16 4 9 76 3 135 4 7 +14051 148 39 -172.995 2411.5 24 18 4 9 76 3 137 4 9 +14052 148 40 -166.925 2411.5 24 20 4 9 76 3 139 4 11 +14053 148 41 -160.855 2411.5 28 19 4 9 77 3 138 4 10 +14054 148 42 -154.785 2411.5 28 17 4 9 77 3 136 4 8 +14055 148 43 -148.715 2411.5 28 15 4 9 77 3 134 4 6 +14056 148 44 -142.645 2411.5 28 14 4 9 77 3 133 4 5 +14057 148 45 -136.575 2411.5 28 16 4 9 77 3 135 4 7 +14058 148 46 -130.505 2411.5 28 18 4 9 77 3 137 4 9 +14059 148 47 -124.435 2411.5 28 20 4 9 77 3 139 4 11 +14060 148 48 -118.365 2411.5 32 19 4 9 78 3 138 4 10 +14061 148 49 -112.295 2411.5 32 17 4 9 78 3 136 4 8 +14062 148 50 -106.225 2411.5 32 15 4 9 78 3 134 4 6 +14063 148 51 -100.155 2411.5 32 16 4 9 78 3 135 4 7 +14064 148 52 -94.085 2411.5 32 18 4 9 78 3 137 4 9 +14065 148 53 -88.015 2411.5 32 20 4 9 78 3 139 4 11 +14066 148 54 -81.945 2411.5 36 17 4 9 79 3 136 4 8 +14067 148 55 -75.875 2411.5 36 15 4 9 79 3 134 4 6 +14068 148 56 -69.805 2411.5 36 13 4 9 79 3 132 4 4 +14069 148 57 -63.735 2411.5 36 14 4 9 79 3 133 4 5 +14070 148 58 -57.665 2411.5 36 16 4 9 79 3 135 4 7 +14071 148 59 -51.595 2411.5 36 18 4 9 79 3 137 4 9 +14072 148 60 -45.525 2411.5 36 20 4 9 79 3 139 4 11 +14073 148 61 -39.455 2411.5 40 17 4 9 80 3 136 4 8 +14074 148 62 -33.385 2411.5 40 15 4 9 80 3 134 4 6 +14075 148 63 -27.315 2411.5 40 13 4 9 80 3 132 4 4 +14076 148 64 -21.245 2411.5 40 14 4 9 80 3 133 4 5 +14077 148 65 -15.175 2411.5 40 16 4 9 80 3 135 4 7 +14078 148 66 -9.105 2411.5 40 18 4 9 80 3 137 4 9 +14079 148 67 -3.035 2411.5 40 20 4 9 80 3 139 4 11 +14080 148 68 3.035 2411.5 44 19 4 9 81 3 138 4 10 +14081 148 69 9.105 2411.5 44 17 4 9 81 3 136 4 8 +14082 148 70 15.175 2411.5 44 15 4 9 81 3 134 4 6 +14083 148 71 21.245 2411.5 44 13 4 9 81 3 132 4 4 +14084 148 72 27.315 2411.5 44 14 4 9 81 3 133 4 5 +14085 148 73 33.385 2411.5 44 16 4 9 81 3 135 4 7 +14086 148 74 39.455 2411.5 44 18 4 9 81 3 137 4 9 +14087 148 75 45.525 2411.5 48 19 4 9 82 3 138 4 10 +14088 148 76 51.595 2411.5 48 17 4 9 82 3 136 4 8 +14089 148 77 57.665 2411.5 48 15 4 9 82 3 134 4 6 +14090 148 78 63.735 2411.5 48 13 4 9 82 3 132 4 4 +14091 148 79 69.805 2411.5 48 14 4 9 82 3 133 4 5 +14092 148 80 75.875 2411.5 48 16 4 9 82 3 135 4 7 +14093 148 81 81.945 2411.5 48 18 4 9 82 3 137 4 9 +14094 148 82 88.015 2411.5 52 19 4 9 83 3 138 4 10 +14095 148 83 94.085 2411.5 52 17 4 9 83 3 136 4 8 +14096 148 84 100.155 2411.5 52 15 4 9 83 3 134 4 6 +14097 148 85 106.225 2411.5 52 16 4 9 83 3 135 4 7 +14098 148 86 112.295 2411.5 52 18 4 9 83 3 137 4 9 +14099 148 87 118.365 2411.5 52 20 4 9 83 3 139 4 11 +14100 148 88 124.435 2411.5 56 19 4 9 84 3 138 4 10 +14101 148 89 130.505 2411.5 56 17 4 9 84 3 136 4 8 +14102 148 90 136.575 2411.5 56 15 4 9 84 3 134 4 6 +14103 148 91 142.645 2411.5 56 13 4 9 84 3 132 4 4 +14104 148 92 148.715 2411.5 56 16 4 9 84 3 135 4 7 +14105 148 93 154.785 2411.5 56 18 4 9 84 3 137 4 9 +14106 148 94 160.855 2411.5 56 20 4 9 84 3 139 4 11 +14107 148 95 166.925 2411.5 60 19 4 9 85 3 138 4 10 +14108 148 96 172.995 2411.5 60 17 4 9 85 3 136 4 8 +14109 148 97 179.065 2411.5 60 15 4 9 85 3 134 4 6 +14110 148 98 185.135 2411.5 60 13 4 9 85 3 132 4 4 +14111 148 99 191.205 2411.5 60 14 4 9 85 3 133 4 5 +14112 148 100 197.275 2411.5 60 16 4 9 85 3 135 4 7 +14113 148 101 203.345 2411.5 60 18 4 9 85 3 137 4 9 +14114 148 102 209.415 2411.5 64 19 4 9 86 3 138 4 10 +14115 148 103 215.485 2411.5 64 17 4 9 86 3 136 4 8 +14116 148 104 221.555 2411.5 64 15 4 9 86 3 134 4 6 +14117 148 105 227.625 2411.5 64 13 4 9 86 3 132 4 4 +14118 148 106 233.695 2411.5 64 16 4 9 86 3 135 4 7 +14119 148 107 239.765 2411.5 64 18 4 9 86 3 137 4 9 +14120 148 108 245.835 2411.5 64 20 4 9 86 3 139 4 11 +14121 148 109 251.905 2411.5 68 17 4 9 87 3 136 4 8 +14122 148 110 257.975 2411.5 68 15 4 9 87 3 134 4 6 +14123 148 111 264.045 2411.5 68 13 4 9 87 3 132 4 4 +14124 148 112 270.115 2411.5 68 16 4 9 87 3 135 4 7 +14125 148 113 276.185 2411.5 68 18 4 9 87 3 137 4 9 +14126 148 114 282.255 2411.5 68 20 4 9 87 3 139 4 11 +14127 148 115 288.325 2411.5 72 19 4 9 88 3 138 4 10 +14128 148 116 294.395 2411.5 72 17 4 9 88 3 136 4 8 +14129 148 117 300.465 2411.5 72 15 4 9 88 3 134 4 6 +14130 148 118 306.535 2411.5 72 13 4 9 88 3 132 4 4 +14131 148 119 312.605 2411.5 72 14 4 9 88 3 133 4 5 +14132 148 120 318.675 2411.5 72 16 4 9 88 3 135 4 7 +14133 148 121 324.745 2411.5 72 18 4 9 88 3 137 4 9 +14134 148 122 330.815 2411.5 76 19 4 9 89 3 138 4 10 +14135 148 123 336.885 2411.5 76 17 4 9 89 3 136 4 8 +14136 148 124 342.955 2411.5 76 15 4 9 89 3 134 4 6 +14137 148 125 349.025 2411.5 76 13 4 9 89 3 132 4 4 +14138 148 126 355.095 2411.5 76 16 4 9 89 3 135 4 7 +14139 148 127 361.165 2411.5 76 18 4 9 89 3 137 4 9 +14140 148 128 367.235 2411.5 76 20 4 9 89 3 139 4 11 +14141 148 129 373.305 2411.5 80 17 4 9 90 3 136 4 8 +14142 148 130 379.375 2411.5 80 15 4 9 90 3 134 4 6 +14143 148 131 385.445 2411.5 80 13 4 9 90 3 132 4 4 +14144 148 132 391.515 2411.5 80 14 4 9 90 3 133 4 5 +14145 148 133 397.585 2411.5 80 16 4 9 90 3 135 4 7 +14146 148 134 403.655 2411.5 80 18 4 9 90 3 137 4 9 +14147 148 135 409.725 2411.5 80 20 4 9 90 3 139 4 11 +14148 149 0 -409.725 2426.5 4 25 4 9 71 3 144 4 16 +14149 149 1 -403.655 2426.5 4 23 4 9 71 3 142 4 14 +14150 149 2 -397.585 2426.5 4 21 4 9 71 3 140 4 12 +14151 149 3 -391.515 2426.5 4 20 4 9 71 3 139 4 11 +14152 149 4 -385.445 2426.5 4 22 4 9 71 3 141 4 13 +14153 149 5 -379.375 2426.5 4 24 4 9 71 3 143 4 15 +14154 149 6 -373.305 2426.5 4 26 4 9 71 3 145 4 17 +14155 149 7 -367.235 2426.5 8 25 4 9 72 3 144 4 16 +14156 149 8 -361.165 2426.5 8 23 4 9 72 3 142 4 14 +14157 149 9 -355.095 2426.5 8 21 4 9 72 3 140 4 12 +14158 149 10 -349.025 2426.5 8 22 4 9 72 3 141 4 13 +14159 149 11 -342.955 2426.5 8 24 4 9 72 3 143 4 15 +14160 149 12 -336.885 2426.5 8 26 4 9 72 3 145 4 17 +14161 149 13 -330.815 2426.5 12 25 4 9 73 3 144 4 16 +14162 149 14 -324.745 2426.5 12 23 4 9 73 3 142 4 14 +14163 149 15 -318.675 2426.5 12 21 4 9 73 3 140 4 12 +14164 149 16 -312.605 2426.5 12 19 4 9 73 3 138 4 10 +14165 149 17 -306.535 2426.5 12 22 4 9 73 3 141 4 13 +14166 149 18 -300.465 2426.5 12 24 4 9 73 3 143 4 15 +14167 149 19 -294.395 2426.5 12 26 4 9 73 3 145 4 17 +14168 149 20 -288.325 2426.5 16 25 4 9 74 3 144 4 16 +14169 149 21 -282.255 2426.5 16 23 4 9 74 3 142 4 14 +14170 149 22 -276.185 2426.5 16 21 4 9 74 3 140 4 12 +14171 149 23 -270.115 2426.5 16 20 4 9 74 3 139 4 11 +14172 149 24 -264.045 2426.5 16 22 4 9 74 3 141 4 13 +14173 149 25 -257.975 2426.5 16 24 4 9 74 3 143 4 15 +14174 149 26 -251.905 2426.5 16 26 4 9 74 3 145 4 17 +14175 149 27 -245.835 2426.5 20 27 4 9 75 3 146 4 18 +14176 149 28 -239.765 2426.5 20 25 4 9 75 3 144 4 16 +14177 149 29 -233.695 2426.5 20 23 4 9 75 3 142 4 14 +14178 149 30 -227.625 2426.5 20 21 4 9 75 3 140 4 12 +14179 149 31 -221.555 2426.5 20 22 4 9 75 3 141 4 13 +14180 149 32 -215.485 2426.5 20 24 4 9 75 3 143 4 15 +14181 149 33 -209.415 2426.5 20 26 4 9 75 3 145 4 17 +14182 149 34 -203.345 2426.5 24 25 4 9 76 3 144 4 16 +14183 149 35 -197.275 2426.5 24 23 4 9 76 3 142 4 14 +14184 149 36 -191.205 2426.5 24 21 4 9 76 3 140 4 12 +14185 149 37 -185.135 2426.5 24 19 4 9 76 3 138 4 10 +14186 149 38 -179.065 2426.5 24 22 4 9 76 3 141 4 13 +14187 149 39 -172.995 2426.5 24 24 4 9 76 3 143 4 15 +14188 149 40 -166.925 2426.5 24 26 4 9 76 3 145 4 17 +14189 149 41 -160.855 2426.5 28 25 4 9 77 3 144 4 16 +14190 149 42 -154.785 2426.5 28 23 4 9 77 3 142 4 14 +14191 149 43 -148.715 2426.5 28 21 4 9 77 3 140 4 12 +14192 149 44 -142.645 2426.5 28 22 4 9 77 3 141 4 13 +14193 149 45 -136.575 2426.5 28 24 4 9 77 3 143 4 15 +14194 149 46 -130.505 2426.5 28 26 4 9 77 3 145 4 17 +14195 149 47 -124.435 2426.5 28 28 4 9 77 3 147 4 19 +14196 149 48 -118.365 2426.5 32 25 4 9 78 3 144 4 16 +14197 149 49 -112.295 2426.5 32 23 4 9 78 3 142 4 14 +14198 149 50 -106.225 2426.5 32 21 4 9 78 3 140 4 12 +14199 149 51 -100.155 2426.5 32 22 4 9 78 3 141 4 13 +14200 149 52 -94.085 2426.5 32 24 4 9 78 3 143 4 15 +14201 149 53 -88.015 2426.5 32 26 4 9 78 3 145 4 17 +14202 149 54 -81.945 2426.5 36 25 4 9 79 3 144 4 16 +14203 149 55 -75.875 2426.5 36 23 4 9 79 3 142 4 14 +14204 149 56 -69.805 2426.5 36 21 4 9 79 3 140 4 12 +14205 149 57 -63.735 2426.5 36 19 4 9 79 3 138 4 10 +14206 149 58 -57.665 2426.5 36 22 4 9 79 3 141 4 13 +14207 149 59 -51.595 2426.5 36 24 4 9 79 3 143 4 15 +14208 149 60 -45.525 2426.5 36 26 4 9 79 3 145 4 17 +14209 149 61 -39.455 2426.5 40 25 4 9 80 3 144 4 16 +14210 149 62 -33.385 2426.5 40 23 4 9 80 3 142 4 14 +14211 149 63 -27.315 2426.5 40 21 4 9 80 3 140 4 12 +14212 149 64 -21.245 2426.5 40 19 4 9 80 3 138 4 10 +14213 149 65 -15.175 2426.5 40 22 4 9 80 3 141 4 13 +14214 149 66 -9.105 2426.5 40 24 4 9 80 3 143 4 15 +14215 149 67 -3.035 2426.5 40 26 4 9 80 3 145 4 17 +14216 149 68 3.035 2426.5 44 25 4 9 81 3 144 4 16 +14217 149 69 9.105 2426.5 44 23 4 9 81 3 142 4 14 +14218 149 70 15.175 2426.5 44 21 4 9 81 3 140 4 12 +14219 149 71 21.245 2426.5 44 20 4 9 81 3 139 4 11 +14220 149 72 27.315 2426.5 44 22 4 9 81 3 141 4 13 +14221 149 73 33.385 2426.5 44 24 4 9 81 3 143 4 15 +14222 149 74 39.455 2426.5 44 26 4 9 81 3 145 4 17 +14223 149 75 45.525 2426.5 48 25 4 9 82 3 144 4 16 +14224 149 76 51.595 2426.5 48 23 4 9 82 3 142 4 14 +14225 149 77 57.665 2426.5 48 21 4 9 82 3 140 4 12 +14226 149 78 63.735 2426.5 48 20 4 9 82 3 139 4 11 +14227 149 79 69.805 2426.5 48 22 4 9 82 3 141 4 13 +14228 149 80 75.875 2426.5 48 24 4 9 82 3 143 4 15 +14229 149 81 81.945 2426.5 48 26 4 9 82 3 145 4 17 +14230 149 82 88.015 2426.5 52 25 4 9 83 3 144 4 16 +14231 149 83 94.085 2426.5 52 23 4 9 83 3 142 4 14 +14232 149 84 100.155 2426.5 52 21 4 9 83 3 140 4 12 +14233 149 85 106.225 2426.5 52 22 4 9 83 3 141 4 13 +14234 149 86 112.295 2426.5 52 24 4 9 83 3 143 4 15 +14235 149 87 118.365 2426.5 52 26 4 9 83 3 145 4 17 +14236 149 88 124.435 2426.5 56 27 4 9 84 3 146 4 18 +14237 149 89 130.505 2426.5 56 25 4 9 84 3 144 4 16 +14238 149 90 136.575 2426.5 56 23 4 9 84 3 142 4 14 +14239 149 91 142.645 2426.5 56 21 4 9 84 3 140 4 12 +14240 149 92 148.715 2426.5 56 22 4 9 84 3 141 4 13 +14241 149 93 154.785 2426.5 56 24 4 9 84 3 143 4 15 +14242 149 94 160.855 2426.5 56 26 4 9 84 3 145 4 17 +14243 149 95 166.925 2426.5 60 25 4 9 85 3 144 4 16 +14244 149 96 172.995 2426.5 60 23 4 9 85 3 142 4 14 +14245 149 97 179.065 2426.5 60 21 4 9 85 3 140 4 12 +14246 149 98 185.135 2426.5 60 20 4 9 85 3 139 4 11 +14247 149 99 191.205 2426.5 60 22 4 9 85 3 141 4 13 +14248 149 100 197.275 2426.5 60 24 4 9 85 3 143 4 15 +14249 149 101 203.345 2426.5 60 26 4 9 85 3 145 4 17 +14250 149 102 209.415 2426.5 64 25 4 9 86 3 144 4 16 +14251 149 103 215.485 2426.5 64 23 4 9 86 3 142 4 14 +14252 149 104 221.555 2426.5 64 21 4 9 86 3 140 4 12 +14253 149 105 227.625 2426.5 64 22 4 9 86 3 141 4 13 +14254 149 106 233.695 2426.5 64 24 4 9 86 3 143 4 15 +14255 149 107 239.765 2426.5 64 26 4 9 86 3 145 4 17 +14256 149 108 245.835 2426.5 64 28 4 9 86 3 147 4 19 +14257 149 109 251.905 2426.5 68 25 4 9 87 3 144 4 16 +14258 149 110 257.975 2426.5 68 23 4 9 87 3 142 4 14 +14259 149 111 264.045 2426.5 68 21 4 9 87 3 140 4 12 +14260 149 112 270.115 2426.5 68 19 4 9 87 3 138 4 10 +14261 149 113 276.185 2426.5 68 22 4 9 87 3 141 4 13 +14262 149 114 282.255 2426.5 68 24 4 9 87 3 143 4 15 +14263 149 115 288.325 2426.5 68 26 4 9 87 3 145 4 17 +14264 149 116 294.395 2426.5 72 25 4 9 88 3 144 4 16 +14265 149 117 300.465 2426.5 72 23 4 9 88 3 142 4 14 +14266 149 118 306.535 2426.5 72 21 4 9 88 3 140 4 12 +14267 149 119 312.605 2426.5 72 20 4 9 88 3 139 4 11 +14268 149 120 318.675 2426.5 72 22 4 9 88 3 141 4 13 +14269 149 121 324.745 2426.5 72 24 4 9 88 3 143 4 15 +14270 149 122 330.815 2426.5 72 26 4 9 88 3 145 4 17 +14271 149 123 336.885 2426.5 76 25 4 9 89 3 144 4 16 +14272 149 124 342.955 2426.5 76 23 4 9 89 3 142 4 14 +14273 149 125 349.025 2426.5 76 21 4 9 89 3 140 4 12 +14274 149 126 355.095 2426.5 76 22 4 9 89 3 141 4 13 +14275 149 127 361.165 2426.5 76 24 4 9 89 3 143 4 15 +14276 149 128 367.235 2426.5 76 26 4 9 89 3 145 4 17 +14277 149 129 373.305 2426.5 80 25 4 9 90 3 144 4 16 +14278 149 130 379.375 2426.5 80 23 4 9 90 3 142 4 14 +14279 149 131 385.445 2426.5 80 21 4 9 90 3 140 4 12 +14280 149 132 391.515 2426.5 80 19 4 9 90 3 138 4 10 +14281 149 133 397.585 2426.5 80 22 4 9 90 3 141 4 13 +14282 149 134 403.655 2426.5 80 24 4 9 90 3 143 4 15 +14283 149 135 409.725 2426.5 80 26 4 9 90 3 145 4 17 +14284 150 0 -415.795 2441.5 4 33 4 9 71 3 152 4 24 +14285 150 1 -409.725 2441.5 4 31 4 9 71 3 150 4 22 +14286 150 2 -403.655 2441.5 4 29 4 9 71 3 148 4 20 +14287 150 3 -397.585 2441.5 4 27 4 9 71 3 146 4 18 +14288 150 4 -391.515 2441.5 4 28 4 9 71 3 147 4 19 +14289 150 5 -385.445 2441.5 4 30 4 9 71 3 149 4 21 +14290 150 6 -379.375 2441.5 4 32 4 9 71 3 151 4 23 +14291 150 7 -373.305 2441.5 8 33 4 9 72 3 152 4 24 +14292 150 8 -367.235 2441.5 8 31 4 9 72 3 150 4 22 +14293 150 9 -361.165 2441.5 8 29 4 9 72 3 148 4 20 +14294 150 10 -355.095 2441.5 8 27 4 9 72 3 146 4 18 +14295 150 11 -349.025 2441.5 8 28 4 9 72 3 147 4 19 +14296 150 12 -342.955 2441.5 8 30 4 9 72 3 149 4 21 +14297 150 13 -336.885 2441.5 8 32 4 9 72 3 151 4 23 +14298 150 14 -330.815 2441.5 12 33 4 9 73 3 152 4 24 +14299 150 15 -324.745 2441.5 12 31 4 9 73 3 150 4 22 +14300 150 16 -318.675 2441.5 12 29 4 9 73 3 148 4 20 +14301 150 17 -312.605 2441.5 12 27 4 9 73 3 146 4 18 +14302 150 18 -306.535 2441.5 12 28 4 9 73 3 147 4 19 +14303 150 19 -300.465 2441.5 12 30 4 9 73 3 149 4 21 +14304 150 20 -294.395 2441.5 12 32 4 9 73 3 151 4 23 +14305 150 21 -288.325 2441.5 16 33 4 9 74 3 152 4 24 +14306 150 22 -282.255 2441.5 16 31 4 9 74 3 150 4 22 +14307 150 23 -276.185 2441.5 16 29 4 9 74 3 148 4 20 +14308 150 24 -270.115 2441.5 16 27 4 9 74 3 146 4 18 +14309 150 25 -264.045 2441.5 16 28 4 9 74 3 147 4 19 +14310 150 26 -257.975 2441.5 16 30 4 9 74 3 149 4 21 +14311 150 27 -251.905 2441.5 16 32 4 9 74 3 151 4 23 +14312 150 28 -245.835 2441.5 20 33 4 9 75 3 152 4 24 +14313 150 29 -239.765 2441.5 20 31 4 9 75 3 150 4 22 +14314 150 30 -233.695 2441.5 20 29 4 9 75 3 148 4 20 +14315 150 31 -227.625 2441.5 20 28 4 9 75 3 147 4 19 +14316 150 32 -221.555 2441.5 20 30 4 9 75 3 149 4 21 +14317 150 33 -215.485 2441.5 20 32 4 9 75 3 151 4 23 +14318 150 34 -209.415 2441.5 20 34 4 9 75 3 153 4 25 +14319 150 35 -203.345 2441.5 24 31 4 9 76 3 150 4 22 +14320 150 36 -197.275 2441.5 24 29 4 9 76 3 148 4 20 +14321 150 37 -191.205 2441.5 24 27 4 9 76 3 146 4 18 +14322 150 38 -185.135 2441.5 24 28 4 9 76 3 147 4 19 +14323 150 39 -179.065 2441.5 24 30 4 9 76 3 149 4 21 +14324 150 40 -172.995 2441.5 24 32 4 9 76 3 151 4 23 +14325 150 41 -166.925 2441.5 24 34 4 9 76 3 153 4 25 +14326 150 42 -160.855 2441.5 28 31 4 9 77 3 150 4 22 +14327 150 43 -154.785 2441.5 28 29 4 9 77 3 148 4 20 +14328 150 44 -148.715 2441.5 28 27 4 9 77 3 146 4 18 +14329 150 45 -142.645 2441.5 28 30 4 9 77 3 149 4 21 +14330 150 46 -136.575 2441.5 28 32 4 9 77 3 151 4 23 +14331 150 47 -130.505 2441.5 28 34 4 9 77 3 153 4 25 +14332 150 48 -124.435 2441.5 32 33 4 9 78 3 152 4 24 +14333 150 49 -118.365 2441.5 32 31 4 9 78 3 150 4 22 +14334 150 50 -112.295 2441.5 32 29 4 9 78 3 148 4 20 +14335 150 51 -106.225 2441.5 32 27 4 9 78 3 146 4 18 +14336 150 52 -100.155 2441.5 32 28 4 9 78 3 147 4 19 +14337 150 53 -94.085 2441.5 32 30 4 9 78 3 149 4 21 +14338 150 54 -88.015 2441.5 32 32 4 9 78 3 151 4 23 +14339 150 55 -81.945 2441.5 36 31 4 9 79 3 150 4 22 +14340 150 56 -75.875 2441.5 36 29 4 9 79 3 148 4 20 +14341 150 57 -69.805 2441.5 36 27 4 9 79 3 146 4 18 +14342 150 58 -63.735 2441.5 36 28 4 9 79 3 147 4 19 +14343 150 59 -57.665 2441.5 36 30 4 9 79 3 149 4 21 +14344 150 60 -51.595 2441.5 36 32 4 9 79 3 151 4 23 +14345 150 61 -45.525 2441.5 36 34 4 9 79 3 153 4 25 +14346 150 62 -39.455 2441.5 40 31 4 9 80 3 150 4 22 +14347 150 63 -33.385 2441.5 40 29 4 9 80 3 148 4 20 +14348 150 64 -27.315 2441.5 40 27 4 9 80 3 146 4 18 +14349 150 65 -21.245 2441.5 40 28 4 9 80 3 147 4 19 +14350 150 66 -15.175 2441.5 40 30 4 9 80 3 149 4 21 +14351 150 67 -9.105 2441.5 40 32 4 9 80 3 151 4 23 +14352 150 68 -3.035 2441.5 40 34 4 9 80 3 153 4 25 +14353 150 69 3.035 2441.5 44 33 4 9 81 3 152 4 24 +14354 150 70 9.105 2441.5 44 31 4 9 81 3 150 4 22 +14355 150 71 15.175 2441.5 44 29 4 9 81 3 148 4 20 +14356 150 72 21.245 2441.5 44 27 4 9 81 3 146 4 18 +14357 150 73 27.315 2441.5 44 28 4 9 81 3 147 4 19 +14358 150 74 33.385 2441.5 44 30 4 9 81 3 149 4 21 +14359 150 75 39.455 2441.5 44 32 4 9 81 3 151 4 23 +14360 150 76 45.525 2441.5 48 33 4 9 82 3 152 4 24 +14361 150 77 51.595 2441.5 48 31 4 9 82 3 150 4 22 +14362 150 78 57.665 2441.5 48 29 4 9 82 3 148 4 20 +14363 150 79 63.735 2441.5 48 27 4 9 82 3 146 4 18 +14364 150 80 69.805 2441.5 48 28 4 9 82 3 147 4 19 +14365 150 81 75.875 2441.5 48 30 4 9 82 3 149 4 21 +14366 150 82 81.945 2441.5 48 32 4 9 82 3 151 4 23 +14367 150 83 88.015 2441.5 52 31 4 9 83 3 150 4 22 +14368 150 84 94.085 2441.5 52 29 4 9 83 3 148 4 20 +14369 150 85 100.155 2441.5 52 27 4 9 83 3 146 4 18 +14370 150 86 106.225 2441.5 52 28 4 9 83 3 147 4 19 +14371 150 87 112.295 2441.5 52 30 4 9 83 3 149 4 21 +14372 150 88 118.365 2441.5 52 32 4 9 83 3 151 4 23 +14373 150 89 124.435 2441.5 52 34 4 9 83 3 153 4 25 +14374 150 90 130.505 2441.5 56 33 4 9 84 3 152 4 24 +14375 150 91 136.575 2441.5 56 31 4 9 84 3 150 4 22 +14376 150 92 142.645 2441.5 56 29 4 9 84 3 148 4 20 +14377 150 93 148.715 2441.5 56 28 4 9 84 3 147 4 19 +14378 150 94 154.785 2441.5 56 30 4 9 84 3 149 4 21 +14379 150 95 160.855 2441.5 56 32 4 9 84 3 151 4 23 +14380 150 96 166.925 2441.5 60 33 4 9 85 3 152 4 24 +14381 150 97 172.995 2441.5 60 31 4 9 85 3 150 4 22 +14382 150 98 179.065 2441.5 60 29 4 9 85 3 148 4 20 +14383 150 99 185.135 2441.5 60 27 4 9 85 3 146 4 18 +14384 150 100 191.205 2441.5 60 28 4 9 85 3 147 4 19 +14385 150 101 197.275 2441.5 60 30 4 9 85 3 149 4 21 +14386 150 102 203.345 2441.5 60 32 4 9 85 3 151 4 23 +14387 150 103 209.415 2441.5 64 33 4 9 86 3 152 4 24 +14388 150 104 215.485 2441.5 64 31 4 9 86 3 150 4 22 +14389 150 105 221.555 2441.5 64 29 4 9 86 3 148 4 20 +14390 150 106 227.625 2441.5 64 27 4 9 86 3 146 4 18 +14391 150 107 233.695 2441.5 64 30 4 9 86 3 149 4 21 +14392 150 108 239.765 2441.5 64 32 4 9 86 3 151 4 23 +14393 150 109 245.835 2441.5 64 34 4 9 86 3 153 4 25 +14394 150 110 251.905 2441.5 68 31 4 9 87 3 150 4 22 +14395 150 111 257.975 2441.5 68 29 4 9 87 3 148 4 20 +14396 150 112 264.045 2441.5 68 27 4 9 87 3 146 4 18 +14397 150 113 270.115 2441.5 68 28 4 9 87 3 147 4 19 +14398 150 114 276.185 2441.5 68 30 4 9 87 3 149 4 21 +14399 150 115 282.255 2441.5 68 32 4 9 87 3 151 4 23 +14400 150 116 288.325 2441.5 68 34 4 9 87 3 153 4 25 +14401 150 117 294.395 2441.5 72 31 4 9 88 3 150 4 22 +14402 150 118 300.465 2441.5 72 29 4 9 88 3 148 4 20 +14403 150 119 306.535 2441.5 72 27 4 9 88 3 146 4 18 +14404 150 120 312.605 2441.5 72 28 4 9 88 3 147 4 19 +14405 150 121 318.675 2441.5 72 30 4 9 88 3 149 4 21 +14406 150 122 324.745 2441.5 72 32 4 9 88 3 151 4 23 +14407 150 123 330.815 2441.5 72 34 4 9 88 3 153 4 25 +14408 150 124 336.885 2441.5 76 31 4 9 89 3 150 4 22 +14409 150 125 342.955 2441.5 76 29 4 9 89 3 148 4 20 +14410 150 126 349.025 2441.5 76 27 4 9 89 3 146 4 18 +14411 150 127 355.095 2441.5 76 28 4 9 89 3 147 4 19 +14412 150 128 361.165 2441.5 76 30 4 9 89 3 149 4 21 +14413 150 129 367.235 2441.5 76 32 4 9 89 3 151 4 23 +14414 150 130 373.305 2441.5 76 34 4 9 89 3 153 4 25 +14415 150 131 379.375 2441.5 80 31 4 9 90 3 150 4 22 +14416 150 132 385.445 2441.5 80 29 4 9 90 3 148 4 20 +14417 150 133 391.515 2441.5 80 27 4 9 90 3 146 4 18 +14418 150 134 397.585 2441.5 80 28 4 9 90 3 147 4 19 +14419 150 135 403.655 2441.5 80 30 4 9 90 3 149 4 21 +14420 150 136 409.725 2441.5 80 32 4 9 90 3 151 4 23 +14421 150 137 415.795 2441.5 80 34 4 9 90 3 153 4 25 +14422 151 0 -415.795 2456.5 4 39 4 9 71 3 158 4 30 +14423 151 1 -409.725 2456.5 4 37 4 9 71 3 156 4 28 +14424 151 2 -403.655 2456.5 4 35 4 9 71 3 154 4 26 +14425 151 3 -397.585 2456.5 4 34 4 9 71 3 153 4 25 +14426 151 4 -391.515 2456.5 4 36 4 9 71 3 155 4 27 +14427 151 5 -385.445 2456.5 4 38 4 9 71 3 157 4 29 +14428 151 6 -379.375 2456.5 4 40 4 9 71 3 159 4 31 +14429 151 7 -373.305 2456.5 8 39 4 9 72 3 158 4 30 +14430 151 8 -367.235 2456.5 8 37 4 9 72 3 156 4 28 +14431 151 9 -361.165 2456.5 8 35 4 9 72 3 154 4 26 +14432 151 10 -355.095 2456.5 8 34 4 9 72 3 153 4 25 +14433 151 11 -349.025 2456.5 8 36 4 9 72 3 155 4 27 +14434 151 12 -342.955 2456.5 8 38 4 9 72 3 157 4 29 +14435 151 13 -336.885 2456.5 8 40 4 9 72 3 159 4 31 +14436 151 14 -330.815 2456.5 12 39 4 9 73 3 158 4 30 +14437 151 15 -324.745 2456.5 12 37 4 9 73 3 156 4 28 +14438 151 16 -318.675 2456.5 12 35 4 9 73 3 154 4 26 +14439 151 17 -312.605 2456.5 12 34 4 9 73 3 153 4 25 +14440 151 18 -306.535 2456.5 12 36 4 9 73 3 155 4 27 +14441 151 19 -300.465 2456.5 12 38 4 9 73 3 157 4 29 +14442 151 20 -294.395 2456.5 12 40 4 9 73 3 159 4 31 +14443 151 21 -288.325 2456.5 16 39 4 9 74 3 158 4 30 +14444 151 22 -282.255 2456.5 16 37 4 9 74 3 156 4 28 +14445 151 23 -276.185 2456.5 16 35 4 9 74 3 154 4 26 +14446 151 24 -270.115 2456.5 16 34 4 9 74 3 153 4 25 +14447 151 25 -264.045 2456.5 16 36 4 9 74 3 155 4 27 +14448 151 26 -257.975 2456.5 16 38 4 9 74 3 157 4 29 +14449 151 27 -251.905 2456.5 16 40 4 9 74 3 159 4 31 +14450 151 28 -245.835 2456.5 20 39 4 9 75 3 158 4 30 +14451 151 29 -239.765 2456.5 20 37 4 9 75 3 156 4 28 +14452 151 30 -233.695 2456.5 20 35 4 9 75 3 154 4 26 +14453 151 31 -227.625 2456.5 20 36 4 9 75 3 155 4 27 +14454 151 32 -221.555 2456.5 20 38 4 9 75 3 157 4 29 +14455 151 33 -215.485 2456.5 20 40 4 9 75 3 159 4 31 +14456 151 34 -209.415 2456.5 24 39 4 9 76 3 158 4 30 +14457 151 35 -203.345 2456.5 24 37 4 9 76 3 156 4 28 +14458 151 36 -197.275 2456.5 24 35 4 9 76 3 154 4 26 +14459 151 37 -191.205 2456.5 24 33 4 9 76 3 152 4 24 +14460 151 38 -185.135 2456.5 24 36 4 9 76 3 155 4 27 +14461 151 39 -179.065 2456.5 24 38 4 9 76 3 157 4 29 +14462 151 40 -172.995 2456.5 24 40 4 9 76 3 159 4 31 +14463 151 41 -166.925 2456.5 28 39 4 9 77 3 158 4 30 +14464 151 42 -160.855 2456.5 28 37 4 9 77 3 156 4 28 +14465 151 43 -154.785 2456.5 28 35 4 9 77 3 154 4 26 +14466 151 44 -148.715 2456.5 28 33 4 9 77 3 152 4 24 +14467 151 45 -142.645 2456.5 28 36 4 9 77 3 155 4 27 +14468 151 46 -136.575 2456.5 28 38 4 9 77 3 157 4 29 +14469 151 47 -130.505 2456.5 28 40 4 9 77 3 159 4 31 +14470 151 48 -124.435 2456.5 32 39 4 9 78 3 158 4 30 +14471 151 49 -118.365 2456.5 32 37 4 9 78 3 156 4 28 +14472 151 50 -112.295 2456.5 32 35 4 9 78 3 154 4 26 +14473 151 51 -106.225 2456.5 32 34 4 9 78 3 153 4 25 +14474 151 52 -100.155 2456.5 32 36 4 9 78 3 155 4 27 +14475 151 53 -94.085 2456.5 32 38 4 9 78 3 157 4 29 +14476 151 54 -88.015 2456.5 32 40 4 9 78 3 159 4 31 +14477 151 55 -81.945 2456.5 36 39 4 9 79 3 158 4 30 +14478 151 56 -75.875 2456.5 36 37 4 9 79 3 156 4 28 +14479 151 57 -69.805 2456.5 36 35 4 9 79 3 154 4 26 +14480 151 58 -63.735 2456.5 36 33 4 9 79 3 152 4 24 +14481 151 59 -57.665 2456.5 36 36 4 9 79 3 155 4 27 +14482 151 60 -51.595 2456.5 36 38 4 9 79 3 157 4 29 +14483 151 61 -45.525 2456.5 36 40 4 9 79 3 159 4 31 +14484 151 62 -39.455 2456.5 40 39 4 9 80 3 158 4 30 +14485 151 63 -33.385 2456.5 40 37 4 9 80 3 156 4 28 +14486 151 64 -27.315 2456.5 40 35 4 9 80 3 154 4 26 +14487 151 65 -21.245 2456.5 40 33 4 9 80 3 152 4 24 +14488 151 66 -15.175 2456.5 40 36 4 9 80 3 155 4 27 +14489 151 67 -9.105 2456.5 40 38 4 9 80 3 157 4 29 +14490 151 68 -3.035 2456.5 40 40 4 9 80 3 159 4 31 +14491 151 69 3.035 2456.5 44 39 4 9 81 3 158 4 30 +14492 151 70 9.105 2456.5 44 37 4 9 81 3 156 4 28 +14493 151 71 15.175 2456.5 44 35 4 9 81 3 154 4 26 +14494 151 72 21.245 2456.5 44 34 4 9 81 3 153 4 25 +14495 151 73 27.315 2456.5 44 36 4 9 81 3 155 4 27 +14496 151 74 33.385 2456.5 44 38 4 9 81 3 157 4 29 +14497 151 75 39.455 2456.5 44 40 4 9 81 3 159 4 31 +14498 151 76 45.525 2456.5 48 39 4 9 82 3 158 4 30 +14499 151 77 51.595 2456.5 48 37 4 9 82 3 156 4 28 +14500 151 78 57.665 2456.5 48 35 4 9 82 3 154 4 26 +14501 151 79 63.735 2456.5 48 34 4 9 82 3 153 4 25 +14502 151 80 69.805 2456.5 48 36 4 9 82 3 155 4 27 +14503 151 81 75.875 2456.5 48 38 4 9 82 3 157 4 29 +14504 151 82 81.945 2456.5 48 40 4 9 82 3 159 4 31 +14505 151 83 88.015 2456.5 52 39 4 9 83 3 158 4 30 +14506 151 84 94.085 2456.5 52 37 4 9 83 3 156 4 28 +14507 151 85 100.155 2456.5 52 35 4 9 83 3 154 4 26 +14508 151 86 106.225 2456.5 52 33 4 9 83 3 152 4 24 +14509 151 87 112.295 2456.5 52 36 4 9 83 3 155 4 27 +14510 151 88 118.365 2456.5 52 38 4 9 83 3 157 4 29 +14511 151 89 124.435 2456.5 52 40 4 9 83 3 159 4 31 +14512 151 90 130.505 2456.5 56 39 4 9 84 3 158 4 30 +14513 151 91 136.575 2456.5 56 37 4 9 84 3 156 4 28 +14514 151 92 142.645 2456.5 56 35 4 9 84 3 154 4 26 +14515 151 93 148.715 2456.5 56 34 4 9 84 3 153 4 25 +14516 151 94 154.785 2456.5 56 36 4 9 84 3 155 4 27 +14517 151 95 160.855 2456.5 56 38 4 9 84 3 157 4 29 +14518 151 96 166.925 2456.5 56 40 4 9 84 3 159 4 31 +14519 151 97 172.995 2456.5 60 39 4 9 85 3 158 4 30 +14520 151 98 179.065 2456.5 60 37 4 9 85 3 156 4 28 +14521 151 99 185.135 2456.5 60 35 4 9 85 3 154 4 26 +14522 151 100 191.205 2456.5 60 34 4 9 85 3 153 4 25 +14523 151 101 197.275 2456.5 60 36 4 9 85 3 155 4 27 +14524 151 102 203.345 2456.5 60 38 4 9 85 3 157 4 29 +14525 151 103 209.415 2456.5 60 40 4 9 85 3 159 4 31 +14526 151 104 215.485 2456.5 64 39 4 9 86 3 158 4 30 +14527 151 105 221.555 2456.5 64 37 4 9 86 3 156 4 28 +14528 151 106 227.625 2456.5 64 35 4 9 86 3 154 4 26 +14529 151 107 233.695 2456.5 64 36 4 9 86 3 155 4 27 +14530 151 108 239.765 2456.5 64 38 4 9 86 3 157 4 29 +14531 151 109 245.835 2456.5 64 40 4 9 86 3 159 4 31 +14532 151 110 251.905 2456.5 68 39 4 9 87 3 158 4 30 +14533 151 111 257.975 2456.5 68 37 4 9 87 3 156 4 28 +14534 151 112 264.045 2456.5 68 35 4 9 87 3 154 4 26 +14535 151 113 270.115 2456.5 68 33 4 9 87 3 152 4 24 +14536 151 114 276.185 2456.5 68 36 4 9 87 3 155 4 27 +14537 151 115 282.255 2456.5 68 38 4 9 87 3 157 4 29 +14538 151 116 288.325 2456.5 68 40 4 9 87 3 159 4 31 +14539 151 117 294.395 2456.5 72 39 4 9 88 3 158 4 30 +14540 151 118 300.465 2456.5 72 37 4 9 88 3 156 4 28 +14541 151 119 306.535 2456.5 72 35 4 9 88 3 154 4 26 +14542 151 120 312.605 2456.5 72 33 4 9 88 3 152 4 24 +14543 151 121 318.675 2456.5 72 36 4 9 88 3 155 4 27 +14544 151 122 324.745 2456.5 72 38 4 9 88 3 157 4 29 +14545 151 123 330.815 2456.5 72 40 4 9 88 3 159 4 31 +14546 151 124 336.885 2456.5 76 39 4 9 89 3 158 4 30 +14547 151 125 342.955 2456.5 76 37 4 9 89 3 156 4 28 +14548 151 126 349.025 2456.5 76 35 4 9 89 3 154 4 26 +14549 151 127 355.095 2456.5 76 33 4 9 89 3 152 4 24 +14550 151 128 361.165 2456.5 76 36 4 9 89 3 155 4 27 +14551 151 129 367.235 2456.5 76 38 4 9 89 3 157 4 29 +14552 151 130 373.305 2456.5 76 40 4 9 89 3 159 4 31 +14553 151 131 379.375 2456.5 80 39 4 9 90 3 158 4 30 +14554 151 132 385.445 2456.5 80 37 4 9 90 3 156 4 28 +14555 151 133 391.515 2456.5 80 35 4 9 90 3 154 4 26 +14556 151 134 397.585 2456.5 80 33 4 9 90 3 152 4 24 +14557 151 135 403.655 2456.5 80 36 4 9 90 3 155 4 27 +14558 151 136 409.725 2456.5 80 38 4 9 90 3 157 4 29 +14559 151 137 415.795 2456.5 80 40 4 9 90 3 159 4 31 diff --git a/Detectors/TPC/base/files/eLinks_data.txt b/Detectors/TPC/base/files/eLinks_data.txt new file mode 100644 index 0000000000000..a8361d4b77bf9 --- /dev/null +++ b/Detectors/TPC/base/files/eLinks_data.txt @@ -0,0 +1,63 @@ +SAMPA_0[0] -> GBTx_0, G0, 0 +SAMPA_0[1] -> GBTx_0, G0, 2 +SAMPA_0[2] -> GBTx_0, G0, 4 +SAMPA_0[3] -> GBTx_0, G0, 6 +SAMPA_0[4] -> GBTx_0, G1, 8 +SAMPA_0[5] -> GBTx_0, G1, 10 +SAMPA_0[6] -> GBTx_0, G1, 12 +SAMPA_0[7] -> GBTx_0, G1, 14 +SAMPA_0[8] -> GBTx_0, G2, 16 +SAMPA_0[9] -> GBTx_0, G2, 18 +SAMPA_0[10] -> GBTx_0, G2, 20 + +SAMPA_1[0] -> GBTx_0, G2, 22 +SAMPA_1[1] -> GBTx_0, G3, 24 +SAMPA_1[2] -> GBTx_0, G3, 26 +SAMPA_1[3] -> GBTx_0, G3, 28 +SAMPA_1[4] -> GBTx_0, G3, 30 +SAMPA_1[5] -> GBTx_0, G4, 32 +SAMPA_1[6] -> GBTx_0, G4, 34 +SAMPA_1[7] -> GBTx_0, G4, 36 +SAMPA_1[8] -> GBTx_0, G4, 38 +SAMPA_1[9] -> GBTx_0, G5, 1 +SAMPA_1[10] -> GBTx_0, G5, 3 + +SAMPA_2[0] -> GBTx_0, G5, 5 +SAMPA_2[1] -> GBTx_0, G5, 7 +SAMPA_2[2] -> GBTx_0, G6, 9 +SAMPA_2[3] -> GBTx_0, G6, 11 +SAMPA_2[4] -> GBTx_0, G6, 13 +SAMPA_2[10] -> GBTx_0, G6, 15 (multidrop) + +------------------------------- GBTx boundary + +SAMPA_3[0] -> GBTx_1, G0, 0 +SAMPA_3[1] -> GBTx_1, G0, 2 +SAMPA_3[2] -> GBTx_1, G0, 4 +SAMPA_3[3] -> GBTx_1, G0, 6 +SAMPA_3[4] -> GBTx_1, G1, 8 +SAMPA_3[5] -> GBTx_1, G1, 10 +SAMPA_3[6] -> GBTx_1, G1, 12 +SAMPA_3[7] -> GBTx_1, G1, 14 +SAMPA_3[8] -> GBTx_1, G2, 16 +SAMPA_3[9] -> GBTx_1, G2, 18 +SAMPA_3[10] -> GBTx_1, G2, 20 + +SAMPA_4[0] -> GBTx_1, G2, 22 +SAMPA_4[1] -> GBTx_1, G3, 24 +SAMPA_4[2] -> GBTx_1, G3, 26 +SAMPA_4[3] -> GBTx_1, G3, 28 +SAMPA_4[4] -> GBTx_1, G3, 30 +SAMPA_4[5] -> GBTx_1, G4, 32 +SAMPA_4[6] -> GBTx_1, G4, 34 +SAMPA_4[7] -> GBTx_1, G4, 36 +SAMPA_4[8] -> GBTx_1, G4, 38 +SAMPA_4[9] -> GBTx_1, G5, 1 +SAMPA_4[10] -> GBTx_1, G5, 3 + +SAMPA_2[5] -> GBTx_1, G5, 5 +SAMPA_2[6] -> GBTx_1, G5, 7 +SAMPA_2[7] -> GBTx_1, G6, 9 +SAMPA_2[8] -> GBTx_1, G6, 11 +SAMPA_2[9] -> GBTx_1, G6, 13 +SAMPA_2[10] -> GBTx_1, G6, 15 (multidrop) From c486ebf0e89940b240043b445afec93e420d917b Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 23 Jun 2016 16:42:32 +0200 Subject: [PATCH 105/135] add basic types --- Detectors/TPC/base/CMakeLists.txt | 18 ++++++ Detectors/TPC/base/include/Defs.h | 73 +++++++++++++++++++++++++ Detectors/TPC/base/include/FECInfo.h | 35 ++++++++++++ Detectors/TPC/base/include/Mapper.h | 25 +++++++++ Detectors/TPC/base/include/PadInfo.h | 29 ++++++++++ Detectors/TPC/base/include/PadPos.h | 26 +++++++++ Detectors/TPC/base/include/PadSecPos.h | 21 +++++++ Detectors/TPC/base/include/Point2D.h | 20 +++++++ Detectors/TPC/base/include/ROC.h | 40 ++++++++++++++ Detectors/TPC/base/src/FECInfo.cxx | 1 + Detectors/TPC/base/src/Mapper.cxx | 1 + Detectors/TPC/base/src/PadInfo.cxx | 1 + Detectors/TPC/base/src/PadPos.cxx | 1 + Detectors/TPC/base/src/PadSecPos.cxx | 2 + Detectors/TPC/base/src/Point2D.cxx | 1 + Detectors/TPC/base/src/ROC.cxx | 1 + Detectors/TPC/base/src/tpcBaseLinkDef.h | 7 +++ 17 files changed, 302 insertions(+) create mode 100644 Detectors/TPC/base/include/Defs.h create mode 100644 Detectors/TPC/base/include/FECInfo.h create mode 100644 Detectors/TPC/base/include/Mapper.h create mode 100644 Detectors/TPC/base/include/PadInfo.h create mode 100644 Detectors/TPC/base/include/PadPos.h create mode 100644 Detectors/TPC/base/include/PadSecPos.h create mode 100644 Detectors/TPC/base/include/Point2D.h create mode 100644 Detectors/TPC/base/include/ROC.h create mode 100644 Detectors/TPC/base/src/FECInfo.cxx create mode 100644 Detectors/TPC/base/src/Mapper.cxx create mode 100644 Detectors/TPC/base/src/PadInfo.cxx create mode 100644 Detectors/TPC/base/src/PadPos.cxx create mode 100644 Detectors/TPC/base/src/PadSecPos.cxx create mode 100644 Detectors/TPC/base/src/Point2D.cxx create mode 100644 Detectors/TPC/base/src/ROC.cxx diff --git a/Detectors/TPC/base/CMakeLists.txt b/Detectors/TPC/base/CMakeLists.txt index a8c46ec5f2fe4..485d5afb48e9f 100644 --- a/Detectors/TPC/base/CMakeLists.txt +++ b/Detectors/TPC/base/CMakeLists.txt @@ -23,12 +23,30 @@ link_directories( ${LINK_DIRECTORIES}) set(SRCS src/ContainerFactory.cxx + src/FECInfo.cxx + src/Mapper.cxx + src/PadInfo.cxx + src/PadPos.cxx + src/PadSecPos.cxx + src/Point2D.cxx + src/ROC.cxx ) set(HEADERS include/ContainerFactory.h + include/FECInfo.h + include/Mapper.h + include/PadInfo.h + include/PadPos.h + include/PadSecPos.h + include/Point2D.h + include/ROC.h + include/Defs.h ) + +# string(REPLACE ".cxx" ".h" HEADERS "${SRCS}") + Set(LINKDEF src/tpcBaseLinkDef.h) Set(LIBRARY_NAME tpcBase) Set(DEPENDENCIES diff --git a/Detectors/TPC/base/include/Defs.h b/Detectors/TPC/base/include/Defs.h new file mode 100644 index 0000000000000..d94f0e9f30e02 --- /dev/null +++ b/Detectors/TPC/base/include/Defs.h @@ -0,0 +1,73 @@ +#ifndef AliceO2_TPC_Defs_H +#define AliceO2_TPC_Defs_H + + +namespace AliceO2 { +namespace TPC { + +/// TPC readout sidE +enum Side {A=0, C=1}; +// enum class Side {A=0, C=1}; +// Problem with root cint. does not seem to support enum class ... + +/// TPC ROC types +enum RocType {IROC=0, OROC=1}; +// enum class RocType {IROC=0, OROC=1}; + + +/** + * simple class to allow for range for loops over enums + * e.g. for (auto &side : Enum() ) { cout << side << endl; } + * taken from http://stackoverflow.com/questions/8498300/allow-for-range-based-for-with-enum-classes + */ + +template< typename T > +class Enum +{ + public: + class Iterator + { + public: + Iterator( int value ) : + m_value( value ) + { } + + T operator*( void ) const + { + return (T)m_value; + } + + void operator++( void ) + { + ++m_value; + } + + bool operator!=( Iterator rhs ) + { + return m_value != rhs.m_value; + } + + private: + int m_value; + }; + +}; + + template< typename T > +typename Enum::Iterator begin( Enum ) +{ + return typename Enum::Iterator( (int)T::First ); +} + + template< typename T > +typename Enum::Iterator end( Enum ) +{ + return typename Enum::Iterator( ((int)T::Last) + 1 ); +} + +} +} + + +#endif + diff --git a/Detectors/TPC/base/include/FECInfo.h b/Detectors/TPC/base/include/FECInfo.h new file mode 100644 index 0000000000000..c82754acfdc1a --- /dev/null +++ b/Detectors/TPC/base/include/FECInfo.h @@ -0,0 +1,35 @@ +#ifndef AliceO2_TPC_FECInfo_H +#define AliceO2_TPC_FECInfo_H + +namespace AliceO2 { +namespace TPC { + +class FECInfo { + public: + FECInfo() {} + FECInfo(unsigned char index, + unsigned char connector, + unsigned char channel, + unsigned char sampaChip, + unsigned char sampaChannel) + : mIndex(index), mConnector(connector), mChannel(channel), mSampaChip(sampaChip), mSampaChannel(sampaChannel) + {} + + const unsigned char Index() const { return mIndex; } + const unsigned char Connector() const { return mConnector; } + const unsigned char Channel() const { return mChannel; } + const unsigned char SampaChip() const { return mSampaChip; } + const unsigned char SampaChannel() const { return mSampaChannel;} + private: + unsigned char mIndex {0}; /// FEC number in the sector + unsigned char mConnector {0}; /// Connector on the FEC + unsigned char mChannel {0}; /// Channel on the FEC + unsigned char mSampaChip {0}; /// SAMPA chip on the FEC + unsigned char mSampaChannel {0}; /// Cannel on the SAMPA chip +}; + +} +} + +#endif + diff --git a/Detectors/TPC/base/include/Mapper.h b/Detectors/TPC/base/include/Mapper.h new file mode 100644 index 0000000000000..0c6f82cfe6430 --- /dev/null +++ b/Detectors/TPC/base/include/Mapper.h @@ -0,0 +1,25 @@ +#ifndef AliceO2_TPC_Mapper_H +#define AliceO2_TPC_Mapper_H + +#include + +#include "Defs.h" +#include "PadPos.h" +#include "FECInfo.h" + +namespace AliceO2 { +namespace TPC { + +class Mapper { +public: + +private: + std::map mMapPadPosGlobalPad{}; /// mapping pad position to global pad number + std::map mMapGlobalPadFECInfo(); /// map global pad ID to FEC info + +}; + +} +} + +#endif diff --git a/Detectors/TPC/base/include/PadInfo.h b/Detectors/TPC/base/include/PadInfo.h new file mode 100644 index 0000000000000..1f49950479089 --- /dev/null +++ b/Detectors/TPC/base/include/PadInfo.h @@ -0,0 +1,29 @@ +#ifndef AliceO2_TPC_PadInfo_H +#define AliceO2_TPC_PadInfo_H + +#include "Defs.h" +#include "PadPos.h" +#include "Point2D.h" +#include "FECInfo.h" + +namespace AliceO2 { +namespace TPC { + +typedef Point2D PadCentre; + +class PadInfo { + public: + + + private: + unsigned short mIndex{}; /// unique pad index in sector + PadPos mPadPos{}; /// pad row and pad + PadCentre mPadCentre{}; /// pad coordingate as seen for sector A04 in global ALICE coordiantes + FECInfo mFECInfo{}; /// FEC mapping information + +}; + +} +} + +#endif diff --git a/Detectors/TPC/base/include/PadPos.h b/Detectors/TPC/base/include/PadPos.h new file mode 100644 index 0000000000000..bc29a9d5e9ca5 --- /dev/null +++ b/Detectors/TPC/base/include/PadPos.h @@ -0,0 +1,26 @@ +#ifndef AliceO2_TPC_PadPos_H +#define AliceO2_TPC_PadPos_H + +namespace AliceO2 { +namespace TPC { + class PadPos { + public: +// PadPos() {} +// PadPos(const unsigned char row, const unsigned char pad) : + const unsigned char row() const { return mRow; } + const unsigned char pad() const { return mPad; } + + bool operator==(const PadPos& other) { return (mRow==other.mRow) && (mPad==other.mPad); } + bool operator<(const PadPos& other) { + if (mRow +class Point2D { + public: + //Point2D(unsigned char index, unsigned char connector, unsigned + + private: + T mX{}; /// x-position + T mY{}; /// y-position +}; + +} +} + +#endif diff --git a/Detectors/TPC/base/include/ROC.h b/Detectors/TPC/base/include/ROC.h new file mode 100644 index 0000000000000..eb4c974ac1124 --- /dev/null +++ b/Detectors/TPC/base/include/ROC.h @@ -0,0 +1,40 @@ +#ifndef AliceO2_TPC_ROC_H +#define AliceO2_TPC_ROC_H + +#include "Defs.h" +//using namespace AliceO2::TPC; + +namespace AliceO2 { +namespace TPC { +// enum RocType {IROC=0, OROC=1}; + + class ROC { + public: + enum { MaxROC=72 }; + ROC(){} + ROC(unsigned char sec):mROC(sec%MaxROC){;} + ROC(const ROC& sec):mROC(sec.mROC){;} + ROC(RocType t, Side s, unsigned char r):mROC( (s==Side::A)*18 + (t==RocType::OROC)*18 + r%18 ) {} +// ROC(Side t) {} + + ROC& operator= (const ROC& other) { mROC=other.mROC; return *this; } + + bool operator==(const ROC& other) { return mROC==other.mROC; } + bool operator!=(const ROC& other) { return mROC!=other.mROC; } + bool operator< (const ROC& other) { return mROC=MaxROC; mROC%=MaxROC; return mLoop; } + + unsigned char roc() const { return mROC; } + Side side() const { return (mROC/18)%2?Side::C:Side::A; } + RocType rocType() const { return mROC; #pragma link C++ class AliceO2::TPC::ContainerFactory; +#pragma link C++ class AliceO2::TPC::FECInfo; +#pragma link C++ class AliceO2::TPC::Mapper; +#pragma link C++ class AliceO2::TPC::PadInfo; +#pragma link C++ class AliceO2::TPC::PadPos; +#pragma link C++ class AliceO2::TPC::PadSecPos; +#pragma link C++ class AliceO2::TPC::ROC; #endif From f41f4e7471a852d8d899ceff964f2b8dd74cc4fa Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 23 Jun 2016 16:44:17 +0200 Subject: [PATCH 106/135] remove unnecessary stuff --- tpc/CMakeLists.txt | 54 - tpc/Detector.cxx | 3130 ----------------- tpc/dirty/AliDetectorParam.cxx | 78 - tpc/dirty/AliDetectorParam.h | 45 - tpc/dirty/AliH2F.cxx | 303 -- tpc/dirty/AliH2F.h | 53 - tpc/dirty/AliLog.cxx | 1175 ------- tpc/dirty/AliLog.h | 664 ---- tpc/dirty/AliMathBase.cxx | 717 ---- tpc/dirty/AliMathBase.h | 59 - tpc/dirty/AliTPCPRF2D.cxx | 976 ----- tpc/dirty/AliTPCPRF2D.h | 132 - tpc/dirty/AliTPCParam.cxx | 1047 ------ tpc/dirty/AliTPCParam.h | 834 ----- tpc/dirty/AliTPCParamSR.cxx | 605 ---- tpc/dirty/AliTPCParamSR.h | 90 - tpc/dirty/AliTPCRF1D.cxx | 404 --- tpc/dirty/AliTPCRF1D.h | 80 - tpc/dirty/AliTPCROC.cxx | 450 --- tpc/dirty/AliTPCROC.h | 137 - tpc/dirty/files/MakeCDBEntry.C | 39 - .../Parameters/Run0_999999999_v0_s0.root | Bin 13491 -> 0 bytes 22 files changed, 11072 deletions(-) delete mode 100644 tpc/CMakeLists.txt delete mode 100644 tpc/Detector.cxx delete mode 100644 tpc/dirty/AliDetectorParam.cxx delete mode 100644 tpc/dirty/AliDetectorParam.h delete mode 100644 tpc/dirty/AliH2F.cxx delete mode 100644 tpc/dirty/AliH2F.h delete mode 100644 tpc/dirty/AliLog.cxx delete mode 100644 tpc/dirty/AliLog.h delete mode 100644 tpc/dirty/AliMathBase.cxx delete mode 100644 tpc/dirty/AliMathBase.h delete mode 100644 tpc/dirty/AliTPCPRF2D.cxx delete mode 100644 tpc/dirty/AliTPCPRF2D.h delete mode 100644 tpc/dirty/AliTPCParam.cxx delete mode 100644 tpc/dirty/AliTPCParam.h delete mode 100644 tpc/dirty/AliTPCParamSR.cxx delete mode 100644 tpc/dirty/AliTPCParamSR.h delete mode 100644 tpc/dirty/AliTPCRF1D.cxx delete mode 100644 tpc/dirty/AliTPCRF1D.h delete mode 100644 tpc/dirty/AliTPCROC.cxx delete mode 100644 tpc/dirty/AliTPCROC.h delete mode 100644 tpc/dirty/files/MakeCDBEntry.C delete mode 100644 tpc/dirty/o2cdb/TPC/Calib/Parameters/Run0_999999999_v0_s0.root diff --git a/tpc/CMakeLists.txt b/tpc/CMakeLists.txt deleted file mode 100644 index 8c9e770e885b3..0000000000000 --- a/tpc/CMakeLists.txt +++ /dev/null @@ -1,54 +0,0 @@ -# Create a library called "libO2tpc" which includes the source files given in -# the array . -# The extension is already found. Any number of sources could be listed here. - -set(INCLUDE_DIRECTORIES -${CMAKE_SOURCE_DIR}/ -${CMAKE_SOURCE_DIR}/tpc -${CMAKE_SOURCE_DIR}/tpc/dirty -${CMAKE_SOURCE_DIR}/o2cdb -) - -set(SYSTEM_INCLUDE_DIRECTORIES -${ROOT_INCLUDE_DIR} -${BASE_INCLUDE_DIRECTORIES} -${Boost_INCLUDE_DIRS} -${FAIRROOT_INCLUDE_DIR} -${AlFa_DIR}/include -) - -include_directories( ${INCLUDE_DIRECTORIES}) -include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) - -set(LINK_DIRECTORIES -${ROOT_LIBRARY_DIR} -${Boost_LIBRARY_DIRS} -${FAIRROOT_LIBRARY_DIR} -) - -link_directories( ${LINK_DIRECTORIES}) - -set(SRCS -ContainerFactory.cxx -Point.cxx -Detector.cxx -dirty/AliDetectorParam.cxx -dirty/AliH2F.cxx -dirty/AliMathBase.cxx -dirty/AliTPCParam.cxx -dirty/AliTPCParamSR.cxx -dirty/AliTPCPRF2D.cxx -dirty/AliTPCRF1D.cxx -dirty/AliTPCROC.cxx -dirty/AliLog.cxx -) - -Set(LINKDEF TpcLinkDef.h) -Set(LIBRARY_NAME tpc) -Set(DEPENDENCIES - Base - Minuit boost_log - AliceO2Base - AliceO2Cdb -) -GENERATE_LIBRARY() diff --git a/tpc/Detector.cxx b/tpc/Detector.cxx deleted file mode 100644 index 9e76514bbcf67..0000000000000 --- a/tpc/Detector.cxx +++ /dev/null @@ -1,3130 +0,0 @@ -#include "Detector.h" -#include // for NULL -#include "Data/DetectorList.h" // for DetectorId::kAliTpc -#include "Data/Stack.h" // for Stack -#include "FairRootManager.h" // for FairRootManager -#include "FairVolume.h" // for FairVolume -#include "Point.h" // for Point -#include "TClonesArray.h" // for TClonesArray -#include "TVirtualMC.h" // for TVirtualMC, gMC -#include "TVirtualMCStack.h" // for TVirtualMCStack - -#include "Point.h" - -#include "FairGeoVolume.h" -#include "FairGeoNode.h" -#include "FairGeoLoader.h" -#include "FairGeoInterface.h" -#include "FairRun.h" -#include "FairRuntimeDb.h" -#include "FairLogger.h" - -#include "Data/DetectorList.h" -#include "Data/Stack.h" - -#include "TSystem.h" -#include "TClonesArray.h" -#include "TVirtualMC.h" - -// geo stuff -#include "TGeoManager.h" -#include "TGeoGlobalMagField.h" -#include "TGeoVolume.h" -#include "TGeoPcon.h" -#include "TGeoTube.h" -#include "TGeoCone.h" -#include "TGeoPgon.h" -#include "TGeoTrd1.h" -#include "TGeoCompositeShape.h" -#include "TGeoPara.h" -#include "TGeoPhysicalNode.h" -#include "TGeoHalfSpace.h" -#include "TGeoArb8.h" -#include "TGeoMatrix.h" - - -// dirty stuff -#include "AliTPCParam.h" -#include "Manager.h" -#include "Condition.h" - -#include -using std::cout; -using std::endl; -using std::ios_base; - -using namespace AliceO2::TPC; - -Detector::Detector() - : AliceO2::Base::Detector("TPC", kTRUE, kAliTpc), - mTrackNumberID(-1), - mVolumeID(-1), - mPosition(), - mMomentum(), - mTime(-1.), - mLength(-1.), - mEnergyLoss(-1), - mPointCollection(new TClonesArray("AliceO2::TPC::Point")), - mSens(0), - mParam(0x0) -{ -} - -Detector::Detector(const char* name, Bool_t active) - : AliceO2::Base::Detector(name, active, kAliTpc), - mTrackNumberID(-1), - mVolumeID(-1), - mPosition(), - mMomentum(), - mTime(-1.), - mLength(-1.), - mEnergyLoss(-1), - mPointCollection(new TClonesArray("AliceO2::TPC::Point")), - mParam(0x0) -{ - //TODO: Change this at some point - AliceO2::CDB::Condition* tpcParametersCondition = AliceO2::CDB::Manager::Instance()->getObject("TPC/Calib/Parameters"); - if (tpcParametersCondition) { - mParam = dynamic_cast(tpcParametersCondition->getObject()); - } - if (!mParam) { - LOG(ERROR) << "Could not load TPC Parameters" << FairLogger::endl; - } - -} - -Detector::~Detector() -{ - if (mPointCollection) { - mPointCollection->Delete(); - delete mPointCollection; - } -} - -void Detector::Initialize() -{ - AliceO2::Base::Detector::Initialize(); -// LOG(INFO) << "Initialize" << FairLogger::endl; -} - -Bool_t Detector::ProcessHits(FairVolume* vol) -{ - /** This method is called from the MC stepping */ -// LOG(INFO) << "TPC::ProcessHits" << FairLogger::endl; - //Set parameters at entrance of volume. Reset ELoss. - if ( TVirtualMC::GetMC()->IsTrackEntering() ) { - mEnergyLoss = 0.; - mTime = TVirtualMC::GetMC()->TrackTime() * 1.0e09; - mLength = TVirtualMC::GetMC()->TrackLength(); - TVirtualMC::GetMC()->TrackPosition(mPosition); - TVirtualMC::GetMC()->TrackMomentum(mMomentum); - } - - // Sum energy loss for all steps in the active volume - mEnergyLoss += TVirtualMC::GetMC()->Edep(); - - // Create DetectorPoint at exit of active volume - if ( TVirtualMC::GetMC()->IsTrackExiting() || - TVirtualMC::GetMC()->IsTrackStop() || - TVirtualMC::GetMC()->IsTrackDisappeared() ) { - mTrackNumberID = TVirtualMC::GetMC()->GetStack()->GetCurrentTrackNumber(); - mVolumeID = vol->getMCid(); - if (mEnergyLoss == 0. ) { return kFALSE; } - AddHit(mTrackNumberID, mVolumeID, TVector3(mPosition.X(), mPosition.Y(), mPosition.Z()), - TVector3(mMomentum.Px(), mMomentum.Py(), mMomentum.Pz()), mTime, mLength, - mEnergyLoss); -// LOG(INFO) << "TPC::AddHit" << FairLogger::endl -// << " -- " << mTrackNumberID <<"," << mVolumeID -// << ", Pos: (" << mPosition.X() << ", " << mPosition.Y() <<", "<< mPosition.Z() << ") " -// << ", Mom: (" << mMomentum.Px() << ", " << mMomentum.Py() << ", " << mMomentum.Pz() << ") " -// << " Time: "<< mTime <<", Len: " << mLength << ", Eloss: " << -// mEnergyLoss << FairLogger::endl; - - // Increment number of Detector det points in TParticle - AliceO2::Data::Stack* stack = (AliceO2::Data::Stack*)TVirtualMC::GetMC()->GetStack(); - stack->AddPoint(kAliTpc); - - } - - return kTRUE; -} - - -// Bool_t Detector::ProcessHits(FairVolume* vol) -// { -// // -// // Called for every step in the Time Projection Chamber -// // -// -// // -// // parameters used for the energy loss calculations -// // -// const Float_t prim = 14.35; // number of primary collisions per 1 cm -// const Float_t poti = 20.77e-9; // first ionization potential for Ne/CO2 -// const Float_t wIon = 35.97e-9; // energy for the ion-electron pair creation -// const Float_t kScalewIonG4 = 0.85; // scale factor to tune kwIon for Geant4 -// const Float_t kFanoFactorG4 = 0.7; // parameter for smearing the number of ionizations (nel) using Geant4 -// const Int_t kMaxDistRef =15; // maximal difference between 2 stored references -// // Float_t prim = fTPCParam->GetNprim(); -// // Float_t poti = fTPCParam->GetFpot(); -// // Float_t wIon = fTPCParam->GetWmean(); -// -// const Float_t kbig = 1.e10; -// -// Int_t id,copy; -// Float_t hits[5]; -// Int_t vol[2]; -// TLorentzVector p; -// -// vol[1]=0; // preset row number to 0 -// // -// if (!fPrimaryIonisation) TVirtualMC::GetMC()->SetMaxStep(kbig); -// -// if(!TVirtualMC::GetMC()->IsTrackAlive()) return; // particle has disappeared -// -// Float_t charge = TVirtualMC::GetMC()->TrackCharge(); -// -// if(TMath::Abs(charge)<=0.) return; // take only charged particles -// -// // check the sensitive volume -// -// id = TVirtualMC::GetMC()->CurrentVolID(copy); // vol ID and copy number (starts from 1!) -// if(id != fIDrift && id != fIdSens) return; // not in the sensitive folume -// -// if ( fPrimaryIonisation && id == fIDrift ) { -// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); -// TVirtualMC::GetMC()->SetMaxStep(0.2+(2.*rnd-1.)*0.05); // 2 mm +- rndm*0.5mm step -// } -// -// //if ( fPrimaryIonisation && id == fIDrift && TVirtualMC::GetMC()->IsTrackEntering()) { -// // TVirtualMC::GetMC()->SetMaxStep(0.2); // 2 mm -// //} -// -// TVirtualMC::GetMC()->TrackPosition(p); -// Double_t r = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); -// // -// -// // -// Double_t angle = TMath::ACos(p[0]/r); -// angle = (p[1]<0.) ? TMath::TwoPi()-angle : angle; -// // -// // angular segment, it is not a real sector number... -// // -// Int_t sector=TMath::Nint((angle-fTPCParam->GetInnerAngleShift())/ -// fTPCParam->GetInnerAngle()); -// // rotate to segment "0" -// Float_t cos,sin; -// fTPCParam->AdjustCosSin(sector,cos,sin); -// Float_t x1=p[0]*cos + p[1]*sin; -// // check if within sector's limits -// if((x1>=fTPCParam->GetInnerRadiusLow()&&x1<=fTPCParam->GetInnerRadiusUp()) -// ||(x1>=fTPCParam->GetOuterRadiusLow()&&x1<=fTPCParam->GetOuterRadiusUp())){ -// // calculate real sector number... -// if (x1>fTPCParam->GetOuterRadiusLow()){ -// sector = TMath::Nint((angle-fTPCParam->GetOuterAngleShift())/ -// fTPCParam->GetOuterAngle())+fTPCParam->GetNInnerSector(); -// if (p[2]<0) sector+=(fTPCParam->GetNOuterSector()>>1); -// } else { -// if (p[2]<0) sector+=(fTPCParam->GetNInnerSector()>>1); -// } -// // -// // here I have a sector number -// // -// -// vol[0]=sector; -// -// static Double_t lastReferenceR=0; -// if (TMath::Abs(lastReferenceR-r)>kMaxDistRef){ -// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); -// lastReferenceR = r; -// } -// -// // check if change of sector -// if(sector != fSecOld){ -// fSecOld=sector; -// // add track reference -// AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kTPC); -// } -// // track is in the sensitive strip -// if(id == fIdSens){ -// // track is entering the strip -// if (TVirtualMC::GetMC()->IsTrackEntering()){ -// Int_t totrows = fTPCParam->GetNRowLow()+fTPCParam->GetNRowUp(); -// vol[1] = (copy<=totrows) ? copy-1 : copy-1-totrows; -// // row numbers are autonomous for lower and upper sectors -// if(vol[0] > fTPCParam->GetNInnerSector()) { -// vol[1] -= fTPCParam->GetNRowLow(); -// } -// // -// if(vol[0]GetNInnerSector()&&vol[1] == 0){ -// -// // lower sector, row 0, because Jouri wants to have this -// -// TVirtualMC::GetMC()->TrackMomentum(p); -// hits[0]=p[0]; -// hits[1]=p[1]; -// hits[2]=p[2]; -// hits[3]=0.; // this hit has no energy loss -// // Get also the track time for pileup simulation -// hits[4]=TVirtualMC::GetMC()->TrackTime(); -// -// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); -// } -// // -// -// TVirtualMC::GetMC()->TrackPosition(p); -// hits[0]=p[0]; -// hits[1]=p[1]; -// hits[2]=p[2]; -// hits[3]=0.; // this hit has no energy loss -// // Get also the track time for pileup simulation -// hits[4]=TVirtualMC::GetMC()->TrackTime(); -// -// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); -// -// } -// else return; -// } -// //----------------------------------------------------------------- -// // charged particle is in the sensitive drift volume -// //----------------------------------------------------------------- -// if(TVirtualMC::GetMC()->TrackStep() > 0) { -// Int_t nel=0; -// if (!fPrimaryIonisation) { -// nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; -// } else { -// -// /* -// * static Double_t deForNextStep = 0.; -// * // Geant4 (the meaning of Edep as in Geant3) - wrong -// * //nel = (Int_t)(((TVirtualMC::GetMC()->Edep())-poti)/wIon) + 1; -// * -// * // Geant4 (the meaning of Edep as in Geant3) - NEW -// * Double_t eAvailable = TVirtualMC::GetMC()->Edep() + deForNextStep; -// * nel = (Int_t)(eAvailable/wIon); -// * deForNextStep = eAvailable - nel*wIon; -// */ -// -// //new Geant4-approach -// Double_t meanIon = TVirtualMC::GetMC()->Edep()/(wIon*kScalewIonG4); -// nel = (Int_t) ( kFanoFactorG4*AliMathBase::Gamma(meanIon/kFanoFactorG4)); // smear nel using gamma distr w mean = meanIon and variance = meanIon/kFanoFactorG4 -// } -// nel=TMath::Min(nel,300); // 300 electrons corresponds to 10 keV -// // -// TVirtualMC::GetMC()->TrackPosition(p); -// hits[0]=p[0]; -// hits[1]=p[1]; -// hits[2]=p[2]; -// hits[3]=(Float_t)nel; -// -// // Add this hit -// -// // if (fHitType&&2){ -// if(fHitType){ -// TVirtualMC::GetMC()->TrackMomentum(p); -// Float_t momentum = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]); -// Float_t precision = (momentum>0.1) ? 0.002 :0.01; -// fTrackHits->SetHitPrecision(precision); -// } -// -// // Get also the track time for pileup simulation -// hits[4]=TVirtualMC::GetMC()->TrackTime(); -// -// AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol,hits); -// if (fDebugStreamer){ -// // You can dump here what you need -// // function CreateDebugStremer() to be called in the Config.C macro -// // if you want to enable it -// // By default debug streaemer is OFF -// Float_t edep = TVirtualMC::GetMC()->Edep(); -// Float_t tstep = TVirtualMC::GetMC()->TrackStep(); -// Int_t pid=TVirtualMC::GetMC()->TrackPid(); -// (*fDebugStreamer)<<"hit"<< -// "x="<0 -// } //within sector's limits -// // Stemax calculation for the next step -// -// Float_t pp; -// TLorentzVector mom; -// // below is valid only for Geant3 (fPromaryIonisation not set) -// if(!fPrimaryIonisation){ -// TVirtualMC::GetMC()->TrackMomentum(mom); -// Float_t ptot=mom.Rho(); -// Float_t betaGamma = ptot/TVirtualMC::GetMC()->TrackMass(); -// -// //Int_t pid=TVirtualMC::GetMC()->TrackPid(); -// // if((pid==kElectron || pid==kPositron) && ptot > 0.002) -// // { -// // pp = prim*1.58; // electrons above 20 MeV/c are on the plateau! -// // } -// // else -// // { -// -// betaGamma = TMath::Max(betaGamma,(Float_t)7.e-3); // protection against too small bg -// TVectorD *bbpar = fTPCParam->GetBetheBlochParametersMC(); //get parametrization from OCDB -// pp=prim*AliMathBase::BetheBlochAleph(betaGamma,(*bbpar)(0),(*bbpar)(1),(*bbpar)(2),(*bbpar)(3),(*bbpar)(4)); -// // } -// -// Double_t rnd = TVirtualMC::GetMC()->GetRandom()->Rndm(); -// -// TVirtualMC::GetMC()->SetMaxStep(-TMath::Log(rnd)/pp); -// } -// -// } - -void Detector::EndOfEvent() -{ - - mPointCollection->Clear(); - -} - - - -void Detector::Register() -{ - - /** This will create a branch in the output tree called - DetectorPoint, setting the last parameter to kFALSE means: - this collection will not be written to the file, it will exist - only during the simulation. - */ - - FairRootManager::Instance()->Register("TPCPoint", "TPC",mPointCollection, kTRUE); -} - - -TClonesArray* Detector::GetCollection(Int_t iColl) const -{ - if (iColl == 0) { return mPointCollection; } - else { return NULL; } -} - -void Detector::Reset() -{ - mPointCollection->Clear(); -} - -void Detector::ConstructGeometry() -{ - // Create the detector materials - createMaterials(); - - // Construct the detector geometry - constructDetectorGeometry(); - - // Define the list of sensitive volumes - defineSensitiveVolumes(); -} - -void Detector::createMaterials() -{ - //----------------------------------------------- - // Create Materials for for TPC simulations - //----------------------------------------------- - - //----------------------------------------------------------------- - // Origin: Marek Kowalski IFJ, Krakow, Marek.Kowalski@ifj.edu.pl - //----------------------------------------------------------------- - -// Int_t iSXFLD=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); -// Float_t sXMGMX=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); - // Int_t iSXFLD = ((AliceO2::Field::MagneticField*)TGeoGlobalMagField::Instance()->GetField())->Integral(); - // Float_t sXMGMX = ((AliceO2::Field::MagneticField*)TGeoGlobalMagField::Instance()->GetField())->Max(); - - if (!mParam) { - LOG(ERROR) << "TPC Parameters not available, cannot create Materials" << FairLogger::endl; - return; - } - - // until we solve the problem of reading the field from files with changed class names we - // need to hard code some values here to be able to run the macros M.Al-Turany (Nov.14) - Int_t iSXFLD = 2; - Float_t sXMGMX = 10.0; - - Float_t amat[7]; // atomic numbers - Float_t zmat[7]; // z - Float_t wmat[7]; // proportions - - Float_t density; - - - - //***************** Gases ************************* - - - //-------------------------------------------------------------- - // gases - air and CO2 - //-------------------------------------------------------------- - - // CO2 - - amat[0]=12.011; - amat[1]=15.9994; - - zmat[0]=6.; - zmat[1]=8.; - - wmat[0]=0.2729; - wmat[1]=0.7271; - - density=1.842e-3; - - - AliceO2::Base::Detector::Mixture(10,"CO2",amat,zmat,density,2,wmat); - // - // Air - // - amat[0]=15.9994; - amat[1]=14.007; - // - zmat[0]=8.; - zmat[1]=7.; - // - wmat[0]=0.233; - wmat[1]=0.767; - // - density=0.001205; - - AliceO2::Base::Detector::Mixture(11,"Air",amat,zmat,density,2,wmat); - - //---------------------------------------------------------------- - // drift gases 5 mixtures, 5 materials - //---------------------------------------------------------------- - // - // Drift gases 1 - nonsensitive, 2 - sensitive, 3 - for Kr - // Composition by % of volume, values at 20deg and 1 atm. - // - // get the geometry title - defined in Config.C - // - //-------------------------------------------------------------- - // predefined gases, composition taken from param file - //-------------------------------------------------------------- - TString names[6]={"Ne","Ar","CO2","N","CF4","CH4"}; - TString gname; - Float_t *comp = mParam->GetComposition(); - // indices: - // 0-Ne, 1-Ar, 2-CO2, 3-N, 4-CF4, 5-CH4 - // - // elements' masses - // - amat[0]=20.18; //Ne - amat[1]=39.95; //Ar - amat[2]=12.011; //C - amat[3]=15.9994; //O - amat[4]=14.007; //N - amat[5]=18.998; //F - amat[6]=1.; //H - // - // elements' atomic numbers - // - // - zmat[0]=10.; //Ne - zmat[1]=18.; //Ar - zmat[2]=6.; //C - zmat[3]=8.; //O - zmat[4]=7.; //N - zmat[5]=9.; //F - zmat[6]=1.; //H - // - // Mol masses - // - Float_t wmol[6]; - wmol[0]=20.18; //Ne - wmol[1]=39.948; //Ar - wmol[2]=44.0098; //CO2 - wmol[3]=2.*14.0067; //N2 - wmol[4]=88.0046; //CF4 - wmol[5]=16.011; //CH4 - // - Float_t wtot=0.; //total mass of the mixture - for(Int_t i =0;i<6;i++){ - wtot += *(comp+i)*wmol[i]; - } - wmat[0]=comp[0]*amat[0]/wtot; //Ne - wmat[1]=comp[1]*amat[1]/wtot; //Ar - wmat[2]=(comp[2]*amat[2]+comp[4]*amat[2]+comp[5]*amat[2])/wtot; //C - wmat[3]=comp[2]*amat[3]*2./wtot; //O - wmat[4]=comp[3]*amat[4]*2./wtot; //N - wmat[5]=comp[4]*amat[5]*4./wtot; //F - wmat[6]=comp[5]*amat[6]*4./wtot; //H - // - // densities (NTP) - // - Float_t dens[6]={0.839e-3,1.661e-3,1.842e-3,1.251e-3,3.466e-3,0.668e-3}; - // - density=0.; - for(Int_t i=0;i<6;i++){ - density += comp[i]*dens[i]; - } - // - // names - // - Int_t cnt=0; - for(Int_t i =0;i<6;i++){ - if(comp[i]){ - if(cnt)gname+="-"; - gname+=names[i]; - cnt++; - } - } - TString gname1,gname2,gname3; - gname1 = gname + "-1"; - gname2 = gname + "-2"; - gname3 = gname + "-3"; - // - // take only elements with nonzero weights - // - Float_t amat1[6],zmat1[6],wmat1[6]; - cnt=0; - for(Int_t i=0;i<7;i++){ - if(wmat[i]){ - zmat1[cnt]=zmat[i]; - amat1[cnt]=amat[i]; - wmat1[cnt]=wmat[i]; - cnt++; - } - } - - // - AliceO2::Base::Detector::Mixture(12,gname1.Data(),amat1,zmat1,density,cnt,wmat1); // nonsensitive - AliceO2::Base::Detector::Mixture(13,gname2.Data(),amat1,zmat1,density,cnt,wmat1); // sensitive - AliceO2::Base::Detector::Mixture(40,gname3.Data(),amat1,zmat1,density,cnt,wmat1); //sensitive Kr - - - - //---------------------------------------------------------------------- - // solid materials - //---------------------------------------------------------------------- - - - // Kevlar C14H22O2N2 - - amat[0] = 12.011; - amat[1] = 1.; - amat[2] = 15.999; - amat[3] = 14.006; - - zmat[0] = 6.; - zmat[1] = 1.; - zmat[2] = 8.; - zmat[3] = 7.; - - wmat[0] = 14.; - wmat[1] = 22.; - wmat[2] = 2.; - wmat[3] = 2.; - - density = 1.45; - - AliceO2::Base::Detector::Mixture(14,"Kevlar",amat,zmat,density,-4,wmat); - - // NOMEX - - amat[0] = 12.011; - amat[1] = 1.; - amat[2] = 15.999; - amat[3] = 14.006; - - zmat[0] = 6.; - zmat[1] = 1.; - zmat[2] = 8.; - zmat[3] = 7.; - - wmat[0] = 14.; - wmat[1] = 22.; - wmat[2] = 2.; - wmat[3] = 2.; - - density = 0.029; - - AliceO2::Base::Detector::Mixture(15,"NOMEX",amat,zmat,density,-4,wmat); - - // Makrolon C16H18O3 - - amat[0] = 12.011; - amat[1] = 1.; - amat[2] = 15.999; - - zmat[0] = 6.; - zmat[1] = 1.; - zmat[2] = 8.; - - wmat[0] = 16.; - wmat[1] = 18.; - wmat[2] = 3.; - - density = 1.2; - - AliceO2::Base::Detector::Mixture(16,"Makrolon",amat,zmat,density,-3,wmat); - - // Tedlar C2H3F - - amat[0] = 12.011; - amat[1] = 1.; - amat[2] = 18.998; - - zmat[0] = 6.; - zmat[1] = 1.; - zmat[2] = 9.; - - wmat[0] = 2.; - wmat[1] = 3.; - wmat[2] = 1.; - - density = 1.71; - - AliceO2::Base::Detector::Mixture(17, "Tedlar",amat,zmat,density,-3,wmat); - - // Mylar C5H4O2 - - amat[0]=12.011; - amat[1]=1.; - amat[2]=15.9994; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - - wmat[0]=5.; - wmat[1]=4.; - wmat[2]=2.; - - density = 1.39; - - AliceO2::Base::Detector::Mixture(18, "Mylar",amat,zmat,density,-3,wmat); - // material for "prepregs" - // Epoxy - C14 H20 O3 - // Quartz SiO2 - // Carbon C - // prepreg1 60% C-fiber, 40% epoxy (vol) - amat[0]=12.011; - amat[1]=1.; - amat[2]=15.994; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - - wmat[0]=0.923; - wmat[1]=0.023; - wmat[2]=0.054; - - density=1.859; - - AliceO2::Base::Detector::Mixture(19, "Prepreg1",amat,zmat,density,3,wmat); - - //prepreg2 60% glass-fiber, 40% epoxy - - amat[0]=12.01; - amat[1]=1.; - amat[2]=15.994; - amat[3]=28.086; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - zmat[3]=14.; - - wmat[0]=0.194; - wmat[1]=0.023; - wmat[2]=0.443; - wmat[3]=0.34; - - density=1.82; - - AliceO2::Base::Detector::Mixture(20, "Prepreg2",amat,zmat,density,4,wmat); - - //prepreg3 50% glass-fiber, 50% epoxy - - amat[0]=12.01; - amat[1]=1.; - amat[2]=15.994; - amat[3]=28.086; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - zmat[3]=14.; - - wmat[0]=0.257; - wmat[1]=0.03; - wmat[2]=0.412; - wmat[3]=0.3; - - density=1.725; - - AliceO2::Base::Detector::Mixture(21, "Prepreg3",amat,zmat,density,4,wmat); - - // G10 60% SiO2 40% epoxy - - amat[0]=12.01; - amat[1]=1.; - amat[2]=15.994; - amat[3]=28.086; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - zmat[3]=14.; - - wmat[0]=0.194; - wmat[1]=0.023; - wmat[2]=0.443; - wmat[3]=0.340; - - density=1.7; - - AliceO2::Base::Detector::Mixture(22, "G10",amat,zmat,density,4,wmat); - - // Al - - amat[0] = 26.98; - zmat[0] = 13.; - - density = 2.7; - - AliceO2::Base::Detector::Material(23,"Al",amat[0],zmat[0],density,999.,999.); - - // Si (for electronics - - amat[0] = 28.086; - zmat[0] = 14.; - - density = 2.33; - - AliceO2::Base::Detector::Material(24,"Si",amat[0],zmat[0],density,999.,999.); - - // Cu - - amat[0] = 63.546; - zmat[0] = 29.; - - density = 8.96; - - AliceO2::Base::Detector::Material(25,"Cu",amat[0],zmat[0],density,999.,999.); - - // brass - - amat[0] = 63.546; - zmat[0] = 29.; - // - amat[1]= 65.409; - zmat[1]= 30.; - // - wmat[0]= 0.6; - wmat[1]= 0.4; - - // - density = 8.23; - - - // - AliceO2::Base::Detector::Mixture(33,"Brass",amat,zmat,density,2,wmat); - - // Epoxy - C14 H20 O3 - - amat[0]=12.011; - amat[1]=1.; - amat[2]=15.9994; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - - wmat[0]=14.; - wmat[1]=20.; - wmat[2]=3.; - - density=1.25; - - AliceO2::Base::Detector::Mixture(26,"Epoxy",amat,zmat,density,-3,wmat); - - // Epoxy - C14 H20 O3 for glue - - amat[0]=12.011; - amat[1]=1.; - amat[2]=15.9994; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - - wmat[0]=14.; - wmat[1]=20.; - wmat[2]=3.; - - density=1.25; - - density *= 1.25; - - AliceO2::Base::Detector::Mixture(35,"Epoxy1",amat,zmat,density,-3,wmat); - // - // epoxy film - 90% epoxy, 10% glass fiber - // - amat[0]=12.01; - amat[1]=1.; - amat[2]=15.994; - amat[3]=28.086; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - zmat[3]=14.; - - wmat[0]=0.596; - wmat[1]=0.071; - wmat[2]=0.257; - wmat[3]=0.076; - - - density=1.345; - - AliceO2::Base::Detector::Mixture(34, "Epoxy-film",amat,zmat,density,4,wmat); - - // Plexiglas C5H8O2 - - amat[0]=12.011; - amat[1]=1.; - amat[2]=15.9994; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - - wmat[0]=5.; - wmat[1]=8.; - wmat[2]=2.; - - density=1.18; - - AliceO2::Base::Detector::Mixture(27,"Plexiglas",amat,zmat,density,-3,wmat); - - // Carbon - - amat[0]=12.011; - zmat[0]=6.; - density= 2.265; - - AliceO2::Base::Detector::Material(28,"C",amat[0],zmat[0],density,999.,999.); - - // Fe (steel for the inner heat screen) - - amat[0]=55.845; - - zmat[0]=26.; - - density=7.87; - - AliceO2::Base::Detector::Material(29,"Fe",amat[0],zmat[0],density,999.,999.); - // - // Peek - (C6H4-O-OC6H4-O-C6H4-CO)n - amat[0]=12.011; - amat[1]=1.; - amat[2]=15.9994; - - zmat[0]=6.; - zmat[1]=1.; - zmat[2]=8.; - - wmat[0]=19.; - wmat[1]=12.; - wmat[2]=3.; - // - density=1.3; - // - AliceO2::Base::Detector::Mixture(30,"Peek",amat,zmat,density,-3,wmat); - // - // Ceramics - Al2O3 - // - amat[0] = 26.98; - amat[1]= 15.9994; - - zmat[0] = 13.; - zmat[1]=8.; - - wmat[0]=2.; - wmat[1]=3.; - - density = 3.97; - - AliceO2::Base::Detector::Mixture(31,"Alumina",amat,zmat,density,-2,wmat); - // - // Ceramics for resistors - // - amat[0] = 26.98; - amat[1]= 15.9994; - - zmat[0] = 13.; - zmat[1]=8.; - - wmat[0]=2.; - wmat[1]=3.; - - density = 3.97; - // - density *=1.25; - - AliceO2::Base::Detector::Mixture(36,"Alumina1",amat,zmat,density,-2,wmat); - // - // liquids - // - - // water - - amat[0]=1.; - amat[1]=15.9994; - - zmat[0]=1.; - zmat[1]=8.; - - wmat[0]=2.; - wmat[1]=1.; - - density=1.; - - AliceO2::Base::Detector::Mixture(32,"Water",amat,zmat,density,-2,wmat); - - - //---------------------------------------------------------- - // tracking media for gases - //---------------------------------------------------------- - - AliceO2::Base::Detector::Medium(0, "Air", 11, 0, iSXFLD, sXMGMX, 10., 999., .1, .01, .1); - AliceO2::Base::Detector::Medium(1, "DriftGas1", 12, 0, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); - AliceO2::Base::Detector::Medium(2, "DriftGas2", 13, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); - AliceO2::Base::Detector::Medium(3,"CO2",10,0, iSXFLD, sXMGMX, 10., 999.,.1, .001, .001); - AliceO2::Base::Detector::Medium(20, "DriftGas3", 40, 1, iSXFLD, sXMGMX, 10., 999.,.1,.001, .001); - //----------------------------------------------------------- - // tracking media for solids - //----------------------------------------------------------- - - AliceO2::Base::Detector::Medium(4,"Al",23,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(5,"Kevlar",14,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(6,"Nomex",15,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(7,"Makrolon",16,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(8,"Mylar",18,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(9,"Tedlar",17,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - // - AliceO2::Base::Detector::Medium(10,"Prepreg1",19,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(11,"Prepreg2",20,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(12,"Prepreg3",21,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(13,"Epoxy",26,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - - AliceO2::Base::Detector::Medium(14,"Cu",25,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(15,"Si",24,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(16,"G10",22,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(17,"Plexiglas",27,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(18,"Steel",29,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(19,"Peek",30,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(21,"Alumina",31,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(22,"Water",32,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(23,"Brass",33,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - AliceO2::Base::Detector::Medium(24,"Epoxyfm",34,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(25,"Epoxy1",35,0, iSXFLD, sXMGMX, 10., 999., .1, .0005, .001); - AliceO2::Base::Detector::Medium(26,"Alumina1",36,0, iSXFLD, sXMGMX, 10., 999., .1, .001, .001); - -} - -void Detector::constructDetectorGeometry() -{ - // - // Create the geometry of Time Projection Chamber version 2 - // - //Begin_Html - /* - * - */ - //End_Html - //Begin_Html - /* - * - */ - //End_Html - - //---------------------------------------------------------- - // This geometry is written using TGeo class - // Firstly the shapes are defined, and only then the volumes - // What is recognized by the MC are volumes - //---------------------------------------------------------- - // - // tpc - this will be the mother volume - // - - if (!mParam) { - LOG(ERROR) << "TPC Parameters not available, cannot create Geometry" << FairLogger::endl; - return; - } - - // - // here I define a volume TPC - // retrive the medium name with "TPC_" as a leading string - // - TGeoPcon *tpc = new TGeoPcon(0.,360.,30); //30 sections - // - tpc->DefineSection(0,-289.6,77.,278.); - tpc->DefineSection(1,-262.1,77.,278.); - // - tpc->DefineSection(2,-262.1,83.1,278.); - tpc->DefineSection(3,-260.,83.1,278.); - // - tpc->DefineSection(4,-260.,70.,278.); - tpc->DefineSection(5,-259.6,70.,278.); - // - tpc->DefineSection(6,-259.6,68.1,278.); - tpc->DefineSection(7,-253.6,68.1,278.); - // - tpc->DefineSection(8,-253.6,67.88,278.);//hs - tpc->DefineSection(9,-74.0,60.68,278.);// hs - // - tpc->DefineSection(10,-74.0,60.1,278.); - tpc->DefineSection(11,-73.3,60.1,278.); - // - tpc->DefineSection(12,-73.3,56.9,278.); - tpc->DefineSection(13,-68.5,56.9,278.); - // - tpc->DefineSection(14,-68.5,60.,278.); - tpc->DefineSection(15,-64.7,60.,278.); - // - tpc->DefineSection(16,-64.7,56.9,278.); - tpc->DefineSection(17,73.3,56.9,278.); - // - tpc->DefineSection(18,73.3,60.1,278.); - tpc->DefineSection(19,74.0,60.1,278.); - // - tpc->DefineSection(20,74.0,60.68,278.);// hs - tpc->DefineSection(21,253.6,65.38,278.);// hs - // - tpc->DefineSection(22,253.6,65.6,278.); - tpc->DefineSection(23,259.6,65.6,278.); - // - tpc->DefineSection(24,259.6,70.0,278.); - tpc->DefineSection(25,260.,70.0,278.); - // - tpc->DefineSection(26,260.,83.1,278.); - tpc->DefineSection(27,262.1,83.1,278.); - // - tpc->DefineSection(28,262.1,77.,278); - tpc->DefineSection(29,289.6,77.,278.); - // - TGeoMedium *m1 = gGeoManager->GetMedium("TPC_Air"); - TGeoVolume *v1 = new TGeoVolume("TPC_M",tpc,m1); - // - // drift volume - sensitive volume, extended beyond the - // endcaps, because of the alignment - // - TGeoPcon *dvol = new TGeoPcon(0.,360.,6); - dvol->DefineSection(0,-260.,74.5,264.4); - dvol->DefineSection(1,-253.6,74.5,264.4); - // - dvol->DefineSection(2,-253.6,76.6774,258.); - dvol->DefineSection(3,253.6,76.6774,258.); - // - dvol->DefineSection(4,253.6,74.5,264.4); - dvol->DefineSection(5,260.,74.5,264.4); - // - TGeoMedium *m5 = gGeoManager->GetMedium("TPC_DriftGas2"); - TGeoVolume *v9 = new TGeoVolume("TPC_Drift",dvol,m5); - // - v1->AddNode(v9,1); - // - // outer insulator - // - TGeoPcon *tpco = new TGeoPcon(0.,360.,6); //insulator - // - tpco->DefineSection(0,-256.6,264.8,278.); - tpco->DefineSection(1,-253.6,264.8,278.); - // - tpco->DefineSection(2,-253.6,258.,278.); - tpco->DefineSection(3,250.6,258.,278.); - // - tpco->DefineSection(4,250.6,258.,275.5); - tpco->DefineSection(5,253.6,258.,275.5); - // - TGeoMedium *m2 = gGeoManager->GetMedium("TPC_CO2"); - TGeoVolume *v2 = new TGeoVolume("TPC_OI",tpco,m2); - // - TGeoRotation *segrot;//segment rotations - // - // outer containment vessel - // - TGeoPcon *tocv = new TGeoPcon(0.,360.,6); // containment vessel - // - tocv->DefineSection(0,-256.6,264.8,278.); - tocv->DefineSection(1,-253.6,264.8,278.); - // - tocv->DefineSection(2,-253.6,274.8124,278.); - tocv->DefineSection(3,247.6,274.8124,278.); - // - tocv->DefineSection(4,247.6,270.4,278.); - tocv->DefineSection(5,250.6,270.4,278.); - // - TGeoMedium *m3 = gGeoManager->GetMedium("TPC_Al"); - TGeoVolume *v3 = new TGeoVolume("TPC_OCV",tocv,m3); - // - TGeoTubeSeg *to1 = new TGeoTubeSeg(274.8174,277.995,252.1,0.,59.9); //epoxy - TGeoTubeSeg *to2 = new TGeoTubeSeg(274.8274,277.985,252.1,0.,59.9); //tedlar - TGeoTubeSeg *to3 = new TGeoTubeSeg(274.8312,277.9812,252.1,0.,59.9);//prepreg2 - TGeoTubeSeg *to4 = new TGeoTubeSeg(274.9062,277.9062,252.1,0.,59.9);//nomex - TGeoTubeSeg *tog5 = new TGeoTubeSeg(274.8174,277.995,252.1,59.9,60.);//epoxy - // - TGeoMedium *sm1 = gGeoManager->GetMedium("TPC_Epoxy"); - TGeoMedium *sm2 = gGeoManager->GetMedium("TPC_Tedlar"); - TGeoMedium *sm3 = gGeoManager->GetMedium("TPC_Prepreg2"); - TGeoMedium *sm4 = gGeoManager->GetMedium("TPC_Nomex"); - // - TGeoMedium *smep = gGeoManager->GetMedium("TPC_Epoxy1"); - // - TGeoVolume *tov1 = new TGeoVolume("TPC_OCV1",to1,sm1); - TGeoVolume *tov2 = new TGeoVolume("TPC_OCV2",to2,sm2); - TGeoVolume *tov3 = new TGeoVolume("TPC_OCV3",to3,sm3); - TGeoVolume *tov4 = new TGeoVolume("TPC_OCV4",to4,sm4); - TGeoVolume *togv5 = new TGeoVolume("TPC_OCVG5",tog5,sm1); - // - TGeoMedium *mhs = gGeoManager->GetMedium("TPC_Steel"); - TGeoMedium *m12 = gGeoManager->GetMedium("TPC_Water"); - //------------------------------------------------------- - // Tpc Outer Field Cage - // daughters - composite (sandwich) - //------------------------------------------------------- - - TGeoPcon *tofc = new TGeoPcon(0.,360.,6); - // - tofc->DefineSection(0,-253.6,258.,269.6); - tofc->DefineSection(1,-250.6,258.,269.6); - // - tofc->DefineSection(2,-250.6,258.,260.0676); - tofc->DefineSection(3,250.6,258.,260.0676); - // - tofc->DefineSection(4,250.6,258.,275.5); - tofc->DefineSection(5,253.6,258.,275.5); - // - TGeoVolume *v4 = new TGeoVolume("TPC_TOFC",tofc,m3); - //sandwich - TGeoTubeSeg *tf1 = new TGeoTubeSeg(258.0,260.0676,252.1,0.,59.9); //tedlar - TGeoTubeSeg *tf2 = new TGeoTubeSeg(258.0038,260.0638,252.1,0.,59.9); //prepreg3 - TGeoTubeSeg *tf3 = new TGeoTubeSeg(258.0338,260.0338,252.1,0.,59.9);//nomex - TGeoTubeSeg *tfg4 = new TGeoTubeSeg(258.0,260.0676,252.1,59.9,60.); //epoxy glue - // - TGeoMedium *sm5 = gGeoManager->GetMedium("TPC_Prepreg3"); - // - TGeoVolume *tf1v = new TGeoVolume("TPC_OFC1",tf1,sm2); - TGeoVolume *tf2v = new TGeoVolume("TPC_OFC2",tf2,sm5); - TGeoVolume *tf3v = new TGeoVolume("TPC_OFC3",tf3,sm4); - TGeoVolume *tfg4v = new TGeoVolume("TPC_OFCG4",tfg4,smep); - // - // outer part - positioning - // - tov1->AddNode(tov2,1); tov2->AddNode(tov3,1); tov3->AddNode(tov4,1);//ocv - // - tf1v->AddNode(tf2v,1); tf2v->AddNode(tf3v,1);//ofc - // - TGeoVolumeAssembly *t200 = new TGeoVolumeAssembly("TPC_OCVSEG"); - TGeoVolumeAssembly *t300 = new TGeoVolumeAssembly("TPC_OFCSEG"); - // - // assembly OCV and OFC - // - // 1st - no rotation - t200->AddNode(tov1,1); t200->AddNode(togv5,1); - t300->AddNode(tf1v,1); t300->AddNode(tfg4v,1); - // 2nd - rotation 60 deg - segrot = new TGeoRotation(); - segrot->RotateZ(60.); - t200->AddNode(tov1,2,segrot); t200->AddNode(togv5,2,segrot); - t300->AddNode(tf1v,2,segrot); t300->AddNode(tfg4v,2,segrot); - // 3rd rotation 120 deg - segrot = new TGeoRotation(); - segrot->RotateZ(120.); - t200->AddNode(tov1,3,segrot); t200->AddNode(togv5,3,segrot); - t300->AddNode(tf1v,3,segrot); t300->AddNode(tfg4v,3,segrot); - //4th rotation 180 deg - segrot = new TGeoRotation(); - segrot->RotateZ(180.); - t200->AddNode(tov1,4,segrot); t200->AddNode(togv5,4,segrot); - t300->AddNode(tf1v,4,segrot); t300->AddNode(tfg4v,4,segrot); - //5th rotation 240 deg - segrot = new TGeoRotation(); - segrot->RotateZ(240.); - t200->AddNode(tov1,5,segrot); t200->AddNode(togv5,5,segrot); - t300->AddNode(tf1v,5,segrot); t300->AddNode(tfg4v,5,segrot); - //6th rotation 300 deg - segrot = new TGeoRotation(); - segrot->RotateZ(300.); - t200->AddNode(tov1,6,segrot); t200->AddNode(togv5,6,segrot); - t300->AddNode(tf1v,6,segrot); t300->AddNode(tfg4v,6,segrot); - // - v3->AddNode(t200,1,new TGeoTranslation(0.,0.,-1.5)); v4->AddNode(t300,1); - // - v2->AddNode(v3,1); v2->AddNode(v4,1); - // - v1->AddNode(v2,1); - //-------------------------------------------------------------------- - // Tpc Inner INsulator (CO2) - // the cones, the central drum and the inner f.c. sandwich with a piece - // of the flane will be placed in the TPC - //-------------------------------------------------------------------- - TGeoPcon *tpci = new TGeoPcon(0.,360.,4); - // - tpci->DefineSection(0,-253.6,68.4,76.6774); - tpci->DefineSection(1,-74.0,61.2,76.6774); - // - tpci->DefineSection(2,74.0,61.2,76.6774); - // - tpci->DefineSection(3,253.6,65.9,76.6774); - // - TGeoVolume *v5 = new TGeoVolume("TPC_INI",tpci,m2); - // - // now the inner field cage - only part of flanges (2 copies) - // - TGeoTube *tif1 = new TGeoTube(69.9,76.6774,1.5); - TGeoVolume *v6 = new TGeoVolume("TPC_IFC1",tif1,m3); - // - //--------------------------------------------------------- - // Tpc Inner Containment vessel - Muon side - //--------------------------------------------------------- - TGeoPcon *tcms = new TGeoPcon(0.,360.,10); - // - tcms->DefineSection(0,-259.1,68.1,74.2); - tcms->DefineSection(1,-253.6,68.1,74.2); - // - tcms->DefineSection(2,-253.6,68.1,68.4); - tcms->DefineSection(3,-74.0,60.9,61.2); - // - tcms->DefineSection(4,-74.0,60.1,61.2); - tcms->DefineSection(5,-73.3,60.1,61.2); - // - tcms->DefineSection(6,-73.3,56.9,61.2); - tcms->DefineSection(7,-73.0,56.9,61.2); - // - tcms->DefineSection(8,-73.0,56.9,58.8); - tcms->DefineSection(9,-71.3,56.9,58.8); - // - TGeoVolume *v7 = new TGeoVolume("TPC_ICVM",tcms,m3); - //------------------------------------------------ - // Heat screen muon side - //------------------------------------------------ - - TGeoCone *thsm = new TGeoCone(89.8,67.88,68.1,60.68,60.9); - TGeoCone *thsmw = new TGeoCone(89.8,67.94,68.04,60.74,60.84); - TGeoVolume *hvsm = new TGeoVolume("TPC_HSM",thsm,mhs); //steel - TGeoVolume *hvsmw = new TGeoVolume("TPC_HSMW",thsmw,m12); //water - // assembly heat screen muon - hvsm->AddNode(hvsmw,1); - //----------------------------------------------- - // inner containment vessel - shaft side - //----------------------------------------------- - TGeoPcon *tcss = new TGeoPcon(0.,360.,10); - // - tcss->DefineSection(0,71.3,56.9,58.8); - tcss->DefineSection(1,73.0,56.9,58.8); - // - tcss->DefineSection(2,73.0,56.9,61.2); - tcss->DefineSection(3,73.3,56.9,61.2); - // - tcss->DefineSection(4,73.3,60.1,61.2); - tcss->DefineSection(5,74.0,60.1,61.2); - // - tcss->DefineSection(6,74.0,60.9,61.2); - tcss->DefineSection(7,253.6,65.6,65.9); - // - tcss->DefineSection(8,253.6,65.6,74.2); - tcss->DefineSection(9,258.1,65.6,74.2); - // - TGeoVolume *v8 = new TGeoVolume("TPC_ICVS",tcss,m3); - //------------------------------------------------- - // Heat screen shaft side - //-------------------------------------------------- - TGeoCone *thss = new TGeoCone(89.8,60.68,60.9,65.38,65.6); - TGeoCone *thssw = new TGeoCone(89.8,60.74,60.84,65.44,65.54); - TGeoVolume *hvss = new TGeoVolume("TPC_HSS",thss,mhs); //steel - TGeoVolume *hvssw = new TGeoVolume("TPC_HSSW",thssw,m12); //water - //assembly heat screen shaft - hvss->AddNode(hvssw,1); - //----------------------------------------------- - // Inner field cage - // define 4 parts and make an assembly - //----------------------------------------------- - // part1 - Al - 2 copies - TGeoTube *t1 = new TGeoTube(76.6774,78.845,0.75); - TGeoVolume *tv1 = new TGeoVolume("TPC_IFC2",t1,m3); - // sandwich - outermost parts - 2 copies - // - // segment outermost - // - TGeoTubeSeg *t2 = new TGeoTubeSeg(76.6774,78.845,74.175,350.,109.4); // tedlar 38 microns - TGeoTubeSeg *t3 = new TGeoTubeSeg(76.6812,78.8412,74.175,350.,109.4); // prepreg2 500 microns - TGeoTubeSeg *t4 = new TGeoTubeSeg(76.7312,78.7912,74.175,350.,109.4); // prepreg3 300 microns - TGeoTubeSeg *t5 = new TGeoTubeSeg(76.7612,78.7612,74.175,350.,109.4); // nomex 2 cm - TGeoTubeSeg *tepox1 = new TGeoTubeSeg(76.6774,78.845,74.175,109.4,110.);//epoxy - TGeoTubeSeg *tpr1 = new TGeoTubeSeg(78.845,78.885,74.175,109.,111.); - - // volumes for the outer part - TGeoVolume *tv2 = new TGeoVolume("TPC_IFC3",t2,sm2); - TGeoVolume *tv3 = new TGeoVolume("TPC_IFC4",t3,sm3); - TGeoVolume *tv4 = new TGeoVolume("TPC_IFC5",t4,sm5); - TGeoVolume *tv5 = new TGeoVolume("TPC_IFC6",t5,sm4); - TGeoVolume *tvep1 = new TGeoVolume("TPC_IFEPOX1",tepox1,smep); - TGeoVolume *tvpr1 = new TGeoVolume("TPC_PRSTR1",tpr1,sm2); - // - // middle parts - 2 copies - // - // segment middle - // - TGeoTubeSeg *t6 = new TGeoTubeSeg(76.6774,78.795,5.,350.,109.4); // tedlar 38 microns - TGeoTubeSeg *t7 = new TGeoTubeSeg(76.6812,78.7912,5.,350.,109.4); // prepreg2 250 microns - TGeoTubeSeg *t8 = new TGeoTubeSeg(76.7062,78.7662,5.,350.,109.4); // prepreg3 300 microns - TGeoTubeSeg *t9 = new TGeoTubeSeg(76.7362,78.7362,5.,350.,109.4); // nomex 2 cm - TGeoTubeSeg *tepox2 = new TGeoTubeSeg(76.6774,78.795,5.,109.4,110.);//epoxy - TGeoTubeSeg *tpr2 = new TGeoTubeSeg(78.795,78.835,5.,109.,111.); - // volumes for the middle part - TGeoVolume *tv6 = new TGeoVolume("TPC_IFC7",t6,sm2); - TGeoVolume *tv7 = new TGeoVolume("TPC_IFC8",t7,sm3); - TGeoVolume *tv8 = new TGeoVolume("TPC_IFC9",t8,sm5); - TGeoVolume *tv9 = new TGeoVolume("TPC_IFC10",t9,sm4); - TGeoVolume *tvep2 = new TGeoVolume("TPC_IFEPOX2",tepox2,smep); - TGeoVolume *tvpr2 = new TGeoVolume("TPC_PRSTR2",tpr2,sm2); - // central part - 1 copy - // - // segment central part - // - TGeoTubeSeg *t10 = new TGeoTubeSeg(76.6774,78.785,93.75,350.,109.4); // tedlar 38 microns - TGeoTubeSeg *t11 = new TGeoTubeSeg(76.6812,78.7812,93.75,350.,109.4); // prepreg3 500 microns - TGeoTubeSeg *t12 = new TGeoTubeSeg(76.7312,78.7312,93.75,350.,109.4); // nomex 2 cm - TGeoTubeSeg *tepox3 = new TGeoTubeSeg(76.6774,78.785,93.75,109.4,110.);//epoxy - TGeoTubeSeg *tpr3 = new TGeoTubeSeg(78.785,78.825,93.75,109.,111.); - // volumes for the central part - TGeoVolume *tv10 = new TGeoVolume("TPC_IFC11",t10,sm2); - TGeoVolume *tv11 = new TGeoVolume("TPC_IFC12",t11,sm5); - TGeoVolume *tv12 = new TGeoVolume("TPC_IFC13",t12,sm4); - TGeoVolume *tvep3 = new TGeoVolume("TPC_IFEPOX3",tepox3,smep); - TGeoVolume *tvpr3 = new TGeoVolume("TPC_PRSTR3",tpr3,sm2); - // - // creating a sandwich for the outer par,t tv2 is the mother - // - tv2->AddNode(tv3,1); tv3->AddNode(tv4,1); tv4->AddNode(tv5,1); - // - // creating a sandwich for the middle part, tv6 is the mother - // - tv6->AddNode(tv7,1); tv7->AddNode(tv8,1); tv8->AddNode(tv9,1); - // - // creating a sandwich for the central part, tv10 is the mother - // - tv10->AddNode(tv11,1); tv11->AddNode(tv12,1); - // - TGeoVolumeAssembly *tv100 = new TGeoVolumeAssembly("TPC_IFC"); // ifc itself - 3 segments - - // - // first segment - no rotation - // - // central - tv100->AddNode(tv10,1); //sandwich - tv100->AddNode(tvep3,1);//epoxy - tv100->AddNode(tvpr3,1);//prepreg strip - // middle - tv100->AddNode(tv6,1,new TGeoTranslation(0.,0.,-98.75)); //sandwich1 - tv100->AddNode(tv6,2,new TGeoTranslation(0.,0.,98.75)); // sandwich2 - tv100->AddNode(tvep2,1,new TGeoTranslation(0.,0.,-98.75)); //epoxy - tv100->AddNode(tvep2,2,new TGeoTranslation(0.,0.,98.75)); //epoxy - tv100->AddNode(tvpr2,1,new TGeoTranslation(0.,0.,-98.75));//prepreg strip - tv100->AddNode(tvpr2,2,new TGeoTranslation(0.,0.,98.75)); - // outer - tv100->AddNode(tv2,1,new TGeoTranslation(0.,0.,-177.925)); //sandwich - tv100->AddNode(tv2,2,new TGeoTranslation(0.,0.,177.925)); - tv100->AddNode(tvep1,1,new TGeoTranslation(0.,0.,-177.925)); //epoxy - tv100->AddNode(tvep1,2,new TGeoTranslation(0.,0.,177.925)); - tv100->AddNode(tvpr1,1,new TGeoTranslation(0.,0.,-177.925));//prepreg strip - tv100->AddNode(tvpr1,2,new TGeoTranslation(0.,0.,-177.925)); - // - // second segment - rotation 120 deg. - // - segrot = new TGeoRotation(); - segrot->RotateZ(120.); - // - // central - tv100->AddNode(tv10,2,segrot); //sandwich - tv100->AddNode(tvep3,2,segrot);//epoxy - tv100->AddNode(tvpr3,2,segrot);//prepreg strip - // middle - tv100->AddNode(tv6,3,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //sandwich1 - tv100->AddNode(tv6,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); // sandwich2 - tv100->AddNode(tvep2,3,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //epoxy - tv100->AddNode(tvep2,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); //epoxy - tv100->AddNode(tvpr2,3,new TGeoCombiTrans(0.,0.,-98.75,segrot));//prepreg strip - tv100->AddNode(tvpr2,4,new TGeoCombiTrans(0.,0.,98.75,segrot)); - //outer - tv100->AddNode(tv2,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//sandwich - tv100->AddNode(tv2,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); - tv100->AddNode(tvep1,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//epoxy - tv100->AddNode(tvep1,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); - tv100->AddNode(tvpr1,3,new TGeoCombiTrans(0.,0.,-177.925,segrot));//prepreg strip - tv100->AddNode(tvpr1,4,new TGeoCombiTrans(0.,0.,177.925,segrot)); - // - // third segment - rotation 240 deg. - // - segrot = new TGeoRotation(); - segrot->RotateZ(240.); - // - // central - tv100->AddNode(tv10,3,segrot); //sandwich - tv100->AddNode(tvep3,3,segrot);//epoxy - tv100->AddNode(tvpr3,3,segrot);//prepreg strip - // middle - tv100->AddNode(tv6,5,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //sandwich1 - tv100->AddNode(tv6,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); // sandwich2 - tv100->AddNode(tvep2,5,new TGeoCombiTrans(0.,0.,-98.75,segrot)); //epoxy - tv100->AddNode(tvep2,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); //epoxy - tv100->AddNode(tvpr2,5,new TGeoCombiTrans(0.,0.,-98.75,segrot));//prepreg strip - tv100->AddNode(tvpr2,6,new TGeoCombiTrans(0.,0.,98.75,segrot)); - //outer - tv100->AddNode(tv2,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//sandwich - tv100->AddNode(tv2,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); - tv100->AddNode(tvep1,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//epoxy - tv100->AddNode(tvep1,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); - tv100->AddNode(tvpr1,5,new TGeoCombiTrans(0.,0.,-177.925,segrot));//prepreg strip - tv100->AddNode(tvpr1,6,new TGeoCombiTrans(0.,0.,177.925,segrot)); - // Al parts - rings - tv100->AddNode(tv1,1,new TGeoTranslation(0.,0.,-252.85)); - tv100->AddNode(tv1,2,new TGeoTranslation(0.,0.,252.85)); - // - v5->AddNode(v6,1, new TGeoTranslation(0.,0.,-252.1)); - v5->AddNode(v6,2, new TGeoTranslation(0.,0.,252.1)); - v1->AddNode(v5,1); v1->AddNode(v7,1); v1->AddNode(v8,1); - v1->AddNode(hvsm,1,new TGeoTranslation(0.,0.,-163.8)); - v1->AddNode(hvss,1,new TGeoTranslation(0.,0.,163.8)); - v9->AddNode(tv100,1); - // - // central drum - // - // flange + sandwich - // - TGeoPcon *cfl = new TGeoPcon(0.,360.,6); - cfl->DefineSection(0,-71.1,59.7,61.2); - cfl->DefineSection(1,-68.6,59.7,61.2); - // - cfl->DefineSection(2,-68.6,60.6124,61.2); - cfl->DefineSection(3,68.6,60.6124,61.2); - // - cfl->DefineSection(4,68.6,59.7,61.2); - cfl->DefineSection(5,71.1,59.7,61.2); - // - TGeoVolume *cflv = new TGeoVolume("TPC_CDR",cfl,m3); - // sandwich - TGeoTubeSeg *cd1 = new TGeoTubeSeg(60.6224,61.19,71.1,0.2,119.2); - TGeoTubeSeg *cd2 = new TGeoTubeSeg(60.6262,61.1862,71.1,0.2,119.2); - TGeoTubeSeg *cd3 = new TGeoTubeSeg(60.6462,61.1662,71.1,0.2,119.2); - TGeoTubeSeg *cd4 = new TGeoTubeSeg(60.6562,61.1562,71.1,0.2,119.2); - TGeoTubeSeg *tepox4 = new TGeoTubeSeg(60.6224,61.19,71.1,359.8,0.8); - // - TGeoMedium *sm6 = gGeoManager->GetMedium("TPC_Prepreg1"); - TGeoMedium *sm8 = gGeoManager->GetMedium("TPC_Epoxyfm"); - TGeoVolume *cd1v = new TGeoVolume("TPC_CDR1",cd1,sm2); //tedlar - TGeoVolume *cd2v = new TGeoVolume("TPC_CDR2",cd2,sm6);// prepreg1 - TGeoVolume *cd3v = new TGeoVolume("TPC_CDR3",cd3,sm8); //epoxy film - TGeoVolume *cd4v = new TGeoVolume("TPC_CDR4",cd4,sm4); //nomex - TGeoVolume *tvep4 = new TGeoVolume("TPC_IFEPOX4",tepox4,smep); - - // - // seals for central drum 2 copies - // - TGeoTube *cs = new TGeoTube(56.9,61.2,0.1); - TGeoMedium *sm7 = gGeoManager->GetMedium("TPC_Mylar"); - TGeoVolume *csv = new TGeoVolume("TPC_CDRS",cs,sm7); - v1->AddNode(csv,1,new TGeoTranslation(0.,0.,-71.2)); - v1->AddNode(csv,2,new TGeoTranslation(0.,0.,71.2)); - // - // seal collars - TGeoPcon *se = new TGeoPcon(0.,360.,6); - se->DefineSection(0,-72.8,59.7,61.2); - se->DefineSection(1,-72.3,59.7,61.2); - // - se->DefineSection(2,-72.3,58.85,61.2); - se->DefineSection(3,-71.6,58.85,61.2); - // - se->DefineSection(4,-71.6,59.7,61.2); - se->DefineSection(5,-71.3,59.7,61.2); - // - TGeoVolume *sev = new TGeoVolume("TPC_CDCE",se,m3); - // - TGeoTube *si = new TGeoTube(56.9,58.8,1.); - TGeoVolume *siv = new TGeoVolume("TPC_CDCI",si,m3); - // - // define reflection matrix - // - TGeoRotation *ref = new TGeoRotation("ref",90.,0.,90.,90.,180.,0.); - // - cd1v->AddNode(cd2v,1); cd2v->AddNode(cd3v,1); cd3v->AddNode(cd4v,1); //sandwich - // first segment - cflv->AddNode(cd1v,1); cflv->AddNode(tvep4,1); - // second segment - segrot = new TGeoRotation(); - segrot->RotateZ(120.); - cflv->AddNode(cd1v,2,segrot); cflv->AddNode(tvep4,2,segrot); - // third segment - segrot = new TGeoRotation(); - segrot->RotateZ(240.); - cflv->AddNode(cd1v,3,segrot); cflv->AddNode(tvep4,3,segrot); - // - v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-69.9)); - v1->AddNode(siv,2,new TGeoTranslation(0.,0.,69.9)); - v1->AddNode(sev,1); v1->AddNode(sev,2,ref); v1->AddNode(cflv,1); - // - // central membrane - 2 rings and a mylar membrane - assembly - // - TGeoTube *ih = new TGeoTube(81.05,84.05,0.3); - TGeoTube *oh = new TGeoTube(250.,256.,0.5); - TGeoTube *mem = new TGeoTube(84.05,250.,0.00115); - - // - TGeoMedium *m4 = gGeoManager->GetMedium("TPC_G10"); - // - TGeoVolume *ihv = new TGeoVolume("TPC_IHVH",ih,m3); - TGeoVolume *ohv = new TGeoVolume("TPC_OHVH",oh,m3); - - TGeoVolume *memv = new TGeoVolume("TPC_HV",mem,sm7); - // - TGeoVolumeAssembly *cm = new TGeoVolumeAssembly("TPC_HVMEM"); - cm->AddNode(ihv,1); - cm->AddNode(ohv,1); - cm->AddNode(memv,1); - - v9->AddNode(cm,1); - // - // end caps - they are make as an assembly of single segments - // containing both readout chambers - // - Double_t openingAngle = 10.*TMath::DegToRad(); - Double_t thick=1.5; // rib - Double_t shift = thick/TMath::Sin(openingAngle); - // - Double_t lowEdge = 86.3; // hole in the wheel - Double_t upEdge = 240.4; // hole in the wheel - // - new TGeoTubeSeg("sec",74.5,264.4,3.,0.,20.); - // - TGeoPgon *hole = new TGeoPgon("hole",0.,20.,1,4); - // - hole->DefineSection(0,-3.5,lowEdge-shift,upEdge-shift); - hole->DefineSection(1,-1.5,lowEdge-shift,upEdge-shift); - // - hole->DefineSection(2,-1.5,lowEdge-shift,upEdge+3.-shift); - hole->DefineSection(3,3.5,lowEdge-shift,upEdge+3.-shift); - // - Double_t ys = shift*TMath::Sin(openingAngle); - Double_t xs = shift*TMath::Cos(openingAngle); - TGeoTranslation *tr = new TGeoTranslation("tr",xs,ys,0.); - tr->RegisterYourself(); - TGeoCompositeShape *chamber = new TGeoCompositeShape("sec-hole:tr"); - TGeoVolume *sv = new TGeoVolume("TPC_WSEG",chamber,m3); - TGeoPgon *bar = new TGeoPgon("bar",0.,20.,1,2); - bar->DefineSection(0,-3.,131.5-shift,136.5-shift); - bar->DefineSection(1,1.5,131.5-shift,136.5-shift); - TGeoVolume *barv = new TGeoVolume("TPC_WBAR",bar,m3); - TGeoVolumeAssembly *ch = new TGeoVolumeAssembly("TPC_WCH");//empty segment - // - ch->AddNode(sv,1); ch->AddNode(barv,1,tr); - // - // readout chambers - // - // IROC first - // - TGeoTrd1 *ibody = new TGeoTrd1(13.8742,21.3328,4.29,21.15); - TGeoVolume *ibdv = new TGeoVolume("TPC_IROCB",ibody,m3); - // empty space - TGeoTrd1 *emp = new TGeoTrd1(12.3742,19.8328,3.99,19.65); - TGeoVolume *empv = new TGeoVolume("TPC_IROCE",emp,m1); - ibdv->AddNode(empv,1,new TGeoTranslation(0.,-0.3,0.)); - //bars - Double_t tga = (19.8328-12.3742)/39.3; - Double_t xmin,xmax; - xmin = 9.55*tga+12.3742; - xmax = 9.95*tga+12.3742; - TGeoTrd1 *ib1 = new TGeoTrd1(xmin,xmax,3.29,0.2); - TGeoVolume *ib1v = new TGeoVolume("TPC_IRB1",ib1,m3); - empv->AddNode(ib1v,1,new TGeoTranslation("tt1",0.,0.7,-9.9)); - xmin=19.4*tga+12.3742; - xmax=19.9*tga+12.3742; - TGeoTrd1 *ib2 = new TGeoTrd1(xmin,xmax,3.29,0.25); - TGeoVolume *ib2v = new TGeoVolume("TPC_TRB2",ib2,m3); - empv->AddNode(ib2v,1,new TGeoTranslation(0.,0.7,0.)); - xmin=29.35*tga+12.3742; - xmax=29.75*tga+12.3742; - TGeoTrd1 *ib3 = new TGeoTrd1(xmin,xmax,3.29,0.2); - TGeoVolume *ib3v = new TGeoVolume("TPC_IRB3",ib3,m3); - empv->AddNode(ib3v,1,new TGeoTranslation(0.,0.7,9.9)); - // - // holes for connectors - // - TGeoBBox *conn = new TGeoBBox(0.4,0.3,4.675); // identical for iroc and oroc - TGeoVolume *connv = new TGeoVolume("TPC_RCCON",conn,m1); - TString fileName(gSystem->Getenv("ALICE_ROOT")); - fileName += "/TPC/conn_iroc.dat"; - std::ifstream in; - in.open(fileName.Data(), ios_base::in); // asci file - TGeoRotation *rrr[86]; - for(Int_t i =0;i<86;i++){ - Double_t y = 3.99; - Double_t x,z,ang; - in>>x>>z>>ang; - z-=26.5; - rrr[i]= new TGeoRotation(); - rrr[i]->RotateY(ang); - ibdv->AddNode(connv,i+1,new TGeoCombiTrans(x,y,z,rrr[i])); - } - in.close(); - // "cap" - new TGeoTrd1("icap",14.5974,23.3521,1.19,24.825); - // "hole" - new TGeoTrd1("ihole",13.8742,21.3328,1.2,21.15); - TGeoTranslation *tr1 = new TGeoTranslation("tr1",0.,0.,1.725); - tr1->RegisterYourself(); - TGeoCompositeShape *ic = new TGeoCompositeShape("icap-ihole:tr1"); - TGeoVolume *icv = new TGeoVolume("TPC_IRCAP",ic,m3); - // - // pad plane and wire fixations - // - TGeoTrd1 *pp = new TGeoTrd1(14.5974,23.3521,0.3,24.825); //pad+iso - TGeoVolume *ppv = new TGeoVolume("TPC_IRPP",pp,m4); - TGeoPara *f1 = new TGeoPara(.6,.5,24.825,0.,-10.,0.); - TGeoVolume *f1v = new TGeoVolume("TPC_IRF1",f1,m4); - TGeoPara *f2 = new TGeoPara(.6,.5,24.825,0.,10.,0.); - TGeoVolume *f2v = new TGeoVolume("TPC_IRF2",f2,m4); - // - TGeoVolumeAssembly *iroc = new TGeoVolumeAssembly("TPC_IROC"); - // - iroc->AddNode(ibdv,1); - iroc->AddNode(icv,1,new TGeoTranslation(0.,3.1,-1.725)); - iroc->AddNode(ppv,1,new TGeoTranslation(0.,4.59,-1.725)); - tga =(23.3521-14.5974)/49.65; - Double_t xx = 24.825*tga+14.5974-0.6; - iroc->AddNode(f1v,1,new TGeoTranslation(-xx,5.39,-1.725)); - iroc->AddNode(f2v,1,new TGeoTranslation(xx,5.39,-1.725)); - // - // OROC - // - TGeoTrd1 *obody = new TGeoTrd1(22.2938,40.5084,4.19,51.65); - TGeoVolume *obdv = new TGeoVolume("TPC_OROCB",obody,m3); - TGeoTrd1 *oemp = new TGeoTrd1(20.2938,38.5084,3.89,49.65); - TGeoVolume *oempv = new TGeoVolume("TPC_OROCE",oemp,m1); - obdv->AddNode(oempv,1,new TGeoTranslation(0.,-0.3,0.)); - //horizontal bars - tga=(38.5084-20.2938)/99.3; - xmin=tga*10.2+20.2938; - xmax=tga*10.6+20.2938; - TGeoTrd1 *ob1 = new TGeoTrd1(xmin,xmax,2.915,0.2); - TGeoVolume *ob1v = new TGeoVolume("TPC_ORB1",ob1,m3); - // - xmin=22.55*tga+20.2938; - xmax=24.15*tga+20.2938; - TGeoTrd1 *ob2 = new TGeoTrd1(xmin,xmax,2.915,0.8); - TGeoVolume *ob2v = new TGeoVolume("TPC_ORB2",ob2,m3); - // - xmin=36.1*tga+20.2938; - xmax=36.5*tga+20.2938; - TGeoTrd1 *ob3 = new TGeoTrd1(xmin,xmax,2.915,0.2); - TGeoVolume *ob3v = new TGeoVolume("TPC_ORB3",ob3,m3); - // - xmin=49.0*tga+20.2938; - xmax=50.6*tga+20.2938; - TGeoTrd1 *ob4 = new TGeoTrd1(xmin,xmax,2.915,0.8); - TGeoVolume *ob4v = new TGeoVolume("TPC_ORB4",ob4,m3); - // - xmin=63.6*tga+20.2938; - xmax=64.0*tga+20.2938; - TGeoTrd1 *ob5 = new TGeoTrd1(xmin,xmax,2.915,0.2); - TGeoVolume *ob5v = new TGeoVolume("TPC_ORB5",ob5,m3); - // - xmin=75.5*tga+20.2938; - xmax=77.15*tga+20.2938; - TGeoTrd1 *ob6 = new TGeoTrd1(xmin,xmax,2.915,0.8); - TGeoVolume *ob6v = new TGeoVolume("TPC_ORB6",ob6,m3); - // - xmin=88.7*tga+20.2938; - xmax=89.1*tga+20.2938; - TGeoTrd1 *ob7 = new TGeoTrd1(xmin,xmax,2.915,0.2); - TGeoVolume *ob7v = new TGeoVolume("TPC_ORB7",ob7,m3); - // - oempv->AddNode(ob1v,1,new TGeoTranslation(0.,0.975,-39.25)); - oempv->AddNode(ob2v,1,new TGeoTranslation(0.,0.975,-26.3)); - oempv->AddNode(ob3v,1,new TGeoTranslation(0.,0.975,-13.35)); - oempv->AddNode(ob4v,1,new TGeoTranslation(0.,0.975,0.15)); - oempv->AddNode(ob5v,1,new TGeoTranslation(0.,0.975,14.15)); - oempv->AddNode(ob6v,1,new TGeoTranslation(0.,0.975,26.7)); - oempv->AddNode(ob7v,1,new TGeoTranslation(0.,0.975,39.25)); - // vertical bars - TGeoBBox *ob8 = new TGeoBBox(0.8,2.915,5.1); - TGeoBBox *ob9 = new TGeoBBox(0.8,2.915,5.975); - TGeoBBox *ob10 = new TGeoBBox(0.8,2.915,5.775); - TGeoBBox *ob11 = new TGeoBBox(0.8,2.915,6.25); - TGeoBBox *ob12 = new TGeoBBox(0.8,2.915,6.5); - // - TGeoVolume *ob8v = new TGeoVolume("TPC_ORB8",ob8,m3); - TGeoVolume *ob9v = new TGeoVolume("TPC_ORB9",ob9,m3); - TGeoVolume *ob10v = new TGeoVolume("TPC_ORB10",ob10,m3); - TGeoVolume *ob11v = new TGeoVolume("TPC_ORB11",ob11,m3); - TGeoVolume *ob12v = new TGeoVolume("TPC_ORB12",ob12,m3); - // - oempv->AddNode(ob8v,1,new TGeoTranslation(0.,0.975,-44.55)); - oempv->AddNode(ob8v,2,new TGeoTranslation(0.,0.975,44.55)); - oempv->AddNode(ob9v,1,new TGeoTranslation(0.,0.975,-33.075)); - oempv->AddNode(ob9v,2,new TGeoTranslation(0.,0.975,-19.525)); - oempv->AddNode(ob10v,1,new TGeoTranslation(0.,0.975,20.125)); - oempv->AddNode(ob10v,2,new TGeoTranslation(0.,0.975,33.275)); - oempv->AddNode(ob11v,1,new TGeoTranslation(0.,0.975,-6.9)); - oempv->AddNode(ob12v,1,new TGeoTranslation(0.,0.975,7.45)); - // - // holes for connectors - // - fileName = gSystem->Getenv("ALICE_ROOT"); - fileName += "/TPC/conn_oroc.dat"; - in.open(fileName.Data(), ios_base::in); // asci file - TGeoRotation *rr[78]; - for(Int_t i =0;i<78;i++){ - Double_t y =3.89; - Double_t x,z,ang; - Double_t x1,z1,x2,z2; - in>>x>>z>>ang; - Double_t xr = 4.7*TMath::Sin(ang*TMath::DegToRad()); - Double_t zr = 4.7*TMath::Cos(ang*TMath::DegToRad()); - // - x1=xr+x; x2=-xr+x; z1=zr+z; z2 = -zr+z; - // - rr[i]= new TGeoRotation(); - rr[i]->RotateY(ang); - z1-=54.95; - z2-=54.95; - // - obdv->AddNode(connv,i+1,new TGeoCombiTrans(x1,y,z1,rr[i])); - obdv->AddNode(connv,i+79,new TGeoCombiTrans(x2,y,z2,rr[i])); - } - in.close(); - // cap - new TGeoTrd1("ocap",23.3874,43.5239,1.09,57.1); - new TGeoTrd1("ohole",22.2938,40.5084,1.09,51.65); - TGeoTranslation *tr5 = new TGeoTranslation("tr5",0.,0.,-2.15); - tr5->RegisterYourself(); - TGeoCompositeShape *oc = new TGeoCompositeShape("ocap-ohole:tr5"); - TGeoVolume *ocv = new TGeoVolume("TPC_ORCAP",oc,m3); - // - // pad plane and wire fixations - // - TGeoTrd1 *opp = new TGeoTrd1(23.3874,43.5239,0.3,57.1); - TGeoVolume *oppv = new TGeoVolume("TPC_ORPP",opp,m4); - // - tga=(43.5239-23.3874)/114.2; - TGeoPara *f3 = new TGeoPara(.7,.6,57.1,0.,-10.,0.); - TGeoPara *f4 = new TGeoPara(.7,.6,57.1,0.,10.,0.); - xx = 57.1*tga+23.3874-0.7; - TGeoVolume *f3v = new TGeoVolume("TPC_ORF1",f3,m4); - TGeoVolume *f4v = new TGeoVolume("TPC_ORF2",f4,m4); - // - TGeoVolumeAssembly *oroc = new TGeoVolumeAssembly("TPC_OROC"); - // - oroc->AddNode(obdv,1); - oroc->AddNode(ocv,1,new TGeoTranslation(0.,3.1,2.15)); - oroc->AddNode(oppv,1,new TGeoTranslation(0.,4.49,2.15)); - oroc->AddNode(f3v,1,new TGeoTranslation(-xx,5.39,2.15)); - oroc->AddNode(f4v,1,new TGeoTranslation(xx,5.39,2.15)); - // - // now iroc and oroc are placed into a sector... - // - TGeoVolumeAssembly *secta = new TGeoVolumeAssembly("TPC_SECT"); // a-side - TGeoVolumeAssembly *sectc = new TGeoVolumeAssembly("TPC_SECT"); // c-side - TGeoRotation rot1("rot1",90.,90.,0.); - TGeoRotation rot2("rot2"); - rot2.RotateY(10.); - TGeoRotation *rot = new TGeoRotation("rot"); - *rot=rot1*rot2; - // - Double_t x0,y0; - x0=110.2*TMath::Cos(openingAngle); - y0=110.2*TMath::Sin(openingAngle); - TGeoCombiTrans *combi1a = new TGeoCombiTrans("combi1",x0,y0,1.09+0.195,rot); //a-side - TGeoCombiTrans *combi1c = new TGeoCombiTrans("combi1",x0,y0,1.09+0.222,rot); //c-side - x0=188.45*TMath::Cos(openingAngle); - y0=188.45*TMath::Sin(openingAngle); - TGeoCombiTrans *combi2a = new TGeoCombiTrans("combi2",x0,y0,0.99+0.195,rot); //a-side - TGeoCombiTrans *combi2c = new TGeoCombiTrans("combi2",x0,y0,0.99+0.222,rot); //c-side - // - // - // A-side - // - secta->AddNode(ch,1); - secta->AddNode(iroc,1,combi1a); - secta->AddNode(oroc,1,combi2a); - // - // C-side - // - sectc->AddNode(ch,1); - sectc->AddNode(iroc,1,combi1c); - sectc->AddNode(oroc,1,combi2c); - // - // now I try to make wheels... - // - TGeoVolumeAssembly *wheela = new TGeoVolumeAssembly("TPC_ENDCAP"); - TGeoVolumeAssembly *wheelc = new TGeoVolumeAssembly("TPC_ENDCAP"); - // - TGeoRotation *rwh[18]; - for(Int_t i =0;i<18;i++){ - Double_t phi = (20.*i); - rwh[i]=new TGeoRotation(); - rwh[i]->RotateZ(phi); - wheela->AddNode(secta,i+1,rwh[i]); - wheelc->AddNode(sectc,i+1,rwh[i]); - - } - // wheels in the drift volume! - - TGeoCombiTrans *combi3 = new TGeoCombiTrans("combi3",0.,0.,256.6,ref); - v9->AddNode(wheela,1,combi3); - v9->AddNode(wheelc,2,new TGeoTranslation(0.,0.,-256.6)); - //_____________________________________________________________ - // service support wheel - //_____________________________________________________________ - TGeoPgon *sw = new TGeoPgon(0.,20.,1,2); - sw->DefineSection(0,-4.,80.5,251.75); - sw->DefineSection(1,4.,80.5,251.75); - TGeoVolume *swv = new TGeoVolume("TPC_SWSEG",sw,m3); //Al - // - thick=1.; - shift = thick/TMath::Sin(openingAngle); - TGeoPgon *sh = new TGeoPgon(0.,20.,1,2); - sh->DefineSection(0,-4.,81.5-shift,250.75-shift); - sh->DefineSection(1,4.,81.5-shift,250.75-shift); - TGeoVolume *shv = new TGeoVolume("TPC_SWS1",sh,m1); //Air - // - TGeoMedium *m9 = gGeoManager->GetMedium("TPC_Si"); - TGeoPgon *el = new TGeoPgon(0.,20.,1,2); - el->DefineSection(0,-1.872,81.5-shift,250.75-shift); - el->DefineSection(1,1.872,81.5-shift,250.75-shift); - TGeoVolume *elv = new TGeoVolume("TPC_ELEC",el,m9); //Si - // - shv->AddNode(elv,1); - // - // - ys = shift*TMath::Sin(openingAngle); - xs = shift*TMath::Cos(openingAngle); - swv->AddNode(shv,1,new TGeoTranslation(xs,ys,0.)); - // cover - TGeoPgon *co = new TGeoPgon(0.,20.,1,2); - co->DefineSection(0,-0.5,77.,255.25); - co->DefineSection(1,0.5,77.,255.25); - TGeoVolume *cov = new TGeoVolume("TPC_SWC1",co,m3);//Al - // hole in a cover - TGeoPgon *coh = new TGeoPgon(0.,20.,1,2); - shift=4./TMath::Sin(openingAngle); - coh->DefineSection(0,-0.5,85.-shift,247.25-shift); - coh->DefineSection(1,0.5,85.-shift,247.25-shift); - // - TGeoVolume *cohv = new TGeoVolume("TPC_SWC2",coh,m1); - // - ys = shift*TMath::Sin(openingAngle); - xs = shift*TMath::Cos(openingAngle); - cov->AddNode(cohv,1,new TGeoTranslation(xs,ys,0.)); - // - // Sector as an Assembly - // - TGeoVolumeAssembly *swhs = new TGeoVolumeAssembly("TPC_SSWSEC"); - swhs->AddNode(swv,1); - swhs->AddNode(cov,1,new TGeoTranslation(0.,0.,-4.5)); - swhs->AddNode(cov,2,new TGeoTranslation(0.,0.,4.5)); - // - // SSW as an Assembly of sectors - // - TGeoRotation *rsw[18]; - TGeoVolumeAssembly *swheel = new TGeoVolumeAssembly("TPC_SSWHEEL"); - for(Int_t i =0;i<18;i++){ - Double_t phi = (20.*i); - rsw[i] = new TGeoRotation(); - rsw[i]->RotateZ(phi); - swheel->AddNode(swhs,i+1,rsw[i]); - } - v1->AddNode(swheel,1,new TGeoTranslation(0.,0.,-284.6)); - v1->AddNode(swheel,2,new TGeoTranslation(0.,0.,284.6)); - - // sensitive strips - strip "0" is always set - // conditional - Int_t totrows; - totrows = mParam->GetNRowLow() + mParam->GetNRowUp(); - Double_t *upar; - upar=NULL; - gGeoManager->Volume("TPC_Strip","PGON",m5->GetId(),upar); - upar=new Double_t [10]; - upar[0]=0.; - upar[1]=360.; - upar[2]=18.; - upar[3]=2.; - // - upar[4]=-124.8; - upar[7]=124.8; - - Double_t rlow=mParam->GetPadRowRadiiLow(0); - - upar[5]=rlow; - upar[6]=rlow+.01; - upar[8]=upar[5]; - upar[9]=upar[6]; - // - gGeoManager->Node("TPC_Strip",1,"TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); - gGeoManager->Node("TPC_Strip",totrows+1, - "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); - // - // now, strips optionally - // - if(mSens){ - //lower sectors - for(Int_t i=2;iGetNRowLow()+1;i++){ - rlow=mParam->GetPadRowRadiiLow(i-1); - upar[5]=rlow; - upar[6]=rlow+.01; - upar[8]=upar[5]; - upar[9]=upar[6]; - gGeoManager->Node("TPC_Strip",i, - "TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); - gGeoManager->Node("TPC_Strip",totrows+i, - "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); - } - //upper sectors - for(Int_t i=1;iGetNRowUp()+1;i++){ - rlow=mParam->GetPadRowRadiiUp(i-1); - upar[5]=rlow; - upar[6]=rlow+.01; - upar[8]=upar[5]; - upar[9]=upar[6]; - gGeoManager->Node("TPC_Strip",i+mParam->GetNRowLow(), - "TPC_Drift",0.,0.,124.82,0,kTRUE,upar,10); - gGeoManager->Node("TPC_Strip",totrows+i+mParam->GetNRowLow(), - "TPC_Drift",0.,0.,-124.82,0,kTRUE,upar,10); - } - }//strips - //---------------------------------------------------------- - // TPC Support Rods - MAKROLON - //---------------------------------------------------------- - TGeoMedium *m6=gGeoManager->GetMedium("TPC_Makrolon"); - TGeoMedium *m7=gGeoManager->GetMedium("TPC_Cu"); - TGeoMedium *m10 = gGeoManager->GetMedium("TPC_Alumina"); - TGeoMedium *m11 = gGeoManager->GetMedium("TPC_Peek");; - TGeoMedium *m13 = gGeoManager->GetMedium("TPC_Brass"); - TGeoMedium *m14 = gGeoManager->GetMedium("TPC_Alumina1"); - // - // tpc rod is an assembly of 10 long parts and 2 short parts - // connected with alu rings and plagged on both sides. - // - // - // tpc rod long - // - TGeoPcon *rod = new TGeoPcon("rod",0.,360.,6); - rod->DefineSection(0,-10.43,1.92,2.08); - rod->DefineSection(1,-9.75,1.92,2.08); - - rod->DefineSection(2,-9.75,1.8,2.2); - rod->DefineSection(3,9.75,1.8,2.2); - - rod->DefineSection(4,9.75,1.92,2.08); - rod->DefineSection(5,10.43,1.92,2.08); - // - TGeoVolume *mrodl = new TGeoVolume("TPC_mrodl",rod,m6); - // - // tpc rod short - // - TGeoPcon *rod1 = new TGeoPcon("rod1",0.,360.,6); - rod1->DefineSection(0,-8.93,1.92,2.08); - rod1->DefineSection(1,-8.25,1.92,2.08); - - rod1->DefineSection(2,-8.25,1.8,2.2); - rod1->DefineSection(3,8.25,1.8,2.2); - - rod1->DefineSection(4,8.25,1.92,2.08); - rod1->DefineSection(5,8.93,1.92,2.08); - // - TGeoVolume *mrods = new TGeoVolume("TPC_mrods",rod1,m6); - // - // below is for the resistor rod - // - // hole for the brass connectors - // - - new TGeoTube("hhole",0.,0.3,0.3); - // - //transformations for holes - initialy they - // are placed at x=0 and negative y - // - TGeoRotation *rhole = new TGeoRotation(); - rhole->RotateX(90.); - TGeoCombiTrans *transf[13]; - Char_t name[30]; - for(Int_t i=0;i<13;i++){ - snprintf(name,30,"transf%d",i); - transf[i]= new TGeoCombiTrans(name,0.,-2.,-9.+i*1.5,rhole); - transf[i]->RegisterYourself(); - } - // union expression for holes - TString operl("hhole:transf0"); - for (Int_t i=1;i<13;i++){ - snprintf(name,30,"+hhole:transf%d",i); - operl.Append(name); - } - // - TString opers("hhole:transf1"); - for (Int_t i=2;i<12;i++){ - snprintf(name,30,"+hhole:transf%d",i); - opers.Append(name); - } - //union of holes - new TGeoCompositeShape("hlv",operl.Data()); - new TGeoCompositeShape("hsv",opers.Data()); - // - TGeoCompositeShape *rodl = new TGeoCompositeShape("rodl","rod-hlv"); - TGeoCompositeShape *rods = new TGeoCompositeShape("rods","rod1-hsv"); - //rods - volumes - makrolon rods with holes - TGeoVolume *rodlv = new TGeoVolume("TPC_rodl",rodl,m6); - TGeoVolume *rodsv = new TGeoVolume("TPC_rods",rods,m6); - //brass connectors - //connectors - TGeoTube *bcon = new TGeoTube(0.,0.3,0.3);//connectors - TGeoVolume *bconv = new TGeoVolume("TPC_bcon",bcon,m13); - // - // hooks holding strips - // - new TGeoBBox("hk1",0.625,0.015,0.75); - new TGeoBBox("hk2",0.625,0.015,0.15); - TGeoTranslation *tr21 = new TGeoTranslation("tr21",0.,-0.03,-0.6); - TGeoTranslation *tr12 = new TGeoTranslation("tr12",0.,-0.03,0.6); - tr21->RegisterYourself(); - tr12->RegisterYourself(); - - TGeoCompositeShape *hook = new TGeoCompositeShape("hook","hk1+hk2:tr21+hk2:tr12"); - TGeoVolume *hookv = new TGeoVolume("TPC_hook",hook,m13); - // - // assembly of the short rod with connectors and hooks - // - // - // short rod - // - TGeoVolumeAssembly *spart = new TGeoVolumeAssembly("TPC_spart"); - // - spart->AddNode( rodsv,1); - for(Int_t i=1;i<12;i++){ - spart->AddNode(bconv,i,transf[i]); - } - for(Int_t i =0;i<11;i++){ - spart->AddNode(hookv,i+1,new TGeoTranslation(0.,-2.315,-7.5+i*1.5)); - } - // - // long rod - // - TGeoVolumeAssembly *lpart = new TGeoVolumeAssembly("TPC_lpart"); - // - lpart->AddNode( rodlv,1); - for(Int_t i=0;i<13;i++){ - lpart->AddNode(bconv,i+12,transf[i]); - } - for(Int_t i =0;i<13;i++){ - lpart->AddNode(hookv,i+12,new TGeoTranslation(0.,-2.315,-9.+i*1.5)); - } - // - // alu ring - // - new TGeoTube("ring1",2.1075,2.235,0.53); - new TGeoTube("ring2",1.7925,1.89,0.43); - new TGeoTube("ring3",1.89,2.1075,0.05); - TGeoCompositeShape *ring = new TGeoCompositeShape("ring","ring1+ring2+ring3"); - TGeoVolume *ringv = new TGeoVolume("TPC_ring",ring,m3); - // - // rod assembly - // - TGeoVolumeAssembly *tpcrrod = new TGeoVolumeAssembly("TPC_rrod");//rrod - TGeoVolumeAssembly *tpcmrod = new TGeoVolumeAssembly("TPC_mrod");//makrolon rod - //long pieces - for(Int_t i=0;i<11;i++){ - tpcrrod->AddNode(ringv,i+1,new TGeoTranslation(0.,0.,-105.+i*21)); - tpcmrod->AddNode(ringv,i+12,new TGeoTranslation(0.,0.,-105.+i*21)); - } - for(Int_t i=0;i<10;i++){ - tpcrrod->AddNode(lpart,i+1,new TGeoTranslation(0.,0.,-94.5+i*21));//resistor rod - tpcmrod->AddNode(mrodl,i+1,new TGeoTranslation(0.,0.,-94.5+i*21));//makrolon rod - } - // - // right plug - identical for all rods - // - TGeoPcon *tpcrp = new TGeoPcon(0.,360.,6); - // - tpcrp->DefineSection(0,123.05,1.89,2.1075); - tpcrp->DefineSection(1,123.59,1.89,2.1075); - // - tpcrp->DefineSection(2,123.59,1.8,2.2); - tpcrp->DefineSection(3,127.,1.8,2.2); - // - tpcrp->DefineSection(4,127.,0.,2.2); - tpcrp->DefineSection(5,127.5,0.,2.2); - // - TGeoVolume *tpcrpv = new TGeoVolume("TPC_RP",tpcrp,m6); - // - // adding short pieces and right plug - // - tpcrrod->AddNode(spart,1,new TGeoTranslation(0.,0.,-114.)); - tpcrrod->AddNode(spart,2,new TGeoTranslation(0.,0.,114.)); - tpcrrod->AddNode(ringv,23,new TGeoTranslation(0.,0.,-123.)); - tpcrrod->AddNode(ringv,24,new TGeoTranslation(0.,0.,123.)); - tpcrrod->AddNode(tpcrpv,1); - // - tpcmrod->AddNode(mrods,1,new TGeoTranslation(0.,0.,-114.)); - tpcmrod->AddNode(mrods,2,new TGeoTranslation(0.,0.,114.)); - tpcmrod->AddNode(ringv,25,new TGeoTranslation(0.,0.,-123.)); - tpcmrod->AddNode(ringv,26,new TGeoTranslation(0.,0.,123.)); - tpcmrod->AddNode(tpcrpv,2); - // - // from the ringv position to the CM is 3.0 cm! - //---------------------------------------- - // - // - //HV rods - makrolon + 0.58cm (diameter) Cu ->check the length - TGeoTube *hvr = new TGeoTube(0.,1.465,123.); - TGeoTube *hvc = new TGeoTube(0.,0.29,123.); - // - TGeoVolume *hvrv = new TGeoVolume("TPC_HV_Rod",hvr,m6); - TGeoVolume *hvcv = new TGeoVolume("TPC_HV_Cable",hvc,m7); - hvrv->AddNode(hvcv,1); - // - //resistor rod - // - TGeoTube *cr = new TGeoTube(0.,0.45,123.); - TGeoTube *cw = new TGeoTube(0.,0.15,123.); - TGeoVolume *crv = new TGeoVolume("TPC_CR",cr,m10); - TGeoVolume *cwv = new TGeoVolume("TPC_W",cw,m12); - // - // ceramic rod with water - // - crv->AddNode(cwv,1); - // - //peek rod - // - TGeoTube *pr =new TGeoTube(0.2,0.35,123.); - TGeoVolume *prv = new TGeoVolume("TPC_PR",pr,m11); - // - // copper plates with connectors - // - new TGeoTube("tub",0.,1.7,0.025); - // - // half space - points on the plane and a normal vector - // - Double_t n[3],p[3]; - Double_t slope = TMath::Tan(22.*TMath::DegToRad()); - Double_t intp = 1.245; - // - Double_t b = slope*slope+1.; - p[0]=intp*slope/b; - p[1]=-intp/b; - p[2]=0.; - // - n[0]=-p[0]; - n[1]=-p[1]; - n[2]=0.; - Double_t norm; - norm=TMath::Sqrt(n[0]*n[0]+n[1]*n[1]); - n[0] /= norm; - n[1] /=norm; - // - new TGeoHalfSpace("sp1",p,n); - // - slope = -slope; - // - p[0]=intp*slope/b; - p[1]=-intp/b; - // - n[0]=-p[0]; - n[1]=-p[1]; - norm=TMath::Sqrt(n[0]*n[0]+n[1]*n[1]); - n[0] /= norm; - n[1] /=norm; - // - new TGeoHalfSpace("sp2",p,n); - // holes for rods - //holes - new TGeoTube("h1",0.,0.5,0.025); - new TGeoTube("h2",0.,0.35,0.025); - //translations: - TGeoTranslation *ttr11 = new TGeoTranslation("ttr11",-0.866,0.5,0.); - TGeoTranslation *ttr22 = new TGeoTranslation("ttr22",0.866,0.5,0.); - ttr11->RegisterYourself(); - ttr22->RegisterYourself(); - // elastic connector - new TGeoBBox("elcon",0.72,0.005,0.3); - TGeoRotation *crr1 = new TGeoRotation(); - crr1->RotateZ(-22.); - TGeoCombiTrans *ctr1 = new TGeoCombiTrans("ctr1",-0.36011, -1.09951,-0.325,crr1); - ctr1->RegisterYourself(); - TGeoCompositeShape *cs1 = new TGeoCompositeShape("cs1", - "(((((tub-h1:ttr11)-h1:ttr22)-sp1)-sp2)-h2)+elcon:ctr1"); - // - TGeoVolume *csvv = new TGeoVolume("TPC_RR_CU",cs1,m7); - // - // resistor rod assembly 2 ceramic rods, peak rod, Cu plates - // and resistors - // - TGeoVolumeAssembly *rrod = new TGeoVolumeAssembly("TPC_RRIN"); - // rods - rrod->AddNode(crv,1,ttr11); - rrod->AddNode(crv,2,ttr22); - rrod->AddNode(prv,1); - //Cu plates - for(Int_t i=0;i<165;i++){ - rrod->AddNode(csvv,i+1,new TGeoTranslation(0.,0.,-122.675+i*1.5)); - } - //resistors - TGeoTube *res = new TGeoTube(0.,0.15,0.5); - TGeoVolume *resv = new TGeoVolume("TPC_RES",res,m14); - TGeoVolumeAssembly *ress = new TGeoVolumeAssembly("TPC_RES_CH"); - ress->AddNode(resv,1,new TGeoTranslation(0.2,0.,0.)); - ress->AddNode(resv,2,new TGeoTranslation(-0.2,0.,0.)); - // - TGeoRotation *crr2 = new TGeoRotation(); - crr2->RotateY(30.); - TGeoRotation *crr3 = new TGeoRotation(); - crr3->RotateY(-30.); - // - for(Int_t i=0;i<164;i+=2){ - rrod->AddNode(ress,i+1, new TGeoCombiTrans(0.,1.2,-121.925+i*1.5,crr2)); - rrod->AddNode(ress,i+2, new TGeoCombiTrans(0.,1.2,-121.925+(i+1)*1.5,crr3)); - } - - tpcrrod->AddNode(rrod,1,new TGeoCombiTrans(0.,0.,0.5,crr1)); - // - // rod left head with holders - inner - // - // first element - support for inner holder TPC_IHS - Double_t shift1[3] = {0.0,-0.175,0.0}; - - new TGeoBBox("tpcihs1", 4.7, 0.66, 2.35); - new TGeoBBox("tpcihs2", 4.7, 0.485, 1.0, shift1); - new TGeoBBox("tpcihs3", 1.5, 0.485, 2.35, shift1); - new TGeoTube("tpcihs4", 0.0, 2.38, 0.1); - // - Double_t pointstrap[16]; - pointstrap[0]= 0.0; - pointstrap[1]= 0.0; - pointstrap[2]= 0.0; - pointstrap[3]= 1.08; - pointstrap[4]= 2.3; - pointstrap[5]= 1.08; - pointstrap[6]= 3.38; - pointstrap[7]= 0.0; - pointstrap[8]= 0.0; - pointstrap[9]= 0.0; - pointstrap[10]= 0.0; - pointstrap[11]= 1.08; - pointstrap[12]= 2.3; - pointstrap[13]= 1.08; - pointstrap[14]= 3.38; - pointstrap[15]= 0.0; - // - TGeoArb8 *tpcihs5 = new TGeoArb8("tpcihs5", 0.6, pointstrap); - // - // half space - cutting "legs" - // - p[0]=0.0; - p[1]=0.105; - p[2]=0.0; - // - n[0] = 0.0; - n[1] = 1.0; - n[2] = 0.0; - - new TGeoHalfSpace("cutil1", p, n); - - // - // transformations - // - TGeoTranslation *trans2 = new TGeoTranslation("trans2", 0.0, 2.84, 2.25); - trans2->RegisterYourself(); - TGeoTranslation*trans3= new TGeoTranslation("trans3", 0.0, 2.84, -2.25); - trans3->RegisterYourself(); - //support - composite volume - // - TGeoCompositeShape *tpcihs6 = new TGeoCompositeShape("tpcihs6", "tpcihs1-(tpcihs2+tpcihs3)-(tpcihs4:trans2)-(tpcihs4:trans3)-cutil1"); - // - // volumes - all makrolon - // - TGeoVolume *tpcihss = new TGeoVolume("TPC_IHSS", tpcihs6, m6); //support - TGeoVolume *tpcihst = new TGeoVolume("TPC_IHSTR",tpcihs5 , m6); //trapesoid - //now assembly - TGeoRotation *rot111 = new TGeoRotation(); - rot111->RotateY(180.0); - // - TGeoVolumeAssembly *tpcihs = new TGeoVolumeAssembly("TPC_IHS"); // assembly of the support - tpcihs->AddNode(tpcihss, 1); - tpcihs->AddNode(tpcihst, 1, new TGeoTranslation(-4.7, 0.66, 0.0)); - tpcihs->AddNode(tpcihst, 2, new TGeoCombiTrans(4.7, 0.66, 0.0, rot111)); - // - // two rod holders (TPC_IRH) assembled with the support - // - new TGeoBBox("tpcirh1", 4.7, 1.33, 0.5); - shift1[0]=-3.65; - shift1[1]=0.53; - shift1[2]=0.; - new TGeoBBox("tpcirh2", 1.05, 0.8, 0.5, shift1); - shift1[0]=3.65; - shift1[1]=0.53; - shift1[2]=0.; - new TGeoBBox("tpcirh3", 1.05, 0.8, 0.5, shift1); - shift1[0]=0.0; - shift1[1]=1.08; - shift1[2]=0.; - new TGeoBBox("tpcirh4", 1.9, 0.25, 0.5, shift1); - new TGeoTube("tpcirh5", 0, 1.9, 5); - // - TGeoTranslation *trans4 = new TGeoTranslation("trans4", 0, 0.83, 0.0); - trans4->RegisterYourself(); - // - TGeoCompositeShape *tpcirh6 = new TGeoCompositeShape("tpcirh6", "tpcirh1-tpcirh2-tpcirh3-(tpcirh5:trans4)-tpcirh4"); - // - // now volume - // - TGeoVolume *tpcirh = new TGeoVolume("TPC_IRH", tpcirh6, m6); - // - // and all together... - // - TGeoVolume *tpciclamp = new TGeoVolumeAssembly("TPC_ICLP"); - tpciclamp->AddNode(tpcihs, 1); - tpciclamp->AddNode(tpcirh, 1, new TGeoTranslation(0, 1.99, 1.1)); - tpciclamp->AddNode(tpcirh, 2, new TGeoTranslation(0, 1.99, -1.1)); - // - // and now left inner "head" - // - TGeoPcon *inplug = new TGeoPcon("inplug", 0.0, 360.0, 14); - - inplug->DefineSection(0, 0.3, 0.0, 2.2); - inplug->DefineSection(1, 0.6, 0.0, 2.2); - - inplug->DefineSection(2, 0.6, 0.0, 1.75); - inplug->DefineSection(3, 0.7, 0.0, 1.75); - - inplug->DefineSection(4, 0.7, 1.55, 1.75); - inplug->DefineSection(5, 1.6, 1.55, 1.75); - - inplug->DefineSection(6, 1.6, 1.55, 2.2); - inplug->DefineSection(7, 1.875, 1.55, 2.2); - - inplug->DefineSection(8, 1.875, 1.55, 2.2); - inplug->DefineSection(9, 2.47, 1.75, 2.2); - - inplug->DefineSection(10, 2.47, 1.75, 2.08); - inplug->DefineSection(11, 2.57, 1.8, 2.08); - - inplug->DefineSection(12, 2.57, 1.92, 2.08); - inplug->DefineSection(13, 2.95, 1.92, 2.08); - // - shift1[0]=0.0; - shift1[1]=-2.09; - shift1[2]=1.075; - // - new TGeoBBox("pcuti", 1.5, 0.11, 1.075, shift1); - // - TGeoCompositeShape *inplleft = new TGeoCompositeShape("inplleft", "inplug-pcuti"); - TGeoVolume *tpcinlplug = new TGeoVolume("TPC_INPLL", inplleft, m6); - // - // holder + plugs - // - TGeoVolume *tpcihpl = new TGeoVolumeAssembly("TPC_IHPL"); //holder+2 plugs (reflected) - tpcihpl->AddNode(tpcinlplug, 1); - tpcihpl->AddNode(tpcinlplug, 2,ref); - tpcihpl->AddNode(tpciclamp,1,new TGeoTranslation(0.0, -2.765, 0.0)); - // - // outer holders and clamps - // - - // outer membrane holder (between rods) - pointstrap[0]= 0.0; - pointstrap[1]= 0.0; - pointstrap[2]= 0.0; - pointstrap[3]= 2.8; - pointstrap[4]= 3.1; - pointstrap[5]= 2.8-3.1*TMath::Tan(15.*TMath::DegToRad()); - pointstrap[6]= 3.1; - pointstrap[7]= 0.0; - pointstrap[8]= 0.0; - pointstrap[9]= 0.0; - pointstrap[10]= 0.0; - pointstrap[11]= 2.8; - pointstrap[12]= 3.1; - pointstrap[13]= 2.8-3.1*TMath::Tan(15.*TMath::DegToRad()); - pointstrap[14]= 3.1; - pointstrap[15]= 0.0; - // - TGeoArb8 *tpcomh1 = new TGeoArb8("tpcomh1", 1.05, pointstrap); - TGeoBBox *tpcomh2 = new TGeoBBox("tpcomh2", 0.8, 1.4, 6); - // - TGeoVolume *tpcomh1v = new TGeoVolume("TPC_OMH1", tpcomh1, m7); - TGeoVolume *tpcomh2v = new TGeoVolume("TPC_OMH2", tpcomh2, m7); - // - TGeoVolume *tpcomh3v = new TGeoVolumeAssembly("TPC_OMH3"); // assembly1 - tpcomh3v->AddNode(tpcomh1v, 1, new TGeoTranslation(0.8, -1.4, 4.95)); - tpcomh3v->AddNode(tpcomh1v, 2, new TGeoTranslation(0.8, -1.4, -4.95)); - tpcomh3v->AddNode(tpcomh2v, 1); - // - shift1[0] = 0.9; - shift1[1] = -1.85; - shift1[2] = 0.0; - // - new TGeoBBox("tpcomh3", 1.65, 1.15, 3.4); - TGeoBBox *tpcomh4 = new TGeoBBox("tpcomh4", 0.75, 0.7, 3.4, shift1); - // - // halfspace 1 - // - p[0] = 0.0; - p[1] = -1.05; - p[2] = -3.4; - // - n[0] = 0.0; - n[1] = -1.0*TMath::Tan(30.*TMath::DegToRad()); - n[2] = 1.0; - // - new TGeoHalfSpace("cutomh1", p, n); - // - // halfspace 2 - // - p[0] = 0.0; - p[1] = -1.05; - p[2] = 3.4; - // - n[0] = 0.0; - n[1] = -1.0*TMath::Tan(30.*TMath::DegToRad()); - n[2] = -1.0; - // - new TGeoHalfSpace("cutomh2", p, n); - // - // halfspace 3 - // - p[0] = -1.65; - p[1] = 0.0; - p[2] = -0.9; - // - n[0] = 1.0*TMath::Tan(75.*TMath::DegToRad()); - n[1] = 0.0; - n[2] = 1.0; - // - new TGeoHalfSpace("cutomh3", p, n); - // - // halfspace 4 - // - p[0] = -1.65; - p[1] = 0.0; - p[2] = 0.9; - // - n[0] = 1.0*TMath::Tan(75*TMath::DegToRad()); - n[1] = 0.0; - n[2] = -1.0; - // - new TGeoHalfSpace("cutomh4", p, n); - // - // halsfspace 5 - // - p[0] = 1.65; - p[1] = -1.05; - p[2] = 0.0; - // - n[0] = -1.0; - n[1] = -1.0*TMath::Tan(20.*TMath::DegToRad()); - n[2] = 0.0; - // - new TGeoHalfSpace("cutomh5", p, n); - // - TGeoCompositeShape *tpcomh5 = new TGeoCompositeShape("tpcomh5", "tpcomh3-cutomh1-cutomh2-cutomh3-cutomh4-cutomh5"); - // - TGeoVolume *tpcomh5v = new TGeoVolume("TPC_OMH5",tpcomh5,m6); - TGeoVolume *tpcomh4v = new TGeoVolume("TPC_OMH6",tpcomh4,m6); - // - TGeoVolumeAssembly *tpcomh7v = new TGeoVolumeAssembly("TPC_OMH7"); - tpcomh7v->AddNode(tpcomh5v,1); - tpcomh7v->AddNode(tpcomh4v,1); - // - // full membrane holder - tpcomh3v + tpcomh7v - // - TGeoVolumeAssembly *tpcomh = new TGeoVolumeAssembly("TPC_OMH"); - tpcomh->AddNode(tpcomh3v,1,new TGeoTranslation(1.5,0.,0.)); - tpcomh->AddNode(tpcomh3v,2,new TGeoCombiTrans(-1.5,0.,0.,rot111)); - tpcomh->AddNode(tpcomh7v,1,new TGeoTranslation(0.65+1.5, 2.55, 0.0)); - tpcomh->AddNode(tpcomh7v,2,new TGeoCombiTrans(-0.65-1.5, 2.55, 0.0,rot111)); - // - // outer rod holder support - // - new TGeoBBox("tpcohs1", 3.8, 0.675, 2.35); - // - shift1[0] = 0.0; - shift1[1] = 0.175; - shift1[2] = 0.0; - // - new TGeoBBox("tpcohs2", 1.5, 0.5, 2.35, shift1); - new TGeoBBox("tpcohs3", 3.8, 0.5, 0.85, shift1); - // - shift1[0] = 0.0; - shift1[1] = -1.175; - shift1[2] = 0.0; - // - TGeoBBox *tpcohs4 = new TGeoBBox("tpsohs4", 3.1, 0.5, 0.7, shift1); - // - TGeoVolume *tpcohs4v = new TGeoVolume("TPC_OHS4", tpcohs4, m6); - // - p[0] = 0.0; - p[1] = -0.186; - p[2] = 0.0; - // - n[0] = 0.0; - n[1] = -1.0; - n[2] = 0.0; - // - new TGeoHalfSpace("cutohs1", p, n); - // - TGeoCompositeShape *tpcohs5 = new TGeoCompositeShape("tpcohs5", "tpcohs1-tpcohs2-tpcohs3-cutohs1"); - TGeoVolume *tpcohs5v = new TGeoVolume("TPC_OHS5", tpcohs5, m6); - // - TGeoVolumeAssembly *tpcohs = new TGeoVolumeAssembly("TPC_OHS"); - tpcohs->AddNode(tpcohs5v, 1); - tpcohs->AddNode(tpcohs4v, 1); - // - // outer rod holder itself - // - shift1[0] = 0.0; - shift1[1] = 1.325; - shift1[2] = 0.0; - new TGeoBBox("tpcorh1", 3.1, 1.825, 0.55); //from this box we cut pieces... - // - shift1[0] = -3.1; - shift1[1] = -0.5; - shift1[2] = 0.0; - // - new TGeoBBox("tpcorh2", 0.5, 2.75, 1.1, shift1); - // - shift1[0] = 3.1; - shift1[1] = -0.5; - shift1[2] = 0.0; - // - new TGeoBBox("tpcorh3", 0.5, 2.75, 1.1, shift1); - // - shift1[0] = 0.0; - shift1[1] = -0.5; - shift1[2] = -0.95; - // - new TGeoBBox("tpcorh4", 3.9, 2.75, 0.5, shift1); - // - shift1[0] = 0.0; - shift1[1] = -0.5; - shift1[2] = 0.0; - // - new TGeoBBox("tpcorh5", 1.95, 0.5, 1.1, shift1); - // - shift1[0] = 0.0; - shift1[1] = -0.5; - shift1[2] = 0.55; - // - new TGeoBBox("tpcorh6", 2.4, 0.5, 0.6, shift1); - // - new TGeoTube("tpcorh7", 0, 1.95, 0.85); - new TGeoTube("tpcorh8", 0, 2.4, 0.6); - // - TGeoTranslation *trans33 = new TGeoTranslation("trans33", 0.0, 0.0, 0.55); - trans33->RegisterYourself(); - // - TGeoCompositeShape *tpcorh9 = new TGeoCompositeShape("tpcorh9", "tpcorh1-tpcorh2-tpcorh3-tpcorh4-tpcorh5-tpcorh6-(tpcorh8:trans33)-tpcorh7"); - // - TGeoVolume *tpcorh9v = new TGeoVolume("TPC_ORH",tpcorh9,m6); //outer rod holder - // - // now 2 holders together - // - TGeoVolumeAssembly *tpcorh = new TGeoVolumeAssembly("TPC_ORH2"); - // - tpcorh->AddNode(tpcorh9v,1,new TGeoTranslation(0.0, 0.0, 1.25)); - tpcorh->AddNode(tpcorh9v,2,new TGeoCombiTrans(0.0, 0.0, -1.25,rot111)); - // - // outer rod plug left - // - TGeoPcon *outplug = new TGeoPcon("outplug", 0.0, 360.0, 14); - - outplug->DefineSection(0, 0.5, 0.0, 2.2); - outplug->DefineSection(1, 0.7, 0.0, 2.2); - - outplug->DefineSection(2, 0.7, 1.55, 2.2); - outplug->DefineSection(3, 0.8, 1.55, 2.2); - - outplug->DefineSection(4, 0.8, 1.55, 1.75); - outplug->DefineSection(5, 1.2, 1.55, 1.75); - - outplug->DefineSection(6, 1.2, 1.55, 2.2); - outplug->DefineSection(7, 1.875, 1.55, 2.2); - - outplug->DefineSection(8, 1.875, 1.55, 2.2); - outplug->DefineSection(9, 2.47, 1.75, 2.2); - - outplug->DefineSection(10, 2.47, 1.75, 2.08); - outplug->DefineSection(11, 2.57, 1.8, 2.08); - - outplug->DefineSection(12, 2.57, 1.92, 2.08); - outplug->DefineSection(13, 2.95, 1.92, 2.08); - // - shift1[0] = 0.0; - shift1[1] = 2.09; - shift1[2] = 1.01; - - new TGeoBBox("cutout", 2.5, 0.11, 1.01, shift1); - // - - TGeoCompositeShape *outplleft = new TGeoCompositeShape("outplleft", "outplug-cutout"); - TGeoVolume *outplleftv = new TGeoVolume("TPC_OPLL", outplleft, m6); - // - // support + holder + plug - // - - - TGeoVolumeAssembly *tpcohpl = new TGeoVolumeAssembly("TPC_OHPL"); - // - tpcohpl->AddNode(outplleftv,1); //plug - tpcohpl->AddNode(outplleftv,2,ref); //plug reflected - tpcohpl->AddNode(tpcorh,1); //rod holder - tpcohpl->AddNode(tpcohs,1,new TGeoTranslation(0.0, 3.925, 0)); // support - // - - // - // main membrane holder - // - pointstrap[0]= 0.0; - pointstrap[1]= 0.0; - pointstrap[2]= 0.0; - pointstrap[3]= 2.8; - pointstrap[4]= 3.1; - pointstrap[5]= 1.96; - pointstrap[6]= 3.1; - pointstrap[7]= 0.0; - pointstrap[8]= 0.0; - pointstrap[9]= 0.0; - pointstrap[10]= 0.0; - pointstrap[11]= 2.8; - pointstrap[12]= 3.1; - pointstrap[13]= 1.96; - pointstrap[14]= 3.1; - pointstrap[15]= 0.0; - // - TGeoArb8 *tpcmmh1 = new TGeoArb8("tpcmmh1", 1.75, pointstrap); - TGeoBBox *tpcmmh2 = new TGeoBBox("tpcmmh2", 0.8, 1.4, 12.5); - // - TGeoVolume *tpcmmh1v = new TGeoVolume("TPC_MMH1", tpcmmh1, m6); - TGeoVolume *tpcmmh2v = new TGeoVolume("TPC_MMH2", tpcmmh2, m6); - // - TGeoVolumeAssembly *tpcmmhs = new TGeoVolumeAssembly("TPC_MMHS"); - tpcmmhs->AddNode(tpcmmh1v,1,new TGeoTranslation(0.8, -1.4, 10.75)); - tpcmmhs->AddNode(tpcmmh1v,2,new TGeoTranslation(0.8, -1.4, -10.75)); - tpcmmhs->AddNode(tpcmmh2v,1); - // - // main membrahe holder clamp - // - shift1[0] = -0.75; - shift1[1] = -1.15; - shift1[2] = 0.0; - // - new TGeoBBox("tpcmmhc1", 1.65, 1.85, 8.9); - new TGeoBBox("tpcmmhc2", 0.9, 0.7, 8.9, shift1); - // - // half spaces - cuts - // - p[0] = -1.65; - p[1] = 0.0; - p[2] = -0.9; - // - n[0] = 8.0; - n[1] = 0.0; - n[2] = 8.0*TMath::Tan(13.*TMath::DegToRad()); - // - new TGeoHalfSpace("cutmmh1", p, n); - // - p[0] = -1.65; - p[1] = 0.0; - p[2] = 0.9; - // - n[0] = 8.0; - n[1] = 0.0; - n[2] = -8.0*TMath::Tan(13.*TMath::DegToRad()); - // - new TGeoHalfSpace("cutmmh2", p, n); - // - p[0] = 0.0; - p[1] = 1.85; - p[2] = -2.8; - // - n[0] = 0.0; - n[1] = -6.1; - n[2] = 6.1*TMath::Tan(20.*TMath::DegToRad()); - // - new TGeoHalfSpace("cutmmh3", p, n); - // - p[0] = 0.0; - p[1] = 1.85; - p[2] = 2.8; - // - n[0] = 0.0; - n[1] = -6.1; - n[2] = -6.1*TMath::Tan(20*TMath::DegToRad()); - // - new TGeoHalfSpace("cutmmh4", p, n); - // - p[0] = 0.75; - p[1] = 0.0; - p[2] = -8.9; - // - n[0] = 2.4*TMath::Tan(30*TMath::DegToRad()); - n[1] = 0.0; - n[2] = 2.4; - // - new TGeoHalfSpace("cutmmh5", p, n); - // - p[0] = 0.75; - p[1] = 0.0; - p[2] = 8.9; - // - n[0] = 2.4*TMath::Tan(30*TMath::DegToRad()); - n[1] = 0.0; - n[2] = -2.4; - // - new TGeoHalfSpace("cutmmh6", p, n); - - TGeoCompositeShape *tpcmmhc = new TGeoCompositeShape("TPC_MMHC", "tpcmmhc1-tpcmmhc2-cutmmh1-cutmmh2-cutmmh3-cutmmh4-cutmmh5-cutmmh6"); - - TGeoVolume *tpcmmhcv = new TGeoVolume("TPC_MMHC",tpcmmhc,m6); - // - TGeoVolume *tpcmmh = new TGeoVolumeAssembly("TPC_MMH"); - // - tpcmmh->AddNode(tpcmmhcv,1,new TGeoTranslation(0.65+1.5, 1.85, 0.0)); - tpcmmh->AddNode(tpcmmhcv,2,new TGeoCombiTrans(-0.65-1.5, 1.85, 0.0,rot111)); - tpcmmh->AddNode(tpcmmhs,1,new TGeoTranslation(1.5, 0.0, 0.0)); - tpcmmh->AddNode(tpcmmhs,2,new TGeoCombiTrans(-1.5, 0.0, 0.0,rot111)); - // - - // - - //-------------------------------------------- - // - // guard ring resistor chain - // - - TGeoTube *gres1 = new TGeoTube(0.,0.375,125.);// inside ifc - // - TGeoVolume *vgres1 = new TGeoVolume("TPC_GRES1",gres1,m14); - - // - Double_t xrc,yrc; - // - xrc=79.3*TMath::Cos(350.*TMath::DegToRad()); - yrc=79.3*TMath::Sin(350.*TMath::DegToRad()); - // - v9->AddNode(vgres1,1,new TGeoTranslation(xrc,yrc,126.9)); - v9->AddNode(vgres1,2,new TGeoTranslation(xrc,yrc,-126.9)); - // - xrc=79.3*TMath::Cos(190.*TMath::DegToRad()); - yrc=79.3*TMath::Sin(190.*TMath::DegToRad()); - // - v9->AddNode(vgres1,3,new TGeoTranslation(xrc,yrc,126.9)); - v9->AddNode(vgres1,4,new TGeoTranslation(xrc,yrc,-126.9)); - //------------------------------------------------------------------ - TGeoRotation refl("refl",90.,0.,90.,90.,180.,0.); - TGeoRotation rotrod("rotrod"); - // - TGeoRotation *rotpos[2]; - // - TGeoRotation *rotrod1[2]; - // - // clamps holding rods - // - TGeoBBox *clampi1 = new TGeoBBox("clampi1",0.2,3.1,0.8); - TGeoVolume *clampi1v = new TGeoVolume("TPC_clampi1v",clampi1,m6); - // - pointstrap[0]=0.49; - pointstrap[1]=0.375; - // - pointstrap[2]=0.49; - pointstrap[3]=-0.375; - // - pointstrap[4]=-0.49; - pointstrap[5]=-0.375; - // - pointstrap[6]=-0.49; - pointstrap[7]=1.225; - // - pointstrap[8]=0.49; - pointstrap[9]=0.375; - // - pointstrap[10]=0.49; - pointstrap[11]=-0.375; - // - pointstrap[12]=-0.49; - pointstrap[13]=-0.375; - // - pointstrap[14]=-0.49; - pointstrap[15]=1.225; - // - TGeoArb8 *clitrap = new TGeoArb8("clitrap",0.25,pointstrap); - TGeoVolume *clitrapv = new TGeoVolume("TPC_clitrapv",clitrap,m6); - // - TGeoRotation *clamprot = new TGeoRotation(); - clamprot->RotateX(180.); - // - new TGeoBBox("clibox",1.125,3.1,.1); - new TGeoTube("clitub",0.,2.2,0.1); - // - // copmisite shape for the clamp holder - // - TGeoTranslation *clitr1 = new TGeoTranslation("clitr1",1.125,0.,0.); - clitr1->RegisterYourself(); - TGeoCompositeShape *clihold = new TGeoCompositeShape("clihold","clibox-clitub:clitr1"); - TGeoVolume *cliholdv = new TGeoVolume("TPC_cliholdv",clihold,m6); - // - // now assembly the whole inner clamp - // - TGeoVolume *iclamp = new TGeoVolumeAssembly("TPC_iclamp"); - // - iclamp->AddNode(clampi1v,1); //main box - iclamp->AddNode(clitrapv,1,new TGeoTranslation(0.69,-2.725,0.35)); //trapezoids - iclamp->AddNode(clitrapv,2,new TGeoTranslation(0.69,-2.725,-0.35)); - iclamp->AddNode(clitrapv,3,new TGeoCombiTrans(0.69,2.725,0.35,clamprot)); - iclamp->AddNode(clitrapv,4,new TGeoCombiTrans(0.69,2.725,-0.35,clamprot)); - iclamp->AddNode(cliholdv,1,new TGeoTranslation(1.325,0.,0.)); //holder - // - // outer clamps - // - TGeoBBox *clampo1 = new TGeoBBox("clampo1",0.25,3.1,1.); - TGeoBBox *clampo2 = new TGeoBBox("clampo2",0.4,0.85,1.); - // - TGeoVolume *clampo1v = new TGeoVolume("TPC_clampo1v",clampo1,m6); - TGeoVolume *clampo2v = new TGeoVolume("TPC_clampo2v",clampo2,m6); - // - TGeoVolumeAssembly *oclamp = new TGeoVolumeAssembly("TPC_oclamp"); - // - oclamp->AddNode(clampo1v,1); - // - oclamp->AddNode(clampo2v,1,new TGeoTranslation(0.65,-2.25,0)); - oclamp->AddNode(clampo2v,2,new TGeoTranslation(0.65,2.25,0)); - - // - pointstrap[0]=0.375; - pointstrap[1]=0.75; - pointstrap[2]=0.375; - pointstrap[3]=-0.35; - pointstrap[5]=-0.375; - pointstrap[4]=-0.35; - pointstrap[6]=-0.375; - pointstrap[7]=0.35; - // - pointstrap[8]=0.375; - pointstrap[9]=0.75; - pointstrap[10]=0.375; - pointstrap[11]=-0.35; - pointstrap[12]=-0.375; - pointstrap[13]=-0.35; - pointstrap[14]=-0.375; - pointstrap[15]=0.35; - // - TGeoArb8 *clotrap = new TGeoArb8("clotrap",0.25,pointstrap); - TGeoVolume *clotrapv = new TGeoVolume("TPC_clotrapv",clotrap,m6); - // - oclamp->AddNode(clotrapv,1,new TGeoTranslation(-0.625,-2.75,0.35)); - oclamp->AddNode(clotrapv,2,new TGeoTranslation(-0.625,-2.75,-0.35)); - oclamp->AddNode(clotrapv,3,new TGeoCombiTrans(-0.625,2.75,0.35,clamprot)); - oclamp->AddNode(clotrapv,4,new TGeoCombiTrans(-0.625,2.75,-0.35,clamprot)); - // - TGeoBBox *clampo3 = new TGeoBBox("clampo3",1.6,0.45,.1); - TGeoVolume *clampo3v = new TGeoVolume("TPC_clampo3v",clampo3,m6); - // - oclamp->AddNode(clampo3v,1,new TGeoTranslation(-1.85,2.625,0.)); - oclamp->AddNode(clampo3v,2,new TGeoTranslation(-1.85,-2.625,0)); - // - TGeoTubeSeg *clampo4 = new TGeoTubeSeg("clampo4",2.2,3.1,0.1,90.,270.); - TGeoVolume *clampo4v = new TGeoVolume("TPC_clampo4v",clampo4,m6); - // - oclamp->AddNode(clampo4v,1,new TGeoTranslation(-3.45,0.,0.)); - - - - //v9 - drift gas - - TGeoRotation rot102("rot102"); - rot102.RotateY(-90.); - - for(Int_t i=0;i<18;i++){ - Double_t angle,x,y; - Double_t z,r; - angle=TMath::DegToRad()*20.*(Double_t)i; - //inner rods - r=81.5; - x=r * TMath::Cos(angle); - y=r * TMath::Sin(angle); - z = 126.; - TGeoRotation *rot12 = new TGeoRotation(); - rot12->RotateZ(-90.0+i*20.); - v9->AddNode(tpcihpl,i+1,new TGeoCombiTrans(x, y, 0., rot12)); - // - if(i==11){//resistor rod inner - rotrod.RotateZ(-90.+i*20.); - rotrod1[0]= new TGeoRotation(); - rotpos[0]= new TGeoRotation(); - // - rotrod1[0]->RotateZ(90.+i*20.); - *rotpos[0] = refl*rotrod; //rotation+reflection - v9->AddNode(tpcrrod,1,new TGeoCombiTrans(x,y, z, rotrod1[0])); //A - v9->AddNode(tpcrrod,2,new TGeoCombiTrans(x,y,-z, rotpos[0])); //C - } - else { - v9->AddNode(tpcmrod,i+1,new TGeoTranslation(x,y,z));//shaft - v9->AddNode(tpcmrod,i+19,new TGeoCombiTrans(x,y,-z,ref));//muon - } - // - // inner clamps positioning - // - r=79.05; - x=r * TMath::Cos(angle); - y=r * TMath::Sin(angle); - rot12= new TGeoRotation(); - rot12->RotateZ(i*20.); - // - //A-side - v9->AddNode(iclamp,7*i+1,new TGeoCombiTrans(x,y,5.25,rot12)); - v9->AddNode(iclamp,7*i+2,new TGeoCombiTrans(x,y,38.25,rot12)); - v9->AddNode(iclamp,7*i+3,new TGeoCombiTrans(x,y,80.25,rot12)); - v9->AddNode(iclamp,7*i+4,new TGeoCombiTrans(x,y,122.25,rot12)); - v9->AddNode(iclamp,7*i+5,new TGeoCombiTrans(x,y,164.25,rot12)); - v9->AddNode(iclamp,7*i+6,new TGeoCombiTrans(x,y,206.25,rot12)); - v9->AddNode(iclamp,7*i+7,new TGeoCombiTrans(x,y,246.75,rot12)); - //C-side - v9->AddNode(iclamp,7*i+127,new TGeoCombiTrans(x,y,-5.25,rot12)); - v9->AddNode(iclamp,7*i+128,new TGeoCombiTrans(x,y,-38.25,rot12)); - v9->AddNode(iclamp,7*i+129,new TGeoCombiTrans(x,y,-80.25,rot12)); - v9->AddNode(iclamp,7*i+130,new TGeoCombiTrans(x,y,-122.25,rot12)); - v9->AddNode(iclamp,7*i+131,new TGeoCombiTrans(x,y,-164.25,rot12)); - v9->AddNode(iclamp,7*i+132,new TGeoCombiTrans(x,y,-206.25,rot12)); - v9->AddNode(iclamp,7*i+133,new TGeoCombiTrans(x,y,-246.75,rot12)); - // - //-------------------------- - // outer rods - r=254.25; - x=r * TMath::Cos(angle); - y=r * TMath::Sin(angle); - z=126.; - // - // outer rod holder + outer left plug - // - - TGeoRotation *rot33 = new TGeoRotation(); - rot33->RotateZ(-90+i*20.); - // - v9->AddNode(tpcohpl,i+1,new TGeoCombiTrans(x, y, 0., rot33)); - // - Double_t xxx = 256.297*TMath::Cos((i*20.+10.)*TMath::DegToRad()); - Double_t yyy = 256.297*TMath::Sin((i*20.+10.)*TMath::DegToRad()); - // - TGeoRotation rot101("rot101"); - rot101.RotateZ(90.+i*20.+10.); - TGeoRotation *rot103 = new TGeoRotation("rot103"); - *rot103 = rot101*rot102; - // - TGeoCombiTrans *trh100 = new TGeoCombiTrans(xxx,yyy,0.,rot103); - // - if(i==2) { - //main membrane holder - v9->AddNode(tpcmmh,1,trh100); - } - else{ - // "normal" membrane holder - v9->AddNode(tpcomh,i+1,trh100); - } - - // - if(i==3){//resistor rod outer - rotrod.RotateZ(90.+i*20.); - rotrod1[1]= new TGeoRotation(); - rotpos[1]= new TGeoRotation(); - rotrod1[1]->RotateZ(90.+i*20.); - *rotpos[1] = refl*rotrod;//rotation+reflection - v9->AddNode(tpcrrod,3,new TGeoCombiTrans(x,y, z, rotrod1[1])); //A - v9->AddNode(tpcrrod,4,new TGeoCombiTrans(x,y, -z, rotpos[1])); //C - } - else { - v9->AddNode(tpcmrod,i+37,new TGeoTranslation(x,y,z));//shaft - v9->AddNode(tpcmrod,i+55,new TGeoCombiTrans(x,y,-z,ref));//muon - } - if(i==15){ - v9->AddNode(hvrv,1,new TGeoTranslation(x,y,z+0.7)); //hv->A-side only - } - // - // outer clamps - // - r=256.9; - x=r * TMath::Cos(angle); - y=r * TMath::Sin(angle); - rot12= new TGeoRotation(); - rot12->RotateZ(i*20.); - // - //A-side - v9->AddNode(oclamp,7*i+1,new TGeoCombiTrans(x,y,5.25,rot12)); - v9->AddNode(oclamp,7*i+2,new TGeoCombiTrans(x,y,38.25,rot12)); - v9->AddNode(oclamp,7*i+3,new TGeoCombiTrans(x,y,80.25,rot12)); - v9->AddNode(oclamp,7*i+4,new TGeoCombiTrans(x,y,122.25,rot12)); - v9->AddNode(oclamp,7*i+5,new TGeoCombiTrans(x,y,164.25,rot12)); - v9->AddNode(oclamp,7*i+6,new TGeoCombiTrans(x,y,206.25,rot12)); - v9->AddNode(oclamp,7*i+7,new TGeoCombiTrans(x,y,246.75,rot12)); - //C-side - v9->AddNode(oclamp,7*i+127,new TGeoCombiTrans(x,y,-5.25,rot12)); - v9->AddNode(oclamp,7*i+128,new TGeoCombiTrans(x,y,-38.25,rot12)); - v9->AddNode(oclamp,7*i+129,new TGeoCombiTrans(x,y,-80.25,rot12)); - v9->AddNode(oclamp,7*i+130,new TGeoCombiTrans(x,y,-122.25,rot12)); - v9->AddNode(oclamp,7*i+131,new TGeoCombiTrans(x,y,-164.25,rot12)); - v9->AddNode(oclamp,7*i+132,new TGeoCombiTrans(x,y,-206.25,rot12)); - v9->AddNode(oclamp,7*i+133,new TGeoCombiTrans(x,y,-246.75,rot12)); - - } //end of rods positioning - - TGeoVolume *alice = gGeoManager->GetVolume("cave"); - alice->AddNode(v1,1); - -} // end of function - -void Detector::defineSensitiveVolumes() -{ - TGeoManager* geoManager = gGeoManager; - TGeoVolume* v; - - const Int_t nSensitive=1; - const char* volumeNames[nSensitive]={"TPC_Drift"}; - - // The names of the ITS sensitive volumes have the format: ITSUSensor(0...mNumberLayers-1) - for (Int_t ivol = 0; ivol < nSensitive; ++ivol) { - TString volumeName = volumeNames[ivol]; - v = geoManager->GetVolume(volumeName.Data()); - if (!v) { - LOG(ERROR) << "Could not find volume '" << volumeName << "'" << FairLogger::endl; - continue; - } - - // set volume sentive - AddSensitiveVolume(v); - } -} - -Point* Detector::AddHit(Int_t trackID, Int_t detID, - TVector3 pos, TVector3 mom, - Double_t time, Double_t length, - Double_t eLoss) -{ - TClonesArray& clref = *mPointCollection; - Int_t size = clref.GetEntriesFast(); - return new(clref[size]) Point(trackID, detID, pos, mom, - time, length, eLoss); -} - -ClassImp(AliceO2::TPC::Detector) diff --git a/tpc/dirty/AliDetectorParam.cxx b/tpc/dirty/AliDetectorParam.cxx deleted file mode 100644 index 8b940987bdb84..0000000000000 --- a/tpc/dirty/AliDetectorParam.cxx +++ /dev/null @@ -1,78 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -/////////////////////////////////////////////////////////////////////// -// Paramter class for AliDetector // -// // -// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // -// // -/////////////////////////////////////////////////////////////////////// - -#include -#include - -#include "AliDetectorParam.h" - - -AliDetectorParam::AliDetectorParam() - :TNamed(), - fBField(0.), - fNPrimLoss(0.), - fNTotalLoss(0.) -{ - // - // default constructor - // -} - -Float_t * AliDetectorParam::GetAnglesAccMomentum(Float_t *x, Int_t * /*index*/, Float_t *momentum, Float_t *angle) -{ - // - //calculates deflection angle of particle with longitudinal - //longitudinal momentum[0] and transversal momentum momentum[1] - //at position (x,y,z) = (x[0],x[1],x[2]) - //angle[0] - deep angle - //angle[1] - magnetic deflection angle - if (momentum==0) { - Float_t rtotal =TMath::Sqrt(x[0]*x[0]+x[1]*x[1]); - if (rtotal==0) angle[0]=0; - else - angle[0] = TMath::ATan(x[2]/rtotal); - angle[1]=0; - return angle; - } - Float_t mtotal =TMath::Sqrt(momentum[0]*momentum[0]+momentum[1]*momentum[1]); - if (mtotal==0) { - angle[0]= 0; - angle[1]=0; - return angle; - } - angle[0]= TMath::ATan(momentum[2]/mtotal); - Float_t radius1 = TMath::Sqrt(x[0]*x[0]+x[1]*x[1]); //axial symetry in z - Float_t radius2 = 1000*mtotal/(3*fBField); - if (radius1 -class AliDetectorParam : public TNamed { -public: - AliDetectorParam(); - virtual Int_t GetNSegmentsTotal() const {return 0;} //get total nuber of segments - virtual Bool_t Get1DIndex(Int_t */*index*/, const Int_t * /*arrindex*/) {return kFALSE;} - //transform multidimensional index to one dimesional - virtual Bool_t GetNDIndex(const Int_t * /*index1*/, Int_t * /*arrIndex*/) {return kFALSE;} - //trasnform one dimesional index to multidimesional - virtual Float_t GetPrimaryLoss(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/){return 0;} - virtual Float_t GetTotalLoss(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/){return 0;} - virtual void GetClusterSize(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/, Int_t /*mode*/, Float_t */*sigma*/){;} - virtual void GetSpaceResolution(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/, Float_t /*amplitude*/, Int_t /*mode*/, - Float_t */*sigma*/){;} - virtual Float_t * GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle); - - void SetBField(Float_t b){fBField=b;} //set magnetic field intensity - void SetNPrimLoss(Float_t loss) {fNPrimLoss = loss;} - void SetNTotalLoss(Float_t loss) {fNTotalLoss = loss;} - Float_t GetBFiled() {return fBField;} - Float_t GetNPrimLoss() {return fNPrimLoss;} - Float_t GetNTotalLoss() {return fNTotalLoss;} -protected: - Float_t fBField; //intensity of magnetic field - Float_t fNPrimLoss; //number of produced primary electrons per cm - Float_t fNTotalLoss; //total number of produced electrons per cm - - ClassDef(AliDetectorParam,1) //parameter object for set:TPC -}; - - - - -#endif //ALIDPARAM_H diff --git a/tpc/dirty/AliH2F.cxx b/tpc/dirty/AliH2F.cxx deleted file mode 100644 index ec6143ce97f8a..0000000000000 --- a/tpc/dirty/AliH2F.cxx +++ /dev/null @@ -1,303 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -//---------------------------------------------------------------------------- -// Author: Marian Ivanov -// -// Implementation of class AliH2F -// -//----------------------------------------------------------------------------- - -#include -#include -#include - -#include "AliH2F.h" - - -ClassImp(AliH2F) -//*********************************************************************** -//*********************************************************************** -//*********************************************************************** -//*********************************************************************** -AliH2F::AliH2F():TH2F() -{ - // - -} -AliH2F::AliH2F(const Text_t *name,const Text_t *title, - Int_t nbinsx,Axis_t xlow,Axis_t xup - ,Int_t nbinsy,Axis_t ylow,Axis_t yup): - TH2F(name,title,nbinsx,xlow,xup - ,nbinsy,ylow,yup) -{ - // - -} - -AliH2F::~AliH2F() -{ - // -} - -AliH2F::AliH2F(const AliH2F &his) : - TH2F(his) -{ - // - -} - -AliH2F & AliH2F::operator = (const AliH2F & /*his*/) -{ - // - return *this; -} - -/* -TClonesArray * AliH2F::FindPeaks(Float_t threshold, Float_t noise) -{ - //find peaks and write it in form of AliTPCcluster to array - - //firstly we need to create object for cluster finding - //and fill it with contents of histogram - AliTPCClusterFinder cfinder; - cfinder.SetThreshold(threshold); - cfinder.SetNoise(noise); - cfinder.GetHisto(this); - return cfinder.FindPeaks3(); -} -*/ - -void AliH2F::ClearSpectrum() -{ - //clera histogram - Int_t dimx = fXaxis.GetNbins(); - Int_t dimy = fYaxis.GetNbins(); - for (Int_t i = 0 ;iGaus(0,sn); - Float_t oldv =GetBinContent(GetBin(i,j)); - Float_t olds =GetBinError(GetBin(i,j)); - if (noise >0) - { - SetBinContent(GetBin(i,j),noise+oldv); - SetBinError(GetBin(i,j),TMath::Sqrt((noise*noise+olds*olds))); - } - } -} -void AliH2F::AddGauss(Float_t x, Float_t y, - Float_t sx, Float_t sy, Float_t max) -{ - //transform to histogram coordinata - Int_t dimx = fXaxis.GetNbins(); - Int_t dimy = fYaxis.GetNbins(); - Float_t dx =(GetXaxis()->GetXmax()-GetXaxis()->GetXmin())/Float_t(dimx); - Float_t dy =(GetYaxis()->GetXmax()-GetYaxis()->GetXmin())/Float_t(dimy); - // x=(x-GetXaxis()->GetXmin())/dx; - //y=(y-GetYaxis()->GetXmin())/dy; - sx/=dx; - sy/=dy; - - - for (Int_t i = 0 ;iGetBinCenter(i+1); - Float_t y2 =GetYaxis()->GetBinCenter(j+1); - Float_t dx2 = (x2-x)*(x2-x); - Float_t dy2 = (y2-y)*(y2-y); - Float_t amp =max*exp(-(dx2/(2*sx*sx)+dy2/(2*sy*sy))); - //Float_t oldv =GetBinContent(GetBin(i+1,j+1)); - // SetBinContent(GetBin(i+1,j+1),amp+oldv); - Fill(x2,y2,amp); - } -} - -void AliH2F::ClearUnderTh(Int_t threshold) -{ - //clear histogram for bin under threshold - Int_t dimx = fXaxis.GetNbins(); - Int_t dimy = fYaxis.GetNbins(); - for (Int_t i = 0 ;i<=dimx;i++) - for (Int_t j = 0 ;j<=dimy;j++) - { - Float_t oldv =GetBinContent(GetBin(i,j)); - if (oldv GetBin(i,j); - Float_t val = GetBinContent(index1); - // sub->SetBinContent(index2,val); - // Float_t err = GetBinError(index1); - //sub->SetBinError(index2,GetBinError(index1)); - sub->SetBinContent(GetBin(i,j),val); - } - return sub; -} - -TH1F *AliH2F::GetAmplitudes(Float_t zmin, Float_t zmax, Float_t th, Float_t xmin, Float_t xmax, - Float_t ymin, Float_t ymax) -{ - //this function return pointer to the new created - //histogram which is subhistogram of the - //calculate number - //subhistogram range must be inside histogram - - if (xmax<=xmin) { - xmin=fXaxis.GetXmin(); - xmax=fXaxis.GetXmax(); - } - if (ymax<=ymin) { - ymin=fYaxis.GetXmin(); - ymax=fYaxis.GetXmax(); - } - Int_t nx = Int_t((xmax-xmin)/(fXaxis.GetXmax()-fXaxis.GetXmin()) * - Float_t(fXaxis.GetNbins())); - Int_t ny = Int_t((ymax-ymin)/(fYaxis.GetXmax()-fYaxis.GetXmin()) * - Float_t(fYaxis.GetNbins())); - TString t1 = fName ; - TString t2 = fTitle ; - t1+="_amplitudes"; - t2+="_amplitudes"; - const Text_t *ktt1 = t1; - const Text_t *ktt2 = t2; - - TH1F * h = new TH1F(ktt1,ktt2,100,zmin,zmax); - - Int_t i1 = Int_t( Float_t(fXaxis.GetNbins())*(xmin-fXaxis.GetXmin())/ - (fXaxis.GetXmax()-fXaxis.GetXmin()) ) ; - Int_t i2 = Int_t( Float_t(fYaxis.GetNbins())*(ymin-fYaxis.GetXmin())/ - (fYaxis.GetXmax()-fYaxis.GetXmin()) ) ; - for (Int_t i=0;ith) h->Fill(val); - } - return h; -} - -Float_t AliH2F::GetOccupancy(Float_t th , Float_t xmin, Float_t xmax, - Float_t ymin, Float_t ymax) -{ - //this function return pointer to the new created - //histogram which is subhistogram of the - //calculate number - //subhistogram range must be inside histogram - - if (xmax<=xmin) { - xmin=fXaxis.GetXmin(); - xmax=fXaxis.GetXmax(); - } - if (ymax<=ymin) { - ymin=fYaxis.GetXmin(); - ymax=fYaxis.GetXmax(); - } - Int_t nx = Int_t((xmax-xmin)/(fXaxis.GetXmax()-fXaxis.GetXmin()) * - Float_t(fXaxis.GetNbins())); - Int_t ny = Int_t((ymax-ymin)/(fYaxis.GetXmax()-fYaxis.GetXmin()) * - Float_t(fYaxis.GetNbins())); - - Int_t over =0; - Int_t i1 = Int_t( Float_t(fXaxis.GetNbins())*(xmin-fXaxis.GetXmin())/ - (fXaxis.GetXmax()-fXaxis.GetXmin()) ) ; - Int_t i2 = Int_t( Float_t(fYaxis.GetNbins())*(ymin-fYaxis.GetXmin())/ - (fYaxis.GetXmax()-fYaxis.GetXmin()) ) ; - for (Int_t i=0;ith) over++; - } - Int_t all = nx*ny; - if (all>0) return Float_t(over)/Float_t(all); - else - return 0; -} diff --git a/tpc/dirty/AliH2F.h b/tpc/dirty/AliH2F.h deleted file mode 100644 index 552a01159c656..0000000000000 --- a/tpc/dirty/AliH2F.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef ALIH2F_H -#define ALIH2F_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id$ */ - -// include files and class forward declarations - -#include "TH2.h" - -class TH1F; -class TClonesArray; - -class AliH2F : public TH2F { -public: - AliH2F(); - AliH2F(const Text_t *name,const Text_t *title,Int_t nbinsx, - Axis_t xlow,Axis_t xup,Int_t nbinsy,Axis_t ylow,Axis_t yup); - ~AliH2F(); - -public: - AliH2F(const AliH2F &his); - AliH2F & operator = (const AliH2F &his); -// TClonesArray * FindPeaks(Float_t threshold, Float_t noise); - //find peaks and write it in form of AliTPCcluster to array - void ClearSpectrum(); - void AddGauss(Float_t x,Float_t y,Float_t sx, Float_t sy, Float_t max); - void AddNoise(Float_t sn); - void ClearUnderTh(Int_t threshold); - void Round(); - //round float values to integer values - - AliH2F * GetSubrange2d(Float_t xmin, Float_t xmax, - Float_t ymin, Float_t ymax); - //create new 2D histogram - Float_t GetOccupancy(Float_t th=1. , Float_t xmin=0, Float_t xmax=0, - Float_t ymin=0, Float_t ymax=0); - //calculate ration of channel over threshold to all channels - TH1F * GetAmplitudes(Float_t zmin, Float_t zmax, Float_t th=1. , Float_t xmin=0, Float_t xmax=0, - Float_t ymin=0, Float_t ymax=0); - //generate one dim histogram of amplitudes - -public: - -protected: - -private: - - ClassDef(AliH2F,1) -}; - -#endif /*TH2FSMOOTH_H */ diff --git a/tpc/dirty/AliLog.cxx b/tpc/dirty/AliLog.cxx deleted file mode 100644 index 3622162a59427..0000000000000 --- a/tpc/dirty/AliLog.cxx +++ /dev/null @@ -1,1175 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id: AliLog.cxx 56875 2012-06-05 16:02:14Z fca $ */ - -/////////////////////////////////////////////////////////////////////////////// -// // -// class for logging debug, info and error messages // -// // -// The AliLog class is a singleton class. It allows to steer the output // -// level and output streams for different types of messages via static // -// methods. // -// // -// It also handles the messages produces by the preprocessor macros defined // -// in the header file: AliDebug, AliInfo, AliWarning, AliError, AliFatal. // -// // -// More details about the message logging can be found on the ALICE Offline // -// web page. // -// // -/////////////////////////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include -#include -#include -#include -#include // platform independent definition of va_copy - -#include "AliLog.h" - -using std::endl; -using std::cout; -using std::ostream; -using std::cerr; -using std::ofstream; -using std::ios; -ClassImp(AliLog) - -// implementation of a singleton here -AliLog* AliLog::fgInstance = NULL; - -Bool_t AliLog::fgDebugEnabled = kTRUE; - -/** - * get root logger singleton instance - */ -AliLog *AliLog::GetRootLogger() -{ - if (fgInstance == NULL) - { - // creating singleton - fgInstance = new AliLog; - } - - return fgInstance; -} - -/** - * delete the root logger singleton instance - */ -void AliLog::DeleteRootLogger() -{ - if (fgInstance != NULL) - { - delete fgInstance; - fgInstance = NULL; - } -} - -/** - * default private constructor - */ -AliLog::AliLog() : - TObject(), - fGlobalLogLevel(kInfo), - fModuleDebugLevels(), - fClassDebugLevels(), - fPrintRepetitions(kTRUE), - fRepetitions(0), - fLastType(0), - fLastMessage(), - fLastModule(), - fLastClassName(), - fLastFunction(), - fLastFile(), - fLastLine(0) -{ -// default constructor: set default values - - for (Int_t iType = kFatal; iType < kMaxType; iType++) - { - fOutputTypes[iType] = 0; - fFileNames[iType] = ""; - fOutputFiles[iType] = NULL; - fOutputStreams[iType] = NULL; - fCallBacks[iType]=NULL; - - fPrintType[iType] = kTRUE; - fPrintModule[iType] = kFALSE; - fPrintScope[iType] = kTRUE; - fPrintLocation[iType] = (iType == kDebug); - } - - // TO BE REVIEWED - // replace the previous instance by this one - if (fgInstance) delete fgInstance; - fgInstance = this; - - SetHandleRootMessages(kTRUE); - - // read the .rootrc settings - ReadEnvSettings(); -} - -/** - * private destructor - */ -AliLog::~AliLog() -{ -// destructor: clean up and reset instance pointer - - if (fRepetitions > 0) PrintRepetitions(); - - for (Int_t i = 0; i < fModuleDebugLevels.GetEntriesFast(); i++) - { - if (fModuleDebugLevels[i]) fModuleDebugLevels[i]->Delete(); - } - - fClassDebugLevels.Delete(); - - for (Int_t i = 0; i < fClassDebugLevels.GetEntriesFast(); i++) - { - if (fClassDebugLevels[i]) fClassDebugLevels[i]->Delete(); - } - - fClassDebugLevels.Delete(); - - for (Int_t iType = kFatal; iType < kMaxType; iType++) - { - CloseFile(iType); - } - - fflush(stderr); - fflush(stdout); - - fgInstance = NULL; -} - -// NOT IMPLEMENTED!? -//_____________________________________________________________________________ -AliLog::AliLog(const AliLog& log) : - TObject(log), - fGlobalLogLevel(log.fGlobalLogLevel), - fModuleDebugLevels(log.fModuleDebugLevels), - fClassDebugLevels(log.fClassDebugLevels), - fPrintRepetitions(log.fPrintRepetitions), - fRepetitions(log.fRepetitions), - fLastType(log.fLastType), - fLastMessage(log.fLastMessage), - fLastModule(log.fLastModule), - fLastClassName(log.fLastClassName), - fLastFunction(log.fLastFunction), - fLastFile(log.fLastFile), - fLastLine(log.fLastLine) -{ -// copy constructor - - Fatal("AliLog", "copy constructor not implemented"); -} - -// NOT IMPLEMENTED!? -//_____________________________________________________________________________ -AliLog& AliLog::operator = (const AliLog& /*log*/) -{ -// assignment operator - - Fatal("operator =", "assignment operator not implemented"); - return *this; -} - - -/** - * gSystem see TSystem.h - * gEnv see TEnv.h - * - * LOG_NO_DEBUG: fgDebugEnabled <- false - * AliRoot.AliLog.EnableDebug - * AliRoot.AliLog.GlobalLogLevel - */ -//_____________________________________________________________________________ -void AliLog::ReadEnvSettings() -{ -// load settings from the root configuration file (.rootrc) -// and from environment variables - - static const char* typeNames[kMaxType] = {"kFatal", "kError", "kWarning", "kInfo", "kDebug"}; - - // debug en- or disabling - if (gSystem->Getenv("LOG_NO_DEBUG")) - { - fgDebugEnabled = kFALSE; - } - else if (gEnv->Defined("AliRoot.AliLog.EnableDebug")) - { - fgDebugEnabled = gEnv->GetValue("AliRoot.AliLog.EnableDebug", fgDebugEnabled); - AliInfo(Form("debug %sabled", ((fgDebugEnabled) ? "en" : "dis"))); - } - - // global log level - if (gEnv->Defined("AliRoot.AliLog.GlobalLogLevel")) - { - const char* type = gEnv->GetValue("AliRoot.AliLog.GlobalLogLevel", ""); - - for (Int_t iType = kFatal; iType < kMaxType; iType++) - { - if (strcmp(type, typeNames[iType]) == 0) fGlobalLogLevel = iType; - } - - AliDebug(3, Form("global log level set to %d", fGlobalLogLevel)); - } - - // global debug level - if (gEnv->Defined("AliRoot.AliLog.GlobalDebugLevel")) - { - Int_t level = gEnv->GetValue("AliRoot.AliLog.GlobalDebugLevel", Int_t(fGlobalLogLevel - kDebugOffset)); - if (level < -kDebugOffset) level = kDebugOffset; - fGlobalLogLevel = kDebugOffset + level; - AliDebug(3, Form("global debug level set to %d", fGlobalLogLevel - kDebugOffset)); - } - - // module debug level - if (gEnv->Defined("AliRoot.AliLog.ModuleDebugLevel")) - { - TString levels = gEnv->GetValue("AliRoot.AliLog.ModuleDebugLevel", ""); - char* p = const_cast(levels.Data()); - - while (const char* module = strtok(p, " ")) - { - p = NULL; - char* pos = const_cast(index(module, ':')); - if (!pos) continue; - *(pos++) = '\0'; - Int_t level = atoi(pos); - SetModuleDebugLevel(module, level); - AliDebug(3, Form("debug level for module %s set to %d", module, level)); - } - } - - // class debug level - if (gEnv->Defined("AliRoot.AliLog.ClassDebugLevel")) - { - TString levels = gEnv->GetValue("AliRoot.AliLog.ClassDebugLevel", ""); - char* p = const_cast(levels.Data()); - - while (const char* className = strtok(p, " ")) - { - p = NULL; - char* pos = const_cast(index(className, ':')); - if (!pos) continue; - *(pos++) = '\0'; - Int_t level = atoi(pos); - SetClassDebugLevel(className, level); - AliDebug(3, Form("debug level for class %s set to %d", className, level)); - } - } - - // general output stream - if (gEnv->Defined("AliRoot.AliLog.Output")) - { - TString stream = gEnv->GetValue("AliRoot.AliLog.Output", "Standard"); - - if (stream.CompareTo("standard", TString::kIgnoreCase) == 0) - { - SetStandardOutput(); - AliDebug(3, "output stream set to standard output for all types"); - } - else if (stream.CompareTo("error", TString::kIgnoreCase) == 0) - { - SetErrorOutput(); - AliDebug(3, "output stream set to error output for all types"); - } - else if (!stream.IsNull()) - { - SetFileOutput(stream); - AliDebug(3, Form("output stream set to file %s for all types", stream.Data())); - } - } - - // individual output streams - for (Int_t iType = kFatal; iType < kMaxType; iType++) - { - TString name("AliRoot.AliLog.Output."); - name += &typeNames[iType][1]; - - if (gEnv->Defined(name)) - { - TString stream = gEnv->GetValue(name, "Standard"); - - if (stream.CompareTo("standard", TString::kIgnoreCase) == 0) - { - SetStandardOutput(EType_t(iType)); - AliDebug(3, Form("output stream set to standard output for type %s", typeNames[iType])); - } - else if (stream.CompareTo("error", TString::kIgnoreCase) == 0) - { - SetErrorOutput(EType_t(iType)); - AliDebug(3, Form("output stream set to error output for type %s", typeNames[iType])); - } - else if (!stream.IsNull()) - { - SetFileOutput(EType_t(iType), stream); - AliDebug(3, Form("output stream set to file %s for type %s", stream.Data(), typeNames[iType])); - } - } - } - - // handling of root error messages - if (gEnv->Defined("AliRoot.AliLog.HandleRootMessages")) - { - Bool_t on = gEnv->GetValue("AliRoot.AliLog.HandleRootMessages", kTRUE); - SetHandleRootMessages(on); - AliDebug(3, Form("handling of root messages %sabled", ((on) ? "en" : "dis"))); - } - - // printout settings - static const char* settingNames[4] = {"Type", "Module", "Scope", "Location"}; - Bool_t* settings[] = {fPrintType, fPrintModule, fPrintScope, fPrintLocation}; - - for (Int_t iSetting = 0; iSetting < 4; iSetting++) - { - TString name("AliRoot.AliLog.Print"); - name += settingNames[iSetting]; - - if (gEnv->Defined(name)) - { - Bool_t on = gEnv->GetValue(name, settings[iSetting][0]); - - for (Int_t iType = kFatal; iType < kMaxType; iType++) - { - settings[iSetting][iType] = on; - } - AliDebug(3, Form("printing of %s %sabled for all types", settingNames[iSetting], ((on) ? "en" : "dis"))); - } - - for (Int_t iType = kFatal; iType < kMaxType; iType++) - { - TString nameType = name + "." + &typeNames[iType][1]; - - if (gEnv->Defined(nameType)) - { - Bool_t on = gEnv->GetValue(nameType, settings[iSetting][iType]); - settings[iSetting][iType] = on; - AliDebug(3, Form("printing of %s %sabled for type %s", settingNames[iSetting], ((on) ? "en" : "dis"), typeNames[iType])); - } - } - } - - // repetition of messages - if (gEnv->Defined("AliRoot.AliLog.PrintRepetitions")) - { - Bool_t on = gEnv->GetValue("AliRoot.AliLog.PrintRepetitions", kTRUE); - fPrintRepetitions = on; - AliDebug(3, Form("printing of message repetitions %sabled", ((on) ? "en" : "dis"))); - } -} - - -//_____________________________________________________________________________ -void AliLog::RootErrorHandler(Int_t level, Bool_t abort, - const char* location, const char* message) -{ -// new error handler for messages from root - - switch (level) - { - case ::kFatal : level = kFatal; break; - case ::kSysError : - DefaultErrorHandler(level, abort, location, message); - return; - case ::kBreak : - DefaultErrorHandler(level, abort, location, message); - return; - case ::kError : level = kError; break; - case ::kWarning : level = kWarning; break; - case ::kInfo : level = kInfo; break; - default : level = kDebug; break; - } - AliLog::Message(level, message, "ROOT", NULL, location, NULL, 0); -} - - -// DEPRECATED: USE A CONFIGURATION FILE INSTEAD -//_____________________________________________________________________________ -void AliLog::EnableDebug(Bool_t enabled) -{ -// enable or disable debug output - - fgDebugEnabled = enabled; -} - -//_____________________________________________________________________________ -void AliLog::SetGlobalLogLevel(EType_t type) -{ -// set the global debug level - - // TO BE DELETED - if (!fgInstance) new AliLog; - fgInstance->fGlobalLogLevel = type; -} - -//_____________________________________________________________________________ -Int_t AliLog::GetGlobalLogLevel() -{ -// get the global debug level - - if (!fgInstance) new AliLog; - return fgInstance->fGlobalLogLevel; -} - -//_____________________________________________________________________________ -void AliLog::SetGlobalDebugLevel(Int_t level) -{ -// set the global debug level - - if (!fgInstance) new AliLog; - if (level < -kDebugOffset) level = -kDebugOffset; - fgInstance->fGlobalLogLevel = kDebugOffset + level; -} - -//_____________________________________________________________________________ -Int_t AliLog::GetGlobalDebugLevel() -{ -// get the global debug level - - if (!fgInstance) new AliLog; - return fgInstance->fGlobalLogLevel - kDebugOffset; -} - -//_____________________________________________________________________________ -void AliLog::SetModuleDebugLevel(const char* module, Int_t level) -{ -// set the debug level for the given module - - if (!module) return; - if (!fgInstance) new AliLog; - TObject* obj = fgInstance->fModuleDebugLevels.FindObject(module); - if (!obj) { - obj = new TNamed(module, module); - fgInstance->fModuleDebugLevels.Add(obj); - } - level += kDebugOffset; - if (level < kFatal) level = kFatal; - obj->SetUniqueID(level); -} - -//_____________________________________________________________________________ -void AliLog::ClearModuleDebugLevel(const char* module) -{ -// remove the setting of the debug level for the given module - - if (!module) return; - if (!fgInstance) new AliLog; - TObject* obj = fgInstance->fModuleDebugLevels.FindObject(module); - if (obj) delete fgInstance->fModuleDebugLevels.Remove(obj); -} - -//_____________________________________________________________________________ -void AliLog::SetClassDebugLevel(const char* className, Int_t level) -{ -// set the debug level for the given class - - if (!className) return; - if (!fgInstance) new AliLog; - TObject* obj = fgInstance->fClassDebugLevels.FindObject(className); - if (!obj) { - obj = new TNamed(className, className); - fgInstance->fClassDebugLevels.Add(obj); - } - level += kDebugOffset; - if (level < kFatal) level = kFatal; - obj->SetUniqueID(level); -} - -//_____________________________________________________________________________ -void AliLog::ClearClassDebugLevel(const char* className) -{ -// remove the setting of the debug level for the given class - - if (!className) return; - if (!fgInstance) new AliLog; - TObject* obj = fgInstance->fClassDebugLevels.FindObject(className); - if (obj) delete fgInstance->fClassDebugLevels.Remove(obj); -} - - -//_____________________________________________________________________________ -void AliLog::SetStandardOutput() -{ -// write all log messages to the standard output (stdout) - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - fgInstance->CloseFile(iType); - fgInstance->fOutputTypes[iType] = 0; - } -} - -//_____________________________________________________________________________ -void AliLog::SetStandardOutput(EType_t type) -{ -// write log messages of the given type to the standard output (stdout) - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - fgInstance->CloseFile(type); - fgInstance->fOutputTypes[type] = 0; -} - -//_____________________________________________________________________________ -void AliLog::SetErrorOutput() -{ -// write all log messages to the error output (stderr) - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - fgInstance->CloseFile(iType); - fgInstance->fOutputTypes[iType] = 1; - } -} - -//_____________________________________________________________________________ -void AliLog::SetErrorOutput(EType_t type) -{ -// write log messages of the given type to the error output (stderr) - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - fgInstance->CloseFile(type); - fgInstance->fOutputTypes[type] = 1; -} - -//_____________________________________________________________________________ -void AliLog::SetFileOutput(const char* fileName) -{ -// write all log messages to the given file - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - if ((fgInstance->fOutputTypes[iType] == 2) && - (fgInstance->fFileNames[iType].CompareTo(fileName) != 0)) { - fgInstance->CloseFile(iType); - } - fgInstance->fOutputTypes[iType] = 2; - fgInstance->fFileNames[iType] = fileName; - fgInstance->fOutputFiles[iType] = NULL; - fgInstance->fOutputStreams[iType] = NULL; - } -} - -//_____________________________________________________________________________ -void AliLog::SetFileOutput(EType_t type, const char* fileName) -{ -// write log messages of the given type to the given file - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - if ((fgInstance->fOutputTypes[type] == 2) && - (fgInstance->fFileNames[type].CompareTo(fileName) != 0)) { - fgInstance->CloseFile(type); - } - fgInstance->fOutputTypes[type] = 2; - fgInstance->fFileNames[type] = fileName; - fgInstance->fOutputFiles[type] = NULL; - fgInstance->fOutputStreams[type] = NULL; -} - -//_____________________________________________________________________________ -void AliLog::CloseFile(Int_t type) -{ -// close the file for the given type if needed - - if ((fOutputTypes[type] == 2) && fOutputFiles[type]) { - Bool_t closeFile = kTRUE; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - if ((iType != type) && (fOutputFiles[iType] == fOutputFiles[type])) { - closeFile = kFALSE; - } - } - if (closeFile) { - fclose(fOutputFiles[type]); - ofstream* stream=reinterpret_cast(fOutputStreams[type]); - stream->close(); - delete fOutputStreams[type]; - } - } - fOutputFiles[type] = NULL; - fOutputStreams[type] = NULL; - fFileNames[type] = ""; - fOutputTypes[type] = 0; -} - -//_____________________________________________________________________________ -FILE* AliLog::GetOutputStream(Int_t type) -{ -// get the output stream for the given type of messages - - if (type > kDebug) type = kDebug; - if (fOutputTypes[type] == 0) return stdout; - else if (fOutputTypes[type] == 1) return stderr; - else if (fOutputTypes[type] == 2) { - if (!fOutputFiles[type]) { - FILE* file = NULL; - ostream* stream = NULL; - if (!fFileNames[type].IsNull()) { - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - if ((iType != type) && - (fFileNames[iType].CompareTo(fFileNames[type]) == 0) && - fOutputFiles[iType]) { - file = fOutputFiles[iType]; - stream = fOutputStreams[iType]; - break; - } - } - if (!file) { - file = fopen(fFileNames[type], "a"); - stream = new ofstream(fFileNames[type], ios::app); - } - } - fOutputFiles[type] = file; - fOutputStreams[type] = stream; - if (!file) CloseFile(type); - } - if (fOutputFiles[type]) return fOutputFiles[type]; - } - - return stdout; -} - -//_____________________________________________________________________________ -void AliLog::Flush() -{ -// flush the output streams - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - if (fgInstance->fOutputFiles[iType]) { - fflush(fgInstance->fOutputFiles[iType]); - fgInstance->fOutputStreams[iType]->flush(); - } - } - fflush(stderr); - fflush(stdout); -} - - -//_____________________________________________________________________________ -void AliLog::SetHandleRootMessages(Bool_t on) -{ -// enable or disable the handling of messages form root - - if (!fgInstance) new AliLog; - if (on) { - SetErrorHandler(RootErrorHandler); - } else { - SetErrorHandler(DefaultErrorHandler); - } -} - - -//_____________________________________________________________________________ -void AliLog::SetPrintType(Bool_t on) -{ -// switch on or off the printing of the message type for all message types - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - fgInstance->fPrintType[iType] = on; - } -} - -//_____________________________________________________________________________ -void AliLog::SetPrintType(EType_t type, Bool_t on) -{ -// switch on or off the printing of the message type for the given message type - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - fgInstance->fPrintType[type] = on; -} - -//_____________________________________________________________________________ -void AliLog::SetPrintModule(Bool_t on) -{ -// switch on or off the printing of the module for all message types - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - fgInstance->fPrintModule[iType] = on; - } -} - -//_____________________________________________________________________________ -void AliLog::SetPrintModule(EType_t type, Bool_t on) -{ -// switch on or off the printing of the module for the given message type - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - fgInstance->fPrintModule[type] = on; -} - -//_____________________________________________________________________________ -void AliLog::SetPrintScope(Bool_t on) -{ -// switch on or off the printing of the scope/class name for all message types - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - fgInstance->fPrintScope[iType] = on; - } -} - -//_____________________________________________________________________________ -void AliLog::SetPrintScope(EType_t type, Bool_t on) -{ -// switch on or off the printing of the scope/class name -// for the given message type - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - fgInstance->fPrintScope[type] = on; -} - -//_____________________________________________________________________________ -void AliLog::SetPrintLocation(Bool_t on) -{ -// switch on or off the printing of the file name and line number -// for all message types - - if (!fgInstance) new AliLog; - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - fgInstance->fPrintLocation[iType] = on; - } -} - -//_____________________________________________________________________________ -void AliLog::SetPrintLocation(EType_t type, Bool_t on) -{ -// switch on or off the printing of the file name and line number -// for the given message type - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - fgInstance->fPrintLocation[type] = on; -} - - -//_____________________________________________________________________________ -void AliLog::SetPrintRepetitions(Bool_t on) -{ -// switch on or off the printing of the number of repetitions of a message -// instead of repeating the same message - - if (!fgInstance) new AliLog; - if (!on && (fgInstance->fRepetitions > 0)) fgInstance->PrintRepetitions(); - fgInstance->fPrintRepetitions = on; -} - - -//_____________________________________________________________________________ -void AliLog::WriteToFile(const char* name, Int_t option) -{ -// write the log object with the given name and option to the current file - - if (!fgInstance) new AliLog; - fgInstance->TObject::Write(name, option); -} - - -//_____________________________________________________________________________ -UInt_t AliLog::GetLogLevel(const char* module, const char* className) const -{ -// get the logging level for the given module and class - - if (!fgInstance) new AliLog; - if (className) { - TObject* obj = fgInstance->fClassDebugLevels.FindObject(className); - if (obj) return obj->GetUniqueID(); - } - if (module) { - TObject* obj = fgInstance->fModuleDebugLevels.FindObject(module); - if (obj) return obj->GetUniqueID(); - } - return fgInstance->fGlobalLogLevel; -} - -//_____________________________________________________________________________ -Int_t AliLog::GetDebugLevel(const char* module, const char* className) -{ -// get the debug level for the given module and class - - if (!fgInstance) new AliLog; - return fgInstance->GetLogLevel(module, className) - kDebugOffset; -} - -//_____________________________________________________________________________ -void AliLog::PrintMessage(UInt_t type, const char* message, - const char* module, const char* className, - const char* function, const char* file, Int_t line) -{ -// print the given message - - // don't print the message if it is repeated - if (fPrintRepetitions && - (fLastType == type) && - (message && (fLastMessage.CompareTo(message) == 0)) && - ((module && (fLastModule.CompareTo(module) == 0)) || - (!module && fLastModule.IsNull())) && - ((className && (fLastClassName.CompareTo(className) == 0)) || - (!className && fLastClassName.IsNull())) && - ((function && (fLastFunction.CompareTo(function) == 0)) || - (!function && fLastFunction.IsNull()))&& - ((file && (fLastFile.CompareTo(file) == 0)) || - (!file && fLastFile.IsNull())) && - (fLastLine == line)) { - fRepetitions++; - return; - } - - // print number of repetitions - if (fRepetitions > 0) PrintRepetitions(); - - // remember this message - fRepetitions = 0; - fLastType = type; - fLastMessage = message; - fLastModule = module; - fLastClassName = className; - fLastFunction = function; - fLastFile = file; - fLastLine = line; - - // print the message - FILE* stream = GetOutputStream(type); - static const char* typeNames[kMaxType] = - {"Fatal", "Error", "Warning", "Info", "Debug"}; - - if (fPrintType[type]) { - PrintString(type, stream, "%c-", typeNames[type][0]); - } - if (fPrintModule[type] && module) { - PrintString(type, stream, "%s/", module); - } - if (fPrintScope[type] && className) { - PrintString(type, stream, "%s::", className); - } - if (message) { - PrintString(type, stream, "%s: %s", function, message); - } else { - PrintString(type, stream, "%s", function); - } - if (fPrintLocation[type] && file) { - PrintString(type, stream, " (%s:%.0d)", file, line); - } - if (message) { - PrintString(type, stream, "\n"); - } else { - PrintString(type, stream, ": "); - } - if (fCallBacks[type]) (*(fCallBacks[type]))((EType_t)type, NULL); -} - -//_____________________________________________________________________________ -void AliLog::PrintRepetitions() -{ -// print number of repetitions - - PrintString(fLastType, GetOutputStream(fLastType), " \n", - fRepetitions, (fRepetitions > 1) ? "s" : ""); - if (fCallBacks[fLastType]) (*(fCallBacks[fLastType]))((EType_t)fLastType, NULL); -} - -//_____________________________________________________________________________ -void AliLog::Message(UInt_t level, const char* message, - const char* module, const char* className, - const char* function, const char* file, Int_t line) -{ -// print a log message - - if (!fgInstance) new AliLog; - - // get the message type - UInt_t type = level; - if (type >= kMaxType) type = kMaxType - 1; - - // print the message if the debug level allows - if (level <= fgInstance->GetLogLevel(module, className)) { - fgInstance->PrintMessage(type, message, - module, className, function, file, line); - } - - // abort in case of a fatal message - if (type == kFatal) { - delete fgInstance; - if (gSystem) { - gSystem->StackTrace(); - gSystem->Abort(); - } else { - ::abort(); - } - } -} - -//_____________________________________________________________________________ -void AliLog::Debug(UInt_t level, const char* message, - const char* module, const char* className, - const char* function, const char* file, Int_t line) -{ -// print a debug message - - if (level == 0) level = 1; - level += kDebugOffset; - Message(level, message, module, className, function, file, line); -} - - -//_____________________________________________________________________________ -Int_t AliLog::RedirectStdoutTo(EType_t type, UInt_t level, const char* module, - const char* className, const char* function, - const char* file, Int_t line, Bool_t print) -{ -// redirect the standard output to the stream of the given type - - if (!fgInstance) new AliLog; - return fgInstance->RedirectTo(stdout, type, level, module, className, - function, file, line, print); -} - -//_____________________________________________________________________________ -Int_t AliLog::RedirectStderrTo(EType_t type, UInt_t level, const char* module, - const char* className, const char* function, - const char* file, Int_t line, Bool_t print) -{ -// redirect the standard error output to the stream of the given type - - if (!fgInstance) new AliLog; - return fgInstance->RedirectTo(stderr, type, level, module, className, - function, file, line, print); -} - -//_____________________________________________________________________________ -Int_t AliLog::RedirectTo(FILE* stream, EType_t type, UInt_t level, - const char* module, const char* className, - const char* function, const char* file, Int_t line, - Bool_t print) -{ -// redirect the standard (error) output stream to the stream of the given type - - // get the original file descriptor to be able to restore it later - Int_t original = dup(fileno(stream)); - fflush(stream); - - // flush the stream of the selected type - FILE* newStream = GetOutputStream(type); - fflush(newStream); - - // redirect stream - if ((type == kDebug) && (level > 0)) level--; - if (type + level > GetLogLevel(module, className)) { // /dev/null - if(!freopen("/dev/null", "a", stream)) AliWarning("Cannot reopen /dev/null"); - } else if (fOutputTypes[type] == 0) { // stdout - if (stream != stdout) dup2(fileno(stdout), fileno(stream)); - } else if (fOutputTypes[type] == 1) { // stderr - if (stream != stderr) dup2(fileno(stderr), fileno(stream)); - } else if (fOutputTypes[type] == 2) { // file - if(!freopen(fFileNames[type], "a", stream)) AliWarning(Form("Cannot reopen %s",fFileNames[type].Data())); - } else if (fOutputTypes[type] == 3) { // external C++ stream - // redirection is not possible for external C++ streams - } - - // print information - if (print) { - PrintMessage(type, NULL, module, className, function, file, line); - fflush(newStream); - } - - return original; -} - -//_____________________________________________________________________________ -void AliLog::RestoreStdout(Int_t original) -{ -// restore the standard output - - fflush(stdout); - dup2(original, fileno(stdout)); - close(original); -} - -//_____________________________________________________________________________ -void AliLog::RestoreStderr(Int_t original) -{ -// restore the standard error output - - fflush(stderr); - dup2(original, fileno(stderr)); - close(original); -} - - -//_____________________________________________________________________________ -ostream& AliLog::Stream(EType_t type, UInt_t level, - const char* module, const char* className, - const char* function, const char* file, Int_t line) -{ -// get the stream object for the given output type - - if (!fgInstance) new AliLog; - return fgInstance->GetStream(type, level, module, className, - function, file, line); -} - -//_____________________________________________________________________________ -ostream& AliLog::GetStream(EType_t type, UInt_t level, - const char* module, const char* className, - const char* function, const char* file, Int_t line) -{ -// get the stream object for the given output type - - if ((type == kDebug) && (level > 0)) level--; - Bool_t noOutput = (type + level > GetLogLevel(module, className)); - - if (!noOutput) { - PrintMessage(type, NULL, module, className, function, file, line); - } - fflush(GetOutputStream(type)); - - static ofstream nullStream("/dev/null"); - if (noOutput) { - return nullStream; - } else if (fOutputTypes[type] == 0) { - return cout; - } else if (fOutputTypes[type] == 1) { - return cerr; - } else if (fOutputTypes[type] == 2) { - return *fOutputStreams[type]; - } else if (fOutputTypes[type] == 3) { - return *fOutputStreams[type]; - } - - return nullStream; -} - -void AliLog::SetStreamOutput(ostream* stream) -{ - // set an external stream as target for log messages of all types - // the external stream is completely handled by the caller, the - // AliLog class just writes to it - - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - SetStreamOutput((AliLog::EType_t)iType, stream); - } -} - -void AliLog::SetStreamOutput(EType_t type, ostream* stream) -{ - // set an external stream as target for log messages of the given type - // the external stream is completely handled by the caller, the - // AliLog class just writes to it - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - if (fgInstance->fOutputTypes[type] == 2) { - fgInstance->CloseFile(type); - } - fgInstance->fOutputTypes[type] = 3; - fgInstance->fFileNames[type] = ""; - fgInstance->fOutputFiles[type] = NULL; - fgInstance->fOutputStreams[type] = stream; -} - -void AliLog::SetLogNotification(AliLogNotification pCallBack) -{ - // set a notification callback function for log messages of all types - - for (Int_t iType = kFatal; iType < kMaxType; iType++) { - SetLogNotification((AliLog::EType_t)iType, pCallBack); - } -} - -void AliLog::SetLogNotification(EType_t type, AliLogNotification pCallBack) -{ - // set a notifications call back function for log messages of all types - // the callback fuction is invoced whenever an output was written - // Note: does not work for c++ streamer classes, the external stream - // has to handle this diectly (e.g. custom implementation of endl) - - if ((type < kFatal) || (type >= kMaxType)) return; - if (!fgInstance) new AliLog; - fgInstance->fCallBacks[type]=pCallBack; -} - -void AliLog::PrintString(Int_t type, FILE* stream, const char* format, ...) -{ - // this is the general method to print a log message using variadac args - // to the FILE* like (C - like) streams, e.g. stdout, stderr, or files - // opened by fopen. - // Only in case of an external c++ ostream type output, the message is - // written to that stream and the notifictaion callback is called. - // The message is printed by a normal vfprintf function otherwise - - if (format==NULL) return; - - va_list ap; - va_start(ap, format); - if (fOutputTypes[type] != 3) { - if (stream!=NULL) { - vfprintf(stream, format, ap); - } - } else { - // build the string and write everthing to the corresponding ostream - TString fmt(format); - TArrayC tgt(fmt.Length()*10); // just take a number -#ifdef R__VA_COPY - va_list bap; - R__VA_COPY(bap, ap); -#else -#warning definition of R__VA_COPY has disappeared -#endif //R__VA_COPY - - Int_t iResult=0; - while (1) { - iResult=vsnprintf(tgt.GetArray(), tgt.GetSize(), format, ap); - if (iResult==-1) { - iResult=tgt.GetSize()*2; - } else if (iResult -#include -#include -#include - -using std::ostream; - -// deprecation macro -#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) -# define ALIROOT_DEPRECATED(func) func __attribute__ ((deprecated)) -#elif defined(_MSC_VER) && _MSC_VER >= 1300 -# define ALIROOT_DEPRECATED(func) __declspec(deprecated) func -#else -# define ALIROOT_DEPRECATED(func) func -#endif - -/** - * class for logging debug, info and error messages - */ -class AliLog: public TObject -{ - public: - - // Log4j log levels: TRACE, DEBUG, INFO, WARN, ERROR, FATAL - enum EType_t {kFatal = 0, kError, kWarning, kInfo, kDebug, kMaxType}; - typedef void (*AliLogNotification)(EType_t type, const char* message ); - - // NB: singleton constructor & destructor should not be public! - // ALIROOT_DEPRECATED(AliLog()); - // ALIROOT_DEPRECATED(virtual ~AliLog()); - - // NB: singleton deprecated static instance method - // ALIROOT_DEPRECATED(static AliLog* Instance() {return fgInstance;};) - - // get root logger singleton instance - static AliLog *GetRootLogger(); - - // delete root logger singleton instance - static void DeleteRootLogger(); - - // NB: the following functions should not be static - // NB: deprecated: logging configuration should be made through to a configuration file - static void EnableDebug(Bool_t enabled); - static void SetGlobalLogLevel(EType_t type); - static Int_t GetGlobalLogLevel(); - static void SetGlobalDebugLevel(Int_t level); - static Int_t GetGlobalDebugLevel(); - static void SetModuleDebugLevel(const char* module, Int_t level); - static void ClearModuleDebugLevel(const char* module); - static void SetClassDebugLevel(const char* className, Int_t level); - static void ClearClassDebugLevel(const char* className); - - static void SetStandardOutput(); - static void SetStandardOutput(EType_t type); - static void SetErrorOutput(); - static void SetErrorOutput(EType_t type); - static void SetFileOutput(const char* fileName); - static void SetFileOutput(EType_t type, const char* fileName); - static void SetStreamOutput(ostream* stream); - static void SetStreamOutput(EType_t type, ostream* stream); - static void SetLogNotification(AliLogNotification pCallBack); - static void SetLogNotification(EType_t type, AliLogNotification pCallBack); - static void Flush(); - - static void SetHandleRootMessages(Bool_t on); - - static void SetPrintType(Bool_t on); - static void SetPrintType(EType_t type, Bool_t on); - static void SetPrintModule(Bool_t on); - static void SetPrintModule(EType_t type, Bool_t on); - static void SetPrintScope(Bool_t on); - static void SetPrintScope(EType_t type, Bool_t on); - static void SetPrintLocation(Bool_t on); - static void SetPrintLocation(EType_t type, Bool_t on); - - static void SetPrintRepetitions(Bool_t on); - - static void WriteToFile(const char* name, Int_t option = 0); - - // the following public methods are used by the preprocessor macros - // and should not be called directly - static Bool_t IsDebugEnabled() {return fgDebugEnabled;} - static Int_t GetDebugLevel(const char* module, const char* className); - static void Message(UInt_t level, const char* message, - const char* module, const char* className, - const char* function, const char* file, Int_t line); - static void Debug(UInt_t level, const char* message, - const char* module, const char* className, - const char* function, const char* file, Int_t line); - - static Int_t RedirectStdoutTo(EType_t type, UInt_t level, const char* module, - const char* className, const char* function, - const char* file, Int_t line, Bool_t print); - static Int_t RedirectStderrTo(EType_t type, UInt_t level, const char* module, - const char* className, const char* function, - const char* file, Int_t line, Bool_t print); - static void RestoreStdout(Int_t original); - static void RestoreStderr(Int_t original); - - static ostream& Stream(EType_t type, UInt_t level, - const char* module, const char* className, - const char* function, const char* file, Int_t line); - - private: - - // constructor is made private for implementing a singleton - AliLog(); - virtual ~AliLog(); - - // NOT IMPLEMENTED? - AliLog(const AliLog& log); - AliLog& operator = (const AliLog& log); - - void ReadEnvSettings(); - - static void RootErrorHandler(Int_t level, Bool_t abort, - const char* location, const char* message); - - void CloseFile(Int_t type); - FILE* GetOutputStream(Int_t type); - - UInt_t GetLogLevel(const char* module, const char* className) const; - void PrintMessage(UInt_t type, const char* message, - const char* module, const char* className, - const char* function, - const char* file, Int_t line); - - void PrintString(Int_t type, FILE* stream, const char* format, ...); - void PrintRepetitions(); - - Int_t RedirectTo(FILE* stream, EType_t type, UInt_t level, - const char* module, const char* className, - const char* function, - const char* file, Int_t line, Bool_t print); - - ostream& GetStream(EType_t type, UInt_t level, - const char* module, const char* className, - const char* function, const char* file, Int_t line); - - enum {kDebugOffset = kDebug-1}; - - static AliLog* fgInstance; //! pointer to current instance - static Bool_t fgDebugEnabled; // flag for debug en-/disabling - - UInt_t fGlobalLogLevel; // global logging level - TObjArray fModuleDebugLevels; // debug levels for modules - TObjArray fClassDebugLevels; // debug levels for classes - - Int_t fOutputTypes[kMaxType]; // types of output streams - TString fFileNames[kMaxType]; // file names - FILE* fOutputFiles[kMaxType]; //! log output files - ostream* fOutputStreams[kMaxType]; //! log output streams - - Bool_t fPrintType[kMaxType]; // print type on/off - Bool_t fPrintModule[kMaxType]; // print module on/off - Bool_t fPrintScope[kMaxType]; // print scope/class name on/off - Bool_t fPrintLocation[kMaxType]; // print file and line on/off - - Bool_t fPrintRepetitions; // print number of repetitions instead of repeated message on/off - - Int_t fRepetitions; //! counter of repetitions - UInt_t fLastType; //! type of last message - TString fLastMessage; //! last message - TString fLastModule; //! module name of last message - TString fLastClassName; //! class name of last message - TString fLastFunction; //! function name of last message - TString fLastFile; //! file name of last message - Int_t fLastLine; //! line number of last message - AliLogNotification fCallBacks[kMaxType]; //! external notification callback - - ClassDef(AliLog, 1) // class for logging debug, info and error messages -}; - - -// module name macro -#ifdef _MODULE_ -# define MODULENAME() _MODULE_ -#else -# define MODULENAME() "NoModule" -#endif - -// function name macro -#if defined(__GNUC__) || defined(__ICC) || defined(__ECC) || defined(__APPLE__) -# define FUNCTIONNAME() __FUNCTION__ -// #elif defined(__HP_aCC) || defined(__alpha) || defined(__DECCXX) -// #define FUNCTIONNAME() __FUNC__ -#else -# define FUNCTIONNAME() "???" -#endif - -// redirection -/** - * Redirect output to std::cout to specified log stream - * - * @param type Type of stream to re-direct to - * @param level Level of output - * @param scope Scope - * @param whatever Any code that will output to std::cout - */ -#define REDIRECTSTDOUT(type, level, scope, whatever) \ - do {Int_t originalStdout = AliLog::RedirectStdoutTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ - whatever; AliLog::RestoreStdout(originalStdout);} while(false) -/** - * Redirect output to std::cerr to specified log stream - * - * @param type Type of stream to re-direct to - * @param level Level of output - * @param scope Scope - * @param whatever Any code that will output to std::cout - */ -#define REDIRECTSTDERR(type, level, scope, whatever) \ - do {Int_t originalStderr = AliLog::RedirectStderrTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ - whatever; AliLog::RestoreStderr(originalStderr);} while(false) -/** - * Redirect output to std::cout and std::cerr to specified log stream - * - * @param type Type of stream to re-direct to - * @param level Level of output - * @param scope Scope - * @param whatever Any code that will output to std::cout or std::cerr - */ -#define REDIRECTSTDOUTANDSTDERR(type, level, scope, whatever) \ - do {Int_t originalStdout = AliLog::RedirectStdoutTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ - Int_t originalStderr = AliLog::RedirectStderrTo(type, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__, kFALSE); \ - whatever; AliLog::RestoreStderr(originalStderr); AliLog::RestoreStdout(originalStdout);} while(false) - - -// debug level -#ifdef LOG_NO_DEBUG -# define AliDebugLevel() -1 -# define AliDebugLevelClass() -1 -# define AliDebugLevelGeneral(scope) -1 -#else -/** - * Get the object scope debug level - */ -# define AliDebugLevel() ((AliLog::IsDebugEnabled()) ? AliLog::GetDebugLevel(MODULENAME(), ClassName()) : -1) -/** - * Get the class (ROOT-enabled) debug level - */ -# define AliDebugLevelClass() ((AliLog::IsDebugEnabled()) ? AliLog::GetDebugLevel(MODULENAME(), Class()->GetName()) : -1) -/** - * Get the debug level associated with scope - * @param scope Scope - */ -# define AliDebugLevelGeneral(scope) ((AliLog::IsDebugEnabled()) ? AliLog::GetDebugLevel(MODULENAME(), scope) : -1) -#endif - -// debug messages -#ifdef LOG_NO_DEBUG -# define AliDebug(level, message) do { } while (false) -# define AliDebugClass(level, message) do { } while (false) -# define AliDebugGeneral(scope, level, message) do { } while (false) -# define AliDebugF(level, message,...) do { } while (false) -# define AliDebugClassF(level, message,...) do { } while (false) -# define AliDebugGeneralF(scope, level, message,...) do { } while (false) -#else - -// inspired by log4cxx code (see log4cxx/Logger.h) -// implements GCC branch prediction for increasing logging performance -# if !defined(ALIROOT_UNLIKELY) -# if defined(__GNUC__) && (__GNUC__ >= 3) -/** - * Provides optimization hint to the compiler - * to optimize for the expression being false. - * @param expr boolean expression. - * @returns value of expression. - */ -# define ALIROOT_UNLIKELY(expr) __builtin_expect(expr, 0) -# else -/** - * Provides optimization hint to the compiler - * to optimize for the expression being false. - * @param expr boolean expression. - * @returns value of expression. - */ -# define ALIROOT_UNLIKELY(expr) expr -# endif -# endif - -/** - * - * Logs a message to a specified logger with the DEBUG level. - * - * @param logLevel the debug level. - * @param message message to print in the following format: Form(message). - * Note, that message should contain balanced parenthesis, like - * AliDebug(1, Form("Failed to decode line %d of %s", line, filename)); - */ -# define AliDebug(logLevel, message) \ - do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), ClassName()) >= logLevel)) {\ - AliLog::Debug(logLevel, message, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) -/** - * - * Logs a message to a specified logger with the DEBUG level. For use - * in static member functions of a class - * - * @param logLevel the debug level. - * @param message message to print in the following format: Form(message). - * Note, that message should contain balanced parenthesis, like - * AliDebug(1, Form("Failed to decode line %d of %s", line, filename)); - */ -# define AliDebugClass(logLevel, message) \ - do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), Class()->GetName()) >= logLevel)) {\ - AliLog::Debug(logLevel, message, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) - -/** - * Logs a message to a specified logger with the DEBUG level. For use - * in non-ROOT-enabled-class scope. - * - * @param scope the logging scope. - * @param logLevel the debug level. - * @param message message to print in the following format: Form(message). - * Note, that message should contain balanced parenthesis, like - * AliDebug(1, Form("Failed to decode line %d of %s", line, filename)); -*/ -# define AliDebugGeneral(scope, logLevel, message) \ - do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), scope) >= logLevel)) {\ - AliLog::Debug(logLevel, message, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) -/** - * Macro to output debugging information. This excepts a printf-like - * format statement. Note, at least 3 arguments (in total) must be - * passed. - * - * @param logLevel Debug level - * @param format Printf-like format. - */ -# define AliDebugF(logLevel,format,...) \ -do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), ClassName()) >= logLevel)) { \ - TString m;m.Form(format,__VA_ARGS__); \ - AliLog::Debug(logLevel, m, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) -/** - * Outut debug information, filtered on debug level. For use in - * static member function of a ROOT-enabled class. This excepts a - * printf-like format statement. Note, at least 3 arguments (in - * total) must be passed. - * - * @param logLevel Debug level - * @param format Printf-like format - * - * @return - */ -# define AliDebugClassF(logLevel,format,...) \ - do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), Class()->GetName()) >= logLevel)) { \ - TString m;m.Form(format,__VA_ARGS__); \ - AliLog::Debug(logLevel, m, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) -/** - * Outut debug information, filtered on debug level. For use in - * static member function of a non-ROOT-enabled class-scope. This - * excepts a printf-like format statement. Note, at least 3 arguments - * (in total) must be passed. - * - * @param scope Scope - * @param logLevel Debug level - * @param format Printf-like format - * - * @return - */ -# define AliDebugGeneralF(scope,logLevel,format,...) \ - do { if (ALIROOT_UNLIKELY(AliLog::IsDebugEnabled() && AliLog::GetDebugLevel(MODULENAME(), scope) >= logLevel)) { \ - TString m;m.Form(format,__VA_ARGS__); \ - AliLog::Debug(logLevel, m, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__); }} while (0) - -#endif - -// redirection to debug -#define StdoutToAliDebug(level, whatever) REDIRECTSTDOUT(AliLog::kDebug, level, ClassName(), whatever) -#define StderrToAliDebug(level, whatever) REDIRECTSTDERR(AliLog::kDebug, level, ClassName(), whatever) -#define ToAliDebug(level, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kDebug, level, ClassName(), whatever) -#define StdoutToAliDebugClass(level, whatever) REDIRECTSTDOUT(AliLog::kDebug, level, Class()->GetName(), whatever) -#define StderrToAliDebugClass(level, whatever) REDIRECTSTDERR(AliLog::kDebug, level, Class()->GetName(), whatever) -#define ToAliDebugClass(level, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kDebug, level, Class()->GetName(), whatever) -#define StdoutToAliDebugGeneral(scope, level, whatever) REDIRECTSTDOUT(AliLog::kDebug, level, scope, whatever) -#define StderrToAliDebugGeneral(scope, level, whatever) REDIRECTSTDERR(AliLog::kDebug, level, scope, whatever) -#define ToAliDebugGeneral(scope, level, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kDebug, level, scope, whatever) - -// debug stream objects -#define AliDebugStream(level) AliLog::Stream(AliLog::kDebug, level, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliDebugClassStream(level) AliLog::Stream(AliLog::kDebug, level, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliDebugGeneralStream(scope, level) AliLog::Stream(AliLog::kDebug, level, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) - - -/** - * Macro that will output stuff using the logging facilities. - * - * @param lvl Message level - * @param message Message to show - */ -#define AliMessage(lvl,message) do { \ - AliLog::Message(lvl, message, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) -/** - * Macro that will output stuff using the logging facilities. - * For use in static member function of ROOT-enabled class-scope. - * - * @param lvl Message level - * @param message Message to show - */ -#define AliMessageClass(lvl,message) do { \ - AliLog::Message(lvl, message, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) -/** - * Macro that will output stuff using the logging facilities. - * For use in non-ROOT-enabled class-scope. - * - * @param scope Scope - * @param lvl Message level - * @param message Message to show - */ -#define AliMessageGeneral(scope,lvl,message) do { \ - AliLog::Message(lvl, message, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__);} while(false) -/** - * Print a message using the AliLog logging facility. This macro - * accepts printf-like format arguments. Note, at least 3 arguments - * must be passed. - * @code - * AliMessageF(1, "foo"); // <-- Failes - * AliMessageF(1, "foo %d", 42); // <-- OK - * @endcode - * - * @param lvl Message level - * @param format printf-like format - */ -#define AliMessageF(lvl,format,...) do { \ - TString m; m.Form(format,__VA_ARGS__); \ - AliLog::Message(lvl, m, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) -/** - * Print a message using the AliLog logging facility. This macro - * accepts printf-like format arguments. Note, at least 3 arguments - * must be passed. - * @code - * AliMessageF(1, "foo"); // <-- Failes - * AliMessageF(1, "foo %d", 42); // <-- OK - * @endcode - * - * This is for static member function in for ROOT-enabled class-scope - * - * @param lvl Message level - * @param format printf-like format - */ -#define AliMessageClassF(lvl,format,...) do { \ - TString m; m.Form(format,__VA_ARGS__); \ - AliLog::Message(lvl, m, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__);} while(false) -/** - * Print a message using the AliLog logging facility. This macro - * accepts printf-like format arguments. Note, at least 3 arguments - * must be passed. - * @code - * AliMessageF(1, "foo"); // <-- Failes - * AliMessageF(1, "foo %d", 42); // <-- OK - * @endcode - * - * This is for non-ROOT-enabled class-scope - * - * @param scope Scope - * @param lvl Message level - * @param format printf-like format - */ -#define AliMessageGeneralF(scope,lvl,format,...) do { \ - TString m; m.Form(format,__VA_ARGS__); \ - AliLog::Message(lvl, m, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__);} while(false) - -// info messages -#ifdef LOG_NO_INFO -# define AliInfo(message) do { } while (false) -# define AliInfoClass(message) do { } while (false) -# define AliInfoGeneral(scope, message) do { } while (false) -# define AliInfoF(message,...) do { } while (false) -# define AliInfoClassF(message,...) do { } while (false) -# define AliInfoGeneralF(scope, message,...) do { } while (false) -#else -/** - * Forwards to AliMessage with log level of AliLog::kInfo - * @see AliMessage - */ -# define AliInfo(message) AliMessage(AliLog::kInfo, message) -/** - * Forwards to AliMessageClass with log level of AliLog::kInfo - * @see AliMessageClass - */ -# define AliInfoClass(message) AliMessageClass(AliLog::kInfo, message) -/** - * Forwards to AliMessageGeneral with log level of AliLog::kInfo - * @see AliMessageGeneral - */ -# define AliInfoGeneral(scope, message) AliMessageGeneral(scope, AliLog::kInfo, message) -/** - * Forwards to AliMessageF with log level of AliLog::kInfo - * @see AliMessageF - */ -# define AliInfoF(message,...) AliMessageF(AliLog::kInfo, message, __VA_ARGS__) -/** - * Forwards to AliMessageClassF with log level of AliLog::kInfo - * @see AliMessageClassF - */ -# define AliInfoClassF(message,...) AliMessageClassF(AliLog::kInfo, message, __VA_ARGS__) -/** - * Forwards to AliMessageGeneralF with log level of AliLog::kInfo - * @see AliMessageGeneralF - */ -# define AliInfoGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kInfo, message, __VA_ARGS__) -#endif - -// redirection to info -#define StdoutToAliInfo(whatever) REDIRECTSTDOUT(AliLog::kInfo, 0, ClassName(), whatever) -#define StderrToAliInfo(whatever) REDIRECTSTDERR(AliLog::kInfo, 0, ClassName(), whatever) -#define ToAliInfo(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kInfo, 0, ClassName(), whatever) -#define StdoutToAliInfoClass(whatever) REDIRECTSTDOUT(AliLog::kInfo, 0, Class()->GetName(), whatever) -#define StderrToAliInfoClass(whatever) REDIRECTSTDERR(AliLog::kInfo, 0, Class()->GetName(), whatever) -#define ToAliInfoClass(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kInfo, 0, Class()->GetName(), whatever) -#define StdoutToAliInfoGeneral(scope, whatever) REDIRECTSTDOUT(AliLog::kInfo, 0, scope, whatever) -#define StderrToAliInfoGeneral(scope, whatever) REDIRECTSTDERR(AliLog::kInfo, 0, scope, whatever) -#define ToAliInfoGeneral(scope, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kInfo, 0, scope, whatever) - -// info stream objects -#define AliInfoStream() AliLog::Stream(AliLog::kInfo, 0, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliInfoClassStream() AliLog::Stream(AliLog::kInfo, 0, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliInfoGeneralStream(scope) AliLog::Stream(AliLog::kInfo, 0, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) - -// warning messages -#ifdef LOG_NO_WARNING -# define AliWarning(message) do { } while (false) -# define AliWarningClass(message) do { } while (false) -# define AliWarningGeneral(scope, message) do { } while (false) -# define AliWarningF(message,...) do { } while (false) -# define AliWarningClassF(message,...) do { } while (false) -# define AliWarningGeneralF(scope, message,...) do { } while (false) -#else -/** - * Forwards to AliMessage with log level of AliLog::kWarning - * @see AliMessage - */ -# define AliWarning(message) AliMessage(AliLog::kWarning, message) -/** - * Forwards to AliMessageClass with log level of AliLog::kWarning - * @see AliMessageClass - */ -# define AliWarningClass(message) AliMessageClass(AliLog::kWarning, message) -/** - * Forwards to AliMessageGeneral with log level of AliLog::kWarning - * @see AliMessageGeneral - */ -# define AliWarningGeneral(scope, message) AliMessageGeneral(scope, AliLog::kWarning, message) -/** - * Forwards to AliMessageF with log level of AliLog::kWarning - * @see AliMessageF - */ -# define AliWarningF(message,...) AliMessageF(AliLog::kWarning, message, __VA_ARGS__) -/** - * Forwards to AliMessageClassF with log level of AliLog::kWarning - * @see AliMessageClassF - */ -# define AliWarningClassF(message,...) AliMessageClassF(AliLog::kWarning, message, __VA_ARGS__) -/** - * Forwards to AliMessageGeneralF with log level of AliLog::kWarning - * @see AliMessageGeneralF - */ -# define AliWarningGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kWarning, message, __VA_ARGS__) -#endif - -// redirection to warning -#define StdoutToAliWarning(whatever) REDIRECTSTDOUT(AliLog::kWarning, 0, ClassName(), whatever) -#define StderrToAliWarning(whatever) REDIRECTSTDERR(AliLog::kWarning, 0, ClassName(), whatever) -#define ToAliWarning(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kWarning, 0, ClassName(), whatever) -#define StdoutToAliWarningClass(whatever) REDIRECTSTDOUT(AliLog::kWarning, 0, Class()->GetName(), whatever) -#define StderrToAliWarningClass(whatever) REDIRECTSTDERR(AliLog::kWarning, 0, Class()->GetName(), whatever) -#define ToAliWarningClass(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kWarning, 0, Class()->GetName(), whatever) -#define StdoutToAliWarningGeneral(scope, whatever) REDIRECTSTDOUT(AliLog::kWarning, 0, scope, whatever) -#define StderrToAliWarningGeneral(scope, whatever) REDIRECTSTDERR(AliLog::kWarning, 0, scope, whatever) -#define ToAliWarningGeneral(scope, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kWarning, 0, scope, whatever) - -// warning stream objects -#define AliWarningStream() AliLog::Stream(AliLog::kWarning, 0, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliWarningClassStream() AliLog::Stream(AliLog::kWarning, 0, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliWarningGeneralStream(scope) AliLog::Stream(AliLog::kWarning, 0, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) - - -// error messages -/** - * Forwards to AliMessage with log level of AliLog::kError - * @see AliMessage - */ -#define AliError(message) AliMessage(AliLog::kError, message) -/** - * Forwards to AliMessageClass with log level of AliLog::kError - * @see AliMessageClass - */ -#define AliErrorClass(message) AliMessageClass(AliLog::kError, message) -/** - * Forwards to AliMessageGeneral with log level of AliLog::kError - * @see AliMessageGeneral - */ -#define AliErrorGeneral(scope, message) AliMessageGeneral(scope, AliLog::kError, message) -/** - * Forwards to AliMessageF with log level of AliLog::kError - * @see AliMessageF - */ -#define AliErrorF(message,...) AliMessageF(AliLog::kError, message, __VA_ARGS__) -/** - * Forwards to AliMessageClassF with log level of AliLog::kError - * @see AliMessageClassF - */ -#define AliErrorClassF(message,...) AliMessageClassF(AliLog::kError, message, __VA_ARGS__) -/** - * Forwards to AliMessageGeneralF with log level of AliLog::kError - * @see AliMessageGeneralF - */ -#define AliErrorGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kError, message, __VA_ARGS__) - -// redirection to error -#define StdoutToAliError(whatever) REDIRECTSTDOUT(AliLog::kError, 0, ClassName(), whatever) -#define StderrToAliError(whatever) REDIRECTSTDERR(AliLog::kError, 0, ClassName(), whatever) -#define ToAliError(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kError, 0, ClassName(), whatever) -#define StdoutToAliErrorClass(whatever) REDIRECTSTDOUT(AliLog::kError, 0, Class()->GetName(), whatever) -#define StderrToAliErrorClass(whatever) REDIRECTSTDERR(AliLog::kError, 0, Class()->GetName(), whatever) -#define ToAliErrorClass(whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kError, 0, Class()->GetName(), whatever) -#define StdoutToAliErrorGeneral(scope, whatever) REDIRECTSTDOUT(AliLog::kError, 0, scope, whatever) -#define StderrToAliErrorGeneral(scope, whatever) REDIRECTSTDERR(AliLog::kError, 0, scope, whatever) -#define ToAliErrorGeneral(scope, whatever) REDIRECTSTDOUTANDSTDERR(AliLog::kError, 0, scope, whatever) - -// error stream objects -#define AliErrorStream() AliLog::Stream(AliLog::kError, 0, MODULENAME(), ClassName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliErrorClassStream() AliLog::Stream(AliLog::kError, 0, MODULENAME(), Class()->GetName(), FUNCTIONNAME(), __FILE__, __LINE__) -#define AliErrorGeneralStream(scope) AliLog::Stream(AliLog::kError, 0, MODULENAME(), scope, FUNCTIONNAME(), __FILE__, __LINE__) - - -// fatal messages -/** - * Forwards to AliMessage with log level of AliLog::kFatal - * @see AliMessage - */ -#define AliFatal(message) AliMessage(AliLog::kFatal, message) -/** - * Forwards to AliMessageClass with log level of AliLog::kFatal - * @see AliMessageClass - */ -#define AliFatalClass(message) AliMessageClass(AliLog::kFatal, message) -/** - * Forwards to AliMessageGeneral with log level of AliLog::kFatal - * @see AliMessageGeneral - */ -#define AliFatalGeneral(scope, message) AliMessageGeneral(scope, AliLog::kFatal, message) -/** - * Forwards to AliMessageF with log level of AliLog::kFatal - * @see AliMessageF - */ -#define AliFatalF(message,...) AliMessageF(AliLog::kFatal, message, __VA_ARGS__) -/** - * Forwards to AliMessageClassF with log level of AliLog::kFatal - * @see AliMessageClassF - */ -#define AliFatalClassF(message,...) AliMessageClassF(AliLog::kFatal, message, __VA_ARGS__) -/** - * Forwards to AliMessageGeneralF with log level of AliLog::kFatal - * @see AliMessageGeneralF - */ -#define AliFatalGeneralF(scope,message,...) AliMessageGeneralF(scope, AliLog::kFatal, message, __VA_ARGS__) - -#endif diff --git a/tpc/dirty/AliMathBase.cxx b/tpc/dirty/AliMathBase.cxx deleted file mode 100644 index a53de2b0d22b3..0000000000000 --- a/tpc/dirty/AliMathBase.cxx +++ /dev/null @@ -1,717 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - - -/////////////////////////////////////////////////////////////////////////// -// Class AliMathBase -// -// Subset of matheamtical functions not included in the TMath -// - -/////////////////////////////////////////////////////////////////////////// -#include "TMath.h" -#include "AliMathBase.h" -#include "Riostream.h" -#include "TH1F.h" -#include "TH3.h" -#include "TF1.h" -#include "TLinearFitter.h" - -// -// includes neccessary for test functions -// - -#include "TSystem.h" -#include "TRandom.h" -#include "TStopwatch.h" - -ClassImp(AliMathBase) // Class implementation to enable ROOT I/O - -AliMathBase::AliMathBase() : TObject() -{ - // - // Default constructor - // -} -/////////////////////////////////////////////////////////////////////////// -AliMathBase::~AliMathBase() -{ - // - // Destructor - // -} - - -//_____________________________________________________________________________ -void AliMathBase::EvaluateUni(Int_t nvectors, Double_t *data, Double_t &mean - , Double_t &sigma, Int_t hh) -{ - // - // Robust estimator in 1D case MI version - (faster than ROOT version) - // - // For the univariate case - // estimates of location and scatter are returned in mean and sigma parameters - // the algorithm works on the same principle as in multivariate case - - // it finds a subset of size hh with smallest sigma, and then returns mean and - // sigma of this subset - // - - if (nvectors<2) { - //AliErrorClass(Form("nvectors = %d, should be > 1",nvectors)); - printf("nvectors = %d, should be > 1\n",nvectors); - return; - } - if (hh<2) - hh=(nvectors+2)/2; - Double_t faclts[]={2.6477,2.5092,2.3826,2.2662,2.1587,2.0589,1.9660,1.879,1.7973,1.7203,1.6473}; - Int_t *index=new Int_t[nvectors]; - TMath::Sort(nvectors, data, index, kFALSE); - - Int_t nquant = TMath::Min(Int_t(Double_t(((hh*1./nvectors)-0.5)*40))+1, 11); - Double_t factor = faclts[TMath::Max(0,nquant-1)]; - - Double_t sumx =0; - Double_t sumx2 =0; - Int_t bestindex = -1; - Double_t bestmean = 0; - Double_t bestsigma = (data[index[nvectors-1]]-data[index[0]]+1.); // maximal possible sigma - bestsigma *=bestsigma; - - for (Int_t i=0; i0){ - // fix proper normalization - Anja - factor = faclts[nquant-1]; - } - - // - // - Double_t sumx =0; - Double_t sumx2 =0; - Int_t bestindex = -1; - Double_t bestmean = 0; - Double_t bestsigma = -1; - for (Int_t i=0; iGetNbinsX(); - Float_t nentries = his->GetEntries(); - Float_t sum =0; - Float_t mean = 0; - Float_t sigma2 = 0; - Float_t ncumul=0; - for (Int_t ibin=1;ibinGetBinContent(ibin); - Float_t fraction = Float_t(ncumul)/Float_t(nentries); - if (fraction>down && fractionGetBinContent(ibin); - mean+=his->GetBinCenter(ibin)*his->GetBinContent(ibin); - sigma2+=his->GetBinCenter(ibin)*his->GetBinCenter(ibin)*his->GetBinContent(ibin); - } - } - mean/=sum; - sigma2= TMath::Sqrt(TMath::Abs(sigma2/sum-mean*mean)); - if (param){ - (*param)[0] = his->GetMaximum(); - (*param)[1] = mean; - (*param)[2] = sigma2; - - } - if (verbose) printf("Mean\t%f\t Sigma2\t%f\n", mean,sigma2); -} - -void AliMathBase::LTM(TH1F * his, TVectorD *param , Float_t fraction, Bool_t verbose){ - // - // LTM - // - Int_t nbins = his->GetNbinsX(); - Int_t nentries = (Int_t)his->GetEntries(); - Double_t *data = new Double_t[nentries]; - Int_t npoints=0; - for (Int_t ibin=1;ibinGetBinContent(ibin); - Float_t xcenter= his->GetBinCenter(ibin); - for (Int_t ic=0; icGetMaximum(); - (*param)[1] = mean; - (*param)[2] = sigma; - } -} - -Double_t AliMathBase::FitGaus(TH1F* his, TVectorD *param, TMatrixD */*matrix*/, Float_t xmin, Float_t xmax, Bool_t verbose){ - // - // Fit histogram with gaussian function - // - // Prameters: - // return value- chi2 - if negative ( not enough points) - // his - input histogram - // param - vector with parameters - // xmin, xmax - range to fit - if xmin=xmax=0 - the full histogram range used - // Fitting: - // 1. Step - make logarithm - // 2. Linear fit (parabola) - more robust - always converge - // 3. In case of small statistic bins are averaged - // - static TLinearFitter fitter(3,"pol2"); - TVectorD par(3); - TVectorD sigma(3); - TMatrixD mat(3,3); - if (his->GetMaximum()<4) return -1; - if (his->GetEntries()<12) return -1; - if (his->GetRMS()GetEntries()*his->GetBinWidth(1)/TMath::Sqrt((TMath::TwoPi()*his->GetRMS())); - Int_t dsmooth = TMath::Nint(6./TMath::Sqrt(maxEstimate)); - - if (maxEstimate<1) return -1; - Int_t nbins = his->GetNbinsX(); - Int_t npoints=0; - // - - - if (xmin>=xmax){ - xmin = his->GetXaxis()->GetXmin(); - xmax = his->GetXaxis()->GetXmax(); - } - for (Int_t iter=0; iter<2; iter++){ - fitter.ClearPoints(); - npoints=0; - for (Int_t ibin=1;ibinGetBinContent(ibin); - for (Int_t delta = -dsmooth; delta<=dsmooth; delta++){ - if (ibin+delta>1 &&ibin+deltaGetBinContent(ibin+delta); - countB++; - } - } - entriesI/=countB; - Double_t xcenter= his->GetBinCenter(ibin); - if (xcenterxmax) continue; - Double_t error=1./TMath::Sqrt(countB); - Float_t cont=2; - if (iter>0){ - if (par[0]+par[1]*xcenter+par[2]*xcenter*xcenter>20) return 0; - cont = TMath::Exp(par[0]+par[1]*xcenter+par[2]*xcenter*xcenter); - if (cont>1.) error = 1./TMath::Sqrt(cont*Float_t(countB)); - } - if (entriesI>1&&cont>1){ - fitter.AddPoint(&xcenter,TMath::Log(Float_t(entriesI)),error); - npoints++; - } - } - if (npoints>3){ - fitter.Eval(); - fitter.GetParameters(par); - }else{ - break; - } - } - if (npoints<=3){ - return -1; - } - fitter.GetParameters(par); - fitter.GetCovarianceMatrix(mat); - if (TMath::Abs(par[1])Print(); - printf("Chi2=%f\n",chi2); - TF1 * f1= new TF1("f1","[0]*exp(-(x-[1])^2/(2*[2]*[2]))",his->GetXaxis()->GetXmin(),his->GetXaxis()->GetXmax()); - f1->SetParameter(0, (*param)[0]); - f1->SetParameter(1, (*param)[1]); - f1->SetParameter(2, (*param)[2]); - f1->Draw("same"); - } - return chi2; -} - -Double_t AliMathBase::FitGaus(Float_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, TVectorD *param, TMatrixD */*matrix*/, Bool_t verbose){ - // - // Fit histogram with gaussian function - // - // Prameters: - // nbins: size of the array and number of histogram bins - // xMin, xMax: histogram range - // param: paramters of the fit (0-Constant, 1-Mean, 2-Sigma, 3-Sum) - // matrix: covariance matrix -- not implemented yet, pass dummy matrix!!! - // - // Return values: - // >0: the chi2 returned by TLinearFitter - // -3: only three points have been used for the calculation - no fitter was used - // -2: only two points have been used for the calculation - center of gravity was uesed for calculation - // -1: only one point has been used for the calculation - center of gravity was uesed for calculation - // -4: invalid result!! - // - // Fitting: - // 1. Step - make logarithm - // 2. Linear fit (parabola) - more robust - always converge - // - static TLinearFitter fitter(3,"pol2"); - static TMatrixD mat(3,3); - static Double_t kTol = mat.GetTol(); - fitter.StoreData(kFALSE); - fitter.ClearPoints(); - TVectorD par(3); - TVectorD sigma(3); - TMatrixD A(3,3); - TMatrixD b(3,1); - Float_t rms = TMath::RMS(nBins,arr); - Float_t max = TMath::MaxElement(nBins,arr); - Float_t binWidth = (xMax-xMin)/(Float_t)nBins; - - Float_t meanCOG = 0; - Float_t rms2COG = 0; - Float_t sumCOG = 0; - - Float_t entries = 0; - Int_t nfilled=0; - - if (!param) param = new TVectorD(4); - - for (Int_t i=0; i0) nfilled++; - } - (*param)[0] = 0; - (*param)[1] = 0; - (*param)[2] = 0; - (*param)[3] = 0; - - if (max<4) return -4; - if (entries<12) return -4; - if (rms1){ - Double_t xcenter = xMin+(ibin+0.5)*binWidth; - Float_t error = 1./TMath::Sqrt(entriesI); - Float_t val = TMath::Log(Float_t(entriesI)); - fitter.AddPoint(&xcenter,val,error); - if (npoints<3){ - A(npoints,0)=1; - A(npoints,1)=xcenter; - A(npoints,2)=xcenter*xcenter; - b(npoints,0)=val; - meanCOG+=xcenter*entriesI; - rms2COG +=xcenter*entriesI*xcenter; - sumCOG +=entriesI; - } - npoints++; - } - } - - Double_t chi2 = 0; - if (npoints>=3){ - if ( npoints == 3 ){ - //analytic calculation of the parameters for three points - A.Invert(); - TMatrixD res(1,3); - res.Mult(A,b); - par[0]=res(0,0); - par[1]=res(0,1); - par[2]=res(0,2); - chi2 = -3.; - } else { - // use fitter for more than three points - fitter.Eval(); - fitter.GetParameters(par); - fitter.GetCovarianceMatrix(mat); - chi2 = fitter.GetChisquare()/Float_t(npoints); - } - if (TMath::Abs(par[1])GetNrows()<4 ) param->ResizeTo(4); - //if (!matrix) matrix = new TMatrixD(3,3); // !!!!might be a memory leek. use dummy matrix pointer to call this function! - - (*param)[1] = par[1]/(-2.*par[2]); - (*param)[2] = 1./TMath::Sqrt(TMath::Abs(-2.*par[2])); - Double_t lnparam0 = par[0]+ par[1]* (*param)[1] + par[2]*(*param)[1]*(*param)[1]; - if ( lnparam0>307 ) return -4; - (*param)[0] = TMath::Exp(lnparam0); - if (verbose){ - par.Print(); - mat.Print(); - param->Print(); - printf("Chi2=%f\n",chi2); - TF1 * f1= new TF1("f1","[0]*exp(-(x-[1])^2/(2*[2]*[2]))",xMin,xMax); - f1->SetParameter(0, (*param)[0]); - f1->SetParameter(1, (*param)[1]); - f1->SetParameter(2, (*param)[2]); - f1->Draw("same"); - } - return chi2; - } - - if (npoints == 2){ - //use center of gravity for 2 points - meanCOG/=sumCOG; - rms2COG /=sumCOG; - (*param)[0] = max; - (*param)[1] = meanCOG; - (*param)[2] = TMath::Sqrt(TMath::Abs(meanCOG*meanCOG-rms2COG)); - chi2=-2.; - } - if ( npoints == 1 ){ - meanCOG/=sumCOG; - (*param)[0] = max; - (*param)[1] = meanCOG; - (*param)[2] = binWidth/TMath::Sqrt(12); - chi2=-1.; - } - return chi2; - -} - - -Float_t AliMathBase::GetCOG(Short_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, Float_t *rms, Float_t *sum) -{ - // - // calculate center of gravity rms and sum for array 'arr' with nBins an a x range xMin to xMax - // return COG; in case of failure return xMin - // - Float_t meanCOG = 0; - Float_t rms2COG = 0; - Float_t sumCOG = 0; - Int_t npoints = 0; - - Float_t binWidth = (xMax-xMin)/(Float_t)nBins; - - for (Int_t ibin=0; ibin0 ){ - meanCOG += xcenter*entriesI; - rms2COG += xcenter*entriesI*xcenter; - sumCOG += entriesI; - npoints++; - } - } - if ( sumCOG == 0 ) return xMin; - meanCOG/=sumCOG; - - if ( rms ){ - rms2COG /=sumCOG; - (*rms) = TMath::Sqrt(TMath::Abs(meanCOG*meanCOG-rms2COG)); - if ( npoints == 1 ) (*rms) = binWidth/TMath::Sqrt(12); - } - - if ( sum ) - (*sum) = sumCOG; - - return meanCOG; -} - - -Double_t AliMathBase::ErfcFast(Double_t x){ - // Fast implementation of the complementary error function - // The error of the approximation is |eps(x)| < 5E-4 - // See Abramowitz and Stegun, p.299, 7.1.27 - - Double_t z = TMath::Abs(x); - Double_t ans = 1+z*(0.278393+z*(0.230389+z*(0.000972+z*0.078108))); - ans = 1.0/ans; - ans *= ans; - ans *= ans; - - return (x>=0.0 ? ans : 2.0 - ans); -} - -/////////////////////////////////////////////////////////////// -////////////// TEST functions ///////////////////////// -/////////////////////////////////////////////////////////////// - - - - - - -TGraph2D * AliMathBase::MakeStat2D(TH3 * his, Int_t delta0, Int_t delta1, Int_t type){ - // - // - // - // delta - number of bins to integrate - // type - 0 - mean value - - TAxis * xaxis = his->GetXaxis(); - TAxis * yaxis = his->GetYaxis(); - // TAxis * zaxis = his->GetZaxis(); - Int_t nbinx = xaxis->GetNbins(); - Int_t nbiny = yaxis->GetNbins(); - const Int_t nc=1000; - char name[nc]; - Int_t icount=0; - TGraph2D *graph = new TGraph2D(nbinx*nbiny); - TF1 f1("f1","gaus"); - for (Int_t ix=0; ixGetBinCenter(ix); - Float_t ycenter = yaxis->GetBinCenter(iy); - snprintf(name,nc,"%s_%d_%d",his->GetName(), ix,iy); - TH1 *projection = his->ProjectionZ(name,ix-delta0,ix+delta0,iy-delta1,iy+delta1); - Float_t stat= 0; - if (type==0) stat = projection->GetMean(); - if (type==1) stat = projection->GetRMS(); - if (type==2 || type==3){ - TVectorD vec(3); - AliMathBase::LTM((TH1F*)projection,&vec,0.7); - if (type==2) stat= vec[1]; - if (type==3) stat= vec[0]; - } - if (type==4|| type==5){ - projection->Fit(&f1); - if (type==4) stat= f1.GetParameter(1); - if (type==5) stat= f1.GetParameter(2); - } - //printf("%d\t%f\t%f\t%f\n", icount,xcenter, ycenter, stat); - graph->SetPoint(icount,xcenter, ycenter, stat); - icount++; - } - return graph; -} - -TGraph * AliMathBase::MakeStat1D(TH3 * his, Int_t delta1, Int_t type){ - // - // - // - // delta - number of bins to integrate - // type - 0 - mean value - - TAxis * xaxis = his->GetXaxis(); - TAxis * yaxis = his->GetYaxis(); - // TAxis * zaxis = his->GetZaxis(); - Int_t nbinx = xaxis->GetNbins(); - Int_t nbiny = yaxis->GetNbins(); - const Int_t nc=1000; - char name[nc]; - Int_t icount=0; - TGraph *graph = new TGraph(nbinx); - TF1 f1("f1","gaus"); - for (Int_t ix=0; ixGetBinCenter(ix); - // Float_t ycenter = yaxis->GetBinCenter(iy); - snprintf(name,nc,"%s_%d",his->GetName(), ix); - TH1 *projection = his->ProjectionZ(name,ix-delta1,ix+delta1,0,nbiny); - Float_t stat= 0; - if (type==0) stat = projection->GetMean(); - if (type==1) stat = projection->GetRMS(); - if (type==2 || type==3){ - TVectorD vec(3); - AliMathBase::LTM((TH1F*)projection,&vec,0.7); - if (type==2) stat= vec[1]; - if (type==3) stat= vec[0]; - } - if (type==4|| type==5){ - projection->Fit(&f1); - if (type==4) stat= f1.GetParameter(1); - if (type==5) stat= f1.GetParameter(2); - } - //printf("%d\t%f\t%f\t%f\n", icount,xcenter, ycenter, stat); - graph->SetPoint(icount,xcenter, stat); - icount++; - } - return graph; -} - -Double_t AliMathBase::TruncatedGaus(Double_t mean, Double_t sigma, Double_t cutat) -{ - // return number generated according to a gaussian distribution N(mean,sigma) truncated at cutat - // - Double_t value; - do{ - value=gRandom->Gaus(mean,sigma); - }while(TMath::Abs(value-mean)>cutat); - return value; -} - -Double_t AliMathBase::TruncatedGaus(Double_t mean, Double_t sigma, Double_t leftCut, Double_t rightCut) -{ - // return number generated according to a gaussian distribution N(mean,sigma) - // truncated at leftCut and rightCut - // - Double_t value; - do{ - value=gRandom->Gaus(mean,sigma); - }while((value-mean)<-leftCut || (value-mean)>rightCut); - return value; -} - -Double_t AliMathBase::BetheBlochAleph(Double_t bg, - Double_t kp1, - Double_t kp2, - Double_t kp3, - Double_t kp4, - Double_t kp5) { - // - // This is the empirical ALEPH parameterization of the Bethe-Bloch formula. - // It is normalized to 1 at the minimum. - // - // bg - beta*gamma - // - // The default values for the kp* parameters are for ALICE TPC. - // The returned value is in MIP units - // - Double_t beta = bg/TMath::Sqrt(1.+ bg*bg); - - Double_t aa = TMath::Power(beta,kp4); - Double_t bb = TMath::Power(1./bg,kp5); - - bb=TMath::Log(kp3+bb); - - return (kp2-aa-bb)*kp1/aa; -} diff --git a/tpc/dirty/AliMathBase.h b/tpc/dirty/AliMathBase.h deleted file mode 100644 index 7cc575ba1c9f1..0000000000000 --- a/tpc/dirty/AliMathBase.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef ALIMATHBASE_H -#define ALIMATHBASE_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - - - -#include "TObject.h" -#include "TVectorD.h" -#include "TMatrixD.h" -#include "TGraph2D.h" -#include "TGraph.h" - -class TH1F; -class TH3; - - -class AliMathBase : public TObject -{ - public: - AliMathBase(); - virtual ~AliMathBase(); - static void EvaluateUni(Int_t nvectors, Double_t *data, Double_t &mean, Double_t &sigma, Int_t hh); - static void EvaluateUniExternal(Int_t nvectors, Double_t *data, Double_t &mean, Double_t &sigma, Int_t hh, Float_t externalfactor=1); - static Int_t Freq(Int_t n, const Int_t *inlist, Int_t *outlist, Bool_t down); - static void TruncatedMean(TH1F * his, TVectorD *param, Float_t down=0, Float_t up=1.0, Bool_t verbose=kFALSE); - static void LTM(TH1F * his, TVectorD *param=0 , Float_t fraction=1, Bool_t verbose=kFALSE); - static Double_t FitGaus(TH1F* his, TVectorD *param=0, TMatrixD *matrix=0, Float_t xmin=0, Float_t xmax=0, Bool_t verbose=kFALSE); - static Double_t FitGaus(Float_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, TVectorD *param=0, TMatrixD *matrix=0, Bool_t verbose=kFALSE); - static Float_t GetCOG(Short_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, Float_t *rms=0, Float_t *sum=0); - - static Double_t TruncatedGaus(Double_t mean, Double_t sigma, Double_t cutat); - static Double_t TruncatedGaus(Double_t mean, Double_t sigma, Double_t leftCut, Double_t rightCut); - - static TGraph2D * MakeStat2D(TH3 * his, Int_t delta0, Int_t delta1, Int_t type); - static TGraph * MakeStat1D(TH3 * his, Int_t delta1, Int_t type); - - static Double_t ErfcFast(Double_t x); // Complementary error function erfc(x) - static Double_t ErfFast(Double_t x) {return 1-ErfcFast(x);} // Error function erf(x) - - // - // TestFunctions: - // - - // - // Bethe-Bloch formula parameterizations - // - static Double_t BetheBlochAleph(Double_t bg, - Double_t kp1=0.76176e-1, - Double_t kp2=10.632, - Double_t kp3=0.13279e-4, - Double_t kp4=1.8631, - Double_t kp5=1.9479 - ); - - ClassDef(AliMathBase,0) // Various mathematical tools for physics analysis - which are not included in ROOT TMath - -}; -#endif diff --git a/tpc/dirty/AliTPCPRF2D.cxx b/tpc/dirty/AliTPCPRF2D.cxx deleted file mode 100644 index f762ab4da7e0d..0000000000000 --- a/tpc/dirty/AliTPCPRF2D.cxx +++ /dev/null @@ -1,976 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -/////////////////////////////////////////////////////////////////////////////// -// AliTPCPRF2D - // -// Pad response function object in two dimesions // -// This class contains the basic functions for the // -// calculation of PRF according generic charge distribution // -// In Update function object calculate table of response function // -// in discrete x and y position // -// This table is used for interpolation od response function in any position // -// (function GetPRF) // -// // -// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // -// // -/////////////////////////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "AliH2F.h" -#include "AliTPCPRF2D.h" - - -extern TStyle * gStyle; - -const Double_t AliTPCPRF2D::fgkDegtoRad = 0.01745329251994; -const Double_t AliTPCPRF2D::fgkSQRT12=3.464101; -const Int_t AliTPCPRF2D::fgkNPRF = 100; - - -static Double_t FunGauss2D(const Double_t *const x, const Double_t *const par) -{ -//Gauss function -needde by the generic function object - return ( TMath::Exp(-(x[0]*x[0])/(2*par[0]*par[0]))* - TMath::Exp(-(x[1]*x[1])/(2*par[1]*par[1]))); - -} - -static Double_t FunCosh2D(const Double_t *const x, const Double_t *const par) -{ - //Cosh function -needde by the generic function object - return ( 1/(TMath::CosH(3.14159*x[0]/(2*par[0]))* - TMath::CosH(3.14159*x[1]/(2*par[1])))); -} - -static Double_t FunGati2D(const Double_t *const x, const Double_t *const par) -{ - //Gati function -needde by the generic function object - Float_t k3=par[1]; - Float_t k3R=TMath::Sqrt(k3); - Float_t k2=(TMath::Pi()/2)*(1-k3R/2.); - Float_t k1=k2*k3R/(4*TMath::ATan(k3R)); - Float_t l=x[0]/par[0]; - Float_t tan2=TMath::TanH(k2*l); - tan2*=tan2; - Float_t res = k1*(1-tan2)/(1+k3*tan2); - //par[4] = is equal to k3Y - k3=par[4]; - k3R=TMath::Sqrt(k3); - k2=(TMath::Pi()/2)*(1-k3R/2.); - k1=k2*k3R/(4*TMath::ATan(k3R)); - l=x[1]/par[0]; - tan2=TMath::TanH(k2*l); - tan2*=tan2; - res = res*k1*(1-tan2)/(1+k3*tan2); - return res; -} - -/////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////// - -ClassImp(AliTPCPRF2D) - -AliTPCPRF2D::AliTPCPRF2D() - :TObject(), - fcharge(0), - fY1(0.), - fY2(0.), - fNYdiv(0), - fNChargeArray(0), - fChargeArray(0), - fHeightFull(0.), - fHeightS(0.), - fShiftY(0.), - fWidth(0.), - fK(0.), - fNPRF(0), - fNdiv(5), - fDStep(0.), - fKNorm(1.), - fInteg(0.), - fGRF(0), - fK3X(0.), - fK3Y(0.), - fPadDistance(0.), - fOrigSigmaX(0.), - fOrigSigmaY(0.), - fChargeAngle(0.), - fPadAngle(0.), - fSigmaX(0.), - fSigmaY(0.), - fMeanX(0.), - fMeanY(0.), - fInterX(0), - fInterY(0), - fCurrentY(0.), - fDYtoWire(0.), - fDStepM1(0.) -{ - //default constructor for response function object - - fNPRF =fgkNPRF ; - for(Int_t i=0;i<5;i++){ - funParam[i]=0.; - fType[i]=0; - } - - - //chewron default values - SetPad(0.8,0.8); - SetChevron(0.2,0.0,1.0); - SetY(-0.2,0.2,2); - SetInterpolationType(2,0); -} - -AliTPCPRF2D::~AliTPCPRF2D() -{ - if (fChargeArray!=0) delete [] fChargeArray; - if (fGRF !=0 ) fGRF->Delete(); -} - -void AliTPCPRF2D::SetY(Float_t y1, Float_t y2, Int_t nYdiv) -{ - // - //set virtual line position - //first and last line and number of lines - fNYdiv = nYdiv; - fY1=y1; - fY2=y2; -} - -void AliTPCPRF2D::SetPad(Float_t width, Float_t height) -{ - //set base chevron parameters - fHeightFull=height; - fWidth=width; -} -void AliTPCPRF2D::SetChevron(Float_t hstep, - Float_t shifty, - Float_t fac) -{ - //set shaping of chewron parameters - fHeightS=hstep; - fShiftY=shifty; - fK=fac; -} - -void AliTPCPRF2D::SetChParam(Float_t width, Float_t height, - Float_t hstep, Float_t shifty, Float_t fac) -{ - SetPad(width,height); - SetChevron(hstep,shifty,fac); -} - - -Float_t AliTPCPRF2D::GetPRF(Float_t xin, Float_t yin) -{ - //function which return pad response - //for the charge in distance xin - //return cubic aproximation of PRF or PRF at nearest virtual wire - if (fChargeArray==0) return 0; - //transform position to "wire position" - Float_t y=fDYtoWire*(yin-fY1); - if (fNYdiv == 1) y=fY1; - //normaly it find nearest line charge - if (fInterY ==0){ - Int_t i=Int_t(0.5+y); - if (y<0) i=Int_t(-0.5+y); - if ((i<0) || (i>=fNYdiv) ) return 0; - fcharge = &(fChargeArray[i*fNPRF]); - return GetPRFActiv(xin); - } - //make interpolation from more fore lines - Int_t i= Int_t(y); - Float_t res; - if ((i<0) || (i>=fNYdiv) ) return 0; - Float_t z0=0; - Float_t z1=0; - Float_t z2=0; - Float_t z3=0; - if (i>0) { - fcharge =&(fChargeArray[(i-1)*fNPRF]); - z0 = GetPRFActiv(xin); - } - fcharge =&(fChargeArray[i*fNPRF]); - z1=GetPRFActiv(xin); - if ((i+1)1) && ((i+2)Eval(xin,yin)/fInteg; - else - return 0.; -} - - -void AliTPCPRF2D::SetParam( TF2 *const GRF, Float_t kNorm, - Float_t sigmaX, Float_t sigmaY) -{ - //adjust parameters of the original charge distribution - //and pad size parameters - if (fGRF !=0 ) fGRF->Delete(); - fGRF = GRF; - fKNorm = kNorm; - //sprintf(fType,"User"); - snprintf(fType,5,"User"); - if (sigmaX ==0) sigmaX=(fWidth*(1+TMath::Abs(fK)))/fgkSQRT12; - if (sigmaY ==0) sigmaY=(fWidth*(1+TMath::Abs(fK)))/fgkSQRT12; - fOrigSigmaX=sigmaX; - fOrigSigmaY=sigmaY; - Double_t estimsigma = - TMath::Sqrt(sigmaX*sigmaX+(fWidth*fWidth*(1+TMath::Abs(fK))/12)+ - TMath::Tan(fPadAngle*fgkDegtoRad)*TMath::Tan(fPadAngle*fgkDegtoRad)*fHeightFull*fHeightFull/12); - if (estimsigma < 5*sigmaX) { - fDStep = estimsigma/10.; - fNPRF = Int_t(estimsigma*8./fDStep); - } - else{ - fDStep = sigmaX; - Double_t width = fWidth*(1+TMath::Abs(fK))+TMath::Abs(TMath::Tan(fPadAngle*fgkDegtoRad))*fHeightFull; - fNPRF = Int_t((width+8.*sigmaX)/fDStep); - }; - -} - - -void AliTPCPRF2D::SetGauss(Float_t sigmaX, Float_t sigmaY, - Float_t kNorm) -{ - // - // set parameters for Gauss generic charge distribution - // - fKNorm = kNorm; - fOrigSigmaX=sigmaX; - fOrigSigmaY=sigmaY; - //sprintf(fType,"Gauss"); - snprintf(fType,5,"Gauss"); - if (fGRF !=0 ) fGRF->Delete(); - fGRF = new TF2("FunGauss2D",FunGauss2D,-5.,5.,-5.,5.,4); - - funParam[0]=sigmaX; - funParam[1]=sigmaY; - funParam[2]=fK; - funParam[3]=fHeightS; - - fGRF->SetParameters(funParam); - Double_t estimsigma = - TMath::Sqrt(sigmaX*sigmaX+(fWidth*fWidth*(1+TMath::Abs(fK))/12)+ - TMath::Tan(fPadAngle)*TMath::Tan(fPadAngle*fgkDegtoRad)*fHeightFull*fHeightFull/12); - if (estimsigma < 5*sigmaX) { - fDStep = estimsigma/10.; - fNPRF = Int_t(estimsigma*8./fDStep); - } - else{ - fDStep = sigmaX; - Double_t width = fWidth*(1+TMath::Abs(fK))+TMath::Abs(TMath::Tan(fPadAngle*fgkDegtoRad))*fHeightFull; - fNPRF = Int_t((width+8.*sigmaX)/fDStep); - }; - - -} -void AliTPCPRF2D::SetCosh(Float_t sigmaX, Float_t sigmaY, - Float_t kNorm) -{ - // set parameters for Cosh generic charge distribution - // - fKNorm = kNorm; - fOrigSigmaX=sigmaX; - fOrigSigmaY=sigmaY; - // sprintf(fType,"Cosh"); - snprintf(fType,5,"Cosh"); - if (fGRF !=0 ) fGRF->Delete(); - fGRF = new TF2("FunCosh2D", FunCosh2D,-5.,5.,-5.,5.,4); - funParam[0]=sigmaX; - funParam[1]=sigmaY; - funParam[2]=fK; - funParam[3]=fHeightS; - fGRF->SetParameters(funParam); - - Double_t estimsigma = TMath::Sqrt(sigmaX*sigmaX+fWidth*fWidth*(1+TMath::Abs(fK))/12); - if (estimsigma < 5*sigmaX) { - fDStep = estimsigma/10.; - fNPRF = Int_t(estimsigma*8./fDStep); - } - else{ - fDStep = sigmaX; - fNPRF = Int_t((1.2*fWidth*(1+TMath::Abs(fK))+8.*sigmaX)/fDStep); - }; - -} - -void AliTPCPRF2D::SetGati(Float_t K3X, Float_t K3Y, - Float_t padDistance, - Float_t kNorm) -{ - // set parameters for Gati generic charge distribution - // - fKNorm = kNorm; - fK3X=K3X; - fK3Y=K3Y; - fPadDistance=padDistance; - //sprintf(fType,"Gati"); - snprintf(fType,5,"Gati"); - if (fGRF !=0 ) fGRF->Delete(); - fGRF = new TF2("FunGati2D", FunGati2D,-5.,5.,-5.,5.,5); - - funParam[0]=padDistance; - funParam[1]=K3X; - funParam[2]=fK; - funParam[3]=fHeightS; - funParam[4]=K3Y; - fGRF->SetParameters(funParam); - fOrigSigmaX=padDistance; - fOrigSigmaY=padDistance; - Float_t sigmaX = fOrigSigmaX; - Double_t estimsigma = TMath::Sqrt(sigmaX*sigmaX+fWidth*fWidth*(1+TMath::Abs(fK))/12); - if (estimsigma < 5*sigmaX) { - fDStep = estimsigma/10.; - fNPRF = Int_t(estimsigma*8./fDStep); - } - else{ - fDStep = sigmaX; - fNPRF = Int_t((1.2*fWidth*(1+TMath::Abs(fK))+8.*sigmaX)/fDStep); - }; -} - - - -void AliTPCPRF2D::Update() -{ - // - //update fields with interpolated values for - //PRF calculation - - if ( fGRF == 0 ) return; - //initialize interpolated values to 0 - Int_t i; - if (fChargeArray!=0) delete [] fChargeArray; - fChargeArray = new Float_t[fNPRF*fNYdiv]; - fNChargeArray = fNPRF*fNYdiv; - for (i =0; iEval(Float_t(ix)*dx,Float_t(iy)*dy)*dx*dy; - ///////////////////////////////////////////////////// - fInteg =dInteg; - if ( fInteg == 0 ) fInteg = 1; - - for (i=0; i(y1+kprec)) for (Double_t y = y1; y(y2-y-dy)) { - ndy =y2-y-dy; - if (ndy(x1+kprec)) { - for (Double_t x = x1; x(x2-x-dx)) { - ndx =x2-x-dx; - } - if ( ( (x+dx+ndx)TMath::Min(xp4,xp2))) { - ndx/=5.; - } - if (ndxEval(dddx,dddy); //middle point - - ddx = xch-(x+dx/2.); - ddy = fCurrentY-(y); - dddx = cos*ddx-sin*ddy; - dddy = sin*ddx+cos*ddy; - Double_t z1=fGRF->Eval(dddx,dddy); //point down - - ddx = xch-(x+dx/2.); - ddy = fCurrentY-(y+dy); - dddx = cos*ddx-sin*ddy; - dddy = sin*ddx+cos*ddy; - Double_t z3=fGRF->Eval(dddx,dddy); //point up - - ddx = xch-(x); - ddy = fCurrentY-(y+dy/2.); - dddx = cos*ddx-sin*ddy; - dddy = sin*ddx+cos*ddy; - Double_t z2=fGRF->Eval(dddx,dddy); //point left - - ddx = xch-(x+dx); - ddy = fCurrentY-(y+dy/2.); - dddx = cos*ddx-sin*ddy; - dddy = sin*ddx+cos*ddy; - Double_t z4=fGRF->Eval(dddx,dddy); //point right - - - if (z0<0) {z0=0;z1=0;z2=0;z3=0;z4=0;} - - Double_t f2x= (z3+z1-2*z0)*4.;//second derivation in y - Double_t f2y= (z2+z4-2*z0)*4.;//second derivation in x - Double_t f1y= (z3-z1); - Double_t z ; - z = (z0+f2x/6.+f2y/6.);//second order aproxiation of integral - if (kx>kprec){ //positive derivation - if (x<(xp1+dy*kx)){ //calculate volume at left border - Double_t xx1 = x; - Double_t xx2 = TMath::Min(x+dx,xp1+dy*kx); - Double_t yy1 = y+(xx1-xp1)/kx; - Double_t yy2 = TMath::Min(y+(xx2-xp1)/kx,y+dy); - z=z0; - if (yy2xp2){ //calculate volume at right border - Double_t xx1 = x; - Double_t xx2 = x+dx; - Double_t yy1 = y+(xx1-xp2)/kx; - Double_t yy2 = y+(xx2-xp2)/kx; - z=z0; - //rectangle part - z-=z0*(yy1-y)/dy; //constant part - z-=f1y*(xx2-xx1)*(yy1-y)*(yy1-y)/(2*dx*dy); - //triangle part - z-=z0*(xx2-xx1)*(yy2-yy1)/(2*dx*dy); //constant part - } - } - if (kx<-kprec){ //negative derivation - if (x<(xp1+dy*kx)){ //calculate volume at left border - Double_t xx1 = x; - Double_t xx2 = TMath::Min(x+dx,xp3-dy/kx); - Double_t yy1 = y+(xx1-xp1)/kx; - Double_t yy2 = TMath::Max(y,yy1+(xx2-xx1)/kx); //yy2xp2){ //calculate volume at right border - Double_t xx1 = TMath::Max(x,xp2+dy*kx); - Double_t xx2 = x+dx; - Double_t yy1 = TMath::Min(y+dy,y-(xp2-xx1)/kx); - Double_t yy2 = y-(xp2-xx2)/kx; - z=z0; - z-=z0*(yy2-y)/dy; //constant part rextangle - z-= f1y*(xx2-xx1)*(yy2-y)*(yy2-y)/(2.*dx*dy); - z-=z0*(xx2-xx1)*(yy1-yy2)/(2*dx*dy); //constant part triangle - } - } - - if (z>0.) sumch+=fKNorm*z*dx*dy/fInteg; - - x+=dx; - dx = ndx; - }; //loop over x - fcharge[i]+=sumch; - }//if x2>x1 - y+=dy; - dy =ndy; - }//step over different y - k*=-1.; - }//step over chevron - - }//step over different points on line NPRF -} - -void AliTPCPRF2D::UpdateSigma() -{ - // - //calulate effective sigma X and sigma y of PRF - fMeanX = 0; - fMeanY = 0; - fSigmaX = 0; - fSigmaY = 0; - - Float_t sum =0; - Int_t i; - Float_t x,y; - - for (i=-1; i<=fNYdiv; i++){ - if (fNYdiv == 1) y = fY1; - else - y = fY1+Float_t(i)*(fY2-fY1)/Float_t(fNYdiv-1); - for (x =-fNPRF*fDStep; x0){ - fMeanX/=sum; - fMeanY/=sum; - fSigmaX = TMath::Sqrt(fSigmaX/sum-fMeanX*fMeanX); - fSigmaY = TMath::Sqrt(fSigmaY/sum-fMeanY*fMeanY); - } - else fSigmaX=0; -} - - -void AliTPCPRF2D::Streamer(TBuffer &xRuub) -{ - // Stream an object of class AliTPCPRF2D - - if (xRuub.IsReading()) { - UInt_t xRuus, xRuuc; - Version_t xRuuv = xRuub.ReadVersion(&xRuus, &xRuuc); - AliTPCPRF2D::Class()->ReadBuffer(xRuub, this, xRuuv, xRuus, xRuuc); - //read functions - if (strncmp(fType,"User",3)!=0){ - delete fGRF; - if (strncmp(fType,"Gauss",3)==0) - fGRF = new TF2("FunGauss2D",FunGauss2D,-5.,5.,-5.,5.,4); - if (strncmp(fType,"Cosh",3)==0) - fGRF = new TF2("FunCosh2D",FunCosh2D,-5.,5.,-5.,5.,4); - if (strncmp(fType,"Gati",3)==0) - fGRF = new TF2("FunGati2D",FunGati2D,-5.,5.,-5.,5.,5); - if (fGRF!=0) fGRF->SetParameters(funParam); - } - //calculate conversion coefitient to convert position to virtual wire - fDYtoWire=Float_t(fNYdiv-1)/(fY2-fY1); - fDStepM1=1/fDStep; - } else { - AliTPCPRF2D::Class()->WriteBuffer(xRuub,this); - } -} - - -TH1F * AliTPCPRF2D::GenerDrawXHisto(Float_t x1, Float_t x2,Float_t y) -{ - //gener one dimensional hist of pad response function - // at position y - char s[100]; - const Int_t kn=200; - //sprintf(s,"Pad Response Function"); - snprintf(s,100,"Pad Response Function"); - TH1F * hPRFc = new TH1F("hPRFc",s,kn+1,x1,x2); - Float_t x=x1; - Float_t y1; - - for (Int_t i = 0;iFill(x,y1); - }; - hPRFc->SetXTitle("pad (cm)"); - return hPRFc; -} - -AliH2F * AliTPCPRF2D::GenerDrawHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx, Int_t Ny) -{ - // - //gener two dimensional histogram with PRF - // - char s[100]; - //sprintf(s,"Pad Response Function"); - snprintf(s,100,"Pad Response Function"); - AliH2F * hPRFc = new AliH2F("hPRFc",s,Nx,x1,x2,Ny,y1,y2); - Float_t dx=(x2-x1)/Float_t(Nx); - Float_t dy=(y2-y1)/Float_t(Ny) ; - Float_t x,y,z; - x = x1; - y = y1; - for ( Int_t i = 0;i<=Nx;i++,x+=dx){ - y=y1; - for (Int_t j = 0;j<=Ny;j++,y+=dy){ - z = GetPRF(x,y); - hPRFc->SetBinContent(hPRFc->GetBin(i,j),z); - }; - }; - hPRFc->SetXTitle("pad direction (cm)"); - hPRFc->SetYTitle("pad row direction (cm)"); - hPRFc->SetTitleOffset(1.5,"X"); - hPRFc->SetTitleOffset(1.5,"Y"); - return hPRFc; -} - - -AliH2F * AliTPCPRF2D::GenerDrawDistHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx, Int_t Ny, Float_t thr) -{ - //return histogram with distortion - const Float_t kminth=0.00001; - if (thrthr){ - sum+=z; - sumx+=z*padx; - } - }; - if (sum>kminth) - { - ddx = (x-(sumx/sum)); - } - else ddx=-1; - if (TMath::Abs(ddx)<10) hPRFDist->SetBinContent(hPRFDist->GetBin(i,j),ddx); - } - } - - hPRFDist->SetXTitle("pad direction (cm)"); - hPRFDist->SetYTitle("pad row direction (cm)"); - hPRFDist->SetTitleOffset(1.5,"X"); - hPRFDist->SetTitleOffset(1.5,"Y"); - return hPRFDist; -} - - - - - -void AliTPCPRF2D::DrawX(Float_t x1 ,Float_t x2,Float_t y1,Float_t y2, Int_t N) -{ - // - //draw pad response function at interval at given y position - // - if (N<0) return; - TCanvas * c1 = new TCanvas("PRFX","Pad response function",700,900); - c1->cd(); - - TPaveText * comment = new TPaveText(0.05,0.02,0.95,0.20,"NDC"); - comment->SetTextAlign(12); - comment->SetFillColor(42); - DrawComment(comment); - comment->Draw(); - c1->cd(); - - TPad * pad2 = new TPad("pPRF","",0.05,0.22,0.95,0.95); - pad2->Divide(2,(N+1)/2); - pad2->Draw(); - gStyle->SetOptFit(1); - gStyle->SetOptStat(1); - for (Int_t i=0;icd(i+1); - TH1F * hPRFc =GenerDrawXHisto(x1, x2,y); - //sprintf(ch,"PRF at wire position: %2.3f",y); - snprintf(ch,40,"PRF at wire position: %2.3f",y); - hPRFc->SetTitle(ch); - //sprintf(ch,"PRF %d",i); - snprintf(ch,15,"PRF %d",i); - hPRFc->SetName(ch); - hPRFc->Fit("gaus"); - } - -} - - - -void AliTPCPRF2D::DrawPRF(Float_t x1 ,Float_t x2,Float_t y1, Float_t y2, Int_t Nx, Int_t Ny) -{ - // - // - TCanvas * c1 = new TCanvas("canPRF","Pad response function",700,900); - c1->cd(); - TPad * pad2 = new TPad("pad2PRF","",0.05,0.22,0.95,0.95); - pad2->Draw(); - gStyle->SetOptFit(1); - gStyle->SetOptStat(1); - TH2F * hPRFc = GenerDrawHisto(x1, x2, y1, y2, Nx,Ny); - pad2->cd(); - hPRFc->Draw("surf"); - c1->cd(); - TPaveText * comment = new TPaveText(0.05,0.02,0.95,0.20,"NDC"); - comment->SetTextAlign(12); - comment->SetFillColor(42); - DrawComment(comment); - comment->Draw(); -} - -void AliTPCPRF2D::DrawDist(Float_t x1 ,Float_t x2,Float_t y1, Float_t y2, Int_t Nx, Int_t Ny, Float_t thr) -{ - // - //draw distortion of the COG method - for different threshold parameter - TCanvas * c1 = new TCanvas("padDistortion","COG distortion",700,900); - c1->cd(); - TPad * pad1 = new TPad("dist","",0.05,0.55,0.95,0.95,21); - pad1->Draw(); - TPad * pad2 = new TPad("dist","",0.05,0.22,0.95,0.53,21); - pad2->Draw(); - gStyle->SetOptFit(1); - gStyle->SetOptStat(0); - - AliH2F * hPRFDist = GenerDrawDistHisto(x1, x2, y1, y2, Nx,Ny,thr); - - pad1->cd(); - hPRFDist->Draw("surf"); - Float_t distmax =hPRFDist->GetMaximum(); - Float_t distmin =hPRFDist->GetMinimum(); - gStyle->SetOptStat(1); - - TH1F * dist = hPRFDist->GetAmplitudes(distmin,distmax,distmin-1); - pad2->cd(); - dist->Draw(); - c1->cd(); - TPaveText * comment = new TPaveText(0.05,0.02,0.95,0.20,"NDC"); - comment->SetTextAlign(12); - comment->SetFillColor(42); - DrawComment(comment); - comment->Draw(); -} - -void AliTPCPRF2D::DrawComment(TPaveText *comment) -{ - // - //function to write comment to picture - - char s[100]; - //draw comments to picture - TText * title = comment->AddText("Pad Response Function parameters:"); - title->SetTextSize(0.03); - //sprintf(s,"Height of pad: %2.2f cm",fHeightFull); - snprintf(s,100,"Height of pad: %2.2f cm",fHeightFull); - comment->AddText(s); - //sprintf(s,"Width pad: %2.2f cm",fWidth); - snprintf(s,100,"Width pad: %2.2f cm",fWidth); - comment->AddText(s); - //sprintf(s,"Pad Angle: %2.2f ",fPadAngle); - snprintf(s,100,"Pad Angle: %2.2f ",fPadAngle); - comment->AddText(s); - - if (TMath::Abs(fK)>0.0001){ - //sprintf(s,"Height of one chevron unit h: %2.2f cm",2*fHeightS); - snprintf(s,100,"Height of one chevron unit h: %2.2f cm",2*fHeightS); - comment->AddText(s); - //sprintf(s,"Overlap factor: %2.2f",fK); - snprintf(s,100,"Overlap factor: %2.2f",fK); - comment->AddText(s); - } - - if (strncmp(fType,"User",3)==0){ - //sprintf(s,"Charge distribution - user defined function %s ",fGRF->GetTitle()); - snprintf(s,100,"Charge distribution - user defined function %s ",fGRF->GetTitle()); - comment->AddText(s); - //sprintf(s,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); - snprintf(s,100,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); - comment->AddText(s); - //sprintf(s,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); - snprintf(s,100,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); - comment->AddText(s); - } - if (strncmp(fType,"Gauss",3)==0){ - //sprintf(s,"Gauss charge distribution"); - snprintf(s,100,"Gauss charge distribution"); - comment->AddText(s); - //sprintf(s,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); - snprintf(s,100,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); - comment->AddText(s); - //sprintf(s,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); - snprintf(s,100,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); - comment->AddText(s); - } - if (strncmp(fType,"Gati",3)==0){ - //sprintf(s,"Gati charge distribution"); - snprintf(s,100,"Gati charge distribution"); - comment->AddText(s); - //sprintf(s,"K3X of Gati : %2.2f ",fK3X); - snprintf(s,100,"K3X of Gati : %2.2f ",fK3X); - comment->AddText(s); - //sprintf(s,"K3Y of Gati: %2.2f ",fK3Y); - snprintf(s,100,"K3Y of Gati: %2.2f ",fK3Y); - comment->AddText(s); - //sprintf(s,"Wire to Pad Distance: %2.2f ",fPadDistance); - snprintf(s,100,"Wire to Pad Distance: %2.2f ",fPadDistance); - comment->AddText(s); - } - if (strncmp(fType,"Cosh",3)==0){ - //sprintf(s,"Cosh charge distribution"); - snprintf(s,100,"Cosh charge distribution"); - comment->AddText(s); - //sprintf(s,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); - snprintf(s,100,"Sigma x of charge distribution: %2.2f ",fOrigSigmaX); - comment->AddText(s); - //sprintf(s,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); - snprintf(s,100,"Sigma y of charge distribution: %2.2f ",fOrigSigmaY); - comment->AddText(s); - } - //sprintf(s,"Normalisation: %2.2f ",fKNorm); - snprintf(s,100,"Normalisation: %2.2f ",fKNorm); - comment->AddText(s); -} - diff --git a/tpc/dirty/AliTPCPRF2D.h b/tpc/dirty/AliTPCPRF2D.h deleted file mode 100644 index 74396ab10a74e..0000000000000 --- a/tpc/dirty/AliTPCPRF2D.h +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef ALITPCPRF2D_H -#define ALITPCPRF2D_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id$ */ -////////////////////////////////////////////////////////////////// -// Manager class for AliTPCPRF2D // -// This is to generate the 2-dimensional pad-response function // -////////////////////////////////////////////////////////////////// -#include "TObject.h" - -class TF2; -class TArrayF; -class TH1F; -class AliH2F; -class TPaveText; - -class AliTPCPRF2D : public TObject { -public : - AliTPCPRF2D(); - virtual ~AliTPCPRF2D(); - virtual void Update(); //recalculate tables for charge calculation - Float_t GetGRF(Float_t xin, Float_t yin); - //return generic response function in xin - virtual TF2 * GetGRF(){return fGRF;} - virtual Float_t GetPRF(Float_t xin, Float_t yin); - //return PRF in point xin,yin - - virtual void DrawX(Float_t x1 ,Float_t x2,Float_t y1,Float_t y2=0, Int_t N=1); - virtual void DrawPRF(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20); - //draw two dimensional PRF - - virtual void DrawDist(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20, - Float_t thr=0); - //draw distortion of COG method - //we suppose threshold equal to thr - TH1F * GenerDrawXHisto(Float_t x1, Float_t x2,Float_t y); - AliH2F * GenerDrawHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20); - AliH2F * GenerDrawDistHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx=20, Int_t Ny=20, - Float_t thr=0); - - virtual void SetPad(Float_t width, Float_t height); - //set base chevron parameters - virtual void SetChevron(Float_t hstep, Float_t shifty, Float_t fac); - //set chevron parameters - virtual void SetChParam(Float_t width, Float_t height, - Float_t hstep, Float_t shifty, Float_t fac); - //set all geometrical parameters - virtual void SetY(Float_t y1, Float_t y2, Int_t nYdiv) ; - virtual void SetChargeAngle(Float_t angle){fChargeAngle = angle;} //set angle of pad and charge distribution - //axes - virtual void SetCurrentAngle(Float_t /*angle*/){return;} - virtual void SetPadAngle(Float_t angle){fPadAngle = angle;} //set pad angle - void SetInterpolationType(Int_t interx, Int_t intery) {fInterX=interx; fInterY =intery;} - virtual void SetGauss(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1); - //adjust PRF with GAUSIAN as generic GRF - //if direct = kTRUE then it does't convolute distribution - virtual void SetCosh(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1); - //adjust PRF with 1/Cosh as generic GRF - virtual void SetGati(Float_t K3X, Float_t K3Y, - Float_t padDistance, - Float_t kNorm=1); - void SetParam(TF2 *const GRF,Float_t kNorm, - Float_t sigmaX=0, Float_t sigmaY=0); - void SetNdiv(Int_t Ndiv){fNdiv=Ndiv;} - virtual Float_t GetSigmaX() const {return fSigmaX;} - virtual Float_t GetSigmaY() const {return fSigmaY;} - - -protected: - void Update1(); - virtual void UpdateSigma(); //recalculate sigma of PRF - Float_t GetPRFActiv(Float_t xin); //return PRF in point xin and actual y - Float_t * fcharge; //!field with PRF - Float_t fY1; //position of first "virtual" vire - Float_t fY2; //position of last virtual vire - Int_t fNYdiv; //number of wires - Int_t fNChargeArray; //number of charge interpolation points - Float_t * fChargeArray; //[fNChargeArray]pointer to array of arrays - - void DrawComment(TPaveText * comment); //draw comments to picture - //chevron parameters - Float_t fHeightFull; //height of the full pad - Float_t fHeightS; //height of the one step - Float_t fShiftY; //shift of the step - Float_t fWidth; //width of the pad - Float_t fK; //k factor of the chewron - - Double_t funParam[5];//parameters of used charge function - Int_t fNPRF; //number of interpolations point - Int_t fNdiv; //number of division to calculate integral - Float_t fDStep; //element step for point - Float_t fKNorm; //normalisation factor of the charge integral - Float_t fInteg; //integral of GRF on +- infinity - TF2 * fGRF; //charge distribution function - - Float_t fK3X; //KX parameter (only for Gati parametrization) - Float_t fK3Y; //KY parameter (only for Gati parametrisation) - Float_t fPadDistance; //pad anode distnce (only for Gati parametrisation) - - Float_t fOrigSigmaX; //sigma of original distribution; - Float_t fOrigSigmaY; //sigma of original distribution; - - Float_t fChargeAngle;//'angle' of charge distribution refernce system to pad reference system - Float_t fPadAngle; //'angle' of the pad assymetry - - Float_t fSigmaX; //sigma X of PAD response function - Float_t fSigmaY; //sigma Y of PAD response function - Float_t fMeanX; //mean X value - Float_t fMeanY; //mean Y value - Int_t fInterX; //interpolation in X - Int_t fInterY; //interpolation in Y - //calculated during update - - char fType[5]; //charge type - Float_t fCurrentY; //in reality we calculate PRF only for one fixed y - Float_t fDYtoWire; //! used to make PRF calculation faster in GetPRF - Float_t fDStepM1; //! used in GetPRFActiv to make calculation faster - // - static const Double_t fgkDegtoRad; //numeric constant - static const Double_t fgkSQRT12; //numeric constant - static const Int_t fgkNPRF; //default number of division - -private: - AliTPCPRF2D(const AliTPCPRF2D &prf); - AliTPCPRF2D &operator = (const AliTPCPRF2D &/*prf*/) {return *this;} - - ClassDef(AliTPCPRF2D,1) -}; - -#endif /* ALITPCPRF2D_H */ diff --git a/tpc/dirty/AliTPCParam.cxx b/tpc/dirty/AliTPCParam.cxx deleted file mode 100644 index 71df0b78524f4..0000000000000 --- a/tpc/dirty/AliTPCParam.cxx +++ /dev/null @@ -1,1047 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -/////////////////////////////////////////////////////////////////////// -// Manager and of geomety classes for set: TPC // -// // -// !sectors are numbered from 0 // -// !pad rows are numbered from 0 // -// -// 12.6. changed z relative -// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // -// // -/////////////////////////////////////////////////////////////////////// - -// - -#include - -#include -#include -#include -//#include "AliAlignObj.h" -//#include "AliAlignObjParams.h" -#include "AliLog.h" -#include "TGraphErrors.h" -//#include "AliTPCcalibDB.h" -#include "AliTPCROC.h" -#include "AliMathBase.h" - -TObjArray *AliTPCParam::fBBParam = 0; - -ClassImp(AliTPCParam) - - -//___________________________________________ -AliTPCParam::AliTPCParam() - :AliDetectorParam(), - fbStatus(kFALSE), - fInnerRadiusLow(0.), - fInnerRadiusUp(0.), - fOuterRadiusUp(0.), - fOuterRadiusLow(0.), - fInnerAngle(0.), - fInnerAngleShift(0.), - fOuterAngle(0.), - fOuterAngleShift(0.), - fInnerFrameSpace(0.), - fOuterFrameSpace(0.), - fInnerWireMount(0.), - fOuterWireMount(0.), - fNInnerSector(0), - fNOuterSector(0), - fNSector(0), - fZLength(0), - fRotAngle(), - fGeometryType(0), - fTrackingMatrix(0), - fClusterMatrix(0), - fGlobalMatrix(0), - fNInnerWiresPerPad(0), - fInnerWWPitch(0), - fInnerDummyWire(0), - fInnerOffWire(0.), - fRInnerFirstWire(0.), - fRInnerLastWire(0.), - fLastWireUp1(0.), - fNOuter1WiresPerPad(0), - fNOuter2WiresPerPad(0), - fOuterWWPitch(0.), - fOuterDummyWire(0), - fOuterOffWire(0.), - fROuterFirstWire(0.), - fROuterLastWire(0.), - fInnerPadPitchLength(0.), - fInnerPadPitchWidth(0.), - fInnerPadLength(0.), - fInnerPadWidth(0.), - fOuter1PadPitchLength(0.), - fOuter2PadPitchLength(0.), - fOuterPadPitchWidth(0.), - fOuter1PadLength(0.), - fOuter2PadLength(0.), - fOuterPadWidth(0.), - fBMWPCReadout(kFALSE), - fNCrossRows(0), - fNRowLow(0), - fNRowUp1(0), - fNRowUp2(0), - fNRowUp(0), - fNtRows(0), - fDiffT(0.), - fDiffL(0.), - fGasGain(0.), - fDriftV(0.), - fOmegaTau(0.), - fAttCoef(0.), - fOxyCont(0.), - fFpot(0.), - fNprim(0.), - fNtot(0.), - fWmean(0.), - fExp(0.), - fEend(0.), - fBetheBloch(0x0), - fGainSlopesHV(0), // graph with the gain slope as function of HV - per chamber - fGainSlopesPT(0), // graph with the gain slope as function of P/T - per chamber - fPadCoupling(0.), - fZeroSup(0), - fNoise(0.), - fChipGain(0.), - fChipNorm(0.), - fTSample(0.), - fZWidth(0.), - fTSigma(0.), - fMaxTBin(0), - fADCSat(0), - fADCDynRange(0.), - fTotalNormFac(0.), - fNoiseNormFac(0.), - fNominalVoltage(), - fMaxVoltageDeviation(40.), - fMaxDipVoltage(2.), - fMaxHVfractionBad(.4), - fVoltageDipScanPeriod(1.), - fNResponseMax(0), - fResponseThreshold(0.), - fCurrentMax(0), - fResponseBin(0), - fResponseWeight(0), - fGateDelay(0.), - fL1Delay(0.), - fNTBinsBeforeL1(0), - fNTBinsL1(0.) -{ - // - //constructor sets the default parameters - // - - SetTitle("75x40_100x60_150x60"); - SetDefault(); - if (!fBBParam) fBBParam= new TObjArray(1000); -} - -AliTPCParam::~AliTPCParam() -{ - // - //destructor deletes some dynamicaly alocated variables - // - - if (fResponseBin!=0) delete [] fResponseBin; - if (fResponseWeight!=0) delete [] fResponseWeight; - if (fRotAngle !=0) delete [] fRotAngle; - - CleanGeoMatrices(); - -} - -Int_t AliTPCParam::Transform0to1(Float_t *xyz, Int_t * index) const -{ - // - // calculates sector number (index[1], undefined on input) - // xyz intact - // - - Float_t angle,x1; - Int_t sector; - Float_t r = TMath::Sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]); - if ((xyz[0]==0)&&(xyz[1]==0)) angle = 0.; - else - { - angle =TMath::ASin(xyz[1]/r); - if (xyz[0]<0) angle=TMath::Pi()-angle; - if ( (xyz[0]>0) && (xyz[1]<0) ) angle=2*TMath::Pi()+angle; - } - - sector=Int_t(TMath::Nint((angle-fInnerAngleShift)/fInnerAngle)); - - Float_t cos,sin; - AdjustCosSin(sector,cos,sin); - x1=xyz[0]*cos + xyz[1]*sin; - - if (x1>fOuterRadiusLow) - { - sector=Int_t(TMath::Nint((angle-fOuterAngleShift)/fOuterAngle))+fNInnerSector; - if (xyz[2]<0) sector+=(fNOuterSector>>1); - } - else - if (xyz[2]<0) sector+=(fNInnerSector>>1); - if (sector<0 || sector>=fNSector) AliError(Form("Wrong sector %d",sector)); - index[1]=sector; // calculated sector number - index[0]=1; // indicates system after transformation - return sector; -} - -Bool_t AliTPCParam::Transform(Float_t */*xyz*/, Int_t *index, Int_t* /*oindex*/) -{ - //transformation from input coodination system to output coordination system - switch (index[0]){ - case 0: - break; - }; - - return kFALSE; - -} - -Int_t AliTPCParam::GetPadRow(Float_t *xyz, Int_t *index) const -{ - // - //calculates pad row of point xyz - transformation to system 8 (digit system) - // - Int_t system = index[0]; - if (0==system) { - Transform0to1(xyz,index); - system=1; - } - if (1==system) { - Transform1to2(xyz,index); - system=2; - } - - if (fGeometryType==0){ //straight row - if (2==system) { - Transform2to3(xyz,index); - system=3; - } - if (3==system) { - Transform3to4(xyz,index); - system=4; - } - if (4==system) { - Transform4to8(xyz,index); - system=8; - } - if (8==system) { - index[0]=8; - return index[2]; - } - } - - if (fGeometryType==1){ //cylindrical geometry - if (2==system) { - Transform2to5(xyz,index); - system=5; - } - if (5==system) { - Transform2to3(xyz,index); - system=6; - } - if (6==system) { - Transform3to4(xyz,index); - system=7; - } - if (8==system) { - index[0]=8; - return index[2]; - } - } - index[0]=system; - return -1; //if no reasonable system -} - -void AliTPCParam::SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle, - Float_t outershift) -{ - // - // set opening angles - static const Float_t kDegtoRad = 0.01745329251994; - fInnerAngle = innerangle; //opening angle of Inner sector - fInnerAngleShift = innershift; //shift of first inner sector center to the 0 - fOuterAngle = outerangle; //opening angle of outer sector - fOuterAngleShift = outershift; //shift of first sector center to the 0 - fInnerAngle *=kDegtoRad; - fInnerAngleShift *=kDegtoRad; - fOuterAngle *=kDegtoRad; - fOuterAngleShift *=kDegtoRad; -} - -Float_t AliTPCParam::GetInnerAngle() const -{ - //return angle - return fInnerAngle; - -} - -Float_t AliTPCParam::GetInnerAngleShift() const -{ - //return angle - return fInnerAngleShift; -} -Float_t AliTPCParam::GetOuterAngle() const -{ - //return angle - return fOuterAngle; -} -Float_t AliTPCParam::GetOuterAngleShift() const -{ - //return angle - - return fOuterAngleShift; -} - - -Int_t AliTPCParam::GetIndex(Int_t sector, Int_t row) const -{ - // - //give index of the given sector and pad row - //no control if the sectors and rows are reasonable !!! - // - if (sectorfNtRows)) return kFALSE; - Int_t outindex = fNInnerSector*fNRowLow; - if (index(kResponseThreshold)); - //L1 data - SetGateDelay(kGateDelay); - SetL1Delay(kL1Delay); - SetNTBinsBeforeL1(kNTBinsBeforeL1); - SetNominalGainSlopes(); -} - - -Bool_t AliTPCParam::Update() -{ - // - // update some calculated parameter which must be updated after changing "base" - // parameters - // for example we can change size of pads and according this recalculate number - // of pad rows, number of of pads in given row .... - // - const Float_t kQel = 1.602e-19; // elementary charge - fbStatus = kFALSE; - - Int_t i,j; //loop variables because HP - //-----------------Sector section------------------------------------------ - //calclulate number of sectors - fNInnerSector = Int_t(4*TMath::Pi()/fInnerAngle+0.2); - // number of inner sectors - factor 0.2 to don't be influnced by inprecision - if (fNInnerSector%2) return kFALSE; - fNOuterSector = Int_t(4*TMath::Pi()/fOuterAngle+0.2); - if (fNOuterSector%2) return kFALSE; - fNSector = fNInnerSector+fNOuterSector; - - if (fRotAngle!=0) delete [] fRotAngle; - fRotAngle = new Float_t[4*fNSector]; - //calculate sin and cosine of rotations angle - //sectors angles numbering from 0 - - j=fNInnerSector*2; - Float_t angle = fInnerAngleShift; - for (i=0; jGetAlignableEntryByUID(volid); - if(!pne) - { - AliError(Form("Alignable entry for volume ID %d not in geometry. Exiting!",volid)); - return kFALSE; - } - const char *path = pne->GetTitle(); - if (!gGeoManager->cd(path)) return kFALSE; - TGeoHMatrix *m = gGeoManager->GetCurrentMatrix(); - // Since GEANT4 does not allow reflections, in this case the reflection - // component if the matrix is embedded by TGeo inside TGeoScaledShape - if (gGeoManager->GetCurrentVolume()->GetShape()->IsReflected()) - m->ReflectZ(kFALSE, kTRUE); - // - TGeoRotation mchange; - mchange.RotateY(90); mchange.RotateX(90); - Float_t ROCcenter[3]; - GetChamberCenter(isec,ROCcenter); - // - // Convert to global coordinate system - // - fGlobalMatrix[isec] = new TGeoHMatrix(*m); - fGlobalMatrix[isec]->Multiply(&(mchange.Inverse())); - TGeoTranslation center("center",-ROCcenter[0],-ROCcenter[1],-ROCcenter[2]); - fGlobalMatrix[isec]->Multiply(¢er); - // - // cluster correction matrix - // - fClusterMatrix[isec] = new TGeoHMatrix; - Double_t sectorAngle = 20.*(isec%18)+10; - TGeoHMatrix rotMatrix; - rotMatrix.RotateZ(sectorAngle); - if (GetGlobalMatrix(isec)->GetTranslation()[2]>0){ - // - // mirrored system - // - TGeoRotation mirrorZ; - mirrorZ.SetAngles(90,0,90,90,180,0); - fClusterMatrix[isec]->Multiply(&mirrorZ); - } - TGeoTranslation trans(0,0,GetZLength(isec)); - fClusterMatrix[isec]->MultiplyLeft(&trans); - fClusterMatrix[isec]->MultiplyLeft((GetGlobalMatrix(isec))); - fClusterMatrix[isec]->MultiplyLeft(&(rotMatrix.Inverse())); - } -*/ - printf("ERROR\nERROR\nERROR\nERROR\nAliTPCParam::ReadGeoMatrices not implemented\n"); - return kTRUE; -} - -TGeoHMatrix * AliTPCParam::Tracking2LocalMatrix(const TGeoHMatrix * geoMatrix, Int_t sector) const{ - // - // make local to tracking matrix - // - Double_t sectorAngle = 20.*(sector%18)+10; - TGeoHMatrix *newMatrix = new TGeoHMatrix(); - newMatrix->RotateZ(sectorAngle); - newMatrix->MultiplyLeft(&(geoMatrix->Inverse())); - return newMatrix; -} - - - - -Bool_t AliTPCParam::GetStatus() const -{ - //get information about object consistency - return fbStatus; -} - -Int_t AliTPCParam::GetNRowLow() const -{ - //get the number of pad rows in low sector - return fNRowLow; -} -Int_t AliTPCParam::GetNRowUp() const -{ - //get the number of pad rows in up sector - return fNRowUp; -} -Int_t AliTPCParam::GetNRowUp1() const -{ - //get the number of pad rows in up1 sector - return fNRowUp1; -} -Int_t AliTPCParam::GetNRowUp2() const -{ - //get the number of pad rows in up2 sector - return fNRowUp2; -} -Float_t AliTPCParam::GetPadRowRadiiLow(Int_t irow) const -{ - //get the pad row (irow) radii - if ( !(irow<0) && (irow 4 segments in [0,3], 7 segments OROC[4,10] - // - // To be speed-up using caching lookup table - // - Int_t wireIndex = -1; - // check if the given set of sector and row is OK - if ( (sector<0 || sector>=72) || (row<0 || row>95) || (sector<36 && row>64) ){ - AliError("No matching anode wire segment for this set of sector-row \n"); - return wireIndex; - } - // find the wire index for given sector-row - if ( sector<36 ){ // IROC anode wire segments - if (row<16) wireIndex=0; - else if (row>=16 && row<32) wireIndex=1; - else if (row>=32 && row<48) wireIndex=2; - else wireIndex=3; - } else { // OROC anode wire segments - if (row<16) wireIndex=4; - else if ( row>=16 && row<32) wireIndex=5; - else if ( row>=32 && row<48) wireIndex=6; - else if ( row>=48 && row<64) wireIndex=7; - else if ( row>=64 && row<75) wireIndex=8; - else if ( row>=75 && row<85) wireIndex=9; - else wireIndex=10; - } - return wireIndex; -} - -Int_t AliTPCParam::GetNPadsPerSegment(Int_t wireSegmentID) const -{ - // - // Get the number of pads in a given anode wire segment - // - // check if the given segment index is OK - // To be done (if needed) - cache the lookup table - // - if ( wireSegmentID<0 || wireSegmentID>10 ){ - AliError("Wrong anode wire segment index. it should be [0,10] \n"); - return -1; - } - // get sector type from wireSegmentID - Int_t sector = (wireSegmentID<4) ? 0 : 36; // ROC [0,35] --> IROC, ROC [36,71] --> OROC - // get the upper and lower row number for the given wireSegmentID - Int_t segRowDown = 0; - Int_t segRowUp = 0; - - if ( wireSegmentID == 0 || wireSegmentID == 4 ) { - segRowDown = 0; - segRowUp = 16; - } else if ( wireSegmentID == 1 || wireSegmentID == 5 ) { - segRowDown = 16; - segRowUp = 32; - } else if ( wireSegmentID == 2 || wireSegmentID == 6 ) { - segRowDown = 32; - segRowUp = 48; - } else if ( wireSegmentID == 3 || wireSegmentID == 7 ) { - segRowDown = 48; - segRowUp = 63; - } else if ( wireSegmentID == 8 ) { - segRowDown = 64; - segRowUp = 75; - } else if ( wireSegmentID == 9 ) { - segRowDown = 75; - segRowUp = 85; - } else { - segRowDown = 85; - segRowUp = 95; - } - // count the number of pads on the given segment - AliTPCROC *r=AliTPCROC::Instance(); - Int_t nPads=0; - for (Int_t irow = segRowDown; irow < segRowUp ; irow++){ - nPads += r->GetNPads(sector,irow); - } - return nPads; -} - -Float_t AliTPCParam::GetYInner(Int_t irow) const -{ - return fYInner[irow]; -} - - -Float_t AliTPCParam::GetYOuter(Int_t irow) const -{ - return fYOuter[irow]; -} - -Int_t AliTPCParam::GetSectorIndex(Float_t angle, Int_t row, Float_t z) const -{ - // returns the sector index - // takes as input the angle, index of the pad row and z position - if(row<0) return -1; - - if (angle > 2.*TMath::Pi()) angle -= 2.*TMath::Pi(); - if (angle < 0. ) angle += 2.*TMath::Pi(); - - Int_t sector; - if(row>1); - } - else { - sector=Int_t(TMath::Nint((angle-fOuterAngleShift)/fOuterAngle))+fNInnerSector; - if (z<0) sector += (fNOuterSector>>1); - } - - return sector; -} - -Float_t AliTPCParam::GetChamberCenter(Int_t isec, Float_t * center) const -{ - // returns the default radial position - // of the readout chambers - - const Float_t kROCcenterIn = 110.2; - const Float_t kROCcenterOut = 188.45; - - if (isecSetName("GainSlopesHV"); - fGainSlopesPT->SetName("GainSlopesPT"); -} - - -TVectorD * AliTPCParam::GetBetheBlochParamNa49(){ - // - // Parameters of the BB for the Aleph parametrization AliMathBase::BetheBlochAleph - // Na49 parameters were used as first set of parameters for ALICE simulation - // (see TPC TDR for details) - TVectorD v(5); - v(0)=0.76176e-1; - v(1)=10.632; - v(2)=0.13279e-4; - v(3)=1.8631; - v(4)=1.9479; - return new TVectorD(v); -} - -TVectorD * AliTPCParam::GetBetheBlochParamAlice(){ - // - // - // Parameters of the BB for the Aleph parametrization AliMathBase::BetheBlochAleph - // Na49 parameters were used as first set of parameters for ALICE simulation - // Second set was obtained from ALICE 2009-2013 data taking - // (see TPC TDR for details) - // - TVectorD v(5); - v[0] = 0.0851148; - v[1] = 9.25771; - v[2] = 2.6558e-05; - v[3] = 2.32742; - v[4] = 1.83039; - return new TVectorD(v); -} - - -Double_t AliTPCParam::BetheBlochAleph(Double_t bg, Int_t type){ - // - // GetBetheBloch retur values for the parametrs regieter at poition type - // Used for visualization and comparison purposes - TVectorD * paramBB =0; - //if (type==0) { - //AliTPCParam* param = AliTPCcalibDB::Instance()->GetParameters(); - //if (param) paramBB=param->GetBetheBlochParameters(); - //} - //if (type>0){ - paramBB = (TVectorD*)fBBParam->At(type); - //} - if (!paramBB) return 0; - // - return AliMathBase::BetheBlochAleph(bg,(*paramBB)(0),(*paramBB)(1),(*paramBB)(2),(*paramBB)(3),(*paramBB)(4)); -} - - -void AliTPCParam::RegisterBBParam(TVectorD* param, Int_t position){ - // - // - // - fBBParam->AddAt(param,position); -} diff --git a/tpc/dirty/AliTPCParam.h b/tpc/dirty/AliTPCParam.h deleted file mode 100644 index 61f450879b57d..0000000000000 --- a/tpc/dirty/AliTPCParam.h +++ /dev/null @@ -1,834 +0,0 @@ -#ifndef ALITPCPARAM_H -#define ALITPCPARAM_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id$ */ - -//////////////////////////////////////////////// -// Manager class for TPC parameters // -//////////////////////////////////////////////// - -#include "AliDetectorParam.h" -#include "TMath.h" - -#include -#include -class TString; -class TGraphErrors; - -class AliTPCParam : public AliDetectorParam { - ////////////////////////////////////////////////////// - ////////////////////////////////////////////////////// - //ALITPCParam object to be possible change - //geometry and some other parameters of TPC - //used by AliTPC and AliTPCSector - -public: - AliTPCParam(); - virtual ~AliTPCParam(); - TGeoHMatrix * Tracking2LocalMatrix(const TGeoHMatrix * geoMatrix, Int_t sector) const; - virtual Bool_t Transform(Float_t *xyz, Int_t *index, Int_t* oindex); - //transformation from input coodination system to output coordination system - Int_t Transform0to1(Float_t *xyz, Int_t *index) const; - //trasforamtion from global to global - adjust index[0] sector - //return value is equal to sector corresponding to global position - void Transform1to2Ideal(Float_t *xyz, Int_t *index) const; - //transformation to rotated coordinata - ideal frame - void Transform1to2(Float_t *xyz, Int_t *index) const; - //transformation to rotated coordinata - void Transform2to1(Float_t *xyz, Int_t *index) const; - //transformation from rotated coordinata to global coordinata - void Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const; - //transform rotated coordinata of one sector to rotated - //coordinata relative to another sector - Float_t Transform2to2NearestWire(Float_t *xyz, Int_t *index) const; - //round x position to nearest wire - Int_t Transform2to3(Float_t *xyz, Int_t *index) const; - //calulate coresponding index[2] -pad row for straight rows - //does not change xyz[] - //return pad - row - void Transform3to4(Float_t *xyz, Int_t *index) const; - //valid only for straight rows straight rows - //calculate xyz[0] position relative to given index - //return pad - row - void Transform4to3(Float_t *xyz, Int_t *index) const; - //valid only for straight rows straight rows - //transform xyz[0] position relative to given index - void Transform2to5( Float_t *xyz, Int_t *index) const; - //transform [x,y,z] to [r,rphi,z] - void Transform5to2(Float_t *xyz, Int_t *index) const; - //transform [r,rphi,z] coordinata to [x,y,z] - void Transform4to8(Float_t *xyz, Int_t *index) const; - //transform xyz coordinata to 'digit' coordinata - void Transform8to4(Float_t *xyz, Int_t *index) const; - //transform 'digit' coordinata to xyz coordinata - void Transform6to8(Float_t *xyz, Int_t *index) const; - //transform dr,f coordinata to 'digit' coordinata - void Transform8to6(Float_t *xyz, Int_t *index) const; - //transform 'digit' coordinata to dr,f coordinata - - virtual Int_t Transform2toPadRow(Float_t */*xyz*/, Int_t */*index*/) const{return 0;} - //transform rotated to - - virtual Int_t GetPadRow(Float_t *xyz, Int_t *index) const ; - //return pad row of point xyz - xyz is given in coordinate system -(given by index) - //output system is 3 for straight row and 7 for cylindrical row - virtual void XYZtoCRXYZ(Float_t */*xyz*/, - Int_t &/*sector*/, Int_t &/*padrow*/, Int_t /*option*/) const {;} - //transform global position to the position relative to the sector padrow - //if option=0 X calculate absolute calculate sector - //if option=1 X absolute use input sector - //if option=2 X relative to pad row calculate sector - //if option=3 X relative use input sector - - virtual void CRXYZtoXYZ(Float_t */*xyz*/, - const Int_t &/*sector*/, const Int_t & /*padrow*/, Int_t /*option*/) const {;} - //transform relative position to the gloabal position - - virtual void CRTimePadtoYZ(Float_t &/*y*/, Float_t &/*z*/, - const Float_t &/*time*/, const Float_t &/*pad*/, - Int_t /*sector*/, Int_t /*padrow*/ ){;} - //transform position in digit units (time slices and pads) to "normal" - //units (cm) - virtual void CRYZtoTimePad(const Float_t &/*y*/, const Float_t &/*z*/, - Float_t &/*time*/, Float_t &/*pad*/, - Int_t /*sector*/, Int_t /*padrow*/){;} - //transform position in cm to position in digit unit - virtual Int_t CalcResponse(Float_t* /*x*/, Int_t * /*index*/, Int_t /*row*/){return 0;} - //calculate bin response as function of the input position -x and the weight - //if row -pad row is equal -1 calculate response for each pad row - //otherwise it calculate only in given pad row - //return number of valid response bin - virtual void SetDefault(); //set defaut TPCparam - virtual Bool_t Update(); //recalculate and check geometric parameters - virtual Bool_t ReadGeoMatrices(); //read geo matrixes - Bool_t GetStatus() const; //get information about object consistency - Int_t GetIndex(Int_t sector, Int_t row) const; //give index of the given sector and pad row - Int_t GetNSegmentsTotal() const {return fNtRows;} - Double_t GetLowMaxY(Int_t irow) const {return irow*0.;} - Double_t GetUpMaxY(Int_t irow) const {return irow*0;} - //additional geometrical function - for Belikov - - Bool_t AdjustSectorRow(Int_t index, Int_t & sector, Int_t &row) const; //return sector and padrow - //for given index - - void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const; - //set cosinus and sinus of rotation angles for sector isec - Float_t GetAngle(Int_t isec) const; - // void GetChamberPos(Int_t isec, Float_t* xyz) const; - // void GetChamberRot(Int_t isec, Float_t* angles) const; - // - //set sector parameters - // - void SetInnerRadiusLow(Float_t InnerRadiusLow ) { fInnerRadiusLow=InnerRadiusLow;} - void SetOuterRadiusLow(Float_t OuterRadiusLow ) { fOuterRadiusLow=OuterRadiusLow;} - void SetInnerRadiusUp(Float_t InnerRadiusUp) { fInnerRadiusUp= InnerRadiusUp;} - void SetOuterRadiusUp(Float_t OuterRadiusUp) { fOuterRadiusUp= OuterRadiusUp;} - void SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle, - Float_t outershift); - void SetInnerFrameSpace(Float_t frspace) {fInnerFrameSpace = frspace;} - void SetOuterFrameSpace(Float_t frspace) {fOuterFrameSpace = frspace;} - void SetInnerWireMount(Float_t fmount) {fInnerWireMount = fmount;} - void SetOuterWireMount(Float_t fmount) {fOuterWireMount = fmount;} - void SetZLength(Float_t zlength) {fZLength = zlength;} - void SetGeometryType(Int_t type) {fGeometryType = type;} - // - // pad rows geometry - // - void SetRowNLow( Int_t NRowLow){fNRowLow = NRowLow;} - void SetRowNUp1 (Int_t NRowUp1){fNRowUp1 = NRowUp1 ;} //upper sec short pads - void SetRowNUp2 (Int_t NRowUp2){fNRowUp2 = NRowUp2 ;} //upper sec long pads - void SetRowNUp (Int_t NRowUp){fNRowUp = NRowUp ;} - // - //set wire parameters - // - void SetInnerNWires(Int_t nWires){ fNInnerWiresPerPad=nWires;} - void SetInnerDummyWire(Int_t dummy) {fInnerDummyWire = dummy;} - void SetInnerOffWire(Float_t offset) {fInnerOffWire =offset;} - void SetOuter1NWires(Int_t nWires){ fNOuter1WiresPerPad=nWires;} - void SetOuter2NWire(Int_t nWires){ fNOuter2WiresPerPad=nWires;} - void SetOuterDummyWire(Int_t dummy) {fOuterDummyWire = dummy;} - void SetOuterOffWire(Float_t offset) {fOuterOffWire =offset;} - void SetInnerWWPitch( Float_t wwPitch) {fInnerWWPitch = wwPitch;} - void SetRInnerFirstWire(Float_t firstWire){fRInnerFirstWire = firstWire;} - void SetRInnerLastWire(Float_t lastWire){fRInnerLastWire = lastWire;} - void SetOuterWWPitch(Float_t wwPitch){fOuterWWPitch = wwPitch;} - void SetLastWireUp1(Float_t wireUp1){fLastWireUp1 = wireUp1;} - void SetROuterFirstWire(Float_t firstWire){fROuterFirstWire = firstWire;} - void SetROuterLastWire(Float_t lastWire){fROuterLastWire = lastWire;} - // - //set pad parameter - // - void SetInnerPadPitchLength(Float_t PadPitchLength){ fInnerPadPitchLength=PadPitchLength;} - void SetInnerPadPitchWidth(Float_t PadPitchWidth){ fInnerPadPitchWidth = PadPitchWidth;} - void SetInnerPadLength(Float_t PadLength){ fInnerPadLength=PadLength;} - void SetInnerPadWidth(Float_t PadWidth) { fInnerPadWidth=PadWidth;} - void SetOuter1PadPitchLength(Float_t PadPitchLength){ fOuter1PadPitchLength=PadPitchLength;} - void SetOuter2PadPitchLength(Float_t PadPitchLength){ fOuter2PadPitchLength=PadPitchLength;} - void SetOuterPadPitchWidth(Float_t PadPitchWidth){ fOuterPadPitchWidth = PadPitchWidth;} - void SetOuter1PadLength(Float_t PadLength){ fOuter1PadLength=PadLength;} - void SetOuter2PadLength(Float_t PadLength){ fOuter2PadLength=PadLength;} - void SetOuterPadWidth(Float_t PadWidth) { fOuterPadWidth=PadWidth;} - void SetMWPCReadout(Bool_t type) {fBMWPCReadout = type;} - void SetNCrossRows(Int_t rows){fNCrossRows = rows;} - // - //set gas paremeters - // - void SetDiffT(Float_t DiffT){ fDiffT= DiffT;} - void SetDiffL(Float_t DiffL){ fDiffL=DiffL;} - void SetGasGain(Float_t GasGain){ fGasGain=GasGain;} - void SetDriftV(Float_t DriftV){ fDriftV= DriftV;} - void SetOmegaTau(Float_t OmegaTau){ fOmegaTau=OmegaTau;} - void SetAttCoef(Float_t AttCoef){ fAttCoef=AttCoef;} - void SetOxyCont(Float_t OxyCont){ fOxyCont=OxyCont;} - void SetGainSlopesHV(TGraphErrors * gainSlopesHV){ fGainSlopesHV=gainSlopesHV;} - void SetGainSlopesPT(TGraphErrors * gainSlopesPT){ fGainSlopesPT=gainSlopesPT;} - void SetNominalGainSlopes(); - void SetComposition(Float_t c1, Float_t c2, Float_t c3, Float_t c4, Float_t c5, Float_t c6){fComposition[0]=c1; - fComposition[1]=c2; - fComposition[2]=c3; - fComposition[3]=c4; - fComposition[4]=c5; - fComposition[5]=c6;} - void SetFpot(Float_t fpot){fFpot=fpot;} - void SetNprim(Float_t prim){fNprim=prim;} - void SetNtot(Float_t ntot){fNtot=ntot;} - void SetWmean(Float_t wmean){fWmean=wmean;} - void SetExp(Float_t exp){fExp=exp;} - void SetEend(Float_t end){fEend=end;} - void SetBetheBloch(TVectorD *v){ - if (fBetheBloch) delete fBetheBloch; - fBetheBloch=0; - if (v) fBetheBloch=new TVectorD(*v); - } - static TVectorD * GetBetheBlochParamNa49(); - static TVectorD * GetBetheBlochParamAlice(); - static void RegisterBBParam(TVectorD* param, Int_t position); - // - //set electronivc parameters - // - void SetPadCoupling(Float_t PadCoupling){ fPadCoupling=PadCoupling;} - void SetZeroSup(Int_t ZeroSup) { fZeroSup=ZeroSup;} - void SetNoise(Float_t Noise ) { fNoise= Noise;} - void SetChipGain(Float_t ChipGain){ fChipGain= ChipGain;} - void SetChipNorm(Float_t ChipNorm){ fChipNorm= ChipNorm;} - void SetTSample(Float_t TSample) { fTSample=TSample;} - void SetTFWHM(Float_t fwhm) { fTSigma=fwhm/2.35;} - void SetMaxTBin(Int_t maxtbin) { fMaxTBin = maxtbin;} - void SetADCSat(Int_t adcsat) { fADCSat = adcsat;} - void SetADCDynRange(Float_t adcdynrange) {fADCDynRange = adcdynrange;} - // - // High voltage parameters - // - void SetNominalVoltage(Float_t v, UInt_t i) {if (i<72) fNominalVoltage[i]=v;} - void SetMaxVoltageDeviation(Float_t voltage) { fMaxVoltageDeviation=voltage; } - void SetMaxDipVoltage(Float_t voltage) { fMaxDipVoltage=voltage; } - void SetMaxFractionHVbad(Float_t frac ) { fMaxHVfractionBad=frac; } - void SetVoltageDipScanPeriod(Float_t period) { fVoltageDipScanPeriod=period; } - // - //set response parameters - // - void SetNResponseMax(Int_t max) { fNResponseMax = max;} - void SetResponseThreshold(Int_t threshold) {fResponseThreshold = threshold;} - //set L1 parameters - void SetGateDelay(Float_t delay) {fGateDelay = delay;} - void SetL1Delay(Float_t delay) {fL1Delay = delay;} - void SetNTBinsBeforeL1(UShort_t nbins) {fNTBinsBeforeL1 = nbins;} - // - //get sector parameters - // - Float_t GetInnerRadiusLow() const {return fInnerRadiusLow;} - Float_t GetInnerRadiusUp() const {return fInnerRadiusUp;} - Float_t GetOuterRadiusLow() const {return fOuterRadiusLow;} - Float_t GetOuterRadiusUp() const {return fOuterRadiusUp;} - Float_t GetInnerFrameSpace() const {return fInnerFrameSpace;} - Float_t GetOuterFrameSpace() const {return fOuterFrameSpace;} - Float_t GetInnerWireMount() const {return fInnerWireMount;} - Float_t GetOuterWireMount() const {return fOuterWireMount;} - Float_t GetInnerAngle() const ; - Float_t GetInnerAngleShift() const ; - Float_t GetOuterAngle() const ; - Float_t GetOuterAngleShift() const ; - Int_t GetNInnerSector() const {return fNInnerSector;} - Int_t GetNOuterSector() const {return fNOuterSector;} - Int_t GetNSector() const {return fNSector;} - Float_t GetZLength(Int_t sector=0) const; - Int_t GetGeometryType() const {return fGeometryType;} - - // - //get wires parameter - // - Int_t GetInnerNWires() const {return fNInnerWiresPerPad;} - Float_t GetInnerWWPitch() const {return fInnerWWPitch;} - Int_t GetInnerDummyWire() const {return fInnerDummyWire;} - Float_t GetInnerOffWire() const {return fInnerOffWire;} - Float_t GetRInnerFirstWire() const {return fRInnerFirstWire;} - Float_t GetRInnerLastWire() const {return fRInnerLastWire;} - Int_t GetOuter1NWires() const {return fNOuter1WiresPerPad;} - Int_t GetOuter2NWires() const {return fNOuter2WiresPerPad;} - Float_t GetOuterWWPitch() const {return fOuterWWPitch;} - Int_t GetOuterDummyWire() const {return fOuterDummyWire;} - Float_t GetOuterOffWire() const {return fOuterOffWire;} - Float_t GetLastWireUp1() const {return fLastWireUp1;} - Float_t GetROuterFirstWire() const {return fROuterFirstWire;} - Float_t GetROuterLastWire() const {return fROuterLastWire;} - Float_t GetWWPitch(Int_t isector = 0) const { - return ( (isector < fNInnerSector) ? fInnerWWPitch :fOuterWWPitch);} - // - //get pad parameters - // - Float_t GetInnerPadPitchLength() const {return fInnerPadPitchLength;} - Float_t GetInnerPadPitchWidth() const {return fInnerPadPitchWidth;} - Float_t GetInnerPadLength() const {return fInnerPadLength;} - Float_t GetInnerPadWidth() const {return fInnerPadWidth;} - Float_t GetOuter1PadPitchLength() const {return fOuter1PadPitchLength;} - Float_t GetOuter2PadPitchLength() const {return fOuter2PadPitchLength;} - Float_t GetOuterPadPitchWidth() const {return fOuterPadPitchWidth;} - Float_t GetOuter1PadLength() const {return fOuter1PadLength;} - Float_t GetOuter2PadLength() const {return fOuter2PadLength;} - Float_t GetOuterPadWidth() const {return fOuterPadWidth;} - Bool_t GetMWPCReadout() const {return fBMWPCReadout;} - Int_t GetNCrossRows() const {return fNCrossRows;} - Float_t GetPadPitchWidth(Int_t isector = 0) const { - return ( (isector < fNInnerSector) ? fInnerPadPitchWidth :fOuterPadPitchWidth);} - Float_t GetPadPitchLength(Int_t isector = 0, Int_t padrow=0) const - { if (isector < fNInnerSector) return fInnerPadPitchLength; - else return ((padrow [0,4], OROC[0,7] - Int_t GetNPadsPerSegment(Int_t segmentID) const; // get number of pads for a given Anode wire segment - - Float_t GetYInner(Int_t irow) const; // wire length in low sec row - Float_t GetYOuter(Int_t irow) const; // wire length in up sec row - Int_t GetSectorIndex(Float_t angle, Int_t row, Float_t z) const; // get sector index - Float_t GetChamberCenter(Int_t isec, Float_t * center = 0) const; // get readout chamber positions - TGeoHMatrix *GetTrackingMatrix(Int_t isec) const { - return fTrackingMatrix[isec];} - TGeoHMatrix *GetClusterMatrix(Int_t isec) const { - return fClusterMatrix[isec];} - TGeoHMatrix *GetGlobalMatrix(Int_t isec) const { - return fGlobalMatrix[isec];} - Bool_t IsGeoRead(){ return fGlobalMatrix!=0;} - // - //get GAS parameters - // - Float_t GetDiffT() const {return fDiffT;} - Float_t GetDiffL() const {return fDiffL;} - Float_t GetGasGain() const {return fGasGain;} - Float_t GetDriftV() const {return fDriftV;} - Float_t GetOmegaTau() const {return fOmegaTau;} - Float_t GetAttCoef() const {return fAttCoef;} - Float_t GetOxyCont() const {return fOxyCont;} - TGraphErrors * GetGainSlopesHV() const { return fGainSlopesHV;} - TGraphErrors * GetGainSlopesPT() const { return fGainSlopesPT;} - Float_t* GetComposition() {return fComposition;} - Float_t GetFpot()const {return fFpot;} - Float_t GetNprim() const {return fNprim;} - Float_t GetNtot() const {return fNtot;} - Float_t GetWmean()const {return fWmean;} - Float_t GetExp()const {return fExp;} - Float_t GetEend()const {return fEend;} - TVectorD* GetBetheBlochParameters(){return fBetheBloch;} - static Double_t BetheBlochAleph(Double_t bb, Int_t type=0); - // - //get Electronic parameters - // - Float_t GetPadCoupling() const {return fPadCoupling;} - Int_t GetZeroSup() const {return fZeroSup;} - Float_t GetNoise() const {return fNoise;} - Float_t GetChipGain() const {return fChipGain;} - Float_t GetChipNorm() const {return fChipNorm;} - Float_t GetTSample() const {return fTSample;} - Float_t GetZWidth() const {return fZWidth;} - Float_t GetTFWHM() const {return fTSigma*2.35;} - Float_t GetZSigma() const {return fTSigma*fDriftV;} - virtual Float_t GetZOffset() const {return 3*fTSigma*fDriftV;} - Int_t GetMaxTBin() const {return fMaxTBin;} - Int_t GetADCSat() const {return fADCSat;} - Float_t GetADCDynRange() const {return fADCDynRange;} - Float_t GetTotalNormFac() const {return fTotalNormFac;} - Float_t GetNoiseNormFac() const {return fNoiseNormFac;} - // - // High voltage parameters - // - Float_t GetNominalVoltage(UInt_t i) const {return (i<72)?fNominalVoltage[i]:0;} //0-35:IROC, 36-71:OROC - Float_t GetMaxVoltageDeviation() const { return fMaxVoltageDeviation; } - Float_t GetMaxDipVoltage() const { return fMaxDipVoltage; } - Float_t GetMaxFractionHVbad() const { return fMaxHVfractionBad; } - Float_t GetVoltageDipScanPeriod() const { return fVoltageDipScanPeriod; } - - // - // get response data - // - Int_t * GetResBin(Int_t i); - //return response bin i - bin given by padrow [0] pad[1] timebin[2] - Float_t & GetResWeight(Int_t i); - //return weight of response bin i - - // get L1 data - Float_t GetGateDelay() const {return fGateDelay;} - Float_t GetL1Delay() const {return fL1Delay;} - UShort_t GetNTBinsBeforeL1() const {return fNTBinsBeforeL1;} - Float_t GetNTBinsL1() const {return fNTBinsL1;} -protected : - - Bool_t fbStatus; //indicates consistency of the data - //--------------------------------------------------------------------- - // ALICE TPC sector geometry - //-------------------------------------------------------------------- - Float_t fInnerRadiusLow; // lower radius of inner sector-IP - Float_t fInnerRadiusUp; // upper radius of inner sector-IP - Float_t fOuterRadiusUp; // upper radius of outer sector-IP - Float_t fOuterRadiusLow; // lower radius of outer sector-IP - Float_t fInnerAngle; //opening angle of Inner sector - Float_t fInnerAngleShift; //shift of first inner sector center to the 0 - Float_t fOuterAngle; //opening angle of outer sector - Float_t fOuterAngleShift; //shift of first sector center to the 0 - Float_t fInnerFrameSpace; //space for inner frame in the phi direction - Float_t fOuterFrameSpace; //space for outer frame in the phi direction - Float_t fInnerWireMount; //space for wire mount, inner sector - Float_t fOuterWireMount; //space for wire mount, outer sector - Int_t fNInnerSector; //number of inner sectors -calculated - Int_t fNOuterSector; //number of outer sectors -calculated - Int_t fNSector; // total number of sectors -calculated - Float_t fZLength; //length of the drift region of the TPC - Float_t *fRotAngle; //[fNSector] sin and cos of rotation angles for - // diferent sectors -calculated - Int_t fGeometryType; //type of geometry -0 straight rows - // Float_t *fChamberPos; //[fNSector] displacements of the readout chambers - //with respect to the 'idead' geometry - //in local corrdinate system - // Float_t *fChamberRot; //[fNSector] rotation angles of the readout chambers - //with respect to the 'idead' geometry - //in local corrdinate system - TGeoHMatrix **fTrackingMatrix; //![fNSector] transformation matrices of the tracking - //coordinate system - TGeoHMatrix **fClusterMatrix; //![fNSector] transformation matrices of the cluster - //coordinate system - TGeoHMatrix **fGlobalMatrix; //![fNSector] fTrackingMatrix * fClusterMatrix - - //1-cylindrical - //--------------------------------------------------------------------- - // ALICE TPC wires geometry - for GEM we can consider that it is gating - //-------------------------------------------------------------------- - Int_t fNInnerWiresPerPad; //Number of wires per pad - Float_t fInnerWWPitch; //pitch between wires in inner sector - calculated - Int_t fInnerDummyWire; //number of wires without pad readout - Float_t fInnerOffWire; //oofset of first wire to the begining of the sector - Float_t fRInnerFirstWire; //position of the first wire -calculated - Float_t fRInnerLastWire; //position of the last wire -calculated - Float_t fLastWireUp1; //position of the last wire in outer1 sector - Int_t fNOuter1WiresPerPad; //Number of wires per pad - Int_t fNOuter2WiresPerPad; // Number of wires per pad - Float_t fOuterWWPitch; //pitch between wires in outer sector -calculated - Int_t fOuterDummyWire; //number of wires without pad readout - Float_t fOuterOffWire; //oofset of first wire to the begining of the sector - Float_t fROuterFirstWire; //position of the first wire -calulated - Float_t fROuterLastWire; //position of the last wire -calculated - //--------------------------------------------------------------------- - // ALICE TPC pad parameters - //-------------------------------------------------------------------- - Float_t fInnerPadPitchLength; //Inner pad pitch length - Float_t fInnerPadPitchWidth; //Inner pad pitch width - Float_t fInnerPadLength; //Inner pad length - Float_t fInnerPadWidth; //Inner pad width - Float_t fOuter1PadPitchLength; //Outer pad pitch length - Float_t fOuter2PadPitchLength; //Outer pad pitch length - Float_t fOuterPadPitchWidth; //Outer pad pitch width - Float_t fOuter1PadLength; //Outer pad length - Float_t fOuter2PadLength; //Outer pad length - Float_t fOuterPadWidth; //Outer pad width - Bool_t fBMWPCReadout; //indicate wire readout - kTRUE or GEM readout -kFALSE - Int_t fNCrossRows; //number of rows to crostalk calculation - - Int_t fNRowLow; //number of pad rows per low sector -set - Int_t fNRowUp1; //number of short pad rows per sector up -set - Int_t fNRowUp2; //number of long pad rows per sector up -set - Int_t fNRowUp; //number of pad rows per sector up -calculated - Int_t fNtRows; //total number of rows in TPC -calculated - Float_t fPadRowLow[600]; //Lower sector, pad row radii -calculated - Float_t fPadRowUp[600]; //Upper sector, pad row radii -calculated - Int_t fNPadsLow[600]; //Lower sector, number of pads per row -calculated - Int_t fNPadsUp[600]; //Upper sector, number of pads per row -calculated - Float_t fYInner[600]; //Inner sector, wire-length - Float_t fYOuter[600]; //Outer sector, wire-length - //--------------------------------------------------------------------- - // ALICE TPC Gas Parameters - //-------------------------------------------------------------------- - Float_t fDiffT; //tangencial diffusion constant - Float_t fDiffL; //longutudinal diffusion constant - Float_t fGasGain; //gas gain constant - Float_t fDriftV; //drift velocity constant - Float_t fOmegaTau; //omega tau ExB coeficient - Float_t fAttCoef; //attachment coefitients - Float_t fOxyCont; //oxygen content - Float_t fFpot; // first ionisation potential - Float_t fNprim; // number of primary electrons/cm - Float_t fNtot; //total number of electrons/c (MIP) - Float_t fWmean; // mean energy for electron/ion pair - Float_t fExp; // de = f(E) - energy loss parametrization - Float_t fEend; // upper cutoff for de generation - TVectorD* fBetheBloch; // Bethe-Bloch parametrization - // gas mixture composition - Float_t fComposition[6]; - TGraphErrors * fGainSlopesHV; // graph with the gain slope as function of HV - per chamber - TGraphErrors * fGainSlopesPT; // graph with the gain slope as function of P/T - per chamber - //--------------------------------------------------------------------- - // ALICE TPC Electronics Parameters - //-------------------------------------------------------------------- - Float_t fPadCoupling; //coupling factor ration of anode signal - //and total pads signal - Int_t fZeroSup; //zero suppresion constant - Float_t fNoise; //noise sigma constant - Float_t fChipGain; //preamp shaper constant - Float_t fChipNorm; //preamp shaper normalisation - Float_t fTSample; //sampling time - Float_t fZWidth; //derived value calculated using TSample and driftw -computed - Float_t fTSigma; //width of the Preamp/Shaper function - Int_t fMaxTBin; //maximum time bin number - Int_t fADCSat; //saturation value of ADC (10 bits) - Float_t fADCDynRange; //input dynamic range (mV) - Float_t fTotalNormFac; //full normalisation factor - calculated - Float_t fNoiseNormFac; //normalisation factor to transform noise in electron to ADC channel - //--------------------------------------------------------------------- - // High voltage parameters - //--------------------------------------------------------------------- - Float_t fNominalVoltage[72]; //nominal voltage in [V] per chamber - Float_t fMaxVoltageDeviation; // maximum voltage deviation from nominal voltage before a chamber is masked - Float_t fMaxDipVoltage; // maximum voltage deviation from median before a dip event is marked - Float_t fMaxHVfractionBad; // maximum fraction of bad HV entries (deviation from Median) before a chamber is marked bad - Float_t fVoltageDipScanPeriod; // scanning period to detect a high volrage dip: event time stamp +- fVoltageDipScanPeriod [sec] - - //--------------------------------------------------------------------- - // ALICE TPC response data - //--------------------------------------------------------------------- - Int_t fNResponseMax; //maximal dimension of response - Float_t fResponseThreshold; //threshold for accepted response - Int_t fCurrentMax; //!current maximal dimension -calulated - Int_t *fResponseBin; //!array with bins -calulated - Float_t *fResponseWeight; //!array with response -calulated - - //--------------------------------------------------------------------- - // ALICE TPC L1 Parameters - //-------------------------------------------------------------------- - Float_t fGateDelay; //Delay of L1 arrival for the TPC gate signal - Float_t fL1Delay; //Delay of L1 arrival for the TPC readout - UShort_t fNTBinsBeforeL1; //Number of time bins before L1 arrival which are being read out - Float_t fNTBinsL1; //Overall L1 delay in time bins - protected: - static TObjArray *fBBParam; // array of the Bethe-Bloch parameters. - private: - AliTPCParam(const AliTPCParam &); - AliTPCParam & operator=(const AliTPCParam &); - - void CleanGeoMatrices(); - - ClassDef(AliTPCParam,8) //parameter object for set:TPC -}; - - -inline Int_t * AliTPCParam::GetResBin(Int_t i) -{ - //return response bin i - bin given by padrow [0] pad[1] timebin[2] - if (i=0 && index[1]MasterToLocal(xyzmaster,xyzlocal); - xyz[0] = xyzlocal[0]; - xyz[1] = xyzlocal[1]; - xyz[2] = xyzlocal[2]; - index[0]=2; -} - - - - -inline void AliTPCParam::Transform2to1(Float_t *xyz, Int_t *index) const -{ - // - //transformation from rotated coordinates to global coordinates - // - Float_t cos,sin; - AdjustCosSin(index[1],cos,sin); - Float_t x1=xyz[0]*cos - xyz[1]*sin; - Float_t y1=xyz[0]*sin + xyz[1]*cos; - xyz[0]=x1; - xyz[1]=y1; - xyz[2]=fZLength-xyz[2]; - if (index[1]=(fNInnerSector>>1)) xyz[2]*=-1.;} - else - {if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[2]*=-1;} - index[0]=1; -} - -inline void AliTPCParam::Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const -{ - //transform rotated coordinats of one sector to rotated - //coordinates relative to another sector - Transform2to1(xyz,index); - Transform1to2(xyz,oindex); - index[0]=2; - index[1]=oindex[1]; -} - -inline Float_t AliTPCParam::Transform2to2NearestWire(Float_t *xyz, Int_t *index) const -{ - // - // asigns the x-position of the closest wire to xyz[0], return the - // electron to closest wire distance - // - Float_t xnew,dx; - if (index[1]0) && (xyz[1]<0) ) angle=2*TMath::Pi()+angle; - } - xyz[0]=r; - xyz[1]=angle; - index[0]=5; -} - -inline void AliTPCParam::Transform5to2( Float_t *xyz, Int_t *index) const -{ - // - //transform [r,rphi,z] to [x,y,z] - // - Float_t r = xyz[0]; - Float_t angle= xyz[1]; - xyz[0]=r*TMath::Cos(angle); - xyz[1]=r*TMath::Sin(angle); - index[0]=2; -} - -inline void AliTPCParam::Transform4to8(Float_t *xyz, Int_t *index) const -{ - // - //transform xyz coordinates to 'digit' coordinates - // - - if (index[1]=(fNInnerSector>>1)) xyz[1]*=-1.; - } - else { - if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1; - } - - xyz[2]/=fZWidth; - if (index[1]=(fNInnerSector>>1)) xyz[1]*=-1.; - } - else { - if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1; - } - - xyz[2]*=fZWidth; - if (index[1]35&§or<54)) return fZLength-0.275; - else return fZLength-0.302; -} -#endif diff --git a/tpc/dirty/AliTPCParamSR.cxx b/tpc/dirty/AliTPCParamSR.cxx deleted file mode 100644 index a112df279b8ed..0000000000000 --- a/tpc/dirty/AliTPCParamSR.cxx +++ /dev/null @@ -1,605 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -/////////////////////////////////////////////////////////////////////// -// Manager and of geomety classes for set: TPC // -// // -// !sectors are numbered from 0 // -// !pad rows are numbered from 0 // -// -// 27.7. - AliTPCPaaramSr object for TPC -// TPC with straight pad rows -// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // -// // -/////////////////////////////////////////////////////////////////////// - -//#include -#include - -#include "AliTPCPRF2D.h" -#include "AliTPCParamSR.h" -#include "AliTPCRF1D.h" -#include "TH1.h" -#include "AliTPCROC.h" -#include "TGeoManager.h" - -ClassImp(AliTPCParamSR) -static const Int_t kMaxRows=600; -static const Float_t kEdgeSectorSpace = 2.5; -static const Float_t kFacSigmaPadRow=3.; -static const Float_t kFacSigmaPad=3.; -static const Float_t kFacSigmaTime=3.; - - -AliTPCParamSR::AliTPCParamSR() - :AliTPCParam(), - fInnerPRF(0), - fOuter1PRF(0), - fOuter2PRF(0), - fTimeRF(0), - fFacSigmaPadRow(0), - fFacSigmaPad(0), - fFacSigmaTime(0) -{ - // - //constructor set the default parameters - // - - fFacSigmaPadRow = Float_t(kFacSigmaPadRow); - fFacSigmaPad = Float_t(kFacSigmaPad); - fFacSigmaTime = Float_t(kFacSigmaTime); - SetDefault(); - Update(); -} - -AliTPCParamSR::~AliTPCParamSR() -{ - // - //destructor destroy some dynmicaly alocated variables - if (fInnerPRF != 0) delete fInnerPRF; - if (fOuter1PRF != 0) delete fOuter1PRF; - if (fOuter2PRF != 0) delete fOuter2PRF; - if (fTimeRF != 0) delete fTimeRF; -} - -void AliTPCParamSR::SetDefault() -{ - //set default TPC param - fbStatus = kFALSE; - AliTPCParam::SetDefault(); -} - -Int_t AliTPCParamSR::CalcResponse(Float_t* xyz, Int_t * index, Int_t row) -{ - // - //calculate bin response as function of the input position -x - //return number of valid response bin - // - //we suppose that coordinate is expressed in float digits - // it's mean coordinate system 8 - //xyz[0] - float padrow xyz[1] is float pad (center pad is number 0) and xyz[2] is float time bin - //xyz[3] - electron time in float time bin format - if ( (fInnerPRF==0)||(fOuter1PRF==0)||(fOuter2PRF==0) ||(fTimeRF==0) ){ - Error("AliTPCParamSR", "response function was not adjusted"); - return -1; - } - - Float_t sfpadrow; // sigma of response function - Float_t sfpad; // sigma of - Float_t sftime= fFacSigmaTime*fTimeRF->GetSigma()/fZWidth; //3 sigma of time response - if (index[1]GetSigmaY()/fInnerPadPitchLength; - sfpad =fFacSigmaPad*fInnerPRF->GetSigmaX()/fInnerPadPitchWidth; - } - else{ - if(rowGetSigmaY()/fOuter1PadPitchLength; - sfpad =fFacSigmaPad*fOuter1PRF->GetSigmaX()/fOuterPadPitchWidth;} - else{ - sfpadrow =fFacSigmaPadRow*fOuter2PRF->GetSigmaY()/fOuter2PadPitchLength; - sfpad =fFacSigmaPad*fOuter2PRF->GetSigmaX()/fOuterPadPitchWidth; - } - } - - Int_t fpadrow = TMath::Max(TMath::Nint(index[2]+xyz[0]-sfpadrow),0); //"first" padrow - Int_t fpad = TMath::Nint(xyz[1]-sfpad); //first pad - Int_t ftime = TMath::Max(TMath::Nint(xyz[2]+xyz[3]+GetZOffset()/GetZWidth()-sftime),0); // first time - Int_t lpadrow = TMath::Min(TMath::Nint(index[2]+xyz[0]+sfpadrow),fpadrow+19); //"last" padrow - lpadrow = TMath::Min(GetNRow(index[1])-1,lpadrow); - Int_t lpad = TMath::Min(TMath::Nint(xyz[1]+sfpad),fpad+19); //last pad - Int_t ltime = TMath::Min(TMath::Nint(xyz[2]+xyz[3]+GetZOffset()/GetZWidth()+sftime),ftime+19); // last time - ltime = TMath::Min(ltime,GetMaxTBin()-1); - // - Int_t npads = GetNPads(index[1],row); - if (fpad<-npads/2) - fpad = -npads/2; - if (lpad>npads/2) - lpad= npads/2; - if (ftime<0) ftime=0; - // - if (row>=0) { //if we are interesting about given pad row - if (fpadrow<=row) fpadrow =row; - else - return 0; - if (lpadrow>=row) lpadrow = row; - else - return 0; - } - - - Float_t padres[20][20]; //I don't expect bigger number of bins - Float_t timeres[20]; - Int_t cindex3=0; - Int_t cindex=0; - Float_t cweight = 0; - if (fpadrow>=0) { - //calculate padresponse function - Int_t padrow, pad; - for (padrow = fpadrow;padrow<=lpadrow;padrow++) - for (pad = fpad;pad<=lpad;pad++){ - Float_t dy = (xyz[0]+Float_t(index[2]-padrow)); - Float_t dx = (xyz[1]+Float_t(pad)); - if (index[1]GetPRF(dx*fInnerPadPitchWidth,dy*fInnerPadPitchLength); - else{ - if(rowGetPRF(dx*fOuterPadPitchWidth,dy*fOuter1PadPitchLength);} - else{ - padres[padrow-fpadrow][pad-fpad]=fOuter2PRF->GetPRF(dx*fOuterPadPitchWidth,dy*fOuter2PadPitchLength);}}} - //calculate time response function - Int_t time; - for (time = ftime;time<=ltime;time++) - timeres[time-ftime]= fTimeRF->GetRF((-xyz[2]-xyz[3]+Float_t(time))*fZWidth); - //write over threshold values to stack - for (padrow = fpadrow;padrow<=lpadrow;padrow++) - for (pad = fpad;pad<=lpad;pad++) - for (time = ftime;time<=ltime;time++){ - cweight = timeres[time-ftime]*padres[padrow-fpadrow][pad-fpad]; - if (cweight>fResponseThreshold) { - fResponseBin[cindex3]=padrow; - fResponseBin[cindex3+1]=pad; - fResponseBin[cindex3+2]=time; - cindex3+=3; - fResponseWeight[cindex]=cweight; - cindex++; - } - } - } - fCurrentMax=cindex; - return fCurrentMax; -} - -void AliTPCParamSR::TransformTo8(Float_t *xyz, Int_t *index) const -{ - // - // transformate point to digit coordinate - // - if (index[0]==0) Transform0to1(xyz,index); - if (index[0]==1) Transform1to2(xyz,index); - if (index[0]==2) Transform2to3(xyz,index); - if (index[0]==3) Transform3to4(xyz,index); - if (index[0]==4) Transform4to8(xyz,index); -} - -void AliTPCParamSR::TransformTo2(Float_t *xyz, Int_t *index) const -{ - // - //transformate point to rotated coordinate - // - //we suppose that - if (index[0]==0) Transform0to1(xyz,index); - if (index[0]==1) Transform1to2(xyz,index); - if (index[0]==4) Transform4to3(xyz,index); - if (index[0]==8) { //if we are in digit coordinate system transform to global - Transform8to4(xyz,index); - Transform4to3(xyz,index); - } -} - -void AliTPCParamSR::CRXYZtoXYZ(Float_t *xyz, - const Int_t §or, const Int_t & padrow, Int_t option) const -{ - //transform relative coordinates to absolute - Bool_t rel = ( (option&2)!=0); - Int_t index[3]={sector,padrow,0}; - if (rel==kTRUE) Transform4to3(xyz,index);//if the position is relative to pad row - Transform2to1(xyz,index); -} - -void AliTPCParamSR::XYZtoCRXYZ(Float_t *xyz, - Int_t §or, Int_t & padrow, Int_t option) const -{ - //transform global position to the position relative to the sector padrow - //if option=0 X calculate absolute calculate sector - //if option=1 X absolute use input sector - //if option=2 X relative to pad row calculate sector - //if option=3 X relative use input sector - //!!!!!!!!! WE start to calculate rows from row = 0 - Int_t index[3]; - Bool_t rel = ( (option&2)!=0); - - //option 0 and 2 means that we don't have information about sector - if ((option&1)==0) Transform0to1(xyz,index); //we calculate sector number - else - index[0]=sector; - Transform1to2(xyz,index); - Transform2to3(xyz,index); - //if we store relative position calculate position relative to pad row - if (rel==kTRUE) Transform3to4(xyz,index); - sector = index[0]; - padrow = index[1]; -} - -Float_t AliTPCParamSR::GetPrimaryLoss(Float_t */*x*/, Int_t *index, Float_t *angle) -{ - // - // - Float_t padlength=GetPadPitchLength(index[1]); - Float_t a1=TMath::Sin(angle[0]); - a1*=a1; - Float_t a2=TMath::Sin(angle[1]); - a2*=a2; - Float_t length =padlength*TMath::Sqrt(1+a1+a2); - return length*fNPrimLoss; -} - -Float_t AliTPCParamSR::GetTotalLoss(Float_t */*x*/, Int_t *index, Float_t *angle) -{ - // - // - Float_t padlength=GetPadPitchLength(index[1]); - Float_t a1=TMath::Sin(angle[0]); - a1*=a1; - Float_t a2=TMath::Sin(angle[1]); - a2*=a2; - Float_t length =padlength*TMath::Sqrt(1+a1+a2); - return length*fNTotalLoss; - -} - - -void AliTPCParamSR::GetClusterSize(Float_t *x, Int_t *index, Float_t */*angle*/, Int_t /*mode*/, Float_t *sigma) -{ - // - //return cluster sigma2 (x,y) for particle at position x - // in this case x coordinata is in drift direction - //and y in pad row direction - //we suppose that input coordinate system is digit system - - Float_t xx; - Float_t lx[3] = {x[0],x[1],x[2]}; - Int_t li[3] = {index[0],index[1],index[2]}; - TransformTo2(lx,li); - // Float_t sigmadiff; - sigma[0]=0; - sigma[1]=0; - - xx = lx[2]; //calculate drift length in cm - if (xx>0) { - sigma[0]+= xx*GetDiffL()*GetDiffL(); - sigma[1]+= xx*GetDiffT()*GetDiffT(); - } - - - //sigma[0]=sigma[1]=0; - if (GetTimeRF()!=0) sigma[0]+=GetTimeRF()->GetSigma()*GetTimeRF()->GetSigma(); - if ( (index[1]GetSigmaX()*GetInnerPRF()->GetSigmaX(); - if ( (index[1]>=fNInnerSector) &&(index[2]GetSigmaX()*GetOuter1PRF()->GetSigmaX(); - if( (index[1]>=fNInnerSector) &&(index[2]>=fNRowUp1) && (GetOuter2PRF()!=0)) - sigma[1]+=GetOuter2PRF()->GetSigmaX()*GetOuter2PRF()->GetSigmaX(); - - - sigma[0]/= GetZWidth()*GetZWidth(); - sigma[1]/=GetPadPitchWidth(index[0])*GetPadPitchWidth(index[0]); -} - - - - -void AliTPCParamSR::GetSpaceResolution(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/, - Float_t /*amplitude*/, Int_t /*mode*/, Float_t */*sigma*/) -{ - // - // - // - -} -Float_t AliTPCParamSR::GetAmp(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/) -{ - // - // - // - return 0; -} - -Float_t * AliTPCParamSR::GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle) -{ - // - //calculate angle of track to padrow at given position - // for given magnetic field and momentum of the particle - // - - TransformTo2(x,index); - AliDetectorParam::GetAnglesAccMomentum(x,index,momentum,angle); - Float_t addangle = TMath::ASin(x[1]/GetPadRowRadii(index[1],index[2])); - angle[1] +=addangle; - return angle; -} - - -Bool_t AliTPCParamSR::Update() -{ - Int_t i; - if (AliTPCParam::Update()==kFALSE) return kFALSE; - fbStatus = kFALSE; - - Float_t firstrow = fInnerRadiusLow + 1.575; - for( i= 0;iGetNPads(0,i) ; // ROC implement - } - // cross talk rows - fYInner[0]=(fPadRowLow[0]-fInnerPadPitchLength)*tan(fInnerAngle/2.)-fInnerWireMount; - fYInner[fNRowLow+1]=(fPadRowLow[fNRowLow-1]+fInnerPadPitchLength)*tan(fInnerAngle/2.)-fInnerWireMount; - firstrow = fOuterRadiusLow + 1.6; - for(i=0;iGetNPads(36,i) ; // ROC implement - if(i==fNRowUp1-1) { - fLastWireUp1=fPadRowUp[i] +0.625; - firstrow = fPadRowUp[i] + 0.5*(fOuter1PadPitchLength+fOuter2PadPitchLength); - } - } - else - { - Float_t x = firstrow + fOuter2PadPitchLength*(Float_t)(i-64); - fPadRowUp[i]=x; - //Float_t y =(x-0.5*fOuter2PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount- - // fOuterPadPitchWidth/2.; - //fNPadsUp[i] = 1+2*(Int_t)(y/fOuterPadPitchWidth) ; - fNPadsUp[i] = AliTPCROC::Instance()->GetNPads(36,i) ; // ROC implement - } - fYOuter[i+1] = fPadRowUp[i]*tan(fOuterAngle/2.)-fOuterWireMount; - } - // cross talk rows - fYOuter[0]=(fPadRowUp[0]-fOuter1PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount; - fYOuter[fNRowUp+1]=(fPadRowUp[fNRowUp-1]+fOuter2PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount; - fNtRows = fNInnerSector*fNRowLow+fNOuterSector*fNRowUp; - fbStatus = kTRUE; - return kTRUE; -} -Float_t AliTPCParamSR::GetYInner(Int_t irow) const -{ - return fYInner[irow]; -} -Float_t AliTPCParamSR::GetYOuter(Int_t irow) const -{ - return fYOuter[irow]; -} - -void AliTPCParamSR::Streamer(TBuffer &R__b) -{ - // Stream an object of class AliTPC. - - if (R__b.IsReading()) { - Version_t R__v = R__b.ReadVersion(); if (R__v) { } - // TObject::Streamer(R__b); - AliTPCParam::Streamer(R__b); - // if (R__v < 2) return; - Update(); - if (gGeoManager) ReadGeoMatrices(); - } else { - R__b.WriteVersion(AliTPCParamSR::IsA()); - //TObject::Streamer(R__b); - AliTPCParam::Streamer(R__b); - } -} -Int_t AliTPCParamSR::CalcResponseFast(Float_t* xyz, Int_t * index, Int_t row, Float_t phase) -{ - // - //calculate bin response as function of the input position -x - //return number of valid response bin - // - //we suppose that coordinate is expressed in float digits - // it's mean coordinate system 8 - //xyz[0] - electron position w.r.t. pad center, normalized to pad length, - //xyz[1] is float pad (center pad is number 0) and xyz[2] is float time bin - //xyz[3] - electron time in float time bin format - if ( (fInnerPRF==0)||(fOuter1PRF==0)||(fOuter2PRF==0) ||(fTimeRF==0) ){ - Error("AliTPCParamSR", "response function was not adjusted"); - return -1; - } - - const Int_t kpadn = 500; - const Float_t kfpadn = 500.; - const Int_t ktimen = 500; - const Float_t kftimen = 500.; - const Int_t kpadrn = 500; - const Float_t kfpadrn = 500.; - - - - static Float_t prfinner[2*kpadrn][5*kpadn]; //pad divided by 50 - static Float_t prfouter1[2*kpadrn][5*kpadn]; //prfouter division - static Float_t prfouter2[2*kpadrn][5*kpadn]; - static Float_t kTanMax =0; - - static Float_t rftime[5*ktimen]; //time division - static Int_t blabla=0; - static Float_t zoffset=0; - static Float_t zwidth=0; - static Float_t zoffset2=0; - static TH1F * hdiff=0; - static TH1F * hdiff1=0; - static TH1F * hdiff2=0; - - if (blabla==0) { //calculate Response function - only at the begginning - kTanMax = TMath::ATan(10.*TMath::DegToRad()); - hdiff =new TH1F("prf_diff","prf_diff",10000,-1,1); - hdiff1 =new TH1F("no_repsonse1","no_response1",10000,-1,1); - hdiff2 =new TH1F("no_response2","no_response2",10000,-1,1); - - blabla=1; - zoffset = GetZOffset(); - zwidth = fZWidth; - zoffset2 = zoffset/zwidth; - for (Int_t i=0;i<5*ktimen;i++){ - rftime[i] = fTimeRF->GetRF(((i-2.5*kftimen)/kftimen)*zwidth+zoffset); - } - for (Int_t i=0;i<5*kpadn;i++){ - for (Int_t j=0;j<2*kpadrn;j++){ - prfinner[j][i] = - fInnerPRF->GetPRF((i-2.5*kfpadn)/kfpadn - *fInnerPadPitchWidth,(j-kfpadrn)/kfpadrn*fInnerPadPitchLength); - prfouter1[j][i] = - fOuter1PRF->GetPRF((i-2.5*kfpadn)/kfpadn - *fOuterPadPitchWidth,(j-kfpadrn)/kfpadrn*fOuter1PadPitchLength); - - // - prfouter2[j][i] = - fOuter2PRF->GetPRF((i-2.5*kfpadn)/kfpadn - *fOuterPadPitchWidth,(j-kfpadrn)/kfpadrn*fOuter2PadPitchLength); - } - } - } // the above is calculated only once - - // calculate central padrow, pad, time - Int_t npads = GetNPads(index[1],index[3]-1); - Int_t cpadrow = index[2]; // electrons are here - Int_t cpad = TMath::Nint(xyz[1]); - Int_t ctime = TMath::Nint(xyz[2]+zoffset2+xyz[3]); - //calulate deviation - Float_t dpadrow = xyz[0]; - Float_t dpad = xyz[1]-cpad; - Float_t dtime = xyz[2]+zoffset2+xyz[3]-ctime+phase*0.25; - Int_t cindex =0; - Int_t cindex3 =0; - Int_t maxt =GetMaxTBin(); - - Int_t fpadrow; - Int_t lpadrow; - - if (row>=0) { //if we are interesting about given pad row - fpadrow = row-cpadrow; - lpadrow = row-cpadrow; - }else{ - fpadrow = (index[2]>1) ? -1 :0; - lpadrow = (index[2] -npads/2+1) ? -2: -npads/2-cpad; - Int_t lpad = (cpad < npads/2-2) ? 2: npads/2-1-cpad; - Int_t ftime = (ctime>1) ? -2: -ctime; - Int_t ltime = (ctime=2*kpadrn)) - continue; - // pad angular correction - Float_t angle = 0.; - if (npads != 0) - angle = kTanMax*2.*(cpad+0.5)/Float_t(npads); - Float_t dpadangle =0; - if (index[1]fResponseThreshold) { - fResponseBin[cindex3++]=cpadrow+ipadrow; - fResponseBin[cindex3++]=cpad+ipad; - fResponseBin[cindex3++]=ctime+itime; - fResponseWeight[cindex++]=cweight2; - } - atime-=ktimen; - } - apad-= kpadn; - } - apadrow-=kpadrn; - } - fCurrentMax=cindex; - return fCurrentMax; - -} - - - - - - - diff --git a/tpc/dirty/AliTPCParamSR.h b/tpc/dirty/AliTPCParamSR.h deleted file mode 100644 index 534b5bd1a8563..0000000000000 --- a/tpc/dirty/AliTPCParamSR.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef TPCParamSR_H -#define TPCParamSR_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id$ */ - -//////////////////////////////////////////////// -// Manager class for TPC parameters // -//////////////////////////////////////////////// -#include "AliTPCParam.h" - -class AliTPCRF1D; -class AliTPCPRF2D; - -class AliTPCParamSR : public AliTPCParam { -public: - AliTPCParamSR(); - virtual ~AliTPCParamSR(); - - Int_t CalcResponse(Float_t* x, Int_t * index, Int_t row); - Int_t CalcResponseFast(Float_t* x, Int_t * index, Int_t row,Float_t phase); - //calculate bin response as function of the input position -x - //return number of valid response bin - - - void XYZtoCRXYZ(Float_t *xyz, - Int_t §or, Int_t &padrow, Int_t option=3) const; - //transform global position to the position relative to the sector padrow - //if option=0 X calculate absolute calculate sector - //if option=1 X absolute use input sector - //if option=2 X relative to pad row calculate sector - //if option=3 X relative use input sector - - void CRXYZtoXYZ(Float_t *xyz, - const Int_t §or, const Int_t & padrow, Int_t option=3) const; - //transform relative position to the gloabal position - void TransformTo8(Float_t *xyz, Int_t *index) const; - void TransformTo2(Float_t *xyz, Int_t *index) const; - Bool_t Update(); //recalculate and check geometric parameters - void SetDefault(); //set default parameters - void SetInnerPRF(AliTPCPRF2D * prf) {fInnerPRF = prf;} - void SetOuter1PRF(AliTPCPRF2D * prf) {fOuter1PRF = prf;} //e.k - void SetOuter2PRF(AliTPCPRF2D * prf) {fOuter2PRF = prf;} //e.k - void SetTimeRF(AliTPCRF1D * timerf) {fTimeRF = timerf;} - - AliTPCPRF2D * GetInnerPRF() const {return fInnerPRF;} - AliTPCPRF2D * GetOuter1PRF() const {return fOuter1PRF;} //e.k - AliTPCPRF2D * GetOuter2PRF() const {return fOuter2PRF;} //e.k - AliTPCRF1D * GetTimeRF() const {return fTimeRF;} - void SetFacSigmaPadRow(Float_t fac=3.) {fFacSigmaPadRow=fac;} - void SetFacSigmaPad(Float_t fac=3.) {fFacSigmaPad=fac;} - void SetFacSigmaTime(Float_t fac=3.) {fFacSigmaTime=fac;} - - // Float_t GetPadRowRadiiLow(Int_t irow) const; - // Float_t GetPadRowRadiiUp(Int_t irow) const; - Float_t GetYInner(Int_t irow) const; //e,k - Float_t GetYOuter(Int_t irow) const; //e.k - - virtual Float_t GetPrimaryLoss(Float_t *x, Int_t *index, Float_t *angle); - virtual Float_t GetTotalLoss(Float_t *x, Int_t *index, Float_t *angle); - - virtual void GetClusterSize(Float_t *x, Int_t *index, Float_t *angle, Int_t mode, Float_t *sigma); - virtual void GetSpaceResolution(Float_t *x, Int_t *index, Float_t *angle, Float_t amplitude, Int_t mode,Float_t *sigma); - virtual Float_t GetAmp(Float_t *x, Int_t *index, Float_t *angle); - virtual Float_t * GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle); - -protected: - AliTPCPRF2D * fInnerPRF; //pad response function for inner sector - AliTPCPRF2D * fOuter1PRF; //pad response function for outer sector - AliTPCPRF2D * fOuter2PRF; - AliTPCRF1D * fTimeRF; //time response function object - Float_t fFacSigmaPadRow; //factor-how many sigma of response I accept - Float_t fFacSigmaPad; //factor-how many sigma of response I accept - Float_t fFacSigmaTime; //factor-how many sigma of response I accept - -private: - AliTPCParamSR(const AliTPCParamSR ¶m); // copy constructor - AliTPCParamSR &operator = (const AliTPCParamSR & param); //assignment operator - - ClassDef(AliTPCParamSR,2) //parameter object for set:TPC -}; - -#endif - - - - - - diff --git a/tpc/dirty/AliTPCRF1D.cxx b/tpc/dirty/AliTPCRF1D.cxx deleted file mode 100644 index 4e0243191bd1f..0000000000000 --- a/tpc/dirty/AliTPCRF1D.cxx +++ /dev/null @@ -1,404 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - - -//----------------------------------------------------------------------------- -// -// -// -// Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk -// -// Declaration of class AliTPCRF1D -// -//----------------------------------------------------------------------------- - -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "AliTPCRF1D.h" - -extern TStyle * gStyle; - -Int_t AliTPCRF1D::fgNRF=100; //default number of interpolation points -Float_t AliTPCRF1D::fgRFDSTEP=0.01; //default step in cm - -static Double_t funGauss(Double_t *x, Double_t * par) -{ - //Gauss function -needde by the generic function object - return TMath::Exp(-(x[0]*x[0])/(2*par[0]*par[0])); -} - -static Double_t funCosh(Double_t *x, Double_t * par) -{ - //Cosh function -needde by the generic function object - return 1/TMath::CosH(3.14159*x[0]/(2*par[0])); -} - -static Double_t funGati(Double_t *x, Double_t * par) -{ - //Gati function -needde by the generic function object - Float_t k3=par[1]; - Float_t k3R=TMath::Sqrt(k3); - Float_t k2=(TMath::Pi()/2)*(1-k3R/2.); - Float_t k1=k2*k3R/(4*TMath::ATan(k3R)); - Float_t l=x[0]/par[0]; - Float_t tan2=TMath::TanH(k2*l); - tan2*=tan2; - Float_t res = k1*(1-tan2)/(1+k3*tan2); - return res; -} - -/////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////// - -ClassImp(AliTPCRF1D) - - -AliTPCRF1D::AliTPCRF1D(Bool_t direct,Int_t np,Float_t step) - :TObject(), - fNRF(0), - fDSTEPM1(0.), - fcharge(0), - forigsigma(0.), - fpadWidth(3.5), - fkNorm(0.5), - fInteg(0.), - fGRF(0), - fSigma(0.), - fOffset(0.), - fDirect(kFALSE), - fPadDistance(0.) -{ - //default constructor for response function object - fDirect=direct; - if (np!=0)fNRF = np; - else (fNRF=fgNRF); - fcharge = new Float_t[fNRF]; - if (step>0) fDSTEPM1=1./step; - else fDSTEPM1 = 1./fgRFDSTEP; - for(Int_t i=0;i<5;i++) { - funParam[i]=0.; - fType[i]=0; - } - -} - -AliTPCRF1D::AliTPCRF1D(const AliTPCRF1D &prf) - :TObject(prf), - fNRF(prf.fNRF), - fDSTEPM1(prf.fDSTEPM1), - fcharge(0), - forigsigma(prf.forigsigma), - fpadWidth(prf.fpadWidth), - fkNorm(prf.fkNorm), - fInteg(prf.fInteg), - fGRF(new TF1(*(prf.fGRF))), - fSigma(prf.fSigma), - fOffset(prf.fOffset), - fDirect(prf.fDirect), - fPadDistance(prf.fPadDistance) -{ - // - // - for(Int_t i=0;i<5;i++) { - funParam[i]=0.; - fType[i]=0; - } - fcharge = new Float_t[fNRF]; - memcpy(fcharge,prf.fcharge, fNRF*sizeof(Float_t)); - - //PH Change the name (add 0 to the end) - TString s(fGRF->GetName()); - s+="0"; - fGRF->SetName(s.Data()); -} - -AliTPCRF1D & AliTPCRF1D::operator = (const AliTPCRF1D &prf) -{ - if(this!=&prf) { - TObject::operator=(prf); - fNRF=prf.fNRF; - fDSTEPM1=prf.fDSTEPM1; - delete [] fcharge; - fcharge = new Float_t[fNRF]; - memcpy(fcharge,prf.fcharge, fNRF*sizeof(Float_t)); - forigsigma=prf.forigsigma; - fpadWidth=prf.fpadWidth; - fkNorm=prf.fkNorm; - fInteg=prf.fInteg; - delete fGRF; - fGRF=new TF1(*(prf.fGRF)); - //PH Change the name (add 0 to the end) - TString s(fGRF->GetName()); - s+="0"; - fGRF->SetName(s.Data()); - fSigma=prf.fSigma; - fOffset=prf.fOffset; - fDirect=prf.fDirect; - fPadDistance=prf.fPadDistance; - } - return *this; -} - - - -AliTPCRF1D::~AliTPCRF1D() -{ - // - delete [] fcharge; - delete fGRF; -} - -Float_t AliTPCRF1D::GetRF(Float_t xin) -{ - //function which return response - //for the charge in distance xin - //return linear aproximation of RF - Float_t x = (xin-fOffset)*fDSTEPM1+fNRF/2; - Int_t i1=Int_t(x); - if (x<0) i1-=1; - Float_t res=0; - if (i1+10) - res = fcharge[i1]*(Float_t(i1+1)-x)+fcharge[i1+1]*(x-Float_t(i1)); - return res; -} - -Float_t AliTPCRF1D::GetGRF(Float_t xin) -{ - //function which returnoriginal charge distribution - //this function is just normalised for fKnorm - if (fGRF != 0 ) - return fkNorm*fGRF->Eval(xin)/fInteg; - else - return 0.; -} - - -void AliTPCRF1D::SetParam( TF1 * GRF,Float_t padwidth, - Float_t kNorm, Float_t sigma) -{ - //adjust parameters of the original charge distribution - //and pad size parameters - fpadWidth = padwidth; - fGRF = GRF; - fkNorm = kNorm; - if (sigma==0) sigma= fpadWidth/TMath::Sqrt(12.); - forigsigma=sigma; - fDSTEPM1 = 10/TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12); - //sprintf(fType,"User"); - snprintf(fType,5,"User"); - // Update(); -} - - -void AliTPCRF1D::SetGauss(Float_t sigma, Float_t padWidth, - Float_t kNorm) -{ - // - // set parameters for Gauss generic charge distribution - // - fpadWidth = padWidth; - fkNorm = kNorm; - if (fGRF !=0 ) fGRF->Delete(); - fGRF = new TF1("funGauss",funGauss,-5,5,1); - funParam[0]=sigma; - forigsigma=sigma; - fGRF->SetParameters(funParam); - fDSTEPM1 = 10./TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12); - //by default I set the step as one tenth of sigma - //sprintf(fType,"Gauss"); - snprintf(fType,5,"Gauss"); -} - -void AliTPCRF1D::SetCosh(Float_t sigma, Float_t padWidth, - Float_t kNorm) -{ - // - // set parameters for Cosh generic charge distribution - // - fpadWidth = padWidth; - fkNorm = kNorm; - if (fGRF !=0 ) fGRF->Delete(); - fGRF = new TF1("funCosh", funCosh, -5.,5.,2); - funParam[0]=sigma; - fGRF->SetParameters(funParam); - forigsigma=sigma; - fDSTEPM1 = 10./TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12); - //by default I set the step as one tenth of sigma - //sprintf(fType,"Cosh"); - snprintf(fType,5,"Cosh"); -} - -void AliTPCRF1D::SetGati(Float_t K3, Float_t padDistance, Float_t padWidth, - Float_t kNorm) -{ - // - // set parameters for Gati generic charge distribution - // - fpadWidth = padWidth; - fkNorm = kNorm; - if (fGRF !=0 ) fGRF->Delete(); - fGRF = new TF1("funGati", funGati, -5.,5.,2); - funParam[0]=padDistance; - funParam[1]=K3; - fGRF->SetParameters(funParam); - forigsigma=padDistance; - fDSTEPM1 = 10./TMath::Sqrt(padDistance*padDistance+fpadWidth*fpadWidth/12); - //by default I set the step as one tenth of sigma - //sprintf(fType,"Gati"); - snprintf(fType,5,"Gati"); -} - - - -void AliTPCRF1D::DrawRF(Float_t x1,Float_t x2,Int_t N) -{ - // - //Draw prf in selected region with nuber of diviision = n - // - char s[100]; - TCanvas * c1 = new TCanvas("canRF","Pad response function",700,900); - c1->cd(); - TPad * pad1 = new TPad("pad1RF","",0.05,0.55,0.95,0.95,21); - pad1->Draw(); - TPad * pad2 = new TPad("pad2RF","",0.05,0.05,0.95,0.45,21); - pad2->Draw(); - - //sprintf(s,"RF response function for %1.2f cm pad width", - // fpadWidth); - snprintf(s,60,"RF response function for %1.2f cm pad width",fpadWidth); - pad1->cd(); - TH1F * hRFo = new TH1F("hRFo","Original charge distribution",N+1,x1,x2); - pad2->cd(); - gStyle->SetOptFit(1); - gStyle->SetOptStat(0); - TH1F * hRFc = new TH1F("hRFc",s,N+1,x1,x2); - Float_t x=x1; - Float_t y1; - Float_t y2; - - for (Float_t i = 0;iFill(x,y1); - y2 = GetGRF(x); - hRFo->Fill(x,y2); - }; - pad1->cd(); - hRFo->Fit("gaus"); - pad2->cd(); - hRFc->Fit("gaus"); -} - -void AliTPCRF1D::Update() -{ - // - //update fields with interpolated values for - //PRF calculation - - //at the begining initialize to 0 - for (Int_t i =0; iIntegral(-5*forigsigma,5*forigsigma,funParam,0.00001); -#else - TArrayD savParam(fGRF->GetNpar(), fGRF->GetParameters()); - fGRF->SetParameters(funParam); - fInteg = fGRF->Integral(-5*forigsigma,5*forigsigma,0.00001); -#endif - if ( fInteg == 0 ) fInteg = 1; - if (fDirect==kFALSE){ - //integrate charge over pad for different distance of pad - for (Int_t i =0; iIntegral(x1,x2,funParam,0.0001)/fInteg; -#else - fcharge[i] = fkNorm*fGRF->Integral(x1,x2,0.0001)/fInteg; -#endif - }; - } - else{ - for (Int_t i =0; iEval(x); - }; - } - fSigma = 0; - Float_t sum =0; - Float_t mean=0; - for (Float_t x =-fNRF/fDSTEPM1; x0){ - mean/=sum; - fSigma = TMath::Sqrt(fSigma/sum-mean*mean); - } - else fSigma=0; -#if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0) - fGRF->SetParameters(savParam.GetArray()); -#endif -} - -void AliTPCRF1D::Streamer(TBuffer &R__b) -{ - // Stream an object of class AliTPCRF1D. - if (R__b.IsReading()) { - AliTPCRF1D::Class()->ReadBuffer(R__b, this); - //read functions - - if (strncmp(fType,"Gauss",3)==0) {delete fGRF; fGRF = new TF1("funGauss",funGauss,-5.,5.,4);} - if (strncmp(fType,"Cosh",3)==0) {delete fGRF; fGRF = new TF1("funCosh",funCosh,-5.,5.,4);} - if (strncmp(fType,"Gati",3)==0) {delete fGRF; fGRF = new TF1("funGati",funGati,-5.,5.,4);} - if (fGRF) fGRF->SetParameters(funParam); - - } else { - AliTPCRF1D::Class()->WriteBuffer(R__b, this); - } -} - - -Double_t AliTPCRF1D::Gamma4(Double_t x, Double_t p0, Double_t p1){ - // - // Gamma 4 Time response function of ALTRO - // - if (x<0) return 0; - Double_t g1 = TMath::Exp(-4.*x/p1); - Double_t g2 = TMath::Power(x/p1,4); - return p0*g1*g2; -} - diff --git a/tpc/dirty/AliTPCRF1D.h b/tpc/dirty/AliTPCRF1D.h deleted file mode 100644 index b09a591b7a98e..0000000000000 --- a/tpc/dirty/AliTPCRF1D.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef ALITPCRF1D_H -#define ALITPCRF1D_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id$ */ - -//////////////////////////////////////////////// -// Manager class for AliTPCRF1D // -//////////////////////////////////////////////// - - -// include files and class forward declarations - - -#include "TObject.h" -#include "TMath.h" -class TF1; - - -class AliTPCRF1D : public TObject { -public : - AliTPCRF1D(Bool_t direct=kFALSE,Int_t np=0,Float_t step=0 ); - AliTPCRF1D(const AliTPCRF1D &prf); - AliTPCRF1D & operator = (const AliTPCRF1D &prf); - ~AliTPCRF1D(); - Float_t GetRF(Float_t xin); //return RF in point xin - Float_t GetGRF(Float_t xin); //return generic response function in xin - void SetGauss(Float_t sigma,Float_t padWidth, Float_t kNorm); - //adjust RF with GAUSIAN as generic GRF - //if direct = kTRUE then it does't convolute distribution - void SetCosh(Float_t sigma,Float_t padWidth, Float_t kNorm); - void SetGati(Float_t K3, Float_t padDistance, Float_t padWidth, - Float_t kNorm); - //adjust RF with 1/Cosh as generic GRF - void SetParam(TF1 * GRF,Float_t padwidth,Float_t kNorm, - Float_t sigma=0); - //adjust RF with general function - void SetOffset(Float_t xoff) {fOffset=xoff;} - //set offset value - Float_t GetOffset(){return fOffset;} - Float_t GetPadWidth(){ return fpadWidth;}; - //return pad width - Float_t GetSigma(){return fSigma;} - //return estimated sigma of RF - void DrawRF(Float_t x1=-3 ,Float_t x2 =3.,Int_t N = 200); - //draw RF it don't delete histograms after drawing - /// it's on user !!!! - void Update(); - static Double_t Gamma4(Double_t x, Double_t p0, Double_t p1); -private: - Double_t funParam[5];//parameters of used charge function - Int_t fNRF; //number of interpolations point - Float_t fDSTEPM1; //element step for point - Float_t* fcharge; //[fNPRF] field with RF - Float_t forigsigma;//sigma of original distribution; - Float_t fpadWidth; //width of pad - Float_t fkNorm; //normalisation factor of the charge integral - Float_t fInteg; //integral of GRF on +- infinity - TF1 * fGRF; //charge distribution function - Float_t fSigma; //sigma of PAD response function - - Float_t fOffset; //offset of response function (for time reponse we - //have for expample shifted gauss) - //calculated during update - - Bool_t fDirect; //tell us if we use directly generalfunction - - Float_t fPadDistance; //pad to wire distance - char fType[5]; //type of the parametrisation - static Int_t fgNRF;//default number of interpolation points - static Float_t fgRFDSTEP;//default step in cm - ClassDef(AliTPCRF1D,2) -}; - - - - -#endif /* ALITPCRF1D_H */ - diff --git a/tpc/dirty/AliTPCROC.cxx b/tpc/dirty/AliTPCROC.cxx deleted file mode 100644 index 40fb279f42e20..0000000000000 --- a/tpc/dirty/AliTPCROC.cxx +++ /dev/null @@ -1,450 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - - -/////////////////////////////////////////////////////////////////////////////// -// // -// Geometry class for a single ROC // -// // -// // -/////////////////////////////////////////////////////////////////////////////// -#include "AliTPCROC.h" -#include "TMath.h" - -ClassImp(AliTPCROC) - - -AliTPCROC* AliTPCROC::fgInstance = 0; - - - - -//_ singleton implementation __________________________________________________ -AliTPCROC* AliTPCROC::Instance() -{ - // - // Singleton implementation - // Returns an instance of this class, it is created if neccessary - // - if (fgInstance == 0){ - fgInstance = new AliTPCROC(); - fgInstance->Init(); - } - return fgInstance; -} - - - - -void AliTPCROC::Init(){ - // - // initialize static variables - // - if (AliTPCROC::fNSectorsAll>0) return; - fNSectorsAll =72; - fNSectors[0] =36; - fNSectors[1] =36; - // - fNRows[0]= 63; - fNRows[1]= 96; - // - // number of pads in padrow - fNPads[0] = new UInt_t[fNRows[0]]; - fNPads[1] = new UInt_t[fNRows[1]]; - // - // padrow index in array - // - fRowPosIndex[0] = new UInt_t[fNRows[0]]; - fRowPosIndex[1] = new UInt_t[fNRows[1]]; - // - // inner sectors - // - UInt_t index =0; - for (UInt_t irow=0; irow=18){ - pos[2] *= -1.; - pos[1] *= -1.; - } -} - - -void AliTPCROC::GetPositionGlobal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos){ - // - // get position of center of pad - ideal frame used - // - GetPositionLocal(sector,row,pad,pos); - Double_t alpha = TMath::DegToRad()*(10.+20.*(sector%18)); - Float_t gx = pos[0]*TMath::Cos(alpha)-pos[1]*TMath::Sin(alpha); - Float_t gy = pos[1]*TMath::Cos(alpha)+pos[0]*TMath::Sin(alpha); - pos[0] = gx; - pos[1] = gy; -} diff --git a/tpc/dirty/AliTPCROC.h b/tpc/dirty/AliTPCROC.h deleted file mode 100644 index adcbcc7990cfd..0000000000000 --- a/tpc/dirty/AliTPCROC.h +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef ALITPCROC_H -#define ALITPCROC_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id: AliTPCROC.h,v */ - -////////////////////////////////////////////////// -// // -// TPC geometry class for ROC // -// // -////////////////////////////////////////////////// - -#include - -//_____________________________________________________________________________ -class AliTPCROC : public TObject { - public: - static AliTPCROC* Instance(); - AliTPCROC(); - AliTPCROC(const AliTPCROC &roc); - AliTPCROC &operator = (const AliTPCROC & roc); //assignment operator - void Init(); - virtual ~AliTPCROC(); - void GetPositionLocal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos); - void GetPositionGlobal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos); - // - // numbering - UInt_t GetNSectors() const { return fNSectorsAll;} - UInt_t GetNRows(UInt_t sector) const { return (sectorAddIncludePath("-I$ALICEO2/") -.L MakeCDBEntry.C+ -MakeCDBEntry() - -*/ - -void MakeCDBEntry() -{ - // defaults - Manager *cdbManager = Manager::Instance(); - Storage* targetStorage = cdbManager->getStorage("local://../o2cdb"); - IdRunRange rangeZeroInfty(0,IdRunRange::Infinity()); - ConditionMetaData *metaData = new ConditionMetaData("Jens"); - - // - // get the tpcParameters object and dump it on the CDB - // - TFile f("param.root"); - AliTPCParam *par=(AliTPCParam*)f.Get("tpcParameters"); - f.Close(); - - ConditionId tpcParametersId("TPC/Calib/Parameters",rangeZeroInfty); - targetStorage->putObject(par, tpcParametersId, metaData); -} diff --git a/tpc/dirty/o2cdb/TPC/Calib/Parameters/Run0_999999999_v0_s0.root b/tpc/dirty/o2cdb/TPC/Calib/Parameters/Run0_999999999_v0_s0.root deleted file mode 100644 index 7a9eef68e284926e6f6c8f0656b49056abcafa74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13491 zcmch8b8u%(w{<4Aor!H56Wg|pU+iRJ+qTV#Z9AFRwv8{(b3gp~-KtylcGW(otNZls zvv!^C>a%Ju2U}YwAfTCQARr)PARv~8Z~OUOPx-bV-}VanUlkNcARqz}pdU%PPLN&0 zNc$-mKYjrDbX|S-{&&g`HlTkTmB}}o5dlU0>-l>&ARsVhQ44DmD|%xCCj)vlTL&w8 zM_W@TR|5wVdRr!X0c#5*6FDY&*MB;k?2PD*EgYQO=}o_fIMUP6eLrGkY)G#xFGMe7 zU~OSYFK^&rU}NHB;^0WH=nP=c9^MD0iVKjSg}cVM`tpaIE zLy{u_^~(df{kYJE@{<0G*VVAj{WK+Q$`qzUR2Nk8NA#TOX&uTi#*9)D%AZ0ISyFQF zR$j|OM!ap=s!YfFL0n!WD8KvE=fyTWXCwe4?4Z$31?a0#Csv2+WuoW!XuOkiRAK?~uJ z>5inuWyEEnsh?bIu7`TpVV`XPmp78U7FinL^8}8C=Ge>szC$9W4&C*6QG8qR$ zxZCeLr1xg21&uO6HZ?BZ34TkEkvITGh0VBbFPiWtCybr6R0Fw?^!DCuBGQH&$D}uX zZ;6G)qU1GgWsg|(0-_9CM->`BGYtr9@;`hc9;VsUF8($tZ*&V-E3p&0YLcgaEho3T z(ua9(;?fO|OHYl4QD&1Bmt5wttwxMvT~A5c@1CnUNpmE4^Uh}{L|0EPI|dKgcf^I( zpdD$;^zF>tX$0IF4VV-G<~XLF^x^wc2jOUkX7@yVoYoZ|fT#g-Fva#Nu(K!i#U)1s zv~536nBXTJSl3g*<{|Ai?J?B2$622}l9hzt+}%B|?73FQ!NPY9-AKWI{av2B@gd| z&n95_kgtHNxqok#1;DqsyvcHqT+h24uugf&@kD>g^1zc-YsA<&9s%VV+-cJzzH{g> z+;PTWaKH|her|4$&^(8-v*dnHKHCz&qNXpFj(xlDR3m|xR-95QGPo~~iCtnb9p1`0 zT}<|YdF3G;w~4+e!z{y$np4*MQDKMl} zwFtv}fFMRh>E+$=#=+Ao_Jm6-;&6LB&9L>V1qD-qoR_qC=arkw{e0NsT$nT@%m8}Z zO{RlORr=tPzAU9#xl8vE_;ttgQLT$sEmHKEjfE9#HW6A+!5}@|?(ZRaTmOqY8vZXx zv*9|SXTPDig?^vXoKePeo!{^!2^SiYT_HtnSMsJX-M;ueXsprOj?XJYPP8@S$}Ho9 zAi(qJn0+6~hWnn|1-5&G z{NkEN2VJG=Eu@vglZQbT6m{TrI)hHLYRV)DbPg16DxY9>t<*C4xwn^17bj?qPHOE* z*K&$Ec>w+dJ^HnMRK`&l^sV<<9h!{WIZbg+eiCCyy3n+ES7n3ez z`YXnyWzQN$X*)H!E-|Zh+^v?{jlaK37h^;x)Z6js4(q!Z?-(Z8VrCkTMy-K;Y<)!6 z7}Xe8CfX;sInT>MOQ0IEi4H&0A1O?^p;y+Y#10s~^glOIayFArP0vB#UM^psi?cgk z@9=PkgEcZInXV3rm(w>t-<_Jdg4d&X68m<-AEg|zlccU?R9$U)@?+nOgXsrWcqHTm=v1?k|s~9yvImx$hAs&xaj~I z4*{p2_dA?;ku6`JxpFrx2nsG+vGXS32y7k%1&X3>qDhfshd--9*CH;;25FvI3~BY@ ziknufM45bw+Vc-?O!JbOi;gopu9TbvvPFWLR~Up`BMa^B%QrQn244Y5Vtyr!tdjUO zSEqGx#L=2ds>!>-FE^SHG-a}%f3jhRc(^i#=E4~29pL%8`yu{!4> zXRuRskvq&)KAIAhPNT~hn1_cW9zH9xn9rlx%BM@HGt-Mwm<=4W^x<$%xR1b(eAXW1 zfmxMXa+C@Yko`CtUIX50_umlnFa0=h23Da#)qa;HtSkZ5d0F~toOmyc?eE$-g!#zfSm&?vi18a0)l=c z2rqu;hK@&%j?MJniMrWEAgefZ$8eGZs#~ft2G+CLUau#3AMWN&b`f5~tKrW}0I7ne zljLC>hT(#(niWe=o?z?p1`u=04C<0QbICzbu^Goi-_b^g@mQbNuR7jq99_~3hy52VNI~ZD# zlOn{AAd>4$t6j^w{djrm({z6(a-COF%vn!QCgO8O?iwy6e-qwO#{B&~^E+Mh&?il9 zEoQk}WJ8R1HvjhB_?Ok4<_XX2msrE!yrPS(wdoa~+7Hy_g=V@n5xuwB|OrwKShb7eoXAkXY zw;J>zOhv2=OcM+6=xf3>v!YEng5_{qnuA8+Yn*!pToL6cqrF^uqJ^SsE^ElP5igq| z`)wC&hbPW350>{a_b|PEy37n9F5|88%$Cmi%-=}IR)0$v*-Q&-tT8JrJxXIYhsXsq z+0M0~7-Bbeq8wB|39S867z(`>kXyz+mM-zDmf6g`O9b~o>tF<86RF2g%u|9@^?UKl z6Tj>>CUvzyknsvLax;fbHT$Mo|-(4`-;)71Sq%m#>oQ`LRM zD#-p~?Mk8J$6=w=Fb>J@5u!QX0$PcYr376F)z|?&?zpZWz$bbJyjX~90VGdOu?w?W zBio!c351*?;;T2)qqR7c#=>!S@!8JNk=h+;k*f?@k((HWt+*F=~ao+Ts3Zg_b}cHj9A|8NbQY^Ik&}XL|MhITvQp$PBR-{=0+KBrj{9h zdUlTZw?2#xS3t)GaUPB4duxsEqA-uf=e#Az0oVw}CkTz*75V~^K+u!Zv~(DPwp{Z??1?6@F;|G!gw$UE2?S8t=jhE&UKDP+bnrB zzJ7zQm`4)kJf4ZN;o?cKaht`_MzAGl4>Q)YUU03rG%>tXx}&btRkN;OvBjQa|4KUl zoOY-$F~S>N`<;DWF_J*fOf>S@&bY6C1=z0uAs+qfY#P^p$ChAQH9Qh0@ON}JA!zhw znZm(P#mb?6ncup#Y4oyzsyjFQkl*906|sHFt%I4Rv8?8|zVSQUFePznXf+a-hO7ZStQ;bX%! zrX&X=Y~lq!*<_%r7PY8mDKw$2)a0SBZW@%COfr-$m5Y@ieuU z$wo@C$jD;78>ZQL*xI`Rhh=t>K zr}OG9_^=dNc}RL5T?|FFpug2;@_Np(|CaWCCsCxVDI_AENYJuQ{P`=_HDG_ga38gi zOxggJ=r>i!RydP1=IY|?IrvZiKMG!kUrXKz;3S0uO-2WbBYoomD&)CnHUyhGY#<~`zr9tt-fO-%J2%D+6RhM74+)^kc+B%E@5cOZzf69Ws!eX zl?Ted+h>FyVA2eo7x9Z6;F4}k@Td%FlWy9g!qvqN+NkzaFwhjd!ze^6n%>*+ek=SL zbkaZyvqV`;R@PFqNwI8K<`(^9q>Q6Sl1s!UuGW$#9l0$32dB)1crjY#LVXcXxf-R? z9%jj|VDkV&VyLtTC?3ivb8%b*RIk!1w+C4^D_r~gu`(;6KJtrA|8 zRpV4M&2n7dPcF%QUD-nDHv1WxI6rS5teNcW&lZ1d*>P>64J7PG%J6 zw6uoV#GH?h>-M1^{irf#1H!Z2$7`9lTq4iZ)iO9Z%At_WQXAW3xHWOudFx^*GTTH7a;=`4wO3xf7EDNP|>LOoVB?; zieK8XNu`F5l%dsn&w1iL$+>(93&h~<$;~=IUpF=N)LpiQ&12a7RQEv*%tnP*p`1t zFCb$uWoZjXCs-vX2a|7h$w2~OYKtsv>uhN4PGD^Ture|JzBxL5^DXcAKn;%n@GUwP zkw1r>t1k}l_HVnK*(oD->&6eN4}=<{R|2HwH0b`e_e-IgJWe@XHE}TWo?q@GW+E6YOzACX4CVboQ&9i3somyNT2x_WX%R^_Ga}4|#T|4!CA$;d@%*;s{srRJ1mem&IGvs4={4|FW#VyZKU>D1TaX=%G_J63jHbeGA47MGE?WJ)`)<)Y5dN)gb1=|oQ8RSEwA<6}{hi>?)t95S9 zdLKdq1Q|n4txy18MA14Ae~f`rQ*W*PH74H99nvbskiY>gV+WX#eu0Q*S&pPn9)om29Yi-6mRXO2$*78B z*#l;vsr_1yU)%`?(9bXU75u*P$6!%?`d~YFMNihL*v!l>&Wv>PfEb-RNZa3ik;Q4n&4-!)}MQf8X5AB>?~RfbX% zQP)RjG@Tk&`vCJiOQKfe32Kc-CET$|&d#NmPLLF|SWB`Gxk44SoetfuJnx{qGVe@V zsNINXLEhGd1eSawo|f6^PKuA7Z^nz5xhTF`*{QV$8dnywacBV(VhGoiJ6us6*juUSU~ ztr2QKCHF^BCB*J5d3n4TzA4^C6buN|20yaL&}~hg)cZ94xuCBLM){z(;{&4(7 zm6gTBBCNIxgFlPknk@dhzU-NDFXAB~sbu~v!@^n40CXOij^-LzxGVJXl1D}&$}z6f zAKT&V6rf$$kJb^^upD#B4)C|Qn{U+$*s2FXmm?)%ucEW~3N7Vdv~yaLuhqHg+qOB! zc0;Zq8LSK*VrsER2|yME6{+vElWJ^mO9dF{pcDDHGx=W+Skp1I!s zc*+p!AKr4`x-lBQ#w_bXCqnbAl4FlOwwR_3IzAUjq_c26D}2cPJUSPwO?xFW6!4?> zi!5n@+M97(i{&)|gSlTfSYLOxQn9?dsGPKIiqgoV&H_hky3Dcvh5Fj&Q>k|B4Vr?q z%c(Ld2MMA^*x;;P(m9Qx}MLn!rjHHHXPi z%_eApFsdp}t=>(8gQ82hzPlapHm(B1I(GqeP^*A`Qn?4}(t;*~77|F)#M0tHHnP3D zv>fUO1%gb6Hp;Q$oB?u+SMLf1|0QIbBolv5vCWgQSj6tys75{J51L ze(V>s`{PzOr|fUcI`s|&WSiSJ?xkWUhNgz3Kh}b{IssW)1UUu0#p|)pDI=@rz_g;p zV*@x>Cc9UaNc00s=k5b5Jip%fv#VM|2H3w&#isXI&EZ7pvxTr=6<~(QwVn#*e5&9Slr@>Xk^rhJc+FJhLIK zOzq5eTv6upWzHI4BgoefLj(SZkAugz5xy6{vK{)3rv7~~o5g$5x1siEiVa8U|cv(pR zPCQc4b_jqEY(UWZy?3210MHA!!0|cF;fdP0CWud)$&1EPxO;=n+8rH<$WYxHw=Yay zZLG~Z>r<~K5m%mdPZ*#~{gzB6IV69d*Dr9y{L^qOZG>B*#ZZ&LA_F?IGO{>d26R9x z(9}5aIo6Vi9aJYtLlI@jF@`y*0VZf$yh467tLgX zkhRK`Mpv3vtyka?QUc}jovxOuqueB^mm(4(!w;tSJH9O62Vo$H+%3WzPT)?}YZ&NH zs{Zk70iwk9vrG!YRU?Qs%WUXi;$s{;a+S)$xSe=ABnCk&Qsi51DXwp5X| zEIml202SrlaP3<6>g6}5u1E3OopxmN-Un#IgVISAkY-p)itQpDD1D8Ie$;r0!3EJK z=f2ddqyug2&3Qz6-d*QG4R6S^)TtF+;oOvU!y>l|uCY)s_Ed*n7$IyVIgJSy{*8Fh zq+wPdn^7&d+t46s{r81C*SRtkyPR6{`z5F6@y5Zx1%Uq#KZaUAIm$m*lD96frk!dx zSG%Q|=udqkU|&GAP9T0radeHYLO)V4-TX4f+nu)o5Eu6LZry<*cl=UCs&loyg|Ji( zoBntl9J$0#9A@JKb2cz`KRVpEfa!b$On&xm0xC~}%9l?~1KrZcTSiPWXX4m6P?C@l zx*)_L@DvXz>QXZis47uDtnr*;k@Pid{i*#fl*|te&Z$>3Hh2IIn4q~ZCJ5CQ7^_E- zsy~MxM|n3&r(_(I{ARmUVs0<9Kr(4+ep<;IE8dr?ZFy+)2k^o@bXiX^f&p1uh}XpI z?ifox9XBR;!vgaak41n~XX_7<2Xn9yk7=fhC=NnxiJ4rbJWzY850p`E0JCl%&QLFR zUA_2Gu7(ELfV|%9kzZSOEEQn%^JsDg1r>P;^31;laQgufH#tMYB!XsSMH4hA!84Pg z+BL)GZZRPjX{!J9(c|37zaxj}0)gJ8W#S#J{w=szK@Y1vI-^SjG;?9c`Pd`WW;g`5 zl*Z)l7Lz^+^oSPpM-8mFRFWIkOcKrieEdpv1s}P)_fuYH47~tKgcs>eVO<8>rpOM6 z9lY~{yb?I~s%ix<-d#a4(7c`3*I|!w#sO>i4zBM9F_`N*JSPc*jlggy?j6k2_5($L zJ>`>MNKnE56nbYoUOr=Z-Jut49g0Z4K==3W5{K8+xcZyPVVNf29fw3+xcT^GT!}#@~8`#VRC@0`630*3>`Z}ng?Rq{R zS`?&CqQfcIumcr)2Oc+lLO)r3cP6NY4AF@1c#&lawYogWK~j&2#$hnwEVHK`)}A_^ zjXYc%MOIC|&qfH;7q^8BcBDoEP~J-?nJwbIDNJzlplS^3Id#?S9vM`S zzH5Ygib70uRajW1Gu8BJt%B{k7KIn7TY~l|6K7Q00A&-kt}d#A-n<+TnH}FDb|&fp zy}iWRF9e`bCt@TU1#ZTkE>UP#4#1Tg5&G$xRcDGd^C1XA`aW@-dk9W@ouiz;Q9o_; zJYUIb@lVZ;F-bng8GVk)^kU(mv-vc~sB}{tWfrS6D{(MXP^~*fIh9n5Fay=e^sAg? zp|OkATdZpfk-JjUaWyooSAy44I&hp!rMN8zb>f1dlIIpcrkg!MDXaKSyg#Fof;I5&;ptx@Qk?Y3^;NpS9iY z9QrET3tN{pW1o+zs?%$Gf(2*VV&_QSA=6)Y;ULVi@7$N9O80uFNezBDp&LQv3z0LM zE%Cjzfd(?46IDVWdw|)>#jUa64s2W?-*qB1{~h45JyhFmx1bx-)=lJAFRCX~L#fHo zk{iSL=nS@lhJh_He%yiLkn(t$D^s?`gPxo5;lUc-^cTu(@Di@3ZI^m+k97Of3s;Y9 z#d3O7QPEKFayd?3Pg@6%eFlUZnygc)Hr{@g4xl3gw`h%0lU8Cm@F^h|59wF9ug5t2 zPxe|5`!mmL$Yl;5_30tbb$;Lw!8)Ko8lad4AQJy>t+S1I?y>#M9)+7piieo`A8~GW zKT&6_&YEkyT~G1vuMAs9ApJ@asNs1}6H?h`&L-ltbfF#ziP1mV6+bDa0!f6Q5jh_T z%pn_3+ zq5|`cOM`n_suNK4<^_>vCMCRB8U{V-T&YiLhylGHB}=G;4*8uQs9Fx((lwHLpNByK z+x<9T=gmSQx-_(k1fmz`yr0j&l*%~}|5{5|CMl-NZ!t|kOuVjVG(ptG9C2^rBdAoo zFNQY{2VA{P)_(*&c96@|$1?o)JK`-JdK=qv6 z@T&q>GZmkGHlJDF#@r8MXl|Be67{o$WUmy~Z4r}L3*a9~BG$HcC_cV(rh9~xChiuK zEG|wKAjh@Xd{mYsSfDhYgf5N!@j^XD^&Zc_bREzVCVkvjhZiPAcvdTb861zVHe(~G zF|#c*wU?)hk0hXqf$q%U;18zG;Oi~YJ5#XV$=L1eh^S1cJ&i`%{}7ZRlO;1Hu@)e6 zL_fd&*PDF;65h z!?pNFqV(ZEc2Jb5Pn8i+5g8f5M}a5R;XpK z2(WZkoEzNpTQy;uq(>Lc7ph7KEm4P8Vx(0brBz~ORnmsjq=V1JQe|WJotG1z%E&)- zov0wiF&|yC2)}7Fd!9RJV#@YG%Q$jaW;Adbw~YnT-ly5-nAlQ~+?? z-KygB6gyJN@}`-trcaUUB(N(bbJqWg=LlP?X{Y$tc@WwNW!cfbOD{qxT{o2_BwwJP z22zGEj(R^-8JjpGYuQ*dN=T7H*z_rjR6T7x2rs5zLaz>>o;cB~+USqxPMit{`yfxc zm7EjJk~-p3!j)}QMz=!5Gtt3SBrZo`JM{h7iW@kD9ng80nYDgqN%C7JOldo@MqGp{ zSg7w=vn&+{Nk=Sbr0;&YM zRQ!L|sX;ryA)x=!ZXuFU`e-yf6;l^b!FgycFr$->nG~0L?xGN%IP^5e&j306b3W0E zl1S)%JCL^e_b-_!nfprNh55A2P*jd8>dDJ$SSlnF?~s?VyMC9XU9M?o!j`a$BYZbu z>$B#$P){_N#~b*2L%6SrsYDMA*8CdVI=?=#VYyjHY%@QqybBEQ3e+2jDO2B5S!gL0 zQ93-AB$0l=<6rfjvvToaQX&x#*if79BoKjiX>uK@UEC*i^K3KJZL&{yq{| z<)PNwI&7Tu{J-tg7vsX*#(}xS9IE(X26?_J;Ui*`)#BKN7YVZzT+WghlW_1XNXNc* zc>QNnGXjm#6vqG_SZ;;JxMRgd^DEe4Z0yq-Id)i%7Pg)3&P!w^TT;>oR~ z#m1v6hFb^7W@zUS!^?v^PW)Q-B$dGas*FBxf;gkV(%b7fx1ZNx69`f%EqO}K0L<2% zGtY4e`+j3iImPK_4r8FDr%m@~KKr3MrqeOYlXj9t!iqk(`iM{HC*~$#PSZ@P^+|5h zR)L*&_%Hsgt;iU5oP(Ct1X!$fprzh%XxKn$Y0mRbae%o_U&S%%PKaJRBmyKshAXzs zrN#lBj!ov%S{fDg7zPXO^Bl=gzfci%dhr zWIKZX1&B7-d7~Ap^B6IbB>wkYW+}-Qhr_0}7FhL?9RrYFs}6rMU$zdU6FaX}Py7qe zTKpm-_M~$2{0eDOYoH%nzJDtBTUkls_Ze=I>wT{lSTZG{n+h_wdlyc6@&sua%C+Gb z8J}RNU-QT})wXb~Vh?+nOG+#>#nLUUQLW@AHcwpWP;Dw2WB3>*`yP){+%cJf@kj=h znzVnB+DYZuW;q&`dD(8V#ksj%4-lsALw5oxVTEQY?N+o(QTA$;uh1O@>WpnsGE+Dt zA)-*2bY(;_!ZY}Z(2!CH+Gc)~$aTvoGZyD9V=7?>U23#M$w54K2pBN;Tn=tJt*Lga z_UypU^(V$oezO}1G^>BSYz4;0qud86q64k!H3oFgS=vM|;c-ziOn(txq>ev@f8+Iv z-^yOJL5IZ_2$@EY#YW2H^7(b-)qeqv;YJem;K~0hedcktkrZ2n%NZ|eTH+A~ot6;_ z7^v3ah5aP$O!-kyalu;^v*i_4$+a5Gd46TjMv0v_RR`o28!n2>fr&l-hVxKmOkLaX zQ(rc#l+%;JzhD+F63N4y#gAJqt5LiJ4%?YX%$dx!mvv^tPOVN#W7ZAsNV&y3Mb%K{!Xbl&A`-wVbcjM67-jOUrJYB)?sOqC%Z504!n< z;Ot8~Nd+bD$Y3i6oV?#Cy%<+i*`K*v#;0_3X^d-XrqJf!Ntp{mN;!+IL21BOpwCAa z30ur(=lSXjKflM*_ah79R{iJ<{5HrPu9hRzk6ynKSPQA&XwBN2HeL;eHL#ZeyGv$1 z<4>fl5z!qD)a=Gj&2aFWlGZi|GZSaAa&l6a0*Qq%2@0NJj)*dE&v2$zb-JivH1vfI zJfNm6Cu}U(FnzZeW+py1tDrXmQM4j_V>JGvU2+tqI}7_3U+LgSd#!Xa94J?>Ru&<= zG2P}s50<-e^)n>qCa>2i9(A6aC24n6i443x?AaolgoGkWMN7clj}reu&iG03DL`Ly~5f0s)zuH`L z{!i3G2_?drxMt9uE@9*0#RsXo#b)eZ;jx1|wNoxF%pbVLh`XpROu)yf%Php(YvE#B zh~NHem}06=cvdAE#8KZ{y!#KL&zu&Bh`4TN>5KO~2gr-L$Q-A@-}K25bKGVvDqB?= zfoa-6+vX@D^;GwN`;B_1je1LyyE4adUnZjs7SKWt-WJoH@27TkXt6Oi<7T5Pg@XCb zD?X>^U#k>fYf10K%kHq{UoW`tU)#TKmnLv&%q%jo-55`fdwOS|m3fZcg`Fy4+sb{lFi4|%a+|RygB6t*uwqSzrTf*p-TaEj_ z>PvrF#F476m|dtm#kYr7XQounp_HL48JpcWeY$|*6bf~T!)vU>0%Dh#^il)p(%im+xQB=EqmBhpJEHuWg1Bh%(T zrpwk5mNvzyeF2sDGO5HdnA~f28Mcu4?W37=`-YOdrAdM9u$-x|dua(^_vN|T9=(PHRCaP$bdf-1{!|vlU)79gSc(zm$cc<-lsmE zxx2>{bN8*u9v`H?J2Ma6nm=E=cCAfh39TWi94mhGvLNerm7Gp(ZSP`Xe{y!R>v zofMg;6zm%RpvN$_q6{`VMp5%^+j?bcR)R{`)GeAMVaBOgU(P;WwS&urp5Dtj@(ZJv z$DAHl#ijZPpB*0y|Exsdu|O=QOXXPz*+;w|AD@*nt$XWd1N5c#ualz}Ma}n^QmW@z zhMp)=KxUYLk;>-|A>CJPv~38|U&d;HQLmWW!;gI&gH{zgVE@q-bc{6Q7X+iXdzW<` zo*4f__Fh5fSw|ylVx4ZkTUO{6QqjI84EmNJuc_O+4D>|_P0Yr;XnN&VKNqiboMXQh zRP$UJ)*`o?#egrumN=Kp;XCs}T&0I7RC>2|91GpWh)wQANl=F+49+!lY>MDmb#@}iChOi@e;W+OV`xUEn_DrQrG^6;JwF>$*CMJfo0oxw@%U_qLauKf< zg#vvWS3#_IkbGd9w&d-hdVHT?GG4BKTM6@-6fDH;LdsE_C^x_WOnYCmND( e4=Mk`f&PDR{#6Hk=S2MH;e3N(X>est1o~f7?79{J From 98ac3c95d84276e0f86cf0438b6ba8f0930917f6 Mon Sep 17 00:00:00 2001 From: wiechula Date: Tue, 28 Jun 2016 20:05:10 +0200 Subject: [PATCH 107/135] change to unix eol --- Detectors/TPC/base/files/DATA-TABLES.txt | 158 +- Detectors/TPC/base/files/LENGTH-IROC.txt | 10560 +++++++++--------- Detectors/TPC/base/files/LENGTH-OROC1.txt | 5760 +++++----- Detectors/TPC/base/files/LENGTH-OROC2.txt | 6400 +++++------ Detectors/TPC/base/files/LENGTH-OROC3.txt | 6400 +++++------ Detectors/TPC/base/files/ROUTING-TABLES.txt | 72 +- Detectors/TPC/base/files/TABLE-IROC.txt | 10560 +++++++++--------- Detectors/TPC/base/files/TABLE-OROC1.txt | 5760 +++++----- Detectors/TPC/base/files/TABLE-OROC2.txt | 6400 +++++------ Detectors/TPC/base/files/TABLE-OROC3.txt | 6400 +++++------ 10 files changed, 29235 insertions(+), 29235 deletions(-) diff --git a/Detectors/TPC/base/files/DATA-TABLES.txt b/Detectors/TPC/base/files/DATA-TABLES.txt index ff2fcb5760077..fbd3ca433aa66 100644 --- a/Detectors/TPC/base/files/DATA-TABLES.txt +++ b/Detectors/TPC/base/files/DATA-TABLES.txt @@ -1,79 +1,79 @@ -IROC -Col 0 -> INDEX (0 - 5279) -Col 1 -> PADROW (0 - 62) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> X coordinate (mm) -Col 4 -> y coordinate (mm) -Col 5 -> Connector (1 - 132) -Col 6 -> Pin (1 - 40) -Col 7 -> Partion (0 - 1) -Col 8 -> Region (0 - 3) -Col 9 -> FEC (0 - 32) -Col 10 -> FEC Connector (0 - 3) -Col 11 -> FEC Channel (0 - 159) -Col 12 -> SAMPA Chip (0 - 4) -Col 13 -> SAMPA Channel (0 - 31) - -OROC1 -Col 0 -> INDEX (5280 - 8159)(0 - 2879) -Col 1 -> PADROW (63 - 96)(0 - 33) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> X coordinate (mm) -Col 4 -> y coordinate (mm) -Col 5 -> Connector (1 - 72) -Col 6 -> Pin (1 - 40) -Col 7 -> Partion (2) -Col 8 -> Region (4 - 5) -Col 9 -> FEC (33 - 50)(0 - 17) -Col 10 -> FEC Connector (0 - 3) -Col 11 -> FEC Channel (0 - 159) -Col 12 -> SAMPA Chip (0 - 4) -Col 13 -> SAMPA Channel (0 - 31) - -OROC2 -Col 0 -> INDEX (8160 - 11359)(0 - 3199) -Col 1 -> PADROW (97 - 126)(0 - 29) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> X coordinate (mm) -Col 4 -> y coordinate (mm) -Col 5 -> Connector (1 - 80) -Col 6 -> Pin (1 - 40) -Col 7 -> Partion (3) -Col 8 -> Region (6 - 7) -Col 9 -> FEC (51 - 70)(0 - 19) -Col 10 -> FEC Connector (0 - 3) -Col 11 -> FEC Channel (0 - 159) -Col 12 -> SAMPA Chip (0 - 4) -Col 13 -> SAMPA Channel (0 - 31) - -OROC3 -Col 0 -> INDEX (11360 - 14559)(0 - 3199) -Col 1 -> PADROW (127 - 151)(0 - 24) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> X coordinate (mm) -Col 4 -> y coordinate (mm) -Col 5 -> Connector (1 - 80) -Col 6 -> Pin (1 - 40) -Col 7 -> Partion (4) -Col 8 -> Region (8 - 9) -Col 9 -> FEC (71 - 90)(0 - 19) -Col 10 -> FEC Connector (0 - 3) -Col 11 -> FEC Channel (0 - 159) -Col 12 -> SAMPA Chip (0 - 4) -Col 13 -> SAMPA Channel (0 - 31) - -OROC -Col 0 -> INDEX (0 - 9279) -Col 1 -> PADROW (0 - 88) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> X coordinate (mm) -Col 4 -> y coordinate (mm) -Col 5 -> Connector (1 - 232) -Col 6 -> Pin (1 - 40) -Col 7 -> Partion (2 - 4) -Col 8 -> Region (4 - 9) -Col 9 -> FEC (33 - 90) -Col 10 -> FEC Connector (0 - 3) -Col 11 -> FEC Channel (0 - 159) -Col 12 -> SAMPA Chip (0 - 4) -Col 13 -> SAMPA Channel (0 - 31) \ No newline at end of file +IROC +Col 0 -> INDEX (0 - 5279) +Col 1 -> PADROW (0 - 62) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 132) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (0 - 1) +Col 8 -> Region (0 - 3) +Col 9 -> FEC (0 - 32) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC1 +Col 0 -> INDEX (5280 - 8159)(0 - 2879) +Col 1 -> PADROW (63 - 96)(0 - 33) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 72) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (2) +Col 8 -> Region (4 - 5) +Col 9 -> FEC (33 - 50)(0 - 17) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC2 +Col 0 -> INDEX (8160 - 11359)(0 - 3199) +Col 1 -> PADROW (97 - 126)(0 - 29) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 80) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (3) +Col 8 -> Region (6 - 7) +Col 9 -> FEC (51 - 70)(0 - 19) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC3 +Col 0 -> INDEX (11360 - 14559)(0 - 3199) +Col 1 -> PADROW (127 - 151)(0 - 24) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 80) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (4) +Col 8 -> Region (8 - 9) +Col 9 -> FEC (71 - 90)(0 - 19) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) + +OROC +Col 0 -> INDEX (0 - 9279) +Col 1 -> PADROW (0 - 88) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> X coordinate (mm) +Col 4 -> y coordinate (mm) +Col 5 -> Connector (1 - 232) +Col 6 -> Pin (1 - 40) +Col 7 -> Partion (2 - 4) +Col 8 -> Region (4 - 9) +Col 9 -> FEC (33 - 90) +Col 10 -> FEC Connector (0 - 3) +Col 11 -> FEC Channel (0 - 159) +Col 12 -> SAMPA Chip (0 - 4) +Col 13 -> SAMPA Channel (0 - 31) diff --git a/Detectors/TPC/base/files/LENGTH-IROC.txt b/Detectors/TPC/base/files/LENGTH-IROC.txt index cc5d7b6cb61b0..3c8fab8d435f6 100644 --- a/Detectors/TPC/base/files/LENGTH-IROC.txt +++ b/Detectors/TPC/base/files/LENGTH-IROC.txt @@ -1,5280 +1,5280 @@ -0 0 0 1 5 86.034 2 -1 0 1 1 3 83.84776 2 -2 0 2 1 1 85.63241 2 -3 0 3 1 2 84.86697 2 -4 0 4 1 4 84.74059 2 -5 0 5 5 3 85.24601 2 -6 0 6 5 1 86.91931 4 -7 0 7 5 2 84.52014 2 -8 0 8 5 4 77.2281 4 -9 0 9 9 3 77.47959 2 -10 0 10 9 1 75.49931 2 -11 0 11 9 2 82.25363 2 -12 0 12 9 4 71.70391 2 -13 0 13 13 5 73.15898 2 -14 0 14 13 3 74.62056 2 -15 0 15 13 1 67.37926 2 -16 0 16 13 2 73.44017 2 -17 0 17 13 4 71.75517 2 -18 0 18 17 3 72.85007 2 -19 0 19 17 1 65.72736 2 -20 0 20 17 2 68.20117 2 -21 0 21 17 4 67.58671 2 -22 0 22 21 3 68.94784 2 -23 0 23 21 1 67.33135 2 -24 0 24 21 2 68.41456 2 -25 0 25 21 4 70.28488 2 -26 0 26 25 3 69.61931 2 -27 0 27 25 1 66.06866 2 -28 0 28 25 2 66.44324 2 -29 0 29 25 4 66.35427 2 -30 0 30 25 6 68.16168 2 -31 0 31 29 3 72.41946 2 -32 0 32 29 1 71.40971 2 -33 0 33 29 2 65.54062 2 -34 0 34 29 4 68.00636 2 -35 0 35 33 5 74.45997 2 -36 0 36 33 3 71.36551 2 -37 0 37 33 1 67.89695 2 -38 0 38 33 2 69.5631 2 -39 0 39 33 4 73.2171 2 -40 0 40 37 3 67.48688 2 -41 0 41 37 1 68.56436 2 -42 0 42 37 2 65.20757 2 -43 0 43 37 4 71.17019 2 -44 0 44 41 3 70.12971 2 -45 0 45 41 1 68.92999 2 -46 0 46 41 2 67.94979 2 -47 0 47 41 4 68.59815 2 -48 0 48 45 3 70.30976 2 -49 0 49 45 1 72.34687 2 -50 0 50 45 2 68.96524 2 -51 0 51 45 4 81.77065 2 -52 0 52 45 6 72.5081 2 -53 0 53 49 3 72.75907 2 -54 0 54 49 1 83.65523 2 -55 0 55 49 2 76.31863 2 -56 0 56 49 4 79.87562 2 -57 0 57 53 3 77.98301 2 -58 0 58 53 1 87.31082 4 -59 0 59 53 2 77.87573 2 -60 0 60 53 4 86.99582 4 -61 0 61 57 3 83.04563 2 -62 0 62 57 1 86.40327 4 -63 0 63 57 2 77.94883 2 -64 0 64 57 4 76.16531 2 -65 0 65 57 6 86.53703 2 -66 1 0 1 9 86.03414 2 -67 1 1 1 7 83.22176 2 -68 1 2 1 6 84.09026 2 -69 1 3 1 8 75.69621 2 -70 1 4 5 7 85.45749 4 -71 1 5 5 5 87.72123 4 -72 1 6 5 6 85.85371 2 -73 1 7 5 8 82.02965 2 -74 1 8 5 10 70.29881 2 -75 1 9 9 7 75.93554 2 -76 1 10 9 5 69.0341 2 -77 1 11 9 6 67.43996 2 -78 1 12 9 8 67.25658 2 -79 1 13 13 9 77.59601 2 -80 1 14 13 7 73.07044 2 -81 1 15 13 6 72.8881 2 -82 1 16 13 8 65.75371 2 -83 1 17 13 10 68.22892 2 -84 1 18 17 7 66.64512 2 -85 1 19 17 5 60.62742 2 -86 1 20 17 6 63.30874 2 -87 1 21 17 8 64.90934 2 -88 1 22 21 7 63.93668 2 -89 1 23 21 5 61.7867 2 -90 1 24 21 6 64.134 2 -91 1 25 21 8 65.95495 2 -92 1 26 25 9 65.34504 2 -93 1 27 25 7 63.06864 2 -94 1 28 25 5 58.94961 2 -95 1 29 25 8 63.57834 2 -96 1 30 25 10 65.91091 2 -97 1 31 29 7 68.44889 2 -98 1 32 29 5 65.43384 2 -99 1 33 29 6 60.27239 2 -100 1 34 29 8 64.08261 2 -101 1 35 33 9 65.20577 2 -102 1 36 33 7 64.2332 2 -103 1 37 33 6 58.41569 2 -104 1 38 33 8 60.70675 2 -105 1 39 33 10 63.39753 2 -106 1 40 37 7 63.01612 2 -107 1 41 37 5 63.24205 2 -108 1 42 37 6 60.6668 2 -109 1 43 37 8 66.1381 2 -110 1 44 41 7 64.35854 2 -111 1 45 41 5 63.84229 2 -112 1 46 41 6 67.0907 2 -113 1 47 41 8 71.09752 2 -114 1 48 45 9 65.15382 2 -115 1 49 45 7 66.58167 2 -116 1 50 45 5 76.86446 2 -117 1 51 45 8 66.33084 2 -118 1 52 45 10 74.1022 2 -119 1 53 49 7 66.91112 2 -120 1 54 49 5 73.57963 2 -121 1 55 49 6 69.31385 2 -122 1 56 49 8 70.52392 2 -123 1 57 53 9 77.22038 2 -124 1 58 53 7 85.82497 4 -125 1 59 53 5 86.22986 4 -126 1 60 53 6 77.46556 2 -127 1 61 53 8 85.48002 4 -128 1 62 57 7 80.66665 2 -129 1 63 57 5 89.95366 4 -130 1 64 57 8 83.9332 4 -131 1 65 57 10 88.06786 4 -132 2 0 1 13 83.20797 4 -133 2 1 1 11 72.97554 2 -134 2 2 1 10 81.88057 2 -135 2 3 1 12 78.67112 4 -136 2 4 5 11 80.36158 4 -137 2 5 5 9 78.87221 4 -138 2 6 5 12 82.42345 2 -139 2 7 5 14 77.05949 2 -140 2 8 9 11 77.02146 2 -141 2 9 9 9 69.94445 2 -142 2 10 9 10 76.99602 2 -143 2 11 9 12 64.18974 2 -144 2 12 9 14 71.62334 2 -145 2 13 13 13 62.97397 2 -146 2 14 13 11 60.67719 2 -147 2 15 13 12 63.25793 2 -148 2 16 13 14 65.53433 2 -149 2 17 17 13 62.60569 2 -150 2 18 17 11 61.54033 2 -151 2 19 17 9 55.46785 2 -152 2 20 17 10 57.08004 2 -153 2 21 17 12 61.92742 2 -154 2 22 21 11 62.38099 2 -155 2 23 21 9 58.29915 2 -156 2 24 21 10 58.01373 2 -157 2 25 21 12 58.2323 2 -158 2 26 25 13 59.79404 2 -159 2 27 25 11 59.61022 2 -160 2 28 25 12 59.721 4 -161 2 29 25 14 57.46178 2 -162 2 30 25 16 65.37303 2 -163 2 31 29 11 63.3626 2 -164 2 32 29 9 55.75474 2 -165 2 33 29 10 58.83532 2 -166 2 34 29 12 60.29996 2 -167 2 35 33 15 65.70992 2 -168 2 36 33 13 58.61946 2 -169 2 37 33 11 59.22524 2 -170 2 38 33 12 58.47187 2 -171 2 39 33 14 59.90828 2 -172 2 40 37 11 57.2418 2 -173 2 41 37 9 60.40857 2 -174 2 42 37 10 54.98144 2 -175 2 43 37 12 60.56837 2 -176 2 44 41 11 60.05817 2 -177 2 45 41 9 57.92341 2 -178 2 46 41 10 56.81612 2 -179 2 47 41 12 61.65979 2 -180 2 48 41 14 63.61685 2 -181 2 49 45 13 64.11364 2 -182 2 50 45 11 72.64907 2 -183 2 51 45 12 60.67275 2 -184 2 52 45 14 63.92533 2 -185 2 53 49 13 71.19016 2 -186 2 54 49 11 69.24724 4 -187 2 55 49 9 68.64879 2 -188 2 56 49 10 72.80708 4 -189 2 57 49 12 77.3053 2 -190 2 58 53 13 85.41976 4 -191 2 59 53 11 79.9734 4 -192 2 60 53 10 70.81993 2 -193 2 61 53 12 77.40848 2 -194 2 62 57 11 80.29406 2 -195 2 63 57 9 82.66649 2 -196 2 64 57 12 81.9994 4 -197 2 65 57 14 79.14956 2 -198 3 0 1 17 77.61413 2 -199 3 1 1 15 84.60313 2 -200 3 2 1 14 78.84242 4 -201 3 3 1 16 73.38034 4 -202 3 4 1 18 75.1793 2 -203 3 5 5 15 83.20818 4 -204 3 6 5 13 68.4989 2 -205 3 7 5 16 70.59734 4 -206 3 8 5 18 75.03595 2 -207 3 9 9 17 77.58043 2 -208 3 10 9 15 62.40794 2 -209 3 11 9 13 56.9792 2 -210 3 12 9 16 72.77486 2 -211 3 13 9 18 68.54904 2 -212 3 14 13 17 57.73244 2 -213 3 15 13 15 55.43761 2 -214 3 16 13 16 58.06073 2 -215 3 17 13 18 58.98303 2 -216 3 18 17 17 58.8442 2 -217 3 19 17 15 53.37827 2 -218 3 20 17 14 55.27999 2 -219 3 21 17 16 58.66468 2 -220 3 22 17 18 56.96037 2 -221 3 23 21 15 57.41554 2 -222 3 24 21 13 52.45943 2 -223 3 25 21 14 53.07055 2 -224 3 26 21 16 56.63294 2 -225 3 27 25 19 59.86592 2 -226 3 28 25 17 52.96246 2 -227 3 29 25 15 56.19596 2 -228 3 30 25 18 55.37066 2 -229 3 31 25 20 58.93898 2 -230 3 32 29 15 56.27105 2 -231 3 33 29 13 52.54026 2 -232 3 34 29 14 52.23541 2 -233 3 35 29 16 53.97291 2 -234 3 36 33 19 56.58408 2 -235 3 37 33 17 54.72982 2 -236 3 38 33 16 51.21921 2 -237 3 39 33 18 53.42149 2 -238 3 40 33 20 59.74707 2 -239 3 41 37 15 53.21994 2 -240 3 42 37 13 54.54496 2 -241 3 43 37 14 50.48727 2 -242 3 44 37 16 58.1586 2 -243 3 45 41 17 57.13438 2 -244 3 46 41 15 55.76624 2 -245 3 47 41 13 53.38216 2 -246 3 48 41 16 57.23766 2 -247 3 49 41 18 59.08777 2 -248 3 50 45 17 56.69315 2 -249 3 51 45 15 60.06572 2 -250 3 52 45 16 61.16767 2 -251 3 53 45 18 57.9304 2 -252 3 54 49 17 66.52528 4 -253 3 55 49 15 63.46261 2 -254 3 56 49 14 61.41726 2 -255 3 57 49 16 66.06095 2 -256 3 58 49 18 71.90153 2 -257 3 59 53 17 73.62921 2 -258 3 60 53 15 85.2233 4 -259 3 61 53 14 73.07891 4 -260 3 62 53 16 69.67929 2 -261 3 63 57 17 74.20574 2 -262 3 64 57 15 74.93853 2 -263 3 65 57 13 75.08829 2 -264 3 66 57 16 82.03611 2 -265 3 67 57 18 82.48467 4 -266 4 0 1 21 78.88204 4 -267 4 1 1 19 72.77263 2 -268 4 2 1 20 70.05361 4 -269 4 3 1 22 64.46558 2 -270 4 4 5 21 74.68901 2 -271 4 5 5 19 65.55936 2 -272 4 6 5 17 67.73593 2 -273 4 7 5 20 62.78156 2 -274 4 8 5 22 64.64238 2 -275 4 9 9 21 73.6179 4 -276 4 10 9 19 61.27102 4 -277 4 11 9 20 74.06261 4 -278 4 12 9 22 54.85755 2 -279 4 13 9 24 56.66342 2 -280 4 14 13 21 53.95583 2 -281 4 15 13 19 53.67162 2 -282 4 16 13 20 60.90557 2 -283 4 17 13 22 51.9426 4 -284 4 18 17 23 55.75784 2 -285 4 19 17 21 55.19357 2 -286 4 20 17 19 46.58502 2 -287 4 21 17 20 55.98654 2 -288 4 22 17 22 51.10244 2 -289 4 23 21 19 51.03862 2 -290 4 24 21 17 46.63642 2 -291 4 25 21 18 49.75719 2 -292 4 26 21 20 48.66941 2 -293 4 27 25 23 51.25011 2 -294 4 28 25 21 47.76211 2 -295 4 29 25 22 53.56934 2 -296 4 30 25 24 50.87974 2 -297 4 31 25 26 51.74998 2 -298 4 32 29 19 52.98383 2 -299 4 33 29 17 50.23728 2 -300 4 34 29 18 46.89982 2 -301 4 35 29 20 66.87067 2 -302 4 36 33 25 52.56907 2 -303 4 37 33 23 49.90439 2 -304 4 38 33 21 49.69054 2 -305 4 39 33 22 49.73064 2 -306 4 40 33 24 52.78764 2 -307 4 41 37 19 49.49009 2 -308 4 42 37 17 48.50143 2 -309 4 43 37 18 44.95761 2 -310 4 44 37 20 50.95353 2 -311 4 45 41 21 51.99438 2 -312 4 46 41 19 49.19858 2 -313 4 47 41 20 47.48115 2 -314 4 48 41 22 55.90045 2 -315 4 49 41 24 54.13876 2 -316 4 50 45 21 51.2722 2 -317 4 51 45 19 54.37209 2 -318 4 52 45 20 53.35326 2 -319 4 53 45 22 52.58223 2 -320 4 54 49 23 55.11849 2 -321 4 55 49 21 55.68368 2 -322 4 56 49 19 58.74439 2 -323 4 57 49 20 72.51011 4 -324 4 58 49 22 70.81027 2 -325 4 59 53 21 69.77913 2 -326 4 60 53 19 64.1643 4 -327 4 61 53 18 59.40066 4 -328 4 62 53 20 74.37697 4 -329 4 63 53 22 79.89017 4 -330 4 64 57 21 73.4134 2 -331 4 65 57 19 76.18804 4 -332 4 66 57 20 74.95716 2 -333 4 67 57 22 83.86253 2 -334 5 0 1 25 72.129 2 -335 5 1 1 23 73.73617 2 -336 5 2 1 24 70.49785 2 -337 5 3 1 26 63.29577 2 -338 5 4 5 27 76.85405 4 -339 5 5 5 25 61.54086 2 -340 5 6 5 23 56.70151 2 -341 5 7 5 24 64.04172 2 -342 5 8 5 26 61.55703 2 -343 5 9 9 25 65.26569 4 -344 5 10 9 23 60.28824 4 -345 5 11 9 26 69.20587 4 -346 5 12 9 28 68.4603 4 -347 5 13 13 27 66.33714 2 -348 5 14 13 25 47.14996 2 -349 5 15 13 23 49.13652 2 -350 5 16 13 24 56.64114 2 -351 5 17 13 26 47.66526 2 -352 5 18 17 27 56.71686 2 -353 5 19 17 25 44.52499 2 -354 5 20 17 24 49.5579 2 -355 5 21 17 26 53.89449 2 -356 5 22 21 25 48.44441 2 -357 5 23 21 23 45.31199 2 -358 5 24 21 21 41.10681 2 -359 5 25 21 22 45.44241 2 -360 5 26 21 24 44.3731 2 -361 5 27 25 29 59.95382 2 -362 5 28 25 27 46.62218 2 -363 5 29 25 25 67.80008 2 -364 5 30 25 28 46.20764 2 -365 5 31 25 30 45.48031 2 -366 5 32 29 23 43.9762 2 -367 5 33 29 21 44.55121 2 -368 5 34 29 22 43.8234 2 -369 5 35 29 24 46.68771 2 -370 5 36 33 29 46.69109 2 -371 5 37 33 27 50.91771 2 -372 5 38 33 26 46.56473 2 -373 5 39 33 28 45.11247 2 -374 5 40 33 30 45.29277 2 -375 5 41 37 23 45.78347 2 -376 5 42 37 21 47.22308 2 -377 5 43 37 22 39.94576 2 -378 5 44 37 24 47.3713 2 -379 5 45 37 26 47.09814 2 -380 5 46 41 25 51.25796 2 -381 5 47 41 23 49.75301 2 -382 5 48 41 26 45.01835 2 -383 5 49 41 28 53.09056 2 -384 5 50 45 25 53.55552 2 -385 5 51 45 23 57.42502 2 -386 5 52 45 24 50.06459 2 -387 5 53 45 26 47.42941 2 -388 5 54 45 28 61.59731 2 -389 5 55 49 27 67.62841 4 -390 5 56 49 25 65.53334 2 -391 5 57 49 24 57.16098 2 -392 5 58 49 26 64.26709 4 -393 5 59 53 25 65.43549 4 -394 5 60 53 23 65.06405 2 -395 5 61 53 24 65.54624 2 -396 5 62 53 26 60.48222 2 -397 5 63 53 28 63.59157 2 -398 5 64 57 25 66.31305 4 -399 5 65 57 23 74.53279 2 -400 5 66 57 24 68.06887 2 -401 5 67 57 26 79.04441 4 -402 6 0 1 31 72.26767 2 -403 6 1 1 29 66.57824 2 -404 6 2 1 27 66.01875 2 -405 6 3 1 28 68.28336 2 -406 6 4 1 30 57.90482 2 -407 6 5 5 31 60.61847 2 -408 6 6 5 29 58.97041 2 -409 6 7 5 28 60.20995 4 -410 6 8 5 30 66.41456 2 -411 6 9 5 32 50.4472 2 -412 6 10 9 29 55.44632 2 -413 6 11 9 27 54.10808 2 -414 6 12 9 30 65.5219 4 -415 6 13 9 32 62.13613 2 -416 6 14 13 33 49.48196 2 -417 6 15 13 31 44.58868 2 -418 6 16 13 29 40.42267 2 -419 6 17 13 28 45.44672 2 -420 6 18 13 30 40.85275 2 -421 6 19 17 31 42.8068 2 -422 6 20 17 29 39.37269 2 -423 6 21 17 28 51.93864 2 -424 6 22 17 30 44.99327 2 -425 6 23 21 29 41.66948 2 -426 6 24 21 27 40.48461 2 -427 6 25 21 26 42.27497 2 -428 6 26 21 28 44.77893 2 -429 6 27 21 30 45.2996 2 -430 6 28 25 33 56.38009 2 -431 6 29 25 31 44.12889 2 -432 6 30 25 32 41.27975 2 -433 6 31 25 34 42.69985 2 -434 6 32 25 36 41.92178 2 -435 6 33 29 27 40.29188 2 -436 6 34 29 25 38.94247 2 -437 6 35 29 26 38.07047 2 -438 6 36 29 28 41.24061 2 -439 6 37 33 35 46.23231 2 -440 6 38 33 33 46.37282 2 -441 6 39 33 31 40.77942 2 -442 6 40 33 32 40.11116 2 -443 6 41 33 34 44.7488 2 -444 6 42 37 29 43.34254 2 -445 6 43 37 27 43.21154 2 -446 6 44 37 25 40.25042 2 -447 6 45 37 28 40.50559 2 -448 6 46 37 30 42.34862 2 -449 6 47 41 29 42.45083 2 -450 6 48 41 27 73.18408 2 -451 6 49 41 30 44.67761 2 -452 6 50 41 32 45.76236 2 -453 6 51 45 29 41.54089 2 -454 6 52 45 27 56.25504 2 -455 6 53 45 30 43.44875 2 -456 6 54 45 32 48.31795 2 -457 6 55 45 34 59.67115 2 -458 6 56 49 31 50.74971 2 -459 6 57 49 29 60.71364 4 -460 6 58 49 28 52.30619 2 -461 6 59 49 30 58.39175 4 -462 6 60 53 31 53.5598 2 -463 6 61 53 29 61.3545 2 -464 6 62 53 27 55.54974 2 -465 6 63 53 30 61.9224 2 -466 6 64 53 32 61.86957 2 -467 6 65 57 29 61.91083 2 -468 6 66 57 27 70.40986 2 -469 6 67 57 28 65.5191 2 -470 6 68 57 30 64.35443 2 -471 6 69 57 32 74.75873 2 -472 7 0 1 35 66.90522 2 -473 7 1 1 33 60.63971 2 -474 7 2 1 32 68.63121 2 -475 7 3 1 34 54.26747 4 -476 7 4 1 36 58.94208 2 -477 7 5 5 35 59.52345 2 -478 7 6 5 33 53.87777 2 -479 7 7 5 34 61.76614 2 -480 7 8 5 36 76.24614 4 -481 7 9 9 35 57.39499 2 -482 7 10 9 33 50.46077 2 -483 7 11 9 31 48.98615 2 -484 7 12 9 34 52.90922 2 -485 7 13 9 36 49.98099 2 -486 7 14 13 39 56.5085 4 -487 7 15 13 37 44.28467 2 -488 7 16 13 35 37.94758 2 -489 7 17 13 32 46.606 2 -490 7 18 13 34 38.02037 2 -491 7 19 17 35 45.95165 2 -492 7 20 17 33 35.92034 2 -493 7 21 17 32 40.84232 2 -494 7 22 17 34 39.00573 2 -495 7 23 21 35 47.4344 2 -496 7 24 21 33 37.53121 2 -497 7 25 21 31 36.48932 2 -498 7 26 21 32 35.99691 2 -499 7 27 21 34 33.09458 2 -500 7 28 25 39 43.28999 2 -501 7 29 25 37 42.26388 2 -502 7 30 25 35 34.91854 2 -503 7 31 25 38 37.67415 2 -504 7 32 25 40 39.06967 2 -505 7 33 29 31 48.19499 2 -506 7 34 29 29 33.16714 2 -507 7 35 29 30 30.58288 2 -508 7 36 29 32 36.64276 2 -509 7 37 33 39 42.22568 2 -510 7 38 33 37 40.39168 2 -511 7 39 33 36 35.36906 2 -512 7 40 33 38 40.05961 2 -513 7 41 33 40 39.87325 2 -514 7 42 37 33 34.86334 2 -515 7 43 37 31 33.34559 2 -516 7 44 37 32 33.61026 2 -517 7 45 37 34 34.81233 2 -518 7 46 37 36 44.93469 2 -519 7 47 41 33 34.94334 2 -520 7 48 41 31 37.8257 2 -521 7 49 41 34 33.9205 2 -522 7 50 41 36 42.49128 2 -523 7 51 45 33 35.2032 2 -524 7 52 45 31 40.68614 2 -525 7 53 45 36 39.53925 2 -526 7 54 45 38 44.95286 2 -527 7 55 45 40 47.87979 2 -528 7 56 49 35 46.35046 2 -529 7 57 49 33 50.3152 2 -530 7 58 49 32 53.3612 2 -531 7 59 49 34 51.74059 2 -532 7 60 49 36 58.30088 2 -533 7 61 53 35 53.59114 2 -534 7 62 53 33 61.12764 2 -535 7 63 53 34 52.28897 2 -536 7 64 53 36 62.26567 2 -537 7 65 57 35 61.49411 2 -538 7 66 57 33 63.37993 2 -539 7 67 57 31 67.8847 2 -540 7 68 57 34 64.25013 2 -541 7 69 57 36 70.51575 2 -542 8 0 1 39 56.72514 2 -543 8 1 1 37 48.72331 2 -544 8 2 1 38 56.23196 2 -545 8 3 1 40 56.25996 2 -546 8 4 5 39 58.72826 2 -547 8 5 5 37 52.30302 2 -548 8 6 5 38 71.46715 2 -549 8 7 5 40 50.10506 2 -550 8 8 6 2 70.89294 4 -551 8 9 9 39 56.47082 2 -552 8 10 9 37 43.55737 2 -553 8 11 9 38 55.43275 2 -554 8 12 9 40 42.84191 2 -555 8 13 10 2 66.3111 4 -556 8 14 14 3 68.36689 2 -557 8 15 14 1 65.15283 2 -558 8 16 13 36 49.34908 2 -559 8 17 13 38 33.91935 2 -560 8 18 13 40 37.47738 2 -561 8 19 17 39 44.51914 2 -562 8 20 17 37 31.06779 2 -563 8 21 17 36 38.2233 2 -564 8 22 17 38 35.28487 2 -565 8 23 21 39 45.38816 2 -566 8 24 21 37 34.66406 2 -567 8 25 21 36 37.65707 2 -568 8 26 21 38 36.05343 2 -569 8 27 21 40 37.8248 2 -570 8 28 26 5 72.03525 4 -571 8 29 26 3 63.52015 4 -572 8 30 26 1 62.50511 2 -573 8 31 26 2 61.98882 2 -574 8 32 26 4 58.97064 2 -575 8 33 29 35 35.87918 2 -576 8 34 29 33 32.4367 2 -577 8 35 29 34 36.77096 2 -578 8 36 29 36 34.78371 2 -579 8 37 34 3 63.43679 2 -580 8 38 34 1 68.88314 2 -581 8 39 34 2 56.91281 2 -582 8 40 34 4 64.97829 2 -583 8 41 34 6 65.94506 2 -584 8 42 37 39 31.39499 2 -585 8 43 37 37 42.6506 2 -586 8 44 37 35 34.64594 2 -587 8 45 37 38 34.35087 2 -588 8 46 37 40 48.74642 2 -589 8 47 41 37 33.08593 2 -590 8 48 41 35 38.8376 2 -591 8 49 41 38 30.82248 2 -592 8 50 41 40 52.69675 2 -593 8 51 45 39 39.82245 2 -594 8 52 45 37 33.47069 2 -595 8 53 45 35 46.60764 2 -596 8 54 46 2 69.10312 2 -597 8 55 46 4 70.61226 2 -598 8 56 50 1 68.79727 2 -599 8 57 49 39 41.58034 2 -600 8 58 49 37 58.33103 4 -601 8 59 49 38 42.93993 2 -602 8 60 49 40 55.53365 2 -603 8 61 54 1 75.98923 2 -604 8 62 53 39 49.93222 2 -605 8 63 53 37 65.95134 2 -606 8 64 53 38 53.22789 2 -607 8 65 53 40 61.94646 2 -608 8 66 57 39 48.04506 2 -609 8 67 57 37 57.83493 2 -610 8 68 57 38 51.62755 2 -611 8 69 57 40 55.51595 2 -612 9 0 2 3 75.91596 2 -613 9 1 2 1 70.75652 2 -614 9 2 2 2 80.30862 4 -615 9 3 2 4 70.28187 4 -616 9 4 2 6 69.94864 4 -617 9 5 6 5 82.48135 2 -618 9 6 6 3 73.20459 2 -619 9 7 6 1 60.62144 2 -620 9 8 6 4 62.45457 2 -621 9 9 6 6 62.90894 2 -622 9 10 10 5 68.70317 4 -623 9 11 10 3 63.02052 2 -624 9 12 10 1 58.82242 2 -625 9 13 10 4 58.39806 2 -626 9 14 10 6 54.02605 2 -627 9 15 14 5 62.31827 2 -628 9 16 14 2 65.93447 2 -629 9 17 14 4 59.11299 2 -630 9 18 14 6 55.37629 2 -631 9 19 18 3 59.8363 2 -632 9 20 18 1 57.09896 2 -633 9 21 18 2 52.48797 2 -634 9 22 18 4 58.41165 2 -635 9 23 17 40 28.9222 2 -636 9 24 22 3 53.27375 2 -637 9 25 22 1 49.33091 2 -638 9 26 22 2 52.2271 2 -639 9 27 22 4 55.12898 2 -640 9 28 22 6 54.23783 2 -641 9 29 26 11 58.20786 2 -642 9 30 26 9 54.91685 2 -643 9 31 26 7 55.09533 2 -644 9 32 26 6 52.14927 2 -645 9 33 26 8 55.88137 2 -646 9 34 29 39 28.42941 2 -647 9 35 29 37 21.26262 2 -648 9 36 29 38 24.57105 2 -649 9 37 29 40 25.73872 2 -650 9 38 34 7 53.21036 2 -651 9 39 34 5 53.48404 2 -652 9 40 34 8 59.86568 2 -653 9 41 34 10 53.14135 2 -654 9 42 34 12 55.28732 2 -655 9 43 38 5 57.08217 2 -656 9 44 38 3 54.64779 2 -657 9 45 38 1 56.43684 2 -658 9 46 38 2 52.72907 2 -659 9 47 38 4 54.63512 2 -660 9 48 41 39 27.03707 2 -661 9 49 42 3 57.76087 2 -662 9 50 42 1 52.5484 2 -663 9 51 42 2 54.4845 2 -664 9 52 42 4 62.1047 2 -665 9 53 46 5 58.0246 2 -666 9 54 46 3 58.64034 2 -667 9 55 46 1 55.29173 2 -668 9 56 46 6 66.1776 4 -669 9 57 50 5 70.57194 2 -670 9 58 50 3 61.1708 2 -671 9 59 50 2 62.24234 2 -672 9 60 50 4 60.70343 2 -673 9 61 50 6 71.91826 2 -674 9 62 54 5 68.14369 2 -675 9 63 54 3 66.55175 4 -676 9 64 54 2 66.58385 2 -677 9 65 54 4 73.68723 4 -678 9 66 54 6 84.82601 4 -679 9 67 58 5 68.17461 2 -680 9 68 58 3 71.43873 4 -681 9 69 58 1 70.73694 2 -682 9 70 58 2 73.6025 2 -683 9 71 58 4 76.9949 2 -684 10 0 2 9 74.56346 2 -685 10 1 2 7 73.71175 2 -686 10 2 2 5 61.83036 2 -687 10 3 2 8 63.60863 2 -688 10 4 2 10 67.02603 4 -689 10 5 6 11 75.42187 4 -690 10 6 6 9 62.39413 2 -691 10 7 6 7 52.3195 2 -692 10 8 6 8 65.38033 2 -693 10 9 6 10 58.57843 3 -694 10 10 10 9 63.039 2 -695 10 11 10 7 54.28282 2 -696 10 12 10 8 59.72482 2 -697 10 13 10 10 52.63391 2 -698 10 14 14 11 61.04539 2 -699 10 15 14 9 51.65607 2 -700 10 16 14 7 51.95579 2 -701 10 17 14 8 70.83039 2 -702 10 18 14 10 59.49771 2 -703 10 19 18 9 56.89681 2 -704 10 20 18 7 50.32072 2 -705 10 21 18 5 43.01288 2 -706 10 22 18 6 45.32056 2 -707 10 23 18 8 49.50652 2 -708 10 24 22 9 52.63788 2 -709 10 25 22 7 45.84726 2 -710 10 26 22 5 45.85361 2 -711 10 27 22 8 46.36207 2 -712 10 28 22 10 52.1464 2 -713 10 29 26 15 51.25827 2 -714 10 30 26 13 47.49075 2 -715 10 31 26 10 51.12293 2 -716 10 32 26 12 47.49668 2 -717 10 33 26 14 51.13146 2 -718 10 34 30 3 50.04711 2 -719 10 35 30 1 43.07184 2 -720 10 36 30 2 48.73578 2 -721 10 37 30 4 45.80746 2 -722 10 38 34 13 54.52835 2 -723 10 39 34 11 50.23906 2 -724 10 40 34 9 47.2568 2 -725 10 41 34 14 51.81976 2 -726 10 42 34 16 53.00956 2 -727 10 43 38 9 50.29098 2 -728 10 44 38 7 48.5223 2 -729 10 45 38 6 46.00866 2 -730 10 46 38 8 48.12163 2 -731 10 47 38 10 52.94147 2 -732 10 48 42 7 49.27196 2 -733 10 49 42 5 54.77958 2 -734 10 50 42 6 44.99016 2 -735 10 51 42 8 57.56951 2 -736 10 52 42 10 57.40009 2 -737 10 53 46 9 63.96871 2 -738 10 54 46 7 61.01767 2 -739 10 55 46 8 48.31344 2 -740 10 56 46 10 54.77368 2 -741 10 57 46 12 68.59257 2 -742 10 58 50 9 53.04523 2 -743 10 59 50 7 81.73762 3 -744 10 60 50 8 72.56247 4 -745 10 61 50 10 67.09039 2 -746 10 62 54 9 60.54019 2 -747 10 63 54 7 61.63536 2 -748 10 64 54 8 59.27856 2 -749 10 65 54 10 71.62426 4 -750 10 66 54 12 76.73818 4 -751 10 67 58 9 67.56037 4 -752 10 68 58 7 65.35903 2 -753 10 69 58 6 62.75966 2 -754 10 70 58 8 69.47424 2 -755 10 71 58 10 72.07179 4 -756 11 0 2 13 65.71357 2 -757 11 1 2 11 68.27456 2 -758 11 2 2 12 75.77687 4 -759 11 3 2 14 60.18257 2 -760 11 4 2 16 69.74125 4 -761 11 5 6 15 70.36104 2 -762 11 6 6 13 63.33561 4 -763 11 7 6 12 64.96518 2 -764 11 8 6 14 55.11883 2 -765 11 9 10 13 65.02012 2 -766 11 10 10 11 58.37873 2 -767 11 11 10 12 56.81667 2 -768 11 12 10 14 48.74232 2 -769 11 13 10 16 53.55634 2 -770 11 14 14 15 59.22103 2 -771 11 15 14 13 55.37717 2 -772 11 16 14 12 53.80789 2 -773 11 17 14 14 58.25233 2 -774 11 18 14 16 47.28113 2 -775 11 19 18 13 57.48259 2 -776 11 20 18 11 42.5582 2 -777 11 21 18 10 51.00992 2 -778 11 22 18 12 40.58862 2 -779 11 23 18 14 46.41542 2 -780 11 24 22 13 44.84509 2 -781 11 25 22 11 41.80322 2 -782 11 26 22 12 48.86388 2 -783 11 27 22 14 43.93992 2 -784 11 28 22 16 44.08735 2 -785 11 29 26 19 46.19278 2 -786 11 30 26 17 46.04879 2 -787 11 31 26 16 56.07491 2 -788 11 32 26 18 46.18664 2 -789 11 33 30 9 39.90646 2 -790 11 34 30 7 45.84177 2 -791 11 35 30 5 39.50641 2 -792 11 36 30 6 38.86906 2 -793 11 37 30 8 40.67996 2 -794 11 38 30 10 45.04853 2 -795 11 39 34 17 44.42215 2 -796 11 40 34 15 43.84038 2 -797 11 41 34 18 45.19063 2 -798 11 42 34 20 45.57233 2 -799 11 43 38 15 42.53616 2 -800 11 44 38 13 45.26678 2 -801 11 45 38 11 42.44108 2 -802 11 46 38 12 41.84491 2 -803 11 47 38 14 44.20974 2 -804 11 48 42 13 44.96642 2 -805 11 49 42 11 45.93252 2 -806 11 50 42 9 50.28784 2 -807 11 51 42 12 43.37745 2 -808 11 52 42 14 50.75557 2 -809 11 53 46 15 48.32082 2 -810 11 54 46 13 43.69794 2 -811 11 55 46 11 52.91933 2 -812 11 56 46 14 49.54926 2 -813 11 57 46 16 52.23648 2 -814 11 58 50 15 54.53033 2 -815 11 59 50 13 69.93467 4 -816 11 60 50 11 71.50125 4 -817 11 61 50 12 52.9454 2 -818 11 62 50 14 57.33702 2 -819 11 63 54 13 58.76387 2 -820 11 64 54 11 71.85788 2 -821 11 65 54 14 58.97049 2 -822 11 66 54 16 73.6365 2 -823 11 67 58 15 62.49941 4 -824 11 68 58 13 64.83233 2 -825 11 69 58 11 69.20726 2 -826 11 70 58 12 65.58386 2 -827 11 71 58 14 65.7771 2 -828 12 0 2 19 64.75481 2 -829 12 1 2 17 63.78307 2 -830 12 2 2 15 63.72802 2 -831 12 3 2 18 61.09618 2 -832 12 4 2 20 61.34732 2 -833 12 5 6 19 63.07458 2 -834 12 6 6 17 59.92415 2 -835 12 7 6 16 69.37861 4 -836 12 8 6 18 57.19115 2 -837 12 9 6 20 57.26281 4 -838 12 10 10 19 65.92088 4 -839 12 11 10 17 49.90927 2 -840 12 12 10 15 56.42391 2 -841 12 13 10 18 63.45311 2 -842 12 14 10 20 56.44629 2 -843 12 15 14 21 53.96735 2 -844 12 16 14 19 41.93952 2 -845 12 17 14 17 40.18124 2 -846 12 18 14 18 44.29121 2 -847 12 19 14 20 41.96969 2 -848 12 20 18 19 49.28325 2 -849 12 21 18 17 37.59763 2 -850 12 22 18 15 47.30489 2 -851 12 23 18 16 49.14697 2 -852 12 24 18 18 39.78109 2 -853 12 25 22 19 53.76652 2 -854 12 26 22 17 38.16983 2 -855 12 27 22 15 37.54041 2 -856 12 28 22 18 41.5378 2 -857 12 29 22 20 38.57006 2 -858 12 30 26 23 41.45684 2 -859 12 31 26 21 40.23657 2 -860 12 32 26 20 42.20761 2 -861 12 33 26 22 44.52884 2 -862 12 34 30 15 36.68471 2 -863 12 35 30 13 41.52498 2 -864 12 36 30 11 33.09171 2 -865 12 37 30 12 33.31826 2 -866 12 38 30 14 38.85758 2 -867 12 39 30 16 37.34956 2 -868 12 40 34 21 40.29736 2 -869 12 41 34 19 41.30833 2 -870 12 42 34 22 41.99154 2 -871 12 43 34 24 41.09988 2 -872 12 44 38 19 40.32108 2 -873 12 45 38 17 87.6516 2 -874 12 46 38 16 34.96402 2 -875 12 47 38 18 36.93863 2 -876 12 48 38 20 39.61875 2 -877 12 49 42 17 40.618 2 -878 12 50 42 15 48.31741 2 -879 12 51 42 16 38.17716 2 -880 12 52 42 18 39.48599 2 -881 12 53 42 20 47.17534 2 -882 12 54 46 19 41.08874 2 -883 12 55 46 17 44.2378 2 -884 12 56 46 18 39.24822 2 -885 12 57 46 20 42.59299 2 -886 12 58 46 22 50.61317 2 -887 12 59 50 19 54.72329 2 -888 12 60 50 17 49.37562 2 -889 12 61 50 16 49.01895 2 -890 12 62 50 18 48.20857 2 -891 12 63 50 20 62.04271 2 -892 12 64 54 19 59.46471 2 -893 12 65 54 17 55.67933 2 -894 12 66 54 15 62.99958 2 -895 12 67 54 18 64.68093 2 -896 12 68 54 20 76.31257 2 -897 12 69 58 19 63.73349 2 -898 12 70 58 17 60.73506 2 -899 12 71 58 16 62.58594 2 -900 12 72 58 18 61.40541 2 -901 12 73 58 20 67.20607 2 -902 13 0 2 23 63.27771 2 -903 13 1 2 21 63.39808 2 -904 13 2 2 22 69.3934 2 -905 13 3 2 24 56.95842 2 -906 13 4 2 26 55.43067 2 -907 13 5 6 25 69.5737 4 -908 13 6 6 23 59.772 2 -909 13 7 6 21 48.08637 2 -910 13 8 6 22 49.09238 2 -911 13 9 6 24 49.12183 2 -912 13 10 10 23 56.76906 2 -913 13 11 10 21 55.46736 4 -914 13 12 10 22 48.28228 2 -915 13 13 10 24 45.30683 2 -916 13 14 10 26 44.04686 2 -917 13 15 14 25 49.80464 2 -918 13 16 14 23 40.29594 2 -919 13 17 14 22 49.72262 2 -920 13 18 14 24 40.14114 2 -921 13 19 14 26 38.24086 2 -922 13 20 18 23 45.44777 2 -923 13 21 18 21 32.067 2 -924 13 22 18 20 44.92084 2 -925 13 23 18 22 45.25137 2 -926 13 24 18 24 48.79117 2 -927 13 25 22 23 35.39329 2 -928 13 26 22 21 32.43384 2 -929 13 27 22 22 38.53156 2 -930 13 28 22 24 36.65921 2 -931 13 29 22 26 37.10095 2 -932 13 30 26 27 43.32007 2 -933 13 31 26 25 36.35621 2 -934 13 32 26 24 35.10194 2 -935 13 33 26 26 37.79224 2 -936 13 34 30 21 37.90464 2 -937 13 35 30 19 30.5976 2 -938 13 36 30 17 33.04423 2 -939 13 37 30 18 30.91725 2 -940 13 38 30 20 37.30509 2 -941 13 39 30 22 32.43294 2 -942 13 40 34 25 35.12287 2 -943 13 41 34 23 34.62259 2 -944 13 42 34 26 37.28885 2 -945 13 43 34 28 36.07293 2 -946 13 44 38 25 36.80928 2 -947 13 45 38 23 34.24409 2 -948 13 46 38 21 41.14187 2 -949 13 47 38 22 32.65538 2 -950 13 48 38 24 35.77375 2 -951 13 49 42 23 36.57333 2 -952 13 50 42 21 34.87205 2 -953 13 51 42 19 46.36835 2 -954 13 52 42 22 33.9609 2 -955 13 53 42 24 53.97666 2 -956 13 54 46 25 50.60889 2 -957 13 55 46 23 36.98193 2 -958 13 56 46 21 54.2856 2 -959 13 57 46 24 38.81103 2 -960 13 58 46 26 47.87776 2 -961 13 59 50 25 41.52654 2 -962 13 60 50 23 56.66637 2 -963 13 61 50 21 50.73096 2 -964 13 62 50 22 45.91645 2 -965 13 63 50 24 68.31626 4 -966 13 64 54 23 51.81186 4 -967 13 65 54 21 58.0327 4 -968 13 66 54 22 51.19897 2 -969 13 67 54 24 59.70671 2 -970 13 68 54 26 59.06863 2 -971 13 69 58 25 55.93152 2 -972 13 70 58 23 56.99737 4 -973 13 71 58 21 68.88907 2 -974 13 72 58 22 59.71132 2 -975 13 73 58 24 60.63099 2 -976 14 0 2 29 60.68076 2 -977 14 1 2 27 48.66025 2 -978 14 2 2 25 49.21213 2 -979 14 3 2 28 48.59699 2 -980 14 4 2 30 49.04969 2 -981 14 5 6 29 55.44848 2 -982 14 6 6 27 52.90426 2 -983 14 7 6 26 46.99101 2 -984 14 8 6 28 52.70052 2 -985 14 9 6 30 45.65376 2 -986 14 10 10 29 51.04938 4 -987 14 11 10 27 47.62764 2 -988 14 12 10 25 33.4502 2 -989 14 13 10 28 48.24444 2 -990 14 14 10 30 35.93769 2 -991 14 15 14 31 48.57843 2 -992 14 16 14 29 35.26554 2 -993 14 17 14 27 30.66354 2 -994 14 18 14 28 32.36214 2 -995 14 19 14 30 43.60061 2 -996 14 20 18 29 39.65552 2 -997 14 21 18 27 34.41185 2 -998 14 22 18 25 28.43907 2 -999 14 23 18 26 31.18081 2 -1000 14 24 18 28 38.88782 2 -1001 14 25 22 29 32.53392 2 -1002 14 26 22 27 30.74576 2 -1003 14 27 22 25 28.22121 2 -1004 14 28 22 28 35.42834 2 -1005 14 29 22 30 33.18362 2 -1006 14 30 26 31 38.96467 2 -1007 14 31 26 29 30.80022 2 -1008 14 32 26 28 30.11002 2 -1009 14 33 26 30 33.16303 2 -1010 14 34 30 27 36.44811 2 -1011 14 35 30 25 31.41806 2 -1012 14 36 30 23 31.88113 2 -1013 14 37 30 24 28.32055 2 -1014 14 38 30 26 28.00233 2 -1015 14 39 30 28 35.36561 2 -1016 14 40 34 29 29.77015 2 -1017 14 41 34 27 31.1802 2 -1018 14 42 34 30 31.5099 2 -1019 14 43 34 32 30.64615 2 -1020 14 44 38 29 31.68597 2 -1021 14 45 38 27 32.51555 2 -1022 14 46 38 26 26.2067 2 -1023 14 47 38 28 57.58426 2 -1024 14 48 38 30 36.39979 2 -1025 14 49 42 27 31.36744 2 -1026 14 50 42 25 29.07184 2 -1027 14 51 42 26 26.46659 2 -1028 14 52 42 28 33.23998 2 -1029 14 53 42 30 40.93408 2 -1030 14 54 46 29 45.48899 2 -1031 14 55 46 27 34.87041 2 -1032 14 56 46 28 31.49142 2 -1033 14 57 46 30 35.81202 2 -1034 14 58 46 32 47.8612 4 -1035 14 59 50 29 48.06915 2 -1036 14 60 50 27 48.21622 2 -1037 14 61 50 26 34.05396 2 -1038 14 62 50 28 48.87297 2 -1039 14 63 50 30 48.51312 2 -1040 14 64 54 29 48.12073 4 -1041 14 65 54 27 48.16947 2 -1042 14 66 54 25 60.66236 2 -1043 14 67 54 28 62.24022 2 -1044 14 68 54 30 55.17483 2 -1045 14 69 58 29 46.84991 2 -1046 14 70 58 27 53.77823 2 -1047 14 71 58 26 49.55148 2 -1048 14 72 58 28 49.30523 2 -1049 14 73 58 30 59.3839 2 -1050 15 0 2 33 48.55144 2 -1051 15 1 2 31 43.72469 2 -1052 15 2 2 32 65.16276 2 -1053 15 3 2 34 47.94339 2 -1054 15 4 2 36 47.40195 2 -1055 15 5 6 35 57.16419 2 -1056 15 6 6 33 42.99214 2 -1057 15 7 6 31 44.04953 2 -1058 15 8 6 32 38.65249 2 -1059 15 9 6 34 39.01054 2 -1060 15 10 10 33 46.30959 2 -1061 15 11 10 31 49.63986 4 -1062 15 12 10 32 40.19625 2 -1063 15 13 10 34 35.52073 2 -1064 15 14 10 36 35.02712 2 -1065 15 15 14 35 41.08858 2 -1066 15 16 14 33 40.21054 2 -1067 15 17 14 32 31.18027 2 -1068 15 18 14 34 40.69419 2 -1069 15 19 18 35 45.10734 2 -1070 15 20 18 33 41.27299 2 -1071 15 21 18 31 31.47651 2 -1072 15 22 18 30 33.73879 2 -1073 15 23 18 32 32.18766 2 -1074 15 24 18 34 34.1633 2 -1075 15 25 22 33 28.48527 2 -1076 15 26 22 31 23.90416 2 -1077 15 27 22 32 33.46207 2 -1078 15 28 22 34 32.63876 2 -1079 15 29 22 36 32.39248 2 -1080 15 30 26 35 33.92275 2 -1081 15 31 26 33 25.02936 2 -1082 15 32 26 32 26.72527 2 -1083 15 33 26 34 32.58109 2 -1084 15 34 30 33 25.16649 2 -1085 15 35 30 31 30.55712 2 -1086 15 36 30 29 22.82619 2 -1087 15 37 30 30 30.67322 2 -1088 15 38 30 32 27.17964 2 -1089 15 39 30 34 33.26175 2 -1090 15 40 34 33 24.70335 2 -1091 15 41 34 31 32.14237 2 -1092 15 42 34 34 28.75006 2 -1093 15 43 34 36 27.42073 2 -1094 15 44 38 35 30.1704 2 -1095 15 45 38 33 27.99716 2 -1096 15 46 38 31 29.17204 2 -1097 15 47 38 32 23.83086 2 -1098 15 48 38 34 44.29751 2 -1099 15 49 42 33 27.10784 2 -1100 15 50 42 31 29.86248 2 -1101 15 51 42 29 36.48523 2 -1102 15 52 42 32 27.95792 2 -1103 15 53 42 34 35.07321 2 -1104 15 54 42 36 45.02485 2 -1105 15 55 46 33 40.42925 2 -1106 15 56 46 31 30.03955 2 -1107 15 57 46 34 29.8166 2 -1108 15 58 46 36 36.86073 2 -1109 15 59 50 35 35.77286 2 -1110 15 60 50 33 33.10934 2 -1111 15 61 50 31 38.49717 2 -1112 15 62 50 32 39.59164 2 -1113 15 63 50 34 39.44169 2 -1114 15 64 54 33 42.57419 2 -1115 15 65 54 31 38.1301 2 -1116 15 66 54 32 40.76953 2 -1117 15 67 54 34 43.5249 2 -1118 15 68 54 36 55.42301 2 -1119 15 69 58 35 46.77684 2 -1120 15 70 58 33 40.93461 2 -1121 15 71 58 31 60.64511 2 -1122 15 72 58 32 42.95725 2 -1123 15 73 58 34 47.48243 2 -1124 16 0 2 39 55.11083 2 -1125 16 1 2 37 45.97497 2 -1126 16 2 2 35 39.17223 2 -1127 16 3 2 38 40.62433 2 -1128 16 4 2 40 38.26669 2 -1129 16 5 6 39 56.68238 4 -1130 16 6 6 37 44.66444 2 -1131 16 7 6 36 39.47014 2 -1132 16 8 6 38 49.66794 2 -1133 16 9 6 40 34.03983 2 -1134 16 10 10 39 42.21526 2 -1135 16 11 10 37 33.2958 2 -1136 16 12 10 35 33.77792 2 -1137 16 13 10 38 42.12262 2 -1138 16 14 10 40 25.91794 2 -1139 16 15 14 39 43.56142 2 -1140 16 16 14 37 28.48802 2 -1141 16 17 14 36 29.63293 2 -1142 16 18 14 38 25.86076 2 -1143 16 19 14 40 24.97904 2 -1144 16 20 18 39 32.83974 2 -1145 16 21 18 37 28.20673 2 -1146 16 22 18 36 27.9433 2 -1147 16 23 18 38 35.04676 2 -1148 16 24 18 40 25.81941 2 -1149 16 25 22 39 30.54049 2 -1150 16 26 22 37 26.84064 2 -1151 16 27 22 35 20.7812 2 -1152 16 28 22 38 23.02572 2 -1153 16 29 22 40 22.8687 2 -1154 16 30 26 39 23.06543 2 -1155 16 31 26 37 21.45305 2 -1156 16 32 26 36 38.95076 2 -1157 16 33 26 38 20.6338 2 -1158 16 34 26 40 22.17766 2 -1159 16 35 30 39 22.99253 2 -1160 16 36 30 37 20.54157 2 -1161 16 37 30 35 21.07283 2 -1162 16 38 30 36 19.33072 2 -1163 16 39 30 38 27.63864 2 -1164 16 40 30 40 20.82425 2 -1165 16 41 34 39 21.66597 2 -1166 16 42 34 37 22.6513 2 -1167 16 43 34 35 29.3731 2 -1168 16 44 34 38 21.15776 2 -1169 16 45 34 40 22.89715 2 -1170 16 46 38 39 21.32192 2 -1171 16 47 38 37 30.0489 2 -1172 16 48 38 36 18.2374 2 -1173 16 49 38 38 42.47967 2 -1174 16 50 38 40 27.12186 2 -1175 16 51 42 39 27.32377 2 -1176 16 52 42 37 29.2208 2 -1177 16 53 42 35 32.2063 2 -1178 16 54 42 38 29.6473 4 -1179 16 55 42 40 34.45237 2 -1180 16 56 46 39 29.8681 2 -1181 16 57 46 37 36.06697 2 -1182 16 58 46 35 27.30732 2 -1183 16 59 46 38 29.34024 2 -1184 16 60 46 40 38.0767 2 -1185 16 61 50 39 28.3456 2 -1186 16 62 50 37 43.84434 2 -1187 16 63 50 36 33.96473 2 -1188 16 64 50 38 31.5726 2 -1189 16 65 50 40 39.87069 2 -1190 16 66 54 39 38.46899 2 -1191 16 67 54 37 49.06513 2 -1192 16 68 54 35 39.16746 2 -1193 16 69 54 38 40.24883 2 -1194 16 70 54 40 51.03185 2 -1195 16 71 58 39 38.31865 2 -1196 16 72 58 37 40.30903 2 -1197 16 73 58 36 40.84519 2 -1198 16 74 58 38 46.71311 2 -1199 16 75 58 40 59.91286 4 -1200 17 0 3 3 69.75635 2 -1201 17 1 3 1 78.11688 2 -1202 17 2 3 2 60.4864 2 -1203 17 3 3 4 70.33383 4 -1204 17 4 3 6 61.10591 4 -1205 17 5 7 5 70.05049 4 -1206 17 6 7 3 66.75896 4 -1207 17 7 7 1 56.07491 2 -1208 17 8 7 2 64.59896 2 -1209 17 9 7 4 52.0253 2 -1210 17 10 11 5 64.04001 2 -1211 17 11 11 3 53.22739 2 -1212 17 12 11 1 52.05377 2 -1213 17 13 11 2 50.68429 2 -1214 17 14 11 4 50.47161 2 -1215 17 15 15 5 59.51371 2 -1216 17 16 15 3 54.77456 2 -1217 17 17 15 1 46.75101 2 -1218 17 18 15 2 46.56856 2 -1219 17 19 15 4 45.37733 2 -1220 17 20 19 3 59.7938 2 -1221 17 21 19 1 49.04878 2 -1222 17 22 19 2 49.38859 2 -1223 17 23 19 4 46.94935 2 -1224 17 24 19 6 47.67274 2 -1225 17 25 23 3 51.24752 2 -1226 17 26 23 1 41.54447 2 -1227 17 27 23 2 45.7634 2 -1228 17 28 23 4 44.4614 2 -1229 17 29 23 6 49.27645 2 -1230 17 30 27 5 54.83303 2 -1231 17 31 27 3 42.00973 2 -1232 17 32 27 1 42.84911 2 -1233 17 33 27 2 42.86979 2 -1234 17 34 27 4 45.40848 2 -1235 17 35 27 6 44.13761 2 -1236 17 36 31 3 45.30124 2 -1237 17 37 31 1 41.58354 2 -1238 17 38 31 2 43.75829 2 -1239 17 39 31 4 42.59146 2 -1240 17 40 35 5 51.15559 2 -1241 17 41 35 3 44.90044 2 -1242 17 42 35 1 39.81162 2 -1243 17 43 35 2 42.542 2 -1244 17 44 35 4 44.67124 2 -1245 17 45 35 6 50.82255 2 -1246 17 46 39 5 44.69062 2 -1247 17 47 39 3 42.2405 2 -1248 17 48 39 1 46.76965 2 -1249 17 49 39 2 44.24513 2 -1250 17 50 39 4 48.82014 2 -1251 17 51 43 5 46.57538 2 -1252 17 52 43 3 52.34987 2 -1253 17 53 43 1 56.30238 2 -1254 17 54 43 2 47.92391 2 -1255 17 55 43 4 50.53535 2 -1256 17 56 47 3 45.42038 2 -1257 17 57 47 1 47.2865 2 -1258 17 58 47 2 46.42976 2 -1259 17 59 47 4 54.27297 2 -1260 17 60 47 6 54.74767 2 -1261 17 61 51 3 50.01873 2 -1262 17 62 51 1 49.50313 2 -1263 17 63 51 2 53.23087 2 -1264 17 64 51 4 53.23728 2 -1265 17 65 51 6 67.55172 2 -1266 17 66 55 3 53.67534 2 -1267 17 67 55 1 54.43224 2 -1268 17 68 55 2 59.03769 2 -1269 17 69 55 4 63.19332 2 -1270 17 70 55 6 72.40277 4 -1271 17 71 59 5 60.37578 2 -1272 17 72 59 3 70.09105 2 -1273 17 73 59 1 61.67256 2 -1274 17 74 59 2 63.91364 2 -1275 17 75 59 4 73.43395 2 -1276 18 0 3 9 63.63919 2 -1277 18 1 3 7 64.98625 2 -1278 18 2 3 5 53.80822 2 -1279 18 3 3 8 59.14567 2 -1280 18 4 3 10 55.31711 2 -1281 18 5 7 9 68.703 4 -1282 18 6 7 7 58.86599 2 -1283 18 7 7 6 61.16798 2 -1284 18 8 7 8 53.35755 2 -1285 18 9 7 10 56.26582 2 -1286 18 10 11 9 52.12853 2 -1287 18 11 11 7 51.27342 2 -1288 18 12 11 6 54.98331 4 -1289 18 13 11 8 53.9486 2 -1290 18 14 11 10 50.00594 4 -1291 18 15 15 9 51.33838 2 -1292 18 16 15 7 41.69037 2 -1293 18 17 15 6 45.33914 2 -1294 18 18 15 8 51.6273 2 -1295 18 19 15 10 41.64086 2 -1296 18 20 19 9 42.42203 2 -1297 18 21 19 7 41.76221 2 -1298 18 22 19 5 36.52834 2 -1299 18 23 19 8 39.58715 2 -1300 18 24 19 10 44.96605 2 -1301 18 25 23 9 47.78044 2 -1302 18 26 23 7 40.95765 2 -1303 18 27 23 5 36.0483 2 -1304 18 28 23 8 42.12581 2 -1305 18 29 23 10 47.87159 2 -1306 18 30 27 11 44.86292 2 -1307 18 31 27 9 38.38043 2 -1308 18 32 27 7 35.64034 2 -1309 18 33 27 8 37.86207 2 -1310 18 34 27 10 43.97335 2 -1311 18 35 27 12 43.27959 2 -1312 18 36 31 7 42.61397 2 -1313 18 37 31 5 34.43194 2 -1314 18 38 31 6 34.87492 2 -1315 18 39 31 8 42.53886 2 -1316 18 40 35 11 43.49409 2 -1317 18 41 35 9 39.87814 2 -1318 18 42 35 7 37.30156 2 -1319 18 43 35 8 38.6592 2 -1320 18 44 35 10 38.67087 2 -1321 18 45 35 12 51.17243 2 -1322 18 46 39 9 45.37107 2 -1323 18 47 39 7 50.39784 2 -1324 18 48 39 6 33.70186 2 -1325 18 49 39 8 37.72955 2 -1326 18 50 39 10 46.50348 2 -1327 18 51 43 9 44.47878 2 -1328 18 52 43 7 40.84975 2 -1329 18 53 43 6 35.31138 2 -1330 18 54 43 8 39.93721 2 -1331 18 55 43 10 43.81371 2 -1332 18 56 47 9 43.85309 2 -1333 18 57 47 7 47.70544 2 -1334 18 58 47 5 52.22799 2 -1335 18 59 47 8 46.3461 2 -1336 18 60 47 10 52.88355 2 -1337 18 61 51 9 40.93256 2 -1338 18 62 51 7 50.37035 2 -1339 18 63 51 5 46.92506 2 -1340 18 64 51 8 51.25147 2 -1341 18 65 51 10 59.88077 2 -1342 18 66 55 9 60.0462 4 -1343 18 67 55 7 59.85699 4 -1344 18 68 55 5 61.28544 4 -1345 18 69 55 8 53.02782 2 -1346 18 70 55 10 66.84094 4 -1347 18 71 59 9 57.43136 4 -1348 18 72 59 7 59.11631 2 -1349 18 73 59 6 54.63601 2 -1350 18 74 59 8 64.35932 2 -1351 18 75 59 10 62.9454 2 -1352 19 0 3 13 57.81642 2 -1353 19 1 3 11 55.1 2 -1354 19 2 3 12 59.72389 2 -1355 19 3 3 14 49.3956 2 -1356 19 4 3 16 52.597 2 -1357 19 5 7 13 57.11096 2 -1358 19 6 7 11 51.83644 2 -1359 19 7 7 12 53.37616 2 -1360 19 8 7 14 55.41768 2 -1361 19 9 7 16 45.90174 4 -1362 19 10 11 15 50.0333 2 -1363 19 11 11 13 44.70114 2 -1364 19 12 11 11 45.44829 2 -1365 19 13 11 12 45.04556 2 -1366 19 14 11 14 49.45225 4 -1367 19 15 15 15 45.55433 2 -1368 19 16 15 13 40.08751 2 -1369 19 17 15 11 39.59356 2 -1370 19 18 15 12 40.29306 2 -1371 19 19 15 14 33.92256 2 -1372 19 20 19 13 37.27072 2 -1373 19 21 19 11 36.02201 2 -1374 19 22 19 12 36.06972 2 -1375 19 23 19 14 36.07746 2 -1376 19 24 19 16 39.09419 2 -1377 19 25 23 13 37.70284 2 -1378 19 26 23 11 34.39537 2 -1379 19 27 23 12 35.33397 2 -1380 19 28 23 14 38.60715 2 -1381 19 29 23 16 38.91064 2 -1382 19 30 27 17 44.79955 2 -1383 19 31 27 15 36.06634 2 -1384 19 32 27 13 34.40741 2 -1385 19 33 27 14 36.20647 2 -1386 19 34 27 16 40.74516 2 -1387 19 35 27 18 36.19124 2 -1388 19 36 31 11 35.4579 2 -1389 19 37 31 9 34.06148 2 -1390 19 38 31 10 31.86727 2 -1391 19 39 31 12 37.48942 2 -1392 19 40 35 17 37.78392 2 -1393 19 41 35 15 35.51187 2 -1394 19 42 35 13 34.01414 2 -1395 19 43 35 14 33.09844 2 -1396 19 44 35 16 35.96736 2 -1397 19 45 35 18 44.38336 2 -1398 19 46 39 15 38.84191 2 -1399 19 47 39 13 35.44784 2 -1400 19 48 39 11 36.46569 2 -1401 19 49 39 12 33.75178 2 -1402 19 50 39 14 38.4073 2 -1403 19 51 43 15 40.04581 2 -1404 19 52 43 13 38.13181 2 -1405 19 53 43 11 35.5372 2 -1406 19 54 43 12 35.79929 2 -1407 19 55 43 14 38.56227 2 -1408 19 56 47 13 42.11973 2 -1409 19 57 47 11 43.19888 2 -1410 19 58 47 12 47.1113 2 -1411 19 59 47 14 40.11567 2 -1412 19 60 47 16 59.16567 2 -1413 19 61 51 13 36.76186 2 -1414 19 62 51 11 48.60475 2 -1415 19 63 51 12 42.61934 2 -1416 19 64 51 14 47.63377 4 -1417 19 65 51 16 53.71516 4 -1418 19 66 55 15 42.99406 2 -1419 19 67 55 13 56.99424 4 -1420 19 68 55 11 53.68341 2 -1421 19 69 55 12 48.87312 2 -1422 19 70 55 14 61.82174 2 -1423 19 71 59 15 52.06813 2 -1424 19 72 59 13 51.1929 2 -1425 19 73 59 11 60.95552 2 -1426 19 74 59 12 55.49138 2 -1427 19 75 59 14 56.51714 2 -1428 20 0 3 19 59.99152 2 -1429 20 1 3 17 51.68124 2 -1430 20 2 3 15 54.20323 2 -1431 20 3 3 18 56.23887 2 -1432 20 4 3 20 52.76245 2 -1433 20 5 7 19 53.60846 2 -1434 20 6 7 17 52.62024 2 -1435 20 7 7 15 44.8175 2 -1436 20 8 7 18 56.0588 2 -1437 20 9 7 20 46.46808 2 -1438 20 10 7 22 47.65786 2 -1439 20 11 11 19 58.48087 4 -1440 20 12 11 17 47.51574 2 -1441 20 13 11 16 40.33556 2 -1442 20 14 11 18 42.50637 2 -1443 20 15 11 20 41.29795 2 -1444 20 16 15 19 39.25114 2 -1445 20 17 15 17 40.52494 2 -1446 20 18 15 16 45.24591 2 -1447 20 19 15 18 32.49406 2 -1448 20 20 15 20 38.45397 2 -1449 20 21 19 19 34.94919 2 -1450 20 22 19 17 29.37568 2 -1451 20 23 19 15 30.61152 2 -1452 20 24 19 18 39.36539 2 -1453 20 25 19 20 30.26522 2 -1454 20 26 23 19 39.88869 2 -1455 20 27 23 17 31.2714 2 -1456 20 28 23 15 27.74651 2 -1457 20 29 23 18 38.07803 2 -1458 20 30 23 20 32.74336 2 -1459 20 31 27 23 48.61821 2 -1460 20 32 27 21 30.33378 2 -1461 20 33 27 19 29.02129 2 -1462 20 34 27 20 32.43792 2 -1463 20 35 27 22 31.16616 2 -1464 20 36 27 24 32.79062 2 -1465 20 37 31 15 59.93639 2 -1466 20 38 31 13 23.89173 2 -1467 20 39 31 14 31.99927 2 -1468 20 40 31 16 28.84796 2 -1469 20 41 35 23 33.08682 2 -1470 20 42 35 21 32.00898 2 -1471 20 43 35 19 31.87037 2 -1472 20 44 35 20 30.06942 2 -1473 20 45 35 22 29.95869 2 -1474 20 46 35 24 36.29855 2 -1475 20 47 39 19 65.91081 2 -1476 20 48 39 17 31.68026 2 -1477 20 49 39 16 30.94123 2 -1478 20 50 39 18 30.79306 2 -1479 20 51 39 20 38.59322 2 -1480 20 52 43 19 32.94684 2 -1481 20 53 43 17 31.87351 2 -1482 20 54 43 16 28.51291 2 -1483 20 55 43 18 30.3323 2 -1484 20 56 43 20 36.26713 2 -1485 20 57 47 19 33.12553 2 -1486 20 58 47 17 31.93426 2 -1487 20 59 47 15 43.15569 2 -1488 20 60 47 18 38.30992 2 -1489 20 61 47 20 43.69333 2 -1490 20 62 51 19 38.73166 2 -1491 20 63 51 17 37.43873 2 -1492 20 64 51 15 43.11426 2 -1493 20 65 51 18 39.02739 2 -1494 20 66 51 20 41.87002 2 -1495 20 67 55 21 42.45119 2 -1496 20 68 55 19 49.57749 2 -1497 20 69 55 17 53.71973 2 -1498 20 70 55 16 43.50056 2 -1499 20 71 55 18 51.02808 2 -1500 20 72 55 20 54.11141 2 -1501 20 73 59 19 52.833 2 -1502 20 74 59 17 56.0856 2 -1503 20 75 59 16 50.07323 2 -1504 20 76 59 18 51.52842 2 -1505 20 77 59 20 60.48577 2 -1506 21 0 3 25 50.93595 2 -1507 21 1 3 23 54.99516 2 -1508 21 2 3 21 41.8969 2 -1509 21 3 3 22 45.84635 2 -1510 21 4 3 24 45.69342 2 -1511 21 5 7 25 48.10387 2 -1512 21 6 7 23 45.9142 2 -1513 21 7 7 21 45.11292 2 -1514 21 8 7 24 48.36214 2 -1515 21 9 7 26 44.05977 2 -1516 21 10 11 25 51.14836 4 -1517 21 11 11 23 40.86469 2 -1518 21 12 11 21 40.25964 2 -1519 21 13 11 22 42.84819 4 -1520 21 14 11 24 37.66979 2 -1521 21 15 11 26 33.95934 2 -1522 21 16 15 25 39.64869 2 -1523 21 17 15 23 32.77389 2 -1524 21 18 15 21 28.28646 2 -1525 21 19 15 22 26.86613 2 -1526 21 20 15 24 28.46944 2 -1527 21 21 19 23 29.89091 2 -1528 21 22 19 21 27.9296 2 -1529 21 23 19 22 33.20736 2 -1530 21 24 19 24 26.5171 2 -1531 21 25 19 26 27.39199 2 -1532 21 26 23 23 34.08351 2 -1533 21 27 23 21 25.19528 2 -1534 21 28 23 22 30.30223 2 -1535 21 29 23 24 25.55647 2 -1536 21 30 23 26 26.83836 2 -1537 21 31 27 29 41.5829 2 -1538 21 32 27 27 30.24023 2 -1539 21 33 27 25 24.15114 2 -1540 21 34 27 26 28.31852 2 -1541 21 35 27 28 25.38145 2 -1542 21 36 27 30 47.18915 2 -1543 21 37 31 19 32.81924 2 -1544 21 38 31 17 20.23265 2 -1545 21 39 31 18 36.22477 2 -1546 21 40 31 20 23.87826 2 -1547 21 41 35 29 29.46118 2 -1548 21 42 35 27 26.99981 2 -1549 21 43 35 25 28.61932 2 -1550 21 44 35 26 27.579 2 -1551 21 45 35 28 29.20579 2 -1552 21 46 35 30 33.5238 2 -1553 21 47 39 25 29.38058 2 -1554 21 48 39 23 36.31763 2 -1555 21 49 39 21 29.68579 2 -1556 21 50 39 22 25.4025 2 -1557 21 51 39 24 47.91524 2 -1558 21 52 43 25 28.30908 2 -1559 21 53 43 23 30.55148 2 -1560 21 54 43 21 32.79121 2 -1561 21 55 43 22 32.33957 2 -1562 21 56 43 24 29.46465 2 -1563 21 57 47 23 29.85115 2 -1564 21 58 47 21 25.98557 2 -1565 21 59 47 22 29.75111 2 -1566 21 60 47 24 29.2957 2 -1567 21 61 47 26 35.9026 2 -1568 21 62 51 25 29.69484 2 -1569 21 63 51 23 39.0118 2 -1570 21 64 51 21 35.31119 2 -1571 21 65 51 22 37.21661 2 -1572 21 66 51 24 40.72398 2 -1573 21 67 51 26 44.97802 2 -1574 21 68 55 25 43.73366 2 -1575 21 69 55 23 45.39421 2 -1576 21 70 55 22 48.78583 2 -1577 21 71 55 24 44.57782 2 -1578 21 72 55 26 48.20587 2 -1579 21 73 59 23 49.53701 2 -1580 21 74 59 21 43.16331 2 -1581 21 75 59 22 42.39009 2 -1582 21 76 59 24 59.84021 2 -1583 21 77 59 26 50.37789 2 -1584 22 0 3 29 55.3149 2 -1585 22 1 3 27 40.47946 2 -1586 22 2 3 26 41.94526 2 -1587 22 3 3 28 39.69607 2 -1588 22 4 3 30 41.26273 2 -1589 22 5 7 29 47.0226 2 -1590 22 6 7 27 41.29464 2 -1591 22 7 7 28 62.49725 2 -1592 22 8 7 30 40.57435 2 -1593 22 9 7 32 34.59016 2 -1594 22 10 11 31 39.9617 2 -1595 22 11 11 29 43.95507 2 -1596 22 12 11 27 30.73579 2 -1597 22 13 11 28 35.47118 2 -1598 22 14 11 30 42.19948 2 -1599 22 15 15 31 43.97857 4 -1600 22 16 15 29 29.91504 2 -1601 22 17 15 27 29.63623 2 -1602 22 18 15 26 26.34958 2 -1603 22 19 15 28 30.911 2 -1604 22 20 15 30 23.74534 2 -1605 22 21 19 29 32.29098 2 -1606 22 22 19 27 26.77753 2 -1607 22 23 19 25 18.07783 2 -1608 22 24 19 28 22.44115 2 -1609 22 25 19 30 22.39116 2 -1610 22 26 23 29 30.73325 2 -1611 22 27 23 27 24.66345 2 -1612 22 28 23 25 19.75797 2 -1613 22 29 23 28 51.1308 2 -1614 22 30 23 30 19.26261 2 -1615 22 31 27 35 32.4054 2 -1616 22 32 27 33 25.37955 2 -1617 22 33 27 31 32.48642 2 -1618 22 34 27 32 25.58262 2 -1619 22 35 27 34 34.18034 2 -1620 22 36 31 25 26.34531 2 -1621 22 37 31 23 21.91383 2 -1622 22 38 31 21 13.59156 2 -1623 22 39 31 22 15.04179 2 -1624 22 40 31 24 17.51989 2 -1625 22 41 31 26 23.83635 2 -1626 22 42 35 33 31.87588 2 -1627 22 43 35 31 21.12189 2 -1628 22 44 35 32 23.05621 2 -1629 22 45 35 34 29.96743 2 -1630 22 46 35 36 32.22886 2 -1631 22 47 39 29 22.05745 2 -1632 22 48 39 27 30.96065 2 -1633 22 49 39 26 18.80443 2 -1634 22 50 39 28 33.00776 2 -1635 22 51 39 30 38.15712 2 -1636 22 52 43 29 22.22789 2 -1637 22 53 43 27 22.59572 2 -1638 22 54 43 26 19.47919 2 -1639 22 55 43 28 26.82345 2 -1640 22 56 43 30 34.41462 2 -1641 22 57 47 29 26.16997 2 -1642 22 58 47 27 31.0032 2 -1643 22 59 47 25 45.68586 2 -1644 22 60 47 28 28.74907 2 -1645 22 61 47 30 31.91472 2 -1646 22 62 47 32 39.83871 2 -1647 22 63 51 29 31.19411 2 -1648 22 64 51 27 40.03531 2 -1649 22 65 51 28 28.54143 2 -1650 22 66 51 30 35.11513 2 -1651 22 67 51 32 40.96223 4 -1652 22 68 55 31 32.46002 2 -1653 22 69 55 29 53.41737 2 -1654 22 70 55 27 46.20777 2 -1655 22 71 55 28 52.34626 2 -1656 22 72 55 30 48.66829 2 -1657 22 73 59 29 41.25186 2 -1658 22 74 59 27 39.24194 2 -1659 22 75 59 25 40.73029 2 -1660 22 76 59 28 40.7566 2 -1661 22 77 59 30 53.5506 4 -1662 23 0 3 35 50.258 2 -1663 23 1 3 33 42.36094 2 -1664 23 2 3 31 34.8002 2 -1665 23 3 3 32 53.02367 2 -1666 23 4 3 34 33.28747 2 -1667 23 5 3 36 35.18385 2 -1668 23 6 7 35 42.83291 2 -1669 23 7 7 33 35.96133 2 -1670 23 8 7 31 31.91849 2 -1671 23 9 7 34 43.38919 2 -1672 23 10 7 36 28.86318 2 -1673 23 11 11 35 38.95541 4 -1674 23 12 11 33 32.81353 2 -1675 23 13 11 32 35.56681 4 -1676 23 14 11 34 30.68456 2 -1677 23 15 11 36 30.04838 2 -1678 23 16 15 37 40.02962 2 -1679 23 17 15 35 33.73285 2 -1680 23 18 15 33 34.13649 2 -1681 23 19 15 32 21.5365 2 -1682 23 20 15 34 21.3081 2 -1683 23 21 15 36 25.54383 2 -1684 23 22 19 33 25.17456 2 -1685 23 23 19 31 17.60043 2 -1686 23 24 19 32 19.11075 2 -1687 23 25 19 34 17.6579 2 -1688 23 26 19 36 20.11817 2 -1689 23 27 23 33 23.80699 2 -1690 23 28 23 31 15.6879 2 -1691 23 29 23 32 25.2162 2 -1692 23 30 23 34 19.09952 2 -1693 23 31 23 36 27.7982 2 -1694 23 32 27 39 25.08376 2 -1695 23 33 27 37 21.46793 2 -1696 23 34 27 36 27.76627 2 -1697 23 35 27 38 23.35451 2 -1698 23 36 27 40 24.96428 2 -1699 23 37 31 31 15.203 2 -1700 23 38 31 29 11.30968 2 -1701 23 39 31 27 11.57349 2 -1702 23 40 31 28 17.00231 2 -1703 23 41 31 30 23.16504 2 -1704 23 42 31 32 15.67381 2 -1705 23 43 35 39 22.23662 2 -1706 23 44 35 37 17.49342 2 -1707 23 45 35 35 34.87571 2 -1708 23 46 35 38 17.59521 2 -1709 23 47 35 40 23.21656 2 -1710 23 48 39 35 30.6705 2 -1711 23 49 39 33 19.63606 2 -1712 23 50 39 31 24.11922 2 -1713 23 51 39 32 15.68685 2 -1714 23 52 39 34 22.6699 2 -1715 23 53 43 35 21.10495 2 -1716 23 54 43 33 37.95567 2 -1717 23 55 43 31 25.72046 2 -1718 23 56 43 32 16.51148 2 -1719 23 57 43 34 30.01747 2 -1720 23 58 47 35 18.23321 2 -1721 23 59 47 33 20.14052 2 -1722 23 60 47 31 24.52983 2 -1723 23 61 47 34 27.77156 2 -1724 23 62 47 36 29.92637 2 -1725 23 63 47 38 32.37162 2 -1726 23 64 51 35 22.95052 2 -1727 23 65 51 33 23.31559 2 -1728 23 66 51 31 37.56861 2 -1729 23 67 51 34 29.9937 2 -1730 23 68 51 36 32.17867 2 -1731 23 69 55 35 36.13076 2 -1732 23 70 55 33 34.51855 2 -1733 23 71 55 32 32.48552 2 -1734 23 72 55 34 35.40644 2 -1735 23 73 55 36 48.35004 2 -1736 23 74 59 35 35.97611 2 -1737 23 75 59 33 33.36023 2 -1738 23 76 59 31 50.3663 2 -1739 23 77 59 32 35.06155 2 -1740 23 78 59 34 43.81896 2 -1741 23 79 59 36 45.1432 2 -1742 24 0 3 39 44.36897 2 -1743 24 1 3 37 36.23255 2 -1744 24 2 3 38 39.79 2 -1745 24 3 3 40 35.05175 2 -1746 24 4 4 2 56.34629 2 -1747 24 5 8 3 63.48489 2 -1748 24 6 8 1 60.99437 4 -1749 24 7 7 39 29.23341 2 -1750 24 8 7 37 22.59206 2 -1751 24 9 7 38 32.65069 2 -1752 24 10 7 40 26.63753 2 -1753 24 11 11 39 30.10697 2 -1754 24 12 11 37 28.71769 2 -1755 24 13 11 38 29.87729 2 -1756 24 14 11 40 30.26959 2 -1757 24 15 12 2 42.07954 2 -1758 24 16 16 3 56.08922 2 -1759 24 17 16 1 54.8096 2 -1760 24 18 15 39 19.40093 2 -1761 24 19 15 38 22.37485 2 -1762 24 20 15 40 19.09376 2 -1763 24 21 19 39 23.87507 2 -1764 24 22 19 37 22.44179 2 -1765 24 23 19 35 13.31628 2 -1766 24 24 19 38 21.04102 2 -1767 24 25 19 40 12.6246 2 -1768 24 26 20 2 45.92144 3 -1769 24 27 23 39 16.90904 2 -1770 24 28 23 37 15.37624 2 -1771 24 29 23 35 8.87002 2 -1772 24 30 23 38 14.75957 2 -1773 24 31 23 40 12.25579 2 -1774 24 32 28 3 41.80525 2 -1775 24 33 28 1 40.74882 2 -1776 24 34 28 2 41.93495 2 -1777 24 35 28 4 43.99226 2 -1778 24 36 28 6 43.14657 2 -1779 24 37 31 37 12.51438 2 -1780 24 38 31 35 26.2883 2 -1781 24 39 31 33 8.99933 2 -1782 24 40 31 34 9.09757 2 -1783 24 41 31 36 14.82305 2 -1784 24 42 31 38 12.23145 2 -1785 24 43 36 5 40.98503 2 -1786 24 44 36 3 41.95934 2 -1787 24 45 36 1 50.95021 2 -1788 24 46 36 2 40.98618 2 -1789 24 47 36 4 42.59413 2 -1790 24 48 39 39 18.15315 2 -1791 24 49 39 37 13.40093 2 -1792 24 50 39 36 8.86896 2 -1793 24 51 39 38 15.37729 2 -1794 24 52 39 40 22.03489 2 -1795 24 53 44 1 45.29771 2 -1796 24 54 43 39 18.40909 2 -1797 24 55 43 37 21.8511 2 -1798 24 56 43 36 13.57933 2 -1799 24 57 43 38 23.62665 2 -1800 24 58 43 40 24.09718 2 -1801 24 59 47 39 17.73422 2 -1802 24 60 47 37 21.92738 2 -1803 24 61 47 40 19.99187 2 -1804 24 62 48 2 44.43922 2 -1805 24 63 48 4 61.49428 4 -1806 24 64 52 1 42.91843 2 -1807 24 65 51 39 25.56067 2 -1808 24 66 51 37 25.0468 2 -1809 24 67 51 38 29.27852 2 -1810 24 68 51 40 30.9606 2 -1811 24 69 55 39 20.20782 2 -1812 24 70 55 37 33.06623 2 -1813 24 71 55 38 30.06635 2 -1814 24 72 55 40 27.76209 2 -1815 24 73 56 2 59.60094 2 -1816 24 74 56 4 61.55651 2 -1817 24 75 60 1 56.45082 2 -1818 24 76 59 39 34.02033 2 -1819 24 77 59 37 36.08378 2 -1820 24 78 59 38 37.14177 2 -1821 24 79 59 40 49.25991 2 -1822 25 0 4 5 59.26097 2 -1823 25 1 4 3 53.81316 2 -1824 25 2 4 1 53.72804 2 -1825 25 3 4 4 50.81545 2 -1826 25 4 4 6 52.09027 2 -1827 25 5 8 7 55.75225 4 -1828 25 6 8 5 57.64535 2 -1829 25 7 8 2 52.73697 2 -1830 25 8 8 4 47.39524 2 -1831 25 9 8 6 50.78643 2 -1832 25 10 12 5 50.37256 4 -1833 25 11 12 3 50.4255 4 -1834 25 12 12 1 41.41809 2 -1835 25 13 12 4 51.47022 2 -1836 25 14 12 6 38.85351 2 -1837 25 15 12 8 48.79076 2 -1838 25 16 16 7 50.55106 2 -1839 25 17 16 5 50.36211 4 -1840 25 18 16 2 42.41499 2 -1841 25 19 16 4 35.86627 2 -1842 25 20 16 6 39.11259 2 -1843 25 21 20 5 38.67058 2 -1844 25 22 20 3 40.88596 2 -1845 25 23 20 1 38.43241 2 -1846 25 24 20 4 34.33798 2 -1847 25 25 20 6 43.02993 2 -1848 25 26 20 8 40.41363 2 -1849 25 27 24 5 41.30463 2 -1850 25 28 24 3 33.50338 2 -1851 25 29 24 1 32.84019 2 -1852 25 30 24 2 34.32403 2 -1853 25 31 24 4 34.22294 2 -1854 25 32 28 9 39.83839 2 -1855 25 33 28 7 36.82985 2 -1856 25 34 28 5 35.57127 2 -1857 25 35 28 8 36.72119 2 -1858 25 36 28 10 37.50177 2 -1859 25 37 32 3 42.25986 2 -1860 25 38 32 1 32.09977 2 -1861 25 39 31 39 6.33926 2 -1862 25 40 31 40 6.33926 2 -1863 25 41 32 2 30.58318 2 -1864 25 42 32 4 33.00989 2 -1865 25 43 36 9 40.29986 2 -1866 25 44 36 7 37.13652 2 -1867 25 45 36 6 34.84674 2 -1868 25 46 36 8 35.91202 2 -1869 25 47 36 10 40.19582 2 -1870 25 48 40 3 32.52557 2 -1871 25 49 40 1 31.81273 2 -1872 25 50 40 2 30.65905 2 -1873 25 51 40 4 33.80279 2 -1874 25 52 40 6 38.8328 2 -1875 25 53 44 7 41.27052 2 -1876 25 54 44 5 40.48705 2 -1877 25 55 44 3 56.56642 2 -1878 25 56 44 2 37.61565 2 -1879 25 57 44 4 38.48821 2 -1880 25 58 44 6 39.58088 2 -1881 25 59 48 5 41.11194 2 -1882 25 60 48 3 37.64373 2 -1883 25 61 48 1 49.08298 4 -1884 25 62 48 6 46.77545 2 -1885 25 63 48 8 47.83757 2 -1886 25 64 52 7 45.68708 2 -1887 25 65 52 5 37.82052 2 -1888 25 66 52 3 47.18513 2 -1889 25 67 52 2 50.60204 4 -1890 25 68 52 4 47.13361 4 -1891 25 69 52 6 51.4272 2 -1892 25 70 56 5 49.81577 2 -1893 25 71 56 3 49.48124 2 -1894 25 72 56 1 56.0093 2 -1895 25 73 56 6 58.18106 2 -1896 25 74 56 8 59.55824 2 -1897 25 75 60 5 51.49863 2 -1898 25 76 60 3 54.32107 4 -1899 25 77 60 2 50.81965 2 -1900 25 78 60 4 52.36545 2 -1901 25 79 60 6 66.96565 4 -1902 26 0 4 11 56.02143 2 -1903 26 1 4 9 57.30304 2 -1904 26 2 4 7 46.75468 2 -1905 26 3 4 8 46.12902 2 -1906 26 4 4 10 51.71529 2 -1907 26 5 4 12 45.65944 4 -1908 26 6 8 11 53.62934 2 -1909 26 7 8 9 47.30428 2 -1910 26 8 8 8 57.16048 2 -1911 26 9 8 10 42.40046 2 -1912 26 10 8 12 44.14269 2 -1913 26 11 12 11 48.88389 2 -1914 26 12 12 9 46.70776 4 -1915 26 13 12 7 38.96931 2 -1916 26 14 12 10 44.53427 2 -1917 26 15 12 12 36.58342 2 -1918 26 16 12 14 38.01872 2 -1919 26 17 16 11 43.85205 2 -1920 26 18 16 9 39.07088 2 -1921 26 19 16 8 36.13008 2 -1922 26 20 16 10 50.65685 2 -1923 26 21 16 12 42.17418 2 -1924 26 22 20 11 34.89164 2 -1925 26 23 20 9 32.36925 2 -1926 26 24 20 7 31.54575 2 -1927 26 25 20 10 31.17931 2 -1928 26 26 20 12 33.59857 2 -1929 26 27 20 14 33.49022 2 -1930 26 28 24 9 31.7406 2 -1931 26 29 24 7 28.32919 2 -1932 26 30 24 6 40.49699 2 -1933 26 31 24 8 28.43224 2 -1934 26 32 24 10 33.87539 2 -1935 26 33 28 13 33.93361 2 -1936 26 34 28 11 32.03982 2 -1937 26 35 28 12 32.75182 2 -1938 26 36 28 14 32.99021 2 -1939 26 37 28 16 33.2504 2 -1940 26 38 32 9 41.24565 2 -1941 26 39 32 7 27.67699 2 -1942 26 40 32 5 26.34632 2 -1943 26 41 32 6 26.26449 2 -1944 26 42 32 8 27.27186 2 -1945 26 43 32 10 30.65818 2 -1946 26 44 36 15 32.43903 2 -1947 26 45 36 13 31.73557 2 -1948 26 46 36 11 32.56069 2 -1949 26 47 36 12 31.37308 2 -1950 26 48 36 14 34.75555 2 -1951 26 49 40 9 31.50018 2 -1952 26 50 40 7 29.44768 2 -1953 26 51 40 5 42.00579 2 -1954 26 52 40 8 33.68502 2 -1955 26 53 40 10 32.51994 2 -1956 26 54 44 13 56.32317 2 -1957 26 55 44 11 41.67016 2 -1958 26 56 44 9 43.37265 2 -1959 26 57 44 8 38.16363 2 -1960 26 58 44 10 32.7067 2 -1961 26 59 44 12 35.74579 2 -1962 26 60 48 11 36.21559 2 -1963 26 61 48 9 39.19237 2 -1964 26 62 48 7 38.66244 2 -1965 26 63 48 10 39.57546 2 -1966 26 64 48 12 47.81415 2 -1967 26 65 52 13 47.07186 2 -1968 26 66 52 11 41.49562 4 -1969 26 67 52 9 48.93307 2 -1970 26 68 52 8 37.84982 2 -1971 26 69 52 10 44.20981 2 -1972 26 70 52 12 46.78387 2 -1973 26 71 56 11 43.16601 2 -1974 26 72 56 9 42.91585 2 -1975 26 73 56 7 50.72153 2 -1976 26 74 56 10 52.63962 2 -1977 26 75 56 12 54.89209 2 -1978 26 76 60 11 44.96856 2 -1979 26 77 60 9 55.47915 2 -1980 26 78 60 7 61.34841 2 -1981 26 79 60 8 47.71787 2 -1982 26 80 60 10 55.42291 2 -1983 26 81 60 12 63.17311 2 -1984 27 0 4 17 57.29134 2 -1985 27 1 4 15 50.93589 2 -1986 27 2 4 13 46.88459 2 -1987 27 3 4 14 44.79885 2 -1988 27 4 4 16 49.29922 2 -1989 27 5 4 18 39.52213 2 -1990 27 6 8 15 52.12895 4 -1991 27 7 8 13 38.34397 2 -1992 27 8 8 14 40.50326 2 -1993 27 9 8 16 44.10547 2 -1994 27 10 8 18 31.56349 2 -1995 27 11 12 17 42.67323 2 -1996 27 12 12 15 43.48499 2 -1997 27 13 12 13 34.48336 2 -1998 27 14 12 16 35.691 2 -1999 27 15 12 18 38.38006 2 -2000 27 16 16 17 47.71006 2 -2001 27 17 16 15 36.10179 2 -2002 27 18 16 13 36.71685 2 -2003 27 19 16 14 35.57934 2 -2004 27 20 16 16 36.49156 4 -2005 27 21 16 18 30.97985 2 -2006 27 22 20 15 30.72913 2 -2007 27 23 20 13 29.14961 2 -2008 27 24 20 16 34.19321 2 -2009 27 25 20 18 61.2061 2 -2010 27 26 20 20 28.45802 2 -2011 27 27 24 15 36.46644 2 -2012 27 28 24 13 26.27263 2 -2013 27 29 24 11 29.38414 2 -2014 27 30 24 12 30.27789 2 -2015 27 31 24 14 25.37096 2 -2016 27 32 24 16 26.7277 2 -2017 27 33 28 19 31.09301 2 -2018 27 34 28 17 28.04711 2 -2019 27 35 28 15 27.11281 2 -2020 27 36 28 18 29.9983 2 -2021 27 37 28 20 29.89654 2 -2022 27 38 32 15 42.49075 2 -2023 27 39 32 13 27.88097 2 -2024 27 40 32 11 21.39763 2 -2025 27 41 32 12 25.49237 2 -2026 27 42 32 14 33.64598 2 -2027 27 43 32 16 26.33716 2 -2028 27 44 36 19 32.32446 2 -2029 27 45 36 17 26.78166 2 -2030 27 46 36 16 24.6142 2 -2031 27 47 36 18 28.36215 2 -2032 27 48 36 20 31.87239 2 -2033 27 49 40 15 27.40577 2 -2034 27 50 40 13 23.31908 2 -2035 27 51 40 11 26.26678 2 -2036 27 52 40 12 26.63194 2 -2037 27 53 40 14 26.25324 2 -2038 27 54 40 16 33.99304 2 -2039 27 55 44 19 32.40273 2 -2040 27 56 44 17 28.59854 2 -2041 27 57 44 15 43.12988 2 -2042 27 58 44 14 37.60856 2 -2043 27 59 44 16 32.27695 2 -2044 27 60 48 17 29.71869 2 -2045 27 61 48 15 36.55375 2 -2046 27 62 48 13 37.61643 2 -2047 27 63 48 14 41.31061 4 -2048 27 64 48 16 36.33362 2 -2049 27 65 48 18 44.35564 2 -2050 27 66 52 17 37.54829 2 -2051 27 67 52 15 36.71017 2 -2052 27 68 52 14 34.10392 2 -2053 27 69 52 16 44.37299 2 -2054 27 70 52 18 42.44064 2 -2055 27 71 56 17 37.20854 2 -2056 27 72 56 15 46.58292 2 -2057 27 73 56 13 45.58331 4 -2058 27 74 56 14 36.81592 2 -2059 27 75 56 16 50.00973 2 -2060 27 76 60 17 37.83576 2 -2061 27 77 60 15 48.67456 2 -2062 27 78 60 13 50.86467 2 -2063 27 79 60 14 40.8497 2 -2064 27 80 60 16 54.77417 2 -2065 27 81 60 18 56.64077 2 -2066 28 0 4 21 50.59688 2 -2067 28 1 4 19 45.61307 2 -2068 28 2 4 20 52.95526 2 -2069 28 3 4 22 40.427 2 -2070 28 4 4 24 42.72976 2 -2071 28 5 8 21 47.63382 2 -2072 28 6 8 19 39.78467 2 -2073 28 7 8 17 35.02371 2 -2074 28 8 8 20 37.20463 2 -2075 28 9 8 22 40.05184 2 -2076 28 10 8 24 36.23056 2 -2077 28 11 12 23 46.63044 2 -2078 28 12 12 21 38.67076 2 -2079 28 13 12 19 32.76457 2 -2080 28 14 12 20 30.12076 2 -2081 28 15 12 22 34.15728 2 -2082 28 16 16 23 43.4642 2 -2083 28 17 16 21 35.78359 2 -2084 28 18 16 19 31.12434 2 -2085 28 19 16 20 32.80799 2 -2086 28 20 16 22 69.69596 2 -2087 28 21 16 24 22.93966 2 -2088 28 22 20 21 28.40452 2 -2089 28 23 20 19 26.88715 2 -2090 28 24 20 17 19.31766 2 -2091 28 25 20 22 23.80414 2 -2092 28 26 20 24 25.92414 2 -2093 28 27 24 21 31.27535 2 -2094 28 28 24 19 27.71412 2 -2095 28 29 24 17 18.92325 2 -2096 28 30 24 18 34.04465 2 -2097 28 31 24 20 33.10399 2 -2098 28 32 24 22 27.97546 2 -2099 28 33 28 23 25.25079 2 -2100 28 34 28 21 22.90913 2 -2101 28 35 28 22 22.14627 2 -2102 28 36 28 24 23.0605 2 -2103 28 37 28 26 56.36246 2 -2104 28 38 32 21 22.81038 2 -2105 28 39 32 19 20.59 2 -2106 28 40 32 17 19.16478 2 -2107 28 41 32 18 20.01442 2 -2108 28 42 32 20 38.48217 2 -2109 28 43 32 22 24.35493 2 -2110 28 44 36 25 24.85716 2 -2111 28 45 36 23 22.74977 2 -2112 28 46 36 21 30.65591 2 -2113 28 47 36 22 26.04464 2 -2114 28 48 36 24 25.43448 2 -2115 28 49 40 21 30.58951 2 -2116 28 50 40 19 25.87894 2 -2117 28 51 40 17 36.77532 2 -2118 28 52 40 18 30.0858 2 -2119 28 53 40 20 29.62746 2 -2120 28 54 40 22 25.76629 2 -2121 28 55 44 23 27.77794 2 -2122 28 56 44 21 25.04575 2 -2123 28 57 44 18 21.03382 2 -2124 28 58 44 20 32.98619 2 -2125 28 59 44 22 28.24443 2 -2126 28 60 48 23 27.55327 2 -2127 28 61 48 21 32.85538 2 -2128 28 62 48 19 30.23559 2 -2129 28 63 48 20 33.97953 2 -2130 28 64 48 22 33.6173 2 -2131 28 65 48 24 38.57887 2 -2132 28 66 52 21 33.4955 2 -2133 28 67 52 19 30.59729 2 -2134 28 68 52 20 32.5159 2 -2135 28 69 52 22 37.48841 2 -2136 28 70 52 24 49.24375 2 -2137 28 71 56 23 32.63817 2 -2138 28 72 56 21 39.34477 2 -2139 28 73 56 19 36.57401 2 -2140 28 74 56 18 31.2626 2 -2141 28 75 56 20 36.74699 2 -2142 28 76 56 22 46.27369 2 -2143 28 77 60 23 45.59659 2 -2144 28 78 60 21 45.12996 2 -2145 28 79 60 19 49.30221 2 -2146 28 80 60 20 47.35714 2 -2147 28 81 60 22 57.08654 2 -2148 29 0 4 27 50.49825 2 -2149 29 1 4 25 42.98549 2 -2150 29 2 4 23 36.00324 2 -2151 29 3 4 26 42.07781 2 -2152 29 4 4 28 44.09374 2 -2153 29 5 4 30 31.16755 2 -2154 29 6 8 27 47.355 2 -2155 29 7 8 25 36.26671 4 -2156 29 8 8 23 33.72613 2 -2157 29 9 8 26 34.68059 2 -2158 29 10 8 28 34.04838 2 -2159 29 11 8 30 37.162 2 -2160 29 12 12 27 31.82111 2 -2161 29 13 12 25 32.39305 2 -2162 29 14 12 24 30.66965 2 -2163 29 15 12 26 29.91812 2 -2164 29 16 12 28 21.85906 2 -2165 29 17 16 29 34.40491 2 -2166 29 18 16 27 28.87911 2 -2167 29 19 16 25 24.77017 2 -2168 29 20 16 26 34.44117 2 -2169 29 21 16 28 20.20852 2 -2170 29 22 16 30 20.45154 2 -2171 29 23 20 27 30.7013 2 -2172 29 24 20 25 20.98249 2 -2173 29 25 20 23 18.08974 2 -2174 29 26 20 26 18.81892 2 -2175 29 27 20 28 18.23539 2 -2176 29 28 24 27 24.63844 2 -2177 29 29 24 25 21.19884 2 -2178 29 30 24 23 17.80637 2 -2179 29 31 24 24 19.17204 2 -2180 29 32 24 26 17.38253 2 -2181 29 33 24 28 16.91697 2 -2182 29 34 28 29 22.52665 2 -2183 29 35 28 27 19.07564 2 -2184 29 36 28 25 15.3825 2 -2185 29 37 28 28 17.57635 2 -2186 29 38 28 30 20.00539 2 -2187 29 39 32 27 26.02368 2 -2188 29 40 32 25 24.92257 2 -2189 29 41 32 23 15.61885 2 -2190 29 42 32 24 14.69049 2 -2191 29 43 32 26 16.35638 2 -2192 29 44 32 28 18.70627 2 -2193 29 45 36 29 20.43756 2 -2194 29 46 36 27 17.48264 2 -2195 29 47 36 26 25.23576 2 -2196 29 48 36 28 17.08961 2 -2197 29 49 36 30 26.36484 2 -2198 29 50 40 27 18.70403 2 -2199 29 51 40 25 20.28196 2 -2200 29 52 40 23 20.91108 2 -2201 29 53 40 24 18.04547 2 -2202 29 54 40 26 21.12194 2 -2203 29 55 40 28 44.28904 2 -2204 29 56 44 27 33.9364 2 -2205 29 57 44 25 18.73698 2 -2206 29 58 44 24 16.08829 2 -2207 29 59 44 26 27.65841 2 -2208 29 60 44 28 31.89127 2 -2209 29 61 48 29 25.42222 2 -2210 29 62 48 27 25.77734 2 -2211 29 63 48 25 35.08754 2 -2212 29 64 48 26 25.23065 2 -2213 29 65 48 28 26.90256 2 -2214 29 66 48 30 35.39901 2 -2215 29 67 52 27 21.79084 2 -2216 29 68 52 25 31.71945 2 -2217 29 69 52 23 31.35504 2 -2218 29 70 52 26 32.85186 2 -2219 29 71 52 28 35.53319 2 -2220 29 72 56 29 24.82712 2 -2221 29 73 56 27 33.96372 2 -2222 29 74 56 25 35.34804 2 -2223 29 75 56 24 34.37396 2 -2224 29 76 56 26 31.60671 2 -2225 29 77 56 28 42.39491 2 -2226 29 78 60 29 36.34469 2 -2227 29 79 60 27 45.63286 2 -2228 29 80 60 25 57.14019 2 -2229 29 81 60 24 40.43231 2 -2230 29 82 60 26 50.44007 2 -2231 29 83 60 28 51.54478 2 -2232 30 0 4 33 50.78391 2 -2233 30 1 4 31 40.20656 2 -2234 30 2 4 29 33.98006 2 -2235 30 3 4 32 38.07663 2 -2236 30 4 4 34 34.73621 2 -2237 30 5 4 36 32.57693 2 -2238 30 6 8 33 38.49987 2 -2239 30 7 8 31 35.26524 2 -2240 30 8 8 29 25.94837 2 -2241 30 9 8 32 36.58682 2 -2242 30 10 8 34 34.05546 2 -2243 30 11 12 33 43.10463 2 -2244 30 12 12 31 31.56381 2 -2245 30 13 12 29 21.80438 2 -2246 30 14 12 30 27.61609 2 -2247 30 15 12 32 27.01282 2 -2248 30 16 12 34 20.60162 2 -2249 30 17 16 33 33.57324 2 -2250 30 18 16 31 21.84753 2 -2251 30 19 16 32 21.95727 2 -2252 30 20 16 34 22.38491 2 -2253 30 21 16 36 20.19149 2 -2254 30 22 20 33 24.67459 2 -2255 30 23 20 31 25.08452 2 -2256 30 24 20 29 15.03444 2 -2257 30 25 20 30 22.88859 2 -2258 30 26 20 32 14.27185 2 -2259 30 27 20 34 15.89784 2 -2260 30 28 24 33 20.41937 2 -2261 30 29 24 31 19.31073 2 -2262 30 30 24 29 13.25179 2 -2263 30 31 24 30 13.29235 2 -2264 30 32 24 32 17.63742 2 -2265 30 33 24 34 13.90329 2 -2266 30 34 28 33 16.50303 2 -2267 30 35 28 31 14.60082 2 -2268 30 36 28 32 19.52877 2 -2269 30 37 28 34 14.12989 2 -2270 30 38 28 36 23.60427 2 -2271 30 39 32 33 15.21009 2 -2272 30 40 32 31 11.35289 2 -2273 30 41 32 29 10.84917 2 -2274 30 42 32 30 18.85028 2 -2275 30 43 32 32 14.08472 2 -2276 30 44 32 34 15.46022 2 -2277 30 45 36 35 24.8668 2 -2278 30 46 36 33 22.5715 2 -2279 30 47 36 31 22.61494 2 -2280 30 48 36 32 14.24846 2 -2281 30 49 36 34 16.50201 2 -2282 30 50 40 33 14.67415 2 -2283 30 51 40 31 13.7078 2 -2284 30 52 40 29 14.03836 2 -2285 30 53 40 30 12.69945 2 -2286 30 54 40 32 19.56342 2 -2287 30 55 40 34 23.08451 2 -2288 30 56 44 33 18.64355 2 -2289 30 57 44 31 14.67015 2 -2290 30 58 44 29 24.99106 2 -2291 30 59 44 30 15.03351 2 -2292 30 60 44 32 29.74402 2 -2293 30 61 44 34 24.51519 2 -2294 30 62 48 35 22.35932 2 -2295 30 63 48 33 22.27525 2 -2296 30 64 48 31 42.80984 2 -2297 30 65 48 32 20.71209 2 -2298 30 66 48 34 29.87888 2 -2299 30 67 52 33 20.5528 2 -2300 30 68 52 31 26.87426 2 -2301 30 69 52 29 35.69175 2 -2302 30 70 52 30 32.31132 2 -2303 30 71 52 32 40.13217 2 -2304 30 72 52 34 37.27687 2 -2305 30 73 56 33 29.95896 2 -2306 30 74 56 31 37.72023 2 -2307 30 75 56 30 25.26054 2 -2308 30 76 56 32 34.69682 2 -2309 30 77 56 34 37.62319 2 -2310 30 78 60 35 32.41652 2 -2311 30 79 60 33 30.93543 2 -2312 30 80 60 31 44.65578 2 -2313 30 81 60 30 35.12848 2 -2314 30 82 60 32 36.90158 2 -2315 30 83 60 34 46.9919 2 -2316 31 0 4 39 40.61208 2 -2317 31 1 4 37 38.53868 2 -2318 31 2 4 35 34.43842 2 -2319 31 3 4 38 32.45287 2 -2320 31 4 4 40 29.44719 2 -2321 31 5 8 39 35.06649 2 -2322 31 6 8 37 33.83283 2 -2323 31 7 8 35 28.87932 2 -2324 31 8 8 36 27.34587 2 -2325 31 9 8 38 27.3652 2 -2326 31 10 8 40 25.48396 2 -2327 31 11 12 39 32.635 2 -2328 31 12 12 37 32.49504 2 -2329 31 13 12 35 21.9634 2 -2330 31 14 12 36 24.29384 2 -2331 31 15 12 38 17.77989 2 -2332 31 16 12 40 27.11833 2 -2333 31 17 16 39 34.50774 2 -2334 31 18 16 37 22.65107 2 -2335 31 19 16 35 14.24787 2 -2336 31 20 16 38 18.67686 2 -2337 31 21 16 40 17.10405 2 -2338 31 22 20 39 23.54087 2 -2339 31 23 20 37 21.39502 2 -2340 31 24 20 35 16.51866 2 -2341 31 25 20 36 15.87177 2 -2342 31 26 20 38 13.35195 2 -2343 31 27 20 40 11.51629 2 -2344 31 28 24 39 20.2789 2 -2345 31 29 24 37 13.35582 2 -2346 31 30 24 35 11.86176 2 -2347 31 31 24 36 13.12001 2 -2348 31 32 24 38 8.52136 2 -2349 31 33 24 40 10.76357 2 -2350 31 34 28 39 17.06751 2 -2351 31 35 28 37 9.00333 2 -2352 31 36 28 35 7.15639 2 -2353 31 37 28 38 8.70154 2 -2354 31 38 28 40 9.94586 2 -2355 31 39 32 39 12.37001 2 -2356 31 40 32 37 24.76144 2 -2357 31 41 32 35 11.50763 2 -2358 31 42 32 36 9.64216 2 -2359 31 43 32 38 14.22961 2 -2360 31 44 32 40 11.98094 2 -2361 31 45 36 39 9.94684 2 -2362 31 46 36 37 8.70056 2 -2363 31 47 36 36 7.20723 2 -2364 31 48 36 38 9.00232 2 -2365 31 49 36 40 17.16498 2 -2366 31 50 40 39 10.44029 2 -2367 31 51 40 37 8.52031 2 -2368 31 52 40 35 12.91819 2 -2369 31 53 40 36 12.38047 2 -2370 31 54 40 38 13.35487 2 -2371 31 55 40 40 21.40205 2 -2372 31 56 44 39 11.87032 2 -2373 31 57 44 37 13.32304 2 -2374 31 58 44 35 15.82594 2 -2375 31 59 44 36 16.59096 2 -2376 31 60 44 38 21.76793 2 -2377 31 61 44 40 23.68873 2 -2378 31 62 48 39 15.57055 2 -2379 31 63 48 37 18.76672 2 -2380 31 64 48 36 14.28782 2 -2381 31 65 48 38 22.34075 2 -2382 31 66 48 40 23.26248 2 -2383 31 67 52 39 18.5022 2 -2384 31 68 52 37 17.51252 2 -2385 31 69 52 35 28.02551 2 -2386 31 70 52 36 22.29824 2 -2387 31 71 52 38 32.10246 2 -2388 31 72 52 40 33.58579 2 -2389 31 73 56 39 25.45478 2 -2390 31 74 56 37 26.63439 2 -2391 31 75 56 35 29.26978 2 -2392 31 76 56 36 25.66024 2 -2393 31 77 56 38 33.95304 2 -2394 31 78 56 40 34.70107 2 -2395 31 79 60 39 29.33733 2 -2396 31 80 60 37 30.17089 2 -2397 31 81 60 36 34.23858 2 -2398 31 82 60 38 32.49756 2 -2399 31 83 60 40 44.42148 2 -2400 32 0 61 5 63.83178 2 -2401 32 1 61 3 51.93011 2 -2402 32 2 61 1 50.73648 2 -2403 32 3 61 2 50.62744 2 -2404 32 4 61 4 49.82671 2 -2405 32 5 65 5 54.21388 2 -2406 32 6 65 3 53.36172 2 -2407 32 7 65 1 41.62197 2 -2408 32 8 65 2 44.00079 2 -2409 32 9 65 4 43.88522 2 -2410 32 10 69 3 45.27717 2 -2411 32 11 69 1 43.12576 2 -2412 32 12 69 2 42.49795 2 -2413 32 13 69 4 42.1356 2 -2414 32 14 69 6 47.42852 2 -2415 32 15 73 3 36.32289 2 -2416 32 16 73 1 37.89657 2 -2417 32 17 73 2 36.72457 2 -2418 32 18 73 4 31.01947 2 -2419 32 19 77 5 32.48114 2 -2420 32 20 77 3 34.09136 2 -2421 32 21 77 1 26.62831 2 -2422 32 22 77 2 27.02003 2 -2423 32 23 77 4 27.81951 2 -2424 32 24 81 3 34.40985 2 -2425 32 25 81 1 30.44503 2 -2426 32 26 81 2 27.30859 2 -2427 32 27 81 4 28.08661 2 -2428 32 28 81 6 29.85682 2 -2429 32 29 85 3 36.90158 2 -2430 32 30 85 1 25.25227 2 -2431 32 31 85 2 28.40555 2 -2432 32 32 85 4 27.05733 2 -2433 32 33 85 6 27.17813 2 -2434 32 34 89 3 29.69327 2 -2435 32 35 89 1 23.05022 2 -2436 32 36 89 2 25.55792 2 -2437 32 37 89 4 31.18352 2 -2438 32 38 93 3 26.41537 2 -2439 32 39 93 1 24.09637 2 -2440 32 40 93 2 24.32544 2 -2441 32 41 93 4 24.63956 2 -2442 32 42 93 6 28.22455 2 -2443 32 43 97 5 28.74231 2 -2444 32 44 97 3 24.71029 2 -2445 32 45 97 1 23.52849 2 -2446 32 46 97 2 24.04405 2 -2447 32 47 97 4 27.04663 2 -2448 32 48 101 3 31.03807 2 -2449 32 49 101 1 25.55896 2 -2450 32 50 101 2 23.0498 2 -2451 32 51 101 4 30.06566 2 -2452 32 52 105 5 26.75637 2 -2453 32 53 105 3 27.03494 2 -2454 32 54 105 1 28.96117 2 -2455 32 55 105 2 25.25121 2 -2456 32 56 105 4 31.62692 2 -2457 32 57 109 5 29.80684 2 -2458 32 58 109 3 28.03649 2 -2459 32 59 109 1 27.25499 2 -2460 32 60 109 2 25.96592 2 -2461 32 61 109 4 33.99892 2 -2462 32 62 113 3 28.7557 2 -2463 32 63 113 1 28.20069 2 -2464 32 64 113 2 26.57941 2 -2465 32 65 113 4 43.38025 2 -2466 32 66 113 6 32.20545 2 -2467 32 67 117 3 31.42534 2 -2468 32 68 117 1 40.53443 2 -2469 32 69 117 2 34.4316 2 -2470 32 70 117 4 42.78668 4 -2471 32 71 121 5 40.3056 2 -2472 32 72 121 3 43.65811 2 -2473 32 73 121 1 43.42054 2 -2474 32 74 121 2 44.75683 2 -2475 32 75 121 4 45.97626 2 -2476 32 76 125 3 44.31318 2 -2477 32 77 125 1 45.2039 2 -2478 32 78 125 2 41.37185 2 -2479 32 79 125 4 55.02584 2 -2480 32 80 125 6 54.79089 2 -2481 32 81 129 3 50.17407 2 -2482 32 82 129 1 53.32759 2 -2483 32 83 129 2 53.39977 2 -2484 32 84 129 4 52.33812 2 -2485 32 85 129 6 62.43637 2 -2486 33 0 61 9 52.08613 2 -2487 33 1 61 7 48.94957 2 -2488 33 2 61 6 55.06522 2 -2489 33 3 61 8 56.41741 2 -2490 33 4 61 10 42.19602 2 -2491 33 5 65 9 49.95838 2 -2492 33 6 65 7 44.83217 2 -2493 33 7 65 6 53.03497 2 -2494 33 8 65 8 47.94183 2 -2495 33 9 65 10 36.50677 2 -2496 33 10 69 7 40.23822 2 -2497 33 11 69 5 35.13823 2 -2498 33 12 69 8 42.09471 2 -2499 33 13 69 10 41.31087 2 -2500 33 14 73 9 40.20259 2 -2501 33 15 73 7 31.06187 2 -2502 33 16 73 5 34.82559 2 -2503 33 17 73 6 31.28529 2 -2504 33 18 73 8 36.9363 2 -2505 33 19 77 9 37.17521 2 -2506 33 20 77 7 25.26241 2 -2507 33 21 77 6 28.17832 2 -2508 33 22 77 8 27.77879 2 -2509 33 23 77 10 21.92174 2 -2510 33 24 81 9 33.54655 2 -2511 33 25 81 7 27.72331 2 -2512 33 26 81 5 21.63373 2 -2513 33 27 81 8 21.52748 2 -2514 33 28 81 10 24.53982 2 -2515 33 29 85 7 33.14885 2 -2516 33 30 85 5 23.25277 2 -2517 33 31 85 8 27.24895 2 -2518 33 32 85 10 24.05592 2 -2519 33 33 89 9 29.36399 2 -2520 33 34 89 7 26.3072 2 -2521 33 35 89 5 19.60094 2 -2522 33 36 89 6 19.34534 2 -2523 33 37 89 8 20.72894 2 -2524 33 38 93 9 27.86634 2 -2525 33 39 93 7 19.86936 2 -2526 33 40 93 5 19.57322 2 -2527 33 41 93 8 20.6109 2 -2528 33 42 93 10 22.63884 2 -2529 33 43 97 9 22.66139 2 -2530 33 44 97 7 20.7028 2 -2531 33 45 97 6 19.5865 2 -2532 33 46 97 8 21.47975 2 -2533 33 47 97 10 22.95807 2 -2534 33 48 101 7 20.68974 2 -2535 33 49 101 5 20.86032 2 -2536 33 50 101 6 19.82554 2 -2537 33 51 101 8 26.57317 2 -2538 33 52 101 10 32.31494 2 -2539 33 53 105 9 22.8052 2 -2540 33 54 105 7 27.25 2 -2541 33 55 105 6 20.24286 2 -2542 33 56 105 8 30.2729 2 -2543 33 57 109 9 23.67566 2 -2544 33 58 109 7 21.821 2 -2545 33 59 109 6 21.99214 2 -2546 33 60 109 8 29.30479 2 -2547 33 61 109 10 34.127 2 -2548 33 62 113 9 22.00049 2 -2549 33 63 113 7 27.15353 2 -2550 33 64 113 5 28.16049 2 -2551 33 65 113 8 26.76023 2 -2552 33 66 113 10 31.307 2 -2553 33 67 117 7 34.01667 2 -2554 33 68 117 5 31.44653 2 -2555 33 69 117 6 35.78485 2 -2556 33 70 117 8 32.21042 2 -2557 33 71 117 10 44.03805 4 -2558 33 72 121 9 36.10737 2 -2559 33 73 121 7 46.94134 2 -2560 33 74 121 6 35.30034 2 -2561 33 75 121 8 40.80878 2 -2562 33 76 125 9 36.90641 2 -2563 33 77 125 7 48.98998 2 -2564 33 78 125 5 46.86728 2 -2565 33 79 125 8 45.07234 2 -2566 33 80 125 10 51.57792 2 -2567 33 81 129 9 42.04529 2 -2568 33 82 129 7 54.84148 2 -2569 33 83 129 5 52.50866 2 -2570 33 84 129 8 46.89552 2 -2571 33 85 129 10 51.69108 2 -2572 34 0 61 15 46.86082 2 -2573 34 1 61 13 42.24406 2 -2574 34 2 61 11 41.17057 2 -2575 34 3 61 12 47.04642 2 -2576 34 4 61 14 36.36988 2 -2577 34 5 65 13 47.73095 2 -2578 34 6 65 11 42.1391 2 -2579 34 7 65 12 50.73306 2 -2580 34 8 65 14 38.88637 2 -2581 34 9 69 13 42.61469 2 -2582 34 10 69 11 40.77661 2 -2583 34 11 69 9 34.37566 2 -2584 34 12 69 12 40.22993 2 -2585 34 13 69 14 32.58955 2 -2586 34 14 73 13 40.11647 2 -2587 34 15 73 11 36.36366 2 -2588 34 16 73 10 34.60639 2 -2589 34 17 73 12 31.56311 2 -2590 34 18 73 14 24.30464 2 -2591 34 19 77 15 33.17506 2 -2592 34 20 77 13 30.62755 2 -2593 34 21 77 11 17.76232 2 -2594 34 22 77 12 31.48584 2 -2595 34 23 77 14 18.19056 2 -2596 34 24 81 13 26.78506 2 -2597 34 25 81 11 17.48152 2 -2598 34 26 81 12 25.09083 2 -2599 34 27 81 14 17.61646 2 -2600 34 28 81 16 20.29746 2 -2601 34 29 85 11 19.50696 2 -2602 34 30 85 9 14.73609 2 -2603 34 31 85 12 27.37061 2 -2604 34 32 85 14 20.16317 2 -2605 34 33 89 13 23.95122 2 -2606 34 34 89 11 21.93561 2 -2607 34 35 89 10 19.06749 2 -2608 34 36 89 12 19.97875 2 -2609 34 37 89 14 23.75119 2 -2610 34 38 93 13 17.18763 2 -2611 34 39 93 11 17.26418 2 -2612 34 40 93 12 16.35261 2 -2613 34 41 93 14 17.42965 2 -2614 34 42 93 16 19.4976 2 -2615 34 43 97 15 20.00672 2 -2616 34 44 97 13 18.84743 2 -2617 34 45 97 11 16.14633 2 -2618 34 46 97 12 16.63272 2 -2619 34 47 97 14 17.7054 2 -2620 34 48 101 13 22.6536 2 -2621 34 49 101 11 17.14521 2 -2622 34 50 101 9 18.70389 2 -2623 34 51 101 12 21.13457 2 -2624 34 52 101 14 24.17537 2 -2625 34 53 105 13 17.06818 2 -2626 34 54 105 11 22.98179 2 -2627 34 55 105 10 18.29288 2 -2628 34 56 105 12 19.50591 2 -2629 34 57 109 15 19.89165 2 -2630 34 58 109 13 17.63029 2 -2631 34 59 109 11 25.12906 2 -2632 34 60 109 12 17.18099 2 -2633 34 61 109 14 28.35787 2 -2634 34 62 113 13 17.20385 2 -2635 34 63 113 11 27.23857 2 -2636 34 64 113 12 19.852 2 -2637 34 65 113 14 28.41421 2 -2638 34 66 113 16 38.7351 2 -2639 34 67 117 13 24.7059 2 -2640 34 68 117 11 29.79514 2 -2641 34 69 117 9 32.22628 2 -2642 34 70 117 12 35.72531 2 -2643 34 71 117 14 36.58735 2 -2644 34 72 121 13 33.11078 2 -2645 34 73 121 11 40.68026 2 -2646 34 74 121 10 33.20164 2 -2647 34 75 121 12 41.75414 2 -2648 34 76 121 14 43.38257 2 -2649 34 77 125 13 39.25239 2 -2650 34 78 125 11 51.07802 2 -2651 34 79 125 12 40.99748 2 -2652 34 80 125 14 47.44753 2 -2653 34 81 129 13 35.86368 2 -2654 34 82 129 11 49.35494 2 -2655 34 83 129 12 41.16568 2 -2656 34 84 129 14 42.41184 2 -2657 34 85 129 16 47.16243 2 -2658 35 0 61 19 54.59218 2 -2659 35 1 61 17 45.42195 2 -2660 35 2 61 16 44.89364 2 -2661 35 3 61 18 37.48907 2 -2662 35 4 61 20 40.25432 2 -2663 35 5 65 17 42.8837 2 -2664 35 6 65 15 35.14292 2 -2665 35 7 65 16 43.87044 2 -2666 35 8 65 18 41.53773 2 -2667 35 9 65 20 29.94435 2 -2668 35 10 69 17 37.16248 2 -2669 35 11 69 15 29.20499 2 -2670 35 12 69 16 40.54398 2 -2671 35 13 69 18 35.12751 2 -2672 35 14 69 20 26.3204 2 -2673 35 15 73 19 26.6086 2 -2674 35 16 73 17 27.1689 2 -2675 35 17 73 15 18.16258 2 -2676 35 18 73 16 26.07852 2 -2677 35 19 73 18 18.86169 2 -2678 35 20 77 19 26.53222 2 -2679 35 21 77 17 19.4628 2 -2680 35 22 77 16 22.68691 2 -2681 35 23 77 18 15.58274 2 -2682 35 24 77 20 15.01732 2 -2683 35 25 81 17 22.35832 2 -2684 35 26 81 15 12.25914 2 -2685 35 27 81 18 20.33565 2 -2686 35 28 81 20 13.43252 2 -2687 35 29 85 17 25.87594 2 -2688 35 30 85 15 15.34689 2 -2689 35 31 85 13 15.52035 2 -2690 35 32 85 16 22.19688 2 -2691 35 33 85 18 13.09833 2 -2692 35 34 89 19 21.62564 2 -2693 35 35 89 17 18.91892 2 -2694 35 36 89 15 10.12185 2 -2695 35 37 89 16 11.37794 2 -2696 35 38 89 18 12.40939 2 -2697 35 39 93 19 18.91605 2 -2698 35 40 93 17 11.58814 2 -2699 35 41 93 15 10.8047 2 -2700 35 42 93 18 12.62592 2 -2701 35 43 93 20 14.27016 2 -2702 35 44 97 19 21.78582 2 -2703 35 45 97 17 14.7581 2 -2704 35 46 97 16 10.16151 2 -2705 35 47 97 18 11.7862 2 -2706 35 48 97 20 25.04366 2 -2707 35 49 101 17 21.59554 2 -2708 35 50 101 15 14.35771 2 -2709 35 51 101 16 10.32973 2 -2710 35 52 101 18 18.24349 2 -2711 35 53 101 20 21.70627 2 -2712 35 54 105 17 13.13437 2 -2713 35 55 105 15 16.73391 2 -2714 35 56 105 14 13.33951 2 -2715 35 57 105 16 15.35222 2 -2716 35 58 105 18 25.14708 2 -2717 35 59 109 19 13.15691 2 -2718 35 60 109 17 21.47796 2 -2719 35 61 109 16 12.1481 2 -2720 35 62 109 18 23.08568 2 -2721 35 63 113 19 15.89471 2 -2722 35 64 113 17 21.62253 2 -2723 35 65 113 15 22.17308 2 -2724 35 66 113 18 73.37808 2 -2725 35 67 113 20 30.61932 2 -2726 35 68 117 17 26.13918 2 -2727 35 69 117 15 24.89501 2 -2728 35 70 117 16 20.12102 2 -2729 35 71 117 18 25.03586 2 -2730 35 72 117 20 29.76939 2 -2731 35 73 121 19 25.40336 2 -2732 35 74 121 17 35.08019 2 -2733 35 75 121 15 40.24238 2 -2734 35 76 121 16 28.81511 2 -2735 35 77 121 18 48.85665 2 -2736 35 78 125 19 30.29953 2 -2737 35 79 125 17 37.03282 2 -2738 35 80 125 15 44.08421 2 -2739 35 81 125 16 38.88944 2 -2740 35 82 125 18 41.42267 2 -2741 35 83 129 19 44.48575 2 -2742 35 84 129 17 36.84072 2 -2743 35 85 129 15 47.34765 2 -2744 35 86 129 18 45.58764 2 -2745 35 87 129 20 48.19455 2 -2746 36 0 61 25 47.70108 2 -2747 36 1 61 23 45.09718 2 -2748 36 2 61 21 31.33709 2 -2749 36 3 61 22 45.62884 2 -2750 36 4 61 24 30.3607 2 -2751 36 5 65 23 39.0112 2 -2752 36 6 65 21 36.81536 2 -2753 36 7 65 19 26.47312 2 -2754 36 8 65 22 31.10177 2 -2755 36 9 65 24 24.99592 2 -2756 36 10 69 23 30.14954 2 -2757 36 11 69 21 28.13208 2 -2758 36 12 69 19 20.29135 2 -2759 36 13 69 22 29.23314 2 -2760 36 14 69 24 23.74151 2 -2761 36 15 73 23 26.44139 2 -2762 36 16 73 21 23.4447 2 -2763 36 17 73 20 20.94899 2 -2764 36 18 73 22 21.26639 2 -2765 36 19 73 24 15.1066 2 -2766 36 20 77 23 18.99055 2 -2767 36 21 77 21 13.90729 2 -2768 36 22 77 22 15.49564 2 -2769 36 23 77 24 18.03038 2 -2770 36 24 81 23 25.66257 2 -2771 36 25 81 21 17.6513 2 -2772 36 26 81 19 9.92309 2 -2773 36 27 81 22 16.92569 2 -2774 36 28 81 24 10.06551 2 -2775 36 29 85 23 15.92208 2 -2776 36 30 85 21 15.20326 2 -2777 36 31 85 19 11.70513 2 -2778 36 32 85 20 15.01173 2 -2779 36 33 85 22 12.6288 2 -2780 36 34 89 23 15.92092 2 -2781 36 35 89 21 9.8951 2 -2782 36 36 89 20 11.59558 2 -2783 36 37 89 22 13.89909 2 -2784 36 38 89 24 8.73275 2 -2785 36 39 93 23 13.22294 2 -2786 36 40 93 21 7.29397 2 -2787 36 41 93 22 9.50844 2 -2788 36 42 93 24 11.99066 2 -2789 36 43 93 26 10.71715 2 -2790 36 44 97 25 10.14114 2 -2791 36 45 97 23 7.49265 2 -2792 36 46 97 21 12.24857 2 -2793 36 47 97 22 7.12702 2 -2794 36 48 97 24 13.19846 2 -2795 36 49 101 23 8.73178 2 -2796 36 50 101 21 13.74563 2 -2797 36 51 101 19 11.59464 2 -2798 36 52 101 22 9.89407 2 -2799 36 53 101 24 15.99628 2 -2800 36 54 105 21 10.74972 2 -2801 36 55 105 19 15.12747 2 -2802 36 56 105 20 10.98529 2 -2803 36 57 105 22 13.44876 2 -2804 36 58 105 24 16.20114 2 -2805 36 59 109 23 9.51821 2 -2806 36 60 109 21 16.05521 2 -2807 36 61 109 20 9.92202 2 -2808 36 62 109 22 18.42743 2 -2809 36 63 109 24 24.94083 2 -2810 36 64 113 23 14.6869 2 -2811 36 65 113 21 15.42316 2 -2812 36 66 113 22 20.03664 2 -2813 36 67 113 24 18.36504 2 -2814 36 68 117 23 14.87434 2 -2815 36 69 117 21 21.01222 2 -2816 36 70 117 19 21.62421 2 -2817 36 71 117 22 25.73217 2 -2818 36 72 117 24 27.40072 2 -2819 36 73 121 23 24.36928 2 -2820 36 74 121 21 33.34571 2 -2821 36 75 121 20 20.37384 2 -2822 36 76 121 22 28.68604 2 -2823 36 77 121 24 29.57611 2 -2824 36 78 125 23 25.35232 2 -2825 36 79 125 21 31.66413 2 -2826 36 80 125 20 26.07695 2 -2827 36 81 125 22 37.33842 2 -2828 36 82 125 24 34.91974 2 -2829 36 83 129 23 30.73963 2 -2830 36 84 129 21 42.60521 2 -2831 36 85 129 22 31.42838 2 -2832 36 86 129 24 40.37496 2 -2833 36 87 129 26 46.39509 2 -2834 37 0 61 29 45.05924 2 -2835 37 1 61 27 35.68485 2 -2836 37 2 61 26 39.7988 2 -2837 37 3 61 28 32.63985 2 -2838 37 4 61 30 30.19148 2 -2839 37 5 65 27 35.96064 2 -2840 37 6 65 25 32.7758 2 -2841 37 7 65 26 36.42781 2 -2842 37 8 65 28 31.59495 2 -2843 37 9 65 30 25.19851 2 -2844 37 10 69 27 30.91154 2 -2845 37 11 69 25 31.91948 2 -2846 37 12 69 26 27.70939 2 -2847 37 13 69 28 22.74606 2 -2848 37 14 69 30 20.56002 2 -2849 37 15 73 27 23.1384 2 -2850 37 16 73 25 19.76647 2 -2851 37 17 73 26 35.6033 2 -2852 37 18 73 28 16.81523 2 -2853 37 19 77 29 21.41509 2 -2854 37 20 77 27 19.27189 2 -2855 37 21 77 25 16.38085 2 -2856 37 22 77 26 21.60666 2 -2857 37 23 77 28 14.72515 2 -2858 37 24 81 29 17.80891 2 -2859 37 25 81 27 18.41989 2 -2860 37 26 81 25 9.71812 2 -2861 37 27 81 26 14.21791 2 -2862 37 28 81 28 7.00292 2 -2863 37 29 85 27 16.14759 2 -2864 37 30 85 25 13.64041 2 -2865 37 31 85 24 15.74907 2 -2866 37 32 85 26 12.99033 2 -2867 37 33 85 28 5.46105 2 -2868 37 34 89 29 12.9466 2 -2869 37 35 89 27 11.80778 2 -2870 37 36 89 25 4.15971 2 -2871 37 37 89 26 8.40438 2 -2872 37 38 89 28 6.43932 2 -2873 37 39 93 29 12.17053 2 -2874 37 40 93 27 5.64997 2 -2875 37 41 93 25 11.02256 2 -2876 37 42 93 28 6.63225 2 -2877 37 43 93 30 11.97039 2 -2878 37 44 97 29 11.97039 2 -2879 37 45 97 27 6.63225 2 -2880 37 46 97 26 11.71566 2 -2881 37 47 97 28 5.64997 2 -2882 37 48 97 30 6.50632 2 -2883 37 49 101 27 6.43833 2 -2884 37 50 101 25 8.40541 2 -2885 37 51 101 26 5.3262 2 -2886 37 52 101 28 13.8152 2 -2887 37 53 101 30 12.94556 2 -2888 37 54 105 27 3.97058 2 -2889 37 55 105 25 12.99138 2 -2890 37 56 105 23 14.95887 2 -2891 37 57 105 26 13.84551 2 -2892 37 58 105 28 14.97746 2 -2893 37 59 109 27 7.09859 2 -2894 37 60 109 25 14.42772 2 -2895 37 61 109 26 9.71706 2 -2896 37 62 109 28 18.60341 2 -2897 37 63 109 30 19.59719 2 -2898 37 64 113 27 15.38887 2 -2899 37 65 113 25 17.63114 2 -2900 37 66 113 26 15.87755 2 -2901 37 67 113 28 19.09819 2 -2902 37 68 113 30 21.45555 2 -2903 37 69 117 27 16.34104 2 -2904 37 70 117 25 34.39221 2 -2905 37 71 117 26 19.58693 2 -2906 37 72 117 28 24.67291 2 -2907 37 73 121 29 20.49876 2 -2908 37 74 121 27 21.53097 2 -2909 37 75 121 25 31.5933 2 -2910 37 76 121 26 29.96499 2 -2911 37 77 121 28 28.83964 2 -2912 37 78 125 29 22.64172 2 -2913 37 79 125 27 32.23676 2 -2914 37 80 125 25 36.30615 2 -2915 37 81 125 26 33.58506 2 -2916 37 82 125 28 34.34636 2 -2917 37 83 129 29 30.89728 2 -2918 37 84 129 27 32.41342 2 -2919 37 85 129 25 39.9249 2 -2920 37 86 129 28 35.91538 2 -2921 37 87 129 30 42.11436 2 -2922 38 0 61 35 44.93722 2 -2923 38 1 61 33 42.37623 2 -2924 38 2 61 31 37.07267 2 -2925 38 3 61 32 36.6334 2 -2926 38 4 61 34 34.2995 2 -2927 38 5 65 33 43.38745 2 -2928 38 6 65 31 42.40108 2 -2929 38 7 65 29 37.27902 2 -2930 38 8 65 32 39.53749 2 -2931 38 9 65 34 30.01828 2 -2932 38 10 69 33 37.37032 2 -2933 38 11 69 31 36.67822 2 -2934 38 12 69 29 34.29956 2 -2935 38 13 69 32 36.73628 2 -2936 38 14 69 34 24.49426 2 -2937 38 15 73 31 30.30511 2 -2938 38 16 73 29 30.50438 2 -2939 38 17 73 30 30.14534 2 -2940 38 18 73 32 25.65512 2 -2941 38 19 73 34 19.85518 2 -2942 38 20 77 33 23.43484 2 -2943 38 21 77 31 23.44863 2 -2944 38 22 77 30 22.63172 2 -2945 38 23 77 32 19.15698 2 -2946 38 24 77 34 19.92472 2 -2947 38 25 81 33 32.80768 2 -2948 38 26 81 31 15.43168 2 -2949 38 27 81 30 21.63939 2 -2950 38 28 81 32 12.90154 2 -2951 38 29 81 34 12.02643 2 -2952 38 30 85 33 22.13097 2 -2953 38 31 85 31 12.01785 2 -2954 38 32 85 29 13.67369 2 -2955 38 33 85 30 17.62251 2 -2956 38 34 85 32 11.8973 2 -2957 38 35 89 33 16.69845 2 -2958 38 36 89 31 10.95753 2 -2959 38 37 89 30 13.55324 2 -2960 38 38 89 32 13.13591 2 -2961 38 39 89 34 8.90195 2 -2962 38 40 93 33 8.42588 2 -2963 38 41 93 31 9.65779 2 -2964 38 42 93 32 11.26577 2 -2965 38 43 93 34 8.54765 2 -2966 38 44 93 36 8.36753 2 -2967 38 45 97 35 8.36753 2 -2968 38 46 97 33 8.54765 2 -2969 38 47 97 31 12.15621 2 -2970 38 48 97 32 9.44577 2 -2971 38 49 97 34 8.42588 2 -2972 38 50 101 33 8.74075 2 -2973 38 51 101 31 13.40281 2 -2974 38 52 101 29 13.55227 2 -2975 38 53 101 32 10.95656 2 -2976 38 54 101 34 18.98541 2 -2977 38 55 105 31 8.71542 2 -2978 38 56 105 29 15.0855 2 -2979 38 57 105 30 13.67474 2 -2980 38 58 105 32 12.0168 2 -2981 38 59 105 34 22.02761 2 -2982 38 60 109 33 15.24325 2 -2983 38 61 109 31 12.25157 2 -2984 38 62 109 29 24.55607 2 -2985 38 63 109 32 15.43075 2 -2986 38 64 109 34 24.21212 2 -2987 38 65 113 33 13.64338 2 -2988 38 66 113 31 15.48732 2 -2989 38 67 113 29 20.1978 2 -2990 38 68 113 32 22.18935 2 -2991 38 69 113 34 22.77582 2 -2992 38 70 117 33 20.0497 2 -2993 38 71 117 31 24.44506 2 -2994 38 72 117 29 31.7738 2 -2995 38 73 117 30 28.85187 2 -2996 38 74 117 32 31.87821 2 -2997 38 75 121 33 25.53793 2 -2998 38 76 121 31 36.21191 2 -2999 38 77 121 30 35.81406 2 -3000 38 78 121 32 37.93313 2 -3001 38 79 121 34 45.06509 2 -3002 38 80 125 33 26.76541 2 -3003 38 81 125 31 35.18992 2 -3004 38 82 125 30 36.07014 2 -3005 38 83 125 32 36.20439 2 -3006 38 84 125 34 38.89333 2 -3007 38 85 129 33 36.03787 2 -3008 38 86 129 31 35.94076 2 -3009 38 87 129 32 40.04279 2 -3010 38 88 129 34 42.29423 2 -3011 38 89 129 36 45.23782 2 -3012 39 0 61 39 47.33865 2 -3013 39 1 61 37 46.86031 2 -3014 39 2 61 36 52.72815 2 -3015 39 3 61 38 48.97679 2 -3016 39 4 61 40 38.56398 2 -3017 39 5 65 37 48.63644 2 -3018 39 6 65 35 47.90005 2 -3019 39 7 65 36 48.23983 2 -3020 39 8 65 38 35.80347 2 -3021 39 9 65 40 32.37495 2 -3022 39 10 69 39 37.89861 2 -3023 39 11 69 37 53.97172 2 -3024 39 12 69 35 33.16143 2 -3025 39 13 69 36 39.21155 2 -3026 39 14 69 38 29.57991 2 -3027 39 15 73 35 36.17155 2 -3028 39 16 73 33 37.98004 2 -3029 39 17 73 36 35.72569 4 -3030 39 18 73 38 24.55777 2 -3031 39 19 73 40 20.38321 2 -3032 39 20 77 39 26.76619 2 -3033 39 21 77 37 22.70611 2 -3034 39 22 77 35 21.4945 2 -3035 39 23 77 36 19.34188 2 -3036 39 24 77 38 17.08146 2 -3037 39 25 81 37 20.70572 2 -3038 39 26 81 35 20.02515 2 -3039 39 27 81 36 28.1494 2 -3040 39 28 81 38 16.03416 2 -3041 39 29 81 40 12.67476 2 -3042 39 30 85 39 21.53726 2 -3043 39 31 85 37 19.96519 2 -3044 39 32 85 35 23.77355 2 -3045 39 33 85 34 20.17 2 -3046 39 34 85 36 15.13508 2 -3047 39 35 89 37 22.15501 2 -3048 39 36 89 35 15.65041 2 -3049 39 37 89 36 22.82424 2 -3050 39 38 89 38 17.62758 2 -3051 39 39 89 40 12.7434 2 -3052 39 40 93 39 12.33165 2 -3053 39 41 93 37 12.81763 2 -3054 39 42 93 35 14.72336 2 -3055 39 43 93 38 12.35044 2 -3056 39 44 93 40 13.22286 2 -3057 39 45 97 39 13.22286 2 -3058 39 46 97 37 13.2109 2 -3059 39 47 97 36 14.96803 2 -3060 39 48 97 38 12.85343 2 -3061 39 49 97 40 12.33165 2 -3062 39 50 101 39 10.47804 2 -3063 39 51 101 37 29.78209 2 -3064 39 52 101 35 16.6352 2 -3065 39 53 101 36 15.85535 2 -3066 39 54 101 38 20.71006 2 -3067 39 55 105 35 15.78041 2 -3068 39 56 105 33 18.56919 2 -3069 39 57 105 36 19.33781 2 -3070 39 58 105 38 19.96414 2 -3071 39 59 105 40 21.53626 2 -3072 39 60 109 39 12.67583 2 -3073 39 61 109 37 16.17694 2 -3074 39 62 109 35 18.75376 2 -3075 39 63 109 36 20.40632 2 -3076 39 64 109 38 21.2193 2 -3077 39 65 113 37 15.60565 2 -3078 39 66 113 35 19.34765 2 -3079 39 67 113 36 22.38545 2 -3080 39 68 113 38 22.78634 2 -3081 39 69 113 40 26.49009 2 -3082 39 70 117 39 21.17194 2 -3083 39 71 117 37 26.13863 2 -3084 39 72 117 35 40.81713 2 -3085 39 73 117 34 35.44417 2 -3086 39 74 117 36 34.20291 2 -3087 39 75 121 37 27.92488 2 -3088 39 76 121 35 44.38803 2 -3089 39 77 121 36 31.39945 2 -3090 39 78 121 38 40.01333 2 -3091 39 79 121 40 40.69605 2 -3092 39 80 125 39 32.31928 2 -3093 39 81 125 37 40.06308 2 -3094 39 82 125 35 46.71773 2 -3095 39 83 125 36 47.30525 2 -3096 39 84 125 38 42.29457 2 -3097 39 85 129 39 50.89122 2 -3098 39 86 129 37 48.68296 2 -3099 39 87 129 35 47.21309 2 -3100 39 88 129 38 46.42747 2 -3101 39 89 129 40 47.69341 2 -3102 40 0 62 5 47.80891 2 -3103 40 1 62 3 47.18413 2 -3104 40 2 62 1 40.46433 2 -3105 40 3 62 2 47.51412 2 -3106 40 4 62 4 35.28041 2 -3107 40 5 65 39 53.01761 2 -3108 40 6 66 3 41.36503 2 -3109 40 7 66 1 36.40103 2 -3110 40 8 66 2 42.28303 2 -3111 40 9 66 4 31.15592 2 -3112 40 10 70 3 44.31554 2 -3113 40 11 70 1 32.44444 2 -3114 40 12 70 2 40.89561 2 -3115 40 13 70 4 31.72583 2 -3116 40 14 69 40 45.47658 2 -3117 40 15 73 39 42.94822 4 -3118 40 16 73 37 44.10457 2 -3119 40 17 74 2 31.25653 2 -3120 40 18 74 4 22.89253 2 -3121 40 19 74 6 24.68786 2 -3122 40 20 78 3 26.89819 2 -3123 40 21 78 1 20.97356 2 -3124 40 22 78 2 25.76137 2 -3125 40 23 78 4 19.70242 2 -3126 40 24 77 40 20.20416 2 -3127 40 25 81 39 34.96024 2 -3128 40 26 82 3 23.18622 2 -3129 40 27 82 1 17.45096 2 -3130 40 28 82 2 16.5881 2 -3131 40 29 82 4 17.5133 2 -3132 40 30 86 5 25.07317 2 -3133 40 31 86 3 18.17175 2 -3134 40 32 86 1 16.66849 2 -3135 40 33 85 38 26.27615 2 -3136 40 34 85 40 19.13979 2 -3137 40 35 89 39 22.31859 2 -3138 40 36 90 3 22.09478 2 -3139 40 37 90 1 14.25246 2 -3140 40 38 90 2 17.07163 2 -3141 40 39 90 4 21.14054 2 -3142 40 40 94 3 16.9151 2 -3143 40 41 94 1 15.83026 2 -3144 40 42 94 2 14.6204 2 -3145 40 43 94 4 15.68926 2 -3146 40 44 94 6 23.23508 2 -3147 40 45 98 5 22.15276 2 -3148 40 46 98 3 15.33342 2 -3149 40 47 98 1 14.38181 2 -3150 40 48 98 2 15.18827 2 -3151 40 49 98 4 17.95892 2 -3152 40 50 102 3 19.31835 2 -3153 40 51 102 1 15.5028 2 -3154 40 52 102 2 14.35663 2 -3155 40 53 102 4 22.09575 2 -3156 40 54 101 40 26.56142 2 -3157 40 55 105 39 18.9716 2 -3158 40 56 105 37 24.72572 2 -3159 40 57 106 2 16.66944 2 -3160 40 58 106 4 18.1708 2 -3161 40 59 106 6 25.30797 2 -3162 40 60 110 3 17.34379 2 -3163 40 61 110 1 16.61242 2 -3164 40 62 110 2 17.03222 2 -3165 40 63 110 4 18.94174 2 -3166 40 64 109 40 35.83593 2 -3167 40 65 113 39 21.34216 2 -3168 40 66 114 3 20.07032 2 -3169 40 67 114 1 30.02528 2 -3170 40 68 114 2 21.89752 2 -3171 40 69 114 4 29.51288 2 -3172 40 70 118 5 29.28043 2 -3173 40 71 118 3 23.33713 2 -3174 40 72 118 1 32.10649 2 -3175 40 73 117 38 39.30858 2 -3176 40 74 117 40 43.03879 4 -3177 40 75 121 39 36.06343 2 -3178 40 76 122 3 32.33538 2 -3179 40 77 122 1 38.44154 2 -3180 40 78 122 2 34.81243 2 -3181 40 79 122 4 40.61316 2 -3182 40 80 126 3 32.42023 2 -3183 40 81 126 1 42.23265 2 -3184 40 82 126 2 36.87943 2 -3185 40 83 126 4 41.93963 2 -3186 40 84 125 40 52.61509 2 -3187 40 85 130 3 38.34898 2 -3188 40 86 130 1 47.88837 2 -3189 40 87 130 2 42.07203 2 -3190 40 88 130 4 42.40253 2 -3191 40 89 130 6 47.07557 2 -3192 41 0 62 9 41.60729 2 -3193 41 1 62 7 41.88154 2 -3194 41 2 62 6 41.31534 2 -3195 41 3 62 8 41.80787 2 -3196 41 4 62 10 35.21244 2 -3197 41 5 66 7 39.97191 2 -3198 41 6 66 5 34.46942 2 -3199 41 7 66 6 32.71753 2 -3200 41 8 66 8 37.13168 2 -3201 41 9 66 10 32.98139 2 -3202 41 10 70 7 30.73413 2 -3203 41 11 70 5 26.20291 2 -3204 41 12 70 6 36.1995 2 -3205 41 13 70 8 24.65739 2 -3206 41 14 70 10 25.77966 2 -3207 41 15 74 5 30.98593 2 -3208 41 16 74 3 20.04636 2 -3209 41 17 74 1 18.84237 2 -3210 41 18 74 8 20.02338 2 -3211 41 19 74 10 21.25407 2 -3212 41 20 78 7 25.94945 2 -3213 41 21 78 5 17.61825 2 -3214 41 22 78 6 25.20057 2 -3215 41 23 78 8 17.04192 2 -3216 41 24 78 10 15.03617 2 -3217 41 25 82 9 20.90411 2 -3218 41 26 82 7 18.36142 2 -3219 41 27 82 5 10.94648 2 -3220 41 28 82 6 11.38522 2 -3221 41 29 82 8 12.3901 2 -3222 41 30 86 9 15.59747 2 -3223 41 31 86 7 16.58043 2 -3224 41 32 86 2 15.6989 2 -3225 41 33 86 4 9.87249 2 -3226 41 34 86 6 10.84355 2 -3227 41 35 90 9 20.42407 2 -3228 41 36 90 7 17.96316 2 -3229 41 37 90 5 11.19667 2 -3230 41 38 90 6 11.51237 2 -3231 41 39 90 8 15.46465 2 -3232 41 40 94 9 15.00679 2 -3233 41 41 94 7 11.56478 2 -3234 41 42 94 5 10.35621 2 -3235 41 43 94 8 12.4733 2 -3236 41 44 94 10 19.2461 2 -3237 41 45 98 9 22.33268 2 -3238 41 46 98 7 10.75034 2 -3239 41 47 98 6 10.80051 2 -3240 41 48 98 8 11.7752 2 -3241 41 49 98 10 13.88963 2 -3242 41 50 102 7 15.5076 2 -3243 41 51 102 5 12.95133 2 -3244 41 52 102 6 11.03278 2 -3245 41 53 102 8 18.15252 2 -3246 41 54 102 10 20.23266 2 -3247 41 55 106 5 10.8446 2 -3248 41 56 106 3 9.87144 2 -3249 41 57 106 1 14.95601 2 -3250 41 58 106 8 16.16973 2 -3251 41 59 106 10 15.59652 2 -3252 41 60 110 7 12.39103 2 -3253 41 61 110 5 11.90157 2 -3254 41 62 110 6 11.3401 2 -3255 41 63 110 8 17.30437 2 -3256 41 64 110 10 18.32128 2 -3257 41 65 114 9 14.93542 2 -3258 41 66 114 7 16.92913 2 -3259 41 67 114 5 23.65778 2 -3260 41 68 114 6 17.65676 2 -3261 41 69 114 8 30.32867 2 -3262 41 70 118 9 21.27259 2 -3263 41 71 118 7 19.57424 2 -3264 41 72 118 2 19.40677 2 -3265 41 73 118 4 22.69088 2 -3266 41 74 118 6 29.07794 2 -3267 41 75 122 9 26.14231 2 -3268 41 76 122 7 27.51622 2 -3269 41 77 122 5 34.98761 2 -3270 41 78 122 6 26.35057 2 -3271 41 79 122 8 34.23709 2 -3272 41 80 126 9 30.16608 2 -3273 41 81 126 7 37.82001 2 -3274 41 82 126 5 33.11594 2 -3275 41 83 126 6 33.02293 2 -3276 41 84 126 8 39.92377 2 -3277 41 85 130 9 31.98705 2 -3278 41 86 130 7 42.13128 2 -3279 41 87 130 5 42.27969 2 -3280 41 88 130 8 41.87163 2 -3281 41 89 130 10 41.35424 2 -3282 42 0 62 15 48.15605 2 -3283 42 1 62 13 36.12901 2 -3284 42 2 62 11 35.10949 2 -3285 42 3 62 12 41.43208 2 -3286 42 4 62 14 30.40035 2 -3287 42 5 66 13 40.05969 2 -3288 42 6 66 11 38.46429 2 -3289 42 7 66 9 27.46186 2 -3290 42 8 66 12 39.94948 2 -3291 42 9 66 14 30.14018 2 -3292 42 10 70 13 31.21776 2 -3293 42 11 70 11 29.68654 2 -3294 42 12 70 9 28.89169 2 -3295 42 13 70 12 24.69974 2 -3296 42 14 70 14 25.02004 2 -3297 42 15 74 11 27.7427 2 -3298 42 16 74 9 25.74326 2 -3299 42 17 74 7 19.54162 2 -3300 42 18 74 12 19.71615 2 -3301 42 19 74 14 19.11812 2 -3302 42 20 74 16 19.48871 2 -3303 42 21 78 13 18.97417 2 -3304 42 22 78 11 18.20829 2 -3305 42 23 78 9 18.03161 2 -3306 42 24 78 12 13.27693 2 -3307 42 25 78 14 12.21988 2 -3308 42 26 82 13 20.21568 2 -3309 42 27 82 11 11.71611 2 -3310 42 28 82 10 12.2817 2 -3311 42 29 82 12 15.45375 2 -3312 42 30 82 14 8.68379 2 -3313 42 31 86 15 26.4379 2 -3314 42 32 86 13 11.12532 2 -3315 42 33 86 11 9.82623 2 -3316 42 34 86 8 14.58639 2 -3317 42 35 86 10 7.0807 2 -3318 42 36 90 13 14.21293 2 -3319 42 37 90 11 8.23456 2 -3320 42 38 90 10 9.92963 2 -3321 42 39 90 12 6.78538 2 -3322 42 40 90 14 12.0646 2 -3323 42 41 94 13 14.72398 2 -3324 42 42 94 11 6.76878 2 -3325 42 43 94 12 14.75632 2 -3326 42 44 94 14 8.53843 2 -3327 42 45 94 16 9.86739 2 -3328 42 46 98 15 9.86739 2 -3329 42 47 98 13 10.62629 2 -3330 42 48 98 11 7.61814 2 -3331 42 49 98 12 6.73465 2 -3332 42 50 98 14 12.98132 2 -3333 42 51 102 13 12.06364 2 -3334 42 52 102 11 6.78641 2 -3335 42 53 102 9 9.92869 2 -3336 42 54 102 12 8.23353 2 -3337 42 55 102 14 14.2139 2 -3338 42 56 106 9 7.18672 2 -3339 42 57 106 7 14.10048 2 -3340 42 58 106 12 9.97723 2 -3341 42 59 106 14 11.12437 2 -3342 42 60 106 16 27.03192 2 -3343 42 61 110 13 6.98019 2 -3344 42 62 110 11 12.43915 2 -3345 42 63 110 9 18.46801 2 -3346 42 64 110 12 11.91686 2 -3347 42 65 110 14 20.66298 2 -3348 42 66 114 13 11.34681 2 -3349 42 67 114 11 13.40196 2 -3350 42 68 114 10 13.69861 2 -3351 42 69 114 12 13.95597 2 -3352 42 70 114 14 18.65957 2 -3353 42 71 118 15 13.86961 2 -3354 42 72 118 13 20.33216 2 -3355 42 73 118 11 19.71504 2 -3356 42 74 118 8 18.04849 2 -3357 42 75 118 10 25.52377 2 -3358 42 76 118 12 26.369 2 -3359 42 77 122 13 24.89548 2 -3360 42 78 122 11 24.1386 2 -3361 42 79 122 10 28.07278 2 -3362 42 80 122 12 29.12592 2 -3363 42 81 122 14 31.43208 2 -3364 42 82 126 13 30.20087 2 -3365 42 83 126 11 38.75054 2 -3366 42 84 126 10 27.21976 2 -3367 42 85 126 12 38.72225 2 -3368 42 86 126 14 35.76323 2 -3369 42 87 130 13 29.94155 2 -3370 42 88 130 11 41.52916 2 -3371 42 89 130 12 39.11757 2 -3372 42 90 130 14 35.99995 2 -3373 42 91 130 16 44.60274 2 -3374 43 0 62 19 46.11073 2 -3375 43 1 62 17 39.83431 2 -3376 43 2 62 16 40.97858 2 -3377 43 3 62 18 34.59148 2 -3378 43 4 62 20 31.48411 2 -3379 43 5 66 19 43.18088 2 -3380 43 6 66 17 31.16443 2 -3381 43 7 66 15 31.60594 2 -3382 43 8 66 16 28.32817 2 -3383 43 9 66 18 27.60244 2 -3384 43 10 70 17 31.1591 2 -3385 43 11 70 15 32.16887 2 -3386 43 12 70 16 30.69612 2 -3387 43 13 70 18 26.22132 2 -3388 43 14 70 20 22.32127 2 -3389 43 15 74 17 38.71603 2 -3390 43 16 74 15 25.58392 2 -3391 43 17 74 13 20.68918 2 -3392 43 18 74 18 18.01667 2 -3393 43 19 74 20 17.5206 2 -3394 43 20 78 19 21.42963 2 -3395 43 21 78 17 18.06792 2 -3396 43 22 78 15 17.33745 2 -3397 43 23 78 16 20.84022 2 -3398 43 24 78 18 12.94846 2 -3399 43 25 78 20 9.00026 2 -3400 43 26 82 19 16.03615 2 -3401 43 27 82 17 15.25187 2 -3402 43 28 82 15 6.71599 2 -3403 43 29 82 16 12.59006 2 -3404 43 30 82 18 6.74243 2 -3405 43 31 86 19 15.5452 2 -3406 43 32 86 17 14.01443 2 -3407 43 33 86 12 12.76991 2 -3408 43 34 86 14 8.93665 2 -3409 43 35 86 16 6.37299 2 -3410 43 36 90 19 14.30874 2 -3411 43 37 90 17 11.41651 2 -3412 43 38 90 15 4.81505 2 -3413 43 39 90 16 4.74426 2 -3414 43 40 90 18 4.93946 2 -3415 43 41 94 19 6.38079 2 -3416 43 42 94 17 6.36247 2 -3417 43 43 94 15 16.58421 2 -3418 43 44 94 18 6.54908 2 -3419 43 45 94 20 9.37612 2 -3420 43 46 98 19 10.83727 2 -3421 43 47 98 17 6.69823 2 -3422 43 48 98 16 16.21287 2 -3423 43 49 98 18 5.38717 2 -3424 43 50 98 20 6.38079 2 -3425 43 51 102 17 4.94042 2 -3426 43 52 102 15 4.7433 2 -3427 43 53 102 16 4.81402 2 -3428 43 54 102 18 11.41748 2 -3429 43 55 102 20 14.45801 2 -3430 43 56 106 15 6.37394 2 -3431 43 57 106 13 10.38602 2 -3432 43 58 106 11 12.68029 2 -3433 43 59 106 18 14.12179 2 -3434 43 60 106 20 15.63741 2 -3435 43 61 110 17 6.74343 2 -3436 43 62 110 15 12.37328 2 -3437 43 63 110 16 6.71506 2 -3438 43 64 110 18 15.39685 2 -3439 43 65 110 20 16.3633 2 -3440 43 66 114 19 8.79577 2 -3441 43 67 114 17 13.10639 2 -3442 43 68 114 15 21.80885 2 -3443 43 69 114 16 16.90965 2 -3444 43 70 114 18 18.10713 2 -3445 43 71 114 20 25.56695 2 -3446 43 72 118 19 17.82868 2 -3447 43 73 118 17 20.8666 2 -3448 43 74 118 14 19.56572 2 -3449 43 75 118 16 27.37584 2 -3450 43 76 118 18 28.23259 2 -3451 43 77 122 19 24.25849 2 -3452 43 78 122 17 24.47596 2 -3453 43 79 122 15 30.91142 2 -3454 43 80 122 16 33.33763 2 -3455 43 81 122 18 33.84305 2 -3456 43 82 126 17 40.20319 2 -3457 43 83 126 15 28.54743 2 -3458 43 84 126 16 32.32667 2 -3459 43 85 126 18 31.78774 2 -3460 43 86 126 20 42.70805 2 -3461 43 87 130 19 31.96423 2 -3462 43 88 130 17 34.03376 2 -3463 43 89 130 15 46.25939 2 -3464 43 90 130 18 37.38115 2 -3465 43 91 130 20 45.58708 2 -3466 44 0 62 25 41.21159 2 -3467 44 1 62 23 45.17063 2 -3468 44 2 62 21 37.74264 2 -3469 44 3 62 22 43.13706 2 -3470 44 4 62 24 31.67383 2 -3471 44 5 66 23 40.21832 2 -3472 44 6 66 21 33.75882 2 -3473 44 7 66 20 40.2753 2 -3474 44 8 66 22 32.02869 2 -3475 44 9 66 24 27.26692 2 -3476 44 10 70 23 40.83909 2 -3477 44 11 70 21 31.74553 2 -3478 44 12 70 19 27.91957 2 -3479 44 13 70 22 33.12486 2 -3480 44 14 70 24 20.22367 2 -3481 44 15 74 23 30.05427 2 -3482 44 16 74 21 23.42941 2 -3483 44 17 74 19 45.2151 2 -3484 44 18 74 22 24.35024 2 -3485 44 19 74 24 18.59686 2 -3486 44 20 78 25 28.1981 2 -3487 44 21 78 23 19.12979 2 -3488 44 22 78 21 17.80936 2 -3489 44 23 78 22 24.15456 2 -3490 44 24 78 24 12.97259 2 -3491 44 25 82 25 25.14077 2 -3492 44 26 82 23 20.82959 2 -3493 44 27 82 21 12.21251 2 -3494 44 28 82 20 14.48819 2 -3495 44 29 82 22 14.46996 2 -3496 44 30 82 24 6.56812 2 -3497 44 31 86 23 15.69581 2 -3498 44 32 86 21 19.78145 2 -3499 44 33 86 18 16.9172 2 -3500 44 34 86 20 15.22466 2 -3501 44 35 86 22 8.91116 2 -3502 44 36 90 23 15.67349 2 -3503 44 37 90 21 14.56526 2 -3504 44 38 90 20 20.36527 2 -3505 44 39 90 22 11.05229 2 -3506 44 40 90 24 7.62301 2 -3507 44 41 94 23 8.53214 2 -3508 44 42 94 21 9.22965 2 -3509 44 43 94 22 11.95511 2 -3510 44 44 94 24 8.63182 2 -3511 44 45 94 26 8.39934 2 -3512 44 46 98 25 8.4708 2 -3513 44 47 98 23 7.92792 2 -3514 44 48 98 21 9.30311 2 -3515 44 49 98 22 9.55643 2 -3516 44 50 98 24 8.53214 2 -3517 44 51 102 23 6.40429 2 -3518 44 52 102 21 8.99193 2 -3519 44 53 102 19 24.76427 2 -3520 44 54 102 22 12.70592 2 -3521 44 55 102 24 12.88976 2 -3522 44 56 106 21 10.03446 2 -3523 44 57 106 19 17.66431 2 -3524 44 58 106 17 16.47278 2 -3525 44 59 106 22 16.09376 2 -3526 44 60 106 24 14.98596 2 -3527 44 61 110 23 7.44142 2 -3528 44 62 110 21 14.89576 2 -3529 44 63 110 19 14.57406 2 -3530 44 64 110 22 12.44079 2 -3531 44 65 110 24 20.11518 2 -3532 44 66 110 26 24.12401 2 -3533 44 67 114 23 13.15185 2 -3534 44 68 114 21 26.66566 2 -3535 44 69 114 22 17.78158 2 -3536 44 70 114 24 19.26657 2 -3537 44 71 114 26 28.91348 2 -3538 44 72 118 23 16.24109 2 -3539 44 73 118 21 24.99648 2 -3540 44 74 118 20 25.60115 2 -3541 44 75 118 22 27.58766 2 -3542 44 76 118 24 29.69662 2 -3543 44 77 122 23 19.53904 2 -3544 44 78 122 21 24.94886 2 -3545 44 79 122 20 30.56217 2 -3546 44 80 122 22 28.20491 2 -3547 44 81 122 24 33.90357 2 -3548 44 82 126 23 27.06093 2 -3549 44 83 126 21 30.9194 2 -3550 44 84 126 19 38.95593 2 -3551 44 85 126 22 36.39739 2 -3552 44 86 126 24 41.05562 2 -3553 44 87 130 23 30.33557 2 -3554 44 88 130 21 42.7457 2 -3555 44 89 130 22 37.84833 2 -3556 44 90 130 24 38.62262 2 -3557 44 91 130 26 44.87798 2 -3558 45 0 62 29 47.43848 2 -3559 45 1 62 27 52.25459 2 -3560 45 2 62 26 69.69524 2 -3561 45 3 62 28 41.02112 2 -3562 45 4 62 30 39.12638 2 -3563 45 5 66 29 46.90478 2 -3564 45 6 66 27 44.00684 2 -3565 45 7 66 25 42.65606 2 -3566 45 8 66 26 40.3136 2 -3567 45 9 66 28 37.76402 2 -3568 45 10 66 30 31.33729 2 -3569 45 11 70 29 39.90559 2 -3570 45 12 70 27 36.17776 2 -3571 45 13 70 25 29.38228 2 -3572 45 14 70 26 38.59369 2 -3573 45 15 70 28 28.83241 2 -3574 45 16 74 29 30.74469 2 -3575 45 17 74 27 31.62607 2 -3576 45 18 74 25 24.90139 2 -3577 45 19 74 26 32.25554 2 -3578 45 20 74 28 45.62128 2 -3579 45 21 78 29 32.15259 2 -3580 45 22 78 27 34.7322 2 -3581 45 23 78 26 29.50243 2 -3582 45 24 78 28 25.23597 2 -3583 45 25 78 30 17.36473 2 -3584 45 26 82 29 32.04554 2 -3585 45 27 82 27 17.86991 2 -3586 45 28 82 26 24.30767 2 -3587 45 29 82 28 17.80432 2 -3588 45 30 82 30 37.06288 2 -3589 45 31 86 29 27.82248 2 -3590 45 32 86 27 20.14681 2 -3591 45 33 86 25 16.58767 2 -3592 45 34 86 24 22.97621 2 -3593 45 35 86 26 17.16798 2 -3594 45 36 86 28 12.25726 2 -3595 45 37 90 29 17.90521 2 -3596 45 38 90 27 21.042 2 -3597 45 39 90 25 15.75847 2 -3598 45 40 90 26 18.50249 2 -3599 45 41 90 28 21.94569 2 -3600 45 42 94 29 12.36382 2 -3601 45 43 94 27 12.98186 2 -3602 45 44 94 25 16.15528 2 -3603 45 45 94 28 13.31943 2 -3604 45 46 94 30 13.26611 2 -3605 45 47 98 29 13.26611 2 -3606 45 48 98 27 13.31743 2 -3607 45 49 98 26 15.12698 2 -3608 45 50 98 28 20.84888 2 -3609 45 51 98 30 12.36382 2 -3610 45 52 102 27 15.17183 2 -3611 45 53 102 25 15.06135 2 -3612 45 54 102 26 14.6719 2 -3613 45 55 102 28 13.87238 2 -3614 45 56 102 30 16.74783 2 -3615 45 57 106 27 12.20195 2 -3616 45 58 106 25 24.69311 2 -3617 45 59 106 23 24.79536 2 -3618 45 60 106 26 20.18923 2 -3619 45 61 106 28 15.97714 2 -3620 45 62 106 30 35.02677 2 -3621 45 63 110 29 15.10523 2 -3622 45 64 110 27 17.24086 2 -3623 45 65 110 25 24.8212 2 -3624 45 66 110 28 20.78475 2 -3625 45 67 110 30 29.28823 2 -3626 45 68 114 29 15.26868 2 -3627 45 69 114 27 26.12553 2 -3628 45 70 114 25 34.75366 2 -3629 45 71 114 28 35.14399 2 -3630 45 72 114 30 24.52448 2 -3631 45 73 118 27 19.22319 2 -3632 45 74 118 25 31.19401 2 -3633 45 75 118 26 24.63892 2 -3634 45 76 118 28 27.62027 2 -3635 45 77 118 30 27.86606 2 -3636 45 78 122 27 27.59524 2 -3637 45 79 122 25 31.3449 2 -3638 45 80 122 26 26.79183 2 -3639 45 81 122 28 34.07789 2 -3640 45 82 122 30 32.31766 2 -3641 45 83 126 29 31.34839 2 -3642 45 84 126 27 42.72695 2 -3643 45 85 126 25 44.28129 2 -3644 45 86 126 26 42.63243 2 -3645 45 87 126 28 47.06039 2 -3646 45 88 126 30 41.25713 2 -3647 45 89 130 29 39.6589 2 -3648 45 90 130 27 45.12072 2 -3649 45 91 130 25 64.71794 2 -3650 45 92 130 28 48.56201 2 -3651 45 93 130 30 46.7598 2 -3652 46 0 62 35 52.07746 2 -3653 46 1 62 33 55.17917 2 -3654 46 2 62 31 47.70294 2 -3655 46 3 62 32 56.443 2 -3656 46 4 62 34 42.38675 2 -3657 46 5 66 33 49.90234 2 -3658 46 6 66 31 51.9933 2 -3659 46 7 66 32 51.7984 2 -3660 46 8 66 34 47.36625 2 -3661 46 9 66 36 36.11611 2 -3662 46 10 70 35 46.25766 2 -3663 46 11 70 33 46.08307 2 -3664 46 12 70 31 42.63121 2 -3665 46 13 70 30 47.44298 2 -3666 46 14 70 32 38.29302 2 -3667 46 15 70 34 35.22162 2 -3668 46 16 74 33 36.5164 2 -3669 46 17 74 31 35.18498 2 -3670 46 18 74 30 40.6752 2 -3671 46 19 74 32 33.51265 2 -3672 46 20 74 34 25.52111 2 -3673 46 21 78 35 31.1145 2 -3674 46 22 78 33 29.6746 2 -3675 46 23 78 31 41.85569 2 -3676 46 24 78 32 40.3264 2 -3677 46 25 78 34 24.31542 2 -3678 46 26 82 35 26.69198 2 -3679 46 27 82 33 27.78354 2 -3680 46 28 82 31 20.20038 2 -3681 46 29 82 32 31.77594 2 -3682 46 30 82 34 19.58506 2 -3683 46 31 86 35 22.25494 2 -3684 46 32 86 33 27.73219 2 -3685 46 33 86 31 20.79811 2 -3686 46 34 86 30 22.92251 2 -3687 46 35 86 32 19.15714 2 -3688 46 36 86 34 16.96801 2 -3689 46 37 90 33 19.22678 2 -3690 46 38 90 31 20.03638 2 -3691 46 39 90 30 53.40812 2 -3692 46 40 90 32 17.91038 2 -3693 46 41 90 34 15.47895 2 -3694 46 42 94 33 18.72139 2 -3695 46 43 94 31 19.20089 2 -3696 46 44 94 32 17.931 2 -3697 46 45 94 34 16.2776 2 -3698 46 46 94 36 20.94789 2 -3699 46 47 98 35 20.60777 2 -3700 46 48 98 33 16.2776 2 -3701 46 49 98 31 17.931 2 -3702 46 50 98 32 19.94405 2 -3703 46 51 98 34 18.38365 2 -3704 46 52 102 33 16.32785 2 -3705 46 53 102 31 17.411 2 -3706 46 54 102 29 27.2509 2 -3707 46 55 102 32 21.08792 2 -3708 46 56 102 34 19.22575 2 -3709 46 57 106 33 16.03177 2 -3710 46 58 106 31 19.31124 2 -3711 46 59 106 29 23.22844 2 -3712 46 60 106 32 19.76847 2 -3713 46 61 106 34 26.73156 2 -3714 46 62 106 36 24.72603 2 -3715 46 63 110 33 17.39558 2 -3716 46 64 110 31 30.00016 2 -3717 46 65 110 32 20.02324 2 -3718 46 66 110 34 31.40751 2 -3719 46 67 110 36 27.02715 2 -3720 46 68 114 33 20.20861 2 -3721 46 69 114 31 32.00615 2 -3722 46 70 114 32 20.28369 2 -3723 46 71 114 34 44.45981 2 -3724 46 72 114 36 31.01925 2 -3725 46 73 118 33 21.82214 2 -3726 46 74 118 31 30.66415 2 -3727 46 75 118 29 41.61773 2 -3728 46 76 118 32 40.49221 2 -3729 46 77 118 34 31.83233 2 -3730 46 78 122 33 31.98051 2 -3731 46 79 122 31 36.46849 2 -3732 46 80 122 29 42.65763 2 -3733 46 81 122 32 42.02873 2 -3734 46 82 122 34 38.51673 2 -3735 46 83 122 36 43.73003 2 -3736 46 84 126 35 37.51943 2 -3737 46 85 126 33 47.19886 2 -3738 46 86 126 31 49.73577 2 -3739 46 87 126 32 50.96043 2 -3740 46 88 126 34 53.09439 2 -3741 46 89 130 33 44.6435 2 -3742 46 90 130 31 43.48664 2 -3743 46 91 130 32 45.84849 2 -3744 46 92 130 34 49.77982 2 -3745 46 93 130 36 54.5515 2 -3746 47 0 62 39 58.07148 2 -3747 47 1 62 37 55.17664 2 -3748 47 2 62 36 57.49609 2 -3749 47 3 62 38 52.62594 2 -3750 47 4 62 40 44.52247 2 -3751 47 5 66 39 57.15695 2 -3752 47 6 66 37 52.70437 2 -3753 47 7 66 35 59.81066 2 -3754 47 8 66 38 52.87443 2 -3755 47 9 66 40 42.17667 2 -3756 47 10 70 39 54.46432 2 -3757 47 11 70 37 49.79709 2 -3758 47 12 70 36 49.25109 2 -3759 47 13 70 38 45.55832 2 -3760 47 14 70 40 38.61825 2 -3761 47 15 74 39 45.49018 2 -3762 47 16 74 37 38.14593 2 -3763 47 17 74 35 39.31223 2 -3764 47 18 74 36 45.54524 2 -3765 47 19 74 38 34.95454 2 -3766 47 20 74 40 58.83767 2 -3767 47 21 78 39 33.75334 2 -3768 47 22 78 37 32.99618 2 -3769 47 23 78 36 35.28367 2 -3770 47 24 78 38 35.7989 2 -3771 47 25 78 40 31.69522 2 -3772 47 26 82 39 34.36043 2 -3773 47 27 82 37 33.12495 2 -3774 47 28 82 36 35.55578 2 -3775 47 29 82 38 28.99471 2 -3776 47 30 82 40 20.64993 2 -3777 47 31 86 39 24.7485 2 -3778 47 32 86 37 24.67265 2 -3779 47 33 86 36 35.77466 2 -3780 47 34 86 38 24.69082 2 -3781 47 35 86 40 21.76475 2 -3782 47 36 90 39 28.22649 2 -3783 47 37 90 37 24.08957 2 -3784 47 38 90 35 27.03935 2 -3785 47 39 90 36 25.83065 2 -3786 47 40 90 38 21.7755 2 -3787 47 41 90 40 20.86603 2 -3788 47 42 94 39 22.08675 2 -3789 47 43 94 37 27.86224 2 -3790 47 44 94 35 24.6647 2 -3791 47 45 94 38 19.9015 2 -3792 47 46 94 40 22.41031 2 -3793 47 47 98 39 22.69431 2 -3794 47 48 98 37 19.9015 2 -3795 47 49 98 36 26.68255 2 -3796 47 50 98 38 27.86224 2 -3797 47 51 98 40 22.08675 2 -3798 47 52 102 39 20.06737 2 -3799 47 53 102 37 21.11112 2 -3800 47 54 102 35 24.98685 2 -3801 47 55 102 36 24.51351 2 -3802 47 56 102 38 24.08854 2 -3803 47 57 102 40 31.12378 2 -3804 47 58 106 39 21.76569 2 -3805 47 59 106 37 25.29492 2 -3806 47 60 106 35 34.95737 2 -3807 47 61 106 38 25.35122 2 -3808 47 62 106 40 25.00153 2 -3809 47 63 110 39 20.84226 2 -3810 47 64 110 37 28.9957 2 -3811 47 65 110 35 35.55671 2 -3812 47 66 110 38 33.22056 2 -3813 47 67 110 40 33.46035 2 -3814 47 68 114 39 22.92986 2 -3815 47 69 114 37 32.11493 2 -3816 47 70 114 35 42.65918 2 -3817 47 71 114 38 32.33299 2 -3818 47 72 114 40 34.4077 2 -3819 47 73 118 39 31.58575 2 -3820 47 74 118 37 36.11505 2 -3821 47 75 118 35 41.56976 2 -3822 47 76 118 36 39.54488 2 -3823 47 77 118 38 36.37469 2 -3824 47 78 118 40 44.94457 2 -3825 47 79 122 39 38.27045 2 -3826 47 80 122 37 47.10958 2 -3827 47 81 122 35 51.71352 2 -3828 47 82 122 38 49.90763 2 -3829 47 83 122 40 54.00289 2 -3830 47 84 126 39 42.23776 2 -3831 47 85 126 37 47.53006 2 -3832 47 86 126 36 50.27848 2 -3833 47 87 126 38 48.01632 2 -3834 47 88 126 40 55.53047 2 -3835 47 89 130 39 46.80753 2 -3836 47 90 130 37 51.39008 2 -3837 47 91 130 35 54.26202 2 -3838 47 92 130 38 71.18866 2 -3839 47 93 130 40 59.90401 2 -3840 48 0 63 3 42.31033 2 -3841 48 1 63 1 38.09902 2 -3842 48 2 63 2 44.35576 2 -3843 48 3 63 4 32.50823 2 -3844 48 4 63 6 32.73568 2 -3845 48 5 67 3 38.30607 2 -3846 48 6 67 1 33.11941 2 -3847 48 7 67 2 39.52915 2 -3848 48 8 67 4 28.79539 2 -3849 48 9 67 6 27.98701 2 -3850 48 10 71 5 34.82067 2 -3851 48 11 71 3 33.24365 2 -3852 48 12 71 1 21.3255 2 -3853 48 13 71 2 30.61477 2 -3854 48 14 71 4 19.43021 2 -3855 48 15 75 5 26.7023 2 -3856 48 16 75 3 25.48068 2 -3857 48 17 75 1 19.26385 2 -3858 48 18 75 2 19.43892 2 -3859 48 19 75 4 18.66871 2 -3860 48 20 75 6 12.61972 2 -3861 48 21 79 3 20.84896 2 -3862 48 22 79 1 18.38326 2 -3863 48 23 79 2 15.28921 2 -3864 48 24 79 4 15.74743 2 -3865 48 25 79 6 8.8378 2 -3866 48 26 83 5 16.22321 2 -3867 48 27 83 3 13.64008 2 -3868 48 28 83 1 9.93172 2 -3869 48 29 83 2 9.86649 2 -3870 48 30 83 4 8.72644 2 -3871 48 31 87 5 13.77677 2 -3872 48 32 87 3 14.14899 2 -3873 48 33 87 1 6.1783 2 -3874 48 34 87 2 12.25555 2 -3875 48 35 87 4 7.02861 2 -3876 48 36 91 3 14.62085 2 -3877 48 37 91 1 6.19963 2 -3878 48 38 91 2 9.07733 2 -3879 48 39 91 4 8.28759 2 -3880 48 40 91 6 12.36928 2 -3881 48 41 95 3 13.2264 2 -3882 48 42 95 1 9.03125 2 -3883 48 43 95 2 13.32394 2 -3884 48 44 95 4 7.84516 2 -3885 48 45 95 6 8.91713 2 -3886 48 46 99 5 9.51558 2 -3887 48 47 99 3 7.84516 2 -3888 48 48 99 1 13.32394 2 -3889 48 49 99 2 9.03125 2 -3890 48 50 99 4 13.2264 2 -3891 48 51 103 5 12.36831 2 -3892 48 52 103 3 7.75989 2 -3893 48 53 103 1 9.07636 2 -3894 48 54 103 2 6.1986 2 -3895 48 55 103 4 14.47303 2 -3896 48 56 107 3 7.02761 2 -3897 48 57 107 1 12.2565 2 -3898 48 58 107 2 5.36967 2 -3899 48 59 107 4 14.15004 2 -3900 48 60 107 6 13.77572 2 -3901 48 61 111 3 8.12906 2 -3902 48 62 111 1 9.86556 2 -3903 48 63 111 2 9.93279 2 -3904 48 64 111 4 13.63909 2 -3905 48 65 111 6 16.22214 2 -3906 48 66 115 5 8.83689 2 -3907 48 67 115 3 15.82274 2 -3908 48 68 115 1 16.84261 2 -3909 48 69 115 2 17.09096 2 -3910 48 70 115 4 20.87654 2 -3911 48 71 119 5 12.61885 2 -3912 48 72 119 3 18.9674 2 -3913 48 73 119 1 21.00789 2 -3914 48 74 119 2 16.65074 2 -3915 48 75 119 4 25.06515 2 -3916 48 76 119 6 26.478 2 -3917 48 77 123 3 19.2214 2 -3918 48 78 123 1 27.78379 2 -3919 48 79 123 2 21.35605 2 -3920 48 80 123 4 33.11616 2 -3921 48 81 123 6 30.83739 2 -3922 48 82 127 5 28.35982 2 -3923 48 83 127 3 27.73466 2 -3924 48 84 127 1 39.04871 2 -3925 48 85 127 2 30.73672 2 -3926 48 86 127 4 42.88816 2 -3927 48 87 131 5 32.79514 2 -3928 48 88 131 3 32.35383 2 -3929 48 89 131 1 44.11568 2 -3930 48 90 131 2 42.63714 2 -3931 48 91 131 4 42.57879 2 -3932 49 0 63 9 43.13746 2 -3933 49 1 63 7 39.82656 2 -3934 49 2 63 5 30.67368 2 -3935 49 3 63 8 35.68805 2 -3936 49 4 63 10 33.3785 2 -3937 49 5 67 9 34.26903 2 -3938 49 6 67 7 35.89992 2 -3939 49 7 67 5 31.02122 2 -3940 49 8 67 8 28.80172 2 -3941 49 9 67 10 25.29696 2 -3942 49 10 71 9 35.69995 2 -3943 49 11 71 7 25.28837 2 -3944 49 12 71 6 26.55244 2 -3945 49 13 71 8 27.07463 2 -3946 49 14 71 10 19.51887 2 -3947 49 15 75 9 30.80052 2 -3948 49 16 75 7 25.01172 2 -3949 49 17 75 8 21.87881 2 -3950 49 18 75 10 18.74161 2 -3951 49 19 75 12 15.81843 2 -3952 49 20 79 9 21.97514 2 -3953 49 21 79 7 17.42642 2 -3954 49 22 79 5 25.22023 2 -3955 49 23 79 8 18.95387 2 -3956 49 24 79 10 11.68138 2 -3957 49 25 83 11 25.16452 2 -3958 49 26 83 9 17.06536 2 -3959 49 27 83 7 13.32016 2 -3960 49 28 83 6 13.61832 2 -3961 49 29 83 8 13.58726 2 -3962 49 30 83 10 7.34849 2 -3963 49 31 87 9 15.98678 2 -3964 49 32 87 7 9.80785 2 -3965 49 33 87 6 11.45457 2 -3966 49 34 87 8 7.80208 2 -3967 49 35 87 10 4.1501 2 -3968 49 36 91 9 11.47045 2 -3969 49 37 91 7 11.29668 2 -3970 49 38 91 5 4.4648 2 -3971 49 39 91 8 7.41027 2 -3972 49 40 91 10 5.03015 2 -3973 49 41 95 9 7.15864 2 -3974 49 42 95 7 8.01935 2 -3975 49 43 95 5 8.56135 2 -3976 49 44 95 8 5.93084 2 -3977 49 45 95 10 5.12155 2 -3978 49 46 99 9 5.12155 2 -3979 49 47 99 7 5.93084 2 -3980 49 48 99 6 8.56135 2 -3981 49 49 99 8 8.01935 2 -3982 49 50 99 10 7.15864 2 -3983 49 51 103 9 5.03119 2 -3984 49 52 103 7 7.41123 2 -3985 49 53 103 6 4.40253 2 -3986 49 54 103 8 10.48353 2 -3987 49 55 103 10 9.66915 2 -3988 49 56 107 9 4.1491 2 -3989 49 57 107 7 7.81007 2 -3990 49 58 107 5 11.45362 2 -3991 49 59 107 8 9.80691 2 -3992 49 60 107 10 16.1758 2 -3993 49 61 111 9 7.32352 2 -3994 49 62 111 7 14.10799 2 -3995 49 63 111 5 12.56306 2 -3996 49 64 111 8 13.46541 2 -3997 49 65 111 10 16.50124 2 -3998 49 66 111 12 23.37177 2 -3999 49 67 115 9 11.63542 2 -4000 49 68 115 7 18.7603 2 -4001 49 69 115 6 16.67547 2 -4002 49 70 115 8 20.29439 2 -4003 49 71 115 10 22.15441 2 -4004 49 72 119 11 17.34995 2 -4005 49 73 119 9 17.66401 2 -4006 49 74 119 7 24.22682 2 -4007 49 75 119 8 21.29926 2 -4008 49 76 119 10 30.86815 2 -4009 49 77 123 9 18.55765 2 -4010 49 78 123 7 27.56047 2 -4011 49 79 123 5 33.35438 2 -4012 49 80 123 8 27.58364 2 -4013 49 81 123 10 35.12166 2 -4014 49 82 127 9 39.41373 2 -4015 49 83 127 7 27.84421 2 -4016 49 84 127 6 27.35408 2 -4017 49 85 127 8 34.57012 2 -4018 49 86 127 10 36.14572 2 -4019 49 87 131 9 31.57112 2 -4020 49 88 131 7 32.47319 2 -4021 49 89 131 6 30.4531 2 -4022 49 90 131 8 42.94566 2 -4023 49 91 131 10 43.63771 2 -4024 50 0 63 13 46.22338 2 -4025 50 1 63 11 42.24238 2 -4026 50 2 63 12 40.1286 2 -4027 50 3 63 14 35.87666 2 -4028 50 4 63 16 43.86148 2 -4029 50 5 67 13 39.36242 2 -4030 50 6 67 11 35.23799 2 -4031 50 7 67 12 38.56743 2 -4032 50 8 67 14 33.67428 2 -4033 50 9 67 16 24.06869 2 -4034 50 10 71 15 35.84318 2 -4035 50 11 71 13 32.06511 2 -4036 50 12 71 11 26.68207 2 -4037 50 13 71 12 24.24026 2 -4038 50 14 71 14 21.20704 2 -4039 50 15 75 15 26.51892 2 -4040 50 16 75 13 22.75652 2 -4041 50 17 75 11 21.0611 2 -4042 50 18 75 14 30.95106 2 -4043 50 19 75 16 14.07108 2 -4044 50 20 79 13 30.07106 2 -4045 50 21 79 11 24.97628 2 -4046 50 22 79 12 32.28011 2 -4047 50 23 79 14 19.52729 2 -4048 50 24 79 16 15.98056 2 -4049 50 25 83 17 25.16071 2 -4050 50 26 83 15 18.98451 2 -4051 50 27 83 13 15.38084 2 -4052 50 28 83 12 17.2937 2 -4053 50 29 83 14 11.0552 2 -4054 50 30 83 16 10.17681 2 -4055 50 31 87 13 19.17284 2 -4056 50 32 87 11 11.5158 2 -4057 50 33 87 12 13.17959 2 -4058 50 34 87 14 9.69851 2 -4059 50 35 87 16 5.87206 2 -4060 50 36 91 13 15.56387 2 -4061 50 37 91 11 10.79381 2 -4062 50 38 91 12 12.25356 2 -4063 50 39 91 14 8.84927 2 -4064 50 40 91 16 13.45918 2 -4065 50 41 95 13 8.91383 2 -4066 50 42 95 11 10.51745 2 -4067 50 43 95 12 11.88321 2 -4068 50 44 95 14 8.58357 2 -4069 50 45 95 16 6.88535 2 -4070 50 46 99 15 6.88535 2 -4071 50 47 99 13 8.58357 2 -4072 50 48 99 11 11.88321 2 -4073 50 49 99 12 10.51745 2 -4074 50 50 99 14 8.91383 2 -4075 50 51 103 15 13.45829 2 -4076 50 52 103 13 8.67534 2 -4077 50 53 103 11 11.37966 2 -4078 50 54 103 12 21.16013 2 -4079 50 55 103 14 15.22691 2 -4080 50 56 107 15 6.39593 2 -4081 50 57 107 13 11.14193 2 -4082 50 58 107 11 13.17854 2 -4083 50 59 107 12 11.51485 2 -4084 50 60 107 14 17.58516 2 -4085 50 61 111 15 9.30869 2 -4086 50 62 111 13 10.81363 2 -4087 50 63 111 11 18.34223 2 -4088 50 64 111 14 15.25407 2 -4089 50 65 111 16 15.35625 2 -4090 50 66 111 18 24.79545 2 -4091 50 67 115 15 12.69881 2 -4092 50 68 115 13 24.75563 2 -4093 50 69 115 11 28.80238 2 -4094 50 70 115 12 22.90575 2 -4095 50 71 115 14 28.10693 2 -4096 50 72 119 15 13.66253 2 -4097 50 73 119 13 24.93885 2 -4098 50 74 119 12 21.77199 2 -4099 50 75 119 14 23.5968 2 -4100 50 76 119 16 26.09275 2 -4101 50 77 123 13 27.27428 2 -4102 50 78 123 11 30.7475 2 -4103 50 79 123 12 27.24947 2 -4104 50 80 123 14 33.14175 2 -4105 50 81 123 16 34.89512 2 -4106 50 82 127 15 24.7793 2 -4107 50 83 127 13 38.08522 2 -4108 50 84 127 11 40.40771 2 -4109 50 85 127 12 38.78199 2 -4110 50 86 127 14 45.13932 2 -4111 50 87 131 15 27.30632 2 -4112 50 88 131 13 41.02737 2 -4113 50 89 131 11 44.71932 2 -4114 50 90 131 12 47.04325 2 -4115 50 91 131 14 40.56919 2 -4116 51 0 63 19 51.55087 2 -4117 51 1 63 17 50.68212 2 -4118 51 2 63 15 43.06685 2 -4119 51 3 63 18 48.33791 2 -4120 51 4 63 20 49.78683 2 -4121 51 5 67 19 45.28204 2 -4122 51 6 67 17 42.25382 2 -4123 51 7 67 15 39.90449 2 -4124 51 8 67 18 35.5193 2 -4125 51 9 67 20 40.7043 2 -4126 51 10 67 22 31.2644 2 -4127 51 11 71 19 41.80186 2 -4128 51 12 71 17 29.60162 2 -4129 51 13 71 16 38.96507 2 -4130 51 14 71 18 34.62784 2 -4131 51 15 71 20 24.43725 2 -4132 51 16 75 19 44.42059 2 -4133 51 17 75 17 30.64027 2 -4134 51 18 75 18 31.68766 2 -4135 51 19 75 20 25.15957 2 -4136 51 20 75 22 19.95852 2 -4137 51 21 79 19 32.23918 2 -4138 51 22 79 17 29.93564 2 -4139 51 23 79 15 19.15401 2 -4140 51 24 79 18 27.57485 2 -4141 51 25 79 20 22.61935 2 -4142 51 26 83 21 26.13336 2 -4143 51 27 83 19 21.91326 2 -4144 51 28 83 18 20.06547 2 -4145 51 29 83 20 14.93014 2 -4146 51 30 83 22 14.84806 2 -4147 51 31 87 19 31.37317 2 -4148 51 32 87 17 21.69045 2 -4149 51 33 87 15 16.18931 2 -4150 51 34 87 18 19.82258 2 -4151 51 35 87 20 24.0865 2 -4152 51 36 87 22 11.32719 2 -4153 51 37 91 19 22.35223 2 -4154 51 38 91 17 13.61366 2 -4155 51 39 91 15 15.39307 2 -4156 51 40 91 18 14.7836 2 -4157 51 41 91 20 13.09678 2 -4158 51 42 95 19 12.59702 2 -4159 51 43 95 17 14.40268 2 -4160 51 44 95 15 18.21838 2 -4161 51 45 95 18 13.1405 2 -4162 51 46 95 20 11.80501 2 -4163 51 47 99 19 11.80501 2 -4164 51 48 99 17 13.1405 2 -4165 51 49 99 16 23.55337 2 -4166 51 50 99 18 14.59657 2 -4167 51 51 99 20 12.59702 2 -4168 51 52 103 19 13.09775 2 -4169 51 53 103 17 18.72486 2 -4170 51 54 103 16 15.47715 2 -4171 51 55 103 18 14.82339 2 -4172 51 56 103 20 18.55922 2 -4173 51 57 107 21 16.45387 2 -4174 51 58 107 19 19.98082 2 -4175 51 59 107 17 22.76935 2 -4176 51 60 107 16 16.18826 2 -4177 51 61 107 18 21.76611 2 -4178 51 62 107 20 33.64721 2 -4179 51 63 111 21 16.92691 2 -4180 51 64 111 19 16.84378 2 -4181 51 65 111 17 21.9555 2 -4182 51 66 111 20 19.28624 2 -4183 51 67 111 22 27.02172 2 -4184 51 68 115 19 15.1436 2 -4185 51 69 115 17 26.04935 2 -4186 51 70 115 16 18.08757 2 -4187 51 71 115 18 26.08087 2 -4188 51 72 115 20 25.74275 2 -4189 51 73 119 21 19.52457 2 -4190 51 74 119 19 25.73733 2 -4191 51 75 119 17 36.45859 2 -4192 51 76 119 18 30.26289 2 -4193 51 77 119 20 35.19943 2 -4194 51 78 123 19 24.57051 2 -4195 51 79 123 17 33.22299 2 -4196 51 80 123 15 34.44944 2 -4197 51 81 123 18 33.10939 2 -4198 51 82 123 20 41.11733 2 -4199 51 83 127 21 27.89044 2 -4200 51 84 127 19 51.54617 2 -4201 51 85 127 17 46.8453 2 -4202 51 86 127 16 41.67255 2 -4203 51 87 127 18 44.12843 2 -4204 51 88 127 20 52.22014 2 -4205 51 89 131 19 36.65568 2 -4206 51 90 131 17 48.14429 2 -4207 51 91 131 16 49.94906 4 -4208 51 92 131 18 45.8742 2 -4209 51 93 131 20 57.37933 2 -4210 52 0 63 25 51.49371 2 -4211 52 1 63 23 50.8837 2 -4212 52 2 63 21 51.37785 2 -4213 52 3 63 22 57.32089 2 -4214 52 4 63 24 40.7886 2 -4215 52 5 67 25 46.62729 2 -4216 52 6 67 23 42.73452 2 -4217 52 7 67 21 42.3485 2 -4218 52 8 67 24 44.08889 2 -4219 52 9 67 26 36.22732 2 -4220 52 10 71 25 45.63419 2 -4221 52 11 71 23 51.42702 2 -4222 52 12 71 21 48.31019 2 -4223 52 13 71 22 36.558 2 -4224 52 14 71 24 33.12091 2 -4225 52 15 71 26 28.42714 2 -4226 52 16 75 25 35.34437 2 -4227 52 17 75 23 29.19458 2 -4228 52 18 75 21 25.29547 2 -4229 52 19 75 24 36.49949 2 -4230 52 20 75 26 24.54721 2 -4231 52 21 79 23 32.55347 2 -4232 52 22 79 21 30.61888 2 -4233 52 23 79 22 38.93717 2 -4234 52 24 79 24 22.7234 2 -4235 52 25 79 26 20.07817 2 -4236 52 26 83 27 26.75232 2 -4237 52 27 83 25 28.08391 2 -4238 52 28 83 23 21.9116 2 -4239 52 29 83 24 27.78892 2 -4240 52 30 83 26 18.33297 2 -4241 52 31 87 25 28.44153 2 -4242 52 32 87 23 31.38444 2 -4243 52 33 87 21 19.82966 2 -4244 52 34 87 24 23.50479 2 -4245 52 35 87 26 27.43936 2 -4246 52 36 87 28 16.73043 2 -4247 52 37 91 25 22.33136 2 -4248 52 38 91 23 16.763 2 -4249 52 39 91 21 22.38913 2 -4250 52 40 91 22 23.22911 2 -4251 52 41 91 24 16.95751 2 -4252 52 42 95 23 17.55026 2 -4253 52 43 95 21 19.15386 2 -4254 52 44 95 22 18.87652 2 -4255 52 45 95 24 20.99854 2 -4256 52 46 95 26 16.14065 2 -4257 52 47 99 25 16.66249 2 -4258 52 48 99 23 20.43285 2 -4259 52 49 99 21 19.18157 2 -4260 52 50 99 22 19.15386 2 -4261 52 51 99 24 17.57193 2 -4262 52 52 103 23 16.73803 2 -4263 52 53 103 21 23.66194 2 -4264 52 54 103 22 23.37998 2 -4265 52 55 103 24 16.76203 2 -4266 52 56 103 26 28.39701 2 -4267 52 57 107 27 15.28391 2 -4268 52 58 107 25 26.66295 2 -4269 52 59 107 23 24.75923 2 -4270 52 60 107 22 20.04198 2 -4271 52 61 107 24 34.1013 2 -4272 52 62 107 26 25.65442 2 -4273 52 63 111 25 17.24709 2 -4274 52 64 111 23 30.96791 2 -4275 52 65 111 24 19.79566 2 -4276 52 66 111 26 36.17835 2 -4277 52 67 111 28 27.196 2 -4278 52 68 115 25 19.13298 2 -4279 52 69 115 23 21.75758 2 -4280 52 70 115 21 37.04892 2 -4281 52 71 115 22 27.85736 2 -4282 52 72 115 24 39.81854 2 -4283 52 73 119 25 19.14864 2 -4284 52 74 119 23 35.21035 2 -4285 52 75 119 22 28.101 2 -4286 52 76 119 24 32.18993 2 -4287 52 77 119 26 34.10996 2 -4288 52 78 123 25 29.67108 2 -4289 52 79 123 23 38.01064 2 -4290 52 80 123 21 38.89503 2 -4291 52 81 123 22 42.13081 2 -4292 52 82 123 24 48.11435 2 -4293 52 83 123 26 53.2029 2 -4294 52 84 127 25 37.40545 2 -4295 52 85 127 23 54.04747 2 -4296 52 86 127 22 41.28613 2 -4297 52 87 127 24 49.98953 4 -4298 52 88 127 26 46.83885 2 -4299 52 89 131 23 45.96206 2 -4300 52 90 131 21 55.29511 2 -4301 52 91 131 22 51.72005 2 -4302 52 92 131 24 61.56645 2 -4303 52 93 131 26 54.0556 2 -4304 53 0 63 29 54.81928 2 -4305 53 1 63 27 60.10707 2 -4306 53 2 63 26 71.8426 2 -4307 53 3 63 28 51.87573 2 -4308 53 4 63 30 49.92787 2 -4309 53 5 67 29 52.71856 4 -4310 53 6 67 27 56.66237 2 -4311 53 7 67 28 53.17028 2 -4312 53 8 67 30 51.42546 2 -4313 53 9 67 32 41.56675 2 -4314 53 10 71 31 52.54649 2 -4315 53 11 71 29 52.89493 4 -4316 53 12 71 27 47.21357 2 -4317 53 13 71 28 48.77103 4 -4318 53 14 71 30 35.36639 2 -4319 53 15 75 31 44.28325 2 -4320 53 16 75 29 39.20321 2 -4321 53 17 75 27 28.01909 2 -4322 53 18 75 28 34.54619 2 -4323 53 19 75 30 33.39906 2 -4324 53 20 75 32 23.76722 2 -4325 53 21 79 29 35.24464 2 -4326 53 22 79 27 33.82658 2 -4327 53 23 79 25 28.16387 2 -4328 53 24 79 28 26.61459 2 -4329 53 25 79 30 27.23652 2 -4330 53 26 83 31 33.12806 2 -4331 53 27 83 29 33.33033 2 -4332 53 28 83 28 36.91245 2 -4333 53 29 83 30 27.80837 2 -4334 53 30 83 32 21.34494 2 -4335 53 31 87 31 29.0752 2 -4336 53 32 87 29 27.14359 2 -4337 53 33 87 27 25.06151 2 -4338 53 34 87 30 23.6647 2 -4339 53 35 87 32 23.48888 2 -4340 53 36 91 33 27.44933 2 -4341 53 37 91 31 27.03591 2 -4342 53 38 91 29 22.30044 2 -4343 53 39 91 27 25.18333 2 -4344 53 40 91 26 23.24798 2 -4345 53 41 91 28 22.56198 2 -4346 53 42 95 29 30.78074 2 -4347 53 43 95 27 41.0652 2 -4348 53 44 95 25 23.73814 2 -4349 53 45 95 28 25.66837 2 -4350 53 46 95 30 21.49003 2 -4351 53 47 99 29 22.78541 2 -4352 53 48 99 27 25.66837 2 -4353 53 49 99 26 24.09257 2 -4354 53 50 99 28 27.84183 2 -4355 53 51 99 30 21.38893 2 -4356 53 52 103 27 21.77378 2 -4357 53 53 103 25 24.01124 2 -4358 53 54 103 28 22.72863 2 -4359 53 55 103 30 22.28563 2 -4360 53 56 103 32 28.32311 2 -4361 53 57 103 34 27.84425 2 -4362 53 58 107 31 32.33754 2 -4363 53 59 107 29 28.19571 2 -4364 53 60 107 28 23.5701 2 -4365 53 61 107 30 32.59182 2 -4366 53 62 107 32 29.18348 2 -4367 53 63 111 31 20.80434 2 -4368 53 64 111 29 33.81835 2 -4369 53 65 111 27 41.0711 2 -4370 53 66 111 30 30.49025 2 -4371 53 67 111 32 29.5494 2 -4372 53 68 115 29 24.5498 2 -4373 53 69 115 27 27.20501 2 -4374 53 70 115 26 26.11975 2 -4375 53 71 115 28 33.72096 2 -4376 53 72 115 30 32.58159 2 -4377 53 73 119 31 21.99218 2 -4378 53 74 119 29 33.16442 2 -4379 53 75 119 27 41.07023 2 -4380 53 76 119 28 41.07557 4 -4381 53 77 119 30 40.14829 2 -4382 53 78 119 32 41.71452 2 -4383 53 79 123 29 38.28233 2 -4384 53 80 123 27 59.04748 2 -4385 53 81 123 28 44.40742 2 -4386 53 82 123 30 53.25513 2 -4387 53 83 123 32 53.10911 2 -4388 53 84 127 31 38.78099 2 -4389 53 85 127 29 50.2007 2 -4390 53 86 127 27 56.12012 2 -4391 53 87 127 28 54.75652 4 -4392 53 88 127 30 51.86052 2 -4393 53 89 131 29 45.71688 2 -4394 53 90 131 27 58.82172 2 -4395 53 91 131 25 63.76128 2 -4396 53 92 131 28 54.9386 2 -4397 53 93 131 30 58.15676 2 -4398 54 0 63 35 62.02827 2 -4399 54 1 63 33 69.05914 2 -4400 54 2 63 31 56.96699 2 -4401 54 3 63 32 62.848 2 -4402 54 4 63 34 56.60565 2 -4403 54 5 63 36 53.26334 2 -4404 54 6 67 35 71.55353 2 -4405 54 7 67 33 61.66528 2 -4406 54 8 67 31 54.51395 2 -4407 54 9 67 34 57.31245 2 -4408 54 10 67 36 46.35806 2 -4409 54 11 71 35 56.55113 2 -4410 54 12 71 33 45.08508 2 -4411 54 13 71 32 53.88114 2 -4412 54 14 71 34 50.01148 2 -4413 54 15 71 36 40.70606 4 -4414 54 16 75 39 43.3458 2 -4415 54 17 75 37 41.45121 2 -4416 54 18 75 35 32.44188 2 -4417 54 19 75 33 35.88171 2 -4418 54 20 75 34 45.4872 2 -4419 54 21 75 36 26.32137 2 -4420 54 22 79 33 38.96966 2 -4421 54 23 79 31 56.48158 2 -4422 54 24 79 32 36.29642 2 -4423 54 25 79 34 36.48312 2 -4424 54 26 79 36 33.14131 2 -4425 54 27 83 37 39.29718 2 -4426 54 28 83 35 32.24556 2 -4427 54 29 83 33 30.28084 2 -4428 54 30 83 34 31.50472 2 -4429 54 31 83 36 26.71856 2 -4430 54 32 87 35 31.08582 2 -4431 54 33 87 33 29.11893 2 -4432 54 34 87 34 39.78361 2 -4433 54 35 87 36 33.70481 2 -4434 54 36 87 38 24.31677 2 -4435 54 37 91 39 30.75045 2 -4436 54 38 91 37 27.16409 2 -4437 54 39 91 35 25.89851 2 -4438 54 40 91 30 28.32631 2 -4439 54 41 91 32 28.59153 2 -4440 54 42 91 34 24.28971 2 -4441 54 43 95 33 32.93259 2 -4442 54 44 95 31 25.97544 2 -4443 54 45 95 32 27.3437 2 -4444 54 46 95 34 23.70083 2 -4445 54 47 95 36 31.62288 2 -4446 54 48 99 35 25.39888 2 -4447 54 49 99 33 23.91852 2 -4448 54 50 99 31 27.20312 2 -4449 54 51 99 32 31.68491 2 -4450 54 52 99 34 25.23105 2 -4451 54 53 103 33 25.56535 2 -4452 54 54 103 31 28.05841 2 -4453 54 55 103 29 40.42977 2 -4454 54 56 103 36 24.59489 2 -4455 54 57 103 38 27.46458 2 -4456 54 58 103 40 33.94559 2 -4457 54 59 107 37 24.37603 2 -4458 54 60 107 35 27.41147 2 -4459 54 61 107 33 49.16896 2 -4460 54 62 107 34 29.88919 2 -4461 54 63 107 36 40.08903 2 -4462 54 64 111 35 25.05694 2 -4463 54 65 111 33 34.43187 2 -4464 54 66 111 34 29.35984 2 -4465 54 67 111 36 31.55635 2 -4466 54 68 111 38 37.02922 2 -4467 54 69 115 35 27.16559 2 -4468 54 70 115 33 36.74101 2 -4469 54 71 115 31 34.90658 2 -4470 54 72 115 32 38.35668 2 -4471 54 73 115 34 36.74707 2 -4472 54 74 119 35 26.61946 2 -4473 54 75 119 33 43.01969 4 -4474 54 76 119 34 34.9257 2 -4475 54 77 119 36 39.09748 2 -4476 54 78 119 38 41.04439 2 -4477 54 79 119 40 45.99564 2 -4478 54 80 123 35 42.11684 2 -4479 54 81 123 33 50.37516 2 -4480 54 82 123 31 61.20441 2 -4481 54 83 123 34 45.95984 2 -4482 54 84 123 36 62.86969 2 -4483 54 85 127 35 44.57576 2 -4484 54 86 127 33 51.39786 2 -4485 54 87 127 32 50.46522 2 -4486 54 88 127 34 53.03556 2 -4487 54 89 127 36 56.45684 2 -4488 54 90 131 35 48.71355 2 -4489 54 91 131 33 61.58785 2 -4490 54 92 131 31 66.16528 2 -4491 54 93 131 32 64.63274 2 -4492 54 94 131 34 74.02786 2 -4493 54 95 131 36 63.74653 2 -4494 55 0 63 39 67.61893 2 -4495 55 1 63 37 67.75615 2 -4496 55 2 63 38 74.22429 2 -4497 55 3 63 40 68.23335 2 -4498 55 4 64 2 28.45182 2 -4499 55 5 68 3 40.6093 2 -4500 55 6 68 1 43.09451 2 -4501 55 7 67 39 63.38592 2 -4502 55 8 67 37 51.43515 2 -4503 55 9 67 38 61.05189 2 -4504 55 10 67 40 51.60776 2 -4505 55 11 71 39 61.74413 4 -4506 55 12 71 37 54.35501 4 -4507 55 13 71 38 52.73682 2 -4508 55 14 71 40 49.82856 2 -4509 55 15 72 2 18.37386 2 -4510 55 16 76 3 23.40738 2 -4511 55 17 76 1 20.92098 2 -4512 55 18 76 2 23.08517 2 -4513 55 19 75 38 52.00866 2 -4514 55 20 75 40 45.6845 2 -4515 55 21 79 39 47.71144 4 -4516 55 22 79 37 46.20171 4 -4517 55 23 79 35 44.55021 2 -4518 55 24 79 38 38.35685 2 -4519 55 25 79 40 39.44087 2 -4520 55 26 80 2 7.43381 2 -4521 55 27 84 3 15.94567 2 -4522 55 28 84 1 15.27385 2 -4523 55 29 83 39 30.78872 2 -4524 55 30 83 38 36.47815 2 -4525 55 31 83 40 29.48929 2 -4526 55 32 87 39 35.68998 2 -4527 55 33 87 37 34.684 2 -4528 55 34 87 40 38.85105 2 -4529 55 35 88 2 11.95336 2 -4530 55 36 88 4 5.38682 2 -4531 55 37 92 5 20.14788 2 -4532 55 38 92 3 13.77548 2 -4533 55 39 92 1 4.07611 2 -4534 55 40 91 36 33.87576 2 -4535 55 41 91 38 30.92791 2 -4536 55 42 91 40 29.56123 2 -4537 55 43 95 39 30.52607 2 -4538 55 44 95 37 35.1515 2 -4539 55 45 95 35 33.09437 2 -4540 55 46 95 38 29.13192 2 -4541 55 47 95 40 30.35226 2 -4542 55 48 99 39 31.56947 2 -4543 55 49 99 37 29.55276 2 -4544 55 50 99 36 32.52462 2 -4545 55 51 99 38 30.18571 2 -4546 55 52 99 40 29.0203 2 -4547 55 53 103 39 29.64101 2 -4548 55 54 103 37 29.9404 2 -4549 55 55 103 35 33.78342 2 -4550 55 56 104 2 4.07507 2 -4551 55 57 104 4 13.77644 2 -4552 55 58 104 6 19.61086 2 -4553 55 59 108 3 5.8561 2 -4554 55 60 108 1 12.75848 2 -4555 55 61 107 39 48.83092 2 -4556 55 62 107 38 35.38052 2 -4557 55 63 107 40 34.8877 2 -4558 55 64 111 39 29.90991 2 -4559 55 65 111 37 39.39193 2 -4560 55 66 111 40 36.26476 2 -4561 55 67 112 2 15.46431 2 -4562 55 68 112 4 15.94061 2 -4563 55 69 116 1 10.60277 2 -4564 55 70 115 39 38.62872 2 -4565 55 71 115 37 35.61552 2 -4566 55 72 115 36 39.27631 2 -4567 55 73 115 38 47.49714 4 -4568 55 74 115 40 50.05866 4 -4569 55 75 119 39 45.4757 4 -4570 55 76 119 37 50.28184 2 -4571 55 77 120 1 20.48129 2 -4572 55 78 120 2 19.4464 2 -4573 55 79 120 4 26.80633 2 -4574 55 80 124 1 18.34469 2 -4575 55 81 123 39 53.34188 2 -4576 55 82 123 37 55.99718 4 -4577 55 83 123 38 58.01479 2 -4578 55 84 123 40 60.03595 4 -4579 55 85 127 39 49.40909 2 -4580 55 86 127 37 56.90967 2 -4581 55 87 127 38 51.9501 2 -4582 55 88 127 40 60.2056 2 -4583 55 89 128 2 33.4423 2 -4584 55 90 128 4 41.55983 2 -4585 55 91 132 1 27.39495 2 -4586 55 92 131 39 63.41791 2 -4587 55 93 131 37 70.48702 2 -4588 55 94 131 38 74.06524 2 -4589 55 95 131 40 71.39818 2 -4590 56 0 64 5 43.09043 2 -4591 56 1 64 3 39.69611 2 -4592 56 2 64 1 38.85636 2 -4593 56 3 64 4 39.03372 2 -4594 56 4 64 6 28.50327 2 -4595 56 5 68 7 43.36049 2 -4596 56 6 68 5 36.19536 2 -4597 56 7 68 2 44.39085 4 -4598 56 8 68 4 35.37422 2 -4599 56 9 68 6 26.83743 2 -4600 56 10 72 5 35.5041 2 -4601 56 11 72 3 31.46354 2 -4602 56 12 72 1 29.25087 2 -4603 56 13 72 4 27.95366 2 -4604 56 14 72 6 22.95634 2 -4605 56 15 72 8 15.27808 2 -4606 56 16 76 7 23.89848 2 -4607 56 17 76 5 23.30811 2 -4608 56 18 76 4 28.04266 2 -4609 56 19 76 6 18.24658 2 -4610 56 20 76 8 16.74507 2 -4611 56 21 80 5 33.92617 2 -4612 56 22 80 3 23.78584 2 -4613 56 23 80 1 18.03204 2 -4614 56 24 80 4 25.94567 2 -4615 56 25 80 6 14.98665 2 -4616 56 26 80 8 7.52962 2 -4617 56 27 84 7 15.96859 2 -4618 56 28 84 5 16.40918 2 -4619 56 29 84 2 19.11232 2 -4620 56 30 84 4 14.94103 2 -4621 56 31 84 6 10.60415 2 -4622 56 32 88 5 21.04234 2 -4623 56 33 88 3 11.16924 2 -4624 56 34 88 1 12.33981 2 -4625 56 35 88 6 14.46146 2 -4626 56 36 88 8 4.80821 2 -4627 56 37 92 11 16.42973 2 -4628 56 38 92 9 14.82705 2 -4629 56 39 92 7 5.15685 2 -4630 56 40 92 2 15.93845 2 -4631 56 41 92 4 7.38827 2 -4632 56 42 92 6 8.02935 2 -4633 56 43 96 5 8.36403 2 -4634 56 44 96 3 9.99636 2 -4635 56 45 96 1 12.52241 2 -4636 56 46 96 2 10.35843 2 -4637 56 47 96 4 8.42709 2 -4638 56 48 100 3 9.27154 2 -4639 56 49 100 1 10.35643 2 -4640 56 50 100 2 12.52041 2 -4641 56 51 100 4 9.99836 2 -4642 56 52 100 6 8.36203 2 -4643 56 53 104 5 8.03038 2 -4644 56 54 104 3 7.52469 2 -4645 56 55 104 1 15.78236 2 -4646 56 56 104 8 5.15582 2 -4647 56 57 104 10 14.82803 2 -4648 56 58 104 12 16.51799 2 -4649 56 59 108 7 4.31717 2 -4650 56 60 108 5 12.73734 2 -4651 56 61 108 2 12.24981 2 -4652 56 62 108 4 11.16819 2 -4653 56 63 108 6 21.8738 2 -4654 56 64 112 5 10.30586 2 -4655 56 65 112 3 11.1503 2 -4656 56 66 112 1 22.00813 2 -4657 56 67 112 6 15.83223 2 -4658 56 68 112 8 15.92468 2 -4659 56 69 116 7 7.99859 2 -4660 56 70 116 5 15.01368 2 -4661 56 71 116 3 19.49357 2 -4662 56 72 116 2 17.94928 2 -4663 56 73 116 4 23.03095 2 -4664 56 74 116 6 27.64197 2 -4665 56 75 120 7 16.38007 2 -4666 56 76 120 5 18.01943 2 -4667 56 77 120 3 28.14629 2 -4668 56 78 120 6 26.86766 2 -4669 56 79 120 8 24.85962 2 -4670 56 80 124 7 15.01756 2 -4671 56 81 124 5 23.96112 2 -4672 56 82 124 3 28.31202 2 -4673 56 83 124 2 36.13063 2 -4674 56 84 124 4 31.57948 2 -4675 56 85 124 6 36.8937 2 -4676 56 86 128 5 27.1374 2 -4677 56 87 128 3 35.24422 2 -4678 56 88 128 1 44.39281 2 -4679 56 89 128 6 32.7544 2 -4680 56 90 128 8 41.01961 2 -4681 56 91 132 5 29.09652 2 -4682 56 92 132 3 55.91426 2 -4683 56 93 132 2 38.42709 2 -4684 56 94 132 4 43.84761 2 -4685 56 95 132 6 44.20271 2 -4686 57 0 64 11 47.2266 2 -4687 57 1 64 9 47.60882 2 -4688 57 2 64 7 41.65879 2 -4689 57 3 64 8 47.50025 2 -4690 57 4 64 10 38.93724 2 -4691 57 5 64 12 35.57203 2 -4692 57 6 68 11 53.26055 4 -4693 57 7 68 9 36.94512 2 -4694 57 8 68 8 52.10865 2 -4695 57 9 68 10 35.80266 2 -4696 57 10 68 12 31.40724 2 -4697 57 11 72 11 36.17131 2 -4698 57 12 72 9 40.96629 2 -4699 57 13 72 7 32.92715 2 -4700 57 14 72 10 41.19387 2 -4701 57 15 72 12 28.76723 2 -4702 57 16 72 14 22.0009 2 -4703 57 17 76 13 24.82545 2 -4704 57 18 76 11 24.13835 2 -4705 57 19 76 9 23.06289 2 -4706 57 20 76 10 22.88441 2 -4707 57 21 76 12 19.57989 2 -4708 57 22 80 11 40.71347 2 -4709 57 23 80 9 27.5664 2 -4710 57 24 80 7 22.81146 2 -4711 57 25 80 10 28.87268 2 -4712 57 26 80 12 18.2401 2 -4713 57 27 84 13 23.78132 2 -4714 57 28 84 11 22.59704 2 -4715 57 29 84 9 23.24097 2 -4716 57 30 84 8 25.51054 2 -4717 57 31 84 10 23.9849 2 -4718 57 32 84 12 16.67265 2 -4719 57 33 88 11 19.3185 2 -4720 57 34 88 9 15.53363 2 -4721 57 35 88 7 17.86486 2 -4722 57 36 88 10 16.09131 2 -4723 57 37 88 12 10.8319 2 -4724 57 38 92 15 20.20572 2 -4725 57 39 92 13 11.71672 2 -4726 57 40 92 8 17.02311 2 -4727 57 41 92 10 17.2472 2 -4728 57 42 92 12 11.76391 2 -4729 57 43 92 14 17.31743 2 -4730 57 44 96 9 12.87022 2 -4731 57 45 96 7 15.23032 2 -4732 57 46 96 6 18.59743 2 -4733 57 47 96 8 14.38182 2 -4734 57 48 96 10 12.10968 2 -4735 57 49 100 9 23.12823 2 -4736 57 50 100 7 14.97243 2 -4737 57 51 100 5 16.84389 2 -4738 57 52 100 8 15.23232 2 -4739 57 53 100 10 12.86822 2 -4740 57 54 104 13 17.56162 2 -4741 57 55 104 11 9.37042 2 -4742 57 56 104 9 11.79954 2 -4743 57 57 104 7 17.33267 2 -4744 57 58 104 14 11.72076 2 -4745 57 59 104 16 19.44282 2 -4746 57 60 108 11 9.25131 2 -4747 57 61 108 9 17.97209 2 -4748 57 62 108 8 18.84125 2 -4749 57 63 108 10 14.72112 2 -4750 57 64 108 12 23.69116 2 -4751 57 65 112 11 14.71125 2 -4752 57 66 112 9 14.4232 2 -4753 57 67 112 7 24.32982 2 -4754 57 68 112 10 18.38171 2 -4755 57 69 112 12 22.48717 2 -4756 57 70 112 14 26.29001 2 -4757 57 71 116 11 18.84674 2 -4758 57 72 116 9 26.34784 2 -4759 57 73 116 8 19.56434 2 -4760 57 74 116 10 25.46233 2 -4761 57 75 116 12 28.78139 2 -4762 57 76 120 11 15.94896 2 -4763 57 77 120 9 24.00273 2 -4764 57 78 120 10 22.40398 2 -4765 57 79 120 12 24.53226 2 -4766 57 80 120 14 25.37323 2 -4767 57 81 124 13 19.8934 2 -4768 57 82 124 11 28.08731 2 -4769 57 83 124 9 36.06112 2 -4770 57 84 124 8 32.99352 2 -4771 57 85 124 10 40.39291 2 -4772 57 86 124 12 40.30252 2 -4773 57 87 128 11 32.8632 2 -4774 57 88 128 9 35.23536 2 -4775 57 89 128 7 59.22055 2 -4776 57 90 128 10 45.71918 2 -4777 57 91 128 12 44.26036 2 -4778 57 92 132 11 34.86105 2 -4779 57 93 132 9 37.96983 2 -4780 57 94 132 7 42.8066 2 -4781 57 95 132 8 44.98966 2 -4782 57 96 132 10 48.47327 2 -4783 57 97 132 12 47.5734 2 -4784 58 0 64 17 60.59767 2 -4785 58 1 64 15 51.08154 2 -4786 58 2 64 13 49.31131 2 -4787 58 3 64 14 57.65436 2 -4788 58 4 64 16 50.11935 2 -4789 58 5 64 18 38.15852 2 -4790 58 6 68 17 50.28817 2 -4791 58 7 68 15 44.43986 2 -4792 58 8 68 13 42.76073 2 -4793 58 9 68 14 47.72614 2 -4794 58 10 68 16 35.83236 2 -4795 58 11 72 15 44.69806 4 -4796 58 12 72 13 36.88078 2 -4797 58 13 72 16 44.9103 2 -4798 58 14 72 18 31.94735 2 -4799 58 15 72 20 30.44521 2 -4800 58 16 76 19 37.6815 2 -4801 58 17 76 17 31.84664 2 -4802 58 18 76 15 32.33923 2 -4803 58 19 76 14 39.48413 2 -4804 58 20 76 16 27.46253 2 -4805 58 21 76 18 21.86426 2 -4806 58 22 80 17 31.5031 2 -4807 58 23 80 15 39.51814 2 -4808 58 24 80 13 21.4372 2 -4809 58 25 80 14 22.13903 2 -4810 58 26 80 16 25.92008 2 -4811 58 27 84 19 24.95913 2 -4812 58 28 84 17 21.44093 2 -4813 58 29 84 15 32.19759 2 -4814 58 30 84 14 28.46448 2 -4815 58 31 84 16 22.36687 2 -4816 58 32 84 18 24.82048 2 -4817 58 33 88 15 24.60676 2 -4818 58 34 88 13 18.88767 2 -4819 58 35 88 14 29.42456 2 -4820 58 36 88 16 25.48923 2 -4821 58 37 88 18 16.9295 2 -4822 58 38 92 19 21.26336 2 -4823 58 39 92 17 16.36033 2 -4824 58 40 92 16 23.63624 2 -4825 58 41 92 18 21.23227 2 -4826 58 42 92 20 14.89242 2 -4827 58 43 96 15 27.137 2 -4828 58 44 96 13 17.7208 2 -4829 58 45 96 11 26.69368 2 -4830 58 46 96 12 17.27166 2 -4831 58 47 96 14 22.57337 2 -4832 58 48 96 16 17.21181 2 -4833 58 49 100 15 17.73919 2 -4834 58 50 100 13 21.05007 2 -4835 58 51 100 11 21.47447 2 -4836 58 52 100 12 26.18035 2 -4837 58 53 100 14 17.60949 2 -4838 58 54 100 16 39.00934 2 -4839 58 55 104 19 14.32254 2 -4840 58 56 104 17 17.90451 2 -4841 58 57 104 15 27.77732 2 -4842 58 58 104 18 16.37232 2 -4843 58 59 104 20 27.40183 2 -4844 58 60 108 17 16.84202 2 -4845 58 61 108 15 25.99147 2 -4846 58 62 108 13 28.28913 2 -4847 58 63 108 14 18.93716 2 -4848 58 64 108 16 24.81516 2 -4849 58 65 112 17 16.89398 2 -4850 58 66 112 15 23.99272 2 -4851 58 67 112 13 26.07409 2 -4852 58 68 112 16 21.98079 2 -4853 58 69 112 18 24.41725 2 -4854 58 70 112 20 25.10558 2 -4855 58 71 116 15 28.50317 2 -4856 58 72 116 13 22.7722 2 -4857 58 73 116 14 20.9134 2 -4858 58 74 116 16 27.93009 2 -4859 58 75 116 18 31.92312 2 -4860 58 76 120 17 21.59112 2 -4861 58 77 120 15 26.66842 2 -4862 58 78 120 13 32.28126 2 -4863 58 79 120 16 28.73292 2 -4864 58 80 120 18 28.06316 2 -4865 58 81 120 20 34.33984 2 -4866 58 82 124 19 32.47305 2 -4867 58 83 124 17 30.77135 2 -4868 58 84 124 15 44.27534 2 -4869 58 85 124 14 40.16403 2 -4870 58 86 124 16 43.95945 2 -4871 58 87 128 15 33.31869 2 -4872 58 88 128 13 48.48589 2 -4873 58 89 128 14 46.04373 2 -4874 58 90 128 16 43.0137 2 -4875 58 91 128 18 53.72175 2 -4876 58 92 132 17 50.22495 2 -4877 58 93 132 15 48.35163 2 -4878 58 94 132 13 54.41623 2 -4879 58 95 132 14 46.2838 2 -4880 58 96 132 16 48.30136 2 -4881 58 97 132 18 50.74827 2 -4882 59 0 64 23 56.64269 2 -4883 59 1 64 21 54.23359 2 -4884 59 2 64 19 48.01475 2 -4885 59 3 64 20 55.98092 2 -4886 59 4 64 22 46.7878 2 -4887 59 5 68 23 58.80829 2 -4888 59 6 68 21 51.92496 2 -4889 59 7 68 19 45.54511 2 -4890 59 8 68 18 49.91428 2 -4891 59 9 68 20 46.51372 2 -4892 59 10 68 22 40.06887 2 -4893 59 11 72 21 46.55738 2 -4894 59 12 72 19 40.61707 2 -4895 59 13 72 17 38.91175 2 -4896 59 14 72 22 41.11151 2 -4897 59 15 72 24 30.53928 2 -4898 59 16 76 25 51.93335 4 -4899 59 17 76 23 35.88243 2 -4900 59 18 76 21 31.02179 2 -4901 59 19 76 20 35.59026 2 -4902 59 20 76 22 58.45543 2 -4903 59 21 76 24 27.30146 2 -4904 59 22 80 21 34.27532 2 -4905 59 23 80 19 34.06391 2 -4906 59 24 80 18 36.75543 2 -4907 59 25 80 20 33.0296 2 -4908 59 26 80 22 22.99806 2 -4909 59 27 84 25 34.66875 2 -4910 59 28 84 23 23.41114 2 -4911 59 29 84 21 24.85492 2 -4912 59 30 84 20 28.12964 2 -4913 59 31 84 22 23.37098 2 -4914 59 32 84 24 23.02044 2 -4915 59 33 88 21 24.623 2 -4916 59 34 88 19 25.38367 2 -4917 59 35 88 17 25.7556 2 -4918 59 36 88 20 26.48368 2 -4919 59 37 88 22 20.27726 2 -4920 59 38 92 25 28.13439 2 -4921 59 39 92 23 24.58963 2 -4922 59 40 92 21 20.30195 2 -4923 59 41 92 22 22.37246 2 -4924 59 42 92 24 21.00861 2 -4925 59 43 96 21 26.87299 2 -4926 59 44 96 19 21.64395 2 -4927 59 45 96 17 23.09142 2 -4928 59 46 96 18 26.39256 2 -4929 59 47 96 20 24.53779 2 -4930 59 48 96 22 23.56283 2 -4931 59 49 100 21 23.12764 2 -4932 59 50 100 19 24.96633 2 -4933 59 51 100 17 26.85975 2 -4934 59 52 100 18 23.11545 2 -4935 59 53 100 20 21.41004 2 -4936 59 54 100 22 25.61508 2 -4937 59 55 104 23 18.35649 2 -4938 59 56 104 21 26.91544 2 -4939 59 57 104 22 21.97819 2 -4940 59 58 104 24 23.71185 2 -4941 59 59 104 26 23.72528 2 -4942 59 60 108 21 19.40343 2 -4943 59 61 108 19 26.65933 2 -4944 59 62 108 18 24.51979 2 -4945 59 63 108 20 29.55308 2 -4946 59 64 108 22 29.85072 2 -4947 59 65 112 23 19.24308 2 -4948 59 66 112 21 27.27037 2 -4949 59 67 112 19 28.27728 2 -4950 59 68 112 22 35.85016 2 -4951 59 69 112 24 23.3965 2 -4952 59 70 112 26 31.92838 2 -4953 59 71 116 21 24.63086 2 -4954 59 72 116 19 31.11468 2 -4955 59 73 116 17 48.46922 2 -4956 59 74 116 20 41.06108 2 -4957 59 75 116 22 34.08026 2 -4958 59 76 120 23 30.31756 2 -4959 59 77 120 21 33.23654 2 -4960 59 78 120 19 44.68583 2 -4961 59 79 120 22 30.39102 2 -4962 59 80 120 24 35.83084 2 -4963 59 81 120 26 47.62196 2 -4964 59 82 124 23 33.7398 2 -4965 59 83 124 21 48.5489 2 -4966 59 84 124 18 41.04646 2 -4967 59 85 124 20 42.65913 2 -4968 59 86 124 22 64.24578 2 -4969 59 87 128 21 39.17907 2 -4970 59 88 128 19 54.14197 2 -4971 59 89 128 17 63.51055 2 -4972 59 90 128 20 46.86537 2 -4973 59 91 128 22 56.67413 2 -4974 59 92 128 24 50.67125 2 -4975 59 93 132 21 48.58638 4 -4976 59 94 132 19 66.35259 2 -4977 59 95 132 20 46.44999 2 -4978 59 96 132 22 57.09969 2 -4979 59 97 132 24 58.59176 2 -4980 60 0 64 29 69.44741 2 -4981 60 1 64 27 61.38761 2 -4982 60 2 64 25 60.14505 2 -4983 60 3 64 24 60.48288 4 -4984 60 4 64 26 59.62536 2 -4985 60 5 64 28 49.3919 2 -4986 60 6 68 29 55.70093 2 -4987 60 7 68 27 58.94681 2 -4988 60 8 68 25 48.58905 2 -4989 60 9 68 24 55.42239 2 -4990 60 10 68 26 48.79633 2 -4991 60 11 68 28 44.91122 2 -4992 60 12 72 25 61.91948 2 -4993 60 13 72 23 51.20041 2 -4994 60 14 72 26 46.55209 2 -4995 60 15 72 28 46.48605 2 -4996 60 16 72 30 35.23715 2 -4997 60 17 76 29 50.79823 4 -4998 60 18 76 27 47.35247 4 -4999 60 19 76 26 41.29446 2 -5000 60 20 76 28 40.16753 2 -5001 60 21 76 30 49.95632 2 -5002 60 22 80 27 46.14762 2 -5003 60 23 80 25 38.14938 2 -5004 60 24 80 23 55.41207 2 -5005 60 25 80 24 45.78997 2 -5006 60 26 80 26 30.34492 2 -5007 60 27 80 28 33.74128 2 -5008 60 28 84 29 40.95103 2 -5009 60 29 84 27 29.32993 2 -5010 60 30 84 26 33.97898 2 -5011 60 31 84 28 31.09216 2 -5012 60 32 84 30 25.38259 2 -5013 60 33 88 27 44.96271 2 -5014 60 34 88 25 30.06763 2 -5015 60 35 88 23 38.86809 2 -5016 60 36 88 24 31.5694 2 -5017 60 37 88 26 27.07404 2 -5018 60 38 88 28 23.59388 2 -5019 60 39 92 29 31.8012 2 -5020 60 40 92 27 30.12566 2 -5021 60 41 92 26 29.9791 2 -5022 60 42 92 28 26.3685 2 -5023 60 43 92 30 23.60604 2 -5024 60 44 96 27 25.79061 2 -5025 60 45 96 25 24.97189 2 -5026 60 46 96 23 31.028 2 -5027 60 47 96 24 28.28611 2 -5028 60 48 96 26 25.98293 2 -5029 60 49 96 28 24.40614 2 -5030 60 50 100 27 39.56833 2 -5031 60 51 100 25 24.80578 2 -5032 60 52 100 23 27.88892 2 -5033 60 53 100 24 25.48907 2 -5034 60 54 100 26 26.7882 2 -5035 60 55 100 28 26.14132 2 -5036 60 56 104 29 22.69577 2 -5037 60 57 104 27 24.69057 2 -5038 60 58 104 25 28.7199 2 -5039 60 59 104 28 28.66183 2 -5040 60 60 104 30 28.63971 2 -5041 60 61 108 27 23.44259 2 -5042 60 62 108 25 28.34342 2 -5043 60 63 108 23 35.6209 2 -5044 60 64 108 24 41.6373 2 -5045 60 65 108 26 33.61302 2 -5046 60 66 108 28 38.87018 2 -5047 60 67 112 29 24.76018 2 -5048 60 68 112 27 28.77919 2 -5049 60 69 112 25 32.12693 2 -5050 60 70 112 28 29.00449 2 -5051 60 71 112 30 37.83872 2 -5052 60 72 116 27 25.15036 2 -5053 60 73 116 25 31.06847 2 -5054 60 74 116 23 40.11288 2 -5055 60 75 116 24 41.82564 4 -5056 60 76 116 26 40.47159 2 -5057 60 77 116 28 50.1922 4 -5058 60 78 120 29 36.3193 2 -5059 60 79 120 27 45.1725 2 -5060 60 80 120 25 44.20934 2 -5061 60 81 120 28 39.11429 2 -5062 60 82 120 30 49.4541 2 -5063 60 83 124 29 38.05058 2 -5064 60 84 124 27 45.25374 2 -5065 60 85 124 25 48.1419 2 -5066 60 86 124 24 49.97237 2 -5067 60 87 124 26 54.80581 2 -5068 60 88 128 27 45.48233 2 -5069 60 89 128 25 49.67787 2 -5070 60 90 128 23 56.69802 4 -5071 60 91 128 26 50.62288 2 -5072 60 92 128 28 57.87018 2 -5073 60 93 128 30 58.86806 2 -5074 60 94 132 27 68.29513 2 -5075 60 95 132 25 58.85544 2 -5076 60 96 132 23 59.46265 2 -5077 60 97 132 26 59.00583 2 -5078 60 98 132 28 62.25653 2 -5079 60 99 132 30 64.31094 2 -5080 61 0 64 35 65.19345 2 -5081 61 1 64 33 70.61222 2 -5082 61 2 64 31 64.38208 2 -5083 61 3 64 30 76.64678 2 -5084 61 4 64 32 61.87432 2 -5085 61 5 64 34 57.87272 2 -5086 61 6 68 33 60.08067 2 -5087 61 7 68 31 59.9893 2 -5088 61 8 68 30 62.67445 2 -5089 61 9 68 32 59.58848 2 -5090 61 10 68 34 49.94507 2 -5091 61 11 72 33 64.56474 2 -5092 61 12 72 31 56.31019 2 -5093 61 13 72 29 55.89951 2 -5094 61 14 72 27 49.98971 2 -5095 61 15 72 32 49.62831 2 -5096 61 16 72 34 44.34397 2 -5097 61 17 76 33 51.68253 2 -5098 61 18 76 31 51.7173 4 -5099 61 19 76 32 46.67745 2 -5100 61 20 76 34 40.76197 2 -5101 61 21 76 36 36.10656 2 -5102 61 22 80 33 57.83074 2 -5103 61 23 80 31 41.7988 2 -5104 61 24 80 29 40.43497 2 -5105 61 25 80 30 43.39135 2 -5106 61 26 80 32 38.87802 2 -5107 61 27 80 34 28.82811 2 -5108 61 28 84 35 42.68599 2 -5109 61 29 84 33 42.59306 2 -5110 61 30 84 31 34.48519 2 -5111 61 31 84 32 37.06407 2 -5112 61 32 84 34 30.15035 2 -5113 61 33 88 33 34.43868 2 -5114 61 34 88 31 36.77434 2 -5115 61 35 88 29 31.67302 2 -5116 61 36 88 30 33.43267 2 -5117 61 37 88 32 32.85157 2 -5118 61 38 88 34 27.0179 2 -5119 61 39 92 35 44.41728 2 -5120 61 40 92 33 31.8261 2 -5121 61 41 92 31 30.22404 2 -5122 61 42 92 32 30.72984 2 -5123 61 43 92 34 32.93835 2 -5124 61 44 96 33 31.55828 2 -5125 61 45 96 31 29.35496 2 -5126 61 46 96 29 36.82204 2 -5127 61 47 96 30 33.77389 2 -5128 61 48 96 32 27.31761 2 -5129 61 49 96 34 45.27467 2 -5130 61 50 100 33 38.79157 2 -5131 61 51 100 31 27.7721 2 -5132 61 52 100 29 31.34034 2 -5133 61 53 100 30 54.16116 2 -5134 61 54 100 32 29.48091 2 -5135 61 55 100 34 30.04354 2 -5136 61 56 104 33 28.53076 2 -5137 61 57 104 31 30.87503 2 -5138 61 58 104 32 29.19252 2 -5139 61 59 104 34 31.39785 2 -5140 61 60 104 36 38.47809 2 -5141 61 61 108 33 26.37126 2 -5142 61 62 108 31 30.6581 2 -5143 61 63 108 29 34.0991 2 -5144 61 64 108 30 33.43194 2 -5145 61 65 108 32 37.7285 2 -5146 61 66 108 34 39.44969 2 -5147 61 67 112 33 28.68805 2 -5148 61 68 112 31 36.70478 2 -5149 61 69 112 32 33.97524 2 -5150 61 70 112 34 39.48536 2 -5151 61 71 112 36 39.69841 2 -5152 61 72 116 33 30.42674 2 -5153 61 73 116 31 39.50122 2 -5154 61 74 116 29 38.32481 2 -5155 61 75 116 30 41.69534 2 -5156 61 76 116 32 45.12594 2 -5157 61 77 116 34 58.90756 2 -5158 61 78 120 35 37.22805 2 -5159 61 79 120 33 46.47882 2 -5160 61 80 120 31 52.54865 2 -5161 61 81 120 32 44.44158 2 -5162 61 82 120 34 55.54089 2 -5163 61 83 124 33 40.89457 2 -5164 61 84 124 31 56.59503 2 -5165 61 85 124 28 47.17168 2 -5166 61 86 124 30 60.05846 2 -5167 61 87 124 32 55.95507 2 -5168 61 88 124 34 65.04227 2 -5169 61 89 128 33 55.64384 2 -5170 61 90 128 31 57.35024 2 -5171 61 91 128 29 62.24121 2 -5172 61 92 128 32 55.39349 2 -5173 61 93 128 34 57.58534 2 -5174 61 94 132 33 53.04879 2 -5175 61 95 132 31 60.15506 2 -5176 61 96 132 29 67.21716 2 -5177 61 97 132 32 65.47664 2 -5178 61 98 132 34 73.13777 2 -5179 61 99 132 36 67.05976 2 -5180 62 0 64 39 75.95373 2 -5181 62 1 64 37 73.41971 2 -5182 62 2 64 36 70.91933 2 -5183 62 3 64 38 67.19974 2 -5184 62 4 64 40 61.75654 2 -5185 62 5 68 39 69.89426 2 -5186 62 6 68 37 73.94405 2 -5187 62 7 68 35 63.76171 2 -5188 62 8 68 36 60.75208 2 -5189 62 9 68 38 60.7791 2 -5190 62 10 68 40 49.56967 2 -5191 62 11 72 39 61.15172 2 -5192 62 12 72 37 59.7828 2 -5193 62 13 72 35 59.70723 4 -5194 62 14 72 36 55.90852 2 -5195 62 15 72 38 50.59077 2 -5196 62 16 72 40 45.06535 2 -5197 62 17 76 39 64.90003 2 -5198 62 18 76 37 46.58611 2 -5199 62 19 76 35 48.7036 2 -5200 62 20 76 38 47.42728 2 -5201 62 21 76 40 39.4154 2 -5202 62 22 80 39 50.58467 2 -5203 62 23 80 37 45.86225 2 -5204 62 24 80 35 43.85621 2 -5205 62 25 80 36 44.34816 2 -5206 62 26 80 38 42.55242 2 -5207 62 27 80 40 33.70383 2 -5208 62 28 84 39 49.42394 2 -5209 62 29 84 37 35.94687 2 -5210 62 30 84 36 46.27383 2 -5211 62 31 84 38 39.82671 2 -5212 62 32 84 40 31.92482 2 -5213 62 33 88 39 44.25492 2 -5214 62 34 88 37 36.62624 2 -5215 62 35 88 35 36.35464 2 -5216 62 36 88 36 36.46102 2 -5217 62 37 88 38 36.03183 2 -5218 62 38 88 40 30.49846 2 -5219 62 39 92 39 43.86633 2 -5220 62 40 92 37 35.5406 2 -5221 62 41 92 36 39.72226 2 -5222 62 42 92 38 35.8116 2 -5223 62 43 92 40 32.11845 2 -5224 62 44 96 39 33.11437 2 -5225 62 45 96 37 37.33491 2 -5226 62 46 96 35 33.38836 2 -5227 62 47 96 36 34.89355 2 -5228 62 48 96 38 38.30765 2 -5229 62 49 96 40 31.53051 2 -5230 62 50 100 39 34.6698 2 -5231 62 51 100 37 36.87838 2 -5232 62 52 100 35 33.52158 2 -5233 62 53 100 36 32.73659 2 -5234 62 54 100 38 34.13393 2 -5235 62 55 100 40 33.11237 2 -5236 62 56 104 39 31.81042 2 -5237 62 57 104 37 32.287 2 -5238 62 58 104 35 37.8995 2 -5239 62 59 104 38 35.49763 2 -5240 62 60 104 40 42.7663 2 -5241 62 61 108 39 30.34482 2 -5242 62 62 108 37 32.70039 2 -5243 62 63 108 35 37.28034 2 -5244 62 64 108 36 36.25496 2 -5245 62 65 108 38 37.41978 2 -5246 62 66 108 40 42.87615 2 -5247 62 67 112 39 31.68032 2 -5248 62 68 112 37 43.22699 2 -5249 62 69 112 35 48.33159 2 -5250 62 70 112 38 44.73033 2 -5251 62 71 112 40 44.68824 2 -5252 62 72 116 39 32.32901 2 -5253 62 73 116 37 41.71358 2 -5254 62 74 116 35 42.46778 2 -5255 62 75 116 36 43.6705 2 -5256 62 76 116 38 46.94999 2 -5257 62 77 116 40 52.84656 4 -5258 62 78 120 39 40.02757 2 -5259 62 79 120 37 50.97093 2 -5260 62 80 120 36 55.20071 2 -5261 62 81 120 38 51.34035 2 -5262 62 82 120 40 54.4927 2 -5263 62 83 124 39 44.14728 2 -5264 62 84 124 37 55.75366 2 -5265 62 85 124 35 58.45858 2 -5266 62 86 124 36 58.71692 2 -5267 62 87 124 38 62.13867 4 -5268 62 88 124 40 62.48268 2 -5269 62 89 128 39 50.32973 2 -5270 62 90 128 37 63.15069 2 -5271 62 91 128 35 68.31685 2 -5272 62 92 128 36 64.34828 2 -5273 62 93 128 38 64.16162 2 -5274 62 94 128 40 70.60795 2 -5275 62 95 132 39 62.65166 2 -5276 62 96 132 37 73.98054 2 -5277 62 97 132 35 70.94208 2 -5278 62 98 132 38 74.76308 2 -5279 62 99 132 40 73.44627 2 +0 0 0 1 5 86.034 2 +1 0 1 1 3 83.84776 2 +2 0 2 1 1 85.63241 2 +3 0 3 1 2 84.86697 2 +4 0 4 1 4 84.74059 2 +5 0 5 5 3 85.24601 2 +6 0 6 5 1 86.91931 4 +7 0 7 5 2 84.52014 2 +8 0 8 5 4 77.2281 4 +9 0 9 9 3 77.47959 2 +10 0 10 9 1 75.49931 2 +11 0 11 9 2 82.25363 2 +12 0 12 9 4 71.70391 2 +13 0 13 13 5 73.15898 2 +14 0 14 13 3 74.62056 2 +15 0 15 13 1 67.37926 2 +16 0 16 13 2 73.44017 2 +17 0 17 13 4 71.75517 2 +18 0 18 17 3 72.85007 2 +19 0 19 17 1 65.72736 2 +20 0 20 17 2 68.20117 2 +21 0 21 17 4 67.58671 2 +22 0 22 21 3 68.94784 2 +23 0 23 21 1 67.33135 2 +24 0 24 21 2 68.41456 2 +25 0 25 21 4 70.28488 2 +26 0 26 25 3 69.61931 2 +27 0 27 25 1 66.06866 2 +28 0 28 25 2 66.44324 2 +29 0 29 25 4 66.35427 2 +30 0 30 25 6 68.16168 2 +31 0 31 29 3 72.41946 2 +32 0 32 29 1 71.40971 2 +33 0 33 29 2 65.54062 2 +34 0 34 29 4 68.00636 2 +35 0 35 33 5 74.45997 2 +36 0 36 33 3 71.36551 2 +37 0 37 33 1 67.89695 2 +38 0 38 33 2 69.5631 2 +39 0 39 33 4 73.2171 2 +40 0 40 37 3 67.48688 2 +41 0 41 37 1 68.56436 2 +42 0 42 37 2 65.20757 2 +43 0 43 37 4 71.17019 2 +44 0 44 41 3 70.12971 2 +45 0 45 41 1 68.92999 2 +46 0 46 41 2 67.94979 2 +47 0 47 41 4 68.59815 2 +48 0 48 45 3 70.30976 2 +49 0 49 45 1 72.34687 2 +50 0 50 45 2 68.96524 2 +51 0 51 45 4 81.77065 2 +52 0 52 45 6 72.5081 2 +53 0 53 49 3 72.75907 2 +54 0 54 49 1 83.65523 2 +55 0 55 49 2 76.31863 2 +56 0 56 49 4 79.87562 2 +57 0 57 53 3 77.98301 2 +58 0 58 53 1 87.31082 4 +59 0 59 53 2 77.87573 2 +60 0 60 53 4 86.99582 4 +61 0 61 57 3 83.04563 2 +62 0 62 57 1 86.40327 4 +63 0 63 57 2 77.94883 2 +64 0 64 57 4 76.16531 2 +65 0 65 57 6 86.53703 2 +66 1 0 1 9 86.03414 2 +67 1 1 1 7 83.22176 2 +68 1 2 1 6 84.09026 2 +69 1 3 1 8 75.69621 2 +70 1 4 5 7 85.45749 4 +71 1 5 5 5 87.72123 4 +72 1 6 5 6 85.85371 2 +73 1 7 5 8 82.02965 2 +74 1 8 5 10 70.29881 2 +75 1 9 9 7 75.93554 2 +76 1 10 9 5 69.0341 2 +77 1 11 9 6 67.43996 2 +78 1 12 9 8 67.25658 2 +79 1 13 13 9 77.59601 2 +80 1 14 13 7 73.07044 2 +81 1 15 13 6 72.8881 2 +82 1 16 13 8 65.75371 2 +83 1 17 13 10 68.22892 2 +84 1 18 17 7 66.64512 2 +85 1 19 17 5 60.62742 2 +86 1 20 17 6 63.30874 2 +87 1 21 17 8 64.90934 2 +88 1 22 21 7 63.93668 2 +89 1 23 21 5 61.7867 2 +90 1 24 21 6 64.134 2 +91 1 25 21 8 65.95495 2 +92 1 26 25 9 65.34504 2 +93 1 27 25 7 63.06864 2 +94 1 28 25 5 58.94961 2 +95 1 29 25 8 63.57834 2 +96 1 30 25 10 65.91091 2 +97 1 31 29 7 68.44889 2 +98 1 32 29 5 65.43384 2 +99 1 33 29 6 60.27239 2 +100 1 34 29 8 64.08261 2 +101 1 35 33 9 65.20577 2 +102 1 36 33 7 64.2332 2 +103 1 37 33 6 58.41569 2 +104 1 38 33 8 60.70675 2 +105 1 39 33 10 63.39753 2 +106 1 40 37 7 63.01612 2 +107 1 41 37 5 63.24205 2 +108 1 42 37 6 60.6668 2 +109 1 43 37 8 66.1381 2 +110 1 44 41 7 64.35854 2 +111 1 45 41 5 63.84229 2 +112 1 46 41 6 67.0907 2 +113 1 47 41 8 71.09752 2 +114 1 48 45 9 65.15382 2 +115 1 49 45 7 66.58167 2 +116 1 50 45 5 76.86446 2 +117 1 51 45 8 66.33084 2 +118 1 52 45 10 74.1022 2 +119 1 53 49 7 66.91112 2 +120 1 54 49 5 73.57963 2 +121 1 55 49 6 69.31385 2 +122 1 56 49 8 70.52392 2 +123 1 57 53 9 77.22038 2 +124 1 58 53 7 85.82497 4 +125 1 59 53 5 86.22986 4 +126 1 60 53 6 77.46556 2 +127 1 61 53 8 85.48002 4 +128 1 62 57 7 80.66665 2 +129 1 63 57 5 89.95366 4 +130 1 64 57 8 83.9332 4 +131 1 65 57 10 88.06786 4 +132 2 0 1 13 83.20797 4 +133 2 1 1 11 72.97554 2 +134 2 2 1 10 81.88057 2 +135 2 3 1 12 78.67112 4 +136 2 4 5 11 80.36158 4 +137 2 5 5 9 78.87221 4 +138 2 6 5 12 82.42345 2 +139 2 7 5 14 77.05949 2 +140 2 8 9 11 77.02146 2 +141 2 9 9 9 69.94445 2 +142 2 10 9 10 76.99602 2 +143 2 11 9 12 64.18974 2 +144 2 12 9 14 71.62334 2 +145 2 13 13 13 62.97397 2 +146 2 14 13 11 60.67719 2 +147 2 15 13 12 63.25793 2 +148 2 16 13 14 65.53433 2 +149 2 17 17 13 62.60569 2 +150 2 18 17 11 61.54033 2 +151 2 19 17 9 55.46785 2 +152 2 20 17 10 57.08004 2 +153 2 21 17 12 61.92742 2 +154 2 22 21 11 62.38099 2 +155 2 23 21 9 58.29915 2 +156 2 24 21 10 58.01373 2 +157 2 25 21 12 58.2323 2 +158 2 26 25 13 59.79404 2 +159 2 27 25 11 59.61022 2 +160 2 28 25 12 59.721 4 +161 2 29 25 14 57.46178 2 +162 2 30 25 16 65.37303 2 +163 2 31 29 11 63.3626 2 +164 2 32 29 9 55.75474 2 +165 2 33 29 10 58.83532 2 +166 2 34 29 12 60.29996 2 +167 2 35 33 15 65.70992 2 +168 2 36 33 13 58.61946 2 +169 2 37 33 11 59.22524 2 +170 2 38 33 12 58.47187 2 +171 2 39 33 14 59.90828 2 +172 2 40 37 11 57.2418 2 +173 2 41 37 9 60.40857 2 +174 2 42 37 10 54.98144 2 +175 2 43 37 12 60.56837 2 +176 2 44 41 11 60.05817 2 +177 2 45 41 9 57.92341 2 +178 2 46 41 10 56.81612 2 +179 2 47 41 12 61.65979 2 +180 2 48 41 14 63.61685 2 +181 2 49 45 13 64.11364 2 +182 2 50 45 11 72.64907 2 +183 2 51 45 12 60.67275 2 +184 2 52 45 14 63.92533 2 +185 2 53 49 13 71.19016 2 +186 2 54 49 11 69.24724 4 +187 2 55 49 9 68.64879 2 +188 2 56 49 10 72.80708 4 +189 2 57 49 12 77.3053 2 +190 2 58 53 13 85.41976 4 +191 2 59 53 11 79.9734 4 +192 2 60 53 10 70.81993 2 +193 2 61 53 12 77.40848 2 +194 2 62 57 11 80.29406 2 +195 2 63 57 9 82.66649 2 +196 2 64 57 12 81.9994 4 +197 2 65 57 14 79.14956 2 +198 3 0 1 17 77.61413 2 +199 3 1 1 15 84.60313 2 +200 3 2 1 14 78.84242 4 +201 3 3 1 16 73.38034 4 +202 3 4 1 18 75.1793 2 +203 3 5 5 15 83.20818 4 +204 3 6 5 13 68.4989 2 +205 3 7 5 16 70.59734 4 +206 3 8 5 18 75.03595 2 +207 3 9 9 17 77.58043 2 +208 3 10 9 15 62.40794 2 +209 3 11 9 13 56.9792 2 +210 3 12 9 16 72.77486 2 +211 3 13 9 18 68.54904 2 +212 3 14 13 17 57.73244 2 +213 3 15 13 15 55.43761 2 +214 3 16 13 16 58.06073 2 +215 3 17 13 18 58.98303 2 +216 3 18 17 17 58.8442 2 +217 3 19 17 15 53.37827 2 +218 3 20 17 14 55.27999 2 +219 3 21 17 16 58.66468 2 +220 3 22 17 18 56.96037 2 +221 3 23 21 15 57.41554 2 +222 3 24 21 13 52.45943 2 +223 3 25 21 14 53.07055 2 +224 3 26 21 16 56.63294 2 +225 3 27 25 19 59.86592 2 +226 3 28 25 17 52.96246 2 +227 3 29 25 15 56.19596 2 +228 3 30 25 18 55.37066 2 +229 3 31 25 20 58.93898 2 +230 3 32 29 15 56.27105 2 +231 3 33 29 13 52.54026 2 +232 3 34 29 14 52.23541 2 +233 3 35 29 16 53.97291 2 +234 3 36 33 19 56.58408 2 +235 3 37 33 17 54.72982 2 +236 3 38 33 16 51.21921 2 +237 3 39 33 18 53.42149 2 +238 3 40 33 20 59.74707 2 +239 3 41 37 15 53.21994 2 +240 3 42 37 13 54.54496 2 +241 3 43 37 14 50.48727 2 +242 3 44 37 16 58.1586 2 +243 3 45 41 17 57.13438 2 +244 3 46 41 15 55.76624 2 +245 3 47 41 13 53.38216 2 +246 3 48 41 16 57.23766 2 +247 3 49 41 18 59.08777 2 +248 3 50 45 17 56.69315 2 +249 3 51 45 15 60.06572 2 +250 3 52 45 16 61.16767 2 +251 3 53 45 18 57.9304 2 +252 3 54 49 17 66.52528 4 +253 3 55 49 15 63.46261 2 +254 3 56 49 14 61.41726 2 +255 3 57 49 16 66.06095 2 +256 3 58 49 18 71.90153 2 +257 3 59 53 17 73.62921 2 +258 3 60 53 15 85.2233 4 +259 3 61 53 14 73.07891 4 +260 3 62 53 16 69.67929 2 +261 3 63 57 17 74.20574 2 +262 3 64 57 15 74.93853 2 +263 3 65 57 13 75.08829 2 +264 3 66 57 16 82.03611 2 +265 3 67 57 18 82.48467 4 +266 4 0 1 21 78.88204 4 +267 4 1 1 19 72.77263 2 +268 4 2 1 20 70.05361 4 +269 4 3 1 22 64.46558 2 +270 4 4 5 21 74.68901 2 +271 4 5 5 19 65.55936 2 +272 4 6 5 17 67.73593 2 +273 4 7 5 20 62.78156 2 +274 4 8 5 22 64.64238 2 +275 4 9 9 21 73.6179 4 +276 4 10 9 19 61.27102 4 +277 4 11 9 20 74.06261 4 +278 4 12 9 22 54.85755 2 +279 4 13 9 24 56.66342 2 +280 4 14 13 21 53.95583 2 +281 4 15 13 19 53.67162 2 +282 4 16 13 20 60.90557 2 +283 4 17 13 22 51.9426 4 +284 4 18 17 23 55.75784 2 +285 4 19 17 21 55.19357 2 +286 4 20 17 19 46.58502 2 +287 4 21 17 20 55.98654 2 +288 4 22 17 22 51.10244 2 +289 4 23 21 19 51.03862 2 +290 4 24 21 17 46.63642 2 +291 4 25 21 18 49.75719 2 +292 4 26 21 20 48.66941 2 +293 4 27 25 23 51.25011 2 +294 4 28 25 21 47.76211 2 +295 4 29 25 22 53.56934 2 +296 4 30 25 24 50.87974 2 +297 4 31 25 26 51.74998 2 +298 4 32 29 19 52.98383 2 +299 4 33 29 17 50.23728 2 +300 4 34 29 18 46.89982 2 +301 4 35 29 20 66.87067 2 +302 4 36 33 25 52.56907 2 +303 4 37 33 23 49.90439 2 +304 4 38 33 21 49.69054 2 +305 4 39 33 22 49.73064 2 +306 4 40 33 24 52.78764 2 +307 4 41 37 19 49.49009 2 +308 4 42 37 17 48.50143 2 +309 4 43 37 18 44.95761 2 +310 4 44 37 20 50.95353 2 +311 4 45 41 21 51.99438 2 +312 4 46 41 19 49.19858 2 +313 4 47 41 20 47.48115 2 +314 4 48 41 22 55.90045 2 +315 4 49 41 24 54.13876 2 +316 4 50 45 21 51.2722 2 +317 4 51 45 19 54.37209 2 +318 4 52 45 20 53.35326 2 +319 4 53 45 22 52.58223 2 +320 4 54 49 23 55.11849 2 +321 4 55 49 21 55.68368 2 +322 4 56 49 19 58.74439 2 +323 4 57 49 20 72.51011 4 +324 4 58 49 22 70.81027 2 +325 4 59 53 21 69.77913 2 +326 4 60 53 19 64.1643 4 +327 4 61 53 18 59.40066 4 +328 4 62 53 20 74.37697 4 +329 4 63 53 22 79.89017 4 +330 4 64 57 21 73.4134 2 +331 4 65 57 19 76.18804 4 +332 4 66 57 20 74.95716 2 +333 4 67 57 22 83.86253 2 +334 5 0 1 25 72.129 2 +335 5 1 1 23 73.73617 2 +336 5 2 1 24 70.49785 2 +337 5 3 1 26 63.29577 2 +338 5 4 5 27 76.85405 4 +339 5 5 5 25 61.54086 2 +340 5 6 5 23 56.70151 2 +341 5 7 5 24 64.04172 2 +342 5 8 5 26 61.55703 2 +343 5 9 9 25 65.26569 4 +344 5 10 9 23 60.28824 4 +345 5 11 9 26 69.20587 4 +346 5 12 9 28 68.4603 4 +347 5 13 13 27 66.33714 2 +348 5 14 13 25 47.14996 2 +349 5 15 13 23 49.13652 2 +350 5 16 13 24 56.64114 2 +351 5 17 13 26 47.66526 2 +352 5 18 17 27 56.71686 2 +353 5 19 17 25 44.52499 2 +354 5 20 17 24 49.5579 2 +355 5 21 17 26 53.89449 2 +356 5 22 21 25 48.44441 2 +357 5 23 21 23 45.31199 2 +358 5 24 21 21 41.10681 2 +359 5 25 21 22 45.44241 2 +360 5 26 21 24 44.3731 2 +361 5 27 25 29 59.95382 2 +362 5 28 25 27 46.62218 2 +363 5 29 25 25 67.80008 2 +364 5 30 25 28 46.20764 2 +365 5 31 25 30 45.48031 2 +366 5 32 29 23 43.9762 2 +367 5 33 29 21 44.55121 2 +368 5 34 29 22 43.8234 2 +369 5 35 29 24 46.68771 2 +370 5 36 33 29 46.69109 2 +371 5 37 33 27 50.91771 2 +372 5 38 33 26 46.56473 2 +373 5 39 33 28 45.11247 2 +374 5 40 33 30 45.29277 2 +375 5 41 37 23 45.78347 2 +376 5 42 37 21 47.22308 2 +377 5 43 37 22 39.94576 2 +378 5 44 37 24 47.3713 2 +379 5 45 37 26 47.09814 2 +380 5 46 41 25 51.25796 2 +381 5 47 41 23 49.75301 2 +382 5 48 41 26 45.01835 2 +383 5 49 41 28 53.09056 2 +384 5 50 45 25 53.55552 2 +385 5 51 45 23 57.42502 2 +386 5 52 45 24 50.06459 2 +387 5 53 45 26 47.42941 2 +388 5 54 45 28 61.59731 2 +389 5 55 49 27 67.62841 4 +390 5 56 49 25 65.53334 2 +391 5 57 49 24 57.16098 2 +392 5 58 49 26 64.26709 4 +393 5 59 53 25 65.43549 4 +394 5 60 53 23 65.06405 2 +395 5 61 53 24 65.54624 2 +396 5 62 53 26 60.48222 2 +397 5 63 53 28 63.59157 2 +398 5 64 57 25 66.31305 4 +399 5 65 57 23 74.53279 2 +400 5 66 57 24 68.06887 2 +401 5 67 57 26 79.04441 4 +402 6 0 1 31 72.26767 2 +403 6 1 1 29 66.57824 2 +404 6 2 1 27 66.01875 2 +405 6 3 1 28 68.28336 2 +406 6 4 1 30 57.90482 2 +407 6 5 5 31 60.61847 2 +408 6 6 5 29 58.97041 2 +409 6 7 5 28 60.20995 4 +410 6 8 5 30 66.41456 2 +411 6 9 5 32 50.4472 2 +412 6 10 9 29 55.44632 2 +413 6 11 9 27 54.10808 2 +414 6 12 9 30 65.5219 4 +415 6 13 9 32 62.13613 2 +416 6 14 13 33 49.48196 2 +417 6 15 13 31 44.58868 2 +418 6 16 13 29 40.42267 2 +419 6 17 13 28 45.44672 2 +420 6 18 13 30 40.85275 2 +421 6 19 17 31 42.8068 2 +422 6 20 17 29 39.37269 2 +423 6 21 17 28 51.93864 2 +424 6 22 17 30 44.99327 2 +425 6 23 21 29 41.66948 2 +426 6 24 21 27 40.48461 2 +427 6 25 21 26 42.27497 2 +428 6 26 21 28 44.77893 2 +429 6 27 21 30 45.2996 2 +430 6 28 25 33 56.38009 2 +431 6 29 25 31 44.12889 2 +432 6 30 25 32 41.27975 2 +433 6 31 25 34 42.69985 2 +434 6 32 25 36 41.92178 2 +435 6 33 29 27 40.29188 2 +436 6 34 29 25 38.94247 2 +437 6 35 29 26 38.07047 2 +438 6 36 29 28 41.24061 2 +439 6 37 33 35 46.23231 2 +440 6 38 33 33 46.37282 2 +441 6 39 33 31 40.77942 2 +442 6 40 33 32 40.11116 2 +443 6 41 33 34 44.7488 2 +444 6 42 37 29 43.34254 2 +445 6 43 37 27 43.21154 2 +446 6 44 37 25 40.25042 2 +447 6 45 37 28 40.50559 2 +448 6 46 37 30 42.34862 2 +449 6 47 41 29 42.45083 2 +450 6 48 41 27 73.18408 2 +451 6 49 41 30 44.67761 2 +452 6 50 41 32 45.76236 2 +453 6 51 45 29 41.54089 2 +454 6 52 45 27 56.25504 2 +455 6 53 45 30 43.44875 2 +456 6 54 45 32 48.31795 2 +457 6 55 45 34 59.67115 2 +458 6 56 49 31 50.74971 2 +459 6 57 49 29 60.71364 4 +460 6 58 49 28 52.30619 2 +461 6 59 49 30 58.39175 4 +462 6 60 53 31 53.5598 2 +463 6 61 53 29 61.3545 2 +464 6 62 53 27 55.54974 2 +465 6 63 53 30 61.9224 2 +466 6 64 53 32 61.86957 2 +467 6 65 57 29 61.91083 2 +468 6 66 57 27 70.40986 2 +469 6 67 57 28 65.5191 2 +470 6 68 57 30 64.35443 2 +471 6 69 57 32 74.75873 2 +472 7 0 1 35 66.90522 2 +473 7 1 1 33 60.63971 2 +474 7 2 1 32 68.63121 2 +475 7 3 1 34 54.26747 4 +476 7 4 1 36 58.94208 2 +477 7 5 5 35 59.52345 2 +478 7 6 5 33 53.87777 2 +479 7 7 5 34 61.76614 2 +480 7 8 5 36 76.24614 4 +481 7 9 9 35 57.39499 2 +482 7 10 9 33 50.46077 2 +483 7 11 9 31 48.98615 2 +484 7 12 9 34 52.90922 2 +485 7 13 9 36 49.98099 2 +486 7 14 13 39 56.5085 4 +487 7 15 13 37 44.28467 2 +488 7 16 13 35 37.94758 2 +489 7 17 13 32 46.606 2 +490 7 18 13 34 38.02037 2 +491 7 19 17 35 45.95165 2 +492 7 20 17 33 35.92034 2 +493 7 21 17 32 40.84232 2 +494 7 22 17 34 39.00573 2 +495 7 23 21 35 47.4344 2 +496 7 24 21 33 37.53121 2 +497 7 25 21 31 36.48932 2 +498 7 26 21 32 35.99691 2 +499 7 27 21 34 33.09458 2 +500 7 28 25 39 43.28999 2 +501 7 29 25 37 42.26388 2 +502 7 30 25 35 34.91854 2 +503 7 31 25 38 37.67415 2 +504 7 32 25 40 39.06967 2 +505 7 33 29 31 48.19499 2 +506 7 34 29 29 33.16714 2 +507 7 35 29 30 30.58288 2 +508 7 36 29 32 36.64276 2 +509 7 37 33 39 42.22568 2 +510 7 38 33 37 40.39168 2 +511 7 39 33 36 35.36906 2 +512 7 40 33 38 40.05961 2 +513 7 41 33 40 39.87325 2 +514 7 42 37 33 34.86334 2 +515 7 43 37 31 33.34559 2 +516 7 44 37 32 33.61026 2 +517 7 45 37 34 34.81233 2 +518 7 46 37 36 44.93469 2 +519 7 47 41 33 34.94334 2 +520 7 48 41 31 37.8257 2 +521 7 49 41 34 33.9205 2 +522 7 50 41 36 42.49128 2 +523 7 51 45 33 35.2032 2 +524 7 52 45 31 40.68614 2 +525 7 53 45 36 39.53925 2 +526 7 54 45 38 44.95286 2 +527 7 55 45 40 47.87979 2 +528 7 56 49 35 46.35046 2 +529 7 57 49 33 50.3152 2 +530 7 58 49 32 53.3612 2 +531 7 59 49 34 51.74059 2 +532 7 60 49 36 58.30088 2 +533 7 61 53 35 53.59114 2 +534 7 62 53 33 61.12764 2 +535 7 63 53 34 52.28897 2 +536 7 64 53 36 62.26567 2 +537 7 65 57 35 61.49411 2 +538 7 66 57 33 63.37993 2 +539 7 67 57 31 67.8847 2 +540 7 68 57 34 64.25013 2 +541 7 69 57 36 70.51575 2 +542 8 0 1 39 56.72514 2 +543 8 1 1 37 48.72331 2 +544 8 2 1 38 56.23196 2 +545 8 3 1 40 56.25996 2 +546 8 4 5 39 58.72826 2 +547 8 5 5 37 52.30302 2 +548 8 6 5 38 71.46715 2 +549 8 7 5 40 50.10506 2 +550 8 8 6 2 70.89294 4 +551 8 9 9 39 56.47082 2 +552 8 10 9 37 43.55737 2 +553 8 11 9 38 55.43275 2 +554 8 12 9 40 42.84191 2 +555 8 13 10 2 66.3111 4 +556 8 14 14 3 68.36689 2 +557 8 15 14 1 65.15283 2 +558 8 16 13 36 49.34908 2 +559 8 17 13 38 33.91935 2 +560 8 18 13 40 37.47738 2 +561 8 19 17 39 44.51914 2 +562 8 20 17 37 31.06779 2 +563 8 21 17 36 38.2233 2 +564 8 22 17 38 35.28487 2 +565 8 23 21 39 45.38816 2 +566 8 24 21 37 34.66406 2 +567 8 25 21 36 37.65707 2 +568 8 26 21 38 36.05343 2 +569 8 27 21 40 37.8248 2 +570 8 28 26 5 72.03525 4 +571 8 29 26 3 63.52015 4 +572 8 30 26 1 62.50511 2 +573 8 31 26 2 61.98882 2 +574 8 32 26 4 58.97064 2 +575 8 33 29 35 35.87918 2 +576 8 34 29 33 32.4367 2 +577 8 35 29 34 36.77096 2 +578 8 36 29 36 34.78371 2 +579 8 37 34 3 63.43679 2 +580 8 38 34 1 68.88314 2 +581 8 39 34 2 56.91281 2 +582 8 40 34 4 64.97829 2 +583 8 41 34 6 65.94506 2 +584 8 42 37 39 31.39499 2 +585 8 43 37 37 42.6506 2 +586 8 44 37 35 34.64594 2 +587 8 45 37 38 34.35087 2 +588 8 46 37 40 48.74642 2 +589 8 47 41 37 33.08593 2 +590 8 48 41 35 38.8376 2 +591 8 49 41 38 30.82248 2 +592 8 50 41 40 52.69675 2 +593 8 51 45 39 39.82245 2 +594 8 52 45 37 33.47069 2 +595 8 53 45 35 46.60764 2 +596 8 54 46 2 69.10312 2 +597 8 55 46 4 70.61226 2 +598 8 56 50 1 68.79727 2 +599 8 57 49 39 41.58034 2 +600 8 58 49 37 58.33103 4 +601 8 59 49 38 42.93993 2 +602 8 60 49 40 55.53365 2 +603 8 61 54 1 75.98923 2 +604 8 62 53 39 49.93222 2 +605 8 63 53 37 65.95134 2 +606 8 64 53 38 53.22789 2 +607 8 65 53 40 61.94646 2 +608 8 66 57 39 48.04506 2 +609 8 67 57 37 57.83493 2 +610 8 68 57 38 51.62755 2 +611 8 69 57 40 55.51595 2 +612 9 0 2 3 75.91596 2 +613 9 1 2 1 70.75652 2 +614 9 2 2 2 80.30862 4 +615 9 3 2 4 70.28187 4 +616 9 4 2 6 69.94864 4 +617 9 5 6 5 82.48135 2 +618 9 6 6 3 73.20459 2 +619 9 7 6 1 60.62144 2 +620 9 8 6 4 62.45457 2 +621 9 9 6 6 62.90894 2 +622 9 10 10 5 68.70317 4 +623 9 11 10 3 63.02052 2 +624 9 12 10 1 58.82242 2 +625 9 13 10 4 58.39806 2 +626 9 14 10 6 54.02605 2 +627 9 15 14 5 62.31827 2 +628 9 16 14 2 65.93447 2 +629 9 17 14 4 59.11299 2 +630 9 18 14 6 55.37629 2 +631 9 19 18 3 59.8363 2 +632 9 20 18 1 57.09896 2 +633 9 21 18 2 52.48797 2 +634 9 22 18 4 58.41165 2 +635 9 23 17 40 28.9222 2 +636 9 24 22 3 53.27375 2 +637 9 25 22 1 49.33091 2 +638 9 26 22 2 52.2271 2 +639 9 27 22 4 55.12898 2 +640 9 28 22 6 54.23783 2 +641 9 29 26 11 58.20786 2 +642 9 30 26 9 54.91685 2 +643 9 31 26 7 55.09533 2 +644 9 32 26 6 52.14927 2 +645 9 33 26 8 55.88137 2 +646 9 34 29 39 28.42941 2 +647 9 35 29 37 21.26262 2 +648 9 36 29 38 24.57105 2 +649 9 37 29 40 25.73872 2 +650 9 38 34 7 53.21036 2 +651 9 39 34 5 53.48404 2 +652 9 40 34 8 59.86568 2 +653 9 41 34 10 53.14135 2 +654 9 42 34 12 55.28732 2 +655 9 43 38 5 57.08217 2 +656 9 44 38 3 54.64779 2 +657 9 45 38 1 56.43684 2 +658 9 46 38 2 52.72907 2 +659 9 47 38 4 54.63512 2 +660 9 48 41 39 27.03707 2 +661 9 49 42 3 57.76087 2 +662 9 50 42 1 52.5484 2 +663 9 51 42 2 54.4845 2 +664 9 52 42 4 62.1047 2 +665 9 53 46 5 58.0246 2 +666 9 54 46 3 58.64034 2 +667 9 55 46 1 55.29173 2 +668 9 56 46 6 66.1776 4 +669 9 57 50 5 70.57194 2 +670 9 58 50 3 61.1708 2 +671 9 59 50 2 62.24234 2 +672 9 60 50 4 60.70343 2 +673 9 61 50 6 71.91826 2 +674 9 62 54 5 68.14369 2 +675 9 63 54 3 66.55175 4 +676 9 64 54 2 66.58385 2 +677 9 65 54 4 73.68723 4 +678 9 66 54 6 84.82601 4 +679 9 67 58 5 68.17461 2 +680 9 68 58 3 71.43873 4 +681 9 69 58 1 70.73694 2 +682 9 70 58 2 73.6025 2 +683 9 71 58 4 76.9949 2 +684 10 0 2 9 74.56346 2 +685 10 1 2 7 73.71175 2 +686 10 2 2 5 61.83036 2 +687 10 3 2 8 63.60863 2 +688 10 4 2 10 67.02603 4 +689 10 5 6 11 75.42187 4 +690 10 6 6 9 62.39413 2 +691 10 7 6 7 52.3195 2 +692 10 8 6 8 65.38033 2 +693 10 9 6 10 58.57843 3 +694 10 10 10 9 63.039 2 +695 10 11 10 7 54.28282 2 +696 10 12 10 8 59.72482 2 +697 10 13 10 10 52.63391 2 +698 10 14 14 11 61.04539 2 +699 10 15 14 9 51.65607 2 +700 10 16 14 7 51.95579 2 +701 10 17 14 8 70.83039 2 +702 10 18 14 10 59.49771 2 +703 10 19 18 9 56.89681 2 +704 10 20 18 7 50.32072 2 +705 10 21 18 5 43.01288 2 +706 10 22 18 6 45.32056 2 +707 10 23 18 8 49.50652 2 +708 10 24 22 9 52.63788 2 +709 10 25 22 7 45.84726 2 +710 10 26 22 5 45.85361 2 +711 10 27 22 8 46.36207 2 +712 10 28 22 10 52.1464 2 +713 10 29 26 15 51.25827 2 +714 10 30 26 13 47.49075 2 +715 10 31 26 10 51.12293 2 +716 10 32 26 12 47.49668 2 +717 10 33 26 14 51.13146 2 +718 10 34 30 3 50.04711 2 +719 10 35 30 1 43.07184 2 +720 10 36 30 2 48.73578 2 +721 10 37 30 4 45.80746 2 +722 10 38 34 13 54.52835 2 +723 10 39 34 11 50.23906 2 +724 10 40 34 9 47.2568 2 +725 10 41 34 14 51.81976 2 +726 10 42 34 16 53.00956 2 +727 10 43 38 9 50.29098 2 +728 10 44 38 7 48.5223 2 +729 10 45 38 6 46.00866 2 +730 10 46 38 8 48.12163 2 +731 10 47 38 10 52.94147 2 +732 10 48 42 7 49.27196 2 +733 10 49 42 5 54.77958 2 +734 10 50 42 6 44.99016 2 +735 10 51 42 8 57.56951 2 +736 10 52 42 10 57.40009 2 +737 10 53 46 9 63.96871 2 +738 10 54 46 7 61.01767 2 +739 10 55 46 8 48.31344 2 +740 10 56 46 10 54.77368 2 +741 10 57 46 12 68.59257 2 +742 10 58 50 9 53.04523 2 +743 10 59 50 7 81.73762 3 +744 10 60 50 8 72.56247 4 +745 10 61 50 10 67.09039 2 +746 10 62 54 9 60.54019 2 +747 10 63 54 7 61.63536 2 +748 10 64 54 8 59.27856 2 +749 10 65 54 10 71.62426 4 +750 10 66 54 12 76.73818 4 +751 10 67 58 9 67.56037 4 +752 10 68 58 7 65.35903 2 +753 10 69 58 6 62.75966 2 +754 10 70 58 8 69.47424 2 +755 10 71 58 10 72.07179 4 +756 11 0 2 13 65.71357 2 +757 11 1 2 11 68.27456 2 +758 11 2 2 12 75.77687 4 +759 11 3 2 14 60.18257 2 +760 11 4 2 16 69.74125 4 +761 11 5 6 15 70.36104 2 +762 11 6 6 13 63.33561 4 +763 11 7 6 12 64.96518 2 +764 11 8 6 14 55.11883 2 +765 11 9 10 13 65.02012 2 +766 11 10 10 11 58.37873 2 +767 11 11 10 12 56.81667 2 +768 11 12 10 14 48.74232 2 +769 11 13 10 16 53.55634 2 +770 11 14 14 15 59.22103 2 +771 11 15 14 13 55.37717 2 +772 11 16 14 12 53.80789 2 +773 11 17 14 14 58.25233 2 +774 11 18 14 16 47.28113 2 +775 11 19 18 13 57.48259 2 +776 11 20 18 11 42.5582 2 +777 11 21 18 10 51.00992 2 +778 11 22 18 12 40.58862 2 +779 11 23 18 14 46.41542 2 +780 11 24 22 13 44.84509 2 +781 11 25 22 11 41.80322 2 +782 11 26 22 12 48.86388 2 +783 11 27 22 14 43.93992 2 +784 11 28 22 16 44.08735 2 +785 11 29 26 19 46.19278 2 +786 11 30 26 17 46.04879 2 +787 11 31 26 16 56.07491 2 +788 11 32 26 18 46.18664 2 +789 11 33 30 9 39.90646 2 +790 11 34 30 7 45.84177 2 +791 11 35 30 5 39.50641 2 +792 11 36 30 6 38.86906 2 +793 11 37 30 8 40.67996 2 +794 11 38 30 10 45.04853 2 +795 11 39 34 17 44.42215 2 +796 11 40 34 15 43.84038 2 +797 11 41 34 18 45.19063 2 +798 11 42 34 20 45.57233 2 +799 11 43 38 15 42.53616 2 +800 11 44 38 13 45.26678 2 +801 11 45 38 11 42.44108 2 +802 11 46 38 12 41.84491 2 +803 11 47 38 14 44.20974 2 +804 11 48 42 13 44.96642 2 +805 11 49 42 11 45.93252 2 +806 11 50 42 9 50.28784 2 +807 11 51 42 12 43.37745 2 +808 11 52 42 14 50.75557 2 +809 11 53 46 15 48.32082 2 +810 11 54 46 13 43.69794 2 +811 11 55 46 11 52.91933 2 +812 11 56 46 14 49.54926 2 +813 11 57 46 16 52.23648 2 +814 11 58 50 15 54.53033 2 +815 11 59 50 13 69.93467 4 +816 11 60 50 11 71.50125 4 +817 11 61 50 12 52.9454 2 +818 11 62 50 14 57.33702 2 +819 11 63 54 13 58.76387 2 +820 11 64 54 11 71.85788 2 +821 11 65 54 14 58.97049 2 +822 11 66 54 16 73.6365 2 +823 11 67 58 15 62.49941 4 +824 11 68 58 13 64.83233 2 +825 11 69 58 11 69.20726 2 +826 11 70 58 12 65.58386 2 +827 11 71 58 14 65.7771 2 +828 12 0 2 19 64.75481 2 +829 12 1 2 17 63.78307 2 +830 12 2 2 15 63.72802 2 +831 12 3 2 18 61.09618 2 +832 12 4 2 20 61.34732 2 +833 12 5 6 19 63.07458 2 +834 12 6 6 17 59.92415 2 +835 12 7 6 16 69.37861 4 +836 12 8 6 18 57.19115 2 +837 12 9 6 20 57.26281 4 +838 12 10 10 19 65.92088 4 +839 12 11 10 17 49.90927 2 +840 12 12 10 15 56.42391 2 +841 12 13 10 18 63.45311 2 +842 12 14 10 20 56.44629 2 +843 12 15 14 21 53.96735 2 +844 12 16 14 19 41.93952 2 +845 12 17 14 17 40.18124 2 +846 12 18 14 18 44.29121 2 +847 12 19 14 20 41.96969 2 +848 12 20 18 19 49.28325 2 +849 12 21 18 17 37.59763 2 +850 12 22 18 15 47.30489 2 +851 12 23 18 16 49.14697 2 +852 12 24 18 18 39.78109 2 +853 12 25 22 19 53.76652 2 +854 12 26 22 17 38.16983 2 +855 12 27 22 15 37.54041 2 +856 12 28 22 18 41.5378 2 +857 12 29 22 20 38.57006 2 +858 12 30 26 23 41.45684 2 +859 12 31 26 21 40.23657 2 +860 12 32 26 20 42.20761 2 +861 12 33 26 22 44.52884 2 +862 12 34 30 15 36.68471 2 +863 12 35 30 13 41.52498 2 +864 12 36 30 11 33.09171 2 +865 12 37 30 12 33.31826 2 +866 12 38 30 14 38.85758 2 +867 12 39 30 16 37.34956 2 +868 12 40 34 21 40.29736 2 +869 12 41 34 19 41.30833 2 +870 12 42 34 22 41.99154 2 +871 12 43 34 24 41.09988 2 +872 12 44 38 19 40.32108 2 +873 12 45 38 17 87.6516 2 +874 12 46 38 16 34.96402 2 +875 12 47 38 18 36.93863 2 +876 12 48 38 20 39.61875 2 +877 12 49 42 17 40.618 2 +878 12 50 42 15 48.31741 2 +879 12 51 42 16 38.17716 2 +880 12 52 42 18 39.48599 2 +881 12 53 42 20 47.17534 2 +882 12 54 46 19 41.08874 2 +883 12 55 46 17 44.2378 2 +884 12 56 46 18 39.24822 2 +885 12 57 46 20 42.59299 2 +886 12 58 46 22 50.61317 2 +887 12 59 50 19 54.72329 2 +888 12 60 50 17 49.37562 2 +889 12 61 50 16 49.01895 2 +890 12 62 50 18 48.20857 2 +891 12 63 50 20 62.04271 2 +892 12 64 54 19 59.46471 2 +893 12 65 54 17 55.67933 2 +894 12 66 54 15 62.99958 2 +895 12 67 54 18 64.68093 2 +896 12 68 54 20 76.31257 2 +897 12 69 58 19 63.73349 2 +898 12 70 58 17 60.73506 2 +899 12 71 58 16 62.58594 2 +900 12 72 58 18 61.40541 2 +901 12 73 58 20 67.20607 2 +902 13 0 2 23 63.27771 2 +903 13 1 2 21 63.39808 2 +904 13 2 2 22 69.3934 2 +905 13 3 2 24 56.95842 2 +906 13 4 2 26 55.43067 2 +907 13 5 6 25 69.5737 4 +908 13 6 6 23 59.772 2 +909 13 7 6 21 48.08637 2 +910 13 8 6 22 49.09238 2 +911 13 9 6 24 49.12183 2 +912 13 10 10 23 56.76906 2 +913 13 11 10 21 55.46736 4 +914 13 12 10 22 48.28228 2 +915 13 13 10 24 45.30683 2 +916 13 14 10 26 44.04686 2 +917 13 15 14 25 49.80464 2 +918 13 16 14 23 40.29594 2 +919 13 17 14 22 49.72262 2 +920 13 18 14 24 40.14114 2 +921 13 19 14 26 38.24086 2 +922 13 20 18 23 45.44777 2 +923 13 21 18 21 32.067 2 +924 13 22 18 20 44.92084 2 +925 13 23 18 22 45.25137 2 +926 13 24 18 24 48.79117 2 +927 13 25 22 23 35.39329 2 +928 13 26 22 21 32.43384 2 +929 13 27 22 22 38.53156 2 +930 13 28 22 24 36.65921 2 +931 13 29 22 26 37.10095 2 +932 13 30 26 27 43.32007 2 +933 13 31 26 25 36.35621 2 +934 13 32 26 24 35.10194 2 +935 13 33 26 26 37.79224 2 +936 13 34 30 21 37.90464 2 +937 13 35 30 19 30.5976 2 +938 13 36 30 17 33.04423 2 +939 13 37 30 18 30.91725 2 +940 13 38 30 20 37.30509 2 +941 13 39 30 22 32.43294 2 +942 13 40 34 25 35.12287 2 +943 13 41 34 23 34.62259 2 +944 13 42 34 26 37.28885 2 +945 13 43 34 28 36.07293 2 +946 13 44 38 25 36.80928 2 +947 13 45 38 23 34.24409 2 +948 13 46 38 21 41.14187 2 +949 13 47 38 22 32.65538 2 +950 13 48 38 24 35.77375 2 +951 13 49 42 23 36.57333 2 +952 13 50 42 21 34.87205 2 +953 13 51 42 19 46.36835 2 +954 13 52 42 22 33.9609 2 +955 13 53 42 24 53.97666 2 +956 13 54 46 25 50.60889 2 +957 13 55 46 23 36.98193 2 +958 13 56 46 21 54.2856 2 +959 13 57 46 24 38.81103 2 +960 13 58 46 26 47.87776 2 +961 13 59 50 25 41.52654 2 +962 13 60 50 23 56.66637 2 +963 13 61 50 21 50.73096 2 +964 13 62 50 22 45.91645 2 +965 13 63 50 24 68.31626 4 +966 13 64 54 23 51.81186 4 +967 13 65 54 21 58.0327 4 +968 13 66 54 22 51.19897 2 +969 13 67 54 24 59.70671 2 +970 13 68 54 26 59.06863 2 +971 13 69 58 25 55.93152 2 +972 13 70 58 23 56.99737 4 +973 13 71 58 21 68.88907 2 +974 13 72 58 22 59.71132 2 +975 13 73 58 24 60.63099 2 +976 14 0 2 29 60.68076 2 +977 14 1 2 27 48.66025 2 +978 14 2 2 25 49.21213 2 +979 14 3 2 28 48.59699 2 +980 14 4 2 30 49.04969 2 +981 14 5 6 29 55.44848 2 +982 14 6 6 27 52.90426 2 +983 14 7 6 26 46.99101 2 +984 14 8 6 28 52.70052 2 +985 14 9 6 30 45.65376 2 +986 14 10 10 29 51.04938 4 +987 14 11 10 27 47.62764 2 +988 14 12 10 25 33.4502 2 +989 14 13 10 28 48.24444 2 +990 14 14 10 30 35.93769 2 +991 14 15 14 31 48.57843 2 +992 14 16 14 29 35.26554 2 +993 14 17 14 27 30.66354 2 +994 14 18 14 28 32.36214 2 +995 14 19 14 30 43.60061 2 +996 14 20 18 29 39.65552 2 +997 14 21 18 27 34.41185 2 +998 14 22 18 25 28.43907 2 +999 14 23 18 26 31.18081 2 +1000 14 24 18 28 38.88782 2 +1001 14 25 22 29 32.53392 2 +1002 14 26 22 27 30.74576 2 +1003 14 27 22 25 28.22121 2 +1004 14 28 22 28 35.42834 2 +1005 14 29 22 30 33.18362 2 +1006 14 30 26 31 38.96467 2 +1007 14 31 26 29 30.80022 2 +1008 14 32 26 28 30.11002 2 +1009 14 33 26 30 33.16303 2 +1010 14 34 30 27 36.44811 2 +1011 14 35 30 25 31.41806 2 +1012 14 36 30 23 31.88113 2 +1013 14 37 30 24 28.32055 2 +1014 14 38 30 26 28.00233 2 +1015 14 39 30 28 35.36561 2 +1016 14 40 34 29 29.77015 2 +1017 14 41 34 27 31.1802 2 +1018 14 42 34 30 31.5099 2 +1019 14 43 34 32 30.64615 2 +1020 14 44 38 29 31.68597 2 +1021 14 45 38 27 32.51555 2 +1022 14 46 38 26 26.2067 2 +1023 14 47 38 28 57.58426 2 +1024 14 48 38 30 36.39979 2 +1025 14 49 42 27 31.36744 2 +1026 14 50 42 25 29.07184 2 +1027 14 51 42 26 26.46659 2 +1028 14 52 42 28 33.23998 2 +1029 14 53 42 30 40.93408 2 +1030 14 54 46 29 45.48899 2 +1031 14 55 46 27 34.87041 2 +1032 14 56 46 28 31.49142 2 +1033 14 57 46 30 35.81202 2 +1034 14 58 46 32 47.8612 4 +1035 14 59 50 29 48.06915 2 +1036 14 60 50 27 48.21622 2 +1037 14 61 50 26 34.05396 2 +1038 14 62 50 28 48.87297 2 +1039 14 63 50 30 48.51312 2 +1040 14 64 54 29 48.12073 4 +1041 14 65 54 27 48.16947 2 +1042 14 66 54 25 60.66236 2 +1043 14 67 54 28 62.24022 2 +1044 14 68 54 30 55.17483 2 +1045 14 69 58 29 46.84991 2 +1046 14 70 58 27 53.77823 2 +1047 14 71 58 26 49.55148 2 +1048 14 72 58 28 49.30523 2 +1049 14 73 58 30 59.3839 2 +1050 15 0 2 33 48.55144 2 +1051 15 1 2 31 43.72469 2 +1052 15 2 2 32 65.16276 2 +1053 15 3 2 34 47.94339 2 +1054 15 4 2 36 47.40195 2 +1055 15 5 6 35 57.16419 2 +1056 15 6 6 33 42.99214 2 +1057 15 7 6 31 44.04953 2 +1058 15 8 6 32 38.65249 2 +1059 15 9 6 34 39.01054 2 +1060 15 10 10 33 46.30959 2 +1061 15 11 10 31 49.63986 4 +1062 15 12 10 32 40.19625 2 +1063 15 13 10 34 35.52073 2 +1064 15 14 10 36 35.02712 2 +1065 15 15 14 35 41.08858 2 +1066 15 16 14 33 40.21054 2 +1067 15 17 14 32 31.18027 2 +1068 15 18 14 34 40.69419 2 +1069 15 19 18 35 45.10734 2 +1070 15 20 18 33 41.27299 2 +1071 15 21 18 31 31.47651 2 +1072 15 22 18 30 33.73879 2 +1073 15 23 18 32 32.18766 2 +1074 15 24 18 34 34.1633 2 +1075 15 25 22 33 28.48527 2 +1076 15 26 22 31 23.90416 2 +1077 15 27 22 32 33.46207 2 +1078 15 28 22 34 32.63876 2 +1079 15 29 22 36 32.39248 2 +1080 15 30 26 35 33.92275 2 +1081 15 31 26 33 25.02936 2 +1082 15 32 26 32 26.72527 2 +1083 15 33 26 34 32.58109 2 +1084 15 34 30 33 25.16649 2 +1085 15 35 30 31 30.55712 2 +1086 15 36 30 29 22.82619 2 +1087 15 37 30 30 30.67322 2 +1088 15 38 30 32 27.17964 2 +1089 15 39 30 34 33.26175 2 +1090 15 40 34 33 24.70335 2 +1091 15 41 34 31 32.14237 2 +1092 15 42 34 34 28.75006 2 +1093 15 43 34 36 27.42073 2 +1094 15 44 38 35 30.1704 2 +1095 15 45 38 33 27.99716 2 +1096 15 46 38 31 29.17204 2 +1097 15 47 38 32 23.83086 2 +1098 15 48 38 34 44.29751 2 +1099 15 49 42 33 27.10784 2 +1100 15 50 42 31 29.86248 2 +1101 15 51 42 29 36.48523 2 +1102 15 52 42 32 27.95792 2 +1103 15 53 42 34 35.07321 2 +1104 15 54 42 36 45.02485 2 +1105 15 55 46 33 40.42925 2 +1106 15 56 46 31 30.03955 2 +1107 15 57 46 34 29.8166 2 +1108 15 58 46 36 36.86073 2 +1109 15 59 50 35 35.77286 2 +1110 15 60 50 33 33.10934 2 +1111 15 61 50 31 38.49717 2 +1112 15 62 50 32 39.59164 2 +1113 15 63 50 34 39.44169 2 +1114 15 64 54 33 42.57419 2 +1115 15 65 54 31 38.1301 2 +1116 15 66 54 32 40.76953 2 +1117 15 67 54 34 43.5249 2 +1118 15 68 54 36 55.42301 2 +1119 15 69 58 35 46.77684 2 +1120 15 70 58 33 40.93461 2 +1121 15 71 58 31 60.64511 2 +1122 15 72 58 32 42.95725 2 +1123 15 73 58 34 47.48243 2 +1124 16 0 2 39 55.11083 2 +1125 16 1 2 37 45.97497 2 +1126 16 2 2 35 39.17223 2 +1127 16 3 2 38 40.62433 2 +1128 16 4 2 40 38.26669 2 +1129 16 5 6 39 56.68238 4 +1130 16 6 6 37 44.66444 2 +1131 16 7 6 36 39.47014 2 +1132 16 8 6 38 49.66794 2 +1133 16 9 6 40 34.03983 2 +1134 16 10 10 39 42.21526 2 +1135 16 11 10 37 33.2958 2 +1136 16 12 10 35 33.77792 2 +1137 16 13 10 38 42.12262 2 +1138 16 14 10 40 25.91794 2 +1139 16 15 14 39 43.56142 2 +1140 16 16 14 37 28.48802 2 +1141 16 17 14 36 29.63293 2 +1142 16 18 14 38 25.86076 2 +1143 16 19 14 40 24.97904 2 +1144 16 20 18 39 32.83974 2 +1145 16 21 18 37 28.20673 2 +1146 16 22 18 36 27.9433 2 +1147 16 23 18 38 35.04676 2 +1148 16 24 18 40 25.81941 2 +1149 16 25 22 39 30.54049 2 +1150 16 26 22 37 26.84064 2 +1151 16 27 22 35 20.7812 2 +1152 16 28 22 38 23.02572 2 +1153 16 29 22 40 22.8687 2 +1154 16 30 26 39 23.06543 2 +1155 16 31 26 37 21.45305 2 +1156 16 32 26 36 38.95076 2 +1157 16 33 26 38 20.6338 2 +1158 16 34 26 40 22.17766 2 +1159 16 35 30 39 22.99253 2 +1160 16 36 30 37 20.54157 2 +1161 16 37 30 35 21.07283 2 +1162 16 38 30 36 19.33072 2 +1163 16 39 30 38 27.63864 2 +1164 16 40 30 40 20.82425 2 +1165 16 41 34 39 21.66597 2 +1166 16 42 34 37 22.6513 2 +1167 16 43 34 35 29.3731 2 +1168 16 44 34 38 21.15776 2 +1169 16 45 34 40 22.89715 2 +1170 16 46 38 39 21.32192 2 +1171 16 47 38 37 30.0489 2 +1172 16 48 38 36 18.2374 2 +1173 16 49 38 38 42.47967 2 +1174 16 50 38 40 27.12186 2 +1175 16 51 42 39 27.32377 2 +1176 16 52 42 37 29.2208 2 +1177 16 53 42 35 32.2063 2 +1178 16 54 42 38 29.6473 4 +1179 16 55 42 40 34.45237 2 +1180 16 56 46 39 29.8681 2 +1181 16 57 46 37 36.06697 2 +1182 16 58 46 35 27.30732 2 +1183 16 59 46 38 29.34024 2 +1184 16 60 46 40 38.0767 2 +1185 16 61 50 39 28.3456 2 +1186 16 62 50 37 43.84434 2 +1187 16 63 50 36 33.96473 2 +1188 16 64 50 38 31.5726 2 +1189 16 65 50 40 39.87069 2 +1190 16 66 54 39 38.46899 2 +1191 16 67 54 37 49.06513 2 +1192 16 68 54 35 39.16746 2 +1193 16 69 54 38 40.24883 2 +1194 16 70 54 40 51.03185 2 +1195 16 71 58 39 38.31865 2 +1196 16 72 58 37 40.30903 2 +1197 16 73 58 36 40.84519 2 +1198 16 74 58 38 46.71311 2 +1199 16 75 58 40 59.91286 4 +1200 17 0 3 3 69.75635 2 +1201 17 1 3 1 78.11688 2 +1202 17 2 3 2 60.4864 2 +1203 17 3 3 4 70.33383 4 +1204 17 4 3 6 61.10591 4 +1205 17 5 7 5 70.05049 4 +1206 17 6 7 3 66.75896 4 +1207 17 7 7 1 56.07491 2 +1208 17 8 7 2 64.59896 2 +1209 17 9 7 4 52.0253 2 +1210 17 10 11 5 64.04001 2 +1211 17 11 11 3 53.22739 2 +1212 17 12 11 1 52.05377 2 +1213 17 13 11 2 50.68429 2 +1214 17 14 11 4 50.47161 2 +1215 17 15 15 5 59.51371 2 +1216 17 16 15 3 54.77456 2 +1217 17 17 15 1 46.75101 2 +1218 17 18 15 2 46.56856 2 +1219 17 19 15 4 45.37733 2 +1220 17 20 19 3 59.7938 2 +1221 17 21 19 1 49.04878 2 +1222 17 22 19 2 49.38859 2 +1223 17 23 19 4 46.94935 2 +1224 17 24 19 6 47.67274 2 +1225 17 25 23 3 51.24752 2 +1226 17 26 23 1 41.54447 2 +1227 17 27 23 2 45.7634 2 +1228 17 28 23 4 44.4614 2 +1229 17 29 23 6 49.27645 2 +1230 17 30 27 5 54.83303 2 +1231 17 31 27 3 42.00973 2 +1232 17 32 27 1 42.84911 2 +1233 17 33 27 2 42.86979 2 +1234 17 34 27 4 45.40848 2 +1235 17 35 27 6 44.13761 2 +1236 17 36 31 3 45.30124 2 +1237 17 37 31 1 41.58354 2 +1238 17 38 31 2 43.75829 2 +1239 17 39 31 4 42.59146 2 +1240 17 40 35 5 51.15559 2 +1241 17 41 35 3 44.90044 2 +1242 17 42 35 1 39.81162 2 +1243 17 43 35 2 42.542 2 +1244 17 44 35 4 44.67124 2 +1245 17 45 35 6 50.82255 2 +1246 17 46 39 5 44.69062 2 +1247 17 47 39 3 42.2405 2 +1248 17 48 39 1 46.76965 2 +1249 17 49 39 2 44.24513 2 +1250 17 50 39 4 48.82014 2 +1251 17 51 43 5 46.57538 2 +1252 17 52 43 3 52.34987 2 +1253 17 53 43 1 56.30238 2 +1254 17 54 43 2 47.92391 2 +1255 17 55 43 4 50.53535 2 +1256 17 56 47 3 45.42038 2 +1257 17 57 47 1 47.2865 2 +1258 17 58 47 2 46.42976 2 +1259 17 59 47 4 54.27297 2 +1260 17 60 47 6 54.74767 2 +1261 17 61 51 3 50.01873 2 +1262 17 62 51 1 49.50313 2 +1263 17 63 51 2 53.23087 2 +1264 17 64 51 4 53.23728 2 +1265 17 65 51 6 67.55172 2 +1266 17 66 55 3 53.67534 2 +1267 17 67 55 1 54.43224 2 +1268 17 68 55 2 59.03769 2 +1269 17 69 55 4 63.19332 2 +1270 17 70 55 6 72.40277 4 +1271 17 71 59 5 60.37578 2 +1272 17 72 59 3 70.09105 2 +1273 17 73 59 1 61.67256 2 +1274 17 74 59 2 63.91364 2 +1275 17 75 59 4 73.43395 2 +1276 18 0 3 9 63.63919 2 +1277 18 1 3 7 64.98625 2 +1278 18 2 3 5 53.80822 2 +1279 18 3 3 8 59.14567 2 +1280 18 4 3 10 55.31711 2 +1281 18 5 7 9 68.703 4 +1282 18 6 7 7 58.86599 2 +1283 18 7 7 6 61.16798 2 +1284 18 8 7 8 53.35755 2 +1285 18 9 7 10 56.26582 2 +1286 18 10 11 9 52.12853 2 +1287 18 11 11 7 51.27342 2 +1288 18 12 11 6 54.98331 4 +1289 18 13 11 8 53.9486 2 +1290 18 14 11 10 50.00594 4 +1291 18 15 15 9 51.33838 2 +1292 18 16 15 7 41.69037 2 +1293 18 17 15 6 45.33914 2 +1294 18 18 15 8 51.6273 2 +1295 18 19 15 10 41.64086 2 +1296 18 20 19 9 42.42203 2 +1297 18 21 19 7 41.76221 2 +1298 18 22 19 5 36.52834 2 +1299 18 23 19 8 39.58715 2 +1300 18 24 19 10 44.96605 2 +1301 18 25 23 9 47.78044 2 +1302 18 26 23 7 40.95765 2 +1303 18 27 23 5 36.0483 2 +1304 18 28 23 8 42.12581 2 +1305 18 29 23 10 47.87159 2 +1306 18 30 27 11 44.86292 2 +1307 18 31 27 9 38.38043 2 +1308 18 32 27 7 35.64034 2 +1309 18 33 27 8 37.86207 2 +1310 18 34 27 10 43.97335 2 +1311 18 35 27 12 43.27959 2 +1312 18 36 31 7 42.61397 2 +1313 18 37 31 5 34.43194 2 +1314 18 38 31 6 34.87492 2 +1315 18 39 31 8 42.53886 2 +1316 18 40 35 11 43.49409 2 +1317 18 41 35 9 39.87814 2 +1318 18 42 35 7 37.30156 2 +1319 18 43 35 8 38.6592 2 +1320 18 44 35 10 38.67087 2 +1321 18 45 35 12 51.17243 2 +1322 18 46 39 9 45.37107 2 +1323 18 47 39 7 50.39784 2 +1324 18 48 39 6 33.70186 2 +1325 18 49 39 8 37.72955 2 +1326 18 50 39 10 46.50348 2 +1327 18 51 43 9 44.47878 2 +1328 18 52 43 7 40.84975 2 +1329 18 53 43 6 35.31138 2 +1330 18 54 43 8 39.93721 2 +1331 18 55 43 10 43.81371 2 +1332 18 56 47 9 43.85309 2 +1333 18 57 47 7 47.70544 2 +1334 18 58 47 5 52.22799 2 +1335 18 59 47 8 46.3461 2 +1336 18 60 47 10 52.88355 2 +1337 18 61 51 9 40.93256 2 +1338 18 62 51 7 50.37035 2 +1339 18 63 51 5 46.92506 2 +1340 18 64 51 8 51.25147 2 +1341 18 65 51 10 59.88077 2 +1342 18 66 55 9 60.0462 4 +1343 18 67 55 7 59.85699 4 +1344 18 68 55 5 61.28544 4 +1345 18 69 55 8 53.02782 2 +1346 18 70 55 10 66.84094 4 +1347 18 71 59 9 57.43136 4 +1348 18 72 59 7 59.11631 2 +1349 18 73 59 6 54.63601 2 +1350 18 74 59 8 64.35932 2 +1351 18 75 59 10 62.9454 2 +1352 19 0 3 13 57.81642 2 +1353 19 1 3 11 55.1 2 +1354 19 2 3 12 59.72389 2 +1355 19 3 3 14 49.3956 2 +1356 19 4 3 16 52.597 2 +1357 19 5 7 13 57.11096 2 +1358 19 6 7 11 51.83644 2 +1359 19 7 7 12 53.37616 2 +1360 19 8 7 14 55.41768 2 +1361 19 9 7 16 45.90174 4 +1362 19 10 11 15 50.0333 2 +1363 19 11 11 13 44.70114 2 +1364 19 12 11 11 45.44829 2 +1365 19 13 11 12 45.04556 2 +1366 19 14 11 14 49.45225 4 +1367 19 15 15 15 45.55433 2 +1368 19 16 15 13 40.08751 2 +1369 19 17 15 11 39.59356 2 +1370 19 18 15 12 40.29306 2 +1371 19 19 15 14 33.92256 2 +1372 19 20 19 13 37.27072 2 +1373 19 21 19 11 36.02201 2 +1374 19 22 19 12 36.06972 2 +1375 19 23 19 14 36.07746 2 +1376 19 24 19 16 39.09419 2 +1377 19 25 23 13 37.70284 2 +1378 19 26 23 11 34.39537 2 +1379 19 27 23 12 35.33397 2 +1380 19 28 23 14 38.60715 2 +1381 19 29 23 16 38.91064 2 +1382 19 30 27 17 44.79955 2 +1383 19 31 27 15 36.06634 2 +1384 19 32 27 13 34.40741 2 +1385 19 33 27 14 36.20647 2 +1386 19 34 27 16 40.74516 2 +1387 19 35 27 18 36.19124 2 +1388 19 36 31 11 35.4579 2 +1389 19 37 31 9 34.06148 2 +1390 19 38 31 10 31.86727 2 +1391 19 39 31 12 37.48942 2 +1392 19 40 35 17 37.78392 2 +1393 19 41 35 15 35.51187 2 +1394 19 42 35 13 34.01414 2 +1395 19 43 35 14 33.09844 2 +1396 19 44 35 16 35.96736 2 +1397 19 45 35 18 44.38336 2 +1398 19 46 39 15 38.84191 2 +1399 19 47 39 13 35.44784 2 +1400 19 48 39 11 36.46569 2 +1401 19 49 39 12 33.75178 2 +1402 19 50 39 14 38.4073 2 +1403 19 51 43 15 40.04581 2 +1404 19 52 43 13 38.13181 2 +1405 19 53 43 11 35.5372 2 +1406 19 54 43 12 35.79929 2 +1407 19 55 43 14 38.56227 2 +1408 19 56 47 13 42.11973 2 +1409 19 57 47 11 43.19888 2 +1410 19 58 47 12 47.1113 2 +1411 19 59 47 14 40.11567 2 +1412 19 60 47 16 59.16567 2 +1413 19 61 51 13 36.76186 2 +1414 19 62 51 11 48.60475 2 +1415 19 63 51 12 42.61934 2 +1416 19 64 51 14 47.63377 4 +1417 19 65 51 16 53.71516 4 +1418 19 66 55 15 42.99406 2 +1419 19 67 55 13 56.99424 4 +1420 19 68 55 11 53.68341 2 +1421 19 69 55 12 48.87312 2 +1422 19 70 55 14 61.82174 2 +1423 19 71 59 15 52.06813 2 +1424 19 72 59 13 51.1929 2 +1425 19 73 59 11 60.95552 2 +1426 19 74 59 12 55.49138 2 +1427 19 75 59 14 56.51714 2 +1428 20 0 3 19 59.99152 2 +1429 20 1 3 17 51.68124 2 +1430 20 2 3 15 54.20323 2 +1431 20 3 3 18 56.23887 2 +1432 20 4 3 20 52.76245 2 +1433 20 5 7 19 53.60846 2 +1434 20 6 7 17 52.62024 2 +1435 20 7 7 15 44.8175 2 +1436 20 8 7 18 56.0588 2 +1437 20 9 7 20 46.46808 2 +1438 20 10 7 22 47.65786 2 +1439 20 11 11 19 58.48087 4 +1440 20 12 11 17 47.51574 2 +1441 20 13 11 16 40.33556 2 +1442 20 14 11 18 42.50637 2 +1443 20 15 11 20 41.29795 2 +1444 20 16 15 19 39.25114 2 +1445 20 17 15 17 40.52494 2 +1446 20 18 15 16 45.24591 2 +1447 20 19 15 18 32.49406 2 +1448 20 20 15 20 38.45397 2 +1449 20 21 19 19 34.94919 2 +1450 20 22 19 17 29.37568 2 +1451 20 23 19 15 30.61152 2 +1452 20 24 19 18 39.36539 2 +1453 20 25 19 20 30.26522 2 +1454 20 26 23 19 39.88869 2 +1455 20 27 23 17 31.2714 2 +1456 20 28 23 15 27.74651 2 +1457 20 29 23 18 38.07803 2 +1458 20 30 23 20 32.74336 2 +1459 20 31 27 23 48.61821 2 +1460 20 32 27 21 30.33378 2 +1461 20 33 27 19 29.02129 2 +1462 20 34 27 20 32.43792 2 +1463 20 35 27 22 31.16616 2 +1464 20 36 27 24 32.79062 2 +1465 20 37 31 15 59.93639 2 +1466 20 38 31 13 23.89173 2 +1467 20 39 31 14 31.99927 2 +1468 20 40 31 16 28.84796 2 +1469 20 41 35 23 33.08682 2 +1470 20 42 35 21 32.00898 2 +1471 20 43 35 19 31.87037 2 +1472 20 44 35 20 30.06942 2 +1473 20 45 35 22 29.95869 2 +1474 20 46 35 24 36.29855 2 +1475 20 47 39 19 65.91081 2 +1476 20 48 39 17 31.68026 2 +1477 20 49 39 16 30.94123 2 +1478 20 50 39 18 30.79306 2 +1479 20 51 39 20 38.59322 2 +1480 20 52 43 19 32.94684 2 +1481 20 53 43 17 31.87351 2 +1482 20 54 43 16 28.51291 2 +1483 20 55 43 18 30.3323 2 +1484 20 56 43 20 36.26713 2 +1485 20 57 47 19 33.12553 2 +1486 20 58 47 17 31.93426 2 +1487 20 59 47 15 43.15569 2 +1488 20 60 47 18 38.30992 2 +1489 20 61 47 20 43.69333 2 +1490 20 62 51 19 38.73166 2 +1491 20 63 51 17 37.43873 2 +1492 20 64 51 15 43.11426 2 +1493 20 65 51 18 39.02739 2 +1494 20 66 51 20 41.87002 2 +1495 20 67 55 21 42.45119 2 +1496 20 68 55 19 49.57749 2 +1497 20 69 55 17 53.71973 2 +1498 20 70 55 16 43.50056 2 +1499 20 71 55 18 51.02808 2 +1500 20 72 55 20 54.11141 2 +1501 20 73 59 19 52.833 2 +1502 20 74 59 17 56.0856 2 +1503 20 75 59 16 50.07323 2 +1504 20 76 59 18 51.52842 2 +1505 20 77 59 20 60.48577 2 +1506 21 0 3 25 50.93595 2 +1507 21 1 3 23 54.99516 2 +1508 21 2 3 21 41.8969 2 +1509 21 3 3 22 45.84635 2 +1510 21 4 3 24 45.69342 2 +1511 21 5 7 25 48.10387 2 +1512 21 6 7 23 45.9142 2 +1513 21 7 7 21 45.11292 2 +1514 21 8 7 24 48.36214 2 +1515 21 9 7 26 44.05977 2 +1516 21 10 11 25 51.14836 4 +1517 21 11 11 23 40.86469 2 +1518 21 12 11 21 40.25964 2 +1519 21 13 11 22 42.84819 4 +1520 21 14 11 24 37.66979 2 +1521 21 15 11 26 33.95934 2 +1522 21 16 15 25 39.64869 2 +1523 21 17 15 23 32.77389 2 +1524 21 18 15 21 28.28646 2 +1525 21 19 15 22 26.86613 2 +1526 21 20 15 24 28.46944 2 +1527 21 21 19 23 29.89091 2 +1528 21 22 19 21 27.9296 2 +1529 21 23 19 22 33.20736 2 +1530 21 24 19 24 26.5171 2 +1531 21 25 19 26 27.39199 2 +1532 21 26 23 23 34.08351 2 +1533 21 27 23 21 25.19528 2 +1534 21 28 23 22 30.30223 2 +1535 21 29 23 24 25.55647 2 +1536 21 30 23 26 26.83836 2 +1537 21 31 27 29 41.5829 2 +1538 21 32 27 27 30.24023 2 +1539 21 33 27 25 24.15114 2 +1540 21 34 27 26 28.31852 2 +1541 21 35 27 28 25.38145 2 +1542 21 36 27 30 47.18915 2 +1543 21 37 31 19 32.81924 2 +1544 21 38 31 17 20.23265 2 +1545 21 39 31 18 36.22477 2 +1546 21 40 31 20 23.87826 2 +1547 21 41 35 29 29.46118 2 +1548 21 42 35 27 26.99981 2 +1549 21 43 35 25 28.61932 2 +1550 21 44 35 26 27.579 2 +1551 21 45 35 28 29.20579 2 +1552 21 46 35 30 33.5238 2 +1553 21 47 39 25 29.38058 2 +1554 21 48 39 23 36.31763 2 +1555 21 49 39 21 29.68579 2 +1556 21 50 39 22 25.4025 2 +1557 21 51 39 24 47.91524 2 +1558 21 52 43 25 28.30908 2 +1559 21 53 43 23 30.55148 2 +1560 21 54 43 21 32.79121 2 +1561 21 55 43 22 32.33957 2 +1562 21 56 43 24 29.46465 2 +1563 21 57 47 23 29.85115 2 +1564 21 58 47 21 25.98557 2 +1565 21 59 47 22 29.75111 2 +1566 21 60 47 24 29.2957 2 +1567 21 61 47 26 35.9026 2 +1568 21 62 51 25 29.69484 2 +1569 21 63 51 23 39.0118 2 +1570 21 64 51 21 35.31119 2 +1571 21 65 51 22 37.21661 2 +1572 21 66 51 24 40.72398 2 +1573 21 67 51 26 44.97802 2 +1574 21 68 55 25 43.73366 2 +1575 21 69 55 23 45.39421 2 +1576 21 70 55 22 48.78583 2 +1577 21 71 55 24 44.57782 2 +1578 21 72 55 26 48.20587 2 +1579 21 73 59 23 49.53701 2 +1580 21 74 59 21 43.16331 2 +1581 21 75 59 22 42.39009 2 +1582 21 76 59 24 59.84021 2 +1583 21 77 59 26 50.37789 2 +1584 22 0 3 29 55.3149 2 +1585 22 1 3 27 40.47946 2 +1586 22 2 3 26 41.94526 2 +1587 22 3 3 28 39.69607 2 +1588 22 4 3 30 41.26273 2 +1589 22 5 7 29 47.0226 2 +1590 22 6 7 27 41.29464 2 +1591 22 7 7 28 62.49725 2 +1592 22 8 7 30 40.57435 2 +1593 22 9 7 32 34.59016 2 +1594 22 10 11 31 39.9617 2 +1595 22 11 11 29 43.95507 2 +1596 22 12 11 27 30.73579 2 +1597 22 13 11 28 35.47118 2 +1598 22 14 11 30 42.19948 2 +1599 22 15 15 31 43.97857 4 +1600 22 16 15 29 29.91504 2 +1601 22 17 15 27 29.63623 2 +1602 22 18 15 26 26.34958 2 +1603 22 19 15 28 30.911 2 +1604 22 20 15 30 23.74534 2 +1605 22 21 19 29 32.29098 2 +1606 22 22 19 27 26.77753 2 +1607 22 23 19 25 18.07783 2 +1608 22 24 19 28 22.44115 2 +1609 22 25 19 30 22.39116 2 +1610 22 26 23 29 30.73325 2 +1611 22 27 23 27 24.66345 2 +1612 22 28 23 25 19.75797 2 +1613 22 29 23 28 51.1308 2 +1614 22 30 23 30 19.26261 2 +1615 22 31 27 35 32.4054 2 +1616 22 32 27 33 25.37955 2 +1617 22 33 27 31 32.48642 2 +1618 22 34 27 32 25.58262 2 +1619 22 35 27 34 34.18034 2 +1620 22 36 31 25 26.34531 2 +1621 22 37 31 23 21.91383 2 +1622 22 38 31 21 13.59156 2 +1623 22 39 31 22 15.04179 2 +1624 22 40 31 24 17.51989 2 +1625 22 41 31 26 23.83635 2 +1626 22 42 35 33 31.87588 2 +1627 22 43 35 31 21.12189 2 +1628 22 44 35 32 23.05621 2 +1629 22 45 35 34 29.96743 2 +1630 22 46 35 36 32.22886 2 +1631 22 47 39 29 22.05745 2 +1632 22 48 39 27 30.96065 2 +1633 22 49 39 26 18.80443 2 +1634 22 50 39 28 33.00776 2 +1635 22 51 39 30 38.15712 2 +1636 22 52 43 29 22.22789 2 +1637 22 53 43 27 22.59572 2 +1638 22 54 43 26 19.47919 2 +1639 22 55 43 28 26.82345 2 +1640 22 56 43 30 34.41462 2 +1641 22 57 47 29 26.16997 2 +1642 22 58 47 27 31.0032 2 +1643 22 59 47 25 45.68586 2 +1644 22 60 47 28 28.74907 2 +1645 22 61 47 30 31.91472 2 +1646 22 62 47 32 39.83871 2 +1647 22 63 51 29 31.19411 2 +1648 22 64 51 27 40.03531 2 +1649 22 65 51 28 28.54143 2 +1650 22 66 51 30 35.11513 2 +1651 22 67 51 32 40.96223 4 +1652 22 68 55 31 32.46002 2 +1653 22 69 55 29 53.41737 2 +1654 22 70 55 27 46.20777 2 +1655 22 71 55 28 52.34626 2 +1656 22 72 55 30 48.66829 2 +1657 22 73 59 29 41.25186 2 +1658 22 74 59 27 39.24194 2 +1659 22 75 59 25 40.73029 2 +1660 22 76 59 28 40.7566 2 +1661 22 77 59 30 53.5506 4 +1662 23 0 3 35 50.258 2 +1663 23 1 3 33 42.36094 2 +1664 23 2 3 31 34.8002 2 +1665 23 3 3 32 53.02367 2 +1666 23 4 3 34 33.28747 2 +1667 23 5 3 36 35.18385 2 +1668 23 6 7 35 42.83291 2 +1669 23 7 7 33 35.96133 2 +1670 23 8 7 31 31.91849 2 +1671 23 9 7 34 43.38919 2 +1672 23 10 7 36 28.86318 2 +1673 23 11 11 35 38.95541 4 +1674 23 12 11 33 32.81353 2 +1675 23 13 11 32 35.56681 4 +1676 23 14 11 34 30.68456 2 +1677 23 15 11 36 30.04838 2 +1678 23 16 15 37 40.02962 2 +1679 23 17 15 35 33.73285 2 +1680 23 18 15 33 34.13649 2 +1681 23 19 15 32 21.5365 2 +1682 23 20 15 34 21.3081 2 +1683 23 21 15 36 25.54383 2 +1684 23 22 19 33 25.17456 2 +1685 23 23 19 31 17.60043 2 +1686 23 24 19 32 19.11075 2 +1687 23 25 19 34 17.6579 2 +1688 23 26 19 36 20.11817 2 +1689 23 27 23 33 23.80699 2 +1690 23 28 23 31 15.6879 2 +1691 23 29 23 32 25.2162 2 +1692 23 30 23 34 19.09952 2 +1693 23 31 23 36 27.7982 2 +1694 23 32 27 39 25.08376 2 +1695 23 33 27 37 21.46793 2 +1696 23 34 27 36 27.76627 2 +1697 23 35 27 38 23.35451 2 +1698 23 36 27 40 24.96428 2 +1699 23 37 31 31 15.203 2 +1700 23 38 31 29 11.30968 2 +1701 23 39 31 27 11.57349 2 +1702 23 40 31 28 17.00231 2 +1703 23 41 31 30 23.16504 2 +1704 23 42 31 32 15.67381 2 +1705 23 43 35 39 22.23662 2 +1706 23 44 35 37 17.49342 2 +1707 23 45 35 35 34.87571 2 +1708 23 46 35 38 17.59521 2 +1709 23 47 35 40 23.21656 2 +1710 23 48 39 35 30.6705 2 +1711 23 49 39 33 19.63606 2 +1712 23 50 39 31 24.11922 2 +1713 23 51 39 32 15.68685 2 +1714 23 52 39 34 22.6699 2 +1715 23 53 43 35 21.10495 2 +1716 23 54 43 33 37.95567 2 +1717 23 55 43 31 25.72046 2 +1718 23 56 43 32 16.51148 2 +1719 23 57 43 34 30.01747 2 +1720 23 58 47 35 18.23321 2 +1721 23 59 47 33 20.14052 2 +1722 23 60 47 31 24.52983 2 +1723 23 61 47 34 27.77156 2 +1724 23 62 47 36 29.92637 2 +1725 23 63 47 38 32.37162 2 +1726 23 64 51 35 22.95052 2 +1727 23 65 51 33 23.31559 2 +1728 23 66 51 31 37.56861 2 +1729 23 67 51 34 29.9937 2 +1730 23 68 51 36 32.17867 2 +1731 23 69 55 35 36.13076 2 +1732 23 70 55 33 34.51855 2 +1733 23 71 55 32 32.48552 2 +1734 23 72 55 34 35.40644 2 +1735 23 73 55 36 48.35004 2 +1736 23 74 59 35 35.97611 2 +1737 23 75 59 33 33.36023 2 +1738 23 76 59 31 50.3663 2 +1739 23 77 59 32 35.06155 2 +1740 23 78 59 34 43.81896 2 +1741 23 79 59 36 45.1432 2 +1742 24 0 3 39 44.36897 2 +1743 24 1 3 37 36.23255 2 +1744 24 2 3 38 39.79 2 +1745 24 3 3 40 35.05175 2 +1746 24 4 4 2 56.34629 2 +1747 24 5 8 3 63.48489 2 +1748 24 6 8 1 60.99437 4 +1749 24 7 7 39 29.23341 2 +1750 24 8 7 37 22.59206 2 +1751 24 9 7 38 32.65069 2 +1752 24 10 7 40 26.63753 2 +1753 24 11 11 39 30.10697 2 +1754 24 12 11 37 28.71769 2 +1755 24 13 11 38 29.87729 2 +1756 24 14 11 40 30.26959 2 +1757 24 15 12 2 42.07954 2 +1758 24 16 16 3 56.08922 2 +1759 24 17 16 1 54.8096 2 +1760 24 18 15 39 19.40093 2 +1761 24 19 15 38 22.37485 2 +1762 24 20 15 40 19.09376 2 +1763 24 21 19 39 23.87507 2 +1764 24 22 19 37 22.44179 2 +1765 24 23 19 35 13.31628 2 +1766 24 24 19 38 21.04102 2 +1767 24 25 19 40 12.6246 2 +1768 24 26 20 2 45.92144 3 +1769 24 27 23 39 16.90904 2 +1770 24 28 23 37 15.37624 2 +1771 24 29 23 35 8.87002 2 +1772 24 30 23 38 14.75957 2 +1773 24 31 23 40 12.25579 2 +1774 24 32 28 3 41.80525 2 +1775 24 33 28 1 40.74882 2 +1776 24 34 28 2 41.93495 2 +1777 24 35 28 4 43.99226 2 +1778 24 36 28 6 43.14657 2 +1779 24 37 31 37 12.51438 2 +1780 24 38 31 35 26.2883 2 +1781 24 39 31 33 8.99933 2 +1782 24 40 31 34 9.09757 2 +1783 24 41 31 36 14.82305 2 +1784 24 42 31 38 12.23145 2 +1785 24 43 36 5 40.98503 2 +1786 24 44 36 3 41.95934 2 +1787 24 45 36 1 50.95021 2 +1788 24 46 36 2 40.98618 2 +1789 24 47 36 4 42.59413 2 +1790 24 48 39 39 18.15315 2 +1791 24 49 39 37 13.40093 2 +1792 24 50 39 36 8.86896 2 +1793 24 51 39 38 15.37729 2 +1794 24 52 39 40 22.03489 2 +1795 24 53 44 1 45.29771 2 +1796 24 54 43 39 18.40909 2 +1797 24 55 43 37 21.8511 2 +1798 24 56 43 36 13.57933 2 +1799 24 57 43 38 23.62665 2 +1800 24 58 43 40 24.09718 2 +1801 24 59 47 39 17.73422 2 +1802 24 60 47 37 21.92738 2 +1803 24 61 47 40 19.99187 2 +1804 24 62 48 2 44.43922 2 +1805 24 63 48 4 61.49428 4 +1806 24 64 52 1 42.91843 2 +1807 24 65 51 39 25.56067 2 +1808 24 66 51 37 25.0468 2 +1809 24 67 51 38 29.27852 2 +1810 24 68 51 40 30.9606 2 +1811 24 69 55 39 20.20782 2 +1812 24 70 55 37 33.06623 2 +1813 24 71 55 38 30.06635 2 +1814 24 72 55 40 27.76209 2 +1815 24 73 56 2 59.60094 2 +1816 24 74 56 4 61.55651 2 +1817 24 75 60 1 56.45082 2 +1818 24 76 59 39 34.02033 2 +1819 24 77 59 37 36.08378 2 +1820 24 78 59 38 37.14177 2 +1821 24 79 59 40 49.25991 2 +1822 25 0 4 5 59.26097 2 +1823 25 1 4 3 53.81316 2 +1824 25 2 4 1 53.72804 2 +1825 25 3 4 4 50.81545 2 +1826 25 4 4 6 52.09027 2 +1827 25 5 8 7 55.75225 4 +1828 25 6 8 5 57.64535 2 +1829 25 7 8 2 52.73697 2 +1830 25 8 8 4 47.39524 2 +1831 25 9 8 6 50.78643 2 +1832 25 10 12 5 50.37256 4 +1833 25 11 12 3 50.4255 4 +1834 25 12 12 1 41.41809 2 +1835 25 13 12 4 51.47022 2 +1836 25 14 12 6 38.85351 2 +1837 25 15 12 8 48.79076 2 +1838 25 16 16 7 50.55106 2 +1839 25 17 16 5 50.36211 4 +1840 25 18 16 2 42.41499 2 +1841 25 19 16 4 35.86627 2 +1842 25 20 16 6 39.11259 2 +1843 25 21 20 5 38.67058 2 +1844 25 22 20 3 40.88596 2 +1845 25 23 20 1 38.43241 2 +1846 25 24 20 4 34.33798 2 +1847 25 25 20 6 43.02993 2 +1848 25 26 20 8 40.41363 2 +1849 25 27 24 5 41.30463 2 +1850 25 28 24 3 33.50338 2 +1851 25 29 24 1 32.84019 2 +1852 25 30 24 2 34.32403 2 +1853 25 31 24 4 34.22294 2 +1854 25 32 28 9 39.83839 2 +1855 25 33 28 7 36.82985 2 +1856 25 34 28 5 35.57127 2 +1857 25 35 28 8 36.72119 2 +1858 25 36 28 10 37.50177 2 +1859 25 37 32 3 42.25986 2 +1860 25 38 32 1 32.09977 2 +1861 25 39 31 39 6.33926 2 +1862 25 40 31 40 6.33926 2 +1863 25 41 32 2 30.58318 2 +1864 25 42 32 4 33.00989 2 +1865 25 43 36 9 40.29986 2 +1866 25 44 36 7 37.13652 2 +1867 25 45 36 6 34.84674 2 +1868 25 46 36 8 35.91202 2 +1869 25 47 36 10 40.19582 2 +1870 25 48 40 3 32.52557 2 +1871 25 49 40 1 31.81273 2 +1872 25 50 40 2 30.65905 2 +1873 25 51 40 4 33.80279 2 +1874 25 52 40 6 38.8328 2 +1875 25 53 44 7 41.27052 2 +1876 25 54 44 5 40.48705 2 +1877 25 55 44 3 56.56642 2 +1878 25 56 44 2 37.61565 2 +1879 25 57 44 4 38.48821 2 +1880 25 58 44 6 39.58088 2 +1881 25 59 48 5 41.11194 2 +1882 25 60 48 3 37.64373 2 +1883 25 61 48 1 49.08298 4 +1884 25 62 48 6 46.77545 2 +1885 25 63 48 8 47.83757 2 +1886 25 64 52 7 45.68708 2 +1887 25 65 52 5 37.82052 2 +1888 25 66 52 3 47.18513 2 +1889 25 67 52 2 50.60204 4 +1890 25 68 52 4 47.13361 4 +1891 25 69 52 6 51.4272 2 +1892 25 70 56 5 49.81577 2 +1893 25 71 56 3 49.48124 2 +1894 25 72 56 1 56.0093 2 +1895 25 73 56 6 58.18106 2 +1896 25 74 56 8 59.55824 2 +1897 25 75 60 5 51.49863 2 +1898 25 76 60 3 54.32107 4 +1899 25 77 60 2 50.81965 2 +1900 25 78 60 4 52.36545 2 +1901 25 79 60 6 66.96565 4 +1902 26 0 4 11 56.02143 2 +1903 26 1 4 9 57.30304 2 +1904 26 2 4 7 46.75468 2 +1905 26 3 4 8 46.12902 2 +1906 26 4 4 10 51.71529 2 +1907 26 5 4 12 45.65944 4 +1908 26 6 8 11 53.62934 2 +1909 26 7 8 9 47.30428 2 +1910 26 8 8 8 57.16048 2 +1911 26 9 8 10 42.40046 2 +1912 26 10 8 12 44.14269 2 +1913 26 11 12 11 48.88389 2 +1914 26 12 12 9 46.70776 4 +1915 26 13 12 7 38.96931 2 +1916 26 14 12 10 44.53427 2 +1917 26 15 12 12 36.58342 2 +1918 26 16 12 14 38.01872 2 +1919 26 17 16 11 43.85205 2 +1920 26 18 16 9 39.07088 2 +1921 26 19 16 8 36.13008 2 +1922 26 20 16 10 50.65685 2 +1923 26 21 16 12 42.17418 2 +1924 26 22 20 11 34.89164 2 +1925 26 23 20 9 32.36925 2 +1926 26 24 20 7 31.54575 2 +1927 26 25 20 10 31.17931 2 +1928 26 26 20 12 33.59857 2 +1929 26 27 20 14 33.49022 2 +1930 26 28 24 9 31.7406 2 +1931 26 29 24 7 28.32919 2 +1932 26 30 24 6 40.49699 2 +1933 26 31 24 8 28.43224 2 +1934 26 32 24 10 33.87539 2 +1935 26 33 28 13 33.93361 2 +1936 26 34 28 11 32.03982 2 +1937 26 35 28 12 32.75182 2 +1938 26 36 28 14 32.99021 2 +1939 26 37 28 16 33.2504 2 +1940 26 38 32 9 41.24565 2 +1941 26 39 32 7 27.67699 2 +1942 26 40 32 5 26.34632 2 +1943 26 41 32 6 26.26449 2 +1944 26 42 32 8 27.27186 2 +1945 26 43 32 10 30.65818 2 +1946 26 44 36 15 32.43903 2 +1947 26 45 36 13 31.73557 2 +1948 26 46 36 11 32.56069 2 +1949 26 47 36 12 31.37308 2 +1950 26 48 36 14 34.75555 2 +1951 26 49 40 9 31.50018 2 +1952 26 50 40 7 29.44768 2 +1953 26 51 40 5 42.00579 2 +1954 26 52 40 8 33.68502 2 +1955 26 53 40 10 32.51994 2 +1956 26 54 44 13 56.32317 2 +1957 26 55 44 11 41.67016 2 +1958 26 56 44 9 43.37265 2 +1959 26 57 44 8 38.16363 2 +1960 26 58 44 10 32.7067 2 +1961 26 59 44 12 35.74579 2 +1962 26 60 48 11 36.21559 2 +1963 26 61 48 9 39.19237 2 +1964 26 62 48 7 38.66244 2 +1965 26 63 48 10 39.57546 2 +1966 26 64 48 12 47.81415 2 +1967 26 65 52 13 47.07186 2 +1968 26 66 52 11 41.49562 4 +1969 26 67 52 9 48.93307 2 +1970 26 68 52 8 37.84982 2 +1971 26 69 52 10 44.20981 2 +1972 26 70 52 12 46.78387 2 +1973 26 71 56 11 43.16601 2 +1974 26 72 56 9 42.91585 2 +1975 26 73 56 7 50.72153 2 +1976 26 74 56 10 52.63962 2 +1977 26 75 56 12 54.89209 2 +1978 26 76 60 11 44.96856 2 +1979 26 77 60 9 55.47915 2 +1980 26 78 60 7 61.34841 2 +1981 26 79 60 8 47.71787 2 +1982 26 80 60 10 55.42291 2 +1983 26 81 60 12 63.17311 2 +1984 27 0 4 17 57.29134 2 +1985 27 1 4 15 50.93589 2 +1986 27 2 4 13 46.88459 2 +1987 27 3 4 14 44.79885 2 +1988 27 4 4 16 49.29922 2 +1989 27 5 4 18 39.52213 2 +1990 27 6 8 15 52.12895 4 +1991 27 7 8 13 38.34397 2 +1992 27 8 8 14 40.50326 2 +1993 27 9 8 16 44.10547 2 +1994 27 10 8 18 31.56349 2 +1995 27 11 12 17 42.67323 2 +1996 27 12 12 15 43.48499 2 +1997 27 13 12 13 34.48336 2 +1998 27 14 12 16 35.691 2 +1999 27 15 12 18 38.38006 2 +2000 27 16 16 17 47.71006 2 +2001 27 17 16 15 36.10179 2 +2002 27 18 16 13 36.71685 2 +2003 27 19 16 14 35.57934 2 +2004 27 20 16 16 36.49156 4 +2005 27 21 16 18 30.97985 2 +2006 27 22 20 15 30.72913 2 +2007 27 23 20 13 29.14961 2 +2008 27 24 20 16 34.19321 2 +2009 27 25 20 18 61.2061 2 +2010 27 26 20 20 28.45802 2 +2011 27 27 24 15 36.46644 2 +2012 27 28 24 13 26.27263 2 +2013 27 29 24 11 29.38414 2 +2014 27 30 24 12 30.27789 2 +2015 27 31 24 14 25.37096 2 +2016 27 32 24 16 26.7277 2 +2017 27 33 28 19 31.09301 2 +2018 27 34 28 17 28.04711 2 +2019 27 35 28 15 27.11281 2 +2020 27 36 28 18 29.9983 2 +2021 27 37 28 20 29.89654 2 +2022 27 38 32 15 42.49075 2 +2023 27 39 32 13 27.88097 2 +2024 27 40 32 11 21.39763 2 +2025 27 41 32 12 25.49237 2 +2026 27 42 32 14 33.64598 2 +2027 27 43 32 16 26.33716 2 +2028 27 44 36 19 32.32446 2 +2029 27 45 36 17 26.78166 2 +2030 27 46 36 16 24.6142 2 +2031 27 47 36 18 28.36215 2 +2032 27 48 36 20 31.87239 2 +2033 27 49 40 15 27.40577 2 +2034 27 50 40 13 23.31908 2 +2035 27 51 40 11 26.26678 2 +2036 27 52 40 12 26.63194 2 +2037 27 53 40 14 26.25324 2 +2038 27 54 40 16 33.99304 2 +2039 27 55 44 19 32.40273 2 +2040 27 56 44 17 28.59854 2 +2041 27 57 44 15 43.12988 2 +2042 27 58 44 14 37.60856 2 +2043 27 59 44 16 32.27695 2 +2044 27 60 48 17 29.71869 2 +2045 27 61 48 15 36.55375 2 +2046 27 62 48 13 37.61643 2 +2047 27 63 48 14 41.31061 4 +2048 27 64 48 16 36.33362 2 +2049 27 65 48 18 44.35564 2 +2050 27 66 52 17 37.54829 2 +2051 27 67 52 15 36.71017 2 +2052 27 68 52 14 34.10392 2 +2053 27 69 52 16 44.37299 2 +2054 27 70 52 18 42.44064 2 +2055 27 71 56 17 37.20854 2 +2056 27 72 56 15 46.58292 2 +2057 27 73 56 13 45.58331 4 +2058 27 74 56 14 36.81592 2 +2059 27 75 56 16 50.00973 2 +2060 27 76 60 17 37.83576 2 +2061 27 77 60 15 48.67456 2 +2062 27 78 60 13 50.86467 2 +2063 27 79 60 14 40.8497 2 +2064 27 80 60 16 54.77417 2 +2065 27 81 60 18 56.64077 2 +2066 28 0 4 21 50.59688 2 +2067 28 1 4 19 45.61307 2 +2068 28 2 4 20 52.95526 2 +2069 28 3 4 22 40.427 2 +2070 28 4 4 24 42.72976 2 +2071 28 5 8 21 47.63382 2 +2072 28 6 8 19 39.78467 2 +2073 28 7 8 17 35.02371 2 +2074 28 8 8 20 37.20463 2 +2075 28 9 8 22 40.05184 2 +2076 28 10 8 24 36.23056 2 +2077 28 11 12 23 46.63044 2 +2078 28 12 12 21 38.67076 2 +2079 28 13 12 19 32.76457 2 +2080 28 14 12 20 30.12076 2 +2081 28 15 12 22 34.15728 2 +2082 28 16 16 23 43.4642 2 +2083 28 17 16 21 35.78359 2 +2084 28 18 16 19 31.12434 2 +2085 28 19 16 20 32.80799 2 +2086 28 20 16 22 69.69596 2 +2087 28 21 16 24 22.93966 2 +2088 28 22 20 21 28.40452 2 +2089 28 23 20 19 26.88715 2 +2090 28 24 20 17 19.31766 2 +2091 28 25 20 22 23.80414 2 +2092 28 26 20 24 25.92414 2 +2093 28 27 24 21 31.27535 2 +2094 28 28 24 19 27.71412 2 +2095 28 29 24 17 18.92325 2 +2096 28 30 24 18 34.04465 2 +2097 28 31 24 20 33.10399 2 +2098 28 32 24 22 27.97546 2 +2099 28 33 28 23 25.25079 2 +2100 28 34 28 21 22.90913 2 +2101 28 35 28 22 22.14627 2 +2102 28 36 28 24 23.0605 2 +2103 28 37 28 26 56.36246 2 +2104 28 38 32 21 22.81038 2 +2105 28 39 32 19 20.59 2 +2106 28 40 32 17 19.16478 2 +2107 28 41 32 18 20.01442 2 +2108 28 42 32 20 38.48217 2 +2109 28 43 32 22 24.35493 2 +2110 28 44 36 25 24.85716 2 +2111 28 45 36 23 22.74977 2 +2112 28 46 36 21 30.65591 2 +2113 28 47 36 22 26.04464 2 +2114 28 48 36 24 25.43448 2 +2115 28 49 40 21 30.58951 2 +2116 28 50 40 19 25.87894 2 +2117 28 51 40 17 36.77532 2 +2118 28 52 40 18 30.0858 2 +2119 28 53 40 20 29.62746 2 +2120 28 54 40 22 25.76629 2 +2121 28 55 44 23 27.77794 2 +2122 28 56 44 21 25.04575 2 +2123 28 57 44 18 21.03382 2 +2124 28 58 44 20 32.98619 2 +2125 28 59 44 22 28.24443 2 +2126 28 60 48 23 27.55327 2 +2127 28 61 48 21 32.85538 2 +2128 28 62 48 19 30.23559 2 +2129 28 63 48 20 33.97953 2 +2130 28 64 48 22 33.6173 2 +2131 28 65 48 24 38.57887 2 +2132 28 66 52 21 33.4955 2 +2133 28 67 52 19 30.59729 2 +2134 28 68 52 20 32.5159 2 +2135 28 69 52 22 37.48841 2 +2136 28 70 52 24 49.24375 2 +2137 28 71 56 23 32.63817 2 +2138 28 72 56 21 39.34477 2 +2139 28 73 56 19 36.57401 2 +2140 28 74 56 18 31.2626 2 +2141 28 75 56 20 36.74699 2 +2142 28 76 56 22 46.27369 2 +2143 28 77 60 23 45.59659 2 +2144 28 78 60 21 45.12996 2 +2145 28 79 60 19 49.30221 2 +2146 28 80 60 20 47.35714 2 +2147 28 81 60 22 57.08654 2 +2148 29 0 4 27 50.49825 2 +2149 29 1 4 25 42.98549 2 +2150 29 2 4 23 36.00324 2 +2151 29 3 4 26 42.07781 2 +2152 29 4 4 28 44.09374 2 +2153 29 5 4 30 31.16755 2 +2154 29 6 8 27 47.355 2 +2155 29 7 8 25 36.26671 4 +2156 29 8 8 23 33.72613 2 +2157 29 9 8 26 34.68059 2 +2158 29 10 8 28 34.04838 2 +2159 29 11 8 30 37.162 2 +2160 29 12 12 27 31.82111 2 +2161 29 13 12 25 32.39305 2 +2162 29 14 12 24 30.66965 2 +2163 29 15 12 26 29.91812 2 +2164 29 16 12 28 21.85906 2 +2165 29 17 16 29 34.40491 2 +2166 29 18 16 27 28.87911 2 +2167 29 19 16 25 24.77017 2 +2168 29 20 16 26 34.44117 2 +2169 29 21 16 28 20.20852 2 +2170 29 22 16 30 20.45154 2 +2171 29 23 20 27 30.7013 2 +2172 29 24 20 25 20.98249 2 +2173 29 25 20 23 18.08974 2 +2174 29 26 20 26 18.81892 2 +2175 29 27 20 28 18.23539 2 +2176 29 28 24 27 24.63844 2 +2177 29 29 24 25 21.19884 2 +2178 29 30 24 23 17.80637 2 +2179 29 31 24 24 19.17204 2 +2180 29 32 24 26 17.38253 2 +2181 29 33 24 28 16.91697 2 +2182 29 34 28 29 22.52665 2 +2183 29 35 28 27 19.07564 2 +2184 29 36 28 25 15.3825 2 +2185 29 37 28 28 17.57635 2 +2186 29 38 28 30 20.00539 2 +2187 29 39 32 27 26.02368 2 +2188 29 40 32 25 24.92257 2 +2189 29 41 32 23 15.61885 2 +2190 29 42 32 24 14.69049 2 +2191 29 43 32 26 16.35638 2 +2192 29 44 32 28 18.70627 2 +2193 29 45 36 29 20.43756 2 +2194 29 46 36 27 17.48264 2 +2195 29 47 36 26 25.23576 2 +2196 29 48 36 28 17.08961 2 +2197 29 49 36 30 26.36484 2 +2198 29 50 40 27 18.70403 2 +2199 29 51 40 25 20.28196 2 +2200 29 52 40 23 20.91108 2 +2201 29 53 40 24 18.04547 2 +2202 29 54 40 26 21.12194 2 +2203 29 55 40 28 44.28904 2 +2204 29 56 44 27 33.9364 2 +2205 29 57 44 25 18.73698 2 +2206 29 58 44 24 16.08829 2 +2207 29 59 44 26 27.65841 2 +2208 29 60 44 28 31.89127 2 +2209 29 61 48 29 25.42222 2 +2210 29 62 48 27 25.77734 2 +2211 29 63 48 25 35.08754 2 +2212 29 64 48 26 25.23065 2 +2213 29 65 48 28 26.90256 2 +2214 29 66 48 30 35.39901 2 +2215 29 67 52 27 21.79084 2 +2216 29 68 52 25 31.71945 2 +2217 29 69 52 23 31.35504 2 +2218 29 70 52 26 32.85186 2 +2219 29 71 52 28 35.53319 2 +2220 29 72 56 29 24.82712 2 +2221 29 73 56 27 33.96372 2 +2222 29 74 56 25 35.34804 2 +2223 29 75 56 24 34.37396 2 +2224 29 76 56 26 31.60671 2 +2225 29 77 56 28 42.39491 2 +2226 29 78 60 29 36.34469 2 +2227 29 79 60 27 45.63286 2 +2228 29 80 60 25 57.14019 2 +2229 29 81 60 24 40.43231 2 +2230 29 82 60 26 50.44007 2 +2231 29 83 60 28 51.54478 2 +2232 30 0 4 33 50.78391 2 +2233 30 1 4 31 40.20656 2 +2234 30 2 4 29 33.98006 2 +2235 30 3 4 32 38.07663 2 +2236 30 4 4 34 34.73621 2 +2237 30 5 4 36 32.57693 2 +2238 30 6 8 33 38.49987 2 +2239 30 7 8 31 35.26524 2 +2240 30 8 8 29 25.94837 2 +2241 30 9 8 32 36.58682 2 +2242 30 10 8 34 34.05546 2 +2243 30 11 12 33 43.10463 2 +2244 30 12 12 31 31.56381 2 +2245 30 13 12 29 21.80438 2 +2246 30 14 12 30 27.61609 2 +2247 30 15 12 32 27.01282 2 +2248 30 16 12 34 20.60162 2 +2249 30 17 16 33 33.57324 2 +2250 30 18 16 31 21.84753 2 +2251 30 19 16 32 21.95727 2 +2252 30 20 16 34 22.38491 2 +2253 30 21 16 36 20.19149 2 +2254 30 22 20 33 24.67459 2 +2255 30 23 20 31 25.08452 2 +2256 30 24 20 29 15.03444 2 +2257 30 25 20 30 22.88859 2 +2258 30 26 20 32 14.27185 2 +2259 30 27 20 34 15.89784 2 +2260 30 28 24 33 20.41937 2 +2261 30 29 24 31 19.31073 2 +2262 30 30 24 29 13.25179 2 +2263 30 31 24 30 13.29235 2 +2264 30 32 24 32 17.63742 2 +2265 30 33 24 34 13.90329 2 +2266 30 34 28 33 16.50303 2 +2267 30 35 28 31 14.60082 2 +2268 30 36 28 32 19.52877 2 +2269 30 37 28 34 14.12989 2 +2270 30 38 28 36 23.60427 2 +2271 30 39 32 33 15.21009 2 +2272 30 40 32 31 11.35289 2 +2273 30 41 32 29 10.84917 2 +2274 30 42 32 30 18.85028 2 +2275 30 43 32 32 14.08472 2 +2276 30 44 32 34 15.46022 2 +2277 30 45 36 35 24.8668 2 +2278 30 46 36 33 22.5715 2 +2279 30 47 36 31 22.61494 2 +2280 30 48 36 32 14.24846 2 +2281 30 49 36 34 16.50201 2 +2282 30 50 40 33 14.67415 2 +2283 30 51 40 31 13.7078 2 +2284 30 52 40 29 14.03836 2 +2285 30 53 40 30 12.69945 2 +2286 30 54 40 32 19.56342 2 +2287 30 55 40 34 23.08451 2 +2288 30 56 44 33 18.64355 2 +2289 30 57 44 31 14.67015 2 +2290 30 58 44 29 24.99106 2 +2291 30 59 44 30 15.03351 2 +2292 30 60 44 32 29.74402 2 +2293 30 61 44 34 24.51519 2 +2294 30 62 48 35 22.35932 2 +2295 30 63 48 33 22.27525 2 +2296 30 64 48 31 42.80984 2 +2297 30 65 48 32 20.71209 2 +2298 30 66 48 34 29.87888 2 +2299 30 67 52 33 20.5528 2 +2300 30 68 52 31 26.87426 2 +2301 30 69 52 29 35.69175 2 +2302 30 70 52 30 32.31132 2 +2303 30 71 52 32 40.13217 2 +2304 30 72 52 34 37.27687 2 +2305 30 73 56 33 29.95896 2 +2306 30 74 56 31 37.72023 2 +2307 30 75 56 30 25.26054 2 +2308 30 76 56 32 34.69682 2 +2309 30 77 56 34 37.62319 2 +2310 30 78 60 35 32.41652 2 +2311 30 79 60 33 30.93543 2 +2312 30 80 60 31 44.65578 2 +2313 30 81 60 30 35.12848 2 +2314 30 82 60 32 36.90158 2 +2315 30 83 60 34 46.9919 2 +2316 31 0 4 39 40.61208 2 +2317 31 1 4 37 38.53868 2 +2318 31 2 4 35 34.43842 2 +2319 31 3 4 38 32.45287 2 +2320 31 4 4 40 29.44719 2 +2321 31 5 8 39 35.06649 2 +2322 31 6 8 37 33.83283 2 +2323 31 7 8 35 28.87932 2 +2324 31 8 8 36 27.34587 2 +2325 31 9 8 38 27.3652 2 +2326 31 10 8 40 25.48396 2 +2327 31 11 12 39 32.635 2 +2328 31 12 12 37 32.49504 2 +2329 31 13 12 35 21.9634 2 +2330 31 14 12 36 24.29384 2 +2331 31 15 12 38 17.77989 2 +2332 31 16 12 40 27.11833 2 +2333 31 17 16 39 34.50774 2 +2334 31 18 16 37 22.65107 2 +2335 31 19 16 35 14.24787 2 +2336 31 20 16 38 18.67686 2 +2337 31 21 16 40 17.10405 2 +2338 31 22 20 39 23.54087 2 +2339 31 23 20 37 21.39502 2 +2340 31 24 20 35 16.51866 2 +2341 31 25 20 36 15.87177 2 +2342 31 26 20 38 13.35195 2 +2343 31 27 20 40 11.51629 2 +2344 31 28 24 39 20.2789 2 +2345 31 29 24 37 13.35582 2 +2346 31 30 24 35 11.86176 2 +2347 31 31 24 36 13.12001 2 +2348 31 32 24 38 8.52136 2 +2349 31 33 24 40 10.76357 2 +2350 31 34 28 39 17.06751 2 +2351 31 35 28 37 9.00333 2 +2352 31 36 28 35 7.15639 2 +2353 31 37 28 38 8.70154 2 +2354 31 38 28 40 9.94586 2 +2355 31 39 32 39 12.37001 2 +2356 31 40 32 37 24.76144 2 +2357 31 41 32 35 11.50763 2 +2358 31 42 32 36 9.64216 2 +2359 31 43 32 38 14.22961 2 +2360 31 44 32 40 11.98094 2 +2361 31 45 36 39 9.94684 2 +2362 31 46 36 37 8.70056 2 +2363 31 47 36 36 7.20723 2 +2364 31 48 36 38 9.00232 2 +2365 31 49 36 40 17.16498 2 +2366 31 50 40 39 10.44029 2 +2367 31 51 40 37 8.52031 2 +2368 31 52 40 35 12.91819 2 +2369 31 53 40 36 12.38047 2 +2370 31 54 40 38 13.35487 2 +2371 31 55 40 40 21.40205 2 +2372 31 56 44 39 11.87032 2 +2373 31 57 44 37 13.32304 2 +2374 31 58 44 35 15.82594 2 +2375 31 59 44 36 16.59096 2 +2376 31 60 44 38 21.76793 2 +2377 31 61 44 40 23.68873 2 +2378 31 62 48 39 15.57055 2 +2379 31 63 48 37 18.76672 2 +2380 31 64 48 36 14.28782 2 +2381 31 65 48 38 22.34075 2 +2382 31 66 48 40 23.26248 2 +2383 31 67 52 39 18.5022 2 +2384 31 68 52 37 17.51252 2 +2385 31 69 52 35 28.02551 2 +2386 31 70 52 36 22.29824 2 +2387 31 71 52 38 32.10246 2 +2388 31 72 52 40 33.58579 2 +2389 31 73 56 39 25.45478 2 +2390 31 74 56 37 26.63439 2 +2391 31 75 56 35 29.26978 2 +2392 31 76 56 36 25.66024 2 +2393 31 77 56 38 33.95304 2 +2394 31 78 56 40 34.70107 2 +2395 31 79 60 39 29.33733 2 +2396 31 80 60 37 30.17089 2 +2397 31 81 60 36 34.23858 2 +2398 31 82 60 38 32.49756 2 +2399 31 83 60 40 44.42148 2 +2400 32 0 61 5 63.83178 2 +2401 32 1 61 3 51.93011 2 +2402 32 2 61 1 50.73648 2 +2403 32 3 61 2 50.62744 2 +2404 32 4 61 4 49.82671 2 +2405 32 5 65 5 54.21388 2 +2406 32 6 65 3 53.36172 2 +2407 32 7 65 1 41.62197 2 +2408 32 8 65 2 44.00079 2 +2409 32 9 65 4 43.88522 2 +2410 32 10 69 3 45.27717 2 +2411 32 11 69 1 43.12576 2 +2412 32 12 69 2 42.49795 2 +2413 32 13 69 4 42.1356 2 +2414 32 14 69 6 47.42852 2 +2415 32 15 73 3 36.32289 2 +2416 32 16 73 1 37.89657 2 +2417 32 17 73 2 36.72457 2 +2418 32 18 73 4 31.01947 2 +2419 32 19 77 5 32.48114 2 +2420 32 20 77 3 34.09136 2 +2421 32 21 77 1 26.62831 2 +2422 32 22 77 2 27.02003 2 +2423 32 23 77 4 27.81951 2 +2424 32 24 81 3 34.40985 2 +2425 32 25 81 1 30.44503 2 +2426 32 26 81 2 27.30859 2 +2427 32 27 81 4 28.08661 2 +2428 32 28 81 6 29.85682 2 +2429 32 29 85 3 36.90158 2 +2430 32 30 85 1 25.25227 2 +2431 32 31 85 2 28.40555 2 +2432 32 32 85 4 27.05733 2 +2433 32 33 85 6 27.17813 2 +2434 32 34 89 3 29.69327 2 +2435 32 35 89 1 23.05022 2 +2436 32 36 89 2 25.55792 2 +2437 32 37 89 4 31.18352 2 +2438 32 38 93 3 26.41537 2 +2439 32 39 93 1 24.09637 2 +2440 32 40 93 2 24.32544 2 +2441 32 41 93 4 24.63956 2 +2442 32 42 93 6 28.22455 2 +2443 32 43 97 5 28.74231 2 +2444 32 44 97 3 24.71029 2 +2445 32 45 97 1 23.52849 2 +2446 32 46 97 2 24.04405 2 +2447 32 47 97 4 27.04663 2 +2448 32 48 101 3 31.03807 2 +2449 32 49 101 1 25.55896 2 +2450 32 50 101 2 23.0498 2 +2451 32 51 101 4 30.06566 2 +2452 32 52 105 5 26.75637 2 +2453 32 53 105 3 27.03494 2 +2454 32 54 105 1 28.96117 2 +2455 32 55 105 2 25.25121 2 +2456 32 56 105 4 31.62692 2 +2457 32 57 109 5 29.80684 2 +2458 32 58 109 3 28.03649 2 +2459 32 59 109 1 27.25499 2 +2460 32 60 109 2 25.96592 2 +2461 32 61 109 4 33.99892 2 +2462 32 62 113 3 28.7557 2 +2463 32 63 113 1 28.20069 2 +2464 32 64 113 2 26.57941 2 +2465 32 65 113 4 43.38025 2 +2466 32 66 113 6 32.20545 2 +2467 32 67 117 3 31.42534 2 +2468 32 68 117 1 40.53443 2 +2469 32 69 117 2 34.4316 2 +2470 32 70 117 4 42.78668 4 +2471 32 71 121 5 40.3056 2 +2472 32 72 121 3 43.65811 2 +2473 32 73 121 1 43.42054 2 +2474 32 74 121 2 44.75683 2 +2475 32 75 121 4 45.97626 2 +2476 32 76 125 3 44.31318 2 +2477 32 77 125 1 45.2039 2 +2478 32 78 125 2 41.37185 2 +2479 32 79 125 4 55.02584 2 +2480 32 80 125 6 54.79089 2 +2481 32 81 129 3 50.17407 2 +2482 32 82 129 1 53.32759 2 +2483 32 83 129 2 53.39977 2 +2484 32 84 129 4 52.33812 2 +2485 32 85 129 6 62.43637 2 +2486 33 0 61 9 52.08613 2 +2487 33 1 61 7 48.94957 2 +2488 33 2 61 6 55.06522 2 +2489 33 3 61 8 56.41741 2 +2490 33 4 61 10 42.19602 2 +2491 33 5 65 9 49.95838 2 +2492 33 6 65 7 44.83217 2 +2493 33 7 65 6 53.03497 2 +2494 33 8 65 8 47.94183 2 +2495 33 9 65 10 36.50677 2 +2496 33 10 69 7 40.23822 2 +2497 33 11 69 5 35.13823 2 +2498 33 12 69 8 42.09471 2 +2499 33 13 69 10 41.31087 2 +2500 33 14 73 9 40.20259 2 +2501 33 15 73 7 31.06187 2 +2502 33 16 73 5 34.82559 2 +2503 33 17 73 6 31.28529 2 +2504 33 18 73 8 36.9363 2 +2505 33 19 77 9 37.17521 2 +2506 33 20 77 7 25.26241 2 +2507 33 21 77 6 28.17832 2 +2508 33 22 77 8 27.77879 2 +2509 33 23 77 10 21.92174 2 +2510 33 24 81 9 33.54655 2 +2511 33 25 81 7 27.72331 2 +2512 33 26 81 5 21.63373 2 +2513 33 27 81 8 21.52748 2 +2514 33 28 81 10 24.53982 2 +2515 33 29 85 7 33.14885 2 +2516 33 30 85 5 23.25277 2 +2517 33 31 85 8 27.24895 2 +2518 33 32 85 10 24.05592 2 +2519 33 33 89 9 29.36399 2 +2520 33 34 89 7 26.3072 2 +2521 33 35 89 5 19.60094 2 +2522 33 36 89 6 19.34534 2 +2523 33 37 89 8 20.72894 2 +2524 33 38 93 9 27.86634 2 +2525 33 39 93 7 19.86936 2 +2526 33 40 93 5 19.57322 2 +2527 33 41 93 8 20.6109 2 +2528 33 42 93 10 22.63884 2 +2529 33 43 97 9 22.66139 2 +2530 33 44 97 7 20.7028 2 +2531 33 45 97 6 19.5865 2 +2532 33 46 97 8 21.47975 2 +2533 33 47 97 10 22.95807 2 +2534 33 48 101 7 20.68974 2 +2535 33 49 101 5 20.86032 2 +2536 33 50 101 6 19.82554 2 +2537 33 51 101 8 26.57317 2 +2538 33 52 101 10 32.31494 2 +2539 33 53 105 9 22.8052 2 +2540 33 54 105 7 27.25 2 +2541 33 55 105 6 20.24286 2 +2542 33 56 105 8 30.2729 2 +2543 33 57 109 9 23.67566 2 +2544 33 58 109 7 21.821 2 +2545 33 59 109 6 21.99214 2 +2546 33 60 109 8 29.30479 2 +2547 33 61 109 10 34.127 2 +2548 33 62 113 9 22.00049 2 +2549 33 63 113 7 27.15353 2 +2550 33 64 113 5 28.16049 2 +2551 33 65 113 8 26.76023 2 +2552 33 66 113 10 31.307 2 +2553 33 67 117 7 34.01667 2 +2554 33 68 117 5 31.44653 2 +2555 33 69 117 6 35.78485 2 +2556 33 70 117 8 32.21042 2 +2557 33 71 117 10 44.03805 4 +2558 33 72 121 9 36.10737 2 +2559 33 73 121 7 46.94134 2 +2560 33 74 121 6 35.30034 2 +2561 33 75 121 8 40.80878 2 +2562 33 76 125 9 36.90641 2 +2563 33 77 125 7 48.98998 2 +2564 33 78 125 5 46.86728 2 +2565 33 79 125 8 45.07234 2 +2566 33 80 125 10 51.57792 2 +2567 33 81 129 9 42.04529 2 +2568 33 82 129 7 54.84148 2 +2569 33 83 129 5 52.50866 2 +2570 33 84 129 8 46.89552 2 +2571 33 85 129 10 51.69108 2 +2572 34 0 61 15 46.86082 2 +2573 34 1 61 13 42.24406 2 +2574 34 2 61 11 41.17057 2 +2575 34 3 61 12 47.04642 2 +2576 34 4 61 14 36.36988 2 +2577 34 5 65 13 47.73095 2 +2578 34 6 65 11 42.1391 2 +2579 34 7 65 12 50.73306 2 +2580 34 8 65 14 38.88637 2 +2581 34 9 69 13 42.61469 2 +2582 34 10 69 11 40.77661 2 +2583 34 11 69 9 34.37566 2 +2584 34 12 69 12 40.22993 2 +2585 34 13 69 14 32.58955 2 +2586 34 14 73 13 40.11647 2 +2587 34 15 73 11 36.36366 2 +2588 34 16 73 10 34.60639 2 +2589 34 17 73 12 31.56311 2 +2590 34 18 73 14 24.30464 2 +2591 34 19 77 15 33.17506 2 +2592 34 20 77 13 30.62755 2 +2593 34 21 77 11 17.76232 2 +2594 34 22 77 12 31.48584 2 +2595 34 23 77 14 18.19056 2 +2596 34 24 81 13 26.78506 2 +2597 34 25 81 11 17.48152 2 +2598 34 26 81 12 25.09083 2 +2599 34 27 81 14 17.61646 2 +2600 34 28 81 16 20.29746 2 +2601 34 29 85 11 19.50696 2 +2602 34 30 85 9 14.73609 2 +2603 34 31 85 12 27.37061 2 +2604 34 32 85 14 20.16317 2 +2605 34 33 89 13 23.95122 2 +2606 34 34 89 11 21.93561 2 +2607 34 35 89 10 19.06749 2 +2608 34 36 89 12 19.97875 2 +2609 34 37 89 14 23.75119 2 +2610 34 38 93 13 17.18763 2 +2611 34 39 93 11 17.26418 2 +2612 34 40 93 12 16.35261 2 +2613 34 41 93 14 17.42965 2 +2614 34 42 93 16 19.4976 2 +2615 34 43 97 15 20.00672 2 +2616 34 44 97 13 18.84743 2 +2617 34 45 97 11 16.14633 2 +2618 34 46 97 12 16.63272 2 +2619 34 47 97 14 17.7054 2 +2620 34 48 101 13 22.6536 2 +2621 34 49 101 11 17.14521 2 +2622 34 50 101 9 18.70389 2 +2623 34 51 101 12 21.13457 2 +2624 34 52 101 14 24.17537 2 +2625 34 53 105 13 17.06818 2 +2626 34 54 105 11 22.98179 2 +2627 34 55 105 10 18.29288 2 +2628 34 56 105 12 19.50591 2 +2629 34 57 109 15 19.89165 2 +2630 34 58 109 13 17.63029 2 +2631 34 59 109 11 25.12906 2 +2632 34 60 109 12 17.18099 2 +2633 34 61 109 14 28.35787 2 +2634 34 62 113 13 17.20385 2 +2635 34 63 113 11 27.23857 2 +2636 34 64 113 12 19.852 2 +2637 34 65 113 14 28.41421 2 +2638 34 66 113 16 38.7351 2 +2639 34 67 117 13 24.7059 2 +2640 34 68 117 11 29.79514 2 +2641 34 69 117 9 32.22628 2 +2642 34 70 117 12 35.72531 2 +2643 34 71 117 14 36.58735 2 +2644 34 72 121 13 33.11078 2 +2645 34 73 121 11 40.68026 2 +2646 34 74 121 10 33.20164 2 +2647 34 75 121 12 41.75414 2 +2648 34 76 121 14 43.38257 2 +2649 34 77 125 13 39.25239 2 +2650 34 78 125 11 51.07802 2 +2651 34 79 125 12 40.99748 2 +2652 34 80 125 14 47.44753 2 +2653 34 81 129 13 35.86368 2 +2654 34 82 129 11 49.35494 2 +2655 34 83 129 12 41.16568 2 +2656 34 84 129 14 42.41184 2 +2657 34 85 129 16 47.16243 2 +2658 35 0 61 19 54.59218 2 +2659 35 1 61 17 45.42195 2 +2660 35 2 61 16 44.89364 2 +2661 35 3 61 18 37.48907 2 +2662 35 4 61 20 40.25432 2 +2663 35 5 65 17 42.8837 2 +2664 35 6 65 15 35.14292 2 +2665 35 7 65 16 43.87044 2 +2666 35 8 65 18 41.53773 2 +2667 35 9 65 20 29.94435 2 +2668 35 10 69 17 37.16248 2 +2669 35 11 69 15 29.20499 2 +2670 35 12 69 16 40.54398 2 +2671 35 13 69 18 35.12751 2 +2672 35 14 69 20 26.3204 2 +2673 35 15 73 19 26.6086 2 +2674 35 16 73 17 27.1689 2 +2675 35 17 73 15 18.16258 2 +2676 35 18 73 16 26.07852 2 +2677 35 19 73 18 18.86169 2 +2678 35 20 77 19 26.53222 2 +2679 35 21 77 17 19.4628 2 +2680 35 22 77 16 22.68691 2 +2681 35 23 77 18 15.58274 2 +2682 35 24 77 20 15.01732 2 +2683 35 25 81 17 22.35832 2 +2684 35 26 81 15 12.25914 2 +2685 35 27 81 18 20.33565 2 +2686 35 28 81 20 13.43252 2 +2687 35 29 85 17 25.87594 2 +2688 35 30 85 15 15.34689 2 +2689 35 31 85 13 15.52035 2 +2690 35 32 85 16 22.19688 2 +2691 35 33 85 18 13.09833 2 +2692 35 34 89 19 21.62564 2 +2693 35 35 89 17 18.91892 2 +2694 35 36 89 15 10.12185 2 +2695 35 37 89 16 11.37794 2 +2696 35 38 89 18 12.40939 2 +2697 35 39 93 19 18.91605 2 +2698 35 40 93 17 11.58814 2 +2699 35 41 93 15 10.8047 2 +2700 35 42 93 18 12.62592 2 +2701 35 43 93 20 14.27016 2 +2702 35 44 97 19 21.78582 2 +2703 35 45 97 17 14.7581 2 +2704 35 46 97 16 10.16151 2 +2705 35 47 97 18 11.7862 2 +2706 35 48 97 20 25.04366 2 +2707 35 49 101 17 21.59554 2 +2708 35 50 101 15 14.35771 2 +2709 35 51 101 16 10.32973 2 +2710 35 52 101 18 18.24349 2 +2711 35 53 101 20 21.70627 2 +2712 35 54 105 17 13.13437 2 +2713 35 55 105 15 16.73391 2 +2714 35 56 105 14 13.33951 2 +2715 35 57 105 16 15.35222 2 +2716 35 58 105 18 25.14708 2 +2717 35 59 109 19 13.15691 2 +2718 35 60 109 17 21.47796 2 +2719 35 61 109 16 12.1481 2 +2720 35 62 109 18 23.08568 2 +2721 35 63 113 19 15.89471 2 +2722 35 64 113 17 21.62253 2 +2723 35 65 113 15 22.17308 2 +2724 35 66 113 18 73.37808 2 +2725 35 67 113 20 30.61932 2 +2726 35 68 117 17 26.13918 2 +2727 35 69 117 15 24.89501 2 +2728 35 70 117 16 20.12102 2 +2729 35 71 117 18 25.03586 2 +2730 35 72 117 20 29.76939 2 +2731 35 73 121 19 25.40336 2 +2732 35 74 121 17 35.08019 2 +2733 35 75 121 15 40.24238 2 +2734 35 76 121 16 28.81511 2 +2735 35 77 121 18 48.85665 2 +2736 35 78 125 19 30.29953 2 +2737 35 79 125 17 37.03282 2 +2738 35 80 125 15 44.08421 2 +2739 35 81 125 16 38.88944 2 +2740 35 82 125 18 41.42267 2 +2741 35 83 129 19 44.48575 2 +2742 35 84 129 17 36.84072 2 +2743 35 85 129 15 47.34765 2 +2744 35 86 129 18 45.58764 2 +2745 35 87 129 20 48.19455 2 +2746 36 0 61 25 47.70108 2 +2747 36 1 61 23 45.09718 2 +2748 36 2 61 21 31.33709 2 +2749 36 3 61 22 45.62884 2 +2750 36 4 61 24 30.3607 2 +2751 36 5 65 23 39.0112 2 +2752 36 6 65 21 36.81536 2 +2753 36 7 65 19 26.47312 2 +2754 36 8 65 22 31.10177 2 +2755 36 9 65 24 24.99592 2 +2756 36 10 69 23 30.14954 2 +2757 36 11 69 21 28.13208 2 +2758 36 12 69 19 20.29135 2 +2759 36 13 69 22 29.23314 2 +2760 36 14 69 24 23.74151 2 +2761 36 15 73 23 26.44139 2 +2762 36 16 73 21 23.4447 2 +2763 36 17 73 20 20.94899 2 +2764 36 18 73 22 21.26639 2 +2765 36 19 73 24 15.1066 2 +2766 36 20 77 23 18.99055 2 +2767 36 21 77 21 13.90729 2 +2768 36 22 77 22 15.49564 2 +2769 36 23 77 24 18.03038 2 +2770 36 24 81 23 25.66257 2 +2771 36 25 81 21 17.6513 2 +2772 36 26 81 19 9.92309 2 +2773 36 27 81 22 16.92569 2 +2774 36 28 81 24 10.06551 2 +2775 36 29 85 23 15.92208 2 +2776 36 30 85 21 15.20326 2 +2777 36 31 85 19 11.70513 2 +2778 36 32 85 20 15.01173 2 +2779 36 33 85 22 12.6288 2 +2780 36 34 89 23 15.92092 2 +2781 36 35 89 21 9.8951 2 +2782 36 36 89 20 11.59558 2 +2783 36 37 89 22 13.89909 2 +2784 36 38 89 24 8.73275 2 +2785 36 39 93 23 13.22294 2 +2786 36 40 93 21 7.29397 2 +2787 36 41 93 22 9.50844 2 +2788 36 42 93 24 11.99066 2 +2789 36 43 93 26 10.71715 2 +2790 36 44 97 25 10.14114 2 +2791 36 45 97 23 7.49265 2 +2792 36 46 97 21 12.24857 2 +2793 36 47 97 22 7.12702 2 +2794 36 48 97 24 13.19846 2 +2795 36 49 101 23 8.73178 2 +2796 36 50 101 21 13.74563 2 +2797 36 51 101 19 11.59464 2 +2798 36 52 101 22 9.89407 2 +2799 36 53 101 24 15.99628 2 +2800 36 54 105 21 10.74972 2 +2801 36 55 105 19 15.12747 2 +2802 36 56 105 20 10.98529 2 +2803 36 57 105 22 13.44876 2 +2804 36 58 105 24 16.20114 2 +2805 36 59 109 23 9.51821 2 +2806 36 60 109 21 16.05521 2 +2807 36 61 109 20 9.92202 2 +2808 36 62 109 22 18.42743 2 +2809 36 63 109 24 24.94083 2 +2810 36 64 113 23 14.6869 2 +2811 36 65 113 21 15.42316 2 +2812 36 66 113 22 20.03664 2 +2813 36 67 113 24 18.36504 2 +2814 36 68 117 23 14.87434 2 +2815 36 69 117 21 21.01222 2 +2816 36 70 117 19 21.62421 2 +2817 36 71 117 22 25.73217 2 +2818 36 72 117 24 27.40072 2 +2819 36 73 121 23 24.36928 2 +2820 36 74 121 21 33.34571 2 +2821 36 75 121 20 20.37384 2 +2822 36 76 121 22 28.68604 2 +2823 36 77 121 24 29.57611 2 +2824 36 78 125 23 25.35232 2 +2825 36 79 125 21 31.66413 2 +2826 36 80 125 20 26.07695 2 +2827 36 81 125 22 37.33842 2 +2828 36 82 125 24 34.91974 2 +2829 36 83 129 23 30.73963 2 +2830 36 84 129 21 42.60521 2 +2831 36 85 129 22 31.42838 2 +2832 36 86 129 24 40.37496 2 +2833 36 87 129 26 46.39509 2 +2834 37 0 61 29 45.05924 2 +2835 37 1 61 27 35.68485 2 +2836 37 2 61 26 39.7988 2 +2837 37 3 61 28 32.63985 2 +2838 37 4 61 30 30.19148 2 +2839 37 5 65 27 35.96064 2 +2840 37 6 65 25 32.7758 2 +2841 37 7 65 26 36.42781 2 +2842 37 8 65 28 31.59495 2 +2843 37 9 65 30 25.19851 2 +2844 37 10 69 27 30.91154 2 +2845 37 11 69 25 31.91948 2 +2846 37 12 69 26 27.70939 2 +2847 37 13 69 28 22.74606 2 +2848 37 14 69 30 20.56002 2 +2849 37 15 73 27 23.1384 2 +2850 37 16 73 25 19.76647 2 +2851 37 17 73 26 35.6033 2 +2852 37 18 73 28 16.81523 2 +2853 37 19 77 29 21.41509 2 +2854 37 20 77 27 19.27189 2 +2855 37 21 77 25 16.38085 2 +2856 37 22 77 26 21.60666 2 +2857 37 23 77 28 14.72515 2 +2858 37 24 81 29 17.80891 2 +2859 37 25 81 27 18.41989 2 +2860 37 26 81 25 9.71812 2 +2861 37 27 81 26 14.21791 2 +2862 37 28 81 28 7.00292 2 +2863 37 29 85 27 16.14759 2 +2864 37 30 85 25 13.64041 2 +2865 37 31 85 24 15.74907 2 +2866 37 32 85 26 12.99033 2 +2867 37 33 85 28 5.46105 2 +2868 37 34 89 29 12.9466 2 +2869 37 35 89 27 11.80778 2 +2870 37 36 89 25 4.15971 2 +2871 37 37 89 26 8.40438 2 +2872 37 38 89 28 6.43932 2 +2873 37 39 93 29 12.17053 2 +2874 37 40 93 27 5.64997 2 +2875 37 41 93 25 11.02256 2 +2876 37 42 93 28 6.63225 2 +2877 37 43 93 30 11.97039 2 +2878 37 44 97 29 11.97039 2 +2879 37 45 97 27 6.63225 2 +2880 37 46 97 26 11.71566 2 +2881 37 47 97 28 5.64997 2 +2882 37 48 97 30 6.50632 2 +2883 37 49 101 27 6.43833 2 +2884 37 50 101 25 8.40541 2 +2885 37 51 101 26 5.3262 2 +2886 37 52 101 28 13.8152 2 +2887 37 53 101 30 12.94556 2 +2888 37 54 105 27 3.97058 2 +2889 37 55 105 25 12.99138 2 +2890 37 56 105 23 14.95887 2 +2891 37 57 105 26 13.84551 2 +2892 37 58 105 28 14.97746 2 +2893 37 59 109 27 7.09859 2 +2894 37 60 109 25 14.42772 2 +2895 37 61 109 26 9.71706 2 +2896 37 62 109 28 18.60341 2 +2897 37 63 109 30 19.59719 2 +2898 37 64 113 27 15.38887 2 +2899 37 65 113 25 17.63114 2 +2900 37 66 113 26 15.87755 2 +2901 37 67 113 28 19.09819 2 +2902 37 68 113 30 21.45555 2 +2903 37 69 117 27 16.34104 2 +2904 37 70 117 25 34.39221 2 +2905 37 71 117 26 19.58693 2 +2906 37 72 117 28 24.67291 2 +2907 37 73 121 29 20.49876 2 +2908 37 74 121 27 21.53097 2 +2909 37 75 121 25 31.5933 2 +2910 37 76 121 26 29.96499 2 +2911 37 77 121 28 28.83964 2 +2912 37 78 125 29 22.64172 2 +2913 37 79 125 27 32.23676 2 +2914 37 80 125 25 36.30615 2 +2915 37 81 125 26 33.58506 2 +2916 37 82 125 28 34.34636 2 +2917 37 83 129 29 30.89728 2 +2918 37 84 129 27 32.41342 2 +2919 37 85 129 25 39.9249 2 +2920 37 86 129 28 35.91538 2 +2921 37 87 129 30 42.11436 2 +2922 38 0 61 35 44.93722 2 +2923 38 1 61 33 42.37623 2 +2924 38 2 61 31 37.07267 2 +2925 38 3 61 32 36.6334 2 +2926 38 4 61 34 34.2995 2 +2927 38 5 65 33 43.38745 2 +2928 38 6 65 31 42.40108 2 +2929 38 7 65 29 37.27902 2 +2930 38 8 65 32 39.53749 2 +2931 38 9 65 34 30.01828 2 +2932 38 10 69 33 37.37032 2 +2933 38 11 69 31 36.67822 2 +2934 38 12 69 29 34.29956 2 +2935 38 13 69 32 36.73628 2 +2936 38 14 69 34 24.49426 2 +2937 38 15 73 31 30.30511 2 +2938 38 16 73 29 30.50438 2 +2939 38 17 73 30 30.14534 2 +2940 38 18 73 32 25.65512 2 +2941 38 19 73 34 19.85518 2 +2942 38 20 77 33 23.43484 2 +2943 38 21 77 31 23.44863 2 +2944 38 22 77 30 22.63172 2 +2945 38 23 77 32 19.15698 2 +2946 38 24 77 34 19.92472 2 +2947 38 25 81 33 32.80768 2 +2948 38 26 81 31 15.43168 2 +2949 38 27 81 30 21.63939 2 +2950 38 28 81 32 12.90154 2 +2951 38 29 81 34 12.02643 2 +2952 38 30 85 33 22.13097 2 +2953 38 31 85 31 12.01785 2 +2954 38 32 85 29 13.67369 2 +2955 38 33 85 30 17.62251 2 +2956 38 34 85 32 11.8973 2 +2957 38 35 89 33 16.69845 2 +2958 38 36 89 31 10.95753 2 +2959 38 37 89 30 13.55324 2 +2960 38 38 89 32 13.13591 2 +2961 38 39 89 34 8.90195 2 +2962 38 40 93 33 8.42588 2 +2963 38 41 93 31 9.65779 2 +2964 38 42 93 32 11.26577 2 +2965 38 43 93 34 8.54765 2 +2966 38 44 93 36 8.36753 2 +2967 38 45 97 35 8.36753 2 +2968 38 46 97 33 8.54765 2 +2969 38 47 97 31 12.15621 2 +2970 38 48 97 32 9.44577 2 +2971 38 49 97 34 8.42588 2 +2972 38 50 101 33 8.74075 2 +2973 38 51 101 31 13.40281 2 +2974 38 52 101 29 13.55227 2 +2975 38 53 101 32 10.95656 2 +2976 38 54 101 34 18.98541 2 +2977 38 55 105 31 8.71542 2 +2978 38 56 105 29 15.0855 2 +2979 38 57 105 30 13.67474 2 +2980 38 58 105 32 12.0168 2 +2981 38 59 105 34 22.02761 2 +2982 38 60 109 33 15.24325 2 +2983 38 61 109 31 12.25157 2 +2984 38 62 109 29 24.55607 2 +2985 38 63 109 32 15.43075 2 +2986 38 64 109 34 24.21212 2 +2987 38 65 113 33 13.64338 2 +2988 38 66 113 31 15.48732 2 +2989 38 67 113 29 20.1978 2 +2990 38 68 113 32 22.18935 2 +2991 38 69 113 34 22.77582 2 +2992 38 70 117 33 20.0497 2 +2993 38 71 117 31 24.44506 2 +2994 38 72 117 29 31.7738 2 +2995 38 73 117 30 28.85187 2 +2996 38 74 117 32 31.87821 2 +2997 38 75 121 33 25.53793 2 +2998 38 76 121 31 36.21191 2 +2999 38 77 121 30 35.81406 2 +3000 38 78 121 32 37.93313 2 +3001 38 79 121 34 45.06509 2 +3002 38 80 125 33 26.76541 2 +3003 38 81 125 31 35.18992 2 +3004 38 82 125 30 36.07014 2 +3005 38 83 125 32 36.20439 2 +3006 38 84 125 34 38.89333 2 +3007 38 85 129 33 36.03787 2 +3008 38 86 129 31 35.94076 2 +3009 38 87 129 32 40.04279 2 +3010 38 88 129 34 42.29423 2 +3011 38 89 129 36 45.23782 2 +3012 39 0 61 39 47.33865 2 +3013 39 1 61 37 46.86031 2 +3014 39 2 61 36 52.72815 2 +3015 39 3 61 38 48.97679 2 +3016 39 4 61 40 38.56398 2 +3017 39 5 65 37 48.63644 2 +3018 39 6 65 35 47.90005 2 +3019 39 7 65 36 48.23983 2 +3020 39 8 65 38 35.80347 2 +3021 39 9 65 40 32.37495 2 +3022 39 10 69 39 37.89861 2 +3023 39 11 69 37 53.97172 2 +3024 39 12 69 35 33.16143 2 +3025 39 13 69 36 39.21155 2 +3026 39 14 69 38 29.57991 2 +3027 39 15 73 35 36.17155 2 +3028 39 16 73 33 37.98004 2 +3029 39 17 73 36 35.72569 4 +3030 39 18 73 38 24.55777 2 +3031 39 19 73 40 20.38321 2 +3032 39 20 77 39 26.76619 2 +3033 39 21 77 37 22.70611 2 +3034 39 22 77 35 21.4945 2 +3035 39 23 77 36 19.34188 2 +3036 39 24 77 38 17.08146 2 +3037 39 25 81 37 20.70572 2 +3038 39 26 81 35 20.02515 2 +3039 39 27 81 36 28.1494 2 +3040 39 28 81 38 16.03416 2 +3041 39 29 81 40 12.67476 2 +3042 39 30 85 39 21.53726 2 +3043 39 31 85 37 19.96519 2 +3044 39 32 85 35 23.77355 2 +3045 39 33 85 34 20.17 2 +3046 39 34 85 36 15.13508 2 +3047 39 35 89 37 22.15501 2 +3048 39 36 89 35 15.65041 2 +3049 39 37 89 36 22.82424 2 +3050 39 38 89 38 17.62758 2 +3051 39 39 89 40 12.7434 2 +3052 39 40 93 39 12.33165 2 +3053 39 41 93 37 12.81763 2 +3054 39 42 93 35 14.72336 2 +3055 39 43 93 38 12.35044 2 +3056 39 44 93 40 13.22286 2 +3057 39 45 97 39 13.22286 2 +3058 39 46 97 37 13.2109 2 +3059 39 47 97 36 14.96803 2 +3060 39 48 97 38 12.85343 2 +3061 39 49 97 40 12.33165 2 +3062 39 50 101 39 10.47804 2 +3063 39 51 101 37 29.78209 2 +3064 39 52 101 35 16.6352 2 +3065 39 53 101 36 15.85535 2 +3066 39 54 101 38 20.71006 2 +3067 39 55 105 35 15.78041 2 +3068 39 56 105 33 18.56919 2 +3069 39 57 105 36 19.33781 2 +3070 39 58 105 38 19.96414 2 +3071 39 59 105 40 21.53626 2 +3072 39 60 109 39 12.67583 2 +3073 39 61 109 37 16.17694 2 +3074 39 62 109 35 18.75376 2 +3075 39 63 109 36 20.40632 2 +3076 39 64 109 38 21.2193 2 +3077 39 65 113 37 15.60565 2 +3078 39 66 113 35 19.34765 2 +3079 39 67 113 36 22.38545 2 +3080 39 68 113 38 22.78634 2 +3081 39 69 113 40 26.49009 2 +3082 39 70 117 39 21.17194 2 +3083 39 71 117 37 26.13863 2 +3084 39 72 117 35 40.81713 2 +3085 39 73 117 34 35.44417 2 +3086 39 74 117 36 34.20291 2 +3087 39 75 121 37 27.92488 2 +3088 39 76 121 35 44.38803 2 +3089 39 77 121 36 31.39945 2 +3090 39 78 121 38 40.01333 2 +3091 39 79 121 40 40.69605 2 +3092 39 80 125 39 32.31928 2 +3093 39 81 125 37 40.06308 2 +3094 39 82 125 35 46.71773 2 +3095 39 83 125 36 47.30525 2 +3096 39 84 125 38 42.29457 2 +3097 39 85 129 39 50.89122 2 +3098 39 86 129 37 48.68296 2 +3099 39 87 129 35 47.21309 2 +3100 39 88 129 38 46.42747 2 +3101 39 89 129 40 47.69341 2 +3102 40 0 62 5 47.80891 2 +3103 40 1 62 3 47.18413 2 +3104 40 2 62 1 40.46433 2 +3105 40 3 62 2 47.51412 2 +3106 40 4 62 4 35.28041 2 +3107 40 5 65 39 53.01761 2 +3108 40 6 66 3 41.36503 2 +3109 40 7 66 1 36.40103 2 +3110 40 8 66 2 42.28303 2 +3111 40 9 66 4 31.15592 2 +3112 40 10 70 3 44.31554 2 +3113 40 11 70 1 32.44444 2 +3114 40 12 70 2 40.89561 2 +3115 40 13 70 4 31.72583 2 +3116 40 14 69 40 45.47658 2 +3117 40 15 73 39 42.94822 4 +3118 40 16 73 37 44.10457 2 +3119 40 17 74 2 31.25653 2 +3120 40 18 74 4 22.89253 2 +3121 40 19 74 6 24.68786 2 +3122 40 20 78 3 26.89819 2 +3123 40 21 78 1 20.97356 2 +3124 40 22 78 2 25.76137 2 +3125 40 23 78 4 19.70242 2 +3126 40 24 77 40 20.20416 2 +3127 40 25 81 39 34.96024 2 +3128 40 26 82 3 23.18622 2 +3129 40 27 82 1 17.45096 2 +3130 40 28 82 2 16.5881 2 +3131 40 29 82 4 17.5133 2 +3132 40 30 86 5 25.07317 2 +3133 40 31 86 3 18.17175 2 +3134 40 32 86 1 16.66849 2 +3135 40 33 85 38 26.27615 2 +3136 40 34 85 40 19.13979 2 +3137 40 35 89 39 22.31859 2 +3138 40 36 90 3 22.09478 2 +3139 40 37 90 1 14.25246 2 +3140 40 38 90 2 17.07163 2 +3141 40 39 90 4 21.14054 2 +3142 40 40 94 3 16.9151 2 +3143 40 41 94 1 15.83026 2 +3144 40 42 94 2 14.6204 2 +3145 40 43 94 4 15.68926 2 +3146 40 44 94 6 23.23508 2 +3147 40 45 98 5 22.15276 2 +3148 40 46 98 3 15.33342 2 +3149 40 47 98 1 14.38181 2 +3150 40 48 98 2 15.18827 2 +3151 40 49 98 4 17.95892 2 +3152 40 50 102 3 19.31835 2 +3153 40 51 102 1 15.5028 2 +3154 40 52 102 2 14.35663 2 +3155 40 53 102 4 22.09575 2 +3156 40 54 101 40 26.56142 2 +3157 40 55 105 39 18.9716 2 +3158 40 56 105 37 24.72572 2 +3159 40 57 106 2 16.66944 2 +3160 40 58 106 4 18.1708 2 +3161 40 59 106 6 25.30797 2 +3162 40 60 110 3 17.34379 2 +3163 40 61 110 1 16.61242 2 +3164 40 62 110 2 17.03222 2 +3165 40 63 110 4 18.94174 2 +3166 40 64 109 40 35.83593 2 +3167 40 65 113 39 21.34216 2 +3168 40 66 114 3 20.07032 2 +3169 40 67 114 1 30.02528 2 +3170 40 68 114 2 21.89752 2 +3171 40 69 114 4 29.51288 2 +3172 40 70 118 5 29.28043 2 +3173 40 71 118 3 23.33713 2 +3174 40 72 118 1 32.10649 2 +3175 40 73 117 38 39.30858 2 +3176 40 74 117 40 43.03879 4 +3177 40 75 121 39 36.06343 2 +3178 40 76 122 3 32.33538 2 +3179 40 77 122 1 38.44154 2 +3180 40 78 122 2 34.81243 2 +3181 40 79 122 4 40.61316 2 +3182 40 80 126 3 32.42023 2 +3183 40 81 126 1 42.23265 2 +3184 40 82 126 2 36.87943 2 +3185 40 83 126 4 41.93963 2 +3186 40 84 125 40 52.61509 2 +3187 40 85 130 3 38.34898 2 +3188 40 86 130 1 47.88837 2 +3189 40 87 130 2 42.07203 2 +3190 40 88 130 4 42.40253 2 +3191 40 89 130 6 47.07557 2 +3192 41 0 62 9 41.60729 2 +3193 41 1 62 7 41.88154 2 +3194 41 2 62 6 41.31534 2 +3195 41 3 62 8 41.80787 2 +3196 41 4 62 10 35.21244 2 +3197 41 5 66 7 39.97191 2 +3198 41 6 66 5 34.46942 2 +3199 41 7 66 6 32.71753 2 +3200 41 8 66 8 37.13168 2 +3201 41 9 66 10 32.98139 2 +3202 41 10 70 7 30.73413 2 +3203 41 11 70 5 26.20291 2 +3204 41 12 70 6 36.1995 2 +3205 41 13 70 8 24.65739 2 +3206 41 14 70 10 25.77966 2 +3207 41 15 74 5 30.98593 2 +3208 41 16 74 3 20.04636 2 +3209 41 17 74 1 18.84237 2 +3210 41 18 74 8 20.02338 2 +3211 41 19 74 10 21.25407 2 +3212 41 20 78 7 25.94945 2 +3213 41 21 78 5 17.61825 2 +3214 41 22 78 6 25.20057 2 +3215 41 23 78 8 17.04192 2 +3216 41 24 78 10 15.03617 2 +3217 41 25 82 9 20.90411 2 +3218 41 26 82 7 18.36142 2 +3219 41 27 82 5 10.94648 2 +3220 41 28 82 6 11.38522 2 +3221 41 29 82 8 12.3901 2 +3222 41 30 86 9 15.59747 2 +3223 41 31 86 7 16.58043 2 +3224 41 32 86 2 15.6989 2 +3225 41 33 86 4 9.87249 2 +3226 41 34 86 6 10.84355 2 +3227 41 35 90 9 20.42407 2 +3228 41 36 90 7 17.96316 2 +3229 41 37 90 5 11.19667 2 +3230 41 38 90 6 11.51237 2 +3231 41 39 90 8 15.46465 2 +3232 41 40 94 9 15.00679 2 +3233 41 41 94 7 11.56478 2 +3234 41 42 94 5 10.35621 2 +3235 41 43 94 8 12.4733 2 +3236 41 44 94 10 19.2461 2 +3237 41 45 98 9 22.33268 2 +3238 41 46 98 7 10.75034 2 +3239 41 47 98 6 10.80051 2 +3240 41 48 98 8 11.7752 2 +3241 41 49 98 10 13.88963 2 +3242 41 50 102 7 15.5076 2 +3243 41 51 102 5 12.95133 2 +3244 41 52 102 6 11.03278 2 +3245 41 53 102 8 18.15252 2 +3246 41 54 102 10 20.23266 2 +3247 41 55 106 5 10.8446 2 +3248 41 56 106 3 9.87144 2 +3249 41 57 106 1 14.95601 2 +3250 41 58 106 8 16.16973 2 +3251 41 59 106 10 15.59652 2 +3252 41 60 110 7 12.39103 2 +3253 41 61 110 5 11.90157 2 +3254 41 62 110 6 11.3401 2 +3255 41 63 110 8 17.30437 2 +3256 41 64 110 10 18.32128 2 +3257 41 65 114 9 14.93542 2 +3258 41 66 114 7 16.92913 2 +3259 41 67 114 5 23.65778 2 +3260 41 68 114 6 17.65676 2 +3261 41 69 114 8 30.32867 2 +3262 41 70 118 9 21.27259 2 +3263 41 71 118 7 19.57424 2 +3264 41 72 118 2 19.40677 2 +3265 41 73 118 4 22.69088 2 +3266 41 74 118 6 29.07794 2 +3267 41 75 122 9 26.14231 2 +3268 41 76 122 7 27.51622 2 +3269 41 77 122 5 34.98761 2 +3270 41 78 122 6 26.35057 2 +3271 41 79 122 8 34.23709 2 +3272 41 80 126 9 30.16608 2 +3273 41 81 126 7 37.82001 2 +3274 41 82 126 5 33.11594 2 +3275 41 83 126 6 33.02293 2 +3276 41 84 126 8 39.92377 2 +3277 41 85 130 9 31.98705 2 +3278 41 86 130 7 42.13128 2 +3279 41 87 130 5 42.27969 2 +3280 41 88 130 8 41.87163 2 +3281 41 89 130 10 41.35424 2 +3282 42 0 62 15 48.15605 2 +3283 42 1 62 13 36.12901 2 +3284 42 2 62 11 35.10949 2 +3285 42 3 62 12 41.43208 2 +3286 42 4 62 14 30.40035 2 +3287 42 5 66 13 40.05969 2 +3288 42 6 66 11 38.46429 2 +3289 42 7 66 9 27.46186 2 +3290 42 8 66 12 39.94948 2 +3291 42 9 66 14 30.14018 2 +3292 42 10 70 13 31.21776 2 +3293 42 11 70 11 29.68654 2 +3294 42 12 70 9 28.89169 2 +3295 42 13 70 12 24.69974 2 +3296 42 14 70 14 25.02004 2 +3297 42 15 74 11 27.7427 2 +3298 42 16 74 9 25.74326 2 +3299 42 17 74 7 19.54162 2 +3300 42 18 74 12 19.71615 2 +3301 42 19 74 14 19.11812 2 +3302 42 20 74 16 19.48871 2 +3303 42 21 78 13 18.97417 2 +3304 42 22 78 11 18.20829 2 +3305 42 23 78 9 18.03161 2 +3306 42 24 78 12 13.27693 2 +3307 42 25 78 14 12.21988 2 +3308 42 26 82 13 20.21568 2 +3309 42 27 82 11 11.71611 2 +3310 42 28 82 10 12.2817 2 +3311 42 29 82 12 15.45375 2 +3312 42 30 82 14 8.68379 2 +3313 42 31 86 15 26.4379 2 +3314 42 32 86 13 11.12532 2 +3315 42 33 86 11 9.82623 2 +3316 42 34 86 8 14.58639 2 +3317 42 35 86 10 7.0807 2 +3318 42 36 90 13 14.21293 2 +3319 42 37 90 11 8.23456 2 +3320 42 38 90 10 9.92963 2 +3321 42 39 90 12 6.78538 2 +3322 42 40 90 14 12.0646 2 +3323 42 41 94 13 14.72398 2 +3324 42 42 94 11 6.76878 2 +3325 42 43 94 12 14.75632 2 +3326 42 44 94 14 8.53843 2 +3327 42 45 94 16 9.86739 2 +3328 42 46 98 15 9.86739 2 +3329 42 47 98 13 10.62629 2 +3330 42 48 98 11 7.61814 2 +3331 42 49 98 12 6.73465 2 +3332 42 50 98 14 12.98132 2 +3333 42 51 102 13 12.06364 2 +3334 42 52 102 11 6.78641 2 +3335 42 53 102 9 9.92869 2 +3336 42 54 102 12 8.23353 2 +3337 42 55 102 14 14.2139 2 +3338 42 56 106 9 7.18672 2 +3339 42 57 106 7 14.10048 2 +3340 42 58 106 12 9.97723 2 +3341 42 59 106 14 11.12437 2 +3342 42 60 106 16 27.03192 2 +3343 42 61 110 13 6.98019 2 +3344 42 62 110 11 12.43915 2 +3345 42 63 110 9 18.46801 2 +3346 42 64 110 12 11.91686 2 +3347 42 65 110 14 20.66298 2 +3348 42 66 114 13 11.34681 2 +3349 42 67 114 11 13.40196 2 +3350 42 68 114 10 13.69861 2 +3351 42 69 114 12 13.95597 2 +3352 42 70 114 14 18.65957 2 +3353 42 71 118 15 13.86961 2 +3354 42 72 118 13 20.33216 2 +3355 42 73 118 11 19.71504 2 +3356 42 74 118 8 18.04849 2 +3357 42 75 118 10 25.52377 2 +3358 42 76 118 12 26.369 2 +3359 42 77 122 13 24.89548 2 +3360 42 78 122 11 24.1386 2 +3361 42 79 122 10 28.07278 2 +3362 42 80 122 12 29.12592 2 +3363 42 81 122 14 31.43208 2 +3364 42 82 126 13 30.20087 2 +3365 42 83 126 11 38.75054 2 +3366 42 84 126 10 27.21976 2 +3367 42 85 126 12 38.72225 2 +3368 42 86 126 14 35.76323 2 +3369 42 87 130 13 29.94155 2 +3370 42 88 130 11 41.52916 2 +3371 42 89 130 12 39.11757 2 +3372 42 90 130 14 35.99995 2 +3373 42 91 130 16 44.60274 2 +3374 43 0 62 19 46.11073 2 +3375 43 1 62 17 39.83431 2 +3376 43 2 62 16 40.97858 2 +3377 43 3 62 18 34.59148 2 +3378 43 4 62 20 31.48411 2 +3379 43 5 66 19 43.18088 2 +3380 43 6 66 17 31.16443 2 +3381 43 7 66 15 31.60594 2 +3382 43 8 66 16 28.32817 2 +3383 43 9 66 18 27.60244 2 +3384 43 10 70 17 31.1591 2 +3385 43 11 70 15 32.16887 2 +3386 43 12 70 16 30.69612 2 +3387 43 13 70 18 26.22132 2 +3388 43 14 70 20 22.32127 2 +3389 43 15 74 17 38.71603 2 +3390 43 16 74 15 25.58392 2 +3391 43 17 74 13 20.68918 2 +3392 43 18 74 18 18.01667 2 +3393 43 19 74 20 17.5206 2 +3394 43 20 78 19 21.42963 2 +3395 43 21 78 17 18.06792 2 +3396 43 22 78 15 17.33745 2 +3397 43 23 78 16 20.84022 2 +3398 43 24 78 18 12.94846 2 +3399 43 25 78 20 9.00026 2 +3400 43 26 82 19 16.03615 2 +3401 43 27 82 17 15.25187 2 +3402 43 28 82 15 6.71599 2 +3403 43 29 82 16 12.59006 2 +3404 43 30 82 18 6.74243 2 +3405 43 31 86 19 15.5452 2 +3406 43 32 86 17 14.01443 2 +3407 43 33 86 12 12.76991 2 +3408 43 34 86 14 8.93665 2 +3409 43 35 86 16 6.37299 2 +3410 43 36 90 19 14.30874 2 +3411 43 37 90 17 11.41651 2 +3412 43 38 90 15 4.81505 2 +3413 43 39 90 16 4.74426 2 +3414 43 40 90 18 4.93946 2 +3415 43 41 94 19 6.38079 2 +3416 43 42 94 17 6.36247 2 +3417 43 43 94 15 16.58421 2 +3418 43 44 94 18 6.54908 2 +3419 43 45 94 20 9.37612 2 +3420 43 46 98 19 10.83727 2 +3421 43 47 98 17 6.69823 2 +3422 43 48 98 16 16.21287 2 +3423 43 49 98 18 5.38717 2 +3424 43 50 98 20 6.38079 2 +3425 43 51 102 17 4.94042 2 +3426 43 52 102 15 4.7433 2 +3427 43 53 102 16 4.81402 2 +3428 43 54 102 18 11.41748 2 +3429 43 55 102 20 14.45801 2 +3430 43 56 106 15 6.37394 2 +3431 43 57 106 13 10.38602 2 +3432 43 58 106 11 12.68029 2 +3433 43 59 106 18 14.12179 2 +3434 43 60 106 20 15.63741 2 +3435 43 61 110 17 6.74343 2 +3436 43 62 110 15 12.37328 2 +3437 43 63 110 16 6.71506 2 +3438 43 64 110 18 15.39685 2 +3439 43 65 110 20 16.3633 2 +3440 43 66 114 19 8.79577 2 +3441 43 67 114 17 13.10639 2 +3442 43 68 114 15 21.80885 2 +3443 43 69 114 16 16.90965 2 +3444 43 70 114 18 18.10713 2 +3445 43 71 114 20 25.56695 2 +3446 43 72 118 19 17.82868 2 +3447 43 73 118 17 20.8666 2 +3448 43 74 118 14 19.56572 2 +3449 43 75 118 16 27.37584 2 +3450 43 76 118 18 28.23259 2 +3451 43 77 122 19 24.25849 2 +3452 43 78 122 17 24.47596 2 +3453 43 79 122 15 30.91142 2 +3454 43 80 122 16 33.33763 2 +3455 43 81 122 18 33.84305 2 +3456 43 82 126 17 40.20319 2 +3457 43 83 126 15 28.54743 2 +3458 43 84 126 16 32.32667 2 +3459 43 85 126 18 31.78774 2 +3460 43 86 126 20 42.70805 2 +3461 43 87 130 19 31.96423 2 +3462 43 88 130 17 34.03376 2 +3463 43 89 130 15 46.25939 2 +3464 43 90 130 18 37.38115 2 +3465 43 91 130 20 45.58708 2 +3466 44 0 62 25 41.21159 2 +3467 44 1 62 23 45.17063 2 +3468 44 2 62 21 37.74264 2 +3469 44 3 62 22 43.13706 2 +3470 44 4 62 24 31.67383 2 +3471 44 5 66 23 40.21832 2 +3472 44 6 66 21 33.75882 2 +3473 44 7 66 20 40.2753 2 +3474 44 8 66 22 32.02869 2 +3475 44 9 66 24 27.26692 2 +3476 44 10 70 23 40.83909 2 +3477 44 11 70 21 31.74553 2 +3478 44 12 70 19 27.91957 2 +3479 44 13 70 22 33.12486 2 +3480 44 14 70 24 20.22367 2 +3481 44 15 74 23 30.05427 2 +3482 44 16 74 21 23.42941 2 +3483 44 17 74 19 45.2151 2 +3484 44 18 74 22 24.35024 2 +3485 44 19 74 24 18.59686 2 +3486 44 20 78 25 28.1981 2 +3487 44 21 78 23 19.12979 2 +3488 44 22 78 21 17.80936 2 +3489 44 23 78 22 24.15456 2 +3490 44 24 78 24 12.97259 2 +3491 44 25 82 25 25.14077 2 +3492 44 26 82 23 20.82959 2 +3493 44 27 82 21 12.21251 2 +3494 44 28 82 20 14.48819 2 +3495 44 29 82 22 14.46996 2 +3496 44 30 82 24 6.56812 2 +3497 44 31 86 23 15.69581 2 +3498 44 32 86 21 19.78145 2 +3499 44 33 86 18 16.9172 2 +3500 44 34 86 20 15.22466 2 +3501 44 35 86 22 8.91116 2 +3502 44 36 90 23 15.67349 2 +3503 44 37 90 21 14.56526 2 +3504 44 38 90 20 20.36527 2 +3505 44 39 90 22 11.05229 2 +3506 44 40 90 24 7.62301 2 +3507 44 41 94 23 8.53214 2 +3508 44 42 94 21 9.22965 2 +3509 44 43 94 22 11.95511 2 +3510 44 44 94 24 8.63182 2 +3511 44 45 94 26 8.39934 2 +3512 44 46 98 25 8.4708 2 +3513 44 47 98 23 7.92792 2 +3514 44 48 98 21 9.30311 2 +3515 44 49 98 22 9.55643 2 +3516 44 50 98 24 8.53214 2 +3517 44 51 102 23 6.40429 2 +3518 44 52 102 21 8.99193 2 +3519 44 53 102 19 24.76427 2 +3520 44 54 102 22 12.70592 2 +3521 44 55 102 24 12.88976 2 +3522 44 56 106 21 10.03446 2 +3523 44 57 106 19 17.66431 2 +3524 44 58 106 17 16.47278 2 +3525 44 59 106 22 16.09376 2 +3526 44 60 106 24 14.98596 2 +3527 44 61 110 23 7.44142 2 +3528 44 62 110 21 14.89576 2 +3529 44 63 110 19 14.57406 2 +3530 44 64 110 22 12.44079 2 +3531 44 65 110 24 20.11518 2 +3532 44 66 110 26 24.12401 2 +3533 44 67 114 23 13.15185 2 +3534 44 68 114 21 26.66566 2 +3535 44 69 114 22 17.78158 2 +3536 44 70 114 24 19.26657 2 +3537 44 71 114 26 28.91348 2 +3538 44 72 118 23 16.24109 2 +3539 44 73 118 21 24.99648 2 +3540 44 74 118 20 25.60115 2 +3541 44 75 118 22 27.58766 2 +3542 44 76 118 24 29.69662 2 +3543 44 77 122 23 19.53904 2 +3544 44 78 122 21 24.94886 2 +3545 44 79 122 20 30.56217 2 +3546 44 80 122 22 28.20491 2 +3547 44 81 122 24 33.90357 2 +3548 44 82 126 23 27.06093 2 +3549 44 83 126 21 30.9194 2 +3550 44 84 126 19 38.95593 2 +3551 44 85 126 22 36.39739 2 +3552 44 86 126 24 41.05562 2 +3553 44 87 130 23 30.33557 2 +3554 44 88 130 21 42.7457 2 +3555 44 89 130 22 37.84833 2 +3556 44 90 130 24 38.62262 2 +3557 44 91 130 26 44.87798 2 +3558 45 0 62 29 47.43848 2 +3559 45 1 62 27 52.25459 2 +3560 45 2 62 26 69.69524 2 +3561 45 3 62 28 41.02112 2 +3562 45 4 62 30 39.12638 2 +3563 45 5 66 29 46.90478 2 +3564 45 6 66 27 44.00684 2 +3565 45 7 66 25 42.65606 2 +3566 45 8 66 26 40.3136 2 +3567 45 9 66 28 37.76402 2 +3568 45 10 66 30 31.33729 2 +3569 45 11 70 29 39.90559 2 +3570 45 12 70 27 36.17776 2 +3571 45 13 70 25 29.38228 2 +3572 45 14 70 26 38.59369 2 +3573 45 15 70 28 28.83241 2 +3574 45 16 74 29 30.74469 2 +3575 45 17 74 27 31.62607 2 +3576 45 18 74 25 24.90139 2 +3577 45 19 74 26 32.25554 2 +3578 45 20 74 28 45.62128 2 +3579 45 21 78 29 32.15259 2 +3580 45 22 78 27 34.7322 2 +3581 45 23 78 26 29.50243 2 +3582 45 24 78 28 25.23597 2 +3583 45 25 78 30 17.36473 2 +3584 45 26 82 29 32.04554 2 +3585 45 27 82 27 17.86991 2 +3586 45 28 82 26 24.30767 2 +3587 45 29 82 28 17.80432 2 +3588 45 30 82 30 37.06288 2 +3589 45 31 86 29 27.82248 2 +3590 45 32 86 27 20.14681 2 +3591 45 33 86 25 16.58767 2 +3592 45 34 86 24 22.97621 2 +3593 45 35 86 26 17.16798 2 +3594 45 36 86 28 12.25726 2 +3595 45 37 90 29 17.90521 2 +3596 45 38 90 27 21.042 2 +3597 45 39 90 25 15.75847 2 +3598 45 40 90 26 18.50249 2 +3599 45 41 90 28 21.94569 2 +3600 45 42 94 29 12.36382 2 +3601 45 43 94 27 12.98186 2 +3602 45 44 94 25 16.15528 2 +3603 45 45 94 28 13.31943 2 +3604 45 46 94 30 13.26611 2 +3605 45 47 98 29 13.26611 2 +3606 45 48 98 27 13.31743 2 +3607 45 49 98 26 15.12698 2 +3608 45 50 98 28 20.84888 2 +3609 45 51 98 30 12.36382 2 +3610 45 52 102 27 15.17183 2 +3611 45 53 102 25 15.06135 2 +3612 45 54 102 26 14.6719 2 +3613 45 55 102 28 13.87238 2 +3614 45 56 102 30 16.74783 2 +3615 45 57 106 27 12.20195 2 +3616 45 58 106 25 24.69311 2 +3617 45 59 106 23 24.79536 2 +3618 45 60 106 26 20.18923 2 +3619 45 61 106 28 15.97714 2 +3620 45 62 106 30 35.02677 2 +3621 45 63 110 29 15.10523 2 +3622 45 64 110 27 17.24086 2 +3623 45 65 110 25 24.8212 2 +3624 45 66 110 28 20.78475 2 +3625 45 67 110 30 29.28823 2 +3626 45 68 114 29 15.26868 2 +3627 45 69 114 27 26.12553 2 +3628 45 70 114 25 34.75366 2 +3629 45 71 114 28 35.14399 2 +3630 45 72 114 30 24.52448 2 +3631 45 73 118 27 19.22319 2 +3632 45 74 118 25 31.19401 2 +3633 45 75 118 26 24.63892 2 +3634 45 76 118 28 27.62027 2 +3635 45 77 118 30 27.86606 2 +3636 45 78 122 27 27.59524 2 +3637 45 79 122 25 31.3449 2 +3638 45 80 122 26 26.79183 2 +3639 45 81 122 28 34.07789 2 +3640 45 82 122 30 32.31766 2 +3641 45 83 126 29 31.34839 2 +3642 45 84 126 27 42.72695 2 +3643 45 85 126 25 44.28129 2 +3644 45 86 126 26 42.63243 2 +3645 45 87 126 28 47.06039 2 +3646 45 88 126 30 41.25713 2 +3647 45 89 130 29 39.6589 2 +3648 45 90 130 27 45.12072 2 +3649 45 91 130 25 64.71794 2 +3650 45 92 130 28 48.56201 2 +3651 45 93 130 30 46.7598 2 +3652 46 0 62 35 52.07746 2 +3653 46 1 62 33 55.17917 2 +3654 46 2 62 31 47.70294 2 +3655 46 3 62 32 56.443 2 +3656 46 4 62 34 42.38675 2 +3657 46 5 66 33 49.90234 2 +3658 46 6 66 31 51.9933 2 +3659 46 7 66 32 51.7984 2 +3660 46 8 66 34 47.36625 2 +3661 46 9 66 36 36.11611 2 +3662 46 10 70 35 46.25766 2 +3663 46 11 70 33 46.08307 2 +3664 46 12 70 31 42.63121 2 +3665 46 13 70 30 47.44298 2 +3666 46 14 70 32 38.29302 2 +3667 46 15 70 34 35.22162 2 +3668 46 16 74 33 36.5164 2 +3669 46 17 74 31 35.18498 2 +3670 46 18 74 30 40.6752 2 +3671 46 19 74 32 33.51265 2 +3672 46 20 74 34 25.52111 2 +3673 46 21 78 35 31.1145 2 +3674 46 22 78 33 29.6746 2 +3675 46 23 78 31 41.85569 2 +3676 46 24 78 32 40.3264 2 +3677 46 25 78 34 24.31542 2 +3678 46 26 82 35 26.69198 2 +3679 46 27 82 33 27.78354 2 +3680 46 28 82 31 20.20038 2 +3681 46 29 82 32 31.77594 2 +3682 46 30 82 34 19.58506 2 +3683 46 31 86 35 22.25494 2 +3684 46 32 86 33 27.73219 2 +3685 46 33 86 31 20.79811 2 +3686 46 34 86 30 22.92251 2 +3687 46 35 86 32 19.15714 2 +3688 46 36 86 34 16.96801 2 +3689 46 37 90 33 19.22678 2 +3690 46 38 90 31 20.03638 2 +3691 46 39 90 30 53.40812 2 +3692 46 40 90 32 17.91038 2 +3693 46 41 90 34 15.47895 2 +3694 46 42 94 33 18.72139 2 +3695 46 43 94 31 19.20089 2 +3696 46 44 94 32 17.931 2 +3697 46 45 94 34 16.2776 2 +3698 46 46 94 36 20.94789 2 +3699 46 47 98 35 20.60777 2 +3700 46 48 98 33 16.2776 2 +3701 46 49 98 31 17.931 2 +3702 46 50 98 32 19.94405 2 +3703 46 51 98 34 18.38365 2 +3704 46 52 102 33 16.32785 2 +3705 46 53 102 31 17.411 2 +3706 46 54 102 29 27.2509 2 +3707 46 55 102 32 21.08792 2 +3708 46 56 102 34 19.22575 2 +3709 46 57 106 33 16.03177 2 +3710 46 58 106 31 19.31124 2 +3711 46 59 106 29 23.22844 2 +3712 46 60 106 32 19.76847 2 +3713 46 61 106 34 26.73156 2 +3714 46 62 106 36 24.72603 2 +3715 46 63 110 33 17.39558 2 +3716 46 64 110 31 30.00016 2 +3717 46 65 110 32 20.02324 2 +3718 46 66 110 34 31.40751 2 +3719 46 67 110 36 27.02715 2 +3720 46 68 114 33 20.20861 2 +3721 46 69 114 31 32.00615 2 +3722 46 70 114 32 20.28369 2 +3723 46 71 114 34 44.45981 2 +3724 46 72 114 36 31.01925 2 +3725 46 73 118 33 21.82214 2 +3726 46 74 118 31 30.66415 2 +3727 46 75 118 29 41.61773 2 +3728 46 76 118 32 40.49221 2 +3729 46 77 118 34 31.83233 2 +3730 46 78 122 33 31.98051 2 +3731 46 79 122 31 36.46849 2 +3732 46 80 122 29 42.65763 2 +3733 46 81 122 32 42.02873 2 +3734 46 82 122 34 38.51673 2 +3735 46 83 122 36 43.73003 2 +3736 46 84 126 35 37.51943 2 +3737 46 85 126 33 47.19886 2 +3738 46 86 126 31 49.73577 2 +3739 46 87 126 32 50.96043 2 +3740 46 88 126 34 53.09439 2 +3741 46 89 130 33 44.6435 2 +3742 46 90 130 31 43.48664 2 +3743 46 91 130 32 45.84849 2 +3744 46 92 130 34 49.77982 2 +3745 46 93 130 36 54.5515 2 +3746 47 0 62 39 58.07148 2 +3747 47 1 62 37 55.17664 2 +3748 47 2 62 36 57.49609 2 +3749 47 3 62 38 52.62594 2 +3750 47 4 62 40 44.52247 2 +3751 47 5 66 39 57.15695 2 +3752 47 6 66 37 52.70437 2 +3753 47 7 66 35 59.81066 2 +3754 47 8 66 38 52.87443 2 +3755 47 9 66 40 42.17667 2 +3756 47 10 70 39 54.46432 2 +3757 47 11 70 37 49.79709 2 +3758 47 12 70 36 49.25109 2 +3759 47 13 70 38 45.55832 2 +3760 47 14 70 40 38.61825 2 +3761 47 15 74 39 45.49018 2 +3762 47 16 74 37 38.14593 2 +3763 47 17 74 35 39.31223 2 +3764 47 18 74 36 45.54524 2 +3765 47 19 74 38 34.95454 2 +3766 47 20 74 40 58.83767 2 +3767 47 21 78 39 33.75334 2 +3768 47 22 78 37 32.99618 2 +3769 47 23 78 36 35.28367 2 +3770 47 24 78 38 35.7989 2 +3771 47 25 78 40 31.69522 2 +3772 47 26 82 39 34.36043 2 +3773 47 27 82 37 33.12495 2 +3774 47 28 82 36 35.55578 2 +3775 47 29 82 38 28.99471 2 +3776 47 30 82 40 20.64993 2 +3777 47 31 86 39 24.7485 2 +3778 47 32 86 37 24.67265 2 +3779 47 33 86 36 35.77466 2 +3780 47 34 86 38 24.69082 2 +3781 47 35 86 40 21.76475 2 +3782 47 36 90 39 28.22649 2 +3783 47 37 90 37 24.08957 2 +3784 47 38 90 35 27.03935 2 +3785 47 39 90 36 25.83065 2 +3786 47 40 90 38 21.7755 2 +3787 47 41 90 40 20.86603 2 +3788 47 42 94 39 22.08675 2 +3789 47 43 94 37 27.86224 2 +3790 47 44 94 35 24.6647 2 +3791 47 45 94 38 19.9015 2 +3792 47 46 94 40 22.41031 2 +3793 47 47 98 39 22.69431 2 +3794 47 48 98 37 19.9015 2 +3795 47 49 98 36 26.68255 2 +3796 47 50 98 38 27.86224 2 +3797 47 51 98 40 22.08675 2 +3798 47 52 102 39 20.06737 2 +3799 47 53 102 37 21.11112 2 +3800 47 54 102 35 24.98685 2 +3801 47 55 102 36 24.51351 2 +3802 47 56 102 38 24.08854 2 +3803 47 57 102 40 31.12378 2 +3804 47 58 106 39 21.76569 2 +3805 47 59 106 37 25.29492 2 +3806 47 60 106 35 34.95737 2 +3807 47 61 106 38 25.35122 2 +3808 47 62 106 40 25.00153 2 +3809 47 63 110 39 20.84226 2 +3810 47 64 110 37 28.9957 2 +3811 47 65 110 35 35.55671 2 +3812 47 66 110 38 33.22056 2 +3813 47 67 110 40 33.46035 2 +3814 47 68 114 39 22.92986 2 +3815 47 69 114 37 32.11493 2 +3816 47 70 114 35 42.65918 2 +3817 47 71 114 38 32.33299 2 +3818 47 72 114 40 34.4077 2 +3819 47 73 118 39 31.58575 2 +3820 47 74 118 37 36.11505 2 +3821 47 75 118 35 41.56976 2 +3822 47 76 118 36 39.54488 2 +3823 47 77 118 38 36.37469 2 +3824 47 78 118 40 44.94457 2 +3825 47 79 122 39 38.27045 2 +3826 47 80 122 37 47.10958 2 +3827 47 81 122 35 51.71352 2 +3828 47 82 122 38 49.90763 2 +3829 47 83 122 40 54.00289 2 +3830 47 84 126 39 42.23776 2 +3831 47 85 126 37 47.53006 2 +3832 47 86 126 36 50.27848 2 +3833 47 87 126 38 48.01632 2 +3834 47 88 126 40 55.53047 2 +3835 47 89 130 39 46.80753 2 +3836 47 90 130 37 51.39008 2 +3837 47 91 130 35 54.26202 2 +3838 47 92 130 38 71.18866 2 +3839 47 93 130 40 59.90401 2 +3840 48 0 63 3 42.31033 2 +3841 48 1 63 1 38.09902 2 +3842 48 2 63 2 44.35576 2 +3843 48 3 63 4 32.50823 2 +3844 48 4 63 6 32.73568 2 +3845 48 5 67 3 38.30607 2 +3846 48 6 67 1 33.11941 2 +3847 48 7 67 2 39.52915 2 +3848 48 8 67 4 28.79539 2 +3849 48 9 67 6 27.98701 2 +3850 48 10 71 5 34.82067 2 +3851 48 11 71 3 33.24365 2 +3852 48 12 71 1 21.3255 2 +3853 48 13 71 2 30.61477 2 +3854 48 14 71 4 19.43021 2 +3855 48 15 75 5 26.7023 2 +3856 48 16 75 3 25.48068 2 +3857 48 17 75 1 19.26385 2 +3858 48 18 75 2 19.43892 2 +3859 48 19 75 4 18.66871 2 +3860 48 20 75 6 12.61972 2 +3861 48 21 79 3 20.84896 2 +3862 48 22 79 1 18.38326 2 +3863 48 23 79 2 15.28921 2 +3864 48 24 79 4 15.74743 2 +3865 48 25 79 6 8.8378 2 +3866 48 26 83 5 16.22321 2 +3867 48 27 83 3 13.64008 2 +3868 48 28 83 1 9.93172 2 +3869 48 29 83 2 9.86649 2 +3870 48 30 83 4 8.72644 2 +3871 48 31 87 5 13.77677 2 +3872 48 32 87 3 14.14899 2 +3873 48 33 87 1 6.1783 2 +3874 48 34 87 2 12.25555 2 +3875 48 35 87 4 7.02861 2 +3876 48 36 91 3 14.62085 2 +3877 48 37 91 1 6.19963 2 +3878 48 38 91 2 9.07733 2 +3879 48 39 91 4 8.28759 2 +3880 48 40 91 6 12.36928 2 +3881 48 41 95 3 13.2264 2 +3882 48 42 95 1 9.03125 2 +3883 48 43 95 2 13.32394 2 +3884 48 44 95 4 7.84516 2 +3885 48 45 95 6 8.91713 2 +3886 48 46 99 5 9.51558 2 +3887 48 47 99 3 7.84516 2 +3888 48 48 99 1 13.32394 2 +3889 48 49 99 2 9.03125 2 +3890 48 50 99 4 13.2264 2 +3891 48 51 103 5 12.36831 2 +3892 48 52 103 3 7.75989 2 +3893 48 53 103 1 9.07636 2 +3894 48 54 103 2 6.1986 2 +3895 48 55 103 4 14.47303 2 +3896 48 56 107 3 7.02761 2 +3897 48 57 107 1 12.2565 2 +3898 48 58 107 2 5.36967 2 +3899 48 59 107 4 14.15004 2 +3900 48 60 107 6 13.77572 2 +3901 48 61 111 3 8.12906 2 +3902 48 62 111 1 9.86556 2 +3903 48 63 111 2 9.93279 2 +3904 48 64 111 4 13.63909 2 +3905 48 65 111 6 16.22214 2 +3906 48 66 115 5 8.83689 2 +3907 48 67 115 3 15.82274 2 +3908 48 68 115 1 16.84261 2 +3909 48 69 115 2 17.09096 2 +3910 48 70 115 4 20.87654 2 +3911 48 71 119 5 12.61885 2 +3912 48 72 119 3 18.9674 2 +3913 48 73 119 1 21.00789 2 +3914 48 74 119 2 16.65074 2 +3915 48 75 119 4 25.06515 2 +3916 48 76 119 6 26.478 2 +3917 48 77 123 3 19.2214 2 +3918 48 78 123 1 27.78379 2 +3919 48 79 123 2 21.35605 2 +3920 48 80 123 4 33.11616 2 +3921 48 81 123 6 30.83739 2 +3922 48 82 127 5 28.35982 2 +3923 48 83 127 3 27.73466 2 +3924 48 84 127 1 39.04871 2 +3925 48 85 127 2 30.73672 2 +3926 48 86 127 4 42.88816 2 +3927 48 87 131 5 32.79514 2 +3928 48 88 131 3 32.35383 2 +3929 48 89 131 1 44.11568 2 +3930 48 90 131 2 42.63714 2 +3931 48 91 131 4 42.57879 2 +3932 49 0 63 9 43.13746 2 +3933 49 1 63 7 39.82656 2 +3934 49 2 63 5 30.67368 2 +3935 49 3 63 8 35.68805 2 +3936 49 4 63 10 33.3785 2 +3937 49 5 67 9 34.26903 2 +3938 49 6 67 7 35.89992 2 +3939 49 7 67 5 31.02122 2 +3940 49 8 67 8 28.80172 2 +3941 49 9 67 10 25.29696 2 +3942 49 10 71 9 35.69995 2 +3943 49 11 71 7 25.28837 2 +3944 49 12 71 6 26.55244 2 +3945 49 13 71 8 27.07463 2 +3946 49 14 71 10 19.51887 2 +3947 49 15 75 9 30.80052 2 +3948 49 16 75 7 25.01172 2 +3949 49 17 75 8 21.87881 2 +3950 49 18 75 10 18.74161 2 +3951 49 19 75 12 15.81843 2 +3952 49 20 79 9 21.97514 2 +3953 49 21 79 7 17.42642 2 +3954 49 22 79 5 25.22023 2 +3955 49 23 79 8 18.95387 2 +3956 49 24 79 10 11.68138 2 +3957 49 25 83 11 25.16452 2 +3958 49 26 83 9 17.06536 2 +3959 49 27 83 7 13.32016 2 +3960 49 28 83 6 13.61832 2 +3961 49 29 83 8 13.58726 2 +3962 49 30 83 10 7.34849 2 +3963 49 31 87 9 15.98678 2 +3964 49 32 87 7 9.80785 2 +3965 49 33 87 6 11.45457 2 +3966 49 34 87 8 7.80208 2 +3967 49 35 87 10 4.1501 2 +3968 49 36 91 9 11.47045 2 +3969 49 37 91 7 11.29668 2 +3970 49 38 91 5 4.4648 2 +3971 49 39 91 8 7.41027 2 +3972 49 40 91 10 5.03015 2 +3973 49 41 95 9 7.15864 2 +3974 49 42 95 7 8.01935 2 +3975 49 43 95 5 8.56135 2 +3976 49 44 95 8 5.93084 2 +3977 49 45 95 10 5.12155 2 +3978 49 46 99 9 5.12155 2 +3979 49 47 99 7 5.93084 2 +3980 49 48 99 6 8.56135 2 +3981 49 49 99 8 8.01935 2 +3982 49 50 99 10 7.15864 2 +3983 49 51 103 9 5.03119 2 +3984 49 52 103 7 7.41123 2 +3985 49 53 103 6 4.40253 2 +3986 49 54 103 8 10.48353 2 +3987 49 55 103 10 9.66915 2 +3988 49 56 107 9 4.1491 2 +3989 49 57 107 7 7.81007 2 +3990 49 58 107 5 11.45362 2 +3991 49 59 107 8 9.80691 2 +3992 49 60 107 10 16.1758 2 +3993 49 61 111 9 7.32352 2 +3994 49 62 111 7 14.10799 2 +3995 49 63 111 5 12.56306 2 +3996 49 64 111 8 13.46541 2 +3997 49 65 111 10 16.50124 2 +3998 49 66 111 12 23.37177 2 +3999 49 67 115 9 11.63542 2 +4000 49 68 115 7 18.7603 2 +4001 49 69 115 6 16.67547 2 +4002 49 70 115 8 20.29439 2 +4003 49 71 115 10 22.15441 2 +4004 49 72 119 11 17.34995 2 +4005 49 73 119 9 17.66401 2 +4006 49 74 119 7 24.22682 2 +4007 49 75 119 8 21.29926 2 +4008 49 76 119 10 30.86815 2 +4009 49 77 123 9 18.55765 2 +4010 49 78 123 7 27.56047 2 +4011 49 79 123 5 33.35438 2 +4012 49 80 123 8 27.58364 2 +4013 49 81 123 10 35.12166 2 +4014 49 82 127 9 39.41373 2 +4015 49 83 127 7 27.84421 2 +4016 49 84 127 6 27.35408 2 +4017 49 85 127 8 34.57012 2 +4018 49 86 127 10 36.14572 2 +4019 49 87 131 9 31.57112 2 +4020 49 88 131 7 32.47319 2 +4021 49 89 131 6 30.4531 2 +4022 49 90 131 8 42.94566 2 +4023 49 91 131 10 43.63771 2 +4024 50 0 63 13 46.22338 2 +4025 50 1 63 11 42.24238 2 +4026 50 2 63 12 40.1286 2 +4027 50 3 63 14 35.87666 2 +4028 50 4 63 16 43.86148 2 +4029 50 5 67 13 39.36242 2 +4030 50 6 67 11 35.23799 2 +4031 50 7 67 12 38.56743 2 +4032 50 8 67 14 33.67428 2 +4033 50 9 67 16 24.06869 2 +4034 50 10 71 15 35.84318 2 +4035 50 11 71 13 32.06511 2 +4036 50 12 71 11 26.68207 2 +4037 50 13 71 12 24.24026 2 +4038 50 14 71 14 21.20704 2 +4039 50 15 75 15 26.51892 2 +4040 50 16 75 13 22.75652 2 +4041 50 17 75 11 21.0611 2 +4042 50 18 75 14 30.95106 2 +4043 50 19 75 16 14.07108 2 +4044 50 20 79 13 30.07106 2 +4045 50 21 79 11 24.97628 2 +4046 50 22 79 12 32.28011 2 +4047 50 23 79 14 19.52729 2 +4048 50 24 79 16 15.98056 2 +4049 50 25 83 17 25.16071 2 +4050 50 26 83 15 18.98451 2 +4051 50 27 83 13 15.38084 2 +4052 50 28 83 12 17.2937 2 +4053 50 29 83 14 11.0552 2 +4054 50 30 83 16 10.17681 2 +4055 50 31 87 13 19.17284 2 +4056 50 32 87 11 11.5158 2 +4057 50 33 87 12 13.17959 2 +4058 50 34 87 14 9.69851 2 +4059 50 35 87 16 5.87206 2 +4060 50 36 91 13 15.56387 2 +4061 50 37 91 11 10.79381 2 +4062 50 38 91 12 12.25356 2 +4063 50 39 91 14 8.84927 2 +4064 50 40 91 16 13.45918 2 +4065 50 41 95 13 8.91383 2 +4066 50 42 95 11 10.51745 2 +4067 50 43 95 12 11.88321 2 +4068 50 44 95 14 8.58357 2 +4069 50 45 95 16 6.88535 2 +4070 50 46 99 15 6.88535 2 +4071 50 47 99 13 8.58357 2 +4072 50 48 99 11 11.88321 2 +4073 50 49 99 12 10.51745 2 +4074 50 50 99 14 8.91383 2 +4075 50 51 103 15 13.45829 2 +4076 50 52 103 13 8.67534 2 +4077 50 53 103 11 11.37966 2 +4078 50 54 103 12 21.16013 2 +4079 50 55 103 14 15.22691 2 +4080 50 56 107 15 6.39593 2 +4081 50 57 107 13 11.14193 2 +4082 50 58 107 11 13.17854 2 +4083 50 59 107 12 11.51485 2 +4084 50 60 107 14 17.58516 2 +4085 50 61 111 15 9.30869 2 +4086 50 62 111 13 10.81363 2 +4087 50 63 111 11 18.34223 2 +4088 50 64 111 14 15.25407 2 +4089 50 65 111 16 15.35625 2 +4090 50 66 111 18 24.79545 2 +4091 50 67 115 15 12.69881 2 +4092 50 68 115 13 24.75563 2 +4093 50 69 115 11 28.80238 2 +4094 50 70 115 12 22.90575 2 +4095 50 71 115 14 28.10693 2 +4096 50 72 119 15 13.66253 2 +4097 50 73 119 13 24.93885 2 +4098 50 74 119 12 21.77199 2 +4099 50 75 119 14 23.5968 2 +4100 50 76 119 16 26.09275 2 +4101 50 77 123 13 27.27428 2 +4102 50 78 123 11 30.7475 2 +4103 50 79 123 12 27.24947 2 +4104 50 80 123 14 33.14175 2 +4105 50 81 123 16 34.89512 2 +4106 50 82 127 15 24.7793 2 +4107 50 83 127 13 38.08522 2 +4108 50 84 127 11 40.40771 2 +4109 50 85 127 12 38.78199 2 +4110 50 86 127 14 45.13932 2 +4111 50 87 131 15 27.30632 2 +4112 50 88 131 13 41.02737 2 +4113 50 89 131 11 44.71932 2 +4114 50 90 131 12 47.04325 2 +4115 50 91 131 14 40.56919 2 +4116 51 0 63 19 51.55087 2 +4117 51 1 63 17 50.68212 2 +4118 51 2 63 15 43.06685 2 +4119 51 3 63 18 48.33791 2 +4120 51 4 63 20 49.78683 2 +4121 51 5 67 19 45.28204 2 +4122 51 6 67 17 42.25382 2 +4123 51 7 67 15 39.90449 2 +4124 51 8 67 18 35.5193 2 +4125 51 9 67 20 40.7043 2 +4126 51 10 67 22 31.2644 2 +4127 51 11 71 19 41.80186 2 +4128 51 12 71 17 29.60162 2 +4129 51 13 71 16 38.96507 2 +4130 51 14 71 18 34.62784 2 +4131 51 15 71 20 24.43725 2 +4132 51 16 75 19 44.42059 2 +4133 51 17 75 17 30.64027 2 +4134 51 18 75 18 31.68766 2 +4135 51 19 75 20 25.15957 2 +4136 51 20 75 22 19.95852 2 +4137 51 21 79 19 32.23918 2 +4138 51 22 79 17 29.93564 2 +4139 51 23 79 15 19.15401 2 +4140 51 24 79 18 27.57485 2 +4141 51 25 79 20 22.61935 2 +4142 51 26 83 21 26.13336 2 +4143 51 27 83 19 21.91326 2 +4144 51 28 83 18 20.06547 2 +4145 51 29 83 20 14.93014 2 +4146 51 30 83 22 14.84806 2 +4147 51 31 87 19 31.37317 2 +4148 51 32 87 17 21.69045 2 +4149 51 33 87 15 16.18931 2 +4150 51 34 87 18 19.82258 2 +4151 51 35 87 20 24.0865 2 +4152 51 36 87 22 11.32719 2 +4153 51 37 91 19 22.35223 2 +4154 51 38 91 17 13.61366 2 +4155 51 39 91 15 15.39307 2 +4156 51 40 91 18 14.7836 2 +4157 51 41 91 20 13.09678 2 +4158 51 42 95 19 12.59702 2 +4159 51 43 95 17 14.40268 2 +4160 51 44 95 15 18.21838 2 +4161 51 45 95 18 13.1405 2 +4162 51 46 95 20 11.80501 2 +4163 51 47 99 19 11.80501 2 +4164 51 48 99 17 13.1405 2 +4165 51 49 99 16 23.55337 2 +4166 51 50 99 18 14.59657 2 +4167 51 51 99 20 12.59702 2 +4168 51 52 103 19 13.09775 2 +4169 51 53 103 17 18.72486 2 +4170 51 54 103 16 15.47715 2 +4171 51 55 103 18 14.82339 2 +4172 51 56 103 20 18.55922 2 +4173 51 57 107 21 16.45387 2 +4174 51 58 107 19 19.98082 2 +4175 51 59 107 17 22.76935 2 +4176 51 60 107 16 16.18826 2 +4177 51 61 107 18 21.76611 2 +4178 51 62 107 20 33.64721 2 +4179 51 63 111 21 16.92691 2 +4180 51 64 111 19 16.84378 2 +4181 51 65 111 17 21.9555 2 +4182 51 66 111 20 19.28624 2 +4183 51 67 111 22 27.02172 2 +4184 51 68 115 19 15.1436 2 +4185 51 69 115 17 26.04935 2 +4186 51 70 115 16 18.08757 2 +4187 51 71 115 18 26.08087 2 +4188 51 72 115 20 25.74275 2 +4189 51 73 119 21 19.52457 2 +4190 51 74 119 19 25.73733 2 +4191 51 75 119 17 36.45859 2 +4192 51 76 119 18 30.26289 2 +4193 51 77 119 20 35.19943 2 +4194 51 78 123 19 24.57051 2 +4195 51 79 123 17 33.22299 2 +4196 51 80 123 15 34.44944 2 +4197 51 81 123 18 33.10939 2 +4198 51 82 123 20 41.11733 2 +4199 51 83 127 21 27.89044 2 +4200 51 84 127 19 51.54617 2 +4201 51 85 127 17 46.8453 2 +4202 51 86 127 16 41.67255 2 +4203 51 87 127 18 44.12843 2 +4204 51 88 127 20 52.22014 2 +4205 51 89 131 19 36.65568 2 +4206 51 90 131 17 48.14429 2 +4207 51 91 131 16 49.94906 4 +4208 51 92 131 18 45.8742 2 +4209 51 93 131 20 57.37933 2 +4210 52 0 63 25 51.49371 2 +4211 52 1 63 23 50.8837 2 +4212 52 2 63 21 51.37785 2 +4213 52 3 63 22 57.32089 2 +4214 52 4 63 24 40.7886 2 +4215 52 5 67 25 46.62729 2 +4216 52 6 67 23 42.73452 2 +4217 52 7 67 21 42.3485 2 +4218 52 8 67 24 44.08889 2 +4219 52 9 67 26 36.22732 2 +4220 52 10 71 25 45.63419 2 +4221 52 11 71 23 51.42702 2 +4222 52 12 71 21 48.31019 2 +4223 52 13 71 22 36.558 2 +4224 52 14 71 24 33.12091 2 +4225 52 15 71 26 28.42714 2 +4226 52 16 75 25 35.34437 2 +4227 52 17 75 23 29.19458 2 +4228 52 18 75 21 25.29547 2 +4229 52 19 75 24 36.49949 2 +4230 52 20 75 26 24.54721 2 +4231 52 21 79 23 32.55347 2 +4232 52 22 79 21 30.61888 2 +4233 52 23 79 22 38.93717 2 +4234 52 24 79 24 22.7234 2 +4235 52 25 79 26 20.07817 2 +4236 52 26 83 27 26.75232 2 +4237 52 27 83 25 28.08391 2 +4238 52 28 83 23 21.9116 2 +4239 52 29 83 24 27.78892 2 +4240 52 30 83 26 18.33297 2 +4241 52 31 87 25 28.44153 2 +4242 52 32 87 23 31.38444 2 +4243 52 33 87 21 19.82966 2 +4244 52 34 87 24 23.50479 2 +4245 52 35 87 26 27.43936 2 +4246 52 36 87 28 16.73043 2 +4247 52 37 91 25 22.33136 2 +4248 52 38 91 23 16.763 2 +4249 52 39 91 21 22.38913 2 +4250 52 40 91 22 23.22911 2 +4251 52 41 91 24 16.95751 2 +4252 52 42 95 23 17.55026 2 +4253 52 43 95 21 19.15386 2 +4254 52 44 95 22 18.87652 2 +4255 52 45 95 24 20.99854 2 +4256 52 46 95 26 16.14065 2 +4257 52 47 99 25 16.66249 2 +4258 52 48 99 23 20.43285 2 +4259 52 49 99 21 19.18157 2 +4260 52 50 99 22 19.15386 2 +4261 52 51 99 24 17.57193 2 +4262 52 52 103 23 16.73803 2 +4263 52 53 103 21 23.66194 2 +4264 52 54 103 22 23.37998 2 +4265 52 55 103 24 16.76203 2 +4266 52 56 103 26 28.39701 2 +4267 52 57 107 27 15.28391 2 +4268 52 58 107 25 26.66295 2 +4269 52 59 107 23 24.75923 2 +4270 52 60 107 22 20.04198 2 +4271 52 61 107 24 34.1013 2 +4272 52 62 107 26 25.65442 2 +4273 52 63 111 25 17.24709 2 +4274 52 64 111 23 30.96791 2 +4275 52 65 111 24 19.79566 2 +4276 52 66 111 26 36.17835 2 +4277 52 67 111 28 27.196 2 +4278 52 68 115 25 19.13298 2 +4279 52 69 115 23 21.75758 2 +4280 52 70 115 21 37.04892 2 +4281 52 71 115 22 27.85736 2 +4282 52 72 115 24 39.81854 2 +4283 52 73 119 25 19.14864 2 +4284 52 74 119 23 35.21035 2 +4285 52 75 119 22 28.101 2 +4286 52 76 119 24 32.18993 2 +4287 52 77 119 26 34.10996 2 +4288 52 78 123 25 29.67108 2 +4289 52 79 123 23 38.01064 2 +4290 52 80 123 21 38.89503 2 +4291 52 81 123 22 42.13081 2 +4292 52 82 123 24 48.11435 2 +4293 52 83 123 26 53.2029 2 +4294 52 84 127 25 37.40545 2 +4295 52 85 127 23 54.04747 2 +4296 52 86 127 22 41.28613 2 +4297 52 87 127 24 49.98953 4 +4298 52 88 127 26 46.83885 2 +4299 52 89 131 23 45.96206 2 +4300 52 90 131 21 55.29511 2 +4301 52 91 131 22 51.72005 2 +4302 52 92 131 24 61.56645 2 +4303 52 93 131 26 54.0556 2 +4304 53 0 63 29 54.81928 2 +4305 53 1 63 27 60.10707 2 +4306 53 2 63 26 71.8426 2 +4307 53 3 63 28 51.87573 2 +4308 53 4 63 30 49.92787 2 +4309 53 5 67 29 52.71856 4 +4310 53 6 67 27 56.66237 2 +4311 53 7 67 28 53.17028 2 +4312 53 8 67 30 51.42546 2 +4313 53 9 67 32 41.56675 2 +4314 53 10 71 31 52.54649 2 +4315 53 11 71 29 52.89493 4 +4316 53 12 71 27 47.21357 2 +4317 53 13 71 28 48.77103 4 +4318 53 14 71 30 35.36639 2 +4319 53 15 75 31 44.28325 2 +4320 53 16 75 29 39.20321 2 +4321 53 17 75 27 28.01909 2 +4322 53 18 75 28 34.54619 2 +4323 53 19 75 30 33.39906 2 +4324 53 20 75 32 23.76722 2 +4325 53 21 79 29 35.24464 2 +4326 53 22 79 27 33.82658 2 +4327 53 23 79 25 28.16387 2 +4328 53 24 79 28 26.61459 2 +4329 53 25 79 30 27.23652 2 +4330 53 26 83 31 33.12806 2 +4331 53 27 83 29 33.33033 2 +4332 53 28 83 28 36.91245 2 +4333 53 29 83 30 27.80837 2 +4334 53 30 83 32 21.34494 2 +4335 53 31 87 31 29.0752 2 +4336 53 32 87 29 27.14359 2 +4337 53 33 87 27 25.06151 2 +4338 53 34 87 30 23.6647 2 +4339 53 35 87 32 23.48888 2 +4340 53 36 91 33 27.44933 2 +4341 53 37 91 31 27.03591 2 +4342 53 38 91 29 22.30044 2 +4343 53 39 91 27 25.18333 2 +4344 53 40 91 26 23.24798 2 +4345 53 41 91 28 22.56198 2 +4346 53 42 95 29 30.78074 2 +4347 53 43 95 27 41.0652 2 +4348 53 44 95 25 23.73814 2 +4349 53 45 95 28 25.66837 2 +4350 53 46 95 30 21.49003 2 +4351 53 47 99 29 22.78541 2 +4352 53 48 99 27 25.66837 2 +4353 53 49 99 26 24.09257 2 +4354 53 50 99 28 27.84183 2 +4355 53 51 99 30 21.38893 2 +4356 53 52 103 27 21.77378 2 +4357 53 53 103 25 24.01124 2 +4358 53 54 103 28 22.72863 2 +4359 53 55 103 30 22.28563 2 +4360 53 56 103 32 28.32311 2 +4361 53 57 103 34 27.84425 2 +4362 53 58 107 31 32.33754 2 +4363 53 59 107 29 28.19571 2 +4364 53 60 107 28 23.5701 2 +4365 53 61 107 30 32.59182 2 +4366 53 62 107 32 29.18348 2 +4367 53 63 111 31 20.80434 2 +4368 53 64 111 29 33.81835 2 +4369 53 65 111 27 41.0711 2 +4370 53 66 111 30 30.49025 2 +4371 53 67 111 32 29.5494 2 +4372 53 68 115 29 24.5498 2 +4373 53 69 115 27 27.20501 2 +4374 53 70 115 26 26.11975 2 +4375 53 71 115 28 33.72096 2 +4376 53 72 115 30 32.58159 2 +4377 53 73 119 31 21.99218 2 +4378 53 74 119 29 33.16442 2 +4379 53 75 119 27 41.07023 2 +4380 53 76 119 28 41.07557 4 +4381 53 77 119 30 40.14829 2 +4382 53 78 119 32 41.71452 2 +4383 53 79 123 29 38.28233 2 +4384 53 80 123 27 59.04748 2 +4385 53 81 123 28 44.40742 2 +4386 53 82 123 30 53.25513 2 +4387 53 83 123 32 53.10911 2 +4388 53 84 127 31 38.78099 2 +4389 53 85 127 29 50.2007 2 +4390 53 86 127 27 56.12012 2 +4391 53 87 127 28 54.75652 4 +4392 53 88 127 30 51.86052 2 +4393 53 89 131 29 45.71688 2 +4394 53 90 131 27 58.82172 2 +4395 53 91 131 25 63.76128 2 +4396 53 92 131 28 54.9386 2 +4397 53 93 131 30 58.15676 2 +4398 54 0 63 35 62.02827 2 +4399 54 1 63 33 69.05914 2 +4400 54 2 63 31 56.96699 2 +4401 54 3 63 32 62.848 2 +4402 54 4 63 34 56.60565 2 +4403 54 5 63 36 53.26334 2 +4404 54 6 67 35 71.55353 2 +4405 54 7 67 33 61.66528 2 +4406 54 8 67 31 54.51395 2 +4407 54 9 67 34 57.31245 2 +4408 54 10 67 36 46.35806 2 +4409 54 11 71 35 56.55113 2 +4410 54 12 71 33 45.08508 2 +4411 54 13 71 32 53.88114 2 +4412 54 14 71 34 50.01148 2 +4413 54 15 71 36 40.70606 4 +4414 54 16 75 39 43.3458 2 +4415 54 17 75 37 41.45121 2 +4416 54 18 75 35 32.44188 2 +4417 54 19 75 33 35.88171 2 +4418 54 20 75 34 45.4872 2 +4419 54 21 75 36 26.32137 2 +4420 54 22 79 33 38.96966 2 +4421 54 23 79 31 56.48158 2 +4422 54 24 79 32 36.29642 2 +4423 54 25 79 34 36.48312 2 +4424 54 26 79 36 33.14131 2 +4425 54 27 83 37 39.29718 2 +4426 54 28 83 35 32.24556 2 +4427 54 29 83 33 30.28084 2 +4428 54 30 83 34 31.50472 2 +4429 54 31 83 36 26.71856 2 +4430 54 32 87 35 31.08582 2 +4431 54 33 87 33 29.11893 2 +4432 54 34 87 34 39.78361 2 +4433 54 35 87 36 33.70481 2 +4434 54 36 87 38 24.31677 2 +4435 54 37 91 39 30.75045 2 +4436 54 38 91 37 27.16409 2 +4437 54 39 91 35 25.89851 2 +4438 54 40 91 30 28.32631 2 +4439 54 41 91 32 28.59153 2 +4440 54 42 91 34 24.28971 2 +4441 54 43 95 33 32.93259 2 +4442 54 44 95 31 25.97544 2 +4443 54 45 95 32 27.3437 2 +4444 54 46 95 34 23.70083 2 +4445 54 47 95 36 31.62288 2 +4446 54 48 99 35 25.39888 2 +4447 54 49 99 33 23.91852 2 +4448 54 50 99 31 27.20312 2 +4449 54 51 99 32 31.68491 2 +4450 54 52 99 34 25.23105 2 +4451 54 53 103 33 25.56535 2 +4452 54 54 103 31 28.05841 2 +4453 54 55 103 29 40.42977 2 +4454 54 56 103 36 24.59489 2 +4455 54 57 103 38 27.46458 2 +4456 54 58 103 40 33.94559 2 +4457 54 59 107 37 24.37603 2 +4458 54 60 107 35 27.41147 2 +4459 54 61 107 33 49.16896 2 +4460 54 62 107 34 29.88919 2 +4461 54 63 107 36 40.08903 2 +4462 54 64 111 35 25.05694 2 +4463 54 65 111 33 34.43187 2 +4464 54 66 111 34 29.35984 2 +4465 54 67 111 36 31.55635 2 +4466 54 68 111 38 37.02922 2 +4467 54 69 115 35 27.16559 2 +4468 54 70 115 33 36.74101 2 +4469 54 71 115 31 34.90658 2 +4470 54 72 115 32 38.35668 2 +4471 54 73 115 34 36.74707 2 +4472 54 74 119 35 26.61946 2 +4473 54 75 119 33 43.01969 4 +4474 54 76 119 34 34.9257 2 +4475 54 77 119 36 39.09748 2 +4476 54 78 119 38 41.04439 2 +4477 54 79 119 40 45.99564 2 +4478 54 80 123 35 42.11684 2 +4479 54 81 123 33 50.37516 2 +4480 54 82 123 31 61.20441 2 +4481 54 83 123 34 45.95984 2 +4482 54 84 123 36 62.86969 2 +4483 54 85 127 35 44.57576 2 +4484 54 86 127 33 51.39786 2 +4485 54 87 127 32 50.46522 2 +4486 54 88 127 34 53.03556 2 +4487 54 89 127 36 56.45684 2 +4488 54 90 131 35 48.71355 2 +4489 54 91 131 33 61.58785 2 +4490 54 92 131 31 66.16528 2 +4491 54 93 131 32 64.63274 2 +4492 54 94 131 34 74.02786 2 +4493 54 95 131 36 63.74653 2 +4494 55 0 63 39 67.61893 2 +4495 55 1 63 37 67.75615 2 +4496 55 2 63 38 74.22429 2 +4497 55 3 63 40 68.23335 2 +4498 55 4 64 2 28.45182 2 +4499 55 5 68 3 40.6093 2 +4500 55 6 68 1 43.09451 2 +4501 55 7 67 39 63.38592 2 +4502 55 8 67 37 51.43515 2 +4503 55 9 67 38 61.05189 2 +4504 55 10 67 40 51.60776 2 +4505 55 11 71 39 61.74413 4 +4506 55 12 71 37 54.35501 4 +4507 55 13 71 38 52.73682 2 +4508 55 14 71 40 49.82856 2 +4509 55 15 72 2 18.37386 2 +4510 55 16 76 3 23.40738 2 +4511 55 17 76 1 20.92098 2 +4512 55 18 76 2 23.08517 2 +4513 55 19 75 38 52.00866 2 +4514 55 20 75 40 45.6845 2 +4515 55 21 79 39 47.71144 4 +4516 55 22 79 37 46.20171 4 +4517 55 23 79 35 44.55021 2 +4518 55 24 79 38 38.35685 2 +4519 55 25 79 40 39.44087 2 +4520 55 26 80 2 7.43381 2 +4521 55 27 84 3 15.94567 2 +4522 55 28 84 1 15.27385 2 +4523 55 29 83 39 30.78872 2 +4524 55 30 83 38 36.47815 2 +4525 55 31 83 40 29.48929 2 +4526 55 32 87 39 35.68998 2 +4527 55 33 87 37 34.684 2 +4528 55 34 87 40 38.85105 2 +4529 55 35 88 2 11.95336 2 +4530 55 36 88 4 5.38682 2 +4531 55 37 92 5 20.14788 2 +4532 55 38 92 3 13.77548 2 +4533 55 39 92 1 4.07611 2 +4534 55 40 91 36 33.87576 2 +4535 55 41 91 38 30.92791 2 +4536 55 42 91 40 29.56123 2 +4537 55 43 95 39 30.52607 2 +4538 55 44 95 37 35.1515 2 +4539 55 45 95 35 33.09437 2 +4540 55 46 95 38 29.13192 2 +4541 55 47 95 40 30.35226 2 +4542 55 48 99 39 31.56947 2 +4543 55 49 99 37 29.55276 2 +4544 55 50 99 36 32.52462 2 +4545 55 51 99 38 30.18571 2 +4546 55 52 99 40 29.0203 2 +4547 55 53 103 39 29.64101 2 +4548 55 54 103 37 29.9404 2 +4549 55 55 103 35 33.78342 2 +4550 55 56 104 2 4.07507 2 +4551 55 57 104 4 13.77644 2 +4552 55 58 104 6 19.61086 2 +4553 55 59 108 3 5.8561 2 +4554 55 60 108 1 12.75848 2 +4555 55 61 107 39 48.83092 2 +4556 55 62 107 38 35.38052 2 +4557 55 63 107 40 34.8877 2 +4558 55 64 111 39 29.90991 2 +4559 55 65 111 37 39.39193 2 +4560 55 66 111 40 36.26476 2 +4561 55 67 112 2 15.46431 2 +4562 55 68 112 4 15.94061 2 +4563 55 69 116 1 10.60277 2 +4564 55 70 115 39 38.62872 2 +4565 55 71 115 37 35.61552 2 +4566 55 72 115 36 39.27631 2 +4567 55 73 115 38 47.49714 4 +4568 55 74 115 40 50.05866 4 +4569 55 75 119 39 45.4757 4 +4570 55 76 119 37 50.28184 2 +4571 55 77 120 1 20.48129 2 +4572 55 78 120 2 19.4464 2 +4573 55 79 120 4 26.80633 2 +4574 55 80 124 1 18.34469 2 +4575 55 81 123 39 53.34188 2 +4576 55 82 123 37 55.99718 4 +4577 55 83 123 38 58.01479 2 +4578 55 84 123 40 60.03595 4 +4579 55 85 127 39 49.40909 2 +4580 55 86 127 37 56.90967 2 +4581 55 87 127 38 51.9501 2 +4582 55 88 127 40 60.2056 2 +4583 55 89 128 2 33.4423 2 +4584 55 90 128 4 41.55983 2 +4585 55 91 132 1 27.39495 2 +4586 55 92 131 39 63.41791 2 +4587 55 93 131 37 70.48702 2 +4588 55 94 131 38 74.06524 2 +4589 55 95 131 40 71.39818 2 +4590 56 0 64 5 43.09043 2 +4591 56 1 64 3 39.69611 2 +4592 56 2 64 1 38.85636 2 +4593 56 3 64 4 39.03372 2 +4594 56 4 64 6 28.50327 2 +4595 56 5 68 7 43.36049 2 +4596 56 6 68 5 36.19536 2 +4597 56 7 68 2 44.39085 4 +4598 56 8 68 4 35.37422 2 +4599 56 9 68 6 26.83743 2 +4600 56 10 72 5 35.5041 2 +4601 56 11 72 3 31.46354 2 +4602 56 12 72 1 29.25087 2 +4603 56 13 72 4 27.95366 2 +4604 56 14 72 6 22.95634 2 +4605 56 15 72 8 15.27808 2 +4606 56 16 76 7 23.89848 2 +4607 56 17 76 5 23.30811 2 +4608 56 18 76 4 28.04266 2 +4609 56 19 76 6 18.24658 2 +4610 56 20 76 8 16.74507 2 +4611 56 21 80 5 33.92617 2 +4612 56 22 80 3 23.78584 2 +4613 56 23 80 1 18.03204 2 +4614 56 24 80 4 25.94567 2 +4615 56 25 80 6 14.98665 2 +4616 56 26 80 8 7.52962 2 +4617 56 27 84 7 15.96859 2 +4618 56 28 84 5 16.40918 2 +4619 56 29 84 2 19.11232 2 +4620 56 30 84 4 14.94103 2 +4621 56 31 84 6 10.60415 2 +4622 56 32 88 5 21.04234 2 +4623 56 33 88 3 11.16924 2 +4624 56 34 88 1 12.33981 2 +4625 56 35 88 6 14.46146 2 +4626 56 36 88 8 4.80821 2 +4627 56 37 92 11 16.42973 2 +4628 56 38 92 9 14.82705 2 +4629 56 39 92 7 5.15685 2 +4630 56 40 92 2 15.93845 2 +4631 56 41 92 4 7.38827 2 +4632 56 42 92 6 8.02935 2 +4633 56 43 96 5 8.36403 2 +4634 56 44 96 3 9.99636 2 +4635 56 45 96 1 12.52241 2 +4636 56 46 96 2 10.35843 2 +4637 56 47 96 4 8.42709 2 +4638 56 48 100 3 9.27154 2 +4639 56 49 100 1 10.35643 2 +4640 56 50 100 2 12.52041 2 +4641 56 51 100 4 9.99836 2 +4642 56 52 100 6 8.36203 2 +4643 56 53 104 5 8.03038 2 +4644 56 54 104 3 7.52469 2 +4645 56 55 104 1 15.78236 2 +4646 56 56 104 8 5.15582 2 +4647 56 57 104 10 14.82803 2 +4648 56 58 104 12 16.51799 2 +4649 56 59 108 7 4.31717 2 +4650 56 60 108 5 12.73734 2 +4651 56 61 108 2 12.24981 2 +4652 56 62 108 4 11.16819 2 +4653 56 63 108 6 21.8738 2 +4654 56 64 112 5 10.30586 2 +4655 56 65 112 3 11.1503 2 +4656 56 66 112 1 22.00813 2 +4657 56 67 112 6 15.83223 2 +4658 56 68 112 8 15.92468 2 +4659 56 69 116 7 7.99859 2 +4660 56 70 116 5 15.01368 2 +4661 56 71 116 3 19.49357 2 +4662 56 72 116 2 17.94928 2 +4663 56 73 116 4 23.03095 2 +4664 56 74 116 6 27.64197 2 +4665 56 75 120 7 16.38007 2 +4666 56 76 120 5 18.01943 2 +4667 56 77 120 3 28.14629 2 +4668 56 78 120 6 26.86766 2 +4669 56 79 120 8 24.85962 2 +4670 56 80 124 7 15.01756 2 +4671 56 81 124 5 23.96112 2 +4672 56 82 124 3 28.31202 2 +4673 56 83 124 2 36.13063 2 +4674 56 84 124 4 31.57948 2 +4675 56 85 124 6 36.8937 2 +4676 56 86 128 5 27.1374 2 +4677 56 87 128 3 35.24422 2 +4678 56 88 128 1 44.39281 2 +4679 56 89 128 6 32.7544 2 +4680 56 90 128 8 41.01961 2 +4681 56 91 132 5 29.09652 2 +4682 56 92 132 3 55.91426 2 +4683 56 93 132 2 38.42709 2 +4684 56 94 132 4 43.84761 2 +4685 56 95 132 6 44.20271 2 +4686 57 0 64 11 47.2266 2 +4687 57 1 64 9 47.60882 2 +4688 57 2 64 7 41.65879 2 +4689 57 3 64 8 47.50025 2 +4690 57 4 64 10 38.93724 2 +4691 57 5 64 12 35.57203 2 +4692 57 6 68 11 53.26055 4 +4693 57 7 68 9 36.94512 2 +4694 57 8 68 8 52.10865 2 +4695 57 9 68 10 35.80266 2 +4696 57 10 68 12 31.40724 2 +4697 57 11 72 11 36.17131 2 +4698 57 12 72 9 40.96629 2 +4699 57 13 72 7 32.92715 2 +4700 57 14 72 10 41.19387 2 +4701 57 15 72 12 28.76723 2 +4702 57 16 72 14 22.0009 2 +4703 57 17 76 13 24.82545 2 +4704 57 18 76 11 24.13835 2 +4705 57 19 76 9 23.06289 2 +4706 57 20 76 10 22.88441 2 +4707 57 21 76 12 19.57989 2 +4708 57 22 80 11 40.71347 2 +4709 57 23 80 9 27.5664 2 +4710 57 24 80 7 22.81146 2 +4711 57 25 80 10 28.87268 2 +4712 57 26 80 12 18.2401 2 +4713 57 27 84 13 23.78132 2 +4714 57 28 84 11 22.59704 2 +4715 57 29 84 9 23.24097 2 +4716 57 30 84 8 25.51054 2 +4717 57 31 84 10 23.9849 2 +4718 57 32 84 12 16.67265 2 +4719 57 33 88 11 19.3185 2 +4720 57 34 88 9 15.53363 2 +4721 57 35 88 7 17.86486 2 +4722 57 36 88 10 16.09131 2 +4723 57 37 88 12 10.8319 2 +4724 57 38 92 15 20.20572 2 +4725 57 39 92 13 11.71672 2 +4726 57 40 92 8 17.02311 2 +4727 57 41 92 10 17.2472 2 +4728 57 42 92 12 11.76391 2 +4729 57 43 92 14 17.31743 2 +4730 57 44 96 9 12.87022 2 +4731 57 45 96 7 15.23032 2 +4732 57 46 96 6 18.59743 2 +4733 57 47 96 8 14.38182 2 +4734 57 48 96 10 12.10968 2 +4735 57 49 100 9 23.12823 2 +4736 57 50 100 7 14.97243 2 +4737 57 51 100 5 16.84389 2 +4738 57 52 100 8 15.23232 2 +4739 57 53 100 10 12.86822 2 +4740 57 54 104 13 17.56162 2 +4741 57 55 104 11 9.37042 2 +4742 57 56 104 9 11.79954 2 +4743 57 57 104 7 17.33267 2 +4744 57 58 104 14 11.72076 2 +4745 57 59 104 16 19.44282 2 +4746 57 60 108 11 9.25131 2 +4747 57 61 108 9 17.97209 2 +4748 57 62 108 8 18.84125 2 +4749 57 63 108 10 14.72112 2 +4750 57 64 108 12 23.69116 2 +4751 57 65 112 11 14.71125 2 +4752 57 66 112 9 14.4232 2 +4753 57 67 112 7 24.32982 2 +4754 57 68 112 10 18.38171 2 +4755 57 69 112 12 22.48717 2 +4756 57 70 112 14 26.29001 2 +4757 57 71 116 11 18.84674 2 +4758 57 72 116 9 26.34784 2 +4759 57 73 116 8 19.56434 2 +4760 57 74 116 10 25.46233 2 +4761 57 75 116 12 28.78139 2 +4762 57 76 120 11 15.94896 2 +4763 57 77 120 9 24.00273 2 +4764 57 78 120 10 22.40398 2 +4765 57 79 120 12 24.53226 2 +4766 57 80 120 14 25.37323 2 +4767 57 81 124 13 19.8934 2 +4768 57 82 124 11 28.08731 2 +4769 57 83 124 9 36.06112 2 +4770 57 84 124 8 32.99352 2 +4771 57 85 124 10 40.39291 2 +4772 57 86 124 12 40.30252 2 +4773 57 87 128 11 32.8632 2 +4774 57 88 128 9 35.23536 2 +4775 57 89 128 7 59.22055 2 +4776 57 90 128 10 45.71918 2 +4777 57 91 128 12 44.26036 2 +4778 57 92 132 11 34.86105 2 +4779 57 93 132 9 37.96983 2 +4780 57 94 132 7 42.8066 2 +4781 57 95 132 8 44.98966 2 +4782 57 96 132 10 48.47327 2 +4783 57 97 132 12 47.5734 2 +4784 58 0 64 17 60.59767 2 +4785 58 1 64 15 51.08154 2 +4786 58 2 64 13 49.31131 2 +4787 58 3 64 14 57.65436 2 +4788 58 4 64 16 50.11935 2 +4789 58 5 64 18 38.15852 2 +4790 58 6 68 17 50.28817 2 +4791 58 7 68 15 44.43986 2 +4792 58 8 68 13 42.76073 2 +4793 58 9 68 14 47.72614 2 +4794 58 10 68 16 35.83236 2 +4795 58 11 72 15 44.69806 4 +4796 58 12 72 13 36.88078 2 +4797 58 13 72 16 44.9103 2 +4798 58 14 72 18 31.94735 2 +4799 58 15 72 20 30.44521 2 +4800 58 16 76 19 37.6815 2 +4801 58 17 76 17 31.84664 2 +4802 58 18 76 15 32.33923 2 +4803 58 19 76 14 39.48413 2 +4804 58 20 76 16 27.46253 2 +4805 58 21 76 18 21.86426 2 +4806 58 22 80 17 31.5031 2 +4807 58 23 80 15 39.51814 2 +4808 58 24 80 13 21.4372 2 +4809 58 25 80 14 22.13903 2 +4810 58 26 80 16 25.92008 2 +4811 58 27 84 19 24.95913 2 +4812 58 28 84 17 21.44093 2 +4813 58 29 84 15 32.19759 2 +4814 58 30 84 14 28.46448 2 +4815 58 31 84 16 22.36687 2 +4816 58 32 84 18 24.82048 2 +4817 58 33 88 15 24.60676 2 +4818 58 34 88 13 18.88767 2 +4819 58 35 88 14 29.42456 2 +4820 58 36 88 16 25.48923 2 +4821 58 37 88 18 16.9295 2 +4822 58 38 92 19 21.26336 2 +4823 58 39 92 17 16.36033 2 +4824 58 40 92 16 23.63624 2 +4825 58 41 92 18 21.23227 2 +4826 58 42 92 20 14.89242 2 +4827 58 43 96 15 27.137 2 +4828 58 44 96 13 17.7208 2 +4829 58 45 96 11 26.69368 2 +4830 58 46 96 12 17.27166 2 +4831 58 47 96 14 22.57337 2 +4832 58 48 96 16 17.21181 2 +4833 58 49 100 15 17.73919 2 +4834 58 50 100 13 21.05007 2 +4835 58 51 100 11 21.47447 2 +4836 58 52 100 12 26.18035 2 +4837 58 53 100 14 17.60949 2 +4838 58 54 100 16 39.00934 2 +4839 58 55 104 19 14.32254 2 +4840 58 56 104 17 17.90451 2 +4841 58 57 104 15 27.77732 2 +4842 58 58 104 18 16.37232 2 +4843 58 59 104 20 27.40183 2 +4844 58 60 108 17 16.84202 2 +4845 58 61 108 15 25.99147 2 +4846 58 62 108 13 28.28913 2 +4847 58 63 108 14 18.93716 2 +4848 58 64 108 16 24.81516 2 +4849 58 65 112 17 16.89398 2 +4850 58 66 112 15 23.99272 2 +4851 58 67 112 13 26.07409 2 +4852 58 68 112 16 21.98079 2 +4853 58 69 112 18 24.41725 2 +4854 58 70 112 20 25.10558 2 +4855 58 71 116 15 28.50317 2 +4856 58 72 116 13 22.7722 2 +4857 58 73 116 14 20.9134 2 +4858 58 74 116 16 27.93009 2 +4859 58 75 116 18 31.92312 2 +4860 58 76 120 17 21.59112 2 +4861 58 77 120 15 26.66842 2 +4862 58 78 120 13 32.28126 2 +4863 58 79 120 16 28.73292 2 +4864 58 80 120 18 28.06316 2 +4865 58 81 120 20 34.33984 2 +4866 58 82 124 19 32.47305 2 +4867 58 83 124 17 30.77135 2 +4868 58 84 124 15 44.27534 2 +4869 58 85 124 14 40.16403 2 +4870 58 86 124 16 43.95945 2 +4871 58 87 128 15 33.31869 2 +4872 58 88 128 13 48.48589 2 +4873 58 89 128 14 46.04373 2 +4874 58 90 128 16 43.0137 2 +4875 58 91 128 18 53.72175 2 +4876 58 92 132 17 50.22495 2 +4877 58 93 132 15 48.35163 2 +4878 58 94 132 13 54.41623 2 +4879 58 95 132 14 46.2838 2 +4880 58 96 132 16 48.30136 2 +4881 58 97 132 18 50.74827 2 +4882 59 0 64 23 56.64269 2 +4883 59 1 64 21 54.23359 2 +4884 59 2 64 19 48.01475 2 +4885 59 3 64 20 55.98092 2 +4886 59 4 64 22 46.7878 2 +4887 59 5 68 23 58.80829 2 +4888 59 6 68 21 51.92496 2 +4889 59 7 68 19 45.54511 2 +4890 59 8 68 18 49.91428 2 +4891 59 9 68 20 46.51372 2 +4892 59 10 68 22 40.06887 2 +4893 59 11 72 21 46.55738 2 +4894 59 12 72 19 40.61707 2 +4895 59 13 72 17 38.91175 2 +4896 59 14 72 22 41.11151 2 +4897 59 15 72 24 30.53928 2 +4898 59 16 76 25 51.93335 4 +4899 59 17 76 23 35.88243 2 +4900 59 18 76 21 31.02179 2 +4901 59 19 76 20 35.59026 2 +4902 59 20 76 22 58.45543 2 +4903 59 21 76 24 27.30146 2 +4904 59 22 80 21 34.27532 2 +4905 59 23 80 19 34.06391 2 +4906 59 24 80 18 36.75543 2 +4907 59 25 80 20 33.0296 2 +4908 59 26 80 22 22.99806 2 +4909 59 27 84 25 34.66875 2 +4910 59 28 84 23 23.41114 2 +4911 59 29 84 21 24.85492 2 +4912 59 30 84 20 28.12964 2 +4913 59 31 84 22 23.37098 2 +4914 59 32 84 24 23.02044 2 +4915 59 33 88 21 24.623 2 +4916 59 34 88 19 25.38367 2 +4917 59 35 88 17 25.7556 2 +4918 59 36 88 20 26.48368 2 +4919 59 37 88 22 20.27726 2 +4920 59 38 92 25 28.13439 2 +4921 59 39 92 23 24.58963 2 +4922 59 40 92 21 20.30195 2 +4923 59 41 92 22 22.37246 2 +4924 59 42 92 24 21.00861 2 +4925 59 43 96 21 26.87299 2 +4926 59 44 96 19 21.64395 2 +4927 59 45 96 17 23.09142 2 +4928 59 46 96 18 26.39256 2 +4929 59 47 96 20 24.53779 2 +4930 59 48 96 22 23.56283 2 +4931 59 49 100 21 23.12764 2 +4932 59 50 100 19 24.96633 2 +4933 59 51 100 17 26.85975 2 +4934 59 52 100 18 23.11545 2 +4935 59 53 100 20 21.41004 2 +4936 59 54 100 22 25.61508 2 +4937 59 55 104 23 18.35649 2 +4938 59 56 104 21 26.91544 2 +4939 59 57 104 22 21.97819 2 +4940 59 58 104 24 23.71185 2 +4941 59 59 104 26 23.72528 2 +4942 59 60 108 21 19.40343 2 +4943 59 61 108 19 26.65933 2 +4944 59 62 108 18 24.51979 2 +4945 59 63 108 20 29.55308 2 +4946 59 64 108 22 29.85072 2 +4947 59 65 112 23 19.24308 2 +4948 59 66 112 21 27.27037 2 +4949 59 67 112 19 28.27728 2 +4950 59 68 112 22 35.85016 2 +4951 59 69 112 24 23.3965 2 +4952 59 70 112 26 31.92838 2 +4953 59 71 116 21 24.63086 2 +4954 59 72 116 19 31.11468 2 +4955 59 73 116 17 48.46922 2 +4956 59 74 116 20 41.06108 2 +4957 59 75 116 22 34.08026 2 +4958 59 76 120 23 30.31756 2 +4959 59 77 120 21 33.23654 2 +4960 59 78 120 19 44.68583 2 +4961 59 79 120 22 30.39102 2 +4962 59 80 120 24 35.83084 2 +4963 59 81 120 26 47.62196 2 +4964 59 82 124 23 33.7398 2 +4965 59 83 124 21 48.5489 2 +4966 59 84 124 18 41.04646 2 +4967 59 85 124 20 42.65913 2 +4968 59 86 124 22 64.24578 2 +4969 59 87 128 21 39.17907 2 +4970 59 88 128 19 54.14197 2 +4971 59 89 128 17 63.51055 2 +4972 59 90 128 20 46.86537 2 +4973 59 91 128 22 56.67413 2 +4974 59 92 128 24 50.67125 2 +4975 59 93 132 21 48.58638 4 +4976 59 94 132 19 66.35259 2 +4977 59 95 132 20 46.44999 2 +4978 59 96 132 22 57.09969 2 +4979 59 97 132 24 58.59176 2 +4980 60 0 64 29 69.44741 2 +4981 60 1 64 27 61.38761 2 +4982 60 2 64 25 60.14505 2 +4983 60 3 64 24 60.48288 4 +4984 60 4 64 26 59.62536 2 +4985 60 5 64 28 49.3919 2 +4986 60 6 68 29 55.70093 2 +4987 60 7 68 27 58.94681 2 +4988 60 8 68 25 48.58905 2 +4989 60 9 68 24 55.42239 2 +4990 60 10 68 26 48.79633 2 +4991 60 11 68 28 44.91122 2 +4992 60 12 72 25 61.91948 2 +4993 60 13 72 23 51.20041 2 +4994 60 14 72 26 46.55209 2 +4995 60 15 72 28 46.48605 2 +4996 60 16 72 30 35.23715 2 +4997 60 17 76 29 50.79823 4 +4998 60 18 76 27 47.35247 4 +4999 60 19 76 26 41.29446 2 +5000 60 20 76 28 40.16753 2 +5001 60 21 76 30 49.95632 2 +5002 60 22 80 27 46.14762 2 +5003 60 23 80 25 38.14938 2 +5004 60 24 80 23 55.41207 2 +5005 60 25 80 24 45.78997 2 +5006 60 26 80 26 30.34492 2 +5007 60 27 80 28 33.74128 2 +5008 60 28 84 29 40.95103 2 +5009 60 29 84 27 29.32993 2 +5010 60 30 84 26 33.97898 2 +5011 60 31 84 28 31.09216 2 +5012 60 32 84 30 25.38259 2 +5013 60 33 88 27 44.96271 2 +5014 60 34 88 25 30.06763 2 +5015 60 35 88 23 38.86809 2 +5016 60 36 88 24 31.5694 2 +5017 60 37 88 26 27.07404 2 +5018 60 38 88 28 23.59388 2 +5019 60 39 92 29 31.8012 2 +5020 60 40 92 27 30.12566 2 +5021 60 41 92 26 29.9791 2 +5022 60 42 92 28 26.3685 2 +5023 60 43 92 30 23.60604 2 +5024 60 44 96 27 25.79061 2 +5025 60 45 96 25 24.97189 2 +5026 60 46 96 23 31.028 2 +5027 60 47 96 24 28.28611 2 +5028 60 48 96 26 25.98293 2 +5029 60 49 96 28 24.40614 2 +5030 60 50 100 27 39.56833 2 +5031 60 51 100 25 24.80578 2 +5032 60 52 100 23 27.88892 2 +5033 60 53 100 24 25.48907 2 +5034 60 54 100 26 26.7882 2 +5035 60 55 100 28 26.14132 2 +5036 60 56 104 29 22.69577 2 +5037 60 57 104 27 24.69057 2 +5038 60 58 104 25 28.7199 2 +5039 60 59 104 28 28.66183 2 +5040 60 60 104 30 28.63971 2 +5041 60 61 108 27 23.44259 2 +5042 60 62 108 25 28.34342 2 +5043 60 63 108 23 35.6209 2 +5044 60 64 108 24 41.6373 2 +5045 60 65 108 26 33.61302 2 +5046 60 66 108 28 38.87018 2 +5047 60 67 112 29 24.76018 2 +5048 60 68 112 27 28.77919 2 +5049 60 69 112 25 32.12693 2 +5050 60 70 112 28 29.00449 2 +5051 60 71 112 30 37.83872 2 +5052 60 72 116 27 25.15036 2 +5053 60 73 116 25 31.06847 2 +5054 60 74 116 23 40.11288 2 +5055 60 75 116 24 41.82564 4 +5056 60 76 116 26 40.47159 2 +5057 60 77 116 28 50.1922 4 +5058 60 78 120 29 36.3193 2 +5059 60 79 120 27 45.1725 2 +5060 60 80 120 25 44.20934 2 +5061 60 81 120 28 39.11429 2 +5062 60 82 120 30 49.4541 2 +5063 60 83 124 29 38.05058 2 +5064 60 84 124 27 45.25374 2 +5065 60 85 124 25 48.1419 2 +5066 60 86 124 24 49.97237 2 +5067 60 87 124 26 54.80581 2 +5068 60 88 128 27 45.48233 2 +5069 60 89 128 25 49.67787 2 +5070 60 90 128 23 56.69802 4 +5071 60 91 128 26 50.62288 2 +5072 60 92 128 28 57.87018 2 +5073 60 93 128 30 58.86806 2 +5074 60 94 132 27 68.29513 2 +5075 60 95 132 25 58.85544 2 +5076 60 96 132 23 59.46265 2 +5077 60 97 132 26 59.00583 2 +5078 60 98 132 28 62.25653 2 +5079 60 99 132 30 64.31094 2 +5080 61 0 64 35 65.19345 2 +5081 61 1 64 33 70.61222 2 +5082 61 2 64 31 64.38208 2 +5083 61 3 64 30 76.64678 2 +5084 61 4 64 32 61.87432 2 +5085 61 5 64 34 57.87272 2 +5086 61 6 68 33 60.08067 2 +5087 61 7 68 31 59.9893 2 +5088 61 8 68 30 62.67445 2 +5089 61 9 68 32 59.58848 2 +5090 61 10 68 34 49.94507 2 +5091 61 11 72 33 64.56474 2 +5092 61 12 72 31 56.31019 2 +5093 61 13 72 29 55.89951 2 +5094 61 14 72 27 49.98971 2 +5095 61 15 72 32 49.62831 2 +5096 61 16 72 34 44.34397 2 +5097 61 17 76 33 51.68253 2 +5098 61 18 76 31 51.7173 4 +5099 61 19 76 32 46.67745 2 +5100 61 20 76 34 40.76197 2 +5101 61 21 76 36 36.10656 2 +5102 61 22 80 33 57.83074 2 +5103 61 23 80 31 41.7988 2 +5104 61 24 80 29 40.43497 2 +5105 61 25 80 30 43.39135 2 +5106 61 26 80 32 38.87802 2 +5107 61 27 80 34 28.82811 2 +5108 61 28 84 35 42.68599 2 +5109 61 29 84 33 42.59306 2 +5110 61 30 84 31 34.48519 2 +5111 61 31 84 32 37.06407 2 +5112 61 32 84 34 30.15035 2 +5113 61 33 88 33 34.43868 2 +5114 61 34 88 31 36.77434 2 +5115 61 35 88 29 31.67302 2 +5116 61 36 88 30 33.43267 2 +5117 61 37 88 32 32.85157 2 +5118 61 38 88 34 27.0179 2 +5119 61 39 92 35 44.41728 2 +5120 61 40 92 33 31.8261 2 +5121 61 41 92 31 30.22404 2 +5122 61 42 92 32 30.72984 2 +5123 61 43 92 34 32.93835 2 +5124 61 44 96 33 31.55828 2 +5125 61 45 96 31 29.35496 2 +5126 61 46 96 29 36.82204 2 +5127 61 47 96 30 33.77389 2 +5128 61 48 96 32 27.31761 2 +5129 61 49 96 34 45.27467 2 +5130 61 50 100 33 38.79157 2 +5131 61 51 100 31 27.7721 2 +5132 61 52 100 29 31.34034 2 +5133 61 53 100 30 54.16116 2 +5134 61 54 100 32 29.48091 2 +5135 61 55 100 34 30.04354 2 +5136 61 56 104 33 28.53076 2 +5137 61 57 104 31 30.87503 2 +5138 61 58 104 32 29.19252 2 +5139 61 59 104 34 31.39785 2 +5140 61 60 104 36 38.47809 2 +5141 61 61 108 33 26.37126 2 +5142 61 62 108 31 30.6581 2 +5143 61 63 108 29 34.0991 2 +5144 61 64 108 30 33.43194 2 +5145 61 65 108 32 37.7285 2 +5146 61 66 108 34 39.44969 2 +5147 61 67 112 33 28.68805 2 +5148 61 68 112 31 36.70478 2 +5149 61 69 112 32 33.97524 2 +5150 61 70 112 34 39.48536 2 +5151 61 71 112 36 39.69841 2 +5152 61 72 116 33 30.42674 2 +5153 61 73 116 31 39.50122 2 +5154 61 74 116 29 38.32481 2 +5155 61 75 116 30 41.69534 2 +5156 61 76 116 32 45.12594 2 +5157 61 77 116 34 58.90756 2 +5158 61 78 120 35 37.22805 2 +5159 61 79 120 33 46.47882 2 +5160 61 80 120 31 52.54865 2 +5161 61 81 120 32 44.44158 2 +5162 61 82 120 34 55.54089 2 +5163 61 83 124 33 40.89457 2 +5164 61 84 124 31 56.59503 2 +5165 61 85 124 28 47.17168 2 +5166 61 86 124 30 60.05846 2 +5167 61 87 124 32 55.95507 2 +5168 61 88 124 34 65.04227 2 +5169 61 89 128 33 55.64384 2 +5170 61 90 128 31 57.35024 2 +5171 61 91 128 29 62.24121 2 +5172 61 92 128 32 55.39349 2 +5173 61 93 128 34 57.58534 2 +5174 61 94 132 33 53.04879 2 +5175 61 95 132 31 60.15506 2 +5176 61 96 132 29 67.21716 2 +5177 61 97 132 32 65.47664 2 +5178 61 98 132 34 73.13777 2 +5179 61 99 132 36 67.05976 2 +5180 62 0 64 39 75.95373 2 +5181 62 1 64 37 73.41971 2 +5182 62 2 64 36 70.91933 2 +5183 62 3 64 38 67.19974 2 +5184 62 4 64 40 61.75654 2 +5185 62 5 68 39 69.89426 2 +5186 62 6 68 37 73.94405 2 +5187 62 7 68 35 63.76171 2 +5188 62 8 68 36 60.75208 2 +5189 62 9 68 38 60.7791 2 +5190 62 10 68 40 49.56967 2 +5191 62 11 72 39 61.15172 2 +5192 62 12 72 37 59.7828 2 +5193 62 13 72 35 59.70723 4 +5194 62 14 72 36 55.90852 2 +5195 62 15 72 38 50.59077 2 +5196 62 16 72 40 45.06535 2 +5197 62 17 76 39 64.90003 2 +5198 62 18 76 37 46.58611 2 +5199 62 19 76 35 48.7036 2 +5200 62 20 76 38 47.42728 2 +5201 62 21 76 40 39.4154 2 +5202 62 22 80 39 50.58467 2 +5203 62 23 80 37 45.86225 2 +5204 62 24 80 35 43.85621 2 +5205 62 25 80 36 44.34816 2 +5206 62 26 80 38 42.55242 2 +5207 62 27 80 40 33.70383 2 +5208 62 28 84 39 49.42394 2 +5209 62 29 84 37 35.94687 2 +5210 62 30 84 36 46.27383 2 +5211 62 31 84 38 39.82671 2 +5212 62 32 84 40 31.92482 2 +5213 62 33 88 39 44.25492 2 +5214 62 34 88 37 36.62624 2 +5215 62 35 88 35 36.35464 2 +5216 62 36 88 36 36.46102 2 +5217 62 37 88 38 36.03183 2 +5218 62 38 88 40 30.49846 2 +5219 62 39 92 39 43.86633 2 +5220 62 40 92 37 35.5406 2 +5221 62 41 92 36 39.72226 2 +5222 62 42 92 38 35.8116 2 +5223 62 43 92 40 32.11845 2 +5224 62 44 96 39 33.11437 2 +5225 62 45 96 37 37.33491 2 +5226 62 46 96 35 33.38836 2 +5227 62 47 96 36 34.89355 2 +5228 62 48 96 38 38.30765 2 +5229 62 49 96 40 31.53051 2 +5230 62 50 100 39 34.6698 2 +5231 62 51 100 37 36.87838 2 +5232 62 52 100 35 33.52158 2 +5233 62 53 100 36 32.73659 2 +5234 62 54 100 38 34.13393 2 +5235 62 55 100 40 33.11237 2 +5236 62 56 104 39 31.81042 2 +5237 62 57 104 37 32.287 2 +5238 62 58 104 35 37.8995 2 +5239 62 59 104 38 35.49763 2 +5240 62 60 104 40 42.7663 2 +5241 62 61 108 39 30.34482 2 +5242 62 62 108 37 32.70039 2 +5243 62 63 108 35 37.28034 2 +5244 62 64 108 36 36.25496 2 +5245 62 65 108 38 37.41978 2 +5246 62 66 108 40 42.87615 2 +5247 62 67 112 39 31.68032 2 +5248 62 68 112 37 43.22699 2 +5249 62 69 112 35 48.33159 2 +5250 62 70 112 38 44.73033 2 +5251 62 71 112 40 44.68824 2 +5252 62 72 116 39 32.32901 2 +5253 62 73 116 37 41.71358 2 +5254 62 74 116 35 42.46778 2 +5255 62 75 116 36 43.6705 2 +5256 62 76 116 38 46.94999 2 +5257 62 77 116 40 52.84656 4 +5258 62 78 120 39 40.02757 2 +5259 62 79 120 37 50.97093 2 +5260 62 80 120 36 55.20071 2 +5261 62 81 120 38 51.34035 2 +5262 62 82 120 40 54.4927 2 +5263 62 83 124 39 44.14728 2 +5264 62 84 124 37 55.75366 2 +5265 62 85 124 35 58.45858 2 +5266 62 86 124 36 58.71692 2 +5267 62 87 124 38 62.13867 4 +5268 62 88 124 40 62.48268 2 +5269 62 89 128 39 50.32973 2 +5270 62 90 128 37 63.15069 2 +5271 62 91 128 35 68.31685 2 +5272 62 92 128 36 64.34828 2 +5273 62 93 128 38 64.16162 2 +5274 62 94 128 40 70.60795 2 +5275 62 95 132 39 62.65166 2 +5276 62 96 132 37 73.98054 2 +5277 62 97 132 35 70.94208 2 +5278 62 98 132 38 74.76308 2 +5279 62 99 132 40 73.44627 2 diff --git a/Detectors/TPC/base/files/LENGTH-OROC1.txt b/Detectors/TPC/base/files/LENGTH-OROC1.txt index 49709910c12a7..bda747f89a315 100644 --- a/Detectors/TPC/base/files/LENGTH-OROC1.txt +++ b/Detectors/TPC/base/files/LENGTH-OROC1.txt @@ -1,2880 +1,2880 @@ -0 0 0 1 3 101.26007 4 -1 0 1 1 1 100.32279 2 -2 0 2 1 2 99.72778 2 -3 0 3 1 4 100.60063 2 -4 0 4 1 6 101.46487 2 -5 0 5 5 3 96.93725 2 -6 0 6 5 1 99.05947 2 -7 0 7 5 2 96.55679 2 -8 0 8 5 4 96.09835 2 -9 0 9 9 3 95.31153 2 -10 0 10 9 1 92.7942 2 -11 0 11 9 2 92.82045 2 -12 0 12 9 4 95.5038 2 -13 0 13 13 3 92.71032 2 -14 0 14 13 1 93.63174 2 -15 0 15 13 2 96.3519 2 -16 0 16 13 4 98.31017 2 -17 0 17 17 3 91.48934 2 -18 0 18 17 1 94.61971 2 -19 0 19 17 2 96.7619 2 -20 0 20 17 4 94.9858 2 -21 0 21 21 3 94.25045 2 -22 0 22 21 1 93.13628 2 -23 0 23 21 2 93.27802 2 -24 0 24 21 4 96.15251 2 -25 0 25 21 6 98.09714 2 -26 0 26 25 3 90.64507 2 -27 0 27 25 1 91.08903 2 -28 0 28 25 2 90.89494 2 -29 0 29 25 4 94.85061 2 -30 0 30 29 3 94.18664 2 -31 0 31 29 1 89.8103 2 -32 0 32 29 2 90.63707 2 -33 0 33 29 4 93.62112 2 -34 0 34 33 3 90.00756 2 -35 0 35 33 1 93.17968 2 -36 0 36 33 2 91.21026 2 -37 0 37 33 4 93.26278 2 -38 0 38 37 3 93.40813 2 -39 0 39 37 1 91.81606 2 -40 0 40 37 2 92.14411 2 -41 0 41 37 4 93.17311 2 -42 0 42 41 3 92.64178 2 -43 0 43 41 1 89.88696 2 -44 0 44 41 2 89.57381 2 -45 0 45 41 4 94.4957 2 -46 0 46 45 3 95.27238 2 -47 0 47 45 1 90.89535 2 -48 0 48 45 2 90.66051 2 -49 0 49 45 4 92.83196 2 -50 0 50 49 5 97.94525 2 -51 0 51 49 3 96.31097 2 -52 0 52 49 1 91.3512 2 -53 0 53 49 2 90.12288 2 -54 0 54 49 4 100.19276 2 -55 0 55 53 3 95.97447 2 -56 0 56 53 1 90.76829 2 -57 0 57 53 2 90.52967 2 -58 0 58 53 4 92.47096 2 -59 0 59 57 3 98.75225 2 -60 0 60 57 1 95.7312 2 -61 0 61 57 2 94.48483 2 -62 0 62 57 4 92.71074 2 -63 0 63 61 3 94.79152 2 -64 0 64 61 1 91.62481 2 -65 0 65 61 2 89.09811 2 -66 0 66 61 4 91.75512 2 -67 0 67 65 3 94.76193 2 -68 0 68 65 1 94.56921 2 -69 0 69 65 2 93.0698 2 -70 0 70 65 4 97.30021 2 -71 0 71 69 5 98.9668 2 -72 0 72 69 3 99.79042 2 -73 0 73 69 1 101.64264 2 -74 0 74 69 2 99.26312 2 -75 0 75 69 4 102.64221 2 -76 1 0 1 7 97.71396 4 -77 1 1 1 5 101.44156 2 -78 1 2 1 8 97.46323 2 -79 1 3 1 10 92.17836 2 -80 1 4 5 9 92.45799 2 -81 1 5 5 7 88.61412 2 -82 1 6 5 5 90.55314 2 -83 1 7 5 6 89.68271 2 -84 1 8 5 8 87.09523 2 -85 1 9 9 7 84.09028 2 -86 1 10 9 5 87.62655 2 -87 1 11 9 6 85.8892 2 -88 1 12 9 8 87.12612 2 -89 1 13 13 7 88.09034 2 -90 1 14 13 5 87.69965 2 -91 1 15 13 6 86.64375 2 -92 1 16 13 8 90.07249 2 -93 1 17 17 7 84.25937 2 -94 1 18 17 5 87.11253 2 -95 1 19 17 6 90.8118 4 -96 1 20 17 8 88.03755 2 -97 1 21 21 7 85.31149 2 -98 1 22 21 5 85.50065 2 -99 1 23 21 8 85.5204 2 -100 1 24 21 10 88.33747 2 -101 1 25 25 7 85.34127 2 -102 1 26 25 5 85.16763 2 -103 1 27 25 6 85.38536 2 -104 1 28 25 8 85.82931 2 -105 1 29 25 10 89.77178 2 -106 1 30 29 7 86.79102 2 -107 1 31 29 5 91.88991 3 -108 1 32 29 6 83.24007 2 -109 1 33 29 8 86.55871 2 -110 1 34 33 7 87.17936 2 -111 1 35 33 5 82.29661 2 -112 1 36 33 6 84.59131 2 -113 1 37 33 8 86.1554 2 -114 1 38 37 7 86.48273 2 -115 1 39 37 5 84.46351 2 -116 1 40 37 6 85.64911 2 -117 1 41 37 8 87.86708 2 -118 1 42 41 7 85.18283 2 -119 1 43 41 5 83.25306 2 -120 1 44 41 6 84.12756 2 -121 1 45 41 8 87.19007 2 -122 1 46 45 9 89.09712 2 -123 1 47 45 7 86.05694 2 -124 1 48 45 5 85.08438 2 -125 1 49 45 6 84.09841 2 -126 1 50 45 8 85.46803 2 -127 1 51 49 9 91.00987 2 -128 1 52 49 7 85.51179 2 -129 1 53 49 6 82.82138 2 -130 1 54 49 8 92.23314 2 -131 1 55 53 7 88.60102 2 -132 1 56 53 5 84.41901 2 -133 1 57 53 6 95.11453 2 -134 1 58 53 8 85.43604 2 -135 1 59 57 7 100.00752 4 -136 1 60 57 5 91.43009 2 -137 1 61 57 6 87.7157 2 -138 1 62 57 8 89.36258 2 -139 1 63 61 7 87.56381 2 -140 1 64 61 5 86.21881 2 -141 1 65 61 6 81.7232 2 -142 1 66 61 8 86.44726 2 -143 1 67 65 7 87.09119 2 -144 1 68 65 5 88.26548 2 -145 1 69 65 6 86.04495 2 -146 1 70 65 8 101.71154 4 -147 1 71 65 10 93.02409 2 -148 1 72 69 9 92.28311 2 -149 1 73 69 7 94.34261 2 -150 1 74 69 6 90.3035 2 -151 1 75 69 8 101.48813 2 -152 2 0 1 11 100.85711 4 -153 2 1 1 9 95.36421 4 -154 2 2 1 12 101.46639 4 -155 2 3 1 14 93.60363 4 -156 2 4 5 13 94.91419 2 -157 2 5 5 11 94.40711 2 -158 2 6 5 10 88.82306 2 -159 2 7 5 12 86.66915 2 -160 2 8 9 11 83.08582 2 -161 2 9 9 9 80.21868 2 -162 2 10 9 10 82.72098 2 -163 2 11 9 12 79.05802 2 -164 2 12 9 14 81.65591 2 -165 2 13 13 11 80.84474 2 -166 2 14 13 9 82.52095 2 -167 2 15 13 10 87.34187 2 -168 2 16 13 12 93.64004 4 -169 2 17 17 11 75.94545 2 -170 2 18 17 9 78.50597 4 -171 2 19 17 10 80.90508 2 -172 2 20 17 12 80.81772 2 -173 2 21 21 11 76.69315 2 -174 2 22 21 9 74.92195 2 -175 2 23 21 12 77.69056 2 -176 2 24 21 14 84.0177 2 -177 2 25 25 11 78.77337 2 -178 2 26 25 9 76.35008 2 -179 2 27 25 12 80.04604 2 -180 2 28 25 14 82.31911 2 -181 2 29 29 11 88.77531 2 -182 2 30 29 9 74.20799 2 -183 2 31 29 10 78.62533 2 -184 2 32 29 12 77.06035 2 -185 2 33 29 14 81.27504 2 -186 2 34 33 11 78.18984 2 -187 2 35 33 9 75.59757 2 -188 2 36 33 10 77.83998 2 -189 2 37 33 12 79.45318 2 -190 2 38 37 11 78.96522 2 -191 2 39 37 9 77.72255 2 -192 2 40 37 10 77.10856 2 -193 2 41 37 12 79.86776 2 -194 2 42 41 13 91.95662 2 -195 2 43 41 11 81.94332 2 -196 2 44 41 9 77.68481 2 -197 2 45 41 10 74.01289 2 -198 2 46 41 12 80.71974 2 -199 2 47 45 13 79.63423 2 -200 2 48 45 11 78.07012 2 -201 2 49 45 10 76.2942 2 -202 2 50 45 12 78.96122 2 -203 2 51 49 13 84.21926 2 -204 2 52 49 11 79.03287 2 -205 2 53 49 10 75.78917 2 -206 2 54 49 12 81.04795 2 -207 2 55 53 11 82.4558 2 -208 2 56 53 9 80.965 2 -209 2 57 53 10 75.78967 2 -210 2 58 53 12 76.88328 2 -211 2 59 57 11 90.42646 4 -212 2 60 57 9 87.26907 2 -213 2 61 57 10 81.03539 2 -214 2 62 57 12 83.04992 2 -215 2 63 61 13 82.23284 2 -216 2 64 61 11 79.13732 2 -217 2 65 61 9 82.47827 2 -218 2 66 61 10 75.24109 2 -219 2 67 61 12 81.5715 2 -220 2 68 65 11 80.90247 2 -221 2 69 65 9 87.25635 2 -222 2 70 65 12 86.20345 2 -223 2 71 65 14 88.66785 2 -224 2 72 69 13 97.51872 4 -225 2 73 69 11 96.64572 4 -226 2 74 69 10 102.13796 4 -227 2 75 69 12 87.21231 2 -228 3 0 1 15 95.24583 2 -229 3 1 1 13 89.94865 2 -230 3 2 1 16 93.69508 4 -231 3 3 1 18 86.18914 4 -232 3 4 5 17 77.45796 2 -233 3 5 5 15 81.62802 2 -234 3 6 5 14 81.51966 2 -235 3 7 5 16 75.99353 2 -236 3 8 9 15 80.37493 2 -237 3 9 9 13 67.81913 2 -238 3 10 9 16 76.9623 2 -239 3 11 9 18 74.98554 2 -240 3 12 13 15 71.09694 2 -241 3 13 13 13 72.66326 2 -242 3 14 13 14 80.20975 2 -243 3 15 13 16 79.60092 2 -244 3 16 13 18 90.80668 2 -245 3 17 17 15 71.89815 2 -246 3 18 17 13 89.92597 2 -247 3 19 17 14 74.32388 2 -248 3 20 17 16 80.8878 4 -249 3 21 21 15 71.0318 2 -250 3 22 21 13 72.56364 2 -251 3 23 21 16 70.96083 2 -252 3 24 21 18 80.68884 2 -253 3 25 25 15 70.41767 2 -254 3 26 25 13 67.62412 2 -255 3 27 25 16 71.59196 2 -256 3 28 25 18 72.36379 2 -257 3 29 29 17 79.93927 2 -258 3 30 29 15 77.70533 2 -259 3 31 29 13 74.44192 2 -260 3 32 29 16 70.79616 2 -261 3 33 29 18 77.16428 2 -262 3 34 33 15 71.14494 2 -263 3 35 33 13 69.04227 2 -264 3 36 33 14 70.51993 2 -265 3 37 33 16 71.2585 2 -266 3 38 37 15 71.4946 2 -267 3 39 37 13 72.6947 2 -268 3 40 37 14 69.99501 2 -269 3 41 37 16 72.76293 2 -270 3 42 41 17 82.41453 2 -271 3 43 41 15 72.17426 2 -272 3 44 41 14 72.12695 2 -273 3 45 41 16 70.75159 2 -274 3 46 41 18 74.77494 2 -275 3 47 45 17 72.01842 2 -276 3 48 45 15 71.52852 2 -277 3 49 45 14 67.63757 2 -278 3 50 45 16 69.88988 2 -279 3 51 49 17 76.87333 2 -280 3 52 49 15 70.55523 2 -281 3 53 49 14 73.09807 2 -282 3 54 49 16 69.16075 2 -283 3 55 53 15 74.34132 2 -284 3 56 53 13 72.74573 2 -285 3 57 53 14 73.24426 2 -286 3 58 53 16 72.8106 2 -287 3 59 57 17 86.21089 2 -288 3 60 57 15 74.35202 2 -289 3 61 57 13 74.07958 2 -290 3 62 57 14 72.26386 2 -291 3 63 57 16 71.11684 2 -292 3 64 61 17 79.00268 2 -293 3 65 61 15 72.22861 2 -294 3 66 61 14 93.70998 2 -295 3 67 61 16 74.06513 2 -296 3 68 65 15 74.27741 2 -297 3 69 65 13 77.83974 2 -298 3 70 65 16 78.79452 2 -299 3 71 65 18 78.00125 2 -300 3 72 69 17 90.5517 4 -301 3 73 69 15 89.35103 4 -302 3 74 69 14 92.52516 4 -303 3 75 69 16 96.56172 4 -304 4 0 1 21 92.15192 2 -305 4 1 1 19 92.91318 4 -306 4 2 1 17 80.17159 2 -307 4 3 1 20 84.77426 4 -308 4 4 1 22 79.6483 4 -309 4 5 5 21 71.56714 2 -310 4 6 5 19 74.32164 2 -311 4 7 5 18 73.81437 2 -312 4 8 5 20 65.67853 2 -313 4 9 9 19 65.92005 2 -314 4 10 9 17 62.96781 2 -315 4 11 9 20 66.66744 2 -316 4 12 9 22 66.60802 2 -317 4 13 13 19 63.63253 2 -318 4 14 13 17 71.99167 2 -319 4 15 13 20 71.43647 2 -320 4 16 13 22 71.36553 2 -321 4 17 17 21 62.19319 2 -322 4 18 17 19 63.39221 2 -323 4 19 17 17 63.99951 2 -324 4 20 17 18 66.00226 2 -325 4 21 17 20 78.45413 2 -326 4 22 21 19 68.73268 2 -327 4 23 21 17 61.51087 2 -328 4 24 21 20 64.37098 2 -329 4 25 21 22 66.7681 2 -330 4 26 25 19 62.88763 2 -331 4 27 25 17 59.95819 2 -332 4 28 25 20 64.35313 2 -333 4 29 25 22 64.79393 2 -334 4 30 29 21 76.18304 4 -335 4 31 29 19 63.29237 2 -336 4 32 29 20 63.4969 2 -337 4 33 29 22 72.79287 2 -338 4 34 29 24 67.00449 2 -339 4 35 33 19 63.0168 2 -340 4 36 33 17 71.05803 2 -341 4 37 33 18 63.47022 2 -342 4 38 33 20 63.77043 2 -343 4 39 37 19 63.27876 2 -344 4 40 37 17 62.77668 2 -345 4 41 37 18 82.91926 2 -346 4 42 37 20 64.8187 2 -347 4 43 41 23 67.7968 2 -348 4 44 41 21 65.51677 2 -349 4 45 41 19 62.73491 2 -350 4 46 41 20 62.24965 2 -351 4 47 41 22 70.96268 2 -352 4 48 45 21 65.09502 2 -353 4 49 45 19 75.13964 2 -354 4 50 45 18 61.02188 2 -355 4 51 45 20 63.34873 2 -356 4 52 49 21 69.34519 2 -357 4 53 49 19 62.60576 2 -358 4 54 49 18 66.9153 2 -359 4 55 49 20 69.33378 2 -360 4 56 53 19 74.03019 2 -361 4 57 53 17 63.09558 2 -362 4 58 53 18 74.33755 2 -363 4 59 53 20 62.55524 2 -364 4 60 53 22 64.93748 2 -365 4 61 57 21 70.48368 2 -366 4 62 57 19 65.71931 2 -367 4 63 57 18 72.34738 2 -368 4 64 57 20 64.40244 2 -369 4 65 61 21 66.40563 2 -370 4 66 61 19 67.32645 2 -371 4 67 61 18 68.54865 2 -372 4 68 61 20 72.62745 2 -373 4 69 65 19 67.65863 2 -374 4 70 65 17 71.81276 2 -375 4 71 65 20 73.82349 2 -376 4 72 65 22 69.80689 2 -377 4 73 69 21 85.3594 4 -378 4 74 69 19 85.64355 4 -379 4 75 69 18 80.35554 2 -380 4 76 69 20 93.38944 4 -381 4 77 69 22 90.77619 2 -382 5 0 1 25 84.93448 2 -383 5 1 1 23 78.44545 2 -384 5 2 1 24 83.72053 4 -385 5 3 1 26 84.34546 4 -386 5 4 5 27 86.49368 4 -387 5 5 5 25 71.50192 2 -388 5 6 5 23 61.54277 2 -389 5 7 5 22 71.24133 2 -390 5 8 5 24 60.71464 2 -391 5 9 9 23 57.34546 2 -392 5 10 9 21 53.62035 2 -393 5 11 9 24 59.37157 2 -394 5 12 9 26 60.33731 2 -395 5 13 13 23 58.216 2 -396 5 14 13 21 56.35974 2 -397 5 15 13 24 62.45916 2 -398 5 16 13 26 59.45893 2 -399 5 17 17 25 55.38146 2 -400 5 18 17 23 56.53539 2 -401 5 19 17 22 56.05094 2 -402 5 20 17 24 58.21802 2 -403 5 21 17 26 70.96046 2 -404 5 22 21 23 60.43519 2 -405 5 23 21 21 61.74147 2 -406 5 24 21 24 56.37012 2 -407 5 25 21 26 70.2072 4 -408 5 26 25 23 55.10697 2 -409 5 27 25 21 53.89865 2 -410 5 28 25 24 56.7128 2 -411 5 29 25 26 57.4032 2 -412 5 30 29 27 65.41848 2 -413 5 31 29 25 61.72109 2 -414 5 32 29 23 57.20188 2 -415 5 33 29 26 59.59618 2 -416 5 34 29 28 69.19882 4 -417 5 35 33 23 57.32861 2 -418 5 36 33 21 57.15845 2 -419 5 37 33 22 56.35306 2 -420 5 38 33 24 56.3683 2 -421 5 39 37 23 55.51622 2 -422 5 40 37 21 55.4246 2 -423 5 41 37 22 58.92986 2 -424 5 42 37 24 55.39537 2 -425 5 43 41 27 60.05421 2 -426 5 44 41 25 59.29913 2 -427 5 45 41 24 56.74626 2 -428 5 46 41 26 56.59331 2 -429 5 47 41 28 62.44477 2 -430 5 48 45 25 57.31764 2 -431 5 49 45 23 57.62856 2 -432 5 50 45 22 54.23778 2 -433 5 51 45 24 55.5474 2 -434 5 52 49 25 62.67219 2 -435 5 53 49 23 60.6321 2 -436 5 54 49 22 58.14674 2 -437 5 55 49 24 61.55785 2 -438 5 56 53 25 61.86123 2 -439 5 57 53 23 60.35076 2 -440 5 58 53 21 56.91591 2 -441 5 59 53 24 53.96498 2 -442 5 60 53 26 59.16761 2 -443 5 61 57 25 64.93993 2 -444 5 62 57 23 58.63578 2 -445 5 63 57 22 55.60792 2 -446 5 64 57 24 58.30338 2 -447 5 65 61 25 60.1155 4 -448 5 66 61 23 57.84001 2 -449 5 67 61 22 65.05104 2 -450 5 68 61 24 58.50376 2 -451 5 69 65 23 62.95921 2 -452 5 70 65 21 64.80781 2 -453 5 71 65 24 60.70506 2 -454 5 72 65 26 68.31624 4 -455 5 73 65 28 84.99633 4 -456 5 74 69 25 84.53743 4 -457 5 75 69 23 82.27459 4 -458 5 76 69 24 77.81376 2 -459 5 77 69 26 90.02647 4 -460 6 0 1 29 75.11941 2 -461 6 1 1 27 64.74731 2 -462 6 2 1 28 76.12596 2 -463 6 3 1 30 73.75991 4 -464 6 4 5 31 90.34266 4 -465 6 5 5 29 57.05337 2 -466 6 6 5 26 68.44678 2 -467 6 7 5 28 52.15133 2 -468 6 8 9 29 60.84038 2 -469 6 9 9 27 50.48947 2 -470 6 10 9 25 48.54277 2 -471 6 11 9 28 60.32264 2 -472 6 12 9 30 51.98508 2 -473 6 13 13 27 50.49014 2 -474 6 14 13 25 48.09994 2 -475 6 15 13 28 51.91725 2 -476 6 16 13 30 65.60839 2 -477 6 17 17 29 50.79809 2 -478 6 18 17 27 51.19025 2 -479 6 19 17 28 51.19976 2 -480 6 20 17 30 52.00971 2 -481 6 21 17 32 56.31891 2 -482 6 22 21 27 52.16461 2 -483 6 23 21 25 56.76866 2 -484 6 24 21 28 47.41329 2 -485 6 25 21 30 59.50112 2 -486 6 26 25 27 47.64813 2 -487 6 27 25 25 52.63264 2 -488 6 28 25 28 49.54345 2 -489 6 29 25 30 49.972 2 -490 6 30 29 31 59.41042 2 -491 6 31 29 29 49.35095 2 -492 6 32 29 30 48.90278 2 -493 6 33 29 32 62.74958 2 -494 6 34 29 34 66.86869 2 -495 6 35 33 27 58.94673 2 -496 6 36 33 25 46.16364 2 -497 6 37 33 26 46.95604 2 -498 6 38 33 28 48.96383 2 -499 6 39 37 27 48.07907 2 -500 6 40 37 25 48.05166 2 -501 6 41 37 26 46.49529 2 -502 6 42 37 28 54.47042 2 -503 6 43 41 33 68.45511 2 -504 6 44 41 31 51.22828 2 -505 6 45 41 29 54.38485 2 -506 6 46 41 30 46.59253 2 -507 6 47 41 32 56.01532 2 -508 6 48 45 29 49.97295 2 -509 6 49 45 27 50.62854 2 -510 6 50 45 26 48.19519 2 -511 6 51 45 28 48.15988 2 -512 6 52 49 29 54.67456 2 -513 6 53 49 27 47.23641 2 -514 6 54 49 26 47.77772 2 -515 6 55 49 28 48.24009 2 -516 6 56 53 31 56.14619 2 -517 6 57 53 29 49.96189 2 -518 6 58 53 27 49.15792 2 -519 6 59 53 28 50.35342 2 -520 6 60 53 30 49.63054 2 -521 6 61 57 29 60.43556 2 -522 6 62 57 27 52.03502 2 -523 6 63 57 26 51.1888 2 -524 6 64 57 28 51.18473 2 -525 6 65 61 29 52.49464 2 -526 6 66 61 27 51.06003 2 -527 6 67 61 26 47.27078 2 -528 6 68 61 28 49.83851 2 -529 6 69 61 30 61.88021 4 -530 6 70 65 27 52.11168 2 -531 6 71 65 25 63.22972 2 -532 6 72 65 30 54.67985 2 -533 6 73 65 32 75.39533 4 -534 6 74 69 29 72.68669 4 -535 6 75 69 27 71.94972 2 -536 6 76 69 28 72.71986 2 -537 6 77 69 30 76.0588 2 -538 7 0 1 33 76.28806 2 -539 7 1 1 31 63.22181 2 -540 7 2 1 32 67.03512 2 -541 7 3 1 34 69.40545 2 -542 7 4 1 36 59.14126 2 -543 7 5 5 35 58.87265 2 -544 7 6 5 33 59.06869 2 -545 7 7 5 30 57.57716 2 -546 7 8 5 32 48.08989 2 -547 7 9 9 33 54.09819 2 -548 7 10 9 31 53.26636 2 -549 7 11 9 32 56.03035 2 -550 7 12 9 34 43.65805 2 -551 7 13 9 36 48.96699 2 -552 7 14 13 31 41.62654 2 -553 7 15 13 29 56.97332 2 -554 7 16 13 32 45.49615 2 -555 7 17 13 34 54.51702 4 -556 7 18 17 33 48.00361 2 -557 7 19 17 31 44.55738 2 -558 7 20 17 34 52.85391 2 -559 7 21 17 36 84.34845 2 -560 7 22 21 33 43.38619 2 -561 7 23 21 31 41.9977 2 -562 7 24 21 29 96.23862 2 -563 7 25 21 32 44.95585 2 -564 7 26 21 34 45.78266 2 -565 7 27 25 31 39.93933 2 -566 7 28 25 29 43.18535 2 -567 7 29 25 32 40.69937 2 -568 7 30 25 34 42.39475 2 -569 7 31 29 35 50.81099 2 -570 7 32 29 33 42.9827 2 -571 7 33 29 36 45.34512 2 -572 7 34 29 38 47.41427 2 -573 7 35 29 40 47.1651 2 -574 7 36 33 31 50.99386 2 -575 7 37 33 29 39.91017 2 -576 7 38 33 30 42.8205 2 -577 7 39 33 32 41.40606 2 -578 7 40 37 31 40.5213 2 -579 7 41 37 29 41.81353 2 -580 7 42 37 30 39.453 2 -581 7 43 37 32 41.5564 2 -582 7 44 41 39 46.80141 2 -583 7 45 41 37 48.66462 2 -584 7 46 41 35 42.28356 2 -585 7 47 41 34 42.47312 2 -586 7 48 41 36 48.75091 2 -587 7 49 45 33 42.3958 2 -588 7 50 45 31 53.60893 2 -589 7 51 45 30 40.64949 2 -590 7 52 45 32 40.45107 2 -591 7 53 49 33 44.82619 2 -592 7 54 49 31 42.95474 2 -593 7 55 49 30 99.70165 2 -594 7 56 49 32 39.74746 2 -595 7 57 49 34 44.56601 2 -596 7 58 53 35 50.18672 2 -597 7 59 53 33 43.11573 2 -598 7 60 53 32 40.85542 2 -599 7 61 53 34 62.26964 2 -600 7 62 57 33 50.72667 2 -601 7 63 57 31 43.84735 2 -602 7 64 57 30 54.75636 2 -603 7 65 57 32 43.54148 2 -604 7 66 61 35 52.70602 2 -605 7 67 61 33 54.9751 2 -606 7 68 61 31 46.65202 2 -607 7 69 61 32 51.67203 2 -608 7 70 61 34 52.99504 2 -609 7 71 65 31 45.92969 2 -610 7 72 65 29 53.23329 2 -611 7 73 65 34 52.88412 2 -612 7 74 65 36 60.43568 4 -613 7 75 69 35 62.52529 4 -614 7 76 69 33 67.57248 4 -615 7 77 69 31 66.76829 2 -616 7 78 69 32 76.01889 2 -617 7 79 69 34 77.39206 2 -618 8 0 1 39 66.56049 2 -619 8 1 1 37 63.08272 2 -620 8 2 1 35 58.79792 2 -621 8 3 1 38 56.31838 2 -622 8 4 1 40 47.45398 2 -623 8 5 5 39 50.39552 2 -624 8 6 5 37 47.01727 2 -625 8 7 5 34 57.44834 2 -626 8 8 5 36 37.01784 2 -627 8 9 9 37 50.89222 2 -628 8 10 9 35 37.36455 2 -629 8 11 9 38 69.46598 2 -630 8 12 9 40 36.85736 2 -631 8 13 13 35 37.52873 2 -632 8 14 13 33 32.42589 2 -633 8 15 13 36 39.14569 2 -634 8 16 13 38 40.49828 2 -635 8 17 13 40 38.40195 2 -636 8 18 17 37 32.20014 2 -637 8 19 17 35 35.60696 2 -638 8 20 17 38 36.89271 2 -639 8 21 17 40 36.4454 2 -640 8 22 21 37 35.10741 2 -641 8 23 21 35 36.30205 2 -642 8 24 21 36 33.11736 2 -643 8 25 21 38 38.16697 2 -644 8 26 21 40 49.86262 2 -645 8 27 25 35 32.33138 2 -646 8 28 25 33 31.81256 2 -647 8 29 25 36 34.08037 2 -648 8 30 25 38 35.1187 2 -649 8 31 29 39 41.62255 2 -650 8 32 29 37 37.03488 2 -651 8 33 30 1 63.10182 2 -652 8 34 30 2 65.16621 2 -653 8 35 30 4 72.99701 2 -654 8 36 33 35 32.45657 2 -655 8 37 33 33 32.49537 2 -656 8 38 33 34 34.92925 2 -657 8 39 33 36 33.0997 2 -658 8 40 37 35 32.96891 2 -659 8 41 37 33 33.94711 2 -660 8 42 37 34 41.93152 2 -661 8 43 37 36 33.98229 2 -662 8 44 42 3 73.34587 2 -663 8 45 42 1 64.51869 2 -664 8 46 42 2 65.26564 2 -665 8 47 41 38 36.0788 2 -666 8 48 41 40 35.1299 2 -667 8 49 45 37 35.11975 2 -668 8 50 45 35 34.30401 2 -669 8 51 45 34 33.39075 2 -670 8 52 45 36 32.84313 2 -671 8 53 49 39 40.8594 2 -672 8 54 49 37 35.14545 2 -673 8 55 49 35 31.82762 2 -674 8 56 49 36 33.88333 2 -675 8 57 49 38 33.69353 2 -676 8 58 53 39 36.34541 2 -677 8 59 53 37 34.31263 2 -678 8 60 53 36 33.60884 2 -679 8 61 53 38 34.41384 2 -680 8 62 57 39 38.55526 2 -681 8 63 57 37 52.18361 2 -682 8 64 57 35 38.11287 2 -683 8 65 57 34 31.41758 2 -684 8 66 57 36 43.1353 2 -685 8 67 61 39 39.41815 2 -686 8 68 61 37 42.01438 2 -687 8 69 61 36 35.45903 2 -688 8 70 61 38 49.55789 2 -689 8 71 65 35 37.78002 2 -690 8 72 65 33 52.58795 2 -691 8 73 65 38 63.64812 2 -692 8 74 65 40 54.48874 4 -693 8 75 69 39 49.55859 2 -694 8 76 69 37 61.1197 4 -695 8 77 69 36 56.40671 2 -696 8 78 69 38 60.10434 2 -697 8 79 69 40 70.26283 2 -698 9 0 2 3 84.54567 2 -699 9 1 2 1 78.22769 2 -700 9 2 2 2 84.53544 2 -701 9 3 2 4 74.58471 4 -702 9 4 6 3 78.06986 4 -703 9 5 6 1 67.95198 4 -704 9 6 6 2 67.43295 2 -705 9 7 5 38 43.28311 2 -706 9 8 5 40 31.33312 2 -707 9 9 9 39 35.04797 2 -708 9 10 10 1 60.79456 2 -709 9 11 10 2 54.60518 2 -710 9 12 10 4 56.39171 2 -711 9 13 13 39 29.95812 2 -712 9 14 13 37 21.2966 2 -713 9 15 14 1 64.17371 2 -714 9 16 14 2 62.14307 2 -715 9 17 14 4 70.79377 4 -716 9 18 17 39 27.3792 2 -717 9 19 18 1 53.40952 2 -718 9 20 18 2 50.75379 2 -719 9 21 18 4 57.49746 2 -720 9 22 21 39 27.57224 2 -721 9 23 22 3 57.2049 2 -722 9 24 22 1 62.69097 2 -723 9 25 22 2 55.25129 2 -724 9 26 22 4 57.7308 2 -725 9 27 25 39 25.01218 2 -726 9 28 25 37 25.83428 2 -727 9 29 25 40 25.52773 2 -728 9 30 26 2 56.08478 2 -729 9 31 30 7 58.77737 2 -730 9 32 30 5 56.74915 2 -731 9 33 30 3 54.23756 2 -732 9 34 30 6 56.46067 2 -733 9 35 30 8 65.96361 4 -734 9 36 33 39 27.96916 2 -735 9 37 33 37 25.20874 2 -736 9 38 33 38 28.16795 2 -737 9 39 33 40 24.72085 2 -738 9 40 37 39 24.56309 2 -739 9 41 37 37 25.97083 2 -740 9 42 37 38 26.2776 2 -741 9 43 37 40 35.84077 2 -742 9 44 42 7 71.94654 2 -743 9 45 42 5 58.26591 2 -744 9 46 42 4 58.05622 2 -745 9 47 42 6 58.67101 2 -746 9 48 42 8 61.31643 2 -747 9 49 46 1 55.13971 2 -748 9 50 45 39 23.88776 2 -749 9 51 45 38 24.30086 2 -750 9 52 45 40 26.56586 2 -751 9 53 50 3 57.65613 2 -752 9 54 50 1 53.1397 2 -753 9 55 50 2 56.01982 2 -754 9 56 50 4 56.06347 2 -755 9 57 49 40 26.11265 2 -756 9 58 54 3 64.2086 2 -757 9 59 54 1 52.45045 2 -758 9 60 54 2 58.42522 2 -759 9 61 53 40 27.03511 2 -760 9 62 58 3 60.23763 2 -761 9 63 58 1 60.25808 2 -762 9 64 58 2 58.57127 2 -763 9 65 57 38 22.96934 2 -764 9 66 57 40 29.27129 2 -765 9 67 62 3 59.17056 2 -766 9 68 62 1 59.10024 2 -767 9 69 62 2 56.46164 2 -768 9 70 61 40 33.52121 2 -769 9 71 65 39 28.55677 2 -770 9 72 65 37 41.52463 2 -771 9 73 66 1 67.65213 2 -772 9 74 66 2 77.17037 4 -773 9 75 66 4 77.47773 4 -774 9 76 70 3 72.30869 2 -775 9 77 70 1 74.28746 2 -776 9 78 70 2 77.80595 2 -777 9 79 70 4 79.7671 2 -778 10 0 2 7 76.35177 2 -779 10 1 2 5 72.76657 2 -780 10 2 2 6 75.02062 4 -781 10 3 2 8 63.25341 2 -782 10 4 6 7 66.69563 4 -783 10 5 6 5 60.62591 2 -784 10 6 6 4 58.0186 2 -785 10 7 6 6 56.46559 2 -786 10 8 6 8 47.53771 2 -787 10 9 10 5 49.8238 2 -788 10 10 10 3 44.31258 2 -789 10 11 10 6 46.19948 2 -790 10 12 10 8 52.3055 2 -791 10 13 14 7 45.19958 2 -792 10 14 14 5 45.31415 2 -793 10 15 14 3 46.93551 2 -794 10 16 14 6 50.41778 2 -795 10 17 14 8 64.16636 4 -796 10 18 18 5 52.28206 2 -797 10 19 18 3 73.95923 2 -798 10 20 18 6 46.12734 2 -799 10 21 18 8 68.83853 2 -800 10 22 22 7 43.83673 2 -801 10 23 22 5 50.312 2 -802 10 24 22 6 48.81079 2 -803 10 25 22 8 46.99864 2 -804 10 26 22 10 51.61704 2 -805 10 27 26 3 41.56048 2 -806 10 28 26 1 40.40788 2 -807 10 29 26 4 43.48133 2 -808 10 30 26 6 48.98876 2 -809 10 31 30 11 51.0262 2 -810 10 32 30 9 46.17171 2 -811 10 33 30 10 46.36146 2 -812 10 34 30 12 49.22545 2 -813 10 35 34 5 51.78592 2 -814 10 36 34 3 45.71898 2 -815 10 37 34 1 42.11563 2 -816 10 38 34 2 42.81583 2 -817 10 39 34 4 44.26455 2 -818 10 40 38 3 44.19894 2 -819 10 41 38 1 43.5008 2 -820 10 42 38 2 41.1478 2 -821 10 43 38 4 41.95308 2 -822 10 44 38 6 53.94633 2 -823 10 45 42 11 49.70259 2 -824 10 46 42 9 63.30069 2 -825 10 47 42 10 45.60129 2 -826 10 48 42 12 51.56734 2 -827 10 49 46 5 48.16409 2 -828 10 50 46 3 41.00855 2 -829 10 51 46 2 41.77622 2 -830 10 52 46 4 48.89532 2 -831 10 53 50 9 51.70599 2 -832 10 54 50 7 48.55557 2 -833 10 55 50 5 45.36152 2 -834 10 56 50 6 49.02599 2 -835 10 57 50 8 43.76505 2 -836 10 58 54 7 46.99183 2 -837 10 59 54 5 45.88931 2 -838 10 60 54 4 45.99168 2 -839 10 61 54 6 46.67825 2 -840 10 62 58 7 63.80234 2 -841 10 63 58 5 46.78129 2 -842 10 64 58 4 50.22856 2 -843 10 65 58 6 48.59565 2 -844 10 66 58 8 46.9226 2 -845 10 67 62 7 50.46817 2 -846 10 68 62 5 49.15271 2 -847 10 69 62 4 42.30133 2 -848 10 70 62 6 45.79168 2 -849 10 71 66 7 47.70717 2 -850 10 72 66 5 51.07655 2 -851 10 73 66 3 51.6729 2 -852 10 74 66 6 62.2377 4 -853 10 75 66 8 68.62324 4 -854 10 76 70 7 60.00631 2 -855 10 77 70 5 82.27186 4 -856 10 78 70 6 69.61368 2 -857 10 79 70 8 80.5422 2 -858 11 0 2 13 72.25544 2 -859 11 1 2 11 72.52309 2 -860 11 2 2 9 58.6558 2 -861 11 3 2 10 70.83396 4 -862 11 4 2 12 59.64076 2 -863 11 5 6 11 58.73002 2 -864 11 6 6 9 51.68284 2 -865 11 7 6 10 60.44658 2 -866 11 8 6 12 41.72112 2 -867 11 9 10 11 48.04569 2 -868 11 10 10 9 38.85097 2 -869 11 11 10 7 66.76922 2 -870 11 12 10 10 47.89635 2 -871 11 13 10 12 39.83504 2 -872 11 14 14 11 37.58799 2 -873 11 15 14 9 40.1583 2 -874 11 16 14 10 37.91096 2 -875 11 17 14 12 39.61176 2 -876 11 18 18 11 41.68369 2 -877 11 19 18 9 37.8909 2 -878 11 20 18 7 36.84768 2 -879 11 21 18 10 37.99681 2 -880 11 22 18 12 40.74909 2 -881 11 23 22 11 38.1951 2 -882 11 24 22 9 37.76289 2 -883 11 25 22 12 38.4719 2 -884 11 26 22 14 39.69831 2 -885 11 27 26 9 38.21993 2 -886 11 28 26 7 42.58244 2 -887 11 29 26 5 33.73709 2 -888 11 30 26 8 34.67358 2 -889 11 31 26 10 41.36039 2 -890 11 32 30 15 43.94854 2 -891 11 33 30 13 39.79798 2 -892 11 34 30 14 39.95246 2 -893 11 35 30 16 52.98419 2 -894 11 36 34 9 52.22146 2 -895 11 37 34 7 35.5075 2 -896 11 38 34 6 34.81337 2 -897 11 39 34 8 35.91239 2 -898 11 40 34 10 42.36455 2 -899 11 41 38 9 42.49994 2 -900 11 42 38 7 35.96558 2 -901 11 43 38 5 34.7513 2 -902 11 44 38 8 38.7001 2 -903 11 45 38 10 39.49758 2 -904 11 46 42 15 53.37435 2 -905 11 47 42 13 45.94517 2 -906 11 48 42 14 37.23239 2 -907 11 49 42 16 45.17265 2 -908 11 50 46 9 40.53572 2 -909 11 51 46 7 33.93403 2 -910 11 52 46 6 33.79772 2 -911 11 53 46 8 44.01878 2 -912 11 54 46 10 40.84123 2 -913 11 55 50 13 40.30571 2 -914 11 56 50 11 38.27108 2 -915 11 57 50 10 38.20849 2 -916 11 58 50 12 42.00068 2 -917 11 59 54 11 40.49293 2 -918 11 60 54 9 37.45419 2 -919 11 61 54 8 36.73589 2 -920 11 62 54 10 36.03219 2 -921 11 63 54 12 48.06945 2 -922 11 64 58 11 44.97005 2 -923 11 65 58 9 37.9962 2 -924 11 66 58 10 38.60521 2 -925 11 67 58 12 38.28026 2 -926 11 68 62 11 43.27189 2 -927 11 69 62 9 41.85427 2 -928 11 70 62 8 40.53897 2 -929 11 71 62 10 38.86961 2 -930 11 72 62 12 44.64533 2 -931 11 73 66 11 41.17705 2 -932 11 74 66 9 64.54002 4 -933 11 75 66 10 50.22131 2 -934 11 76 66 12 56.32427 2 -935 11 77 70 11 54.25858 2 -936 11 78 70 9 67.3208 2 -937 11 79 70 10 58.79767 2 -938 11 80 70 12 70.79712 2 -939 11 81 70 14 73.70197 2 -940 12 0 2 17 66.84149 2 -941 12 1 2 15 69.70914 4 -942 12 2 2 14 59.5784 2 -943 12 3 2 16 50.56581 2 -944 12 4 2 18 53.25472 2 -945 12 5 6 15 52.21196 4 -946 12 6 6 13 44.07725 2 -947 12 7 6 14 43.8545 2 -948 12 8 6 16 34.19675 2 -949 12 9 10 15 38.5791 2 -950 12 10 10 13 68.25533 2 -951 12 11 10 14 31.86466 2 -952 12 12 10 16 32.32772 2 -953 12 13 10 18 37.44073 2 -954 12 14 14 15 29.80713 2 -955 12 15 14 13 29.96742 2 -956 12 16 14 14 30.63523 2 -957 12 17 14 16 32.3804 2 -958 12 18 18 17 73.18938 2 -959 12 19 18 15 31.24282 2 -960 12 20 18 13 29.7484 2 -961 12 21 18 14 30.1451 2 -962 12 22 18 16 42.82601 2 -963 12 23 22 15 34.14036 2 -964 12 24 22 13 29.10251 2 -965 12 25 22 16 41.83716 2 -966 12 26 22 18 33.04204 2 -967 12 27 26 15 31.59147 2 -968 12 28 26 13 29.25078 2 -969 12 29 26 11 28.54955 2 -970 12 30 26 12 26.57463 2 -971 12 31 26 14 37.58172 2 -972 12 32 30 19 34.89118 2 -973 12 33 30 17 30.93009 2 -974 12 34 30 18 39.1061 2 -975 12 35 30 20 45.80412 2 -976 12 36 34 15 33.59331 2 -977 12 37 34 13 29.0811 2 -978 12 38 34 11 30.45646 2 -979 12 39 34 12 36.92769 2 -980 12 40 34 14 30.74805 2 -981 12 41 38 13 30.09276 2 -982 12 42 38 11 29.49794 2 -983 12 43 38 12 29.138 2 -984 12 44 38 14 30.65805 2 -985 12 45 38 16 33.59331 2 -986 12 46 42 19 45.74312 2 -987 12 47 42 17 37.09484 2 -988 12 48 42 18 50.73305 2 -989 12 49 42 20 34.85935 2 -990 12 50 46 13 37.63457 2 -991 12 51 46 11 26.64993 2 -992 12 52 46 12 31.28635 2 -993 12 53 46 14 41.4693 2 -994 12 54 46 16 34.3615 2 -995 12 55 50 17 33.04297 2 -996 12 56 50 15 30.16349 2 -997 12 57 50 14 38.80458 2 -998 12 58 50 16 35.10141 2 -999 12 59 54 15 47.82306 2 -1000 12 60 54 13 30.62337 2 -1001 12 61 54 14 29.39889 2 -1002 12 62 54 16 30.97098 2 -1003 12 63 54 18 41.86196 2 -1004 12 64 58 15 33.03971 2 -1005 12 65 58 13 32.42623 2 -1006 12 66 58 14 30.5161 2 -1007 12 67 58 16 29.99677 2 -1008 12 68 62 17 35.34495 2 -1009 12 69 62 15 34.75894 2 -1010 12 70 62 13 31.5317 2 -1011 12 71 62 14 33.28469 2 -1012 12 72 62 16 67.06571 2 -1013 12 73 66 15 34.41199 2 -1014 12 74 66 13 43.14892 2 -1015 12 75 66 14 52.5229 2 -1016 12 76 66 16 47.00025 2 -1017 12 77 70 17 54.64238 2 -1018 12 78 70 15 53.65053 2 -1019 12 79 70 13 59.94382 2 -1020 12 80 70 16 61.29859 2 -1021 12 81 70 18 66.37067 2 -1022 13 0 2 21 58.27919 2 -1023 13 1 2 19 48.52403 2 -1024 13 2 2 20 54.00749 2 -1025 13 3 2 22 49.07548 2 -1026 13 4 6 21 49.27903 2 -1027 13 5 6 19 38.69141 2 -1028 13 6 6 17 34.70657 2 -1029 13 7 6 18 33.04867 2 -1030 13 8 6 20 26.42041 2 -1031 13 9 10 19 35.88087 2 -1032 13 10 10 17 24.54554 2 -1033 13 11 10 20 26.42392 2 -1034 13 12 10 22 26.2246 2 -1035 13 13 14 21 33.81754 2 -1036 13 14 14 19 31.90584 2 -1037 13 15 14 17 21.96138 2 -1038 13 16 14 18 32.52321 2 -1039 13 17 14 20 27.99545 2 -1040 13 18 18 21 24.14617 2 -1041 13 19 18 19 23.0805 2 -1042 13 20 18 18 22.01956 2 -1043 13 21 18 20 26.7366 2 -1044 13 22 18 22 27.40142 2 -1045 13 23 22 19 29.30434 2 -1046 13 24 22 17 28.84299 2 -1047 13 25 22 20 25.64664 2 -1048 13 26 22 22 26.08491 2 -1049 13 27 26 19 31.43146 2 -1050 13 28 26 17 29.13325 2 -1051 13 29 26 16 28.10749 2 -1052 13 30 26 18 22.26734 2 -1053 13 31 26 20 26.10052 2 -1054 13 32 30 23 26.06544 2 -1055 13 33 30 21 23.97962 2 -1056 13 34 30 22 23.94105 2 -1057 13 35 30 24 38.30002 2 -1058 13 36 34 19 47.66401 2 -1059 13 37 34 17 22.26326 2 -1060 13 38 34 16 22.5462 2 -1061 13 39 34 18 21.40779 2 -1062 13 40 34 20 24.31542 2 -1063 13 41 38 19 24.31542 2 -1064 13 42 38 17 22.41765 2 -1065 13 43 38 15 21.57861 2 -1066 13 44 38 18 22.18582 2 -1067 13 45 38 20 30.84276 2 -1068 13 46 42 23 38.29905 2 -1069 13 47 42 21 29.28572 2 -1070 13 48 42 22 25.20417 2 -1071 13 49 42 24 28.96924 2 -1072 13 50 46 19 26.10157 2 -1073 13 51 46 17 22.26628 2 -1074 13 52 46 15 28.10595 2 -1075 13 53 46 18 31.01349 2 -1076 13 54 46 20 33.81077 2 -1077 13 55 50 21 26.08597 2 -1078 13 56 50 19 22.84868 2 -1079 13 57 50 18 23.07442 2 -1080 13 58 50 20 26.50211 2 -1081 13 59 54 21 27.25237 2 -1082 13 60 54 19 28.40328 2 -1083 13 61 54 17 23.16806 2 -1084 13 62 54 20 42.42507 2 -1085 13 63 54 22 24.14508 2 -1086 13 64 58 19 28.66337 2 -1087 13 65 58 17 32.85077 2 -1088 13 66 58 18 22.30959 2 -1089 13 67 58 20 32.61965 2 -1090 13 68 58 22 34.707 2 -1091 13 69 62 21 28.02345 2 -1092 13 70 62 19 25.58199 2 -1093 13 71 62 18 24.02014 2 -1094 13 72 62 20 35.37728 2 -1095 13 73 66 19 26.81449 2 -1096 13 74 66 17 35.47078 2 -1097 13 75 66 18 35.50182 2 -1098 13 76 66 20 39.14936 2 -1099 13 77 66 22 49.46113 2 -1100 13 78 70 21 53.12184 2 -1101 13 79 70 19 52.81032 2 -1102 13 80 70 20 49.43374 2 -1103 13 81 70 22 57.43348 2 -1104 14 0 2 27 64.92168 2 -1105 14 1 2 25 49.75104 2 -1106 14 2 2 23 43.08506 2 -1107 14 3 2 24 43.06265 2 -1108 14 4 2 26 38.80227 2 -1109 14 5 6 25 37.11431 2 -1110 14 6 6 23 34.59297 2 -1111 14 7 6 22 29.55676 2 -1112 14 8 6 24 30.48824 2 -1113 14 9 6 26 21.01691 2 -1114 14 10 10 23 26.72658 2 -1115 14 11 10 21 15.55635 2 -1116 14 12 10 24 23.55342 2 -1117 14 13 10 26 17.63898 2 -1118 14 14 14 25 20.88401 2 -1119 14 15 14 23 15.5296 2 -1120 14 16 14 22 16.94297 2 -1121 14 17 14 24 21.46108 2 -1122 14 18 14 26 19.5678 2 -1123 14 19 18 25 16.47208 2 -1124 14 20 18 23 22.4577 2 -1125 14 21 18 24 15.69847 2 -1126 14 22 18 26 16.49094 2 -1127 14 23 18 28 21.65304 2 -1128 14 24 22 23 13.99738 2 -1129 14 25 22 21 12.93224 2 -1130 14 26 22 24 15.36176 2 -1131 14 27 22 26 18.20183 2 -1132 14 28 26 25 22.02346 2 -1133 14 29 26 23 19.44761 2 -1134 14 30 26 21 14.36077 2 -1135 14 31 26 22 14.39818 2 -1136 14 32 26 24 29.50984 2 -1137 14 33 30 27 42.57497 2 -1138 14 34 30 25 16.10568 2 -1139 14 35 30 26 18.35915 2 -1140 14 36 30 28 26.80935 2 -1141 14 37 34 25 19.43044 2 -1142 14 38 34 23 16.78974 2 -1143 14 39 34 21 17.36678 2 -1144 14 40 34 22 14.85586 2 -1145 14 41 34 24 20.77229 2 -1146 14 42 38 23 20.77229 2 -1147 14 43 38 21 14.85586 2 -1148 14 44 38 22 15.90561 2 -1149 14 45 38 24 16.8138 2 -1150 14 46 38 26 19.43044 2 -1151 14 47 42 27 31.32024 2 -1152 14 48 42 25 18.13262 2 -1153 14 49 42 26 16.68937 2 -1154 14 50 42 28 23.29672 2 -1155 14 51 46 23 29.50879 2 -1156 14 52 46 21 14.39923 2 -1157 14 53 46 22 16.47419 2 -1158 14 54 46 24 21.41867 2 -1159 14 55 46 26 28.28838 2 -1160 14 56 50 25 18.20276 2 -1161 14 57 50 23 14.70925 2 -1162 14 58 50 22 14.32016 2 -1163 14 59 50 24 17.56833 2 -1164 14 60 54 27 21.65412 2 -1165 14 61 54 25 17.0086 2 -1166 14 62 54 23 15.80667 2 -1167 14 63 54 24 22.2441 2 -1168 14 64 54 26 16.47117 2 -1169 14 65 58 25 19.34983 2 -1170 14 66 58 23 30.13197 2 -1171 14 67 58 21 19.1058 2 -1172 14 68 58 24 15.29574 2 -1173 14 69 58 26 31.1665 2 -1174 14 70 62 25 18.44268 2 -1175 14 71 62 23 19.90882 2 -1176 14 72 62 22 15.52197 2 -1177 14 73 62 24 31.46532 2 -1178 14 74 66 25 21.21409 2 -1179 14 75 66 23 30.12183 2 -1180 14 76 66 21 31.07978 2 -1181 14 77 66 24 35.00092 2 -1182 14 78 66 26 37.28354 2 -1183 14 79 70 25 38.89145 2 -1184 14 80 70 23 45.04887 2 -1185 14 81 70 24 43.44064 2 -1186 14 82 70 26 48.33135 2 -1187 14 83 70 28 71.59924 2 -1188 15 0 2 31 50.43089 2 -1189 15 1 2 29 42.91298 2 -1190 15 2 2 28 42.38418 2 -1191 15 3 2 30 37.04332 2 -1192 15 4 2 32 33.13819 2 -1193 15 5 6 29 35.29976 2 -1194 15 6 6 27 28.63352 2 -1195 15 7 6 28 33.40365 2 -1196 15 8 6 30 24.88162 2 -1197 15 9 10 29 24.44129 2 -1198 15 10 10 27 21.2074 2 -1199 15 11 10 25 11.33985 2 -1200 15 12 10 28 11.45056 2 -1201 15 13 10 30 10.29005 2 -1202 15 14 14 31 13.50341 2 -1203 15 15 14 29 11.7388 2 -1204 15 16 14 27 12.56531 2 -1205 15 17 14 28 10.02605 2 -1206 15 18 14 30 15.89419 2 -1207 15 19 18 29 21.79189 2 -1208 15 20 18 27 7.03516 2 -1209 15 21 18 30 8.65807 2 -1210 15 22 18 32 11.21766 2 -1211 15 23 22 29 19.01182 2 -1212 15 24 22 27 9.57281 2 -1213 15 25 22 25 6.27222 2 -1214 15 26 22 28 8.19972 2 -1215 15 27 22 30 11.14191 2 -1216 15 28 26 29 10.2985 2 -1217 15 29 26 27 7.6623 2 -1218 15 30 26 26 11.20595 2 -1219 15 31 26 28 10.42459 2 -1220 15 32 26 30 14.68808 2 -1221 15 33 30 31 14.53416 2 -1222 15 34 30 29 8.5976 2 -1223 15 35 30 30 8.98877 2 -1224 15 36 30 32 16.1621 2 -1225 15 37 34 29 14.76556 2 -1226 15 38 34 27 8.87152 2 -1227 15 39 34 26 13.65054 2 -1228 15 40 34 28 9.28566 2 -1229 15 41 34 30 10.37757 2 -1230 15 42 38 29 10.37757 2 -1231 15 43 38 27 9.28566 2 -1232 15 44 38 25 13.65054 2 -1233 15 45 38 28 8.87152 2 -1234 15 46 38 30 14.76556 2 -1235 15 47 42 31 15.49839 2 -1236 15 48 42 29 11.27373 2 -1237 15 49 42 30 8.59656 2 -1238 15 50 42 32 14.53513 2 -1239 15 51 46 29 14.68903 2 -1240 15 52 46 27 10.42354 2 -1241 15 53 46 25 11.72413 2 -1242 15 54 46 28 8.3204 2 -1243 15 55 46 30 10.29715 2 -1244 15 56 50 29 11.14283 2 -1245 15 57 50 27 8.19865 2 -1246 15 58 50 26 6.62438 2 -1247 15 59 50 28 10.08771 2 -1248 15 60 50 30 18.88891 2 -1249 15 61 54 31 11.21875 2 -1250 15 62 54 29 8.58801 2 -1251 15 63 54 28 7.03607 2 -1252 15 64 54 30 21.79081 2 -1253 15 65 58 29 15.89309 2 -1254 15 66 58 27 10.06231 2 -1255 15 67 58 28 10.28065 2 -1256 15 68 58 30 11.70369 2 -1257 15 69 58 32 13.93244 2 -1258 15 70 62 29 11.04871 2 -1259 15 71 62 27 11.44943 2 -1260 15 72 62 26 11.47411 2 -1261 15 73 62 28 20.97101 2 -1262 15 74 62 30 24.43964 2 -1263 15 75 66 29 25.17828 2 -1264 15 76 66 27 30.0047 2 -1265 15 77 66 28 28.41148 2 -1266 15 78 66 30 31.39813 2 -1267 15 79 70 31 32.30377 2 -1268 15 80 70 29 33.06341 2 -1269 15 81 70 27 45.94646 2 -1270 15 82 70 30 42.29697 2 -1271 15 83 70 32 49.46457 2 -1272 16 0 2 35 48.0883 2 -1273 16 1 2 33 37.51395 2 -1274 16 2 2 34 43.08496 2 -1275 16 3 2 36 31.11689 2 -1276 16 4 6 35 35.7749 2 -1277 16 5 6 33 32.24863 2 -1278 16 6 6 31 28.41377 2 -1279 16 7 6 32 25.30389 2 -1280 16 8 6 34 22.04166 2 -1281 16 9 10 33 23.00888 2 -1282 16 10 10 31 20.48656 2 -1283 16 11 10 32 23.47465 2 -1284 16 12 10 34 10.20182 2 -1285 16 13 10 36 6.4633 2 -1286 16 14 14 35 13.32957 2 -1287 16 15 14 33 6.42536 2 -1288 16 16 14 32 6.6564 2 -1289 16 17 14 34 12.45247 2 -1290 16 18 14 36 11.33494 2 -1291 16 19 18 33 16.05421 2 -1292 16 20 18 31 7.70233 2 -1293 16 21 18 34 5.47382 2 -1294 16 22 18 36 7.15977 2 -1295 16 23 22 33 15.03659 2 -1296 16 24 22 31 8.28612 2 -1297 16 25 22 32 16.41049 2 -1298 16 26 22 34 8.02648 2 -1299 16 27 22 36 15.24296 2 -1300 16 28 26 35 12.31123 2 -1301 16 29 26 33 6.20181 2 -1302 16 30 26 31 6.72358 2 -1303 16 31 26 32 6.74817 2 -1304 16 32 26 34 14.60575 2 -1305 16 33 30 35 12.44338 2 -1306 16 34 30 33 4.64168 2 -1307 16 35 30 34 4.86838 2 -1308 16 36 30 36 12.55814 2 -1309 16 37 34 35 14.71438 2 -1310 16 38 34 33 5.66584 2 -1311 16 39 34 31 7.18876 2 -1312 16 40 34 32 9.15155 2 -1313 16 41 34 34 9.21947 2 -1314 16 42 38 33 9.21947 2 -1315 16 43 38 31 9.15155 2 -1316 16 44 38 32 7.57494 2 -1317 16 45 38 34 5.66584 2 -1318 16 46 38 36 14.26327 2 -1319 16 47 42 35 12.64167 2 -1320 16 48 42 33 4.73114 2 -1321 16 49 42 34 4.64064 2 -1322 16 50 42 36 12.44435 2 -1323 16 51 46 33 14.9257 2 -1324 16 52 46 31 6.74922 2 -1325 16 53 46 32 6.72452 2 -1326 16 54 46 34 6.09328 2 -1327 16 55 46 36 12.57218 2 -1328 16 56 50 35 17.9066 2 -1329 16 57 50 33 7.61884 2 -1330 16 58 50 31 13.64106 2 -1331 16 59 50 32 8.01061 2 -1332 16 60 50 34 13.70888 2 -1333 16 61 54 35 7.16085 2 -1334 16 62 54 33 5.47291 2 -1335 16 63 54 32 7.70125 2 -1336 16 64 54 34 16.05512 2 -1337 16 65 58 35 11.33604 2 -1338 16 66 58 33 12.1505 2 -1339 16 67 58 31 6.48095 2 -1340 16 68 58 34 6.30589 2 -1341 16 69 58 36 13.02782 2 -1342 16 70 62 35 6.46443 2 -1343 16 71 62 33 10.21163 2 -1344 16 72 62 31 25.73826 2 -1345 16 73 62 32 21.02806 2 -1346 16 74 62 34 22.8092 2 -1347 16 75 66 33 23.19435 2 -1348 16 76 66 31 29.56648 2 -1349 16 77 66 32 32.88296 2 -1350 16 78 66 34 30.46237 2 -1351 16 79 66 36 39.37489 2 -1352 16 80 70 35 34.45461 2 -1353 16 81 70 33 44.56784 2 -1354 16 82 70 34 37.56404 2 -1355 16 83 70 36 50.48351 2 -1356 17 0 2 39 55.89152 2 -1357 17 1 2 37 43.76914 2 -1358 17 2 2 38 45.4821 2 -1359 17 3 2 40 39.40415 2 -1360 17 4 6 39 41.22644 2 -1361 17 5 6 37 45.49474 2 -1362 17 6 6 36 38.18893 2 -1363 17 7 6 38 30.86861 2 -1364 17 8 6 40 26.1492 2 -1365 17 9 10 39 31.4181 2 -1366 17 10 10 37 27.82861 2 -1367 17 11 10 35 19.79086 2 -1368 17 12 10 38 21.19384 2 -1369 17 13 10 40 11.08373 2 -1370 17 14 14 39 18.87433 2 -1371 17 15 14 37 13.44036 2 -1372 17 16 14 38 12.97947 2 -1373 17 17 14 40 12.66558 2 -1374 17 18 18 39 21.95355 2 -1375 17 19 18 37 15.51747 2 -1376 17 20 18 35 16.06598 2 -1377 17 21 18 38 13.08165 2 -1378 17 22 18 40 12.71516 2 -1379 17 23 22 39 20.60304 2 -1380 17 24 22 37 14.94782 2 -1381 17 25 22 35 16.35647 2 -1382 17 26 22 38 14.06808 2 -1383 17 27 22 40 13.75759 2 -1384 17 28 26 39 18.0145 2 -1385 17 29 26 37 13.52479 2 -1386 17 30 26 36 16.67374 2 -1387 17 31 26 38 13.00469 2 -1388 17 32 26 40 22.33045 2 -1389 17 33 30 39 19.48113 2 -1390 17 34 30 37 13.36066 2 -1391 17 35 30 38 11.67926 2 -1392 17 36 30 40 18.87082 2 -1393 17 37 34 39 20.31476 2 -1394 17 38 34 37 13.53189 2 -1395 17 39 34 36 15.54272 2 -1396 17 40 34 38 16.7468 2 -1397 17 41 34 40 16.77501 2 -1398 17 42 38 39 13.58203 2 -1399 17 43 38 37 14.55761 2 -1400 17 44 38 35 15.54272 2 -1401 17 45 38 38 13.15827 2 -1402 17 46 38 40 20.38915 2 -1403 17 47 42 39 21.09871 2 -1404 17 48 42 37 13.27513 2 -1405 17 49 42 38 13.35962 2 -1406 17 50 42 40 19.48209 2 -1407 17 51 46 39 20.64395 2 -1408 17 52 46 37 13.5281 2 -1409 17 53 46 35 16.50998 2 -1410 17 54 46 38 13.52384 2 -1411 17 55 46 40 18.01555 2 -1412 17 56 50 39 18.29075 2 -1413 17 57 50 37 16.14362 2 -1414 17 58 50 36 23.69835 2 -1415 17 59 50 38 14.94682 2 -1416 17 60 50 40 21.11776 2 -1417 17 61 54 39 12.71624 2 -1418 17 62 54 37 13.08074 2 -1419 17 63 54 36 16.06498 2 -1420 17 64 54 38 14.77244 2 -1421 17 65 54 40 21.35948 2 -1422 17 66 58 39 12.66668 2 -1423 17 67 58 37 12.97858 2 -1424 17 68 58 38 13.43926 2 -1425 17 69 58 40 18.87543 2 -1426 17 70 62 39 11.08287 2 -1427 17 71 62 37 21.19469 2 -1428 17 72 62 36 18.88258 2 -1429 17 73 62 38 28.0485 2 -1430 17 74 62 40 28.39789 2 -1431 17 75 66 39 25.56449 2 -1432 17 76 66 37 33.93886 2 -1433 17 77 66 35 41.63254 2 -1434 17 78 66 38 40.28121 2 -1435 17 79 66 40 41.96925 2 -1436 17 80 70 39 40.79282 2 -1437 17 81 70 37 51.40185 2 -1438 17 82 70 38 43.84238 2 -1439 17 83 70 40 57.02794 2 -1440 18 0 3 5 57.67356 2 -1441 18 1 3 3 47.79481 2 -1442 18 2 3 1 44.72475 2 -1443 18 3 3 2 44.75078 2 -1444 18 4 3 4 31.81815 2 -1445 18 5 7 5 36.6016 2 -1446 18 6 7 3 29.7034 2 -1447 18 7 7 1 25.40746 2 -1448 18 8 7 2 26.13851 2 -1449 18 9 7 4 16.53054 2 -1450 18 10 11 3 20.96228 2 -1451 18 11 11 1 16.95669 2 -1452 18 12 11 2 21.02988 2 -1453 18 13 11 4 13.30963 2 -1454 18 14 15 3 15.72187 2 -1455 18 15 15 1 12.47471 2 -1456 18 16 15 2 13.68342 2 -1457 18 17 15 4 23.83271 2 -1458 18 18 15 6 25.97171 2 -1459 18 19 19 5 25.20065 2 -1460 18 20 19 3 13.37779 2 -1461 18 21 19 1 12.14346 2 -1462 18 22 19 2 12.8744 2 -1463 18 23 19 4 27.74299 2 -1464 18 24 23 3 15.43027 2 -1465 18 25 23 1 12.87779 2 -1466 18 26 23 2 13.11159 2 -1467 18 27 23 4 14.41199 2 -1468 18 28 23 6 25.18508 2 -1469 18 29 27 3 19.82516 2 -1470 18 30 27 1 11.13332 2 -1471 18 31 27 2 11.34173 2 -1472 18 32 27 4 14.18154 2 -1473 18 33 31 5 17.2441 2 -1474 18 34 31 3 18.29618 2 -1475 18 35 31 1 11.73186 2 -1476 18 36 31 2 11.81175 2 -1477 18 37 31 4 20.76759 2 -1478 18 38 35 5 24.29041 2 -1479 18 39 35 3 14.04401 2 -1480 18 40 35 1 11.72174 2 -1481 18 41 35 2 13.31297 2 -1482 18 42 35 4 17.14507 2 -1483 18 43 39 3 17.14507 2 -1484 18 44 39 1 13.31297 2 -1485 18 45 39 2 11.72174 2 -1486 18 46 39 4 15.94486 2 -1487 18 47 39 6 24.29041 2 -1488 18 48 43 3 23.86798 2 -1489 18 49 43 1 11.81279 2 -1490 18 50 43 2 12.70959 2 -1491 18 51 43 4 18.29707 2 -1492 18 52 43 6 17.24313 2 -1493 18 53 47 3 14.18249 2 -1494 18 54 47 1 11.34078 2 -1495 18 55 47 2 11.13238 2 -1496 18 56 47 4 19.31265 2 -1497 18 57 51 5 25.67091 2 -1498 18 58 51 3 14.9623 2 -1499 18 59 51 1 13.11252 2 -1500 18 60 51 2 11.82569 2 -1501 18 61 51 4 15.42921 2 -1502 18 62 55 3 24.37766 2 -1503 18 63 55 1 12.87341 2 -1504 18 64 55 2 12.56933 2 -1505 18 65 55 4 13.37679 2 -1506 18 66 55 6 22.69578 2 -1507 18 67 59 5 25.97061 2 -1508 18 68 59 3 23.83171 2 -1509 18 69 59 1 13.68452 2 -1510 18 70 59 2 12.47382 2 -1511 18 71 59 4 15.72098 2 -1512 18 72 63 3 13.34629 2 -1513 18 73 63 1 21.02226 2 -1514 18 74 63 2 16.95584 2 -1515 18 75 63 4 20.94298 2 -1516 18 76 67 3 16.16042 2 -1517 18 77 67 1 25.99086 2 -1518 18 78 67 2 24.88784 2 -1519 18 79 67 4 29.76539 2 -1520 18 80 67 6 36.22879 2 -1521 18 81 71 3 36.54593 2 -1522 18 82 71 1 45.44817 2 -1523 18 83 71 2 39.09429 2 -1524 18 84 71 4 47.87234 2 -1525 18 85 71 6 58.92879 2 -1526 19 0 3 9 50.63424 2 -1527 19 1 3 7 38.77725 2 -1528 19 2 3 6 42.88533 2 -1529 19 3 3 8 33.34238 2 -1530 19 4 3 10 28.48622 2 -1531 19 5 7 9 30.5504 2 -1532 19 6 7 7 28.13503 2 -1533 19 7 7 6 25.67235 2 -1534 19 8 7 8 21.53354 2 -1535 19 9 7 10 12.34175 2 -1536 19 10 11 7 21.13316 2 -1537 19 11 11 5 12.11658 2 -1538 19 12 11 6 15.17622 2 -1539 19 13 11 8 5.29351 2 -1540 19 14 15 9 16.40099 2 -1541 19 15 15 7 7.47552 2 -1542 19 16 15 5 3.98966 2 -1543 19 17 15 8 6.03629 2 -1544 19 18 15 10 15.92082 2 -1545 19 19 19 9 12.19199 2 -1546 19 20 19 7 7.22856 2 -1547 19 21 19 6 4.83278 2 -1548 19 22 19 8 5.79017 2 -1549 19 23 19 10 11.53899 2 -1550 19 24 23 9 10.59128 2 -1551 19 25 23 7 6.00316 2 -1552 19 26 23 5 9.32458 2 -1553 19 27 23 8 6.52571 2 -1554 19 28 23 10 18.66009 2 -1555 19 29 27 7 12.47657 2 -1556 19 30 27 5 6.33703 2 -1557 19 31 27 6 4.02786 2 -1558 19 32 27 8 7.27251 2 -1559 19 33 31 9 15.26806 2 -1560 19 34 31 7 8.39428 2 -1561 19 35 31 6 7.87247 2 -1562 19 36 31 8 5.54141 2 -1563 19 37 31 10 14.64482 2 -1564 19 38 35 9 14.11555 2 -1565 19 39 35 7 11.28237 2 -1566 19 40 35 6 13.73802 2 -1567 19 41 35 8 8.61505 2 -1568 19 42 35 10 9.72756 2 -1569 19 43 39 9 9.72756 2 -1570 19 44 39 7 8.61505 2 -1571 19 45 39 5 13.73802 2 -1572 19 46 39 8 11.29063 2 -1573 19 47 39 10 14.11555 2 -1574 19 48 43 9 14.68596 2 -1575 19 49 43 7 5.54244 2 -1576 19 50 43 5 7.88772 2 -1577 19 51 43 8 8.39331 2 -1578 19 52 43 10 15.26903 2 -1579 19 53 47 7 7.27345 2 -1580 19 54 47 5 4.02691 2 -1581 19 55 47 6 6.33797 2 -1582 19 56 47 8 12.47752 2 -1583 19 57 51 9 16.50132 2 -1584 19 58 51 7 6.52678 2 -1585 19 59 51 6 9.32365 2 -1586 19 60 51 8 5.50278 2 -1587 19 61 51 10 10.59036 2 -1588 19 62 55 9 11.5399 2 -1589 19 63 55 7 5.79108 2 -1590 19 64 55 5 4.83187 2 -1591 19 65 55 8 7.22955 2 -1592 19 66 55 10 12.19108 2 -1593 19 67 59 9 16.00014 2 -1594 19 68 59 7 6.03718 2 -1595 19 69 59 6 3.99075 2 -1596 19 70 59 8 7.47442 2 -1597 19 71 59 10 16.40188 2 -1598 19 72 63 7 5.74209 2 -1599 19 73 63 5 16.16898 2 -1600 19 74 63 6 14.63339 2 -1601 19 75 63 8 21.34312 2 -1602 19 76 67 9 12.3406 2 -1603 19 77 67 7 22.22193 2 -1604 19 78 67 5 25.30141 2 -1605 19 79 67 8 30.93936 2 -1606 19 80 67 10 30.55052 2 -1607 19 81 71 9 28.91728 2 -1608 19 82 71 7 31.15354 2 -1609 19 83 71 5 42.5745 2 -1610 19 84 71 8 37.62314 2 -1611 19 85 71 10 50.53018 2 -1612 20 0 3 13 56.74044 2 -1613 20 1 3 11 39.48188 2 -1614 20 2 3 12 45.98216 2 -1615 20 3 3 14 31.1347 2 -1616 20 4 7 15 45.41426 2 -1617 20 5 7 13 34.32958 2 -1618 20 6 7 11 29.34311 2 -1619 20 7 7 12 28.1238 2 -1620 20 8 7 14 19.28039 2 -1621 20 9 11 13 24.50282 2 -1622 20 10 11 11 22.40418 2 -1623 20 11 11 9 17.13271 2 -1624 20 12 11 10 13.7174 2 -1625 20 13 11 12 9.79413 2 -1626 20 14 15 13 12.7419 2 -1627 20 15 15 11 13.09168 2 -1628 20 16 15 12 13.90524 2 -1629 20 17 15 14 9.52776 2 -1630 20 18 15 16 12.24832 2 -1631 20 19 19 15 12.91909 2 -1632 20 20 19 13 7.47677 2 -1633 20 21 19 11 9.01367 2 -1634 20 22 19 12 9.64128 2 -1635 20 23 19 14 12.01561 2 -1636 20 24 23 13 10.83073 2 -1637 20 25 23 11 7.87626 2 -1638 20 26 23 12 7.22719 2 -1639 20 27 23 14 14.1944 2 -1640 20 28 23 16 13.30176 2 -1641 20 29 27 11 16.31919 2 -1642 20 30 27 9 11.70595 2 -1643 20 31 27 10 10.54005 2 -1644 20 32 27 12 9.09838 2 -1645 20 33 31 15 12.13293 2 -1646 20 34 31 13 14.2539 2 -1647 20 35 31 11 8.39258 2 -1648 20 36 31 12 8.35251 2 -1649 20 37 31 14 16.93341 2 -1650 20 38 35 15 14.7884 2 -1651 20 39 35 13 7.08939 2 -1652 20 40 35 11 8.49312 2 -1653 20 41 35 12 9.83805 2 -1654 20 42 35 14 9.83158 2 -1655 20 43 39 13 9.83158 2 -1656 20 44 39 11 9.83805 2 -1657 20 45 39 12 8.42154 2 -1658 20 46 39 14 7.08939 2 -1659 20 47 39 16 15.39552 2 -1660 20 48 43 13 21.43831 2 -1661 20 49 43 11 8.94239 2 -1662 20 50 43 12 9.25064 2 -1663 20 51 43 14 13.90778 2 -1664 20 52 43 16 11.61413 2 -1665 20 53 47 11 9.09933 2 -1666 20 54 47 9 9.60163 2 -1667 20 55 47 10 9.90139 2 -1668 20 56 47 12 16.32024 2 -1669 20 57 51 15 13.30269 2 -1670 20 58 51 13 14.19347 2 -1671 20 59 51 11 7.22812 2 -1672 20 60 51 12 8.69492 2 -1673 20 61 51 14 10.8298 2 -1674 20 62 55 13 12.01652 2 -1675 20 63 55 11 9.64037 2 -1676 20 64 55 12 9.19197 2 -1677 20 65 55 14 7.47586 2 -1678 20 66 55 16 16.67013 2 -1679 20 67 59 15 12.24941 2 -1680 20 68 59 13 10.32922 2 -1681 20 69 59 11 13.15715 2 -1682 20 70 59 12 13.09278 2 -1683 20 71 59 14 12.74103 2 -1684 20 72 63 11 9.87515 2 -1685 20 73 63 9 13.96303 2 -1686 20 74 63 10 16.54306 2 -1687 20 75 63 12 22.86061 2 -1688 20 76 63 14 24.75684 2 -1689 20 77 67 13 19.0911 2 -1690 20 78 67 11 29.18991 2 -1691 20 79 67 12 29.99811 2 -1692 20 80 67 14 34.84985 2 -1693 20 81 67 16 44.92187 2 -1694 20 82 71 13 30.58745 2 -1695 20 83 71 11 45.84966 2 -1696 20 84 71 12 45.39133 2 -1697 20 85 71 14 47.94012 2 -1698 21 0 3 19 54.37033 2 -1699 21 1 3 17 53.87666 2 -1700 21 2 3 15 50.47687 2 -1701 21 3 3 16 51.70124 2 -1702 21 4 3 18 42.12533 2 -1703 21 5 7 19 45.67312 2 -1704 21 6 7 17 43.85621 2 -1705 21 7 7 16 50.18035 2 -1706 21 8 7 18 37.91249 2 -1707 21 9 7 20 26.28797 2 -1708 21 10 11 17 35.53653 2 -1709 21 11 11 15 27.31297 2 -1710 21 12 11 14 37.25649 2 -1711 21 13 11 16 20.59044 2 -1712 21 14 11 18 25.51916 2 -1713 21 15 15 19 17.15198 2 -1714 21 16 15 17 17.26579 2 -1715 21 17 15 15 19.0944 2 -1716 21 18 15 18 21.80052 2 -1717 21 19 15 20 17.31769 2 -1718 21 20 19 19 25.05865 2 -1719 21 21 19 17 15.34907 2 -1720 21 22 19 16 46.81725 2 -1721 21 23 19 18 15.38062 2 -1722 21 24 19 20 16.69181 2 -1723 21 25 23 17 16.9528 2 -1724 21 26 23 15 23.97574 2 -1725 21 27 23 18 13.53776 2 -1726 21 28 23 20 13.86155 2 -1727 21 29 27 17 22.13235 2 -1728 21 30 27 15 18.76556 2 -1729 21 31 27 13 16.30731 2 -1730 21 32 27 14 16.35628 2 -1731 21 33 27 16 16.65281 2 -1732 21 34 31 19 16.04172 2 -1733 21 35 31 17 17.38185 2 -1734 21 36 31 16 21.43562 2 -1735 21 37 31 18 13.88497 2 -1736 21 38 31 20 20.45273 2 -1737 21 39 35 19 25.98402 2 -1738 21 40 35 17 13.85033 2 -1739 21 41 35 16 25.52384 2 -1740 21 42 35 18 16.13139 2 -1741 21 43 35 20 15.08702 2 -1742 21 44 39 19 15.08702 2 -1743 21 45 39 17 16.1006 2 -1744 21 46 39 15 22.87703 2 -1745 21 47 39 18 13.96635 2 -1746 21 48 39 20 26.14704 2 -1747 21 49 43 19 20.98184 2 -1748 21 50 43 17 15.77236 2 -1749 21 51 43 15 18.587 2 -1750 21 52 43 18 17.3713 2 -1751 21 53 43 20 19.28161 2 -1752 21 54 47 15 16.65375 2 -1753 21 55 47 13 19.38057 2 -1754 21 56 47 14 21.63214 2 -1755 21 57 47 16 22.58399 2 -1756 21 58 47 18 20.05655 2 -1757 21 59 51 19 13.33768 2 -1758 21 60 51 17 17.97427 2 -1759 21 61 51 16 24.25614 2 -1760 21 62 51 18 16.95187 2 -1761 21 63 55 19 18.05953 2 -1762 21 64 55 17 15.35265 2 -1763 21 65 55 15 28.67154 2 -1764 21 66 55 18 17.79303 2 -1765 21 67 55 20 28.44219 2 -1766 21 68 59 19 17.31865 2 -1767 21 69 59 17 19.28422 2 -1768 21 70 59 16 21.79585 2 -1769 21 71 59 18 18.31795 2 -1770 21 72 59 20 16.61102 2 -1771 21 73 63 17 16.72635 2 -1772 21 74 63 15 17.96099 2 -1773 21 75 63 13 32.17348 2 -1774 21 76 63 16 27.72847 2 -1775 21 77 63 18 34.26137 2 -1776 21 78 67 19 26.10697 2 -1777 21 79 67 17 38.68931 2 -1778 21 80 67 15 40.13619 2 -1779 21 81 67 18 43.22702 2 -1780 21 82 67 20 43.29438 2 -1781 21 83 71 17 42.87817 2 -1782 21 84 71 15 53.27163 2 -1783 21 85 71 16 49.17891 2 -1784 21 86 71 18 54.69536 2 -1785 21 87 71 20 62.58179 2 -1786 22 0 3 23 64.17477 2 -1787 22 1 3 21 60.64167 2 -1788 22 2 3 20 63.72104 4 -1789 22 3 3 22 53.14784 2 -1790 22 4 3 24 45.69964 2 -1791 22 5 7 25 65.36512 2 -1792 22 6 7 23 53.95878 2 -1793 22 7 7 21 43.18728 2 -1794 22 8 7 22 44.37864 2 -1795 22 9 7 24 40.57462 2 -1796 22 10 11 21 49.89742 2 -1797 22 11 11 19 40.72096 2 -1798 22 12 11 20 43.31945 2 -1799 22 13 11 22 32.86327 2 -1800 22 14 11 24 24.16504 2 -1801 22 15 15 23 25.13093 2 -1802 22 16 15 21 24.35106 2 -1803 22 17 15 22 27.96916 2 -1804 22 18 15 24 23.55725 2 -1805 22 19 15 26 23.03869 2 -1806 22 20 19 23 26.34996 2 -1807 22 21 19 21 35.90537 2 -1808 22 22 19 22 23.62287 2 -1809 22 23 19 24 21.83732 2 -1810 22 24 23 23 37.17578 2 -1811 22 25 23 21 24.40576 2 -1812 22 26 23 19 25.42995 2 -1813 22 27 23 22 29.54945 2 -1814 22 28 23 24 22.95057 2 -1815 22 29 27 21 26.79246 2 -1816 22 30 27 19 25.48604 2 -1817 22 31 27 18 27.54971 2 -1818 22 32 27 20 24.68959 2 -1819 22 33 27 22 46.99331 2 -1820 22 34 31 25 29.59792 2 -1821 22 35 31 23 22.59298 2 -1822 22 36 31 21 24.4916 2 -1823 22 37 31 22 22.5301 2 -1824 22 38 31 24 29.38737 2 -1825 22 39 35 25 26.94514 2 -1826 22 40 35 23 23.19109 2 -1827 22 41 35 21 24.82268 2 -1828 22 42 35 22 23.55411 2 -1829 22 43 35 24 22.58051 2 -1830 22 44 39 23 22.58051 2 -1831 22 45 39 21 23.58491 2 -1832 22 46 39 22 64.1032 2 -1833 22 47 39 24 22.75722 2 -1834 22 48 39 26 22.97668 2 -1835 22 49 43 23 28.8889 2 -1836 22 50 43 21 23.98375 2 -1837 22 51 43 22 23.14275 2 -1838 22 52 43 24 22.70382 2 -1839 22 53 43 26 35.08067 2 -1840 22 54 47 21 29.78906 2 -1841 22 55 47 19 29.75949 2 -1842 22 56 47 17 30.29682 2 -1843 22 57 47 20 27.27948 2 -1844 22 58 47 22 70.96059 2 -1845 22 59 51 23 22.97609 2 -1846 22 60 51 21 24.55271 2 -1847 22 61 51 20 25.51721 2 -1848 22 62 51 22 24.40484 2 -1849 22 63 51 24 34.48083 2 -1850 22 64 55 23 20.57816 2 -1851 22 65 55 21 24.85614 2 -1852 22 66 55 22 27.37463 2 -1853 22 67 55 24 25.9918 2 -1854 22 68 59 25 22.53491 2 -1855 22 69 59 23 23.57106 2 -1856 22 70 59 21 28.36405 2 -1857 22 71 59 22 24.35195 2 -1858 22 72 59 24 23.72187 2 -1859 22 73 63 23 21.74534 2 -1860 22 74 63 21 32.47999 2 -1861 22 75 63 19 39.76629 2 -1862 22 76 63 20 46.52411 2 -1863 22 77 63 22 47.10822 2 -1864 22 78 67 23 36.35827 2 -1865 22 79 67 21 59.80209 2 -1866 22 80 67 22 41.03943 2 -1867 22 81 67 24 52.62191 2 -1868 22 82 67 26 62.49051 2 -1869 22 83 71 23 45.94357 2 -1870 22 84 71 21 56.63793 2 -1871 22 85 71 19 60.14079 2 -1872 22 86 71 22 62.67652 2 -1873 22 87 71 24 64.58643 2 -1874 23 0 3 27 74.13505 2 -1875 23 1 3 25 68.11311 2 -1876 23 2 3 26 71.87006 2 -1877 23 3 3 28 58.3123 2 -1878 23 4 3 30 54.36537 2 -1879 23 5 7 29 67.95478 2 -1880 23 6 7 27 57.18039 2 -1881 23 7 7 26 60.69373 2 -1882 23 8 7 28 46.79095 2 -1883 23 9 11 27 54.11705 2 -1884 23 10 11 25 53.30766 2 -1885 23 11 11 23 43.93637 2 -1886 23 12 11 26 46.21541 2 -1887 23 13 11 28 91.74515 2 -1888 23 14 15 29 44.03137 2 -1889 23 15 15 27 31.26048 2 -1890 23 16 15 25 31.63847 2 -1891 23 17 15 28 28.56756 2 -1892 23 18 15 30 29.08798 2 -1893 23 19 19 29 44.96228 2 -1894 23 20 19 27 34.12634 2 -1895 23 21 19 25 31.52474 2 -1896 23 22 19 26 32.11132 2 -1897 23 23 19 28 32.27808 2 -1898 23 24 23 27 42.46845 2 -1899 23 25 23 25 31.78283 2 -1900 23 26 23 26 48.39105 2 -1901 23 27 23 28 36.62901 2 -1902 23 28 23 30 29.2747 2 -1903 23 29 27 25 34.49404 2 -1904 23 30 27 23 33.19351 2 -1905 23 31 27 24 34.76687 2 -1906 23 32 27 26 29.66035 2 -1907 23 33 27 28 35.88078 2 -1908 23 34 31 29 37.622 2 -1909 23 35 31 27 29.43079 2 -1910 23 36 31 26 33.97533 2 -1911 23 37 31 28 28.7649 2 -1912 23 38 31 30 34.91705 2 -1913 23 39 35 29 34.93125 2 -1914 23 40 35 27 62.41455 2 -1915 23 41 35 26 32.57629 2 -1916 23 42 35 28 37.51969 2 -1917 23 43 35 30 29.98671 2 -1918 23 44 39 29 29.32753 2 -1919 23 45 39 27 29.6912 2 -1920 23 46 39 25 32.75263 2 -1921 23 47 39 28 29.88 2 -1922 23 48 39 30 30.4951 2 -1923 23 49 43 29 36.14063 2 -1924 23 50 43 27 30.03951 2 -1925 23 51 43 25 33.92278 2 -1926 23 52 43 28 29.42976 2 -1927 23 53 43 30 39.72239 2 -1928 23 54 47 27 35.71517 2 -1929 23 55 47 25 29.29353 2 -1930 23 56 47 23 43.09184 2 -1931 23 57 47 24 31.84617 2 -1932 23 58 47 26 58.48039 2 -1933 23 59 51 29 26.79975 2 -1934 23 60 51 27 36.63001 2 -1935 23 61 51 25 46.39253 2 -1936 23 62 51 26 32.043 2 -1937 23 63 51 28 40.5305 2 -1938 23 64 55 27 30.13983 2 -1939 23 65 55 25 31.69974 2 -1940 23 66 55 26 29.77338 2 -1941 23 67 55 28 33.71082 2 -1942 23 68 55 30 44.80686 2 -1943 23 69 59 29 29.10387 2 -1944 23 70 59 27 28.99476 2 -1945 23 71 59 26 31.59111 2 -1946 23 72 59 28 30.96767 2 -1947 23 73 59 30 46.71967 2 -1948 23 74 63 27 36.20505 2 -1949 23 75 63 25 45.25368 2 -1950 23 76 63 24 47.20405 2 -1951 23 77 63 26 54.1054 2 -1952 23 78 63 28 57.11028 2 -1953 23 79 67 27 48.16911 2 -1954 23 80 67 25 57.10186 2 -1955 23 81 67 28 52.0019 2 -1956 23 82 67 30 62.50449 2 -1957 23 83 71 29 55.12794 2 -1958 23 84 71 27 61.64195 2 -1959 23 85 71 25 67.3648 2 -1960 23 86 71 26 71.24068 2 -1961 23 87 71 28 74.57172 2 -1962 24 0 3 33 81.85775 2 -1963 24 1 3 31 81.11935 2 -1964 24 2 3 29 73.2399 2 -1965 24 3 3 32 70.34806 2 -1966 24 4 3 34 67.18353 2 -1967 24 5 7 33 83.52439 2 -1968 24 6 7 31 73.17687 2 -1969 24 7 7 30 74.39261 2 -1970 24 8 7 32 60.39541 2 -1971 24 9 7 34 56.65705 2 -1972 24 10 11 31 65.84408 2 -1973 24 11 11 29 60.7112 2 -1974 24 12 11 30 60.51431 2 -1975 24 13 11 32 50.48909 2 -1976 24 14 11 34 39.60526 2 -1977 24 15 15 33 47.59766 2 -1978 24 16 15 31 38.53232 2 -1979 24 17 15 32 44.73244 2 -1980 24 18 15 34 34.80931 2 -1981 24 19 15 36 33.75037 2 -1982 24 20 19 33 51.85759 2 -1983 24 21 19 31 41.87715 2 -1984 24 22 19 30 47.08276 2 -1985 24 23 19 32 36.94979 2 -1986 24 24 19 34 36.12101 2 -1987 24 25 23 33 44.70717 2 -1988 24 26 23 31 37.76348 2 -1989 24 27 23 29 48.47765 2 -1990 24 28 23 32 34.78582 2 -1991 24 29 23 34 37.37599 2 -1992 24 30 27 29 41.37344 2 -1993 24 31 27 27 40.18856 2 -1994 24 32 27 30 39.76393 2 -1995 24 33 27 32 34.67122 2 -1996 24 34 27 34 37.78612 2 -1997 24 35 31 35 46.15473 2 -1998 24 36 31 33 35.78589 2 -1999 24 37 31 31 39.13625 2 -2000 24 38 31 32 38.87211 2 -2001 24 39 31 34 37.90563 2 -2002 24 40 35 35 41.3622 2 -2003 24 41 35 33 43.10304 2 -2004 24 42 35 31 55.00656 2 -2005 24 43 35 32 37.33815 2 -2006 24 44 35 34 51.59228 2 -2007 24 45 39 33 35.32111 2 -2008 24 46 39 31 35.53408 2 -2009 24 47 39 32 38.50863 2 -2010 24 48 39 34 35.61365 2 -2011 24 49 39 36 37.54204 2 -2012 24 50 43 33 39.29691 2 -2013 24 51 43 31 38.72261 2 -2014 24 52 43 32 41.13833 2 -2015 24 53 43 34 36.07917 2 -2016 24 54 43 36 44.61152 2 -2017 24 55 47 33 56.31144 2 -2018 24 56 47 31 34.41994 2 -2019 24 57 47 29 40.51026 2 -2020 24 58 47 28 40.28735 2 -2021 24 59 47 30 41.81533 2 -2022 24 60 51 33 38.32707 2 -2023 24 61 51 31 34.89145 2 -2024 24 62 51 30 43.37212 2 -2025 24 63 51 32 37.81139 2 -2026 24 64 51 34 48.28666 2 -2027 24 65 55 33 36.04488 2 -2028 24 66 55 31 36.57109 2 -2029 24 67 55 29 47.86547 2 -2030 24 68 55 32 37.54363 2 -2031 24 69 55 34 50.42012 2 -2032 24 70 59 35 34.37362 2 -2033 24 71 59 33 34.58114 2 -2034 24 72 59 31 44.21261 2 -2035 24 73 59 32 38.17369 2 -2036 24 74 59 34 46.86108 2 -2037 24 75 63 33 66.47323 2 -2038 24 76 63 31 54.16687 2 -2039 24 77 63 29 55.43549 2 -2040 24 78 63 30 61.81933 2 -2041 24 79 63 32 58.4488 2 -2042 24 80 67 33 62.5977 2 -2043 24 81 67 31 65.24983 2 -2044 24 82 67 29 74.13359 2 -2045 24 83 67 32 67.89078 2 -2046 24 84 67 34 71.07318 2 -2047 24 85 71 33 67.83102 2 -2048 24 86 71 31 71.88914 2 -2049 24 87 71 30 77.4677 2 -2050 24 88 71 32 84.45451 2 -2051 24 89 71 34 83.04755 2 -2052 25 0 3 37 91.77355 2 -2053 25 1 3 35 90.80017 2 -2054 25 2 3 36 85.03802 2 -2055 25 3 3 38 83.08509 2 -2056 25 4 3 40 69.62965 2 -2057 25 5 7 37 92.56151 2 -2058 25 6 7 35 72.42574 4 -2059 25 7 7 36 78.38662 2 -2060 25 8 7 38 66.49936 2 -2061 25 9 7 40 60.55761 2 -2062 25 10 11 35 64.26471 2 -2063 25 11 11 33 64.15835 2 -2064 25 12 11 36 61.43029 2 -2065 25 13 11 38 54.09519 2 -2066 25 14 11 40 45.75052 2 -2067 25 15 15 39 56.6665 2 -2068 25 16 15 37 47.057 2 -2069 25 17 15 35 45.54907 2 -2070 25 18 15 38 42.27349 2 -2071 25 19 15 40 41.35791 2 -2072 25 20 19 37 54.90061 2 -2073 25 21 19 35 46.92912 2 -2074 25 22 19 36 50.92915 2 -2075 25 23 19 38 43.58864 3 -2076 25 24 19 40 42.7073 2 -2077 25 25 23 37 46.42629 2 -2078 25 26 23 35 47.1917 2 -2079 25 27 23 36 46.5468 2 -2080 25 28 23 38 42.80828 2 -2081 25 29 23 40 43.10573 2 -2082 25 30 27 33 50.47273 2 -2083 25 31 27 31 49.68529 2 -2084 25 32 27 36 46.15185 2 -2085 25 33 27 38 40.66116 2 -2086 25 34 27 40 43.45118 2 -2087 25 35 31 39 43.24726 2 -2088 25 36 31 37 45.34245 2 -2089 25 37 31 36 49.81006 2 -2090 25 38 31 38 42.57795 2 -2091 25 39 31 40 43.39105 2 -2092 25 40 35 39 50.25666 2 -2093 25 41 35 37 42.0118 2 -2094 25 42 35 36 45.67215 2 -2095 25 43 35 38 42.91409 2 -2096 25 44 35 40 41.54382 2 -2097 25 45 39 39 43.63384 2 -2098 25 46 39 37 41.23658 2 -2099 25 47 39 35 48.11686 4 -2100 25 48 39 38 48.08434 2 -2101 25 49 39 40 43.36314 2 -2102 25 50 43 39 43.31161 2 -2103 25 51 43 37 44.63357 2 -2104 25 52 43 35 46.52434 2 -2105 25 53 43 38 46.05004 2 -2106 25 54 43 40 43.2463 2 -2107 25 55 47 39 43.55826 2 -2108 25 56 47 37 41.8857 2 -2109 25 57 47 35 47.1488 2 -2110 25 58 47 32 57.96435 2 -2111 25 59 47 34 49.16233 2 -2112 25 60 51 39 43.31094 2 -2113 25 61 51 37 44.89491 2 -2114 25 62 51 35 46.85253 2 -2115 25 63 51 36 51.1072 2 -2116 25 64 51 38 59.9071 2 -2117 25 65 55 39 42.55396 2 -2118 25 66 55 37 44.72456 2 -2119 25 67 55 35 55.6584 2 -2120 25 68 55 36 45.30352 2 -2121 25 69 55 38 60.11964 2 -2122 25 70 59 39 41.3588 2 -2123 25 71 59 37 42.67829 2 -2124 25 72 59 36 45.41355 2 -2125 25 73 59 38 45.55638 2 -2126 25 74 59 40 51.50225 2 -2127 25 75 63 39 46.64051 2 -2128 25 76 63 37 58.72869 2 -2129 25 77 63 35 63.60976 2 -2130 25 78 63 34 68.72211 2 -2131 25 79 63 36 64.98689 4 -2132 25 80 67 39 59.72028 2 -2133 25 81 67 37 69.05015 2 -2134 25 82 67 35 78.52609 2 -2135 25 83 67 36 73.17583 4 -2136 25 84 67 38 84.82555 2 -2137 25 85 71 39 74.83991 2 -2138 25 86 71 37 82.68316 2 -2139 25 87 71 35 91.37777 2 -2140 25 88 71 36 87.94262 2 -2141 25 89 71 38 96.88163 2 -2142 26 0 3 39 98.54333 4 -2143 26 1 4 3 58.96372 2 -2144 26 2 4 1 58.54269 2 -2145 26 3 4 2 52.0471 2 -2146 26 4 4 4 51.59303 2 -2147 26 5 7 39 89.91476 4 -2148 26 6 8 3 44.83345 2 -2149 26 7 8 1 54.91414 2 -2150 26 8 8 2 50.10285 2 -2151 26 9 8 4 37.2279 2 -2152 26 10 11 39 67.33652 2 -2153 26 11 11 37 73.2666 2 -2154 26 12 12 1 30.95908 2 -2155 26 13 12 2 33.0697 2 -2156 26 14 12 4 24.43873 2 -2157 26 15 16 3 27.53136 2 -2158 26 16 16 1 28.92014 2 -2159 26 17 16 2 24.31748 2 -2160 26 18 16 4 25.84884 2 -2161 26 19 16 6 29.29929 2 -2162 26 20 19 39 54.29639 2 -2163 26 21 20 3 25.86004 2 -2164 26 22 20 1 31.86106 2 -2165 26 23 20 2 27.58896 2 -2166 26 24 20 4 23.90826 2 -2167 26 25 23 39 54.75397 2 -2168 26 26 24 3 25.12349 2 -2169 26 27 24 1 37.39618 2 -2170 26 28 24 2 24.51877 2 -2171 26 29 24 4 30.71348 2 -2172 26 30 27 39 76.70153 2 -2173 26 31 27 37 61.31222 2 -2174 26 32 27 35 58.32588 2 -2175 26 33 28 2 24.11542 2 -2176 26 34 28 4 30.96498 2 -2177 26 35 32 5 29.53803 2 -2178 26 36 32 3 25.54616 2 -2179 26 37 32 1 25.61059 2 -2180 26 38 32 2 26.5812 2 -2181 26 39 32 4 28.95393 2 -2182 26 40 36 5 33.66408 2 -2183 26 41 36 3 30.65368 2 -2184 26 42 36 1 36.35126 2 -2185 26 43 36 2 28.64753 2 -2186 26 44 36 4 24.9658 2 -2187 26 45 40 3 24.63905 2 -2188 26 46 40 1 25.09027 2 -2189 26 47 40 2 30.05497 2 -2190 26 48 40 4 26.10849 2 -2191 26 49 40 6 26.41456 2 -2192 26 50 44 3 33.8681 2 -2193 26 51 44 1 28.5439 2 -2194 26 52 44 2 29.47022 2 -2195 26 53 44 4 28.64255 2 -2196 26 54 44 6 32.53034 2 -2197 26 55 48 3 30.73208 2 -2198 26 56 48 1 23.67239 2 -2199 26 57 47 36 59.9278 2 -2200 26 58 47 38 56.23298 2 -2201 26 59 47 40 59.87388 2 -2202 26 60 52 3 29.7362 2 -2203 26 61 52 1 26.82277 2 -2204 26 62 52 2 25.09858 2 -2205 26 63 52 4 27.87304 2 -2206 26 64 51 40 54.753 2 -2207 26 65 56 3 24.03075 2 -2208 26 66 56 1 26.95325 2 -2209 26 67 56 2 30.71153 2 -2210 26 68 56 4 25.63951 2 -2211 26 69 55 40 56.39402 2 -2212 26 70 60 5 29.28573 2 -2213 26 71 60 3 25.99895 2 -2214 26 72 60 1 26.16306 2 -2215 26 73 60 2 29.32935 2 -2216 26 74 60 4 29.84471 2 -2217 26 75 64 3 25.93183 2 -2218 26 76 64 1 31.82085 2 -2219 26 77 64 2 30.88508 2 -2220 26 78 63 38 75.28597 2 -2221 26 79 63 40 69.10563 2 -2222 26 80 68 3 37.7483 2 -2223 26 81 68 1 51.70475 2 -2224 26 82 68 2 57.91457 2 -2225 26 83 68 4 47.87614 2 -2226 26 84 67 40 92.16464 4 -2227 26 85 72 3 46.04918 2 -2228 26 86 72 1 66.59049 2 -2229 26 87 72 2 53.90684 2 -2230 26 88 72 4 66.40685 2 -2231 26 89 71 40 99.70442 4 -2232 27 0 4 9 69.43745 2 -2233 27 1 4 7 74.00679 2 -2234 27 2 4 5 61.28765 2 -2235 27 3 4 6 66.36093 2 -2236 27 4 4 8 58.91822 2 -2237 27 5 8 7 69.00186 2 -2238 27 6 8 5 72.70677 2 -2239 27 7 8 6 64.57875 2 -2240 27 8 8 8 56.50161 2 -2241 27 9 8 10 47.89262 2 -2242 27 10 12 7 49.54516 2 -2243 27 11 12 5 47.62303 2 -2244 27 12 12 3 37.73419 2 -2245 27 13 12 6 41.59789 2 -2246 27 14 12 8 32.19786 2 -2247 27 15 16 9 34.73291 2 -2248 27 16 16 7 35.58052 2 -2249 27 17 16 5 49.68616 2 -2250 27 18 16 8 33.29426 2 -2251 27 19 16 10 38.08643 2 -2252 27 20 20 9 43.919 2 -2253 27 21 20 7 35.20428 2 -2254 27 22 20 5 35.03196 2 -2255 27 23 20 6 33.85164 2 -2256 27 24 20 8 31.43366 2 -2257 27 25 24 9 33.79695 2 -2258 27 26 24 7 37.39867 2 -2259 27 27 24 5 43.25937 2 -2260 27 28 24 6 31.76549 2 -2261 27 29 24 8 40.29542 2 -2262 27 30 28 5 34.59896 2 -2263 27 31 28 3 37.80702 2 -2264 27 32 28 1 39.9308 2 -2265 27 33 28 6 35.25508 2 -2266 27 34 28 8 30.73993 2 -2267 27 35 32 9 38.07973 2 -2268 27 36 32 7 32.10695 2 -2269 27 37 32 6 34.66309 2 -2270 27 38 32 8 42.49991 2 -2271 27 39 32 10 43.71116 2 -2272 27 40 36 9 33.16298 2 -2273 27 41 36 7 35.21623 2 -2274 27 42 36 6 40.70988 2 -2275 27 43 36 8 32.96388 2 -2276 27 44 36 10 38.24518 2 -2277 27 45 40 9 36.30371 2 -2278 27 46 40 7 30.6663 2 -2279 27 47 40 5 45.37628 2 -2280 27 48 40 8 32.66118 2 -2281 27 49 40 10 34.05971 2 -2282 27 50 44 9 40.63194 2 -2283 27 51 44 7 43.94703 2 -2284 27 52 44 5 37.1656 2 -2285 27 53 44 8 34.61116 2 -2286 27 54 44 10 41.46044 2 -2287 27 55 48 7 40.03644 2 -2288 27 56 48 5 33.84793 2 -2289 27 57 48 2 39.8293 2 -2290 27 58 48 4 38.34889 2 -2291 27 59 48 6 35.56659 2 -2292 27 60 52 7 37.5369 2 -2293 27 61 52 5 32.28159 2 -2294 27 62 52 6 43.96599 2 -2295 27 63 52 8 33.63476 2 -2296 27 64 52 10 34.11461 2 -2297 27 65 56 7 32.34465 2 -2298 27 66 56 5 32.70756 2 -2299 27 67 56 6 33.38097 2 -2300 27 68 56 8 32.08563 2 -2301 27 69 56 10 48.70025 2 -2302 27 70 60 9 37.84884 2 -2303 27 71 60 7 31.97713 2 -2304 27 72 60 6 33.87094 2 -2305 27 73 60 8 32.49787 2 -2306 27 74 60 10 32.44313 2 -2307 27 75 64 7 38.58695 2 -2308 27 76 64 5 36.10232 2 -2309 27 77 64 4 37.35329 2 -2310 27 78 64 6 46.06648 2 -2311 27 79 64 8 46.46924 2 -2312 27 80 68 9 84.63142 2 -2313 27 81 68 7 57.76419 2 -2314 27 82 68 5 66.58156 2 -2315 27 83 68 6 67.82162 2 -2316 27 84 68 8 58.3921 2 -2317 27 85 72 7 65.26986 2 -2318 27 86 72 5 65.34957 2 -2319 27 87 72 6 61.05553 2 -2320 27 88 72 8 73.54703 2 -2321 27 89 72 10 70.96914 2 -2322 28 0 4 13 90.34882 2 -2323 28 1 4 11 86.17126 2 -2324 28 2 4 10 86.50704 2 -2325 28 3 4 12 80.74613 2 -2326 28 4 4 14 69.17949 2 -2327 28 5 8 13 75.09327 2 -2328 28 6 8 11 68.16526 2 -2329 28 7 8 9 66.65993 4 -2330 28 8 8 12 69.35377 2 -2331 28 9 8 14 58.02692 2 -2332 28 10 12 13 65.33976 2 -2333 28 11 12 11 63.6381 2 -2334 28 12 12 9 50.30449 2 -2335 28 13 12 10 49.3641 2 -2336 28 14 12 12 47.64293 2 -2337 28 15 12 14 36.76793 2 -2338 28 16 16 13 42.96087 2 -2339 28 17 16 11 40.68512 2 -2340 28 18 16 12 42.68451 2 -2341 28 19 16 14 39.72053 2 -2342 28 20 16 16 44.28628 2 -2343 28 21 20 13 47.40215 2 -2344 28 22 20 11 43.13628 2 -2345 28 23 20 10 42.71092 2 -2346 28 24 20 12 73.01604 2 -2347 28 25 20 14 38.77203 2 -2348 28 26 24 13 51.62228 2 -2349 28 27 24 11 40.36099 2 -2350 28 28 24 10 43.10079 2 -2351 28 29 24 12 41.68716 2 -2352 28 30 24 14 41.07244 2 -2353 28 31 28 11 55.92466 2 -2354 28 32 28 9 43.30142 2 -2355 28 33 28 7 44.73923 2 -2356 28 34 28 10 39.74609 2 -2357 28 35 28 12 44.56228 2 -2358 28 36 32 15 37.35812 2 -2359 28 37 32 13 38.18617 2 -2360 28 38 32 11 39.36175 2 -2361 28 39 32 12 39.35746 2 -2362 28 40 32 14 45.5258 2 -2363 28 41 36 15 39.28062 2 -2364 28 42 36 13 39.81371 2 -2365 28 43 36 11 42.92725 2 -2366 28 44 36 12 37.35419 2 -2367 28 45 36 14 44.04748 2 -2368 28 46 40 13 39.92742 2 -2369 28 47 40 11 38.92344 2 -2370 28 48 40 12 41.12801 2 -2371 28 49 40 14 45.95853 2 -2372 28 50 40 16 37.37492 2 -2373 28 51 44 13 48.74244 2 -2374 28 52 44 11 39.13292 2 -2375 28 53 44 12 42.3361 2 -2376 28 54 44 14 47.54186 2 -2377 28 55 44 16 38.49769 2 -2378 28 56 48 11 47.14467 2 -2379 28 57 48 9 39.05894 2 -2380 28 58 48 8 43.43847 2 -2381 28 59 48 10 42.60692 2 -2382 28 60 48 12 56.13489 2 -2383 28 61 52 13 39.06594 2 -2384 28 62 52 11 39.27783 2 -2385 28 63 52 9 51.48851 2 -2386 28 64 52 12 50.65968 2 -2387 28 65 52 14 44.94022 2 -2388 28 66 56 13 37.12147 2 -2389 28 67 56 11 37.58762 2 -2390 28 68 56 9 39.98629 2 -2391 28 69 56 12 40.13383 2 -2392 28 70 56 14 45.17684 2 -2393 28 71 60 15 47.51881 2 -2394 28 72 60 13 37.04179 2 -2395 28 73 60 11 50.17159 2 -2396 28 74 60 12 40.24799 2 -2397 28 75 60 14 40.50583 2 -2398 28 76 64 13 44.88045 2 -2399 28 77 64 11 48.9019 2 -2400 28 78 64 9 57.5105 2 -2401 28 79 64 10 52.31775 2 -2402 28 80 64 12 53.52777 2 -2403 28 81 64 14 61.468 2 -2404 28 82 68 13 62.4 2 -2405 28 83 68 11 70.09406 2 -2406 28 84 68 10 70.64487 2 -2407 28 85 68 12 68.65671 2 -2408 28 86 68 14 87.14892 4 -2409 28 87 72 13 68.95024 4 -2410 28 88 72 11 76.22657 2 -2411 28 89 72 9 84.32155 4 -2412 28 90 72 12 83.852 4 -2413 28 91 72 14 82.74916 4 -2414 29 0 4 19 94.85412 2 -2415 29 1 4 17 94.52402 2 -2416 29 2 4 15 87.66195 2 -2417 29 3 4 16 83.53982 2 -2418 29 4 4 18 80.59148 2 -2419 29 5 8 17 85.29775 2 -2420 29 6 8 15 74.30616 2 -2421 29 7 8 16 76.64979 2 -2422 29 8 8 18 69.98874 2 -2423 29 9 8 20 88.82508 2 -2424 29 10 12 19 72.1861 4 -2425 29 11 12 17 63.43243 2 -2426 29 12 12 15 57.94537 2 -2427 29 13 12 16 58.01565 2 -2428 29 14 12 18 49.09617 2 -2429 29 15 16 19 49.21095 2 -2430 29 16 16 17 50.73062 2 -2431 29 17 16 15 48.19161 2 -2432 29 18 16 18 47.49389 2 -2433 29 19 16 20 44.05349 2 -2434 29 20 20 19 59.83448 2 -2435 29 21 20 17 62.50302 2 -2436 29 22 20 15 47.89485 2 -2437 29 23 20 16 53.66314 2 -2438 29 24 20 18 44.98536 2 -2439 29 25 20 20 45.02747 2 -2440 29 26 24 19 50.57337 2 -2441 29 27 24 17 45.31152 2 -2442 29 28 24 15 49.71207 2 -2443 29 29 24 16 47.69605 2 -2444 29 30 24 18 44.80421 2 -2445 29 31 28 17 47.53748 2 -2446 29 32 28 15 47.00953 2 -2447 29 33 28 13 53.14633 2 -2448 29 34 28 14 47.85463 2 -2449 29 35 28 16 52.68061 2 -2450 29 36 32 19 44.07454 2 -2451 29 37 32 17 54.57867 2 -2452 29 38 32 16 52.51012 2 -2453 29 39 32 18 46.60698 2 -2454 29 40 32 20 55.73385 2 -2455 29 41 36 19 51.92015 2 -2456 29 42 36 17 44.70647 2 -2457 29 43 36 16 50.12924 4 -2458 29 44 36 18 43.67601 2 -2459 29 45 36 20 46.63595 2 -2460 29 46 40 19 45.1902 2 -2461 29 47 40 17 45.91623 2 -2462 29 48 40 15 47.64327 2 -2463 29 49 40 18 46.78864 2 -2464 29 50 40 20 57.43239 2 -2465 29 51 44 19 48.94169 2 -2466 29 52 44 17 46.5772 2 -2467 29 53 44 15 49.36746 2 -2468 29 54 44 18 48.88163 2 -2469 29 55 44 20 44.71371 2 -2470 29 56 48 15 46.14701 2 -2471 29 57 48 13 49.20277 2 -2472 29 58 48 14 48.47381 4 -2473 29 59 48 16 49.73673 2 -2474 29 60 48 18 48.82761 2 -2475 29 61 52 17 59.62471 2 -2476 29 62 52 15 48.5698 2 -2477 29 63 52 16 53.43585 2 -2478 29 64 52 18 45.65051 2 -2479 29 65 52 20 46.34517 2 -2480 29 66 56 19 44.64862 2 -2481 29 67 56 17 47.40511 2 -2482 29 68 56 15 46.13048 2 -2483 29 69 56 16 48.11312 2 -2484 29 70 56 18 45.52136 2 -2485 29 71 56 20 57.54099 2 -2486 29 72 60 19 43.94039 2 -2487 29 73 60 17 45.73789 2 -2488 29 74 60 16 46.61581 2 -2489 29 75 60 18 50.44886 2 -2490 29 76 60 20 49.03304 2 -2491 29 77 64 17 47.40301 2 -2492 29 78 64 15 61.33283 2 -2493 29 79 64 16 65.2877 2 -2494 29 80 64 18 81.85434 2 -2495 29 81 64 20 74.32567 2 -2496 29 82 68 19 64.16765 2 -2497 29 83 68 17 65.89703 2 -2498 29 84 68 15 77.95724 2 -2499 29 85 68 16 80.57838 4 -2500 29 86 68 18 84.78416 2 -2501 29 87 72 17 79.9127 2 -2502 29 88 72 15 85.55651 4 -2503 29 89 72 16 88.85265 4 -2504 29 90 72 18 87.90838 4 -2505 29 91 72 20 92.15974 2 -2506 30 0 4 23 91.89599 2 -2507 30 1 4 21 97.42431 2 -2508 30 2 4 20 92.00373 2 -2509 30 3 4 22 91.65314 2 -2510 30 4 4 24 79.93605 2 -2511 30 5 8 23 90.62183 2 -2512 30 6 8 21 86.80434 2 -2513 30 7 8 19 77.13503 2 -2514 30 8 8 22 75.94617 2 -2515 30 9 8 24 68.21103 2 -2516 30 10 12 23 81.6808 4 -2517 30 11 12 21 70.59608 2 -2518 30 12 12 20 74.18298 2 -2519 30 13 12 22 57.44857 2 -2520 30 14 12 24 59.54158 2 -2521 30 15 16 23 56.29406 2 -2522 30 16 16 21 57.0358 2 -2523 30 17 16 22 64.55558 2 -2524 30 18 16 24 53.93498 2 -2525 30 19 16 26 51.85434 2 -2526 30 20 20 25 61.17244 2 -2527 30 21 20 23 61.9294 2 -2528 30 22 20 21 56.07572 2 -2529 30 23 20 22 53.94629 2 -2530 30 24 20 24 51.67673 2 -2531 30 25 24 25 58.69829 2 -2532 30 26 24 23 53.8907 2 -2533 30 27 24 21 52.98775 2 -2534 30 28 24 20 54.13912 2 -2535 30 29 24 22 54.37382 2 -2536 30 30 24 24 53.16048 2 -2537 30 31 28 21 65.18089 4 -2538 30 32 28 19 62.26043 2 -2539 30 33 28 18 59.40239 2 -2540 30 34 28 20 56.11433 2 -2541 30 35 28 22 76.13405 2 -2542 30 36 32 25 57.77503 4 -2543 30 37 32 23 61.62418 2 -2544 30 38 32 21 55.65234 2 -2545 30 39 32 22 52.07953 2 -2546 30 40 32 24 68.56104 2 -2547 30 41 36 25 62.79751 2 -2548 30 42 36 23 52.07849 2 -2549 30 43 36 21 58.68055 2 -2550 30 44 36 22 59.27402 2 -2551 30 45 36 24 56.05007 2 -2552 30 46 40 23 54.10864 2 -2553 30 47 40 21 58.34603 2 -2554 30 48 40 22 57.21519 2 -2555 30 49 40 24 50.63154 2 -2556 30 50 40 26 65.42629 2 -2557 30 51 44 23 63.94583 4 -2558 30 52 44 21 55.3941 2 -2559 30 53 44 22 59.08168 2 -2560 30 54 44 24 50.85073 2 -2561 30 55 44 26 58.00276 2 -2562 30 56 48 21 55.73877 2 -2563 30 57 48 19 54.28783 2 -2564 30 58 48 17 58.51364 2 -2565 30 59 48 20 56.12846 2 -2566 30 60 48 22 55.47356 2 -2567 30 61 52 23 55.01064 2 -2568 30 62 52 21 59.96194 2 -2569 30 63 52 19 55.26425 2 -2570 30 64 52 22 53.37777 2 -2571 30 65 52 24 53.60286 2 -2572 30 66 52 26 57.77895 2 -2573 30 67 56 23 51.75699 2 -2574 30 68 56 21 52.16381 2 -2575 30 69 56 22 53.14906 2 -2576 30 70 56 24 56.77465 2 -2577 30 71 56 26 54.88326 2 -2578 30 72 60 25 51.93812 2 -2579 30 73 60 23 51.41346 2 -2580 30 74 60 21 57.36423 2 -2581 30 75 60 22 58.25682 2 -2582 30 76 60 24 56.69315 2 -2583 30 77 64 23 62.44897 2 -2584 30 78 64 21 58.91695 2 -2585 30 79 64 19 74.27437 2 -2586 30 80 64 22 74.32684 4 -2587 30 81 64 24 77.14774 4 -2588 30 82 68 23 61.91701 2 -2589 30 83 68 21 74.34683 2 -2590 30 84 68 20 63.19293 2 -2591 30 85 68 22 84.1688 2 -2592 30 86 68 24 90.98369 2 -2593 30 87 72 23 79.64185 4 -2594 30 88 72 21 88.81047 4 -2595 30 89 72 19 96.51924 2 -2596 30 90 72 22 94.02414 2 -2597 30 91 72 24 96.47232 2 -2598 31 0 4 29 102.41819 4 -2599 31 1 4 27 96.67324 2 -2600 31 2 4 25 99.40716 4 -2601 31 3 4 26 97.64976 2 -2602 31 4 4 28 87.94584 2 -2603 31 5 4 30 87.10771 2 -2604 31 6 8 27 100.19033 2 -2605 31 7 8 25 94.7736 4 -2606 31 8 8 26 93.31376 4 -2607 31 9 8 28 81.99824 4 -2608 31 10 8 30 78.20091 2 -2609 31 11 12 29 77.16489 2 -2610 31 12 12 27 85.38052 4 -2611 31 13 12 25 71.72293 2 -2612 31 14 12 26 68.36371 2 -2613 31 15 12 28 66.38408 2 -2614 31 16 16 29 76.72467 2 -2615 31 17 16 27 62.01498 2 -2616 31 18 16 25 61.8611 2 -2617 31 19 16 28 63.16606 2 -2618 31 20 16 30 60.40745 2 -2619 31 21 20 29 65.53108 2 -2620 31 22 20 27 65.8347 2 -2621 31 23 20 26 66.34858 2 -2622 31 24 20 28 59.46207 2 -2623 31 25 20 30 59.01183 2 -2624 31 26 24 29 67.34613 2 -2625 31 27 24 27 61.33264 2 -2626 31 28 24 26 68.21016 2 -2627 31 29 24 28 58.95385 2 -2628 31 30 24 30 58.3289 2 -2629 31 31 28 27 71.62572 4 -2630 31 32 28 25 65.31952 2 -2631 31 33 28 23 65.17254 2 -2632 31 34 28 24 62.4547 2 -2633 31 35 28 26 67.99432 2 -2634 31 36 28 28 60.80263 2 -2635 31 37 32 29 64.1526 2 -2636 31 38 32 27 60.84226 2 -2637 31 39 32 26 60.5607 2 -2638 31 40 32 28 60.22329 2 -2639 31 41 32 30 74.02293 2 -2640 31 42 36 29 68.44053 2 -2641 31 43 36 27 59.46718 2 -2642 31 44 36 26 63.112 2 -2643 31 45 36 28 58.66479 2 -2644 31 46 36 30 66.50637 2 -2645 31 47 40 29 65.0244 2 -2646 31 48 40 27 67.13116 2 -2647 31 49 40 25 62.4047 2 -2648 31 50 40 28 59.75078 2 -2649 31 51 40 30 71.80589 2 -2650 31 52 44 29 67.89093 2 -2651 31 53 44 27 60.66817 2 -2652 31 54 44 25 64.27296 2 -2653 31 55 44 28 60.00807 2 -2654 31 56 44 30 60.87404 2 -2655 31 57 48 27 64.16244 4 -2656 31 58 48 25 67.00212 2 -2657 31 59 48 23 64.38729 2 -2658 31 60 48 24 63.30196 2 -2659 31 61 48 26 70.62668 2 -2660 31 62 48 28 73.87878 4 -2661 31 63 52 29 56.71526 2 -2662 31 64 52 27 58.64755 2 -2663 31 65 52 25 68.02538 2 -2664 31 66 52 28 67.4142 2 -2665 31 67 52 30 65.79281 2 -2666 31 68 56 29 57.71761 2 -2667 31 69 56 27 69.30068 2 -2668 31 70 56 25 64.33116 2 -2669 31 71 56 28 63.49698 2 -2670 31 72 56 30 66.41813 2 -2671 31 73 60 29 60.17439 2 -2672 31 74 60 27 63.06205 2 -2673 31 75 60 26 61.57174 2 -2674 31 76 60 28 61.88018 2 -2675 31 77 60 30 70.11741 2 -2676 31 78 64 27 61.71116 2 -2677 31 79 64 25 63.57449 2 -2678 31 80 64 26 75.07192 4 -2679 31 81 64 28 73.96477 2 -2680 31 82 64 30 88.83858 4 -2681 31 83 68 29 78.2017 2 -2682 31 84 68 27 83.87797 2 -2683 31 85 68 25 90.61472 2 -2684 31 86 68 26 99.96468 4 -2685 31 87 68 28 99.67407 2 -2686 31 88 72 29 85.84575 2 -2687 31 89 72 27 93.9024 2 -2688 31 90 72 25 99.59552 2 -2689 31 91 72 26 102.00368 4 -2690 31 92 72 28 99.47688 2 -2691 31 93 72 30 99.43563 4 -2692 32 0 4 33 99.46517 2 -2693 32 1 4 31 95.46583 2 -2694 32 2 4 32 97.95855 2 -2695 32 3 4 34 99.82625 2 -2696 32 4 4 36 96.56107 2 -2697 32 5 8 33 98.1951 4 -2698 32 6 8 31 96.04873 4 -2699 32 7 8 29 96.55925 2 -2700 32 8 8 32 95.36175 2 -2701 32 9 8 34 90.95198 2 -2702 32 10 8 36 77.45419 2 -2703 32 11 12 33 92.45661 4 -2704 32 12 12 31 89.72656 4 -2705 32 13 12 30 90.28164 2 -2706 32 14 12 32 76.96305 2 -2707 32 15 12 34 68.28536 2 -2708 32 16 16 33 71.23784 2 -2709 32 17 16 31 70.02308 2 -2710 32 18 16 32 77.33099 2 -2711 32 19 16 34 69.00803 2 -2712 32 20 16 36 67.08951 2 -2713 32 21 20 35 78.06642 2 -2714 32 22 20 33 80.69959 2 -2715 32 23 20 31 71.76913 2 -2716 32 24 20 32 65.34334 2 -2717 32 25 20 34 67.26237 2 -2718 32 26 24 35 72.38705 2 -2719 32 27 24 33 72.00586 2 -2720 32 28 24 31 67.57307 2 -2721 32 29 24 32 74.58744 2 -2722 32 30 24 34 67.16152 2 -2723 32 31 28 33 82.92394 2 -2724 32 32 28 31 74.41563 2 -2725 32 33 28 29 68.74226 2 -2726 32 34 28 30 75.18133 2 -2727 32 35 28 32 71.75827 2 -2728 32 36 28 34 70.03915 2 -2729 32 37 32 35 64.29969 2 -2730 32 38 32 33 66.3634 2 -2731 32 39 32 31 67.88857 2 -2732 32 40 32 32 69.35133 2 -2733 32 41 32 34 75.44281 2 -2734 32 42 36 35 75.64344 2 -2735 32 43 36 33 72.18022 2 -2736 32 44 36 31 66.7842 2 -2737 32 45 36 32 65.66054 2 -2738 32 46 36 34 66.02132 2 -2739 32 47 40 33 68.86495 2 -2740 32 48 40 31 65.47569 2 -2741 32 49 40 32 76.39476 2 -2742 32 50 40 34 62.98966 2 -2743 32 51 40 36 81.71677 2 -2744 32 52 44 33 66.82297 2 -2745 32 53 44 31 68.02078 2 -2746 32 54 44 32 71.55798 2 -2747 32 55 44 34 66.69448 2 -2748 32 56 44 36 64.76732 2 -2749 32 57 48 33 68.02484 2 -2750 32 58 48 31 68.18331 2 -2751 32 59 48 29 70.75628 2 -2752 32 60 48 30 71.67265 2 -2753 32 61 48 32 74.38824 2 -2754 32 62 48 34 71.06298 2 -2755 32 63 52 33 62.67148 2 -2756 32 64 52 31 70.90935 2 -2757 32 65 52 32 67.08458 2 -2758 32 66 52 34 66.51599 2 -2759 32 67 52 36 71.4275 2 -2760 32 68 56 33 65.71793 2 -2761 32 69 56 31 65.52007 2 -2762 32 70 56 32 68.82452 2 -2763 32 71 56 34 65.3748 2 -2764 32 72 56 36 69.22666 2 -2765 32 73 60 35 65.57322 2 -2766 32 74 60 33 66.02671 2 -2767 32 75 60 31 68.56754 2 -2768 32 76 60 32 70.64042 2 -2769 32 77 60 34 79.2259 2 -2770 32 78 64 33 67.73266 2 -2771 32 79 64 31 79.60812 2 -2772 32 80 64 29 89.82094 2 -2773 32 81 64 32 86.35165 4 -2774 32 82 64 34 94.33957 4 -2775 32 83 68 35 77.94242 2 -2776 32 84 68 33 91.88197 2 -2777 32 85 68 31 94.91926 2 -2778 32 86 68 30 100.04781 2 -2779 32 87 68 32 100.39128 4 -2780 32 88 68 34 82.29234 2 -2781 32 89 72 35 95.57105 2 -2782 32 90 72 33 101.29463 2 -2783 32 91 72 31 100.77572 4 -2784 32 92 72 32 86.69526 2 -2785 32 93 72 34 87.73866 2 -2786 33 0 4 39 100.76569 2 -2787 33 1 4 37 96.54242 2 -2788 33 2 4 35 94.80516 4 -2789 33 3 4 38 96.49267 4 -2790 33 4 4 40 102.35166 2 -2791 33 5 8 39 100.29505 4 -2792 33 6 8 37 101.61586 4 -2793 33 7 8 35 95.27118 2 -2794 33 8 8 38 96.76965 2 -2795 33 9 8 40 89.40571 2 -2796 33 10 12 39 101.7843 4 -2797 33 11 12 37 96.57197 2 -2798 33 12 12 35 83.80017 2 -2799 33 13 12 36 89.42048 2 -2800 33 14 12 38 75.14975 2 -2801 33 15 12 40 73.25466 2 -2802 33 16 16 39 80.30254 2 -2803 33 17 16 37 83.5873 2 -2804 33 18 16 35 76.46269 2 -2805 33 19 16 38 73.30301 2 -2806 33 20 16 40 72.73654 3 -2807 33 21 20 39 85.85421 2 -2808 33 22 20 37 74.28232 2 -2809 33 23 20 36 80.33406 2 -2810 33 24 20 38 73.50961 2 -2811 33 25 20 40 69.52573 2 -2812 33 26 24 39 75.88164 2 -2813 33 27 24 37 75.30659 2 -2814 33 28 24 36 80.02398 2 -2815 33 29 24 38 79.79513 2 -2816 33 30 24 40 69.2313 2 -2817 33 31 28 39 84.14784 2 -2818 33 32 28 37 75.05767 2 -2819 33 33 28 35 75.83082 2 -2820 33 34 28 36 75.08031 2 -2821 33 35 28 38 71.67918 2 -2822 33 36 28 40 74.48246 2 -2823 33 37 32 39 70.48019 2 -2824 33 38 32 37 72.40017 2 -2825 33 39 32 36 76.718 2 -2826 33 40 32 38 72.32248 2 -2827 33 41 32 40 83.29049 4 -2828 33 42 36 39 86.07804 2 -2829 33 43 36 37 75.05111 2 -2830 33 44 36 36 75.97803 2 -2831 33 45 36 38 72.47067 2 -2832 33 46 36 40 70.36246 2 -2833 33 47 40 39 72.22883 2 -2834 33 48 40 37 71.64424 2 -2835 33 49 40 35 78.74034 2 -2836 33 50 40 38 69.96488 2 -2837 33 51 40 40 83.6449 2 -2838 33 52 44 39 82.50975 4 -2839 33 53 44 37 69.89618 2 -2840 33 54 44 35 75.09992 2 -2841 33 55 44 38 73.17248 2 -2842 33 56 44 40 70.6751 2 -2843 33 57 48 39 73.81876 2 -2844 33 58 48 37 71.04252 2 -2845 33 59 48 35 71.50782 2 -2846 33 60 48 36 72.95414 2 -2847 33 61 48 38 78.89457 2 -2848 33 62 48 40 87.84753 2 -2849 33 63 52 39 69.53661 2 -2850 33 64 52 37 70.10991 2 -2851 33 65 52 35 74.61746 2 -2852 33 66 52 38 74.13018 2 -2853 33 67 52 40 78.34192 2 -2854 33 68 56 39 70.79644 2 -2855 33 69 56 37 73.09879 2 -2856 33 70 56 35 76.26028 2 -2857 33 71 56 38 73.3028 2 -2858 33 72 56 40 76.04443 2 -2859 33 73 60 39 70.98528 2 -2860 33 74 60 37 73.72315 2 -2861 33 75 60 36 76.38083 2 -2862 33 76 60 38 74.76302 2 -2863 33 77 60 40 75.47889 2 -2864 33 78 64 39 72.33789 2 -2865 33 79 64 37 82.02013 2 -2866 33 80 64 35 90.78365 2 -2867 33 81 64 36 87.90217 2 -2868 33 82 64 38 90.46145 2 -2869 33 83 64 40 98.47166 4 -2870 33 84 68 39 89.6738 2 -2871 33 85 68 37 102.98933 4 -2872 33 86 68 36 99.24737 4 -2873 33 87 68 38 102.26616 4 -2874 33 88 68 40 87.25184 2 -2875 33 89 72 39 99.71839 2 -2876 33 90 72 37 88.05332 2 -2877 33 91 72 36 88.91231 2 -2878 33 92 72 38 91.59795 2 -2879 33 93 72 40 94.14483 2 +0 0 0 1 3 101.26007 4 +1 0 1 1 1 100.32279 2 +2 0 2 1 2 99.72778 2 +3 0 3 1 4 100.60063 2 +4 0 4 1 6 101.46487 2 +5 0 5 5 3 96.93725 2 +6 0 6 5 1 99.05947 2 +7 0 7 5 2 96.55679 2 +8 0 8 5 4 96.09835 2 +9 0 9 9 3 95.31153 2 +10 0 10 9 1 92.7942 2 +11 0 11 9 2 92.82045 2 +12 0 12 9 4 95.5038 2 +13 0 13 13 3 92.71032 2 +14 0 14 13 1 93.63174 2 +15 0 15 13 2 96.3519 2 +16 0 16 13 4 98.31017 2 +17 0 17 17 3 91.48934 2 +18 0 18 17 1 94.61971 2 +19 0 19 17 2 96.7619 2 +20 0 20 17 4 94.9858 2 +21 0 21 21 3 94.25045 2 +22 0 22 21 1 93.13628 2 +23 0 23 21 2 93.27802 2 +24 0 24 21 4 96.15251 2 +25 0 25 21 6 98.09714 2 +26 0 26 25 3 90.64507 2 +27 0 27 25 1 91.08903 2 +28 0 28 25 2 90.89494 2 +29 0 29 25 4 94.85061 2 +30 0 30 29 3 94.18664 2 +31 0 31 29 1 89.8103 2 +32 0 32 29 2 90.63707 2 +33 0 33 29 4 93.62112 2 +34 0 34 33 3 90.00756 2 +35 0 35 33 1 93.17968 2 +36 0 36 33 2 91.21026 2 +37 0 37 33 4 93.26278 2 +38 0 38 37 3 93.40813 2 +39 0 39 37 1 91.81606 2 +40 0 40 37 2 92.14411 2 +41 0 41 37 4 93.17311 2 +42 0 42 41 3 92.64178 2 +43 0 43 41 1 89.88696 2 +44 0 44 41 2 89.57381 2 +45 0 45 41 4 94.4957 2 +46 0 46 45 3 95.27238 2 +47 0 47 45 1 90.89535 2 +48 0 48 45 2 90.66051 2 +49 0 49 45 4 92.83196 2 +50 0 50 49 5 97.94525 2 +51 0 51 49 3 96.31097 2 +52 0 52 49 1 91.3512 2 +53 0 53 49 2 90.12288 2 +54 0 54 49 4 100.19276 2 +55 0 55 53 3 95.97447 2 +56 0 56 53 1 90.76829 2 +57 0 57 53 2 90.52967 2 +58 0 58 53 4 92.47096 2 +59 0 59 57 3 98.75225 2 +60 0 60 57 1 95.7312 2 +61 0 61 57 2 94.48483 2 +62 0 62 57 4 92.71074 2 +63 0 63 61 3 94.79152 2 +64 0 64 61 1 91.62481 2 +65 0 65 61 2 89.09811 2 +66 0 66 61 4 91.75512 2 +67 0 67 65 3 94.76193 2 +68 0 68 65 1 94.56921 2 +69 0 69 65 2 93.0698 2 +70 0 70 65 4 97.30021 2 +71 0 71 69 5 98.9668 2 +72 0 72 69 3 99.79042 2 +73 0 73 69 1 101.64264 2 +74 0 74 69 2 99.26312 2 +75 0 75 69 4 102.64221 2 +76 1 0 1 7 97.71396 4 +77 1 1 1 5 101.44156 2 +78 1 2 1 8 97.46323 2 +79 1 3 1 10 92.17836 2 +80 1 4 5 9 92.45799 2 +81 1 5 5 7 88.61412 2 +82 1 6 5 5 90.55314 2 +83 1 7 5 6 89.68271 2 +84 1 8 5 8 87.09523 2 +85 1 9 9 7 84.09028 2 +86 1 10 9 5 87.62655 2 +87 1 11 9 6 85.8892 2 +88 1 12 9 8 87.12612 2 +89 1 13 13 7 88.09034 2 +90 1 14 13 5 87.69965 2 +91 1 15 13 6 86.64375 2 +92 1 16 13 8 90.07249 2 +93 1 17 17 7 84.25937 2 +94 1 18 17 5 87.11253 2 +95 1 19 17 6 90.8118 4 +96 1 20 17 8 88.03755 2 +97 1 21 21 7 85.31149 2 +98 1 22 21 5 85.50065 2 +99 1 23 21 8 85.5204 2 +100 1 24 21 10 88.33747 2 +101 1 25 25 7 85.34127 2 +102 1 26 25 5 85.16763 2 +103 1 27 25 6 85.38536 2 +104 1 28 25 8 85.82931 2 +105 1 29 25 10 89.77178 2 +106 1 30 29 7 86.79102 2 +107 1 31 29 5 91.88991 3 +108 1 32 29 6 83.24007 2 +109 1 33 29 8 86.55871 2 +110 1 34 33 7 87.17936 2 +111 1 35 33 5 82.29661 2 +112 1 36 33 6 84.59131 2 +113 1 37 33 8 86.1554 2 +114 1 38 37 7 86.48273 2 +115 1 39 37 5 84.46351 2 +116 1 40 37 6 85.64911 2 +117 1 41 37 8 87.86708 2 +118 1 42 41 7 85.18283 2 +119 1 43 41 5 83.25306 2 +120 1 44 41 6 84.12756 2 +121 1 45 41 8 87.19007 2 +122 1 46 45 9 89.09712 2 +123 1 47 45 7 86.05694 2 +124 1 48 45 5 85.08438 2 +125 1 49 45 6 84.09841 2 +126 1 50 45 8 85.46803 2 +127 1 51 49 9 91.00987 2 +128 1 52 49 7 85.51179 2 +129 1 53 49 6 82.82138 2 +130 1 54 49 8 92.23314 2 +131 1 55 53 7 88.60102 2 +132 1 56 53 5 84.41901 2 +133 1 57 53 6 95.11453 2 +134 1 58 53 8 85.43604 2 +135 1 59 57 7 100.00752 4 +136 1 60 57 5 91.43009 2 +137 1 61 57 6 87.7157 2 +138 1 62 57 8 89.36258 2 +139 1 63 61 7 87.56381 2 +140 1 64 61 5 86.21881 2 +141 1 65 61 6 81.7232 2 +142 1 66 61 8 86.44726 2 +143 1 67 65 7 87.09119 2 +144 1 68 65 5 88.26548 2 +145 1 69 65 6 86.04495 2 +146 1 70 65 8 101.71154 4 +147 1 71 65 10 93.02409 2 +148 1 72 69 9 92.28311 2 +149 1 73 69 7 94.34261 2 +150 1 74 69 6 90.3035 2 +151 1 75 69 8 101.48813 2 +152 2 0 1 11 100.85711 4 +153 2 1 1 9 95.36421 4 +154 2 2 1 12 101.46639 4 +155 2 3 1 14 93.60363 4 +156 2 4 5 13 94.91419 2 +157 2 5 5 11 94.40711 2 +158 2 6 5 10 88.82306 2 +159 2 7 5 12 86.66915 2 +160 2 8 9 11 83.08582 2 +161 2 9 9 9 80.21868 2 +162 2 10 9 10 82.72098 2 +163 2 11 9 12 79.05802 2 +164 2 12 9 14 81.65591 2 +165 2 13 13 11 80.84474 2 +166 2 14 13 9 82.52095 2 +167 2 15 13 10 87.34187 2 +168 2 16 13 12 93.64004 4 +169 2 17 17 11 75.94545 2 +170 2 18 17 9 78.50597 4 +171 2 19 17 10 80.90508 2 +172 2 20 17 12 80.81772 2 +173 2 21 21 11 76.69315 2 +174 2 22 21 9 74.92195 2 +175 2 23 21 12 77.69056 2 +176 2 24 21 14 84.0177 2 +177 2 25 25 11 78.77337 2 +178 2 26 25 9 76.35008 2 +179 2 27 25 12 80.04604 2 +180 2 28 25 14 82.31911 2 +181 2 29 29 11 88.77531 2 +182 2 30 29 9 74.20799 2 +183 2 31 29 10 78.62533 2 +184 2 32 29 12 77.06035 2 +185 2 33 29 14 81.27504 2 +186 2 34 33 11 78.18984 2 +187 2 35 33 9 75.59757 2 +188 2 36 33 10 77.83998 2 +189 2 37 33 12 79.45318 2 +190 2 38 37 11 78.96522 2 +191 2 39 37 9 77.72255 2 +192 2 40 37 10 77.10856 2 +193 2 41 37 12 79.86776 2 +194 2 42 41 13 91.95662 2 +195 2 43 41 11 81.94332 2 +196 2 44 41 9 77.68481 2 +197 2 45 41 10 74.01289 2 +198 2 46 41 12 80.71974 2 +199 2 47 45 13 79.63423 2 +200 2 48 45 11 78.07012 2 +201 2 49 45 10 76.2942 2 +202 2 50 45 12 78.96122 2 +203 2 51 49 13 84.21926 2 +204 2 52 49 11 79.03287 2 +205 2 53 49 10 75.78917 2 +206 2 54 49 12 81.04795 2 +207 2 55 53 11 82.4558 2 +208 2 56 53 9 80.965 2 +209 2 57 53 10 75.78967 2 +210 2 58 53 12 76.88328 2 +211 2 59 57 11 90.42646 4 +212 2 60 57 9 87.26907 2 +213 2 61 57 10 81.03539 2 +214 2 62 57 12 83.04992 2 +215 2 63 61 13 82.23284 2 +216 2 64 61 11 79.13732 2 +217 2 65 61 9 82.47827 2 +218 2 66 61 10 75.24109 2 +219 2 67 61 12 81.5715 2 +220 2 68 65 11 80.90247 2 +221 2 69 65 9 87.25635 2 +222 2 70 65 12 86.20345 2 +223 2 71 65 14 88.66785 2 +224 2 72 69 13 97.51872 4 +225 2 73 69 11 96.64572 4 +226 2 74 69 10 102.13796 4 +227 2 75 69 12 87.21231 2 +228 3 0 1 15 95.24583 2 +229 3 1 1 13 89.94865 2 +230 3 2 1 16 93.69508 4 +231 3 3 1 18 86.18914 4 +232 3 4 5 17 77.45796 2 +233 3 5 5 15 81.62802 2 +234 3 6 5 14 81.51966 2 +235 3 7 5 16 75.99353 2 +236 3 8 9 15 80.37493 2 +237 3 9 9 13 67.81913 2 +238 3 10 9 16 76.9623 2 +239 3 11 9 18 74.98554 2 +240 3 12 13 15 71.09694 2 +241 3 13 13 13 72.66326 2 +242 3 14 13 14 80.20975 2 +243 3 15 13 16 79.60092 2 +244 3 16 13 18 90.80668 2 +245 3 17 17 15 71.89815 2 +246 3 18 17 13 89.92597 2 +247 3 19 17 14 74.32388 2 +248 3 20 17 16 80.8878 4 +249 3 21 21 15 71.0318 2 +250 3 22 21 13 72.56364 2 +251 3 23 21 16 70.96083 2 +252 3 24 21 18 80.68884 2 +253 3 25 25 15 70.41767 2 +254 3 26 25 13 67.62412 2 +255 3 27 25 16 71.59196 2 +256 3 28 25 18 72.36379 2 +257 3 29 29 17 79.93927 2 +258 3 30 29 15 77.70533 2 +259 3 31 29 13 74.44192 2 +260 3 32 29 16 70.79616 2 +261 3 33 29 18 77.16428 2 +262 3 34 33 15 71.14494 2 +263 3 35 33 13 69.04227 2 +264 3 36 33 14 70.51993 2 +265 3 37 33 16 71.2585 2 +266 3 38 37 15 71.4946 2 +267 3 39 37 13 72.6947 2 +268 3 40 37 14 69.99501 2 +269 3 41 37 16 72.76293 2 +270 3 42 41 17 82.41453 2 +271 3 43 41 15 72.17426 2 +272 3 44 41 14 72.12695 2 +273 3 45 41 16 70.75159 2 +274 3 46 41 18 74.77494 2 +275 3 47 45 17 72.01842 2 +276 3 48 45 15 71.52852 2 +277 3 49 45 14 67.63757 2 +278 3 50 45 16 69.88988 2 +279 3 51 49 17 76.87333 2 +280 3 52 49 15 70.55523 2 +281 3 53 49 14 73.09807 2 +282 3 54 49 16 69.16075 2 +283 3 55 53 15 74.34132 2 +284 3 56 53 13 72.74573 2 +285 3 57 53 14 73.24426 2 +286 3 58 53 16 72.8106 2 +287 3 59 57 17 86.21089 2 +288 3 60 57 15 74.35202 2 +289 3 61 57 13 74.07958 2 +290 3 62 57 14 72.26386 2 +291 3 63 57 16 71.11684 2 +292 3 64 61 17 79.00268 2 +293 3 65 61 15 72.22861 2 +294 3 66 61 14 93.70998 2 +295 3 67 61 16 74.06513 2 +296 3 68 65 15 74.27741 2 +297 3 69 65 13 77.83974 2 +298 3 70 65 16 78.79452 2 +299 3 71 65 18 78.00125 2 +300 3 72 69 17 90.5517 4 +301 3 73 69 15 89.35103 4 +302 3 74 69 14 92.52516 4 +303 3 75 69 16 96.56172 4 +304 4 0 1 21 92.15192 2 +305 4 1 1 19 92.91318 4 +306 4 2 1 17 80.17159 2 +307 4 3 1 20 84.77426 4 +308 4 4 1 22 79.6483 4 +309 4 5 5 21 71.56714 2 +310 4 6 5 19 74.32164 2 +311 4 7 5 18 73.81437 2 +312 4 8 5 20 65.67853 2 +313 4 9 9 19 65.92005 2 +314 4 10 9 17 62.96781 2 +315 4 11 9 20 66.66744 2 +316 4 12 9 22 66.60802 2 +317 4 13 13 19 63.63253 2 +318 4 14 13 17 71.99167 2 +319 4 15 13 20 71.43647 2 +320 4 16 13 22 71.36553 2 +321 4 17 17 21 62.19319 2 +322 4 18 17 19 63.39221 2 +323 4 19 17 17 63.99951 2 +324 4 20 17 18 66.00226 2 +325 4 21 17 20 78.45413 2 +326 4 22 21 19 68.73268 2 +327 4 23 21 17 61.51087 2 +328 4 24 21 20 64.37098 2 +329 4 25 21 22 66.7681 2 +330 4 26 25 19 62.88763 2 +331 4 27 25 17 59.95819 2 +332 4 28 25 20 64.35313 2 +333 4 29 25 22 64.79393 2 +334 4 30 29 21 76.18304 4 +335 4 31 29 19 63.29237 2 +336 4 32 29 20 63.4969 2 +337 4 33 29 22 72.79287 2 +338 4 34 29 24 67.00449 2 +339 4 35 33 19 63.0168 2 +340 4 36 33 17 71.05803 2 +341 4 37 33 18 63.47022 2 +342 4 38 33 20 63.77043 2 +343 4 39 37 19 63.27876 2 +344 4 40 37 17 62.77668 2 +345 4 41 37 18 82.91926 2 +346 4 42 37 20 64.8187 2 +347 4 43 41 23 67.7968 2 +348 4 44 41 21 65.51677 2 +349 4 45 41 19 62.73491 2 +350 4 46 41 20 62.24965 2 +351 4 47 41 22 70.96268 2 +352 4 48 45 21 65.09502 2 +353 4 49 45 19 75.13964 2 +354 4 50 45 18 61.02188 2 +355 4 51 45 20 63.34873 2 +356 4 52 49 21 69.34519 2 +357 4 53 49 19 62.60576 2 +358 4 54 49 18 66.9153 2 +359 4 55 49 20 69.33378 2 +360 4 56 53 19 74.03019 2 +361 4 57 53 17 63.09558 2 +362 4 58 53 18 74.33755 2 +363 4 59 53 20 62.55524 2 +364 4 60 53 22 64.93748 2 +365 4 61 57 21 70.48368 2 +366 4 62 57 19 65.71931 2 +367 4 63 57 18 72.34738 2 +368 4 64 57 20 64.40244 2 +369 4 65 61 21 66.40563 2 +370 4 66 61 19 67.32645 2 +371 4 67 61 18 68.54865 2 +372 4 68 61 20 72.62745 2 +373 4 69 65 19 67.65863 2 +374 4 70 65 17 71.81276 2 +375 4 71 65 20 73.82349 2 +376 4 72 65 22 69.80689 2 +377 4 73 69 21 85.3594 4 +378 4 74 69 19 85.64355 4 +379 4 75 69 18 80.35554 2 +380 4 76 69 20 93.38944 4 +381 4 77 69 22 90.77619 2 +382 5 0 1 25 84.93448 2 +383 5 1 1 23 78.44545 2 +384 5 2 1 24 83.72053 4 +385 5 3 1 26 84.34546 4 +386 5 4 5 27 86.49368 4 +387 5 5 5 25 71.50192 2 +388 5 6 5 23 61.54277 2 +389 5 7 5 22 71.24133 2 +390 5 8 5 24 60.71464 2 +391 5 9 9 23 57.34546 2 +392 5 10 9 21 53.62035 2 +393 5 11 9 24 59.37157 2 +394 5 12 9 26 60.33731 2 +395 5 13 13 23 58.216 2 +396 5 14 13 21 56.35974 2 +397 5 15 13 24 62.45916 2 +398 5 16 13 26 59.45893 2 +399 5 17 17 25 55.38146 2 +400 5 18 17 23 56.53539 2 +401 5 19 17 22 56.05094 2 +402 5 20 17 24 58.21802 2 +403 5 21 17 26 70.96046 2 +404 5 22 21 23 60.43519 2 +405 5 23 21 21 61.74147 2 +406 5 24 21 24 56.37012 2 +407 5 25 21 26 70.2072 4 +408 5 26 25 23 55.10697 2 +409 5 27 25 21 53.89865 2 +410 5 28 25 24 56.7128 2 +411 5 29 25 26 57.4032 2 +412 5 30 29 27 65.41848 2 +413 5 31 29 25 61.72109 2 +414 5 32 29 23 57.20188 2 +415 5 33 29 26 59.59618 2 +416 5 34 29 28 69.19882 4 +417 5 35 33 23 57.32861 2 +418 5 36 33 21 57.15845 2 +419 5 37 33 22 56.35306 2 +420 5 38 33 24 56.3683 2 +421 5 39 37 23 55.51622 2 +422 5 40 37 21 55.4246 2 +423 5 41 37 22 58.92986 2 +424 5 42 37 24 55.39537 2 +425 5 43 41 27 60.05421 2 +426 5 44 41 25 59.29913 2 +427 5 45 41 24 56.74626 2 +428 5 46 41 26 56.59331 2 +429 5 47 41 28 62.44477 2 +430 5 48 45 25 57.31764 2 +431 5 49 45 23 57.62856 2 +432 5 50 45 22 54.23778 2 +433 5 51 45 24 55.5474 2 +434 5 52 49 25 62.67219 2 +435 5 53 49 23 60.6321 2 +436 5 54 49 22 58.14674 2 +437 5 55 49 24 61.55785 2 +438 5 56 53 25 61.86123 2 +439 5 57 53 23 60.35076 2 +440 5 58 53 21 56.91591 2 +441 5 59 53 24 53.96498 2 +442 5 60 53 26 59.16761 2 +443 5 61 57 25 64.93993 2 +444 5 62 57 23 58.63578 2 +445 5 63 57 22 55.60792 2 +446 5 64 57 24 58.30338 2 +447 5 65 61 25 60.1155 4 +448 5 66 61 23 57.84001 2 +449 5 67 61 22 65.05104 2 +450 5 68 61 24 58.50376 2 +451 5 69 65 23 62.95921 2 +452 5 70 65 21 64.80781 2 +453 5 71 65 24 60.70506 2 +454 5 72 65 26 68.31624 4 +455 5 73 65 28 84.99633 4 +456 5 74 69 25 84.53743 4 +457 5 75 69 23 82.27459 4 +458 5 76 69 24 77.81376 2 +459 5 77 69 26 90.02647 4 +460 6 0 1 29 75.11941 2 +461 6 1 1 27 64.74731 2 +462 6 2 1 28 76.12596 2 +463 6 3 1 30 73.75991 4 +464 6 4 5 31 90.34266 4 +465 6 5 5 29 57.05337 2 +466 6 6 5 26 68.44678 2 +467 6 7 5 28 52.15133 2 +468 6 8 9 29 60.84038 2 +469 6 9 9 27 50.48947 2 +470 6 10 9 25 48.54277 2 +471 6 11 9 28 60.32264 2 +472 6 12 9 30 51.98508 2 +473 6 13 13 27 50.49014 2 +474 6 14 13 25 48.09994 2 +475 6 15 13 28 51.91725 2 +476 6 16 13 30 65.60839 2 +477 6 17 17 29 50.79809 2 +478 6 18 17 27 51.19025 2 +479 6 19 17 28 51.19976 2 +480 6 20 17 30 52.00971 2 +481 6 21 17 32 56.31891 2 +482 6 22 21 27 52.16461 2 +483 6 23 21 25 56.76866 2 +484 6 24 21 28 47.41329 2 +485 6 25 21 30 59.50112 2 +486 6 26 25 27 47.64813 2 +487 6 27 25 25 52.63264 2 +488 6 28 25 28 49.54345 2 +489 6 29 25 30 49.972 2 +490 6 30 29 31 59.41042 2 +491 6 31 29 29 49.35095 2 +492 6 32 29 30 48.90278 2 +493 6 33 29 32 62.74958 2 +494 6 34 29 34 66.86869 2 +495 6 35 33 27 58.94673 2 +496 6 36 33 25 46.16364 2 +497 6 37 33 26 46.95604 2 +498 6 38 33 28 48.96383 2 +499 6 39 37 27 48.07907 2 +500 6 40 37 25 48.05166 2 +501 6 41 37 26 46.49529 2 +502 6 42 37 28 54.47042 2 +503 6 43 41 33 68.45511 2 +504 6 44 41 31 51.22828 2 +505 6 45 41 29 54.38485 2 +506 6 46 41 30 46.59253 2 +507 6 47 41 32 56.01532 2 +508 6 48 45 29 49.97295 2 +509 6 49 45 27 50.62854 2 +510 6 50 45 26 48.19519 2 +511 6 51 45 28 48.15988 2 +512 6 52 49 29 54.67456 2 +513 6 53 49 27 47.23641 2 +514 6 54 49 26 47.77772 2 +515 6 55 49 28 48.24009 2 +516 6 56 53 31 56.14619 2 +517 6 57 53 29 49.96189 2 +518 6 58 53 27 49.15792 2 +519 6 59 53 28 50.35342 2 +520 6 60 53 30 49.63054 2 +521 6 61 57 29 60.43556 2 +522 6 62 57 27 52.03502 2 +523 6 63 57 26 51.1888 2 +524 6 64 57 28 51.18473 2 +525 6 65 61 29 52.49464 2 +526 6 66 61 27 51.06003 2 +527 6 67 61 26 47.27078 2 +528 6 68 61 28 49.83851 2 +529 6 69 61 30 61.88021 4 +530 6 70 65 27 52.11168 2 +531 6 71 65 25 63.22972 2 +532 6 72 65 30 54.67985 2 +533 6 73 65 32 75.39533 4 +534 6 74 69 29 72.68669 4 +535 6 75 69 27 71.94972 2 +536 6 76 69 28 72.71986 2 +537 6 77 69 30 76.0588 2 +538 7 0 1 33 76.28806 2 +539 7 1 1 31 63.22181 2 +540 7 2 1 32 67.03512 2 +541 7 3 1 34 69.40545 2 +542 7 4 1 36 59.14126 2 +543 7 5 5 35 58.87265 2 +544 7 6 5 33 59.06869 2 +545 7 7 5 30 57.57716 2 +546 7 8 5 32 48.08989 2 +547 7 9 9 33 54.09819 2 +548 7 10 9 31 53.26636 2 +549 7 11 9 32 56.03035 2 +550 7 12 9 34 43.65805 2 +551 7 13 9 36 48.96699 2 +552 7 14 13 31 41.62654 2 +553 7 15 13 29 56.97332 2 +554 7 16 13 32 45.49615 2 +555 7 17 13 34 54.51702 4 +556 7 18 17 33 48.00361 2 +557 7 19 17 31 44.55738 2 +558 7 20 17 34 52.85391 2 +559 7 21 17 36 84.34845 2 +560 7 22 21 33 43.38619 2 +561 7 23 21 31 41.9977 2 +562 7 24 21 29 96.23862 2 +563 7 25 21 32 44.95585 2 +564 7 26 21 34 45.78266 2 +565 7 27 25 31 39.93933 2 +566 7 28 25 29 43.18535 2 +567 7 29 25 32 40.69937 2 +568 7 30 25 34 42.39475 2 +569 7 31 29 35 50.81099 2 +570 7 32 29 33 42.9827 2 +571 7 33 29 36 45.34512 2 +572 7 34 29 38 47.41427 2 +573 7 35 29 40 47.1651 2 +574 7 36 33 31 50.99386 2 +575 7 37 33 29 39.91017 2 +576 7 38 33 30 42.8205 2 +577 7 39 33 32 41.40606 2 +578 7 40 37 31 40.5213 2 +579 7 41 37 29 41.81353 2 +580 7 42 37 30 39.453 2 +581 7 43 37 32 41.5564 2 +582 7 44 41 39 46.80141 2 +583 7 45 41 37 48.66462 2 +584 7 46 41 35 42.28356 2 +585 7 47 41 34 42.47312 2 +586 7 48 41 36 48.75091 2 +587 7 49 45 33 42.3958 2 +588 7 50 45 31 53.60893 2 +589 7 51 45 30 40.64949 2 +590 7 52 45 32 40.45107 2 +591 7 53 49 33 44.82619 2 +592 7 54 49 31 42.95474 2 +593 7 55 49 30 99.70165 2 +594 7 56 49 32 39.74746 2 +595 7 57 49 34 44.56601 2 +596 7 58 53 35 50.18672 2 +597 7 59 53 33 43.11573 2 +598 7 60 53 32 40.85542 2 +599 7 61 53 34 62.26964 2 +600 7 62 57 33 50.72667 2 +601 7 63 57 31 43.84735 2 +602 7 64 57 30 54.75636 2 +603 7 65 57 32 43.54148 2 +604 7 66 61 35 52.70602 2 +605 7 67 61 33 54.9751 2 +606 7 68 61 31 46.65202 2 +607 7 69 61 32 51.67203 2 +608 7 70 61 34 52.99504 2 +609 7 71 65 31 45.92969 2 +610 7 72 65 29 53.23329 2 +611 7 73 65 34 52.88412 2 +612 7 74 65 36 60.43568 4 +613 7 75 69 35 62.52529 4 +614 7 76 69 33 67.57248 4 +615 7 77 69 31 66.76829 2 +616 7 78 69 32 76.01889 2 +617 7 79 69 34 77.39206 2 +618 8 0 1 39 66.56049 2 +619 8 1 1 37 63.08272 2 +620 8 2 1 35 58.79792 2 +621 8 3 1 38 56.31838 2 +622 8 4 1 40 47.45398 2 +623 8 5 5 39 50.39552 2 +624 8 6 5 37 47.01727 2 +625 8 7 5 34 57.44834 2 +626 8 8 5 36 37.01784 2 +627 8 9 9 37 50.89222 2 +628 8 10 9 35 37.36455 2 +629 8 11 9 38 69.46598 2 +630 8 12 9 40 36.85736 2 +631 8 13 13 35 37.52873 2 +632 8 14 13 33 32.42589 2 +633 8 15 13 36 39.14569 2 +634 8 16 13 38 40.49828 2 +635 8 17 13 40 38.40195 2 +636 8 18 17 37 32.20014 2 +637 8 19 17 35 35.60696 2 +638 8 20 17 38 36.89271 2 +639 8 21 17 40 36.4454 2 +640 8 22 21 37 35.10741 2 +641 8 23 21 35 36.30205 2 +642 8 24 21 36 33.11736 2 +643 8 25 21 38 38.16697 2 +644 8 26 21 40 49.86262 2 +645 8 27 25 35 32.33138 2 +646 8 28 25 33 31.81256 2 +647 8 29 25 36 34.08037 2 +648 8 30 25 38 35.1187 2 +649 8 31 29 39 41.62255 2 +650 8 32 29 37 37.03488 2 +651 8 33 30 1 63.10182 2 +652 8 34 30 2 65.16621 2 +653 8 35 30 4 72.99701 2 +654 8 36 33 35 32.45657 2 +655 8 37 33 33 32.49537 2 +656 8 38 33 34 34.92925 2 +657 8 39 33 36 33.0997 2 +658 8 40 37 35 32.96891 2 +659 8 41 37 33 33.94711 2 +660 8 42 37 34 41.93152 2 +661 8 43 37 36 33.98229 2 +662 8 44 42 3 73.34587 2 +663 8 45 42 1 64.51869 2 +664 8 46 42 2 65.26564 2 +665 8 47 41 38 36.0788 2 +666 8 48 41 40 35.1299 2 +667 8 49 45 37 35.11975 2 +668 8 50 45 35 34.30401 2 +669 8 51 45 34 33.39075 2 +670 8 52 45 36 32.84313 2 +671 8 53 49 39 40.8594 2 +672 8 54 49 37 35.14545 2 +673 8 55 49 35 31.82762 2 +674 8 56 49 36 33.88333 2 +675 8 57 49 38 33.69353 2 +676 8 58 53 39 36.34541 2 +677 8 59 53 37 34.31263 2 +678 8 60 53 36 33.60884 2 +679 8 61 53 38 34.41384 2 +680 8 62 57 39 38.55526 2 +681 8 63 57 37 52.18361 2 +682 8 64 57 35 38.11287 2 +683 8 65 57 34 31.41758 2 +684 8 66 57 36 43.1353 2 +685 8 67 61 39 39.41815 2 +686 8 68 61 37 42.01438 2 +687 8 69 61 36 35.45903 2 +688 8 70 61 38 49.55789 2 +689 8 71 65 35 37.78002 2 +690 8 72 65 33 52.58795 2 +691 8 73 65 38 63.64812 2 +692 8 74 65 40 54.48874 4 +693 8 75 69 39 49.55859 2 +694 8 76 69 37 61.1197 4 +695 8 77 69 36 56.40671 2 +696 8 78 69 38 60.10434 2 +697 8 79 69 40 70.26283 2 +698 9 0 2 3 84.54567 2 +699 9 1 2 1 78.22769 2 +700 9 2 2 2 84.53544 2 +701 9 3 2 4 74.58471 4 +702 9 4 6 3 78.06986 4 +703 9 5 6 1 67.95198 4 +704 9 6 6 2 67.43295 2 +705 9 7 5 38 43.28311 2 +706 9 8 5 40 31.33312 2 +707 9 9 9 39 35.04797 2 +708 9 10 10 1 60.79456 2 +709 9 11 10 2 54.60518 2 +710 9 12 10 4 56.39171 2 +711 9 13 13 39 29.95812 2 +712 9 14 13 37 21.2966 2 +713 9 15 14 1 64.17371 2 +714 9 16 14 2 62.14307 2 +715 9 17 14 4 70.79377 4 +716 9 18 17 39 27.3792 2 +717 9 19 18 1 53.40952 2 +718 9 20 18 2 50.75379 2 +719 9 21 18 4 57.49746 2 +720 9 22 21 39 27.57224 2 +721 9 23 22 3 57.2049 2 +722 9 24 22 1 62.69097 2 +723 9 25 22 2 55.25129 2 +724 9 26 22 4 57.7308 2 +725 9 27 25 39 25.01218 2 +726 9 28 25 37 25.83428 2 +727 9 29 25 40 25.52773 2 +728 9 30 26 2 56.08478 2 +729 9 31 30 7 58.77737 2 +730 9 32 30 5 56.74915 2 +731 9 33 30 3 54.23756 2 +732 9 34 30 6 56.46067 2 +733 9 35 30 8 65.96361 4 +734 9 36 33 39 27.96916 2 +735 9 37 33 37 25.20874 2 +736 9 38 33 38 28.16795 2 +737 9 39 33 40 24.72085 2 +738 9 40 37 39 24.56309 2 +739 9 41 37 37 25.97083 2 +740 9 42 37 38 26.2776 2 +741 9 43 37 40 35.84077 2 +742 9 44 42 7 71.94654 2 +743 9 45 42 5 58.26591 2 +744 9 46 42 4 58.05622 2 +745 9 47 42 6 58.67101 2 +746 9 48 42 8 61.31643 2 +747 9 49 46 1 55.13971 2 +748 9 50 45 39 23.88776 2 +749 9 51 45 38 24.30086 2 +750 9 52 45 40 26.56586 2 +751 9 53 50 3 57.65613 2 +752 9 54 50 1 53.1397 2 +753 9 55 50 2 56.01982 2 +754 9 56 50 4 56.06347 2 +755 9 57 49 40 26.11265 2 +756 9 58 54 3 64.2086 2 +757 9 59 54 1 52.45045 2 +758 9 60 54 2 58.42522 2 +759 9 61 53 40 27.03511 2 +760 9 62 58 3 60.23763 2 +761 9 63 58 1 60.25808 2 +762 9 64 58 2 58.57127 2 +763 9 65 57 38 22.96934 2 +764 9 66 57 40 29.27129 2 +765 9 67 62 3 59.17056 2 +766 9 68 62 1 59.10024 2 +767 9 69 62 2 56.46164 2 +768 9 70 61 40 33.52121 2 +769 9 71 65 39 28.55677 2 +770 9 72 65 37 41.52463 2 +771 9 73 66 1 67.65213 2 +772 9 74 66 2 77.17037 4 +773 9 75 66 4 77.47773 4 +774 9 76 70 3 72.30869 2 +775 9 77 70 1 74.28746 2 +776 9 78 70 2 77.80595 2 +777 9 79 70 4 79.7671 2 +778 10 0 2 7 76.35177 2 +779 10 1 2 5 72.76657 2 +780 10 2 2 6 75.02062 4 +781 10 3 2 8 63.25341 2 +782 10 4 6 7 66.69563 4 +783 10 5 6 5 60.62591 2 +784 10 6 6 4 58.0186 2 +785 10 7 6 6 56.46559 2 +786 10 8 6 8 47.53771 2 +787 10 9 10 5 49.8238 2 +788 10 10 10 3 44.31258 2 +789 10 11 10 6 46.19948 2 +790 10 12 10 8 52.3055 2 +791 10 13 14 7 45.19958 2 +792 10 14 14 5 45.31415 2 +793 10 15 14 3 46.93551 2 +794 10 16 14 6 50.41778 2 +795 10 17 14 8 64.16636 4 +796 10 18 18 5 52.28206 2 +797 10 19 18 3 73.95923 2 +798 10 20 18 6 46.12734 2 +799 10 21 18 8 68.83853 2 +800 10 22 22 7 43.83673 2 +801 10 23 22 5 50.312 2 +802 10 24 22 6 48.81079 2 +803 10 25 22 8 46.99864 2 +804 10 26 22 10 51.61704 2 +805 10 27 26 3 41.56048 2 +806 10 28 26 1 40.40788 2 +807 10 29 26 4 43.48133 2 +808 10 30 26 6 48.98876 2 +809 10 31 30 11 51.0262 2 +810 10 32 30 9 46.17171 2 +811 10 33 30 10 46.36146 2 +812 10 34 30 12 49.22545 2 +813 10 35 34 5 51.78592 2 +814 10 36 34 3 45.71898 2 +815 10 37 34 1 42.11563 2 +816 10 38 34 2 42.81583 2 +817 10 39 34 4 44.26455 2 +818 10 40 38 3 44.19894 2 +819 10 41 38 1 43.5008 2 +820 10 42 38 2 41.1478 2 +821 10 43 38 4 41.95308 2 +822 10 44 38 6 53.94633 2 +823 10 45 42 11 49.70259 2 +824 10 46 42 9 63.30069 2 +825 10 47 42 10 45.60129 2 +826 10 48 42 12 51.56734 2 +827 10 49 46 5 48.16409 2 +828 10 50 46 3 41.00855 2 +829 10 51 46 2 41.77622 2 +830 10 52 46 4 48.89532 2 +831 10 53 50 9 51.70599 2 +832 10 54 50 7 48.55557 2 +833 10 55 50 5 45.36152 2 +834 10 56 50 6 49.02599 2 +835 10 57 50 8 43.76505 2 +836 10 58 54 7 46.99183 2 +837 10 59 54 5 45.88931 2 +838 10 60 54 4 45.99168 2 +839 10 61 54 6 46.67825 2 +840 10 62 58 7 63.80234 2 +841 10 63 58 5 46.78129 2 +842 10 64 58 4 50.22856 2 +843 10 65 58 6 48.59565 2 +844 10 66 58 8 46.9226 2 +845 10 67 62 7 50.46817 2 +846 10 68 62 5 49.15271 2 +847 10 69 62 4 42.30133 2 +848 10 70 62 6 45.79168 2 +849 10 71 66 7 47.70717 2 +850 10 72 66 5 51.07655 2 +851 10 73 66 3 51.6729 2 +852 10 74 66 6 62.2377 4 +853 10 75 66 8 68.62324 4 +854 10 76 70 7 60.00631 2 +855 10 77 70 5 82.27186 4 +856 10 78 70 6 69.61368 2 +857 10 79 70 8 80.5422 2 +858 11 0 2 13 72.25544 2 +859 11 1 2 11 72.52309 2 +860 11 2 2 9 58.6558 2 +861 11 3 2 10 70.83396 4 +862 11 4 2 12 59.64076 2 +863 11 5 6 11 58.73002 2 +864 11 6 6 9 51.68284 2 +865 11 7 6 10 60.44658 2 +866 11 8 6 12 41.72112 2 +867 11 9 10 11 48.04569 2 +868 11 10 10 9 38.85097 2 +869 11 11 10 7 66.76922 2 +870 11 12 10 10 47.89635 2 +871 11 13 10 12 39.83504 2 +872 11 14 14 11 37.58799 2 +873 11 15 14 9 40.1583 2 +874 11 16 14 10 37.91096 2 +875 11 17 14 12 39.61176 2 +876 11 18 18 11 41.68369 2 +877 11 19 18 9 37.8909 2 +878 11 20 18 7 36.84768 2 +879 11 21 18 10 37.99681 2 +880 11 22 18 12 40.74909 2 +881 11 23 22 11 38.1951 2 +882 11 24 22 9 37.76289 2 +883 11 25 22 12 38.4719 2 +884 11 26 22 14 39.69831 2 +885 11 27 26 9 38.21993 2 +886 11 28 26 7 42.58244 2 +887 11 29 26 5 33.73709 2 +888 11 30 26 8 34.67358 2 +889 11 31 26 10 41.36039 2 +890 11 32 30 15 43.94854 2 +891 11 33 30 13 39.79798 2 +892 11 34 30 14 39.95246 2 +893 11 35 30 16 52.98419 2 +894 11 36 34 9 52.22146 2 +895 11 37 34 7 35.5075 2 +896 11 38 34 6 34.81337 2 +897 11 39 34 8 35.91239 2 +898 11 40 34 10 42.36455 2 +899 11 41 38 9 42.49994 2 +900 11 42 38 7 35.96558 2 +901 11 43 38 5 34.7513 2 +902 11 44 38 8 38.7001 2 +903 11 45 38 10 39.49758 2 +904 11 46 42 15 53.37435 2 +905 11 47 42 13 45.94517 2 +906 11 48 42 14 37.23239 2 +907 11 49 42 16 45.17265 2 +908 11 50 46 9 40.53572 2 +909 11 51 46 7 33.93403 2 +910 11 52 46 6 33.79772 2 +911 11 53 46 8 44.01878 2 +912 11 54 46 10 40.84123 2 +913 11 55 50 13 40.30571 2 +914 11 56 50 11 38.27108 2 +915 11 57 50 10 38.20849 2 +916 11 58 50 12 42.00068 2 +917 11 59 54 11 40.49293 2 +918 11 60 54 9 37.45419 2 +919 11 61 54 8 36.73589 2 +920 11 62 54 10 36.03219 2 +921 11 63 54 12 48.06945 2 +922 11 64 58 11 44.97005 2 +923 11 65 58 9 37.9962 2 +924 11 66 58 10 38.60521 2 +925 11 67 58 12 38.28026 2 +926 11 68 62 11 43.27189 2 +927 11 69 62 9 41.85427 2 +928 11 70 62 8 40.53897 2 +929 11 71 62 10 38.86961 2 +930 11 72 62 12 44.64533 2 +931 11 73 66 11 41.17705 2 +932 11 74 66 9 64.54002 4 +933 11 75 66 10 50.22131 2 +934 11 76 66 12 56.32427 2 +935 11 77 70 11 54.25858 2 +936 11 78 70 9 67.3208 2 +937 11 79 70 10 58.79767 2 +938 11 80 70 12 70.79712 2 +939 11 81 70 14 73.70197 2 +940 12 0 2 17 66.84149 2 +941 12 1 2 15 69.70914 4 +942 12 2 2 14 59.5784 2 +943 12 3 2 16 50.56581 2 +944 12 4 2 18 53.25472 2 +945 12 5 6 15 52.21196 4 +946 12 6 6 13 44.07725 2 +947 12 7 6 14 43.8545 2 +948 12 8 6 16 34.19675 2 +949 12 9 10 15 38.5791 2 +950 12 10 10 13 68.25533 2 +951 12 11 10 14 31.86466 2 +952 12 12 10 16 32.32772 2 +953 12 13 10 18 37.44073 2 +954 12 14 14 15 29.80713 2 +955 12 15 14 13 29.96742 2 +956 12 16 14 14 30.63523 2 +957 12 17 14 16 32.3804 2 +958 12 18 18 17 73.18938 2 +959 12 19 18 15 31.24282 2 +960 12 20 18 13 29.7484 2 +961 12 21 18 14 30.1451 2 +962 12 22 18 16 42.82601 2 +963 12 23 22 15 34.14036 2 +964 12 24 22 13 29.10251 2 +965 12 25 22 16 41.83716 2 +966 12 26 22 18 33.04204 2 +967 12 27 26 15 31.59147 2 +968 12 28 26 13 29.25078 2 +969 12 29 26 11 28.54955 2 +970 12 30 26 12 26.57463 2 +971 12 31 26 14 37.58172 2 +972 12 32 30 19 34.89118 2 +973 12 33 30 17 30.93009 2 +974 12 34 30 18 39.1061 2 +975 12 35 30 20 45.80412 2 +976 12 36 34 15 33.59331 2 +977 12 37 34 13 29.0811 2 +978 12 38 34 11 30.45646 2 +979 12 39 34 12 36.92769 2 +980 12 40 34 14 30.74805 2 +981 12 41 38 13 30.09276 2 +982 12 42 38 11 29.49794 2 +983 12 43 38 12 29.138 2 +984 12 44 38 14 30.65805 2 +985 12 45 38 16 33.59331 2 +986 12 46 42 19 45.74312 2 +987 12 47 42 17 37.09484 2 +988 12 48 42 18 50.73305 2 +989 12 49 42 20 34.85935 2 +990 12 50 46 13 37.63457 2 +991 12 51 46 11 26.64993 2 +992 12 52 46 12 31.28635 2 +993 12 53 46 14 41.4693 2 +994 12 54 46 16 34.3615 2 +995 12 55 50 17 33.04297 2 +996 12 56 50 15 30.16349 2 +997 12 57 50 14 38.80458 2 +998 12 58 50 16 35.10141 2 +999 12 59 54 15 47.82306 2 +1000 12 60 54 13 30.62337 2 +1001 12 61 54 14 29.39889 2 +1002 12 62 54 16 30.97098 2 +1003 12 63 54 18 41.86196 2 +1004 12 64 58 15 33.03971 2 +1005 12 65 58 13 32.42623 2 +1006 12 66 58 14 30.5161 2 +1007 12 67 58 16 29.99677 2 +1008 12 68 62 17 35.34495 2 +1009 12 69 62 15 34.75894 2 +1010 12 70 62 13 31.5317 2 +1011 12 71 62 14 33.28469 2 +1012 12 72 62 16 67.06571 2 +1013 12 73 66 15 34.41199 2 +1014 12 74 66 13 43.14892 2 +1015 12 75 66 14 52.5229 2 +1016 12 76 66 16 47.00025 2 +1017 12 77 70 17 54.64238 2 +1018 12 78 70 15 53.65053 2 +1019 12 79 70 13 59.94382 2 +1020 12 80 70 16 61.29859 2 +1021 12 81 70 18 66.37067 2 +1022 13 0 2 21 58.27919 2 +1023 13 1 2 19 48.52403 2 +1024 13 2 2 20 54.00749 2 +1025 13 3 2 22 49.07548 2 +1026 13 4 6 21 49.27903 2 +1027 13 5 6 19 38.69141 2 +1028 13 6 6 17 34.70657 2 +1029 13 7 6 18 33.04867 2 +1030 13 8 6 20 26.42041 2 +1031 13 9 10 19 35.88087 2 +1032 13 10 10 17 24.54554 2 +1033 13 11 10 20 26.42392 2 +1034 13 12 10 22 26.2246 2 +1035 13 13 14 21 33.81754 2 +1036 13 14 14 19 31.90584 2 +1037 13 15 14 17 21.96138 2 +1038 13 16 14 18 32.52321 2 +1039 13 17 14 20 27.99545 2 +1040 13 18 18 21 24.14617 2 +1041 13 19 18 19 23.0805 2 +1042 13 20 18 18 22.01956 2 +1043 13 21 18 20 26.7366 2 +1044 13 22 18 22 27.40142 2 +1045 13 23 22 19 29.30434 2 +1046 13 24 22 17 28.84299 2 +1047 13 25 22 20 25.64664 2 +1048 13 26 22 22 26.08491 2 +1049 13 27 26 19 31.43146 2 +1050 13 28 26 17 29.13325 2 +1051 13 29 26 16 28.10749 2 +1052 13 30 26 18 22.26734 2 +1053 13 31 26 20 26.10052 2 +1054 13 32 30 23 26.06544 2 +1055 13 33 30 21 23.97962 2 +1056 13 34 30 22 23.94105 2 +1057 13 35 30 24 38.30002 2 +1058 13 36 34 19 47.66401 2 +1059 13 37 34 17 22.26326 2 +1060 13 38 34 16 22.5462 2 +1061 13 39 34 18 21.40779 2 +1062 13 40 34 20 24.31542 2 +1063 13 41 38 19 24.31542 2 +1064 13 42 38 17 22.41765 2 +1065 13 43 38 15 21.57861 2 +1066 13 44 38 18 22.18582 2 +1067 13 45 38 20 30.84276 2 +1068 13 46 42 23 38.29905 2 +1069 13 47 42 21 29.28572 2 +1070 13 48 42 22 25.20417 2 +1071 13 49 42 24 28.96924 2 +1072 13 50 46 19 26.10157 2 +1073 13 51 46 17 22.26628 2 +1074 13 52 46 15 28.10595 2 +1075 13 53 46 18 31.01349 2 +1076 13 54 46 20 33.81077 2 +1077 13 55 50 21 26.08597 2 +1078 13 56 50 19 22.84868 2 +1079 13 57 50 18 23.07442 2 +1080 13 58 50 20 26.50211 2 +1081 13 59 54 21 27.25237 2 +1082 13 60 54 19 28.40328 2 +1083 13 61 54 17 23.16806 2 +1084 13 62 54 20 42.42507 2 +1085 13 63 54 22 24.14508 2 +1086 13 64 58 19 28.66337 2 +1087 13 65 58 17 32.85077 2 +1088 13 66 58 18 22.30959 2 +1089 13 67 58 20 32.61965 2 +1090 13 68 58 22 34.707 2 +1091 13 69 62 21 28.02345 2 +1092 13 70 62 19 25.58199 2 +1093 13 71 62 18 24.02014 2 +1094 13 72 62 20 35.37728 2 +1095 13 73 66 19 26.81449 2 +1096 13 74 66 17 35.47078 2 +1097 13 75 66 18 35.50182 2 +1098 13 76 66 20 39.14936 2 +1099 13 77 66 22 49.46113 2 +1100 13 78 70 21 53.12184 2 +1101 13 79 70 19 52.81032 2 +1102 13 80 70 20 49.43374 2 +1103 13 81 70 22 57.43348 2 +1104 14 0 2 27 64.92168 2 +1105 14 1 2 25 49.75104 2 +1106 14 2 2 23 43.08506 2 +1107 14 3 2 24 43.06265 2 +1108 14 4 2 26 38.80227 2 +1109 14 5 6 25 37.11431 2 +1110 14 6 6 23 34.59297 2 +1111 14 7 6 22 29.55676 2 +1112 14 8 6 24 30.48824 2 +1113 14 9 6 26 21.01691 2 +1114 14 10 10 23 26.72658 2 +1115 14 11 10 21 15.55635 2 +1116 14 12 10 24 23.55342 2 +1117 14 13 10 26 17.63898 2 +1118 14 14 14 25 20.88401 2 +1119 14 15 14 23 15.5296 2 +1120 14 16 14 22 16.94297 2 +1121 14 17 14 24 21.46108 2 +1122 14 18 14 26 19.5678 2 +1123 14 19 18 25 16.47208 2 +1124 14 20 18 23 22.4577 2 +1125 14 21 18 24 15.69847 2 +1126 14 22 18 26 16.49094 2 +1127 14 23 18 28 21.65304 2 +1128 14 24 22 23 13.99738 2 +1129 14 25 22 21 12.93224 2 +1130 14 26 22 24 15.36176 2 +1131 14 27 22 26 18.20183 2 +1132 14 28 26 25 22.02346 2 +1133 14 29 26 23 19.44761 2 +1134 14 30 26 21 14.36077 2 +1135 14 31 26 22 14.39818 2 +1136 14 32 26 24 29.50984 2 +1137 14 33 30 27 42.57497 2 +1138 14 34 30 25 16.10568 2 +1139 14 35 30 26 18.35915 2 +1140 14 36 30 28 26.80935 2 +1141 14 37 34 25 19.43044 2 +1142 14 38 34 23 16.78974 2 +1143 14 39 34 21 17.36678 2 +1144 14 40 34 22 14.85586 2 +1145 14 41 34 24 20.77229 2 +1146 14 42 38 23 20.77229 2 +1147 14 43 38 21 14.85586 2 +1148 14 44 38 22 15.90561 2 +1149 14 45 38 24 16.8138 2 +1150 14 46 38 26 19.43044 2 +1151 14 47 42 27 31.32024 2 +1152 14 48 42 25 18.13262 2 +1153 14 49 42 26 16.68937 2 +1154 14 50 42 28 23.29672 2 +1155 14 51 46 23 29.50879 2 +1156 14 52 46 21 14.39923 2 +1157 14 53 46 22 16.47419 2 +1158 14 54 46 24 21.41867 2 +1159 14 55 46 26 28.28838 2 +1160 14 56 50 25 18.20276 2 +1161 14 57 50 23 14.70925 2 +1162 14 58 50 22 14.32016 2 +1163 14 59 50 24 17.56833 2 +1164 14 60 54 27 21.65412 2 +1165 14 61 54 25 17.0086 2 +1166 14 62 54 23 15.80667 2 +1167 14 63 54 24 22.2441 2 +1168 14 64 54 26 16.47117 2 +1169 14 65 58 25 19.34983 2 +1170 14 66 58 23 30.13197 2 +1171 14 67 58 21 19.1058 2 +1172 14 68 58 24 15.29574 2 +1173 14 69 58 26 31.1665 2 +1174 14 70 62 25 18.44268 2 +1175 14 71 62 23 19.90882 2 +1176 14 72 62 22 15.52197 2 +1177 14 73 62 24 31.46532 2 +1178 14 74 66 25 21.21409 2 +1179 14 75 66 23 30.12183 2 +1180 14 76 66 21 31.07978 2 +1181 14 77 66 24 35.00092 2 +1182 14 78 66 26 37.28354 2 +1183 14 79 70 25 38.89145 2 +1184 14 80 70 23 45.04887 2 +1185 14 81 70 24 43.44064 2 +1186 14 82 70 26 48.33135 2 +1187 14 83 70 28 71.59924 2 +1188 15 0 2 31 50.43089 2 +1189 15 1 2 29 42.91298 2 +1190 15 2 2 28 42.38418 2 +1191 15 3 2 30 37.04332 2 +1192 15 4 2 32 33.13819 2 +1193 15 5 6 29 35.29976 2 +1194 15 6 6 27 28.63352 2 +1195 15 7 6 28 33.40365 2 +1196 15 8 6 30 24.88162 2 +1197 15 9 10 29 24.44129 2 +1198 15 10 10 27 21.2074 2 +1199 15 11 10 25 11.33985 2 +1200 15 12 10 28 11.45056 2 +1201 15 13 10 30 10.29005 2 +1202 15 14 14 31 13.50341 2 +1203 15 15 14 29 11.7388 2 +1204 15 16 14 27 12.56531 2 +1205 15 17 14 28 10.02605 2 +1206 15 18 14 30 15.89419 2 +1207 15 19 18 29 21.79189 2 +1208 15 20 18 27 7.03516 2 +1209 15 21 18 30 8.65807 2 +1210 15 22 18 32 11.21766 2 +1211 15 23 22 29 19.01182 2 +1212 15 24 22 27 9.57281 2 +1213 15 25 22 25 6.27222 2 +1214 15 26 22 28 8.19972 2 +1215 15 27 22 30 11.14191 2 +1216 15 28 26 29 10.2985 2 +1217 15 29 26 27 7.6623 2 +1218 15 30 26 26 11.20595 2 +1219 15 31 26 28 10.42459 2 +1220 15 32 26 30 14.68808 2 +1221 15 33 30 31 14.53416 2 +1222 15 34 30 29 8.5976 2 +1223 15 35 30 30 8.98877 2 +1224 15 36 30 32 16.1621 2 +1225 15 37 34 29 14.76556 2 +1226 15 38 34 27 8.87152 2 +1227 15 39 34 26 13.65054 2 +1228 15 40 34 28 9.28566 2 +1229 15 41 34 30 10.37757 2 +1230 15 42 38 29 10.37757 2 +1231 15 43 38 27 9.28566 2 +1232 15 44 38 25 13.65054 2 +1233 15 45 38 28 8.87152 2 +1234 15 46 38 30 14.76556 2 +1235 15 47 42 31 15.49839 2 +1236 15 48 42 29 11.27373 2 +1237 15 49 42 30 8.59656 2 +1238 15 50 42 32 14.53513 2 +1239 15 51 46 29 14.68903 2 +1240 15 52 46 27 10.42354 2 +1241 15 53 46 25 11.72413 2 +1242 15 54 46 28 8.3204 2 +1243 15 55 46 30 10.29715 2 +1244 15 56 50 29 11.14283 2 +1245 15 57 50 27 8.19865 2 +1246 15 58 50 26 6.62438 2 +1247 15 59 50 28 10.08771 2 +1248 15 60 50 30 18.88891 2 +1249 15 61 54 31 11.21875 2 +1250 15 62 54 29 8.58801 2 +1251 15 63 54 28 7.03607 2 +1252 15 64 54 30 21.79081 2 +1253 15 65 58 29 15.89309 2 +1254 15 66 58 27 10.06231 2 +1255 15 67 58 28 10.28065 2 +1256 15 68 58 30 11.70369 2 +1257 15 69 58 32 13.93244 2 +1258 15 70 62 29 11.04871 2 +1259 15 71 62 27 11.44943 2 +1260 15 72 62 26 11.47411 2 +1261 15 73 62 28 20.97101 2 +1262 15 74 62 30 24.43964 2 +1263 15 75 66 29 25.17828 2 +1264 15 76 66 27 30.0047 2 +1265 15 77 66 28 28.41148 2 +1266 15 78 66 30 31.39813 2 +1267 15 79 70 31 32.30377 2 +1268 15 80 70 29 33.06341 2 +1269 15 81 70 27 45.94646 2 +1270 15 82 70 30 42.29697 2 +1271 15 83 70 32 49.46457 2 +1272 16 0 2 35 48.0883 2 +1273 16 1 2 33 37.51395 2 +1274 16 2 2 34 43.08496 2 +1275 16 3 2 36 31.11689 2 +1276 16 4 6 35 35.7749 2 +1277 16 5 6 33 32.24863 2 +1278 16 6 6 31 28.41377 2 +1279 16 7 6 32 25.30389 2 +1280 16 8 6 34 22.04166 2 +1281 16 9 10 33 23.00888 2 +1282 16 10 10 31 20.48656 2 +1283 16 11 10 32 23.47465 2 +1284 16 12 10 34 10.20182 2 +1285 16 13 10 36 6.4633 2 +1286 16 14 14 35 13.32957 2 +1287 16 15 14 33 6.42536 2 +1288 16 16 14 32 6.6564 2 +1289 16 17 14 34 12.45247 2 +1290 16 18 14 36 11.33494 2 +1291 16 19 18 33 16.05421 2 +1292 16 20 18 31 7.70233 2 +1293 16 21 18 34 5.47382 2 +1294 16 22 18 36 7.15977 2 +1295 16 23 22 33 15.03659 2 +1296 16 24 22 31 8.28612 2 +1297 16 25 22 32 16.41049 2 +1298 16 26 22 34 8.02648 2 +1299 16 27 22 36 15.24296 2 +1300 16 28 26 35 12.31123 2 +1301 16 29 26 33 6.20181 2 +1302 16 30 26 31 6.72358 2 +1303 16 31 26 32 6.74817 2 +1304 16 32 26 34 14.60575 2 +1305 16 33 30 35 12.44338 2 +1306 16 34 30 33 4.64168 2 +1307 16 35 30 34 4.86838 2 +1308 16 36 30 36 12.55814 2 +1309 16 37 34 35 14.71438 2 +1310 16 38 34 33 5.66584 2 +1311 16 39 34 31 7.18876 2 +1312 16 40 34 32 9.15155 2 +1313 16 41 34 34 9.21947 2 +1314 16 42 38 33 9.21947 2 +1315 16 43 38 31 9.15155 2 +1316 16 44 38 32 7.57494 2 +1317 16 45 38 34 5.66584 2 +1318 16 46 38 36 14.26327 2 +1319 16 47 42 35 12.64167 2 +1320 16 48 42 33 4.73114 2 +1321 16 49 42 34 4.64064 2 +1322 16 50 42 36 12.44435 2 +1323 16 51 46 33 14.9257 2 +1324 16 52 46 31 6.74922 2 +1325 16 53 46 32 6.72452 2 +1326 16 54 46 34 6.09328 2 +1327 16 55 46 36 12.57218 2 +1328 16 56 50 35 17.9066 2 +1329 16 57 50 33 7.61884 2 +1330 16 58 50 31 13.64106 2 +1331 16 59 50 32 8.01061 2 +1332 16 60 50 34 13.70888 2 +1333 16 61 54 35 7.16085 2 +1334 16 62 54 33 5.47291 2 +1335 16 63 54 32 7.70125 2 +1336 16 64 54 34 16.05512 2 +1337 16 65 58 35 11.33604 2 +1338 16 66 58 33 12.1505 2 +1339 16 67 58 31 6.48095 2 +1340 16 68 58 34 6.30589 2 +1341 16 69 58 36 13.02782 2 +1342 16 70 62 35 6.46443 2 +1343 16 71 62 33 10.21163 2 +1344 16 72 62 31 25.73826 2 +1345 16 73 62 32 21.02806 2 +1346 16 74 62 34 22.8092 2 +1347 16 75 66 33 23.19435 2 +1348 16 76 66 31 29.56648 2 +1349 16 77 66 32 32.88296 2 +1350 16 78 66 34 30.46237 2 +1351 16 79 66 36 39.37489 2 +1352 16 80 70 35 34.45461 2 +1353 16 81 70 33 44.56784 2 +1354 16 82 70 34 37.56404 2 +1355 16 83 70 36 50.48351 2 +1356 17 0 2 39 55.89152 2 +1357 17 1 2 37 43.76914 2 +1358 17 2 2 38 45.4821 2 +1359 17 3 2 40 39.40415 2 +1360 17 4 6 39 41.22644 2 +1361 17 5 6 37 45.49474 2 +1362 17 6 6 36 38.18893 2 +1363 17 7 6 38 30.86861 2 +1364 17 8 6 40 26.1492 2 +1365 17 9 10 39 31.4181 2 +1366 17 10 10 37 27.82861 2 +1367 17 11 10 35 19.79086 2 +1368 17 12 10 38 21.19384 2 +1369 17 13 10 40 11.08373 2 +1370 17 14 14 39 18.87433 2 +1371 17 15 14 37 13.44036 2 +1372 17 16 14 38 12.97947 2 +1373 17 17 14 40 12.66558 2 +1374 17 18 18 39 21.95355 2 +1375 17 19 18 37 15.51747 2 +1376 17 20 18 35 16.06598 2 +1377 17 21 18 38 13.08165 2 +1378 17 22 18 40 12.71516 2 +1379 17 23 22 39 20.60304 2 +1380 17 24 22 37 14.94782 2 +1381 17 25 22 35 16.35647 2 +1382 17 26 22 38 14.06808 2 +1383 17 27 22 40 13.75759 2 +1384 17 28 26 39 18.0145 2 +1385 17 29 26 37 13.52479 2 +1386 17 30 26 36 16.67374 2 +1387 17 31 26 38 13.00469 2 +1388 17 32 26 40 22.33045 2 +1389 17 33 30 39 19.48113 2 +1390 17 34 30 37 13.36066 2 +1391 17 35 30 38 11.67926 2 +1392 17 36 30 40 18.87082 2 +1393 17 37 34 39 20.31476 2 +1394 17 38 34 37 13.53189 2 +1395 17 39 34 36 15.54272 2 +1396 17 40 34 38 16.7468 2 +1397 17 41 34 40 16.77501 2 +1398 17 42 38 39 13.58203 2 +1399 17 43 38 37 14.55761 2 +1400 17 44 38 35 15.54272 2 +1401 17 45 38 38 13.15827 2 +1402 17 46 38 40 20.38915 2 +1403 17 47 42 39 21.09871 2 +1404 17 48 42 37 13.27513 2 +1405 17 49 42 38 13.35962 2 +1406 17 50 42 40 19.48209 2 +1407 17 51 46 39 20.64395 2 +1408 17 52 46 37 13.5281 2 +1409 17 53 46 35 16.50998 2 +1410 17 54 46 38 13.52384 2 +1411 17 55 46 40 18.01555 2 +1412 17 56 50 39 18.29075 2 +1413 17 57 50 37 16.14362 2 +1414 17 58 50 36 23.69835 2 +1415 17 59 50 38 14.94682 2 +1416 17 60 50 40 21.11776 2 +1417 17 61 54 39 12.71624 2 +1418 17 62 54 37 13.08074 2 +1419 17 63 54 36 16.06498 2 +1420 17 64 54 38 14.77244 2 +1421 17 65 54 40 21.35948 2 +1422 17 66 58 39 12.66668 2 +1423 17 67 58 37 12.97858 2 +1424 17 68 58 38 13.43926 2 +1425 17 69 58 40 18.87543 2 +1426 17 70 62 39 11.08287 2 +1427 17 71 62 37 21.19469 2 +1428 17 72 62 36 18.88258 2 +1429 17 73 62 38 28.0485 2 +1430 17 74 62 40 28.39789 2 +1431 17 75 66 39 25.56449 2 +1432 17 76 66 37 33.93886 2 +1433 17 77 66 35 41.63254 2 +1434 17 78 66 38 40.28121 2 +1435 17 79 66 40 41.96925 2 +1436 17 80 70 39 40.79282 2 +1437 17 81 70 37 51.40185 2 +1438 17 82 70 38 43.84238 2 +1439 17 83 70 40 57.02794 2 +1440 18 0 3 5 57.67356 2 +1441 18 1 3 3 47.79481 2 +1442 18 2 3 1 44.72475 2 +1443 18 3 3 2 44.75078 2 +1444 18 4 3 4 31.81815 2 +1445 18 5 7 5 36.6016 2 +1446 18 6 7 3 29.7034 2 +1447 18 7 7 1 25.40746 2 +1448 18 8 7 2 26.13851 2 +1449 18 9 7 4 16.53054 2 +1450 18 10 11 3 20.96228 2 +1451 18 11 11 1 16.95669 2 +1452 18 12 11 2 21.02988 2 +1453 18 13 11 4 13.30963 2 +1454 18 14 15 3 15.72187 2 +1455 18 15 15 1 12.47471 2 +1456 18 16 15 2 13.68342 2 +1457 18 17 15 4 23.83271 2 +1458 18 18 15 6 25.97171 2 +1459 18 19 19 5 25.20065 2 +1460 18 20 19 3 13.37779 2 +1461 18 21 19 1 12.14346 2 +1462 18 22 19 2 12.8744 2 +1463 18 23 19 4 27.74299 2 +1464 18 24 23 3 15.43027 2 +1465 18 25 23 1 12.87779 2 +1466 18 26 23 2 13.11159 2 +1467 18 27 23 4 14.41199 2 +1468 18 28 23 6 25.18508 2 +1469 18 29 27 3 19.82516 2 +1470 18 30 27 1 11.13332 2 +1471 18 31 27 2 11.34173 2 +1472 18 32 27 4 14.18154 2 +1473 18 33 31 5 17.2441 2 +1474 18 34 31 3 18.29618 2 +1475 18 35 31 1 11.73186 2 +1476 18 36 31 2 11.81175 2 +1477 18 37 31 4 20.76759 2 +1478 18 38 35 5 24.29041 2 +1479 18 39 35 3 14.04401 2 +1480 18 40 35 1 11.72174 2 +1481 18 41 35 2 13.31297 2 +1482 18 42 35 4 17.14507 2 +1483 18 43 39 3 17.14507 2 +1484 18 44 39 1 13.31297 2 +1485 18 45 39 2 11.72174 2 +1486 18 46 39 4 15.94486 2 +1487 18 47 39 6 24.29041 2 +1488 18 48 43 3 23.86798 2 +1489 18 49 43 1 11.81279 2 +1490 18 50 43 2 12.70959 2 +1491 18 51 43 4 18.29707 2 +1492 18 52 43 6 17.24313 2 +1493 18 53 47 3 14.18249 2 +1494 18 54 47 1 11.34078 2 +1495 18 55 47 2 11.13238 2 +1496 18 56 47 4 19.31265 2 +1497 18 57 51 5 25.67091 2 +1498 18 58 51 3 14.9623 2 +1499 18 59 51 1 13.11252 2 +1500 18 60 51 2 11.82569 2 +1501 18 61 51 4 15.42921 2 +1502 18 62 55 3 24.37766 2 +1503 18 63 55 1 12.87341 2 +1504 18 64 55 2 12.56933 2 +1505 18 65 55 4 13.37679 2 +1506 18 66 55 6 22.69578 2 +1507 18 67 59 5 25.97061 2 +1508 18 68 59 3 23.83171 2 +1509 18 69 59 1 13.68452 2 +1510 18 70 59 2 12.47382 2 +1511 18 71 59 4 15.72098 2 +1512 18 72 63 3 13.34629 2 +1513 18 73 63 1 21.02226 2 +1514 18 74 63 2 16.95584 2 +1515 18 75 63 4 20.94298 2 +1516 18 76 67 3 16.16042 2 +1517 18 77 67 1 25.99086 2 +1518 18 78 67 2 24.88784 2 +1519 18 79 67 4 29.76539 2 +1520 18 80 67 6 36.22879 2 +1521 18 81 71 3 36.54593 2 +1522 18 82 71 1 45.44817 2 +1523 18 83 71 2 39.09429 2 +1524 18 84 71 4 47.87234 2 +1525 18 85 71 6 58.92879 2 +1526 19 0 3 9 50.63424 2 +1527 19 1 3 7 38.77725 2 +1528 19 2 3 6 42.88533 2 +1529 19 3 3 8 33.34238 2 +1530 19 4 3 10 28.48622 2 +1531 19 5 7 9 30.5504 2 +1532 19 6 7 7 28.13503 2 +1533 19 7 7 6 25.67235 2 +1534 19 8 7 8 21.53354 2 +1535 19 9 7 10 12.34175 2 +1536 19 10 11 7 21.13316 2 +1537 19 11 11 5 12.11658 2 +1538 19 12 11 6 15.17622 2 +1539 19 13 11 8 5.29351 2 +1540 19 14 15 9 16.40099 2 +1541 19 15 15 7 7.47552 2 +1542 19 16 15 5 3.98966 2 +1543 19 17 15 8 6.03629 2 +1544 19 18 15 10 15.92082 2 +1545 19 19 19 9 12.19199 2 +1546 19 20 19 7 7.22856 2 +1547 19 21 19 6 4.83278 2 +1548 19 22 19 8 5.79017 2 +1549 19 23 19 10 11.53899 2 +1550 19 24 23 9 10.59128 2 +1551 19 25 23 7 6.00316 2 +1552 19 26 23 5 9.32458 2 +1553 19 27 23 8 6.52571 2 +1554 19 28 23 10 18.66009 2 +1555 19 29 27 7 12.47657 2 +1556 19 30 27 5 6.33703 2 +1557 19 31 27 6 4.02786 2 +1558 19 32 27 8 7.27251 2 +1559 19 33 31 9 15.26806 2 +1560 19 34 31 7 8.39428 2 +1561 19 35 31 6 7.87247 2 +1562 19 36 31 8 5.54141 2 +1563 19 37 31 10 14.64482 2 +1564 19 38 35 9 14.11555 2 +1565 19 39 35 7 11.28237 2 +1566 19 40 35 6 13.73802 2 +1567 19 41 35 8 8.61505 2 +1568 19 42 35 10 9.72756 2 +1569 19 43 39 9 9.72756 2 +1570 19 44 39 7 8.61505 2 +1571 19 45 39 5 13.73802 2 +1572 19 46 39 8 11.29063 2 +1573 19 47 39 10 14.11555 2 +1574 19 48 43 9 14.68596 2 +1575 19 49 43 7 5.54244 2 +1576 19 50 43 5 7.88772 2 +1577 19 51 43 8 8.39331 2 +1578 19 52 43 10 15.26903 2 +1579 19 53 47 7 7.27345 2 +1580 19 54 47 5 4.02691 2 +1581 19 55 47 6 6.33797 2 +1582 19 56 47 8 12.47752 2 +1583 19 57 51 9 16.50132 2 +1584 19 58 51 7 6.52678 2 +1585 19 59 51 6 9.32365 2 +1586 19 60 51 8 5.50278 2 +1587 19 61 51 10 10.59036 2 +1588 19 62 55 9 11.5399 2 +1589 19 63 55 7 5.79108 2 +1590 19 64 55 5 4.83187 2 +1591 19 65 55 8 7.22955 2 +1592 19 66 55 10 12.19108 2 +1593 19 67 59 9 16.00014 2 +1594 19 68 59 7 6.03718 2 +1595 19 69 59 6 3.99075 2 +1596 19 70 59 8 7.47442 2 +1597 19 71 59 10 16.40188 2 +1598 19 72 63 7 5.74209 2 +1599 19 73 63 5 16.16898 2 +1600 19 74 63 6 14.63339 2 +1601 19 75 63 8 21.34312 2 +1602 19 76 67 9 12.3406 2 +1603 19 77 67 7 22.22193 2 +1604 19 78 67 5 25.30141 2 +1605 19 79 67 8 30.93936 2 +1606 19 80 67 10 30.55052 2 +1607 19 81 71 9 28.91728 2 +1608 19 82 71 7 31.15354 2 +1609 19 83 71 5 42.5745 2 +1610 19 84 71 8 37.62314 2 +1611 19 85 71 10 50.53018 2 +1612 20 0 3 13 56.74044 2 +1613 20 1 3 11 39.48188 2 +1614 20 2 3 12 45.98216 2 +1615 20 3 3 14 31.1347 2 +1616 20 4 7 15 45.41426 2 +1617 20 5 7 13 34.32958 2 +1618 20 6 7 11 29.34311 2 +1619 20 7 7 12 28.1238 2 +1620 20 8 7 14 19.28039 2 +1621 20 9 11 13 24.50282 2 +1622 20 10 11 11 22.40418 2 +1623 20 11 11 9 17.13271 2 +1624 20 12 11 10 13.7174 2 +1625 20 13 11 12 9.79413 2 +1626 20 14 15 13 12.7419 2 +1627 20 15 15 11 13.09168 2 +1628 20 16 15 12 13.90524 2 +1629 20 17 15 14 9.52776 2 +1630 20 18 15 16 12.24832 2 +1631 20 19 19 15 12.91909 2 +1632 20 20 19 13 7.47677 2 +1633 20 21 19 11 9.01367 2 +1634 20 22 19 12 9.64128 2 +1635 20 23 19 14 12.01561 2 +1636 20 24 23 13 10.83073 2 +1637 20 25 23 11 7.87626 2 +1638 20 26 23 12 7.22719 2 +1639 20 27 23 14 14.1944 2 +1640 20 28 23 16 13.30176 2 +1641 20 29 27 11 16.31919 2 +1642 20 30 27 9 11.70595 2 +1643 20 31 27 10 10.54005 2 +1644 20 32 27 12 9.09838 2 +1645 20 33 31 15 12.13293 2 +1646 20 34 31 13 14.2539 2 +1647 20 35 31 11 8.39258 2 +1648 20 36 31 12 8.35251 2 +1649 20 37 31 14 16.93341 2 +1650 20 38 35 15 14.7884 2 +1651 20 39 35 13 7.08939 2 +1652 20 40 35 11 8.49312 2 +1653 20 41 35 12 9.83805 2 +1654 20 42 35 14 9.83158 2 +1655 20 43 39 13 9.83158 2 +1656 20 44 39 11 9.83805 2 +1657 20 45 39 12 8.42154 2 +1658 20 46 39 14 7.08939 2 +1659 20 47 39 16 15.39552 2 +1660 20 48 43 13 21.43831 2 +1661 20 49 43 11 8.94239 2 +1662 20 50 43 12 9.25064 2 +1663 20 51 43 14 13.90778 2 +1664 20 52 43 16 11.61413 2 +1665 20 53 47 11 9.09933 2 +1666 20 54 47 9 9.60163 2 +1667 20 55 47 10 9.90139 2 +1668 20 56 47 12 16.32024 2 +1669 20 57 51 15 13.30269 2 +1670 20 58 51 13 14.19347 2 +1671 20 59 51 11 7.22812 2 +1672 20 60 51 12 8.69492 2 +1673 20 61 51 14 10.8298 2 +1674 20 62 55 13 12.01652 2 +1675 20 63 55 11 9.64037 2 +1676 20 64 55 12 9.19197 2 +1677 20 65 55 14 7.47586 2 +1678 20 66 55 16 16.67013 2 +1679 20 67 59 15 12.24941 2 +1680 20 68 59 13 10.32922 2 +1681 20 69 59 11 13.15715 2 +1682 20 70 59 12 13.09278 2 +1683 20 71 59 14 12.74103 2 +1684 20 72 63 11 9.87515 2 +1685 20 73 63 9 13.96303 2 +1686 20 74 63 10 16.54306 2 +1687 20 75 63 12 22.86061 2 +1688 20 76 63 14 24.75684 2 +1689 20 77 67 13 19.0911 2 +1690 20 78 67 11 29.18991 2 +1691 20 79 67 12 29.99811 2 +1692 20 80 67 14 34.84985 2 +1693 20 81 67 16 44.92187 2 +1694 20 82 71 13 30.58745 2 +1695 20 83 71 11 45.84966 2 +1696 20 84 71 12 45.39133 2 +1697 20 85 71 14 47.94012 2 +1698 21 0 3 19 54.37033 2 +1699 21 1 3 17 53.87666 2 +1700 21 2 3 15 50.47687 2 +1701 21 3 3 16 51.70124 2 +1702 21 4 3 18 42.12533 2 +1703 21 5 7 19 45.67312 2 +1704 21 6 7 17 43.85621 2 +1705 21 7 7 16 50.18035 2 +1706 21 8 7 18 37.91249 2 +1707 21 9 7 20 26.28797 2 +1708 21 10 11 17 35.53653 2 +1709 21 11 11 15 27.31297 2 +1710 21 12 11 14 37.25649 2 +1711 21 13 11 16 20.59044 2 +1712 21 14 11 18 25.51916 2 +1713 21 15 15 19 17.15198 2 +1714 21 16 15 17 17.26579 2 +1715 21 17 15 15 19.0944 2 +1716 21 18 15 18 21.80052 2 +1717 21 19 15 20 17.31769 2 +1718 21 20 19 19 25.05865 2 +1719 21 21 19 17 15.34907 2 +1720 21 22 19 16 46.81725 2 +1721 21 23 19 18 15.38062 2 +1722 21 24 19 20 16.69181 2 +1723 21 25 23 17 16.9528 2 +1724 21 26 23 15 23.97574 2 +1725 21 27 23 18 13.53776 2 +1726 21 28 23 20 13.86155 2 +1727 21 29 27 17 22.13235 2 +1728 21 30 27 15 18.76556 2 +1729 21 31 27 13 16.30731 2 +1730 21 32 27 14 16.35628 2 +1731 21 33 27 16 16.65281 2 +1732 21 34 31 19 16.04172 2 +1733 21 35 31 17 17.38185 2 +1734 21 36 31 16 21.43562 2 +1735 21 37 31 18 13.88497 2 +1736 21 38 31 20 20.45273 2 +1737 21 39 35 19 25.98402 2 +1738 21 40 35 17 13.85033 2 +1739 21 41 35 16 25.52384 2 +1740 21 42 35 18 16.13139 2 +1741 21 43 35 20 15.08702 2 +1742 21 44 39 19 15.08702 2 +1743 21 45 39 17 16.1006 2 +1744 21 46 39 15 22.87703 2 +1745 21 47 39 18 13.96635 2 +1746 21 48 39 20 26.14704 2 +1747 21 49 43 19 20.98184 2 +1748 21 50 43 17 15.77236 2 +1749 21 51 43 15 18.587 2 +1750 21 52 43 18 17.3713 2 +1751 21 53 43 20 19.28161 2 +1752 21 54 47 15 16.65375 2 +1753 21 55 47 13 19.38057 2 +1754 21 56 47 14 21.63214 2 +1755 21 57 47 16 22.58399 2 +1756 21 58 47 18 20.05655 2 +1757 21 59 51 19 13.33768 2 +1758 21 60 51 17 17.97427 2 +1759 21 61 51 16 24.25614 2 +1760 21 62 51 18 16.95187 2 +1761 21 63 55 19 18.05953 2 +1762 21 64 55 17 15.35265 2 +1763 21 65 55 15 28.67154 2 +1764 21 66 55 18 17.79303 2 +1765 21 67 55 20 28.44219 2 +1766 21 68 59 19 17.31865 2 +1767 21 69 59 17 19.28422 2 +1768 21 70 59 16 21.79585 2 +1769 21 71 59 18 18.31795 2 +1770 21 72 59 20 16.61102 2 +1771 21 73 63 17 16.72635 2 +1772 21 74 63 15 17.96099 2 +1773 21 75 63 13 32.17348 2 +1774 21 76 63 16 27.72847 2 +1775 21 77 63 18 34.26137 2 +1776 21 78 67 19 26.10697 2 +1777 21 79 67 17 38.68931 2 +1778 21 80 67 15 40.13619 2 +1779 21 81 67 18 43.22702 2 +1780 21 82 67 20 43.29438 2 +1781 21 83 71 17 42.87817 2 +1782 21 84 71 15 53.27163 2 +1783 21 85 71 16 49.17891 2 +1784 21 86 71 18 54.69536 2 +1785 21 87 71 20 62.58179 2 +1786 22 0 3 23 64.17477 2 +1787 22 1 3 21 60.64167 2 +1788 22 2 3 20 63.72104 4 +1789 22 3 3 22 53.14784 2 +1790 22 4 3 24 45.69964 2 +1791 22 5 7 25 65.36512 2 +1792 22 6 7 23 53.95878 2 +1793 22 7 7 21 43.18728 2 +1794 22 8 7 22 44.37864 2 +1795 22 9 7 24 40.57462 2 +1796 22 10 11 21 49.89742 2 +1797 22 11 11 19 40.72096 2 +1798 22 12 11 20 43.31945 2 +1799 22 13 11 22 32.86327 2 +1800 22 14 11 24 24.16504 2 +1801 22 15 15 23 25.13093 2 +1802 22 16 15 21 24.35106 2 +1803 22 17 15 22 27.96916 2 +1804 22 18 15 24 23.55725 2 +1805 22 19 15 26 23.03869 2 +1806 22 20 19 23 26.34996 2 +1807 22 21 19 21 35.90537 2 +1808 22 22 19 22 23.62287 2 +1809 22 23 19 24 21.83732 2 +1810 22 24 23 23 37.17578 2 +1811 22 25 23 21 24.40576 2 +1812 22 26 23 19 25.42995 2 +1813 22 27 23 22 29.54945 2 +1814 22 28 23 24 22.95057 2 +1815 22 29 27 21 26.79246 2 +1816 22 30 27 19 25.48604 2 +1817 22 31 27 18 27.54971 2 +1818 22 32 27 20 24.68959 2 +1819 22 33 27 22 46.99331 2 +1820 22 34 31 25 29.59792 2 +1821 22 35 31 23 22.59298 2 +1822 22 36 31 21 24.4916 2 +1823 22 37 31 22 22.5301 2 +1824 22 38 31 24 29.38737 2 +1825 22 39 35 25 26.94514 2 +1826 22 40 35 23 23.19109 2 +1827 22 41 35 21 24.82268 2 +1828 22 42 35 22 23.55411 2 +1829 22 43 35 24 22.58051 2 +1830 22 44 39 23 22.58051 2 +1831 22 45 39 21 23.58491 2 +1832 22 46 39 22 64.1032 2 +1833 22 47 39 24 22.75722 2 +1834 22 48 39 26 22.97668 2 +1835 22 49 43 23 28.8889 2 +1836 22 50 43 21 23.98375 2 +1837 22 51 43 22 23.14275 2 +1838 22 52 43 24 22.70382 2 +1839 22 53 43 26 35.08067 2 +1840 22 54 47 21 29.78906 2 +1841 22 55 47 19 29.75949 2 +1842 22 56 47 17 30.29682 2 +1843 22 57 47 20 27.27948 2 +1844 22 58 47 22 70.96059 2 +1845 22 59 51 23 22.97609 2 +1846 22 60 51 21 24.55271 2 +1847 22 61 51 20 25.51721 2 +1848 22 62 51 22 24.40484 2 +1849 22 63 51 24 34.48083 2 +1850 22 64 55 23 20.57816 2 +1851 22 65 55 21 24.85614 2 +1852 22 66 55 22 27.37463 2 +1853 22 67 55 24 25.9918 2 +1854 22 68 59 25 22.53491 2 +1855 22 69 59 23 23.57106 2 +1856 22 70 59 21 28.36405 2 +1857 22 71 59 22 24.35195 2 +1858 22 72 59 24 23.72187 2 +1859 22 73 63 23 21.74534 2 +1860 22 74 63 21 32.47999 2 +1861 22 75 63 19 39.76629 2 +1862 22 76 63 20 46.52411 2 +1863 22 77 63 22 47.10822 2 +1864 22 78 67 23 36.35827 2 +1865 22 79 67 21 59.80209 2 +1866 22 80 67 22 41.03943 2 +1867 22 81 67 24 52.62191 2 +1868 22 82 67 26 62.49051 2 +1869 22 83 71 23 45.94357 2 +1870 22 84 71 21 56.63793 2 +1871 22 85 71 19 60.14079 2 +1872 22 86 71 22 62.67652 2 +1873 22 87 71 24 64.58643 2 +1874 23 0 3 27 74.13505 2 +1875 23 1 3 25 68.11311 2 +1876 23 2 3 26 71.87006 2 +1877 23 3 3 28 58.3123 2 +1878 23 4 3 30 54.36537 2 +1879 23 5 7 29 67.95478 2 +1880 23 6 7 27 57.18039 2 +1881 23 7 7 26 60.69373 2 +1882 23 8 7 28 46.79095 2 +1883 23 9 11 27 54.11705 2 +1884 23 10 11 25 53.30766 2 +1885 23 11 11 23 43.93637 2 +1886 23 12 11 26 46.21541 2 +1887 23 13 11 28 91.74515 2 +1888 23 14 15 29 44.03137 2 +1889 23 15 15 27 31.26048 2 +1890 23 16 15 25 31.63847 2 +1891 23 17 15 28 28.56756 2 +1892 23 18 15 30 29.08798 2 +1893 23 19 19 29 44.96228 2 +1894 23 20 19 27 34.12634 2 +1895 23 21 19 25 31.52474 2 +1896 23 22 19 26 32.11132 2 +1897 23 23 19 28 32.27808 2 +1898 23 24 23 27 42.46845 2 +1899 23 25 23 25 31.78283 2 +1900 23 26 23 26 48.39105 2 +1901 23 27 23 28 36.62901 2 +1902 23 28 23 30 29.2747 2 +1903 23 29 27 25 34.49404 2 +1904 23 30 27 23 33.19351 2 +1905 23 31 27 24 34.76687 2 +1906 23 32 27 26 29.66035 2 +1907 23 33 27 28 35.88078 2 +1908 23 34 31 29 37.622 2 +1909 23 35 31 27 29.43079 2 +1910 23 36 31 26 33.97533 2 +1911 23 37 31 28 28.7649 2 +1912 23 38 31 30 34.91705 2 +1913 23 39 35 29 34.93125 2 +1914 23 40 35 27 62.41455 2 +1915 23 41 35 26 32.57629 2 +1916 23 42 35 28 37.51969 2 +1917 23 43 35 30 29.98671 2 +1918 23 44 39 29 29.32753 2 +1919 23 45 39 27 29.6912 2 +1920 23 46 39 25 32.75263 2 +1921 23 47 39 28 29.88 2 +1922 23 48 39 30 30.4951 2 +1923 23 49 43 29 36.14063 2 +1924 23 50 43 27 30.03951 2 +1925 23 51 43 25 33.92278 2 +1926 23 52 43 28 29.42976 2 +1927 23 53 43 30 39.72239 2 +1928 23 54 47 27 35.71517 2 +1929 23 55 47 25 29.29353 2 +1930 23 56 47 23 43.09184 2 +1931 23 57 47 24 31.84617 2 +1932 23 58 47 26 58.48039 2 +1933 23 59 51 29 26.79975 2 +1934 23 60 51 27 36.63001 2 +1935 23 61 51 25 46.39253 2 +1936 23 62 51 26 32.043 2 +1937 23 63 51 28 40.5305 2 +1938 23 64 55 27 30.13983 2 +1939 23 65 55 25 31.69974 2 +1940 23 66 55 26 29.77338 2 +1941 23 67 55 28 33.71082 2 +1942 23 68 55 30 44.80686 2 +1943 23 69 59 29 29.10387 2 +1944 23 70 59 27 28.99476 2 +1945 23 71 59 26 31.59111 2 +1946 23 72 59 28 30.96767 2 +1947 23 73 59 30 46.71967 2 +1948 23 74 63 27 36.20505 2 +1949 23 75 63 25 45.25368 2 +1950 23 76 63 24 47.20405 2 +1951 23 77 63 26 54.1054 2 +1952 23 78 63 28 57.11028 2 +1953 23 79 67 27 48.16911 2 +1954 23 80 67 25 57.10186 2 +1955 23 81 67 28 52.0019 2 +1956 23 82 67 30 62.50449 2 +1957 23 83 71 29 55.12794 2 +1958 23 84 71 27 61.64195 2 +1959 23 85 71 25 67.3648 2 +1960 23 86 71 26 71.24068 2 +1961 23 87 71 28 74.57172 2 +1962 24 0 3 33 81.85775 2 +1963 24 1 3 31 81.11935 2 +1964 24 2 3 29 73.2399 2 +1965 24 3 3 32 70.34806 2 +1966 24 4 3 34 67.18353 2 +1967 24 5 7 33 83.52439 2 +1968 24 6 7 31 73.17687 2 +1969 24 7 7 30 74.39261 2 +1970 24 8 7 32 60.39541 2 +1971 24 9 7 34 56.65705 2 +1972 24 10 11 31 65.84408 2 +1973 24 11 11 29 60.7112 2 +1974 24 12 11 30 60.51431 2 +1975 24 13 11 32 50.48909 2 +1976 24 14 11 34 39.60526 2 +1977 24 15 15 33 47.59766 2 +1978 24 16 15 31 38.53232 2 +1979 24 17 15 32 44.73244 2 +1980 24 18 15 34 34.80931 2 +1981 24 19 15 36 33.75037 2 +1982 24 20 19 33 51.85759 2 +1983 24 21 19 31 41.87715 2 +1984 24 22 19 30 47.08276 2 +1985 24 23 19 32 36.94979 2 +1986 24 24 19 34 36.12101 2 +1987 24 25 23 33 44.70717 2 +1988 24 26 23 31 37.76348 2 +1989 24 27 23 29 48.47765 2 +1990 24 28 23 32 34.78582 2 +1991 24 29 23 34 37.37599 2 +1992 24 30 27 29 41.37344 2 +1993 24 31 27 27 40.18856 2 +1994 24 32 27 30 39.76393 2 +1995 24 33 27 32 34.67122 2 +1996 24 34 27 34 37.78612 2 +1997 24 35 31 35 46.15473 2 +1998 24 36 31 33 35.78589 2 +1999 24 37 31 31 39.13625 2 +2000 24 38 31 32 38.87211 2 +2001 24 39 31 34 37.90563 2 +2002 24 40 35 35 41.3622 2 +2003 24 41 35 33 43.10304 2 +2004 24 42 35 31 55.00656 2 +2005 24 43 35 32 37.33815 2 +2006 24 44 35 34 51.59228 2 +2007 24 45 39 33 35.32111 2 +2008 24 46 39 31 35.53408 2 +2009 24 47 39 32 38.50863 2 +2010 24 48 39 34 35.61365 2 +2011 24 49 39 36 37.54204 2 +2012 24 50 43 33 39.29691 2 +2013 24 51 43 31 38.72261 2 +2014 24 52 43 32 41.13833 2 +2015 24 53 43 34 36.07917 2 +2016 24 54 43 36 44.61152 2 +2017 24 55 47 33 56.31144 2 +2018 24 56 47 31 34.41994 2 +2019 24 57 47 29 40.51026 2 +2020 24 58 47 28 40.28735 2 +2021 24 59 47 30 41.81533 2 +2022 24 60 51 33 38.32707 2 +2023 24 61 51 31 34.89145 2 +2024 24 62 51 30 43.37212 2 +2025 24 63 51 32 37.81139 2 +2026 24 64 51 34 48.28666 2 +2027 24 65 55 33 36.04488 2 +2028 24 66 55 31 36.57109 2 +2029 24 67 55 29 47.86547 2 +2030 24 68 55 32 37.54363 2 +2031 24 69 55 34 50.42012 2 +2032 24 70 59 35 34.37362 2 +2033 24 71 59 33 34.58114 2 +2034 24 72 59 31 44.21261 2 +2035 24 73 59 32 38.17369 2 +2036 24 74 59 34 46.86108 2 +2037 24 75 63 33 66.47323 2 +2038 24 76 63 31 54.16687 2 +2039 24 77 63 29 55.43549 2 +2040 24 78 63 30 61.81933 2 +2041 24 79 63 32 58.4488 2 +2042 24 80 67 33 62.5977 2 +2043 24 81 67 31 65.24983 2 +2044 24 82 67 29 74.13359 2 +2045 24 83 67 32 67.89078 2 +2046 24 84 67 34 71.07318 2 +2047 24 85 71 33 67.83102 2 +2048 24 86 71 31 71.88914 2 +2049 24 87 71 30 77.4677 2 +2050 24 88 71 32 84.45451 2 +2051 24 89 71 34 83.04755 2 +2052 25 0 3 37 91.77355 2 +2053 25 1 3 35 90.80017 2 +2054 25 2 3 36 85.03802 2 +2055 25 3 3 38 83.08509 2 +2056 25 4 3 40 69.62965 2 +2057 25 5 7 37 92.56151 2 +2058 25 6 7 35 72.42574 4 +2059 25 7 7 36 78.38662 2 +2060 25 8 7 38 66.49936 2 +2061 25 9 7 40 60.55761 2 +2062 25 10 11 35 64.26471 2 +2063 25 11 11 33 64.15835 2 +2064 25 12 11 36 61.43029 2 +2065 25 13 11 38 54.09519 2 +2066 25 14 11 40 45.75052 2 +2067 25 15 15 39 56.6665 2 +2068 25 16 15 37 47.057 2 +2069 25 17 15 35 45.54907 2 +2070 25 18 15 38 42.27349 2 +2071 25 19 15 40 41.35791 2 +2072 25 20 19 37 54.90061 2 +2073 25 21 19 35 46.92912 2 +2074 25 22 19 36 50.92915 2 +2075 25 23 19 38 43.58864 3 +2076 25 24 19 40 42.7073 2 +2077 25 25 23 37 46.42629 2 +2078 25 26 23 35 47.1917 2 +2079 25 27 23 36 46.5468 2 +2080 25 28 23 38 42.80828 2 +2081 25 29 23 40 43.10573 2 +2082 25 30 27 33 50.47273 2 +2083 25 31 27 31 49.68529 2 +2084 25 32 27 36 46.15185 2 +2085 25 33 27 38 40.66116 2 +2086 25 34 27 40 43.45118 2 +2087 25 35 31 39 43.24726 2 +2088 25 36 31 37 45.34245 2 +2089 25 37 31 36 49.81006 2 +2090 25 38 31 38 42.57795 2 +2091 25 39 31 40 43.39105 2 +2092 25 40 35 39 50.25666 2 +2093 25 41 35 37 42.0118 2 +2094 25 42 35 36 45.67215 2 +2095 25 43 35 38 42.91409 2 +2096 25 44 35 40 41.54382 2 +2097 25 45 39 39 43.63384 2 +2098 25 46 39 37 41.23658 2 +2099 25 47 39 35 48.11686 4 +2100 25 48 39 38 48.08434 2 +2101 25 49 39 40 43.36314 2 +2102 25 50 43 39 43.31161 2 +2103 25 51 43 37 44.63357 2 +2104 25 52 43 35 46.52434 2 +2105 25 53 43 38 46.05004 2 +2106 25 54 43 40 43.2463 2 +2107 25 55 47 39 43.55826 2 +2108 25 56 47 37 41.8857 2 +2109 25 57 47 35 47.1488 2 +2110 25 58 47 32 57.96435 2 +2111 25 59 47 34 49.16233 2 +2112 25 60 51 39 43.31094 2 +2113 25 61 51 37 44.89491 2 +2114 25 62 51 35 46.85253 2 +2115 25 63 51 36 51.1072 2 +2116 25 64 51 38 59.9071 2 +2117 25 65 55 39 42.55396 2 +2118 25 66 55 37 44.72456 2 +2119 25 67 55 35 55.6584 2 +2120 25 68 55 36 45.30352 2 +2121 25 69 55 38 60.11964 2 +2122 25 70 59 39 41.3588 2 +2123 25 71 59 37 42.67829 2 +2124 25 72 59 36 45.41355 2 +2125 25 73 59 38 45.55638 2 +2126 25 74 59 40 51.50225 2 +2127 25 75 63 39 46.64051 2 +2128 25 76 63 37 58.72869 2 +2129 25 77 63 35 63.60976 2 +2130 25 78 63 34 68.72211 2 +2131 25 79 63 36 64.98689 4 +2132 25 80 67 39 59.72028 2 +2133 25 81 67 37 69.05015 2 +2134 25 82 67 35 78.52609 2 +2135 25 83 67 36 73.17583 4 +2136 25 84 67 38 84.82555 2 +2137 25 85 71 39 74.83991 2 +2138 25 86 71 37 82.68316 2 +2139 25 87 71 35 91.37777 2 +2140 25 88 71 36 87.94262 2 +2141 25 89 71 38 96.88163 2 +2142 26 0 3 39 98.54333 4 +2143 26 1 4 3 58.96372 2 +2144 26 2 4 1 58.54269 2 +2145 26 3 4 2 52.0471 2 +2146 26 4 4 4 51.59303 2 +2147 26 5 7 39 89.91476 4 +2148 26 6 8 3 44.83345 2 +2149 26 7 8 1 54.91414 2 +2150 26 8 8 2 50.10285 2 +2151 26 9 8 4 37.2279 2 +2152 26 10 11 39 67.33652 2 +2153 26 11 11 37 73.2666 2 +2154 26 12 12 1 30.95908 2 +2155 26 13 12 2 33.0697 2 +2156 26 14 12 4 24.43873 2 +2157 26 15 16 3 27.53136 2 +2158 26 16 16 1 28.92014 2 +2159 26 17 16 2 24.31748 2 +2160 26 18 16 4 25.84884 2 +2161 26 19 16 6 29.29929 2 +2162 26 20 19 39 54.29639 2 +2163 26 21 20 3 25.86004 2 +2164 26 22 20 1 31.86106 2 +2165 26 23 20 2 27.58896 2 +2166 26 24 20 4 23.90826 2 +2167 26 25 23 39 54.75397 2 +2168 26 26 24 3 25.12349 2 +2169 26 27 24 1 37.39618 2 +2170 26 28 24 2 24.51877 2 +2171 26 29 24 4 30.71348 2 +2172 26 30 27 39 76.70153 2 +2173 26 31 27 37 61.31222 2 +2174 26 32 27 35 58.32588 2 +2175 26 33 28 2 24.11542 2 +2176 26 34 28 4 30.96498 2 +2177 26 35 32 5 29.53803 2 +2178 26 36 32 3 25.54616 2 +2179 26 37 32 1 25.61059 2 +2180 26 38 32 2 26.5812 2 +2181 26 39 32 4 28.95393 2 +2182 26 40 36 5 33.66408 2 +2183 26 41 36 3 30.65368 2 +2184 26 42 36 1 36.35126 2 +2185 26 43 36 2 28.64753 2 +2186 26 44 36 4 24.9658 2 +2187 26 45 40 3 24.63905 2 +2188 26 46 40 1 25.09027 2 +2189 26 47 40 2 30.05497 2 +2190 26 48 40 4 26.10849 2 +2191 26 49 40 6 26.41456 2 +2192 26 50 44 3 33.8681 2 +2193 26 51 44 1 28.5439 2 +2194 26 52 44 2 29.47022 2 +2195 26 53 44 4 28.64255 2 +2196 26 54 44 6 32.53034 2 +2197 26 55 48 3 30.73208 2 +2198 26 56 48 1 23.67239 2 +2199 26 57 47 36 59.9278 2 +2200 26 58 47 38 56.23298 2 +2201 26 59 47 40 59.87388 2 +2202 26 60 52 3 29.7362 2 +2203 26 61 52 1 26.82277 2 +2204 26 62 52 2 25.09858 2 +2205 26 63 52 4 27.87304 2 +2206 26 64 51 40 54.753 2 +2207 26 65 56 3 24.03075 2 +2208 26 66 56 1 26.95325 2 +2209 26 67 56 2 30.71153 2 +2210 26 68 56 4 25.63951 2 +2211 26 69 55 40 56.39402 2 +2212 26 70 60 5 29.28573 2 +2213 26 71 60 3 25.99895 2 +2214 26 72 60 1 26.16306 2 +2215 26 73 60 2 29.32935 2 +2216 26 74 60 4 29.84471 2 +2217 26 75 64 3 25.93183 2 +2218 26 76 64 1 31.82085 2 +2219 26 77 64 2 30.88508 2 +2220 26 78 63 38 75.28597 2 +2221 26 79 63 40 69.10563 2 +2222 26 80 68 3 37.7483 2 +2223 26 81 68 1 51.70475 2 +2224 26 82 68 2 57.91457 2 +2225 26 83 68 4 47.87614 2 +2226 26 84 67 40 92.16464 4 +2227 26 85 72 3 46.04918 2 +2228 26 86 72 1 66.59049 2 +2229 26 87 72 2 53.90684 2 +2230 26 88 72 4 66.40685 2 +2231 26 89 71 40 99.70442 4 +2232 27 0 4 9 69.43745 2 +2233 27 1 4 7 74.00679 2 +2234 27 2 4 5 61.28765 2 +2235 27 3 4 6 66.36093 2 +2236 27 4 4 8 58.91822 2 +2237 27 5 8 7 69.00186 2 +2238 27 6 8 5 72.70677 2 +2239 27 7 8 6 64.57875 2 +2240 27 8 8 8 56.50161 2 +2241 27 9 8 10 47.89262 2 +2242 27 10 12 7 49.54516 2 +2243 27 11 12 5 47.62303 2 +2244 27 12 12 3 37.73419 2 +2245 27 13 12 6 41.59789 2 +2246 27 14 12 8 32.19786 2 +2247 27 15 16 9 34.73291 2 +2248 27 16 16 7 35.58052 2 +2249 27 17 16 5 49.68616 2 +2250 27 18 16 8 33.29426 2 +2251 27 19 16 10 38.08643 2 +2252 27 20 20 9 43.919 2 +2253 27 21 20 7 35.20428 2 +2254 27 22 20 5 35.03196 2 +2255 27 23 20 6 33.85164 2 +2256 27 24 20 8 31.43366 2 +2257 27 25 24 9 33.79695 2 +2258 27 26 24 7 37.39867 2 +2259 27 27 24 5 43.25937 2 +2260 27 28 24 6 31.76549 2 +2261 27 29 24 8 40.29542 2 +2262 27 30 28 5 34.59896 2 +2263 27 31 28 3 37.80702 2 +2264 27 32 28 1 39.9308 2 +2265 27 33 28 6 35.25508 2 +2266 27 34 28 8 30.73993 2 +2267 27 35 32 9 38.07973 2 +2268 27 36 32 7 32.10695 2 +2269 27 37 32 6 34.66309 2 +2270 27 38 32 8 42.49991 2 +2271 27 39 32 10 43.71116 2 +2272 27 40 36 9 33.16298 2 +2273 27 41 36 7 35.21623 2 +2274 27 42 36 6 40.70988 2 +2275 27 43 36 8 32.96388 2 +2276 27 44 36 10 38.24518 2 +2277 27 45 40 9 36.30371 2 +2278 27 46 40 7 30.6663 2 +2279 27 47 40 5 45.37628 2 +2280 27 48 40 8 32.66118 2 +2281 27 49 40 10 34.05971 2 +2282 27 50 44 9 40.63194 2 +2283 27 51 44 7 43.94703 2 +2284 27 52 44 5 37.1656 2 +2285 27 53 44 8 34.61116 2 +2286 27 54 44 10 41.46044 2 +2287 27 55 48 7 40.03644 2 +2288 27 56 48 5 33.84793 2 +2289 27 57 48 2 39.8293 2 +2290 27 58 48 4 38.34889 2 +2291 27 59 48 6 35.56659 2 +2292 27 60 52 7 37.5369 2 +2293 27 61 52 5 32.28159 2 +2294 27 62 52 6 43.96599 2 +2295 27 63 52 8 33.63476 2 +2296 27 64 52 10 34.11461 2 +2297 27 65 56 7 32.34465 2 +2298 27 66 56 5 32.70756 2 +2299 27 67 56 6 33.38097 2 +2300 27 68 56 8 32.08563 2 +2301 27 69 56 10 48.70025 2 +2302 27 70 60 9 37.84884 2 +2303 27 71 60 7 31.97713 2 +2304 27 72 60 6 33.87094 2 +2305 27 73 60 8 32.49787 2 +2306 27 74 60 10 32.44313 2 +2307 27 75 64 7 38.58695 2 +2308 27 76 64 5 36.10232 2 +2309 27 77 64 4 37.35329 2 +2310 27 78 64 6 46.06648 2 +2311 27 79 64 8 46.46924 2 +2312 27 80 68 9 84.63142 2 +2313 27 81 68 7 57.76419 2 +2314 27 82 68 5 66.58156 2 +2315 27 83 68 6 67.82162 2 +2316 27 84 68 8 58.3921 2 +2317 27 85 72 7 65.26986 2 +2318 27 86 72 5 65.34957 2 +2319 27 87 72 6 61.05553 2 +2320 27 88 72 8 73.54703 2 +2321 27 89 72 10 70.96914 2 +2322 28 0 4 13 90.34882 2 +2323 28 1 4 11 86.17126 2 +2324 28 2 4 10 86.50704 2 +2325 28 3 4 12 80.74613 2 +2326 28 4 4 14 69.17949 2 +2327 28 5 8 13 75.09327 2 +2328 28 6 8 11 68.16526 2 +2329 28 7 8 9 66.65993 4 +2330 28 8 8 12 69.35377 2 +2331 28 9 8 14 58.02692 2 +2332 28 10 12 13 65.33976 2 +2333 28 11 12 11 63.6381 2 +2334 28 12 12 9 50.30449 2 +2335 28 13 12 10 49.3641 2 +2336 28 14 12 12 47.64293 2 +2337 28 15 12 14 36.76793 2 +2338 28 16 16 13 42.96087 2 +2339 28 17 16 11 40.68512 2 +2340 28 18 16 12 42.68451 2 +2341 28 19 16 14 39.72053 2 +2342 28 20 16 16 44.28628 2 +2343 28 21 20 13 47.40215 2 +2344 28 22 20 11 43.13628 2 +2345 28 23 20 10 42.71092 2 +2346 28 24 20 12 73.01604 2 +2347 28 25 20 14 38.77203 2 +2348 28 26 24 13 51.62228 2 +2349 28 27 24 11 40.36099 2 +2350 28 28 24 10 43.10079 2 +2351 28 29 24 12 41.68716 2 +2352 28 30 24 14 41.07244 2 +2353 28 31 28 11 55.92466 2 +2354 28 32 28 9 43.30142 2 +2355 28 33 28 7 44.73923 2 +2356 28 34 28 10 39.74609 2 +2357 28 35 28 12 44.56228 2 +2358 28 36 32 15 37.35812 2 +2359 28 37 32 13 38.18617 2 +2360 28 38 32 11 39.36175 2 +2361 28 39 32 12 39.35746 2 +2362 28 40 32 14 45.5258 2 +2363 28 41 36 15 39.28062 2 +2364 28 42 36 13 39.81371 2 +2365 28 43 36 11 42.92725 2 +2366 28 44 36 12 37.35419 2 +2367 28 45 36 14 44.04748 2 +2368 28 46 40 13 39.92742 2 +2369 28 47 40 11 38.92344 2 +2370 28 48 40 12 41.12801 2 +2371 28 49 40 14 45.95853 2 +2372 28 50 40 16 37.37492 2 +2373 28 51 44 13 48.74244 2 +2374 28 52 44 11 39.13292 2 +2375 28 53 44 12 42.3361 2 +2376 28 54 44 14 47.54186 2 +2377 28 55 44 16 38.49769 2 +2378 28 56 48 11 47.14467 2 +2379 28 57 48 9 39.05894 2 +2380 28 58 48 8 43.43847 2 +2381 28 59 48 10 42.60692 2 +2382 28 60 48 12 56.13489 2 +2383 28 61 52 13 39.06594 2 +2384 28 62 52 11 39.27783 2 +2385 28 63 52 9 51.48851 2 +2386 28 64 52 12 50.65968 2 +2387 28 65 52 14 44.94022 2 +2388 28 66 56 13 37.12147 2 +2389 28 67 56 11 37.58762 2 +2390 28 68 56 9 39.98629 2 +2391 28 69 56 12 40.13383 2 +2392 28 70 56 14 45.17684 2 +2393 28 71 60 15 47.51881 2 +2394 28 72 60 13 37.04179 2 +2395 28 73 60 11 50.17159 2 +2396 28 74 60 12 40.24799 2 +2397 28 75 60 14 40.50583 2 +2398 28 76 64 13 44.88045 2 +2399 28 77 64 11 48.9019 2 +2400 28 78 64 9 57.5105 2 +2401 28 79 64 10 52.31775 2 +2402 28 80 64 12 53.52777 2 +2403 28 81 64 14 61.468 2 +2404 28 82 68 13 62.4 2 +2405 28 83 68 11 70.09406 2 +2406 28 84 68 10 70.64487 2 +2407 28 85 68 12 68.65671 2 +2408 28 86 68 14 87.14892 4 +2409 28 87 72 13 68.95024 4 +2410 28 88 72 11 76.22657 2 +2411 28 89 72 9 84.32155 4 +2412 28 90 72 12 83.852 4 +2413 28 91 72 14 82.74916 4 +2414 29 0 4 19 94.85412 2 +2415 29 1 4 17 94.52402 2 +2416 29 2 4 15 87.66195 2 +2417 29 3 4 16 83.53982 2 +2418 29 4 4 18 80.59148 2 +2419 29 5 8 17 85.29775 2 +2420 29 6 8 15 74.30616 2 +2421 29 7 8 16 76.64979 2 +2422 29 8 8 18 69.98874 2 +2423 29 9 8 20 88.82508 2 +2424 29 10 12 19 72.1861 4 +2425 29 11 12 17 63.43243 2 +2426 29 12 12 15 57.94537 2 +2427 29 13 12 16 58.01565 2 +2428 29 14 12 18 49.09617 2 +2429 29 15 16 19 49.21095 2 +2430 29 16 16 17 50.73062 2 +2431 29 17 16 15 48.19161 2 +2432 29 18 16 18 47.49389 2 +2433 29 19 16 20 44.05349 2 +2434 29 20 20 19 59.83448 2 +2435 29 21 20 17 62.50302 2 +2436 29 22 20 15 47.89485 2 +2437 29 23 20 16 53.66314 2 +2438 29 24 20 18 44.98536 2 +2439 29 25 20 20 45.02747 2 +2440 29 26 24 19 50.57337 2 +2441 29 27 24 17 45.31152 2 +2442 29 28 24 15 49.71207 2 +2443 29 29 24 16 47.69605 2 +2444 29 30 24 18 44.80421 2 +2445 29 31 28 17 47.53748 2 +2446 29 32 28 15 47.00953 2 +2447 29 33 28 13 53.14633 2 +2448 29 34 28 14 47.85463 2 +2449 29 35 28 16 52.68061 2 +2450 29 36 32 19 44.07454 2 +2451 29 37 32 17 54.57867 2 +2452 29 38 32 16 52.51012 2 +2453 29 39 32 18 46.60698 2 +2454 29 40 32 20 55.73385 2 +2455 29 41 36 19 51.92015 2 +2456 29 42 36 17 44.70647 2 +2457 29 43 36 16 50.12924 4 +2458 29 44 36 18 43.67601 2 +2459 29 45 36 20 46.63595 2 +2460 29 46 40 19 45.1902 2 +2461 29 47 40 17 45.91623 2 +2462 29 48 40 15 47.64327 2 +2463 29 49 40 18 46.78864 2 +2464 29 50 40 20 57.43239 2 +2465 29 51 44 19 48.94169 2 +2466 29 52 44 17 46.5772 2 +2467 29 53 44 15 49.36746 2 +2468 29 54 44 18 48.88163 2 +2469 29 55 44 20 44.71371 2 +2470 29 56 48 15 46.14701 2 +2471 29 57 48 13 49.20277 2 +2472 29 58 48 14 48.47381 4 +2473 29 59 48 16 49.73673 2 +2474 29 60 48 18 48.82761 2 +2475 29 61 52 17 59.62471 2 +2476 29 62 52 15 48.5698 2 +2477 29 63 52 16 53.43585 2 +2478 29 64 52 18 45.65051 2 +2479 29 65 52 20 46.34517 2 +2480 29 66 56 19 44.64862 2 +2481 29 67 56 17 47.40511 2 +2482 29 68 56 15 46.13048 2 +2483 29 69 56 16 48.11312 2 +2484 29 70 56 18 45.52136 2 +2485 29 71 56 20 57.54099 2 +2486 29 72 60 19 43.94039 2 +2487 29 73 60 17 45.73789 2 +2488 29 74 60 16 46.61581 2 +2489 29 75 60 18 50.44886 2 +2490 29 76 60 20 49.03304 2 +2491 29 77 64 17 47.40301 2 +2492 29 78 64 15 61.33283 2 +2493 29 79 64 16 65.2877 2 +2494 29 80 64 18 81.85434 2 +2495 29 81 64 20 74.32567 2 +2496 29 82 68 19 64.16765 2 +2497 29 83 68 17 65.89703 2 +2498 29 84 68 15 77.95724 2 +2499 29 85 68 16 80.57838 4 +2500 29 86 68 18 84.78416 2 +2501 29 87 72 17 79.9127 2 +2502 29 88 72 15 85.55651 4 +2503 29 89 72 16 88.85265 4 +2504 29 90 72 18 87.90838 4 +2505 29 91 72 20 92.15974 2 +2506 30 0 4 23 91.89599 2 +2507 30 1 4 21 97.42431 2 +2508 30 2 4 20 92.00373 2 +2509 30 3 4 22 91.65314 2 +2510 30 4 4 24 79.93605 2 +2511 30 5 8 23 90.62183 2 +2512 30 6 8 21 86.80434 2 +2513 30 7 8 19 77.13503 2 +2514 30 8 8 22 75.94617 2 +2515 30 9 8 24 68.21103 2 +2516 30 10 12 23 81.6808 4 +2517 30 11 12 21 70.59608 2 +2518 30 12 12 20 74.18298 2 +2519 30 13 12 22 57.44857 2 +2520 30 14 12 24 59.54158 2 +2521 30 15 16 23 56.29406 2 +2522 30 16 16 21 57.0358 2 +2523 30 17 16 22 64.55558 2 +2524 30 18 16 24 53.93498 2 +2525 30 19 16 26 51.85434 2 +2526 30 20 20 25 61.17244 2 +2527 30 21 20 23 61.9294 2 +2528 30 22 20 21 56.07572 2 +2529 30 23 20 22 53.94629 2 +2530 30 24 20 24 51.67673 2 +2531 30 25 24 25 58.69829 2 +2532 30 26 24 23 53.8907 2 +2533 30 27 24 21 52.98775 2 +2534 30 28 24 20 54.13912 2 +2535 30 29 24 22 54.37382 2 +2536 30 30 24 24 53.16048 2 +2537 30 31 28 21 65.18089 4 +2538 30 32 28 19 62.26043 2 +2539 30 33 28 18 59.40239 2 +2540 30 34 28 20 56.11433 2 +2541 30 35 28 22 76.13405 2 +2542 30 36 32 25 57.77503 4 +2543 30 37 32 23 61.62418 2 +2544 30 38 32 21 55.65234 2 +2545 30 39 32 22 52.07953 2 +2546 30 40 32 24 68.56104 2 +2547 30 41 36 25 62.79751 2 +2548 30 42 36 23 52.07849 2 +2549 30 43 36 21 58.68055 2 +2550 30 44 36 22 59.27402 2 +2551 30 45 36 24 56.05007 2 +2552 30 46 40 23 54.10864 2 +2553 30 47 40 21 58.34603 2 +2554 30 48 40 22 57.21519 2 +2555 30 49 40 24 50.63154 2 +2556 30 50 40 26 65.42629 2 +2557 30 51 44 23 63.94583 4 +2558 30 52 44 21 55.3941 2 +2559 30 53 44 22 59.08168 2 +2560 30 54 44 24 50.85073 2 +2561 30 55 44 26 58.00276 2 +2562 30 56 48 21 55.73877 2 +2563 30 57 48 19 54.28783 2 +2564 30 58 48 17 58.51364 2 +2565 30 59 48 20 56.12846 2 +2566 30 60 48 22 55.47356 2 +2567 30 61 52 23 55.01064 2 +2568 30 62 52 21 59.96194 2 +2569 30 63 52 19 55.26425 2 +2570 30 64 52 22 53.37777 2 +2571 30 65 52 24 53.60286 2 +2572 30 66 52 26 57.77895 2 +2573 30 67 56 23 51.75699 2 +2574 30 68 56 21 52.16381 2 +2575 30 69 56 22 53.14906 2 +2576 30 70 56 24 56.77465 2 +2577 30 71 56 26 54.88326 2 +2578 30 72 60 25 51.93812 2 +2579 30 73 60 23 51.41346 2 +2580 30 74 60 21 57.36423 2 +2581 30 75 60 22 58.25682 2 +2582 30 76 60 24 56.69315 2 +2583 30 77 64 23 62.44897 2 +2584 30 78 64 21 58.91695 2 +2585 30 79 64 19 74.27437 2 +2586 30 80 64 22 74.32684 4 +2587 30 81 64 24 77.14774 4 +2588 30 82 68 23 61.91701 2 +2589 30 83 68 21 74.34683 2 +2590 30 84 68 20 63.19293 2 +2591 30 85 68 22 84.1688 2 +2592 30 86 68 24 90.98369 2 +2593 30 87 72 23 79.64185 4 +2594 30 88 72 21 88.81047 4 +2595 30 89 72 19 96.51924 2 +2596 30 90 72 22 94.02414 2 +2597 30 91 72 24 96.47232 2 +2598 31 0 4 29 102.41819 4 +2599 31 1 4 27 96.67324 2 +2600 31 2 4 25 99.40716 4 +2601 31 3 4 26 97.64976 2 +2602 31 4 4 28 87.94584 2 +2603 31 5 4 30 87.10771 2 +2604 31 6 8 27 100.19033 2 +2605 31 7 8 25 94.7736 4 +2606 31 8 8 26 93.31376 4 +2607 31 9 8 28 81.99824 4 +2608 31 10 8 30 78.20091 2 +2609 31 11 12 29 77.16489 2 +2610 31 12 12 27 85.38052 4 +2611 31 13 12 25 71.72293 2 +2612 31 14 12 26 68.36371 2 +2613 31 15 12 28 66.38408 2 +2614 31 16 16 29 76.72467 2 +2615 31 17 16 27 62.01498 2 +2616 31 18 16 25 61.8611 2 +2617 31 19 16 28 63.16606 2 +2618 31 20 16 30 60.40745 2 +2619 31 21 20 29 65.53108 2 +2620 31 22 20 27 65.8347 2 +2621 31 23 20 26 66.34858 2 +2622 31 24 20 28 59.46207 2 +2623 31 25 20 30 59.01183 2 +2624 31 26 24 29 67.34613 2 +2625 31 27 24 27 61.33264 2 +2626 31 28 24 26 68.21016 2 +2627 31 29 24 28 58.95385 2 +2628 31 30 24 30 58.3289 2 +2629 31 31 28 27 71.62572 4 +2630 31 32 28 25 65.31952 2 +2631 31 33 28 23 65.17254 2 +2632 31 34 28 24 62.4547 2 +2633 31 35 28 26 67.99432 2 +2634 31 36 28 28 60.80263 2 +2635 31 37 32 29 64.1526 2 +2636 31 38 32 27 60.84226 2 +2637 31 39 32 26 60.5607 2 +2638 31 40 32 28 60.22329 2 +2639 31 41 32 30 74.02293 2 +2640 31 42 36 29 68.44053 2 +2641 31 43 36 27 59.46718 2 +2642 31 44 36 26 63.112 2 +2643 31 45 36 28 58.66479 2 +2644 31 46 36 30 66.50637 2 +2645 31 47 40 29 65.0244 2 +2646 31 48 40 27 67.13116 2 +2647 31 49 40 25 62.4047 2 +2648 31 50 40 28 59.75078 2 +2649 31 51 40 30 71.80589 2 +2650 31 52 44 29 67.89093 2 +2651 31 53 44 27 60.66817 2 +2652 31 54 44 25 64.27296 2 +2653 31 55 44 28 60.00807 2 +2654 31 56 44 30 60.87404 2 +2655 31 57 48 27 64.16244 4 +2656 31 58 48 25 67.00212 2 +2657 31 59 48 23 64.38729 2 +2658 31 60 48 24 63.30196 2 +2659 31 61 48 26 70.62668 2 +2660 31 62 48 28 73.87878 4 +2661 31 63 52 29 56.71526 2 +2662 31 64 52 27 58.64755 2 +2663 31 65 52 25 68.02538 2 +2664 31 66 52 28 67.4142 2 +2665 31 67 52 30 65.79281 2 +2666 31 68 56 29 57.71761 2 +2667 31 69 56 27 69.30068 2 +2668 31 70 56 25 64.33116 2 +2669 31 71 56 28 63.49698 2 +2670 31 72 56 30 66.41813 2 +2671 31 73 60 29 60.17439 2 +2672 31 74 60 27 63.06205 2 +2673 31 75 60 26 61.57174 2 +2674 31 76 60 28 61.88018 2 +2675 31 77 60 30 70.11741 2 +2676 31 78 64 27 61.71116 2 +2677 31 79 64 25 63.57449 2 +2678 31 80 64 26 75.07192 4 +2679 31 81 64 28 73.96477 2 +2680 31 82 64 30 88.83858 4 +2681 31 83 68 29 78.2017 2 +2682 31 84 68 27 83.87797 2 +2683 31 85 68 25 90.61472 2 +2684 31 86 68 26 99.96468 4 +2685 31 87 68 28 99.67407 2 +2686 31 88 72 29 85.84575 2 +2687 31 89 72 27 93.9024 2 +2688 31 90 72 25 99.59552 2 +2689 31 91 72 26 102.00368 4 +2690 31 92 72 28 99.47688 2 +2691 31 93 72 30 99.43563 4 +2692 32 0 4 33 99.46517 2 +2693 32 1 4 31 95.46583 2 +2694 32 2 4 32 97.95855 2 +2695 32 3 4 34 99.82625 2 +2696 32 4 4 36 96.56107 2 +2697 32 5 8 33 98.1951 4 +2698 32 6 8 31 96.04873 4 +2699 32 7 8 29 96.55925 2 +2700 32 8 8 32 95.36175 2 +2701 32 9 8 34 90.95198 2 +2702 32 10 8 36 77.45419 2 +2703 32 11 12 33 92.45661 4 +2704 32 12 12 31 89.72656 4 +2705 32 13 12 30 90.28164 2 +2706 32 14 12 32 76.96305 2 +2707 32 15 12 34 68.28536 2 +2708 32 16 16 33 71.23784 2 +2709 32 17 16 31 70.02308 2 +2710 32 18 16 32 77.33099 2 +2711 32 19 16 34 69.00803 2 +2712 32 20 16 36 67.08951 2 +2713 32 21 20 35 78.06642 2 +2714 32 22 20 33 80.69959 2 +2715 32 23 20 31 71.76913 2 +2716 32 24 20 32 65.34334 2 +2717 32 25 20 34 67.26237 2 +2718 32 26 24 35 72.38705 2 +2719 32 27 24 33 72.00586 2 +2720 32 28 24 31 67.57307 2 +2721 32 29 24 32 74.58744 2 +2722 32 30 24 34 67.16152 2 +2723 32 31 28 33 82.92394 2 +2724 32 32 28 31 74.41563 2 +2725 32 33 28 29 68.74226 2 +2726 32 34 28 30 75.18133 2 +2727 32 35 28 32 71.75827 2 +2728 32 36 28 34 70.03915 2 +2729 32 37 32 35 64.29969 2 +2730 32 38 32 33 66.3634 2 +2731 32 39 32 31 67.88857 2 +2732 32 40 32 32 69.35133 2 +2733 32 41 32 34 75.44281 2 +2734 32 42 36 35 75.64344 2 +2735 32 43 36 33 72.18022 2 +2736 32 44 36 31 66.7842 2 +2737 32 45 36 32 65.66054 2 +2738 32 46 36 34 66.02132 2 +2739 32 47 40 33 68.86495 2 +2740 32 48 40 31 65.47569 2 +2741 32 49 40 32 76.39476 2 +2742 32 50 40 34 62.98966 2 +2743 32 51 40 36 81.71677 2 +2744 32 52 44 33 66.82297 2 +2745 32 53 44 31 68.02078 2 +2746 32 54 44 32 71.55798 2 +2747 32 55 44 34 66.69448 2 +2748 32 56 44 36 64.76732 2 +2749 32 57 48 33 68.02484 2 +2750 32 58 48 31 68.18331 2 +2751 32 59 48 29 70.75628 2 +2752 32 60 48 30 71.67265 2 +2753 32 61 48 32 74.38824 2 +2754 32 62 48 34 71.06298 2 +2755 32 63 52 33 62.67148 2 +2756 32 64 52 31 70.90935 2 +2757 32 65 52 32 67.08458 2 +2758 32 66 52 34 66.51599 2 +2759 32 67 52 36 71.4275 2 +2760 32 68 56 33 65.71793 2 +2761 32 69 56 31 65.52007 2 +2762 32 70 56 32 68.82452 2 +2763 32 71 56 34 65.3748 2 +2764 32 72 56 36 69.22666 2 +2765 32 73 60 35 65.57322 2 +2766 32 74 60 33 66.02671 2 +2767 32 75 60 31 68.56754 2 +2768 32 76 60 32 70.64042 2 +2769 32 77 60 34 79.2259 2 +2770 32 78 64 33 67.73266 2 +2771 32 79 64 31 79.60812 2 +2772 32 80 64 29 89.82094 2 +2773 32 81 64 32 86.35165 4 +2774 32 82 64 34 94.33957 4 +2775 32 83 68 35 77.94242 2 +2776 32 84 68 33 91.88197 2 +2777 32 85 68 31 94.91926 2 +2778 32 86 68 30 100.04781 2 +2779 32 87 68 32 100.39128 4 +2780 32 88 68 34 82.29234 2 +2781 32 89 72 35 95.57105 2 +2782 32 90 72 33 101.29463 2 +2783 32 91 72 31 100.77572 4 +2784 32 92 72 32 86.69526 2 +2785 32 93 72 34 87.73866 2 +2786 33 0 4 39 100.76569 2 +2787 33 1 4 37 96.54242 2 +2788 33 2 4 35 94.80516 4 +2789 33 3 4 38 96.49267 4 +2790 33 4 4 40 102.35166 2 +2791 33 5 8 39 100.29505 4 +2792 33 6 8 37 101.61586 4 +2793 33 7 8 35 95.27118 2 +2794 33 8 8 38 96.76965 2 +2795 33 9 8 40 89.40571 2 +2796 33 10 12 39 101.7843 4 +2797 33 11 12 37 96.57197 2 +2798 33 12 12 35 83.80017 2 +2799 33 13 12 36 89.42048 2 +2800 33 14 12 38 75.14975 2 +2801 33 15 12 40 73.25466 2 +2802 33 16 16 39 80.30254 2 +2803 33 17 16 37 83.5873 2 +2804 33 18 16 35 76.46269 2 +2805 33 19 16 38 73.30301 2 +2806 33 20 16 40 72.73654 3 +2807 33 21 20 39 85.85421 2 +2808 33 22 20 37 74.28232 2 +2809 33 23 20 36 80.33406 2 +2810 33 24 20 38 73.50961 2 +2811 33 25 20 40 69.52573 2 +2812 33 26 24 39 75.88164 2 +2813 33 27 24 37 75.30659 2 +2814 33 28 24 36 80.02398 2 +2815 33 29 24 38 79.79513 2 +2816 33 30 24 40 69.2313 2 +2817 33 31 28 39 84.14784 2 +2818 33 32 28 37 75.05767 2 +2819 33 33 28 35 75.83082 2 +2820 33 34 28 36 75.08031 2 +2821 33 35 28 38 71.67918 2 +2822 33 36 28 40 74.48246 2 +2823 33 37 32 39 70.48019 2 +2824 33 38 32 37 72.40017 2 +2825 33 39 32 36 76.718 2 +2826 33 40 32 38 72.32248 2 +2827 33 41 32 40 83.29049 4 +2828 33 42 36 39 86.07804 2 +2829 33 43 36 37 75.05111 2 +2830 33 44 36 36 75.97803 2 +2831 33 45 36 38 72.47067 2 +2832 33 46 36 40 70.36246 2 +2833 33 47 40 39 72.22883 2 +2834 33 48 40 37 71.64424 2 +2835 33 49 40 35 78.74034 2 +2836 33 50 40 38 69.96488 2 +2837 33 51 40 40 83.6449 2 +2838 33 52 44 39 82.50975 4 +2839 33 53 44 37 69.89618 2 +2840 33 54 44 35 75.09992 2 +2841 33 55 44 38 73.17248 2 +2842 33 56 44 40 70.6751 2 +2843 33 57 48 39 73.81876 2 +2844 33 58 48 37 71.04252 2 +2845 33 59 48 35 71.50782 2 +2846 33 60 48 36 72.95414 2 +2847 33 61 48 38 78.89457 2 +2848 33 62 48 40 87.84753 2 +2849 33 63 52 39 69.53661 2 +2850 33 64 52 37 70.10991 2 +2851 33 65 52 35 74.61746 2 +2852 33 66 52 38 74.13018 2 +2853 33 67 52 40 78.34192 2 +2854 33 68 56 39 70.79644 2 +2855 33 69 56 37 73.09879 2 +2856 33 70 56 35 76.26028 2 +2857 33 71 56 38 73.3028 2 +2858 33 72 56 40 76.04443 2 +2859 33 73 60 39 70.98528 2 +2860 33 74 60 37 73.72315 2 +2861 33 75 60 36 76.38083 2 +2862 33 76 60 38 74.76302 2 +2863 33 77 60 40 75.47889 2 +2864 33 78 64 39 72.33789 2 +2865 33 79 64 37 82.02013 2 +2866 33 80 64 35 90.78365 2 +2867 33 81 64 36 87.90217 2 +2868 33 82 64 38 90.46145 2 +2869 33 83 64 40 98.47166 4 +2870 33 84 68 39 89.6738 2 +2871 33 85 68 37 102.98933 4 +2872 33 86 68 36 99.24737 4 +2873 33 87 68 38 102.26616 4 +2874 33 88 68 40 87.25184 2 +2875 33 89 72 39 99.71839 2 +2876 33 90 72 37 88.05332 2 +2877 33 91 72 36 88.91231 2 +2878 33 92 72 38 91.59795 2 +2879 33 93 72 40 94.14483 2 diff --git a/Detectors/TPC/base/files/LENGTH-OROC2.txt b/Detectors/TPC/base/files/LENGTH-OROC2.txt index 7d702f30a3e26..3fa26dafbaa46 100644 --- a/Detectors/TPC/base/files/LENGTH-OROC2.txt +++ b/Detectors/TPC/base/files/LENGTH-OROC2.txt @@ -1,3200 +1,3200 @@ -0 0 0 1 3 110.60739 2 -1 0 1 1 1 110.4044 2 -2 0 2 1 2 109.27584 2 -3 0 3 1 4 108.18434 2 -4 0 4 5 3 106.25242 2 -5 0 5 5 1 102.62965 2 -6 0 6 5 2 105.1966 2 -7 0 7 5 4 103.92957 2 -8 0 8 5 6 110.39389 4 -9 0 9 9 5 105.74178 2 -10 0 10 9 3 106.12295 2 -11 0 11 9 1 108.15588 2 -12 0 12 9 2 107.18801 2 -13 0 13 9 4 110.94795 2 -14 0 14 13 3 106.78553 2 -15 0 15 13 1 103.45652 2 -16 0 16 13 2 104.46445 3 -17 0 17 13 4 108.86367 2 -18 0 18 13 6 112.58242 2 -19 0 19 17 3 104.19603 2 -20 0 20 17 1 107.04165 2 -21 0 21 17 2 105.13637 2 -22 0 22 17 4 108.90753 2 -23 0 23 21 5 101.9212 2 -24 0 24 21 3 105.63432 2 -25 0 25 21 1 104.94851 2 -26 0 26 21 2 107.84238 2 -27 0 27 21 4 112.0574 4 -28 0 28 25 3 103.10754 2 -29 0 29 25 1 103.06899 2 -30 0 30 25 2 103.33074 2 -31 0 31 25 4 106.58494 2 -32 0 32 25 6 108.85032 2 -33 0 33 29 3 100.94033 2 -34 0 34 29 1 102.78041 2 -35 0 35 29 2 102.27288 2 -36 0 36 29 4 106.00971 2 -37 0 37 33 5 104.52836 2 -38 0 38 33 3 103.18128 2 -39 0 39 33 1 103.86546 2 -40 0 40 33 2 100.11496 2 -41 0 41 33 4 104.0645 2 -42 0 42 37 5 106.38613 2 -43 0 43 37 3 102.68666 2 -44 0 44 37 1 103.11428 2 -45 0 45 37 2 102.82505 2 -46 0 46 37 4 107.05002 3 -47 0 47 41 3 106.2435 2 -48 0 48 41 1 102.50799 2 -49 0 49 41 2 101.68939 2 -50 0 50 41 4 103.49756 2 -51 0 51 41 6 105.37932 2 -52 0 52 45 3 104.74142 2 -53 0 53 45 1 104.34312 2 -54 0 54 45 2 103.55874 2 -55 0 55 45 4 102.35538 2 -56 0 56 45 6 105.6801 2 -57 0 57 49 3 107.09569 2 -58 0 58 49 1 102.99727 2 -59 0 59 49 2 101.79638 2 -60 0 60 49 4 101.45768 2 -61 0 61 53 5 113.6873 2 -62 0 62 53 3 105.5794 2 -63 0 63 53 1 101.74808 2 -64 0 64 53 2 103.00798 2 -65 0 65 53 4 103.95878 2 -66 0 66 57 3 108.34107 2 -67 0 67 57 1 107.55975 2 -68 0 68 57 2 104.93782 2 -69 0 69 57 4 103.40907 2 -70 0 70 57 6 102.98047 2 -71 0 71 61 3 111.66533 2 -72 0 72 61 1 105.85227 2 -73 0 73 61 2 107.19615 2 -74 0 74 61 4 104.2679 2 -75 0 75 65 5 113.65583 4 -76 0 76 65 3 112.07316 4 -77 0 77 65 1 104.13932 2 -78 0 78 65 2 105.31836 2 -79 0 79 65 4 106.25807 2 -80 0 80 69 3 110.44166 2 -81 0 81 69 1 106.28621 2 -82 0 82 69 2 106.36659 2 -83 0 83 69 4 106.17889 2 -84 0 84 69 6 104.40631 2 -85 0 85 73 5 106.472 2 -86 0 86 73 3 105.11058 2 -87 0 87 73 1 103.83002 2 -88 0 88 73 2 104.02909 2 -89 0 89 73 4 107.67685 2 -90 0 90 77 3 107.05733 2 -91 0 91 77 1 108.5313 2 -92 0 92 77 2 106.83879 2 -93 0 93 77 4 111.91559 2 -94 1 0 1 7 108.28716 2 -95 1 1 1 5 103.90612 2 -96 1 2 1 6 107.85379 2 -97 1 3 1 8 101.06131 2 -98 1 4 1 10 102.34823 2 -99 1 5 5 9 103.80654 2 -100 1 6 5 7 94.2141 2 -101 1 7 5 5 91.97737 2 -102 1 8 5 8 96.13745 2 -103 1 9 5 10 97.19023 2 -104 1 10 9 9 93.96358 2 -105 1 11 9 7 100.47959 2 -106 1 12 9 6 96.4635 2 -107 1 13 9 8 98.70348 2 -108 1 14 9 10 102.99993 2 -109 1 15 13 7 96.50575 2 -110 1 16 13 5 95.89434 2 -111 1 17 13 8 105.07354 4 -112 1 18 13 10 110.86393 4 -113 1 19 17 9 101.27313 2 -114 1 20 17 7 95.16862 2 -115 1 21 17 5 100.66857 2 -116 1 22 17 6 105.21905 2 -117 1 23 17 8 111.58165 4 -118 1 24 21 9 94.29545 2 -119 1 25 21 7 94.56138 2 -120 1 26 21 6 91.16408 2 -121 1 27 21 8 100.13147 2 -122 1 28 21 10 108.67836 2 -123 1 29 25 9 95.92103 2 -124 1 30 25 7 95.0692 2 -125 1 31 25 5 96.31166 2 -126 1 32 25 8 95.80188 2 -127 1 33 25 10 111.38196 4 -128 1 34 29 7 92.95852 2 -129 1 35 29 5 94.45412 2 -130 1 36 29 6 93.59662 2 -131 1 37 29 8 96.40664 2 -132 1 38 33 9 96.36009 2 -133 1 39 33 7 94.53996 2 -134 1 40 33 6 93.80762 2 -135 1 41 33 8 93.47648 2 -136 1 42 33 10 97.33918 2 -137 1 43 37 9 96.73171 2 -138 1 44 37 7 102.81863 2 -139 1 45 37 6 92.73549 2 -140 1 46 37 8 96.9983 2 -141 1 47 37 10 104.17594 2 -142 1 48 41 9 97.39925 2 -143 1 49 41 7 95.46462 2 -144 1 50 41 5 91.35961 2 -145 1 51 41 8 94.80318 2 -146 1 52 41 10 101.96504 2 -147 1 53 45 9 100.02635 2 -148 1 54 45 7 94.77131 2 -149 1 55 45 5 92.72903 2 -150 1 56 45 8 95.15029 2 -151 1 57 45 10 104.16163 4 -152 1 58 49 7 105.78379 4 -153 1 59 49 5 94.25231 2 -154 1 60 49 6 93.78917 2 -155 1 61 49 8 93.31688 2 -156 1 62 53 9 107.85412 2 -157 1 63 53 7 97.59995 2 -158 1 64 53 6 96.11799 2 -159 1 65 53 8 95.41273 2 -160 1 66 53 10 96.38661 2 -161 1 67 57 9 107.04677 2 -162 1 68 57 7 97.43944 2 -163 1 69 57 5 97.16948 2 -164 1 70 57 8 96.1211 2 -165 1 71 57 10 94.71008 2 -166 1 72 61 7 106.93062 2 -167 1 73 61 5 110.13308 4 -168 1 74 61 6 97.47974 2 -169 1 75 61 8 96.16359 2 -170 1 76 61 10 101.30805 2 -171 1 77 65 9 108.65744 2 -172 1 78 65 7 105.24998 4 -173 1 79 65 6 100.27156 2 -174 1 80 65 8 96.71448 2 -175 1 81 69 9 107.49065 2 -176 1 82 69 7 108.1198 4 -177 1 83 69 5 99.89923 2 -178 1 84 69 8 98.71328 2 -179 1 85 69 10 94.64174 2 -180 1 86 73 9 104.5452 2 -181 1 87 73 7 95.7362 2 -182 1 88 73 6 93.12758 2 -183 1 89 73 8 94.41086 2 -184 1 90 73 10 100.10531 2 -185 1 91 77 9 103.13797 2 -186 1 92 77 7 102.66358 2 -187 1 93 77 5 105.57078 2 -188 1 94 77 6 103.09192 2 -189 1 95 77 8 108.18461 2 -190 2 0 1 13 113.54322 4 -191 2 1 1 11 98.20961 2 -192 2 2 1 9 102.98425 4 -193 2 3 1 12 91.69588 2 -194 2 4 1 14 91.52847 2 -195 2 5 5 13 92.75708 2 -196 2 6 5 11 87.40429 2 -197 2 7 5 12 84.77056 2 -198 2 8 5 14 88.31974 2 -199 2 9 5 16 88.54409 2 -200 2 10 9 13 86.61998 2 -201 2 11 9 11 88.75841 2 -202 2 12 9 12 86.06334 2 -203 2 13 9 14 105.05809 2 -204 2 14 13 13 87.44216 2 -205 2 15 13 11 88.37584 2 -206 2 16 13 9 85.98688 2 -207 2 17 13 12 91.72598 2 -208 2 18 13 14 98.21648 4 -209 2 19 17 13 86.19911 2 -210 2 20 17 11 86.04531 2 -211 2 21 17 10 84.5629 2 -212 2 22 17 12 99.94216 4 -213 2 23 17 14 96.23103 2 -214 2 24 21 15 88.93269 2 -215 2 25 21 13 86.31011 2 -216 2 26 21 11 95.15344 2 -217 2 27 21 12 97.33813 2 -218 2 28 21 14 103.51014 2 -219 2 29 25 13 85.24535 2 -220 2 30 25 11 86.59662 2 -221 2 31 25 12 85.71022 2 -222 2 32 25 14 97.48512 4 -223 2 33 25 16 98.73508 4 -224 2 34 29 11 82.82922 2 -225 2 35 29 9 95.82452 2 -226 2 36 29 10 84.80693 2 -227 2 37 29 12 99.92665 4 -228 2 38 33 15 88.92457 2 -229 2 39 33 13 106.08738 2 -230 2 40 33 11 86.36196 2 -231 2 41 33 12 87.51051 2 -232 2 42 33 14 95.92861 4 -233 2 43 37 15 89.73832 2 -234 2 44 37 13 84.79685 2 -235 2 45 37 11 84.96845 2 -236 2 46 37 12 85.63887 2 -237 2 47 37 14 100.70737 4 -238 2 48 41 13 98.5833 4 -239 2 49 41 11 85.91917 2 -240 2 50 41 12 85.71569 2 -241 2 51 41 14 88.20455 2 -242 2 52 41 16 94.99793 2 -243 2 53 45 13 87.52067 2 -244 2 54 45 11 87.63237 2 -245 2 55 45 12 84.50625 2 -246 2 56 45 14 85.85941 2 -247 2 57 45 16 87.86102 2 -248 2 58 49 11 96.39614 4 -249 2 59 49 9 84.51285 2 -250 2 60 49 10 83.69945 2 -251 2 61 49 12 84.55071 2 -252 2 62 53 15 92.00688 2 -253 2 63 53 13 87.70695 2 -254 2 64 53 11 86.54238 2 -255 2 65 53 12 86.81108 2 -256 2 66 53 14 84.11251 2 -257 2 67 57 13 97.3471 2 -258 2 68 57 11 91.88028 2 -259 2 69 57 12 88.0505 2 -260 2 70 57 14 87.79273 2 -261 2 71 57 16 88.96945 2 -262 2 72 61 13 95.97306 2 -263 2 73 61 11 104.71605 4 -264 2 74 61 9 83.73394 2 -265 2 75 61 12 87.42696 2 -266 2 76 61 14 85.35704 2 -267 2 77 65 13 109.1091 4 -268 2 78 65 11 96.23209 4 -269 2 79 65 10 90.11919 2 -270 2 80 65 12 85.97719 2 -271 2 81 65 14 87.48179 2 -272 2 82 69 13 102.72379 4 -273 2 83 69 11 88.80784 2 -274 2 84 69 12 96.52037 2 -275 2 85 69 14 86.30004 2 -276 2 86 73 15 87.07101 2 -277 2 87 73 13 88.33044 2 -278 2 88 73 11 85.75483 2 -279 2 89 73 12 87.78704 2 -280 2 90 73 14 101.29946 2 -281 2 91 77 13 94.27834 2 -282 2 92 77 11 93.05094 2 -283 2 93 77 10 97.42186 2 -284 2 94 77 12 101.74909 4 -285 2 95 77 14 107.62621 2 -286 3 0 1 17 100.81721 4 -287 3 1 1 15 91.64457 4 -288 3 2 1 16 83.63172 2 -289 3 3 1 18 93.78882 2 -290 3 4 5 19 83.92405 2 -291 3 5 5 17 79.03287 2 -292 3 6 5 15 74.89935 2 -293 3 7 5 18 78.51017 2 -294 3 8 5 20 81.70307 2 -295 3 9 9 19 77.36913 2 -296 3 10 9 17 77.52532 2 -297 3 11 9 15 82.60841 2 -298 3 12 9 16 79.46948 2 -299 3 13 9 18 91.93054 4 -300 3 14 13 17 77.26623 2 -301 3 15 13 15 86.17664 2 -302 3 16 13 16 82.41497 4 -303 3 17 13 18 84.1319 2 -304 3 18 13 20 90.84764 4 -305 3 19 17 19 79.56071 2 -306 3 20 17 17 78.95095 2 -307 3 21 17 15 79.38515 2 -308 3 22 17 16 79.43812 2 -309 3 23 17 18 102.52575 2 -310 3 24 21 19 81.03287 2 -311 3 25 21 17 76.77547 2 -312 3 26 21 16 78.0984 2 -313 3 27 21 18 92.13639 2 -314 3 28 21 20 89.95288 2 -315 3 29 25 17 75.05791 2 -316 3 30 25 15 76.86467 2 -317 3 31 25 18 78.32966 2 -318 3 32 25 20 79.91967 2 -319 3 33 29 17 86.58954 2 -320 3 34 29 15 78.75693 2 -321 3 35 29 13 76.25522 2 -322 3 36 29 14 77.16251 2 -323 3 37 29 16 88.18578 4 -324 3 38 33 19 81.2431 2 -325 3 39 33 17 79.13125 2 -326 3 40 33 16 75.20126 2 -327 3 41 33 18 76.50382 2 -328 3 42 33 20 79.32666 2 -329 3 43 37 19 82.83024 2 -330 3 44 37 17 76.53086 2 -331 3 45 37 16 74.16666 2 -332 3 46 37 18 77.81596 2 -333 3 47 37 20 92.51387 2 -334 3 48 41 19 91.99918 2 -335 3 49 41 17 78.52145 2 -336 3 50 41 15 73.86563 2 -337 3 51 41 18 77.64359 2 -338 3 52 41 20 82.88862 2 -339 3 53 45 19 81.62519 2 -340 3 54 45 17 77.02704 2 -341 3 55 45 15 74.62342 2 -342 3 56 45 18 77.1763 2 -343 3 57 45 20 78.6745 2 -344 3 58 49 15 80.75111 2 -345 3 59 49 13 76.88773 2 -346 3 60 49 14 75.12708 2 -347 3 61 49 16 74.09087 2 -348 3 62 49 18 76.97201 2 -349 3 63 53 19 79.98037 2 -350 3 64 53 17 78.48728 2 -351 3 65 53 16 76.33818 2 -352 3 66 53 18 75.47654 2 -353 3 67 57 19 92.15833 2 -354 3 68 57 17 88.52383 2 -355 3 69 57 15 77.68976 2 -356 3 70 57 18 76.74228 2 -357 3 71 57 20 82.40409 2 -358 3 72 61 17 99.76131 4 -359 3 73 61 15 79.84279 2 -360 3 74 61 16 80.86971 2 -361 3 75 61 18 78.80216 2 -362 3 76 61 20 77.89915 2 -363 3 77 65 19 94.03604 4 -364 3 78 65 17 89.6793 4 -365 3 79 65 15 79.60282 2 -366 3 80 65 16 79.08428 2 -367 3 81 65 18 77.91985 2 -368 3 82 69 17 95.52861 2 -369 3 83 69 15 78.11985 2 -370 3 84 69 16 79.09104 2 -371 3 85 69 18 75.20152 2 -372 3 86 69 20 75.86181 2 -373 3 87 73 19 81.02827 2 -374 3 88 73 17 83.87218 2 -375 3 89 73 16 74.26956 2 -376 3 90 73 18 80.67511 2 -377 3 91 73 20 101.98216 2 -378 3 92 77 17 94.59656 4 -379 3 93 77 15 94.00544 4 -380 3 94 77 16 95.07227 2 -381 3 95 77 18 98.67649 2 -382 4 0 1 23 97.77299 4 -383 4 1 1 21 93.6127 4 -384 4 2 1 19 89.09154 4 -385 4 3 1 20 82.47589 4 -386 4 4 1 22 74.26641 2 -387 4 5 5 23 73.6666 2 -388 4 6 5 21 75.31009 2 -389 4 7 5 22 75.69313 2 -390 4 8 5 24 69.33499 2 -391 4 9 5 26 75.89516 2 -392 4 10 9 23 66.87415 2 -393 4 11 9 21 69.6111 2 -394 4 12 9 20 68.79601 2 -395 4 13 9 22 75.29248 2 -396 4 14 9 24 87.63847 2 -397 4 15 13 23 69.47309 2 -398 4 16 13 21 69.22024 2 -399 4 17 13 19 67.33859 2 -400 4 18 13 22 73.51657 2 -401 4 19 13 24 87.38486 4 -402 4 20 17 23 100.54925 2 -403 4 21 17 21 68.87163 2 -404 4 22 17 20 69.6591 2 -405 4 23 17 22 86.60697 2 -406 4 24 17 24 94.35975 2 -407 4 25 21 23 68.50342 2 -408 4 26 21 21 72.99984 2 -409 4 27 21 22 69.52424 2 -410 4 28 21 24 90.06931 2 -411 4 29 25 23 80.07316 2 -412 4 30 25 21 67.45722 2 -413 4 31 25 19 68.40493 2 -414 4 32 25 22 67.99827 2 -415 4 33 25 24 70.10505 2 -416 4 34 29 21 70.97856 2 -417 4 35 29 19 66.02701 2 -418 4 36 29 18 63.89331 2 -419 4 37 29 20 65.8645 2 -420 4 38 29 22 81.1888 2 -421 4 39 33 25 72.00819 2 -422 4 40 33 23 68.71498 2 -423 4 41 33 21 71.87669 2 -424 4 42 33 22 67.66554 2 -425 4 43 33 24 70.30806 2 -426 4 44 37 25 72.04011 2 -427 4 45 37 23 68.85395 2 -428 4 46 37 21 71.83936 2 -429 4 47 37 22 67.99673 2 -430 4 48 37 24 76.73263 2 -431 4 49 41 23 70.63491 2 -432 4 50 41 21 68.18393 2 -433 4 51 41 22 67.64696 2 -434 4 52 41 24 70.97663 2 -435 4 53 41 26 81.34062 2 -436 4 54 45 23 72.49947 2 -437 4 55 45 21 73.33348 2 -438 4 56 45 22 70.73793 2 -439 4 57 45 24 70.42008 2 -440 4 58 45 26 71.72905 2 -441 4 59 49 21 69.53696 2 -442 4 60 49 19 69.86509 2 -443 4 61 49 17 65.1132 2 -444 4 62 49 20 65.02749 2 -445 4 63 49 22 67.66892 2 -446 4 64 53 23 79.09379 2 -447 4 65 53 21 67.88067 2 -448 4 66 53 20 68.8656 2 -449 4 67 53 22 67.79565 2 -450 4 68 53 24 79.18305 4 -451 4 69 57 23 81.19302 4 -452 4 70 57 21 69.63077 2 -453 4 71 57 22 72.49828 2 -454 4 72 57 24 68.91508 2 -455 4 73 61 23 86.6481 2 -456 4 74 61 21 82.03569 4 -457 4 75 61 19 67.36366 2 -458 4 76 61 22 75.80858 2 -459 4 77 61 24 69.54761 2 -460 4 78 65 23 87.78785 4 -461 4 79 65 21 89.16424 4 -462 4 80 65 20 74.2486 2 -463 4 81 65 22 78.61365 2 -464 4 82 65 24 68.75298 2 -465 4 83 69 23 83.23147 2 -466 4 84 69 21 69.82753 2 -467 4 85 69 19 67.53379 2 -468 4 86 69 22 66.64932 2 -469 4 87 69 24 67.60815 2 -470 4 88 73 25 71.15112 2 -471 4 89 73 23 97.67366 2 -472 4 90 73 21 77.21358 2 -473 4 91 73 22 69.14747 2 -474 4 92 73 24 80.8669 2 -475 4 93 77 21 84.56966 4 -476 4 94 77 19 87.41192 4 -477 4 95 77 20 83.55573 2 -478 4 96 77 22 97.70467 4 -479 4 97 77 24 99.79749 2 -480 5 0 1 27 85.12114 2 -481 5 1 1 25 83.00263 2 -482 5 2 1 24 77.96341 2 -483 5 3 1 26 75.81029 2 -484 5 4 1 28 66.43437 2 -485 5 5 5 27 69.71727 2 -486 5 6 5 25 67.22738 2 -487 5 7 5 28 71.14799 2 -488 5 8 5 30 65.54971 4 -489 5 9 5 32 66.81837 2 -490 5 10 9 27 57.69026 2 -491 5 11 9 25 58.09529 2 -492 5 12 9 26 60.75537 2 -493 5 13 9 28 63.80872 2 -494 5 14 9 30 78.08792 2 -495 5 15 13 27 60.18935 2 -496 5 16 13 25 59.36993 2 -497 5 17 13 26 69.18952 2 -498 5 18 13 28 69.75182 4 -499 5 19 13 30 106.01528 4 -500 5 20 17 27 91.20873 2 -501 5 21 17 25 60.41025 2 -502 5 22 17 26 61.80665 2 -503 5 23 17 28 73.97677 2 -504 5 24 21 29 60.65798 2 -505 5 25 21 27 59.68682 2 -506 5 26 21 25 59.79157 2 -507 5 27 21 26 59.36892 2 -508 5 28 21 28 70.3308 2 -509 5 29 25 27 63.51046 2 -510 5 30 25 25 59.51616 2 -511 5 31 25 26 73.02375 2 -512 5 32 25 28 59.1793 2 -513 5 33 25 30 67.0836 2 -514 5 34 29 27 61.06317 2 -515 5 35 29 25 61.77697 2 -516 5 36 29 23 62.74774 2 -517 5 37 29 24 58.84058 2 -518 5 38 29 26 70.48546 4 -519 5 39 33 29 61.40398 2 -520 5 40 33 27 60.63495 2 -521 5 41 33 26 58.25841 2 -522 5 42 33 28 60.085 2 -523 5 43 33 30 61.88161 2 -524 5 44 37 29 61.5376 2 -525 5 45 37 27 57.74158 2 -526 5 46 37 26 57.14774 2 -527 5 47 37 28 58.99625 2 -528 5 48 37 30 76.38163 2 -529 5 49 41 29 73.29867 2 -530 5 50 41 27 59.22822 2 -531 5 51 41 25 56.19207 2 -532 5 52 41 28 60.09709 2 -533 5 53 41 30 73.07449 2 -534 5 54 45 29 65.77397 2 -535 5 55 45 27 61.88415 2 -536 5 56 45 25 65.66899 2 -537 5 57 45 28 61.76981 2 -538 5 58 45 30 69.40698 2 -539 5 59 49 25 67.97399 2 -540 5 60 49 23 64.16167 2 -541 5 61 49 24 59.2749 2 -542 5 62 49 26 60.17414 2 -543 5 63 49 28 67.60292 2 -544 5 64 53 29 67.6914 2 -545 5 65 53 27 61.50637 2 -546 5 66 53 25 58.60668 2 -547 5 67 53 26 59.64907 2 -548 5 68 53 28 60.85243 2 -549 5 69 57 27 69.79246 2 -550 5 70 57 25 58.57243 2 -551 5 71 57 26 59.17623 2 -552 5 72 57 28 60.19214 2 -553 5 73 57 30 61.59599 2 -554 5 74 61 27 71.37118 2 -555 5 75 61 25 58.97437 2 -556 5 76 61 26 59.88956 2 -557 5 77 61 28 59.23613 2 -558 5 78 65 29 83.01912 2 -559 5 79 65 27 74.04583 2 -560 5 80 65 25 57.82915 2 -561 5 81 65 26 64.61791 2 -562 5 82 65 28 59.39028 2 -563 5 83 69 29 74.44204 2 -564 5 84 69 27 63.14186 2 -565 5 85 69 25 60.08879 2 -566 5 86 69 26 59.5538 2 -567 5 87 69 28 60.39653 2 -568 5 88 73 31 71.66345 2 -569 5 89 73 29 73.10667 2 -570 5 90 73 27 73.65982 2 -571 5 91 73 26 68.11625 2 -572 5 92 73 28 71.85668 2 -573 5 93 77 27 75.559 4 -574 5 94 77 25 77.60725 2 -575 5 95 77 23 77.56368 2 -576 5 96 77 26 83.52558 2 -577 5 97 77 28 86.66329 2 -578 6 0 1 31 77.44475 2 -579 6 1 1 29 74.14385 2 -580 6 2 1 30 75.64538 4 -581 6 3 1 32 65.24294 2 -582 6 4 5 33 68.70858 2 -583 6 5 5 31 65.82969 2 -584 6 6 5 29 56.93262 2 -585 6 7 5 34 52.11882 2 -586 6 8 5 36 58.88494 2 -587 6 9 9 33 63.74042 2 -588 6 10 9 31 49.88006 2 -589 6 11 9 29 48.99193 2 -590 6 12 9 32 52.32019 2 -591 6 13 9 34 63.55829 2 -592 6 14 13 33 49.90491 2 -593 6 15 13 31 50.48265 2 -594 6 16 13 29 60.72326 2 -595 6 17 13 32 52.55388 2 -596 6 18 13 34 64.18324 4 -597 6 19 17 31 49.58294 2 -598 6 20 17 29 67.12594 2 -599 6 21 17 30 51.21326 2 -600 6 22 17 32 52.54312 2 -601 6 23 17 34 59.20087 2 -602 6 24 21 33 52.00757 2 -603 6 25 21 31 51.53299 2 -604 6 26 21 30 47.8853 2 -605 6 27 21 32 58.33881 2 -606 6 28 21 34 63.2825 2 -607 6 29 25 33 59.59852 2 -608 6 30 25 31 60.89902 2 -609 6 31 25 29 65.24595 2 -610 6 32 25 32 49.45681 2 -611 6 33 25 34 64.94772 2 -612 6 34 29 31 50.67803 2 -613 6 35 29 29 48.5133 2 -614 6 36 29 28 46.04727 2 -615 6 37 29 30 58.33319 2 -616 6 38 29 32 61.02669 2 -617 6 39 33 35 52.39715 2 -618 6 40 33 33 55.25828 2 -619 6 41 33 31 56.77429 2 -620 6 42 33 32 51.79857 2 -621 6 43 33 34 62.34971 2 -622 6 44 37 35 54.46507 2 -623 6 45 37 33 52.4251 2 -624 6 46 37 31 60.02253 2 -625 6 47 37 32 48.50757 2 -626 6 48 37 34 63.73385 2 -627 6 49 41 33 64.33881 2 -628 6 50 41 31 49.38599 2 -629 6 51 41 32 62.98492 2 -630 6 52 41 34 64.04146 2 -631 6 53 41 36 56.71553 2 -632 6 54 45 33 59.91197 2 -633 6 55 45 31 51.47565 2 -634 6 56 45 32 50.59599 2 -635 6 57 45 34 50.42926 2 -636 6 58 45 36 52.61644 2 -637 6 59 49 31 61.06827 2 -638 6 60 49 29 51.57032 2 -639 6 61 49 27 45.5825 2 -640 6 62 49 30 47.47734 2 -641 6 63 49 32 57.28914 2 -642 6 64 53 33 67.76418 2 -643 6 65 53 31 50.11811 2 -644 6 66 53 30 48.03099 2 -645 6 67 53 32 51.04869 2 -646 6 68 53 34 61.2306 2 -647 6 69 57 33 63.31874 2 -648 6 70 57 31 58.88315 2 -649 6 71 57 29 47.05049 2 -650 6 72 57 32 51.88947 2 -651 6 73 57 34 52.43743 2 -652 6 74 61 33 76.12505 2 -653 6 75 61 31 50.35386 2 -654 6 76 61 29 48.67537 2 -655 6 77 61 30 46.81487 2 -656 6 78 61 32 71.06534 2 -657 6 79 65 33 66.58588 2 -658 6 80 65 31 53.04103 2 -659 6 81 65 30 59.14765 2 -660 6 82 65 32 50.03027 2 -661 6 83 65 34 50.42982 2 -662 6 84 69 33 65.66964 2 -663 6 85 69 31 51.65206 2 -664 6 86 69 30 74.15926 2 -665 6 87 69 32 49.92469 2 -666 6 88 69 34 50.00777 2 -667 6 89 73 35 61.09634 2 -668 6 90 73 33 53.08572 2 -669 6 91 73 30 83.78844 2 -670 6 92 73 32 61.27929 2 -671 6 93 73 34 84.10289 2 -672 6 94 77 31 66.2751 4 -673 6 95 77 29 75.14916 4 -674 6 96 77 30 68.63365 2 -675 6 97 77 32 74.93088 2 -676 7 0 1 35 74.7001 2 -677 7 1 1 33 74.38872 2 -678 7 2 1 34 70.01065 2 -679 7 3 1 36 61.35144 2 -680 7 4 1 38 56.98388 2 -681 7 5 5 39 58.88982 2 -682 7 6 5 37 49.38547 2 -683 7 7 5 35 52.8636 2 -684 7 8 5 38 47.50537 2 -685 7 9 5 40 50.47021 2 -686 7 10 9 37 50.11928 2 -687 7 11 9 35 41.91652 2 -688 7 12 9 36 48.5868 2 -689 7 13 9 38 47.3758 2 -690 7 14 9 40 47.69813 2 -691 7 15 13 37 40.91606 2 -692 7 16 13 35 47.78672 2 -693 7 17 13 36 43.98248 2 -694 7 18 13 38 50.85409 2 -695 7 19 13 40 52.75415 2 -696 7 20 17 35 40.00309 2 -697 7 21 17 33 37.44288 2 -698 7 22 17 36 43.81418 2 -699 7 23 17 38 43.41723 2 -700 7 24 17 40 55.03812 2 -701 7 25 21 37 45.02303 2 -702 7 26 21 35 42.73001 2 -703 7 27 21 36 39.38395 2 -704 7 28 21 38 56.82162 2 -705 7 29 21 40 47.09601 2 -706 7 30 25 37 42.44365 2 -707 7 31 25 35 82.87958 2 -708 7 32 25 36 48.12773 2 -709 7 33 25 38 45.39279 2 -710 7 34 25 40 44.50106 2 -711 7 35 29 35 47.61304 2 -712 7 36 29 33 38.35074 2 -713 7 37 29 34 38.78912 2 -714 7 38 29 36 52.77885 2 -715 7 39 29 38 46.71646 2 -716 7 40 33 39 44.27319 2 -717 7 41 33 37 46.85275 2 -718 7 42 33 36 39.51969 2 -719 7 43 33 38 45.83995 2 -720 7 44 33 40 43.85979 2 -721 7 45 37 39 42.79904 2 -722 7 46 37 37 40.69975 2 -723 7 47 37 36 40.62779 2 -724 7 48 37 38 57.71895 2 -725 7 49 37 40 62.38449 2 -726 7 50 41 39 44.01014 2 -727 7 51 41 37 40.19442 2 -728 7 52 41 35 41.79494 2 -729 7 53 41 38 42.33244 2 -730 7 54 41 40 42.8009 2 -731 7 55 45 39 44.60743 2 -732 7 56 45 37 47.51966 2 -733 7 57 45 35 43.45105 2 -734 7 58 45 38 41.33985 2 -735 7 59 45 40 42.61044 2 -736 7 60 49 37 53.93612 4 -737 7 61 49 35 45.7554 2 -738 7 62 49 33 38.76481 2 -739 7 63 49 34 39.61389 2 -740 7 64 49 36 48.26929 2 -741 7 65 53 39 43.99487 2 -742 7 66 53 37 44.97494 2 -743 7 67 53 35 43.07547 2 -744 7 68 53 36 69.35099 2 -745 7 69 53 38 42.36831 2 -746 7 70 57 39 47.06554 2 -747 7 71 57 37 46.30766 2 -748 7 72 57 35 38.55317 2 -749 7 73 57 36 43.33093 2 -750 7 74 57 38 45.23146 2 -751 7 75 61 39 52.03708 2 -752 7 76 61 37 42.48883 2 -753 7 77 61 35 40.54184 2 -754 7 78 61 34 36.73158 2 -755 7 79 61 36 39.80916 2 -756 7 80 65 39 55.91549 2 -757 7 81 65 37 52.24227 2 -758 7 82 65 35 43.30066 2 -759 7 83 65 36 52.2825 2 -760 7 84 65 38 42.08791 2 -761 7 85 69 39 46.51924 2 -762 7 86 69 37 44.45609 2 -763 7 87 69 35 55.46396 2 -764 7 88 69 36 41.64378 2 -765 7 89 69 38 49.72133 2 -766 7 90 73 39 46.15289 2 -767 7 91 73 37 56.8651 2 -768 7 92 73 36 47.06197 2 -769 7 93 73 38 50.99182 2 -770 7 94 73 40 64.82685 2 -771 7 95 77 37 56.78013 2 -772 7 96 77 35 59.41328 2 -773 7 97 77 33 77.69433 2 -774 7 98 77 34 72.10862 2 -775 7 99 77 36 71.90254 2 -776 8 0 1 39 88.85342 2 -777 8 1 1 37 87.18767 2 -778 8 2 1 40 55.62474 2 -779 8 3 2 2 77.20024 2 -780 8 4 2 4 64.41358 2 -781 8 5 6 5 77.38234 2 -782 8 6 6 3 67.13866 2 -783 8 7 6 1 60.00996 2 -784 8 8 6 2 61.13547 2 -785 8 9 6 4 65.91215 2 -786 8 10 9 39 32.21898 2 -787 8 11 10 3 59.11379 2 -788 8 12 10 1 62.54837 2 -789 8 13 10 2 63.28762 2 -790 8 14 10 4 80.10418 2 -791 8 15 13 39 30.81015 2 -792 8 16 14 3 66.3756 2 -793 8 17 14 1 67.56865 2 -794 8 18 14 2 61.82785 2 -795 8 19 14 4 75.4778 4 -796 8 20 17 39 30.21497 2 -797 8 21 17 37 31.91777 2 -798 8 22 18 1 68.38929 2 -799 8 23 18 2 61.5113 2 -800 8 24 18 4 74.58479 4 -801 8 25 21 39 33.89474 2 -802 8 26 22 3 60.59526 2 -803 8 27 22 1 65.79086 2 -804 8 28 22 2 60.79658 2 -805 8 29 22 4 74.06003 4 -806 8 30 25 39 32.69389 2 -807 8 31 26 3 64.95631 2 -808 8 32 26 1 62.76411 2 -809 8 33 26 2 58.81764 2 -810 8 34 26 4 64.04378 2 -811 8 35 29 39 35.05883 2 -812 8 36 29 37 29.71394 2 -813 8 37 29 40 35.00024 2 -814 8 38 30 2 57.61808 2 -815 8 39 30 4 62.4489 2 -816 8 40 34 5 59.74453 2 -817 8 41 34 3 63.5827 2 -818 8 42 34 1 64.63923 2 -819 8 43 34 2 67.58253 2 -820 8 44 34 4 59.75334 2 -821 8 45 38 5 61.76854 2 -822 8 46 38 3 61.64801 2 -823 8 47 38 1 63.28882 2 -824 8 48 38 2 58.90395 2 -825 8 49 38 4 59.4706 2 -826 8 50 42 3 70.61269 4 -827 8 51 42 1 57.88971 2 -828 8 52 42 2 69.65421 2 -829 8 53 42 4 62.75327 2 -830 8 54 42 6 62.31779 2 -831 8 55 46 3 60.33841 2 -832 8 56 46 1 61.10418 2 -833 8 57 46 2 58.33612 2 -834 8 58 46 4 61.26851 2 -835 8 59 46 6 60.57475 2 -836 8 60 50 3 65.16745 2 -837 8 61 50 1 60.75017 2 -838 8 62 49 39 39.532 2 -839 8 63 49 38 30.97301 2 -840 8 64 49 40 35.34514 2 -841 8 65 54 3 61.01463 2 -842 8 66 54 1 59.87884 2 -843 8 67 54 2 64.83928 2 -844 8 68 54 4 60.91228 2 -845 8 69 53 40 32.37712 2 -846 8 70 58 3 64.55209 2 -847 8 71 58 1 61.36179 2 -848 8 72 58 2 65.57539 2 -849 8 73 58 4 67.04429 2 -850 8 74 57 40 47.77197 2 -851 8 75 62 3 68.89739 2 -852 8 76 62 1 59.77738 2 -853 8 77 62 2 66.92808 2 -854 8 78 61 38 30.36934 2 -855 8 79 61 40 30.46788 2 -856 8 80 66 3 80.90325 4 -857 8 81 66 1 63.30607 2 -858 8 82 66 2 66.21933 2 -859 8 83 66 4 59.19481 2 -860 8 84 65 40 31.79098 2 -861 8 85 70 3 74.58914 4 -862 8 86 70 1 62.72119 2 -863 8 87 70 2 61.42096 2 -864 8 88 70 4 58.47921 2 -865 8 89 69 40 36.187 2 -866 8 90 74 3 65.95431 2 -867 8 91 74 1 63.7774 2 -868 8 92 74 2 59.12481 2 -869 8 93 74 4 69.25847 2 -870 8 94 74 6 66.07517 2 -871 8 95 78 3 62.12396 2 -872 8 96 78 1 78.96692 4 -873 8 97 77 39 53.6394 2 -874 8 98 77 38 62.1401 2 -875 8 99 77 40 59.02807 2 -876 9 0 2 5 82.01815 4 -877 9 1 2 3 77.39208 4 -878 9 2 2 1 65.82524 4 -879 9 3 2 6 74.07846 2 -880 9 4 2 8 67.01856 4 -881 9 5 2 10 55.66842 2 -882 9 6 6 9 67.35333 2 -883 9 7 6 7 55.8141 2 -884 9 8 6 6 50.43262 2 -885 9 9 6 8 50.59501 2 -886 9 10 6 10 55.97099 2 -887 9 11 10 9 51.72475 2 -888 9 12 10 7 50.04067 2 -889 9 13 10 5 51.04829 2 -890 9 14 10 6 76.26343 2 -891 9 15 10 8 54.80881 2 -892 9 16 14 9 48.43467 2 -893 9 17 14 7 50.29788 2 -894 9 18 14 5 57.93003 2 -895 9 19 14 6 51.42807 2 -896 9 20 14 8 62.4638 2 -897 9 21 18 7 50.36645 2 -898 9 22 18 5 57.26195 2 -899 9 23 18 3 54.47374 2 -900 9 24 18 6 52.88598 2 -901 9 25 18 8 66.33825 2 -902 9 26 22 9 53.03962 2 -903 9 27 22 7 50.09118 2 -904 9 28 22 5 98.92548 2 -905 9 29 22 6 50.83703 2 -906 9 30 22 8 63.61735 4 -907 9 31 26 9 49.91984 2 -908 9 32 26 7 53.66878 2 -909 9 33 26 5 49.03784 2 -910 9 34 26 6 48.7716 2 -911 9 35 26 8 55.72253 2 -912 9 36 30 5 49.91743 2 -913 9 37 30 3 45.65683 2 -914 9 38 30 1 46.21015 2 -915 9 39 30 6 45.96104 2 -916 9 40 30 8 53.17332 2 -917 9 41 34 9 57.39022 2 -918 9 42 34 7 51.67285 2 -919 9 43 34 6 49.94667 2 -920 9 44 34 8 47.46744 2 -921 9 45 34 10 62.9195 2 -922 9 46 38 9 52.05097 2 -923 9 47 38 7 50.60769 2 -924 9 48 38 6 47.89013 2 -925 9 49 38 8 75.71595 2 -926 9 50 38 10 52.86257 2 -927 9 51 42 9 52.71097 2 -928 9 52 42 7 49.40394 2 -929 9 53 42 5 48.10015 2 -930 9 54 42 8 50.82968 2 -931 9 55 42 10 53.05034 2 -932 9 56 46 9 50.87265 2 -933 9 57 46 7 47.90526 2 -934 9 58 46 5 46.68738 2 -935 9 59 46 8 51.90143 2 -936 9 60 46 10 51.64987 2 -937 9 61 50 7 55.10299 2 -938 9 62 50 5 47.22825 2 -939 9 63 50 2 46.34822 2 -940 9 64 50 4 46.42604 2 -941 9 65 50 6 49.53148 2 -942 9 66 54 7 62.0564 4 -943 9 67 54 5 49.19213 2 -944 9 68 54 6 49.27797 2 -945 9 69 54 8 55.29778 2 -946 9 70 54 10 49.76286 2 -947 9 71 58 7 56.55005 2 -948 9 72 58 5 65.96333 2 -949 9 73 58 6 49.1464 2 -950 9 74 58 8 48.5772 2 -951 9 75 58 10 46.69989 2 -952 9 76 62 7 66.05102 4 -953 9 77 62 5 50.97314 2 -954 9 78 62 4 50.61986 2 -955 9 79 62 6 52.93483 2 -956 9 80 62 8 50.13676 2 -957 9 81 66 7 53.54229 2 -958 9 82 66 5 48.46041 2 -959 9 83 66 6 57.13812 2 -960 9 84 66 8 53.96942 2 -961 9 85 66 10 48.42541 2 -962 9 86 70 7 64.67517 4 -963 9 87 70 5 59.45769 2 -964 9 88 70 6 62.93964 2 -965 9 89 70 8 50.2287 2 -966 9 90 70 10 51.61209 2 -967 9 91 74 9 51.88138 2 -968 9 92 74 7 52.28336 2 -969 9 93 74 5 55.60585 2 -970 9 94 74 8 60.40624 2 -971 9 95 74 10 54.67453 2 -972 9 96 78 9 55.65763 2 -973 9 97 78 7 67.20951 4 -974 9 98 78 5 65.40751 2 -975 9 99 78 2 65.99695 4 -976 9 100 78 4 77.42901 4 -977 9 101 78 6 82.33808 4 -978 10 0 2 11 71.45897 2 -979 10 1 2 9 66.28117 2 -980 10 2 2 7 61.0952 2 -981 10 3 2 12 56.03781 2 -982 10 4 2 14 53.61914 2 -983 10 5 6 15 61.2822 2 -984 10 6 6 13 48.44789 2 -985 10 7 6 11 47.35123 2 -986 10 8 6 12 51.88028 2 -987 10 9 6 14 42.24783 2 -988 10 10 10 15 41.808 2 -989 10 11 10 13 42.1353 2 -990 10 12 10 11 42.19117 2 -991 10 13 10 10 64.88936 2 -992 10 14 10 12 53.01245 2 -993 10 15 14 15 49.56072 2 -994 10 16 14 13 41.22403 2 -995 10 17 14 11 40.79941 2 -996 10 18 14 10 39.97688 2 -997 10 19 14 12 41.90424 2 -998 10 20 18 13 41.92945 2 -999 10 21 18 11 39.67002 2 -1000 10 22 18 9 39.3245 2 -1001 10 23 18 10 38.98119 2 -1002 10 24 18 12 43.16524 2 -1003 10 25 18 14 53.61589 2 -1004 10 26 22 13 43.55568 2 -1005 10 27 22 11 40.84312 2 -1006 10 28 22 10 39.11898 2 -1007 10 29 22 12 47.69392 2 -1008 10 30 22 14 52.43886 2 -1009 10 31 26 13 40.97282 2 -1010 10 32 26 11 39.22803 2 -1011 10 33 26 10 92.36153 2 -1012 10 34 26 12 43.31084 2 -1013 10 35 26 14 47.52533 2 -1014 10 36 30 11 47.90288 2 -1015 10 37 30 9 37.43989 2 -1016 10 38 30 7 39.16884 2 -1017 10 39 30 10 37.90363 2 -1018 10 40 30 12 42.7903 2 -1019 10 41 34 15 42.22233 2 -1020 10 42 34 13 41.00021 2 -1021 10 43 34 11 43.37499 2 -1022 10 44 34 12 38.91571 2 -1023 10 45 34 14 42.20199 2 -1024 10 46 38 15 43.62112 2 -1025 10 47 38 13 41.00297 2 -1026 10 48 38 11 37.51556 2 -1027 10 49 38 12 39.92106 2 -1028 10 50 38 14 47.35323 2 -1029 10 51 42 13 49.51152 2 -1030 10 52 42 11 39.65262 2 -1031 10 53 42 12 41.66875 2 -1032 10 54 42 14 41.33955 2 -1033 10 55 42 16 43.95249 2 -1034 10 56 46 13 42.94693 2 -1035 10 57 46 11 42.81402 2 -1036 10 58 46 12 40.26222 2 -1037 10 59 46 14 44.10067 2 -1038 10 60 46 16 42.22132 2 -1039 10 61 50 11 42.7997 2 -1040 10 62 50 9 38.79531 2 -1041 10 63 50 8 37.2416 2 -1042 10 64 50 10 38.19831 2 -1043 10 65 50 12 47.90385 2 -1044 10 66 54 13 53.47406 4 -1045 10 67 54 11 41.29354 2 -1046 10 68 54 9 38.52856 2 -1047 10 69 54 12 39.13581 2 -1048 10 70 54 14 40.96476 2 -1049 10 71 58 13 49.26638 2 -1050 10 72 58 11 42.24757 2 -1051 10 73 58 9 39.15259 2 -1052 10 74 58 12 40.18189 2 -1053 10 75 58 14 47.08354 2 -1054 10 76 62 13 58.34761 2 -1055 10 77 62 11 42.9117 2 -1056 10 78 62 9 39.41633 2 -1057 10 79 62 10 44.17845 2 -1058 10 80 62 12 39.50184 2 -1059 10 81 62 14 41.97516 2 -1060 10 82 66 11 41.71854 2 -1061 10 83 66 9 41.59794 2 -1062 10 84 66 12 44.81185 2 -1063 10 85 66 14 41.74413 2 -1064 10 86 66 16 42.97532 2 -1065 10 87 70 11 50.95381 2 -1066 10 88 70 9 38.31303 2 -1067 10 89 70 12 38.84713 2 -1068 10 90 70 14 39.81164 2 -1069 10 91 70 16 42.31937 2 -1070 10 92 74 13 44.86839 2 -1071 10 93 74 11 45.68065 2 -1072 10 94 74 12 50.66814 2 -1073 10 95 74 14 44.19003 2 -1074 10 96 74 16 67.73718 2 -1075 10 97 78 13 53.78565 2 -1076 10 98 78 11 57.50069 2 -1077 10 99 78 8 60.03724 2 -1078 10 100 78 10 63.81371 2 -1079 10 101 78 12 73.33538 2 -1080 11 0 2 17 59.18689 2 -1081 11 1 2 15 57.72749 2 -1082 11 2 2 13 46.79647 2 -1083 11 3 2 16 53.02401 4 -1084 11 4 2 18 50.13977 2 -1085 11 5 6 21 47.44255 2 -1086 11 6 6 19 40.73806 2 -1087 11 7 6 17 38.82832 2 -1088 11 8 6 16 38.23739 2 -1089 11 9 6 18 33.64565 2 -1090 11 10 10 19 36.70008 2 -1091 11 11 10 17 30.7799 2 -1092 11 12 10 14 31.63206 2 -1093 11 13 10 16 30.80084 2 -1094 11 14 10 18 43.88615 2 -1095 11 15 14 21 40.66375 2 -1096 11 16 14 19 31.58088 2 -1097 11 17 14 17 35.20669 2 -1098 11 18 14 14 34.17166 2 -1099 11 19 14 16 32.29562 2 -1100 11 20 18 19 33.65923 2 -1101 11 21 18 17 32.59305 2 -1102 11 22 18 15 30.96791 2 -1103 11 23 18 16 31.13538 2 -1104 11 24 18 18 37.7683 2 -1105 11 25 22 19 32.23567 2 -1106 11 26 22 17 33.554 2 -1107 11 27 22 15 29.25318 2 -1108 11 28 22 16 30.82136 2 -1109 11 29 22 18 33.9205 2 -1110 11 30 22 20 40.33835 2 -1111 11 31 26 19 40.32168 2 -1112 11 32 26 17 29.87821 2 -1113 11 33 26 15 36.4357 2 -1114 11 34 26 16 31.54265 2 -1115 11 35 26 18 40.2888 2 -1116 11 36 30 17 38.50679 2 -1117 11 37 30 15 28.62934 2 -1118 11 38 30 13 31.52819 2 -1119 11 39 30 14 29.4759 2 -1120 11 40 30 16 33.02412 2 -1121 11 41 34 19 32.47524 2 -1122 11 42 34 17 33.89562 2 -1123 11 43 34 16 35.60847 2 -1124 11 44 34 18 31.68962 2 -1125 11 45 34 20 34.48739 2 -1126 11 46 38 19 45.18811 2 -1127 11 47 38 17 30.97569 2 -1128 11 48 38 16 29.58466 2 -1129 11 49 38 18 34.27534 2 -1130 11 50 38 20 35.20957 2 -1131 11 51 42 19 35.05796 2 -1132 11 52 42 17 34.12374 2 -1133 11 53 42 15 29.01915 2 -1134 11 54 42 18 30.97569 2 -1135 11 55 42 20 37.59095 2 -1136 11 56 46 19 34.49125 2 -1137 11 57 46 17 30.84148 2 -1138 11 58 46 15 32.67703 2 -1139 11 59 46 18 33.91244 2 -1140 11 60 46 20 38.8493 2 -1141 11 61 50 15 33.02509 2 -1142 11 62 50 13 29.47493 2 -1143 11 63 50 14 31.19774 2 -1144 11 64 50 16 28.86961 2 -1145 11 65 50 18 38.50744 2 -1146 11 66 54 17 42.3665 2 -1147 11 67 54 15 31.71645 2 -1148 11 68 54 16 36.91201 2 -1149 11 69 54 18 30.12861 2 -1150 11 70 54 20 40.32262 2 -1151 11 71 58 19 45.12152 2 -1152 11 72 58 17 43.44675 2 -1153 11 73 58 15 31.54637 2 -1154 11 74 58 16 31.32064 2 -1155 11 75 58 18 35.39582 2 -1156 11 76 58 20 40.85842 2 -1157 11 77 62 17 45.78919 2 -1158 11 78 62 15 32.22014 2 -1159 11 79 62 16 34.25148 2 -1160 11 80 62 18 29.94963 2 -1161 11 81 62 20 34.17592 2 -1162 11 82 66 15 32.29672 2 -1163 11 83 66 13 33.66247 2 -1164 11 84 66 18 33.56884 2 -1165 11 85 66 20 30.62549 2 -1166 11 86 66 22 37.025 2 -1167 11 87 70 17 46.41215 2 -1168 11 88 70 15 30.55151 2 -1169 11 89 70 13 30.52889 2 -1170 11 90 70 18 30.01828 2 -1171 11 91 70 20 60.46429 2 -1172 11 92 74 17 54.25616 2 -1173 11 93 74 15 37.96459 2 -1174 11 94 74 18 41.10753 2 -1175 11 95 74 20 37.42814 2 -1176 11 96 74 22 52.20825 4 -1177 11 97 78 17 49.85137 4 -1178 11 98 78 15 49.24729 2 -1179 11 99 78 14 47.39569 2 -1180 11 100 78 16 58.27156 2 -1181 11 101 78 18 63.0747 2 -1182 12 0 2 23 56.63489 2 -1183 12 1 2 21 55.72546 2 -1184 12 2 2 19 43.30776 2 -1185 12 3 2 20 42.49575 2 -1186 12 4 2 22 58.12851 4 -1187 12 5 2 24 33.99621 2 -1188 12 6 6 25 43.92684 4 -1189 12 7 6 23 32.09629 2 -1190 12 8 6 20 33.76969 2 -1191 12 9 6 22 25.35508 2 -1192 12 10 6 24 23.96666 2 -1193 12 11 10 23 29.47072 2 -1194 12 12 10 21 21.48269 2 -1195 12 13 10 20 24.93449 2 -1196 12 14 10 22 21.37558 2 -1197 12 15 10 24 37.36785 2 -1198 12 16 14 25 33.99576 2 -1199 12 17 14 23 22.05629 2 -1200 12 18 14 18 23.28811 2 -1201 12 19 14 20 21.34874 2 -1202 12 20 14 22 31.14144 2 -1203 12 21 18 23 28.40013 2 -1204 12 22 18 21 21.8016 2 -1205 12 23 18 20 30.94924 2 -1206 12 24 18 22 23.38898 2 -1207 12 25 18 24 26.49628 2 -1208 12 26 22 23 34.64557 2 -1209 12 27 22 21 22.70592 2 -1210 12 28 22 22 23.81919 2 -1211 12 29 22 24 26.20804 2 -1212 12 30 22 26 26.2012 2 -1213 12 31 26 25 30.40296 2 -1214 12 32 26 23 27.05038 2 -1215 12 33 26 21 21.15796 2 -1216 12 34 26 20 20.71892 2 -1217 12 35 26 22 37.1245 2 -1218 12 36 26 24 33.64289 2 -1219 12 37 30 21 23.80223 2 -1220 12 38 30 19 20.19112 2 -1221 12 39 30 18 19.83494 2 -1222 12 40 30 20 20.4717 2 -1223 12 41 30 22 27.61432 2 -1224 12 42 34 25 23.73513 2 -1225 12 43 34 23 28.19328 2 -1226 12 44 34 21 29.73608 2 -1227 12 45 34 22 22.15691 2 -1228 12 46 34 24 29.15772 2 -1229 12 47 38 25 35.91001 2 -1230 12 48 38 23 26.44956 2 -1231 12 49 38 21 69.47666 2 -1232 12 50 38 22 22.26966 2 -1233 12 51 38 24 31.92767 2 -1234 12 52 42 23 31.92767 2 -1235 12 53 42 21 22.26966 2 -1236 12 54 42 22 24.94385 2 -1237 12 55 42 24 25.94505 2 -1238 12 56 42 26 35.91001 2 -1239 12 57 46 23 32.63132 2 -1240 12 58 46 21 31.3264 2 -1241 12 59 46 22 26.29923 2 -1242 12 60 46 24 23.15257 2 -1243 12 61 46 26 34.88283 2 -1244 12 62 50 21 25.41753 2 -1245 12 63 50 19 20.30766 2 -1246 12 64 50 17 19.83402 2 -1247 12 65 50 20 20.19208 2 -1248 12 66 50 22 22.42008 2 -1249 12 67 54 23 33.56189 2 -1250 12 68 54 21 31.76457 2 -1251 12 69 54 19 30.20296 2 -1252 12 70 54 22 21.17276 2 -1253 12 71 54 24 27.05132 2 -1254 12 72 54 26 30.4039 2 -1255 12 73 58 25 26.54181 2 -1256 12 74 58 23 24.0502 2 -1257 12 75 58 21 22.48136 2 -1258 12 76 58 22 21.2322 2 -1259 12 77 58 24 35.18006 2 -1260 12 78 62 23 26.49719 2 -1261 12 79 62 21 21.96556 2 -1262 12 80 62 19 21.96426 2 -1263 12 81 62 22 21.7617 2 -1264 12 82 62 24 26.94441 2 -1265 12 83 66 21 29.62788 2 -1266 12 84 66 19 21.41979 2 -1267 12 85 66 17 18.90853 2 -1268 12 86 66 24 22.72784 2 -1269 12 87 66 26 30.79536 2 -1270 12 88 70 23 27.26174 2 -1271 12 89 70 21 21.85889 2 -1272 12 90 70 19 29.58792 2 -1273 12 91 70 22 21.88177 2 -1274 12 92 70 24 29.47591 2 -1275 12 93 74 23 25.58265 2 -1276 12 94 74 21 28.53474 2 -1277 12 95 74 19 33.84728 2 -1278 12 96 74 24 40.31695 2 -1279 12 97 74 26 38.19332 2 -1280 12 98 78 23 35.64344 2 -1281 12 99 78 21 45.13001 2 -1282 12 100 78 19 42.91557 2 -1283 12 101 78 20 46.05627 2 -1284 12 102 78 22 57.36126 2 -1285 12 103 78 24 56.03812 2 -1286 13 0 2 29 55.93358 2 -1287 13 1 2 27 44.81681 2 -1288 13 2 2 25 40.70385 2 -1289 13 3 2 26 36.83227 2 -1290 13 4 2 28 30.15898 2 -1291 13 5 6 29 37.42968 2 -1292 13 6 6 27 25.78405 2 -1293 13 7 6 26 32.00864 2 -1294 13 8 6 28 20.81757 2 -1295 13 9 6 30 19.14377 2 -1296 13 10 10 29 27.21433 2 -1297 13 11 10 27 13.12298 2 -1298 13 12 10 25 13.04837 2 -1299 13 13 10 26 11.7861 2 -1300 13 14 10 28 16.95727 2 -1301 13 15 10 30 22.08624 2 -1302 13 16 14 29 18.44356 2 -1303 13 17 14 27 13.92207 2 -1304 13 18 14 24 10.3925 2 -1305 13 19 14 26 13.45142 2 -1306 13 20 14 28 25.18154 2 -1307 13 21 18 29 19.81143 2 -1308 13 22 18 27 16.64008 2 -1309 13 23 18 25 17.02002 2 -1310 13 24 18 26 13.21566 2 -1311 13 25 18 28 17.372 2 -1312 13 26 22 29 20.27052 2 -1313 13 27 22 27 13.94814 2 -1314 13 28 22 25 12.11566 2 -1315 13 29 22 28 13.95059 2 -1316 13 30 22 30 16.22268 2 -1317 13 31 26 29 19.34161 2 -1318 13 32 26 27 13.29539 2 -1319 13 33 26 26 12.61772 2 -1320 13 34 26 28 16.28656 2 -1321 13 35 26 30 17.54393 2 -1322 13 36 30 27 18.19026 2 -1323 13 37 30 25 15.96813 2 -1324 13 38 30 23 12.00285 2 -1325 13 39 30 24 10.4268 2 -1326 13 40 30 26 12.16972 2 -1327 13 41 30 28 18.62974 2 -1328 13 42 34 29 15.08976 2 -1329 13 43 34 27 12.42804 2 -1330 13 44 34 26 16.91336 2 -1331 13 45 34 28 15.99003 2 -1332 13 46 34 30 21.85654 2 -1333 13 47 38 29 15.84121 2 -1334 13 48 38 27 12.9164 2 -1335 13 49 38 26 13.14682 2 -1336 13 50 38 28 16.99698 2 -1337 13 51 38 30 17.40497 2 -1338 13 52 42 29 17.40497 2 -1339 13 53 42 27 16.99698 2 -1340 13 54 42 25 13.14682 2 -1341 13 55 42 28 12.66948 2 -1342 13 56 42 30 15.84121 2 -1343 13 57 46 29 21.23082 2 -1344 13 58 46 27 16.03398 2 -1345 13 59 46 25 11.3251 2 -1346 13 60 46 28 11.41885 2 -1347 13 61 46 30 15.08874 2 -1348 13 62 50 27 18.63077 2 -1349 13 63 50 25 12.17068 2 -1350 13 64 50 23 10.42583 2 -1351 13 65 50 24 10.80986 2 -1352 13 66 50 26 15.96916 2 -1353 13 67 50 28 18.18923 2 -1354 13 68 54 29 17.46327 2 -1355 13 69 54 27 18.71285 2 -1356 13 70 54 25 17.09831 2 -1357 13 71 54 28 13.29445 2 -1358 13 72 54 30 19.3384 2 -1359 13 73 58 29 16.5404 2 -1360 13 74 58 27 13.53064 2 -1361 13 75 58 26 13.70341 2 -1362 13 76 58 28 12.155 2 -1363 13 77 58 30 20.27145 2 -1364 13 78 62 27 17.37308 2 -1365 13 79 62 25 13.03558 2 -1366 13 80 62 26 16.80306 2 -1367 13 81 62 28 17.45595 2 -1368 13 82 62 30 19.81234 2 -1369 13 83 66 27 25.18326 2 -1370 13 84 66 25 16.90563 2 -1371 13 85 66 23 10.09618 2 -1372 13 86 66 28 12.14463 2 -1373 13 87 66 30 18.44455 2 -1374 13 88 70 29 22.53784 2 -1375 13 89 70 27 13.54418 2 -1376 13 90 70 25 16.37898 2 -1377 13 91 70 26 12.96808 2 -1378 13 92 70 28 13.12213 2 -1379 13 93 70 30 19.34168 2 -1380 13 94 74 29 20.71546 2 -1381 13 95 74 27 21.26856 2 -1382 13 96 74 25 33.10513 2 -1383 13 97 74 28 28.6496 2 -1384 13 98 74 30 45.29141 4 -1385 13 99 78 27 33.11607 2 -1386 13 100 78 25 34.72235 2 -1387 13 101 78 26 38.20804 2 -1388 13 102 78 28 40.61941 2 -1389 13 103 78 30 53.03529 2 -1390 14 0 2 33 42.82211 2 -1391 14 1 2 31 35.84323 2 -1392 14 2 2 30 43.52676 2 -1393 14 3 2 32 34.61812 2 -1394 14 4 2 34 22.71269 2 -1395 14 5 6 35 31.65183 2 -1396 14 6 6 33 22.40106 2 -1397 14 7 6 31 31.48546 2 -1398 14 8 6 32 15.08847 2 -1399 14 9 6 34 13.91396 2 -1400 14 10 10 35 14.30837 2 -1401 14 11 10 33 13.83247 2 -1402 14 12 10 31 6.96556 2 -1403 14 13 10 32 5.82985 2 -1404 14 14 10 34 10.00729 2 -1405 14 15 14 35 15.9824 2 -1406 14 16 14 33 8.50235 2 -1407 14 17 14 31 5.75534 2 -1408 14 18 14 30 4.02817 2 -1409 14 19 14 32 13.25012 2 -1410 14 20 14 34 18.26744 2 -1411 14 21 18 33 12.90987 2 -1412 14 22 18 31 4.10005 2 -1413 14 23 18 30 5.93291 2 -1414 14 24 18 32 5.5158 2 -1415 14 25 18 34 16.01138 2 -1416 14 26 22 33 8.7847 2 -1417 14 27 22 31 6.14202 2 -1418 14 28 22 32 4.60147 2 -1419 14 29 22 34 4.60202 2 -1420 14 30 22 36 14.5919 2 -1421 14 31 26 35 17.58966 2 -1422 14 32 26 33 10.7472 2 -1423 14 33 26 31 7.34755 2 -1424 14 34 26 32 7.52171 2 -1425 14 35 26 34 10.82807 2 -1426 14 36 30 33 17.72135 2 -1427 14 37 30 31 8.68247 2 -1428 14 38 30 29 6.26246 2 -1429 14 39 30 30 7.19958 2 -1430 14 40 30 32 12.77841 2 -1431 14 41 30 34 13.40518 2 -1432 14 42 34 35 11.29067 2 -1433 14 43 34 33 4.41671 2 -1434 14 44 34 31 5.22369 2 -1435 14 45 34 32 6.06189 2 -1436 14 46 34 34 11.83838 2 -1437 14 47 38 35 12.71018 2 -1438 14 48 38 33 5.29213 2 -1439 14 49 38 31 6.19255 2 -1440 14 50 38 32 6.7802 2 -1441 14 51 38 34 14.4705 2 -1442 14 52 42 33 15.6138 2 -1443 14 53 42 31 6.7802 2 -1444 14 54 42 32 6.26668 2 -1445 14 55 42 34 5.29213 2 -1446 14 56 42 36 12.71018 2 -1447 14 57 46 33 11.83938 2 -1448 14 58 46 31 6.06289 2 -1449 14 59 46 32 5.22471 2 -1450 14 60 46 34 4.41572 2 -1451 14 61 46 36 11.29169 2 -1452 14 62 50 33 13.40455 2 -1453 14 63 50 31 12.77738 2 -1454 14 64 50 29 7.19855 2 -1455 14 65 50 30 6.2635 2 -1456 14 66 50 32 8.6815 2 -1457 14 67 50 34 17.93939 2 -1458 14 68 54 33 10.98947 2 -1459 14 69 54 31 7.75355 2 -1460 14 70 54 32 7.33779 2 -1461 14 71 54 34 10.76595 2 -1462 14 72 54 36 16.1774 2 -1463 14 73 58 35 14.59083 2 -1464 14 74 58 33 4.60309 2 -1465 14 75 58 31 4.60041 2 -1466 14 76 58 32 6.14309 2 -1467 14 77 58 34 8.78377 2 -1468 14 78 62 33 17.37097 2 -1469 14 79 62 31 5.64978 2 -1470 14 80 62 29 5.93194 2 -1471 14 81 62 32 4.09914 2 -1472 14 82 62 34 12.91095 2 -1473 14 83 66 33 18.36617 2 -1474 14 84 66 31 13.24913 2 -1475 14 85 66 29 4.02927 2 -1476 14 86 66 32 5.75623 2 -1477 14 87 66 34 8.50146 2 -1478 14 88 66 36 16.29002 2 -1479 14 89 70 33 9.73922 2 -1480 14 90 70 31 5.99075 2 -1481 14 91 70 32 6.96669 2 -1482 14 92 70 34 13.8336 2 -1483 14 93 70 36 14.30752 2 -1484 14 94 74 33 14.31721 2 -1485 14 95 74 31 15.02748 2 -1486 14 96 74 32 29.60812 2 -1487 14 97 74 34 21.87775 2 -1488 14 98 74 36 32.73476 2 -1489 14 99 78 33 23.87656 2 -1490 14 100 78 31 33.4603 2 -1491 14 101 78 29 39.58175 2 -1492 14 102 78 32 36.14053 2 -1493 14 103 78 34 43.02492 2 -1494 15 0 2 39 54.92302 2 -1495 15 1 2 37 52.23292 2 -1496 15 2 2 35 49.6934 2 -1497 15 3 2 36 41.65682 2 -1498 15 4 2 38 40.9157 2 -1499 15 5 2 40 27.73774 2 -1500 15 6 6 39 42.28976 2 -1501 15 7 6 37 29.25288 2 -1502 15 8 6 36 30.96309 2 -1503 15 9 6 38 24.27473 2 -1504 15 10 6 40 13.56502 2 -1505 15 11 10 39 20.35424 2 -1506 15 12 10 37 22.07352 2 -1507 15 13 10 36 18.21832 2 -1508 15 14 10 38 11.52131 2 -1509 15 15 10 40 11.15893 2 -1510 15 16 14 39 20.53031 2 -1511 15 17 14 37 14.20152 2 -1512 15 18 14 36 19.41945 2 -1513 15 19 14 38 12.8534 2 -1514 15 20 14 40 12.58447 2 -1515 15 21 18 39 20.43703 2 -1516 15 22 18 37 20.1896 2 -1517 15 23 18 35 13.90785 2 -1518 15 24 18 36 13.03429 2 -1519 15 25 18 38 17.1007 2 -1520 15 26 18 40 17.66845 2 -1521 15 27 22 39 12.77294 2 -1522 15 28 22 37 13.82862 2 -1523 15 29 22 35 16.95556 2 -1524 15 30 22 38 12.00949 2 -1525 15 31 22 40 20.24635 2 -1526 15 32 26 39 18.26996 2 -1527 15 33 26 37 13.55549 2 -1528 15 34 26 36 21.22604 2 -1529 15 35 26 38 13.62364 2 -1530 15 36 26 40 14.10672 2 -1531 15 37 30 39 21.99942 2 -1532 15 38 30 37 13.92277 2 -1533 15 39 30 35 13.7182 2 -1534 15 40 30 36 14.19871 2 -1535 15 41 30 38 13.08569 2 -1536 15 42 30 40 22.62654 2 -1537 15 43 34 39 18.98083 2 -1538 15 44 34 37 12.24145 2 -1539 15 45 34 36 12.38092 2 -1540 15 46 34 38 12.40312 2 -1541 15 47 34 40 21.29954 2 -1542 15 48 38 39 19.43217 2 -1543 15 49 38 37 12.4733 2 -1544 15 50 38 36 15.11121 2 -1545 15 51 38 38 12.99682 2 -1546 15 52 38 40 19.9244 2 -1547 15 53 42 39 20.22198 2 -1548 15 54 42 37 12.99682 2 -1549 15 55 42 35 15.11121 2 -1550 15 56 42 38 11.15294 2 -1551 15 57 42 40 16.53001 2 -1552 15 58 46 39 21.01371 2 -1553 15 59 46 37 12.6294 2 -1554 15 60 46 35 13.60669 2 -1555 15 61 46 38 12.24047 2 -1556 15 62 46 40 18.23413 2 -1557 15 63 50 39 22.69997 2 -1558 15 64 50 37 13.08666 2 -1559 15 65 50 35 14.19774 2 -1560 15 66 50 36 13.93684 2 -1561 15 67 50 38 13.92173 2 -1562 15 68 50 40 22.14925 2 -1563 15 69 54 39 13.54874 2 -1564 15 70 54 37 22.22656 2 -1565 15 71 54 35 15.68484 2 -1566 15 72 54 38 13.55455 2 -1567 15 73 54 40 18.27101 2 -1568 15 74 58 39 21.72985 2 -1569 15 75 58 37 12.52776 2 -1570 15 76 58 36 19.01648 2 -1571 15 77 58 38 12.71171 2 -1572 15 78 58 40 12.77188 2 -1573 15 79 62 39 18.56227 2 -1574 15 80 62 37 17.09962 2 -1575 15 81 62 35 13.03538 2 -1576 15 82 62 36 14.46638 2 -1577 15 83 62 38 20.49474 2 -1578 15 84 62 40 21.05578 2 -1579 15 85 66 39 12.52494 2 -1580 15 86 66 37 12.85251 2 -1581 15 87 66 35 18.05719 2 -1582 15 88 66 38 14.20042 2 -1583 15 89 66 40 20.96486 2 -1584 15 90 70 39 11.16006 2 -1585 15 91 70 37 11.53492 2 -1586 15 92 70 35 18.53997 2 -1587 15 93 70 38 22.07267 2 -1588 15 94 70 40 21.82811 2 -1589 15 95 74 39 13.56477 2 -1590 15 96 74 37 23.98129 2 -1591 15 97 74 35 29.68549 2 -1592 15 98 74 38 30.25399 2 -1593 15 99 74 40 38.1218 2 -1594 15 100 78 39 27.41183 2 -1595 15 101 78 37 37.0772 2 -1596 15 102 78 35 43.44229 2 -1597 15 103 78 36 52.4415 2 -1598 15 104 78 38 47.46293 2 -1599 15 105 78 40 55.42552 2 -1600 16 0 3 5 49.82833 2 -1601 16 1 3 3 49.32177 2 -1602 16 2 3 1 35.87285 2 -1603 16 3 3 2 43.36167 2 -1604 16 4 3 4 33.07923 2 -1605 16 5 3 6 32.6061 2 -1606 16 6 7 3 31.91618 2 -1607 16 7 7 1 22.76061 2 -1608 16 8 7 2 27.44714 2 -1609 16 9 7 4 18.5705 2 -1610 16 10 7 6 16.9702 2 -1611 16 11 11 5 18.04531 2 -1612 16 12 11 3 15.67278 2 -1613 16 13 11 1 10.70987 2 -1614 16 14 11 2 10.59553 2 -1615 16 15 11 4 14.37878 2 -1616 16 16 11 6 20.71072 2 -1617 16 17 15 3 13.9483 2 -1618 16 18 15 1 12.02913 2 -1619 16 19 15 2 10.95103 2 -1620 16 20 15 4 12.93549 2 -1621 16 21 15 6 19.98142 2 -1622 16 22 19 5 19.99818 2 -1623 16 23 19 3 15.20362 2 -1624 16 24 19 1 10.72341 2 -1625 16 25 19 2 12.31552 2 -1626 16 26 19 4 14.15317 2 -1627 16 27 19 6 18.36846 2 -1628 16 28 23 5 21.57032 2 -1629 16 29 23 3 15.22645 2 -1630 16 30 23 1 12.025 2 -1631 16 31 23 2 11.5723 2 -1632 16 32 23 4 23.67978 2 -1633 16 33 27 5 19.14518 2 -1634 16 34 27 3 13.25262 2 -1635 16 35 27 1 10.3273 2 -1636 16 36 27 2 11.01874 2 -1637 16 37 27 4 13.62211 2 -1638 16 38 27 6 19.70551 2 -1639 16 39 31 5 16.2871 2 -1640 16 40 31 3 12.01613 2 -1641 16 41 31 1 10.71414 2 -1642 16 42 31 2 13.10479 2 -1643 16 43 31 4 16.29634 2 -1644 16 44 35 5 17.52172 2 -1645 16 45 35 3 15.76916 2 -1646 16 46 35 1 10.88965 2 -1647 16 47 35 2 11.1634 2 -1648 16 48 35 4 14.47953 2 -1649 16 49 35 6 26.40473 2 -1650 16 50 39 3 14.17434 2 -1651 16 51 39 1 10.98108 2 -1652 16 52 39 2 12.25361 2 -1653 16 53 39 4 16.96203 2 -1654 16 54 39 6 20.47036 2 -1655 16 55 43 5 20.47036 2 -1656 16 56 43 3 16.96203 2 -1657 16 57 43 1 11.11554 2 -1658 16 58 43 2 10.98108 2 -1659 16 59 43 4 14.17434 2 -1660 16 60 47 5 29.08504 2 -1661 16 61 47 3 14.48055 2 -1662 16 62 47 1 11.81308 2 -1663 16 63 47 2 10.88867 2 -1664 16 64 47 4 15.77014 2 -1665 16 65 47 6 17.42413 2 -1666 16 66 51 3 16.29731 2 -1667 16 67 51 1 13.10382 2 -1668 16 68 51 2 10.71518 2 -1669 16 69 51 4 12.01516 2 -1670 16 70 51 6 16.28614 2 -1671 16 71 55 5 19.70646 2 -1672 16 72 55 3 13.62306 2 -1673 16 73 55 1 11.63522 2 -1674 16 74 55 2 10.32835 2 -1675 16 75 55 4 13.25157 2 -1676 16 76 55 6 19.14623 2 -1677 16 77 59 3 23.67788 2 -1678 16 78 59 1 12.19057 2 -1679 16 79 59 2 12.02407 2 -1680 16 80 59 4 15.22742 2 -1681 16 81 59 6 21.56925 2 -1682 16 82 63 5 18.36937 2 -1683 16 83 63 3 14.15408 2 -1684 16 84 63 1 12.31461 2 -1685 16 85 63 2 11.93499 2 -1686 16 86 63 4 15.28858 2 -1687 16 87 63 6 19.66789 2 -1688 16 88 67 5 19.98053 2 -1689 16 89 67 3 13.58706 2 -1690 16 90 67 1 10.94931 2 -1691 16 91 67 2 10.89213 2 -1692 16 92 67 4 13.9472 2 -1693 16 93 71 5 23.59137 2 -1694 16 94 71 3 14.37991 2 -1695 16 95 71 1 10.5944 2 -1696 16 96 71 2 10.70874 2 -1697 16 97 71 4 15.67391 2 -1698 16 98 71 6 18.04418 2 -1699 16 99 75 5 17.89257 2 -1700 16 100 75 3 18.05159 2 -1701 16 101 75 1 27.15039 2 -1702 16 102 75 2 26.97163 2 -1703 16 103 75 4 28.15107 2 -1704 16 104 79 5 32.62911 2 -1705 16 105 79 3 32.89847 2 -1706 16 106 79 1 43.8314 2 -1707 16 107 79 2 35.86077 2 -1708 16 108 79 4 50.37916 2 -1709 16 109 79 6 49.82717 2 -1710 17 0 3 9 49.29225 2 -1711 17 1 3 7 39.08223 2 -1712 17 2 3 8 37.46016 2 -1713 17 3 3 10 35.6367 2 -1714 17 4 3 12 24.14634 2 -1715 17 5 7 9 33.25718 2 -1716 17 6 7 7 28.6917 2 -1717 17 7 7 5 19.26185 2 -1718 17 8 7 8 24.11427 2 -1719 17 9 7 10 15.98622 2 -1720 17 10 7 12 9.20435 2 -1721 17 11 11 11 14.28158 2 -1722 17 12 11 9 6.21446 2 -1723 17 13 11 7 4.09605 2 -1724 17 14 11 8 5.01185 2 -1725 17 15 11 10 13.89468 2 -1726 17 16 15 9 14.56491 2 -1727 17 17 15 7 10.20592 2 -1728 17 18 15 5 6.54809 2 -1729 17 19 15 8 6.65779 2 -1730 17 20 15 10 5.72095 2 -1731 17 21 15 12 12.32228 2 -1732 17 22 19 11 10.24549 2 -1733 17 23 19 9 7.9458 2 -1734 17 24 19 7 5.63817 2 -1735 17 25 19 8 5.03776 2 -1736 17 26 19 10 11.82662 2 -1737 17 27 23 11 15.48503 2 -1738 17 28 23 9 13.386 2 -1739 17 29 23 7 4.55515 2 -1740 17 30 23 6 4.60444 2 -1741 17 31 23 8 5.92141 2 -1742 17 32 23 10 13.88075 2 -1743 17 33 27 11 14.92237 2 -1744 17 34 27 9 7.29193 2 -1745 17 35 27 7 7.25503 2 -1746 17 36 27 8 4.70033 2 -1747 17 37 27 10 7.69201 2 -1748 17 38 27 12 18.76505 2 -1749 17 39 31 9 10.49129 2 -1750 17 40 31 7 7.59986 2 -1751 17 41 31 6 4.96897 2 -1752 17 42 31 8 6.80408 2 -1753 17 43 31 10 15.16377 2 -1754 17 44 35 11 11.39381 2 -1755 17 45 35 9 8.18883 2 -1756 17 46 35 7 4.38414 2 -1757 17 47 35 8 5.0991 2 -1758 17 48 35 10 9.93555 2 -1759 17 49 35 12 18.84412 2 -1760 17 50 39 9 11.21105 2 -1761 17 51 39 7 4.26957 2 -1762 17 52 39 5 7.16159 2 -1763 17 53 39 8 7.59414 2 -1764 17 54 39 10 10.60105 2 -1765 17 55 43 9 10.60105 2 -1766 17 56 43 7 7.59414 2 -1767 17 57 43 6 7.16159 2 -1768 17 58 43 8 4.26957 2 -1769 17 59 43 10 11.21105 2 -1770 17 60 47 11 18.5166 2 -1771 17 61 47 9 9.93657 2 -1772 17 62 47 7 5.09812 2 -1773 17 63 47 8 4.56334 2 -1774 17 64 47 10 8.18982 2 -1775 17 65 47 12 13.65107 2 -1776 17 66 51 9 13.0084 2 -1777 17 67 51 7 7.26778 2 -1778 17 68 51 5 5.10321 2 -1779 17 69 51 8 7.6009 2 -1780 17 70 51 10 10.49025 2 -1781 17 71 55 11 19.32253 2 -1782 17 72 55 9 7.69307 2 -1783 17 73 55 7 4.69938 2 -1784 17 74 55 8 7.25398 2 -1785 17 75 55 10 7.29087 2 -1786 17 76 55 12 14.92334 2 -1787 17 77 59 9 13.88182 2 -1788 17 78 59 7 5.92234 2 -1789 17 79 59 5 4.60352 2 -1790 17 80 59 8 4.55422 2 -1791 17 81 59 10 13.38693 2 -1792 17 82 59 12 13.43797 2 -1793 17 83 63 9 12.48265 2 -1794 17 84 63 7 4.67173 2 -1795 17 85 63 8 5.5951 2 -1796 17 86 63 10 7.94674 2 -1797 17 87 63 12 10.24458 2 -1798 17 88 67 11 12.32338 2 -1799 17 89 67 9 5.72205 2 -1800 17 90 67 7 6.65888 2 -1801 17 91 67 6 6.31938 2 -1802 17 92 67 8 10.20493 2 -1803 17 93 67 10 14.85576 2 -1804 17 94 71 9 14.46198 2 -1805 17 95 71 7 4.96439 2 -1806 17 96 71 8 4.09718 2 -1807 17 97 71 10 6.21334 2 -1808 17 98 71 12 14.22826 2 -1809 17 99 75 11 8.32681 2 -1810 17 100 75 9 15.73984 2 -1811 17 101 75 7 19.2141 2 -1812 17 102 75 6 23.76473 2 -1813 17 103 75 8 24.61579 2 -1814 17 104 75 10 36.80823 2 -1815 17 105 79 11 24.75228 2 -1816 17 106 79 9 33.95965 2 -1817 17 107 79 7 37.19192 2 -1818 17 108 79 8 40.08218 2 -1819 17 109 79 10 48.7716 2 -1820 18 0 3 15 51.84984 2 -1821 18 1 3 13 51.16651 2 -1822 18 2 3 11 44.29423 2 -1823 18 3 3 14 47.4577 2 -1824 18 4 3 16 36.44706 2 -1825 18 5 3 18 30.15469 2 -1826 18 6 7 15 38.57244 2 -1827 18 7 7 13 40.90633 2 -1828 18 8 7 11 27.76927 2 -1829 18 9 7 14 29.64028 2 -1830 18 10 7 16 22.05659 2 -1831 18 11 7 18 10.58541 2 -1832 18 12 11 15 15.16554 2 -1833 18 13 11 13 15.05524 2 -1834 18 14 11 12 14.75789 2 -1835 18 15 11 14 12.28096 2 -1836 18 16 11 16 19.33037 2 -1837 18 17 15 15 22.6082 2 -1838 18 18 15 13 14.69482 2 -1839 18 19 15 11 13.24908 2 -1840 18 20 15 14 10.87532 2 -1841 18 21 15 16 11.25707 2 -1842 18 22 15 18 20.8755 2 -1843 18 23 19 15 13.49137 2 -1844 18 24 19 13 16.49139 2 -1845 18 25 19 12 20.29991 2 -1846 18 26 19 14 13.73387 2 -1847 18 27 19 16 12.46963 2 -1848 18 28 23 17 19.17096 2 -1849 18 29 23 15 15.52786 2 -1850 18 30 23 13 11.27041 2 -1851 18 31 23 12 15.28175 2 -1852 18 32 23 14 12.71593 2 -1853 18 33 23 16 19.34359 2 -1854 18 34 27 17 13.15391 2 -1855 18 35 27 15 14.12881 2 -1856 18 36 27 13 15.1218 2 -1857 18 37 27 14 12.18705 2 -1858 18 38 27 16 12.83495 2 -1859 18 39 31 15 22.9951 2 -1860 18 40 31 13 14.87434 2 -1861 18 41 31 11 15.03711 2 -1862 18 42 31 12 16.37044 2 -1863 18 43 31 14 14.59052 2 -1864 18 44 31 16 15.88265 2 -1865 18 45 35 17 17.91214 2 -1866 18 46 35 15 20.32923 2 -1867 18 47 35 13 12.46583 2 -1868 18 48 35 14 12.51014 2 -1869 18 49 35 16 13.13994 2 -1870 18 50 35 18 23.56948 2 -1871 18 51 39 13 21.06444 2 -1872 18 52 39 11 14.11093 2 -1873 18 53 39 12 12.71024 2 -1874 18 54 39 14 13.24158 2 -1875 18 55 39 16 23.2642 2 -1876 18 56 43 15 22.28849 2 -1877 18 57 43 13 13.24158 2 -1878 18 58 43 11 12.91644 2 -1879 18 59 43 12 14.06002 2 -1880 18 60 43 14 22.39897 2 -1881 18 61 47 17 21.05525 2 -1882 18 62 47 15 13.14095 2 -1883 18 63 47 13 14.18127 2 -1884 18 64 47 14 11.63904 2 -1885 18 65 47 16 10.57121 2 -1886 18 66 47 18 22.47649 2 -1887 18 67 51 15 20.88454 2 -1888 18 68 51 13 12.98643 2 -1889 18 69 51 11 13.36134 2 -1890 18 70 51 12 15.03814 2 -1891 18 71 51 14 14.87338 2 -1892 18 72 51 16 24.78159 2 -1893 18 73 55 15 12.8359 2 -1894 18 74 55 13 14.72258 2 -1895 18 75 55 14 14.94997 2 -1896 18 76 55 16 14.35026 2 -1897 18 77 55 18 13.15286 2 -1898 18 78 59 15 20.96507 2 -1899 18 79 59 13 12.44905 2 -1900 18 80 59 11 14.20251 2 -1901 18 81 59 14 11.21741 2 -1902 18 82 59 16 17.74362 2 -1903 18 83 59 18 20.22522 2 -1904 18 84 63 15 15.12531 2 -1905 18 85 63 13 15.54029 2 -1906 18 86 63 11 16.94873 2 -1907 18 87 63 14 18.10097 2 -1908 18 88 63 16 13.49047 2 -1909 18 89 67 17 20.76228 2 -1910 18 90 67 15 11.25817 2 -1911 18 91 67 13 12.4481 2 -1912 18 92 67 12 14.38291 2 -1913 18 93 67 14 14.69393 2 -1914 18 94 67 16 20.86615 2 -1915 18 95 71 15 19.32952 2 -1916 18 96 71 13 11.3367 2 -1917 18 97 71 11 14.75676 2 -1918 18 98 71 14 15.14249 2 -1919 18 99 71 16 17.76959 2 -1920 18 100 75 17 10.706 2 -1921 18 101 75 15 23.0688 2 -1922 18 102 75 13 29.82103 2 -1923 18 103 75 12 30.70987 2 -1924 18 104 75 14 33.28551 2 -1925 18 105 75 16 35.08714 2 -1926 18 106 79 17 32.59086 2 -1927 18 107 79 15 35.97374 2 -1928 18 108 79 13 45.96385 2 -1929 18 109 79 12 47.19177 2 -1930 18 110 79 14 48.13668 2 -1931 18 111 79 16 54.96909 2 -1932 19 0 3 21 59.75243 2 -1933 19 1 3 19 63.6093 2 -1934 19 2 3 17 56.11117 2 -1935 19 3 3 20 52.40651 2 -1936 19 4 3 22 48.79634 2 -1937 19 5 3 24 39.35252 2 -1938 19 6 7 21 44.32943 2 -1939 19 7 7 19 38.9747 2 -1940 19 8 7 17 36.20596 2 -1941 19 9 7 20 42.93889 2 -1942 19 10 7 22 23.44726 2 -1943 19 11 11 21 33.5243 2 -1944 19 12 11 19 23.23523 2 -1945 19 13 11 17 24.12816 2 -1946 19 14 11 18 29.7515 2 -1947 19 15 11 20 21.1849 2 -1948 19 16 11 22 21.22962 2 -1949 19 17 15 21 30.60517 2 -1950 19 18 15 19 22.65517 2 -1951 19 19 15 17 25.4822 2 -1952 19 20 15 20 32.77094 2 -1953 19 21 15 22 19.669 2 -1954 19 22 19 21 31.73762 2 -1955 19 23 19 19 23.60452 2 -1956 19 24 19 17 24.23592 2 -1957 19 25 19 18 24.73322 2 -1958 19 26 19 20 21.13855 2 -1959 19 27 19 22 27.46234 2 -1960 19 28 23 23 30.31658 2 -1961 19 29 23 21 21.17176 2 -1962 19 30 23 19 24.04165 2 -1963 19 31 23 18 20.79269 2 -1964 19 32 23 20 69.75486 2 -1965 19 33 23 22 24.58895 2 -1966 19 34 27 21 21.95265 2 -1967 19 35 27 19 22.90255 2 -1968 19 36 27 18 28.12773 2 -1969 19 37 27 20 23.58082 2 -1970 19 38 27 22 20.40497 2 -1971 19 39 31 21 31.47439 2 -1972 19 40 31 19 28.26376 2 -1973 19 41 31 17 23.40134 2 -1974 19 42 31 18 22.92591 2 -1975 19 43 31 20 21.29996 2 -1976 19 44 31 22 29.51958 2 -1977 19 45 35 23 29.36853 2 -1978 19 46 35 21 21.2773 2 -1979 19 47 35 19 21.10146 2 -1980 19 48 35 20 20.16234 2 -1981 19 49 35 22 28.11676 2 -1982 19 50 35 24 25.89739 2 -1983 19 51 39 19 26.45482 2 -1984 19 52 39 17 22.19508 2 -1985 19 53 39 15 26.46065 2 -1986 19 54 39 18 22.90439 2 -1987 19 55 39 20 32.62379 2 -1988 19 56 43 19 24.75845 2 -1989 19 57 43 17 22.76541 2 -1990 19 58 43 16 37.39859 2 -1991 19 59 43 18 22.83894 2 -1992 19 60 43 20 27.61747 2 -1993 19 61 47 23 29.24779 2 -1994 19 62 47 21 41.52652 2 -1995 19 63 47 19 22.94889 2 -1996 19 64 47 20 22.60236 2 -1997 19 65 47 22 32.71014 2 -1998 19 66 47 24 26.83087 2 -1999 19 67 51 21 34.63301 2 -2000 19 68 51 19 21.31813 2 -2001 19 69 51 17 24.18891 2 -2002 19 70 51 18 22.90816 2 -2003 19 71 51 20 29.83978 2 -2004 19 72 51 22 29.65598 2 -2005 19 73 55 21 20.40602 2 -2006 19 74 55 19 20.57877 2 -2007 19 75 55 17 52.30349 2 -2008 19 76 55 20 24.44089 2 -2009 19 77 55 22 21.95159 2 -2010 19 78 59 21 26.01426 2 -2011 19 79 59 19 25.71918 2 -2012 19 80 59 17 30.80479 2 -2013 19 81 59 20 23.04091 2 -2014 19 82 59 22 21.57004 2 -2015 19 83 59 24 28.37548 2 -2016 19 84 63 21 26.99705 2 -2017 19 85 63 19 21.06754 2 -2018 19 86 63 17 27.0084 2 -2019 19 87 63 18 22.94842 2 -2020 19 88 63 20 23.01093 2 -2021 19 89 63 22 32.25947 2 -2022 19 90 67 21 19.75709 2 -2023 19 91 67 19 29.92701 2 -2024 19 92 67 18 23.34681 2 -2025 19 93 67 20 22.65407 2 -2026 19 94 67 22 46.92802 2 -2027 19 95 71 21 21.23075 2 -2028 19 96 71 19 21.03395 2 -2029 19 97 71 17 26.93097 2 -2030 19 98 71 18 27.53406 2 -2031 19 99 71 20 25.52866 2 -2032 19 100 71 22 32.41507 2 -2033 19 101 75 21 31.0962 2 -2034 19 102 75 19 37.20244 2 -2035 19 103 75 18 48.87409 2 -2036 19 104 75 20 41.83302 2 -2037 19 105 75 22 61.19957 2 -2038 19 106 79 23 40.72174 2 -2039 19 107 79 21 45.69862 2 -2040 19 108 79 19 55.8842 2 -2041 19 109 79 18 54.92835 2 -2042 19 110 79 20 64.99665 2 -2043 19 111 79 22 67.3048 2 -2044 20 0 3 27 75.48537 2 -2045 20 1 3 25 73.20988 2 -2046 20 2 3 23 71.11703 2 -2047 20 3 3 26 59.41104 2 -2048 20 4 3 28 54.15138 2 -2049 20 5 7 27 57.79719 2 -2050 20 6 7 25 63.98104 2 -2051 20 7 7 23 49.87711 2 -2052 20 8 7 24 48.31741 2 -2053 20 9 7 26 44.96582 2 -2054 20 10 7 28 32.29294 2 -2055 20 11 11 27 41.85476 2 -2056 20 12 11 25 40.07982 2 -2057 20 13 11 23 30.83943 2 -2058 20 14 11 24 31.42249 2 -2059 20 15 11 26 37.87921 2 -2060 20 16 11 28 30.19018 2 -2061 20 17 15 25 41.67509 2 -2062 20 18 15 23 31.99003 2 -2063 20 19 15 24 34.87787 2 -2064 20 20 15 26 28.34582 2 -2065 20 21 15 28 28.72835 2 -2066 20 22 19 27 40.87428 2 -2067 20 23 19 25 32.025 2 -2068 20 24 19 23 33.53319 2 -2069 20 25 19 24 33.9086 2 -2070 20 26 19 26 28.22597 2 -2071 20 27 19 28 43.87501 2 -2072 20 28 23 29 31.25412 2 -2073 20 29 23 27 32.14318 2 -2074 20 30 23 25 29.54182 2 -2075 20 31 23 24 37.84141 2 -2076 20 32 23 26 36.94027 2 -2077 20 33 23 28 31.23271 2 -2078 20 34 27 25 32.20216 2 -2079 20 35 27 23 37.89824 2 -2080 20 36 27 24 34.27574 2 -2081 20 37 27 26 30.48495 2 -2082 20 38 27 28 38.68336 2 -2083 20 39 31 27 32.64777 2 -2084 20 40 31 25 32.29551 2 -2085 20 41 31 23 30.15081 2 -2086 20 42 31 24 31.13309 2 -2087 20 43 31 26 70.7478 2 -2088 20 44 31 28 31.9962 2 -2089 20 45 35 27 36.84746 2 -2090 20 46 35 25 29.59693 2 -2091 20 47 35 26 31.22482 2 -2092 20 48 35 28 27.72843 2 -2093 20 49 35 30 37.96968 2 -2094 20 50 39 25 43.09075 2 -2095 20 51 39 23 31.8624 2 -2096 20 52 39 21 35.15541 2 -2097 20 53 39 22 31.94297 2 -2098 20 54 39 24 31.20535 2 -2099 20 55 39 26 40.37788 2 -2100 20 56 43 25 38.73363 2 -2101 20 57 43 23 30.88946 2 -2102 20 58 43 21 32.93745 2 -2103 20 59 43 22 32.51285 2 -2104 20 60 43 24 36.01281 2 -2105 20 61 43 26 47.89502 2 -2106 20 62 47 29 36.27361 2 -2107 20 63 47 27 27.38348 2 -2108 20 64 47 25 31.84081 2 -2109 20 65 47 26 28.78677 2 -2110 20 66 47 28 68.8232 2 -2111 20 67 51 27 31.11975 2 -2112 20 68 51 25 35.97809 2 -2113 20 69 51 23 30.93607 2 -2114 20 70 51 24 30.64572 2 -2115 20 71 51 26 32.22211 2 -2116 20 72 51 28 38.08307 2 -2117 20 73 55 27 60.44223 2 -2118 20 74 55 25 30.3859 2 -2119 20 75 55 23 32.4842 2 -2120 20 76 55 24 33.79073 2 -2121 20 77 55 26 31.9613 2 -2122 20 78 59 27 39.77592 2 -2123 20 79 59 25 29.59753 2 -2124 20 80 59 23 38.8183 2 -2125 20 81 59 26 42.05162 2 -2126 20 82 59 28 28.8499 2 -2127 20 83 59 30 44.08001 2 -2128 20 84 63 27 41.49315 2 -2129 20 85 63 25 28.82285 2 -2130 20 86 63 23 32.73154 2 -2131 20 87 63 24 32.1872 2 -2132 20 88 63 26 32.14685 2 -2133 20 89 63 28 36.81233 2 -2134 20 90 67 27 30.03289 2 -2135 20 91 67 25 31.58937 2 -2136 20 92 67 23 31.79785 2 -2137 20 93 67 24 31.98914 2 -2138 20 94 67 26 41.59002 2 -2139 20 95 71 27 30.56345 2 -2140 20 96 71 25 37.7135 2 -2141 20 97 71 23 31.2375 2 -2142 20 98 71 24 32.35493 2 -2143 20 99 71 26 40.8155 2 -2144 20 100 71 28 42.49347 2 -2145 20 101 75 27 37.07713 2 -2146 20 102 75 25 45.19345 2 -2147 20 103 75 23 56.26589 4 -2148 20 104 75 24 47.21191 2 -2149 20 105 75 26 53.8208 2 -2150 20 106 75 28 58.26591 2 -2151 20 107 79 27 53.88585 2 -2152 20 108 79 25 63.89224 2 -2153 20 109 79 24 63.54349 2 -2154 20 110 79 26 68.51868 2 -2155 20 111 79 28 70.72673 2 -2156 21 0 3 33 89.8973 2 -2157 21 1 3 31 88.12197 2 -2158 21 2 3 29 79.15884 2 -2159 21 3 3 30 73.65031 2 -2160 21 4 3 32 68.38726 2 -2161 21 5 3 34 64.56019 2 -2162 21 6 7 33 68.78736 4 -2163 21 7 7 31 66.37846 4 -2164 21 8 7 29 53.28222 2 -2165 21 9 7 30 58.78023 2 -2166 21 10 7 32 51.76638 2 -2167 21 11 7 34 47.88492 2 -2168 21 12 11 31 51.60668 4 -2169 21 13 11 29 85.78853 2 -2170 21 14 11 30 48.1214 2 -2171 21 15 11 32 38.01831 2 -2172 21 16 11 34 35.77569 2 -2173 21 17 15 31 54.6186 2 -2174 21 18 15 29 50.57058 2 -2175 21 19 15 27 47.24595 2 -2176 21 20 15 30 42.29117 2 -2177 21 21 15 32 36.98783 2 -2178 21 22 15 34 36.54574 2 -2179 21 23 19 33 51.77195 2 -2180 21 24 19 31 39.11801 2 -2181 21 25 19 29 39.85009 2 -2182 21 26 19 30 40.85973 2 -2183 21 27 19 32 47.0653 2 -2184 21 28 19 34 41.29946 2 -2185 21 29 23 33 40.67227 2 -2186 21 30 23 31 42.7296 2 -2187 21 31 23 30 39.92729 2 -2188 21 32 23 32 42.7632 2 -2189 21 33 23 34 38.68443 2 -2190 21 34 27 31 53.53559 2 -2191 21 35 27 29 44.47785 2 -2192 21 36 27 27 61.82625 2 -2193 21 37 27 30 82.18288 2 -2194 21 38 27 32 45.03376 2 -2195 21 39 27 34 37.99911 2 -2196 21 40 31 33 40.51163 2 -2197 21 41 31 31 40.50083 2 -2198 21 42 31 29 43.80648 2 -2199 21 43 31 30 40.68799 2 -2200 21 44 31 32 38.06413 2 -2201 21 45 31 34 39.30507 2 -2202 21 46 35 33 59.44524 2 -2203 21 47 35 31 39.01325 2 -2204 21 48 35 29 40.06345 2 -2205 21 49 35 32 38.63173 2 -2206 21 50 35 34 43.15213 2 -2207 21 51 39 31 47.95669 2 -2208 21 52 39 29 40.33531 2 -2209 21 53 39 27 42.95409 2 -2210 21 54 39 28 40.13297 2 -2211 21 55 39 30 41.23028 2 -2212 21 56 39 32 39.81055 2 -2213 21 57 43 31 44.35419 2 -2214 21 58 43 29 39.12858 2 -2215 21 59 43 27 44.54734 2 -2216 21 60 43 28 47.57819 2 -2217 21 61 43 30 45.05096 2 -2218 21 62 43 32 48.57425 2 -2219 21 63 47 33 38.1542 2 -2220 21 64 47 31 46.62184 2 -2221 21 65 47 30 44.10426 2 -2222 21 66 47 32 37.33445 2 -2223 21 67 47 34 47.79964 2 -2224 21 68 51 33 43.56195 2 -2225 21 69 51 31 38.03362 2 -2226 21 70 51 29 47.38308 2 -2227 21 71 51 30 38.56341 2 -2228 21 72 51 32 40.50186 2 -2229 21 73 51 34 46.28658 2 -2230 21 74 55 33 38.26154 2 -2231 21 75 55 31 41.4983 2 -2232 21 76 55 29 39.37975 2 -2233 21 77 55 28 40.14941 2 -2234 21 78 55 30 41.82687 2 -2235 21 79 55 32 42.35636 2 -2236 21 80 59 33 41.56095 2 -2237 21 81 59 31 38.31008 2 -2238 21 82 59 29 40.6692 2 -2239 21 83 59 32 38.87302 2 -2240 21 84 59 34 39.97413 2 -2241 21 85 63 33 37.66525 2 -2242 21 86 63 31 46.79308 2 -2243 21 87 63 29 41.34178 2 -2244 21 88 63 30 39.33091 2 -2245 21 89 63 32 39.94818 2 -2246 21 90 63 34 46.5292 2 -2247 21 91 67 33 37.46639 2 -2248 21 92 67 31 37.43653 2 -2249 21 93 67 29 54.24292 2 -2250 21 94 67 28 43.38272 2 -2251 21 95 67 30 47.9946 2 -2252 21 96 67 32 50.64287 2 -2253 21 97 71 33 35.88172 2 -2254 21 98 71 31 40.4204 2 -2255 21 99 71 29 47.60147 2 -2256 21 100 71 30 47.35056 2 -2257 21 101 71 32 49.59639 2 -2258 21 102 75 33 49.89955 2 -2259 21 103 75 31 53.04818 2 -2260 21 104 75 29 60.23214 2 -2261 21 105 75 30 58.04619 2 -2262 21 106 75 32 59.59715 2 -2263 21 107 75 34 68.74002 4 -2264 21 108 79 33 59.58926 2 -2265 21 109 79 31 72.4284 2 -2266 21 110 79 29 79.287 2 -2267 21 111 79 30 75.34272 2 -2268 21 112 79 32 88.78072 2 -2269 21 113 79 34 84.52719 2 -2270 22 0 3 39 90.95908 2 -2271 22 1 3 37 89.54491 2 -2272 22 2 3 35 85.30901 2 -2273 22 3 3 36 87.50042 2 -2274 22 4 3 38 79.86774 2 -2275 22 5 3 40 67.54722 2 -2276 22 6 7 37 79.03638 4 -2277 22 7 7 35 82.02199 2 -2278 22 8 7 36 71.13051 2 -2279 22 9 7 38 66.75789 2 -2280 22 10 7 40 58.42279 2 -2281 22 11 11 37 63.75342 2 -2282 22 12 11 35 57.54791 2 -2283 22 13 11 33 53.00352 2 -2284 22 14 11 36 51.00507 2 -2285 22 15 11 38 54.41753 2 -2286 22 16 11 40 42.66563 2 -2287 22 17 15 37 62.3908 2 -2288 22 18 15 35 50.74662 2 -2289 22 19 15 33 53.01485 2 -2290 22 20 15 36 46.62863 2 -2291 22 21 15 38 45.42403 2 -2292 22 22 15 40 43.93189 2 -2293 22 23 19 39 56.45326 4 -2294 22 24 19 37 47.31715 2 -2295 22 25 19 35 49.98127 2 -2296 22 26 19 36 47.26396 2 -2297 22 27 19 38 45.48454 2 -2298 22 28 19 40 45.79077 2 -2299 22 29 23 39 49.6489 2 -2300 22 30 23 37 47.56444 2 -2301 22 31 23 35 49.60206 2 -2302 22 32 23 36 49.52428 2 -2303 22 33 23 38 58.64428 2 -2304 22 34 27 37 49.8471 2 -2305 22 35 27 35 49.90689 2 -2306 22 36 27 33 48.15524 2 -2307 22 37 27 36 50.24842 2 -2308 22 38 27 38 44.57391 2 -2309 22 39 27 40 48.75235 2 -2310 22 40 31 39 46.97059 2 -2311 22 41 31 37 48.49506 2 -2312 22 42 31 35 50.74793 2 -2313 22 43 31 36 50.32441 2 -2314 22 44 31 38 45.99423 2 -2315 22 45 31 40 48.6175 2 -2316 22 46 35 37 50.31662 2 -2317 22 47 35 35 48.15698 2 -2318 22 48 35 36 51.34917 2 -2319 22 49 35 38 46.64504 2 -2320 22 50 35 40 55.02041 2 -2321 22 51 39 35 55.31924 2 -2322 22 52 39 33 50.32336 2 -2323 22 53 39 34 57.75168 2 -2324 22 54 39 36 45.86836 2 -2325 22 55 39 38 46.60228 2 -2326 22 56 39 40 46.30097 2 -2327 22 57 43 39 50.49279 2 -2328 22 58 43 37 48.21373 2 -2329 22 59 43 35 50.07659 2 -2330 22 60 43 33 57.81387 2 -2331 22 61 43 34 50.08708 2 -2332 22 62 43 36 57.75603 2 -2333 22 63 47 39 50.37421 2 -2334 22 64 47 37 46.96739 2 -2335 22 65 47 35 48.43032 2 -2336 22 66 47 36 46.43288 2 -2337 22 67 47 38 48.51947 2 -2338 22 68 51 39 57.65455 2 -2339 22 69 51 37 46.67508 2 -2340 22 70 51 35 49.65163 2 -2341 22 71 51 36 50.52713 2 -2342 22 72 51 38 48.70343 2 -2343 22 73 51 40 53.76459 2 -2344 22 74 55 39 45.25725 2 -2345 22 75 55 37 44.81103 2 -2346 22 76 55 35 52.47214 2 -2347 22 77 55 34 53.4459 2 -2348 22 78 55 36 50.20963 2 -2349 22 79 55 38 50.48265 2 -2350 22 80 59 37 44.916 2 -2351 22 81 59 35 48.44623 2 -2352 22 82 59 36 50.09888 2 -2353 22 83 59 38 47.68008 2 -2354 22 84 59 40 49.0327 2 -2355 22 85 63 39 47.356 2 -2356 22 86 63 37 46.14448 2 -2357 22 87 63 35 47.18965 2 -2358 22 88 63 36 49.54728 2 -2359 22 89 63 38 71.05998 2 -2360 22 90 63 40 52.20317 2 -2361 22 91 67 39 46.40101 2 -2362 22 92 67 37 43.50167 2 -2363 22 93 67 35 47.43915 2 -2364 22 94 67 34 50.46927 2 -2365 22 95 67 36 55.09557 2 -2366 22 96 67 38 65.67452 2 -2367 22 97 71 39 45.53399 2 -2368 22 98 71 37 48.3386 2 -2369 22 99 71 35 55.56802 2 -2370 22 100 71 34 59.38613 2 -2371 22 101 71 36 62.16453 2 -2372 22 102 71 38 78.46508 2 -2373 22 103 75 39 59.18654 2 -2374 22 104 75 37 65.99893 2 -2375 22 105 75 35 70.81608 2 -2376 22 106 75 36 72.0394 2 -2377 22 107 75 38 73.03673 2 -2378 22 108 79 39 72.52673 2 -2379 22 109 79 37 77.90768 4 -2380 22 110 79 35 86.63157 2 -2381 22 111 79 36 91.98945 2 -2382 22 112 79 38 90.19345 4 -2383 22 113 79 40 99.15104 2 -2384 23 0 4 5 73.18042 2 -2385 23 1 4 3 70.8965 2 -2386 23 2 4 1 61.6334 2 -2387 23 3 4 2 67.31832 2 -2388 23 4 4 4 53.78557 2 -2389 23 5 4 6 49.62423 2 -2390 23 6 7 39 93.15055 4 -2391 23 7 8 3 66.05162 2 -2392 23 8 8 1 46.5992 2 -2393 23 9 8 2 48.74446 2 -2394 23 10 8 4 60.50511 2 -2395 23 11 11 39 68.34699 2 -2396 23 12 12 3 101.41908 2 -2397 23 13 12 1 35.67243 2 -2398 23 14 12 2 35.0937 2 -2399 23 15 12 4 30.96685 2 -2400 23 16 12 6 31.87769 2 -2401 23 17 15 39 61.49909 2 -2402 23 18 16 3 38.61036 2 -2403 23 19 16 1 35.38831 2 -2404 23 20 16 2 30.36494 2 -2405 23 21 16 4 27.62296 2 -2406 23 22 16 6 28.63187 2 -2407 23 23 20 3 37.99764 2 -2408 23 24 20 1 34.29518 2 -2409 23 25 20 2 99.93767 2 -2410 23 26 20 4 34.32123 2 -2411 23 27 20 6 27.88882 2 -2412 23 28 24 5 38.31992 2 -2413 23 29 24 3 30.92671 2 -2414 23 30 24 1 33.74907 2 -2415 23 31 24 2 40.00183 2 -2416 23 32 24 4 32.60568 2 -2417 23 33 23 40 58.76601 2 -2418 23 34 27 39 74.13614 2 -2419 23 35 28 5 29.52622 2 -2420 23 36 28 3 38.22933 2 -2421 23 37 28 1 32.57519 2 -2422 23 38 28 2 33.4911 2 -2423 23 39 28 4 36.04094 2 -2424 23 40 32 5 33.52335 2 -2425 23 41 32 3 36.54117 2 -2426 23 42 32 1 32.49433 2 -2427 23 43 32 2 38.85833 2 -2428 23 44 32 4 30.34988 2 -2429 23 45 32 6 29.82211 2 -2430 23 46 35 39 68.07797 4 -2431 23 47 36 3 38.07139 2 -2432 23 48 36 1 38.92055 2 -2433 23 49 36 2 30.07974 2 -2434 23 50 36 4 42.61062 2 -2435 23 51 39 39 61.12777 2 -2436 23 52 39 37 59.32776 2 -2437 23 53 40 3 31.26685 2 -2438 23 54 40 1 29.45254 2 -2439 23 55 40 2 33.00404 2 -2440 23 56 40 4 37.83523 2 -2441 23 57 44 3 52.21989 2 -2442 23 58 44 1 33.21048 2 -2443 23 59 44 2 33.03054 2 -2444 23 60 44 4 32.62479 2 -2445 23 61 43 38 61.16033 2 -2446 23 62 43 40 60.59926 2 -2447 23 63 48 3 97.33919 2 -2448 23 64 48 1 32.09356 2 -2449 23 65 48 2 32.16932 2 -2450 23 66 48 4 35.93726 2 -2451 23 67 47 40 61.82585 2 -2452 23 68 52 5 48.20749 2 -2453 23 69 52 3 40.83196 2 -2454 23 70 52 1 35.07991 2 -2455 23 71 52 2 37.53869 2 -2456 23 72 52 4 43.12882 2 -2457 23 73 52 6 43.05118 2 -2458 23 74 56 3 33.8444 2 -2459 23 75 56 1 30.77263 2 -2460 23 76 56 2 41.2973 2 -2461 23 77 56 4 36.82598 2 -2462 23 78 56 6 28.46461 2 -2463 23 79 55 40 63.63234 2 -2464 23 80 59 39 55.85349 2 -2465 23 81 60 3 26.69793 2 -2466 23 82 60 1 35.95474 2 -2467 23 83 60 2 32.9638 2 -2468 23 84 60 4 31.55173 2 -2469 23 85 60 6 45.61164 2 -2470 23 86 64 5 27.88973 2 -2471 23 87 64 3 40.4497 2 -2472 23 88 64 1 36.90937 2 -2473 23 89 64 2 37.74139 2 -2474 23 90 64 4 35.19507 2 -2475 23 91 68 5 29.23896 2 -2476 23 92 68 3 28.52371 2 -2477 23 93 68 1 33.76404 2 -2478 23 94 68 2 32.45851 2 -2479 23 95 68 4 37.12904 2 -2480 23 96 67 40 61.70516 2 -2481 23 97 72 5 32.18604 2 -2482 23 98 72 3 32.7569 2 -2483 23 99 72 1 32.88691 2 -2484 23 100 72 2 34.31874 2 -2485 23 101 72 4 37.37858 2 -2486 23 102 71 40 87.86669 2 -2487 23 103 76 3 32.56077 2 -2488 23 104 76 1 49.13439 2 -2489 23 105 76 2 43.93583 2 -2490 23 106 76 4 47.11047 2 -2491 23 107 75 40 90.46866 2 -2492 23 108 80 5 50.10258 2 -2493 23 109 80 3 54.86504 2 -2494 23 110 80 1 66.03033 2 -2495 23 111 80 2 58.29613 2 -2496 23 112 80 4 62.18596 2 -2497 23 113 80 6 65.42139 2 -2498 24 0 4 11 85.39124 2 -2499 24 1 4 9 79.86025 2 -2500 24 2 4 7 82.31246 2 -2501 24 3 4 8 73.92355 2 -2502 24 4 4 10 68.60786 2 -2503 24 5 4 12 60.48593 2 -2504 24 6 8 9 73.41319 2 -2505 24 7 8 7 69.47137 4 -2506 24 8 8 5 61.90892 2 -2507 24 9 8 6 60.85531 2 -2508 24 10 8 8 55.9415 2 -2509 24 11 8 10 47.2253 2 -2510 24 12 12 9 56.60769 2 -2511 24 13 12 7 50.90091 2 -2512 24 14 12 5 42.08683 2 -2513 24 15 12 8 42.8179 2 -2514 24 16 12 10 44.50373 2 -2515 24 17 12 12 36.32121 2 -2516 24 18 16 9 43.77557 2 -2517 24 19 16 7 59.48651 2 -2518 24 20 16 5 43.24675 2 -2519 24 21 16 8 40.00215 2 -2520 24 22 16 10 37.94233 2 -2521 24 23 20 9 57.6844 2 -2522 24 24 20 7 49.64151 2 -2523 24 25 20 5 40.59387 2 -2524 24 26 20 8 40.02836 2 -2525 24 27 20 10 38.99629 2 -2526 24 28 20 12 36.20947 2 -2527 24 29 24 11 45.58231 2 -2528 24 30 24 9 49.68278 2 -2529 24 31 24 7 39.64387 2 -2530 24 32 24 6 44.93945 2 -2531 24 33 24 8 41.32915 2 -2532 24 34 24 10 48.11957 2 -2533 24 35 28 11 46.01272 2 -2534 24 36 28 9 41.77264 2 -2535 24 37 28 7 40.10921 2 -2536 24 38 28 6 44.72194 2 -2537 24 39 28 8 37.34342 2 -2538 24 40 28 10 49.24686 2 -2539 24 41 32 9 38.68486 2 -2540 24 42 32 7 49.54498 2 -2541 24 43 32 8 45.95356 2 -2542 24 44 32 10 41.63617 2 -2543 24 45 32 12 41.60911 2 -2544 24 46 36 9 64.23495 2 -2545 24 47 36 7 44.38704 2 -2546 24 48 36 5 53.31602 2 -2547 24 49 36 6 47.87523 2 -2548 24 50 36 8 43.14984 2 -2549 24 51 36 10 49.79364 2 -2550 24 52 40 9 45.49096 2 -2551 24 53 40 7 38.89893 2 -2552 24 54 40 5 38.49616 2 -2553 24 55 40 6 44.29971 2 -2554 24 56 40 8 39.68097 2 -2555 24 57 40 10 50.09503 2 -2556 24 58 44 9 45.9629 2 -2557 24 59 44 7 42.45231 2 -2558 24 60 44 5 40.13192 2 -2559 24 61 44 6 39.41129 2 -2560 24 62 44 8 39.64169 2 -2561 24 63 44 10 46.32829 2 -2562 24 64 48 9 47.85416 2 -2563 24 65 48 7 38.71617 2 -2564 24 66 48 5 44.29896 2 -2565 24 67 48 6 44.50146 2 -2566 24 68 48 8 53.32417 2 -2567 24 69 48 10 68.68265 2 -2568 24 70 52 11 45.87787 2 -2569 24 71 52 9 37.1462 2 -2570 24 72 52 7 46.41852 2 -2571 24 73 52 8 39.88617 2 -2572 24 74 52 10 38.91964 2 -2573 24 75 56 9 48.23207 2 -2574 24 76 56 7 46.43613 2 -2575 24 77 56 5 42.37007 2 -2576 24 78 56 8 42.42464 2 -2577 24 79 56 10 40.27913 2 -2578 24 80 56 12 39.38365 2 -2579 24 81 60 9 45.6225 2 -2580 24 82 60 7 39.20731 2 -2581 24 83 60 5 42.44545 2 -2582 24 84 60 8 39.0974 2 -2583 24 85 60 10 47.83168 2 -2584 24 86 60 12 46.32419 2 -2585 24 87 64 11 36.98512 2 -2586 24 88 64 9 37.71615 2 -2587 24 89 64 7 108.00507 2 -2588 24 90 64 6 42.5265 2 -2589 24 91 64 8 88.06311 2 -2590 24 92 64 10 51.59006 2 -2591 24 93 68 9 40.38932 2 -2592 24 94 68 7 38.66943 2 -2593 24 95 68 6 40.45601 2 -2594 24 96 68 8 53.87908 2 -2595 24 97 68 10 44.19252 2 -2596 24 98 72 11 36.48635 2 -2597 24 99 72 9 39.27775 2 -2598 24 100 72 7 49.48052 2 -2599 24 101 72 6 42.26134 2 -2600 24 102 72 8 44.18908 2 -2601 24 103 72 10 63.89413 2 -2602 24 104 76 9 42.04441 2 -2603 24 105 76 7 53.76703 2 -2604 24 106 76 5 62.25222 2 -2605 24 107 76 6 57.23211 2 -2606 24 108 76 8 74.17939 2 -2607 24 109 76 10 68.20195 2 -2608 24 110 80 11 55.02058 2 -2609 24 111 80 9 69.76685 2 -2610 24 112 80 7 71.54428 2 -2611 24 113 80 8 81.38043 2 -2612 24 114 80 10 77.51752 2 -2613 24 115 80 12 93.77993 2 -2614 25 0 4 17 93.8046 2 -2615 25 1 4 15 95.73576 4 -2616 25 2 4 13 86.59553 2 -2617 25 3 4 14 83.24705 2 -2618 25 4 4 16 71.88336 2 -2619 25 5 4 18 75.33951 2 -2620 25 6 8 15 88.88225 2 -2621 25 7 8 13 70.48356 2 -2622 25 8 8 11 72.32512 4 -2623 25 9 8 12 72.9828 2 -2624 25 10 8 14 66.88885 2 -2625 25 11 8 16 109.92701 2 -2626 25 12 12 15 59.1671 2 -2627 25 13 12 13 56.8193 2 -2628 25 14 12 11 50.54409 2 -2629 25 15 12 14 46.67349 2 -2630 25 16 12 16 47.44488 2 -2631 25 17 16 15 61.83956 2 -2632 25 18 16 13 52.06068 2 -2633 25 19 16 11 52.7401 2 -2634 25 20 16 12 56.70841 2 -2635 25 21 16 14 51.13847 2 -2636 25 22 16 16 47.388 2 -2637 25 23 20 15 59.24543 2 -2638 25 24 20 13 57.5895 4 -2639 25 25 20 11 51.36193 2 -2640 25 26 20 14 49.92636 2 -2641 25 27 20 16 45.74993 2 -2642 25 28 20 18 44.69274 2 -2643 25 29 24 17 69.82908 2 -2644 25 30 24 15 59.39501 2 -2645 25 31 24 13 47.2682 2 -2646 25 32 24 12 50.93112 2 -2647 25 33 24 14 47.60025 2 -2648 25 34 24 16 48.83212 2 -2649 25 35 28 17 56.22651 2 -2650 25 36 28 15 46.92003 2 -2651 25 37 28 13 48.25331 2 -2652 25 38 28 12 49.94313 2 -2653 25 39 28 14 50.52013 2 -2654 25 40 28 16 45.29361 2 -2655 25 41 32 15 60.49848 2 -2656 25 42 32 13 47.50715 2 -2657 25 43 32 11 48.65074 2 -2658 25 44 32 14 58.2033 2 -2659 25 45 32 16 50.79458 2 -2660 25 46 36 15 65.61861 2 -2661 25 47 36 13 48.8844 2 -2662 25 48 36 11 60.94531 2 -2663 25 49 36 12 52.28039 2 -2664 25 50 36 14 48.69352 2 -2665 25 51 36 16 45.48739 2 -2666 25 52 40 15 50.64221 2 -2667 25 53 40 13 47.60955 2 -2668 25 54 40 11 48.98315 2 -2669 25 55 40 12 47.25271 2 -2670 25 56 40 14 56.97939 2 -2671 25 57 40 16 55.24451 2 -2672 25 58 44 15 49.04836 2 -2673 25 59 44 13 49.0135 2 -2674 25 60 44 11 50.6646 2 -2675 25 61 44 12 49.01728 2 -2676 25 62 44 14 63.84098 2 -2677 25 63 44 16 58.71303 2 -2678 25 64 48 15 55.03662 2 -2679 25 65 48 13 46.70147 2 -2680 25 66 48 11 49.66959 2 -2681 25 67 48 12 51.62618 2 -2682 25 68 48 14 49.65839 2 -2683 25 69 48 16 55.19248 2 -2684 25 70 52 15 46.18439 2 -2685 25 71 52 13 51.32666 2 -2686 25 72 52 12 50.88979 2 -2687 25 73 52 14 47.55912 2 -2688 25 74 52 16 53.97026 2 -2689 25 75 56 15 48.58248 2 -2690 25 76 56 13 48.46595 2 -2691 25 77 56 11 48.19798 2 -2692 25 78 56 14 53.25342 2 -2693 25 79 56 16 47.56993 2 -2694 25 80 56 18 56.69318 2 -2695 25 81 60 15 46.41187 2 -2696 25 82 60 13 47.5239 2 -2697 25 83 60 11 53.55425 2 -2698 25 84 60 14 49.64151 2 -2699 25 85 60 16 49.06619 2 -2700 25 86 60 18 62.99771 2 -2701 25 87 64 17 46.56611 2 -2702 25 88 64 15 46.36979 2 -2703 25 89 64 13 50.11418 2 -2704 25 90 64 12 55.20812 4 -2705 25 91 64 14 59.87654 2 -2706 25 92 64 16 62.05975 2 -2707 25 93 68 15 48.51633 2 -2708 25 94 68 13 100.38101 2 -2709 25 95 68 11 57.74057 2 -2710 25 96 68 12 61.93646 2 -2711 25 97 68 14 56.27968 2 -2712 25 98 68 16 73.29282 2 -2713 25 99 72 15 47.36346 2 -2714 25 100 72 13 51.37801 2 -2715 25 101 72 12 50.38159 2 -2716 25 102 72 14 59.28474 2 -2717 25 103 72 16 56.76344 2 -2718 25 104 76 15 49.81469 2 -2719 25 105 76 13 61.69091 2 -2720 25 106 76 11 68.41158 2 -2721 25 107 76 12 81.32277 2 -2722 25 108 76 14 70.85832 2 -2723 25 109 76 16 95.38416 2 -2724 25 110 80 17 70.54117 2 -2725 25 111 80 15 74.16815 2 -2726 25 112 80 13 89.02601 2 -2727 25 113 80 14 87.64732 4 -2728 25 114 80 16 85.68164 2 -2729 25 115 80 18 95.08784 2 -2730 26 0 4 23 98.93595 2 -2731 26 1 4 21 93.91775 2 -2732 26 2 4 19 92.35582 2 -2733 26 3 4 20 99.06268 2 -2734 26 4 4 22 80.02553 2 -2735 26 5 8 21 102.23959 4 -2736 26 6 8 19 89.39604 2 -2737 26 7 8 17 89.25705 4 -2738 26 8 8 18 79.16469 2 -2739 26 9 8 20 73.64455 2 -2740 26 10 8 22 67.9335 2 -2741 26 11 12 21 77.87857 2 -2742 26 12 12 19 72.2597 2 -2743 26 13 12 17 59.1963 2 -2744 26 14 12 18 67.02393 2 -2745 26 15 12 20 56.0546 2 -2746 26 16 12 22 55.02569 2 -2747 26 17 16 21 72.76047 2 -2748 26 18 16 19 58.53962 2 -2749 26 19 16 17 60.09934 2 -2750 26 20 16 18 72.49055 2 -2751 26 21 16 20 53.43031 2 -2752 26 22 16 22 54.98993 2 -2753 26 23 20 21 77.39152 2 -2754 26 24 20 19 60.62447 2 -2755 26 25 20 17 59.09683 2 -2756 26 26 20 20 61.92523 2 -2757 26 27 20 22 54.14714 2 -2758 26 28 20 24 53.30307 2 -2759 26 29 24 23 70.94764 2 -2760 26 30 24 21 55.72355 2 -2761 26 31 24 19 56.58973 2 -2762 26 32 24 18 58.07225 2 -2763 26 33 24 20 56.52606 2 -2764 26 34 24 22 68.89414 2 -2765 26 35 28 21 57.30434 2 -2766 26 36 28 19 56.5479 2 -2767 26 37 28 18 60.91209 2 -2768 26 38 28 20 56.06228 2 -2769 26 39 28 22 55.19238 2 -2770 26 40 32 21 64.53661 2 -2771 26 41 32 19 63.621 2 -2772 26 42 32 17 57.12329 2 -2773 26 43 32 18 63.75997 2 -2774 26 44 32 20 53.99112 2 -2775 26 45 32 22 62.99176 2 -2776 26 46 36 21 67.65821 4 -2777 26 47 36 19 57.35103 2 -2778 26 48 36 17 58.17967 2 -2779 26 49 36 18 61.6088 2 -2780 26 50 36 20 66.7888 2 -2781 26 51 36 22 56.824 2 -2782 26 52 40 21 64.54111 2 -2783 26 53 40 19 54.65712 2 -2784 26 54 40 17 55.5245 2 -2785 26 55 40 18 57.57983 2 -2786 26 56 40 20 57.11328 2 -2787 26 57 40 22 58.15834 2 -2788 26 58 44 21 57.78341 2 -2789 26 59 44 19 60.26818 2 -2790 26 60 44 17 60.10456 2 -2791 26 61 44 18 57.89155 2 -2792 26 62 44 20 64.67392 2 -2793 26 63 44 22 69.10494 2 -2794 26 64 48 21 71.48287 2 -2795 26 65 48 19 55.99531 2 -2796 26 66 48 17 57.10966 2 -2797 26 67 48 18 58.80982 2 -2798 26 68 48 20 59.12972 2 -2799 26 69 48 22 67.04589 2 -2800 26 70 52 21 72.62918 2 -2801 26 71 52 19 56.43349 2 -2802 26 72 52 17 60.85108 2 -2803 26 73 52 18 56.4535 2 -2804 26 74 52 20 59.7036 2 -2805 26 75 52 22 64.12453 2 -2806 26 76 56 21 56.10006 2 -2807 26 77 56 19 56.5186 2 -2808 26 78 56 17 58.27118 2 -2809 26 79 56 20 55.26201 2 -2810 26 80 56 22 58.09775 2 -2811 26 81 60 21 53.41999 2 -2812 26 82 60 19 56.01303 2 -2813 26 83 60 17 56.96461 2 -2814 26 84 60 20 55.44868 2 -2815 26 85 60 22 58.48516 2 -2816 26 86 60 24 57.0388 2 -2817 26 87 64 23 57.94774 2 -2818 26 88 64 21 52.26259 2 -2819 26 89 64 19 56.98005 2 -2820 26 90 64 18 57.45 2 -2821 26 91 64 20 64.17547 2 -2822 26 92 64 22 65.20377 2 -2823 26 93 68 21 56.31592 2 -2824 26 94 68 19 56.61287 2 -2825 26 95 68 17 61.59264 2 -2826 26 96 68 18 61.29753 2 -2827 26 97 68 20 64.57474 2 -2828 26 98 68 22 66.67537 2 -2829 26 99 72 21 56.14239 2 -2830 26 100 72 19 60.58603 2 -2831 26 101 72 17 72.55691 2 -2832 26 102 72 18 59.12941 2 -2833 26 103 72 20 61.33095 2 -2834 26 104 72 22 79.58542 2 -2835 26 105 76 21 65.33929 2 -2836 26 106 76 19 74.46331 2 -2837 26 107 76 17 79.58365 2 -2838 26 108 76 18 79.22639 2 -2839 26 109 76 20 95.71105 4 -2840 26 110 76 22 87.09166 2 -2841 26 111 80 21 84.39489 2 -2842 26 112 80 19 91.70002 2 -2843 26 113 80 20 93.82442 2 -2844 26 114 80 22 92.69284 2 -2845 26 115 80 24 101.09316 2 -2846 27 0 4 29 106.52357 2 -2847 27 1 4 27 107.15521 4 -2848 27 2 4 25 106.6373 2 -2849 27 3 4 24 109.89688 2 -2850 27 4 4 26 96.03514 2 -2851 27 5 4 28 94.36563 2 -2852 27 6 8 27 105.36806 4 -2853 27 7 8 25 96.17763 4 -2854 27 8 8 23 92.67097 4 -2855 27 9 8 24 91.42277 2 -2856 27 10 8 26 80.46561 2 -2857 27 11 8 28 77.206 2 -2858 27 12 12 27 82.68492 4 -2859 27 13 12 25 77.4411 2 -2860 27 14 12 23 72.21746 2 -2861 27 15 12 24 68.71218 2 -2862 27 16 12 26 64.68351 2 -2863 27 17 12 28 63.42568 2 -2864 27 18 16 27 84.50802 2 -2865 27 19 16 25 66.7404 2 -2866 27 20 16 23 68.74588 2 -2867 27 21 16 24 67.63323 2 -2868 27 22 16 26 61.7996 2 -2869 27 23 16 28 61.45866 2 -2870 27 24 20 27 76.7798 2 -2871 27 25 20 25 74.26462 2 -2872 27 26 20 23 66.27545 2 -2873 27 27 20 26 64.70966 2 -2874 27 28 20 28 62.89193 2 -2875 27 29 20 30 71.91501 2 -2876 27 30 24 27 74.38146 4 -2877 27 31 24 25 66.24041 2 -2878 27 32 24 24 65.6603 2 -2879 27 33 24 26 77.91935 2 -2880 27 34 24 28 63.68367 2 -2881 27 35 28 27 83.43135 2 -2882 27 36 28 25 67.81319 2 -2883 27 37 28 23 69.8677 2 -2884 27 38 28 24 69.79226 2 -2885 27 39 28 26 61.78483 2 -2886 27 40 28 28 63.02743 2 -2887 27 41 32 27 73.21508 2 -2888 27 42 32 25 78.45378 2 -2889 27 43 32 23 65.23343 2 -2890 27 44 32 24 72.1967 2 -2891 27 45 32 26 62.39832 2 -2892 27 46 32 28 64.24521 2 -2893 27 47 36 27 74.91778 4 -2894 27 48 36 25 65.95396 2 -2895 27 49 36 23 65.78245 2 -2896 27 50 36 24 66.58682 2 -2897 27 51 36 26 62.50454 2 -2898 27 52 36 28 68.24171 2 -2899 27 53 40 27 72.43636 2 -2900 27 54 40 25 64.27699 2 -2901 27 55 40 23 63.71283 2 -2902 27 56 40 24 63.93649 2 -2903 27 57 40 26 64.57007 2 -2904 27 58 40 28 66.33252 2 -2905 27 59 44 27 64.21121 2 -2906 27 60 44 25 64.18944 2 -2907 27 61 44 23 67.67985 2 -2908 27 62 44 24 64.92502 2 -2909 27 63 44 26 67.19458 2 -2910 27 64 44 28 73.4147 2 -2911 27 65 48 27 71.49138 2 -2912 27 66 48 25 62.80738 2 -2913 27 67 48 23 65.12103 2 -2914 27 68 48 24 66.14148 2 -2915 27 69 48 26 68.68854 2 -2916 27 70 48 28 73.37969 2 -2917 27 71 52 27 75.69617 2 -2918 27 72 52 25 64.15654 2 -2919 27 73 52 23 67.37626 2 -2920 27 74 52 24 68.44191 2 -2921 27 75 52 26 75.29949 4 -2922 27 76 52 28 75.23335 4 -2923 27 77 56 27 66.98037 2 -2924 27 78 56 25 64.81919 2 -2925 27 79 56 23 73.94089 2 -2926 27 80 56 24 64.99726 2 -2927 27 81 56 26 68.20266 2 -2928 27 82 56 28 81.99028 4 -2929 27 83 60 27 61.66599 2 -2930 27 84 60 25 63.27496 2 -2931 27 85 60 23 65.13828 2 -2932 27 86 60 26 65.97204 2 -2933 27 87 60 28 66.4397 2 -2934 27 88 64 29 64.54232 2 -2935 27 89 64 27 60.88746 2 -2936 27 90 64 25 63.3826 2 -2937 27 91 64 24 68.14398 2 -2938 27 92 64 26 74.24542 4 -2939 27 93 64 28 76.80891 4 -2940 27 94 68 27 63.38156 2 -2941 27 95 68 25 62.92865 2 -2942 27 96 68 23 65.65994 2 -2943 27 97 68 24 70.35578 2 -2944 27 98 68 26 66.58053 2 -2945 27 99 68 28 81.80469 2 -2946 27 100 72 27 63.19173 2 -2947 27 101 72 25 67.0689 2 -2948 27 102 72 23 72.36028 2 -2949 27 103 72 24 68.88411 2 -2950 27 104 72 26 76.96557 2 -2951 27 105 72 28 81.78421 4 -2952 27 106 76 27 78.04319 2 -2953 27 107 76 25 82.99319 2 -2954 27 108 76 23 89.70109 4 -2955 27 109 76 24 87.72286 2 -2956 27 110 76 26 97.8813 2 -2957 27 111 76 28 96.52807 2 -2958 27 112 80 27 93.66612 2 -2959 27 113 80 25 100.59124 2 -2960 27 114 80 23 104.00127 2 -2961 27 115 80 26 105.96507 2 -2962 27 116 80 28 107.37998 2 -2963 27 117 80 30 108.62174 2 -2964 28 0 4 35 108.73743 2 -2965 28 1 4 33 105.9988 2 -2966 28 2 4 31 109.4986 4 -2967 28 3 4 30 111.58585 2 -2968 28 4 4 32 101.62604 2 -2969 28 5 4 34 99.36226 2 -2970 28 6 8 33 109.57234 4 -2971 28 7 8 31 99.60564 2 -2972 28 8 8 29 99.49628 2 -2973 28 9 8 30 102.70289 2 -2974 28 10 8 32 91.04899 2 -2975 28 11 8 34 80.45325 2 -2976 28 12 12 33 91.79529 2 -2977 28 13 12 31 86.74644 2 -2978 28 14 12 29 76.66081 2 -2979 28 15 12 30 81.30857 2 -2980 28 16 12 32 72.09619 2 -2981 28 17 12 34 74.78235 2 -2982 28 18 16 33 87.296 2 -2983 28 19 16 31 82.86088 2 -2984 28 20 16 29 80.84176 2 -2985 28 21 16 30 73.56065 2 -2986 28 22 16 32 72.20474 2 -2987 28 23 16 34 68.47808 2 -2988 28 24 20 33 80.47305 2 -2989 28 25 20 31 84.03099 2 -2990 28 26 20 29 74.02247 2 -2991 28 27 20 32 71.86714 2 -2992 28 28 20 34 74.27919 2 -2993 28 29 24 33 91.10033 2 -2994 28 30 24 31 87.35753 4 -2995 28 31 24 29 76.67701 2 -2996 28 32 24 30 74.31336 2 -2997 28 33 24 32 73.05967 2 -2998 28 34 24 34 80.69131 4 -2999 28 35 28 33 88.25214 2 -3000 28 36 28 31 76.16078 2 -3001 28 37 28 29 75.88529 2 -3002 28 38 28 30 83.53217 2 -3003 28 39 28 32 70.19723 2 -3004 28 40 28 34 71.87094 2 -3005 28 41 32 33 85.76078 2 -3006 28 42 32 31 73.25329 2 -3007 28 43 32 29 75.28519 2 -3008 28 44 32 30 79.0703 4 -3009 28 45 32 32 69.92955 2 -3010 28 46 32 34 74.66373 2 -3011 28 47 36 33 87.34454 2 -3012 28 48 36 31 73.33389 2 -3013 28 49 36 29 72.99343 2 -3014 28 50 36 30 74.6701 2 -3015 28 51 36 32 71.74942 2 -3016 28 52 36 34 81.26535 2 -3017 28 53 40 33 81.73443 4 -3018 28 54 40 31 78.26851 2 -3019 28 55 40 29 72.47952 2 -3020 28 56 40 30 72.82467 2 -3021 28 57 40 32 81.56096 2 -3022 28 58 40 34 74.60423 2 -3023 28 59 44 33 73.44983 2 -3024 28 60 44 31 72.84066 2 -3025 28 61 44 29 72.81924 2 -3026 28 62 44 30 72.74804 2 -3027 28 63 44 32 71.46703 2 -3028 28 64 44 34 80.95613 4 -3029 28 65 48 33 84.35308 2 -3030 28 66 48 31 72.33296 2 -3031 28 67 48 29 99.74374 2 -3032 28 68 48 30 73.38402 2 -3033 28 69 48 32 78.96681 2 -3034 28 70 48 34 84.77321 2 -3035 28 71 52 33 71.30306 2 -3036 28 72 52 31 73.50458 2 -3037 28 73 52 29 73.16998 2 -3038 28 74 52 30 112.43164 2 -3039 28 75 52 32 81.60143 4 -3040 28 76 52 34 85.63614 2 -3041 28 77 56 33 71.71728 2 -3042 28 78 56 31 71.73232 2 -3043 28 79 56 29 79.77135 2 -3044 28 80 56 30 75.782 2 -3045 28 81 56 32 75.72977 2 -3046 28 82 56 34 92.27672 2 -3047 28 83 60 33 69.84801 2 -3048 28 84 60 31 72.0367 2 -3049 28 85 60 29 74.51846 2 -3050 28 86 60 30 76.41547 2 -3051 28 87 60 32 84.35071 4 -3052 28 88 60 34 90.08891 2 -3053 28 89 64 33 73.42132 2 -3054 28 90 64 31 69.4805 2 -3055 28 91 64 30 76.62145 2 -3056 28 92 64 32 90.71159 2 -3057 28 93 64 34 86.05636 2 -3058 28 94 68 33 68.4785 2 -3059 28 95 68 31 70.97888 2 -3060 28 96 68 29 83.19893 2 -3061 28 97 68 30 80.6996 2 -3062 28 98 68 32 75.159 2 -3063 28 99 68 34 80.36258 2 -3064 28 100 72 33 68.76362 2 -3065 28 101 72 31 76.97222 2 -3066 28 102 72 29 83.18263 2 -3067 28 103 72 30 75.4601 2 -3068 28 104 72 32 86.34683 2 -3069 28 105 72 34 86.39324 2 -3070 28 106 76 33 88.45948 4 -3071 28 107 76 31 85.589 2 -3072 28 108 76 29 92.67302 2 -3073 28 109 76 30 97.16646 2 -3074 28 110 76 32 102.10178 4 -3075 28 111 76 34 108.31992 2 -3076 28 112 80 33 99.10502 2 -3077 28 113 80 31 103.97462 2 -3078 28 114 80 29 112.08329 2 -3079 28 115 80 32 107.24494 4 -3080 28 116 80 34 113.67959 4 -3081 28 117 80 36 112.06373 4 -3082 29 0 4 39 110.80987 2 -3083 29 1 4 37 113.26903 4 -3084 29 2 4 36 110.86976 4 -3085 29 3 4 38 110.34537 2 -3086 29 4 4 40 109.96111 2 -3087 29 5 8 39 107.85968 2 -3088 29 6 8 37 109.00092 4 -3089 29 7 8 35 111.34988 4 -3090 29 8 8 36 109.8584 4 -3091 29 9 8 38 111.40725 2 -3092 29 10 8 40 94.48074 2 -3093 29 11 12 39 99.13998 2 -3094 29 12 12 37 96.43742 2 -3095 29 13 12 35 98.50704 2 -3096 29 14 12 36 94.58418 2 -3097 29 15 12 38 83.98474 2 -3098 29 16 12 40 80.20915 2 -3099 29 17 16 39 98.9945 2 -3100 29 18 16 37 97.82812 2 -3101 29 19 16 35 82.57518 2 -3102 29 20 16 36 84.90994 2 -3103 29 21 16 38 82.7731 2 -3104 29 22 16 40 79.03977 2 -3105 29 23 20 39 99.28812 2 -3106 29 24 20 37 90.44073 2 -3107 29 25 20 35 93.07514 4 -3108 29 26 20 36 83.74982 2 -3109 29 27 20 38 78.92986 2 -3110 29 28 20 40 75.7442 2 -3111 29 29 24 39 97.21189 2 -3112 29 30 24 37 90.68201 4 -3113 29 31 24 35 84.12138 2 -3114 29 32 24 36 82.30319 2 -3115 29 33 24 38 80.17472 2 -3116 29 34 24 40 76.23891 2 -3117 29 35 28 39 90.151 2 -3118 29 36 28 37 94.20909 2 -3119 29 37 28 35 90.84894 2 -3120 29 38 28 36 87.50113 2 -3121 29 39 28 38 79.69378 2 -3122 29 40 28 40 79.04792 2 -3123 29 41 32 39 96.01607 2 -3124 29 42 32 37 80.06271 2 -3125 29 43 32 35 82.85801 2 -3126 29 44 32 36 80.82219 2 -3127 29 45 32 38 79.78122 2 -3128 29 46 32 40 81.63766 2 -3129 29 47 36 39 92.65544 2 -3130 29 48 36 37 90.82397 2 -3131 29 49 36 35 81.57126 2 -3132 29 50 36 36 82.33005 2 -3133 29 51 36 38 76.76776 2 -3134 29 52 36 40 94.18635 2 -3135 29 53 40 39 86.88041 2 -3136 29 54 40 37 82.206 2 -3137 29 55 40 35 86.23866 2 -3138 29 56 40 36 80.70979 2 -3139 29 57 40 38 93.12625 2 -3140 29 58 40 40 82.26973 2 -3141 29 59 44 39 79.20367 2 -3142 29 60 44 37 81.82068 2 -3143 29 61 44 35 81.77884 4 -3144 29 62 44 36 81.33551 2 -3145 29 63 44 38 80.87226 2 -3146 29 64 44 40 82.39351 2 -3147 29 65 48 39 78.36642 2 -3148 29 66 48 37 81.01044 2 -3149 29 67 48 35 80.17557 2 -3150 29 68 48 36 81.85224 2 -3151 29 69 48 38 81.44283 2 -3152 29 70 48 40 90.08846 2 -3153 29 71 52 39 77.59771 2 -3154 29 72 52 37 80.24152 2 -3155 29 73 52 35 83.31505 2 -3156 29 74 52 36 83.76795 2 -3157 29 75 52 38 81.28693 2 -3158 29 76 52 40 94.565 2 -3159 29 77 56 39 78.93782 2 -3160 29 78 56 37 78.52517 2 -3161 29 79 56 35 89.21222 2 -3162 29 80 56 36 83.30618 2 -3163 29 81 56 38 94.23699 2 -3164 29 82 56 40 89.86967 2 -3165 29 83 60 39 75.71091 2 -3166 29 84 60 37 79.293 2 -3167 29 85 60 35 82.24906 2 -3168 29 86 60 36 84.72289 2 -3169 29 87 60 38 84.26098 2 -3170 29 88 60 40 92.43424 2 -3171 29 89 64 39 79.26388 2 -3172 29 90 64 37 77.76624 2 -3173 29 91 64 35 85.5859 2 -3174 29 92 64 36 95.64382 4 -3175 29 93 64 38 94.73234 2 -3176 29 94 64 40 100.47554 2 -3177 29 95 68 39 79.70604 2 -3178 29 96 68 37 81.80344 2 -3179 29 97 68 35 85.70025 2 -3180 29 98 68 36 82.03887 2 -3181 29 99 68 38 94.60055 2 -3182 29 100 68 40 95.47272 2 -3183 29 101 72 39 76.68804 2 -3184 29 102 72 37 82.61925 2 -3185 29 103 72 35 90.36061 2 -3186 29 104 72 36 93.71859 2 -3187 29 105 72 38 99.5381 2 -3188 29 106 72 40 94.13219 2 -3189 29 107 76 39 94.22879 2 -3190 29 108 76 37 98.45006 2 -3191 29 109 76 35 105.35193 2 -3192 29 110 76 36 94.21158 2 -3193 29 111 76 38 111.73912 4 -3194 29 112 76 40 103.46997 2 -3195 29 113 80 39 113.38438 2 -3196 29 114 80 37 96.18448 2 -3197 29 115 80 35 113.4507 4 -3198 29 116 80 38 111.2533 3 -3199 29 117 80 40 109.87314 2 +0 0 0 1 3 110.60739 2 +1 0 1 1 1 110.4044 2 +2 0 2 1 2 109.27584 2 +3 0 3 1 4 108.18434 2 +4 0 4 5 3 106.25242 2 +5 0 5 5 1 102.62965 2 +6 0 6 5 2 105.1966 2 +7 0 7 5 4 103.92957 2 +8 0 8 5 6 110.39389 4 +9 0 9 9 5 105.74178 2 +10 0 10 9 3 106.12295 2 +11 0 11 9 1 108.15588 2 +12 0 12 9 2 107.18801 2 +13 0 13 9 4 110.94795 2 +14 0 14 13 3 106.78553 2 +15 0 15 13 1 103.45652 2 +16 0 16 13 2 104.46445 3 +17 0 17 13 4 108.86367 2 +18 0 18 13 6 112.58242 2 +19 0 19 17 3 104.19603 2 +20 0 20 17 1 107.04165 2 +21 0 21 17 2 105.13637 2 +22 0 22 17 4 108.90753 2 +23 0 23 21 5 101.9212 2 +24 0 24 21 3 105.63432 2 +25 0 25 21 1 104.94851 2 +26 0 26 21 2 107.84238 2 +27 0 27 21 4 112.0574 4 +28 0 28 25 3 103.10754 2 +29 0 29 25 1 103.06899 2 +30 0 30 25 2 103.33074 2 +31 0 31 25 4 106.58494 2 +32 0 32 25 6 108.85032 2 +33 0 33 29 3 100.94033 2 +34 0 34 29 1 102.78041 2 +35 0 35 29 2 102.27288 2 +36 0 36 29 4 106.00971 2 +37 0 37 33 5 104.52836 2 +38 0 38 33 3 103.18128 2 +39 0 39 33 1 103.86546 2 +40 0 40 33 2 100.11496 2 +41 0 41 33 4 104.0645 2 +42 0 42 37 5 106.38613 2 +43 0 43 37 3 102.68666 2 +44 0 44 37 1 103.11428 2 +45 0 45 37 2 102.82505 2 +46 0 46 37 4 107.05002 3 +47 0 47 41 3 106.2435 2 +48 0 48 41 1 102.50799 2 +49 0 49 41 2 101.68939 2 +50 0 50 41 4 103.49756 2 +51 0 51 41 6 105.37932 2 +52 0 52 45 3 104.74142 2 +53 0 53 45 1 104.34312 2 +54 0 54 45 2 103.55874 2 +55 0 55 45 4 102.35538 2 +56 0 56 45 6 105.6801 2 +57 0 57 49 3 107.09569 2 +58 0 58 49 1 102.99727 2 +59 0 59 49 2 101.79638 2 +60 0 60 49 4 101.45768 2 +61 0 61 53 5 113.6873 2 +62 0 62 53 3 105.5794 2 +63 0 63 53 1 101.74808 2 +64 0 64 53 2 103.00798 2 +65 0 65 53 4 103.95878 2 +66 0 66 57 3 108.34107 2 +67 0 67 57 1 107.55975 2 +68 0 68 57 2 104.93782 2 +69 0 69 57 4 103.40907 2 +70 0 70 57 6 102.98047 2 +71 0 71 61 3 111.66533 2 +72 0 72 61 1 105.85227 2 +73 0 73 61 2 107.19615 2 +74 0 74 61 4 104.2679 2 +75 0 75 65 5 113.65583 4 +76 0 76 65 3 112.07316 4 +77 0 77 65 1 104.13932 2 +78 0 78 65 2 105.31836 2 +79 0 79 65 4 106.25807 2 +80 0 80 69 3 110.44166 2 +81 0 81 69 1 106.28621 2 +82 0 82 69 2 106.36659 2 +83 0 83 69 4 106.17889 2 +84 0 84 69 6 104.40631 2 +85 0 85 73 5 106.472 2 +86 0 86 73 3 105.11058 2 +87 0 87 73 1 103.83002 2 +88 0 88 73 2 104.02909 2 +89 0 89 73 4 107.67685 2 +90 0 90 77 3 107.05733 2 +91 0 91 77 1 108.5313 2 +92 0 92 77 2 106.83879 2 +93 0 93 77 4 111.91559 2 +94 1 0 1 7 108.28716 2 +95 1 1 1 5 103.90612 2 +96 1 2 1 6 107.85379 2 +97 1 3 1 8 101.06131 2 +98 1 4 1 10 102.34823 2 +99 1 5 5 9 103.80654 2 +100 1 6 5 7 94.2141 2 +101 1 7 5 5 91.97737 2 +102 1 8 5 8 96.13745 2 +103 1 9 5 10 97.19023 2 +104 1 10 9 9 93.96358 2 +105 1 11 9 7 100.47959 2 +106 1 12 9 6 96.4635 2 +107 1 13 9 8 98.70348 2 +108 1 14 9 10 102.99993 2 +109 1 15 13 7 96.50575 2 +110 1 16 13 5 95.89434 2 +111 1 17 13 8 105.07354 4 +112 1 18 13 10 110.86393 4 +113 1 19 17 9 101.27313 2 +114 1 20 17 7 95.16862 2 +115 1 21 17 5 100.66857 2 +116 1 22 17 6 105.21905 2 +117 1 23 17 8 111.58165 4 +118 1 24 21 9 94.29545 2 +119 1 25 21 7 94.56138 2 +120 1 26 21 6 91.16408 2 +121 1 27 21 8 100.13147 2 +122 1 28 21 10 108.67836 2 +123 1 29 25 9 95.92103 2 +124 1 30 25 7 95.0692 2 +125 1 31 25 5 96.31166 2 +126 1 32 25 8 95.80188 2 +127 1 33 25 10 111.38196 4 +128 1 34 29 7 92.95852 2 +129 1 35 29 5 94.45412 2 +130 1 36 29 6 93.59662 2 +131 1 37 29 8 96.40664 2 +132 1 38 33 9 96.36009 2 +133 1 39 33 7 94.53996 2 +134 1 40 33 6 93.80762 2 +135 1 41 33 8 93.47648 2 +136 1 42 33 10 97.33918 2 +137 1 43 37 9 96.73171 2 +138 1 44 37 7 102.81863 2 +139 1 45 37 6 92.73549 2 +140 1 46 37 8 96.9983 2 +141 1 47 37 10 104.17594 2 +142 1 48 41 9 97.39925 2 +143 1 49 41 7 95.46462 2 +144 1 50 41 5 91.35961 2 +145 1 51 41 8 94.80318 2 +146 1 52 41 10 101.96504 2 +147 1 53 45 9 100.02635 2 +148 1 54 45 7 94.77131 2 +149 1 55 45 5 92.72903 2 +150 1 56 45 8 95.15029 2 +151 1 57 45 10 104.16163 4 +152 1 58 49 7 105.78379 4 +153 1 59 49 5 94.25231 2 +154 1 60 49 6 93.78917 2 +155 1 61 49 8 93.31688 2 +156 1 62 53 9 107.85412 2 +157 1 63 53 7 97.59995 2 +158 1 64 53 6 96.11799 2 +159 1 65 53 8 95.41273 2 +160 1 66 53 10 96.38661 2 +161 1 67 57 9 107.04677 2 +162 1 68 57 7 97.43944 2 +163 1 69 57 5 97.16948 2 +164 1 70 57 8 96.1211 2 +165 1 71 57 10 94.71008 2 +166 1 72 61 7 106.93062 2 +167 1 73 61 5 110.13308 4 +168 1 74 61 6 97.47974 2 +169 1 75 61 8 96.16359 2 +170 1 76 61 10 101.30805 2 +171 1 77 65 9 108.65744 2 +172 1 78 65 7 105.24998 4 +173 1 79 65 6 100.27156 2 +174 1 80 65 8 96.71448 2 +175 1 81 69 9 107.49065 2 +176 1 82 69 7 108.1198 4 +177 1 83 69 5 99.89923 2 +178 1 84 69 8 98.71328 2 +179 1 85 69 10 94.64174 2 +180 1 86 73 9 104.5452 2 +181 1 87 73 7 95.7362 2 +182 1 88 73 6 93.12758 2 +183 1 89 73 8 94.41086 2 +184 1 90 73 10 100.10531 2 +185 1 91 77 9 103.13797 2 +186 1 92 77 7 102.66358 2 +187 1 93 77 5 105.57078 2 +188 1 94 77 6 103.09192 2 +189 1 95 77 8 108.18461 2 +190 2 0 1 13 113.54322 4 +191 2 1 1 11 98.20961 2 +192 2 2 1 9 102.98425 4 +193 2 3 1 12 91.69588 2 +194 2 4 1 14 91.52847 2 +195 2 5 5 13 92.75708 2 +196 2 6 5 11 87.40429 2 +197 2 7 5 12 84.77056 2 +198 2 8 5 14 88.31974 2 +199 2 9 5 16 88.54409 2 +200 2 10 9 13 86.61998 2 +201 2 11 9 11 88.75841 2 +202 2 12 9 12 86.06334 2 +203 2 13 9 14 105.05809 2 +204 2 14 13 13 87.44216 2 +205 2 15 13 11 88.37584 2 +206 2 16 13 9 85.98688 2 +207 2 17 13 12 91.72598 2 +208 2 18 13 14 98.21648 4 +209 2 19 17 13 86.19911 2 +210 2 20 17 11 86.04531 2 +211 2 21 17 10 84.5629 2 +212 2 22 17 12 99.94216 4 +213 2 23 17 14 96.23103 2 +214 2 24 21 15 88.93269 2 +215 2 25 21 13 86.31011 2 +216 2 26 21 11 95.15344 2 +217 2 27 21 12 97.33813 2 +218 2 28 21 14 103.51014 2 +219 2 29 25 13 85.24535 2 +220 2 30 25 11 86.59662 2 +221 2 31 25 12 85.71022 2 +222 2 32 25 14 97.48512 4 +223 2 33 25 16 98.73508 4 +224 2 34 29 11 82.82922 2 +225 2 35 29 9 95.82452 2 +226 2 36 29 10 84.80693 2 +227 2 37 29 12 99.92665 4 +228 2 38 33 15 88.92457 2 +229 2 39 33 13 106.08738 2 +230 2 40 33 11 86.36196 2 +231 2 41 33 12 87.51051 2 +232 2 42 33 14 95.92861 4 +233 2 43 37 15 89.73832 2 +234 2 44 37 13 84.79685 2 +235 2 45 37 11 84.96845 2 +236 2 46 37 12 85.63887 2 +237 2 47 37 14 100.70737 4 +238 2 48 41 13 98.5833 4 +239 2 49 41 11 85.91917 2 +240 2 50 41 12 85.71569 2 +241 2 51 41 14 88.20455 2 +242 2 52 41 16 94.99793 2 +243 2 53 45 13 87.52067 2 +244 2 54 45 11 87.63237 2 +245 2 55 45 12 84.50625 2 +246 2 56 45 14 85.85941 2 +247 2 57 45 16 87.86102 2 +248 2 58 49 11 96.39614 4 +249 2 59 49 9 84.51285 2 +250 2 60 49 10 83.69945 2 +251 2 61 49 12 84.55071 2 +252 2 62 53 15 92.00688 2 +253 2 63 53 13 87.70695 2 +254 2 64 53 11 86.54238 2 +255 2 65 53 12 86.81108 2 +256 2 66 53 14 84.11251 2 +257 2 67 57 13 97.3471 2 +258 2 68 57 11 91.88028 2 +259 2 69 57 12 88.0505 2 +260 2 70 57 14 87.79273 2 +261 2 71 57 16 88.96945 2 +262 2 72 61 13 95.97306 2 +263 2 73 61 11 104.71605 4 +264 2 74 61 9 83.73394 2 +265 2 75 61 12 87.42696 2 +266 2 76 61 14 85.35704 2 +267 2 77 65 13 109.1091 4 +268 2 78 65 11 96.23209 4 +269 2 79 65 10 90.11919 2 +270 2 80 65 12 85.97719 2 +271 2 81 65 14 87.48179 2 +272 2 82 69 13 102.72379 4 +273 2 83 69 11 88.80784 2 +274 2 84 69 12 96.52037 2 +275 2 85 69 14 86.30004 2 +276 2 86 73 15 87.07101 2 +277 2 87 73 13 88.33044 2 +278 2 88 73 11 85.75483 2 +279 2 89 73 12 87.78704 2 +280 2 90 73 14 101.29946 2 +281 2 91 77 13 94.27834 2 +282 2 92 77 11 93.05094 2 +283 2 93 77 10 97.42186 2 +284 2 94 77 12 101.74909 4 +285 2 95 77 14 107.62621 2 +286 3 0 1 17 100.81721 4 +287 3 1 1 15 91.64457 4 +288 3 2 1 16 83.63172 2 +289 3 3 1 18 93.78882 2 +290 3 4 5 19 83.92405 2 +291 3 5 5 17 79.03287 2 +292 3 6 5 15 74.89935 2 +293 3 7 5 18 78.51017 2 +294 3 8 5 20 81.70307 2 +295 3 9 9 19 77.36913 2 +296 3 10 9 17 77.52532 2 +297 3 11 9 15 82.60841 2 +298 3 12 9 16 79.46948 2 +299 3 13 9 18 91.93054 4 +300 3 14 13 17 77.26623 2 +301 3 15 13 15 86.17664 2 +302 3 16 13 16 82.41497 4 +303 3 17 13 18 84.1319 2 +304 3 18 13 20 90.84764 4 +305 3 19 17 19 79.56071 2 +306 3 20 17 17 78.95095 2 +307 3 21 17 15 79.38515 2 +308 3 22 17 16 79.43812 2 +309 3 23 17 18 102.52575 2 +310 3 24 21 19 81.03287 2 +311 3 25 21 17 76.77547 2 +312 3 26 21 16 78.0984 2 +313 3 27 21 18 92.13639 2 +314 3 28 21 20 89.95288 2 +315 3 29 25 17 75.05791 2 +316 3 30 25 15 76.86467 2 +317 3 31 25 18 78.32966 2 +318 3 32 25 20 79.91967 2 +319 3 33 29 17 86.58954 2 +320 3 34 29 15 78.75693 2 +321 3 35 29 13 76.25522 2 +322 3 36 29 14 77.16251 2 +323 3 37 29 16 88.18578 4 +324 3 38 33 19 81.2431 2 +325 3 39 33 17 79.13125 2 +326 3 40 33 16 75.20126 2 +327 3 41 33 18 76.50382 2 +328 3 42 33 20 79.32666 2 +329 3 43 37 19 82.83024 2 +330 3 44 37 17 76.53086 2 +331 3 45 37 16 74.16666 2 +332 3 46 37 18 77.81596 2 +333 3 47 37 20 92.51387 2 +334 3 48 41 19 91.99918 2 +335 3 49 41 17 78.52145 2 +336 3 50 41 15 73.86563 2 +337 3 51 41 18 77.64359 2 +338 3 52 41 20 82.88862 2 +339 3 53 45 19 81.62519 2 +340 3 54 45 17 77.02704 2 +341 3 55 45 15 74.62342 2 +342 3 56 45 18 77.1763 2 +343 3 57 45 20 78.6745 2 +344 3 58 49 15 80.75111 2 +345 3 59 49 13 76.88773 2 +346 3 60 49 14 75.12708 2 +347 3 61 49 16 74.09087 2 +348 3 62 49 18 76.97201 2 +349 3 63 53 19 79.98037 2 +350 3 64 53 17 78.48728 2 +351 3 65 53 16 76.33818 2 +352 3 66 53 18 75.47654 2 +353 3 67 57 19 92.15833 2 +354 3 68 57 17 88.52383 2 +355 3 69 57 15 77.68976 2 +356 3 70 57 18 76.74228 2 +357 3 71 57 20 82.40409 2 +358 3 72 61 17 99.76131 4 +359 3 73 61 15 79.84279 2 +360 3 74 61 16 80.86971 2 +361 3 75 61 18 78.80216 2 +362 3 76 61 20 77.89915 2 +363 3 77 65 19 94.03604 4 +364 3 78 65 17 89.6793 4 +365 3 79 65 15 79.60282 2 +366 3 80 65 16 79.08428 2 +367 3 81 65 18 77.91985 2 +368 3 82 69 17 95.52861 2 +369 3 83 69 15 78.11985 2 +370 3 84 69 16 79.09104 2 +371 3 85 69 18 75.20152 2 +372 3 86 69 20 75.86181 2 +373 3 87 73 19 81.02827 2 +374 3 88 73 17 83.87218 2 +375 3 89 73 16 74.26956 2 +376 3 90 73 18 80.67511 2 +377 3 91 73 20 101.98216 2 +378 3 92 77 17 94.59656 4 +379 3 93 77 15 94.00544 4 +380 3 94 77 16 95.07227 2 +381 3 95 77 18 98.67649 2 +382 4 0 1 23 97.77299 4 +383 4 1 1 21 93.6127 4 +384 4 2 1 19 89.09154 4 +385 4 3 1 20 82.47589 4 +386 4 4 1 22 74.26641 2 +387 4 5 5 23 73.6666 2 +388 4 6 5 21 75.31009 2 +389 4 7 5 22 75.69313 2 +390 4 8 5 24 69.33499 2 +391 4 9 5 26 75.89516 2 +392 4 10 9 23 66.87415 2 +393 4 11 9 21 69.6111 2 +394 4 12 9 20 68.79601 2 +395 4 13 9 22 75.29248 2 +396 4 14 9 24 87.63847 2 +397 4 15 13 23 69.47309 2 +398 4 16 13 21 69.22024 2 +399 4 17 13 19 67.33859 2 +400 4 18 13 22 73.51657 2 +401 4 19 13 24 87.38486 4 +402 4 20 17 23 100.54925 2 +403 4 21 17 21 68.87163 2 +404 4 22 17 20 69.6591 2 +405 4 23 17 22 86.60697 2 +406 4 24 17 24 94.35975 2 +407 4 25 21 23 68.50342 2 +408 4 26 21 21 72.99984 2 +409 4 27 21 22 69.52424 2 +410 4 28 21 24 90.06931 2 +411 4 29 25 23 80.07316 2 +412 4 30 25 21 67.45722 2 +413 4 31 25 19 68.40493 2 +414 4 32 25 22 67.99827 2 +415 4 33 25 24 70.10505 2 +416 4 34 29 21 70.97856 2 +417 4 35 29 19 66.02701 2 +418 4 36 29 18 63.89331 2 +419 4 37 29 20 65.8645 2 +420 4 38 29 22 81.1888 2 +421 4 39 33 25 72.00819 2 +422 4 40 33 23 68.71498 2 +423 4 41 33 21 71.87669 2 +424 4 42 33 22 67.66554 2 +425 4 43 33 24 70.30806 2 +426 4 44 37 25 72.04011 2 +427 4 45 37 23 68.85395 2 +428 4 46 37 21 71.83936 2 +429 4 47 37 22 67.99673 2 +430 4 48 37 24 76.73263 2 +431 4 49 41 23 70.63491 2 +432 4 50 41 21 68.18393 2 +433 4 51 41 22 67.64696 2 +434 4 52 41 24 70.97663 2 +435 4 53 41 26 81.34062 2 +436 4 54 45 23 72.49947 2 +437 4 55 45 21 73.33348 2 +438 4 56 45 22 70.73793 2 +439 4 57 45 24 70.42008 2 +440 4 58 45 26 71.72905 2 +441 4 59 49 21 69.53696 2 +442 4 60 49 19 69.86509 2 +443 4 61 49 17 65.1132 2 +444 4 62 49 20 65.02749 2 +445 4 63 49 22 67.66892 2 +446 4 64 53 23 79.09379 2 +447 4 65 53 21 67.88067 2 +448 4 66 53 20 68.8656 2 +449 4 67 53 22 67.79565 2 +450 4 68 53 24 79.18305 4 +451 4 69 57 23 81.19302 4 +452 4 70 57 21 69.63077 2 +453 4 71 57 22 72.49828 2 +454 4 72 57 24 68.91508 2 +455 4 73 61 23 86.6481 2 +456 4 74 61 21 82.03569 4 +457 4 75 61 19 67.36366 2 +458 4 76 61 22 75.80858 2 +459 4 77 61 24 69.54761 2 +460 4 78 65 23 87.78785 4 +461 4 79 65 21 89.16424 4 +462 4 80 65 20 74.2486 2 +463 4 81 65 22 78.61365 2 +464 4 82 65 24 68.75298 2 +465 4 83 69 23 83.23147 2 +466 4 84 69 21 69.82753 2 +467 4 85 69 19 67.53379 2 +468 4 86 69 22 66.64932 2 +469 4 87 69 24 67.60815 2 +470 4 88 73 25 71.15112 2 +471 4 89 73 23 97.67366 2 +472 4 90 73 21 77.21358 2 +473 4 91 73 22 69.14747 2 +474 4 92 73 24 80.8669 2 +475 4 93 77 21 84.56966 4 +476 4 94 77 19 87.41192 4 +477 4 95 77 20 83.55573 2 +478 4 96 77 22 97.70467 4 +479 4 97 77 24 99.79749 2 +480 5 0 1 27 85.12114 2 +481 5 1 1 25 83.00263 2 +482 5 2 1 24 77.96341 2 +483 5 3 1 26 75.81029 2 +484 5 4 1 28 66.43437 2 +485 5 5 5 27 69.71727 2 +486 5 6 5 25 67.22738 2 +487 5 7 5 28 71.14799 2 +488 5 8 5 30 65.54971 4 +489 5 9 5 32 66.81837 2 +490 5 10 9 27 57.69026 2 +491 5 11 9 25 58.09529 2 +492 5 12 9 26 60.75537 2 +493 5 13 9 28 63.80872 2 +494 5 14 9 30 78.08792 2 +495 5 15 13 27 60.18935 2 +496 5 16 13 25 59.36993 2 +497 5 17 13 26 69.18952 2 +498 5 18 13 28 69.75182 4 +499 5 19 13 30 106.01528 4 +500 5 20 17 27 91.20873 2 +501 5 21 17 25 60.41025 2 +502 5 22 17 26 61.80665 2 +503 5 23 17 28 73.97677 2 +504 5 24 21 29 60.65798 2 +505 5 25 21 27 59.68682 2 +506 5 26 21 25 59.79157 2 +507 5 27 21 26 59.36892 2 +508 5 28 21 28 70.3308 2 +509 5 29 25 27 63.51046 2 +510 5 30 25 25 59.51616 2 +511 5 31 25 26 73.02375 2 +512 5 32 25 28 59.1793 2 +513 5 33 25 30 67.0836 2 +514 5 34 29 27 61.06317 2 +515 5 35 29 25 61.77697 2 +516 5 36 29 23 62.74774 2 +517 5 37 29 24 58.84058 2 +518 5 38 29 26 70.48546 4 +519 5 39 33 29 61.40398 2 +520 5 40 33 27 60.63495 2 +521 5 41 33 26 58.25841 2 +522 5 42 33 28 60.085 2 +523 5 43 33 30 61.88161 2 +524 5 44 37 29 61.5376 2 +525 5 45 37 27 57.74158 2 +526 5 46 37 26 57.14774 2 +527 5 47 37 28 58.99625 2 +528 5 48 37 30 76.38163 2 +529 5 49 41 29 73.29867 2 +530 5 50 41 27 59.22822 2 +531 5 51 41 25 56.19207 2 +532 5 52 41 28 60.09709 2 +533 5 53 41 30 73.07449 2 +534 5 54 45 29 65.77397 2 +535 5 55 45 27 61.88415 2 +536 5 56 45 25 65.66899 2 +537 5 57 45 28 61.76981 2 +538 5 58 45 30 69.40698 2 +539 5 59 49 25 67.97399 2 +540 5 60 49 23 64.16167 2 +541 5 61 49 24 59.2749 2 +542 5 62 49 26 60.17414 2 +543 5 63 49 28 67.60292 2 +544 5 64 53 29 67.6914 2 +545 5 65 53 27 61.50637 2 +546 5 66 53 25 58.60668 2 +547 5 67 53 26 59.64907 2 +548 5 68 53 28 60.85243 2 +549 5 69 57 27 69.79246 2 +550 5 70 57 25 58.57243 2 +551 5 71 57 26 59.17623 2 +552 5 72 57 28 60.19214 2 +553 5 73 57 30 61.59599 2 +554 5 74 61 27 71.37118 2 +555 5 75 61 25 58.97437 2 +556 5 76 61 26 59.88956 2 +557 5 77 61 28 59.23613 2 +558 5 78 65 29 83.01912 2 +559 5 79 65 27 74.04583 2 +560 5 80 65 25 57.82915 2 +561 5 81 65 26 64.61791 2 +562 5 82 65 28 59.39028 2 +563 5 83 69 29 74.44204 2 +564 5 84 69 27 63.14186 2 +565 5 85 69 25 60.08879 2 +566 5 86 69 26 59.5538 2 +567 5 87 69 28 60.39653 2 +568 5 88 73 31 71.66345 2 +569 5 89 73 29 73.10667 2 +570 5 90 73 27 73.65982 2 +571 5 91 73 26 68.11625 2 +572 5 92 73 28 71.85668 2 +573 5 93 77 27 75.559 4 +574 5 94 77 25 77.60725 2 +575 5 95 77 23 77.56368 2 +576 5 96 77 26 83.52558 2 +577 5 97 77 28 86.66329 2 +578 6 0 1 31 77.44475 2 +579 6 1 1 29 74.14385 2 +580 6 2 1 30 75.64538 4 +581 6 3 1 32 65.24294 2 +582 6 4 5 33 68.70858 2 +583 6 5 5 31 65.82969 2 +584 6 6 5 29 56.93262 2 +585 6 7 5 34 52.11882 2 +586 6 8 5 36 58.88494 2 +587 6 9 9 33 63.74042 2 +588 6 10 9 31 49.88006 2 +589 6 11 9 29 48.99193 2 +590 6 12 9 32 52.32019 2 +591 6 13 9 34 63.55829 2 +592 6 14 13 33 49.90491 2 +593 6 15 13 31 50.48265 2 +594 6 16 13 29 60.72326 2 +595 6 17 13 32 52.55388 2 +596 6 18 13 34 64.18324 4 +597 6 19 17 31 49.58294 2 +598 6 20 17 29 67.12594 2 +599 6 21 17 30 51.21326 2 +600 6 22 17 32 52.54312 2 +601 6 23 17 34 59.20087 2 +602 6 24 21 33 52.00757 2 +603 6 25 21 31 51.53299 2 +604 6 26 21 30 47.8853 2 +605 6 27 21 32 58.33881 2 +606 6 28 21 34 63.2825 2 +607 6 29 25 33 59.59852 2 +608 6 30 25 31 60.89902 2 +609 6 31 25 29 65.24595 2 +610 6 32 25 32 49.45681 2 +611 6 33 25 34 64.94772 2 +612 6 34 29 31 50.67803 2 +613 6 35 29 29 48.5133 2 +614 6 36 29 28 46.04727 2 +615 6 37 29 30 58.33319 2 +616 6 38 29 32 61.02669 2 +617 6 39 33 35 52.39715 2 +618 6 40 33 33 55.25828 2 +619 6 41 33 31 56.77429 2 +620 6 42 33 32 51.79857 2 +621 6 43 33 34 62.34971 2 +622 6 44 37 35 54.46507 2 +623 6 45 37 33 52.4251 2 +624 6 46 37 31 60.02253 2 +625 6 47 37 32 48.50757 2 +626 6 48 37 34 63.73385 2 +627 6 49 41 33 64.33881 2 +628 6 50 41 31 49.38599 2 +629 6 51 41 32 62.98492 2 +630 6 52 41 34 64.04146 2 +631 6 53 41 36 56.71553 2 +632 6 54 45 33 59.91197 2 +633 6 55 45 31 51.47565 2 +634 6 56 45 32 50.59599 2 +635 6 57 45 34 50.42926 2 +636 6 58 45 36 52.61644 2 +637 6 59 49 31 61.06827 2 +638 6 60 49 29 51.57032 2 +639 6 61 49 27 45.5825 2 +640 6 62 49 30 47.47734 2 +641 6 63 49 32 57.28914 2 +642 6 64 53 33 67.76418 2 +643 6 65 53 31 50.11811 2 +644 6 66 53 30 48.03099 2 +645 6 67 53 32 51.04869 2 +646 6 68 53 34 61.2306 2 +647 6 69 57 33 63.31874 2 +648 6 70 57 31 58.88315 2 +649 6 71 57 29 47.05049 2 +650 6 72 57 32 51.88947 2 +651 6 73 57 34 52.43743 2 +652 6 74 61 33 76.12505 2 +653 6 75 61 31 50.35386 2 +654 6 76 61 29 48.67537 2 +655 6 77 61 30 46.81487 2 +656 6 78 61 32 71.06534 2 +657 6 79 65 33 66.58588 2 +658 6 80 65 31 53.04103 2 +659 6 81 65 30 59.14765 2 +660 6 82 65 32 50.03027 2 +661 6 83 65 34 50.42982 2 +662 6 84 69 33 65.66964 2 +663 6 85 69 31 51.65206 2 +664 6 86 69 30 74.15926 2 +665 6 87 69 32 49.92469 2 +666 6 88 69 34 50.00777 2 +667 6 89 73 35 61.09634 2 +668 6 90 73 33 53.08572 2 +669 6 91 73 30 83.78844 2 +670 6 92 73 32 61.27929 2 +671 6 93 73 34 84.10289 2 +672 6 94 77 31 66.2751 4 +673 6 95 77 29 75.14916 4 +674 6 96 77 30 68.63365 2 +675 6 97 77 32 74.93088 2 +676 7 0 1 35 74.7001 2 +677 7 1 1 33 74.38872 2 +678 7 2 1 34 70.01065 2 +679 7 3 1 36 61.35144 2 +680 7 4 1 38 56.98388 2 +681 7 5 5 39 58.88982 2 +682 7 6 5 37 49.38547 2 +683 7 7 5 35 52.8636 2 +684 7 8 5 38 47.50537 2 +685 7 9 5 40 50.47021 2 +686 7 10 9 37 50.11928 2 +687 7 11 9 35 41.91652 2 +688 7 12 9 36 48.5868 2 +689 7 13 9 38 47.3758 2 +690 7 14 9 40 47.69813 2 +691 7 15 13 37 40.91606 2 +692 7 16 13 35 47.78672 2 +693 7 17 13 36 43.98248 2 +694 7 18 13 38 50.85409 2 +695 7 19 13 40 52.75415 2 +696 7 20 17 35 40.00309 2 +697 7 21 17 33 37.44288 2 +698 7 22 17 36 43.81418 2 +699 7 23 17 38 43.41723 2 +700 7 24 17 40 55.03812 2 +701 7 25 21 37 45.02303 2 +702 7 26 21 35 42.73001 2 +703 7 27 21 36 39.38395 2 +704 7 28 21 38 56.82162 2 +705 7 29 21 40 47.09601 2 +706 7 30 25 37 42.44365 2 +707 7 31 25 35 82.87958 2 +708 7 32 25 36 48.12773 2 +709 7 33 25 38 45.39279 2 +710 7 34 25 40 44.50106 2 +711 7 35 29 35 47.61304 2 +712 7 36 29 33 38.35074 2 +713 7 37 29 34 38.78912 2 +714 7 38 29 36 52.77885 2 +715 7 39 29 38 46.71646 2 +716 7 40 33 39 44.27319 2 +717 7 41 33 37 46.85275 2 +718 7 42 33 36 39.51969 2 +719 7 43 33 38 45.83995 2 +720 7 44 33 40 43.85979 2 +721 7 45 37 39 42.79904 2 +722 7 46 37 37 40.69975 2 +723 7 47 37 36 40.62779 2 +724 7 48 37 38 57.71895 2 +725 7 49 37 40 62.38449 2 +726 7 50 41 39 44.01014 2 +727 7 51 41 37 40.19442 2 +728 7 52 41 35 41.79494 2 +729 7 53 41 38 42.33244 2 +730 7 54 41 40 42.8009 2 +731 7 55 45 39 44.60743 2 +732 7 56 45 37 47.51966 2 +733 7 57 45 35 43.45105 2 +734 7 58 45 38 41.33985 2 +735 7 59 45 40 42.61044 2 +736 7 60 49 37 53.93612 4 +737 7 61 49 35 45.7554 2 +738 7 62 49 33 38.76481 2 +739 7 63 49 34 39.61389 2 +740 7 64 49 36 48.26929 2 +741 7 65 53 39 43.99487 2 +742 7 66 53 37 44.97494 2 +743 7 67 53 35 43.07547 2 +744 7 68 53 36 69.35099 2 +745 7 69 53 38 42.36831 2 +746 7 70 57 39 47.06554 2 +747 7 71 57 37 46.30766 2 +748 7 72 57 35 38.55317 2 +749 7 73 57 36 43.33093 2 +750 7 74 57 38 45.23146 2 +751 7 75 61 39 52.03708 2 +752 7 76 61 37 42.48883 2 +753 7 77 61 35 40.54184 2 +754 7 78 61 34 36.73158 2 +755 7 79 61 36 39.80916 2 +756 7 80 65 39 55.91549 2 +757 7 81 65 37 52.24227 2 +758 7 82 65 35 43.30066 2 +759 7 83 65 36 52.2825 2 +760 7 84 65 38 42.08791 2 +761 7 85 69 39 46.51924 2 +762 7 86 69 37 44.45609 2 +763 7 87 69 35 55.46396 2 +764 7 88 69 36 41.64378 2 +765 7 89 69 38 49.72133 2 +766 7 90 73 39 46.15289 2 +767 7 91 73 37 56.8651 2 +768 7 92 73 36 47.06197 2 +769 7 93 73 38 50.99182 2 +770 7 94 73 40 64.82685 2 +771 7 95 77 37 56.78013 2 +772 7 96 77 35 59.41328 2 +773 7 97 77 33 77.69433 2 +774 7 98 77 34 72.10862 2 +775 7 99 77 36 71.90254 2 +776 8 0 1 39 88.85342 2 +777 8 1 1 37 87.18767 2 +778 8 2 1 40 55.62474 2 +779 8 3 2 2 77.20024 2 +780 8 4 2 4 64.41358 2 +781 8 5 6 5 77.38234 2 +782 8 6 6 3 67.13866 2 +783 8 7 6 1 60.00996 2 +784 8 8 6 2 61.13547 2 +785 8 9 6 4 65.91215 2 +786 8 10 9 39 32.21898 2 +787 8 11 10 3 59.11379 2 +788 8 12 10 1 62.54837 2 +789 8 13 10 2 63.28762 2 +790 8 14 10 4 80.10418 2 +791 8 15 13 39 30.81015 2 +792 8 16 14 3 66.3756 2 +793 8 17 14 1 67.56865 2 +794 8 18 14 2 61.82785 2 +795 8 19 14 4 75.4778 4 +796 8 20 17 39 30.21497 2 +797 8 21 17 37 31.91777 2 +798 8 22 18 1 68.38929 2 +799 8 23 18 2 61.5113 2 +800 8 24 18 4 74.58479 4 +801 8 25 21 39 33.89474 2 +802 8 26 22 3 60.59526 2 +803 8 27 22 1 65.79086 2 +804 8 28 22 2 60.79658 2 +805 8 29 22 4 74.06003 4 +806 8 30 25 39 32.69389 2 +807 8 31 26 3 64.95631 2 +808 8 32 26 1 62.76411 2 +809 8 33 26 2 58.81764 2 +810 8 34 26 4 64.04378 2 +811 8 35 29 39 35.05883 2 +812 8 36 29 37 29.71394 2 +813 8 37 29 40 35.00024 2 +814 8 38 30 2 57.61808 2 +815 8 39 30 4 62.4489 2 +816 8 40 34 5 59.74453 2 +817 8 41 34 3 63.5827 2 +818 8 42 34 1 64.63923 2 +819 8 43 34 2 67.58253 2 +820 8 44 34 4 59.75334 2 +821 8 45 38 5 61.76854 2 +822 8 46 38 3 61.64801 2 +823 8 47 38 1 63.28882 2 +824 8 48 38 2 58.90395 2 +825 8 49 38 4 59.4706 2 +826 8 50 42 3 70.61269 4 +827 8 51 42 1 57.88971 2 +828 8 52 42 2 69.65421 2 +829 8 53 42 4 62.75327 2 +830 8 54 42 6 62.31779 2 +831 8 55 46 3 60.33841 2 +832 8 56 46 1 61.10418 2 +833 8 57 46 2 58.33612 2 +834 8 58 46 4 61.26851 2 +835 8 59 46 6 60.57475 2 +836 8 60 50 3 65.16745 2 +837 8 61 50 1 60.75017 2 +838 8 62 49 39 39.532 2 +839 8 63 49 38 30.97301 2 +840 8 64 49 40 35.34514 2 +841 8 65 54 3 61.01463 2 +842 8 66 54 1 59.87884 2 +843 8 67 54 2 64.83928 2 +844 8 68 54 4 60.91228 2 +845 8 69 53 40 32.37712 2 +846 8 70 58 3 64.55209 2 +847 8 71 58 1 61.36179 2 +848 8 72 58 2 65.57539 2 +849 8 73 58 4 67.04429 2 +850 8 74 57 40 47.77197 2 +851 8 75 62 3 68.89739 2 +852 8 76 62 1 59.77738 2 +853 8 77 62 2 66.92808 2 +854 8 78 61 38 30.36934 2 +855 8 79 61 40 30.46788 2 +856 8 80 66 3 80.90325 4 +857 8 81 66 1 63.30607 2 +858 8 82 66 2 66.21933 2 +859 8 83 66 4 59.19481 2 +860 8 84 65 40 31.79098 2 +861 8 85 70 3 74.58914 4 +862 8 86 70 1 62.72119 2 +863 8 87 70 2 61.42096 2 +864 8 88 70 4 58.47921 2 +865 8 89 69 40 36.187 2 +866 8 90 74 3 65.95431 2 +867 8 91 74 1 63.7774 2 +868 8 92 74 2 59.12481 2 +869 8 93 74 4 69.25847 2 +870 8 94 74 6 66.07517 2 +871 8 95 78 3 62.12396 2 +872 8 96 78 1 78.96692 4 +873 8 97 77 39 53.6394 2 +874 8 98 77 38 62.1401 2 +875 8 99 77 40 59.02807 2 +876 9 0 2 5 82.01815 4 +877 9 1 2 3 77.39208 4 +878 9 2 2 1 65.82524 4 +879 9 3 2 6 74.07846 2 +880 9 4 2 8 67.01856 4 +881 9 5 2 10 55.66842 2 +882 9 6 6 9 67.35333 2 +883 9 7 6 7 55.8141 2 +884 9 8 6 6 50.43262 2 +885 9 9 6 8 50.59501 2 +886 9 10 6 10 55.97099 2 +887 9 11 10 9 51.72475 2 +888 9 12 10 7 50.04067 2 +889 9 13 10 5 51.04829 2 +890 9 14 10 6 76.26343 2 +891 9 15 10 8 54.80881 2 +892 9 16 14 9 48.43467 2 +893 9 17 14 7 50.29788 2 +894 9 18 14 5 57.93003 2 +895 9 19 14 6 51.42807 2 +896 9 20 14 8 62.4638 2 +897 9 21 18 7 50.36645 2 +898 9 22 18 5 57.26195 2 +899 9 23 18 3 54.47374 2 +900 9 24 18 6 52.88598 2 +901 9 25 18 8 66.33825 2 +902 9 26 22 9 53.03962 2 +903 9 27 22 7 50.09118 2 +904 9 28 22 5 98.92548 2 +905 9 29 22 6 50.83703 2 +906 9 30 22 8 63.61735 4 +907 9 31 26 9 49.91984 2 +908 9 32 26 7 53.66878 2 +909 9 33 26 5 49.03784 2 +910 9 34 26 6 48.7716 2 +911 9 35 26 8 55.72253 2 +912 9 36 30 5 49.91743 2 +913 9 37 30 3 45.65683 2 +914 9 38 30 1 46.21015 2 +915 9 39 30 6 45.96104 2 +916 9 40 30 8 53.17332 2 +917 9 41 34 9 57.39022 2 +918 9 42 34 7 51.67285 2 +919 9 43 34 6 49.94667 2 +920 9 44 34 8 47.46744 2 +921 9 45 34 10 62.9195 2 +922 9 46 38 9 52.05097 2 +923 9 47 38 7 50.60769 2 +924 9 48 38 6 47.89013 2 +925 9 49 38 8 75.71595 2 +926 9 50 38 10 52.86257 2 +927 9 51 42 9 52.71097 2 +928 9 52 42 7 49.40394 2 +929 9 53 42 5 48.10015 2 +930 9 54 42 8 50.82968 2 +931 9 55 42 10 53.05034 2 +932 9 56 46 9 50.87265 2 +933 9 57 46 7 47.90526 2 +934 9 58 46 5 46.68738 2 +935 9 59 46 8 51.90143 2 +936 9 60 46 10 51.64987 2 +937 9 61 50 7 55.10299 2 +938 9 62 50 5 47.22825 2 +939 9 63 50 2 46.34822 2 +940 9 64 50 4 46.42604 2 +941 9 65 50 6 49.53148 2 +942 9 66 54 7 62.0564 4 +943 9 67 54 5 49.19213 2 +944 9 68 54 6 49.27797 2 +945 9 69 54 8 55.29778 2 +946 9 70 54 10 49.76286 2 +947 9 71 58 7 56.55005 2 +948 9 72 58 5 65.96333 2 +949 9 73 58 6 49.1464 2 +950 9 74 58 8 48.5772 2 +951 9 75 58 10 46.69989 2 +952 9 76 62 7 66.05102 4 +953 9 77 62 5 50.97314 2 +954 9 78 62 4 50.61986 2 +955 9 79 62 6 52.93483 2 +956 9 80 62 8 50.13676 2 +957 9 81 66 7 53.54229 2 +958 9 82 66 5 48.46041 2 +959 9 83 66 6 57.13812 2 +960 9 84 66 8 53.96942 2 +961 9 85 66 10 48.42541 2 +962 9 86 70 7 64.67517 4 +963 9 87 70 5 59.45769 2 +964 9 88 70 6 62.93964 2 +965 9 89 70 8 50.2287 2 +966 9 90 70 10 51.61209 2 +967 9 91 74 9 51.88138 2 +968 9 92 74 7 52.28336 2 +969 9 93 74 5 55.60585 2 +970 9 94 74 8 60.40624 2 +971 9 95 74 10 54.67453 2 +972 9 96 78 9 55.65763 2 +973 9 97 78 7 67.20951 4 +974 9 98 78 5 65.40751 2 +975 9 99 78 2 65.99695 4 +976 9 100 78 4 77.42901 4 +977 9 101 78 6 82.33808 4 +978 10 0 2 11 71.45897 2 +979 10 1 2 9 66.28117 2 +980 10 2 2 7 61.0952 2 +981 10 3 2 12 56.03781 2 +982 10 4 2 14 53.61914 2 +983 10 5 6 15 61.2822 2 +984 10 6 6 13 48.44789 2 +985 10 7 6 11 47.35123 2 +986 10 8 6 12 51.88028 2 +987 10 9 6 14 42.24783 2 +988 10 10 10 15 41.808 2 +989 10 11 10 13 42.1353 2 +990 10 12 10 11 42.19117 2 +991 10 13 10 10 64.88936 2 +992 10 14 10 12 53.01245 2 +993 10 15 14 15 49.56072 2 +994 10 16 14 13 41.22403 2 +995 10 17 14 11 40.79941 2 +996 10 18 14 10 39.97688 2 +997 10 19 14 12 41.90424 2 +998 10 20 18 13 41.92945 2 +999 10 21 18 11 39.67002 2 +1000 10 22 18 9 39.3245 2 +1001 10 23 18 10 38.98119 2 +1002 10 24 18 12 43.16524 2 +1003 10 25 18 14 53.61589 2 +1004 10 26 22 13 43.55568 2 +1005 10 27 22 11 40.84312 2 +1006 10 28 22 10 39.11898 2 +1007 10 29 22 12 47.69392 2 +1008 10 30 22 14 52.43886 2 +1009 10 31 26 13 40.97282 2 +1010 10 32 26 11 39.22803 2 +1011 10 33 26 10 92.36153 2 +1012 10 34 26 12 43.31084 2 +1013 10 35 26 14 47.52533 2 +1014 10 36 30 11 47.90288 2 +1015 10 37 30 9 37.43989 2 +1016 10 38 30 7 39.16884 2 +1017 10 39 30 10 37.90363 2 +1018 10 40 30 12 42.7903 2 +1019 10 41 34 15 42.22233 2 +1020 10 42 34 13 41.00021 2 +1021 10 43 34 11 43.37499 2 +1022 10 44 34 12 38.91571 2 +1023 10 45 34 14 42.20199 2 +1024 10 46 38 15 43.62112 2 +1025 10 47 38 13 41.00297 2 +1026 10 48 38 11 37.51556 2 +1027 10 49 38 12 39.92106 2 +1028 10 50 38 14 47.35323 2 +1029 10 51 42 13 49.51152 2 +1030 10 52 42 11 39.65262 2 +1031 10 53 42 12 41.66875 2 +1032 10 54 42 14 41.33955 2 +1033 10 55 42 16 43.95249 2 +1034 10 56 46 13 42.94693 2 +1035 10 57 46 11 42.81402 2 +1036 10 58 46 12 40.26222 2 +1037 10 59 46 14 44.10067 2 +1038 10 60 46 16 42.22132 2 +1039 10 61 50 11 42.7997 2 +1040 10 62 50 9 38.79531 2 +1041 10 63 50 8 37.2416 2 +1042 10 64 50 10 38.19831 2 +1043 10 65 50 12 47.90385 2 +1044 10 66 54 13 53.47406 4 +1045 10 67 54 11 41.29354 2 +1046 10 68 54 9 38.52856 2 +1047 10 69 54 12 39.13581 2 +1048 10 70 54 14 40.96476 2 +1049 10 71 58 13 49.26638 2 +1050 10 72 58 11 42.24757 2 +1051 10 73 58 9 39.15259 2 +1052 10 74 58 12 40.18189 2 +1053 10 75 58 14 47.08354 2 +1054 10 76 62 13 58.34761 2 +1055 10 77 62 11 42.9117 2 +1056 10 78 62 9 39.41633 2 +1057 10 79 62 10 44.17845 2 +1058 10 80 62 12 39.50184 2 +1059 10 81 62 14 41.97516 2 +1060 10 82 66 11 41.71854 2 +1061 10 83 66 9 41.59794 2 +1062 10 84 66 12 44.81185 2 +1063 10 85 66 14 41.74413 2 +1064 10 86 66 16 42.97532 2 +1065 10 87 70 11 50.95381 2 +1066 10 88 70 9 38.31303 2 +1067 10 89 70 12 38.84713 2 +1068 10 90 70 14 39.81164 2 +1069 10 91 70 16 42.31937 2 +1070 10 92 74 13 44.86839 2 +1071 10 93 74 11 45.68065 2 +1072 10 94 74 12 50.66814 2 +1073 10 95 74 14 44.19003 2 +1074 10 96 74 16 67.73718 2 +1075 10 97 78 13 53.78565 2 +1076 10 98 78 11 57.50069 2 +1077 10 99 78 8 60.03724 2 +1078 10 100 78 10 63.81371 2 +1079 10 101 78 12 73.33538 2 +1080 11 0 2 17 59.18689 2 +1081 11 1 2 15 57.72749 2 +1082 11 2 2 13 46.79647 2 +1083 11 3 2 16 53.02401 4 +1084 11 4 2 18 50.13977 2 +1085 11 5 6 21 47.44255 2 +1086 11 6 6 19 40.73806 2 +1087 11 7 6 17 38.82832 2 +1088 11 8 6 16 38.23739 2 +1089 11 9 6 18 33.64565 2 +1090 11 10 10 19 36.70008 2 +1091 11 11 10 17 30.7799 2 +1092 11 12 10 14 31.63206 2 +1093 11 13 10 16 30.80084 2 +1094 11 14 10 18 43.88615 2 +1095 11 15 14 21 40.66375 2 +1096 11 16 14 19 31.58088 2 +1097 11 17 14 17 35.20669 2 +1098 11 18 14 14 34.17166 2 +1099 11 19 14 16 32.29562 2 +1100 11 20 18 19 33.65923 2 +1101 11 21 18 17 32.59305 2 +1102 11 22 18 15 30.96791 2 +1103 11 23 18 16 31.13538 2 +1104 11 24 18 18 37.7683 2 +1105 11 25 22 19 32.23567 2 +1106 11 26 22 17 33.554 2 +1107 11 27 22 15 29.25318 2 +1108 11 28 22 16 30.82136 2 +1109 11 29 22 18 33.9205 2 +1110 11 30 22 20 40.33835 2 +1111 11 31 26 19 40.32168 2 +1112 11 32 26 17 29.87821 2 +1113 11 33 26 15 36.4357 2 +1114 11 34 26 16 31.54265 2 +1115 11 35 26 18 40.2888 2 +1116 11 36 30 17 38.50679 2 +1117 11 37 30 15 28.62934 2 +1118 11 38 30 13 31.52819 2 +1119 11 39 30 14 29.4759 2 +1120 11 40 30 16 33.02412 2 +1121 11 41 34 19 32.47524 2 +1122 11 42 34 17 33.89562 2 +1123 11 43 34 16 35.60847 2 +1124 11 44 34 18 31.68962 2 +1125 11 45 34 20 34.48739 2 +1126 11 46 38 19 45.18811 2 +1127 11 47 38 17 30.97569 2 +1128 11 48 38 16 29.58466 2 +1129 11 49 38 18 34.27534 2 +1130 11 50 38 20 35.20957 2 +1131 11 51 42 19 35.05796 2 +1132 11 52 42 17 34.12374 2 +1133 11 53 42 15 29.01915 2 +1134 11 54 42 18 30.97569 2 +1135 11 55 42 20 37.59095 2 +1136 11 56 46 19 34.49125 2 +1137 11 57 46 17 30.84148 2 +1138 11 58 46 15 32.67703 2 +1139 11 59 46 18 33.91244 2 +1140 11 60 46 20 38.8493 2 +1141 11 61 50 15 33.02509 2 +1142 11 62 50 13 29.47493 2 +1143 11 63 50 14 31.19774 2 +1144 11 64 50 16 28.86961 2 +1145 11 65 50 18 38.50744 2 +1146 11 66 54 17 42.3665 2 +1147 11 67 54 15 31.71645 2 +1148 11 68 54 16 36.91201 2 +1149 11 69 54 18 30.12861 2 +1150 11 70 54 20 40.32262 2 +1151 11 71 58 19 45.12152 2 +1152 11 72 58 17 43.44675 2 +1153 11 73 58 15 31.54637 2 +1154 11 74 58 16 31.32064 2 +1155 11 75 58 18 35.39582 2 +1156 11 76 58 20 40.85842 2 +1157 11 77 62 17 45.78919 2 +1158 11 78 62 15 32.22014 2 +1159 11 79 62 16 34.25148 2 +1160 11 80 62 18 29.94963 2 +1161 11 81 62 20 34.17592 2 +1162 11 82 66 15 32.29672 2 +1163 11 83 66 13 33.66247 2 +1164 11 84 66 18 33.56884 2 +1165 11 85 66 20 30.62549 2 +1166 11 86 66 22 37.025 2 +1167 11 87 70 17 46.41215 2 +1168 11 88 70 15 30.55151 2 +1169 11 89 70 13 30.52889 2 +1170 11 90 70 18 30.01828 2 +1171 11 91 70 20 60.46429 2 +1172 11 92 74 17 54.25616 2 +1173 11 93 74 15 37.96459 2 +1174 11 94 74 18 41.10753 2 +1175 11 95 74 20 37.42814 2 +1176 11 96 74 22 52.20825 4 +1177 11 97 78 17 49.85137 4 +1178 11 98 78 15 49.24729 2 +1179 11 99 78 14 47.39569 2 +1180 11 100 78 16 58.27156 2 +1181 11 101 78 18 63.0747 2 +1182 12 0 2 23 56.63489 2 +1183 12 1 2 21 55.72546 2 +1184 12 2 2 19 43.30776 2 +1185 12 3 2 20 42.49575 2 +1186 12 4 2 22 58.12851 4 +1187 12 5 2 24 33.99621 2 +1188 12 6 6 25 43.92684 4 +1189 12 7 6 23 32.09629 2 +1190 12 8 6 20 33.76969 2 +1191 12 9 6 22 25.35508 2 +1192 12 10 6 24 23.96666 2 +1193 12 11 10 23 29.47072 2 +1194 12 12 10 21 21.48269 2 +1195 12 13 10 20 24.93449 2 +1196 12 14 10 22 21.37558 2 +1197 12 15 10 24 37.36785 2 +1198 12 16 14 25 33.99576 2 +1199 12 17 14 23 22.05629 2 +1200 12 18 14 18 23.28811 2 +1201 12 19 14 20 21.34874 2 +1202 12 20 14 22 31.14144 2 +1203 12 21 18 23 28.40013 2 +1204 12 22 18 21 21.8016 2 +1205 12 23 18 20 30.94924 2 +1206 12 24 18 22 23.38898 2 +1207 12 25 18 24 26.49628 2 +1208 12 26 22 23 34.64557 2 +1209 12 27 22 21 22.70592 2 +1210 12 28 22 22 23.81919 2 +1211 12 29 22 24 26.20804 2 +1212 12 30 22 26 26.2012 2 +1213 12 31 26 25 30.40296 2 +1214 12 32 26 23 27.05038 2 +1215 12 33 26 21 21.15796 2 +1216 12 34 26 20 20.71892 2 +1217 12 35 26 22 37.1245 2 +1218 12 36 26 24 33.64289 2 +1219 12 37 30 21 23.80223 2 +1220 12 38 30 19 20.19112 2 +1221 12 39 30 18 19.83494 2 +1222 12 40 30 20 20.4717 2 +1223 12 41 30 22 27.61432 2 +1224 12 42 34 25 23.73513 2 +1225 12 43 34 23 28.19328 2 +1226 12 44 34 21 29.73608 2 +1227 12 45 34 22 22.15691 2 +1228 12 46 34 24 29.15772 2 +1229 12 47 38 25 35.91001 2 +1230 12 48 38 23 26.44956 2 +1231 12 49 38 21 69.47666 2 +1232 12 50 38 22 22.26966 2 +1233 12 51 38 24 31.92767 2 +1234 12 52 42 23 31.92767 2 +1235 12 53 42 21 22.26966 2 +1236 12 54 42 22 24.94385 2 +1237 12 55 42 24 25.94505 2 +1238 12 56 42 26 35.91001 2 +1239 12 57 46 23 32.63132 2 +1240 12 58 46 21 31.3264 2 +1241 12 59 46 22 26.29923 2 +1242 12 60 46 24 23.15257 2 +1243 12 61 46 26 34.88283 2 +1244 12 62 50 21 25.41753 2 +1245 12 63 50 19 20.30766 2 +1246 12 64 50 17 19.83402 2 +1247 12 65 50 20 20.19208 2 +1248 12 66 50 22 22.42008 2 +1249 12 67 54 23 33.56189 2 +1250 12 68 54 21 31.76457 2 +1251 12 69 54 19 30.20296 2 +1252 12 70 54 22 21.17276 2 +1253 12 71 54 24 27.05132 2 +1254 12 72 54 26 30.4039 2 +1255 12 73 58 25 26.54181 2 +1256 12 74 58 23 24.0502 2 +1257 12 75 58 21 22.48136 2 +1258 12 76 58 22 21.2322 2 +1259 12 77 58 24 35.18006 2 +1260 12 78 62 23 26.49719 2 +1261 12 79 62 21 21.96556 2 +1262 12 80 62 19 21.96426 2 +1263 12 81 62 22 21.7617 2 +1264 12 82 62 24 26.94441 2 +1265 12 83 66 21 29.62788 2 +1266 12 84 66 19 21.41979 2 +1267 12 85 66 17 18.90853 2 +1268 12 86 66 24 22.72784 2 +1269 12 87 66 26 30.79536 2 +1270 12 88 70 23 27.26174 2 +1271 12 89 70 21 21.85889 2 +1272 12 90 70 19 29.58792 2 +1273 12 91 70 22 21.88177 2 +1274 12 92 70 24 29.47591 2 +1275 12 93 74 23 25.58265 2 +1276 12 94 74 21 28.53474 2 +1277 12 95 74 19 33.84728 2 +1278 12 96 74 24 40.31695 2 +1279 12 97 74 26 38.19332 2 +1280 12 98 78 23 35.64344 2 +1281 12 99 78 21 45.13001 2 +1282 12 100 78 19 42.91557 2 +1283 12 101 78 20 46.05627 2 +1284 12 102 78 22 57.36126 2 +1285 12 103 78 24 56.03812 2 +1286 13 0 2 29 55.93358 2 +1287 13 1 2 27 44.81681 2 +1288 13 2 2 25 40.70385 2 +1289 13 3 2 26 36.83227 2 +1290 13 4 2 28 30.15898 2 +1291 13 5 6 29 37.42968 2 +1292 13 6 6 27 25.78405 2 +1293 13 7 6 26 32.00864 2 +1294 13 8 6 28 20.81757 2 +1295 13 9 6 30 19.14377 2 +1296 13 10 10 29 27.21433 2 +1297 13 11 10 27 13.12298 2 +1298 13 12 10 25 13.04837 2 +1299 13 13 10 26 11.7861 2 +1300 13 14 10 28 16.95727 2 +1301 13 15 10 30 22.08624 2 +1302 13 16 14 29 18.44356 2 +1303 13 17 14 27 13.92207 2 +1304 13 18 14 24 10.3925 2 +1305 13 19 14 26 13.45142 2 +1306 13 20 14 28 25.18154 2 +1307 13 21 18 29 19.81143 2 +1308 13 22 18 27 16.64008 2 +1309 13 23 18 25 17.02002 2 +1310 13 24 18 26 13.21566 2 +1311 13 25 18 28 17.372 2 +1312 13 26 22 29 20.27052 2 +1313 13 27 22 27 13.94814 2 +1314 13 28 22 25 12.11566 2 +1315 13 29 22 28 13.95059 2 +1316 13 30 22 30 16.22268 2 +1317 13 31 26 29 19.34161 2 +1318 13 32 26 27 13.29539 2 +1319 13 33 26 26 12.61772 2 +1320 13 34 26 28 16.28656 2 +1321 13 35 26 30 17.54393 2 +1322 13 36 30 27 18.19026 2 +1323 13 37 30 25 15.96813 2 +1324 13 38 30 23 12.00285 2 +1325 13 39 30 24 10.4268 2 +1326 13 40 30 26 12.16972 2 +1327 13 41 30 28 18.62974 2 +1328 13 42 34 29 15.08976 2 +1329 13 43 34 27 12.42804 2 +1330 13 44 34 26 16.91336 2 +1331 13 45 34 28 15.99003 2 +1332 13 46 34 30 21.85654 2 +1333 13 47 38 29 15.84121 2 +1334 13 48 38 27 12.9164 2 +1335 13 49 38 26 13.14682 2 +1336 13 50 38 28 16.99698 2 +1337 13 51 38 30 17.40497 2 +1338 13 52 42 29 17.40497 2 +1339 13 53 42 27 16.99698 2 +1340 13 54 42 25 13.14682 2 +1341 13 55 42 28 12.66948 2 +1342 13 56 42 30 15.84121 2 +1343 13 57 46 29 21.23082 2 +1344 13 58 46 27 16.03398 2 +1345 13 59 46 25 11.3251 2 +1346 13 60 46 28 11.41885 2 +1347 13 61 46 30 15.08874 2 +1348 13 62 50 27 18.63077 2 +1349 13 63 50 25 12.17068 2 +1350 13 64 50 23 10.42583 2 +1351 13 65 50 24 10.80986 2 +1352 13 66 50 26 15.96916 2 +1353 13 67 50 28 18.18923 2 +1354 13 68 54 29 17.46327 2 +1355 13 69 54 27 18.71285 2 +1356 13 70 54 25 17.09831 2 +1357 13 71 54 28 13.29445 2 +1358 13 72 54 30 19.3384 2 +1359 13 73 58 29 16.5404 2 +1360 13 74 58 27 13.53064 2 +1361 13 75 58 26 13.70341 2 +1362 13 76 58 28 12.155 2 +1363 13 77 58 30 20.27145 2 +1364 13 78 62 27 17.37308 2 +1365 13 79 62 25 13.03558 2 +1366 13 80 62 26 16.80306 2 +1367 13 81 62 28 17.45595 2 +1368 13 82 62 30 19.81234 2 +1369 13 83 66 27 25.18326 2 +1370 13 84 66 25 16.90563 2 +1371 13 85 66 23 10.09618 2 +1372 13 86 66 28 12.14463 2 +1373 13 87 66 30 18.44455 2 +1374 13 88 70 29 22.53784 2 +1375 13 89 70 27 13.54418 2 +1376 13 90 70 25 16.37898 2 +1377 13 91 70 26 12.96808 2 +1378 13 92 70 28 13.12213 2 +1379 13 93 70 30 19.34168 2 +1380 13 94 74 29 20.71546 2 +1381 13 95 74 27 21.26856 2 +1382 13 96 74 25 33.10513 2 +1383 13 97 74 28 28.6496 2 +1384 13 98 74 30 45.29141 4 +1385 13 99 78 27 33.11607 2 +1386 13 100 78 25 34.72235 2 +1387 13 101 78 26 38.20804 2 +1388 13 102 78 28 40.61941 2 +1389 13 103 78 30 53.03529 2 +1390 14 0 2 33 42.82211 2 +1391 14 1 2 31 35.84323 2 +1392 14 2 2 30 43.52676 2 +1393 14 3 2 32 34.61812 2 +1394 14 4 2 34 22.71269 2 +1395 14 5 6 35 31.65183 2 +1396 14 6 6 33 22.40106 2 +1397 14 7 6 31 31.48546 2 +1398 14 8 6 32 15.08847 2 +1399 14 9 6 34 13.91396 2 +1400 14 10 10 35 14.30837 2 +1401 14 11 10 33 13.83247 2 +1402 14 12 10 31 6.96556 2 +1403 14 13 10 32 5.82985 2 +1404 14 14 10 34 10.00729 2 +1405 14 15 14 35 15.9824 2 +1406 14 16 14 33 8.50235 2 +1407 14 17 14 31 5.75534 2 +1408 14 18 14 30 4.02817 2 +1409 14 19 14 32 13.25012 2 +1410 14 20 14 34 18.26744 2 +1411 14 21 18 33 12.90987 2 +1412 14 22 18 31 4.10005 2 +1413 14 23 18 30 5.93291 2 +1414 14 24 18 32 5.5158 2 +1415 14 25 18 34 16.01138 2 +1416 14 26 22 33 8.7847 2 +1417 14 27 22 31 6.14202 2 +1418 14 28 22 32 4.60147 2 +1419 14 29 22 34 4.60202 2 +1420 14 30 22 36 14.5919 2 +1421 14 31 26 35 17.58966 2 +1422 14 32 26 33 10.7472 2 +1423 14 33 26 31 7.34755 2 +1424 14 34 26 32 7.52171 2 +1425 14 35 26 34 10.82807 2 +1426 14 36 30 33 17.72135 2 +1427 14 37 30 31 8.68247 2 +1428 14 38 30 29 6.26246 2 +1429 14 39 30 30 7.19958 2 +1430 14 40 30 32 12.77841 2 +1431 14 41 30 34 13.40518 2 +1432 14 42 34 35 11.29067 2 +1433 14 43 34 33 4.41671 2 +1434 14 44 34 31 5.22369 2 +1435 14 45 34 32 6.06189 2 +1436 14 46 34 34 11.83838 2 +1437 14 47 38 35 12.71018 2 +1438 14 48 38 33 5.29213 2 +1439 14 49 38 31 6.19255 2 +1440 14 50 38 32 6.7802 2 +1441 14 51 38 34 14.4705 2 +1442 14 52 42 33 15.6138 2 +1443 14 53 42 31 6.7802 2 +1444 14 54 42 32 6.26668 2 +1445 14 55 42 34 5.29213 2 +1446 14 56 42 36 12.71018 2 +1447 14 57 46 33 11.83938 2 +1448 14 58 46 31 6.06289 2 +1449 14 59 46 32 5.22471 2 +1450 14 60 46 34 4.41572 2 +1451 14 61 46 36 11.29169 2 +1452 14 62 50 33 13.40455 2 +1453 14 63 50 31 12.77738 2 +1454 14 64 50 29 7.19855 2 +1455 14 65 50 30 6.2635 2 +1456 14 66 50 32 8.6815 2 +1457 14 67 50 34 17.93939 2 +1458 14 68 54 33 10.98947 2 +1459 14 69 54 31 7.75355 2 +1460 14 70 54 32 7.33779 2 +1461 14 71 54 34 10.76595 2 +1462 14 72 54 36 16.1774 2 +1463 14 73 58 35 14.59083 2 +1464 14 74 58 33 4.60309 2 +1465 14 75 58 31 4.60041 2 +1466 14 76 58 32 6.14309 2 +1467 14 77 58 34 8.78377 2 +1468 14 78 62 33 17.37097 2 +1469 14 79 62 31 5.64978 2 +1470 14 80 62 29 5.93194 2 +1471 14 81 62 32 4.09914 2 +1472 14 82 62 34 12.91095 2 +1473 14 83 66 33 18.36617 2 +1474 14 84 66 31 13.24913 2 +1475 14 85 66 29 4.02927 2 +1476 14 86 66 32 5.75623 2 +1477 14 87 66 34 8.50146 2 +1478 14 88 66 36 16.29002 2 +1479 14 89 70 33 9.73922 2 +1480 14 90 70 31 5.99075 2 +1481 14 91 70 32 6.96669 2 +1482 14 92 70 34 13.8336 2 +1483 14 93 70 36 14.30752 2 +1484 14 94 74 33 14.31721 2 +1485 14 95 74 31 15.02748 2 +1486 14 96 74 32 29.60812 2 +1487 14 97 74 34 21.87775 2 +1488 14 98 74 36 32.73476 2 +1489 14 99 78 33 23.87656 2 +1490 14 100 78 31 33.4603 2 +1491 14 101 78 29 39.58175 2 +1492 14 102 78 32 36.14053 2 +1493 14 103 78 34 43.02492 2 +1494 15 0 2 39 54.92302 2 +1495 15 1 2 37 52.23292 2 +1496 15 2 2 35 49.6934 2 +1497 15 3 2 36 41.65682 2 +1498 15 4 2 38 40.9157 2 +1499 15 5 2 40 27.73774 2 +1500 15 6 6 39 42.28976 2 +1501 15 7 6 37 29.25288 2 +1502 15 8 6 36 30.96309 2 +1503 15 9 6 38 24.27473 2 +1504 15 10 6 40 13.56502 2 +1505 15 11 10 39 20.35424 2 +1506 15 12 10 37 22.07352 2 +1507 15 13 10 36 18.21832 2 +1508 15 14 10 38 11.52131 2 +1509 15 15 10 40 11.15893 2 +1510 15 16 14 39 20.53031 2 +1511 15 17 14 37 14.20152 2 +1512 15 18 14 36 19.41945 2 +1513 15 19 14 38 12.8534 2 +1514 15 20 14 40 12.58447 2 +1515 15 21 18 39 20.43703 2 +1516 15 22 18 37 20.1896 2 +1517 15 23 18 35 13.90785 2 +1518 15 24 18 36 13.03429 2 +1519 15 25 18 38 17.1007 2 +1520 15 26 18 40 17.66845 2 +1521 15 27 22 39 12.77294 2 +1522 15 28 22 37 13.82862 2 +1523 15 29 22 35 16.95556 2 +1524 15 30 22 38 12.00949 2 +1525 15 31 22 40 20.24635 2 +1526 15 32 26 39 18.26996 2 +1527 15 33 26 37 13.55549 2 +1528 15 34 26 36 21.22604 2 +1529 15 35 26 38 13.62364 2 +1530 15 36 26 40 14.10672 2 +1531 15 37 30 39 21.99942 2 +1532 15 38 30 37 13.92277 2 +1533 15 39 30 35 13.7182 2 +1534 15 40 30 36 14.19871 2 +1535 15 41 30 38 13.08569 2 +1536 15 42 30 40 22.62654 2 +1537 15 43 34 39 18.98083 2 +1538 15 44 34 37 12.24145 2 +1539 15 45 34 36 12.38092 2 +1540 15 46 34 38 12.40312 2 +1541 15 47 34 40 21.29954 2 +1542 15 48 38 39 19.43217 2 +1543 15 49 38 37 12.4733 2 +1544 15 50 38 36 15.11121 2 +1545 15 51 38 38 12.99682 2 +1546 15 52 38 40 19.9244 2 +1547 15 53 42 39 20.22198 2 +1548 15 54 42 37 12.99682 2 +1549 15 55 42 35 15.11121 2 +1550 15 56 42 38 11.15294 2 +1551 15 57 42 40 16.53001 2 +1552 15 58 46 39 21.01371 2 +1553 15 59 46 37 12.6294 2 +1554 15 60 46 35 13.60669 2 +1555 15 61 46 38 12.24047 2 +1556 15 62 46 40 18.23413 2 +1557 15 63 50 39 22.69997 2 +1558 15 64 50 37 13.08666 2 +1559 15 65 50 35 14.19774 2 +1560 15 66 50 36 13.93684 2 +1561 15 67 50 38 13.92173 2 +1562 15 68 50 40 22.14925 2 +1563 15 69 54 39 13.54874 2 +1564 15 70 54 37 22.22656 2 +1565 15 71 54 35 15.68484 2 +1566 15 72 54 38 13.55455 2 +1567 15 73 54 40 18.27101 2 +1568 15 74 58 39 21.72985 2 +1569 15 75 58 37 12.52776 2 +1570 15 76 58 36 19.01648 2 +1571 15 77 58 38 12.71171 2 +1572 15 78 58 40 12.77188 2 +1573 15 79 62 39 18.56227 2 +1574 15 80 62 37 17.09962 2 +1575 15 81 62 35 13.03538 2 +1576 15 82 62 36 14.46638 2 +1577 15 83 62 38 20.49474 2 +1578 15 84 62 40 21.05578 2 +1579 15 85 66 39 12.52494 2 +1580 15 86 66 37 12.85251 2 +1581 15 87 66 35 18.05719 2 +1582 15 88 66 38 14.20042 2 +1583 15 89 66 40 20.96486 2 +1584 15 90 70 39 11.16006 2 +1585 15 91 70 37 11.53492 2 +1586 15 92 70 35 18.53997 2 +1587 15 93 70 38 22.07267 2 +1588 15 94 70 40 21.82811 2 +1589 15 95 74 39 13.56477 2 +1590 15 96 74 37 23.98129 2 +1591 15 97 74 35 29.68549 2 +1592 15 98 74 38 30.25399 2 +1593 15 99 74 40 38.1218 2 +1594 15 100 78 39 27.41183 2 +1595 15 101 78 37 37.0772 2 +1596 15 102 78 35 43.44229 2 +1597 15 103 78 36 52.4415 2 +1598 15 104 78 38 47.46293 2 +1599 15 105 78 40 55.42552 2 +1600 16 0 3 5 49.82833 2 +1601 16 1 3 3 49.32177 2 +1602 16 2 3 1 35.87285 2 +1603 16 3 3 2 43.36167 2 +1604 16 4 3 4 33.07923 2 +1605 16 5 3 6 32.6061 2 +1606 16 6 7 3 31.91618 2 +1607 16 7 7 1 22.76061 2 +1608 16 8 7 2 27.44714 2 +1609 16 9 7 4 18.5705 2 +1610 16 10 7 6 16.9702 2 +1611 16 11 11 5 18.04531 2 +1612 16 12 11 3 15.67278 2 +1613 16 13 11 1 10.70987 2 +1614 16 14 11 2 10.59553 2 +1615 16 15 11 4 14.37878 2 +1616 16 16 11 6 20.71072 2 +1617 16 17 15 3 13.9483 2 +1618 16 18 15 1 12.02913 2 +1619 16 19 15 2 10.95103 2 +1620 16 20 15 4 12.93549 2 +1621 16 21 15 6 19.98142 2 +1622 16 22 19 5 19.99818 2 +1623 16 23 19 3 15.20362 2 +1624 16 24 19 1 10.72341 2 +1625 16 25 19 2 12.31552 2 +1626 16 26 19 4 14.15317 2 +1627 16 27 19 6 18.36846 2 +1628 16 28 23 5 21.57032 2 +1629 16 29 23 3 15.22645 2 +1630 16 30 23 1 12.025 2 +1631 16 31 23 2 11.5723 2 +1632 16 32 23 4 23.67978 2 +1633 16 33 27 5 19.14518 2 +1634 16 34 27 3 13.25262 2 +1635 16 35 27 1 10.3273 2 +1636 16 36 27 2 11.01874 2 +1637 16 37 27 4 13.62211 2 +1638 16 38 27 6 19.70551 2 +1639 16 39 31 5 16.2871 2 +1640 16 40 31 3 12.01613 2 +1641 16 41 31 1 10.71414 2 +1642 16 42 31 2 13.10479 2 +1643 16 43 31 4 16.29634 2 +1644 16 44 35 5 17.52172 2 +1645 16 45 35 3 15.76916 2 +1646 16 46 35 1 10.88965 2 +1647 16 47 35 2 11.1634 2 +1648 16 48 35 4 14.47953 2 +1649 16 49 35 6 26.40473 2 +1650 16 50 39 3 14.17434 2 +1651 16 51 39 1 10.98108 2 +1652 16 52 39 2 12.25361 2 +1653 16 53 39 4 16.96203 2 +1654 16 54 39 6 20.47036 2 +1655 16 55 43 5 20.47036 2 +1656 16 56 43 3 16.96203 2 +1657 16 57 43 1 11.11554 2 +1658 16 58 43 2 10.98108 2 +1659 16 59 43 4 14.17434 2 +1660 16 60 47 5 29.08504 2 +1661 16 61 47 3 14.48055 2 +1662 16 62 47 1 11.81308 2 +1663 16 63 47 2 10.88867 2 +1664 16 64 47 4 15.77014 2 +1665 16 65 47 6 17.42413 2 +1666 16 66 51 3 16.29731 2 +1667 16 67 51 1 13.10382 2 +1668 16 68 51 2 10.71518 2 +1669 16 69 51 4 12.01516 2 +1670 16 70 51 6 16.28614 2 +1671 16 71 55 5 19.70646 2 +1672 16 72 55 3 13.62306 2 +1673 16 73 55 1 11.63522 2 +1674 16 74 55 2 10.32835 2 +1675 16 75 55 4 13.25157 2 +1676 16 76 55 6 19.14623 2 +1677 16 77 59 3 23.67788 2 +1678 16 78 59 1 12.19057 2 +1679 16 79 59 2 12.02407 2 +1680 16 80 59 4 15.22742 2 +1681 16 81 59 6 21.56925 2 +1682 16 82 63 5 18.36937 2 +1683 16 83 63 3 14.15408 2 +1684 16 84 63 1 12.31461 2 +1685 16 85 63 2 11.93499 2 +1686 16 86 63 4 15.28858 2 +1687 16 87 63 6 19.66789 2 +1688 16 88 67 5 19.98053 2 +1689 16 89 67 3 13.58706 2 +1690 16 90 67 1 10.94931 2 +1691 16 91 67 2 10.89213 2 +1692 16 92 67 4 13.9472 2 +1693 16 93 71 5 23.59137 2 +1694 16 94 71 3 14.37991 2 +1695 16 95 71 1 10.5944 2 +1696 16 96 71 2 10.70874 2 +1697 16 97 71 4 15.67391 2 +1698 16 98 71 6 18.04418 2 +1699 16 99 75 5 17.89257 2 +1700 16 100 75 3 18.05159 2 +1701 16 101 75 1 27.15039 2 +1702 16 102 75 2 26.97163 2 +1703 16 103 75 4 28.15107 2 +1704 16 104 79 5 32.62911 2 +1705 16 105 79 3 32.89847 2 +1706 16 106 79 1 43.8314 2 +1707 16 107 79 2 35.86077 2 +1708 16 108 79 4 50.37916 2 +1709 16 109 79 6 49.82717 2 +1710 17 0 3 9 49.29225 2 +1711 17 1 3 7 39.08223 2 +1712 17 2 3 8 37.46016 2 +1713 17 3 3 10 35.6367 2 +1714 17 4 3 12 24.14634 2 +1715 17 5 7 9 33.25718 2 +1716 17 6 7 7 28.6917 2 +1717 17 7 7 5 19.26185 2 +1718 17 8 7 8 24.11427 2 +1719 17 9 7 10 15.98622 2 +1720 17 10 7 12 9.20435 2 +1721 17 11 11 11 14.28158 2 +1722 17 12 11 9 6.21446 2 +1723 17 13 11 7 4.09605 2 +1724 17 14 11 8 5.01185 2 +1725 17 15 11 10 13.89468 2 +1726 17 16 15 9 14.56491 2 +1727 17 17 15 7 10.20592 2 +1728 17 18 15 5 6.54809 2 +1729 17 19 15 8 6.65779 2 +1730 17 20 15 10 5.72095 2 +1731 17 21 15 12 12.32228 2 +1732 17 22 19 11 10.24549 2 +1733 17 23 19 9 7.9458 2 +1734 17 24 19 7 5.63817 2 +1735 17 25 19 8 5.03776 2 +1736 17 26 19 10 11.82662 2 +1737 17 27 23 11 15.48503 2 +1738 17 28 23 9 13.386 2 +1739 17 29 23 7 4.55515 2 +1740 17 30 23 6 4.60444 2 +1741 17 31 23 8 5.92141 2 +1742 17 32 23 10 13.88075 2 +1743 17 33 27 11 14.92237 2 +1744 17 34 27 9 7.29193 2 +1745 17 35 27 7 7.25503 2 +1746 17 36 27 8 4.70033 2 +1747 17 37 27 10 7.69201 2 +1748 17 38 27 12 18.76505 2 +1749 17 39 31 9 10.49129 2 +1750 17 40 31 7 7.59986 2 +1751 17 41 31 6 4.96897 2 +1752 17 42 31 8 6.80408 2 +1753 17 43 31 10 15.16377 2 +1754 17 44 35 11 11.39381 2 +1755 17 45 35 9 8.18883 2 +1756 17 46 35 7 4.38414 2 +1757 17 47 35 8 5.0991 2 +1758 17 48 35 10 9.93555 2 +1759 17 49 35 12 18.84412 2 +1760 17 50 39 9 11.21105 2 +1761 17 51 39 7 4.26957 2 +1762 17 52 39 5 7.16159 2 +1763 17 53 39 8 7.59414 2 +1764 17 54 39 10 10.60105 2 +1765 17 55 43 9 10.60105 2 +1766 17 56 43 7 7.59414 2 +1767 17 57 43 6 7.16159 2 +1768 17 58 43 8 4.26957 2 +1769 17 59 43 10 11.21105 2 +1770 17 60 47 11 18.5166 2 +1771 17 61 47 9 9.93657 2 +1772 17 62 47 7 5.09812 2 +1773 17 63 47 8 4.56334 2 +1774 17 64 47 10 8.18982 2 +1775 17 65 47 12 13.65107 2 +1776 17 66 51 9 13.0084 2 +1777 17 67 51 7 7.26778 2 +1778 17 68 51 5 5.10321 2 +1779 17 69 51 8 7.6009 2 +1780 17 70 51 10 10.49025 2 +1781 17 71 55 11 19.32253 2 +1782 17 72 55 9 7.69307 2 +1783 17 73 55 7 4.69938 2 +1784 17 74 55 8 7.25398 2 +1785 17 75 55 10 7.29087 2 +1786 17 76 55 12 14.92334 2 +1787 17 77 59 9 13.88182 2 +1788 17 78 59 7 5.92234 2 +1789 17 79 59 5 4.60352 2 +1790 17 80 59 8 4.55422 2 +1791 17 81 59 10 13.38693 2 +1792 17 82 59 12 13.43797 2 +1793 17 83 63 9 12.48265 2 +1794 17 84 63 7 4.67173 2 +1795 17 85 63 8 5.5951 2 +1796 17 86 63 10 7.94674 2 +1797 17 87 63 12 10.24458 2 +1798 17 88 67 11 12.32338 2 +1799 17 89 67 9 5.72205 2 +1800 17 90 67 7 6.65888 2 +1801 17 91 67 6 6.31938 2 +1802 17 92 67 8 10.20493 2 +1803 17 93 67 10 14.85576 2 +1804 17 94 71 9 14.46198 2 +1805 17 95 71 7 4.96439 2 +1806 17 96 71 8 4.09718 2 +1807 17 97 71 10 6.21334 2 +1808 17 98 71 12 14.22826 2 +1809 17 99 75 11 8.32681 2 +1810 17 100 75 9 15.73984 2 +1811 17 101 75 7 19.2141 2 +1812 17 102 75 6 23.76473 2 +1813 17 103 75 8 24.61579 2 +1814 17 104 75 10 36.80823 2 +1815 17 105 79 11 24.75228 2 +1816 17 106 79 9 33.95965 2 +1817 17 107 79 7 37.19192 2 +1818 17 108 79 8 40.08218 2 +1819 17 109 79 10 48.7716 2 +1820 18 0 3 15 51.84984 2 +1821 18 1 3 13 51.16651 2 +1822 18 2 3 11 44.29423 2 +1823 18 3 3 14 47.4577 2 +1824 18 4 3 16 36.44706 2 +1825 18 5 3 18 30.15469 2 +1826 18 6 7 15 38.57244 2 +1827 18 7 7 13 40.90633 2 +1828 18 8 7 11 27.76927 2 +1829 18 9 7 14 29.64028 2 +1830 18 10 7 16 22.05659 2 +1831 18 11 7 18 10.58541 2 +1832 18 12 11 15 15.16554 2 +1833 18 13 11 13 15.05524 2 +1834 18 14 11 12 14.75789 2 +1835 18 15 11 14 12.28096 2 +1836 18 16 11 16 19.33037 2 +1837 18 17 15 15 22.6082 2 +1838 18 18 15 13 14.69482 2 +1839 18 19 15 11 13.24908 2 +1840 18 20 15 14 10.87532 2 +1841 18 21 15 16 11.25707 2 +1842 18 22 15 18 20.8755 2 +1843 18 23 19 15 13.49137 2 +1844 18 24 19 13 16.49139 2 +1845 18 25 19 12 20.29991 2 +1846 18 26 19 14 13.73387 2 +1847 18 27 19 16 12.46963 2 +1848 18 28 23 17 19.17096 2 +1849 18 29 23 15 15.52786 2 +1850 18 30 23 13 11.27041 2 +1851 18 31 23 12 15.28175 2 +1852 18 32 23 14 12.71593 2 +1853 18 33 23 16 19.34359 2 +1854 18 34 27 17 13.15391 2 +1855 18 35 27 15 14.12881 2 +1856 18 36 27 13 15.1218 2 +1857 18 37 27 14 12.18705 2 +1858 18 38 27 16 12.83495 2 +1859 18 39 31 15 22.9951 2 +1860 18 40 31 13 14.87434 2 +1861 18 41 31 11 15.03711 2 +1862 18 42 31 12 16.37044 2 +1863 18 43 31 14 14.59052 2 +1864 18 44 31 16 15.88265 2 +1865 18 45 35 17 17.91214 2 +1866 18 46 35 15 20.32923 2 +1867 18 47 35 13 12.46583 2 +1868 18 48 35 14 12.51014 2 +1869 18 49 35 16 13.13994 2 +1870 18 50 35 18 23.56948 2 +1871 18 51 39 13 21.06444 2 +1872 18 52 39 11 14.11093 2 +1873 18 53 39 12 12.71024 2 +1874 18 54 39 14 13.24158 2 +1875 18 55 39 16 23.2642 2 +1876 18 56 43 15 22.28849 2 +1877 18 57 43 13 13.24158 2 +1878 18 58 43 11 12.91644 2 +1879 18 59 43 12 14.06002 2 +1880 18 60 43 14 22.39897 2 +1881 18 61 47 17 21.05525 2 +1882 18 62 47 15 13.14095 2 +1883 18 63 47 13 14.18127 2 +1884 18 64 47 14 11.63904 2 +1885 18 65 47 16 10.57121 2 +1886 18 66 47 18 22.47649 2 +1887 18 67 51 15 20.88454 2 +1888 18 68 51 13 12.98643 2 +1889 18 69 51 11 13.36134 2 +1890 18 70 51 12 15.03814 2 +1891 18 71 51 14 14.87338 2 +1892 18 72 51 16 24.78159 2 +1893 18 73 55 15 12.8359 2 +1894 18 74 55 13 14.72258 2 +1895 18 75 55 14 14.94997 2 +1896 18 76 55 16 14.35026 2 +1897 18 77 55 18 13.15286 2 +1898 18 78 59 15 20.96507 2 +1899 18 79 59 13 12.44905 2 +1900 18 80 59 11 14.20251 2 +1901 18 81 59 14 11.21741 2 +1902 18 82 59 16 17.74362 2 +1903 18 83 59 18 20.22522 2 +1904 18 84 63 15 15.12531 2 +1905 18 85 63 13 15.54029 2 +1906 18 86 63 11 16.94873 2 +1907 18 87 63 14 18.10097 2 +1908 18 88 63 16 13.49047 2 +1909 18 89 67 17 20.76228 2 +1910 18 90 67 15 11.25817 2 +1911 18 91 67 13 12.4481 2 +1912 18 92 67 12 14.38291 2 +1913 18 93 67 14 14.69393 2 +1914 18 94 67 16 20.86615 2 +1915 18 95 71 15 19.32952 2 +1916 18 96 71 13 11.3367 2 +1917 18 97 71 11 14.75676 2 +1918 18 98 71 14 15.14249 2 +1919 18 99 71 16 17.76959 2 +1920 18 100 75 17 10.706 2 +1921 18 101 75 15 23.0688 2 +1922 18 102 75 13 29.82103 2 +1923 18 103 75 12 30.70987 2 +1924 18 104 75 14 33.28551 2 +1925 18 105 75 16 35.08714 2 +1926 18 106 79 17 32.59086 2 +1927 18 107 79 15 35.97374 2 +1928 18 108 79 13 45.96385 2 +1929 18 109 79 12 47.19177 2 +1930 18 110 79 14 48.13668 2 +1931 18 111 79 16 54.96909 2 +1932 19 0 3 21 59.75243 2 +1933 19 1 3 19 63.6093 2 +1934 19 2 3 17 56.11117 2 +1935 19 3 3 20 52.40651 2 +1936 19 4 3 22 48.79634 2 +1937 19 5 3 24 39.35252 2 +1938 19 6 7 21 44.32943 2 +1939 19 7 7 19 38.9747 2 +1940 19 8 7 17 36.20596 2 +1941 19 9 7 20 42.93889 2 +1942 19 10 7 22 23.44726 2 +1943 19 11 11 21 33.5243 2 +1944 19 12 11 19 23.23523 2 +1945 19 13 11 17 24.12816 2 +1946 19 14 11 18 29.7515 2 +1947 19 15 11 20 21.1849 2 +1948 19 16 11 22 21.22962 2 +1949 19 17 15 21 30.60517 2 +1950 19 18 15 19 22.65517 2 +1951 19 19 15 17 25.4822 2 +1952 19 20 15 20 32.77094 2 +1953 19 21 15 22 19.669 2 +1954 19 22 19 21 31.73762 2 +1955 19 23 19 19 23.60452 2 +1956 19 24 19 17 24.23592 2 +1957 19 25 19 18 24.73322 2 +1958 19 26 19 20 21.13855 2 +1959 19 27 19 22 27.46234 2 +1960 19 28 23 23 30.31658 2 +1961 19 29 23 21 21.17176 2 +1962 19 30 23 19 24.04165 2 +1963 19 31 23 18 20.79269 2 +1964 19 32 23 20 69.75486 2 +1965 19 33 23 22 24.58895 2 +1966 19 34 27 21 21.95265 2 +1967 19 35 27 19 22.90255 2 +1968 19 36 27 18 28.12773 2 +1969 19 37 27 20 23.58082 2 +1970 19 38 27 22 20.40497 2 +1971 19 39 31 21 31.47439 2 +1972 19 40 31 19 28.26376 2 +1973 19 41 31 17 23.40134 2 +1974 19 42 31 18 22.92591 2 +1975 19 43 31 20 21.29996 2 +1976 19 44 31 22 29.51958 2 +1977 19 45 35 23 29.36853 2 +1978 19 46 35 21 21.2773 2 +1979 19 47 35 19 21.10146 2 +1980 19 48 35 20 20.16234 2 +1981 19 49 35 22 28.11676 2 +1982 19 50 35 24 25.89739 2 +1983 19 51 39 19 26.45482 2 +1984 19 52 39 17 22.19508 2 +1985 19 53 39 15 26.46065 2 +1986 19 54 39 18 22.90439 2 +1987 19 55 39 20 32.62379 2 +1988 19 56 43 19 24.75845 2 +1989 19 57 43 17 22.76541 2 +1990 19 58 43 16 37.39859 2 +1991 19 59 43 18 22.83894 2 +1992 19 60 43 20 27.61747 2 +1993 19 61 47 23 29.24779 2 +1994 19 62 47 21 41.52652 2 +1995 19 63 47 19 22.94889 2 +1996 19 64 47 20 22.60236 2 +1997 19 65 47 22 32.71014 2 +1998 19 66 47 24 26.83087 2 +1999 19 67 51 21 34.63301 2 +2000 19 68 51 19 21.31813 2 +2001 19 69 51 17 24.18891 2 +2002 19 70 51 18 22.90816 2 +2003 19 71 51 20 29.83978 2 +2004 19 72 51 22 29.65598 2 +2005 19 73 55 21 20.40602 2 +2006 19 74 55 19 20.57877 2 +2007 19 75 55 17 52.30349 2 +2008 19 76 55 20 24.44089 2 +2009 19 77 55 22 21.95159 2 +2010 19 78 59 21 26.01426 2 +2011 19 79 59 19 25.71918 2 +2012 19 80 59 17 30.80479 2 +2013 19 81 59 20 23.04091 2 +2014 19 82 59 22 21.57004 2 +2015 19 83 59 24 28.37548 2 +2016 19 84 63 21 26.99705 2 +2017 19 85 63 19 21.06754 2 +2018 19 86 63 17 27.0084 2 +2019 19 87 63 18 22.94842 2 +2020 19 88 63 20 23.01093 2 +2021 19 89 63 22 32.25947 2 +2022 19 90 67 21 19.75709 2 +2023 19 91 67 19 29.92701 2 +2024 19 92 67 18 23.34681 2 +2025 19 93 67 20 22.65407 2 +2026 19 94 67 22 46.92802 2 +2027 19 95 71 21 21.23075 2 +2028 19 96 71 19 21.03395 2 +2029 19 97 71 17 26.93097 2 +2030 19 98 71 18 27.53406 2 +2031 19 99 71 20 25.52866 2 +2032 19 100 71 22 32.41507 2 +2033 19 101 75 21 31.0962 2 +2034 19 102 75 19 37.20244 2 +2035 19 103 75 18 48.87409 2 +2036 19 104 75 20 41.83302 2 +2037 19 105 75 22 61.19957 2 +2038 19 106 79 23 40.72174 2 +2039 19 107 79 21 45.69862 2 +2040 19 108 79 19 55.8842 2 +2041 19 109 79 18 54.92835 2 +2042 19 110 79 20 64.99665 2 +2043 19 111 79 22 67.3048 2 +2044 20 0 3 27 75.48537 2 +2045 20 1 3 25 73.20988 2 +2046 20 2 3 23 71.11703 2 +2047 20 3 3 26 59.41104 2 +2048 20 4 3 28 54.15138 2 +2049 20 5 7 27 57.79719 2 +2050 20 6 7 25 63.98104 2 +2051 20 7 7 23 49.87711 2 +2052 20 8 7 24 48.31741 2 +2053 20 9 7 26 44.96582 2 +2054 20 10 7 28 32.29294 2 +2055 20 11 11 27 41.85476 2 +2056 20 12 11 25 40.07982 2 +2057 20 13 11 23 30.83943 2 +2058 20 14 11 24 31.42249 2 +2059 20 15 11 26 37.87921 2 +2060 20 16 11 28 30.19018 2 +2061 20 17 15 25 41.67509 2 +2062 20 18 15 23 31.99003 2 +2063 20 19 15 24 34.87787 2 +2064 20 20 15 26 28.34582 2 +2065 20 21 15 28 28.72835 2 +2066 20 22 19 27 40.87428 2 +2067 20 23 19 25 32.025 2 +2068 20 24 19 23 33.53319 2 +2069 20 25 19 24 33.9086 2 +2070 20 26 19 26 28.22597 2 +2071 20 27 19 28 43.87501 2 +2072 20 28 23 29 31.25412 2 +2073 20 29 23 27 32.14318 2 +2074 20 30 23 25 29.54182 2 +2075 20 31 23 24 37.84141 2 +2076 20 32 23 26 36.94027 2 +2077 20 33 23 28 31.23271 2 +2078 20 34 27 25 32.20216 2 +2079 20 35 27 23 37.89824 2 +2080 20 36 27 24 34.27574 2 +2081 20 37 27 26 30.48495 2 +2082 20 38 27 28 38.68336 2 +2083 20 39 31 27 32.64777 2 +2084 20 40 31 25 32.29551 2 +2085 20 41 31 23 30.15081 2 +2086 20 42 31 24 31.13309 2 +2087 20 43 31 26 70.7478 2 +2088 20 44 31 28 31.9962 2 +2089 20 45 35 27 36.84746 2 +2090 20 46 35 25 29.59693 2 +2091 20 47 35 26 31.22482 2 +2092 20 48 35 28 27.72843 2 +2093 20 49 35 30 37.96968 2 +2094 20 50 39 25 43.09075 2 +2095 20 51 39 23 31.8624 2 +2096 20 52 39 21 35.15541 2 +2097 20 53 39 22 31.94297 2 +2098 20 54 39 24 31.20535 2 +2099 20 55 39 26 40.37788 2 +2100 20 56 43 25 38.73363 2 +2101 20 57 43 23 30.88946 2 +2102 20 58 43 21 32.93745 2 +2103 20 59 43 22 32.51285 2 +2104 20 60 43 24 36.01281 2 +2105 20 61 43 26 47.89502 2 +2106 20 62 47 29 36.27361 2 +2107 20 63 47 27 27.38348 2 +2108 20 64 47 25 31.84081 2 +2109 20 65 47 26 28.78677 2 +2110 20 66 47 28 68.8232 2 +2111 20 67 51 27 31.11975 2 +2112 20 68 51 25 35.97809 2 +2113 20 69 51 23 30.93607 2 +2114 20 70 51 24 30.64572 2 +2115 20 71 51 26 32.22211 2 +2116 20 72 51 28 38.08307 2 +2117 20 73 55 27 60.44223 2 +2118 20 74 55 25 30.3859 2 +2119 20 75 55 23 32.4842 2 +2120 20 76 55 24 33.79073 2 +2121 20 77 55 26 31.9613 2 +2122 20 78 59 27 39.77592 2 +2123 20 79 59 25 29.59753 2 +2124 20 80 59 23 38.8183 2 +2125 20 81 59 26 42.05162 2 +2126 20 82 59 28 28.8499 2 +2127 20 83 59 30 44.08001 2 +2128 20 84 63 27 41.49315 2 +2129 20 85 63 25 28.82285 2 +2130 20 86 63 23 32.73154 2 +2131 20 87 63 24 32.1872 2 +2132 20 88 63 26 32.14685 2 +2133 20 89 63 28 36.81233 2 +2134 20 90 67 27 30.03289 2 +2135 20 91 67 25 31.58937 2 +2136 20 92 67 23 31.79785 2 +2137 20 93 67 24 31.98914 2 +2138 20 94 67 26 41.59002 2 +2139 20 95 71 27 30.56345 2 +2140 20 96 71 25 37.7135 2 +2141 20 97 71 23 31.2375 2 +2142 20 98 71 24 32.35493 2 +2143 20 99 71 26 40.8155 2 +2144 20 100 71 28 42.49347 2 +2145 20 101 75 27 37.07713 2 +2146 20 102 75 25 45.19345 2 +2147 20 103 75 23 56.26589 4 +2148 20 104 75 24 47.21191 2 +2149 20 105 75 26 53.8208 2 +2150 20 106 75 28 58.26591 2 +2151 20 107 79 27 53.88585 2 +2152 20 108 79 25 63.89224 2 +2153 20 109 79 24 63.54349 2 +2154 20 110 79 26 68.51868 2 +2155 20 111 79 28 70.72673 2 +2156 21 0 3 33 89.8973 2 +2157 21 1 3 31 88.12197 2 +2158 21 2 3 29 79.15884 2 +2159 21 3 3 30 73.65031 2 +2160 21 4 3 32 68.38726 2 +2161 21 5 3 34 64.56019 2 +2162 21 6 7 33 68.78736 4 +2163 21 7 7 31 66.37846 4 +2164 21 8 7 29 53.28222 2 +2165 21 9 7 30 58.78023 2 +2166 21 10 7 32 51.76638 2 +2167 21 11 7 34 47.88492 2 +2168 21 12 11 31 51.60668 4 +2169 21 13 11 29 85.78853 2 +2170 21 14 11 30 48.1214 2 +2171 21 15 11 32 38.01831 2 +2172 21 16 11 34 35.77569 2 +2173 21 17 15 31 54.6186 2 +2174 21 18 15 29 50.57058 2 +2175 21 19 15 27 47.24595 2 +2176 21 20 15 30 42.29117 2 +2177 21 21 15 32 36.98783 2 +2178 21 22 15 34 36.54574 2 +2179 21 23 19 33 51.77195 2 +2180 21 24 19 31 39.11801 2 +2181 21 25 19 29 39.85009 2 +2182 21 26 19 30 40.85973 2 +2183 21 27 19 32 47.0653 2 +2184 21 28 19 34 41.29946 2 +2185 21 29 23 33 40.67227 2 +2186 21 30 23 31 42.7296 2 +2187 21 31 23 30 39.92729 2 +2188 21 32 23 32 42.7632 2 +2189 21 33 23 34 38.68443 2 +2190 21 34 27 31 53.53559 2 +2191 21 35 27 29 44.47785 2 +2192 21 36 27 27 61.82625 2 +2193 21 37 27 30 82.18288 2 +2194 21 38 27 32 45.03376 2 +2195 21 39 27 34 37.99911 2 +2196 21 40 31 33 40.51163 2 +2197 21 41 31 31 40.50083 2 +2198 21 42 31 29 43.80648 2 +2199 21 43 31 30 40.68799 2 +2200 21 44 31 32 38.06413 2 +2201 21 45 31 34 39.30507 2 +2202 21 46 35 33 59.44524 2 +2203 21 47 35 31 39.01325 2 +2204 21 48 35 29 40.06345 2 +2205 21 49 35 32 38.63173 2 +2206 21 50 35 34 43.15213 2 +2207 21 51 39 31 47.95669 2 +2208 21 52 39 29 40.33531 2 +2209 21 53 39 27 42.95409 2 +2210 21 54 39 28 40.13297 2 +2211 21 55 39 30 41.23028 2 +2212 21 56 39 32 39.81055 2 +2213 21 57 43 31 44.35419 2 +2214 21 58 43 29 39.12858 2 +2215 21 59 43 27 44.54734 2 +2216 21 60 43 28 47.57819 2 +2217 21 61 43 30 45.05096 2 +2218 21 62 43 32 48.57425 2 +2219 21 63 47 33 38.1542 2 +2220 21 64 47 31 46.62184 2 +2221 21 65 47 30 44.10426 2 +2222 21 66 47 32 37.33445 2 +2223 21 67 47 34 47.79964 2 +2224 21 68 51 33 43.56195 2 +2225 21 69 51 31 38.03362 2 +2226 21 70 51 29 47.38308 2 +2227 21 71 51 30 38.56341 2 +2228 21 72 51 32 40.50186 2 +2229 21 73 51 34 46.28658 2 +2230 21 74 55 33 38.26154 2 +2231 21 75 55 31 41.4983 2 +2232 21 76 55 29 39.37975 2 +2233 21 77 55 28 40.14941 2 +2234 21 78 55 30 41.82687 2 +2235 21 79 55 32 42.35636 2 +2236 21 80 59 33 41.56095 2 +2237 21 81 59 31 38.31008 2 +2238 21 82 59 29 40.6692 2 +2239 21 83 59 32 38.87302 2 +2240 21 84 59 34 39.97413 2 +2241 21 85 63 33 37.66525 2 +2242 21 86 63 31 46.79308 2 +2243 21 87 63 29 41.34178 2 +2244 21 88 63 30 39.33091 2 +2245 21 89 63 32 39.94818 2 +2246 21 90 63 34 46.5292 2 +2247 21 91 67 33 37.46639 2 +2248 21 92 67 31 37.43653 2 +2249 21 93 67 29 54.24292 2 +2250 21 94 67 28 43.38272 2 +2251 21 95 67 30 47.9946 2 +2252 21 96 67 32 50.64287 2 +2253 21 97 71 33 35.88172 2 +2254 21 98 71 31 40.4204 2 +2255 21 99 71 29 47.60147 2 +2256 21 100 71 30 47.35056 2 +2257 21 101 71 32 49.59639 2 +2258 21 102 75 33 49.89955 2 +2259 21 103 75 31 53.04818 2 +2260 21 104 75 29 60.23214 2 +2261 21 105 75 30 58.04619 2 +2262 21 106 75 32 59.59715 2 +2263 21 107 75 34 68.74002 4 +2264 21 108 79 33 59.58926 2 +2265 21 109 79 31 72.4284 2 +2266 21 110 79 29 79.287 2 +2267 21 111 79 30 75.34272 2 +2268 21 112 79 32 88.78072 2 +2269 21 113 79 34 84.52719 2 +2270 22 0 3 39 90.95908 2 +2271 22 1 3 37 89.54491 2 +2272 22 2 3 35 85.30901 2 +2273 22 3 3 36 87.50042 2 +2274 22 4 3 38 79.86774 2 +2275 22 5 3 40 67.54722 2 +2276 22 6 7 37 79.03638 4 +2277 22 7 7 35 82.02199 2 +2278 22 8 7 36 71.13051 2 +2279 22 9 7 38 66.75789 2 +2280 22 10 7 40 58.42279 2 +2281 22 11 11 37 63.75342 2 +2282 22 12 11 35 57.54791 2 +2283 22 13 11 33 53.00352 2 +2284 22 14 11 36 51.00507 2 +2285 22 15 11 38 54.41753 2 +2286 22 16 11 40 42.66563 2 +2287 22 17 15 37 62.3908 2 +2288 22 18 15 35 50.74662 2 +2289 22 19 15 33 53.01485 2 +2290 22 20 15 36 46.62863 2 +2291 22 21 15 38 45.42403 2 +2292 22 22 15 40 43.93189 2 +2293 22 23 19 39 56.45326 4 +2294 22 24 19 37 47.31715 2 +2295 22 25 19 35 49.98127 2 +2296 22 26 19 36 47.26396 2 +2297 22 27 19 38 45.48454 2 +2298 22 28 19 40 45.79077 2 +2299 22 29 23 39 49.6489 2 +2300 22 30 23 37 47.56444 2 +2301 22 31 23 35 49.60206 2 +2302 22 32 23 36 49.52428 2 +2303 22 33 23 38 58.64428 2 +2304 22 34 27 37 49.8471 2 +2305 22 35 27 35 49.90689 2 +2306 22 36 27 33 48.15524 2 +2307 22 37 27 36 50.24842 2 +2308 22 38 27 38 44.57391 2 +2309 22 39 27 40 48.75235 2 +2310 22 40 31 39 46.97059 2 +2311 22 41 31 37 48.49506 2 +2312 22 42 31 35 50.74793 2 +2313 22 43 31 36 50.32441 2 +2314 22 44 31 38 45.99423 2 +2315 22 45 31 40 48.6175 2 +2316 22 46 35 37 50.31662 2 +2317 22 47 35 35 48.15698 2 +2318 22 48 35 36 51.34917 2 +2319 22 49 35 38 46.64504 2 +2320 22 50 35 40 55.02041 2 +2321 22 51 39 35 55.31924 2 +2322 22 52 39 33 50.32336 2 +2323 22 53 39 34 57.75168 2 +2324 22 54 39 36 45.86836 2 +2325 22 55 39 38 46.60228 2 +2326 22 56 39 40 46.30097 2 +2327 22 57 43 39 50.49279 2 +2328 22 58 43 37 48.21373 2 +2329 22 59 43 35 50.07659 2 +2330 22 60 43 33 57.81387 2 +2331 22 61 43 34 50.08708 2 +2332 22 62 43 36 57.75603 2 +2333 22 63 47 39 50.37421 2 +2334 22 64 47 37 46.96739 2 +2335 22 65 47 35 48.43032 2 +2336 22 66 47 36 46.43288 2 +2337 22 67 47 38 48.51947 2 +2338 22 68 51 39 57.65455 2 +2339 22 69 51 37 46.67508 2 +2340 22 70 51 35 49.65163 2 +2341 22 71 51 36 50.52713 2 +2342 22 72 51 38 48.70343 2 +2343 22 73 51 40 53.76459 2 +2344 22 74 55 39 45.25725 2 +2345 22 75 55 37 44.81103 2 +2346 22 76 55 35 52.47214 2 +2347 22 77 55 34 53.4459 2 +2348 22 78 55 36 50.20963 2 +2349 22 79 55 38 50.48265 2 +2350 22 80 59 37 44.916 2 +2351 22 81 59 35 48.44623 2 +2352 22 82 59 36 50.09888 2 +2353 22 83 59 38 47.68008 2 +2354 22 84 59 40 49.0327 2 +2355 22 85 63 39 47.356 2 +2356 22 86 63 37 46.14448 2 +2357 22 87 63 35 47.18965 2 +2358 22 88 63 36 49.54728 2 +2359 22 89 63 38 71.05998 2 +2360 22 90 63 40 52.20317 2 +2361 22 91 67 39 46.40101 2 +2362 22 92 67 37 43.50167 2 +2363 22 93 67 35 47.43915 2 +2364 22 94 67 34 50.46927 2 +2365 22 95 67 36 55.09557 2 +2366 22 96 67 38 65.67452 2 +2367 22 97 71 39 45.53399 2 +2368 22 98 71 37 48.3386 2 +2369 22 99 71 35 55.56802 2 +2370 22 100 71 34 59.38613 2 +2371 22 101 71 36 62.16453 2 +2372 22 102 71 38 78.46508 2 +2373 22 103 75 39 59.18654 2 +2374 22 104 75 37 65.99893 2 +2375 22 105 75 35 70.81608 2 +2376 22 106 75 36 72.0394 2 +2377 22 107 75 38 73.03673 2 +2378 22 108 79 39 72.52673 2 +2379 22 109 79 37 77.90768 4 +2380 22 110 79 35 86.63157 2 +2381 22 111 79 36 91.98945 2 +2382 22 112 79 38 90.19345 4 +2383 22 113 79 40 99.15104 2 +2384 23 0 4 5 73.18042 2 +2385 23 1 4 3 70.8965 2 +2386 23 2 4 1 61.6334 2 +2387 23 3 4 2 67.31832 2 +2388 23 4 4 4 53.78557 2 +2389 23 5 4 6 49.62423 2 +2390 23 6 7 39 93.15055 4 +2391 23 7 8 3 66.05162 2 +2392 23 8 8 1 46.5992 2 +2393 23 9 8 2 48.74446 2 +2394 23 10 8 4 60.50511 2 +2395 23 11 11 39 68.34699 2 +2396 23 12 12 3 101.41908 2 +2397 23 13 12 1 35.67243 2 +2398 23 14 12 2 35.0937 2 +2399 23 15 12 4 30.96685 2 +2400 23 16 12 6 31.87769 2 +2401 23 17 15 39 61.49909 2 +2402 23 18 16 3 38.61036 2 +2403 23 19 16 1 35.38831 2 +2404 23 20 16 2 30.36494 2 +2405 23 21 16 4 27.62296 2 +2406 23 22 16 6 28.63187 2 +2407 23 23 20 3 37.99764 2 +2408 23 24 20 1 34.29518 2 +2409 23 25 20 2 99.93767 2 +2410 23 26 20 4 34.32123 2 +2411 23 27 20 6 27.88882 2 +2412 23 28 24 5 38.31992 2 +2413 23 29 24 3 30.92671 2 +2414 23 30 24 1 33.74907 2 +2415 23 31 24 2 40.00183 2 +2416 23 32 24 4 32.60568 2 +2417 23 33 23 40 58.76601 2 +2418 23 34 27 39 74.13614 2 +2419 23 35 28 5 29.52622 2 +2420 23 36 28 3 38.22933 2 +2421 23 37 28 1 32.57519 2 +2422 23 38 28 2 33.4911 2 +2423 23 39 28 4 36.04094 2 +2424 23 40 32 5 33.52335 2 +2425 23 41 32 3 36.54117 2 +2426 23 42 32 1 32.49433 2 +2427 23 43 32 2 38.85833 2 +2428 23 44 32 4 30.34988 2 +2429 23 45 32 6 29.82211 2 +2430 23 46 35 39 68.07797 4 +2431 23 47 36 3 38.07139 2 +2432 23 48 36 1 38.92055 2 +2433 23 49 36 2 30.07974 2 +2434 23 50 36 4 42.61062 2 +2435 23 51 39 39 61.12777 2 +2436 23 52 39 37 59.32776 2 +2437 23 53 40 3 31.26685 2 +2438 23 54 40 1 29.45254 2 +2439 23 55 40 2 33.00404 2 +2440 23 56 40 4 37.83523 2 +2441 23 57 44 3 52.21989 2 +2442 23 58 44 1 33.21048 2 +2443 23 59 44 2 33.03054 2 +2444 23 60 44 4 32.62479 2 +2445 23 61 43 38 61.16033 2 +2446 23 62 43 40 60.59926 2 +2447 23 63 48 3 97.33919 2 +2448 23 64 48 1 32.09356 2 +2449 23 65 48 2 32.16932 2 +2450 23 66 48 4 35.93726 2 +2451 23 67 47 40 61.82585 2 +2452 23 68 52 5 48.20749 2 +2453 23 69 52 3 40.83196 2 +2454 23 70 52 1 35.07991 2 +2455 23 71 52 2 37.53869 2 +2456 23 72 52 4 43.12882 2 +2457 23 73 52 6 43.05118 2 +2458 23 74 56 3 33.8444 2 +2459 23 75 56 1 30.77263 2 +2460 23 76 56 2 41.2973 2 +2461 23 77 56 4 36.82598 2 +2462 23 78 56 6 28.46461 2 +2463 23 79 55 40 63.63234 2 +2464 23 80 59 39 55.85349 2 +2465 23 81 60 3 26.69793 2 +2466 23 82 60 1 35.95474 2 +2467 23 83 60 2 32.9638 2 +2468 23 84 60 4 31.55173 2 +2469 23 85 60 6 45.61164 2 +2470 23 86 64 5 27.88973 2 +2471 23 87 64 3 40.4497 2 +2472 23 88 64 1 36.90937 2 +2473 23 89 64 2 37.74139 2 +2474 23 90 64 4 35.19507 2 +2475 23 91 68 5 29.23896 2 +2476 23 92 68 3 28.52371 2 +2477 23 93 68 1 33.76404 2 +2478 23 94 68 2 32.45851 2 +2479 23 95 68 4 37.12904 2 +2480 23 96 67 40 61.70516 2 +2481 23 97 72 5 32.18604 2 +2482 23 98 72 3 32.7569 2 +2483 23 99 72 1 32.88691 2 +2484 23 100 72 2 34.31874 2 +2485 23 101 72 4 37.37858 2 +2486 23 102 71 40 87.86669 2 +2487 23 103 76 3 32.56077 2 +2488 23 104 76 1 49.13439 2 +2489 23 105 76 2 43.93583 2 +2490 23 106 76 4 47.11047 2 +2491 23 107 75 40 90.46866 2 +2492 23 108 80 5 50.10258 2 +2493 23 109 80 3 54.86504 2 +2494 23 110 80 1 66.03033 2 +2495 23 111 80 2 58.29613 2 +2496 23 112 80 4 62.18596 2 +2497 23 113 80 6 65.42139 2 +2498 24 0 4 11 85.39124 2 +2499 24 1 4 9 79.86025 2 +2500 24 2 4 7 82.31246 2 +2501 24 3 4 8 73.92355 2 +2502 24 4 4 10 68.60786 2 +2503 24 5 4 12 60.48593 2 +2504 24 6 8 9 73.41319 2 +2505 24 7 8 7 69.47137 4 +2506 24 8 8 5 61.90892 2 +2507 24 9 8 6 60.85531 2 +2508 24 10 8 8 55.9415 2 +2509 24 11 8 10 47.2253 2 +2510 24 12 12 9 56.60769 2 +2511 24 13 12 7 50.90091 2 +2512 24 14 12 5 42.08683 2 +2513 24 15 12 8 42.8179 2 +2514 24 16 12 10 44.50373 2 +2515 24 17 12 12 36.32121 2 +2516 24 18 16 9 43.77557 2 +2517 24 19 16 7 59.48651 2 +2518 24 20 16 5 43.24675 2 +2519 24 21 16 8 40.00215 2 +2520 24 22 16 10 37.94233 2 +2521 24 23 20 9 57.6844 2 +2522 24 24 20 7 49.64151 2 +2523 24 25 20 5 40.59387 2 +2524 24 26 20 8 40.02836 2 +2525 24 27 20 10 38.99629 2 +2526 24 28 20 12 36.20947 2 +2527 24 29 24 11 45.58231 2 +2528 24 30 24 9 49.68278 2 +2529 24 31 24 7 39.64387 2 +2530 24 32 24 6 44.93945 2 +2531 24 33 24 8 41.32915 2 +2532 24 34 24 10 48.11957 2 +2533 24 35 28 11 46.01272 2 +2534 24 36 28 9 41.77264 2 +2535 24 37 28 7 40.10921 2 +2536 24 38 28 6 44.72194 2 +2537 24 39 28 8 37.34342 2 +2538 24 40 28 10 49.24686 2 +2539 24 41 32 9 38.68486 2 +2540 24 42 32 7 49.54498 2 +2541 24 43 32 8 45.95356 2 +2542 24 44 32 10 41.63617 2 +2543 24 45 32 12 41.60911 2 +2544 24 46 36 9 64.23495 2 +2545 24 47 36 7 44.38704 2 +2546 24 48 36 5 53.31602 2 +2547 24 49 36 6 47.87523 2 +2548 24 50 36 8 43.14984 2 +2549 24 51 36 10 49.79364 2 +2550 24 52 40 9 45.49096 2 +2551 24 53 40 7 38.89893 2 +2552 24 54 40 5 38.49616 2 +2553 24 55 40 6 44.29971 2 +2554 24 56 40 8 39.68097 2 +2555 24 57 40 10 50.09503 2 +2556 24 58 44 9 45.9629 2 +2557 24 59 44 7 42.45231 2 +2558 24 60 44 5 40.13192 2 +2559 24 61 44 6 39.41129 2 +2560 24 62 44 8 39.64169 2 +2561 24 63 44 10 46.32829 2 +2562 24 64 48 9 47.85416 2 +2563 24 65 48 7 38.71617 2 +2564 24 66 48 5 44.29896 2 +2565 24 67 48 6 44.50146 2 +2566 24 68 48 8 53.32417 2 +2567 24 69 48 10 68.68265 2 +2568 24 70 52 11 45.87787 2 +2569 24 71 52 9 37.1462 2 +2570 24 72 52 7 46.41852 2 +2571 24 73 52 8 39.88617 2 +2572 24 74 52 10 38.91964 2 +2573 24 75 56 9 48.23207 2 +2574 24 76 56 7 46.43613 2 +2575 24 77 56 5 42.37007 2 +2576 24 78 56 8 42.42464 2 +2577 24 79 56 10 40.27913 2 +2578 24 80 56 12 39.38365 2 +2579 24 81 60 9 45.6225 2 +2580 24 82 60 7 39.20731 2 +2581 24 83 60 5 42.44545 2 +2582 24 84 60 8 39.0974 2 +2583 24 85 60 10 47.83168 2 +2584 24 86 60 12 46.32419 2 +2585 24 87 64 11 36.98512 2 +2586 24 88 64 9 37.71615 2 +2587 24 89 64 7 108.00507 2 +2588 24 90 64 6 42.5265 2 +2589 24 91 64 8 88.06311 2 +2590 24 92 64 10 51.59006 2 +2591 24 93 68 9 40.38932 2 +2592 24 94 68 7 38.66943 2 +2593 24 95 68 6 40.45601 2 +2594 24 96 68 8 53.87908 2 +2595 24 97 68 10 44.19252 2 +2596 24 98 72 11 36.48635 2 +2597 24 99 72 9 39.27775 2 +2598 24 100 72 7 49.48052 2 +2599 24 101 72 6 42.26134 2 +2600 24 102 72 8 44.18908 2 +2601 24 103 72 10 63.89413 2 +2602 24 104 76 9 42.04441 2 +2603 24 105 76 7 53.76703 2 +2604 24 106 76 5 62.25222 2 +2605 24 107 76 6 57.23211 2 +2606 24 108 76 8 74.17939 2 +2607 24 109 76 10 68.20195 2 +2608 24 110 80 11 55.02058 2 +2609 24 111 80 9 69.76685 2 +2610 24 112 80 7 71.54428 2 +2611 24 113 80 8 81.38043 2 +2612 24 114 80 10 77.51752 2 +2613 24 115 80 12 93.77993 2 +2614 25 0 4 17 93.8046 2 +2615 25 1 4 15 95.73576 4 +2616 25 2 4 13 86.59553 2 +2617 25 3 4 14 83.24705 2 +2618 25 4 4 16 71.88336 2 +2619 25 5 4 18 75.33951 2 +2620 25 6 8 15 88.88225 2 +2621 25 7 8 13 70.48356 2 +2622 25 8 8 11 72.32512 4 +2623 25 9 8 12 72.9828 2 +2624 25 10 8 14 66.88885 2 +2625 25 11 8 16 109.92701 2 +2626 25 12 12 15 59.1671 2 +2627 25 13 12 13 56.8193 2 +2628 25 14 12 11 50.54409 2 +2629 25 15 12 14 46.67349 2 +2630 25 16 12 16 47.44488 2 +2631 25 17 16 15 61.83956 2 +2632 25 18 16 13 52.06068 2 +2633 25 19 16 11 52.7401 2 +2634 25 20 16 12 56.70841 2 +2635 25 21 16 14 51.13847 2 +2636 25 22 16 16 47.388 2 +2637 25 23 20 15 59.24543 2 +2638 25 24 20 13 57.5895 4 +2639 25 25 20 11 51.36193 2 +2640 25 26 20 14 49.92636 2 +2641 25 27 20 16 45.74993 2 +2642 25 28 20 18 44.69274 2 +2643 25 29 24 17 69.82908 2 +2644 25 30 24 15 59.39501 2 +2645 25 31 24 13 47.2682 2 +2646 25 32 24 12 50.93112 2 +2647 25 33 24 14 47.60025 2 +2648 25 34 24 16 48.83212 2 +2649 25 35 28 17 56.22651 2 +2650 25 36 28 15 46.92003 2 +2651 25 37 28 13 48.25331 2 +2652 25 38 28 12 49.94313 2 +2653 25 39 28 14 50.52013 2 +2654 25 40 28 16 45.29361 2 +2655 25 41 32 15 60.49848 2 +2656 25 42 32 13 47.50715 2 +2657 25 43 32 11 48.65074 2 +2658 25 44 32 14 58.2033 2 +2659 25 45 32 16 50.79458 2 +2660 25 46 36 15 65.61861 2 +2661 25 47 36 13 48.8844 2 +2662 25 48 36 11 60.94531 2 +2663 25 49 36 12 52.28039 2 +2664 25 50 36 14 48.69352 2 +2665 25 51 36 16 45.48739 2 +2666 25 52 40 15 50.64221 2 +2667 25 53 40 13 47.60955 2 +2668 25 54 40 11 48.98315 2 +2669 25 55 40 12 47.25271 2 +2670 25 56 40 14 56.97939 2 +2671 25 57 40 16 55.24451 2 +2672 25 58 44 15 49.04836 2 +2673 25 59 44 13 49.0135 2 +2674 25 60 44 11 50.6646 2 +2675 25 61 44 12 49.01728 2 +2676 25 62 44 14 63.84098 2 +2677 25 63 44 16 58.71303 2 +2678 25 64 48 15 55.03662 2 +2679 25 65 48 13 46.70147 2 +2680 25 66 48 11 49.66959 2 +2681 25 67 48 12 51.62618 2 +2682 25 68 48 14 49.65839 2 +2683 25 69 48 16 55.19248 2 +2684 25 70 52 15 46.18439 2 +2685 25 71 52 13 51.32666 2 +2686 25 72 52 12 50.88979 2 +2687 25 73 52 14 47.55912 2 +2688 25 74 52 16 53.97026 2 +2689 25 75 56 15 48.58248 2 +2690 25 76 56 13 48.46595 2 +2691 25 77 56 11 48.19798 2 +2692 25 78 56 14 53.25342 2 +2693 25 79 56 16 47.56993 2 +2694 25 80 56 18 56.69318 2 +2695 25 81 60 15 46.41187 2 +2696 25 82 60 13 47.5239 2 +2697 25 83 60 11 53.55425 2 +2698 25 84 60 14 49.64151 2 +2699 25 85 60 16 49.06619 2 +2700 25 86 60 18 62.99771 2 +2701 25 87 64 17 46.56611 2 +2702 25 88 64 15 46.36979 2 +2703 25 89 64 13 50.11418 2 +2704 25 90 64 12 55.20812 4 +2705 25 91 64 14 59.87654 2 +2706 25 92 64 16 62.05975 2 +2707 25 93 68 15 48.51633 2 +2708 25 94 68 13 100.38101 2 +2709 25 95 68 11 57.74057 2 +2710 25 96 68 12 61.93646 2 +2711 25 97 68 14 56.27968 2 +2712 25 98 68 16 73.29282 2 +2713 25 99 72 15 47.36346 2 +2714 25 100 72 13 51.37801 2 +2715 25 101 72 12 50.38159 2 +2716 25 102 72 14 59.28474 2 +2717 25 103 72 16 56.76344 2 +2718 25 104 76 15 49.81469 2 +2719 25 105 76 13 61.69091 2 +2720 25 106 76 11 68.41158 2 +2721 25 107 76 12 81.32277 2 +2722 25 108 76 14 70.85832 2 +2723 25 109 76 16 95.38416 2 +2724 25 110 80 17 70.54117 2 +2725 25 111 80 15 74.16815 2 +2726 25 112 80 13 89.02601 2 +2727 25 113 80 14 87.64732 4 +2728 25 114 80 16 85.68164 2 +2729 25 115 80 18 95.08784 2 +2730 26 0 4 23 98.93595 2 +2731 26 1 4 21 93.91775 2 +2732 26 2 4 19 92.35582 2 +2733 26 3 4 20 99.06268 2 +2734 26 4 4 22 80.02553 2 +2735 26 5 8 21 102.23959 4 +2736 26 6 8 19 89.39604 2 +2737 26 7 8 17 89.25705 4 +2738 26 8 8 18 79.16469 2 +2739 26 9 8 20 73.64455 2 +2740 26 10 8 22 67.9335 2 +2741 26 11 12 21 77.87857 2 +2742 26 12 12 19 72.2597 2 +2743 26 13 12 17 59.1963 2 +2744 26 14 12 18 67.02393 2 +2745 26 15 12 20 56.0546 2 +2746 26 16 12 22 55.02569 2 +2747 26 17 16 21 72.76047 2 +2748 26 18 16 19 58.53962 2 +2749 26 19 16 17 60.09934 2 +2750 26 20 16 18 72.49055 2 +2751 26 21 16 20 53.43031 2 +2752 26 22 16 22 54.98993 2 +2753 26 23 20 21 77.39152 2 +2754 26 24 20 19 60.62447 2 +2755 26 25 20 17 59.09683 2 +2756 26 26 20 20 61.92523 2 +2757 26 27 20 22 54.14714 2 +2758 26 28 20 24 53.30307 2 +2759 26 29 24 23 70.94764 2 +2760 26 30 24 21 55.72355 2 +2761 26 31 24 19 56.58973 2 +2762 26 32 24 18 58.07225 2 +2763 26 33 24 20 56.52606 2 +2764 26 34 24 22 68.89414 2 +2765 26 35 28 21 57.30434 2 +2766 26 36 28 19 56.5479 2 +2767 26 37 28 18 60.91209 2 +2768 26 38 28 20 56.06228 2 +2769 26 39 28 22 55.19238 2 +2770 26 40 32 21 64.53661 2 +2771 26 41 32 19 63.621 2 +2772 26 42 32 17 57.12329 2 +2773 26 43 32 18 63.75997 2 +2774 26 44 32 20 53.99112 2 +2775 26 45 32 22 62.99176 2 +2776 26 46 36 21 67.65821 4 +2777 26 47 36 19 57.35103 2 +2778 26 48 36 17 58.17967 2 +2779 26 49 36 18 61.6088 2 +2780 26 50 36 20 66.7888 2 +2781 26 51 36 22 56.824 2 +2782 26 52 40 21 64.54111 2 +2783 26 53 40 19 54.65712 2 +2784 26 54 40 17 55.5245 2 +2785 26 55 40 18 57.57983 2 +2786 26 56 40 20 57.11328 2 +2787 26 57 40 22 58.15834 2 +2788 26 58 44 21 57.78341 2 +2789 26 59 44 19 60.26818 2 +2790 26 60 44 17 60.10456 2 +2791 26 61 44 18 57.89155 2 +2792 26 62 44 20 64.67392 2 +2793 26 63 44 22 69.10494 2 +2794 26 64 48 21 71.48287 2 +2795 26 65 48 19 55.99531 2 +2796 26 66 48 17 57.10966 2 +2797 26 67 48 18 58.80982 2 +2798 26 68 48 20 59.12972 2 +2799 26 69 48 22 67.04589 2 +2800 26 70 52 21 72.62918 2 +2801 26 71 52 19 56.43349 2 +2802 26 72 52 17 60.85108 2 +2803 26 73 52 18 56.4535 2 +2804 26 74 52 20 59.7036 2 +2805 26 75 52 22 64.12453 2 +2806 26 76 56 21 56.10006 2 +2807 26 77 56 19 56.5186 2 +2808 26 78 56 17 58.27118 2 +2809 26 79 56 20 55.26201 2 +2810 26 80 56 22 58.09775 2 +2811 26 81 60 21 53.41999 2 +2812 26 82 60 19 56.01303 2 +2813 26 83 60 17 56.96461 2 +2814 26 84 60 20 55.44868 2 +2815 26 85 60 22 58.48516 2 +2816 26 86 60 24 57.0388 2 +2817 26 87 64 23 57.94774 2 +2818 26 88 64 21 52.26259 2 +2819 26 89 64 19 56.98005 2 +2820 26 90 64 18 57.45 2 +2821 26 91 64 20 64.17547 2 +2822 26 92 64 22 65.20377 2 +2823 26 93 68 21 56.31592 2 +2824 26 94 68 19 56.61287 2 +2825 26 95 68 17 61.59264 2 +2826 26 96 68 18 61.29753 2 +2827 26 97 68 20 64.57474 2 +2828 26 98 68 22 66.67537 2 +2829 26 99 72 21 56.14239 2 +2830 26 100 72 19 60.58603 2 +2831 26 101 72 17 72.55691 2 +2832 26 102 72 18 59.12941 2 +2833 26 103 72 20 61.33095 2 +2834 26 104 72 22 79.58542 2 +2835 26 105 76 21 65.33929 2 +2836 26 106 76 19 74.46331 2 +2837 26 107 76 17 79.58365 2 +2838 26 108 76 18 79.22639 2 +2839 26 109 76 20 95.71105 4 +2840 26 110 76 22 87.09166 2 +2841 26 111 80 21 84.39489 2 +2842 26 112 80 19 91.70002 2 +2843 26 113 80 20 93.82442 2 +2844 26 114 80 22 92.69284 2 +2845 26 115 80 24 101.09316 2 +2846 27 0 4 29 106.52357 2 +2847 27 1 4 27 107.15521 4 +2848 27 2 4 25 106.6373 2 +2849 27 3 4 24 109.89688 2 +2850 27 4 4 26 96.03514 2 +2851 27 5 4 28 94.36563 2 +2852 27 6 8 27 105.36806 4 +2853 27 7 8 25 96.17763 4 +2854 27 8 8 23 92.67097 4 +2855 27 9 8 24 91.42277 2 +2856 27 10 8 26 80.46561 2 +2857 27 11 8 28 77.206 2 +2858 27 12 12 27 82.68492 4 +2859 27 13 12 25 77.4411 2 +2860 27 14 12 23 72.21746 2 +2861 27 15 12 24 68.71218 2 +2862 27 16 12 26 64.68351 2 +2863 27 17 12 28 63.42568 2 +2864 27 18 16 27 84.50802 2 +2865 27 19 16 25 66.7404 2 +2866 27 20 16 23 68.74588 2 +2867 27 21 16 24 67.63323 2 +2868 27 22 16 26 61.7996 2 +2869 27 23 16 28 61.45866 2 +2870 27 24 20 27 76.7798 2 +2871 27 25 20 25 74.26462 2 +2872 27 26 20 23 66.27545 2 +2873 27 27 20 26 64.70966 2 +2874 27 28 20 28 62.89193 2 +2875 27 29 20 30 71.91501 2 +2876 27 30 24 27 74.38146 4 +2877 27 31 24 25 66.24041 2 +2878 27 32 24 24 65.6603 2 +2879 27 33 24 26 77.91935 2 +2880 27 34 24 28 63.68367 2 +2881 27 35 28 27 83.43135 2 +2882 27 36 28 25 67.81319 2 +2883 27 37 28 23 69.8677 2 +2884 27 38 28 24 69.79226 2 +2885 27 39 28 26 61.78483 2 +2886 27 40 28 28 63.02743 2 +2887 27 41 32 27 73.21508 2 +2888 27 42 32 25 78.45378 2 +2889 27 43 32 23 65.23343 2 +2890 27 44 32 24 72.1967 2 +2891 27 45 32 26 62.39832 2 +2892 27 46 32 28 64.24521 2 +2893 27 47 36 27 74.91778 4 +2894 27 48 36 25 65.95396 2 +2895 27 49 36 23 65.78245 2 +2896 27 50 36 24 66.58682 2 +2897 27 51 36 26 62.50454 2 +2898 27 52 36 28 68.24171 2 +2899 27 53 40 27 72.43636 2 +2900 27 54 40 25 64.27699 2 +2901 27 55 40 23 63.71283 2 +2902 27 56 40 24 63.93649 2 +2903 27 57 40 26 64.57007 2 +2904 27 58 40 28 66.33252 2 +2905 27 59 44 27 64.21121 2 +2906 27 60 44 25 64.18944 2 +2907 27 61 44 23 67.67985 2 +2908 27 62 44 24 64.92502 2 +2909 27 63 44 26 67.19458 2 +2910 27 64 44 28 73.4147 2 +2911 27 65 48 27 71.49138 2 +2912 27 66 48 25 62.80738 2 +2913 27 67 48 23 65.12103 2 +2914 27 68 48 24 66.14148 2 +2915 27 69 48 26 68.68854 2 +2916 27 70 48 28 73.37969 2 +2917 27 71 52 27 75.69617 2 +2918 27 72 52 25 64.15654 2 +2919 27 73 52 23 67.37626 2 +2920 27 74 52 24 68.44191 2 +2921 27 75 52 26 75.29949 4 +2922 27 76 52 28 75.23335 4 +2923 27 77 56 27 66.98037 2 +2924 27 78 56 25 64.81919 2 +2925 27 79 56 23 73.94089 2 +2926 27 80 56 24 64.99726 2 +2927 27 81 56 26 68.20266 2 +2928 27 82 56 28 81.99028 4 +2929 27 83 60 27 61.66599 2 +2930 27 84 60 25 63.27496 2 +2931 27 85 60 23 65.13828 2 +2932 27 86 60 26 65.97204 2 +2933 27 87 60 28 66.4397 2 +2934 27 88 64 29 64.54232 2 +2935 27 89 64 27 60.88746 2 +2936 27 90 64 25 63.3826 2 +2937 27 91 64 24 68.14398 2 +2938 27 92 64 26 74.24542 4 +2939 27 93 64 28 76.80891 4 +2940 27 94 68 27 63.38156 2 +2941 27 95 68 25 62.92865 2 +2942 27 96 68 23 65.65994 2 +2943 27 97 68 24 70.35578 2 +2944 27 98 68 26 66.58053 2 +2945 27 99 68 28 81.80469 2 +2946 27 100 72 27 63.19173 2 +2947 27 101 72 25 67.0689 2 +2948 27 102 72 23 72.36028 2 +2949 27 103 72 24 68.88411 2 +2950 27 104 72 26 76.96557 2 +2951 27 105 72 28 81.78421 4 +2952 27 106 76 27 78.04319 2 +2953 27 107 76 25 82.99319 2 +2954 27 108 76 23 89.70109 4 +2955 27 109 76 24 87.72286 2 +2956 27 110 76 26 97.8813 2 +2957 27 111 76 28 96.52807 2 +2958 27 112 80 27 93.66612 2 +2959 27 113 80 25 100.59124 2 +2960 27 114 80 23 104.00127 2 +2961 27 115 80 26 105.96507 2 +2962 27 116 80 28 107.37998 2 +2963 27 117 80 30 108.62174 2 +2964 28 0 4 35 108.73743 2 +2965 28 1 4 33 105.9988 2 +2966 28 2 4 31 109.4986 4 +2967 28 3 4 30 111.58585 2 +2968 28 4 4 32 101.62604 2 +2969 28 5 4 34 99.36226 2 +2970 28 6 8 33 109.57234 4 +2971 28 7 8 31 99.60564 2 +2972 28 8 8 29 99.49628 2 +2973 28 9 8 30 102.70289 2 +2974 28 10 8 32 91.04899 2 +2975 28 11 8 34 80.45325 2 +2976 28 12 12 33 91.79529 2 +2977 28 13 12 31 86.74644 2 +2978 28 14 12 29 76.66081 2 +2979 28 15 12 30 81.30857 2 +2980 28 16 12 32 72.09619 2 +2981 28 17 12 34 74.78235 2 +2982 28 18 16 33 87.296 2 +2983 28 19 16 31 82.86088 2 +2984 28 20 16 29 80.84176 2 +2985 28 21 16 30 73.56065 2 +2986 28 22 16 32 72.20474 2 +2987 28 23 16 34 68.47808 2 +2988 28 24 20 33 80.47305 2 +2989 28 25 20 31 84.03099 2 +2990 28 26 20 29 74.02247 2 +2991 28 27 20 32 71.86714 2 +2992 28 28 20 34 74.27919 2 +2993 28 29 24 33 91.10033 2 +2994 28 30 24 31 87.35753 4 +2995 28 31 24 29 76.67701 2 +2996 28 32 24 30 74.31336 2 +2997 28 33 24 32 73.05967 2 +2998 28 34 24 34 80.69131 4 +2999 28 35 28 33 88.25214 2 +3000 28 36 28 31 76.16078 2 +3001 28 37 28 29 75.88529 2 +3002 28 38 28 30 83.53217 2 +3003 28 39 28 32 70.19723 2 +3004 28 40 28 34 71.87094 2 +3005 28 41 32 33 85.76078 2 +3006 28 42 32 31 73.25329 2 +3007 28 43 32 29 75.28519 2 +3008 28 44 32 30 79.0703 4 +3009 28 45 32 32 69.92955 2 +3010 28 46 32 34 74.66373 2 +3011 28 47 36 33 87.34454 2 +3012 28 48 36 31 73.33389 2 +3013 28 49 36 29 72.99343 2 +3014 28 50 36 30 74.6701 2 +3015 28 51 36 32 71.74942 2 +3016 28 52 36 34 81.26535 2 +3017 28 53 40 33 81.73443 4 +3018 28 54 40 31 78.26851 2 +3019 28 55 40 29 72.47952 2 +3020 28 56 40 30 72.82467 2 +3021 28 57 40 32 81.56096 2 +3022 28 58 40 34 74.60423 2 +3023 28 59 44 33 73.44983 2 +3024 28 60 44 31 72.84066 2 +3025 28 61 44 29 72.81924 2 +3026 28 62 44 30 72.74804 2 +3027 28 63 44 32 71.46703 2 +3028 28 64 44 34 80.95613 4 +3029 28 65 48 33 84.35308 2 +3030 28 66 48 31 72.33296 2 +3031 28 67 48 29 99.74374 2 +3032 28 68 48 30 73.38402 2 +3033 28 69 48 32 78.96681 2 +3034 28 70 48 34 84.77321 2 +3035 28 71 52 33 71.30306 2 +3036 28 72 52 31 73.50458 2 +3037 28 73 52 29 73.16998 2 +3038 28 74 52 30 112.43164 2 +3039 28 75 52 32 81.60143 4 +3040 28 76 52 34 85.63614 2 +3041 28 77 56 33 71.71728 2 +3042 28 78 56 31 71.73232 2 +3043 28 79 56 29 79.77135 2 +3044 28 80 56 30 75.782 2 +3045 28 81 56 32 75.72977 2 +3046 28 82 56 34 92.27672 2 +3047 28 83 60 33 69.84801 2 +3048 28 84 60 31 72.0367 2 +3049 28 85 60 29 74.51846 2 +3050 28 86 60 30 76.41547 2 +3051 28 87 60 32 84.35071 4 +3052 28 88 60 34 90.08891 2 +3053 28 89 64 33 73.42132 2 +3054 28 90 64 31 69.4805 2 +3055 28 91 64 30 76.62145 2 +3056 28 92 64 32 90.71159 2 +3057 28 93 64 34 86.05636 2 +3058 28 94 68 33 68.4785 2 +3059 28 95 68 31 70.97888 2 +3060 28 96 68 29 83.19893 2 +3061 28 97 68 30 80.6996 2 +3062 28 98 68 32 75.159 2 +3063 28 99 68 34 80.36258 2 +3064 28 100 72 33 68.76362 2 +3065 28 101 72 31 76.97222 2 +3066 28 102 72 29 83.18263 2 +3067 28 103 72 30 75.4601 2 +3068 28 104 72 32 86.34683 2 +3069 28 105 72 34 86.39324 2 +3070 28 106 76 33 88.45948 4 +3071 28 107 76 31 85.589 2 +3072 28 108 76 29 92.67302 2 +3073 28 109 76 30 97.16646 2 +3074 28 110 76 32 102.10178 4 +3075 28 111 76 34 108.31992 2 +3076 28 112 80 33 99.10502 2 +3077 28 113 80 31 103.97462 2 +3078 28 114 80 29 112.08329 2 +3079 28 115 80 32 107.24494 4 +3080 28 116 80 34 113.67959 4 +3081 28 117 80 36 112.06373 4 +3082 29 0 4 39 110.80987 2 +3083 29 1 4 37 113.26903 4 +3084 29 2 4 36 110.86976 4 +3085 29 3 4 38 110.34537 2 +3086 29 4 4 40 109.96111 2 +3087 29 5 8 39 107.85968 2 +3088 29 6 8 37 109.00092 4 +3089 29 7 8 35 111.34988 4 +3090 29 8 8 36 109.8584 4 +3091 29 9 8 38 111.40725 2 +3092 29 10 8 40 94.48074 2 +3093 29 11 12 39 99.13998 2 +3094 29 12 12 37 96.43742 2 +3095 29 13 12 35 98.50704 2 +3096 29 14 12 36 94.58418 2 +3097 29 15 12 38 83.98474 2 +3098 29 16 12 40 80.20915 2 +3099 29 17 16 39 98.9945 2 +3100 29 18 16 37 97.82812 2 +3101 29 19 16 35 82.57518 2 +3102 29 20 16 36 84.90994 2 +3103 29 21 16 38 82.7731 2 +3104 29 22 16 40 79.03977 2 +3105 29 23 20 39 99.28812 2 +3106 29 24 20 37 90.44073 2 +3107 29 25 20 35 93.07514 4 +3108 29 26 20 36 83.74982 2 +3109 29 27 20 38 78.92986 2 +3110 29 28 20 40 75.7442 2 +3111 29 29 24 39 97.21189 2 +3112 29 30 24 37 90.68201 4 +3113 29 31 24 35 84.12138 2 +3114 29 32 24 36 82.30319 2 +3115 29 33 24 38 80.17472 2 +3116 29 34 24 40 76.23891 2 +3117 29 35 28 39 90.151 2 +3118 29 36 28 37 94.20909 2 +3119 29 37 28 35 90.84894 2 +3120 29 38 28 36 87.50113 2 +3121 29 39 28 38 79.69378 2 +3122 29 40 28 40 79.04792 2 +3123 29 41 32 39 96.01607 2 +3124 29 42 32 37 80.06271 2 +3125 29 43 32 35 82.85801 2 +3126 29 44 32 36 80.82219 2 +3127 29 45 32 38 79.78122 2 +3128 29 46 32 40 81.63766 2 +3129 29 47 36 39 92.65544 2 +3130 29 48 36 37 90.82397 2 +3131 29 49 36 35 81.57126 2 +3132 29 50 36 36 82.33005 2 +3133 29 51 36 38 76.76776 2 +3134 29 52 36 40 94.18635 2 +3135 29 53 40 39 86.88041 2 +3136 29 54 40 37 82.206 2 +3137 29 55 40 35 86.23866 2 +3138 29 56 40 36 80.70979 2 +3139 29 57 40 38 93.12625 2 +3140 29 58 40 40 82.26973 2 +3141 29 59 44 39 79.20367 2 +3142 29 60 44 37 81.82068 2 +3143 29 61 44 35 81.77884 4 +3144 29 62 44 36 81.33551 2 +3145 29 63 44 38 80.87226 2 +3146 29 64 44 40 82.39351 2 +3147 29 65 48 39 78.36642 2 +3148 29 66 48 37 81.01044 2 +3149 29 67 48 35 80.17557 2 +3150 29 68 48 36 81.85224 2 +3151 29 69 48 38 81.44283 2 +3152 29 70 48 40 90.08846 2 +3153 29 71 52 39 77.59771 2 +3154 29 72 52 37 80.24152 2 +3155 29 73 52 35 83.31505 2 +3156 29 74 52 36 83.76795 2 +3157 29 75 52 38 81.28693 2 +3158 29 76 52 40 94.565 2 +3159 29 77 56 39 78.93782 2 +3160 29 78 56 37 78.52517 2 +3161 29 79 56 35 89.21222 2 +3162 29 80 56 36 83.30618 2 +3163 29 81 56 38 94.23699 2 +3164 29 82 56 40 89.86967 2 +3165 29 83 60 39 75.71091 2 +3166 29 84 60 37 79.293 2 +3167 29 85 60 35 82.24906 2 +3168 29 86 60 36 84.72289 2 +3169 29 87 60 38 84.26098 2 +3170 29 88 60 40 92.43424 2 +3171 29 89 64 39 79.26388 2 +3172 29 90 64 37 77.76624 2 +3173 29 91 64 35 85.5859 2 +3174 29 92 64 36 95.64382 4 +3175 29 93 64 38 94.73234 2 +3176 29 94 64 40 100.47554 2 +3177 29 95 68 39 79.70604 2 +3178 29 96 68 37 81.80344 2 +3179 29 97 68 35 85.70025 2 +3180 29 98 68 36 82.03887 2 +3181 29 99 68 38 94.60055 2 +3182 29 100 68 40 95.47272 2 +3183 29 101 72 39 76.68804 2 +3184 29 102 72 37 82.61925 2 +3185 29 103 72 35 90.36061 2 +3186 29 104 72 36 93.71859 2 +3187 29 105 72 38 99.5381 2 +3188 29 106 72 40 94.13219 2 +3189 29 107 76 39 94.22879 2 +3190 29 108 76 37 98.45006 2 +3191 29 109 76 35 105.35193 2 +3192 29 110 76 36 94.21158 2 +3193 29 111 76 38 111.73912 4 +3194 29 112 76 40 103.46997 2 +3195 29 113 80 39 113.38438 2 +3196 29 114 80 37 96.18448 2 +3197 29 115 80 35 113.4507 4 +3198 29 116 80 38 111.2533 3 +3199 29 117 80 40 109.87314 2 diff --git a/Detectors/TPC/base/files/LENGTH-OROC3.txt b/Detectors/TPC/base/files/LENGTH-OROC3.txt index 5f16b81b33bd4..6d5c098258e35 100644 --- a/Detectors/TPC/base/files/LENGTH-OROC3.txt +++ b/Detectors/TPC/base/files/LENGTH-OROC3.txt @@ -1,3200 +1,3200 @@ -0 0 0 1 5 114.58513 2 -1 0 1 1 3 111.62347 2 -2 0 2 1 1 107.05054 2 -3 0 3 1 2 109.07558 2 -4 0 4 1 4 107.39219 2 -5 0 5 1 6 108.21686 2 -6 0 6 5 5 106.69568 2 -7 0 7 5 3 104.70059 2 -8 0 8 5 1 106.16396 2 -9 0 9 5 2 112.97545 2 -10 0 10 5 4 109.86593 2 -11 0 11 5 6 113.25175 2 -12 0 12 9 5 109.46447 2 -13 0 13 9 3 110.34165 2 -14 0 14 9 1 111.41756 2 -15 0 15 9 2 106.1737 2 -16 0 16 9 4 115.58794 4 -17 0 17 9 6 114.7662 2 -18 0 18 13 5 108.76961 2 -19 0 19 13 3 107.79706 2 -20 0 20 13 1 108.80507 2 -21 0 21 13 2 107.86731 2 -22 0 22 13 4 112.40788 2 -23 0 23 13 6 115.96705 2 -24 0 24 17 5 106.39049 2 -25 0 25 17 3 106.29825 2 -26 0 26 17 1 108.15379 2 -27 0 27 17 2 106.70514 2 -28 0 28 17 4 109.4446 2 -29 0 29 17 6 114.34823 2 -30 0 30 21 5 105.32471 2 -31 0 31 21 3 109.23021 2 -32 0 32 21 1 106.19112 2 -33 0 33 21 2 107.84571 2 -34 0 34 21 4 111.2126 2 -35 0 35 25 5 107.9117 2 -36 0 36 25 3 104.08081 2 -37 0 37 25 1 108.0094 2 -38 0 38 25 2 104.6241 2 -39 0 39 25 4 109.8199 2 -40 0 40 25 6 112.47804 2 -41 0 41 29 5 106.61834 2 -42 0 42 29 3 111.48735 3 -43 0 43 29 1 104.3669 2 -44 0 44 29 2 102.64014 2 -45 0 45 29 4 107.14092 2 -46 0 46 29 6 112.80961 2 -47 0 47 33 5 107.30606 2 -48 0 48 33 3 103.95552 2 -49 0 49 33 1 109.22927 2 -50 0 50 33 2 101.93445 2 -51 0 51 33 4 107.00428 2 -52 0 52 33 6 110.80057 2 -53 0 53 37 5 110.5005 2 -54 0 54 37 3 105.83289 2 -55 0 55 37 1 104.2996 2 -56 0 56 37 2 105.07072 2 -57 0 57 37 4 105.80608 2 -58 0 58 37 6 108.21548 2 -59 0 59 41 5 108.26468 2 -60 0 60 41 3 105.87101 2 -61 0 61 41 1 103.80617 2 -62 0 62 41 2 105.41928 2 -63 0 63 41 4 104.83456 2 -64 0 64 41 6 108.97099 2 -65 0 65 45 5 111.5159 2 -66 0 66 45 3 105.83991 2 -67 0 67 45 1 103.85933 2 -68 0 68 45 2 101.66406 2 -69 0 69 45 4 110.42389 2 -70 0 70 45 6 107.42189 2 -71 0 71 49 5 110.13953 2 -72 0 72 49 3 111.52933 2 -73 0 73 49 1 101.46486 2 -74 0 74 49 2 104.41421 2 -75 0 75 49 4 105.49178 2 -76 0 76 49 6 105.88864 2 -77 0 77 53 5 110.74102 2 -78 0 78 53 3 109.34681 2 -79 0 79 53 1 107.43037 2 -80 0 80 53 2 104.05644 2 -81 0 81 53 4 106.47509 2 -82 0 82 53 6 108.081 2 -83 0 83 57 3 113.08776 2 -84 0 84 57 1 107.67714 2 -85 0 85 57 2 108.46762 2 -86 0 86 57 4 108.24488 2 -87 0 87 57 6 103.77419 2 -88 0 88 61 5 114.34864 2 -89 0 89 61 3 109.44502 2 -90 0 90 61 1 111.25271 2 -91 0 91 61 2 108.17801 2 -92 0 92 61 4 113.25973 2 -93 0 93 61 6 107.31669 2 -94 0 94 65 5 113.30662 2 -95 0 95 65 3 110.1436 2 -96 0 96 65 1 115.01258 2 -97 0 97 65 2 107.03019 2 -98 0 98 65 4 108.96715 2 -99 0 99 65 6 107.70468 2 -100 0 100 69 5 114.46901 2 -101 0 101 69 3 112.62637 2 -102 0 102 69 1 106.39231 2 -103 0 103 69 2 107.52191 2 -104 0 104 69 4 105.11332 2 -105 0 105 69 6 105.20051 2 -106 0 106 73 5 115.28973 4 -107 0 107 73 3 109.5416 2 -108 0 108 73 1 111.1938 2 -109 0 109 73 2 105.23094 2 -110 0 110 73 4 104.11001 2 -111 0 111 73 6 105.19562 2 -112 0 112 77 5 106.14389 2 -113 0 113 77 3 106.57454 2 -114 0 114 77 1 109.4641 2 -115 0 115 77 2 105.92865 2 -116 0 116 77 4 110.32302 2 -117 0 117 77 6 113.83627 2 -118 1 0 1 11 110.8657 2 -119 1 1 1 9 101.57055 2 -120 1 2 1 7 96.44939 2 -121 1 3 1 8 107.90001 2 -122 1 4 1 10 95.75839 2 -123 1 5 1 12 94.39763 2 -124 1 6 5 11 94.63485 2 -125 1 7 5 9 97.12891 2 -126 1 8 5 7 94.4015 2 -127 1 9 5 8 101.10192 2 -128 1 10 5 10 100.77394 2 -129 1 11 5 12 105.70185 4 -130 1 12 9 11 96.63668 2 -131 1 13 9 9 98.2336 2 -132 1 14 9 7 103.23099 2 -133 1 15 9 8 101.19954 2 -134 1 16 9 10 109.2982 4 -135 1 17 13 11 99.71934 2 -136 1 18 13 9 96.84161 2 -137 1 19 13 7 93.47266 2 -138 1 20 13 8 94.26028 2 -139 1 21 13 10 106.61631 2 -140 1 22 13 12 110.21176 4 -141 1 23 17 11 92.90873 2 -142 1 24 17 9 96.93753 2 -143 1 25 17 7 92.98145 2 -144 1 26 17 8 94.88363 2 -145 1 27 17 10 112.72886 4 -146 1 28 17 12 108.78666 2 -147 1 29 21 11 94.98026 2 -148 1 30 21 9 95.60635 2 -149 1 31 21 7 95.38686 2 -150 1 32 21 6 95.63871 2 -151 1 33 21 8 95.74943 2 -152 1 34 21 10 114.84458 4 -153 1 35 25 11 96.50186 2 -154 1 36 25 9 93.55037 2 -155 1 37 25 7 100.7829 2 -156 1 38 25 8 95.95737 2 -157 1 39 25 10 97.75199 2 -158 1 40 25 12 101.12177 2 -159 1 41 29 11 104.06825 4 -160 1 42 29 9 95.71662 2 -161 1 43 29 7 93.60154 2 -162 1 44 29 8 93.50723 2 -163 1 45 29 10 96.40873 2 -164 1 46 29 12 99.71839 2 -165 1 47 33 11 107.73441 2 -166 1 48 33 9 99.55549 2 -167 1 49 33 7 96.99675 2 -168 1 50 33 8 95.54252 2 -169 1 51 33 10 94.1822 2 -170 1 52 33 12 99.90073 2 -171 1 53 37 11 97.85342 2 -172 1 54 37 9 93.71148 2 -173 1 55 37 7 93.44764 2 -174 1 56 37 8 94.95665 2 -175 1 57 37 10 94.9724 2 -176 1 58 37 12 105.32916 4 -177 1 59 41 11 111.08135 2 -178 1 60 41 9 95.84022 2 -179 1 61 41 7 94.04778 2 -180 1 62 41 8 94.05729 2 -181 1 63 41 10 93.8896 2 -182 1 64 41 12 98.24205 2 -183 1 65 45 11 104.9261 2 -184 1 66 45 9 95.42126 2 -185 1 67 45 7 94.83781 2 -186 1 68 45 8 92.14835 2 -187 1 69 45 10 99.5591 2 -188 1 70 45 12 95.66335 2 -189 1 71 49 11 109.36854 2 -190 1 72 49 9 101.04981 2 -191 1 73 49 7 94.39783 2 -192 1 74 49 8 93.18696 2 -193 1 75 49 10 97.05202 3 -194 1 76 49 12 95.31085 2 -195 1 77 53 11 106.95838 2 -196 1 78 53 9 104.63019 2 -197 1 79 53 7 97.43289 2 -198 1 80 53 8 92.23836 2 -199 1 81 53 10 95.07852 2 -200 1 82 53 12 103.14191 2 -201 1 83 57 9 112.70484 2 -202 1 84 57 7 101.7904 2 -203 1 85 57 5 91.5231 2 -204 1 86 57 8 92.71095 2 -205 1 87 57 10 96.95802 2 -206 1 88 57 12 93.44459 2 -207 1 89 61 11 107.46434 2 -208 1 90 61 9 102.99213 2 -209 1 91 61 7 94.19043 2 -210 1 92 61 8 95.72221 2 -211 1 93 61 10 94.11854 2 -212 1 94 61 12 95.08233 2 -213 1 95 65 11 111.60748 4 -214 1 96 65 9 108.02071 2 -215 1 97 65 7 96.7597 2 -216 1 98 65 8 101.11357 2 -217 1 99 65 10 95.09074 2 -218 1 100 65 12 93.87777 2 -219 1 101 69 9 105.83233 2 -220 1 102 69 7 98.73392 2 -221 1 103 69 8 106.54844 2 -222 1 104 69 10 98.22143 2 -223 1 105 69 12 103.25078 2 -224 1 106 73 11 110.56551 4 -225 1 107 73 9 105.56474 2 -226 1 108 73 7 102.42867 2 -227 1 109 73 8 104.53505 2 -228 1 110 73 10 95.00429 2 -229 1 111 73 12 98.29768 2 -230 1 112 77 11 100.80268 2 -231 1 113 77 9 95.56448 2 -232 1 114 77 7 106.08188 2 -233 1 115 77 8 103.74102 2 -234 1 116 77 10 107.55931 2 -235 1 117 77 12 101.48058 2 -236 2 0 1 17 114.72012 4 -237 2 1 1 15 105.39226 2 -238 2 2 1 13 102.47937 4 -239 2 3 1 14 101.58542 4 -240 2 4 1 16 91.91214 2 -241 2 5 1 18 87.38788 2 -242 2 6 5 17 89.51932 2 -243 2 7 5 15 86.2545 2 -244 2 8 5 13 83.01544 2 -245 2 9 5 14 85.07377 2 -246 2 10 5 16 94.94436 2 -247 2 11 5 18 90.21921 2 -248 2 12 9 17 84.0034 2 -249 2 13 9 15 85.33067 2 -250 2 14 9 13 93.90463 4 -251 2 15 9 12 86.1667 2 -252 2 16 9 14 96.37571 2 -253 2 17 9 16 106.59042 2 -254 2 18 13 17 87.06326 2 -255 2 19 13 15 84.09992 2 -256 2 20 13 13 82.95081 2 -257 2 21 13 14 84.77541 2 -258 2 22 13 16 103.66523 4 -259 2 23 13 18 104.28729 2 -260 2 24 17 17 82.83871 2 -261 2 25 17 15 82.44824 2 -262 2 26 17 13 85.56586 2 -263 2 27 17 14 98.50097 2 -264 2 28 17 16 102.73237 4 -265 2 29 17 18 103.86025 4 -266 2 30 21 17 84.45099 2 -267 2 31 21 15 83.38927 2 -268 2 32 21 13 83.48432 2 -269 2 33 21 12 81.75099 2 -270 2 34 21 14 83.77983 2 -271 2 35 21 16 90.42774 2 -272 2 36 25 17 86.38193 2 -273 2 37 25 15 83.55433 2 -274 2 38 25 13 86.57388 2 -275 2 39 25 14 85.82913 2 -276 2 40 25 16 96.9191 4 -277 2 41 25 18 95.48573 2 -278 2 42 29 17 85.02806 2 -279 2 43 29 15 82.64732 2 -280 2 44 29 13 82.23956 2 -281 2 45 29 14 81.48283 2 -282 2 46 29 16 86.57388 2 -283 2 47 29 18 100.06711 4 -284 2 48 33 17 85.01098 2 -285 2 49 33 15 83.74398 2 -286 2 50 33 13 83.60941 2 -287 2 51 33 14 83.60455 2 -288 2 52 33 16 92.60338 2 -289 2 53 33 18 95.4822 2 -290 2 54 37 17 92.36332 2 -291 2 55 37 15 83.12552 2 -292 2 56 37 13 86.39719 2 -293 2 57 37 14 84.26721 2 -294 2 58 37 16 83.83864 2 -295 2 59 37 18 95.25885 4 -296 2 60 41 17 100.26589 2 -297 2 61 41 15 84.34966 2 -298 2 62 41 13 83.38354 2 -299 2 63 41 14 84.47112 2 -300 2 64 41 16 82.94675 2 -301 2 65 41 18 86.83261 2 -302 2 66 45 17 97.85949 4 -303 2 67 45 15 92.31298 2 -304 2 68 45 13 82.3089 2 -305 2 69 45 14 85.27093 2 -306 2 70 45 16 90.03034 2 -307 2 71 45 18 86.04223 2 -308 2 72 49 17 97.90172 2 -309 2 73 49 15 103.69855 4 -310 2 74 49 13 84.99172 2 -311 2 75 49 14 108.37932 2 -312 2 76 49 16 83.82748 2 -313 2 77 49 18 85.64284 2 -314 2 78 53 17 96.30081 2 -315 2 79 53 15 95.27789 2 -316 2 80 53 13 89.11128 2 -317 2 81 53 14 83.32698 2 -318 2 82 53 16 85.5557 2 -319 2 83 53 18 96.2281 2 -320 2 84 57 15 96.87183 2 -321 2 85 57 13 98.38246 2 -322 2 86 57 11 81.12062 2 -323 2 87 57 14 88.10097 2 -324 2 88 57 16 90.65621 2 -325 2 89 57 18 84.83031 2 -326 2 90 61 17 103.95882 4 -327 2 91 61 15 101.97665 4 -328 2 92 61 13 84.71962 2 -329 2 93 61 14 84.47637 2 -330 2 94 61 16 82.55282 2 -331 2 95 61 18 98.7863 2 -332 2 96 65 17 103.52767 4 -333 2 97 65 15 98.10523 4 -334 2 98 65 13 82.81352 2 -335 2 99 65 14 87.24021 2 -336 2 100 65 16 86.69688 2 -337 2 101 65 18 87.0157 2 -338 2 102 69 15 104.46954 4 -339 2 103 69 13 86.37028 2 -340 2 104 69 11 87.67847 2 -341 2 105 69 14 84.57669 2 -342 2 106 69 16 89.5434 2 -343 2 107 69 18 83.46621 2 -344 2 108 73 17 91.93576 2 -345 2 109 73 15 88.96377 2 -346 2 110 73 13 85.4441 2 -347 2 111 73 14 83.92005 2 -348 2 112 73 16 94.4567 2 -349 2 113 73 18 85.52215 2 -350 2 114 77 17 89.22773 2 -351 2 115 77 15 90.12139 2 -352 2 116 77 13 98.73973 2 -353 2 117 77 14 88.49034 2 -354 2 118 77 16 105.48794 2 -355 2 119 77 18 110.76364 4 -356 3 0 1 23 101.40241 4 -357 3 1 1 21 97.50788 4 -358 3 2 1 19 91.44466 4 -359 3 3 1 20 87.4596 2 -360 3 4 1 22 91.62581 2 -361 3 5 1 24 77.16257 2 -362 3 6 5 23 77.39815 2 -363 3 7 5 21 71.14841 2 -364 3 8 5 19 74.49154 2 -365 3 9 5 20 73.18548 2 -366 3 10 5 22 78.6817 2 -367 3 11 5 24 80.26678 2 -368 3 12 9 23 71.93858 2 -369 3 13 9 21 72.22419 2 -370 3 14 9 19 72.86097 2 -371 3 15 9 18 77.69144 2 -372 3 16 9 20 85.56674 2 -373 3 17 9 22 94.68524 2 -374 3 18 13 23 73.82142 2 -375 3 19 13 21 78.92585 2 -376 3 20 13 19 75.78884 2 -377 3 21 13 20 72.75082 2 -378 3 22 13 22 79.89585 2 -379 3 23 13 24 93.447 4 -380 3 24 17 23 73.71281 2 -381 3 25 17 21 74.81604 2 -382 3 26 17 19 76.88262 2 -383 3 27 17 20 78.05392 2 -384 3 28 17 22 82.08315 2 -385 3 29 17 24 95.86216 2 -386 3 30 21 23 74.13929 2 -387 3 31 21 21 74.46222 2 -388 3 32 21 19 71.22374 2 -389 3 33 21 18 72.26009 2 -390 3 34 21 20 73.31855 2 -391 3 35 21 22 92.46347 2 -392 3 36 25 23 75.62968 2 -393 3 37 25 21 73.72577 2 -394 3 38 25 19 71.06103 2 -395 3 39 25 20 72.31028 2 -396 3 40 25 22 77.1978 2 -397 3 41 25 24 89.82887 4 -398 3 42 29 23 73.20055 2 -399 3 43 29 21 73.01024 2 -400 3 44 29 19 70.92846 2 -401 3 45 29 20 70.59603 2 -402 3 46 29 22 73.75194 2 -403 3 47 29 24 86.73628 4 -404 3 48 33 23 74.36397 2 -405 3 49 33 21 72.28469 2 -406 3 50 33 19 74.3206 2 -407 3 51 33 20 71.42829 2 -408 3 52 33 22 73.13635 2 -409 3 53 33 24 82.00389 2 -410 3 54 37 23 76.74954 2 -411 3 55 37 21 72.86764 2 -412 3 56 37 19 73.78701 2 -413 3 57 37 20 72.79485 2 -414 3 58 37 22 83.61591 2 -415 3 59 37 24 90.34035 2 -416 3 60 41 23 87.9002 2 -417 3 61 41 21 73.23493 2 -418 3 62 41 19 73.37403 2 -419 3 63 41 20 74.21569 2 -420 3 64 41 22 71.5708 2 -421 3 65 41 24 75.67123 2 -422 3 66 45 23 81.14292 2 -423 3 67 45 21 78.78007 2 -424 3 68 45 19 71.87776 2 -425 3 69 45 20 74.92381 2 -426 3 70 45 22 76.45982 2 -427 3 71 45 24 76.45271 2 -428 3 72 49 23 88.45359 4 -429 3 73 49 21 87.17528 2 -430 3 74 49 19 72.88634 2 -431 3 75 49 20 71.74028 2 -432 3 76 49 22 72.63692 2 -433 3 77 49 24 73.60297 2 -434 3 78 53 23 79.80144 2 -435 3 79 53 21 76.90638 2 -436 3 80 53 19 76.50289 2 -437 3 81 53 20 72.78748 2 -438 3 82 53 22 72.40136 2 -439 3 83 53 24 92.03785 2 -440 3 84 57 21 92.9082 2 -441 3 85 57 19 76.32253 2 -442 3 86 57 17 80.09429 2 -443 3 87 57 20 73.99798 2 -444 3 88 57 22 73.92522 2 -445 3 89 57 24 74.60819 2 -446 3 90 61 23 98.09596 2 -447 3 91 61 21 80.84438 2 -448 3 92 61 19 76.23565 4 -449 3 93 61 20 74.25297 2 -450 3 94 61 22 71.67223 2 -451 3 95 61 24 72.37277 2 -452 3 96 65 23 93.56403 4 -453 3 97 65 21 87.04244 4 -454 3 98 65 19 72.05256 2 -455 3 99 65 20 74.59026 2 -456 3 100 65 22 73.96683 2 -457 3 101 65 24 74.6951 2 -458 3 102 69 21 92.84181 2 -459 3 103 69 19 86.50825 2 -460 3 104 69 17 75.18391 2 -461 3 105 69 20 73.87541 2 -462 3 106 69 22 75.11955 2 -463 3 107 69 24 80.9115 2 -464 3 108 73 23 87.76246 2 -465 3 109 73 21 80.92988 2 -466 3 110 73 19 75.96279 2 -467 3 111 73 20 70.27501 2 -468 3 112 73 22 70.34649 2 -469 3 113 73 24 72.93568 2 -470 3 114 77 23 77.34424 2 -471 3 115 77 21 77.33939 2 -472 3 116 77 19 87.87509 2 -473 3 117 77 20 90.30335 4 -474 3 118 77 22 88.26885 2 -475 3 119 77 24 100.46759 4 -476 4 0 1 29 96.82685 4 -477 4 1 1 27 83.45268 2 -478 4 2 1 25 79.12034 2 -479 4 3 1 26 85.65486 4 -480 4 4 1 28 67.45071 2 -481 4 5 1 30 69.83607 2 -482 4 6 5 29 65.06132 2 -483 4 7 5 27 66.57642 2 -484 4 8 5 25 60.79885 2 -485 4 9 5 26 60.25541 2 -486 4 10 5 28 63.36874 2 -487 4 11 5 30 77.08024 2 -488 4 12 9 29 62.34594 2 -489 4 13 9 27 58.63289 2 -490 4 14 9 25 60.06773 2 -491 4 15 9 24 60.90447 2 -492 4 16 9 26 63.80414 2 -493 4 17 9 28 65.18886 2 -494 4 18 9 30 80.28261 2 -495 4 19 13 29 63.62075 2 -496 4 20 13 27 64.58768 2 -497 4 21 13 25 73.03375 2 -498 4 22 13 26 61.4301 2 -499 4 23 13 28 77.6568 2 -500 4 24 13 30 84.79284 2 -501 4 25 17 29 68.84473 2 -502 4 26 17 27 59.40766 2 -503 4 27 17 25 69.37499 2 -504 4 28 17 26 61.76835 2 -505 4 29 17 28 67.81053 2 -506 4 30 17 30 76.6715 2 -507 4 31 21 29 63.94865 2 -508 4 32 21 27 62.33438 2 -509 4 33 21 25 62.83297 2 -510 4 34 21 24 69.97184 2 -511 4 35 21 26 61.66648 2 -512 4 36 21 28 88.8686 2 -513 4 37 25 29 69.97718 2 -514 4 38 25 27 61.14591 2 -515 4 39 25 25 60.6572 2 -516 4 40 25 26 61.6376 2 -517 4 41 25 28 71.96636 2 -518 4 42 25 30 73.79279 2 -519 4 43 29 29 66.40402 2 -520 4 44 29 27 61.12887 2 -521 4 45 29 25 70.59697 2 -522 4 46 29 26 59.10398 2 -523 4 47 29 28 66.34478 2 -524 4 48 29 30 75.73093 4 -525 4 49 33 29 63.12125 2 -526 4 50 33 27 60.75987 2 -527 4 51 33 25 64.23266 2 -528 4 52 33 26 61.09488 2 -529 4 53 33 28 69.82673 4 -530 4 54 33 30 72.8037 2 -531 4 55 37 29 64.45135 2 -532 4 56 37 27 60.65719 2 -533 4 57 37 25 66.33095 2 -534 4 58 37 26 61.95426 2 -535 4 59 37 28 61.9227 2 -536 4 60 37 30 83.53619 2 -537 4 61 41 29 75.49353 2 -538 4 62 41 27 62.06989 2 -539 4 63 41 25 76.99798 2 -540 4 64 41 26 63.49866 2 -541 4 65 41 28 60.3621 2 -542 4 66 41 30 64.85491 2 -543 4 67 45 29 72.782 2 -544 4 68 45 27 63.98476 2 -545 4 69 45 25 62.28153 2 -546 4 70 45 26 63.87559 2 -547 4 71 45 28 61.83615 2 -548 4 72 45 30 63.83755 2 -549 4 73 49 29 79.49729 4 -550 4 74 49 27 73.6334 4 -551 4 75 49 25 58.64089 2 -552 4 76 49 26 59.98724 2 -553 4 77 49 28 66.86436 2 -554 4 78 49 30 66.77042 2 -555 4 79 53 29 77.03239 2 -556 4 80 53 27 68.83967 2 -557 4 81 53 25 62.90895 2 -558 4 82 53 26 64.81999 2 -559 4 83 53 28 76.47975 2 -560 4 84 53 30 73.6731 2 -561 4 85 57 27 84.58703 4 -562 4 86 57 25 63.83633 2 -563 4 87 57 23 69.67206 2 -564 4 88 57 26 61.1685 2 -565 4 89 57 28 60.62403 2 -566 4 90 57 30 61.6818 2 -567 4 91 61 29 77.32508 2 -568 4 92 61 27 86.55494 2 -569 4 93 61 25 60.88621 2 -570 4 94 61 26 68.9218 2 -571 4 95 61 28 65.81169 2 -572 4 96 61 30 64.05365 2 -573 4 97 65 29 91.34868 2 -574 4 98 65 27 75.35082 2 -575 4 99 65 25 62.61638 2 -576 4 100 65 26 71.33927 2 -577 4 101 65 28 63.10072 2 -578 4 102 65 30 63.49196 2 -579 4 103 69 29 84.35416 2 -580 4 104 69 27 73.36223 2 -581 4 105 69 25 66.15072 2 -582 4 106 69 23 61.33211 2 -583 4 107 69 26 63.18945 2 -584 4 108 69 28 61.30551 2 -585 4 109 69 30 63.0535 2 -586 4 110 73 29 67.55177 2 -587 4 111 73 27 65.55242 2 -588 4 112 73 25 61.40795 2 -589 4 113 73 26 58.1238 2 -590 4 114 73 28 67.87305 2 -591 4 115 73 30 67.83415 2 -592 4 116 77 29 74.02149 2 -593 4 117 77 27 68.48123 2 -594 4 118 77 25 81.24732 2 -595 4 119 77 26 78.66824 2 -596 4 120 77 28 82.62826 2 -597 4 121 77 30 96.8693 4 -598 5 0 1 35 78.81295 2 -599 5 1 1 33 75.38364 2 -600 5 2 1 31 65.61671 2 -601 5 3 1 32 63.67519 2 -602 5 4 1 34 66.8784 2 -603 5 5 1 36 60.2093 2 -604 5 6 5 35 61.18924 2 -605 5 7 5 33 49.3014 2 -606 5 8 5 31 50.04486 2 -607 5 9 5 32 50.10076 2 -608 5 10 5 34 56.37575 2 -609 5 11 5 36 54.58008 2 -610 5 12 9 35 52.13603 2 -611 5 13 9 33 49.90481 2 -612 5 14 9 31 114.96669 2 -613 5 15 9 32 50.57953 2 -614 5 16 9 34 53.01686 2 -615 5 17 9 36 55.58534 2 -616 5 18 13 35 57.93447 2 -617 5 19 13 33 56.08579 2 -618 5 20 13 31 53.37433 2 -619 5 21 13 32 52.5509 2 -620 5 22 13 34 67.47811 2 -621 5 23 13 36 64.7973 2 -622 5 24 17 35 51.75207 2 -623 5 25 17 33 47.88536 2 -624 5 26 17 31 51.59653 2 -625 5 27 17 32 49.31608 2 -626 5 28 17 34 51.89152 2 -627 5 29 17 36 60.39859 2 -628 5 30 21 35 54.32404 2 -629 5 31 21 33 65.45428 2 -630 5 32 21 31 52.23448 2 -631 5 33 21 30 46.36494 2 -632 5 34 21 32 54.52921 2 -633 5 35 21 34 52.57643 2 -634 5 36 21 36 64.84819 2 -635 5 37 25 35 61.03196 2 -636 5 38 25 33 57.40917 2 -637 5 39 25 31 49.83571 2 -638 5 40 25 32 51.15409 2 -639 5 41 25 34 62.07508 2 -640 5 42 25 36 61.55412 2 -641 5 43 29 35 58.20937 2 -642 5 44 29 33 57.04019 2 -643 5 45 29 31 57.12925 2 -644 5 46 29 32 48.88301 2 -645 5 47 29 34 61.07021 4 -646 5 48 29 36 61.23994 2 -647 5 49 33 35 52.10847 2 -648 5 50 33 33 47.86105 2 -649 5 51 33 31 56.24633 2 -650 5 52 33 32 50.75971 2 -651 5 53 33 34 63.26343 2 -652 5 54 33 36 59.55645 2 -653 5 55 37 35 53.62953 2 -654 5 56 37 33 50.32691 2 -655 5 57 37 31 49.58088 2 -656 5 58 37 32 65.33855 2 -657 5 59 37 34 57.68811 2 -658 5 60 37 36 67.20354 2 -659 5 61 41 35 68.86822 2 -660 5 62 41 33 63.19278 2 -661 5 63 41 31 64.43605 2 -662 5 64 41 32 52.33106 2 -663 5 65 41 34 51.27463 2 -664 5 66 41 36 53.40337 2 -665 5 67 45 35 61.78604 2 -666 5 68 45 33 60.49205 2 -667 5 69 45 31 49.93265 2 -668 5 70 45 32 58.55885 2 -669 5 71 45 34 49.7152 2 -670 5 72 45 36 63.65966 2 -671 5 73 49 35 63.12244 2 -672 5 74 49 33 68.55234 2 -673 5 75 49 31 50.69478 2 -674 5 76 49 32 58.22805 2 -675 5 77 49 34 51.83716 2 -676 5 78 49 36 59.36047 2 -677 5 79 53 35 61.53206 2 -678 5 80 53 33 59.12869 2 -679 5 81 53 31 61.92639 2 -680 5 82 53 32 58.98858 2 -681 5 83 53 34 56.00536 2 -682 5 84 53 36 59.43159 2 -683 5 85 57 35 73.70456 2 -684 5 86 57 33 52.5031 2 -685 5 87 57 31 57.49228 2 -686 5 88 57 29 46.36596 2 -687 5 89 57 32 48.88404 2 -688 5 90 57 34 50.68612 2 -689 5 91 57 36 52.78419 2 -690 5 92 61 35 56.07963 2 -691 5 93 61 33 49.90983 2 -692 5 94 61 31 48.93932 2 -693 5 95 61 32 51.23293 2 -694 5 96 61 34 53.155 2 -695 5 97 61 36 61.85728 2 -696 5 98 65 35 64.23853 2 -697 5 99 65 33 58.24653 2 -698 5 100 65 31 49.07649 2 -699 5 101 65 32 52.26077 2 -700 5 102 65 34 55.18039 2 -701 5 103 65 36 56.54185 2 -702 5 104 69 35 70.55279 2 -703 5 105 69 33 55.3261 2 -704 5 106 69 31 50.34568 2 -705 5 107 69 32 56.58614 2 -706 5 108 69 34 51.17681 2 -707 5 109 69 36 56.07016 2 -708 5 110 73 35 54.85456 2 -709 5 111 73 33 52.35763 2 -710 5 112 73 31 52.16452 2 -711 5 113 73 32 47.64335 2 -712 5 114 73 34 50.23437 2 -713 5 115 73 36 63.86026 2 -714 5 116 77 35 61.19294 2 -715 5 117 77 33 69.16383 2 -716 5 118 77 31 64.2415 2 -717 5 119 77 32 64.19352 2 -718 5 120 77 34 74.35957 4 -719 5 121 77 36 77.19329 2 -720 6 0 1 39 76.52467 2 -721 6 1 1 37 68.6391 2 -722 6 2 1 38 75.31986 2 -723 6 3 1 40 64.79042 4 -724 6 4 2 2 70.19399 2 -725 6 5 2 4 70.49457 2 -726 6 6 2 6 70.11465 2 -727 6 7 6 3 83.66631 2 -728 6 8 6 1 67.53265 2 -729 6 9 5 39 44.99725 2 -730 6 10 5 37 46.18657 2 -731 6 11 5 38 40.21903 2 -732 6 12 5 40 41.87149 2 -733 6 13 9 39 40.34368 2 -734 6 14 9 37 36.64274 2 -735 6 15 9 38 43.80417 2 -736 6 16 9 40 42.49005 2 -737 6 17 10 2 70.18869 2 -738 6 18 10 4 87.5614 2 -739 6 19 13 39 42.00122 2 -740 6 20 13 37 37.16433 2 -741 6 21 13 38 39.21502 2 -742 6 22 13 40 43.14672 2 -743 6 23 14 2 83.2352 2 -744 6 24 14 4 73.29559 2 -745 6 25 17 39 39.19374 2 -746 6 26 17 37 40.1099 2 -747 6 27 17 38 37.81079 2 -748 6 28 17 40 42.43272 2 -749 6 29 18 2 70.39324 2 -750 6 30 18 4 84.77895 4 -751 6 31 21 39 41.45144 2 -752 6 32 21 37 40.74413 2 -753 6 33 21 38 43.86491 2 -754 6 34 21 40 45.62563 2 -755 6 35 22 2 65.97622 2 -756 6 36 22 4 70.43494 2 -757 6 37 26 5 68.80256 2 -758 6 38 26 3 66.5657 2 -759 6 39 26 1 71.6747 2 -760 6 40 25 39 44.51521 2 -761 6 41 25 37 48.96668 2 -762 6 42 25 38 40.38779 2 -763 6 43 25 40 53.4944 2 -764 6 44 29 39 40.90108 2 -765 6 45 29 37 36.00834 2 -766 6 46 29 38 40.75092 2 -767 6 47 29 40 51.58368 2 -768 6 48 30 2 67.87917 2 -769 6 49 30 4 88.26713 4 -770 6 50 33 39 47.8229 2 -771 6 51 33 37 35.71296 2 -772 6 52 33 38 37.10435 2 -773 6 53 33 40 44.96155 2 -774 6 54 34 2 65.62637 2 -775 6 55 34 4 75.45456 2 -776 6 56 37 39 40.0953 2 -777 6 57 37 37 38.66288 2 -778 6 58 37 38 40.15384 2 -779 6 59 37 40 42.15317 2 -780 6 60 38 2 66.52516 2 -781 6 61 38 4 79.28325 4 -782 6 62 42 3 73.705 2 -783 6 63 42 1 67.14234 2 -784 6 64 41 39 50.95059 2 -785 6 65 41 37 43.70407 2 -786 6 66 41 38 36.68226 2 -787 6 67 41 40 40.0953 2 -788 6 68 46 3 80.81445 4 -789 6 69 46 1 64.8812 2 -790 6 70 45 39 44.15181 2 -791 6 71 45 37 39.161 2 -792 6 72 45 38 44.36599 2 -793 6 73 45 40 45.77708 2 -794 6 74 50 3 88.78955 4 -795 6 75 50 1 67.87818 2 -796 6 76 49 39 50.26779 2 -797 6 77 49 37 44.46235 2 -798 6 78 49 38 37.01625 2 -799 6 79 49 40 41.80577 2 -800 6 80 53 39 53.39419 2 -801 6 81 53 37 43.79479 2 -802 6 82 53 38 50.38707 2 -803 6 83 53 40 38.27696 2 -804 6 84 54 2 69.47364 2 -805 6 85 54 4 66.26964 2 -806 6 86 54 6 68.80151 2 -807 6 87 58 3 69.95231 2 -808 6 88 58 1 73.61569 2 -809 6 89 57 39 39.80511 2 -810 6 90 57 37 43.78955 2 -811 6 91 57 38 43.13105 2 -812 6 92 57 40 40.66966 2 -813 6 93 62 3 90.52667 2 -814 6 94 62 1 65.82729 2 -815 6 95 61 39 39.85713 2 -816 6 96 61 37 37.51197 2 -817 6 97 61 38 56.50232 2 -818 6 98 61 40 39.5265 2 -819 6 99 66 3 88.13712 4 -820 6 100 66 1 67.88634 2 -821 6 101 65 39 42.75219 2 -822 6 102 65 37 42.39191 2 -823 6 103 65 38 34.90238 2 -824 6 104 65 40 40.77134 2 -825 6 105 70 3 72.72013 2 -826 6 106 70 1 69.44892 2 -827 6 107 69 39 44.25718 2 -828 6 108 69 37 37.12357 2 -829 6 109 69 38 38.03466 2 -830 6 110 69 40 105.47309 2 -831 6 111 73 39 42.39238 2 -832 6 112 73 37 42.31868 2 -833 6 113 73 38 51.06966 2 -834 6 114 73 40 39.06398 2 -835 6 115 74 2 73.23777 2 -836 6 116 74 4 75.30684 2 -837 6 117 78 5 69.05725 2 -838 6 118 78 3 69.60385 2 -839 6 119 78 1 70.34384 2 -840 6 120 77 39 58.01632 2 -841 6 121 77 37 78.38676 2 -842 6 122 77 38 69.09697 4 -843 6 123 77 40 72.45489 2 -844 7 0 2 7 83.64042 2 -845 7 1 2 5 86.18422 2 -846 7 2 2 3 75.63386 4 -847 7 3 2 1 54.84905 2 -848 7 4 2 8 67.81675 2 -849 7 5 2 10 65.31603 2 -850 7 6 6 9 61.65458 2 -851 7 7 6 7 63.00937 2 -852 7 8 6 5 53.4316 2 -853 7 9 6 2 60.19095 2 -854 7 10 6 4 58.89866 2 -855 7 11 6 6 65.55801 2 -856 7 12 10 7 55.54791 2 -857 7 13 10 5 52.98425 2 -858 7 14 10 3 54.94483 2 -859 7 15 10 1 56.49472 2 -860 7 16 10 6 54.23734 2 -861 7 17 10 8 59.22615 2 -862 7 18 10 10 74.92533 4 -863 7 19 14 7 59.39339 2 -864 7 20 14 5 61.81248 2 -865 7 21 14 3 63.34166 2 -866 7 22 14 1 69.72392 2 -867 7 23 14 6 56.79867 2 -868 7 24 14 8 61.04243 2 -869 7 25 18 7 53.90105 2 -870 7 26 18 5 56.4274 2 -871 7 27 18 3 50.25391 2 -872 7 28 18 1 55.03876 2 -873 7 29 18 6 57.48938 2 -874 7 30 18 8 62.64331 2 -875 7 31 22 7 56.72395 2 -876 7 32 22 5 57.44922 2 -877 7 33 22 3 60.60982 2 -878 7 34 22 1 54.50506 2 -879 7 35 22 6 55.97348 2 -880 7 36 22 8 57.44642 2 -881 7 37 26 9 56.24975 2 -882 7 38 26 7 53.91023 2 -883 7 39 26 2 58.85981 2 -884 7 40 26 4 54.95792 2 -885 7 41 26 6 54.6905 2 -886 7 42 26 8 61.25854 2 -887 7 43 30 7 58.95115 2 -888 7 44 30 5 55.88937 2 -889 7 45 30 3 50.96695 2 -890 7 46 30 1 50.19749 2 -891 7 47 30 6 50.60883 2 -892 7 48 30 8 57.61487 2 -893 7 49 30 10 102.55223 4 -894 7 50 34 5 57.68256 2 -895 7 51 34 3 53.02672 2 -896 7 52 34 1 89.27497 2 -897 7 53 34 6 57.74969 2 -898 7 54 34 8 58.09812 2 -899 7 55 34 10 64.12867 2 -900 7 56 38 5 54.80865 2 -901 7 57 38 3 57.35754 2 -902 7 58 38 1 50.88154 2 -903 7 59 38 6 54.41103 2 -904 7 60 38 8 53.87999 2 -905 7 61 38 10 57.53301 2 -906 7 62 42 9 57.62673 2 -907 7 63 42 7 57.45719 2 -908 7 64 42 5 52.58155 2 -909 7 65 42 2 48.95548 2 -910 7 66 42 4 55.3197 2 -911 7 67 42 6 54.80865 2 -912 7 68 46 9 75.7278 4 -913 7 69 46 7 54.22383 2 -914 7 70 46 5 55.91954 2 -915 7 71 46 2 58.11694 2 -916 7 72 46 4 53.09108 2 -917 7 73 46 6 53.02671 2 -918 7 74 50 9 70.1876 4 -919 7 75 50 7 56.85821 2 -920 7 76 50 5 58.1686 2 -921 7 77 50 2 49.61619 2 -922 7 78 50 4 52.71279 2 -923 7 79 50 6 55.35721 2 -924 7 80 50 8 59.82078 2 -925 7 81 54 7 62.48228 2 -926 7 82 54 5 57.6776 2 -927 7 83 54 3 50.70553 2 -928 7 84 54 1 52.29955 2 -929 7 85 54 8 53.90923 2 -930 7 86 54 10 62.35394 2 -931 7 87 58 7 57.60562 2 -932 7 88 58 5 55.86314 2 -933 7 89 58 2 49.29108 2 -934 7 90 58 4 58.69786 2 -935 7 91 58 6 49.97947 2 -936 7 92 58 8 53.99122 2 -937 7 93 62 7 73.57004 4 -938 7 94 62 5 53.56769 2 -939 7 95 62 2 63.0563 2 -940 7 96 62 4 59.8016 2 -941 7 97 62 6 57.07605 2 -942 7 98 62 8 53.76748 2 -943 7 99 66 7 76.16125 4 -944 7 100 66 5 56.06314 2 -945 7 101 66 2 63.32159 2 -946 7 102 66 4 61.25031 2 -947 7 103 66 6 56.6345 2 -948 7 104 66 8 55.17158 2 -949 7 105 70 9 74.83309 4 -950 7 106 70 7 58.53713 2 -951 7 107 70 5 57.68302 2 -952 7 108 70 2 54.44836 2 -953 7 109 70 4 51.7813 2 -954 7 110 70 6 51.54683 2 -955 7 111 70 8 54.13113 2 -956 7 112 74 5 66.2057 2 -957 7 113 74 3 55.2077 2 -958 7 114 74 1 52.78624 2 -959 7 115 74 6 51.83699 2 -960 7 116 74 8 67.74143 2 -961 7 117 74 10 60.72907 2 -962 7 118 78 9 65.21927 4 -963 7 119 78 7 72.69782 4 -964 7 120 78 2 60.75599 4 -965 7 121 78 4 74.55496 4 -966 7 122 78 6 74.9078 2 -967 7 123 78 8 83.09279 2 -968 8 0 2 13 72.88312 2 -969 8 1 2 11 60.36956 2 -970 8 2 2 9 59.20142 2 -971 8 3 2 12 64.48626 4 -972 8 4 2 14 50.69131 2 -973 8 5 2 16 51.23893 2 -974 8 6 6 15 47.66826 2 -975 8 7 6 13 47.26707 2 -976 8 8 6 11 42.1344 2 -977 8 9 6 8 42.84608 2 -978 8 10 6 10 43.95699 2 -979 8 11 6 12 65.00643 2 -980 8 12 10 13 53.998 2 -981 8 13 10 11 39.96911 2 -982 8 14 10 9 45.38574 2 -983 8 15 10 12 44.06052 2 -984 8 16 10 14 51.11827 2 -985 8 17 10 16 49.04589 2 -986 8 18 14 15 46.01877 2 -987 8 19 14 13 43.8725 2 -988 8 20 14 11 41.94764 2 -989 8 21 14 9 46.34942 2 -990 8 22 14 10 40.80101 2 -991 8 23 14 12 44.53533 2 -992 8 24 14 14 51.97554 2 -993 8 25 18 13 42.69208 2 -994 8 26 18 11 42.22831 2 -995 8 27 18 9 40.16758 2 -996 8 28 18 10 42.93859 2 -997 8 29 18 12 50.12723 2 -998 8 30 18 14 51.50898 2 -999 8 31 22 13 43.5834 2 -1000 8 32 22 11 41.67222 2 -1001 8 33 22 9 42.65545 2 -1002 8 34 22 10 41.04601 2 -1003 8 35 22 12 43.30901 2 -1004 8 36 22 14 46.71738 2 -1005 8 37 26 15 48.93714 2 -1006 8 38 26 13 43.0238 2 -1007 8 39 26 11 40.84312 2 -1008 8 40 26 10 38.38797 2 -1009 8 41 26 12 47.22418 2 -1010 8 42 26 14 49.58772 2 -1011 8 43 30 15 49.67336 2 -1012 8 44 30 13 42.39618 2 -1013 8 45 30 11 44.56502 2 -1014 8 46 30 9 95.24101 2 -1015 8 47 30 12 42.78721 2 -1016 8 48 30 14 45.8426 2 -1017 8 49 30 16 60.28372 4 -1018 8 50 34 11 46.09733 2 -1019 8 51 34 9 47.08507 2 -1020 8 52 34 7 77.6434 2 -1021 8 53 34 12 42.5832 2 -1022 8 54 34 14 43.4633 2 -1023 8 55 34 16 54.04293 2 -1024 8 56 38 11 54.74622 2 -1025 8 57 38 9 39.96069 2 -1026 8 58 38 7 39.76624 2 -1027 8 59 38 12 41.03027 2 -1028 8 60 38 14 44.83633 2 -1029 8 61 38 16 47.15811 2 -1030 8 62 42 15 46.61504 2 -1031 8 63 42 13 47.05875 2 -1032 8 64 42 11 43.67651 2 -1033 8 65 42 8 41.56042 2 -1034 8 66 42 10 39.96069 2 -1035 8 67 42 12 58.53758 2 -1036 8 68 46 15 57.91563 2 -1037 8 69 46 13 43.58312 2 -1038 8 70 46 11 52.50832 2 -1039 8 71 46 8 42.515 2 -1040 8 72 46 10 43.16548 2 -1041 8 73 46 12 42.5407 2 -1042 8 74 50 15 54.35516 2 -1043 8 75 50 13 48.94681 2 -1044 8 76 50 11 41.87796 2 -1045 8 77 50 10 47.99118 2 -1046 8 78 50 12 46.68601 2 -1047 8 79 50 14 41.35438 2 -1048 8 80 50 16 56.83154 4 -1049 8 81 54 13 49.9798 2 -1050 8 82 54 11 47.88336 2 -1051 8 83 54 9 39.55168 2 -1052 8 84 54 12 39.96431 2 -1053 8 85 54 14 51.70357 2 -1054 8 86 54 16 47.71773 2 -1055 8 87 58 13 46.71845 2 -1056 8 88 58 11 43.30884 2 -1057 8 89 58 9 43.94097 2 -1058 8 90 58 10 40.79879 2 -1059 8 91 58 12 44.24194 2 -1060 8 92 58 14 43.12457 2 -1061 8 93 62 13 52.36552 2 -1062 8 94 62 11 52.93516 2 -1063 8 95 62 9 41.54608 2 -1064 8 96 62 10 41.9951 2 -1065 8 97 62 12 41.87748 2 -1066 8 98 62 14 42.73736 2 -1067 8 99 66 13 54.75408 2 -1068 8 100 66 11 50.32343 2 -1069 8 101 66 9 42.38399 2 -1070 8 102 66 10 41.88307 2 -1071 8 103 66 12 41.41601 2 -1072 8 104 66 14 41.30029 2 -1073 8 105 66 16 49.54858 2 -1074 8 106 70 15 48.77336 2 -1075 8 107 70 13 46.49893 2 -1076 8 108 70 11 101.51409 2 -1077 8 109 70 10 44.41196 2 -1078 8 110 70 12 39.96825 2 -1079 8 111 70 14 49.33425 2 -1080 8 112 74 11 43.43195 2 -1081 8 113 74 9 40.29318 2 -1082 8 114 74 7 51.32539 2 -1083 8 115 74 12 42.48003 2 -1084 8 116 74 14 60.39978 2 -1085 8 117 74 16 46.65495 2 -1086 8 118 78 15 47.7977 4 -1087 8 119 78 13 56.37316 2 -1088 8 120 78 11 61.27429 4 -1089 8 121 78 10 59.97212 2 -1090 8 122 78 12 65.30593 2 -1091 8 123 78 14 69.60638 2 -1092 9 0 2 19 59.76989 2 -1093 9 1 2 17 58.50431 2 -1094 9 2 2 15 47.70462 2 -1095 9 3 2 18 50.83306 2 -1096 9 4 2 20 49.22256 2 -1097 9 5 2 22 39.52069 2 -1098 9 6 6 21 46.53895 2 -1099 9 7 6 19 34.67468 2 -1100 9 8 6 17 39.72928 2 -1101 9 9 6 14 32.98624 2 -1102 9 10 6 16 38.69186 2 -1103 9 11 6 18 31.99028 2 -1104 9 12 6 20 34.89764 2 -1105 9 13 10 19 31.84707 2 -1106 9 14 10 17 32.40346 2 -1107 9 15 10 15 28.47577 2 -1108 9 16 10 18 30.88321 2 -1109 9 17 10 20 32.4578 2 -1110 9 18 10 22 43.03373 2 -1111 9 19 14 21 39.78882 2 -1112 9 20 14 19 29.92742 2 -1113 9 21 14 17 37.65329 2 -1114 9 22 14 16 29.14043 2 -1115 9 23 14 18 31.59171 2 -1116 9 24 14 20 35.66014 2 -1117 9 25 18 21 44.00893 2 -1118 9 26 18 19 42.00522 2 -1119 9 27 18 17 28.73305 2 -1120 9 28 18 15 29.62073 2 -1121 9 29 18 16 31.31377 2 -1122 9 30 18 18 32.23136 2 -1123 9 31 18 20 37.57525 2 -1124 9 32 22 19 31.86437 2 -1125 9 33 22 17 29.66982 2 -1126 9 34 22 15 28.90134 2 -1127 9 35 22 16 28.53321 2 -1128 9 36 22 18 32.46713 2 -1129 9 37 22 20 35.65021 2 -1130 9 38 26 21 41.64498 2 -1131 9 39 26 19 40.12181 2 -1132 9 40 26 17 29.96768 2 -1133 9 41 26 16 27.17439 2 -1134 9 42 26 18 38.00882 2 -1135 9 43 26 20 38.53385 2 -1136 9 44 30 21 42.93237 2 -1137 9 45 30 19 31.74151 2 -1138 9 46 30 17 29.89374 2 -1139 9 47 30 18 32.46405 2 -1140 9 48 30 20 34.54313 2 -1141 9 49 30 22 35.37374 2 -1142 9 50 34 19 41.20134 2 -1143 9 51 34 17 33.74606 2 -1144 9 52 34 15 48.93769 2 -1145 9 53 34 13 44.74278 2 -1146 9 54 34 18 31.59659 2 -1147 9 55 34 20 32.27745 2 -1148 9 56 34 22 53.73708 2 -1149 9 57 38 17 49.27224 2 -1150 9 58 38 15 28.78438 2 -1151 9 59 38 13 28.7456 2 -1152 9 60 38 18 29.75663 2 -1153 9 61 38 20 37.88752 2 -1154 9 62 38 22 35.18018 2 -1155 9 63 42 21 35.18018 2 -1156 9 64 42 19 37.57209 2 -1157 9 65 42 17 32.90337 2 -1158 9 66 42 14 27.14785 2 -1159 9 67 42 16 28.78438 2 -1160 9 68 42 18 50.20066 2 -1161 9 69 46 21 48.03464 2 -1162 9 70 46 19 32.49947 2 -1163 9 71 46 17 30.06315 2 -1164 9 72 46 14 36.09389 2 -1165 9 73 46 16 34.43382 2 -1166 9 74 46 18 32.47149 2 -1167 9 75 46 20 54.75118 2 -1168 9 76 50 21 35.11699 2 -1169 9 77 50 19 34.80412 2 -1170 9 78 50 17 30.39038 2 -1171 9 79 50 18 29.68527 2 -1172 9 80 50 20 30.29745 2 -1173 9 81 50 22 42.03734 2 -1174 9 82 54 19 38.73953 2 -1175 9 83 54 17 38.74271 2 -1176 9 84 54 15 28.69018 2 -1177 9 85 54 18 31.18012 2 -1178 9 86 54 20 35.38606 2 -1179 9 87 54 22 38.36656 2 -1180 9 88 58 19 35.65128 2 -1181 9 89 58 17 32.46806 2 -1182 9 90 58 15 28.53214 2 -1183 9 91 58 16 29.22494 2 -1184 9 92 58 18 30.04332 2 -1185 9 93 58 20 34.44431 2 -1186 9 94 62 19 47.56588 2 -1187 9 95 62 17 32.23236 2 -1188 9 96 62 15 38.73237 2 -1189 9 97 62 16 32.96194 2 -1190 9 98 62 18 28.76611 2 -1191 9 99 62 20 42.25726 2 -1192 9 100 62 22 44.76039 2 -1193 9 101 66 19 35.30502 2 -1194 9 102 66 17 31.65173 2 -1195 9 103 66 15 29.12193 2 -1196 9 104 66 18 30.77651 2 -1197 9 105 66 20 29.97458 2 -1198 9 106 66 22 41.96986 2 -1199 9 107 70 21 42.74113 2 -1200 9 108 70 19 32.97742 2 -1201 9 109 70 17 31.83339 2 -1202 9 110 70 16 28.47492 2 -1203 9 111 70 18 38.27824 2 -1204 9 112 70 20 34.22693 2 -1205 9 113 74 19 34.68722 2 -1206 9 114 74 17 31.17484 2 -1207 9 115 74 15 30.27457 2 -1208 9 116 74 13 36.68944 2 -1209 9 117 74 18 33.69188 2 -1210 9 118 74 20 36.1853 2 -1211 9 119 74 22 51.923 2 -1212 9 120 78 21 40.08671 2 -1213 9 121 78 19 50.41439 4 -1214 9 122 78 17 57.20137 2 -1215 9 123 78 16 46.20064 2 -1216 9 124 78 18 64.3257 2 -1217 9 125 78 20 60.12725 2 -1218 10 0 2 25 54.47828 2 -1219 10 1 2 23 40.91567 2 -1220 10 2 2 21 37.8622 2 -1221 10 3 2 24 41.7598 2 -1222 10 4 2 26 40.22106 2 -1223 10 5 2 28 34.55647 2 -1224 10 6 6 27 35.44494 2 -1225 10 7 6 25 32.59731 2 -1226 10 8 6 23 17.76473 2 -1227 10 9 6 22 25.77269 2 -1228 10 10 6 24 31.34098 2 -1229 10 11 6 26 32.4703 2 -1230 10 12 10 27 31.68072 2 -1231 10 13 10 25 19.90015 2 -1232 10 14 10 23 20.9321 2 -1233 10 15 10 21 20.82235 2 -1234 10 16 10 24 20.50242 2 -1235 10 17 10 26 25.68895 2 -1236 10 18 10 28 27.2399 2 -1237 10 19 14 27 32.2952 2 -1238 10 20 14 25 35.93115 2 -1239 10 21 14 23 17.64291 2 -1240 10 22 14 22 16.86357 2 -1241 10 23 14 24 24.77804 2 -1242 10 24 14 26 31.64668 2 -1243 10 25 18 27 29.33938 2 -1244 10 26 18 25 20.08516 2 -1245 10 27 18 23 20.82025 2 -1246 10 28 18 22 18.24572 2 -1247 10 29 18 24 19.87596 2 -1248 10 30 18 26 23.14702 2 -1249 10 31 22 27 33.23448 2 -1250 10 32 22 25 20.96143 2 -1251 10 33 22 23 23.18865 2 -1252 10 34 22 21 19.02855 2 -1253 10 35 22 22 18.05315 2 -1254 10 36 22 24 21.32179 2 -1255 10 37 22 26 31.96248 2 -1256 10 38 26 27 29.9879 2 -1257 10 39 26 25 28.30315 2 -1258 10 40 26 23 18.51215 2 -1259 10 41 26 22 17.51419 2 -1260 10 42 26 24 24.03949 2 -1261 10 43 26 26 24.32484 2 -1262 10 44 30 27 24.07183 2 -1263 10 45 30 25 20.20499 2 -1264 10 46 30 23 19.98613 2 -1265 10 47 30 24 18.42968 2 -1266 10 48 30 26 48.65691 2 -1267 10 49 30 28 23.88226 2 -1268 10 50 34 27 30.63788 2 -1269 10 51 34 25 22.13157 2 -1270 10 52 34 23 17.63064 2 -1271 10 53 34 21 22.55073 2 -1272 10 54 34 24 21.31635 2 -1273 10 55 34 26 21.16836 2 -1274 10 56 34 28 37.93583 2 -1275 10 57 38 23 26.46624 2 -1276 10 58 38 21 17.60822 2 -1277 10 59 38 19 19.21738 2 -1278 10 60 38 24 20.19429 2 -1279 10 61 38 26 30.6545 2 -1280 10 62 38 28 27.27984 2 -1281 10 63 42 27 24.04113 2 -1282 10 64 42 25 52.47637 2 -1283 10 65 42 23 21.32828 2 -1284 10 66 42 20 18.69338 2 -1285 10 67 42 22 17.60822 2 -1286 10 68 42 24 26.59101 2 -1287 10 69 46 27 38.65091 2 -1288 10 70 46 25 21.16937 2 -1289 10 71 46 23 20.18389 2 -1290 10 72 46 22 19.5229 2 -1291 10 73 46 24 20.48545 2 -1292 10 74 46 26 21.08108 2 -1293 10 75 46 28 39.86071 2 -1294 10 76 50 27 23.88322 2 -1295 10 77 50 25 46.73385 2 -1296 10 78 50 23 18.36884 2 -1297 10 79 50 24 18.6619 2 -1298 10 80 50 26 19.10105 2 -1299 10 81 50 28 24.0708 2 -1300 10 82 54 25 24.32578 2 -1301 10 83 54 23 24.10664 2 -1302 10 84 54 21 16.17687 2 -1303 10 85 54 24 22.78594 2 -1304 10 86 54 26 22.79467 2 -1305 10 87 54 28 26.4406 2 -1306 10 88 58 25 32.02702 2 -1307 10 89 58 23 21.32272 2 -1308 10 90 58 21 17.95854 2 -1309 10 91 58 22 20.86516 2 -1310 10 92 58 24 21.40497 2 -1311 10 93 58 26 21.70213 2 -1312 10 94 58 28 33.17215 2 -1313 10 95 62 25 23.14793 2 -1314 10 96 62 23 19.87695 2 -1315 10 97 62 21 18.98704 2 -1316 10 98 62 24 17.51635 2 -1317 10 99 62 26 20.44561 2 -1318 10 100 62 28 29.39415 2 -1319 10 101 66 25 24.24592 2 -1320 10 102 66 23 20.08561 2 -1321 10 103 66 21 19.23134 2 -1322 10 104 66 24 17.19284 2 -1323 10 105 66 26 35.09438 2 -1324 10 106 66 28 28.77337 2 -1325 10 107 70 27 27.24075 2 -1326 10 108 70 25 26.63067 2 -1327 10 109 70 23 21.87063 2 -1328 10 110 70 22 19.9877 2 -1329 10 111 70 24 21.32235 2 -1330 10 112 70 26 20.48484 2 -1331 10 113 70 28 32.13917 2 -1332 10 114 74 25 32.45655 2 -1333 10 115 74 23 23.98314 2 -1334 10 116 74 21 18.04979 2 -1335 10 117 74 24 17.76358 2 -1336 10 118 74 26 36.65053 2 -1337 10 119 74 28 39.00039 2 -1338 10 120 78 27 31.92488 2 -1339 10 121 78 25 40.2224 2 -1340 10 122 78 23 40.30441 2 -1341 10 123 78 22 39.34732 2 -1342 10 124 78 24 41.42309 2 -1343 10 125 78 26 57.16339 2 -1344 11 0 2 33 45.21154 2 -1345 11 1 2 31 38.79032 2 -1346 11 2 2 29 38.24086 2 -1347 11 3 2 27 26.61406 2 -1348 11 4 2 30 28.21961 2 -1349 11 5 2 32 27.64732 2 -1350 11 6 2 34 17.48881 2 -1351 11 7 6 33 20.19692 2 -1352 11 8 6 31 16.76845 2 -1353 11 9 6 29 6.51066 2 -1354 11 10 6 28 10.9044 2 -1355 11 11 6 30 6.68344 2 -1356 11 12 6 32 11.886 2 -1357 11 13 10 33 19.19759 2 -1358 11 14 10 31 9.30223 2 -1359 11 15 10 29 9.32102 2 -1360 11 16 10 30 7.90694 2 -1361 11 17 10 32 13.40643 2 -1362 11 18 10 34 13.55896 2 -1363 11 19 14 33 16.84272 2 -1364 11 20 14 31 14.4472 2 -1365 11 21 14 29 5.19992 2 -1366 11 22 14 28 10.38286 2 -1367 11 23 14 30 17.04447 2 -1368 11 24 14 32 13.45026 2 -1369 11 25 14 34 20.02189 2 -1370 11 26 18 33 21.94073 2 -1371 11 27 18 31 12.91722 2 -1372 11 28 18 29 7.25558 2 -1373 11 29 18 28 4.98143 2 -1374 11 30 18 30 10.96963 2 -1375 11 31 18 32 15.22464 2 -1376 11 32 22 33 15.75156 2 -1377 11 33 22 31 11.9002 2 -1378 11 34 22 29 8.33611 2 -1379 11 35 22 28 5.58015 2 -1380 11 36 22 30 10.26288 2 -1381 11 37 22 32 15.05539 2 -1382 11 38 22 34 25.15639 2 -1383 11 39 26 33 16.94543 2 -1384 11 40 26 31 13.11666 2 -1385 11 41 26 29 9.68602 2 -1386 11 42 26 28 5.29112 2 -1387 11 43 26 30 16.27142 2 -1388 11 44 26 32 20.34158 2 -1389 11 45 30 33 16.01562 2 -1390 11 46 30 31 7.75049 2 -1391 11 47 30 29 5.35211 2 -1392 11 48 30 30 8.65103 2 -1393 11 49 30 32 8.71317 2 -1394 11 50 30 34 22.26395 2 -1395 11 51 34 33 16.85302 2 -1396 11 52 34 31 15.99435 2 -1397 11 53 34 29 6.08021 2 -1398 11 54 34 30 6.78779 2 -1399 11 55 34 32 8.59908 2 -1400 11 56 34 34 15.9931 2 -1401 11 57 38 31 25.42759 2 -1402 11 58 38 29 15.01373 2 -1403 11 59 38 27 11.7238 2 -1404 11 60 38 25 7.39196 2 -1405 11 61 38 30 6.85358 2 -1406 11 62 38 32 15.34072 2 -1407 11 63 38 34 15.76418 2 -1408 11 64 42 33 15.43183 2 -1409 11 65 42 31 15.34072 2 -1410 11 66 42 29 6.10689 2 -1411 11 67 42 26 7.39196 2 -1412 11 68 42 28 11.7238 2 -1413 11 69 42 30 15.01373 2 -1414 11 70 42 32 25.42759 2 -1415 11 71 46 33 15.99208 2 -1416 11 72 46 31 8.6001 2 -1417 11 73 46 29 6.9108 2 -1418 11 74 46 30 6.04577 2 -1419 11 75 46 32 15.30826 2 -1420 11 76 46 34 16.16257 2 -1421 11 77 50 33 22.26291 2 -1422 11 78 50 31 8.71414 2 -1423 11 79 50 29 8.65007 2 -1424 11 80 50 30 5.35315 2 -1425 11 81 50 32 7.74945 2 -1426 11 82 50 34 16.01465 2 -1427 11 83 54 31 21.91745 2 -1428 11 84 54 29 13.16165 2 -1429 11 85 54 27 5.29211 2 -1430 11 86 54 30 18.58558 2 -1431 11 87 54 32 11.45195 2 -1432 11 88 54 34 17.06919 2 -1433 11 89 58 33 22.93095 2 -1434 11 90 58 31 15.05646 2 -1435 11 91 58 29 10.00915 2 -1436 11 92 58 27 5.3 2 -1437 11 93 58 30 7.20323 2 -1438 11 94 58 32 11.89913 2 -1439 11 95 58 34 15.75063 2 -1440 11 96 62 31 18.85898 2 -1441 11 97 62 29 10.82979 2 -1442 11 98 62 27 5.85145 2 -1443 11 99 62 30 7.25467 2 -1444 11 100 62 32 12.91822 2 -1445 11 101 62 34 18.20098 2 -1446 11 102 66 33 19.94839 2 -1447 11 103 66 31 13.45115 2 -1448 11 104 66 29 17.18192 2 -1449 11 105 66 27 10.96928 2 -1450 11 106 66 30 5.19882 2 -1451 11 107 66 32 14.44809 2 -1452 11 108 66 34 17.95483 2 -1453 11 109 70 33 13.55982 2 -1454 11 110 70 31 13.50533 2 -1455 11 111 70 29 8.06048 2 -1456 11 112 70 30 9.322 2 -1457 11 113 70 32 9.32476 2 -1458 11 114 70 34 19.30641 2 -1459 11 115 74 31 11.88683 2 -1460 11 116 74 29 6.6823 2 -1461 11 117 74 27 11.62862 2 -1462 11 118 74 30 6.50983 2 -1463 11 119 74 32 16.52178 2 -1464 11 120 74 34 19.8982 2 -1465 11 121 78 33 16.76373 2 -1466 11 122 78 31 25.10536 2 -1467 11 123 78 29 26.80866 2 -1468 11 124 78 28 27.95294 2 -1469 11 125 78 30 36.56727 2 -1470 11 126 78 32 38.84306 2 -1471 11 127 78 34 44.81651 2 -1472 12 0 2 39 53.47963 2 -1473 12 1 2 37 43.1727 2 -1474 12 2 2 35 40.30883 2 -1475 12 3 2 36 42.87757 2 -1476 12 4 2 38 31.4841 2 -1477 12 5 2 40 24.77895 2 -1478 12 6 6 39 34.35986 2 -1479 12 7 6 37 23.05164 2 -1480 12 8 6 35 20.88586 2 -1481 12 9 6 34 26.51391 2 -1482 12 10 6 36 12.73569 2 -1483 12 11 6 38 9.67078 2 -1484 12 12 6 40 17.19761 2 -1485 12 13 10 39 18.65821 2 -1486 12 14 10 37 16.56548 2 -1487 12 15 10 35 12.65027 2 -1488 12 16 10 36 11.84154 2 -1489 12 17 10 38 11.4198 2 -1490 12 18 10 40 20.01624 2 -1491 12 19 14 39 19.37784 2 -1492 12 20 14 37 17.50627 2 -1493 12 21 14 35 12.28611 2 -1494 12 22 14 36 12.78501 2 -1495 12 23 14 38 11.08218 2 -1496 12 24 14 40 20.00446 2 -1497 12 25 18 39 21.86598 2 -1498 12 26 18 37 20.28811 2 -1499 12 27 18 35 13.59757 2 -1500 12 28 18 34 16.27448 2 -1501 12 29 18 36 11.42121 2 -1502 12 30 18 38 17.25259 2 -1503 12 31 18 40 17.75743 2 -1504 12 32 22 39 21.97191 2 -1505 12 33 22 37 13.29432 2 -1506 12 34 22 35 13.42374 2 -1507 12 35 22 36 11.66651 2 -1508 12 36 22 38 15.54175 2 -1509 12 37 22 40 15.53029 2 -1510 12 38 26 39 21.25162 2 -1511 12 39 26 37 19.53002 2 -1512 12 40 26 35 13.09631 2 -1513 12 41 26 34 18.13327 2 -1514 12 42 26 36 12.53945 2 -1515 12 43 26 38 21.92634 2 -1516 12 44 26 40 23.09843 2 -1517 12 45 30 39 20.06774 2 -1518 12 46 30 37 11.94884 2 -1519 12 47 30 35 12.44824 2 -1520 12 48 30 36 12.7682 2 -1521 12 49 30 38 11.7477 2 -1522 12 50 30 40 21.63096 2 -1523 12 51 34 39 18.3146 2 -1524 12 52 34 37 17.28831 2 -1525 12 53 34 35 11.94526 2 -1526 12 54 34 36 16.06307 2 -1527 12 55 34 38 13.35643 2 -1528 12 56 34 40 13.22036 2 -1529 12 57 38 39 23.62944 2 -1530 12 58 38 37 21.14036 2 -1531 12 59 38 35 13.54438 2 -1532 12 60 38 33 13.47403 2 -1533 12 61 38 36 11.94975 2 -1534 12 62 38 38 20.31143 2 -1535 12 63 38 40 15.74763 2 -1536 12 64 42 39 17.91359 2 -1537 12 65 42 37 18.84691 2 -1538 12 66 42 35 11.46106 2 -1539 12 67 42 34 12.07941 2 -1540 12 68 42 36 13.54438 2 -1541 12 69 42 38 23.19856 2 -1542 12 70 42 40 22.41678 2 -1543 12 71 46 39 13.22138 2 -1544 12 72 46 37 13.35541 2 -1545 12 73 46 35 16.06326 2 -1546 12 74 46 36 11.94426 2 -1547 12 75 46 38 17.43808 2 -1548 12 76 46 40 18.31362 2 -1549 12 77 50 39 21.42221 2 -1550 12 78 50 37 11.74867 2 -1551 12 79 50 35 12.7672 2 -1552 12 80 50 36 11.29161 2 -1553 12 81 50 38 11.04277 2 -1554 12 82 50 40 19.10164 2 -1555 12 83 54 39 22.97269 2 -1556 12 84 54 37 21.92729 2 -1557 12 85 54 35 12.5385 2 -1558 12 86 54 33 18.13421 2 -1559 12 87 54 36 13.09536 2 -1560 12 88 54 38 19.45667 2 -1561 12 89 54 40 21.10178 2 -1562 12 90 58 39 15.68015 2 -1563 12 91 58 37 15.54068 2 -1564 12 92 58 35 11.66758 2 -1565 12 93 58 36 12.35484 2 -1566 12 94 58 38 13.29325 2 -1567 12 95 58 40 21.74979 2 -1568 12 96 62 39 21.87299 2 -1569 12 97 62 37 12.83843 2 -1570 12 98 62 35 11.95196 2 -1571 12 99 62 33 17.98298 2 -1572 12 100 62 36 13.59666 2 -1573 12 101 62 38 20.43798 2 -1574 12 102 62 40 22.16265 2 -1575 12 103 66 39 18.15118 2 -1576 12 104 66 37 11.08307 2 -1577 12 105 66 35 12.6626 2 -1578 12 106 66 36 12.28512 2 -1579 12 107 66 38 18.02813 2 -1580 12 108 66 40 18.93038 2 -1581 12 109 70 39 20.01511 2 -1582 12 110 70 37 11.42065 2 -1583 12 111 70 35 11.84069 2 -1584 12 112 70 36 12.8441 2 -1585 12 113 70 38 16.56633 2 -1586 12 114 70 40 18.28511 2 -1587 12 115 74 39 15.83962 2 -1588 12 116 74 37 9.67193 2 -1589 12 117 74 35 12.40763 2 -1590 12 118 74 33 27.05355 2 -1591 12 119 74 36 20.88819 2 -1592 12 120 74 38 22.65849 2 -1593 12 121 74 40 34.22764 2 -1594 12 122 78 39 25.36102 2 -1595 12 123 78 37 31.92959 2 -1596 12 124 78 35 47.28456 2 -1597 12 125 78 36 40.0496 2 -1598 12 126 78 38 41.79766 2 -1599 12 127 78 40 55.51533 2 -1600 13 0 3 5 48.23478 2 -1601 13 1 3 3 40.16657 2 -1602 13 2 3 1 33.87358 2 -1603 13 3 3 2 34.21373 2 -1604 13 4 3 4 24.60763 2 -1605 13 5 3 6 25.12788 2 -1606 13 6 7 7 26.34614 2 -1607 13 7 7 5 17.10456 2 -1608 13 8 7 3 16.36603 2 -1609 13 9 7 1 8.65418 2 -1610 13 10 7 2 9.78581 2 -1611 13 11 7 4 12.59315 2 -1612 13 12 7 6 17.50599 2 -1613 13 13 11 5 16.24907 2 -1614 13 14 11 3 14.6742 2 -1615 13 15 11 1 9.90227 2 -1616 13 16 11 2 10.93394 2 -1617 13 17 11 4 13.98565 2 -1618 13 18 11 6 25.38512 2 -1619 13 19 15 5 23.87196 2 -1620 13 20 15 3 11.38012 2 -1621 13 21 15 1 9.21662 2 -1622 13 22 15 2 10.59681 2 -1623 13 23 15 4 15.93151 2 -1624 13 24 15 6 15.96381 2 -1625 13 25 19 7 28.5652 2 -1626 13 26 19 5 17.34683 2 -1627 13 27 19 3 11.05344 2 -1628 13 28 19 1 8.99893 2 -1629 13 29 19 2 10.42568 2 -1630 13 30 19 4 14.73063 2 -1631 13 31 19 6 24.4268 2 -1632 13 32 23 5 22.14438 2 -1633 13 33 23 3 12.28499 2 -1634 13 34 23 1 9.21153 2 -1635 13 35 23 2 9.25456 2 -1636 13 36 23 4 16.23703 2 -1637 13 37 23 6 16.21986 2 -1638 13 38 27 7 29.765 2 -1639 13 39 27 5 13.89005 2 -1640 13 40 27 3 14.00647 2 -1641 13 41 27 1 11.25482 2 -1642 13 42 27 2 10.61052 2 -1643 13 43 27 4 13.2761 2 -1644 13 44 27 6 23.90534 2 -1645 13 45 31 5 15.09375 2 -1646 13 46 31 3 12.0407 2 -1647 13 47 31 1 9.60337 2 -1648 13 48 31 2 9.48807 2 -1649 13 49 31 4 15.80094 2 -1650 13 50 31 6 19.85991 2 -1651 13 51 35 7 23.24316 2 -1652 13 52 35 5 14.37049 2 -1653 13 53 35 3 12.15153 2 -1654 13 54 35 1 14.31406 2 -1655 13 55 35 2 13.13731 2 -1656 13 56 35 4 16.48734 2 -1657 13 57 35 6 31.80638 2 -1658 13 58 39 5 24.23072 2 -1659 13 59 39 3 11.32084 2 -1660 13 60 39 1 9.00065 2 -1661 13 61 39 2 9.23553 2 -1662 13 62 39 4 15.4687 2 -1663 13 63 39 6 16.81868 2 -1664 13 64 43 5 16.81868 2 -1665 13 65 43 3 15.4687 2 -1666 13 66 43 1 9.23553 2 -1667 13 67 43 2 8.91112 2 -1668 13 68 43 4 11.32084 2 -1669 13 69 43 6 22.16789 2 -1670 13 70 47 5 30.74942 2 -1671 13 71 47 3 16.48836 2 -1672 13 72 47 1 13.13629 2 -1673 13 73 47 2 14.31365 2 -1674 13 74 47 4 11.97515 2 -1675 13 75 47 6 14.3695 2 -1676 13 76 47 8 23.24414 2 -1677 13 77 51 5 19.86094 2 -1678 13 78 51 3 15.79997 2 -1679 13 79 51 1 9.48904 2 -1680 13 80 51 2 9.60441 2 -1681 13 81 51 4 10.90975 2 -1682 13 82 51 6 15.09279 2 -1683 13 83 55 5 23.9044 2 -1684 13 84 55 3 13.27705 2 -1685 13 85 55 1 10.60958 2 -1686 13 86 55 2 11.62574 2 -1687 13 87 55 4 14.00752 2 -1688 13 88 55 6 13.889 2 -1689 13 89 55 8 30.13885 2 -1690 13 90 59 5 16.22078 2 -1691 13 91 59 3 16.2361 2 -1692 13 92 59 1 9.25549 2 -1693 13 93 59 2 9.21246 2 -1694 13 94 59 4 12.28407 2 -1695 13 95 59 6 22.85097 2 -1696 13 96 63 5 26.62876 2 -1697 13 97 63 3 14.73171 2 -1698 13 98 63 1 10.42478 2 -1699 13 99 63 2 8.99984 2 -1700 13 100 63 4 11.05253 2 -1701 13 101 63 6 17.34774 2 -1702 13 102 63 8 29.39986 2 -1703 13 103 67 5 15.9647 2 -1704 13 104 67 3 15.39391 2 -1705 13 105 67 1 10.5977 2 -1706 13 106 67 2 9.21772 2 -1707 13 107 67 4 11.37902 2 -1708 13 108 67 6 23.21378 2 -1709 13 109 71 5 25.38341 2 -1710 13 110 71 3 13.9865 2 -1711 13 111 71 1 10.93281 2 -1712 13 112 71 2 9.90114 2 -1713 13 113 71 4 14.67533 2 -1714 13 114 71 6 16.24794 2 -1715 13 115 75 5 17.50682 2 -1716 13 116 75 3 12.59398 2 -1717 13 117 75 1 9.78384 2 -1718 13 118 75 2 8.65335 2 -1719 13 119 75 4 16.4451 2 -1720 13 120 75 6 17.13672 2 -1721 13 121 75 8 30.16449 2 -1722 13 122 79 5 26.39536 2 -1723 13 123 79 3 27.86764 2 -1724 13 124 79 1 35.4796 2 -1725 13 125 79 2 30.3134 2 -1726 13 126 79 4 41.41647 2 -1727 13 127 79 6 48.14867 2 -1728 14 0 3 11 45.97833 2 -1729 14 1 3 9 42.27916 2 -1730 14 2 3 7 39.90265 2 -1731 14 3 3 8 34.30312 2 -1732 14 4 3 10 30.56009 2 -1733 14 5 3 12 21.74281 2 -1734 14 6 3 14 17.0772 2 -1735 14 7 7 13 25.94065 2 -1736 14 8 7 11 16.73731 2 -1737 14 9 7 9 14.9258 2 -1738 14 10 7 8 13.50325 2 -1739 14 11 7 10 7.79115 2 -1740 14 12 7 12 13.98202 2 -1741 14 13 11 13 22.09183 2 -1742 14 14 11 11 14.67743 2 -1743 14 15 11 9 8.95171 2 -1744 14 16 11 7 7.62872 2 -1745 14 17 11 8 7.24251 2 -1746 14 18 11 10 15.95915 2 -1747 14 19 11 12 15.79618 2 -1748 14 20 15 11 17.60001 2 -1749 14 21 15 9 8.78779 2 -1750 14 22 15 7 8.75092 2 -1751 14 23 15 8 9.65258 2 -1752 14 24 15 10 7.8592 2 -1753 14 25 15 12 17.0331 2 -1754 14 26 19 13 16.26524 2 -1755 14 27 19 11 14.6314 2 -1756 14 28 19 9 8.32205 2 -1757 14 29 19 8 14.69375 2 -1758 14 30 19 10 8.43227 2 -1759 14 31 19 12 12.95204 2 -1760 14 32 19 14 21.4438 2 -1761 14 33 23 11 15.5788 2 -1762 14 34 23 9 16.24054 2 -1763 14 35 23 7 11.38888 2 -1764 14 36 23 8 10.30847 2 -1765 14 37 23 10 10.51027 2 -1766 14 38 23 12 17.209 2 -1767 14 39 27 13 18.98799 2 -1768 14 40 27 11 15.31839 2 -1769 14 41 27 9 8.13628 2 -1770 14 42 27 8 13.67049 2 -1771 14 43 27 10 8.54863 2 -1772 14 44 27 12 16.98953 2 -1773 14 45 27 14 20.43789 2 -1774 14 46 31 11 15.6519 2 -1775 14 47 31 9 8.12986 2 -1776 14 48 31 7 8.79319 2 -1777 14 49 31 8 8.16721 2 -1778 14 50 31 10 15.12986 2 -1779 14 51 31 12 14.89863 2 -1780 14 52 35 13 19.46698 2 -1781 14 53 35 11 17.92366 2 -1782 14 54 35 9 7.27617 2 -1783 14 55 35 8 8.47554 2 -1784 14 56 35 10 8.95779 2 -1785 14 57 35 12 15.38113 2 -1786 14 58 35 14 18.75118 2 -1787 14 59 39 11 16.81342 2 -1788 14 60 39 9 7.76535 2 -1789 14 61 39 7 8.6095 2 -1790 14 62 39 8 8.70755 2 -1791 14 63 39 10 15.93892 2 -1792 14 64 39 12 14.53354 2 -1793 14 65 43 11 15.55856 2 -1794 14 66 43 9 15.85406 2 -1795 14 67 43 7 8.51287 2 -1796 14 68 43 8 9.0034 2 -1797 14 69 43 10 7.76535 2 -1798 14 70 43 12 16.43606 2 -1799 14 71 47 13 18.05861 2 -1800 14 72 47 11 15.42008 2 -1801 14 73 47 9 8.95881 2 -1802 14 74 47 7 8.56406 2 -1803 14 75 47 10 7.73603 2 -1804 14 76 47 12 17.51734 2 -1805 14 77 47 14 14.92964 2 -1806 14 78 51 11 15.01791 2 -1807 14 79 51 9 13.97617 2 -1808 14 80 51 7 7.68478 2 -1809 14 81 51 8 8.11405 2 -1810 14 82 51 10 7.63446 2 -1811 14 83 51 12 23.2477 2 -1812 14 84 55 13 20.13721 2 -1813 14 85 55 11 16.99058 2 -1814 14 86 55 9 8.50726 2 -1815 14 87 55 7 13.52333 2 -1816 14 88 55 10 8.13523 2 -1817 14 89 55 12 15.31944 2 -1818 14 90 55 14 17.90782 2 -1819 14 91 59 11 17.3563 2 -1820 14 92 59 9 10.5112 2 -1821 14 93 59 7 9.82126 2 -1822 14 94 59 8 11.59239 2 -1823 14 95 59 10 16.24147 2 -1824 14 96 59 12 15.89561 2 -1825 14 97 63 13 22.02473 2 -1826 14 98 63 11 10.78557 2 -1827 14 99 63 9 8.29442 2 -1828 14 100 63 7 18.98085 2 -1829 14 101 63 10 9.13109 2 -1830 14 102 63 12 15.54951 2 -1831 14 103 63 14 16.62309 2 -1832 14 104 67 11 20.12488 2 -1833 14 105 67 9 7.86009 2 -1834 14 106 67 7 10.76477 2 -1835 14 107 67 8 8.56288 2 -1836 14 108 67 10 8.7869 2 -1837 14 109 67 12 17.25796 2 -1838 14 110 71 11 16.85432 2 -1839 14 111 71 9 13.85434 2 -1840 14 112 71 7 7.02854 2 -1841 14 113 71 8 7.60417 2 -1842 14 114 71 10 8.95058 2 -1843 14 115 71 12 15.80745 2 -1844 14 116 71 14 16.93294 2 -1845 14 117 75 11 13.98119 2 -1846 14 118 75 9 7.7923 2 -1847 14 119 75 7 13.60083 2 -1848 14 120 75 10 14.62659 2 -1849 14 121 75 12 17.17909 2 -1850 14 122 75 14 25.74764 2 -1851 14 123 79 13 18.10064 2 -1852 14 124 79 11 21.15781 2 -1853 14 125 79 9 30.6068 2 -1854 14 126 79 7 35.14683 2 -1855 14 127 79 8 39.85334 2 -1856 14 128 79 10 47.464 2 -1857 14 129 79 12 46.60109 2 -1858 15 0 3 17 63.72423 2 -1859 15 1 3 15 57.79327 2 -1860 15 2 3 13 48.98584 2 -1861 15 3 3 16 54.00693 2 -1862 15 4 3 18 42.83465 2 -1863 15 5 3 20 37.10475 2 -1864 15 6 7 21 53.42483 2 -1865 15 7 7 19 30.13606 2 -1866 15 8 7 17 27.24127 2 -1867 15 9 7 15 22.76445 2 -1868 15 10 7 14 40.75158 2 -1869 15 11 7 16 22.69139 2 -1870 15 12 7 18 28.24608 2 -1871 15 13 11 19 33.97103 2 -1872 15 14 11 17 26.18534 2 -1873 15 15 11 15 24.04454 2 -1874 15 16 11 14 23.92823 2 -1875 15 17 11 16 17.06047 2 -1876 15 18 11 18 27.07459 2 -1877 15 19 15 19 28.3818 2 -1878 15 20 15 17 30.63681 2 -1879 15 21 15 15 19.07609 2 -1880 15 22 15 13 25.80022 2 -1881 15 23 15 14 19.99817 2 -1882 15 24 15 16 28.31119 2 -1883 15 25 15 18 25.34839 2 -1884 15 26 19 19 29.64697 2 -1885 15 27 19 17 21.0096 2 -1886 15 28 19 15 21.34888 2 -1887 15 29 19 16 23.39808 2 -1888 15 30 19 18 16.6621 2 -1889 15 31 19 20 32.59306 2 -1890 15 32 23 19 35.21767 2 -1891 15 33 23 17 29.91693 2 -1892 15 34 23 15 20.25066 2 -1893 15 35 23 13 22.47274 2 -1894 15 36 23 14 20.7729 2 -1895 15 37 23 16 25.98096 2 -1896 15 38 23 18 24.37271 2 -1897 15 39 27 19 30.15708 2 -1898 15 40 27 17 20.92276 2 -1899 15 41 27 15 24.68763 2 -1900 15 42 27 16 28.24423 2 -1901 15 43 27 18 17.76888 2 -1902 15 44 27 20 18.92321 2 -1903 15 45 31 19 38.25067 2 -1904 15 46 31 17 20.14209 2 -1905 15 47 31 15 27.20296 2 -1906 15 48 31 13 20.5165 2 -1907 15 49 31 14 20.55273 2 -1908 15 50 31 16 24.74519 2 -1909 15 51 31 18 30.28426 2 -1910 15 52 35 21 25.46605 2 -1911 15 53 35 19 26.42023 2 -1912 15 54 35 17 21.57531 2 -1913 15 55 35 15 28.20027 2 -1914 15 56 35 16 21.08664 2 -1915 15 57 35 18 21.05853 2 -1916 15 58 35 20 26.50122 2 -1917 15 59 39 17 23.67016 2 -1918 15 60 39 15 22.25684 2 -1919 15 61 39 13 21.24741 2 -1920 15 62 39 14 21.6771 2 -1921 15 63 39 16 22.71205 2 -1922 15 64 39 18 26.23336 2 -1923 15 65 43 17 26.21828 2 -1924 15 66 43 15 28.84945 2 -1925 15 67 43 13 23.04016 2 -1926 15 68 43 14 21.28987 2 -1927 15 69 43 16 22.41763 2 -1928 15 70 43 18 29.63422 2 -1929 15 71 47 19 34.73877 2 -1930 15 72 47 17 21.05954 2 -1931 15 73 47 15 21.08562 2 -1932 15 74 47 16 22.12183 2 -1933 15 75 47 18 26.98736 2 -1934 15 76 47 20 22.98348 2 -1935 15 77 47 22 18.88679 2 -1936 15 78 51 17 33.22349 2 -1937 15 79 51 15 19.98758 2 -1938 15 80 51 13 22.80383 2 -1939 15 81 51 14 24.85733 2 -1940 15 82 51 16 29.11645 2 -1941 15 83 51 18 20.32565 2 -1942 15 84 51 20 38.10013 2 -1943 15 85 55 19 20.08355 2 -1944 15 86 55 17 19.10142 2 -1945 15 87 55 15 26.27961 2 -1946 15 88 55 16 18.65595 2 -1947 15 89 55 18 19.37988 2 -1948 15 90 55 20 28.7165 2 -1949 15 91 59 17 26.90276 2 -1950 15 92 59 15 27.768 2 -1951 15 93 59 13 20.16051 2 -1952 15 94 59 14 22.27493 2 -1953 15 95 59 16 21.24912 2 -1954 15 96 59 18 30.60008 2 -1955 15 97 59 20 23.13779 2 -1956 15 98 63 19 31.65933 2 -1957 15 99 63 17 17.03128 2 -1958 15 100 63 15 22.79923 2 -1959 15 101 63 16 21.04662 2 -1960 15 102 63 18 25.59531 2 -1961 15 103 63 20 30.29295 2 -1962 15 104 67 17 25.34949 2 -1963 15 105 67 15 32.70468 2 -1964 15 106 67 13 19.13589 2 -1965 15 107 67 14 20.86567 2 -1966 15 108 67 16 22.53937 2 -1967 15 109 67 18 27.41083 2 -1968 15 110 67 20 34.13449 2 -1969 15 111 71 17 28.41506 2 -1970 15 112 71 15 18.51118 2 -1971 15 113 71 13 20.12699 2 -1972 15 114 71 16 24.4989 2 -1973 15 115 71 18 21.24208 2 -1974 15 116 71 20 28.38138 2 -1975 15 117 75 17 27.51812 2 -1976 15 118 75 15 18.77626 2 -1977 15 119 75 13 26.05244 2 -1978 15 120 75 16 21.72323 2 -1979 15 121 75 18 29.70267 2 -1980 15 122 75 20 30.44782 2 -1981 15 123 75 22 44.11641 2 -1982 15 124 79 19 35.21501 2 -1983 15 125 79 17 38.7216 2 -1984 15 126 79 15 50.68339 2 -1985 15 127 79 14 49.54118 2 -1986 15 128 79 16 54.94044 2 -1987 15 129 79 18 64.91569 2 -1988 16 0 3 25 77.23504 2 -1989 16 1 3 23 73.83441 2 -1990 16 2 3 21 73.18197 2 -1991 16 3 3 19 59.57291 2 -1992 16 4 3 22 66.26497 2 -1993 16 5 3 24 53.52013 2 -1994 16 6 3 26 66.7305 2 -1995 16 7 7 27 50.53118 2 -1996 16 8 7 25 52.13113 2 -1997 16 9 7 23 34.46843 2 -1998 16 10 7 20 43.35809 2 -1999 16 11 7 22 32.04923 2 -2000 16 12 7 24 30.01663 2 -2001 16 13 7 26 39.99972 2 -2002 16 14 11 25 38.96841 2 -2003 16 15 11 23 44.51737 2 -2004 16 16 11 21 32.93765 2 -2005 16 17 11 20 31.62962 2 -2006 16 18 11 22 42.65348 2 -2007 16 19 11 24 31.63846 2 -2008 16 20 15 25 49.20242 2 -2009 16 21 15 23 38.21256 2 -2010 16 22 15 21 31.68322 2 -2011 16 23 15 20 35.71495 2 -2012 16 24 15 22 30.43873 2 -2013 16 25 15 24 29.5055 2 -2014 16 26 15 26 40.67179 2 -2015 16 27 19 25 46.38696 2 -2016 16 28 19 23 32.73587 2 -2017 16 29 19 21 32.50185 2 -2018 16 30 19 22 33.10238 2 -2019 16 31 19 24 29.11381 2 -2020 16 32 19 26 32.30487 2 -2021 16 33 23 25 44.44647 2 -2022 16 34 23 23 37.60139 2 -2023 16 35 23 21 31.82787 2 -2024 16 36 23 20 34.22681 2 -2025 16 37 23 22 29.61504 2 -2026 16 38 23 24 40.85465 2 -2027 16 39 23 26 35.49012 2 -2028 16 40 27 25 38.27483 2 -2029 16 41 27 23 31.15221 2 -2030 16 42 27 21 32.11657 2 -2031 16 43 27 22 44.37361 2 -2032 16 44 27 24 30.98889 2 -2033 16 45 27 26 30.17022 2 -2034 16 46 31 25 41.24931 2 -2035 16 47 31 23 40.04206 2 -2036 16 48 31 21 32.19656 2 -2037 16 49 31 20 32.94807 2 -2038 16 50 31 22 31.4851 2 -2039 16 51 31 24 58.10726 2 -2040 16 52 31 26 38.02329 2 -2041 16 53 35 27 36.94606 2 -2042 16 54 35 25 29.87817 2 -2043 16 55 35 23 39.88653 2 -2044 16 56 35 22 31.14143 2 -2045 16 57 35 24 31.02922 2 -2046 16 58 35 26 31.10375 2 -2047 16 59 35 28 40.78759 2 -2048 16 60 39 23 36.2989 2 -2049 16 61 39 21 33.62271 2 -2050 16 62 39 19 36.4512 2 -2051 16 63 39 20 32.30053 2 -2052 16 64 39 22 30.93163 2 -2053 16 65 39 24 39.00862 2 -2054 16 66 43 23 39.75076 2 -2055 16 67 43 21 30.93163 2 -2056 16 68 43 19 32.89828 2 -2057 16 69 43 20 37.15777 2 -2058 16 70 43 22 32.57503 2 -2059 16 71 43 24 35.5825 2 -2060 16 72 47 27 41.48598 2 -2061 16 73 47 25 31.10477 2 -2062 16 74 47 23 31.07248 2 -2063 16 75 47 21 30.00451 2 -2064 16 76 47 24 29.705 2 -2065 16 77 47 26 29.87877 2 -2066 16 78 47 28 37.30976 2 -2067 16 79 51 25 39.33762 2 -2068 16 80 51 23 58.39714 2 -2069 16 81 51 21 30.26133 2 -2070 16 82 51 19 33.0372 2 -2071 16 83 51 22 31.32733 2 -2072 16 84 51 24 41.00369 2 -2073 16 85 51 26 40.91112 2 -2074 16 86 55 25 41.59637 2 -2075 16 87 55 23 32.36997 2 -2076 16 88 55 21 37.34697 2 -2077 16 89 55 22 32.40579 2 -2078 16 90 55 24 31.64768 2 -2079 16 91 55 26 38.15049 2 -2080 16 92 59 25 35.79521 2 -2081 16 93 59 23 32.44947 2 -2082 16 94 59 21 30.42452 2 -2083 16 95 59 19 32.01346 2 -2084 16 96 59 22 104.22642 2 -2085 16 97 59 24 32.89597 2 -2086 16 98 59 26 40.77716 2 -2087 16 99 63 25 32.25258 2 -2088 16 100 63 23 29.9019 2 -2089 16 101 63 21 41.06075 2 -2090 16 102 63 22 32.19574 2 -2091 16 103 63 24 31.98303 2 -2092 16 104 63 26 45.07444 2 -2093 16 105 67 25 39.57605 2 -2094 16 106 67 23 29.5066 2 -2095 16 107 67 21 30.33814 2 -2096 16 108 67 19 34.49206 2 -2097 16 109 67 22 46.96495 2 -2098 16 110 67 24 33.00228 2 -2099 16 111 67 26 49.28656 2 -2100 16 112 71 23 31.50417 2 -2101 16 113 71 21 30.15197 2 -2102 16 114 71 19 31.68307 2 -2103 16 115 71 22 31.80667 2 -2104 16 116 71 24 45.39378 2 -2105 16 117 71 26 39.28281 2 -2106 16 118 75 25 36.05846 2 -2107 16 119 75 23 27.46658 2 -2108 16 120 75 21 33.17701 2 -2109 16 121 75 19 41.5145 2 -2110 16 122 75 24 32.97356 2 -2111 16 123 75 26 44.83809 2 -2112 16 124 75 28 47.13063 2 -2113 16 125 79 25 41.41757 2 -2114 16 126 79 23 52.28542 2 -2115 16 127 79 21 55.1284 2 -2116 16 128 79 20 63.92094 2 -2117 16 129 79 22 68.91571 2 -2118 16 130 79 24 70.73681 2 -2119 16 131 79 26 82.84442 2 -2120 17 0 3 33 79.99362 2 -2121 17 1 3 31 87.18695 2 -2122 17 2 3 29 72.42193 2 -2123 17 3 3 27 72.37634 2 -2124 17 4 3 28 69.97005 2 -2125 17 5 3 30 57.99202 2 -2126 17 6 3 32 57.41949 2 -2127 17 7 7 33 63.48144 4 -2128 17 8 7 31 51.82479 2 -2129 17 9 7 29 43.0815 2 -2130 17 10 7 28 52.29287 2 -2131 17 11 7 30 49.07809 2 -2132 17 12 7 32 40.8405 2 -2133 17 13 11 31 58.8325 2 -2134 17 14 11 29 47.36512 2 -2135 17 15 11 27 49.07483 2 -2136 17 16 11 26 56.68875 4 -2137 17 17 11 28 43.70709 2 -2138 17 18 11 30 40.47088 2 -2139 17 19 11 32 49.92751 2 -2140 17 20 15 31 53.0779 2 -2141 17 21 15 29 49.99529 2 -2142 17 22 15 27 43.95529 2 -2143 17 23 15 28 46.53137 2 -2144 17 24 15 30 42.55425 2 -2145 17 25 15 32 41.24908 2 -2146 17 26 19 33 53.4274 2 -2147 17 27 19 31 54.95664 2 -2148 17 28 19 29 48.40832 2 -2149 17 29 19 27 42.98172 2 -2150 17 30 19 28 42.53433 2 -2151 17 31 19 30 40.50046 2 -2152 17 32 19 32 49.47766 2 -2153 17 33 23 31 56.89739 2 -2154 17 34 23 29 50.75252 2 -2155 17 35 23 27 53.56019 2 -2156 17 36 23 28 44.26246 2 -2157 17 37 23 30 40.44676 2 -2158 17 38 23 32 43.52938 2 -2159 17 39 23 34 45.66717 2 -2160 17 40 27 31 50.14536 2 -2161 17 41 27 29 54.60635 2 -2162 17 42 27 27 43.5505 2 -2163 17 43 27 28 45.27505 2 -2164 17 44 27 30 42.33598 2 -2165 17 45 27 32 40.61208 2 -2166 17 46 31 33 51.64959 2 -2167 17 47 31 31 53.91868 2 -2168 17 48 31 29 41.71557 2 -2169 17 49 31 27 46.66095 2 -2170 17 50 31 28 40.92508 2 -2171 17 51 31 30 43.163 2 -2172 17 52 31 32 48.22289 2 -2173 17 53 35 33 55.27565 2 -2174 17 54 35 31 46.99142 2 -2175 17 55 35 29 48.12954 2 -2176 17 56 35 30 58.74217 2 -2177 17 57 35 32 41.16921 2 -2178 17 58 35 34 41.0221 2 -2179 17 59 39 29 53.12176 2 -2180 17 60 39 27 45.04776 2 -2181 17 61 39 25 44.14931 2 -2182 17 62 39 26 53.94178 2 -2183 17 63 39 28 43.35032 2 -2184 17 64 39 30 40.81045 2 -2185 17 65 39 32 47.00497 2 -2186 17 66 43 31 50.16026 2 -2187 17 67 43 29 40.99275 2 -2188 17 68 43 27 42.79077 2 -2189 17 69 43 25 49.34206 2 -2190 17 70 43 26 44.64725 2 -2191 17 71 43 28 44.99271 2 -2192 17 72 43 30 62.13795 2 -2193 17 73 47 33 41.14252 2 -2194 17 74 47 31 41.24398 2 -2195 17 75 47 29 42.02119 2 -2196 17 76 47 30 42.97882 2 -2197 17 77 47 32 47.01163 2 -2198 17 78 47 34 49.67672 2 -2199 17 79 51 31 48.08939 2 -2200 17 80 51 29 40.49171 2 -2201 17 81 51 27 42.86789 2 -2202 17 82 51 28 47.68912 2 -2203 17 83 51 30 45.98765 2 -2204 17 84 51 32 40.26034 2 -2205 17 85 51 34 50.53904 2 -2206 17 86 55 31 41.69253 2 -2207 17 87 55 29 40.17875 2 -2208 17 88 55 27 51.27297 2 -2209 17 89 55 28 42.9013 2 -2210 17 90 55 30 42.91333 2 -2211 17 91 55 32 48.45552 2 -2212 17 92 59 33 45.88088 2 -2213 17 93 59 31 41.90844 2 -2214 17 94 59 29 41.65186 2 -2215 17 95 59 27 46.59041 2 -2216 17 96 59 28 44.86446 2 -2217 17 97 59 30 47.07336 2 -2218 17 98 59 32 51.20319 2 -2219 17 99 63 31 50.67723 2 -2220 17 100 63 29 41.45467 2 -2221 17 101 63 27 44.54185 2 -2222 17 102 63 28 43.91244 2 -2223 17 103 63 30 43.21629 2 -2224 17 104 63 32 54.61876 2 -2225 17 105 63 34 51.53688 2 -2226 17 106 67 31 40.65559 2 -2227 17 107 67 29 40.56877 2 -2228 17 108 67 27 45.30776 2 -2229 17 109 67 28 44.8986 2 -2230 17 110 67 30 47.52078 2 -2231 17 111 67 32 51.59971 2 -2232 17 112 71 31 49.64876 2 -2233 17 113 71 29 41.01549 2 -2234 17 114 71 27 43.77032 2 -2235 17 115 71 25 47.14024 2 -2236 17 116 71 28 45.45874 2 -2237 17 117 71 30 51.35881 2 -2238 17 118 71 32 62.92669 2 -2239 17 119 75 31 38.96611 2 -2240 17 120 75 29 43.03946 2 -2241 17 121 75 27 47.44979 2 -2242 17 122 75 30 55.95899 2 -2243 17 123 75 32 53.40242 2 -2244 17 124 75 34 68.92319 2 -2245 17 125 79 31 53.81457 2 -2246 17 126 79 29 57.68182 2 -2247 17 127 79 27 69.21785 2 -2248 17 128 79 28 71.80378 2 -2249 17 129 79 30 77.27491 4 -2250 17 130 79 32 86.87788 2 -2251 17 131 79 34 89.98923 4 -2252 18 0 3 39 96.35231 4 -2253 18 1 3 37 100.10883 2 -2254 18 2 3 35 87.88534 4 -2255 18 3 3 34 82.98985 4 -2256 18 4 3 36 84.31653 2 -2257 18 5 3 38 70.53152 2 -2258 18 6 7 39 79.83173 4 -2259 18 7 7 37 80.31001 2 -2260 18 8 7 35 58.6202 2 -2261 18 9 7 34 72.54599 2 -2262 18 10 7 36 83.49624 4 -2263 18 11 7 38 64.24195 2 -2264 18 12 7 40 48.52558 2 -2265 18 13 11 39 74.63526 2 -2266 18 14 11 37 55.11235 2 -2267 18 15 11 35 68.24703 2 -2268 18 16 11 33 58.28024 2 -2269 18 17 11 34 54.89146 2 -2270 18 18 11 36 52.73462 2 -2271 18 19 15 37 67.1672 2 -2272 18 20 15 35 62.54522 2 -2273 18 21 15 33 61.86978 2 -2274 18 22 15 34 62.45943 2 -2275 18 23 15 36 59.64435 2 -2276 18 24 15 38 48.44088 2 -2277 18 25 15 40 50.30223 2 -2278 18 26 19 39 70.26903 2 -2279 18 27 19 37 59.50479 4 -2280 18 28 19 35 54.7983 2 -2281 18 29 19 34 68.95584 2 -2282 18 30 19 36 55.77933 2 -2283 18 31 19 38 54.20014 2 -2284 18 32 19 40 52.42683 2 -2285 18 33 23 37 70.59418 2 -2286 18 34 23 35 56.05728 2 -2287 18 35 23 33 54.8256 2 -2288 18 36 23 36 56.09556 2 -2289 18 37 23 38 50.28722 2 -2290 18 38 23 40 65.90417 2 -2291 18 39 27 37 76.77082 4 -2292 18 40 27 35 57.68817 2 -2293 18 41 27 33 70.14304 2 -2294 18 42 27 34 66.21179 2 -2295 18 43 27 36 55.79885 2 -2296 18 44 27 38 54.58983 2 -2297 18 45 27 40 50.41581 2 -2298 18 46 31 39 69.24969 2 -2299 18 47 31 37 51.58091 2 -2300 18 48 31 35 58.40405 2 -2301 18 49 31 34 55.11354 2 -2302 18 50 31 36 58.75272 2 -2303 18 51 31 38 52.4497 2 -2304 18 52 31 40 55.49705 2 -2305 18 53 35 39 59.08535 2 -2306 18 54 35 37 52.54698 2 -2307 18 55 35 35 53.84205 2 -2308 18 56 35 36 61.01879 2 -2309 18 57 35 38 51.4515 2 -2310 18 58 35 40 54.73031 2 -2311 18 59 39 35 61.92074 2 -2312 18 60 39 33 66.63557 2 -2313 18 61 39 31 56.03207 2 -2314 18 62 39 34 68.80288 2 -2315 18 63 39 36 50.97649 2 -2316 18 64 39 38 50.21031 2 -2317 18 65 39 40 58.83567 2 -2318 18 66 43 39 58.66981 2 -2319 18 67 43 37 54.97493 2 -2320 18 68 43 35 53.50773 2 -2321 18 69 43 33 64.81412 2 -2322 18 70 43 32 59.00389 2 -2323 18 71 43 34 71.61789 2 -2324 18 72 43 36 62.60843 2 -2325 18 73 47 39 56.11342 2 -2326 18 74 47 37 50.3448 2 -2327 18 75 47 35 60.3185 2 -2328 18 76 47 36 61.10662 2 -2329 18 77 47 38 54.81477 2 -2330 18 78 47 40 73.56294 2 -2331 18 79 51 39 56.87359 2 -2332 18 80 51 37 59.43743 2 -2333 18 81 51 35 52.13386 2 -2334 18 82 51 33 62.85569 2 -2335 18 83 51 36 51.9236 2 -2336 18 84 51 38 52.27668 2 -2337 18 85 51 40 75.11601 4 -2338 18 86 55 39 51.19151 2 -2339 18 87 55 37 53.95637 2 -2340 18 88 55 35 51.81224 2 -2341 18 89 55 33 59.12907 2 -2342 18 90 55 34 60.13718 2 -2343 18 91 55 36 62.19573 4 -2344 18 92 55 38 68.14922 2 -2345 18 93 59 39 50.01394 2 -2346 18 94 59 37 51.31386 2 -2347 18 95 59 35 56.89453 2 -2348 18 96 59 34 63.95013 2 -2349 18 97 59 36 64.13009 2 -2350 18 98 59 38 74.12379 2 -2351 18 99 63 39 52.81417 2 -2352 18 100 63 37 52.09185 2 -2353 18 101 63 35 55.12907 2 -2354 18 102 63 33 67.76207 2 -2355 18 103 63 36 54.93586 2 -2356 18 104 63 38 55.26758 2 -2357 18 105 63 40 62.66954 2 -2358 18 106 67 39 49.96092 2 -2359 18 107 67 37 51.80063 2 -2360 18 108 67 35 61.96323 2 -2361 18 109 67 33 56.42999 2 -2362 18 110 67 34 56.29874 2 -2363 18 111 67 36 68.43426 4 -2364 18 112 67 38 75.52854 4 -2365 18 113 71 35 52.9234 2 -2366 18 114 71 33 56.34974 2 -2367 18 115 71 34 58.2994 2 -2368 18 116 71 36 63.81787 2 -2369 18 117 71 38 61.55564 2 -2370 18 118 71 40 66.50135 4 -2371 18 119 75 39 50.18387 2 -2372 18 120 75 37 52.15361 2 -2373 18 121 75 35 62.26209 2 -2374 18 122 75 33 71.58574 2 -2375 18 123 75 36 71.05973 4 -2376 18 124 75 38 80.16471 2 -2377 18 125 75 40 78.97665 4 -2378 18 126 79 37 71.69087 2 -2379 18 127 79 35 78.72475 2 -2380 18 128 79 33 86.93629 4 -2381 18 129 79 36 86.92622 4 -2382 18 130 79 38 93.4774 4 -2383 18 131 79 40 100.72928 2 -2384 19 0 4 5 83.65287 2 -2385 19 1 4 3 80.16644 4 -2386 19 2 4 1 70.05728 2 -2387 19 3 4 2 72.59017 2 -2388 19 4 4 4 67.43964 2 -2389 19 5 4 6 60.65867 2 -2390 19 6 3 40 83.44368 2 -2391 19 7 8 5 55.82647 2 -2392 19 8 8 3 52.92749 2 -2393 19 9 8 1 43.03121 2 -2394 19 10 8 2 67.1835 2 -2395 19 11 8 4 64.33855 2 -2396 19 12 8 6 37.76492 2 -2397 19 13 12 5 49.7829 2 -2398 19 14 12 3 48.48519 2 -2399 19 15 12 1 40.78278 2 -2400 19 16 12 2 49.42196 2 -2401 19 17 12 4 39.74304 2 -2402 19 18 11 38 65.59436 2 -2403 19 19 11 40 73.31688 2 -2404 19 20 15 39 81.72596 4 -2405 19 21 16 5 51.78525 2 -2406 19 22 16 3 46.19436 2 -2407 19 23 16 1 40.33201 2 -2408 19 24 16 2 40.45452 2 -2409 19 25 16 4 45.72813 2 -2410 19 26 16 6 36.86115 2 -2411 19 27 20 7 61.61062 2 -2412 19 28 20 5 45.14818 2 -2413 19 29 20 3 55.27527 2 -2414 19 30 20 1 64.54564 2 -2415 19 31 20 2 41.17034 2 -2416 19 32 20 4 37.59429 2 -2417 19 33 20 6 47.22264 2 -2418 19 34 23 39 76.97311 4 -2419 19 35 24 3 63.90912 2 -2420 19 36 24 1 39.86119 2 -2421 19 37 24 2 102.62405 2 -2422 19 38 24 4 35.85402 2 -2423 19 39 24 6 45.16698 2 -2424 19 40 27 39 83.68637 4 -2425 19 41 28 5 41.44694 2 -2426 19 42 28 3 46.76451 2 -2427 19 43 28 1 48.725 2 -2428 19 44 28 2 53.22078 2 -2429 19 45 28 4 38.66276 2 -2430 19 46 28 6 43.74431 2 -2431 19 47 32 5 43.40182 2 -2432 19 48 32 3 43.88689 2 -2433 19 49 32 1 55.42107 2 -2434 19 50 32 2 38.39158 2 -2435 19 51 32 4 38.88257 2 -2436 19 52 32 6 36.04988 2 -2437 19 53 32 8 48.07267 2 -2438 19 54 36 5 41.52665 2 -2439 19 55 36 3 47.66661 2 -2440 19 56 36 1 40.43823 2 -2441 19 57 36 2 41.50663 2 -2442 19 58 36 4 76.59016 2 -2443 19 59 36 6 38.85565 2 -2444 19 60 39 39 80.87114 2 -2445 19 61 39 37 78.81242 4 -2446 19 62 40 3 38.42716 2 -2447 19 63 40 1 42.96957 2 -2448 19 64 40 2 38.39271 2 -2449 19 65 40 4 39.64779 2 -2450 19 66 40 6 48.7284 2 -2451 19 67 44 5 45.40568 2 -2452 19 68 44 3 40.38995 2 -2453 19 69 44 1 42.48822 2 -2454 19 70 44 2 115.66859 2 -2455 19 71 44 4 43.53704 2 -2456 19 72 43 38 80.61783 4 -2457 19 73 43 40 76.93864 2 -2458 19 74 48 5 38.30513 2 -2459 19 75 48 3 43.7138 2 -2460 19 76 48 1 39.81365 2 -2461 19 77 48 2 47.23137 2 -2462 19 78 48 4 42.95562 2 -2463 19 79 48 6 44.52292 2 -2464 19 80 52 7 47.02081 2 -2465 19 81 52 5 36.43324 2 -2466 19 82 52 3 36.53986 2 -2467 19 83 52 1 44.96525 2 -2468 19 84 52 2 58.241 2 -2469 19 85 52 4 45.28007 2 -2470 19 86 52 6 45.94273 2 -2471 19 87 56 5 43.24054 2 -2472 19 88 56 3 37.9672 2 -2473 19 89 56 1 38.23732 2 -2474 19 90 56 2 41.12553 2 -2475 19 91 56 4 40.2626 2 -2476 19 92 56 6 41.99116 2 -2477 19 93 55 40 85.71539 4 -2478 19 94 60 5 42.17895 2 -2479 19 95 60 3 36.89806 2 -2480 19 96 60 1 40.63007 2 -2481 19 97 60 2 39.9185 2 -2482 19 98 60 4 38.70219 2 -2483 19 99 59 40 78.84774 4 -2484 19 100 64 5 46.9163 2 -2485 19 101 64 3 36.95581 2 -2486 19 102 64 1 39.82637 2 -2487 19 103 64 2 49.26174 2 -2488 19 104 64 4 40.04214 2 -2489 19 105 64 6 54.37306 2 -2490 19 106 64 8 47.55811 2 -2491 19 107 68 5 36.89771 2 -2492 19 108 68 3 44.53364 2 -2493 19 109 68 1 39.30601 2 -2494 19 110 68 2 40.06206 2 -2495 19 111 68 4 48.69647 2 -2496 19 112 68 6 45.9973 2 -2497 19 113 67 40 83.90803 4 -2498 19 114 71 39 67.10259 2 -2499 19 115 71 37 65.61393 3 -2500 19 116 72 3 58.4569 2 -2501 19 117 72 1 51.72274 2 -2502 19 118 72 2 51.84274 2 -2503 19 119 72 4 52.40462 2 -2504 19 120 72 6 52.36129 2 -2505 19 121 76 5 35.72167 2 -2506 19 122 76 3 43.88531 2 -2507 19 123 76 1 55.22588 2 -2508 19 124 76 2 41.38984 2 -2509 19 125 76 4 50.48529 2 -2510 19 126 76 6 54.23008 2 -2511 19 127 79 39 89.13114 4 -2512 19 128 80 5 58.61304 2 -2513 19 129 80 3 70.48381 2 -2514 19 130 80 1 72.39181 2 -2515 19 131 80 2 76.21234 2 -2516 19 132 80 4 78.59088 2 -2517 19 133 80 6 80.34683 2 -2518 20 0 4 11 90.22247 2 -2519 20 1 4 9 81.1836 2 -2520 20 2 4 7 85.56015 4 -2521 20 3 4 8 81.20755 2 -2522 20 4 4 10 74.77371 2 -2523 20 5 4 12 69.46188 2 -2524 20 6 8 13 69.65923 2 -2525 20 7 8 11 65.27855 2 -2526 20 8 8 9 61.90031 2 -2527 20 9 8 7 56.98041 2 -2528 20 10 8 8 54.51608 2 -2529 20 11 8 10 55.14952 2 -2530 20 12 8 12 56.84716 2 -2531 20 13 12 11 62.16848 2 -2532 20 14 12 9 64.78054 2 -2533 20 15 12 7 51.24476 2 -2534 20 16 12 6 61.17989 2 -2535 20 17 12 8 51.8639 2 -2536 20 18 12 10 58.08833 2 -2537 20 19 12 12 50.8857 2 -2538 20 20 16 13 67.94886 2 -2539 20 21 16 11 63.1005 2 -2540 20 22 16 9 61.45954 2 -2541 20 23 16 7 52.9778 2 -2542 20 24 16 8 52.87973 2 -2543 20 25 16 10 52.20499 2 -2544 20 26 16 12 48.37249 2 -2545 20 27 20 13 61.13887 2 -2546 20 28 20 11 50.37299 2 -2547 20 29 20 9 60.29869 2 -2548 20 30 20 8 53.69614 2 -2549 20 31 20 10 50.32166 2 -2550 20 32 20 12 49.13079 2 -2551 20 33 24 11 61.85867 4 -2552 20 34 24 9 62.32013 2 -2553 20 35 24 7 67.56209 2 -2554 20 36 24 5 60.78459 2 -2555 20 37 24 8 48.67629 2 -2556 20 38 24 10 49.39955 2 -2557 20 39 24 12 50.62129 2 -2558 20 40 28 13 63.32355 2 -2559 20 41 28 11 50.94219 2 -2560 20 42 28 9 58.96114 2 -2561 20 43 28 7 65.85705 2 -2562 20 44 28 8 51.76458 2 -2563 20 45 28 10 55.04118 2 -2564 20 46 28 12 57.58315 2 -2565 20 47 32 13 58.98701 2 -2566 20 48 32 11 56.03132 2 -2567 20 49 32 9 51.28944 2 -2568 20 50 32 7 50.50096 2 -2569 20 51 32 10 50.32664 2 -2570 20 52 32 12 47.9672 2 -2571 20 53 32 14 59.04683 2 -2572 20 54 36 11 49.94064 2 -2573 20 55 36 9 51.4155 4 -2574 20 56 36 7 50.84664 2 -2575 20 57 36 8 51.03957 2 -2576 20 58 36 10 82.40865 2 -2577 20 59 36 12 49.38847 2 -2578 20 60 40 11 66.14686 2 -2579 20 61 40 9 60.76588 2 -2580 20 62 40 7 48.91665 2 -2581 20 63 40 5 58.06831 4 -2582 20 64 40 8 50.56366 2 -2583 20 65 40 10 51.15639 2 -2584 20 66 40 12 55.17915 2 -2585 20 67 44 11 64.54646 2 -2586 20 68 44 9 49.08658 2 -2587 20 69 44 7 53.10644 2 -2588 20 70 44 6 51.62132 2 -2589 20 71 44 8 52.56766 2 -2590 20 72 44 10 59.20099 2 -2591 20 73 44 12 63.0163 2 -2592 20 74 48 11 49.353 2 -2593 20 75 48 9 51.32063 2 -2594 20 76 48 7 57.20448 2 -2595 20 77 48 8 53.85808 2 -2596 20 78 48 10 52.54294 2 -2597 20 79 48 12 53.08536 2 -2598 20 80 52 13 57.84848 2 -2599 20 81 52 11 109.02695 2 -2600 20 82 52 9 48.81471 2 -2601 20 83 52 8 57.97711 2 -2602 20 84 52 10 48.4454 2 -2603 20 85 52 12 63.76729 2 -2604 20 86 52 14 52.77775 2 -2605 20 87 56 11 55.6492 2 -2606 20 88 56 9 48.68227 2 -2607 20 89 56 7 55.70363 2 -2608 20 90 56 8 62.57872 4 -2609 20 91 56 10 51.09439 2 -2610 20 92 56 12 53.13655 2 -2611 20 93 56 14 69.32803 2 -2612 20 94 60 11 50.78772 2 -2613 20 95 60 9 58.96227 2 -2614 20 96 60 7 49.17195 2 -2615 20 97 60 6 71.69519 2 -2616 20 98 60 8 50.98436 2 -2617 20 99 60 10 57.46809 2 -2618 20 100 60 12 64.21646 2 -2619 20 101 64 11 47.38245 2 -2620 20 102 64 9 50.63737 2 -2621 20 103 64 7 53.91279 2 -2622 20 104 64 10 51.27374 2 -2623 20 105 64 12 53.55142 2 -2624 20 106 64 14 64.41583 2 -2625 20 107 68 11 48.93461 2 -2626 20 108 68 9 57.09262 2 -2627 20 109 68 7 50.70925 2 -2628 20 110 68 8 52.906 2 -2629 20 111 68 10 50.15721 2 -2630 20 112 68 12 62.17034 2 -2631 20 113 68 14 67.93131 2 -2632 20 114 72 11 51.23643 2 -2633 20 115 72 9 60.64288 2 -2634 20 116 72 7 49.51532 2 -2635 20 117 72 5 58.88415 2 -2636 20 118 72 8 51.70942 2 -2637 20 119 72 10 68.97882 4 -2638 20 120 72 12 60.47922 2 -2639 20 121 76 11 55.32636 2 -2640 20 122 76 9 52.81817 2 -2641 20 123 76 7 60.14399 2 -2642 20 124 76 8 53.42415 2 -2643 20 125 76 10 63.82299 2 -2644 20 126 76 12 67.98033 2 -2645 20 127 76 14 70.89025 2 -2646 20 128 80 11 68.63901 2 -2647 20 129 80 9 78.64559 4 -2648 20 130 80 7 80.0194 2 -2649 20 131 80 8 95.09235 4 -2650 20 132 80 10 87.292 2 -2651 20 133 80 12 103.43388 2 -2652 21 0 4 19 110.65715 4 -2653 21 1 4 17 101.62474 2 -2654 21 2 4 15 102.85698 4 -2655 21 3 4 13 92.74745 2 -2656 21 4 4 14 92.58815 2 -2657 21 5 4 16 83.9417 2 -2658 21 6 4 18 79.73973 2 -2659 21 7 8 19 93.32817 4 -2660 21 8 8 17 79.49457 2 -2661 21 9 8 15 91.05264 2 -2662 21 10 8 14 77.93972 2 -2663 21 11 8 16 72.91974 2 -2664 21 12 8 18 75.64146 2 -2665 21 13 8 20 62.11311 2 -2666 21 14 12 17 72.12162 2 -2667 21 15 12 15 71.34738 4 -2668 21 16 12 13 63.10947 2 -2669 21 17 12 14 62.27297 2 -2670 21 18 12 16 60.38029 2 -2671 21 19 12 18 66.6151 2 -2672 21 20 12 20 60.88026 2 -2673 21 21 16 19 77.63763 2 -2674 21 22 16 17 69.23589 4 -2675 21 23 16 15 60.52939 2 -2676 21 24 16 14 60.93498 2 -2677 21 25 16 16 65.06875 2 -2678 21 26 16 18 61.36435 2 -2679 21 27 20 19 76.26985 2 -2680 21 28 20 17 77.20072 2 -2681 21 29 20 15 64.18857 2 -2682 21 30 20 14 67.39867 2 -2683 21 31 20 16 69.17582 2 -2684 21 32 20 18 60.08074 2 -2685 21 33 20 20 59.48991 2 -2686 21 34 24 17 76.20167 2 -2687 21 35 24 15 70.26865 2 -2688 21 36 24 13 64.59095 2 -2689 21 37 24 14 69.58785 2 -2690 21 38 24 16 58.94064 2 -2691 21 39 24 18 65.96751 2 -2692 21 40 24 20 69.33788 4 -2693 21 41 28 19 73.309 2 -2694 21 42 28 17 70.21268 2 -2695 21 43 28 15 62.70523 2 -2696 21 44 28 14 82.65243 2 -2697 21 45 28 16 59.98792 2 -2698 21 46 28 18 59.13248 2 -2699 21 47 28 20 60.64332 2 -2700 21 48 32 19 69.54755 2 -2701 21 49 32 17 82.8553 2 -2702 21 50 32 15 60.78578 2 -2703 21 51 32 16 58.32879 2 -2704 21 52 32 18 60.82285 2 -2705 21 53 32 20 62.13141 2 -2706 21 54 36 17 72.62623 4 -2707 21 55 36 15 73.54366 2 -2708 21 56 36 13 62.44485 2 -2709 21 57 36 14 65.67136 2 -2710 21 58 36 16 59.43264 2 -2711 21 59 36 18 59.73034 2 -2712 21 60 36 20 67.38593 2 -2713 21 61 40 17 71.84592 4 -2714 21 62 40 15 72.26712 2 -2715 21 63 40 13 59.85495 2 -2716 21 64 40 14 71.5093 2 -2717 21 65 40 16 58.29815 2 -2718 21 66 40 18 59.40355 2 -2719 21 67 40 20 73.33098 2 -2720 21 68 44 19 58.52433 2 -2721 21 69 44 17 64.61735 2 -2722 21 70 44 15 61.62205 2 -2723 21 71 44 13 68.91869 2 -2724 21 72 44 14 71.77462 2 -2725 21 73 44 16 72.31273 2 -2726 21 74 44 18 73.71796 2 -2727 21 75 48 19 80.10339 2 -2728 21 76 48 17 59.24355 2 -2729 21 77 48 15 64.9703 2 -2730 21 78 48 13 63.41252 2 -2731 21 79 48 14 66.04699 2 -2732 21 80 48 16 76.70072 2 -2733 21 81 48 18 73.01625 4 -2734 21 82 52 19 65.75312 2 -2735 21 83 52 17 59.17454 2 -2736 21 84 52 15 57.68211 2 -2737 21 85 52 16 62.09541 2 -2738 21 86 52 18 94.15546 2 -2739 21 87 52 20 65.33996 2 -2740 21 88 56 19 67.94512 2 -2741 21 89 56 17 63.08557 2 -2742 21 90 56 15 60.05246 2 -2743 21 91 56 13 67.49621 2 -2744 21 92 56 16 61.31828 2 -2745 21 93 56 18 74.08665 2 -2746 21 94 56 20 71.56435 2 -2747 21 95 60 19 67.73033 2 -2748 21 96 60 17 59.27375 2 -2749 21 97 60 15 60.06866 2 -2750 21 98 60 13 70.4385 2 -2751 21 99 60 14 65.26339 2 -2752 21 100 60 16 77.73696 2 -2753 21 101 60 18 71.48056 2 -2754 21 102 64 19 59.94912 2 -2755 21 103 64 17 60.75708 2 -2756 21 104 64 15 64.10996 2 -2757 21 105 64 13 68.28101 2 -2758 21 106 64 16 61.53258 2 -2759 21 107 64 18 86.21884 2 -2760 21 108 64 20 76.14565 4 -2761 21 109 68 17 59.88285 2 -2762 21 110 68 15 63.99565 2 -2763 21 111 68 13 63.9708 2 -2764 21 112 68 16 64.40859 2 -2765 21 113 68 18 64.41322 2 -2766 21 114 68 20 78.48802 2 -2767 21 115 72 19 60.21499 2 -2768 21 116 72 17 58.55378 2 -2769 21 117 72 15 59.91743 2 -2770 21 118 72 13 63.25149 2 -2771 21 119 72 14 62.70925 2 -2772 21 120 72 16 63.31826 2 -2773 21 121 72 18 90.64764 2 -2774 21 122 76 19 58.44823 2 -2775 21 123 76 17 62.76926 2 -2776 21 124 76 15 71.4396 2 -2777 21 125 76 13 67.19145 2 -2778 21 126 76 16 85.03801 2 -2779 21 127 76 18 82.63491 4 -2780 21 128 76 20 84.24989 4 -2781 21 129 80 17 87.44363 2 -2782 21 130 80 15 82.0438 4 -2783 21 131 80 13 97.84318 2 -2784 21 132 80 14 91.97536 2 -2785 21 133 80 16 112.87136 2 -2786 21 134 80 18 102.50342 2 -2787 21 135 80 20 107.68275 2 -2788 22 0 4 25 111.71589 2 -2789 22 1 4 23 115.30997 4 -2790 22 2 4 21 107.56593 2 -2791 22 3 4 20 113.48844 2 -2792 22 4 4 22 101.30566 2 -2793 22 5 4 24 93.88881 4 -2794 22 6 4 26 83.55765 2 -2795 22 7 8 25 91.72925 2 -2796 22 8 8 23 98.59803 2 -2797 22 9 8 21 82.01957 2 -2798 22 10 8 22 85.82779 4 -2799 22 11 8 24 80.70154 2 -2800 22 12 8 26 73.92448 2 -2801 22 13 12 25 88.31252 2 -2802 22 14 12 23 86.66804 2 -2803 22 15 12 21 84.52341 4 -2804 22 16 12 19 76.80891 2 -2805 22 17 12 22 88.30418 2 -2806 22 18 12 24 70.11881 2 -2807 22 19 12 26 69.71711 2 -2808 22 20 16 25 91.7412 4 -2809 22 21 16 23 89.02145 4 -2810 22 22 16 21 82.123 4 -2811 22 23 16 20 86.48026 4 -2812 22 24 16 22 75.26604 2 -2813 22 25 16 24 70.82425 2 -2814 22 26 16 26 71.63284 2 -2815 22 27 20 27 82.22092 2 -2816 22 28 20 25 85.75116 2 -2817 22 29 20 23 74.07336 2 -2818 22 30 20 21 70.66012 2 -2819 22 31 20 22 72.83744 2 -2820 22 32 20 24 71.79055 2 -2821 22 33 20 26 72.5794 2 -2822 22 34 24 25 89.9791 2 -2823 22 35 24 23 79.98843 2 -2824 22 36 24 21 72.38287 2 -2825 22 37 24 19 73.71292 2 -2826 22 38 24 22 69.55551 2 -2827 22 39 24 24 70.37299 2 -2828 22 40 24 26 79.3823 2 -2829 22 41 28 25 85.06956 2 -2830 22 42 28 23 76.31486 2 -2831 22 43 28 21 81.14909 2 -2832 22 44 28 22 75.02314 2 -2833 22 45 28 24 75.2789 2 -2834 22 46 28 26 71.74619 2 -2835 22 47 28 28 73.78237 2 -2836 22 48 32 25 81.11498 2 -2837 22 49 32 23 69.62003 2 -2838 22 50 32 21 72.11919 2 -2839 22 51 32 22 74.53193 2 -2840 22 52 32 24 73.33566 2 -2841 22 53 32 26 84.35797 2 -2842 22 54 36 25 94.05161 2 -2843 22 55 36 23 72.79031 2 -2844 22 56 36 21 88.64121 2 -2845 22 57 36 19 72.3534 2 -2846 22 58 36 22 70.28596 2 -2847 22 59 36 24 69.59868 2 -2848 22 60 36 26 84.96815 2 -2849 22 61 40 25 86.12278 2 -2850 22 62 40 23 82.03917 4 -2851 22 63 40 21 71.33859 2 -2852 22 64 40 19 72.90669 2 -2853 22 65 40 22 70.64323 2 -2854 22 66 40 24 70.22141 2 -2855 22 67 40 26 73.41609 2 -2856 22 68 44 25 68.8101 2 -2857 22 69 44 23 73.56475 2 -2858 22 70 44 21 70.92828 2 -2859 22 71 44 20 72.86775 2 -2860 22 72 44 22 74.73376 2 -2861 22 73 44 24 89.37756 2 -2862 22 74 44 26 82.59584 4 -2863 22 75 48 25 80.36854 2 -2864 22 76 48 23 70.73075 2 -2865 22 77 48 21 73.05891 2 -2866 22 78 48 20 72.67098 2 -2867 22 79 48 22 76.65253 2 -2868 22 80 48 24 74.96959 2 -2869 22 81 48 26 86.11461 4 -2870 22 82 52 25 76.8571 2 -2871 22 83 52 23 67.06213 2 -2872 22 84 52 21 73.11842 2 -2873 22 85 52 22 77.07518 2 -2874 22 86 52 24 71.10258 2 -2875 22 87 52 26 75.32659 2 -2876 22 88 56 27 70.99376 2 -2877 22 89 56 25 70.01188 2 -2878 22 90 56 23 79.45068 2 -2879 22 91 56 21 72.49402 2 -2880 22 92 56 22 72.4846 2 -2881 22 93 56 24 74.75854 2 -2882 22 94 56 26 85.11059 2 -2883 22 95 60 25 76.52477 2 -2884 22 96 60 23 69.55304 2 -2885 22 97 60 21 71.87395 2 -2886 22 98 60 20 75.52738 2 -2887 22 99 60 22 75.19132 2 -2888 22 100 60 24 75.72908 2 -2889 22 101 60 26 86.38739 2 -2890 22 102 64 25 67.72042 2 -2891 22 103 64 23 68.70452 2 -2892 22 104 64 21 76.80544 2 -2893 22 105 64 22 81.92797 2 -2894 22 106 64 24 76.40733 2 -2895 22 107 64 26 84.96553 2 -2896 22 108 64 28 87.61413 2 -2897 22 109 68 25 67.67467 2 -2898 22 110 68 23 71.10361 2 -2899 22 111 68 21 71.30256 2 -2900 22 112 68 19 85.43278 2 -2901 22 113 68 22 93.02241 2 -2902 22 114 68 24 88.23148 4 -2903 22 115 68 26 88.06139 4 -2904 22 116 72 25 69.80397 2 -2905 22 117 72 23 70.99915 2 -2906 22 118 72 21 74.91687 2 -2907 22 119 72 20 73.91044 2 -2908 22 120 72 22 100.22797 2 -2909 22 121 72 24 86.11079 2 -2910 22 122 72 26 88.96065 2 -2911 22 123 76 25 69.19518 2 -2912 22 124 76 23 79.10805 2 -2913 22 125 76 21 83.9115 2 -2914 22 126 76 22 87.96225 4 -2915 22 127 76 24 92.80996 2 -2916 22 128 76 26 97.89679 4 -2917 22 129 80 25 89.96151 2 -2918 22 130 80 23 95.43544 2 -2919 22 131 80 21 95.45943 2 -2920 22 132 80 19 112.01284 4 -2921 22 133 80 22 110.07878 4 -2922 22 134 80 24 110.71772 4 -2923 22 135 80 26 107.03965 2 -2924 23 0 4 33 113.63699 2 -2925 23 1 4 31 113.78691 2 -2926 23 2 4 29 115.03717 3 -2927 23 3 4 27 108.97094 2 -2928 23 4 4 28 113.61593 4 -2929 23 5 4 30 108.31248 2 -2930 23 6 4 32 105.03827 2 -2931 23 7 8 33 110.32286 4 -2932 23 8 8 31 104.44407 4 -2933 23 9 8 29 107.75603 4 -2934 23 10 8 27 96.53655 2 -2935 23 11 8 28 95.68574 2 -2936 23 12 8 30 88.17455 2 -2937 23 13 8 32 86.07008 2 -2938 23 14 12 33 95.54773 2 -2939 23 15 12 31 100.49996 4 -2940 23 16 12 29 84.36275 2 -2941 23 17 12 27 85.36502 2 -2942 23 18 12 28 84.97428 2 -2943 23 19 12 30 81.98749 2 -2944 23 20 12 32 82.45321 2 -2945 23 21 16 33 99.21707 2 -2946 23 22 16 31 91.15942 2 -2947 23 23 16 29 84.66866 2 -2948 23 24 16 27 83.71216 2 -2949 23 25 16 28 90.3172 2 -2950 23 26 16 30 79.96436 2 -2951 23 27 16 32 78.63403 2 -2952 23 28 20 33 94.87175 2 -2953 23 29 20 31 95.16583 2 -2954 23 30 20 29 88.6763 2 -2955 23 31 20 28 85.59337 2 -2956 23 32 20 30 81.96961 2 -2957 23 33 20 32 82.14536 2 -2958 23 34 20 34 89.96096 4 -2959 23 35 24 31 101.4464 2 -2960 23 36 24 29 92.4518 4 -2961 23 37 24 27 84.35322 2 -2962 23 38 24 28 90.2787 2 -2963 23 39 24 30 79.03629 2 -2964 23 40 24 32 80.51599 2 -2965 23 41 24 34 86.55404 2 -2966 23 42 28 31 94.67799 2 -2967 23 43 28 29 83.03783 2 -2968 23 44 28 27 84.89952 2 -2969 23 45 28 30 80.12912 2 -2970 23 46 28 32 79.90199 2 -2971 23 47 28 34 78.99182 2 -2972 23 48 32 33 98.19312 2 -2973 23 49 32 31 97.48399 2 -2974 23 50 32 29 80.18413 2 -2975 23 51 32 27 79.52707 2 -2976 23 52 32 28 82.79177 2 -2977 23 53 32 30 88.52373 2 -2978 23 54 32 32 89.40853 2 -2979 23 55 36 31 92.59828 4 -2980 23 56 36 29 96.40507 2 -2981 23 57 36 27 83.05179 2 -2982 23 58 36 28 87.69362 2 -2983 23 59 36 30 80.82786 2 -2984 23 60 36 32 80.11567 2 -2985 23 61 36 34 86.73351 2 -2986 23 62 40 31 96.49391 2 -2987 23 63 40 29 90.85319 4 -2988 23 64 40 27 88.98717 2 -2989 23 65 40 28 84.27265 2 -2990 23 66 40 30 79.72088 2 -2991 23 67 40 32 83.42405 2 -2992 23 68 40 34 85.08877 2 -2993 23 69 44 33 86.98594 2 -2994 23 70 44 31 78.69394 2 -2995 23 71 44 29 80.01593 2 -2996 23 72 44 27 86.83865 2 -2997 23 73 44 28 89.37306 2 -2998 23 74 44 30 90.0103 4 -2999 23 75 44 32 98.65773 2 -3000 23 76 48 33 92.92869 2 -3001 23 77 48 31 80.24733 2 -3002 23 78 48 29 80.23508 2 -3003 23 79 48 27 82.85796 2 -3004 23 80 48 28 84.9284 2 -3005 23 81 48 30 91.77159 2 -3006 23 82 48 32 97.46824 2 -3007 23 83 52 31 92.75012 2 -3008 23 84 52 29 79.12128 2 -3009 23 85 52 27 94.56653 2 -3010 23 86 52 28 81.61671 2 -3011 23 87 52 30 83.56589 2 -3012 23 88 52 32 95.52408 2 -3013 23 89 52 34 95.73446 4 -3014 23 90 56 33 76.35729 2 -3015 23 91 56 31 78.34248 2 -3016 23 92 56 29 81.62539 2 -3017 23 93 56 28 89.08634 2 -3018 23 94 56 30 84.59291 2 -3019 23 95 56 32 93.45967 2 -3020 23 96 60 33 87.28527 2 -3021 23 97 60 31 77.5879 2 -3022 23 98 60 29 80.069 2 -3023 23 99 60 27 83.21897 2 -3024 23 100 60 28 88.40615 2 -3025 23 101 60 30 86.83839 2 -3026 23 102 60 32 97.06944 2 -3027 23 103 64 33 81.14806 2 -3028 23 104 64 31 76.58826 2 -3029 23 105 64 29 83.34569 2 -3030 23 106 64 27 89.10547 2 -3031 23 107 64 30 82.27849 2 -3032 23 108 64 32 96.8305 2 -3033 23 109 64 34 101.41379 2 -3034 23 110 68 31 80.24241 2 -3035 23 111 68 29 83.28994 2 -3036 23 112 68 27 83.96189 2 -3037 23 113 68 28 83.8235 2 -3038 23 114 68 30 91.96963 2 -3039 23 115 68 32 94.04258 2 -3040 23 116 68 34 99.71041 4 -3041 23 117 72 31 83.41876 2 -3042 23 118 72 29 81.92415 2 -3043 23 119 72 27 85.48416 2 -3044 23 120 72 28 84.68033 2 -3045 23 121 72 30 82.68209 2 -3046 23 122 72 32 99.6747 2 -3047 23 123 72 34 100.85651 2 -3048 23 124 76 31 84.48168 2 -3049 23 125 76 29 81.39621 2 -3050 23 126 76 27 97.77724 2 -3051 23 127 76 28 93.73974 2 -3052 23 128 76 30 106.87768 4 -3053 23 129 76 32 111.20529 4 -3054 23 130 76 34 109.60235 4 -3055 23 131 80 31 105.19252 2 -3056 23 132 80 29 112.58697 2 -3057 23 133 80 27 113.29163 4 -3058 23 134 80 28 97.97624 2 -3059 23 135 80 30 99.7905 2 -3060 23 136 80 32 104.82875 2 -3061 23 137 80 34 111.66139 2 -3062 24 0 4 39 114.44852 4 -3063 24 1 4 37 115.8993 4 -3064 24 2 4 35 112.68044 4 -3065 24 3 4 34 112.60644 2 -3066 24 4 4 36 110.38335 2 -3067 24 5 4 38 112.94922 4 -3068 24 6 4 40 108.9958 2 -3069 24 7 8 39 114.12128 4 -3070 24 8 8 37 114.48544 2 -3071 24 9 8 35 114.37898 4 -3072 24 10 8 34 111.20019 2 -3073 24 11 8 36 96.49465 2 -3074 24 12 8 38 91.18277 2 -3075 24 13 8 40 87.56159 2 -3076 24 14 12 39 109.28451 2 -3077 24 15 12 37 106.68446 2 -3078 24 16 12 35 97.40932 2 -3079 24 17 12 34 95.57771 2 -3080 24 18 12 36 94.08329 2 -3081 24 19 12 38 90.88038 3 -3082 24 20 12 40 92.78791 2 -3083 24 21 16 39 102.76796 2 -3084 24 22 16 37 109.28695 2 -3085 24 23 16 35 100.15202 2 -3086 24 24 16 34 104.59901 4 -3087 24 25 16 36 90.79396 2 -3088 24 26 16 38 87.90998 2 -3089 24 27 16 40 88.09494 2 -3090 24 28 20 39 103.70123 2 -3091 24 29 20 37 97.09676 2 -3092 24 30 20 35 94.15451 2 -3093 24 31 20 36 92.7367 2 -3094 24 32 20 38 89.71006 2 -3095 24 33 20 40 86.42421 2 -3096 24 34 24 39 108.78698 2 -3097 24 35 24 37 103.90017 4 -3098 24 36 24 35 106.94747 2 -3099 24 37 24 33 94.1941 2 -3100 24 38 24 36 98.52375 2 -3101 24 39 24 38 87.83018 2 -3102 24 40 24 40 93.04112 2 -3103 24 41 28 39 113.00703 2 -3104 24 42 28 37 104.47878 4 -3105 24 43 28 35 94.02559 2 -3106 24 44 28 33 91.70726 2 -3107 24 45 28 36 97.01317 2 -3108 24 46 28 38 95.45116 2 -3109 24 47 28 40 90.16116 2 -3110 24 48 32 39 111.31224 2 -3111 24 49 32 37 101.78357 2 -3112 24 50 32 35 99.54982 2 -3113 24 51 32 34 100.82538 2 -3114 24 52 32 36 92.86136 2 -3115 24 53 32 38 91.28229 2 -3116 24 54 32 40 88.62518 2 -3117 24 55 36 39 102.78904 2 -3118 24 56 36 37 105.621 2 -3119 24 57 36 35 93.20979 2 -3120 24 58 36 33 94.66711 2 -3121 24 59 36 36 90.39706 2 -3122 24 60 36 38 91.53305 2 -3123 24 61 36 40 92.64712 2 -3124 24 62 40 39 109.74059 2 -3125 24 63 40 37 105.37855 2 -3126 24 64 40 35 90.09866 2 -3127 24 65 40 33 96.50556 2 -3128 24 66 40 36 91.21716 2 -3129 24 67 40 38 92.58576 2 -3130 24 68 40 40 92.25135 2 -3131 24 69 44 39 92.13484 2 -3132 24 70 44 37 90.81589 2 -3133 24 71 44 35 90.6035 2 -3134 24 72 44 34 94.74156 2 -3135 24 73 44 36 90.00334 2 -3136 24 74 44 38 94.61981 2 -3137 24 75 44 40 108.72334 2 -3138 24 76 48 39 104.78773 2 -3139 24 77 48 37 89.75451 2 -3140 24 78 48 35 90.05272 2 -3141 24 79 48 34 91.92509 2 -3142 24 80 48 36 103.23272 2 -3143 24 81 48 38 100.96602 2 -3144 24 82 48 40 102.45173 2 -3145 24 83 52 39 100.35723 2 -3146 24 84 52 37 89.74238 2 -3147 24 85 52 35 93.00848 2 -3148 24 86 52 33 97.59158 2 -3149 24 87 52 36 94.96935 2 -3150 24 88 52 38 97.22535 2 -3151 24 89 52 40 109.92577 2 -3152 24 90 56 39 87.9371 2 -3153 24 91 56 37 89.23668 2 -3154 24 92 56 35 92.48052 2 -3155 24 93 56 34 99.04511 2 -3156 24 94 56 36 94.35038 2 -3157 24 95 56 38 105.92427 4 -3158 24 96 56 40 112.08519 2 -3159 24 97 60 39 90.74507 2 -3160 24 98 60 37 87.03788 2 -3161 24 99 60 35 92.27164 2 -3162 24 100 60 34 94.26194 2 -3163 24 101 60 36 101.42166 2 -3164 24 102 60 38 97.0222 2 -3165 24 103 60 40 109.61661 2 -3166 24 104 64 39 86.54217 2 -3167 24 105 64 37 91.17173 2 -3168 24 106 64 35 94.83639 2 -3169 24 107 64 36 94.14229 2 -3170 24 108 64 38 104.09598 2 -3171 24 109 64 40 112.03059 2 -3172 24 110 68 39 99.7669 2 -3173 24 111 68 37 87.44068 2 -3174 24 112 68 35 96.76743 2 -3175 24 113 68 33 107.44685 4 -3176 24 114 68 36 100.11788 2 -3177 24 115 68 38 107.24556 2 -3178 24 116 68 40 111.54206 2 -3179 24 117 72 39 88.69117 2 -3180 24 118 72 37 90.1722 2 -3181 24 119 72 35 95.07117 2 -3182 24 120 72 33 96.58762 2 -3183 24 121 72 36 96.03247 2 -3184 24 122 72 38 110.8939 4 -3185 24 123 72 40 111.09105 2 -3186 24 124 76 39 87.55707 2 -3187 24 125 76 37 92.49838 2 -3188 24 126 76 35 95.75207 2 -3189 24 127 76 33 113.68143 4 -3190 24 128 76 36 113.89191 4 -3191 24 129 76 38 114.12963 4 -3192 24 130 76 40 115.0009 4 -3193 24 131 80 39 112.99812 2 -3194 24 132 80 37 102.45484 3 -3195 24 133 80 35 109.91696 2 -3196 24 134 80 33 110.44858 2 -3197 24 135 80 36 114.11982 2 -3198 24 136 80 38 110.49119 2 -3199 24 137 80 40 112.93176 2 +0 0 0 1 5 114.58513 2 +1 0 1 1 3 111.62347 2 +2 0 2 1 1 107.05054 2 +3 0 3 1 2 109.07558 2 +4 0 4 1 4 107.39219 2 +5 0 5 1 6 108.21686 2 +6 0 6 5 5 106.69568 2 +7 0 7 5 3 104.70059 2 +8 0 8 5 1 106.16396 2 +9 0 9 5 2 112.97545 2 +10 0 10 5 4 109.86593 2 +11 0 11 5 6 113.25175 2 +12 0 12 9 5 109.46447 2 +13 0 13 9 3 110.34165 2 +14 0 14 9 1 111.41756 2 +15 0 15 9 2 106.1737 2 +16 0 16 9 4 115.58794 4 +17 0 17 9 6 114.7662 2 +18 0 18 13 5 108.76961 2 +19 0 19 13 3 107.79706 2 +20 0 20 13 1 108.80507 2 +21 0 21 13 2 107.86731 2 +22 0 22 13 4 112.40788 2 +23 0 23 13 6 115.96705 2 +24 0 24 17 5 106.39049 2 +25 0 25 17 3 106.29825 2 +26 0 26 17 1 108.15379 2 +27 0 27 17 2 106.70514 2 +28 0 28 17 4 109.4446 2 +29 0 29 17 6 114.34823 2 +30 0 30 21 5 105.32471 2 +31 0 31 21 3 109.23021 2 +32 0 32 21 1 106.19112 2 +33 0 33 21 2 107.84571 2 +34 0 34 21 4 111.2126 2 +35 0 35 25 5 107.9117 2 +36 0 36 25 3 104.08081 2 +37 0 37 25 1 108.0094 2 +38 0 38 25 2 104.6241 2 +39 0 39 25 4 109.8199 2 +40 0 40 25 6 112.47804 2 +41 0 41 29 5 106.61834 2 +42 0 42 29 3 111.48735 3 +43 0 43 29 1 104.3669 2 +44 0 44 29 2 102.64014 2 +45 0 45 29 4 107.14092 2 +46 0 46 29 6 112.80961 2 +47 0 47 33 5 107.30606 2 +48 0 48 33 3 103.95552 2 +49 0 49 33 1 109.22927 2 +50 0 50 33 2 101.93445 2 +51 0 51 33 4 107.00428 2 +52 0 52 33 6 110.80057 2 +53 0 53 37 5 110.5005 2 +54 0 54 37 3 105.83289 2 +55 0 55 37 1 104.2996 2 +56 0 56 37 2 105.07072 2 +57 0 57 37 4 105.80608 2 +58 0 58 37 6 108.21548 2 +59 0 59 41 5 108.26468 2 +60 0 60 41 3 105.87101 2 +61 0 61 41 1 103.80617 2 +62 0 62 41 2 105.41928 2 +63 0 63 41 4 104.83456 2 +64 0 64 41 6 108.97099 2 +65 0 65 45 5 111.5159 2 +66 0 66 45 3 105.83991 2 +67 0 67 45 1 103.85933 2 +68 0 68 45 2 101.66406 2 +69 0 69 45 4 110.42389 2 +70 0 70 45 6 107.42189 2 +71 0 71 49 5 110.13953 2 +72 0 72 49 3 111.52933 2 +73 0 73 49 1 101.46486 2 +74 0 74 49 2 104.41421 2 +75 0 75 49 4 105.49178 2 +76 0 76 49 6 105.88864 2 +77 0 77 53 5 110.74102 2 +78 0 78 53 3 109.34681 2 +79 0 79 53 1 107.43037 2 +80 0 80 53 2 104.05644 2 +81 0 81 53 4 106.47509 2 +82 0 82 53 6 108.081 2 +83 0 83 57 3 113.08776 2 +84 0 84 57 1 107.67714 2 +85 0 85 57 2 108.46762 2 +86 0 86 57 4 108.24488 2 +87 0 87 57 6 103.77419 2 +88 0 88 61 5 114.34864 2 +89 0 89 61 3 109.44502 2 +90 0 90 61 1 111.25271 2 +91 0 91 61 2 108.17801 2 +92 0 92 61 4 113.25973 2 +93 0 93 61 6 107.31669 2 +94 0 94 65 5 113.30662 2 +95 0 95 65 3 110.1436 2 +96 0 96 65 1 115.01258 2 +97 0 97 65 2 107.03019 2 +98 0 98 65 4 108.96715 2 +99 0 99 65 6 107.70468 2 +100 0 100 69 5 114.46901 2 +101 0 101 69 3 112.62637 2 +102 0 102 69 1 106.39231 2 +103 0 103 69 2 107.52191 2 +104 0 104 69 4 105.11332 2 +105 0 105 69 6 105.20051 2 +106 0 106 73 5 115.28973 4 +107 0 107 73 3 109.5416 2 +108 0 108 73 1 111.1938 2 +109 0 109 73 2 105.23094 2 +110 0 110 73 4 104.11001 2 +111 0 111 73 6 105.19562 2 +112 0 112 77 5 106.14389 2 +113 0 113 77 3 106.57454 2 +114 0 114 77 1 109.4641 2 +115 0 115 77 2 105.92865 2 +116 0 116 77 4 110.32302 2 +117 0 117 77 6 113.83627 2 +118 1 0 1 11 110.8657 2 +119 1 1 1 9 101.57055 2 +120 1 2 1 7 96.44939 2 +121 1 3 1 8 107.90001 2 +122 1 4 1 10 95.75839 2 +123 1 5 1 12 94.39763 2 +124 1 6 5 11 94.63485 2 +125 1 7 5 9 97.12891 2 +126 1 8 5 7 94.4015 2 +127 1 9 5 8 101.10192 2 +128 1 10 5 10 100.77394 2 +129 1 11 5 12 105.70185 4 +130 1 12 9 11 96.63668 2 +131 1 13 9 9 98.2336 2 +132 1 14 9 7 103.23099 2 +133 1 15 9 8 101.19954 2 +134 1 16 9 10 109.2982 4 +135 1 17 13 11 99.71934 2 +136 1 18 13 9 96.84161 2 +137 1 19 13 7 93.47266 2 +138 1 20 13 8 94.26028 2 +139 1 21 13 10 106.61631 2 +140 1 22 13 12 110.21176 4 +141 1 23 17 11 92.90873 2 +142 1 24 17 9 96.93753 2 +143 1 25 17 7 92.98145 2 +144 1 26 17 8 94.88363 2 +145 1 27 17 10 112.72886 4 +146 1 28 17 12 108.78666 2 +147 1 29 21 11 94.98026 2 +148 1 30 21 9 95.60635 2 +149 1 31 21 7 95.38686 2 +150 1 32 21 6 95.63871 2 +151 1 33 21 8 95.74943 2 +152 1 34 21 10 114.84458 4 +153 1 35 25 11 96.50186 2 +154 1 36 25 9 93.55037 2 +155 1 37 25 7 100.7829 2 +156 1 38 25 8 95.95737 2 +157 1 39 25 10 97.75199 2 +158 1 40 25 12 101.12177 2 +159 1 41 29 11 104.06825 4 +160 1 42 29 9 95.71662 2 +161 1 43 29 7 93.60154 2 +162 1 44 29 8 93.50723 2 +163 1 45 29 10 96.40873 2 +164 1 46 29 12 99.71839 2 +165 1 47 33 11 107.73441 2 +166 1 48 33 9 99.55549 2 +167 1 49 33 7 96.99675 2 +168 1 50 33 8 95.54252 2 +169 1 51 33 10 94.1822 2 +170 1 52 33 12 99.90073 2 +171 1 53 37 11 97.85342 2 +172 1 54 37 9 93.71148 2 +173 1 55 37 7 93.44764 2 +174 1 56 37 8 94.95665 2 +175 1 57 37 10 94.9724 2 +176 1 58 37 12 105.32916 4 +177 1 59 41 11 111.08135 2 +178 1 60 41 9 95.84022 2 +179 1 61 41 7 94.04778 2 +180 1 62 41 8 94.05729 2 +181 1 63 41 10 93.8896 2 +182 1 64 41 12 98.24205 2 +183 1 65 45 11 104.9261 2 +184 1 66 45 9 95.42126 2 +185 1 67 45 7 94.83781 2 +186 1 68 45 8 92.14835 2 +187 1 69 45 10 99.5591 2 +188 1 70 45 12 95.66335 2 +189 1 71 49 11 109.36854 2 +190 1 72 49 9 101.04981 2 +191 1 73 49 7 94.39783 2 +192 1 74 49 8 93.18696 2 +193 1 75 49 10 97.05202 3 +194 1 76 49 12 95.31085 2 +195 1 77 53 11 106.95838 2 +196 1 78 53 9 104.63019 2 +197 1 79 53 7 97.43289 2 +198 1 80 53 8 92.23836 2 +199 1 81 53 10 95.07852 2 +200 1 82 53 12 103.14191 2 +201 1 83 57 9 112.70484 2 +202 1 84 57 7 101.7904 2 +203 1 85 57 5 91.5231 2 +204 1 86 57 8 92.71095 2 +205 1 87 57 10 96.95802 2 +206 1 88 57 12 93.44459 2 +207 1 89 61 11 107.46434 2 +208 1 90 61 9 102.99213 2 +209 1 91 61 7 94.19043 2 +210 1 92 61 8 95.72221 2 +211 1 93 61 10 94.11854 2 +212 1 94 61 12 95.08233 2 +213 1 95 65 11 111.60748 4 +214 1 96 65 9 108.02071 2 +215 1 97 65 7 96.7597 2 +216 1 98 65 8 101.11357 2 +217 1 99 65 10 95.09074 2 +218 1 100 65 12 93.87777 2 +219 1 101 69 9 105.83233 2 +220 1 102 69 7 98.73392 2 +221 1 103 69 8 106.54844 2 +222 1 104 69 10 98.22143 2 +223 1 105 69 12 103.25078 2 +224 1 106 73 11 110.56551 4 +225 1 107 73 9 105.56474 2 +226 1 108 73 7 102.42867 2 +227 1 109 73 8 104.53505 2 +228 1 110 73 10 95.00429 2 +229 1 111 73 12 98.29768 2 +230 1 112 77 11 100.80268 2 +231 1 113 77 9 95.56448 2 +232 1 114 77 7 106.08188 2 +233 1 115 77 8 103.74102 2 +234 1 116 77 10 107.55931 2 +235 1 117 77 12 101.48058 2 +236 2 0 1 17 114.72012 4 +237 2 1 1 15 105.39226 2 +238 2 2 1 13 102.47937 4 +239 2 3 1 14 101.58542 4 +240 2 4 1 16 91.91214 2 +241 2 5 1 18 87.38788 2 +242 2 6 5 17 89.51932 2 +243 2 7 5 15 86.2545 2 +244 2 8 5 13 83.01544 2 +245 2 9 5 14 85.07377 2 +246 2 10 5 16 94.94436 2 +247 2 11 5 18 90.21921 2 +248 2 12 9 17 84.0034 2 +249 2 13 9 15 85.33067 2 +250 2 14 9 13 93.90463 4 +251 2 15 9 12 86.1667 2 +252 2 16 9 14 96.37571 2 +253 2 17 9 16 106.59042 2 +254 2 18 13 17 87.06326 2 +255 2 19 13 15 84.09992 2 +256 2 20 13 13 82.95081 2 +257 2 21 13 14 84.77541 2 +258 2 22 13 16 103.66523 4 +259 2 23 13 18 104.28729 2 +260 2 24 17 17 82.83871 2 +261 2 25 17 15 82.44824 2 +262 2 26 17 13 85.56586 2 +263 2 27 17 14 98.50097 2 +264 2 28 17 16 102.73237 4 +265 2 29 17 18 103.86025 4 +266 2 30 21 17 84.45099 2 +267 2 31 21 15 83.38927 2 +268 2 32 21 13 83.48432 2 +269 2 33 21 12 81.75099 2 +270 2 34 21 14 83.77983 2 +271 2 35 21 16 90.42774 2 +272 2 36 25 17 86.38193 2 +273 2 37 25 15 83.55433 2 +274 2 38 25 13 86.57388 2 +275 2 39 25 14 85.82913 2 +276 2 40 25 16 96.9191 4 +277 2 41 25 18 95.48573 2 +278 2 42 29 17 85.02806 2 +279 2 43 29 15 82.64732 2 +280 2 44 29 13 82.23956 2 +281 2 45 29 14 81.48283 2 +282 2 46 29 16 86.57388 2 +283 2 47 29 18 100.06711 4 +284 2 48 33 17 85.01098 2 +285 2 49 33 15 83.74398 2 +286 2 50 33 13 83.60941 2 +287 2 51 33 14 83.60455 2 +288 2 52 33 16 92.60338 2 +289 2 53 33 18 95.4822 2 +290 2 54 37 17 92.36332 2 +291 2 55 37 15 83.12552 2 +292 2 56 37 13 86.39719 2 +293 2 57 37 14 84.26721 2 +294 2 58 37 16 83.83864 2 +295 2 59 37 18 95.25885 4 +296 2 60 41 17 100.26589 2 +297 2 61 41 15 84.34966 2 +298 2 62 41 13 83.38354 2 +299 2 63 41 14 84.47112 2 +300 2 64 41 16 82.94675 2 +301 2 65 41 18 86.83261 2 +302 2 66 45 17 97.85949 4 +303 2 67 45 15 92.31298 2 +304 2 68 45 13 82.3089 2 +305 2 69 45 14 85.27093 2 +306 2 70 45 16 90.03034 2 +307 2 71 45 18 86.04223 2 +308 2 72 49 17 97.90172 2 +309 2 73 49 15 103.69855 4 +310 2 74 49 13 84.99172 2 +311 2 75 49 14 108.37932 2 +312 2 76 49 16 83.82748 2 +313 2 77 49 18 85.64284 2 +314 2 78 53 17 96.30081 2 +315 2 79 53 15 95.27789 2 +316 2 80 53 13 89.11128 2 +317 2 81 53 14 83.32698 2 +318 2 82 53 16 85.5557 2 +319 2 83 53 18 96.2281 2 +320 2 84 57 15 96.87183 2 +321 2 85 57 13 98.38246 2 +322 2 86 57 11 81.12062 2 +323 2 87 57 14 88.10097 2 +324 2 88 57 16 90.65621 2 +325 2 89 57 18 84.83031 2 +326 2 90 61 17 103.95882 4 +327 2 91 61 15 101.97665 4 +328 2 92 61 13 84.71962 2 +329 2 93 61 14 84.47637 2 +330 2 94 61 16 82.55282 2 +331 2 95 61 18 98.7863 2 +332 2 96 65 17 103.52767 4 +333 2 97 65 15 98.10523 4 +334 2 98 65 13 82.81352 2 +335 2 99 65 14 87.24021 2 +336 2 100 65 16 86.69688 2 +337 2 101 65 18 87.0157 2 +338 2 102 69 15 104.46954 4 +339 2 103 69 13 86.37028 2 +340 2 104 69 11 87.67847 2 +341 2 105 69 14 84.57669 2 +342 2 106 69 16 89.5434 2 +343 2 107 69 18 83.46621 2 +344 2 108 73 17 91.93576 2 +345 2 109 73 15 88.96377 2 +346 2 110 73 13 85.4441 2 +347 2 111 73 14 83.92005 2 +348 2 112 73 16 94.4567 2 +349 2 113 73 18 85.52215 2 +350 2 114 77 17 89.22773 2 +351 2 115 77 15 90.12139 2 +352 2 116 77 13 98.73973 2 +353 2 117 77 14 88.49034 2 +354 2 118 77 16 105.48794 2 +355 2 119 77 18 110.76364 4 +356 3 0 1 23 101.40241 4 +357 3 1 1 21 97.50788 4 +358 3 2 1 19 91.44466 4 +359 3 3 1 20 87.4596 2 +360 3 4 1 22 91.62581 2 +361 3 5 1 24 77.16257 2 +362 3 6 5 23 77.39815 2 +363 3 7 5 21 71.14841 2 +364 3 8 5 19 74.49154 2 +365 3 9 5 20 73.18548 2 +366 3 10 5 22 78.6817 2 +367 3 11 5 24 80.26678 2 +368 3 12 9 23 71.93858 2 +369 3 13 9 21 72.22419 2 +370 3 14 9 19 72.86097 2 +371 3 15 9 18 77.69144 2 +372 3 16 9 20 85.56674 2 +373 3 17 9 22 94.68524 2 +374 3 18 13 23 73.82142 2 +375 3 19 13 21 78.92585 2 +376 3 20 13 19 75.78884 2 +377 3 21 13 20 72.75082 2 +378 3 22 13 22 79.89585 2 +379 3 23 13 24 93.447 4 +380 3 24 17 23 73.71281 2 +381 3 25 17 21 74.81604 2 +382 3 26 17 19 76.88262 2 +383 3 27 17 20 78.05392 2 +384 3 28 17 22 82.08315 2 +385 3 29 17 24 95.86216 2 +386 3 30 21 23 74.13929 2 +387 3 31 21 21 74.46222 2 +388 3 32 21 19 71.22374 2 +389 3 33 21 18 72.26009 2 +390 3 34 21 20 73.31855 2 +391 3 35 21 22 92.46347 2 +392 3 36 25 23 75.62968 2 +393 3 37 25 21 73.72577 2 +394 3 38 25 19 71.06103 2 +395 3 39 25 20 72.31028 2 +396 3 40 25 22 77.1978 2 +397 3 41 25 24 89.82887 4 +398 3 42 29 23 73.20055 2 +399 3 43 29 21 73.01024 2 +400 3 44 29 19 70.92846 2 +401 3 45 29 20 70.59603 2 +402 3 46 29 22 73.75194 2 +403 3 47 29 24 86.73628 4 +404 3 48 33 23 74.36397 2 +405 3 49 33 21 72.28469 2 +406 3 50 33 19 74.3206 2 +407 3 51 33 20 71.42829 2 +408 3 52 33 22 73.13635 2 +409 3 53 33 24 82.00389 2 +410 3 54 37 23 76.74954 2 +411 3 55 37 21 72.86764 2 +412 3 56 37 19 73.78701 2 +413 3 57 37 20 72.79485 2 +414 3 58 37 22 83.61591 2 +415 3 59 37 24 90.34035 2 +416 3 60 41 23 87.9002 2 +417 3 61 41 21 73.23493 2 +418 3 62 41 19 73.37403 2 +419 3 63 41 20 74.21569 2 +420 3 64 41 22 71.5708 2 +421 3 65 41 24 75.67123 2 +422 3 66 45 23 81.14292 2 +423 3 67 45 21 78.78007 2 +424 3 68 45 19 71.87776 2 +425 3 69 45 20 74.92381 2 +426 3 70 45 22 76.45982 2 +427 3 71 45 24 76.45271 2 +428 3 72 49 23 88.45359 4 +429 3 73 49 21 87.17528 2 +430 3 74 49 19 72.88634 2 +431 3 75 49 20 71.74028 2 +432 3 76 49 22 72.63692 2 +433 3 77 49 24 73.60297 2 +434 3 78 53 23 79.80144 2 +435 3 79 53 21 76.90638 2 +436 3 80 53 19 76.50289 2 +437 3 81 53 20 72.78748 2 +438 3 82 53 22 72.40136 2 +439 3 83 53 24 92.03785 2 +440 3 84 57 21 92.9082 2 +441 3 85 57 19 76.32253 2 +442 3 86 57 17 80.09429 2 +443 3 87 57 20 73.99798 2 +444 3 88 57 22 73.92522 2 +445 3 89 57 24 74.60819 2 +446 3 90 61 23 98.09596 2 +447 3 91 61 21 80.84438 2 +448 3 92 61 19 76.23565 4 +449 3 93 61 20 74.25297 2 +450 3 94 61 22 71.67223 2 +451 3 95 61 24 72.37277 2 +452 3 96 65 23 93.56403 4 +453 3 97 65 21 87.04244 4 +454 3 98 65 19 72.05256 2 +455 3 99 65 20 74.59026 2 +456 3 100 65 22 73.96683 2 +457 3 101 65 24 74.6951 2 +458 3 102 69 21 92.84181 2 +459 3 103 69 19 86.50825 2 +460 3 104 69 17 75.18391 2 +461 3 105 69 20 73.87541 2 +462 3 106 69 22 75.11955 2 +463 3 107 69 24 80.9115 2 +464 3 108 73 23 87.76246 2 +465 3 109 73 21 80.92988 2 +466 3 110 73 19 75.96279 2 +467 3 111 73 20 70.27501 2 +468 3 112 73 22 70.34649 2 +469 3 113 73 24 72.93568 2 +470 3 114 77 23 77.34424 2 +471 3 115 77 21 77.33939 2 +472 3 116 77 19 87.87509 2 +473 3 117 77 20 90.30335 4 +474 3 118 77 22 88.26885 2 +475 3 119 77 24 100.46759 4 +476 4 0 1 29 96.82685 4 +477 4 1 1 27 83.45268 2 +478 4 2 1 25 79.12034 2 +479 4 3 1 26 85.65486 4 +480 4 4 1 28 67.45071 2 +481 4 5 1 30 69.83607 2 +482 4 6 5 29 65.06132 2 +483 4 7 5 27 66.57642 2 +484 4 8 5 25 60.79885 2 +485 4 9 5 26 60.25541 2 +486 4 10 5 28 63.36874 2 +487 4 11 5 30 77.08024 2 +488 4 12 9 29 62.34594 2 +489 4 13 9 27 58.63289 2 +490 4 14 9 25 60.06773 2 +491 4 15 9 24 60.90447 2 +492 4 16 9 26 63.80414 2 +493 4 17 9 28 65.18886 2 +494 4 18 9 30 80.28261 2 +495 4 19 13 29 63.62075 2 +496 4 20 13 27 64.58768 2 +497 4 21 13 25 73.03375 2 +498 4 22 13 26 61.4301 2 +499 4 23 13 28 77.6568 2 +500 4 24 13 30 84.79284 2 +501 4 25 17 29 68.84473 2 +502 4 26 17 27 59.40766 2 +503 4 27 17 25 69.37499 2 +504 4 28 17 26 61.76835 2 +505 4 29 17 28 67.81053 2 +506 4 30 17 30 76.6715 2 +507 4 31 21 29 63.94865 2 +508 4 32 21 27 62.33438 2 +509 4 33 21 25 62.83297 2 +510 4 34 21 24 69.97184 2 +511 4 35 21 26 61.66648 2 +512 4 36 21 28 88.8686 2 +513 4 37 25 29 69.97718 2 +514 4 38 25 27 61.14591 2 +515 4 39 25 25 60.6572 2 +516 4 40 25 26 61.6376 2 +517 4 41 25 28 71.96636 2 +518 4 42 25 30 73.79279 2 +519 4 43 29 29 66.40402 2 +520 4 44 29 27 61.12887 2 +521 4 45 29 25 70.59697 2 +522 4 46 29 26 59.10398 2 +523 4 47 29 28 66.34478 2 +524 4 48 29 30 75.73093 4 +525 4 49 33 29 63.12125 2 +526 4 50 33 27 60.75987 2 +527 4 51 33 25 64.23266 2 +528 4 52 33 26 61.09488 2 +529 4 53 33 28 69.82673 4 +530 4 54 33 30 72.8037 2 +531 4 55 37 29 64.45135 2 +532 4 56 37 27 60.65719 2 +533 4 57 37 25 66.33095 2 +534 4 58 37 26 61.95426 2 +535 4 59 37 28 61.9227 2 +536 4 60 37 30 83.53619 2 +537 4 61 41 29 75.49353 2 +538 4 62 41 27 62.06989 2 +539 4 63 41 25 76.99798 2 +540 4 64 41 26 63.49866 2 +541 4 65 41 28 60.3621 2 +542 4 66 41 30 64.85491 2 +543 4 67 45 29 72.782 2 +544 4 68 45 27 63.98476 2 +545 4 69 45 25 62.28153 2 +546 4 70 45 26 63.87559 2 +547 4 71 45 28 61.83615 2 +548 4 72 45 30 63.83755 2 +549 4 73 49 29 79.49729 4 +550 4 74 49 27 73.6334 4 +551 4 75 49 25 58.64089 2 +552 4 76 49 26 59.98724 2 +553 4 77 49 28 66.86436 2 +554 4 78 49 30 66.77042 2 +555 4 79 53 29 77.03239 2 +556 4 80 53 27 68.83967 2 +557 4 81 53 25 62.90895 2 +558 4 82 53 26 64.81999 2 +559 4 83 53 28 76.47975 2 +560 4 84 53 30 73.6731 2 +561 4 85 57 27 84.58703 4 +562 4 86 57 25 63.83633 2 +563 4 87 57 23 69.67206 2 +564 4 88 57 26 61.1685 2 +565 4 89 57 28 60.62403 2 +566 4 90 57 30 61.6818 2 +567 4 91 61 29 77.32508 2 +568 4 92 61 27 86.55494 2 +569 4 93 61 25 60.88621 2 +570 4 94 61 26 68.9218 2 +571 4 95 61 28 65.81169 2 +572 4 96 61 30 64.05365 2 +573 4 97 65 29 91.34868 2 +574 4 98 65 27 75.35082 2 +575 4 99 65 25 62.61638 2 +576 4 100 65 26 71.33927 2 +577 4 101 65 28 63.10072 2 +578 4 102 65 30 63.49196 2 +579 4 103 69 29 84.35416 2 +580 4 104 69 27 73.36223 2 +581 4 105 69 25 66.15072 2 +582 4 106 69 23 61.33211 2 +583 4 107 69 26 63.18945 2 +584 4 108 69 28 61.30551 2 +585 4 109 69 30 63.0535 2 +586 4 110 73 29 67.55177 2 +587 4 111 73 27 65.55242 2 +588 4 112 73 25 61.40795 2 +589 4 113 73 26 58.1238 2 +590 4 114 73 28 67.87305 2 +591 4 115 73 30 67.83415 2 +592 4 116 77 29 74.02149 2 +593 4 117 77 27 68.48123 2 +594 4 118 77 25 81.24732 2 +595 4 119 77 26 78.66824 2 +596 4 120 77 28 82.62826 2 +597 4 121 77 30 96.8693 4 +598 5 0 1 35 78.81295 2 +599 5 1 1 33 75.38364 2 +600 5 2 1 31 65.61671 2 +601 5 3 1 32 63.67519 2 +602 5 4 1 34 66.8784 2 +603 5 5 1 36 60.2093 2 +604 5 6 5 35 61.18924 2 +605 5 7 5 33 49.3014 2 +606 5 8 5 31 50.04486 2 +607 5 9 5 32 50.10076 2 +608 5 10 5 34 56.37575 2 +609 5 11 5 36 54.58008 2 +610 5 12 9 35 52.13603 2 +611 5 13 9 33 49.90481 2 +612 5 14 9 31 114.96669 2 +613 5 15 9 32 50.57953 2 +614 5 16 9 34 53.01686 2 +615 5 17 9 36 55.58534 2 +616 5 18 13 35 57.93447 2 +617 5 19 13 33 56.08579 2 +618 5 20 13 31 53.37433 2 +619 5 21 13 32 52.5509 2 +620 5 22 13 34 67.47811 2 +621 5 23 13 36 64.7973 2 +622 5 24 17 35 51.75207 2 +623 5 25 17 33 47.88536 2 +624 5 26 17 31 51.59653 2 +625 5 27 17 32 49.31608 2 +626 5 28 17 34 51.89152 2 +627 5 29 17 36 60.39859 2 +628 5 30 21 35 54.32404 2 +629 5 31 21 33 65.45428 2 +630 5 32 21 31 52.23448 2 +631 5 33 21 30 46.36494 2 +632 5 34 21 32 54.52921 2 +633 5 35 21 34 52.57643 2 +634 5 36 21 36 64.84819 2 +635 5 37 25 35 61.03196 2 +636 5 38 25 33 57.40917 2 +637 5 39 25 31 49.83571 2 +638 5 40 25 32 51.15409 2 +639 5 41 25 34 62.07508 2 +640 5 42 25 36 61.55412 2 +641 5 43 29 35 58.20937 2 +642 5 44 29 33 57.04019 2 +643 5 45 29 31 57.12925 2 +644 5 46 29 32 48.88301 2 +645 5 47 29 34 61.07021 4 +646 5 48 29 36 61.23994 2 +647 5 49 33 35 52.10847 2 +648 5 50 33 33 47.86105 2 +649 5 51 33 31 56.24633 2 +650 5 52 33 32 50.75971 2 +651 5 53 33 34 63.26343 2 +652 5 54 33 36 59.55645 2 +653 5 55 37 35 53.62953 2 +654 5 56 37 33 50.32691 2 +655 5 57 37 31 49.58088 2 +656 5 58 37 32 65.33855 2 +657 5 59 37 34 57.68811 2 +658 5 60 37 36 67.20354 2 +659 5 61 41 35 68.86822 2 +660 5 62 41 33 63.19278 2 +661 5 63 41 31 64.43605 2 +662 5 64 41 32 52.33106 2 +663 5 65 41 34 51.27463 2 +664 5 66 41 36 53.40337 2 +665 5 67 45 35 61.78604 2 +666 5 68 45 33 60.49205 2 +667 5 69 45 31 49.93265 2 +668 5 70 45 32 58.55885 2 +669 5 71 45 34 49.7152 2 +670 5 72 45 36 63.65966 2 +671 5 73 49 35 63.12244 2 +672 5 74 49 33 68.55234 2 +673 5 75 49 31 50.69478 2 +674 5 76 49 32 58.22805 2 +675 5 77 49 34 51.83716 2 +676 5 78 49 36 59.36047 2 +677 5 79 53 35 61.53206 2 +678 5 80 53 33 59.12869 2 +679 5 81 53 31 61.92639 2 +680 5 82 53 32 58.98858 2 +681 5 83 53 34 56.00536 2 +682 5 84 53 36 59.43159 2 +683 5 85 57 35 73.70456 2 +684 5 86 57 33 52.5031 2 +685 5 87 57 31 57.49228 2 +686 5 88 57 29 46.36596 2 +687 5 89 57 32 48.88404 2 +688 5 90 57 34 50.68612 2 +689 5 91 57 36 52.78419 2 +690 5 92 61 35 56.07963 2 +691 5 93 61 33 49.90983 2 +692 5 94 61 31 48.93932 2 +693 5 95 61 32 51.23293 2 +694 5 96 61 34 53.155 2 +695 5 97 61 36 61.85728 2 +696 5 98 65 35 64.23853 2 +697 5 99 65 33 58.24653 2 +698 5 100 65 31 49.07649 2 +699 5 101 65 32 52.26077 2 +700 5 102 65 34 55.18039 2 +701 5 103 65 36 56.54185 2 +702 5 104 69 35 70.55279 2 +703 5 105 69 33 55.3261 2 +704 5 106 69 31 50.34568 2 +705 5 107 69 32 56.58614 2 +706 5 108 69 34 51.17681 2 +707 5 109 69 36 56.07016 2 +708 5 110 73 35 54.85456 2 +709 5 111 73 33 52.35763 2 +710 5 112 73 31 52.16452 2 +711 5 113 73 32 47.64335 2 +712 5 114 73 34 50.23437 2 +713 5 115 73 36 63.86026 2 +714 5 116 77 35 61.19294 2 +715 5 117 77 33 69.16383 2 +716 5 118 77 31 64.2415 2 +717 5 119 77 32 64.19352 2 +718 5 120 77 34 74.35957 4 +719 5 121 77 36 77.19329 2 +720 6 0 1 39 76.52467 2 +721 6 1 1 37 68.6391 2 +722 6 2 1 38 75.31986 2 +723 6 3 1 40 64.79042 4 +724 6 4 2 2 70.19399 2 +725 6 5 2 4 70.49457 2 +726 6 6 2 6 70.11465 2 +727 6 7 6 3 83.66631 2 +728 6 8 6 1 67.53265 2 +729 6 9 5 39 44.99725 2 +730 6 10 5 37 46.18657 2 +731 6 11 5 38 40.21903 2 +732 6 12 5 40 41.87149 2 +733 6 13 9 39 40.34368 2 +734 6 14 9 37 36.64274 2 +735 6 15 9 38 43.80417 2 +736 6 16 9 40 42.49005 2 +737 6 17 10 2 70.18869 2 +738 6 18 10 4 87.5614 2 +739 6 19 13 39 42.00122 2 +740 6 20 13 37 37.16433 2 +741 6 21 13 38 39.21502 2 +742 6 22 13 40 43.14672 2 +743 6 23 14 2 83.2352 2 +744 6 24 14 4 73.29559 2 +745 6 25 17 39 39.19374 2 +746 6 26 17 37 40.1099 2 +747 6 27 17 38 37.81079 2 +748 6 28 17 40 42.43272 2 +749 6 29 18 2 70.39324 2 +750 6 30 18 4 84.77895 4 +751 6 31 21 39 41.45144 2 +752 6 32 21 37 40.74413 2 +753 6 33 21 38 43.86491 2 +754 6 34 21 40 45.62563 2 +755 6 35 22 2 65.97622 2 +756 6 36 22 4 70.43494 2 +757 6 37 26 5 68.80256 2 +758 6 38 26 3 66.5657 2 +759 6 39 26 1 71.6747 2 +760 6 40 25 39 44.51521 2 +761 6 41 25 37 48.96668 2 +762 6 42 25 38 40.38779 2 +763 6 43 25 40 53.4944 2 +764 6 44 29 39 40.90108 2 +765 6 45 29 37 36.00834 2 +766 6 46 29 38 40.75092 2 +767 6 47 29 40 51.58368 2 +768 6 48 30 2 67.87917 2 +769 6 49 30 4 88.26713 4 +770 6 50 33 39 47.8229 2 +771 6 51 33 37 35.71296 2 +772 6 52 33 38 37.10435 2 +773 6 53 33 40 44.96155 2 +774 6 54 34 2 65.62637 2 +775 6 55 34 4 75.45456 2 +776 6 56 37 39 40.0953 2 +777 6 57 37 37 38.66288 2 +778 6 58 37 38 40.15384 2 +779 6 59 37 40 42.15317 2 +780 6 60 38 2 66.52516 2 +781 6 61 38 4 79.28325 4 +782 6 62 42 3 73.705 2 +783 6 63 42 1 67.14234 2 +784 6 64 41 39 50.95059 2 +785 6 65 41 37 43.70407 2 +786 6 66 41 38 36.68226 2 +787 6 67 41 40 40.0953 2 +788 6 68 46 3 80.81445 4 +789 6 69 46 1 64.8812 2 +790 6 70 45 39 44.15181 2 +791 6 71 45 37 39.161 2 +792 6 72 45 38 44.36599 2 +793 6 73 45 40 45.77708 2 +794 6 74 50 3 88.78955 4 +795 6 75 50 1 67.87818 2 +796 6 76 49 39 50.26779 2 +797 6 77 49 37 44.46235 2 +798 6 78 49 38 37.01625 2 +799 6 79 49 40 41.80577 2 +800 6 80 53 39 53.39419 2 +801 6 81 53 37 43.79479 2 +802 6 82 53 38 50.38707 2 +803 6 83 53 40 38.27696 2 +804 6 84 54 2 69.47364 2 +805 6 85 54 4 66.26964 2 +806 6 86 54 6 68.80151 2 +807 6 87 58 3 69.95231 2 +808 6 88 58 1 73.61569 2 +809 6 89 57 39 39.80511 2 +810 6 90 57 37 43.78955 2 +811 6 91 57 38 43.13105 2 +812 6 92 57 40 40.66966 2 +813 6 93 62 3 90.52667 2 +814 6 94 62 1 65.82729 2 +815 6 95 61 39 39.85713 2 +816 6 96 61 37 37.51197 2 +817 6 97 61 38 56.50232 2 +818 6 98 61 40 39.5265 2 +819 6 99 66 3 88.13712 4 +820 6 100 66 1 67.88634 2 +821 6 101 65 39 42.75219 2 +822 6 102 65 37 42.39191 2 +823 6 103 65 38 34.90238 2 +824 6 104 65 40 40.77134 2 +825 6 105 70 3 72.72013 2 +826 6 106 70 1 69.44892 2 +827 6 107 69 39 44.25718 2 +828 6 108 69 37 37.12357 2 +829 6 109 69 38 38.03466 2 +830 6 110 69 40 105.47309 2 +831 6 111 73 39 42.39238 2 +832 6 112 73 37 42.31868 2 +833 6 113 73 38 51.06966 2 +834 6 114 73 40 39.06398 2 +835 6 115 74 2 73.23777 2 +836 6 116 74 4 75.30684 2 +837 6 117 78 5 69.05725 2 +838 6 118 78 3 69.60385 2 +839 6 119 78 1 70.34384 2 +840 6 120 77 39 58.01632 2 +841 6 121 77 37 78.38676 2 +842 6 122 77 38 69.09697 4 +843 6 123 77 40 72.45489 2 +844 7 0 2 7 83.64042 2 +845 7 1 2 5 86.18422 2 +846 7 2 2 3 75.63386 4 +847 7 3 2 1 54.84905 2 +848 7 4 2 8 67.81675 2 +849 7 5 2 10 65.31603 2 +850 7 6 6 9 61.65458 2 +851 7 7 6 7 63.00937 2 +852 7 8 6 5 53.4316 2 +853 7 9 6 2 60.19095 2 +854 7 10 6 4 58.89866 2 +855 7 11 6 6 65.55801 2 +856 7 12 10 7 55.54791 2 +857 7 13 10 5 52.98425 2 +858 7 14 10 3 54.94483 2 +859 7 15 10 1 56.49472 2 +860 7 16 10 6 54.23734 2 +861 7 17 10 8 59.22615 2 +862 7 18 10 10 74.92533 4 +863 7 19 14 7 59.39339 2 +864 7 20 14 5 61.81248 2 +865 7 21 14 3 63.34166 2 +866 7 22 14 1 69.72392 2 +867 7 23 14 6 56.79867 2 +868 7 24 14 8 61.04243 2 +869 7 25 18 7 53.90105 2 +870 7 26 18 5 56.4274 2 +871 7 27 18 3 50.25391 2 +872 7 28 18 1 55.03876 2 +873 7 29 18 6 57.48938 2 +874 7 30 18 8 62.64331 2 +875 7 31 22 7 56.72395 2 +876 7 32 22 5 57.44922 2 +877 7 33 22 3 60.60982 2 +878 7 34 22 1 54.50506 2 +879 7 35 22 6 55.97348 2 +880 7 36 22 8 57.44642 2 +881 7 37 26 9 56.24975 2 +882 7 38 26 7 53.91023 2 +883 7 39 26 2 58.85981 2 +884 7 40 26 4 54.95792 2 +885 7 41 26 6 54.6905 2 +886 7 42 26 8 61.25854 2 +887 7 43 30 7 58.95115 2 +888 7 44 30 5 55.88937 2 +889 7 45 30 3 50.96695 2 +890 7 46 30 1 50.19749 2 +891 7 47 30 6 50.60883 2 +892 7 48 30 8 57.61487 2 +893 7 49 30 10 102.55223 4 +894 7 50 34 5 57.68256 2 +895 7 51 34 3 53.02672 2 +896 7 52 34 1 89.27497 2 +897 7 53 34 6 57.74969 2 +898 7 54 34 8 58.09812 2 +899 7 55 34 10 64.12867 2 +900 7 56 38 5 54.80865 2 +901 7 57 38 3 57.35754 2 +902 7 58 38 1 50.88154 2 +903 7 59 38 6 54.41103 2 +904 7 60 38 8 53.87999 2 +905 7 61 38 10 57.53301 2 +906 7 62 42 9 57.62673 2 +907 7 63 42 7 57.45719 2 +908 7 64 42 5 52.58155 2 +909 7 65 42 2 48.95548 2 +910 7 66 42 4 55.3197 2 +911 7 67 42 6 54.80865 2 +912 7 68 46 9 75.7278 4 +913 7 69 46 7 54.22383 2 +914 7 70 46 5 55.91954 2 +915 7 71 46 2 58.11694 2 +916 7 72 46 4 53.09108 2 +917 7 73 46 6 53.02671 2 +918 7 74 50 9 70.1876 4 +919 7 75 50 7 56.85821 2 +920 7 76 50 5 58.1686 2 +921 7 77 50 2 49.61619 2 +922 7 78 50 4 52.71279 2 +923 7 79 50 6 55.35721 2 +924 7 80 50 8 59.82078 2 +925 7 81 54 7 62.48228 2 +926 7 82 54 5 57.6776 2 +927 7 83 54 3 50.70553 2 +928 7 84 54 1 52.29955 2 +929 7 85 54 8 53.90923 2 +930 7 86 54 10 62.35394 2 +931 7 87 58 7 57.60562 2 +932 7 88 58 5 55.86314 2 +933 7 89 58 2 49.29108 2 +934 7 90 58 4 58.69786 2 +935 7 91 58 6 49.97947 2 +936 7 92 58 8 53.99122 2 +937 7 93 62 7 73.57004 4 +938 7 94 62 5 53.56769 2 +939 7 95 62 2 63.0563 2 +940 7 96 62 4 59.8016 2 +941 7 97 62 6 57.07605 2 +942 7 98 62 8 53.76748 2 +943 7 99 66 7 76.16125 4 +944 7 100 66 5 56.06314 2 +945 7 101 66 2 63.32159 2 +946 7 102 66 4 61.25031 2 +947 7 103 66 6 56.6345 2 +948 7 104 66 8 55.17158 2 +949 7 105 70 9 74.83309 4 +950 7 106 70 7 58.53713 2 +951 7 107 70 5 57.68302 2 +952 7 108 70 2 54.44836 2 +953 7 109 70 4 51.7813 2 +954 7 110 70 6 51.54683 2 +955 7 111 70 8 54.13113 2 +956 7 112 74 5 66.2057 2 +957 7 113 74 3 55.2077 2 +958 7 114 74 1 52.78624 2 +959 7 115 74 6 51.83699 2 +960 7 116 74 8 67.74143 2 +961 7 117 74 10 60.72907 2 +962 7 118 78 9 65.21927 4 +963 7 119 78 7 72.69782 4 +964 7 120 78 2 60.75599 4 +965 7 121 78 4 74.55496 4 +966 7 122 78 6 74.9078 2 +967 7 123 78 8 83.09279 2 +968 8 0 2 13 72.88312 2 +969 8 1 2 11 60.36956 2 +970 8 2 2 9 59.20142 2 +971 8 3 2 12 64.48626 4 +972 8 4 2 14 50.69131 2 +973 8 5 2 16 51.23893 2 +974 8 6 6 15 47.66826 2 +975 8 7 6 13 47.26707 2 +976 8 8 6 11 42.1344 2 +977 8 9 6 8 42.84608 2 +978 8 10 6 10 43.95699 2 +979 8 11 6 12 65.00643 2 +980 8 12 10 13 53.998 2 +981 8 13 10 11 39.96911 2 +982 8 14 10 9 45.38574 2 +983 8 15 10 12 44.06052 2 +984 8 16 10 14 51.11827 2 +985 8 17 10 16 49.04589 2 +986 8 18 14 15 46.01877 2 +987 8 19 14 13 43.8725 2 +988 8 20 14 11 41.94764 2 +989 8 21 14 9 46.34942 2 +990 8 22 14 10 40.80101 2 +991 8 23 14 12 44.53533 2 +992 8 24 14 14 51.97554 2 +993 8 25 18 13 42.69208 2 +994 8 26 18 11 42.22831 2 +995 8 27 18 9 40.16758 2 +996 8 28 18 10 42.93859 2 +997 8 29 18 12 50.12723 2 +998 8 30 18 14 51.50898 2 +999 8 31 22 13 43.5834 2 +1000 8 32 22 11 41.67222 2 +1001 8 33 22 9 42.65545 2 +1002 8 34 22 10 41.04601 2 +1003 8 35 22 12 43.30901 2 +1004 8 36 22 14 46.71738 2 +1005 8 37 26 15 48.93714 2 +1006 8 38 26 13 43.0238 2 +1007 8 39 26 11 40.84312 2 +1008 8 40 26 10 38.38797 2 +1009 8 41 26 12 47.22418 2 +1010 8 42 26 14 49.58772 2 +1011 8 43 30 15 49.67336 2 +1012 8 44 30 13 42.39618 2 +1013 8 45 30 11 44.56502 2 +1014 8 46 30 9 95.24101 2 +1015 8 47 30 12 42.78721 2 +1016 8 48 30 14 45.8426 2 +1017 8 49 30 16 60.28372 4 +1018 8 50 34 11 46.09733 2 +1019 8 51 34 9 47.08507 2 +1020 8 52 34 7 77.6434 2 +1021 8 53 34 12 42.5832 2 +1022 8 54 34 14 43.4633 2 +1023 8 55 34 16 54.04293 2 +1024 8 56 38 11 54.74622 2 +1025 8 57 38 9 39.96069 2 +1026 8 58 38 7 39.76624 2 +1027 8 59 38 12 41.03027 2 +1028 8 60 38 14 44.83633 2 +1029 8 61 38 16 47.15811 2 +1030 8 62 42 15 46.61504 2 +1031 8 63 42 13 47.05875 2 +1032 8 64 42 11 43.67651 2 +1033 8 65 42 8 41.56042 2 +1034 8 66 42 10 39.96069 2 +1035 8 67 42 12 58.53758 2 +1036 8 68 46 15 57.91563 2 +1037 8 69 46 13 43.58312 2 +1038 8 70 46 11 52.50832 2 +1039 8 71 46 8 42.515 2 +1040 8 72 46 10 43.16548 2 +1041 8 73 46 12 42.5407 2 +1042 8 74 50 15 54.35516 2 +1043 8 75 50 13 48.94681 2 +1044 8 76 50 11 41.87796 2 +1045 8 77 50 10 47.99118 2 +1046 8 78 50 12 46.68601 2 +1047 8 79 50 14 41.35438 2 +1048 8 80 50 16 56.83154 4 +1049 8 81 54 13 49.9798 2 +1050 8 82 54 11 47.88336 2 +1051 8 83 54 9 39.55168 2 +1052 8 84 54 12 39.96431 2 +1053 8 85 54 14 51.70357 2 +1054 8 86 54 16 47.71773 2 +1055 8 87 58 13 46.71845 2 +1056 8 88 58 11 43.30884 2 +1057 8 89 58 9 43.94097 2 +1058 8 90 58 10 40.79879 2 +1059 8 91 58 12 44.24194 2 +1060 8 92 58 14 43.12457 2 +1061 8 93 62 13 52.36552 2 +1062 8 94 62 11 52.93516 2 +1063 8 95 62 9 41.54608 2 +1064 8 96 62 10 41.9951 2 +1065 8 97 62 12 41.87748 2 +1066 8 98 62 14 42.73736 2 +1067 8 99 66 13 54.75408 2 +1068 8 100 66 11 50.32343 2 +1069 8 101 66 9 42.38399 2 +1070 8 102 66 10 41.88307 2 +1071 8 103 66 12 41.41601 2 +1072 8 104 66 14 41.30029 2 +1073 8 105 66 16 49.54858 2 +1074 8 106 70 15 48.77336 2 +1075 8 107 70 13 46.49893 2 +1076 8 108 70 11 101.51409 2 +1077 8 109 70 10 44.41196 2 +1078 8 110 70 12 39.96825 2 +1079 8 111 70 14 49.33425 2 +1080 8 112 74 11 43.43195 2 +1081 8 113 74 9 40.29318 2 +1082 8 114 74 7 51.32539 2 +1083 8 115 74 12 42.48003 2 +1084 8 116 74 14 60.39978 2 +1085 8 117 74 16 46.65495 2 +1086 8 118 78 15 47.7977 4 +1087 8 119 78 13 56.37316 2 +1088 8 120 78 11 61.27429 4 +1089 8 121 78 10 59.97212 2 +1090 8 122 78 12 65.30593 2 +1091 8 123 78 14 69.60638 2 +1092 9 0 2 19 59.76989 2 +1093 9 1 2 17 58.50431 2 +1094 9 2 2 15 47.70462 2 +1095 9 3 2 18 50.83306 2 +1096 9 4 2 20 49.22256 2 +1097 9 5 2 22 39.52069 2 +1098 9 6 6 21 46.53895 2 +1099 9 7 6 19 34.67468 2 +1100 9 8 6 17 39.72928 2 +1101 9 9 6 14 32.98624 2 +1102 9 10 6 16 38.69186 2 +1103 9 11 6 18 31.99028 2 +1104 9 12 6 20 34.89764 2 +1105 9 13 10 19 31.84707 2 +1106 9 14 10 17 32.40346 2 +1107 9 15 10 15 28.47577 2 +1108 9 16 10 18 30.88321 2 +1109 9 17 10 20 32.4578 2 +1110 9 18 10 22 43.03373 2 +1111 9 19 14 21 39.78882 2 +1112 9 20 14 19 29.92742 2 +1113 9 21 14 17 37.65329 2 +1114 9 22 14 16 29.14043 2 +1115 9 23 14 18 31.59171 2 +1116 9 24 14 20 35.66014 2 +1117 9 25 18 21 44.00893 2 +1118 9 26 18 19 42.00522 2 +1119 9 27 18 17 28.73305 2 +1120 9 28 18 15 29.62073 2 +1121 9 29 18 16 31.31377 2 +1122 9 30 18 18 32.23136 2 +1123 9 31 18 20 37.57525 2 +1124 9 32 22 19 31.86437 2 +1125 9 33 22 17 29.66982 2 +1126 9 34 22 15 28.90134 2 +1127 9 35 22 16 28.53321 2 +1128 9 36 22 18 32.46713 2 +1129 9 37 22 20 35.65021 2 +1130 9 38 26 21 41.64498 2 +1131 9 39 26 19 40.12181 2 +1132 9 40 26 17 29.96768 2 +1133 9 41 26 16 27.17439 2 +1134 9 42 26 18 38.00882 2 +1135 9 43 26 20 38.53385 2 +1136 9 44 30 21 42.93237 2 +1137 9 45 30 19 31.74151 2 +1138 9 46 30 17 29.89374 2 +1139 9 47 30 18 32.46405 2 +1140 9 48 30 20 34.54313 2 +1141 9 49 30 22 35.37374 2 +1142 9 50 34 19 41.20134 2 +1143 9 51 34 17 33.74606 2 +1144 9 52 34 15 48.93769 2 +1145 9 53 34 13 44.74278 2 +1146 9 54 34 18 31.59659 2 +1147 9 55 34 20 32.27745 2 +1148 9 56 34 22 53.73708 2 +1149 9 57 38 17 49.27224 2 +1150 9 58 38 15 28.78438 2 +1151 9 59 38 13 28.7456 2 +1152 9 60 38 18 29.75663 2 +1153 9 61 38 20 37.88752 2 +1154 9 62 38 22 35.18018 2 +1155 9 63 42 21 35.18018 2 +1156 9 64 42 19 37.57209 2 +1157 9 65 42 17 32.90337 2 +1158 9 66 42 14 27.14785 2 +1159 9 67 42 16 28.78438 2 +1160 9 68 42 18 50.20066 2 +1161 9 69 46 21 48.03464 2 +1162 9 70 46 19 32.49947 2 +1163 9 71 46 17 30.06315 2 +1164 9 72 46 14 36.09389 2 +1165 9 73 46 16 34.43382 2 +1166 9 74 46 18 32.47149 2 +1167 9 75 46 20 54.75118 2 +1168 9 76 50 21 35.11699 2 +1169 9 77 50 19 34.80412 2 +1170 9 78 50 17 30.39038 2 +1171 9 79 50 18 29.68527 2 +1172 9 80 50 20 30.29745 2 +1173 9 81 50 22 42.03734 2 +1174 9 82 54 19 38.73953 2 +1175 9 83 54 17 38.74271 2 +1176 9 84 54 15 28.69018 2 +1177 9 85 54 18 31.18012 2 +1178 9 86 54 20 35.38606 2 +1179 9 87 54 22 38.36656 2 +1180 9 88 58 19 35.65128 2 +1181 9 89 58 17 32.46806 2 +1182 9 90 58 15 28.53214 2 +1183 9 91 58 16 29.22494 2 +1184 9 92 58 18 30.04332 2 +1185 9 93 58 20 34.44431 2 +1186 9 94 62 19 47.56588 2 +1187 9 95 62 17 32.23236 2 +1188 9 96 62 15 38.73237 2 +1189 9 97 62 16 32.96194 2 +1190 9 98 62 18 28.76611 2 +1191 9 99 62 20 42.25726 2 +1192 9 100 62 22 44.76039 2 +1193 9 101 66 19 35.30502 2 +1194 9 102 66 17 31.65173 2 +1195 9 103 66 15 29.12193 2 +1196 9 104 66 18 30.77651 2 +1197 9 105 66 20 29.97458 2 +1198 9 106 66 22 41.96986 2 +1199 9 107 70 21 42.74113 2 +1200 9 108 70 19 32.97742 2 +1201 9 109 70 17 31.83339 2 +1202 9 110 70 16 28.47492 2 +1203 9 111 70 18 38.27824 2 +1204 9 112 70 20 34.22693 2 +1205 9 113 74 19 34.68722 2 +1206 9 114 74 17 31.17484 2 +1207 9 115 74 15 30.27457 2 +1208 9 116 74 13 36.68944 2 +1209 9 117 74 18 33.69188 2 +1210 9 118 74 20 36.1853 2 +1211 9 119 74 22 51.923 2 +1212 9 120 78 21 40.08671 2 +1213 9 121 78 19 50.41439 4 +1214 9 122 78 17 57.20137 2 +1215 9 123 78 16 46.20064 2 +1216 9 124 78 18 64.3257 2 +1217 9 125 78 20 60.12725 2 +1218 10 0 2 25 54.47828 2 +1219 10 1 2 23 40.91567 2 +1220 10 2 2 21 37.8622 2 +1221 10 3 2 24 41.7598 2 +1222 10 4 2 26 40.22106 2 +1223 10 5 2 28 34.55647 2 +1224 10 6 6 27 35.44494 2 +1225 10 7 6 25 32.59731 2 +1226 10 8 6 23 17.76473 2 +1227 10 9 6 22 25.77269 2 +1228 10 10 6 24 31.34098 2 +1229 10 11 6 26 32.4703 2 +1230 10 12 10 27 31.68072 2 +1231 10 13 10 25 19.90015 2 +1232 10 14 10 23 20.9321 2 +1233 10 15 10 21 20.82235 2 +1234 10 16 10 24 20.50242 2 +1235 10 17 10 26 25.68895 2 +1236 10 18 10 28 27.2399 2 +1237 10 19 14 27 32.2952 2 +1238 10 20 14 25 35.93115 2 +1239 10 21 14 23 17.64291 2 +1240 10 22 14 22 16.86357 2 +1241 10 23 14 24 24.77804 2 +1242 10 24 14 26 31.64668 2 +1243 10 25 18 27 29.33938 2 +1244 10 26 18 25 20.08516 2 +1245 10 27 18 23 20.82025 2 +1246 10 28 18 22 18.24572 2 +1247 10 29 18 24 19.87596 2 +1248 10 30 18 26 23.14702 2 +1249 10 31 22 27 33.23448 2 +1250 10 32 22 25 20.96143 2 +1251 10 33 22 23 23.18865 2 +1252 10 34 22 21 19.02855 2 +1253 10 35 22 22 18.05315 2 +1254 10 36 22 24 21.32179 2 +1255 10 37 22 26 31.96248 2 +1256 10 38 26 27 29.9879 2 +1257 10 39 26 25 28.30315 2 +1258 10 40 26 23 18.51215 2 +1259 10 41 26 22 17.51419 2 +1260 10 42 26 24 24.03949 2 +1261 10 43 26 26 24.32484 2 +1262 10 44 30 27 24.07183 2 +1263 10 45 30 25 20.20499 2 +1264 10 46 30 23 19.98613 2 +1265 10 47 30 24 18.42968 2 +1266 10 48 30 26 48.65691 2 +1267 10 49 30 28 23.88226 2 +1268 10 50 34 27 30.63788 2 +1269 10 51 34 25 22.13157 2 +1270 10 52 34 23 17.63064 2 +1271 10 53 34 21 22.55073 2 +1272 10 54 34 24 21.31635 2 +1273 10 55 34 26 21.16836 2 +1274 10 56 34 28 37.93583 2 +1275 10 57 38 23 26.46624 2 +1276 10 58 38 21 17.60822 2 +1277 10 59 38 19 19.21738 2 +1278 10 60 38 24 20.19429 2 +1279 10 61 38 26 30.6545 2 +1280 10 62 38 28 27.27984 2 +1281 10 63 42 27 24.04113 2 +1282 10 64 42 25 52.47637 2 +1283 10 65 42 23 21.32828 2 +1284 10 66 42 20 18.69338 2 +1285 10 67 42 22 17.60822 2 +1286 10 68 42 24 26.59101 2 +1287 10 69 46 27 38.65091 2 +1288 10 70 46 25 21.16937 2 +1289 10 71 46 23 20.18389 2 +1290 10 72 46 22 19.5229 2 +1291 10 73 46 24 20.48545 2 +1292 10 74 46 26 21.08108 2 +1293 10 75 46 28 39.86071 2 +1294 10 76 50 27 23.88322 2 +1295 10 77 50 25 46.73385 2 +1296 10 78 50 23 18.36884 2 +1297 10 79 50 24 18.6619 2 +1298 10 80 50 26 19.10105 2 +1299 10 81 50 28 24.0708 2 +1300 10 82 54 25 24.32578 2 +1301 10 83 54 23 24.10664 2 +1302 10 84 54 21 16.17687 2 +1303 10 85 54 24 22.78594 2 +1304 10 86 54 26 22.79467 2 +1305 10 87 54 28 26.4406 2 +1306 10 88 58 25 32.02702 2 +1307 10 89 58 23 21.32272 2 +1308 10 90 58 21 17.95854 2 +1309 10 91 58 22 20.86516 2 +1310 10 92 58 24 21.40497 2 +1311 10 93 58 26 21.70213 2 +1312 10 94 58 28 33.17215 2 +1313 10 95 62 25 23.14793 2 +1314 10 96 62 23 19.87695 2 +1315 10 97 62 21 18.98704 2 +1316 10 98 62 24 17.51635 2 +1317 10 99 62 26 20.44561 2 +1318 10 100 62 28 29.39415 2 +1319 10 101 66 25 24.24592 2 +1320 10 102 66 23 20.08561 2 +1321 10 103 66 21 19.23134 2 +1322 10 104 66 24 17.19284 2 +1323 10 105 66 26 35.09438 2 +1324 10 106 66 28 28.77337 2 +1325 10 107 70 27 27.24075 2 +1326 10 108 70 25 26.63067 2 +1327 10 109 70 23 21.87063 2 +1328 10 110 70 22 19.9877 2 +1329 10 111 70 24 21.32235 2 +1330 10 112 70 26 20.48484 2 +1331 10 113 70 28 32.13917 2 +1332 10 114 74 25 32.45655 2 +1333 10 115 74 23 23.98314 2 +1334 10 116 74 21 18.04979 2 +1335 10 117 74 24 17.76358 2 +1336 10 118 74 26 36.65053 2 +1337 10 119 74 28 39.00039 2 +1338 10 120 78 27 31.92488 2 +1339 10 121 78 25 40.2224 2 +1340 10 122 78 23 40.30441 2 +1341 10 123 78 22 39.34732 2 +1342 10 124 78 24 41.42309 2 +1343 10 125 78 26 57.16339 2 +1344 11 0 2 33 45.21154 2 +1345 11 1 2 31 38.79032 2 +1346 11 2 2 29 38.24086 2 +1347 11 3 2 27 26.61406 2 +1348 11 4 2 30 28.21961 2 +1349 11 5 2 32 27.64732 2 +1350 11 6 2 34 17.48881 2 +1351 11 7 6 33 20.19692 2 +1352 11 8 6 31 16.76845 2 +1353 11 9 6 29 6.51066 2 +1354 11 10 6 28 10.9044 2 +1355 11 11 6 30 6.68344 2 +1356 11 12 6 32 11.886 2 +1357 11 13 10 33 19.19759 2 +1358 11 14 10 31 9.30223 2 +1359 11 15 10 29 9.32102 2 +1360 11 16 10 30 7.90694 2 +1361 11 17 10 32 13.40643 2 +1362 11 18 10 34 13.55896 2 +1363 11 19 14 33 16.84272 2 +1364 11 20 14 31 14.4472 2 +1365 11 21 14 29 5.19992 2 +1366 11 22 14 28 10.38286 2 +1367 11 23 14 30 17.04447 2 +1368 11 24 14 32 13.45026 2 +1369 11 25 14 34 20.02189 2 +1370 11 26 18 33 21.94073 2 +1371 11 27 18 31 12.91722 2 +1372 11 28 18 29 7.25558 2 +1373 11 29 18 28 4.98143 2 +1374 11 30 18 30 10.96963 2 +1375 11 31 18 32 15.22464 2 +1376 11 32 22 33 15.75156 2 +1377 11 33 22 31 11.9002 2 +1378 11 34 22 29 8.33611 2 +1379 11 35 22 28 5.58015 2 +1380 11 36 22 30 10.26288 2 +1381 11 37 22 32 15.05539 2 +1382 11 38 22 34 25.15639 2 +1383 11 39 26 33 16.94543 2 +1384 11 40 26 31 13.11666 2 +1385 11 41 26 29 9.68602 2 +1386 11 42 26 28 5.29112 2 +1387 11 43 26 30 16.27142 2 +1388 11 44 26 32 20.34158 2 +1389 11 45 30 33 16.01562 2 +1390 11 46 30 31 7.75049 2 +1391 11 47 30 29 5.35211 2 +1392 11 48 30 30 8.65103 2 +1393 11 49 30 32 8.71317 2 +1394 11 50 30 34 22.26395 2 +1395 11 51 34 33 16.85302 2 +1396 11 52 34 31 15.99435 2 +1397 11 53 34 29 6.08021 2 +1398 11 54 34 30 6.78779 2 +1399 11 55 34 32 8.59908 2 +1400 11 56 34 34 15.9931 2 +1401 11 57 38 31 25.42759 2 +1402 11 58 38 29 15.01373 2 +1403 11 59 38 27 11.7238 2 +1404 11 60 38 25 7.39196 2 +1405 11 61 38 30 6.85358 2 +1406 11 62 38 32 15.34072 2 +1407 11 63 38 34 15.76418 2 +1408 11 64 42 33 15.43183 2 +1409 11 65 42 31 15.34072 2 +1410 11 66 42 29 6.10689 2 +1411 11 67 42 26 7.39196 2 +1412 11 68 42 28 11.7238 2 +1413 11 69 42 30 15.01373 2 +1414 11 70 42 32 25.42759 2 +1415 11 71 46 33 15.99208 2 +1416 11 72 46 31 8.6001 2 +1417 11 73 46 29 6.9108 2 +1418 11 74 46 30 6.04577 2 +1419 11 75 46 32 15.30826 2 +1420 11 76 46 34 16.16257 2 +1421 11 77 50 33 22.26291 2 +1422 11 78 50 31 8.71414 2 +1423 11 79 50 29 8.65007 2 +1424 11 80 50 30 5.35315 2 +1425 11 81 50 32 7.74945 2 +1426 11 82 50 34 16.01465 2 +1427 11 83 54 31 21.91745 2 +1428 11 84 54 29 13.16165 2 +1429 11 85 54 27 5.29211 2 +1430 11 86 54 30 18.58558 2 +1431 11 87 54 32 11.45195 2 +1432 11 88 54 34 17.06919 2 +1433 11 89 58 33 22.93095 2 +1434 11 90 58 31 15.05646 2 +1435 11 91 58 29 10.00915 2 +1436 11 92 58 27 5.3 2 +1437 11 93 58 30 7.20323 2 +1438 11 94 58 32 11.89913 2 +1439 11 95 58 34 15.75063 2 +1440 11 96 62 31 18.85898 2 +1441 11 97 62 29 10.82979 2 +1442 11 98 62 27 5.85145 2 +1443 11 99 62 30 7.25467 2 +1444 11 100 62 32 12.91822 2 +1445 11 101 62 34 18.20098 2 +1446 11 102 66 33 19.94839 2 +1447 11 103 66 31 13.45115 2 +1448 11 104 66 29 17.18192 2 +1449 11 105 66 27 10.96928 2 +1450 11 106 66 30 5.19882 2 +1451 11 107 66 32 14.44809 2 +1452 11 108 66 34 17.95483 2 +1453 11 109 70 33 13.55982 2 +1454 11 110 70 31 13.50533 2 +1455 11 111 70 29 8.06048 2 +1456 11 112 70 30 9.322 2 +1457 11 113 70 32 9.32476 2 +1458 11 114 70 34 19.30641 2 +1459 11 115 74 31 11.88683 2 +1460 11 116 74 29 6.6823 2 +1461 11 117 74 27 11.62862 2 +1462 11 118 74 30 6.50983 2 +1463 11 119 74 32 16.52178 2 +1464 11 120 74 34 19.8982 2 +1465 11 121 78 33 16.76373 2 +1466 11 122 78 31 25.10536 2 +1467 11 123 78 29 26.80866 2 +1468 11 124 78 28 27.95294 2 +1469 11 125 78 30 36.56727 2 +1470 11 126 78 32 38.84306 2 +1471 11 127 78 34 44.81651 2 +1472 12 0 2 39 53.47963 2 +1473 12 1 2 37 43.1727 2 +1474 12 2 2 35 40.30883 2 +1475 12 3 2 36 42.87757 2 +1476 12 4 2 38 31.4841 2 +1477 12 5 2 40 24.77895 2 +1478 12 6 6 39 34.35986 2 +1479 12 7 6 37 23.05164 2 +1480 12 8 6 35 20.88586 2 +1481 12 9 6 34 26.51391 2 +1482 12 10 6 36 12.73569 2 +1483 12 11 6 38 9.67078 2 +1484 12 12 6 40 17.19761 2 +1485 12 13 10 39 18.65821 2 +1486 12 14 10 37 16.56548 2 +1487 12 15 10 35 12.65027 2 +1488 12 16 10 36 11.84154 2 +1489 12 17 10 38 11.4198 2 +1490 12 18 10 40 20.01624 2 +1491 12 19 14 39 19.37784 2 +1492 12 20 14 37 17.50627 2 +1493 12 21 14 35 12.28611 2 +1494 12 22 14 36 12.78501 2 +1495 12 23 14 38 11.08218 2 +1496 12 24 14 40 20.00446 2 +1497 12 25 18 39 21.86598 2 +1498 12 26 18 37 20.28811 2 +1499 12 27 18 35 13.59757 2 +1500 12 28 18 34 16.27448 2 +1501 12 29 18 36 11.42121 2 +1502 12 30 18 38 17.25259 2 +1503 12 31 18 40 17.75743 2 +1504 12 32 22 39 21.97191 2 +1505 12 33 22 37 13.29432 2 +1506 12 34 22 35 13.42374 2 +1507 12 35 22 36 11.66651 2 +1508 12 36 22 38 15.54175 2 +1509 12 37 22 40 15.53029 2 +1510 12 38 26 39 21.25162 2 +1511 12 39 26 37 19.53002 2 +1512 12 40 26 35 13.09631 2 +1513 12 41 26 34 18.13327 2 +1514 12 42 26 36 12.53945 2 +1515 12 43 26 38 21.92634 2 +1516 12 44 26 40 23.09843 2 +1517 12 45 30 39 20.06774 2 +1518 12 46 30 37 11.94884 2 +1519 12 47 30 35 12.44824 2 +1520 12 48 30 36 12.7682 2 +1521 12 49 30 38 11.7477 2 +1522 12 50 30 40 21.63096 2 +1523 12 51 34 39 18.3146 2 +1524 12 52 34 37 17.28831 2 +1525 12 53 34 35 11.94526 2 +1526 12 54 34 36 16.06307 2 +1527 12 55 34 38 13.35643 2 +1528 12 56 34 40 13.22036 2 +1529 12 57 38 39 23.62944 2 +1530 12 58 38 37 21.14036 2 +1531 12 59 38 35 13.54438 2 +1532 12 60 38 33 13.47403 2 +1533 12 61 38 36 11.94975 2 +1534 12 62 38 38 20.31143 2 +1535 12 63 38 40 15.74763 2 +1536 12 64 42 39 17.91359 2 +1537 12 65 42 37 18.84691 2 +1538 12 66 42 35 11.46106 2 +1539 12 67 42 34 12.07941 2 +1540 12 68 42 36 13.54438 2 +1541 12 69 42 38 23.19856 2 +1542 12 70 42 40 22.41678 2 +1543 12 71 46 39 13.22138 2 +1544 12 72 46 37 13.35541 2 +1545 12 73 46 35 16.06326 2 +1546 12 74 46 36 11.94426 2 +1547 12 75 46 38 17.43808 2 +1548 12 76 46 40 18.31362 2 +1549 12 77 50 39 21.42221 2 +1550 12 78 50 37 11.74867 2 +1551 12 79 50 35 12.7672 2 +1552 12 80 50 36 11.29161 2 +1553 12 81 50 38 11.04277 2 +1554 12 82 50 40 19.10164 2 +1555 12 83 54 39 22.97269 2 +1556 12 84 54 37 21.92729 2 +1557 12 85 54 35 12.5385 2 +1558 12 86 54 33 18.13421 2 +1559 12 87 54 36 13.09536 2 +1560 12 88 54 38 19.45667 2 +1561 12 89 54 40 21.10178 2 +1562 12 90 58 39 15.68015 2 +1563 12 91 58 37 15.54068 2 +1564 12 92 58 35 11.66758 2 +1565 12 93 58 36 12.35484 2 +1566 12 94 58 38 13.29325 2 +1567 12 95 58 40 21.74979 2 +1568 12 96 62 39 21.87299 2 +1569 12 97 62 37 12.83843 2 +1570 12 98 62 35 11.95196 2 +1571 12 99 62 33 17.98298 2 +1572 12 100 62 36 13.59666 2 +1573 12 101 62 38 20.43798 2 +1574 12 102 62 40 22.16265 2 +1575 12 103 66 39 18.15118 2 +1576 12 104 66 37 11.08307 2 +1577 12 105 66 35 12.6626 2 +1578 12 106 66 36 12.28512 2 +1579 12 107 66 38 18.02813 2 +1580 12 108 66 40 18.93038 2 +1581 12 109 70 39 20.01511 2 +1582 12 110 70 37 11.42065 2 +1583 12 111 70 35 11.84069 2 +1584 12 112 70 36 12.8441 2 +1585 12 113 70 38 16.56633 2 +1586 12 114 70 40 18.28511 2 +1587 12 115 74 39 15.83962 2 +1588 12 116 74 37 9.67193 2 +1589 12 117 74 35 12.40763 2 +1590 12 118 74 33 27.05355 2 +1591 12 119 74 36 20.88819 2 +1592 12 120 74 38 22.65849 2 +1593 12 121 74 40 34.22764 2 +1594 12 122 78 39 25.36102 2 +1595 12 123 78 37 31.92959 2 +1596 12 124 78 35 47.28456 2 +1597 12 125 78 36 40.0496 2 +1598 12 126 78 38 41.79766 2 +1599 12 127 78 40 55.51533 2 +1600 13 0 3 5 48.23478 2 +1601 13 1 3 3 40.16657 2 +1602 13 2 3 1 33.87358 2 +1603 13 3 3 2 34.21373 2 +1604 13 4 3 4 24.60763 2 +1605 13 5 3 6 25.12788 2 +1606 13 6 7 7 26.34614 2 +1607 13 7 7 5 17.10456 2 +1608 13 8 7 3 16.36603 2 +1609 13 9 7 1 8.65418 2 +1610 13 10 7 2 9.78581 2 +1611 13 11 7 4 12.59315 2 +1612 13 12 7 6 17.50599 2 +1613 13 13 11 5 16.24907 2 +1614 13 14 11 3 14.6742 2 +1615 13 15 11 1 9.90227 2 +1616 13 16 11 2 10.93394 2 +1617 13 17 11 4 13.98565 2 +1618 13 18 11 6 25.38512 2 +1619 13 19 15 5 23.87196 2 +1620 13 20 15 3 11.38012 2 +1621 13 21 15 1 9.21662 2 +1622 13 22 15 2 10.59681 2 +1623 13 23 15 4 15.93151 2 +1624 13 24 15 6 15.96381 2 +1625 13 25 19 7 28.5652 2 +1626 13 26 19 5 17.34683 2 +1627 13 27 19 3 11.05344 2 +1628 13 28 19 1 8.99893 2 +1629 13 29 19 2 10.42568 2 +1630 13 30 19 4 14.73063 2 +1631 13 31 19 6 24.4268 2 +1632 13 32 23 5 22.14438 2 +1633 13 33 23 3 12.28499 2 +1634 13 34 23 1 9.21153 2 +1635 13 35 23 2 9.25456 2 +1636 13 36 23 4 16.23703 2 +1637 13 37 23 6 16.21986 2 +1638 13 38 27 7 29.765 2 +1639 13 39 27 5 13.89005 2 +1640 13 40 27 3 14.00647 2 +1641 13 41 27 1 11.25482 2 +1642 13 42 27 2 10.61052 2 +1643 13 43 27 4 13.2761 2 +1644 13 44 27 6 23.90534 2 +1645 13 45 31 5 15.09375 2 +1646 13 46 31 3 12.0407 2 +1647 13 47 31 1 9.60337 2 +1648 13 48 31 2 9.48807 2 +1649 13 49 31 4 15.80094 2 +1650 13 50 31 6 19.85991 2 +1651 13 51 35 7 23.24316 2 +1652 13 52 35 5 14.37049 2 +1653 13 53 35 3 12.15153 2 +1654 13 54 35 1 14.31406 2 +1655 13 55 35 2 13.13731 2 +1656 13 56 35 4 16.48734 2 +1657 13 57 35 6 31.80638 2 +1658 13 58 39 5 24.23072 2 +1659 13 59 39 3 11.32084 2 +1660 13 60 39 1 9.00065 2 +1661 13 61 39 2 9.23553 2 +1662 13 62 39 4 15.4687 2 +1663 13 63 39 6 16.81868 2 +1664 13 64 43 5 16.81868 2 +1665 13 65 43 3 15.4687 2 +1666 13 66 43 1 9.23553 2 +1667 13 67 43 2 8.91112 2 +1668 13 68 43 4 11.32084 2 +1669 13 69 43 6 22.16789 2 +1670 13 70 47 5 30.74942 2 +1671 13 71 47 3 16.48836 2 +1672 13 72 47 1 13.13629 2 +1673 13 73 47 2 14.31365 2 +1674 13 74 47 4 11.97515 2 +1675 13 75 47 6 14.3695 2 +1676 13 76 47 8 23.24414 2 +1677 13 77 51 5 19.86094 2 +1678 13 78 51 3 15.79997 2 +1679 13 79 51 1 9.48904 2 +1680 13 80 51 2 9.60441 2 +1681 13 81 51 4 10.90975 2 +1682 13 82 51 6 15.09279 2 +1683 13 83 55 5 23.9044 2 +1684 13 84 55 3 13.27705 2 +1685 13 85 55 1 10.60958 2 +1686 13 86 55 2 11.62574 2 +1687 13 87 55 4 14.00752 2 +1688 13 88 55 6 13.889 2 +1689 13 89 55 8 30.13885 2 +1690 13 90 59 5 16.22078 2 +1691 13 91 59 3 16.2361 2 +1692 13 92 59 1 9.25549 2 +1693 13 93 59 2 9.21246 2 +1694 13 94 59 4 12.28407 2 +1695 13 95 59 6 22.85097 2 +1696 13 96 63 5 26.62876 2 +1697 13 97 63 3 14.73171 2 +1698 13 98 63 1 10.42478 2 +1699 13 99 63 2 8.99984 2 +1700 13 100 63 4 11.05253 2 +1701 13 101 63 6 17.34774 2 +1702 13 102 63 8 29.39986 2 +1703 13 103 67 5 15.9647 2 +1704 13 104 67 3 15.39391 2 +1705 13 105 67 1 10.5977 2 +1706 13 106 67 2 9.21772 2 +1707 13 107 67 4 11.37902 2 +1708 13 108 67 6 23.21378 2 +1709 13 109 71 5 25.38341 2 +1710 13 110 71 3 13.9865 2 +1711 13 111 71 1 10.93281 2 +1712 13 112 71 2 9.90114 2 +1713 13 113 71 4 14.67533 2 +1714 13 114 71 6 16.24794 2 +1715 13 115 75 5 17.50682 2 +1716 13 116 75 3 12.59398 2 +1717 13 117 75 1 9.78384 2 +1718 13 118 75 2 8.65335 2 +1719 13 119 75 4 16.4451 2 +1720 13 120 75 6 17.13672 2 +1721 13 121 75 8 30.16449 2 +1722 13 122 79 5 26.39536 2 +1723 13 123 79 3 27.86764 2 +1724 13 124 79 1 35.4796 2 +1725 13 125 79 2 30.3134 2 +1726 13 126 79 4 41.41647 2 +1727 13 127 79 6 48.14867 2 +1728 14 0 3 11 45.97833 2 +1729 14 1 3 9 42.27916 2 +1730 14 2 3 7 39.90265 2 +1731 14 3 3 8 34.30312 2 +1732 14 4 3 10 30.56009 2 +1733 14 5 3 12 21.74281 2 +1734 14 6 3 14 17.0772 2 +1735 14 7 7 13 25.94065 2 +1736 14 8 7 11 16.73731 2 +1737 14 9 7 9 14.9258 2 +1738 14 10 7 8 13.50325 2 +1739 14 11 7 10 7.79115 2 +1740 14 12 7 12 13.98202 2 +1741 14 13 11 13 22.09183 2 +1742 14 14 11 11 14.67743 2 +1743 14 15 11 9 8.95171 2 +1744 14 16 11 7 7.62872 2 +1745 14 17 11 8 7.24251 2 +1746 14 18 11 10 15.95915 2 +1747 14 19 11 12 15.79618 2 +1748 14 20 15 11 17.60001 2 +1749 14 21 15 9 8.78779 2 +1750 14 22 15 7 8.75092 2 +1751 14 23 15 8 9.65258 2 +1752 14 24 15 10 7.8592 2 +1753 14 25 15 12 17.0331 2 +1754 14 26 19 13 16.26524 2 +1755 14 27 19 11 14.6314 2 +1756 14 28 19 9 8.32205 2 +1757 14 29 19 8 14.69375 2 +1758 14 30 19 10 8.43227 2 +1759 14 31 19 12 12.95204 2 +1760 14 32 19 14 21.4438 2 +1761 14 33 23 11 15.5788 2 +1762 14 34 23 9 16.24054 2 +1763 14 35 23 7 11.38888 2 +1764 14 36 23 8 10.30847 2 +1765 14 37 23 10 10.51027 2 +1766 14 38 23 12 17.209 2 +1767 14 39 27 13 18.98799 2 +1768 14 40 27 11 15.31839 2 +1769 14 41 27 9 8.13628 2 +1770 14 42 27 8 13.67049 2 +1771 14 43 27 10 8.54863 2 +1772 14 44 27 12 16.98953 2 +1773 14 45 27 14 20.43789 2 +1774 14 46 31 11 15.6519 2 +1775 14 47 31 9 8.12986 2 +1776 14 48 31 7 8.79319 2 +1777 14 49 31 8 8.16721 2 +1778 14 50 31 10 15.12986 2 +1779 14 51 31 12 14.89863 2 +1780 14 52 35 13 19.46698 2 +1781 14 53 35 11 17.92366 2 +1782 14 54 35 9 7.27617 2 +1783 14 55 35 8 8.47554 2 +1784 14 56 35 10 8.95779 2 +1785 14 57 35 12 15.38113 2 +1786 14 58 35 14 18.75118 2 +1787 14 59 39 11 16.81342 2 +1788 14 60 39 9 7.76535 2 +1789 14 61 39 7 8.6095 2 +1790 14 62 39 8 8.70755 2 +1791 14 63 39 10 15.93892 2 +1792 14 64 39 12 14.53354 2 +1793 14 65 43 11 15.55856 2 +1794 14 66 43 9 15.85406 2 +1795 14 67 43 7 8.51287 2 +1796 14 68 43 8 9.0034 2 +1797 14 69 43 10 7.76535 2 +1798 14 70 43 12 16.43606 2 +1799 14 71 47 13 18.05861 2 +1800 14 72 47 11 15.42008 2 +1801 14 73 47 9 8.95881 2 +1802 14 74 47 7 8.56406 2 +1803 14 75 47 10 7.73603 2 +1804 14 76 47 12 17.51734 2 +1805 14 77 47 14 14.92964 2 +1806 14 78 51 11 15.01791 2 +1807 14 79 51 9 13.97617 2 +1808 14 80 51 7 7.68478 2 +1809 14 81 51 8 8.11405 2 +1810 14 82 51 10 7.63446 2 +1811 14 83 51 12 23.2477 2 +1812 14 84 55 13 20.13721 2 +1813 14 85 55 11 16.99058 2 +1814 14 86 55 9 8.50726 2 +1815 14 87 55 7 13.52333 2 +1816 14 88 55 10 8.13523 2 +1817 14 89 55 12 15.31944 2 +1818 14 90 55 14 17.90782 2 +1819 14 91 59 11 17.3563 2 +1820 14 92 59 9 10.5112 2 +1821 14 93 59 7 9.82126 2 +1822 14 94 59 8 11.59239 2 +1823 14 95 59 10 16.24147 2 +1824 14 96 59 12 15.89561 2 +1825 14 97 63 13 22.02473 2 +1826 14 98 63 11 10.78557 2 +1827 14 99 63 9 8.29442 2 +1828 14 100 63 7 18.98085 2 +1829 14 101 63 10 9.13109 2 +1830 14 102 63 12 15.54951 2 +1831 14 103 63 14 16.62309 2 +1832 14 104 67 11 20.12488 2 +1833 14 105 67 9 7.86009 2 +1834 14 106 67 7 10.76477 2 +1835 14 107 67 8 8.56288 2 +1836 14 108 67 10 8.7869 2 +1837 14 109 67 12 17.25796 2 +1838 14 110 71 11 16.85432 2 +1839 14 111 71 9 13.85434 2 +1840 14 112 71 7 7.02854 2 +1841 14 113 71 8 7.60417 2 +1842 14 114 71 10 8.95058 2 +1843 14 115 71 12 15.80745 2 +1844 14 116 71 14 16.93294 2 +1845 14 117 75 11 13.98119 2 +1846 14 118 75 9 7.7923 2 +1847 14 119 75 7 13.60083 2 +1848 14 120 75 10 14.62659 2 +1849 14 121 75 12 17.17909 2 +1850 14 122 75 14 25.74764 2 +1851 14 123 79 13 18.10064 2 +1852 14 124 79 11 21.15781 2 +1853 14 125 79 9 30.6068 2 +1854 14 126 79 7 35.14683 2 +1855 14 127 79 8 39.85334 2 +1856 14 128 79 10 47.464 2 +1857 14 129 79 12 46.60109 2 +1858 15 0 3 17 63.72423 2 +1859 15 1 3 15 57.79327 2 +1860 15 2 3 13 48.98584 2 +1861 15 3 3 16 54.00693 2 +1862 15 4 3 18 42.83465 2 +1863 15 5 3 20 37.10475 2 +1864 15 6 7 21 53.42483 2 +1865 15 7 7 19 30.13606 2 +1866 15 8 7 17 27.24127 2 +1867 15 9 7 15 22.76445 2 +1868 15 10 7 14 40.75158 2 +1869 15 11 7 16 22.69139 2 +1870 15 12 7 18 28.24608 2 +1871 15 13 11 19 33.97103 2 +1872 15 14 11 17 26.18534 2 +1873 15 15 11 15 24.04454 2 +1874 15 16 11 14 23.92823 2 +1875 15 17 11 16 17.06047 2 +1876 15 18 11 18 27.07459 2 +1877 15 19 15 19 28.3818 2 +1878 15 20 15 17 30.63681 2 +1879 15 21 15 15 19.07609 2 +1880 15 22 15 13 25.80022 2 +1881 15 23 15 14 19.99817 2 +1882 15 24 15 16 28.31119 2 +1883 15 25 15 18 25.34839 2 +1884 15 26 19 19 29.64697 2 +1885 15 27 19 17 21.0096 2 +1886 15 28 19 15 21.34888 2 +1887 15 29 19 16 23.39808 2 +1888 15 30 19 18 16.6621 2 +1889 15 31 19 20 32.59306 2 +1890 15 32 23 19 35.21767 2 +1891 15 33 23 17 29.91693 2 +1892 15 34 23 15 20.25066 2 +1893 15 35 23 13 22.47274 2 +1894 15 36 23 14 20.7729 2 +1895 15 37 23 16 25.98096 2 +1896 15 38 23 18 24.37271 2 +1897 15 39 27 19 30.15708 2 +1898 15 40 27 17 20.92276 2 +1899 15 41 27 15 24.68763 2 +1900 15 42 27 16 28.24423 2 +1901 15 43 27 18 17.76888 2 +1902 15 44 27 20 18.92321 2 +1903 15 45 31 19 38.25067 2 +1904 15 46 31 17 20.14209 2 +1905 15 47 31 15 27.20296 2 +1906 15 48 31 13 20.5165 2 +1907 15 49 31 14 20.55273 2 +1908 15 50 31 16 24.74519 2 +1909 15 51 31 18 30.28426 2 +1910 15 52 35 21 25.46605 2 +1911 15 53 35 19 26.42023 2 +1912 15 54 35 17 21.57531 2 +1913 15 55 35 15 28.20027 2 +1914 15 56 35 16 21.08664 2 +1915 15 57 35 18 21.05853 2 +1916 15 58 35 20 26.50122 2 +1917 15 59 39 17 23.67016 2 +1918 15 60 39 15 22.25684 2 +1919 15 61 39 13 21.24741 2 +1920 15 62 39 14 21.6771 2 +1921 15 63 39 16 22.71205 2 +1922 15 64 39 18 26.23336 2 +1923 15 65 43 17 26.21828 2 +1924 15 66 43 15 28.84945 2 +1925 15 67 43 13 23.04016 2 +1926 15 68 43 14 21.28987 2 +1927 15 69 43 16 22.41763 2 +1928 15 70 43 18 29.63422 2 +1929 15 71 47 19 34.73877 2 +1930 15 72 47 17 21.05954 2 +1931 15 73 47 15 21.08562 2 +1932 15 74 47 16 22.12183 2 +1933 15 75 47 18 26.98736 2 +1934 15 76 47 20 22.98348 2 +1935 15 77 47 22 18.88679 2 +1936 15 78 51 17 33.22349 2 +1937 15 79 51 15 19.98758 2 +1938 15 80 51 13 22.80383 2 +1939 15 81 51 14 24.85733 2 +1940 15 82 51 16 29.11645 2 +1941 15 83 51 18 20.32565 2 +1942 15 84 51 20 38.10013 2 +1943 15 85 55 19 20.08355 2 +1944 15 86 55 17 19.10142 2 +1945 15 87 55 15 26.27961 2 +1946 15 88 55 16 18.65595 2 +1947 15 89 55 18 19.37988 2 +1948 15 90 55 20 28.7165 2 +1949 15 91 59 17 26.90276 2 +1950 15 92 59 15 27.768 2 +1951 15 93 59 13 20.16051 2 +1952 15 94 59 14 22.27493 2 +1953 15 95 59 16 21.24912 2 +1954 15 96 59 18 30.60008 2 +1955 15 97 59 20 23.13779 2 +1956 15 98 63 19 31.65933 2 +1957 15 99 63 17 17.03128 2 +1958 15 100 63 15 22.79923 2 +1959 15 101 63 16 21.04662 2 +1960 15 102 63 18 25.59531 2 +1961 15 103 63 20 30.29295 2 +1962 15 104 67 17 25.34949 2 +1963 15 105 67 15 32.70468 2 +1964 15 106 67 13 19.13589 2 +1965 15 107 67 14 20.86567 2 +1966 15 108 67 16 22.53937 2 +1967 15 109 67 18 27.41083 2 +1968 15 110 67 20 34.13449 2 +1969 15 111 71 17 28.41506 2 +1970 15 112 71 15 18.51118 2 +1971 15 113 71 13 20.12699 2 +1972 15 114 71 16 24.4989 2 +1973 15 115 71 18 21.24208 2 +1974 15 116 71 20 28.38138 2 +1975 15 117 75 17 27.51812 2 +1976 15 118 75 15 18.77626 2 +1977 15 119 75 13 26.05244 2 +1978 15 120 75 16 21.72323 2 +1979 15 121 75 18 29.70267 2 +1980 15 122 75 20 30.44782 2 +1981 15 123 75 22 44.11641 2 +1982 15 124 79 19 35.21501 2 +1983 15 125 79 17 38.7216 2 +1984 15 126 79 15 50.68339 2 +1985 15 127 79 14 49.54118 2 +1986 15 128 79 16 54.94044 2 +1987 15 129 79 18 64.91569 2 +1988 16 0 3 25 77.23504 2 +1989 16 1 3 23 73.83441 2 +1990 16 2 3 21 73.18197 2 +1991 16 3 3 19 59.57291 2 +1992 16 4 3 22 66.26497 2 +1993 16 5 3 24 53.52013 2 +1994 16 6 3 26 66.7305 2 +1995 16 7 7 27 50.53118 2 +1996 16 8 7 25 52.13113 2 +1997 16 9 7 23 34.46843 2 +1998 16 10 7 20 43.35809 2 +1999 16 11 7 22 32.04923 2 +2000 16 12 7 24 30.01663 2 +2001 16 13 7 26 39.99972 2 +2002 16 14 11 25 38.96841 2 +2003 16 15 11 23 44.51737 2 +2004 16 16 11 21 32.93765 2 +2005 16 17 11 20 31.62962 2 +2006 16 18 11 22 42.65348 2 +2007 16 19 11 24 31.63846 2 +2008 16 20 15 25 49.20242 2 +2009 16 21 15 23 38.21256 2 +2010 16 22 15 21 31.68322 2 +2011 16 23 15 20 35.71495 2 +2012 16 24 15 22 30.43873 2 +2013 16 25 15 24 29.5055 2 +2014 16 26 15 26 40.67179 2 +2015 16 27 19 25 46.38696 2 +2016 16 28 19 23 32.73587 2 +2017 16 29 19 21 32.50185 2 +2018 16 30 19 22 33.10238 2 +2019 16 31 19 24 29.11381 2 +2020 16 32 19 26 32.30487 2 +2021 16 33 23 25 44.44647 2 +2022 16 34 23 23 37.60139 2 +2023 16 35 23 21 31.82787 2 +2024 16 36 23 20 34.22681 2 +2025 16 37 23 22 29.61504 2 +2026 16 38 23 24 40.85465 2 +2027 16 39 23 26 35.49012 2 +2028 16 40 27 25 38.27483 2 +2029 16 41 27 23 31.15221 2 +2030 16 42 27 21 32.11657 2 +2031 16 43 27 22 44.37361 2 +2032 16 44 27 24 30.98889 2 +2033 16 45 27 26 30.17022 2 +2034 16 46 31 25 41.24931 2 +2035 16 47 31 23 40.04206 2 +2036 16 48 31 21 32.19656 2 +2037 16 49 31 20 32.94807 2 +2038 16 50 31 22 31.4851 2 +2039 16 51 31 24 58.10726 2 +2040 16 52 31 26 38.02329 2 +2041 16 53 35 27 36.94606 2 +2042 16 54 35 25 29.87817 2 +2043 16 55 35 23 39.88653 2 +2044 16 56 35 22 31.14143 2 +2045 16 57 35 24 31.02922 2 +2046 16 58 35 26 31.10375 2 +2047 16 59 35 28 40.78759 2 +2048 16 60 39 23 36.2989 2 +2049 16 61 39 21 33.62271 2 +2050 16 62 39 19 36.4512 2 +2051 16 63 39 20 32.30053 2 +2052 16 64 39 22 30.93163 2 +2053 16 65 39 24 39.00862 2 +2054 16 66 43 23 39.75076 2 +2055 16 67 43 21 30.93163 2 +2056 16 68 43 19 32.89828 2 +2057 16 69 43 20 37.15777 2 +2058 16 70 43 22 32.57503 2 +2059 16 71 43 24 35.5825 2 +2060 16 72 47 27 41.48598 2 +2061 16 73 47 25 31.10477 2 +2062 16 74 47 23 31.07248 2 +2063 16 75 47 21 30.00451 2 +2064 16 76 47 24 29.705 2 +2065 16 77 47 26 29.87877 2 +2066 16 78 47 28 37.30976 2 +2067 16 79 51 25 39.33762 2 +2068 16 80 51 23 58.39714 2 +2069 16 81 51 21 30.26133 2 +2070 16 82 51 19 33.0372 2 +2071 16 83 51 22 31.32733 2 +2072 16 84 51 24 41.00369 2 +2073 16 85 51 26 40.91112 2 +2074 16 86 55 25 41.59637 2 +2075 16 87 55 23 32.36997 2 +2076 16 88 55 21 37.34697 2 +2077 16 89 55 22 32.40579 2 +2078 16 90 55 24 31.64768 2 +2079 16 91 55 26 38.15049 2 +2080 16 92 59 25 35.79521 2 +2081 16 93 59 23 32.44947 2 +2082 16 94 59 21 30.42452 2 +2083 16 95 59 19 32.01346 2 +2084 16 96 59 22 104.22642 2 +2085 16 97 59 24 32.89597 2 +2086 16 98 59 26 40.77716 2 +2087 16 99 63 25 32.25258 2 +2088 16 100 63 23 29.9019 2 +2089 16 101 63 21 41.06075 2 +2090 16 102 63 22 32.19574 2 +2091 16 103 63 24 31.98303 2 +2092 16 104 63 26 45.07444 2 +2093 16 105 67 25 39.57605 2 +2094 16 106 67 23 29.5066 2 +2095 16 107 67 21 30.33814 2 +2096 16 108 67 19 34.49206 2 +2097 16 109 67 22 46.96495 2 +2098 16 110 67 24 33.00228 2 +2099 16 111 67 26 49.28656 2 +2100 16 112 71 23 31.50417 2 +2101 16 113 71 21 30.15197 2 +2102 16 114 71 19 31.68307 2 +2103 16 115 71 22 31.80667 2 +2104 16 116 71 24 45.39378 2 +2105 16 117 71 26 39.28281 2 +2106 16 118 75 25 36.05846 2 +2107 16 119 75 23 27.46658 2 +2108 16 120 75 21 33.17701 2 +2109 16 121 75 19 41.5145 2 +2110 16 122 75 24 32.97356 2 +2111 16 123 75 26 44.83809 2 +2112 16 124 75 28 47.13063 2 +2113 16 125 79 25 41.41757 2 +2114 16 126 79 23 52.28542 2 +2115 16 127 79 21 55.1284 2 +2116 16 128 79 20 63.92094 2 +2117 16 129 79 22 68.91571 2 +2118 16 130 79 24 70.73681 2 +2119 16 131 79 26 82.84442 2 +2120 17 0 3 33 79.99362 2 +2121 17 1 3 31 87.18695 2 +2122 17 2 3 29 72.42193 2 +2123 17 3 3 27 72.37634 2 +2124 17 4 3 28 69.97005 2 +2125 17 5 3 30 57.99202 2 +2126 17 6 3 32 57.41949 2 +2127 17 7 7 33 63.48144 4 +2128 17 8 7 31 51.82479 2 +2129 17 9 7 29 43.0815 2 +2130 17 10 7 28 52.29287 2 +2131 17 11 7 30 49.07809 2 +2132 17 12 7 32 40.8405 2 +2133 17 13 11 31 58.8325 2 +2134 17 14 11 29 47.36512 2 +2135 17 15 11 27 49.07483 2 +2136 17 16 11 26 56.68875 4 +2137 17 17 11 28 43.70709 2 +2138 17 18 11 30 40.47088 2 +2139 17 19 11 32 49.92751 2 +2140 17 20 15 31 53.0779 2 +2141 17 21 15 29 49.99529 2 +2142 17 22 15 27 43.95529 2 +2143 17 23 15 28 46.53137 2 +2144 17 24 15 30 42.55425 2 +2145 17 25 15 32 41.24908 2 +2146 17 26 19 33 53.4274 2 +2147 17 27 19 31 54.95664 2 +2148 17 28 19 29 48.40832 2 +2149 17 29 19 27 42.98172 2 +2150 17 30 19 28 42.53433 2 +2151 17 31 19 30 40.50046 2 +2152 17 32 19 32 49.47766 2 +2153 17 33 23 31 56.89739 2 +2154 17 34 23 29 50.75252 2 +2155 17 35 23 27 53.56019 2 +2156 17 36 23 28 44.26246 2 +2157 17 37 23 30 40.44676 2 +2158 17 38 23 32 43.52938 2 +2159 17 39 23 34 45.66717 2 +2160 17 40 27 31 50.14536 2 +2161 17 41 27 29 54.60635 2 +2162 17 42 27 27 43.5505 2 +2163 17 43 27 28 45.27505 2 +2164 17 44 27 30 42.33598 2 +2165 17 45 27 32 40.61208 2 +2166 17 46 31 33 51.64959 2 +2167 17 47 31 31 53.91868 2 +2168 17 48 31 29 41.71557 2 +2169 17 49 31 27 46.66095 2 +2170 17 50 31 28 40.92508 2 +2171 17 51 31 30 43.163 2 +2172 17 52 31 32 48.22289 2 +2173 17 53 35 33 55.27565 2 +2174 17 54 35 31 46.99142 2 +2175 17 55 35 29 48.12954 2 +2176 17 56 35 30 58.74217 2 +2177 17 57 35 32 41.16921 2 +2178 17 58 35 34 41.0221 2 +2179 17 59 39 29 53.12176 2 +2180 17 60 39 27 45.04776 2 +2181 17 61 39 25 44.14931 2 +2182 17 62 39 26 53.94178 2 +2183 17 63 39 28 43.35032 2 +2184 17 64 39 30 40.81045 2 +2185 17 65 39 32 47.00497 2 +2186 17 66 43 31 50.16026 2 +2187 17 67 43 29 40.99275 2 +2188 17 68 43 27 42.79077 2 +2189 17 69 43 25 49.34206 2 +2190 17 70 43 26 44.64725 2 +2191 17 71 43 28 44.99271 2 +2192 17 72 43 30 62.13795 2 +2193 17 73 47 33 41.14252 2 +2194 17 74 47 31 41.24398 2 +2195 17 75 47 29 42.02119 2 +2196 17 76 47 30 42.97882 2 +2197 17 77 47 32 47.01163 2 +2198 17 78 47 34 49.67672 2 +2199 17 79 51 31 48.08939 2 +2200 17 80 51 29 40.49171 2 +2201 17 81 51 27 42.86789 2 +2202 17 82 51 28 47.68912 2 +2203 17 83 51 30 45.98765 2 +2204 17 84 51 32 40.26034 2 +2205 17 85 51 34 50.53904 2 +2206 17 86 55 31 41.69253 2 +2207 17 87 55 29 40.17875 2 +2208 17 88 55 27 51.27297 2 +2209 17 89 55 28 42.9013 2 +2210 17 90 55 30 42.91333 2 +2211 17 91 55 32 48.45552 2 +2212 17 92 59 33 45.88088 2 +2213 17 93 59 31 41.90844 2 +2214 17 94 59 29 41.65186 2 +2215 17 95 59 27 46.59041 2 +2216 17 96 59 28 44.86446 2 +2217 17 97 59 30 47.07336 2 +2218 17 98 59 32 51.20319 2 +2219 17 99 63 31 50.67723 2 +2220 17 100 63 29 41.45467 2 +2221 17 101 63 27 44.54185 2 +2222 17 102 63 28 43.91244 2 +2223 17 103 63 30 43.21629 2 +2224 17 104 63 32 54.61876 2 +2225 17 105 63 34 51.53688 2 +2226 17 106 67 31 40.65559 2 +2227 17 107 67 29 40.56877 2 +2228 17 108 67 27 45.30776 2 +2229 17 109 67 28 44.8986 2 +2230 17 110 67 30 47.52078 2 +2231 17 111 67 32 51.59971 2 +2232 17 112 71 31 49.64876 2 +2233 17 113 71 29 41.01549 2 +2234 17 114 71 27 43.77032 2 +2235 17 115 71 25 47.14024 2 +2236 17 116 71 28 45.45874 2 +2237 17 117 71 30 51.35881 2 +2238 17 118 71 32 62.92669 2 +2239 17 119 75 31 38.96611 2 +2240 17 120 75 29 43.03946 2 +2241 17 121 75 27 47.44979 2 +2242 17 122 75 30 55.95899 2 +2243 17 123 75 32 53.40242 2 +2244 17 124 75 34 68.92319 2 +2245 17 125 79 31 53.81457 2 +2246 17 126 79 29 57.68182 2 +2247 17 127 79 27 69.21785 2 +2248 17 128 79 28 71.80378 2 +2249 17 129 79 30 77.27491 4 +2250 17 130 79 32 86.87788 2 +2251 17 131 79 34 89.98923 4 +2252 18 0 3 39 96.35231 4 +2253 18 1 3 37 100.10883 2 +2254 18 2 3 35 87.88534 4 +2255 18 3 3 34 82.98985 4 +2256 18 4 3 36 84.31653 2 +2257 18 5 3 38 70.53152 2 +2258 18 6 7 39 79.83173 4 +2259 18 7 7 37 80.31001 2 +2260 18 8 7 35 58.6202 2 +2261 18 9 7 34 72.54599 2 +2262 18 10 7 36 83.49624 4 +2263 18 11 7 38 64.24195 2 +2264 18 12 7 40 48.52558 2 +2265 18 13 11 39 74.63526 2 +2266 18 14 11 37 55.11235 2 +2267 18 15 11 35 68.24703 2 +2268 18 16 11 33 58.28024 2 +2269 18 17 11 34 54.89146 2 +2270 18 18 11 36 52.73462 2 +2271 18 19 15 37 67.1672 2 +2272 18 20 15 35 62.54522 2 +2273 18 21 15 33 61.86978 2 +2274 18 22 15 34 62.45943 2 +2275 18 23 15 36 59.64435 2 +2276 18 24 15 38 48.44088 2 +2277 18 25 15 40 50.30223 2 +2278 18 26 19 39 70.26903 2 +2279 18 27 19 37 59.50479 4 +2280 18 28 19 35 54.7983 2 +2281 18 29 19 34 68.95584 2 +2282 18 30 19 36 55.77933 2 +2283 18 31 19 38 54.20014 2 +2284 18 32 19 40 52.42683 2 +2285 18 33 23 37 70.59418 2 +2286 18 34 23 35 56.05728 2 +2287 18 35 23 33 54.8256 2 +2288 18 36 23 36 56.09556 2 +2289 18 37 23 38 50.28722 2 +2290 18 38 23 40 65.90417 2 +2291 18 39 27 37 76.77082 4 +2292 18 40 27 35 57.68817 2 +2293 18 41 27 33 70.14304 2 +2294 18 42 27 34 66.21179 2 +2295 18 43 27 36 55.79885 2 +2296 18 44 27 38 54.58983 2 +2297 18 45 27 40 50.41581 2 +2298 18 46 31 39 69.24969 2 +2299 18 47 31 37 51.58091 2 +2300 18 48 31 35 58.40405 2 +2301 18 49 31 34 55.11354 2 +2302 18 50 31 36 58.75272 2 +2303 18 51 31 38 52.4497 2 +2304 18 52 31 40 55.49705 2 +2305 18 53 35 39 59.08535 2 +2306 18 54 35 37 52.54698 2 +2307 18 55 35 35 53.84205 2 +2308 18 56 35 36 61.01879 2 +2309 18 57 35 38 51.4515 2 +2310 18 58 35 40 54.73031 2 +2311 18 59 39 35 61.92074 2 +2312 18 60 39 33 66.63557 2 +2313 18 61 39 31 56.03207 2 +2314 18 62 39 34 68.80288 2 +2315 18 63 39 36 50.97649 2 +2316 18 64 39 38 50.21031 2 +2317 18 65 39 40 58.83567 2 +2318 18 66 43 39 58.66981 2 +2319 18 67 43 37 54.97493 2 +2320 18 68 43 35 53.50773 2 +2321 18 69 43 33 64.81412 2 +2322 18 70 43 32 59.00389 2 +2323 18 71 43 34 71.61789 2 +2324 18 72 43 36 62.60843 2 +2325 18 73 47 39 56.11342 2 +2326 18 74 47 37 50.3448 2 +2327 18 75 47 35 60.3185 2 +2328 18 76 47 36 61.10662 2 +2329 18 77 47 38 54.81477 2 +2330 18 78 47 40 73.56294 2 +2331 18 79 51 39 56.87359 2 +2332 18 80 51 37 59.43743 2 +2333 18 81 51 35 52.13386 2 +2334 18 82 51 33 62.85569 2 +2335 18 83 51 36 51.9236 2 +2336 18 84 51 38 52.27668 2 +2337 18 85 51 40 75.11601 4 +2338 18 86 55 39 51.19151 2 +2339 18 87 55 37 53.95637 2 +2340 18 88 55 35 51.81224 2 +2341 18 89 55 33 59.12907 2 +2342 18 90 55 34 60.13718 2 +2343 18 91 55 36 62.19573 4 +2344 18 92 55 38 68.14922 2 +2345 18 93 59 39 50.01394 2 +2346 18 94 59 37 51.31386 2 +2347 18 95 59 35 56.89453 2 +2348 18 96 59 34 63.95013 2 +2349 18 97 59 36 64.13009 2 +2350 18 98 59 38 74.12379 2 +2351 18 99 63 39 52.81417 2 +2352 18 100 63 37 52.09185 2 +2353 18 101 63 35 55.12907 2 +2354 18 102 63 33 67.76207 2 +2355 18 103 63 36 54.93586 2 +2356 18 104 63 38 55.26758 2 +2357 18 105 63 40 62.66954 2 +2358 18 106 67 39 49.96092 2 +2359 18 107 67 37 51.80063 2 +2360 18 108 67 35 61.96323 2 +2361 18 109 67 33 56.42999 2 +2362 18 110 67 34 56.29874 2 +2363 18 111 67 36 68.43426 4 +2364 18 112 67 38 75.52854 4 +2365 18 113 71 35 52.9234 2 +2366 18 114 71 33 56.34974 2 +2367 18 115 71 34 58.2994 2 +2368 18 116 71 36 63.81787 2 +2369 18 117 71 38 61.55564 2 +2370 18 118 71 40 66.50135 4 +2371 18 119 75 39 50.18387 2 +2372 18 120 75 37 52.15361 2 +2373 18 121 75 35 62.26209 2 +2374 18 122 75 33 71.58574 2 +2375 18 123 75 36 71.05973 4 +2376 18 124 75 38 80.16471 2 +2377 18 125 75 40 78.97665 4 +2378 18 126 79 37 71.69087 2 +2379 18 127 79 35 78.72475 2 +2380 18 128 79 33 86.93629 4 +2381 18 129 79 36 86.92622 4 +2382 18 130 79 38 93.4774 4 +2383 18 131 79 40 100.72928 2 +2384 19 0 4 5 83.65287 2 +2385 19 1 4 3 80.16644 4 +2386 19 2 4 1 70.05728 2 +2387 19 3 4 2 72.59017 2 +2388 19 4 4 4 67.43964 2 +2389 19 5 4 6 60.65867 2 +2390 19 6 3 40 83.44368 2 +2391 19 7 8 5 55.82647 2 +2392 19 8 8 3 52.92749 2 +2393 19 9 8 1 43.03121 2 +2394 19 10 8 2 67.1835 2 +2395 19 11 8 4 64.33855 2 +2396 19 12 8 6 37.76492 2 +2397 19 13 12 5 49.7829 2 +2398 19 14 12 3 48.48519 2 +2399 19 15 12 1 40.78278 2 +2400 19 16 12 2 49.42196 2 +2401 19 17 12 4 39.74304 2 +2402 19 18 11 38 65.59436 2 +2403 19 19 11 40 73.31688 2 +2404 19 20 15 39 81.72596 4 +2405 19 21 16 5 51.78525 2 +2406 19 22 16 3 46.19436 2 +2407 19 23 16 1 40.33201 2 +2408 19 24 16 2 40.45452 2 +2409 19 25 16 4 45.72813 2 +2410 19 26 16 6 36.86115 2 +2411 19 27 20 7 61.61062 2 +2412 19 28 20 5 45.14818 2 +2413 19 29 20 3 55.27527 2 +2414 19 30 20 1 64.54564 2 +2415 19 31 20 2 41.17034 2 +2416 19 32 20 4 37.59429 2 +2417 19 33 20 6 47.22264 2 +2418 19 34 23 39 76.97311 4 +2419 19 35 24 3 63.90912 2 +2420 19 36 24 1 39.86119 2 +2421 19 37 24 2 102.62405 2 +2422 19 38 24 4 35.85402 2 +2423 19 39 24 6 45.16698 2 +2424 19 40 27 39 83.68637 4 +2425 19 41 28 5 41.44694 2 +2426 19 42 28 3 46.76451 2 +2427 19 43 28 1 48.725 2 +2428 19 44 28 2 53.22078 2 +2429 19 45 28 4 38.66276 2 +2430 19 46 28 6 43.74431 2 +2431 19 47 32 5 43.40182 2 +2432 19 48 32 3 43.88689 2 +2433 19 49 32 1 55.42107 2 +2434 19 50 32 2 38.39158 2 +2435 19 51 32 4 38.88257 2 +2436 19 52 32 6 36.04988 2 +2437 19 53 32 8 48.07267 2 +2438 19 54 36 5 41.52665 2 +2439 19 55 36 3 47.66661 2 +2440 19 56 36 1 40.43823 2 +2441 19 57 36 2 41.50663 2 +2442 19 58 36 4 76.59016 2 +2443 19 59 36 6 38.85565 2 +2444 19 60 39 39 80.87114 2 +2445 19 61 39 37 78.81242 4 +2446 19 62 40 3 38.42716 2 +2447 19 63 40 1 42.96957 2 +2448 19 64 40 2 38.39271 2 +2449 19 65 40 4 39.64779 2 +2450 19 66 40 6 48.7284 2 +2451 19 67 44 5 45.40568 2 +2452 19 68 44 3 40.38995 2 +2453 19 69 44 1 42.48822 2 +2454 19 70 44 2 115.66859 2 +2455 19 71 44 4 43.53704 2 +2456 19 72 43 38 80.61783 4 +2457 19 73 43 40 76.93864 2 +2458 19 74 48 5 38.30513 2 +2459 19 75 48 3 43.7138 2 +2460 19 76 48 1 39.81365 2 +2461 19 77 48 2 47.23137 2 +2462 19 78 48 4 42.95562 2 +2463 19 79 48 6 44.52292 2 +2464 19 80 52 7 47.02081 2 +2465 19 81 52 5 36.43324 2 +2466 19 82 52 3 36.53986 2 +2467 19 83 52 1 44.96525 2 +2468 19 84 52 2 58.241 2 +2469 19 85 52 4 45.28007 2 +2470 19 86 52 6 45.94273 2 +2471 19 87 56 5 43.24054 2 +2472 19 88 56 3 37.9672 2 +2473 19 89 56 1 38.23732 2 +2474 19 90 56 2 41.12553 2 +2475 19 91 56 4 40.2626 2 +2476 19 92 56 6 41.99116 2 +2477 19 93 55 40 85.71539 4 +2478 19 94 60 5 42.17895 2 +2479 19 95 60 3 36.89806 2 +2480 19 96 60 1 40.63007 2 +2481 19 97 60 2 39.9185 2 +2482 19 98 60 4 38.70219 2 +2483 19 99 59 40 78.84774 4 +2484 19 100 64 5 46.9163 2 +2485 19 101 64 3 36.95581 2 +2486 19 102 64 1 39.82637 2 +2487 19 103 64 2 49.26174 2 +2488 19 104 64 4 40.04214 2 +2489 19 105 64 6 54.37306 2 +2490 19 106 64 8 47.55811 2 +2491 19 107 68 5 36.89771 2 +2492 19 108 68 3 44.53364 2 +2493 19 109 68 1 39.30601 2 +2494 19 110 68 2 40.06206 2 +2495 19 111 68 4 48.69647 2 +2496 19 112 68 6 45.9973 2 +2497 19 113 67 40 83.90803 4 +2498 19 114 71 39 67.10259 2 +2499 19 115 71 37 65.61393 3 +2500 19 116 72 3 58.4569 2 +2501 19 117 72 1 51.72274 2 +2502 19 118 72 2 51.84274 2 +2503 19 119 72 4 52.40462 2 +2504 19 120 72 6 52.36129 2 +2505 19 121 76 5 35.72167 2 +2506 19 122 76 3 43.88531 2 +2507 19 123 76 1 55.22588 2 +2508 19 124 76 2 41.38984 2 +2509 19 125 76 4 50.48529 2 +2510 19 126 76 6 54.23008 2 +2511 19 127 79 39 89.13114 4 +2512 19 128 80 5 58.61304 2 +2513 19 129 80 3 70.48381 2 +2514 19 130 80 1 72.39181 2 +2515 19 131 80 2 76.21234 2 +2516 19 132 80 4 78.59088 2 +2517 19 133 80 6 80.34683 2 +2518 20 0 4 11 90.22247 2 +2519 20 1 4 9 81.1836 2 +2520 20 2 4 7 85.56015 4 +2521 20 3 4 8 81.20755 2 +2522 20 4 4 10 74.77371 2 +2523 20 5 4 12 69.46188 2 +2524 20 6 8 13 69.65923 2 +2525 20 7 8 11 65.27855 2 +2526 20 8 8 9 61.90031 2 +2527 20 9 8 7 56.98041 2 +2528 20 10 8 8 54.51608 2 +2529 20 11 8 10 55.14952 2 +2530 20 12 8 12 56.84716 2 +2531 20 13 12 11 62.16848 2 +2532 20 14 12 9 64.78054 2 +2533 20 15 12 7 51.24476 2 +2534 20 16 12 6 61.17989 2 +2535 20 17 12 8 51.8639 2 +2536 20 18 12 10 58.08833 2 +2537 20 19 12 12 50.8857 2 +2538 20 20 16 13 67.94886 2 +2539 20 21 16 11 63.1005 2 +2540 20 22 16 9 61.45954 2 +2541 20 23 16 7 52.9778 2 +2542 20 24 16 8 52.87973 2 +2543 20 25 16 10 52.20499 2 +2544 20 26 16 12 48.37249 2 +2545 20 27 20 13 61.13887 2 +2546 20 28 20 11 50.37299 2 +2547 20 29 20 9 60.29869 2 +2548 20 30 20 8 53.69614 2 +2549 20 31 20 10 50.32166 2 +2550 20 32 20 12 49.13079 2 +2551 20 33 24 11 61.85867 4 +2552 20 34 24 9 62.32013 2 +2553 20 35 24 7 67.56209 2 +2554 20 36 24 5 60.78459 2 +2555 20 37 24 8 48.67629 2 +2556 20 38 24 10 49.39955 2 +2557 20 39 24 12 50.62129 2 +2558 20 40 28 13 63.32355 2 +2559 20 41 28 11 50.94219 2 +2560 20 42 28 9 58.96114 2 +2561 20 43 28 7 65.85705 2 +2562 20 44 28 8 51.76458 2 +2563 20 45 28 10 55.04118 2 +2564 20 46 28 12 57.58315 2 +2565 20 47 32 13 58.98701 2 +2566 20 48 32 11 56.03132 2 +2567 20 49 32 9 51.28944 2 +2568 20 50 32 7 50.50096 2 +2569 20 51 32 10 50.32664 2 +2570 20 52 32 12 47.9672 2 +2571 20 53 32 14 59.04683 2 +2572 20 54 36 11 49.94064 2 +2573 20 55 36 9 51.4155 4 +2574 20 56 36 7 50.84664 2 +2575 20 57 36 8 51.03957 2 +2576 20 58 36 10 82.40865 2 +2577 20 59 36 12 49.38847 2 +2578 20 60 40 11 66.14686 2 +2579 20 61 40 9 60.76588 2 +2580 20 62 40 7 48.91665 2 +2581 20 63 40 5 58.06831 4 +2582 20 64 40 8 50.56366 2 +2583 20 65 40 10 51.15639 2 +2584 20 66 40 12 55.17915 2 +2585 20 67 44 11 64.54646 2 +2586 20 68 44 9 49.08658 2 +2587 20 69 44 7 53.10644 2 +2588 20 70 44 6 51.62132 2 +2589 20 71 44 8 52.56766 2 +2590 20 72 44 10 59.20099 2 +2591 20 73 44 12 63.0163 2 +2592 20 74 48 11 49.353 2 +2593 20 75 48 9 51.32063 2 +2594 20 76 48 7 57.20448 2 +2595 20 77 48 8 53.85808 2 +2596 20 78 48 10 52.54294 2 +2597 20 79 48 12 53.08536 2 +2598 20 80 52 13 57.84848 2 +2599 20 81 52 11 109.02695 2 +2600 20 82 52 9 48.81471 2 +2601 20 83 52 8 57.97711 2 +2602 20 84 52 10 48.4454 2 +2603 20 85 52 12 63.76729 2 +2604 20 86 52 14 52.77775 2 +2605 20 87 56 11 55.6492 2 +2606 20 88 56 9 48.68227 2 +2607 20 89 56 7 55.70363 2 +2608 20 90 56 8 62.57872 4 +2609 20 91 56 10 51.09439 2 +2610 20 92 56 12 53.13655 2 +2611 20 93 56 14 69.32803 2 +2612 20 94 60 11 50.78772 2 +2613 20 95 60 9 58.96227 2 +2614 20 96 60 7 49.17195 2 +2615 20 97 60 6 71.69519 2 +2616 20 98 60 8 50.98436 2 +2617 20 99 60 10 57.46809 2 +2618 20 100 60 12 64.21646 2 +2619 20 101 64 11 47.38245 2 +2620 20 102 64 9 50.63737 2 +2621 20 103 64 7 53.91279 2 +2622 20 104 64 10 51.27374 2 +2623 20 105 64 12 53.55142 2 +2624 20 106 64 14 64.41583 2 +2625 20 107 68 11 48.93461 2 +2626 20 108 68 9 57.09262 2 +2627 20 109 68 7 50.70925 2 +2628 20 110 68 8 52.906 2 +2629 20 111 68 10 50.15721 2 +2630 20 112 68 12 62.17034 2 +2631 20 113 68 14 67.93131 2 +2632 20 114 72 11 51.23643 2 +2633 20 115 72 9 60.64288 2 +2634 20 116 72 7 49.51532 2 +2635 20 117 72 5 58.88415 2 +2636 20 118 72 8 51.70942 2 +2637 20 119 72 10 68.97882 4 +2638 20 120 72 12 60.47922 2 +2639 20 121 76 11 55.32636 2 +2640 20 122 76 9 52.81817 2 +2641 20 123 76 7 60.14399 2 +2642 20 124 76 8 53.42415 2 +2643 20 125 76 10 63.82299 2 +2644 20 126 76 12 67.98033 2 +2645 20 127 76 14 70.89025 2 +2646 20 128 80 11 68.63901 2 +2647 20 129 80 9 78.64559 4 +2648 20 130 80 7 80.0194 2 +2649 20 131 80 8 95.09235 4 +2650 20 132 80 10 87.292 2 +2651 20 133 80 12 103.43388 2 +2652 21 0 4 19 110.65715 4 +2653 21 1 4 17 101.62474 2 +2654 21 2 4 15 102.85698 4 +2655 21 3 4 13 92.74745 2 +2656 21 4 4 14 92.58815 2 +2657 21 5 4 16 83.9417 2 +2658 21 6 4 18 79.73973 2 +2659 21 7 8 19 93.32817 4 +2660 21 8 8 17 79.49457 2 +2661 21 9 8 15 91.05264 2 +2662 21 10 8 14 77.93972 2 +2663 21 11 8 16 72.91974 2 +2664 21 12 8 18 75.64146 2 +2665 21 13 8 20 62.11311 2 +2666 21 14 12 17 72.12162 2 +2667 21 15 12 15 71.34738 4 +2668 21 16 12 13 63.10947 2 +2669 21 17 12 14 62.27297 2 +2670 21 18 12 16 60.38029 2 +2671 21 19 12 18 66.6151 2 +2672 21 20 12 20 60.88026 2 +2673 21 21 16 19 77.63763 2 +2674 21 22 16 17 69.23589 4 +2675 21 23 16 15 60.52939 2 +2676 21 24 16 14 60.93498 2 +2677 21 25 16 16 65.06875 2 +2678 21 26 16 18 61.36435 2 +2679 21 27 20 19 76.26985 2 +2680 21 28 20 17 77.20072 2 +2681 21 29 20 15 64.18857 2 +2682 21 30 20 14 67.39867 2 +2683 21 31 20 16 69.17582 2 +2684 21 32 20 18 60.08074 2 +2685 21 33 20 20 59.48991 2 +2686 21 34 24 17 76.20167 2 +2687 21 35 24 15 70.26865 2 +2688 21 36 24 13 64.59095 2 +2689 21 37 24 14 69.58785 2 +2690 21 38 24 16 58.94064 2 +2691 21 39 24 18 65.96751 2 +2692 21 40 24 20 69.33788 4 +2693 21 41 28 19 73.309 2 +2694 21 42 28 17 70.21268 2 +2695 21 43 28 15 62.70523 2 +2696 21 44 28 14 82.65243 2 +2697 21 45 28 16 59.98792 2 +2698 21 46 28 18 59.13248 2 +2699 21 47 28 20 60.64332 2 +2700 21 48 32 19 69.54755 2 +2701 21 49 32 17 82.8553 2 +2702 21 50 32 15 60.78578 2 +2703 21 51 32 16 58.32879 2 +2704 21 52 32 18 60.82285 2 +2705 21 53 32 20 62.13141 2 +2706 21 54 36 17 72.62623 4 +2707 21 55 36 15 73.54366 2 +2708 21 56 36 13 62.44485 2 +2709 21 57 36 14 65.67136 2 +2710 21 58 36 16 59.43264 2 +2711 21 59 36 18 59.73034 2 +2712 21 60 36 20 67.38593 2 +2713 21 61 40 17 71.84592 4 +2714 21 62 40 15 72.26712 2 +2715 21 63 40 13 59.85495 2 +2716 21 64 40 14 71.5093 2 +2717 21 65 40 16 58.29815 2 +2718 21 66 40 18 59.40355 2 +2719 21 67 40 20 73.33098 2 +2720 21 68 44 19 58.52433 2 +2721 21 69 44 17 64.61735 2 +2722 21 70 44 15 61.62205 2 +2723 21 71 44 13 68.91869 2 +2724 21 72 44 14 71.77462 2 +2725 21 73 44 16 72.31273 2 +2726 21 74 44 18 73.71796 2 +2727 21 75 48 19 80.10339 2 +2728 21 76 48 17 59.24355 2 +2729 21 77 48 15 64.9703 2 +2730 21 78 48 13 63.41252 2 +2731 21 79 48 14 66.04699 2 +2732 21 80 48 16 76.70072 2 +2733 21 81 48 18 73.01625 4 +2734 21 82 52 19 65.75312 2 +2735 21 83 52 17 59.17454 2 +2736 21 84 52 15 57.68211 2 +2737 21 85 52 16 62.09541 2 +2738 21 86 52 18 94.15546 2 +2739 21 87 52 20 65.33996 2 +2740 21 88 56 19 67.94512 2 +2741 21 89 56 17 63.08557 2 +2742 21 90 56 15 60.05246 2 +2743 21 91 56 13 67.49621 2 +2744 21 92 56 16 61.31828 2 +2745 21 93 56 18 74.08665 2 +2746 21 94 56 20 71.56435 2 +2747 21 95 60 19 67.73033 2 +2748 21 96 60 17 59.27375 2 +2749 21 97 60 15 60.06866 2 +2750 21 98 60 13 70.4385 2 +2751 21 99 60 14 65.26339 2 +2752 21 100 60 16 77.73696 2 +2753 21 101 60 18 71.48056 2 +2754 21 102 64 19 59.94912 2 +2755 21 103 64 17 60.75708 2 +2756 21 104 64 15 64.10996 2 +2757 21 105 64 13 68.28101 2 +2758 21 106 64 16 61.53258 2 +2759 21 107 64 18 86.21884 2 +2760 21 108 64 20 76.14565 4 +2761 21 109 68 17 59.88285 2 +2762 21 110 68 15 63.99565 2 +2763 21 111 68 13 63.9708 2 +2764 21 112 68 16 64.40859 2 +2765 21 113 68 18 64.41322 2 +2766 21 114 68 20 78.48802 2 +2767 21 115 72 19 60.21499 2 +2768 21 116 72 17 58.55378 2 +2769 21 117 72 15 59.91743 2 +2770 21 118 72 13 63.25149 2 +2771 21 119 72 14 62.70925 2 +2772 21 120 72 16 63.31826 2 +2773 21 121 72 18 90.64764 2 +2774 21 122 76 19 58.44823 2 +2775 21 123 76 17 62.76926 2 +2776 21 124 76 15 71.4396 2 +2777 21 125 76 13 67.19145 2 +2778 21 126 76 16 85.03801 2 +2779 21 127 76 18 82.63491 4 +2780 21 128 76 20 84.24989 4 +2781 21 129 80 17 87.44363 2 +2782 21 130 80 15 82.0438 4 +2783 21 131 80 13 97.84318 2 +2784 21 132 80 14 91.97536 2 +2785 21 133 80 16 112.87136 2 +2786 21 134 80 18 102.50342 2 +2787 21 135 80 20 107.68275 2 +2788 22 0 4 25 111.71589 2 +2789 22 1 4 23 115.30997 4 +2790 22 2 4 21 107.56593 2 +2791 22 3 4 20 113.48844 2 +2792 22 4 4 22 101.30566 2 +2793 22 5 4 24 93.88881 4 +2794 22 6 4 26 83.55765 2 +2795 22 7 8 25 91.72925 2 +2796 22 8 8 23 98.59803 2 +2797 22 9 8 21 82.01957 2 +2798 22 10 8 22 85.82779 4 +2799 22 11 8 24 80.70154 2 +2800 22 12 8 26 73.92448 2 +2801 22 13 12 25 88.31252 2 +2802 22 14 12 23 86.66804 2 +2803 22 15 12 21 84.52341 4 +2804 22 16 12 19 76.80891 2 +2805 22 17 12 22 88.30418 2 +2806 22 18 12 24 70.11881 2 +2807 22 19 12 26 69.71711 2 +2808 22 20 16 25 91.7412 4 +2809 22 21 16 23 89.02145 4 +2810 22 22 16 21 82.123 4 +2811 22 23 16 20 86.48026 4 +2812 22 24 16 22 75.26604 2 +2813 22 25 16 24 70.82425 2 +2814 22 26 16 26 71.63284 2 +2815 22 27 20 27 82.22092 2 +2816 22 28 20 25 85.75116 2 +2817 22 29 20 23 74.07336 2 +2818 22 30 20 21 70.66012 2 +2819 22 31 20 22 72.83744 2 +2820 22 32 20 24 71.79055 2 +2821 22 33 20 26 72.5794 2 +2822 22 34 24 25 89.9791 2 +2823 22 35 24 23 79.98843 2 +2824 22 36 24 21 72.38287 2 +2825 22 37 24 19 73.71292 2 +2826 22 38 24 22 69.55551 2 +2827 22 39 24 24 70.37299 2 +2828 22 40 24 26 79.3823 2 +2829 22 41 28 25 85.06956 2 +2830 22 42 28 23 76.31486 2 +2831 22 43 28 21 81.14909 2 +2832 22 44 28 22 75.02314 2 +2833 22 45 28 24 75.2789 2 +2834 22 46 28 26 71.74619 2 +2835 22 47 28 28 73.78237 2 +2836 22 48 32 25 81.11498 2 +2837 22 49 32 23 69.62003 2 +2838 22 50 32 21 72.11919 2 +2839 22 51 32 22 74.53193 2 +2840 22 52 32 24 73.33566 2 +2841 22 53 32 26 84.35797 2 +2842 22 54 36 25 94.05161 2 +2843 22 55 36 23 72.79031 2 +2844 22 56 36 21 88.64121 2 +2845 22 57 36 19 72.3534 2 +2846 22 58 36 22 70.28596 2 +2847 22 59 36 24 69.59868 2 +2848 22 60 36 26 84.96815 2 +2849 22 61 40 25 86.12278 2 +2850 22 62 40 23 82.03917 4 +2851 22 63 40 21 71.33859 2 +2852 22 64 40 19 72.90669 2 +2853 22 65 40 22 70.64323 2 +2854 22 66 40 24 70.22141 2 +2855 22 67 40 26 73.41609 2 +2856 22 68 44 25 68.8101 2 +2857 22 69 44 23 73.56475 2 +2858 22 70 44 21 70.92828 2 +2859 22 71 44 20 72.86775 2 +2860 22 72 44 22 74.73376 2 +2861 22 73 44 24 89.37756 2 +2862 22 74 44 26 82.59584 4 +2863 22 75 48 25 80.36854 2 +2864 22 76 48 23 70.73075 2 +2865 22 77 48 21 73.05891 2 +2866 22 78 48 20 72.67098 2 +2867 22 79 48 22 76.65253 2 +2868 22 80 48 24 74.96959 2 +2869 22 81 48 26 86.11461 4 +2870 22 82 52 25 76.8571 2 +2871 22 83 52 23 67.06213 2 +2872 22 84 52 21 73.11842 2 +2873 22 85 52 22 77.07518 2 +2874 22 86 52 24 71.10258 2 +2875 22 87 52 26 75.32659 2 +2876 22 88 56 27 70.99376 2 +2877 22 89 56 25 70.01188 2 +2878 22 90 56 23 79.45068 2 +2879 22 91 56 21 72.49402 2 +2880 22 92 56 22 72.4846 2 +2881 22 93 56 24 74.75854 2 +2882 22 94 56 26 85.11059 2 +2883 22 95 60 25 76.52477 2 +2884 22 96 60 23 69.55304 2 +2885 22 97 60 21 71.87395 2 +2886 22 98 60 20 75.52738 2 +2887 22 99 60 22 75.19132 2 +2888 22 100 60 24 75.72908 2 +2889 22 101 60 26 86.38739 2 +2890 22 102 64 25 67.72042 2 +2891 22 103 64 23 68.70452 2 +2892 22 104 64 21 76.80544 2 +2893 22 105 64 22 81.92797 2 +2894 22 106 64 24 76.40733 2 +2895 22 107 64 26 84.96553 2 +2896 22 108 64 28 87.61413 2 +2897 22 109 68 25 67.67467 2 +2898 22 110 68 23 71.10361 2 +2899 22 111 68 21 71.30256 2 +2900 22 112 68 19 85.43278 2 +2901 22 113 68 22 93.02241 2 +2902 22 114 68 24 88.23148 4 +2903 22 115 68 26 88.06139 4 +2904 22 116 72 25 69.80397 2 +2905 22 117 72 23 70.99915 2 +2906 22 118 72 21 74.91687 2 +2907 22 119 72 20 73.91044 2 +2908 22 120 72 22 100.22797 2 +2909 22 121 72 24 86.11079 2 +2910 22 122 72 26 88.96065 2 +2911 22 123 76 25 69.19518 2 +2912 22 124 76 23 79.10805 2 +2913 22 125 76 21 83.9115 2 +2914 22 126 76 22 87.96225 4 +2915 22 127 76 24 92.80996 2 +2916 22 128 76 26 97.89679 4 +2917 22 129 80 25 89.96151 2 +2918 22 130 80 23 95.43544 2 +2919 22 131 80 21 95.45943 2 +2920 22 132 80 19 112.01284 4 +2921 22 133 80 22 110.07878 4 +2922 22 134 80 24 110.71772 4 +2923 22 135 80 26 107.03965 2 +2924 23 0 4 33 113.63699 2 +2925 23 1 4 31 113.78691 2 +2926 23 2 4 29 115.03717 3 +2927 23 3 4 27 108.97094 2 +2928 23 4 4 28 113.61593 4 +2929 23 5 4 30 108.31248 2 +2930 23 6 4 32 105.03827 2 +2931 23 7 8 33 110.32286 4 +2932 23 8 8 31 104.44407 4 +2933 23 9 8 29 107.75603 4 +2934 23 10 8 27 96.53655 2 +2935 23 11 8 28 95.68574 2 +2936 23 12 8 30 88.17455 2 +2937 23 13 8 32 86.07008 2 +2938 23 14 12 33 95.54773 2 +2939 23 15 12 31 100.49996 4 +2940 23 16 12 29 84.36275 2 +2941 23 17 12 27 85.36502 2 +2942 23 18 12 28 84.97428 2 +2943 23 19 12 30 81.98749 2 +2944 23 20 12 32 82.45321 2 +2945 23 21 16 33 99.21707 2 +2946 23 22 16 31 91.15942 2 +2947 23 23 16 29 84.66866 2 +2948 23 24 16 27 83.71216 2 +2949 23 25 16 28 90.3172 2 +2950 23 26 16 30 79.96436 2 +2951 23 27 16 32 78.63403 2 +2952 23 28 20 33 94.87175 2 +2953 23 29 20 31 95.16583 2 +2954 23 30 20 29 88.6763 2 +2955 23 31 20 28 85.59337 2 +2956 23 32 20 30 81.96961 2 +2957 23 33 20 32 82.14536 2 +2958 23 34 20 34 89.96096 4 +2959 23 35 24 31 101.4464 2 +2960 23 36 24 29 92.4518 4 +2961 23 37 24 27 84.35322 2 +2962 23 38 24 28 90.2787 2 +2963 23 39 24 30 79.03629 2 +2964 23 40 24 32 80.51599 2 +2965 23 41 24 34 86.55404 2 +2966 23 42 28 31 94.67799 2 +2967 23 43 28 29 83.03783 2 +2968 23 44 28 27 84.89952 2 +2969 23 45 28 30 80.12912 2 +2970 23 46 28 32 79.90199 2 +2971 23 47 28 34 78.99182 2 +2972 23 48 32 33 98.19312 2 +2973 23 49 32 31 97.48399 2 +2974 23 50 32 29 80.18413 2 +2975 23 51 32 27 79.52707 2 +2976 23 52 32 28 82.79177 2 +2977 23 53 32 30 88.52373 2 +2978 23 54 32 32 89.40853 2 +2979 23 55 36 31 92.59828 4 +2980 23 56 36 29 96.40507 2 +2981 23 57 36 27 83.05179 2 +2982 23 58 36 28 87.69362 2 +2983 23 59 36 30 80.82786 2 +2984 23 60 36 32 80.11567 2 +2985 23 61 36 34 86.73351 2 +2986 23 62 40 31 96.49391 2 +2987 23 63 40 29 90.85319 4 +2988 23 64 40 27 88.98717 2 +2989 23 65 40 28 84.27265 2 +2990 23 66 40 30 79.72088 2 +2991 23 67 40 32 83.42405 2 +2992 23 68 40 34 85.08877 2 +2993 23 69 44 33 86.98594 2 +2994 23 70 44 31 78.69394 2 +2995 23 71 44 29 80.01593 2 +2996 23 72 44 27 86.83865 2 +2997 23 73 44 28 89.37306 2 +2998 23 74 44 30 90.0103 4 +2999 23 75 44 32 98.65773 2 +3000 23 76 48 33 92.92869 2 +3001 23 77 48 31 80.24733 2 +3002 23 78 48 29 80.23508 2 +3003 23 79 48 27 82.85796 2 +3004 23 80 48 28 84.9284 2 +3005 23 81 48 30 91.77159 2 +3006 23 82 48 32 97.46824 2 +3007 23 83 52 31 92.75012 2 +3008 23 84 52 29 79.12128 2 +3009 23 85 52 27 94.56653 2 +3010 23 86 52 28 81.61671 2 +3011 23 87 52 30 83.56589 2 +3012 23 88 52 32 95.52408 2 +3013 23 89 52 34 95.73446 4 +3014 23 90 56 33 76.35729 2 +3015 23 91 56 31 78.34248 2 +3016 23 92 56 29 81.62539 2 +3017 23 93 56 28 89.08634 2 +3018 23 94 56 30 84.59291 2 +3019 23 95 56 32 93.45967 2 +3020 23 96 60 33 87.28527 2 +3021 23 97 60 31 77.5879 2 +3022 23 98 60 29 80.069 2 +3023 23 99 60 27 83.21897 2 +3024 23 100 60 28 88.40615 2 +3025 23 101 60 30 86.83839 2 +3026 23 102 60 32 97.06944 2 +3027 23 103 64 33 81.14806 2 +3028 23 104 64 31 76.58826 2 +3029 23 105 64 29 83.34569 2 +3030 23 106 64 27 89.10547 2 +3031 23 107 64 30 82.27849 2 +3032 23 108 64 32 96.8305 2 +3033 23 109 64 34 101.41379 2 +3034 23 110 68 31 80.24241 2 +3035 23 111 68 29 83.28994 2 +3036 23 112 68 27 83.96189 2 +3037 23 113 68 28 83.8235 2 +3038 23 114 68 30 91.96963 2 +3039 23 115 68 32 94.04258 2 +3040 23 116 68 34 99.71041 4 +3041 23 117 72 31 83.41876 2 +3042 23 118 72 29 81.92415 2 +3043 23 119 72 27 85.48416 2 +3044 23 120 72 28 84.68033 2 +3045 23 121 72 30 82.68209 2 +3046 23 122 72 32 99.6747 2 +3047 23 123 72 34 100.85651 2 +3048 23 124 76 31 84.48168 2 +3049 23 125 76 29 81.39621 2 +3050 23 126 76 27 97.77724 2 +3051 23 127 76 28 93.73974 2 +3052 23 128 76 30 106.87768 4 +3053 23 129 76 32 111.20529 4 +3054 23 130 76 34 109.60235 4 +3055 23 131 80 31 105.19252 2 +3056 23 132 80 29 112.58697 2 +3057 23 133 80 27 113.29163 4 +3058 23 134 80 28 97.97624 2 +3059 23 135 80 30 99.7905 2 +3060 23 136 80 32 104.82875 2 +3061 23 137 80 34 111.66139 2 +3062 24 0 4 39 114.44852 4 +3063 24 1 4 37 115.8993 4 +3064 24 2 4 35 112.68044 4 +3065 24 3 4 34 112.60644 2 +3066 24 4 4 36 110.38335 2 +3067 24 5 4 38 112.94922 4 +3068 24 6 4 40 108.9958 2 +3069 24 7 8 39 114.12128 4 +3070 24 8 8 37 114.48544 2 +3071 24 9 8 35 114.37898 4 +3072 24 10 8 34 111.20019 2 +3073 24 11 8 36 96.49465 2 +3074 24 12 8 38 91.18277 2 +3075 24 13 8 40 87.56159 2 +3076 24 14 12 39 109.28451 2 +3077 24 15 12 37 106.68446 2 +3078 24 16 12 35 97.40932 2 +3079 24 17 12 34 95.57771 2 +3080 24 18 12 36 94.08329 2 +3081 24 19 12 38 90.88038 3 +3082 24 20 12 40 92.78791 2 +3083 24 21 16 39 102.76796 2 +3084 24 22 16 37 109.28695 2 +3085 24 23 16 35 100.15202 2 +3086 24 24 16 34 104.59901 4 +3087 24 25 16 36 90.79396 2 +3088 24 26 16 38 87.90998 2 +3089 24 27 16 40 88.09494 2 +3090 24 28 20 39 103.70123 2 +3091 24 29 20 37 97.09676 2 +3092 24 30 20 35 94.15451 2 +3093 24 31 20 36 92.7367 2 +3094 24 32 20 38 89.71006 2 +3095 24 33 20 40 86.42421 2 +3096 24 34 24 39 108.78698 2 +3097 24 35 24 37 103.90017 4 +3098 24 36 24 35 106.94747 2 +3099 24 37 24 33 94.1941 2 +3100 24 38 24 36 98.52375 2 +3101 24 39 24 38 87.83018 2 +3102 24 40 24 40 93.04112 2 +3103 24 41 28 39 113.00703 2 +3104 24 42 28 37 104.47878 4 +3105 24 43 28 35 94.02559 2 +3106 24 44 28 33 91.70726 2 +3107 24 45 28 36 97.01317 2 +3108 24 46 28 38 95.45116 2 +3109 24 47 28 40 90.16116 2 +3110 24 48 32 39 111.31224 2 +3111 24 49 32 37 101.78357 2 +3112 24 50 32 35 99.54982 2 +3113 24 51 32 34 100.82538 2 +3114 24 52 32 36 92.86136 2 +3115 24 53 32 38 91.28229 2 +3116 24 54 32 40 88.62518 2 +3117 24 55 36 39 102.78904 2 +3118 24 56 36 37 105.621 2 +3119 24 57 36 35 93.20979 2 +3120 24 58 36 33 94.66711 2 +3121 24 59 36 36 90.39706 2 +3122 24 60 36 38 91.53305 2 +3123 24 61 36 40 92.64712 2 +3124 24 62 40 39 109.74059 2 +3125 24 63 40 37 105.37855 2 +3126 24 64 40 35 90.09866 2 +3127 24 65 40 33 96.50556 2 +3128 24 66 40 36 91.21716 2 +3129 24 67 40 38 92.58576 2 +3130 24 68 40 40 92.25135 2 +3131 24 69 44 39 92.13484 2 +3132 24 70 44 37 90.81589 2 +3133 24 71 44 35 90.6035 2 +3134 24 72 44 34 94.74156 2 +3135 24 73 44 36 90.00334 2 +3136 24 74 44 38 94.61981 2 +3137 24 75 44 40 108.72334 2 +3138 24 76 48 39 104.78773 2 +3139 24 77 48 37 89.75451 2 +3140 24 78 48 35 90.05272 2 +3141 24 79 48 34 91.92509 2 +3142 24 80 48 36 103.23272 2 +3143 24 81 48 38 100.96602 2 +3144 24 82 48 40 102.45173 2 +3145 24 83 52 39 100.35723 2 +3146 24 84 52 37 89.74238 2 +3147 24 85 52 35 93.00848 2 +3148 24 86 52 33 97.59158 2 +3149 24 87 52 36 94.96935 2 +3150 24 88 52 38 97.22535 2 +3151 24 89 52 40 109.92577 2 +3152 24 90 56 39 87.9371 2 +3153 24 91 56 37 89.23668 2 +3154 24 92 56 35 92.48052 2 +3155 24 93 56 34 99.04511 2 +3156 24 94 56 36 94.35038 2 +3157 24 95 56 38 105.92427 4 +3158 24 96 56 40 112.08519 2 +3159 24 97 60 39 90.74507 2 +3160 24 98 60 37 87.03788 2 +3161 24 99 60 35 92.27164 2 +3162 24 100 60 34 94.26194 2 +3163 24 101 60 36 101.42166 2 +3164 24 102 60 38 97.0222 2 +3165 24 103 60 40 109.61661 2 +3166 24 104 64 39 86.54217 2 +3167 24 105 64 37 91.17173 2 +3168 24 106 64 35 94.83639 2 +3169 24 107 64 36 94.14229 2 +3170 24 108 64 38 104.09598 2 +3171 24 109 64 40 112.03059 2 +3172 24 110 68 39 99.7669 2 +3173 24 111 68 37 87.44068 2 +3174 24 112 68 35 96.76743 2 +3175 24 113 68 33 107.44685 4 +3176 24 114 68 36 100.11788 2 +3177 24 115 68 38 107.24556 2 +3178 24 116 68 40 111.54206 2 +3179 24 117 72 39 88.69117 2 +3180 24 118 72 37 90.1722 2 +3181 24 119 72 35 95.07117 2 +3182 24 120 72 33 96.58762 2 +3183 24 121 72 36 96.03247 2 +3184 24 122 72 38 110.8939 4 +3185 24 123 72 40 111.09105 2 +3186 24 124 76 39 87.55707 2 +3187 24 125 76 37 92.49838 2 +3188 24 126 76 35 95.75207 2 +3189 24 127 76 33 113.68143 4 +3190 24 128 76 36 113.89191 4 +3191 24 129 76 38 114.12963 4 +3192 24 130 76 40 115.0009 4 +3193 24 131 80 39 112.99812 2 +3194 24 132 80 37 102.45484 3 +3195 24 133 80 35 109.91696 2 +3196 24 134 80 33 110.44858 2 +3197 24 135 80 36 114.11982 2 +3198 24 136 80 38 110.49119 2 +3199 24 137 80 40 112.93176 2 diff --git a/Detectors/TPC/base/files/ROUTING-TABLES.txt b/Detectors/TPC/base/files/ROUTING-TABLES.txt index 68d0f5dad5b3b..eed727f989aee 100644 --- a/Detectors/TPC/base/files/ROUTING-TABLES.txt +++ b/Detectors/TPC/base/files/ROUTING-TABLES.txt @@ -1,36 +1,36 @@ -IROC -Col 0 -> INDEX (0 - 5279) -Col 1 -> PADROW (0 - 62) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> Connector (1 - 132) -Col 4 -> Pin (1 - 40) -Col 5 -> Trace length (mm) -Col 6 -> Number of vias - -OROC1 -Col 0 -> INDEX (0 - 2879)(5280 - 8159) -Col 1 -> PADROW (0 - 33)(63 - 96) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> Connector (1 - 72) -Col 4 -> Pin (1 - 40) -Col 5 -> Trace length (mm) -Col 6 -> Number of vias - -OROC2 -Col 0 -> INDEX (0 - 3199)(8160 - 11359) -Col 1 -> PADROW (0 - 29)(97 - 126) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> Connector (1 - 80) -Col 4 -> Pin (1 - 40) -Col 5 -> Trace length (mm) -Col 6 -> Number of vias - -OROC3 -Col 0 -> INDEX (11360 - 14559)(0 - 3199) -Col 1 -> PADROW (0 - 24)(127 - 151) -Col 2 -> PAD (0 - (Np-1)) -Col 3 -> Connector (1 - 80) -Col 4 -> Pin (1 - 40) -Col 5 -> Trace length (mm) -Col 6 -> Number of vias - +IROC +Col 0 -> INDEX (0 - 5279) +Col 1 -> PADROW (0 - 62) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 132) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + +OROC1 +Col 0 -> INDEX (0 - 2879)(5280 - 8159) +Col 1 -> PADROW (0 - 33)(63 - 96) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 72) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + +OROC2 +Col 0 -> INDEX (0 - 3199)(8160 - 11359) +Col 1 -> PADROW (0 - 29)(97 - 126) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 80) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + +OROC3 +Col 0 -> INDEX (11360 - 14559)(0 - 3199) +Col 1 -> PADROW (0 - 24)(127 - 151) +Col 2 -> PAD (0 - (Np-1)) +Col 3 -> Connector (1 - 80) +Col 4 -> Pin (1 - 40) +Col 5 -> Trace length (mm) +Col 6 -> Number of vias + diff --git a/Detectors/TPC/base/files/TABLE-IROC.txt b/Detectors/TPC/base/files/TABLE-IROC.txt index 3662974b8408a..b2e2d41961e6f 100644 --- a/Detectors/TPC/base/files/TABLE-IROC.txt +++ b/Detectors/TPC/base/files/TABLE-IROC.txt @@ -1,5280 +1,5280 @@ -0 0 0 -135.2 852.25 1 5 0 0 0 0 4 0 4 -1 0 1 -131.04 852.25 1 3 0 0 0 0 2 0 2 -2 0 2 -126.88 852.25 1 1 0 0 0 0 0 0 0 -3 0 3 -122.72 852.25 1 2 0 0 0 0 1 0 1 -4 0 4 -118.56 852.25 1 4 0 0 0 0 3 0 3 -5 0 5 -114.4 852.25 5 3 0 0 1 0 2 0 2 -6 0 6 -110.24 852.25 5 1 0 0 1 0 0 0 0 -7 0 7 -106.08 852.25 5 2 0 0 1 0 1 0 1 -8 0 8 -101.92 852.25 5 4 0 0 1 0 3 0 3 -9 0 9 -97.76 852.25 9 3 0 0 2 0 2 0 2 -10 0 10 -93.6 852.25 9 1 0 0 2 0 0 0 0 -11 0 11 -89.44 852.25 9 2 0 0 2 0 1 0 1 -12 0 12 -85.28 852.25 9 4 0 0 2 0 3 0 3 -13 0 13 -81.12 852.25 13 5 0 0 3 0 4 0 4 -14 0 14 -76.96 852.25 13 3 0 0 3 0 2 0 2 -15 0 15 -72.8 852.25 13 1 0 0 3 0 0 0 0 -16 0 16 -68.64 852.25 13 2 0 0 3 0 1 0 1 -17 0 17 -64.48 852.25 13 4 0 0 3 0 3 0 3 -18 0 18 -60.32 852.25 17 3 0 0 4 0 2 0 2 -19 0 19 -56.16 852.25 17 1 0 0 4 0 0 0 0 -20 0 20 -52 852.25 17 2 0 0 4 0 1 0 1 -21 0 21 -47.84 852.25 17 4 0 0 4 0 3 0 3 -22 0 22 -43.68 852.25 21 3 0 0 5 0 2 0 2 -23 0 23 -39.52 852.25 21 1 0 0 5 0 0 0 0 -24 0 24 -35.36 852.25 21 2 0 0 5 0 1 0 1 -25 0 25 -31.2 852.25 21 4 0 0 5 0 3 0 3 -26 0 26 -27.04 852.25 25 3 0 0 6 0 2 0 2 -27 0 27 -22.88 852.25 25 1 0 0 6 0 0 0 0 -28 0 28 -18.72 852.25 25 2 0 0 6 0 1 0 1 -29 0 29 -14.56 852.25 25 4 0 0 6 0 3 0 3 -30 0 30 -10.4 852.25 25 6 0 0 6 0 5 0 5 -31 0 31 -6.24 852.25 29 3 0 0 7 0 2 0 2 -32 0 32 -2.08 852.25 29 1 0 0 7 0 0 0 0 -33 0 33 2.08 852.25 29 2 0 0 7 0 1 0 1 -34 0 34 6.24 852.25 29 4 0 0 7 0 3 0 3 -35 0 35 10.4 852.25 33 5 0 0 8 0 4 0 4 -36 0 36 14.56 852.25 33 3 0 0 8 0 2 0 2 -37 0 37 18.72 852.25 33 1 0 0 8 0 0 0 0 -38 0 38 22.88 852.25 33 2 0 0 8 0 1 0 1 -39 0 39 27.04 852.25 33 4 0 0 8 0 3 0 3 -40 0 40 31.2 852.25 37 3 0 0 9 0 2 0 2 -41 0 41 35.36 852.25 37 1 0 0 9 0 0 0 0 -42 0 42 39.52 852.25 37 2 0 0 9 0 1 0 1 -43 0 43 43.68 852.25 37 4 0 0 9 0 3 0 3 -44 0 44 47.84 852.25 41 3 0 0 10 0 2 0 2 -45 0 45 52 852.25 41 1 0 0 10 0 0 0 0 -46 0 46 56.16 852.25 41 2 0 0 10 0 1 0 1 -47 0 47 60.32 852.25 41 4 0 0 10 0 3 0 3 -48 0 48 64.48 852.25 45 3 0 0 11 0 2 0 2 -49 0 49 68.64 852.25 45 1 0 0 11 0 0 0 0 -50 0 50 72.8 852.25 45 2 0 0 11 0 1 0 1 -51 0 51 76.96 852.25 45 4 0 0 11 0 3 0 3 -52 0 52 81.12 852.25 45 6 0 0 11 0 5 0 5 -53 0 53 85.28 852.25 49 3 0 0 12 0 2 0 2 -54 0 54 89.44 852.25 49 1 0 0 12 0 0 0 0 -55 0 55 93.6 852.25 49 2 0 0 12 0 1 0 1 -56 0 56 97.76 852.25 49 4 0 0 12 0 3 0 3 -57 0 57 101.92 852.25 53 3 0 0 13 0 2 0 2 -58 0 58 106.08 852.25 53 1 0 0 13 0 0 0 0 -59 0 59 110.24 852.25 53 2 0 0 13 0 1 0 1 -60 0 60 114.4 852.25 53 4 0 0 13 0 3 0 3 -61 0 61 118.56 852.25 57 3 0 0 14 0 2 0 2 -62 0 62 122.72 852.25 57 1 0 0 14 0 0 0 0 -63 0 63 126.88 852.25 57 2 0 0 14 0 1 0 1 -64 0 64 131.04 852.25 57 4 0 0 14 0 3 0 3 -65 0 65 135.2 852.25 57 6 0 0 14 0 5 0 5 -66 1 0 -135.2 859.75 1 9 0 0 0 0 8 0 8 -67 1 1 -131.04 859.75 1 7 0 0 0 0 6 0 6 -68 1 2 -126.88 859.75 1 6 0 0 0 0 5 0 5 -69 1 3 -122.72 859.75 1 8 0 0 0 0 7 0 7 -70 1 4 -118.56 859.75 5 7 0 0 1 0 6 0 6 -71 1 5 -114.4 859.75 5 5 0 0 1 0 4 0 4 -72 1 6 -110.24 859.75 5 6 0 0 1 0 5 0 5 -73 1 7 -106.08 859.75 5 8 0 0 1 0 7 0 7 -74 1 8 -101.92 859.75 5 10 0 0 1 0 9 0 9 -75 1 9 -97.76 859.75 9 7 0 0 2 0 6 0 6 -76 1 10 -93.6 859.75 9 5 0 0 2 0 4 0 4 -77 1 11 -89.44 859.75 9 6 0 0 2 0 5 0 5 -78 1 12 -85.28 859.75 9 8 0 0 2 0 7 0 7 -79 1 13 -81.12 859.75 13 9 0 0 3 0 8 0 8 -80 1 14 -76.96 859.75 13 7 0 0 3 0 6 0 6 -81 1 15 -72.8 859.75 13 6 0 0 3 0 5 0 5 -82 1 16 -68.64 859.75 13 8 0 0 3 0 7 0 7 -83 1 17 -64.48 859.75 13 10 0 0 3 0 9 0 9 -84 1 18 -60.32 859.75 17 7 0 0 4 0 6 0 6 -85 1 19 -56.16 859.75 17 5 0 0 4 0 4 0 4 -86 1 20 -52 859.75 17 6 0 0 4 0 5 0 5 -87 1 21 -47.84 859.75 17 8 0 0 4 0 7 0 7 -88 1 22 -43.68 859.75 21 7 0 0 5 0 6 0 6 -89 1 23 -39.52 859.75 21 5 0 0 5 0 4 0 4 -90 1 24 -35.36 859.75 21 6 0 0 5 0 5 0 5 -91 1 25 -31.2 859.75 21 8 0 0 5 0 7 0 7 -92 1 26 -27.04 859.75 25 9 0 0 6 0 8 0 8 -93 1 27 -22.88 859.75 25 7 0 0 6 0 6 0 6 -94 1 28 -18.72 859.75 25 5 0 0 6 0 4 0 4 -95 1 29 -14.56 859.75 25 8 0 0 6 0 7 0 7 -96 1 30 -10.4 859.75 25 10 0 0 6 0 9 0 9 -97 1 31 -6.24 859.75 29 7 0 0 7 0 6 0 6 -98 1 32 -2.08 859.75 29 5 0 0 7 0 4 0 4 -99 1 33 2.08 859.75 29 6 0 0 7 0 5 0 5 -100 1 34 6.24 859.75 29 8 0 0 7 0 7 0 7 -101 1 35 10.4 859.75 33 9 0 0 8 0 8 0 8 -102 1 36 14.56 859.75 33 7 0 0 8 0 6 0 6 -103 1 37 18.72 859.75 33 6 0 0 8 0 5 0 5 -104 1 38 22.88 859.75 33 8 0 0 8 0 7 0 7 -105 1 39 27.04 859.75 33 10 0 0 8 0 9 0 9 -106 1 40 31.2 859.75 37 7 0 0 9 0 6 0 6 -107 1 41 35.36 859.75 37 5 0 0 9 0 4 0 4 -108 1 42 39.52 859.75 37 6 0 0 9 0 5 0 5 -109 1 43 43.68 859.75 37 8 0 0 9 0 7 0 7 -110 1 44 47.84 859.75 41 7 0 0 10 0 6 0 6 -111 1 45 52 859.75 41 5 0 0 10 0 4 0 4 -112 1 46 56.16 859.75 41 6 0 0 10 0 5 0 5 -113 1 47 60.32 859.75 41 8 0 0 10 0 7 0 7 -114 1 48 64.48 859.75 45 9 0 0 11 0 8 0 8 -115 1 49 68.64 859.75 45 7 0 0 11 0 6 0 6 -116 1 50 72.8 859.75 45 5 0 0 11 0 4 0 4 -117 1 51 76.96 859.75 45 8 0 0 11 0 7 0 7 -118 1 52 81.12 859.75 45 10 0 0 11 0 9 0 9 -119 1 53 85.28 859.75 49 7 0 0 12 0 6 0 6 -120 1 54 89.44 859.75 49 5 0 0 12 0 4 0 4 -121 1 55 93.6 859.75 49 6 0 0 12 0 5 0 5 -122 1 56 97.76 859.75 49 8 0 0 12 0 7 0 7 -123 1 57 101.92 859.75 53 9 0 0 13 0 8 0 8 -124 1 58 106.08 859.75 53 7 0 0 13 0 6 0 6 -125 1 59 110.24 859.75 53 5 0 0 13 0 4 0 4 -126 1 60 114.4 859.75 53 6 0 0 13 0 5 0 5 -127 1 61 118.56 859.75 53 8 0 0 13 0 7 0 7 -128 1 62 122.72 859.75 57 7 0 0 14 0 6 0 6 -129 1 63 126.88 859.75 57 5 0 0 14 0 4 0 4 -130 1 64 131.04 859.75 57 8 0 0 14 0 7 0 7 -131 1 65 135.2 859.75 57 10 0 0 14 0 9 0 9 -132 2 0 -135.2 867.25 1 13 0 0 0 0 12 0 12 -133 2 1 -131.04 867.25 1 11 0 0 0 0 10 0 10 -134 2 2 -126.88 867.25 1 10 0 0 0 0 9 0 9 -135 2 3 -122.72 867.25 1 12 0 0 0 0 11 0 11 -136 2 4 -118.56 867.25 5 11 0 0 1 0 10 0 10 -137 2 5 -114.4 867.25 5 9 0 0 1 0 8 0 8 -138 2 6 -110.24 867.25 5 12 0 0 1 0 11 0 11 -139 2 7 -106.08 867.25 5 14 0 0 1 0 13 0 13 -140 2 8 -101.92 867.25 9 11 0 0 2 0 10 0 10 -141 2 9 -97.76 867.25 9 9 0 0 2 0 8 0 8 -142 2 10 -93.6 867.25 9 10 0 0 2 0 9 0 9 -143 2 11 -89.44 867.25 9 12 0 0 2 0 11 0 11 -144 2 12 -85.28 867.25 9 14 0 0 2 0 13 0 13 -145 2 13 -81.12 867.25 13 13 0 0 3 0 12 0 12 -146 2 14 -76.96 867.25 13 11 0 0 3 0 10 0 10 -147 2 15 -72.8 867.25 13 12 0 0 3 0 11 0 11 -148 2 16 -68.64 867.25 13 14 0 0 3 0 13 0 13 -149 2 17 -64.48 867.25 17 13 0 0 4 0 12 0 12 -150 2 18 -60.32 867.25 17 11 0 0 4 0 10 0 10 -151 2 19 -56.16 867.25 17 9 0 0 4 0 8 0 8 -152 2 20 -52 867.25 17 10 0 0 4 0 9 0 9 -153 2 21 -47.84 867.25 17 12 0 0 4 0 11 0 11 -154 2 22 -43.68 867.25 21 11 0 0 5 0 10 0 10 -155 2 23 -39.52 867.25 21 9 0 0 5 0 8 0 8 -156 2 24 -35.36 867.25 21 10 0 0 5 0 9 0 9 -157 2 25 -31.2 867.25 21 12 0 0 5 0 11 0 11 -158 2 26 -27.04 867.25 25 13 0 0 6 0 12 0 12 -159 2 27 -22.88 867.25 25 11 0 0 6 0 10 0 10 -160 2 28 -18.72 867.25 25 12 0 0 6 0 11 0 11 -161 2 29 -14.56 867.25 25 14 0 0 6 0 13 0 13 -162 2 30 -10.4 867.25 25 16 0 0 6 0 15 0 15 -163 2 31 -6.24 867.25 29 11 0 0 7 0 10 0 10 -164 2 32 -2.08 867.25 29 9 0 0 7 0 8 0 8 -165 2 33 2.08 867.25 29 10 0 0 7 0 9 0 9 -166 2 34 6.24 867.25 29 12 0 0 7 0 11 0 11 -167 2 35 10.4 867.25 33 15 0 0 8 0 14 0 14 -168 2 36 14.56 867.25 33 13 0 0 8 0 12 0 12 -169 2 37 18.72 867.25 33 11 0 0 8 0 10 0 10 -170 2 38 22.88 867.25 33 12 0 0 8 0 11 0 11 -171 2 39 27.04 867.25 33 14 0 0 8 0 13 0 13 -172 2 40 31.2 867.25 37 11 0 0 9 0 10 0 10 -173 2 41 35.36 867.25 37 9 0 0 9 0 8 0 8 -174 2 42 39.52 867.25 37 10 0 0 9 0 9 0 9 -175 2 43 43.68 867.25 37 12 0 0 9 0 11 0 11 -176 2 44 47.84 867.25 41 11 0 0 10 0 10 0 10 -177 2 45 52 867.25 41 9 0 0 10 0 8 0 8 -178 2 46 56.16 867.25 41 10 0 0 10 0 9 0 9 -179 2 47 60.32 867.25 41 12 0 0 10 0 11 0 11 -180 2 48 64.48 867.25 41 14 0 0 10 0 13 0 13 -181 2 49 68.64 867.25 45 13 0 0 11 0 12 0 12 -182 2 50 72.8 867.25 45 11 0 0 11 0 10 0 10 -183 2 51 76.96 867.25 45 12 0 0 11 0 11 0 11 -184 2 52 81.12 867.25 45 14 0 0 11 0 13 0 13 -185 2 53 85.28 867.25 49 13 0 0 12 0 12 0 12 -186 2 54 89.44 867.25 49 11 0 0 12 0 10 0 10 -187 2 55 93.6 867.25 49 9 0 0 12 0 8 0 8 -188 2 56 97.76 867.25 49 10 0 0 12 0 9 0 9 -189 2 57 101.92 867.25 49 12 0 0 12 0 11 0 11 -190 2 58 106.08 867.25 53 13 0 0 13 0 12 0 12 -191 2 59 110.24 867.25 53 11 0 0 13 0 10 0 10 -192 2 60 114.4 867.25 53 10 0 0 13 0 9 0 9 -193 2 61 118.56 867.25 53 12 0 0 13 0 11 0 11 -194 2 62 122.72 867.25 57 11 0 0 14 0 10 0 10 -195 2 63 126.88 867.25 57 9 0 0 14 0 8 0 8 -196 2 64 131.04 867.25 57 12 0 0 14 0 11 0 11 -197 2 65 135.2 867.25 57 14 0 0 14 0 13 0 13 -198 3 0 -139.36 874.75 1 17 0 0 0 0 16 0 16 -199 3 1 -135.2 874.75 1 15 0 0 0 0 14 0 14 -200 3 2 -131.04 874.75 1 14 0 0 0 0 13 0 13 -201 3 3 -126.88 874.75 1 16 0 0 0 0 15 0 15 -202 3 4 -122.72 874.75 1 18 0 0 0 0 17 0 17 -203 3 5 -118.56 874.75 5 15 0 0 1 0 14 0 14 -204 3 6 -114.4 874.75 5 13 0 0 1 0 12 0 12 -205 3 7 -110.24 874.75 5 16 0 0 1 0 15 0 15 -206 3 8 -106.08 874.75 5 18 0 0 1 0 17 0 17 -207 3 9 -101.92 874.75 9 17 0 0 2 0 16 0 16 -208 3 10 -97.76 874.75 9 15 0 0 2 0 14 0 14 -209 3 11 -93.6 874.75 9 13 0 0 2 0 12 0 12 -210 3 12 -89.44 874.75 9 16 0 0 2 0 15 0 15 -211 3 13 -85.28 874.75 9 18 0 0 2 0 17 0 17 -212 3 14 -81.12 874.75 13 17 0 0 3 0 16 0 16 -213 3 15 -76.96 874.75 13 15 0 0 3 0 14 0 14 -214 3 16 -72.8 874.75 13 16 0 0 3 0 15 0 15 -215 3 17 -68.64 874.75 13 18 0 0 3 0 17 0 17 -216 3 18 -64.48 874.75 17 17 0 0 4 0 16 0 16 -217 3 19 -60.32 874.75 17 15 0 0 4 0 14 0 14 -218 3 20 -56.16 874.75 17 14 0 0 4 0 13 0 13 -219 3 21 -52 874.75 17 16 0 0 4 0 15 0 15 -220 3 22 -47.84 874.75 17 18 0 0 4 0 17 0 17 -221 3 23 -43.68 874.75 21 15 0 0 5 0 14 0 14 -222 3 24 -39.52 874.75 21 13 0 0 5 0 12 0 12 -223 3 25 -35.36 874.75 21 14 0 0 5 0 13 0 13 -224 3 26 -31.2 874.75 21 16 0 0 5 0 15 0 15 -225 3 27 -27.04 874.75 25 19 0 0 6 0 18 0 18 -226 3 28 -22.88 874.75 25 17 0 0 6 0 16 0 16 -227 3 29 -18.72 874.75 25 15 0 0 6 0 14 0 14 -228 3 30 -14.56 874.75 25 18 0 0 6 0 17 0 17 -229 3 31 -10.4 874.75 25 20 0 0 6 0 19 0 19 -230 3 32 -6.24 874.75 29 15 0 0 7 0 14 0 14 -231 3 33 -2.08 874.75 29 13 0 0 7 0 12 0 12 -232 3 34 2.08 874.75 29 14 0 0 7 0 13 0 13 -233 3 35 6.24 874.75 29 16 0 0 7 0 15 0 15 -234 3 36 10.4 874.75 33 19 0 0 8 0 18 0 18 -235 3 37 14.56 874.75 33 17 0 0 8 0 16 0 16 -236 3 38 18.72 874.75 33 16 0 0 8 0 15 0 15 -237 3 39 22.88 874.75 33 18 0 0 8 0 17 0 17 -238 3 40 27.04 874.75 33 20 0 0 8 0 19 0 19 -239 3 41 31.2 874.75 37 15 0 0 9 0 14 0 14 -240 3 42 35.36 874.75 37 13 0 0 9 0 12 0 12 -241 3 43 39.52 874.75 37 14 0 0 9 0 13 0 13 -242 3 44 43.68 874.75 37 16 0 0 9 0 15 0 15 -243 3 45 47.84 874.75 41 17 0 0 10 0 16 0 16 -244 3 46 52 874.75 41 15 0 0 10 0 14 0 14 -245 3 47 56.16 874.75 41 13 0 0 10 0 12 0 12 -246 3 48 60.32 874.75 41 16 0 0 10 0 15 0 15 -247 3 49 64.48 874.75 41 18 0 0 10 0 17 0 17 -248 3 50 68.64 874.75 45 17 0 0 11 0 16 0 16 -249 3 51 72.8 874.75 45 15 0 0 11 0 14 0 14 -250 3 52 76.96 874.75 45 16 0 0 11 0 15 0 15 -251 3 53 81.12 874.75 45 18 0 0 11 0 17 0 17 -252 3 54 85.28 874.75 49 17 0 0 12 0 16 0 16 -253 3 55 89.44 874.75 49 15 0 0 12 0 14 0 14 -254 3 56 93.6 874.75 49 14 0 0 12 0 13 0 13 -255 3 57 97.76 874.75 49 16 0 0 12 0 15 0 15 -256 3 58 101.92 874.75 49 18 0 0 12 0 17 0 17 -257 3 59 106.08 874.75 53 17 0 0 13 0 16 0 16 -258 3 60 110.24 874.75 53 15 0 0 13 0 14 0 14 -259 3 61 114.4 874.75 53 14 0 0 13 0 13 0 13 -260 3 62 118.56 874.75 53 16 0 0 13 0 15 0 15 -261 3 63 122.72 874.75 57 17 0 0 14 0 16 0 16 -262 3 64 126.88 874.75 57 15 0 0 14 0 14 0 14 -263 3 65 131.04 874.75 57 13 0 0 14 0 12 0 12 -264 3 66 135.2 874.75 57 16 0 0 14 0 15 0 15 -265 3 67 139.36 874.75 57 18 0 0 14 0 17 0 17 -266 4 0 -139.36 882.25 1 21 0 0 0 0 20 0 20 -267 4 1 -135.2 882.25 1 19 0 0 0 0 18 0 18 -268 4 2 -131.04 882.25 1 20 0 0 0 0 19 0 19 -269 4 3 -126.88 882.25 1 22 0 0 0 0 21 0 21 -270 4 4 -122.72 882.25 5 21 0 0 1 0 20 0 20 -271 4 5 -118.56 882.25 5 19 0 0 1 0 18 0 18 -272 4 6 -114.4 882.25 5 17 0 0 1 0 16 0 16 -273 4 7 -110.24 882.25 5 20 0 0 1 0 19 0 19 -274 4 8 -106.08 882.25 5 22 0 0 1 0 21 0 21 -275 4 9 -101.92 882.25 9 21 0 0 2 0 20 0 20 -276 4 10 -97.76 882.25 9 19 0 0 2 0 18 0 18 -277 4 11 -93.6 882.25 9 20 0 0 2 0 19 0 19 -278 4 12 -89.44 882.25 9 22 0 0 2 0 21 0 21 -279 4 13 -85.28 882.25 9 24 0 0 2 0 23 0 23 -280 4 14 -81.12 882.25 13 21 0 0 3 0 20 0 20 -281 4 15 -76.96 882.25 13 19 0 0 3 0 18 0 18 -282 4 16 -72.8 882.25 13 20 0 0 3 0 19 0 19 -283 4 17 -68.64 882.25 13 22 0 0 3 0 21 0 21 -284 4 18 -64.48 882.25 17 23 0 0 4 0 22 0 22 -285 4 19 -60.32 882.25 17 21 0 0 4 0 20 0 20 -286 4 20 -56.16 882.25 17 19 0 0 4 0 18 0 18 -287 4 21 -52 882.25 17 20 0 0 4 0 19 0 19 -288 4 22 -47.84 882.25 17 22 0 0 4 0 21 0 21 -289 4 23 -43.68 882.25 21 19 0 0 5 0 18 0 18 -290 4 24 -39.52 882.25 21 17 0 0 5 0 16 0 16 -291 4 25 -35.36 882.25 21 18 0 0 5 0 17 0 17 -292 4 26 -31.2 882.25 21 20 0 0 5 0 19 0 19 -293 4 27 -27.04 882.25 25 23 0 0 6 0 22 0 22 -294 4 28 -22.88 882.25 25 21 0 0 6 0 20 0 20 -295 4 29 -18.72 882.25 25 22 0 0 6 0 21 0 21 -296 4 30 -14.56 882.25 25 24 0 0 6 0 23 0 23 -297 4 31 -10.4 882.25 25 26 0 0 6 0 25 0 25 -298 4 32 -6.24 882.25 29 19 0 0 7 0 18 0 18 -299 4 33 -2.08 882.25 29 17 0 0 7 0 16 0 16 -300 4 34 2.08 882.25 29 18 0 0 7 0 17 0 17 -301 4 35 6.24 882.25 29 20 0 0 7 0 19 0 19 -302 4 36 10.4 882.25 33 25 0 0 8 0 24 0 24 -303 4 37 14.56 882.25 33 23 0 0 8 0 22 0 22 -304 4 38 18.72 882.25 33 21 0 0 8 0 20 0 20 -305 4 39 22.88 882.25 33 22 0 0 8 0 21 0 21 -306 4 40 27.04 882.25 33 24 0 0 8 0 23 0 23 -307 4 41 31.2 882.25 37 19 0 0 9 0 18 0 18 -308 4 42 35.36 882.25 37 17 0 0 9 0 16 0 16 -309 4 43 39.52 882.25 37 18 0 0 9 0 17 0 17 -310 4 44 43.68 882.25 37 20 0 0 9 0 19 0 19 -311 4 45 47.84 882.25 41 21 0 0 10 0 20 0 20 -312 4 46 52 882.25 41 19 0 0 10 0 18 0 18 -313 4 47 56.16 882.25 41 20 0 0 10 0 19 0 19 -314 4 48 60.32 882.25 41 22 0 0 10 0 21 0 21 -315 4 49 64.48 882.25 41 24 0 0 10 0 23 0 23 -316 4 50 68.64 882.25 45 21 0 0 11 0 20 0 20 -317 4 51 72.8 882.25 45 19 0 0 11 0 18 0 18 -318 4 52 76.96 882.25 45 20 0 0 11 0 19 0 19 -319 4 53 81.12 882.25 45 22 0 0 11 0 21 0 21 -320 4 54 85.28 882.25 49 23 0 0 12 0 22 0 22 -321 4 55 89.44 882.25 49 21 0 0 12 0 20 0 20 -322 4 56 93.6 882.25 49 19 0 0 12 0 18 0 18 -323 4 57 97.76 882.25 49 20 0 0 12 0 19 0 19 -324 4 58 101.92 882.25 49 22 0 0 12 0 21 0 21 -325 4 59 106.08 882.25 53 21 0 0 13 0 20 0 20 -326 4 60 110.24 882.25 53 19 0 0 13 0 18 0 18 -327 4 61 114.4 882.25 53 18 0 0 13 0 17 0 17 -328 4 62 118.56 882.25 53 20 0 0 13 0 19 0 19 -329 4 63 122.72 882.25 53 22 0 0 13 0 21 0 21 -330 4 64 126.88 882.25 57 21 0 0 14 0 20 0 20 -331 4 65 131.04 882.25 57 19 0 0 14 0 18 0 18 -332 4 66 135.2 882.25 57 20 0 0 14 0 19 0 19 -333 4 67 139.36 882.25 57 22 0 0 14 0 21 0 21 -334 5 0 -139.36 889.75 1 25 0 0 0 0 24 0 24 -335 5 1 -135.2 889.75 1 23 0 0 0 0 22 0 22 -336 5 2 -131.04 889.75 1 24 0 0 0 0 23 0 23 -337 5 3 -126.88 889.75 1 26 0 0 0 0 25 0 25 -338 5 4 -122.72 889.75 5 27 0 0 1 0 26 0 26 -339 5 5 -118.56 889.75 5 25 0 0 1 0 24 0 24 -340 5 6 -114.4 889.75 5 23 0 0 1 0 22 0 22 -341 5 7 -110.24 889.75 5 24 0 0 1 0 23 0 23 -342 5 8 -106.08 889.75 5 26 0 0 1 0 25 0 25 -343 5 9 -101.92 889.75 9 25 0 0 2 0 24 0 24 -344 5 10 -97.76 889.75 9 23 0 0 2 0 22 0 22 -345 5 11 -93.6 889.75 9 26 0 0 2 0 25 0 25 -346 5 12 -89.44 889.75 9 28 0 0 2 0 27 0 27 -347 5 13 -85.28 889.75 13 27 0 0 3 0 26 0 26 -348 5 14 -81.12 889.75 13 25 0 0 3 0 24 0 24 -349 5 15 -76.96 889.75 13 23 0 0 3 0 22 0 22 -350 5 16 -72.8 889.75 13 24 0 0 3 0 23 0 23 -351 5 17 -68.64 889.75 13 26 0 0 3 0 25 0 25 -352 5 18 -64.48 889.75 17 27 0 0 4 0 26 0 26 -353 5 19 -60.32 889.75 17 25 0 0 4 0 24 0 24 -354 5 20 -56.16 889.75 17 24 0 0 4 0 23 0 23 -355 5 21 -52 889.75 17 26 0 0 4 0 25 0 25 -356 5 22 -47.84 889.75 21 25 0 0 5 0 24 0 24 -357 5 23 -43.68 889.75 21 23 0 0 5 0 22 0 22 -358 5 24 -39.52 889.75 21 21 0 0 5 0 20 0 20 -359 5 25 -35.36 889.75 21 22 0 0 5 0 21 0 21 -360 5 26 -31.2 889.75 21 24 0 0 5 0 23 0 23 -361 5 27 -27.04 889.75 25 29 0 0 6 0 28 0 28 -362 5 28 -22.88 889.75 25 27 0 0 6 0 26 0 26 -363 5 29 -18.72 889.75 25 25 0 0 6 0 24 0 24 -364 5 30 -14.56 889.75 25 28 0 0 6 0 27 0 27 -365 5 31 -10.4 889.75 25 30 0 0 6 0 29 0 29 -366 5 32 -6.24 889.75 29 23 0 0 7 0 22 0 22 -367 5 33 -2.08 889.75 29 21 0 0 7 0 20 0 20 -368 5 34 2.08 889.75 29 22 0 0 7 0 21 0 21 -369 5 35 6.24 889.75 29 24 0 0 7 0 23 0 23 -370 5 36 10.4 889.75 33 29 0 0 8 0 28 0 28 -371 5 37 14.56 889.75 33 27 0 0 8 0 26 0 26 -372 5 38 18.72 889.75 33 26 0 0 8 0 25 0 25 -373 5 39 22.88 889.75 33 28 0 0 8 0 27 0 27 -374 5 40 27.04 889.75 33 30 0 0 8 0 29 0 29 -375 5 41 31.2 889.75 37 23 0 0 9 0 22 0 22 -376 5 42 35.36 889.75 37 21 0 0 9 0 20 0 20 -377 5 43 39.52 889.75 37 22 0 0 9 0 21 0 21 -378 5 44 43.68 889.75 37 24 0 0 9 0 23 0 23 -379 5 45 47.84 889.75 37 26 0 0 9 0 25 0 25 -380 5 46 52 889.75 41 25 0 0 10 0 24 0 24 -381 5 47 56.16 889.75 41 23 0 0 10 0 22 0 22 -382 5 48 60.32 889.75 41 26 0 0 10 0 25 0 25 -383 5 49 64.48 889.75 41 28 0 0 10 0 27 0 27 -384 5 50 68.64 889.75 45 25 0 0 11 0 24 0 24 -385 5 51 72.8 889.75 45 23 0 0 11 0 22 0 22 -386 5 52 76.96 889.75 45 24 0 0 11 0 23 0 23 -387 5 53 81.12 889.75 45 26 0 0 11 0 25 0 25 -388 5 54 85.28 889.75 45 28 0 0 11 0 27 0 27 -389 5 55 89.44 889.75 49 27 0 0 12 0 26 0 26 -390 5 56 93.6 889.75 49 25 0 0 12 0 24 0 24 -391 5 57 97.76 889.75 49 24 0 0 12 0 23 0 23 -392 5 58 101.92 889.75 49 26 0 0 12 0 25 0 25 -393 5 59 106.08 889.75 53 25 0 0 13 0 24 0 24 -394 5 60 110.24 889.75 53 23 0 0 13 0 22 0 22 -395 5 61 114.4 889.75 53 24 0 0 13 0 23 0 23 -396 5 62 118.56 889.75 53 26 0 0 13 0 25 0 25 -397 5 63 122.72 889.75 53 28 0 0 13 0 27 0 27 -398 5 64 126.88 889.75 57 25 0 0 14 0 24 0 24 -399 5 65 131.04 889.75 57 23 0 0 14 0 22 0 22 -400 5 66 135.2 889.75 57 24 0 0 14 0 23 0 23 -401 5 67 139.36 889.75 57 26 0 0 14 0 25 0 25 -402 6 0 -143.52 897.25 1 31 0 0 0 0 30 0 30 -403 6 1 -139.36 897.25 1 29 0 0 0 0 28 0 28 -404 6 2 -135.2 897.25 1 27 0 0 0 0 26 0 26 -405 6 3 -131.04 897.25 1 28 0 0 0 0 27 0 27 -406 6 4 -126.88 897.25 1 30 0 0 0 0 29 0 29 -407 6 5 -122.72 897.25 5 31 0 0 1 0 30 0 30 -408 6 6 -118.56 897.25 5 29 0 0 1 0 28 0 28 -409 6 7 -114.4 897.25 5 28 0 0 1 0 27 0 27 -410 6 8 -110.24 897.25 5 30 0 0 1 0 29 0 29 -411 6 9 -106.08 897.25 5 32 0 0 1 0 31 0 31 -412 6 10 -101.92 897.25 9 29 0 0 2 0 28 0 28 -413 6 11 -97.76 897.25 9 27 0 0 2 0 26 0 26 -414 6 12 -93.6 897.25 9 30 0 0 2 0 29 0 29 -415 6 13 -89.44 897.25 9 32 0 0 2 0 31 0 31 -416 6 14 -85.28 897.25 13 33 0 0 3 0 32 1 0 -417 6 15 -81.12 897.25 13 31 0 0 3 0 30 0 30 -418 6 16 -76.96 897.25 13 29 0 0 3 0 28 0 28 -419 6 17 -72.8 897.25 13 28 0 0 3 0 27 0 27 -420 6 18 -68.64 897.25 13 30 0 0 3 0 29 0 29 -421 6 19 -64.48 897.25 17 31 0 0 4 0 30 0 30 -422 6 20 -60.32 897.25 17 29 0 0 4 0 28 0 28 -423 6 21 -56.16 897.25 17 28 0 0 4 0 27 0 27 -424 6 22 -52 897.25 17 30 0 0 4 0 29 0 29 -425 6 23 -47.84 897.25 21 29 0 0 5 0 28 0 28 -426 6 24 -43.68 897.25 21 27 0 0 5 0 26 0 26 -427 6 25 -39.52 897.25 21 26 0 0 5 0 25 0 25 -428 6 26 -35.36 897.25 21 28 0 0 5 0 27 0 27 -429 6 27 -31.2 897.25 21 30 0 0 5 0 29 0 29 -430 6 28 -27.04 897.25 25 33 0 0 6 0 32 1 0 -431 6 29 -22.88 897.25 25 31 0 0 6 0 30 0 30 -432 6 30 -18.72 897.25 25 32 0 0 6 0 31 0 31 -433 6 31 -14.56 897.25 25 34 0 0 6 0 33 1 1 -434 6 32 -10.4 897.25 25 36 0 0 6 0 35 1 3 -435 6 33 -6.24 897.25 29 27 0 0 7 0 26 0 26 -436 6 34 -2.08 897.25 29 25 0 0 7 0 24 0 24 -437 6 35 2.08 897.25 29 26 0 0 7 0 25 0 25 -438 6 36 6.24 897.25 29 28 0 0 7 0 27 0 27 -439 6 37 10.4 897.25 33 35 0 0 8 0 34 1 2 -440 6 38 14.56 897.25 33 33 0 0 8 0 32 1 0 -441 6 39 18.72 897.25 33 31 0 0 8 0 30 0 30 -442 6 40 22.88 897.25 33 32 0 0 8 0 31 0 31 -443 6 41 27.04 897.25 33 34 0 0 8 0 33 1 1 -444 6 42 31.2 897.25 37 29 0 0 9 0 28 0 28 -445 6 43 35.36 897.25 37 27 0 0 9 0 26 0 26 -446 6 44 39.52 897.25 37 25 0 0 9 0 24 0 24 -447 6 45 43.68 897.25 37 28 0 0 9 0 27 0 27 -448 6 46 47.84 897.25 37 30 0 0 9 0 29 0 29 -449 6 47 52 897.25 41 29 0 0 10 0 28 0 28 -450 6 48 56.16 897.25 41 27 0 0 10 0 26 0 26 -451 6 49 60.32 897.25 41 30 0 0 10 0 29 0 29 -452 6 50 64.48 897.25 41 32 0 0 10 0 31 0 31 -453 6 51 68.64 897.25 45 29 0 0 11 0 28 0 28 -454 6 52 72.8 897.25 45 27 0 0 11 0 26 0 26 -455 6 53 76.96 897.25 45 30 0 0 11 0 29 0 29 -456 6 54 81.12 897.25 45 32 0 0 11 0 31 0 31 -457 6 55 85.28 897.25 45 34 0 0 11 0 33 1 1 -458 6 56 89.44 897.25 49 31 0 0 12 0 30 0 30 -459 6 57 93.6 897.25 49 29 0 0 12 0 28 0 28 -460 6 58 97.76 897.25 49 28 0 0 12 0 27 0 27 -461 6 59 101.92 897.25 49 30 0 0 12 0 29 0 29 -462 6 60 106.08 897.25 53 31 0 0 13 0 30 0 30 -463 6 61 110.24 897.25 53 29 0 0 13 0 28 0 28 -464 6 62 114.4 897.25 53 27 0 0 13 0 26 0 26 -465 6 63 118.56 897.25 53 30 0 0 13 0 29 0 29 -466 6 64 122.72 897.25 53 32 0 0 13 0 31 0 31 -467 6 65 126.88 897.25 57 29 0 0 14 0 28 0 28 -468 6 66 131.04 897.25 57 27 0 0 14 0 26 0 26 -469 6 67 135.2 897.25 57 28 0 0 14 0 27 0 27 -470 6 68 139.36 897.25 57 30 0 0 14 0 29 0 29 -471 6 69 143.52 897.25 57 32 0 0 14 0 31 0 31 -472 7 0 -143.52 904.75 1 35 0 0 0 0 34 1 2 -473 7 1 -139.36 904.75 1 33 0 0 0 0 32 1 0 -474 7 2 -135.2 904.75 1 32 0 0 0 0 31 0 31 -475 7 3 -131.04 904.75 1 34 0 0 0 0 33 1 1 -476 7 4 -126.88 904.75 1 36 0 0 0 0 35 1 3 -477 7 5 -122.72 904.75 5 35 0 0 1 0 34 1 2 -478 7 6 -118.56 904.75 5 33 0 0 1 0 32 1 0 -479 7 7 -114.4 904.75 5 34 0 0 1 0 33 1 1 -480 7 8 -110.24 904.75 5 36 0 0 1 0 35 1 3 -481 7 9 -106.08 904.75 9 35 0 0 2 0 34 1 2 -482 7 10 -101.92 904.75 9 33 0 0 2 0 32 1 0 -483 7 11 -97.76 904.75 9 31 0 0 2 0 30 0 30 -484 7 12 -93.6 904.75 9 34 0 0 2 0 33 1 1 -485 7 13 -89.44 904.75 9 36 0 0 2 0 35 1 3 -486 7 14 -85.28 904.75 13 39 0 0 3 0 38 1 6 -487 7 15 -81.12 904.75 13 37 0 0 3 0 36 1 4 -488 7 16 -76.96 904.75 13 35 0 0 3 0 34 1 2 -489 7 17 -72.8 904.75 13 32 0 0 3 0 31 0 31 -490 7 18 -68.64 904.75 13 34 0 0 3 0 33 1 1 -491 7 19 -64.48 904.75 17 35 0 0 4 0 34 1 2 -492 7 20 -60.32 904.75 17 33 0 0 4 0 32 1 0 -493 7 21 -56.16 904.75 17 32 0 0 4 0 31 0 31 -494 7 22 -52 904.75 17 34 0 0 4 0 33 1 1 -495 7 23 -47.84 904.75 21 35 0 0 5 0 34 1 2 -496 7 24 -43.68 904.75 21 33 0 0 5 0 32 1 0 -497 7 25 -39.52 904.75 21 31 0 0 5 0 30 0 30 -498 7 26 -35.36 904.75 21 32 0 0 5 0 31 0 31 -499 7 27 -31.2 904.75 21 34 0 0 5 0 33 1 1 -500 7 28 -27.04 904.75 25 39 0 0 6 0 38 1 6 -501 7 29 -22.88 904.75 25 37 0 0 6 0 36 1 4 -502 7 30 -18.72 904.75 25 35 0 0 6 0 34 1 2 -503 7 31 -14.56 904.75 25 38 0 0 6 0 37 1 5 -504 7 32 -10.4 904.75 25 40 0 0 6 0 39 1 7 -505 7 33 -6.24 904.75 29 31 0 0 7 0 30 0 30 -506 7 34 -2.08 904.75 29 29 0 0 7 0 28 0 28 -507 7 35 2.08 904.75 29 30 0 0 7 0 29 0 29 -508 7 36 6.24 904.75 29 32 0 0 7 0 31 0 31 -509 7 37 10.4 904.75 33 39 0 0 8 0 38 1 6 -510 7 38 14.56 904.75 33 37 0 0 8 0 36 1 4 -511 7 39 18.72 904.75 33 36 0 0 8 0 35 1 3 -512 7 40 22.88 904.75 33 38 0 0 8 0 37 1 5 -513 7 41 27.04 904.75 33 40 0 0 8 0 39 1 7 -514 7 42 31.2 904.75 37 33 0 0 9 0 32 1 0 -515 7 43 35.36 904.75 37 31 0 0 9 0 30 0 30 -516 7 44 39.52 904.75 37 32 0 0 9 0 31 0 31 -517 7 45 43.68 904.75 37 34 0 0 9 0 33 1 1 -518 7 46 47.84 904.75 37 36 0 0 9 0 35 1 3 -519 7 47 52 904.75 41 33 0 0 10 0 32 1 0 -520 7 48 56.16 904.75 41 31 0 0 10 0 30 0 30 -521 7 49 60.32 904.75 41 34 0 0 10 0 33 1 1 -522 7 50 64.48 904.75 41 36 0 0 10 0 35 1 3 -523 7 51 68.64 904.75 45 33 0 0 11 0 32 1 0 -524 7 52 72.8 904.75 45 31 0 0 11 0 30 0 30 -525 7 53 76.96 904.75 45 36 0 0 11 0 35 1 3 -526 7 54 81.12 904.75 45 38 0 0 11 0 37 1 5 -527 7 55 85.28 904.75 45 40 0 0 11 0 39 1 7 -528 7 56 89.44 904.75 49 35 0 0 12 0 34 1 2 -529 7 57 93.6 904.75 49 33 0 0 12 0 32 1 0 -530 7 58 97.76 904.75 49 32 0 0 12 0 31 0 31 -531 7 59 101.92 904.75 49 34 0 0 12 0 33 1 1 -532 7 60 106.08 904.75 49 36 0 0 12 0 35 1 3 -533 7 61 110.24 904.75 53 35 0 0 13 0 34 1 2 -534 7 62 114.4 904.75 53 33 0 0 13 0 32 1 0 -535 7 63 118.56 904.75 53 34 0 0 13 0 33 1 1 -536 7 64 122.72 904.75 53 36 0 0 13 0 35 1 3 -537 7 65 126.88 904.75 57 35 0 0 14 0 34 1 2 -538 7 66 131.04 904.75 57 33 0 0 14 0 32 1 0 -539 7 67 135.2 904.75 57 31 0 0 14 0 30 0 30 -540 7 68 139.36 904.75 57 34 0 0 14 0 33 1 1 -541 7 69 143.52 904.75 57 36 0 0 14 0 35 1 3 -542 8 0 -143.52 912.25 1 39 0 0 0 0 38 1 6 -543 8 1 -139.36 912.25 1 37 0 0 0 0 36 1 4 -544 8 2 -135.2 912.25 1 38 0 0 0 0 37 1 5 -545 8 3 -131.04 912.25 1 40 0 0 0 0 39 1 7 -546 8 4 -126.88 912.25 5 39 0 0 1 0 38 1 6 -547 8 5 -122.72 912.25 5 37 0 0 1 0 36 1 4 -548 8 6 -118.56 912.25 5 38 0 0 1 0 37 1 5 -549 8 7 -114.4 912.25 5 40 0 0 1 0 39 1 7 -550 8 8 -110.24 912.25 6 2 0 0 1 1 41 1 9 -551 8 9 -106.08 912.25 9 39 0 0 2 0 38 1 6 -552 8 10 -101.92 912.25 9 37 0 0 2 0 36 1 4 -553 8 11 -97.76 912.25 9 38 0 0 2 0 37 1 5 -554 8 12 -93.6 912.25 9 40 0 0 2 0 39 1 7 -555 8 13 -89.44 912.25 10 2 0 0 2 1 41 1 9 -556 8 14 -85.28 912.25 14 3 0 0 3 1 42 1 10 -557 8 15 -81.12 912.25 14 1 0 0 3 1 40 1 8 -558 8 16 -76.96 912.25 13 36 0 0 3 0 35 1 3 -559 8 17 -72.8 912.25 13 38 0 0 3 0 37 1 5 -560 8 18 -68.64 912.25 13 40 0 0 3 0 39 1 7 -561 8 19 -64.48 912.25 17 39 0 0 4 0 38 1 6 -562 8 20 -60.32 912.25 17 37 0 0 4 0 36 1 4 -563 8 21 -56.16 912.25 17 36 0 0 4 0 35 1 3 -564 8 22 -52 912.25 17 38 0 0 4 0 37 1 5 -565 8 23 -47.84 912.25 21 39 0 0 5 0 38 1 6 -566 8 24 -43.68 912.25 21 37 0 0 5 0 36 1 4 -567 8 25 -39.52 912.25 21 36 0 0 5 0 35 1 3 -568 8 26 -35.36 912.25 21 38 0 0 5 0 37 1 5 -569 8 27 -31.2 912.25 21 40 0 0 5 0 39 1 7 -570 8 28 -27.04 912.25 26 5 0 0 6 1 44 1 12 -571 8 29 -22.88 912.25 26 3 0 0 6 1 42 1 10 -572 8 30 -18.72 912.25 26 1 0 0 6 1 40 1 8 -573 8 31 -14.56 912.25 26 2 0 0 6 1 41 1 9 -574 8 32 -10.4 912.25 26 4 0 0 6 1 43 1 11 -575 8 33 -6.24 912.25 29 35 0 0 7 0 34 1 2 -576 8 34 -2.08 912.25 29 33 0 0 7 0 32 1 0 -577 8 35 2.08 912.25 29 34 0 0 7 0 33 1 1 -578 8 36 6.24 912.25 29 36 0 0 7 0 35 1 3 -579 8 37 10.4 912.25 34 3 0 0 8 1 42 1 10 -580 8 38 14.56 912.25 34 1 0 0 8 1 40 1 8 -581 8 39 18.72 912.25 34 2 0 0 8 1 41 1 9 -582 8 40 22.88 912.25 34 4 0 0 8 1 43 1 11 -583 8 41 27.04 912.25 34 6 0 0 8 1 45 1 13 -584 8 42 31.2 912.25 37 39 0 0 9 0 38 1 6 -585 8 43 35.36 912.25 37 37 0 0 9 0 36 1 4 -586 8 44 39.52 912.25 37 35 0 0 9 0 34 1 2 -587 8 45 43.68 912.25 37 38 0 0 9 0 37 1 5 -588 8 46 47.84 912.25 37 40 0 0 9 0 39 1 7 -589 8 47 52 912.25 41 37 0 0 10 0 36 1 4 -590 8 48 56.16 912.25 41 35 0 0 10 0 34 1 2 -591 8 49 60.32 912.25 41 38 0 0 10 0 37 1 5 -592 8 50 64.48 912.25 41 40 0 0 10 0 39 1 7 -593 8 51 68.64 912.25 45 39 0 0 11 0 38 1 6 -594 8 52 72.8 912.25 45 37 0 0 11 0 36 1 4 -595 8 53 76.96 912.25 45 35 0 0 11 0 34 1 2 -596 8 54 81.12 912.25 46 2 0 0 11 1 41 1 9 -597 8 55 85.28 912.25 46 4 0 0 11 1 43 1 11 -598 8 56 89.44 912.25 50 1 0 0 12 1 40 1 8 -599 8 57 93.6 912.25 49 39 0 0 12 0 38 1 6 -600 8 58 97.76 912.25 49 37 0 0 12 0 36 1 4 -601 8 59 101.92 912.25 49 38 0 0 12 0 37 1 5 -602 8 60 106.08 912.25 49 40 0 0 12 0 39 1 7 -603 8 61 110.24 912.25 54 1 0 0 13 1 40 1 8 -604 8 62 114.4 912.25 53 39 0 0 13 0 38 1 6 -605 8 63 118.56 912.25 53 37 0 0 13 0 36 1 4 -606 8 64 122.72 912.25 53 38 0 0 13 0 37 1 5 -607 8 65 126.88 912.25 53 40 0 0 13 0 39 1 7 -608 8 66 131.04 912.25 57 39 0 0 14 0 38 1 6 -609 8 67 135.2 912.25 57 37 0 0 14 0 36 1 4 -610 8 68 139.36 912.25 57 38 0 0 14 0 37 1 5 -611 8 69 143.52 912.25 57 40 0 0 14 0 39 1 7 -612 9 0 -147.68 919.75 2 3 0 0 0 1 42 1 10 -613 9 1 -143.52 919.75 2 1 0 0 0 1 40 1 8 -614 9 2 -139.36 919.75 2 2 0 0 0 1 41 1 9 -615 9 3 -135.2 919.75 2 4 0 0 0 1 43 1 11 -616 9 4 -131.04 919.75 2 6 0 0 0 1 45 1 13 -617 9 5 -126.88 919.75 6 5 0 0 1 1 44 1 12 -618 9 6 -122.72 919.75 6 3 0 0 1 1 42 1 10 -619 9 7 -118.56 919.75 6 1 0 0 1 1 40 1 8 -620 9 8 -114.4 919.75 6 4 0 0 1 1 43 1 11 -621 9 9 -110.24 919.75 6 6 0 0 1 1 45 1 13 -622 9 10 -106.08 919.75 10 5 0 0 2 1 44 1 12 -623 9 11 -101.92 919.75 10 3 0 0 2 1 42 1 10 -624 9 12 -97.76 919.75 10 1 0 0 2 1 40 1 8 -625 9 13 -93.6 919.75 10 4 0 0 2 1 43 1 11 -626 9 14 -89.44 919.75 10 6 0 0 2 1 45 1 13 -627 9 15 -85.28 919.75 14 5 0 0 3 1 44 1 12 -628 9 16 -81.12 919.75 14 2 0 0 3 1 41 1 9 -629 9 17 -76.96 919.75 14 4 0 0 3 1 43 1 11 -630 9 18 -72.8 919.75 14 6 0 0 3 1 45 1 13 -631 9 19 -68.64 919.75 18 3 0 0 4 1 42 1 10 -632 9 20 -64.48 919.75 18 1 0 0 4 1 40 1 8 -633 9 21 -60.32 919.75 18 2 0 0 4 1 41 1 9 -634 9 22 -56.16 919.75 18 4 0 0 4 1 43 1 11 -635 9 23 -52 919.75 17 40 0 0 4 0 39 1 7 -636 9 24 -47.84 919.75 22 3 0 0 5 1 42 1 10 -637 9 25 -43.68 919.75 22 1 0 0 5 1 40 1 8 -638 9 26 -39.52 919.75 22 2 0 0 5 1 41 1 9 -639 9 27 -35.36 919.75 22 4 0 0 5 1 43 1 11 -640 9 28 -31.2 919.75 22 6 0 0 5 1 45 1 13 -641 9 29 -27.04 919.75 26 11 0 0 6 1 50 1 18 -642 9 30 -22.88 919.75 26 9 0 0 6 1 48 1 16 -643 9 31 -18.72 919.75 26 7 0 0 6 1 46 1 14 -644 9 32 -14.56 919.75 26 6 0 0 6 1 45 1 13 -645 9 33 -10.4 919.75 26 8 0 0 6 1 47 1 15 -646 9 34 -6.24 919.75 29 39 0 0 7 0 38 1 6 -647 9 35 -2.08 919.75 29 37 0 0 7 0 36 1 4 -648 9 36 2.08 919.75 29 38 0 0 7 0 37 1 5 -649 9 37 6.24 919.75 29 40 0 0 7 0 39 1 7 -650 9 38 10.4 919.75 34 7 0 0 8 1 46 1 14 -651 9 39 14.56 919.75 34 5 0 0 8 1 44 1 12 -652 9 40 18.72 919.75 34 8 0 0 8 1 47 1 15 -653 9 41 22.88 919.75 34 10 0 0 8 1 49 1 17 -654 9 42 27.04 919.75 34 12 0 0 8 1 51 1 19 -655 9 43 31.2 919.75 38 5 0 0 9 1 44 1 12 -656 9 44 35.36 919.75 38 3 0 0 9 1 42 1 10 -657 9 45 39.52 919.75 38 1 0 0 9 1 40 1 8 -658 9 46 43.68 919.75 38 2 0 0 9 1 41 1 9 -659 9 47 47.84 919.75 38 4 0 0 9 1 43 1 11 -660 9 48 52 919.75 41 39 0 0 10 0 38 1 6 -661 9 49 56.16 919.75 42 3 0 0 10 1 42 1 10 -662 9 50 60.32 919.75 42 1 0 0 10 1 40 1 8 -663 9 51 64.48 919.75 42 2 0 0 10 1 41 1 9 -664 9 52 68.64 919.75 42 4 0 0 10 1 43 1 11 -665 9 53 72.8 919.75 46 5 0 0 11 1 44 1 12 -666 9 54 76.96 919.75 46 3 0 0 11 1 42 1 10 -667 9 55 81.12 919.75 46 1 0 0 11 1 40 1 8 -668 9 56 85.28 919.75 46 6 0 0 11 1 45 1 13 -669 9 57 89.44 919.75 50 5 0 0 12 1 44 1 12 -670 9 58 93.6 919.75 50 3 0 0 12 1 42 1 10 -671 9 59 97.76 919.75 50 2 0 0 12 1 41 1 9 -672 9 60 101.92 919.75 50 4 0 0 12 1 43 1 11 -673 9 61 106.08 919.75 50 6 0 0 12 1 45 1 13 -674 9 62 110.24 919.75 54 5 0 0 13 1 44 1 12 -675 9 63 114.4 919.75 54 3 0 0 13 1 42 1 10 -676 9 64 118.56 919.75 54 2 0 0 13 1 41 1 9 -677 9 65 122.72 919.75 54 4 0 0 13 1 43 1 11 -678 9 66 126.88 919.75 54 6 0 0 13 1 45 1 13 -679 9 67 131.04 919.75 58 5 0 0 14 1 44 1 12 -680 9 68 135.2 919.75 58 3 0 0 14 1 42 1 10 -681 9 69 139.36 919.75 58 1 0 0 14 1 40 1 8 -682 9 70 143.52 919.75 58 2 0 0 14 1 41 1 9 -683 9 71 147.68 919.75 58 4 0 0 14 1 43 1 11 -684 10 0 -147.68 927.25 2 9 0 0 0 1 48 1 16 -685 10 1 -143.52 927.25 2 7 0 0 0 1 46 1 14 -686 10 2 -139.36 927.25 2 5 0 0 0 1 44 1 12 -687 10 3 -135.2 927.25 2 8 0 0 0 1 47 1 15 -688 10 4 -131.04 927.25 2 10 0 0 0 1 49 1 17 -689 10 5 -126.88 927.25 6 11 0 0 1 1 50 1 18 -690 10 6 -122.72 927.25 6 9 0 0 1 1 48 1 16 -691 10 7 -118.56 927.25 6 7 0 0 1 1 46 1 14 -692 10 8 -114.4 927.25 6 8 0 0 1 1 47 1 15 -693 10 9 -110.24 927.25 6 10 0 0 1 1 49 1 17 -694 10 10 -106.08 927.25 10 9 0 0 2 1 48 1 16 -695 10 11 -101.92 927.25 10 7 0 0 2 1 46 1 14 -696 10 12 -97.76 927.25 10 8 0 0 2 1 47 1 15 -697 10 13 -93.6 927.25 10 10 0 0 2 1 49 1 17 -698 10 14 -89.44 927.25 14 11 0 0 3 1 50 1 18 -699 10 15 -85.28 927.25 14 9 0 0 3 1 48 1 16 -700 10 16 -81.12 927.25 14 7 0 0 3 1 46 1 14 -701 10 17 -76.96 927.25 14 8 0 0 3 1 47 1 15 -702 10 18 -72.8 927.25 14 10 0 0 3 1 49 1 17 -703 10 19 -68.64 927.25 18 9 0 0 4 1 48 1 16 -704 10 20 -64.48 927.25 18 7 0 0 4 1 46 1 14 -705 10 21 -60.32 927.25 18 5 0 0 4 1 44 1 12 -706 10 22 -56.16 927.25 18 6 0 0 4 1 45 1 13 -707 10 23 -52 927.25 18 8 0 0 4 1 47 1 15 -708 10 24 -47.84 927.25 22 9 0 0 5 1 48 1 16 -709 10 25 -43.68 927.25 22 7 0 0 5 1 46 1 14 -710 10 26 -39.52 927.25 22 5 0 0 5 1 44 1 12 -711 10 27 -35.36 927.25 22 8 0 0 5 1 47 1 15 -712 10 28 -31.2 927.25 22 10 0 0 5 1 49 1 17 -713 10 29 -27.04 927.25 26 15 0 0 6 1 54 1 22 -714 10 30 -22.88 927.25 26 13 0 0 6 1 52 1 20 -715 10 31 -18.72 927.25 26 10 0 0 6 1 49 1 17 -716 10 32 -14.56 927.25 26 12 0 0 6 1 51 1 19 -717 10 33 -10.4 927.25 26 14 0 0 6 1 53 1 21 -718 10 34 -6.24 927.25 30 3 0 0 7 1 42 1 10 -719 10 35 -2.08 927.25 30 1 0 0 7 1 40 1 8 -720 10 36 2.08 927.25 30 2 0 0 7 1 41 1 9 -721 10 37 6.24 927.25 30 4 0 0 7 1 43 1 11 -722 10 38 10.4 927.25 34 13 0 0 8 1 52 1 20 -723 10 39 14.56 927.25 34 11 0 0 8 1 50 1 18 -724 10 40 18.72 927.25 34 9 0 0 8 1 48 1 16 -725 10 41 22.88 927.25 34 14 0 0 8 1 53 1 21 -726 10 42 27.04 927.25 34 16 0 0 8 1 55 1 23 -727 10 43 31.2 927.25 38 9 0 0 9 1 48 1 16 -728 10 44 35.36 927.25 38 7 0 0 9 1 46 1 14 -729 10 45 39.52 927.25 38 6 0 0 9 1 45 1 13 -730 10 46 43.68 927.25 38 8 0 0 9 1 47 1 15 -731 10 47 47.84 927.25 38 10 0 0 9 1 49 1 17 -732 10 48 52 927.25 42 7 0 0 10 1 46 1 14 -733 10 49 56.16 927.25 42 5 0 0 10 1 44 1 12 -734 10 50 60.32 927.25 42 6 0 0 10 1 45 1 13 -735 10 51 64.48 927.25 42 8 0 0 10 1 47 1 15 -736 10 52 68.64 927.25 42 10 0 0 10 1 49 1 17 -737 10 53 72.8 927.25 46 9 0 0 11 1 48 1 16 -738 10 54 76.96 927.25 46 7 0 0 11 1 46 1 14 -739 10 55 81.12 927.25 46 8 0 0 11 1 47 1 15 -740 10 56 85.28 927.25 46 10 0 0 11 1 49 1 17 -741 10 57 89.44 927.25 46 12 0 0 11 1 51 1 19 -742 10 58 93.6 927.25 50 9 0 0 12 1 48 1 16 -743 10 59 97.76 927.25 50 7 0 0 12 1 46 1 14 -744 10 60 101.92 927.25 50 8 0 0 12 1 47 1 15 -745 10 61 106.08 927.25 50 10 0 0 12 1 49 1 17 -746 10 62 110.24 927.25 54 9 0 0 13 1 48 1 16 -747 10 63 114.4 927.25 54 7 0 0 13 1 46 1 14 -748 10 64 118.56 927.25 54 8 0 0 13 1 47 1 15 -749 10 65 122.72 927.25 54 10 0 0 13 1 49 1 17 -750 10 66 126.88 927.25 54 12 0 0 13 1 51 1 19 -751 10 67 131.04 927.25 58 9 0 0 14 1 48 1 16 -752 10 68 135.2 927.25 58 7 0 0 14 1 46 1 14 -753 10 69 139.36 927.25 58 6 0 0 14 1 45 1 13 -754 10 70 143.52 927.25 58 8 0 0 14 1 47 1 15 -755 10 71 147.68 927.25 58 10 0 0 14 1 49 1 17 -756 11 0 -147.68 934.75 2 13 0 0 0 1 52 1 20 -757 11 1 -143.52 934.75 2 11 0 0 0 1 50 1 18 -758 11 2 -139.36 934.75 2 12 0 0 0 1 51 1 19 -759 11 3 -135.2 934.75 2 14 0 0 0 1 53 1 21 -760 11 4 -131.04 934.75 2 16 0 0 0 1 55 1 23 -761 11 5 -126.88 934.75 6 15 0 0 1 1 54 1 22 -762 11 6 -122.72 934.75 6 13 0 0 1 1 52 1 20 -763 11 7 -118.56 934.75 6 12 0 0 1 1 51 1 19 -764 11 8 -114.4 934.75 6 14 0 0 1 1 53 1 21 -765 11 9 -110.24 934.75 10 13 0 0 2 1 52 1 20 -766 11 10 -106.08 934.75 10 11 0 0 2 1 50 1 18 -767 11 11 -101.92 934.75 10 12 0 0 2 1 51 1 19 -768 11 12 -97.76 934.75 10 14 0 0 2 1 53 1 21 -769 11 13 -93.6 934.75 10 16 0 0 2 1 55 1 23 -770 11 14 -89.44 934.75 14 15 0 0 3 1 54 1 22 -771 11 15 -85.28 934.75 14 13 0 0 3 1 52 1 20 -772 11 16 -81.12 934.75 14 12 0 0 3 1 51 1 19 -773 11 17 -76.96 934.75 14 14 0 0 3 1 53 1 21 -774 11 18 -72.8 934.75 14 16 0 0 3 1 55 1 23 -775 11 19 -68.64 934.75 18 13 0 0 4 1 52 1 20 -776 11 20 -64.48 934.75 18 11 0 0 4 1 50 1 18 -777 11 21 -60.32 934.75 18 10 0 0 4 1 49 1 17 -778 11 22 -56.16 934.75 18 12 0 0 4 1 51 1 19 -779 11 23 -52 934.75 18 14 0 0 4 1 53 1 21 -780 11 24 -47.84 934.75 22 13 0 0 5 1 52 1 20 -781 11 25 -43.68 934.75 22 11 0 0 5 1 50 1 18 -782 11 26 -39.52 934.75 22 12 0 0 5 1 51 1 19 -783 11 27 -35.36 934.75 22 14 0 0 5 1 53 1 21 -784 11 28 -31.2 934.75 22 16 0 0 5 1 55 1 23 -785 11 29 -27.04 934.75 26 19 0 0 6 1 58 1 26 -786 11 30 -22.88 934.75 26 17 0 0 6 1 56 1 24 -787 11 31 -18.72 934.75 26 16 0 0 6 1 55 1 23 -788 11 32 -14.56 934.75 26 18 0 0 6 1 57 1 25 -789 11 33 -10.4 934.75 30 9 0 0 7 1 48 1 16 -790 11 34 -6.24 934.75 30 7 0 0 7 1 46 1 14 -791 11 35 -2.08 934.75 30 5 0 0 7 1 44 1 12 -792 11 36 2.08 934.75 30 6 0 0 7 1 45 1 13 -793 11 37 6.24 934.75 30 8 0 0 7 1 47 1 15 -794 11 38 10.4 934.75 30 10 0 0 7 1 49 1 17 -795 11 39 14.56 934.75 34 17 0 0 8 1 56 1 24 -796 11 40 18.72 934.75 34 15 0 0 8 1 54 1 22 -797 11 41 22.88 934.75 34 18 0 0 8 1 57 1 25 -798 11 42 27.04 934.75 34 20 0 0 8 1 59 1 27 -799 11 43 31.2 934.75 38 15 0 0 9 1 54 1 22 -800 11 44 35.36 934.75 38 13 0 0 9 1 52 1 20 -801 11 45 39.52 934.75 38 11 0 0 9 1 50 1 18 -802 11 46 43.68 934.75 38 12 0 0 9 1 51 1 19 -803 11 47 47.84 934.75 38 14 0 0 9 1 53 1 21 -804 11 48 52 934.75 42 13 0 0 10 1 52 1 20 -805 11 49 56.16 934.75 42 11 0 0 10 1 50 1 18 -806 11 50 60.32 934.75 42 9 0 0 10 1 48 1 16 -807 11 51 64.48 934.75 42 12 0 0 10 1 51 1 19 -808 11 52 68.64 934.75 42 14 0 0 10 1 53 1 21 -809 11 53 72.8 934.75 46 15 0 0 11 1 54 1 22 -810 11 54 76.96 934.75 46 13 0 0 11 1 52 1 20 -811 11 55 81.12 934.75 46 11 0 0 11 1 50 1 18 -812 11 56 85.28 934.75 46 14 0 0 11 1 53 1 21 -813 11 57 89.44 934.75 46 16 0 0 11 1 55 1 23 -814 11 58 93.6 934.75 50 15 0 0 12 1 54 1 22 -815 11 59 97.76 934.75 50 13 0 0 12 1 52 1 20 -816 11 60 101.92 934.75 50 11 0 0 12 1 50 1 18 -817 11 61 106.08 934.75 50 12 0 0 12 1 51 1 19 -818 11 62 110.24 934.75 50 14 0 0 12 1 53 1 21 -819 11 63 114.4 934.75 54 13 0 0 13 1 52 1 20 -820 11 64 118.56 934.75 54 11 0 0 13 1 50 1 18 -821 11 65 122.72 934.75 54 14 0 0 13 1 53 1 21 -822 11 66 126.88 934.75 54 16 0 0 13 1 55 1 23 -823 11 67 131.04 934.75 58 15 0 0 14 1 54 1 22 -824 11 68 135.2 934.75 58 13 0 0 14 1 52 1 20 -825 11 69 139.36 934.75 58 11 0 0 14 1 50 1 18 -826 11 70 143.52 934.75 58 12 0 0 14 1 51 1 19 -827 11 71 147.68 934.75 58 14 0 0 14 1 53 1 21 -828 12 0 -151.84 942.25 2 19 0 0 0 1 58 1 26 -829 12 1 -147.68 942.25 2 17 0 0 0 1 56 1 24 -830 12 2 -143.52 942.25 2 15 0 0 0 1 54 1 22 -831 12 3 -139.36 942.25 2 18 0 0 0 1 57 1 25 -832 12 4 -135.2 942.25 2 20 0 0 0 1 59 1 27 -833 12 5 -131.04 942.25 6 19 0 0 1 1 58 1 26 -834 12 6 -126.88 942.25 6 17 0 0 1 1 56 1 24 -835 12 7 -122.72 942.25 6 16 0 0 1 1 55 1 23 -836 12 8 -118.56 942.25 6 18 0 0 1 1 57 1 25 -837 12 9 -114.4 942.25 6 20 0 0 1 1 59 1 27 -838 12 10 -110.24 942.25 10 19 0 0 2 1 58 1 26 -839 12 11 -106.08 942.25 10 17 0 0 2 1 56 1 24 -840 12 12 -101.92 942.25 10 15 0 0 2 1 54 1 22 -841 12 13 -97.76 942.25 10 18 0 0 2 1 57 1 25 -842 12 14 -93.6 942.25 10 20 0 0 2 1 59 1 27 -843 12 15 -89.44 942.25 14 21 0 0 3 1 60 1 28 -844 12 16 -85.28 942.25 14 19 0 0 3 1 58 1 26 -845 12 17 -81.12 942.25 14 17 0 0 3 1 56 1 24 -846 12 18 -76.96 942.25 14 18 0 0 3 1 57 1 25 -847 12 19 -72.8 942.25 14 20 0 0 3 1 59 1 27 -848 12 20 -68.64 942.25 18 19 0 0 4 1 58 1 26 -849 12 21 -64.48 942.25 18 17 0 0 4 1 56 1 24 -850 12 22 -60.32 942.25 18 15 0 0 4 1 54 1 22 -851 12 23 -56.16 942.25 18 16 0 0 4 1 55 1 23 -852 12 24 -52 942.25 18 18 0 0 4 1 57 1 25 -853 12 25 -47.84 942.25 22 19 0 0 5 1 58 1 26 -854 12 26 -43.68 942.25 22 17 0 0 5 1 56 1 24 -855 12 27 -39.52 942.25 22 15 0 0 5 1 54 1 22 -856 12 28 -35.36 942.25 22 18 0 0 5 1 57 1 25 -857 12 29 -31.2 942.25 22 20 0 0 5 1 59 1 27 -858 12 30 -27.04 942.25 26 23 0 0 6 1 62 1 30 -859 12 31 -22.88 942.25 26 21 0 0 6 1 60 1 28 -860 12 32 -18.72 942.25 26 20 0 0 6 1 59 1 27 -861 12 33 -14.56 942.25 26 22 0 0 6 1 61 1 29 -862 12 34 -10.4 942.25 30 15 0 0 7 1 54 1 22 -863 12 35 -6.24 942.25 30 13 0 0 7 1 52 1 20 -864 12 36 -2.08 942.25 30 11 0 0 7 1 50 1 18 -865 12 37 2.08 942.25 30 12 0 0 7 1 51 1 19 -866 12 38 6.24 942.25 30 14 0 0 7 1 53 1 21 -867 12 39 10.4 942.25 30 16 0 0 7 1 55 1 23 -868 12 40 14.56 942.25 34 21 0 0 8 1 60 1 28 -869 12 41 18.72 942.25 34 19 0 0 8 1 58 1 26 -870 12 42 22.88 942.25 34 22 0 0 8 1 61 1 29 -871 12 43 27.04 942.25 34 24 0 0 8 1 63 1 31 -872 12 44 31.2 942.25 38 19 0 0 9 1 58 1 26 -873 12 45 35.36 942.25 38 17 0 0 9 1 56 1 24 -874 12 46 39.52 942.25 38 16 0 0 9 1 55 1 23 -875 12 47 43.68 942.25 38 18 0 0 9 1 57 1 25 -876 12 48 47.84 942.25 38 20 0 0 9 1 59 1 27 -877 12 49 52 942.25 42 17 0 0 10 1 56 1 24 -878 12 50 56.16 942.25 42 15 0 0 10 1 54 1 22 -879 12 51 60.32 942.25 42 16 0 0 10 1 55 1 23 -880 12 52 64.48 942.25 42 18 0 0 10 1 57 1 25 -881 12 53 68.64 942.25 42 20 0 0 10 1 59 1 27 -882 12 54 72.8 942.25 46 19 0 0 11 1 58 1 26 -883 12 55 76.96 942.25 46 17 0 0 11 1 56 1 24 -884 12 56 81.12 942.25 46 18 0 0 11 1 57 1 25 -885 12 57 85.28 942.25 46 20 0 0 11 1 59 1 27 -886 12 58 89.44 942.25 46 22 0 0 11 1 61 1 29 -887 12 59 93.6 942.25 50 19 0 0 12 1 58 1 26 -888 12 60 97.76 942.25 50 17 0 0 12 1 56 1 24 -889 12 61 101.92 942.25 50 16 0 0 12 1 55 1 23 -890 12 62 106.08 942.25 50 18 0 0 12 1 57 1 25 -891 12 63 110.24 942.25 50 20 0 0 12 1 59 1 27 -892 12 64 114.4 942.25 54 19 0 0 13 1 58 1 26 -893 12 65 118.56 942.25 54 17 0 0 13 1 56 1 24 -894 12 66 122.72 942.25 54 15 0 0 13 1 54 1 22 -895 12 67 126.88 942.25 54 18 0 0 13 1 57 1 25 -896 12 68 131.04 942.25 54 20 0 0 13 1 59 1 27 -897 12 69 135.2 942.25 58 19 0 0 14 1 58 1 26 -898 12 70 139.36 942.25 58 17 0 0 14 1 56 1 24 -899 12 71 143.52 942.25 58 16 0 0 14 1 55 1 23 -900 12 72 147.68 942.25 58 18 0 0 14 1 57 1 25 -901 12 73 151.84 942.25 58 20 0 0 14 1 59 1 27 -902 13 0 -151.84 949.75 2 23 0 0 0 1 62 1 30 -903 13 1 -147.68 949.75 2 21 0 0 0 1 60 1 28 -904 13 2 -143.52 949.75 2 22 0 0 0 1 61 1 29 -905 13 3 -139.36 949.75 2 24 0 0 0 1 63 1 31 -906 13 4 -135.2 949.75 2 26 0 0 0 1 65 2 1 -907 13 5 -131.04 949.75 6 25 0 0 1 1 64 2 0 -908 13 6 -126.88 949.75 6 23 0 0 1 1 62 1 30 -909 13 7 -122.72 949.75 6 21 0 0 1 1 60 1 28 -910 13 8 -118.56 949.75 6 22 0 0 1 1 61 1 29 -911 13 9 -114.4 949.75 6 24 0 0 1 1 63 1 31 -912 13 10 -110.24 949.75 10 23 0 0 2 1 62 1 30 -913 13 11 -106.08 949.75 10 21 0 0 2 1 60 1 28 -914 13 12 -101.92 949.75 10 22 0 0 2 1 61 1 29 -915 13 13 -97.76 949.75 10 24 0 0 2 1 63 1 31 -916 13 14 -93.6 949.75 10 26 0 0 2 1 65 2 1 -917 13 15 -89.44 949.75 14 25 0 0 3 1 64 2 0 -918 13 16 -85.28 949.75 14 23 0 0 3 1 62 1 30 -919 13 17 -81.12 949.75 14 22 0 0 3 1 61 1 29 -920 13 18 -76.96 949.75 14 24 0 0 3 1 63 1 31 -921 13 19 -72.8 949.75 14 26 0 0 3 1 65 2 1 -922 13 20 -68.64 949.75 18 23 0 0 4 1 62 1 30 -923 13 21 -64.48 949.75 18 21 0 0 4 1 60 1 28 -924 13 22 -60.32 949.75 18 20 0 0 4 1 59 1 27 -925 13 23 -56.16 949.75 18 22 0 0 4 1 61 1 29 -926 13 24 -52 949.75 18 24 0 0 4 1 63 1 31 -927 13 25 -47.84 949.75 22 23 0 0 5 1 62 1 30 -928 13 26 -43.68 949.75 22 21 0 0 5 1 60 1 28 -929 13 27 -39.52 949.75 22 22 0 0 5 1 61 1 29 -930 13 28 -35.36 949.75 22 24 0 0 5 1 63 1 31 -931 13 29 -31.2 949.75 22 26 0 0 5 1 65 2 1 -932 13 30 -27.04 949.75 26 27 0 0 6 1 66 2 2 -933 13 31 -22.88 949.75 26 25 0 0 6 1 64 2 0 -934 13 32 -18.72 949.75 26 24 0 0 6 1 63 1 31 -935 13 33 -14.56 949.75 26 26 0 0 6 1 65 2 1 -936 13 34 -10.4 949.75 30 21 0 0 7 1 60 1 28 -937 13 35 -6.24 949.75 30 19 0 0 7 1 58 1 26 -938 13 36 -2.08 949.75 30 17 0 0 7 1 56 1 24 -939 13 37 2.08 949.75 30 18 0 0 7 1 57 1 25 -940 13 38 6.24 949.75 30 20 0 0 7 1 59 1 27 -941 13 39 10.4 949.75 30 22 0 0 7 1 61 1 29 -942 13 40 14.56 949.75 34 25 0 0 8 1 64 2 0 -943 13 41 18.72 949.75 34 23 0 0 8 1 62 1 30 -944 13 42 22.88 949.75 34 26 0 0 8 1 65 2 1 -945 13 43 27.04 949.75 34 28 0 0 8 1 67 2 3 -946 13 44 31.2 949.75 38 25 0 0 9 1 64 2 0 -947 13 45 35.36 949.75 38 23 0 0 9 1 62 1 30 -948 13 46 39.52 949.75 38 21 0 0 9 1 60 1 28 -949 13 47 43.68 949.75 38 22 0 0 9 1 61 1 29 -950 13 48 47.84 949.75 38 24 0 0 9 1 63 1 31 -951 13 49 52 949.75 42 23 0 0 10 1 62 1 30 -952 13 50 56.16 949.75 42 21 0 0 10 1 60 1 28 -953 13 51 60.32 949.75 42 19 0 0 10 1 58 1 26 -954 13 52 64.48 949.75 42 22 0 0 10 1 61 1 29 -955 13 53 68.64 949.75 42 24 0 0 10 1 63 1 31 -956 13 54 72.8 949.75 46 25 0 0 11 1 64 2 0 -957 13 55 76.96 949.75 46 23 0 0 11 1 62 1 30 -958 13 56 81.12 949.75 46 21 0 0 11 1 60 1 28 -959 13 57 85.28 949.75 46 24 0 0 11 1 63 1 31 -960 13 58 89.44 949.75 46 26 0 0 11 1 65 2 1 -961 13 59 93.6 949.75 50 25 0 0 12 1 64 2 0 -962 13 60 97.76 949.75 50 23 0 0 12 1 62 1 30 -963 13 61 101.92 949.75 50 21 0 0 12 1 60 1 28 -964 13 62 106.08 949.75 50 22 0 0 12 1 61 1 29 -965 13 63 110.24 949.75 50 24 0 0 12 1 63 1 31 -966 13 64 114.4 949.75 54 23 0 0 13 1 62 1 30 -967 13 65 118.56 949.75 54 21 0 0 13 1 60 1 28 -968 13 66 122.72 949.75 54 22 0 0 13 1 61 1 29 -969 13 67 126.88 949.75 54 24 0 0 13 1 63 1 31 -970 13 68 131.04 949.75 54 26 0 0 13 1 65 2 1 -971 13 69 135.2 949.75 58 25 0 0 14 1 64 2 0 -972 13 70 139.36 949.75 58 23 0 0 14 1 62 1 30 -973 13 71 143.52 949.75 58 21 0 0 14 1 60 1 28 -974 13 72 147.68 949.75 58 22 0 0 14 1 61 1 29 -975 13 73 151.84 949.75 58 24 0 0 14 1 63 1 31 -976 14 0 -151.84 957.25 2 29 0 0 0 1 68 2 4 -977 14 1 -147.68 957.25 2 27 0 0 0 1 66 2 2 -978 14 2 -143.52 957.25 2 25 0 0 0 1 64 2 0 -979 14 3 -139.36 957.25 2 28 0 0 0 1 67 2 3 -980 14 4 -135.2 957.25 2 30 0 0 0 1 69 2 5 -981 14 5 -131.04 957.25 6 29 0 0 1 1 68 2 4 -982 14 6 -126.88 957.25 6 27 0 0 1 1 66 2 2 -983 14 7 -122.72 957.25 6 26 0 0 1 1 65 2 1 -984 14 8 -118.56 957.25 6 28 0 0 1 1 67 2 3 -985 14 9 -114.4 957.25 6 30 0 0 1 1 69 2 5 -986 14 10 -110.24 957.25 10 29 0 0 2 1 68 2 4 -987 14 11 -106.08 957.25 10 27 0 0 2 1 66 2 2 -988 14 12 -101.92 957.25 10 25 0 0 2 1 64 2 0 -989 14 13 -97.76 957.25 10 28 0 0 2 1 67 2 3 -990 14 14 -93.6 957.25 10 30 0 0 2 1 69 2 5 -991 14 15 -89.44 957.25 14 31 0 0 3 1 70 2 6 -992 14 16 -85.28 957.25 14 29 0 0 3 1 68 2 4 -993 14 17 -81.12 957.25 14 27 0 0 3 1 66 2 2 -994 14 18 -76.96 957.25 14 28 0 0 3 1 67 2 3 -995 14 19 -72.8 957.25 14 30 0 0 3 1 69 2 5 -996 14 20 -68.64 957.25 18 29 0 0 4 1 68 2 4 -997 14 21 -64.48 957.25 18 27 0 0 4 1 66 2 2 -998 14 22 -60.32 957.25 18 25 0 0 4 1 64 2 0 -999 14 23 -56.16 957.25 18 26 0 0 4 1 65 2 1 -1000 14 24 -52 957.25 18 28 0 0 4 1 67 2 3 -1001 14 25 -47.84 957.25 22 29 0 0 5 1 68 2 4 -1002 14 26 -43.68 957.25 22 27 0 0 5 1 66 2 2 -1003 14 27 -39.52 957.25 22 25 0 0 5 1 64 2 0 -1004 14 28 -35.36 957.25 22 28 0 0 5 1 67 2 3 -1005 14 29 -31.2 957.25 22 30 0 0 5 1 69 2 5 -1006 14 30 -27.04 957.25 26 31 0 0 6 1 70 2 6 -1007 14 31 -22.88 957.25 26 29 0 0 6 1 68 2 4 -1008 14 32 -18.72 957.25 26 28 0 0 6 1 67 2 3 -1009 14 33 -14.56 957.25 26 30 0 0 6 1 69 2 5 -1010 14 34 -10.4 957.25 30 27 0 0 7 1 66 2 2 -1011 14 35 -6.24 957.25 30 25 0 0 7 1 64 2 0 -1012 14 36 -2.08 957.25 30 23 0 0 7 1 62 1 30 -1013 14 37 2.08 957.25 30 24 0 0 7 1 63 1 31 -1014 14 38 6.24 957.25 30 26 0 0 7 1 65 2 1 -1015 14 39 10.4 957.25 30 28 0 0 7 1 67 2 3 -1016 14 40 14.56 957.25 34 29 0 0 8 1 68 2 4 -1017 14 41 18.72 957.25 34 27 0 0 8 1 66 2 2 -1018 14 42 22.88 957.25 34 30 0 0 8 1 69 2 5 -1019 14 43 27.04 957.25 34 32 0 0 8 1 71 2 7 -1020 14 44 31.2 957.25 38 29 0 0 9 1 68 2 4 -1021 14 45 35.36 957.25 38 27 0 0 9 1 66 2 2 -1022 14 46 39.52 957.25 38 26 0 0 9 1 65 2 1 -1023 14 47 43.68 957.25 38 28 0 0 9 1 67 2 3 -1024 14 48 47.84 957.25 38 30 0 0 9 1 69 2 5 -1025 14 49 52 957.25 42 27 0 0 10 1 66 2 2 -1026 14 50 56.16 957.25 42 25 0 0 10 1 64 2 0 -1027 14 51 60.32 957.25 42 26 0 0 10 1 65 2 1 -1028 14 52 64.48 957.25 42 28 0 0 10 1 67 2 3 -1029 14 53 68.64 957.25 42 30 0 0 10 1 69 2 5 -1030 14 54 72.8 957.25 46 29 0 0 11 1 68 2 4 -1031 14 55 76.96 957.25 46 27 0 0 11 1 66 2 2 -1032 14 56 81.12 957.25 46 28 0 0 11 1 67 2 3 -1033 14 57 85.28 957.25 46 30 0 0 11 1 69 2 5 -1034 14 58 89.44 957.25 46 32 0 0 11 1 71 2 7 -1035 14 59 93.6 957.25 50 29 0 0 12 1 68 2 4 -1036 14 60 97.76 957.25 50 27 0 0 12 1 66 2 2 -1037 14 61 101.92 957.25 50 26 0 0 12 1 65 2 1 -1038 14 62 106.08 957.25 50 28 0 0 12 1 67 2 3 -1039 14 63 110.24 957.25 50 30 0 0 12 1 69 2 5 -1040 14 64 114.4 957.25 54 29 0 0 13 1 68 2 4 -1041 14 65 118.56 957.25 54 27 0 0 13 1 66 2 2 -1042 14 66 122.72 957.25 54 25 0 0 13 1 64 2 0 -1043 14 67 126.88 957.25 54 28 0 0 13 1 67 2 3 -1044 14 68 131.04 957.25 54 30 0 0 13 1 69 2 5 -1045 14 69 135.2 957.25 58 29 0 0 14 1 68 2 4 -1046 14 70 139.36 957.25 58 27 0 0 14 1 66 2 2 -1047 14 71 143.52 957.25 58 26 0 0 14 1 65 2 1 -1048 14 72 147.68 957.25 58 28 0 0 14 1 67 2 3 -1049 14 73 151.84 957.25 58 30 0 0 14 1 69 2 5 -1050 15 0 -151.84 964.75 2 33 0 0 0 1 72 2 8 -1051 15 1 -147.68 964.75 2 31 0 0 0 1 70 2 6 -1052 15 2 -143.52 964.75 2 32 0 0 0 1 71 2 7 -1053 15 3 -139.36 964.75 2 34 0 0 0 1 73 2 9 -1054 15 4 -135.2 964.75 2 36 0 0 0 1 75 2 11 -1055 15 5 -131.04 964.75 6 35 0 0 1 1 74 2 10 -1056 15 6 -126.88 964.75 6 33 0 0 1 1 72 2 8 -1057 15 7 -122.72 964.75 6 31 0 0 1 1 70 2 6 -1058 15 8 -118.56 964.75 6 32 0 0 1 1 71 2 7 -1059 15 9 -114.4 964.75 6 34 0 0 1 1 73 2 9 -1060 15 10 -110.24 964.75 10 33 0 0 2 1 72 2 8 -1061 15 11 -106.08 964.75 10 31 0 0 2 1 70 2 6 -1062 15 12 -101.92 964.75 10 32 0 0 2 1 71 2 7 -1063 15 13 -97.76 964.75 10 34 0 0 2 1 73 2 9 -1064 15 14 -93.6 964.75 10 36 0 0 2 1 75 2 11 -1065 15 15 -89.44 964.75 14 35 0 0 3 1 74 2 10 -1066 15 16 -85.28 964.75 14 33 0 0 3 1 72 2 8 -1067 15 17 -81.12 964.75 14 32 0 0 3 1 71 2 7 -1068 15 18 -76.96 964.75 14 34 0 0 3 1 73 2 9 -1069 15 19 -72.8 964.75 18 35 0 0 4 1 74 2 10 -1070 15 20 -68.64 964.75 18 33 0 0 4 1 72 2 8 -1071 15 21 -64.48 964.75 18 31 0 0 4 1 70 2 6 -1072 15 22 -60.32 964.75 18 30 0 0 4 1 69 2 5 -1073 15 23 -56.16 964.75 18 32 0 0 4 1 71 2 7 -1074 15 24 -52 964.75 18 34 0 0 4 1 73 2 9 -1075 15 25 -47.84 964.75 22 33 0 0 5 1 72 2 8 -1076 15 26 -43.68 964.75 22 31 0 0 5 1 70 2 6 -1077 15 27 -39.52 964.75 22 32 0 0 5 1 71 2 7 -1078 15 28 -35.36 964.75 22 34 0 0 5 1 73 2 9 -1079 15 29 -31.2 964.75 22 36 0 0 5 1 75 2 11 -1080 15 30 -27.04 964.75 26 35 0 0 6 1 74 2 10 -1081 15 31 -22.88 964.75 26 33 0 0 6 1 72 2 8 -1082 15 32 -18.72 964.75 26 32 0 0 6 1 71 2 7 -1083 15 33 -14.56 964.75 26 34 0 0 6 1 73 2 9 -1084 15 34 -10.4 964.75 30 33 0 0 7 1 72 2 8 -1085 15 35 -6.24 964.75 30 31 0 0 7 1 70 2 6 -1086 15 36 -2.08 964.75 30 29 0 0 7 1 68 2 4 -1087 15 37 2.08 964.75 30 30 0 0 7 1 69 2 5 -1088 15 38 6.24 964.75 30 32 0 0 7 1 71 2 7 -1089 15 39 10.4 964.75 30 34 0 0 7 1 73 2 9 -1090 15 40 14.56 964.75 34 33 0 0 8 1 72 2 8 -1091 15 41 18.72 964.75 34 31 0 0 8 1 70 2 6 -1092 15 42 22.88 964.75 34 34 0 0 8 1 73 2 9 -1093 15 43 27.04 964.75 34 36 0 0 8 1 75 2 11 -1094 15 44 31.2 964.75 38 35 0 0 9 1 74 2 10 -1095 15 45 35.36 964.75 38 33 0 0 9 1 72 2 8 -1096 15 46 39.52 964.75 38 31 0 0 9 1 70 2 6 -1097 15 47 43.68 964.75 38 32 0 0 9 1 71 2 7 -1098 15 48 47.84 964.75 38 34 0 0 9 1 73 2 9 -1099 15 49 52 964.75 42 33 0 0 10 1 72 2 8 -1100 15 50 56.16 964.75 42 31 0 0 10 1 70 2 6 -1101 15 51 60.32 964.75 42 29 0 0 10 1 68 2 4 -1102 15 52 64.48 964.75 42 32 0 0 10 1 71 2 7 -1103 15 53 68.64 964.75 42 34 0 0 10 1 73 2 9 -1104 15 54 72.8 964.75 42 36 0 0 10 1 75 2 11 -1105 15 55 76.96 964.75 46 33 0 0 11 1 72 2 8 -1106 15 56 81.12 964.75 46 31 0 0 11 1 70 2 6 -1107 15 57 85.28 964.75 46 34 0 0 11 1 73 2 9 -1108 15 58 89.44 964.75 46 36 0 0 11 1 75 2 11 -1109 15 59 93.6 964.75 50 35 0 0 12 1 74 2 10 -1110 15 60 97.76 964.75 50 33 0 0 12 1 72 2 8 -1111 15 61 101.92 964.75 50 31 0 0 12 1 70 2 6 -1112 15 62 106.08 964.75 50 32 0 0 12 1 71 2 7 -1113 15 63 110.24 964.75 50 34 0 0 12 1 73 2 9 -1114 15 64 114.4 964.75 54 33 0 0 13 1 72 2 8 -1115 15 65 118.56 964.75 54 31 0 0 13 1 70 2 6 -1116 15 66 122.72 964.75 54 32 0 0 13 1 71 2 7 -1117 15 67 126.88 964.75 54 34 0 0 13 1 73 2 9 -1118 15 68 131.04 964.75 54 36 0 0 13 1 75 2 11 -1119 15 69 135.2 964.75 58 35 0 0 14 1 74 2 10 -1120 15 70 139.36 964.75 58 33 0 0 14 1 72 2 8 -1121 15 71 143.52 964.75 58 31 0 0 14 1 70 2 6 -1122 15 72 147.68 964.75 58 32 0 0 14 1 71 2 7 -1123 15 73 151.84 964.75 58 34 0 0 14 1 73 2 9 -1124 16 0 -156 972.25 2 39 0 0 0 1 78 2 14 -1125 16 1 -151.84 972.25 2 37 0 0 0 1 76 2 12 -1126 16 2 -147.68 972.25 2 35 0 0 0 1 74 2 10 -1127 16 3 -143.52 972.25 2 38 0 0 0 1 77 2 13 -1128 16 4 -139.36 972.25 2 40 0 0 0 1 79 2 15 -1129 16 5 -135.2 972.25 6 39 0 0 1 1 78 2 14 -1130 16 6 -131.04 972.25 6 37 0 0 1 1 76 2 12 -1131 16 7 -126.88 972.25 6 36 0 0 1 1 75 2 11 -1132 16 8 -122.72 972.25 6 38 0 0 1 1 77 2 13 -1133 16 9 -118.56 972.25 6 40 0 0 1 1 79 2 15 -1134 16 10 -114.4 972.25 10 39 0 0 2 1 78 2 14 -1135 16 11 -110.24 972.25 10 37 0 0 2 1 76 2 12 -1136 16 12 -106.08 972.25 10 35 0 0 2 1 74 2 10 -1137 16 13 -101.92 972.25 10 38 0 0 2 1 77 2 13 -1138 16 14 -97.76 972.25 10 40 0 0 2 1 79 2 15 -1139 16 15 -93.6 972.25 14 39 0 0 3 1 78 2 14 -1140 16 16 -89.44 972.25 14 37 0 0 3 1 76 2 12 -1141 16 17 -85.28 972.25 14 36 0 0 3 1 75 2 11 -1142 16 18 -81.12 972.25 14 38 0 0 3 1 77 2 13 -1143 16 19 -76.96 972.25 14 40 0 0 3 1 79 2 15 -1144 16 20 -72.8 972.25 18 39 0 0 4 1 78 2 14 -1145 16 21 -68.64 972.25 18 37 0 0 4 1 76 2 12 -1146 16 22 -64.48 972.25 18 36 0 0 4 1 75 2 11 -1147 16 23 -60.32 972.25 18 38 0 0 4 1 77 2 13 -1148 16 24 -56.16 972.25 18 40 0 0 4 1 79 2 15 -1149 16 25 -52 972.25 22 39 0 0 5 1 78 2 14 -1150 16 26 -47.84 972.25 22 37 0 0 5 1 76 2 12 -1151 16 27 -43.68 972.25 22 35 0 0 5 1 74 2 10 -1152 16 28 -39.52 972.25 22 38 0 0 5 1 77 2 13 -1153 16 29 -35.36 972.25 22 40 0 0 5 1 79 2 15 -1154 16 30 -31.2 972.25 26 39 0 0 6 1 78 2 14 -1155 16 31 -27.04 972.25 26 37 0 0 6 1 76 2 12 -1156 16 32 -22.88 972.25 26 36 0 0 6 1 75 2 11 -1157 16 33 -18.72 972.25 26 38 0 0 6 1 77 2 13 -1158 16 34 -14.56 972.25 26 40 0 0 6 1 79 2 15 -1159 16 35 -10.4 972.25 30 39 0 0 7 1 78 2 14 -1160 16 36 -6.24 972.25 30 37 0 0 7 1 76 2 12 -1161 16 37 -2.08 972.25 30 35 0 0 7 1 74 2 10 -1162 16 38 2.08 972.25 30 36 0 0 7 1 75 2 11 -1163 16 39 6.24 972.25 30 38 0 0 7 1 77 2 13 -1164 16 40 10.4 972.25 30 40 0 0 7 1 79 2 15 -1165 16 41 14.56 972.25 34 39 0 0 8 1 78 2 14 -1166 16 42 18.72 972.25 34 37 0 0 8 1 76 2 12 -1167 16 43 22.88 972.25 34 35 0 0 8 1 74 2 10 -1168 16 44 27.04 972.25 34 38 0 0 8 1 77 2 13 -1169 16 45 31.2 972.25 34 40 0 0 8 1 79 2 15 -1170 16 46 35.36 972.25 38 39 0 0 9 1 78 2 14 -1171 16 47 39.52 972.25 38 37 0 0 9 1 76 2 12 -1172 16 48 43.68 972.25 38 36 0 0 9 1 75 2 11 -1173 16 49 47.84 972.25 38 38 0 0 9 1 77 2 13 -1174 16 50 52 972.25 38 40 0 0 9 1 79 2 15 -1175 16 51 56.16 972.25 42 39 0 0 10 1 78 2 14 -1176 16 52 60.32 972.25 42 37 0 0 10 1 76 2 12 -1177 16 53 64.48 972.25 42 35 0 0 10 1 74 2 10 -1178 16 54 68.64 972.25 42 38 0 0 10 1 77 2 13 -1179 16 55 72.8 972.25 42 40 0 0 10 1 79 2 15 -1180 16 56 76.96 972.25 46 39 0 0 11 1 78 2 14 -1181 16 57 81.12 972.25 46 37 0 0 11 1 76 2 12 -1182 16 58 85.28 972.25 46 35 0 0 11 1 74 2 10 -1183 16 59 89.44 972.25 46 38 0 0 11 1 77 2 13 -1184 16 60 93.6 972.25 46 40 0 0 11 1 79 2 15 -1185 16 61 97.76 972.25 50 39 0 0 12 1 78 2 14 -1186 16 62 101.92 972.25 50 37 0 0 12 1 76 2 12 -1187 16 63 106.08 972.25 50 36 0 0 12 1 75 2 11 -1188 16 64 110.24 972.25 50 38 0 0 12 1 77 2 13 -1189 16 65 114.4 972.25 50 40 0 0 12 1 79 2 15 -1190 16 66 118.56 972.25 54 39 0 0 13 1 78 2 14 -1191 16 67 122.72 972.25 54 37 0 0 13 1 76 2 12 -1192 16 68 126.88 972.25 54 35 0 0 13 1 74 2 10 -1193 16 69 131.04 972.25 54 38 0 0 13 1 77 2 13 -1194 16 70 135.2 972.25 54 40 0 0 13 1 79 2 15 -1195 16 71 139.36 972.25 58 39 0 0 14 1 78 2 14 -1196 16 72 143.52 972.25 58 37 0 0 14 1 76 2 12 -1197 16 73 147.68 972.25 58 36 0 0 14 1 75 2 11 -1198 16 74 151.84 972.25 58 38 0 0 14 1 77 2 13 -1199 16 75 156 972.25 58 40 0 0 14 1 79 2 15 -1200 17 0 -157.5 979.75 3 3 0 1 0 2 82 2 18 -1201 17 1 -153.3 979.75 3 1 0 1 0 2 80 2 16 -1202 17 2 -149.1 979.75 3 2 0 1 0 2 81 2 17 -1203 17 3 -144.9 979.75 3 4 0 1 0 2 83 2 19 -1204 17 4 -140.7 979.75 3 6 0 1 0 2 85 2 21 -1205 17 5 -136.5 979.75 7 5 0 1 1 2 84 2 20 -1206 17 6 -132.3 979.75 7 3 0 1 1 2 82 2 18 -1207 17 7 -128.1 979.75 7 1 0 1 1 2 80 2 16 -1208 17 8 -123.9 979.75 7 2 0 1 1 2 81 2 17 -1209 17 9 -119.7 979.75 7 4 0 1 1 2 83 2 19 -1210 17 10 -115.5 979.75 11 5 0 1 2 2 84 2 20 -1211 17 11 -111.3 979.75 11 3 0 1 2 2 82 2 18 -1212 17 12 -107.1 979.75 11 1 0 1 2 2 80 2 16 -1213 17 13 -102.9 979.75 11 2 0 1 2 2 81 2 17 -1214 17 14 -98.7 979.75 11 4 0 1 2 2 83 2 19 -1215 17 15 -94.5 979.75 15 5 0 1 3 2 84 2 20 -1216 17 16 -90.3 979.75 15 3 0 1 3 2 82 2 18 -1217 17 17 -86.1 979.75 15 1 0 1 3 2 80 2 16 -1218 17 18 -81.9 979.75 15 2 0 1 3 2 81 2 17 -1219 17 19 -77.7 979.75 15 4 0 1 3 2 83 2 19 -1220 17 20 -73.5 979.75 19 3 0 1 4 2 82 2 18 -1221 17 21 -69.3 979.75 19 1 0 1 4 2 80 2 16 -1222 17 22 -65.1 979.75 19 2 0 1 4 2 81 2 17 -1223 17 23 -60.9 979.75 19 4 0 1 4 2 83 2 19 -1224 17 24 -56.7 979.75 19 6 0 1 4 2 85 2 21 -1225 17 25 -52.5 979.75 23 3 0 1 5 2 82 2 18 -1226 17 26 -48.3 979.75 23 1 0 1 5 2 80 2 16 -1227 17 27 -44.1 979.75 23 2 0 1 5 2 81 2 17 -1228 17 28 -39.9 979.75 23 4 0 1 5 2 83 2 19 -1229 17 29 -35.7 979.75 23 6 0 1 5 2 85 2 21 -1230 17 30 -31.5 979.75 27 5 0 1 6 2 84 2 20 -1231 17 31 -27.3 979.75 27 3 0 1 6 2 82 2 18 -1232 17 32 -23.1 979.75 27 1 0 1 6 2 80 2 16 -1233 17 33 -18.9 979.75 27 2 0 1 6 2 81 2 17 -1234 17 34 -14.7 979.75 27 4 0 1 6 2 83 2 19 -1235 17 35 -10.5 979.75 27 6 0 1 6 2 85 2 21 -1236 17 36 -6.3 979.75 31 3 0 1 7 2 82 2 18 -1237 17 37 -2.1 979.75 31 1 0 1 7 2 80 2 16 -1238 17 38 2.1 979.75 31 2 0 1 7 2 81 2 17 -1239 17 39 6.3 979.75 31 4 0 1 7 2 83 2 19 -1240 17 40 10.5 979.75 35 5 0 1 8 2 84 2 20 -1241 17 41 14.7 979.75 35 3 0 1 8 2 82 2 18 -1242 17 42 18.9 979.75 35 1 0 1 8 2 80 2 16 -1243 17 43 23.1 979.75 35 2 0 1 8 2 81 2 17 -1244 17 44 27.3 979.75 35 4 0 1 8 2 83 2 19 -1245 17 45 31.5 979.75 35 6 0 1 8 2 85 2 21 -1246 17 46 35.7 979.75 39 5 0 1 9 2 84 2 20 -1247 17 47 39.9 979.75 39 3 0 1 9 2 82 2 18 -1248 17 48 44.1 979.75 39 1 0 1 9 2 80 2 16 -1249 17 49 48.3 979.75 39 2 0 1 9 2 81 2 17 -1250 17 50 52.5 979.75 39 4 0 1 9 2 83 2 19 -1251 17 51 56.7 979.75 43 5 0 1 10 2 84 2 20 -1252 17 52 60.9 979.75 43 3 0 1 10 2 82 2 18 -1253 17 53 65.1 979.75 43 1 0 1 10 2 80 2 16 -1254 17 54 69.3 979.75 43 2 0 1 10 2 81 2 17 -1255 17 55 73.5 979.75 43 4 0 1 10 2 83 2 19 -1256 17 56 77.7 979.75 47 3 0 1 11 2 82 2 18 -1257 17 57 81.9 979.75 47 1 0 1 11 2 80 2 16 -1258 17 58 86.1 979.75 47 2 0 1 11 2 81 2 17 -1259 17 59 90.3 979.75 47 4 0 1 11 2 83 2 19 -1260 17 60 94.5 979.75 47 6 0 1 11 2 85 2 21 -1261 17 61 98.7 979.75 51 3 0 1 12 2 82 2 18 -1262 17 62 102.9 979.75 51 1 0 1 12 2 80 2 16 -1263 17 63 107.1 979.75 51 2 0 1 12 2 81 2 17 -1264 17 64 111.3 979.75 51 4 0 1 12 2 83 2 19 -1265 17 65 115.5 979.75 51 6 0 1 12 2 85 2 21 -1266 17 66 119.7 979.75 55 3 0 1 13 2 82 2 18 -1267 17 67 123.9 979.75 55 1 0 1 13 2 80 2 16 -1268 17 68 128.1 979.75 55 2 0 1 13 2 81 2 17 -1269 17 69 132.3 979.75 55 4 0 1 13 2 83 2 19 -1270 17 70 136.5 979.75 55 6 0 1 13 2 85 2 21 -1271 17 71 140.7 979.75 59 5 0 1 14 2 84 2 20 -1272 17 72 144.9 979.75 59 3 0 1 14 2 82 2 18 -1273 17 73 149.1 979.75 59 1 0 1 14 2 80 2 16 -1274 17 74 153.3 979.75 59 2 0 1 14 2 81 2 17 -1275 17 75 157.5 979.75 59 4 0 1 14 2 83 2 19 -1276 18 0 -157.5 987.25 3 9 0 1 0 2 88 2 24 -1277 18 1 -153.3 987.25 3 7 0 1 0 2 86 2 22 -1278 18 2 -149.1 987.25 3 5 0 1 0 2 84 2 20 -1279 18 3 -144.9 987.25 3 8 0 1 0 2 87 2 23 -1280 18 4 -140.7 987.25 3 10 0 1 0 2 89 2 25 -1281 18 5 -136.5 987.25 7 9 0 1 1 2 88 2 24 -1282 18 6 -132.3 987.25 7 7 0 1 1 2 86 2 22 -1283 18 7 -128.1 987.25 7 6 0 1 1 2 85 2 21 -1284 18 8 -123.9 987.25 7 8 0 1 1 2 87 2 23 -1285 18 9 -119.7 987.25 7 10 0 1 1 2 89 2 25 -1286 18 10 -115.5 987.25 11 9 0 1 2 2 88 2 24 -1287 18 11 -111.3 987.25 11 7 0 1 2 2 86 2 22 -1288 18 12 -107.1 987.25 11 6 0 1 2 2 85 2 21 -1289 18 13 -102.9 987.25 11 8 0 1 2 2 87 2 23 -1290 18 14 -98.7 987.25 11 10 0 1 2 2 89 2 25 -1291 18 15 -94.5 987.25 15 9 0 1 3 2 88 2 24 -1292 18 16 -90.3 987.25 15 7 0 1 3 2 86 2 22 -1293 18 17 -86.1 987.25 15 6 0 1 3 2 85 2 21 -1294 18 18 -81.9 987.25 15 8 0 1 3 2 87 2 23 -1295 18 19 -77.7 987.25 15 10 0 1 3 2 89 2 25 -1296 18 20 -73.5 987.25 19 9 0 1 4 2 88 2 24 -1297 18 21 -69.3 987.25 19 7 0 1 4 2 86 2 22 -1298 18 22 -65.1 987.25 19 5 0 1 4 2 84 2 20 -1299 18 23 -60.9 987.25 19 8 0 1 4 2 87 2 23 -1300 18 24 -56.7 987.25 19 10 0 1 4 2 89 2 25 -1301 18 25 -52.5 987.25 23 9 0 1 5 2 88 2 24 -1302 18 26 -48.3 987.25 23 7 0 1 5 2 86 2 22 -1303 18 27 -44.1 987.25 23 5 0 1 5 2 84 2 20 -1304 18 28 -39.9 987.25 23 8 0 1 5 2 87 2 23 -1305 18 29 -35.7 987.25 23 10 0 1 5 2 89 2 25 -1306 18 30 -31.5 987.25 27 11 0 1 6 2 90 2 26 -1307 18 31 -27.3 987.25 27 9 0 1 6 2 88 2 24 -1308 18 32 -23.1 987.25 27 7 0 1 6 2 86 2 22 -1309 18 33 -18.9 987.25 27 8 0 1 6 2 87 2 23 -1310 18 34 -14.7 987.25 27 10 0 1 6 2 89 2 25 -1311 18 35 -10.5 987.25 27 12 0 1 6 2 91 2 27 -1312 18 36 -6.3 987.25 31 7 0 1 7 2 86 2 22 -1313 18 37 -2.1 987.25 31 5 0 1 7 2 84 2 20 -1314 18 38 2.1 987.25 31 6 0 1 7 2 85 2 21 -1315 18 39 6.3 987.25 31 8 0 1 7 2 87 2 23 -1316 18 40 10.5 987.25 35 11 0 1 8 2 90 2 26 -1317 18 41 14.7 987.25 35 9 0 1 8 2 88 2 24 -1318 18 42 18.9 987.25 35 7 0 1 8 2 86 2 22 -1319 18 43 23.1 987.25 35 8 0 1 8 2 87 2 23 -1320 18 44 27.3 987.25 35 10 0 1 8 2 89 2 25 -1321 18 45 31.5 987.25 35 12 0 1 8 2 91 2 27 -1322 18 46 35.7 987.25 39 9 0 1 9 2 88 2 24 -1323 18 47 39.9 987.25 39 7 0 1 9 2 86 2 22 -1324 18 48 44.1 987.25 39 6 0 1 9 2 85 2 21 -1325 18 49 48.3 987.25 39 8 0 1 9 2 87 2 23 -1326 18 50 52.5 987.25 39 10 0 1 9 2 89 2 25 -1327 18 51 56.7 987.25 43 9 0 1 10 2 88 2 24 -1328 18 52 60.9 987.25 43 7 0 1 10 2 86 2 22 -1329 18 53 65.1 987.25 43 6 0 1 10 2 85 2 21 -1330 18 54 69.3 987.25 43 8 0 1 10 2 87 2 23 -1331 18 55 73.5 987.25 43 10 0 1 10 2 89 2 25 -1332 18 56 77.7 987.25 47 9 0 1 11 2 88 2 24 -1333 18 57 81.9 987.25 47 7 0 1 11 2 86 2 22 -1334 18 58 86.1 987.25 47 5 0 1 11 2 84 2 20 -1335 18 59 90.3 987.25 47 8 0 1 11 2 87 2 23 -1336 18 60 94.5 987.25 47 10 0 1 11 2 89 2 25 -1337 18 61 98.7 987.25 51 9 0 1 12 2 88 2 24 -1338 18 62 102.9 987.25 51 7 0 1 12 2 86 2 22 -1339 18 63 107.1 987.25 51 5 0 1 12 2 84 2 20 -1340 18 64 111.3 987.25 51 8 0 1 12 2 87 2 23 -1341 18 65 115.5 987.25 51 10 0 1 12 2 89 2 25 -1342 18 66 119.7 987.25 55 9 0 1 13 2 88 2 24 -1343 18 67 123.9 987.25 55 7 0 1 13 2 86 2 22 -1344 18 68 128.1 987.25 55 5 0 1 13 2 84 2 20 -1345 18 69 132.3 987.25 55 8 0 1 13 2 87 2 23 -1346 18 70 136.5 987.25 55 10 0 1 13 2 89 2 25 -1347 18 71 140.7 987.25 59 9 0 1 14 2 88 2 24 -1348 18 72 144.9 987.25 59 7 0 1 14 2 86 2 22 -1349 18 73 149.1 987.25 59 6 0 1 14 2 85 2 21 -1350 18 74 153.3 987.25 59 8 0 1 14 2 87 2 23 -1351 18 75 157.5 987.25 59 10 0 1 14 2 89 2 25 -1352 19 0 -157.5 994.75 3 13 0 1 0 2 92 2 28 -1353 19 1 -153.3 994.75 3 11 0 1 0 2 90 2 26 -1354 19 2 -149.1 994.75 3 12 0 1 0 2 91 2 27 -1355 19 3 -144.9 994.75 3 14 0 1 0 2 93 2 29 -1356 19 4 -140.7 994.75 3 16 0 1 0 2 95 2 31 -1357 19 5 -136.5 994.75 7 13 0 1 1 2 92 2 28 -1358 19 6 -132.3 994.75 7 11 0 1 1 2 90 2 26 -1359 19 7 -128.1 994.75 7 12 0 1 1 2 91 2 27 -1360 19 8 -123.9 994.75 7 14 0 1 1 2 93 2 29 -1361 19 9 -119.7 994.75 7 16 0 1 1 2 95 2 31 -1362 19 10 -115.5 994.75 11 15 0 1 2 2 94 2 30 -1363 19 11 -111.3 994.75 11 13 0 1 2 2 92 2 28 -1364 19 12 -107.1 994.75 11 11 0 1 2 2 90 2 26 -1365 19 13 -102.9 994.75 11 12 0 1 2 2 91 2 27 -1366 19 14 -98.7 994.75 11 14 0 1 2 2 93 2 29 -1367 19 15 -94.5 994.75 15 15 0 1 3 2 94 2 30 -1368 19 16 -90.3 994.75 15 13 0 1 3 2 92 2 28 -1369 19 17 -86.1 994.75 15 11 0 1 3 2 90 2 26 -1370 19 18 -81.9 994.75 15 12 0 1 3 2 91 2 27 -1371 19 19 -77.7 994.75 15 14 0 1 3 2 93 2 29 -1372 19 20 -73.5 994.75 19 13 0 1 4 2 92 2 28 -1373 19 21 -69.3 994.75 19 11 0 1 4 2 90 2 26 -1374 19 22 -65.1 994.75 19 12 0 1 4 2 91 2 27 -1375 19 23 -60.9 994.75 19 14 0 1 4 2 93 2 29 -1376 19 24 -56.7 994.75 19 16 0 1 4 2 95 2 31 -1377 19 25 -52.5 994.75 23 13 0 1 5 2 92 2 28 -1378 19 26 -48.3 994.75 23 11 0 1 5 2 90 2 26 -1379 19 27 -44.1 994.75 23 12 0 1 5 2 91 2 27 -1380 19 28 -39.9 994.75 23 14 0 1 5 2 93 2 29 -1381 19 29 -35.7 994.75 23 16 0 1 5 2 95 2 31 -1382 19 30 -31.5 994.75 27 17 0 1 6 2 96 3 0 -1383 19 31 -27.3 994.75 27 15 0 1 6 2 94 2 30 -1384 19 32 -23.1 994.75 27 13 0 1 6 2 92 2 28 -1385 19 33 -18.9 994.75 27 14 0 1 6 2 93 2 29 -1386 19 34 -14.7 994.75 27 16 0 1 6 2 95 2 31 -1387 19 35 -10.5 994.75 27 18 0 1 6 2 97 3 1 -1388 19 36 -6.3 994.75 31 11 0 1 7 2 90 2 26 -1389 19 37 -2.1 994.75 31 9 0 1 7 2 88 2 24 -1390 19 38 2.1 994.75 31 10 0 1 7 2 89 2 25 -1391 19 39 6.3 994.75 31 12 0 1 7 2 91 2 27 -1392 19 40 10.5 994.75 35 17 0 1 8 2 96 3 0 -1393 19 41 14.7 994.75 35 15 0 1 8 2 94 2 30 -1394 19 42 18.9 994.75 35 13 0 1 8 2 92 2 28 -1395 19 43 23.1 994.75 35 14 0 1 8 2 93 2 29 -1396 19 44 27.3 994.75 35 16 0 1 8 2 95 2 31 -1397 19 45 31.5 994.75 35 18 0 1 8 2 97 3 1 -1398 19 46 35.7 994.75 39 15 0 1 9 2 94 2 30 -1399 19 47 39.9 994.75 39 13 0 1 9 2 92 2 28 -1400 19 48 44.1 994.75 39 11 0 1 9 2 90 2 26 -1401 19 49 48.3 994.75 39 12 0 1 9 2 91 2 27 -1402 19 50 52.5 994.75 39 14 0 1 9 2 93 2 29 -1403 19 51 56.7 994.75 43 15 0 1 10 2 94 2 30 -1404 19 52 60.9 994.75 43 13 0 1 10 2 92 2 28 -1405 19 53 65.1 994.75 43 11 0 1 10 2 90 2 26 -1406 19 54 69.3 994.75 43 12 0 1 10 2 91 2 27 -1407 19 55 73.5 994.75 43 14 0 1 10 2 93 2 29 -1408 19 56 77.7 994.75 47 13 0 1 11 2 92 2 28 -1409 19 57 81.9 994.75 47 11 0 1 11 2 90 2 26 -1410 19 58 86.1 994.75 47 12 0 1 11 2 91 2 27 -1411 19 59 90.3 994.75 47 14 0 1 11 2 93 2 29 -1412 19 60 94.5 994.75 47 16 0 1 11 2 95 2 31 -1413 19 61 98.7 994.75 51 13 0 1 12 2 92 2 28 -1414 19 62 102.9 994.75 51 11 0 1 12 2 90 2 26 -1415 19 63 107.1 994.75 51 12 0 1 12 2 91 2 27 -1416 19 64 111.3 994.75 51 14 0 1 12 2 93 2 29 -1417 19 65 115.5 994.75 51 16 0 1 12 2 95 2 31 -1418 19 66 119.7 994.75 55 15 0 1 13 2 94 2 30 -1419 19 67 123.9 994.75 55 13 0 1 13 2 92 2 28 -1420 19 68 128.1 994.75 55 11 0 1 13 2 90 2 26 -1421 19 69 132.3 994.75 55 12 0 1 13 2 91 2 27 -1422 19 70 136.5 994.75 55 14 0 1 13 2 93 2 29 -1423 19 71 140.7 994.75 59 15 0 1 14 2 94 2 30 -1424 19 72 144.9 994.75 59 13 0 1 14 2 92 2 28 -1425 19 73 149.1 994.75 59 11 0 1 14 2 90 2 26 -1426 19 74 153.3 994.75 59 12 0 1 14 2 91 2 27 -1427 19 75 157.5 994.75 59 14 0 1 14 2 93 2 29 -1428 20 0 -161.7 1002.25 3 19 0 1 0 2 98 3 2 -1429 20 1 -157.5 1002.25 3 17 0 1 0 2 96 3 0 -1430 20 2 -153.3 1002.25 3 15 0 1 0 2 94 2 30 -1431 20 3 -149.1 1002.25 3 18 0 1 0 2 97 3 1 -1432 20 4 -144.9 1002.25 3 20 0 1 0 2 99 3 3 -1433 20 5 -140.7 1002.25 7 19 0 1 1 2 98 3 2 -1434 20 6 -136.5 1002.25 7 17 0 1 1 2 96 3 0 -1435 20 7 -132.3 1002.25 7 15 0 1 1 2 94 2 30 -1436 20 8 -128.1 1002.25 7 18 0 1 1 2 97 3 1 -1437 20 9 -123.9 1002.25 7 20 0 1 1 2 99 3 3 -1438 20 10 -119.7 1002.25 7 22 0 1 1 2 101 3 5 -1439 20 11 -115.5 1002.25 11 19 0 1 2 2 98 3 2 -1440 20 12 -111.3 1002.25 11 17 0 1 2 2 96 3 0 -1441 20 13 -107.1 1002.25 11 16 0 1 2 2 95 2 31 -1442 20 14 -102.9 1002.25 11 18 0 1 2 2 97 3 1 -1443 20 15 -98.7 1002.25 11 20 0 1 2 2 99 3 3 -1444 20 16 -94.5 1002.25 15 19 0 1 3 2 98 3 2 -1445 20 17 -90.3 1002.25 15 17 0 1 3 2 96 3 0 -1446 20 18 -86.1 1002.25 15 16 0 1 3 2 95 2 31 -1447 20 19 -81.9 1002.25 15 18 0 1 3 2 97 3 1 -1448 20 20 -77.7 1002.25 15 20 0 1 3 2 99 3 3 -1449 20 21 -73.5 1002.25 19 19 0 1 4 2 98 3 2 -1450 20 22 -69.3 1002.25 19 17 0 1 4 2 96 3 0 -1451 20 23 -65.1 1002.25 19 15 0 1 4 2 94 2 30 -1452 20 24 -60.9 1002.25 19 18 0 1 4 2 97 3 1 -1453 20 25 -56.7 1002.25 19 20 0 1 4 2 99 3 3 -1454 20 26 -52.5 1002.25 23 19 0 1 5 2 98 3 2 -1455 20 27 -48.3 1002.25 23 17 0 1 5 2 96 3 0 -1456 20 28 -44.1 1002.25 23 15 0 1 5 2 94 2 30 -1457 20 29 -39.9 1002.25 23 18 0 1 5 2 97 3 1 -1458 20 30 -35.7 1002.25 23 20 0 1 5 2 99 3 3 -1459 20 31 -31.5 1002.25 27 23 0 1 6 2 102 3 6 -1460 20 32 -27.3 1002.25 27 21 0 1 6 2 100 3 4 -1461 20 33 -23.1 1002.25 27 19 0 1 6 2 98 3 2 -1462 20 34 -18.9 1002.25 27 20 0 1 6 2 99 3 3 -1463 20 35 -14.7 1002.25 27 22 0 1 6 2 101 3 5 -1464 20 36 -10.5 1002.25 27 24 0 1 6 2 103 3 7 -1465 20 37 -6.3 1002.25 31 15 0 1 7 2 94 2 30 -1466 20 38 -2.1 1002.25 31 13 0 1 7 2 92 2 28 -1467 20 39 2.1 1002.25 31 14 0 1 7 2 93 2 29 -1468 20 40 6.3 1002.25 31 16 0 1 7 2 95 2 31 -1469 20 41 10.5 1002.25 35 23 0 1 8 2 102 3 6 -1470 20 42 14.7 1002.25 35 21 0 1 8 2 100 3 4 -1471 20 43 18.9 1002.25 35 19 0 1 8 2 98 3 2 -1472 20 44 23.1 1002.25 35 20 0 1 8 2 99 3 3 -1473 20 45 27.3 1002.25 35 22 0 1 8 2 101 3 5 -1474 20 46 31.5 1002.25 35 24 0 1 8 2 103 3 7 -1475 20 47 35.7 1002.25 39 19 0 1 9 2 98 3 2 -1476 20 48 39.9 1002.25 39 17 0 1 9 2 96 3 0 -1477 20 49 44.1 1002.25 39 16 0 1 9 2 95 2 31 -1478 20 50 48.3 1002.25 39 18 0 1 9 2 97 3 1 -1479 20 51 52.5 1002.25 39 20 0 1 9 2 99 3 3 -1480 20 52 56.7 1002.25 43 19 0 1 10 2 98 3 2 -1481 20 53 60.9 1002.25 43 17 0 1 10 2 96 3 0 -1482 20 54 65.1 1002.25 43 16 0 1 10 2 95 2 31 -1483 20 55 69.3 1002.25 43 18 0 1 10 2 97 3 1 -1484 20 56 73.5 1002.25 43 20 0 1 10 2 99 3 3 -1485 20 57 77.7 1002.25 47 19 0 1 11 2 98 3 2 -1486 20 58 81.9 1002.25 47 17 0 1 11 2 96 3 0 -1487 20 59 86.1 1002.25 47 15 0 1 11 2 94 2 30 -1488 20 60 90.3 1002.25 47 18 0 1 11 2 97 3 1 -1489 20 61 94.5 1002.25 47 20 0 1 11 2 99 3 3 -1490 20 62 98.7 1002.25 51 19 0 1 12 2 98 3 2 -1491 20 63 102.9 1002.25 51 17 0 1 12 2 96 3 0 -1492 20 64 107.1 1002.25 51 15 0 1 12 2 94 2 30 -1493 20 65 111.3 1002.25 51 18 0 1 12 2 97 3 1 -1494 20 66 115.5 1002.25 51 20 0 1 12 2 99 3 3 -1495 20 67 119.7 1002.25 55 21 0 1 13 2 100 3 4 -1496 20 68 123.9 1002.25 55 19 0 1 13 2 98 3 2 -1497 20 69 128.1 1002.25 55 17 0 1 13 2 96 3 0 -1498 20 70 132.3 1002.25 55 16 0 1 13 2 95 2 31 -1499 20 71 136.5 1002.25 55 18 0 1 13 2 97 3 1 -1500 20 72 140.7 1002.25 55 20 0 1 13 2 99 3 3 -1501 20 73 144.9 1002.25 59 19 0 1 14 2 98 3 2 -1502 20 74 149.1 1002.25 59 17 0 1 14 2 96 3 0 -1503 20 75 153.3 1002.25 59 16 0 1 14 2 95 2 31 -1504 20 76 157.5 1002.25 59 18 0 1 14 2 97 3 1 -1505 20 77 161.7 1002.25 59 20 0 1 14 2 99 3 3 -1506 21 0 -161.7 1009.75 3 25 0 1 0 2 104 3 8 -1507 21 1 -157.5 1009.75 3 23 0 1 0 2 102 3 6 -1508 21 2 -153.3 1009.75 3 21 0 1 0 2 100 3 4 -1509 21 3 -149.1 1009.75 3 22 0 1 0 2 101 3 5 -1510 21 4 -144.9 1009.75 3 24 0 1 0 2 103 3 7 -1511 21 5 -140.7 1009.75 7 25 0 1 1 2 104 3 8 -1512 21 6 -136.5 1009.75 7 23 0 1 1 2 102 3 6 -1513 21 7 -132.3 1009.75 7 21 0 1 1 2 100 3 4 -1514 21 8 -128.1 1009.75 7 24 0 1 1 2 103 3 7 -1515 21 9 -123.9 1009.75 7 26 0 1 1 2 105 3 9 -1516 21 10 -119.7 1009.75 11 25 0 1 2 2 104 3 8 -1517 21 11 -115.5 1009.75 11 23 0 1 2 2 102 3 6 -1518 21 12 -111.3 1009.75 11 21 0 1 2 2 100 3 4 -1519 21 13 -107.1 1009.75 11 22 0 1 2 2 101 3 5 -1520 21 14 -102.9 1009.75 11 24 0 1 2 2 103 3 7 -1521 21 15 -98.7 1009.75 11 26 0 1 2 2 105 3 9 -1522 21 16 -94.5 1009.75 15 25 0 1 3 2 104 3 8 -1523 21 17 -90.3 1009.75 15 23 0 1 3 2 102 3 6 -1524 21 18 -86.1 1009.75 15 21 0 1 3 2 100 3 4 -1525 21 19 -81.9 1009.75 15 22 0 1 3 2 101 3 5 -1526 21 20 -77.7 1009.75 15 24 0 1 3 2 103 3 7 -1527 21 21 -73.5 1009.75 19 23 0 1 4 2 102 3 6 -1528 21 22 -69.3 1009.75 19 21 0 1 4 2 100 3 4 -1529 21 23 -65.1 1009.75 19 22 0 1 4 2 101 3 5 -1530 21 24 -60.9 1009.75 19 24 0 1 4 2 103 3 7 -1531 21 25 -56.7 1009.75 19 26 0 1 4 2 105 3 9 -1532 21 26 -52.5 1009.75 23 23 0 1 5 2 102 3 6 -1533 21 27 -48.3 1009.75 23 21 0 1 5 2 100 3 4 -1534 21 28 -44.1 1009.75 23 22 0 1 5 2 101 3 5 -1535 21 29 -39.9 1009.75 23 24 0 1 5 2 103 3 7 -1536 21 30 -35.7 1009.75 23 26 0 1 5 2 105 3 9 -1537 21 31 -31.5 1009.75 27 29 0 1 6 2 108 3 12 -1538 21 32 -27.3 1009.75 27 27 0 1 6 2 106 3 10 -1539 21 33 -23.1 1009.75 27 25 0 1 6 2 104 3 8 -1540 21 34 -18.9 1009.75 27 26 0 1 6 2 105 3 9 -1541 21 35 -14.7 1009.75 27 28 0 1 6 2 107 3 11 -1542 21 36 -10.5 1009.75 27 30 0 1 6 2 109 3 13 -1543 21 37 -6.3 1009.75 31 19 0 1 7 2 98 3 2 -1544 21 38 -2.1 1009.75 31 17 0 1 7 2 96 3 0 -1545 21 39 2.1 1009.75 31 18 0 1 7 2 97 3 1 -1546 21 40 6.3 1009.75 31 20 0 1 7 2 99 3 3 -1547 21 41 10.5 1009.75 35 29 0 1 8 2 108 3 12 -1548 21 42 14.7 1009.75 35 27 0 1 8 2 106 3 10 -1549 21 43 18.9 1009.75 35 25 0 1 8 2 104 3 8 -1550 21 44 23.1 1009.75 35 26 0 1 8 2 105 3 9 -1551 21 45 27.3 1009.75 35 28 0 1 8 2 107 3 11 -1552 21 46 31.5 1009.75 35 30 0 1 8 2 109 3 13 -1553 21 47 35.7 1009.75 39 25 0 1 9 2 104 3 8 -1554 21 48 39.9 1009.75 39 23 0 1 9 2 102 3 6 -1555 21 49 44.1 1009.75 39 21 0 1 9 2 100 3 4 -1556 21 50 48.3 1009.75 39 22 0 1 9 2 101 3 5 -1557 21 51 52.5 1009.75 39 24 0 1 9 2 103 3 7 -1558 21 52 56.7 1009.75 43 25 0 1 10 2 104 3 8 -1559 21 53 60.9 1009.75 43 23 0 1 10 2 102 3 6 -1560 21 54 65.1 1009.75 43 21 0 1 10 2 100 3 4 -1561 21 55 69.3 1009.75 43 22 0 1 10 2 101 3 5 -1562 21 56 73.5 1009.75 43 24 0 1 10 2 103 3 7 -1563 21 57 77.7 1009.75 47 23 0 1 11 2 102 3 6 -1564 21 58 81.9 1009.75 47 21 0 1 11 2 100 3 4 -1565 21 59 86.1 1009.75 47 22 0 1 11 2 101 3 5 -1566 21 60 90.3 1009.75 47 24 0 1 11 2 103 3 7 -1567 21 61 94.5 1009.75 47 26 0 1 11 2 105 3 9 -1568 21 62 98.7 1009.75 51 25 0 1 12 2 104 3 8 -1569 21 63 102.9 1009.75 51 23 0 1 12 2 102 3 6 -1570 21 64 107.1 1009.75 51 21 0 1 12 2 100 3 4 -1571 21 65 111.3 1009.75 51 22 0 1 12 2 101 3 5 -1572 21 66 115.5 1009.75 51 24 0 1 12 2 103 3 7 -1573 21 67 119.7 1009.75 51 26 0 1 12 2 105 3 9 -1574 21 68 123.9 1009.75 55 25 0 1 13 2 104 3 8 -1575 21 69 128.1 1009.75 55 23 0 1 13 2 102 3 6 -1576 21 70 132.3 1009.75 55 22 0 1 13 2 101 3 5 -1577 21 71 136.5 1009.75 55 24 0 1 13 2 103 3 7 -1578 21 72 140.7 1009.75 55 26 0 1 13 2 105 3 9 -1579 21 73 144.9 1009.75 59 23 0 1 14 2 102 3 6 -1580 21 74 149.1 1009.75 59 21 0 1 14 2 100 3 4 -1581 21 75 153.3 1009.75 59 22 0 1 14 2 101 3 5 -1582 21 76 157.5 1009.75 59 24 0 1 14 2 103 3 7 -1583 21 77 161.7 1009.75 59 26 0 1 14 2 105 3 9 -1584 22 0 -161.7 1017.25 3 29 0 1 0 2 108 3 12 -1585 22 1 -157.5 1017.25 3 27 0 1 0 2 106 3 10 -1586 22 2 -153.3 1017.25 3 26 0 1 0 2 105 3 9 -1587 22 3 -149.1 1017.25 3 28 0 1 0 2 107 3 11 -1588 22 4 -144.9 1017.25 3 30 0 1 0 2 109 3 13 -1589 22 5 -140.7 1017.25 7 29 0 1 1 2 108 3 12 -1590 22 6 -136.5 1017.25 7 27 0 1 1 2 106 3 10 -1591 22 7 -132.3 1017.25 7 28 0 1 1 2 107 3 11 -1592 22 8 -128.1 1017.25 7 30 0 1 1 2 109 3 13 -1593 22 9 -123.9 1017.25 7 32 0 1 1 2 111 3 15 -1594 22 10 -119.7 1017.25 11 31 0 1 2 2 110 3 14 -1595 22 11 -115.5 1017.25 11 29 0 1 2 2 108 3 12 -1596 22 12 -111.3 1017.25 11 27 0 1 2 2 106 3 10 -1597 22 13 -107.1 1017.25 11 28 0 1 2 2 107 3 11 -1598 22 14 -102.9 1017.25 11 30 0 1 2 2 109 3 13 -1599 22 15 -98.7 1017.25 15 31 0 1 3 2 110 3 14 -1600 22 16 -94.5 1017.25 15 29 0 1 3 2 108 3 12 -1601 22 17 -90.3 1017.25 15 27 0 1 3 2 106 3 10 -1602 22 18 -86.1 1017.25 15 26 0 1 3 2 105 3 9 -1603 22 19 -81.9 1017.25 15 28 0 1 3 2 107 3 11 -1604 22 20 -77.7 1017.25 15 30 0 1 3 2 109 3 13 -1605 22 21 -73.5 1017.25 19 29 0 1 4 2 108 3 12 -1606 22 22 -69.3 1017.25 19 27 0 1 4 2 106 3 10 -1607 22 23 -65.1 1017.25 19 25 0 1 4 2 104 3 8 -1608 22 24 -60.9 1017.25 19 28 0 1 4 2 107 3 11 -1609 22 25 -56.7 1017.25 19 30 0 1 4 2 109 3 13 -1610 22 26 -52.5 1017.25 23 29 0 1 5 2 108 3 12 -1611 22 27 -48.3 1017.25 23 27 0 1 5 2 106 3 10 -1612 22 28 -44.1 1017.25 23 25 0 1 5 2 104 3 8 -1613 22 29 -39.9 1017.25 23 28 0 1 5 2 107 3 11 -1614 22 30 -35.7 1017.25 23 30 0 1 5 2 109 3 13 -1615 22 31 -31.5 1017.25 27 35 0 1 6 2 114 3 18 -1616 22 32 -27.3 1017.25 27 33 0 1 6 2 112 3 16 -1617 22 33 -23.1 1017.25 27 31 0 1 6 2 110 3 14 -1618 22 34 -18.9 1017.25 27 32 0 1 6 2 111 3 15 -1619 22 35 -14.7 1017.25 27 34 0 1 6 2 113 3 17 -1620 22 36 -10.5 1017.25 31 25 0 1 7 2 104 3 8 -1621 22 37 -6.3 1017.25 31 23 0 1 7 2 102 3 6 -1622 22 38 -2.1 1017.25 31 21 0 1 7 2 100 3 4 -1623 22 39 2.1 1017.25 31 22 0 1 7 2 101 3 5 -1624 22 40 6.3 1017.25 31 24 0 1 7 2 103 3 7 -1625 22 41 10.5 1017.25 31 26 0 1 7 2 105 3 9 -1626 22 42 14.7 1017.25 35 33 0 1 8 2 112 3 16 -1627 22 43 18.9 1017.25 35 31 0 1 8 2 110 3 14 -1628 22 44 23.1 1017.25 35 32 0 1 8 2 111 3 15 -1629 22 45 27.3 1017.25 35 34 0 1 8 2 113 3 17 -1630 22 46 31.5 1017.25 35 36 0 1 8 2 115 3 19 -1631 22 47 35.7 1017.25 39 29 0 1 9 2 108 3 12 -1632 22 48 39.9 1017.25 39 27 0 1 9 2 106 3 10 -1633 22 49 44.1 1017.25 39 26 0 1 9 2 105 3 9 -1634 22 50 48.3 1017.25 39 28 0 1 9 2 107 3 11 -1635 22 51 52.5 1017.25 39 30 0 1 9 2 109 3 13 -1636 22 52 56.7 1017.25 43 29 0 1 10 2 108 3 12 -1637 22 53 60.9 1017.25 43 27 0 1 10 2 106 3 10 -1638 22 54 65.1 1017.25 43 26 0 1 10 2 105 3 9 -1639 22 55 69.3 1017.25 43 28 0 1 10 2 107 3 11 -1640 22 56 73.5 1017.25 43 30 0 1 10 2 109 3 13 -1641 22 57 77.7 1017.25 47 29 0 1 11 2 108 3 12 -1642 22 58 81.9 1017.25 47 27 0 1 11 2 106 3 10 -1643 22 59 86.1 1017.25 47 25 0 1 11 2 104 3 8 -1644 22 60 90.3 1017.25 47 28 0 1 11 2 107 3 11 -1645 22 61 94.5 1017.25 47 30 0 1 11 2 109 3 13 -1646 22 62 98.7 1017.25 47 32 0 1 11 2 111 3 15 -1647 22 63 102.9 1017.25 51 29 0 1 12 2 108 3 12 -1648 22 64 107.1 1017.25 51 27 0 1 12 2 106 3 10 -1649 22 65 111.3 1017.25 51 28 0 1 12 2 107 3 11 -1650 22 66 115.5 1017.25 51 30 0 1 12 2 109 3 13 -1651 22 67 119.7 1017.25 51 32 0 1 12 2 111 3 15 -1652 22 68 123.9 1017.25 55 31 0 1 13 2 110 3 14 -1653 22 69 128.1 1017.25 55 29 0 1 13 2 108 3 12 -1654 22 70 132.3 1017.25 55 27 0 1 13 2 106 3 10 -1655 22 71 136.5 1017.25 55 28 0 1 13 2 107 3 11 -1656 22 72 140.7 1017.25 55 30 0 1 13 2 109 3 13 -1657 22 73 144.9 1017.25 59 29 0 1 14 2 108 3 12 -1658 22 74 149.1 1017.25 59 27 0 1 14 2 106 3 10 -1659 22 75 153.3 1017.25 59 25 0 1 14 2 104 3 8 -1660 22 76 157.5 1017.25 59 28 0 1 14 2 107 3 11 -1661 22 77 161.7 1017.25 59 30 0 1 14 2 109 3 13 -1662 23 0 -165.9 1024.75 3 35 0 1 0 2 114 3 18 -1663 23 1 -161.7 1024.75 3 33 0 1 0 2 112 3 16 -1664 23 2 -157.5 1024.75 3 31 0 1 0 2 110 3 14 -1665 23 3 -153.3 1024.75 3 32 0 1 0 2 111 3 15 -1666 23 4 -149.1 1024.75 3 34 0 1 0 2 113 3 17 -1667 23 5 -144.9 1024.75 3 36 0 1 0 2 115 3 19 -1668 23 6 -140.7 1024.75 7 35 0 1 1 2 114 3 18 -1669 23 7 -136.5 1024.75 7 33 0 1 1 2 112 3 16 -1670 23 8 -132.3 1024.75 7 31 0 1 1 2 110 3 14 -1671 23 9 -128.1 1024.75 7 34 0 1 1 2 113 3 17 -1672 23 10 -123.9 1024.75 7 36 0 1 1 2 115 3 19 -1673 23 11 -119.7 1024.75 11 35 0 1 2 2 114 3 18 -1674 23 12 -115.5 1024.75 11 33 0 1 2 2 112 3 16 -1675 23 13 -111.3 1024.75 11 32 0 1 2 2 111 3 15 -1676 23 14 -107.1 1024.75 11 34 0 1 2 2 113 3 17 -1677 23 15 -102.9 1024.75 11 36 0 1 2 2 115 3 19 -1678 23 16 -98.7 1024.75 15 37 0 1 3 2 116 3 20 -1679 23 17 -94.5 1024.75 15 35 0 1 3 2 114 3 18 -1680 23 18 -90.3 1024.75 15 33 0 1 3 2 112 3 16 -1681 23 19 -86.1 1024.75 15 32 0 1 3 2 111 3 15 -1682 23 20 -81.9 1024.75 15 34 0 1 3 2 113 3 17 -1683 23 21 -77.7 1024.75 15 36 0 1 3 2 115 3 19 -1684 23 22 -73.5 1024.75 19 33 0 1 4 2 112 3 16 -1685 23 23 -69.3 1024.75 19 31 0 1 4 2 110 3 14 -1686 23 24 -65.1 1024.75 19 32 0 1 4 2 111 3 15 -1687 23 25 -60.9 1024.75 19 34 0 1 4 2 113 3 17 -1688 23 26 -56.7 1024.75 19 36 0 1 4 2 115 3 19 -1689 23 27 -52.5 1024.75 23 33 0 1 5 2 112 3 16 -1690 23 28 -48.3 1024.75 23 31 0 1 5 2 110 3 14 -1691 23 29 -44.1 1024.75 23 32 0 1 5 2 111 3 15 -1692 23 30 -39.9 1024.75 23 34 0 1 5 2 113 3 17 -1693 23 31 -35.7 1024.75 23 36 0 1 5 2 115 3 19 -1694 23 32 -31.5 1024.75 27 39 0 1 6 2 118 3 22 -1695 23 33 -27.3 1024.75 27 37 0 1 6 2 116 3 20 -1696 23 34 -23.1 1024.75 27 36 0 1 6 2 115 3 19 -1697 23 35 -18.9 1024.75 27 38 0 1 6 2 117 3 21 -1698 23 36 -14.7 1024.75 27 40 0 1 6 2 119 3 23 -1699 23 37 -10.5 1024.75 31 31 0 1 7 2 110 3 14 -1700 23 38 -6.3 1024.75 31 29 0 1 7 2 108 3 12 -1701 23 39 -2.1 1024.75 31 27 0 1 7 2 106 3 10 -1702 23 40 2.1 1024.75 31 28 0 1 7 2 107 3 11 -1703 23 41 6.3 1024.75 31 30 0 1 7 2 109 3 13 -1704 23 42 10.5 1024.75 31 32 0 1 7 2 111 3 15 -1705 23 43 14.7 1024.75 35 39 0 1 8 2 118 3 22 -1706 23 44 18.9 1024.75 35 37 0 1 8 2 116 3 20 -1707 23 45 23.1 1024.75 35 35 0 1 8 2 114 3 18 -1708 23 46 27.3 1024.75 35 38 0 1 8 2 117 3 21 -1709 23 47 31.5 1024.75 35 40 0 1 8 2 119 3 23 -1710 23 48 35.7 1024.75 39 35 0 1 9 2 114 3 18 -1711 23 49 39.9 1024.75 39 33 0 1 9 2 112 3 16 -1712 23 50 44.1 1024.75 39 31 0 1 9 2 110 3 14 -1713 23 51 48.3 1024.75 39 32 0 1 9 2 111 3 15 -1714 23 52 52.5 1024.75 39 34 0 1 9 2 113 3 17 -1715 23 53 56.7 1024.75 43 35 0 1 10 2 114 3 18 -1716 23 54 60.9 1024.75 43 33 0 1 10 2 112 3 16 -1717 23 55 65.1 1024.75 43 31 0 1 10 2 110 3 14 -1718 23 56 69.3 1024.75 43 32 0 1 10 2 111 3 15 -1719 23 57 73.5 1024.75 43 34 0 1 10 2 113 3 17 -1720 23 58 77.7 1024.75 47 35 0 1 11 2 114 3 18 -1721 23 59 81.9 1024.75 47 33 0 1 11 2 112 3 16 -1722 23 60 86.1 1024.75 47 31 0 1 11 2 110 3 14 -1723 23 61 90.3 1024.75 47 34 0 1 11 2 113 3 17 -1724 23 62 94.5 1024.75 47 36 0 1 11 2 115 3 19 -1725 23 63 98.7 1024.75 47 38 0 1 11 2 117 3 21 -1726 23 64 102.9 1024.75 51 35 0 1 12 2 114 3 18 -1727 23 65 107.1 1024.75 51 33 0 1 12 2 112 3 16 -1728 23 66 111.3 1024.75 51 31 0 1 12 2 110 3 14 -1729 23 67 115.5 1024.75 51 34 0 1 12 2 113 3 17 -1730 23 68 119.7 1024.75 51 36 0 1 12 2 115 3 19 -1731 23 69 123.9 1024.75 55 35 0 1 13 2 114 3 18 -1732 23 70 128.1 1024.75 55 33 0 1 13 2 112 3 16 -1733 23 71 132.3 1024.75 55 32 0 1 13 2 111 3 15 -1734 23 72 136.5 1024.75 55 34 0 1 13 2 113 3 17 -1735 23 73 140.7 1024.75 55 36 0 1 13 2 115 3 19 -1736 23 74 144.9 1024.75 59 35 0 1 14 2 114 3 18 -1737 23 75 149.1 1024.75 59 33 0 1 14 2 112 3 16 -1738 23 76 153.3 1024.75 59 31 0 1 14 2 110 3 14 -1739 23 77 157.5 1024.75 59 32 0 1 14 2 111 3 15 -1740 23 78 161.7 1024.75 59 34 0 1 14 2 113 3 17 -1741 23 79 165.9 1024.75 59 36 0 1 14 2 115 3 19 -1742 24 0 -165.9 1032.25 3 39 0 1 0 2 118 3 22 -1743 24 1 -161.7 1032.25 3 37 0 1 0 2 116 3 20 -1744 24 2 -157.5 1032.25 3 38 0 1 0 2 117 3 21 -1745 24 3 -153.3 1032.25 3 40 0 1 0 2 119 3 23 -1746 24 4 -149.1 1032.25 4 2 0 1 0 3 121 3 25 -1747 24 5 -144.9 1032.25 8 3 0 1 1 3 122 3 26 -1748 24 6 -140.7 1032.25 8 1 0 1 1 3 120 3 24 -1749 24 7 -136.5 1032.25 7 39 0 1 1 2 118 3 22 -1750 24 8 -132.3 1032.25 7 37 0 1 1 2 116 3 20 -1751 24 9 -128.1 1032.25 7 38 0 1 1 2 117 3 21 -1752 24 10 -123.9 1032.25 7 40 0 1 1 2 119 3 23 -1753 24 11 -119.7 1032.25 11 39 0 1 2 2 118 3 22 -1754 24 12 -115.5 1032.25 11 37 0 1 2 2 116 3 20 -1755 24 13 -111.3 1032.25 11 38 0 1 2 2 117 3 21 -1756 24 14 -107.1 1032.25 11 40 0 1 2 2 119 3 23 -1757 24 15 -102.9 1032.25 12 2 0 1 2 3 121 3 25 -1758 24 16 -98.7 1032.25 16 3 0 1 3 3 122 3 26 -1759 24 17 -94.5 1032.25 16 1 0 1 3 3 120 3 24 -1760 24 18 -90.3 1032.25 15 39 0 1 3 2 118 3 22 -1761 24 19 -86.1 1032.25 15 38 0 1 3 2 117 3 21 -1762 24 20 -81.9 1032.25 15 40 0 1 3 2 119 3 23 -1763 24 21 -77.7 1032.25 19 39 0 1 4 2 118 3 22 -1764 24 22 -73.5 1032.25 19 37 0 1 4 2 116 3 20 -1765 24 23 -69.3 1032.25 19 35 0 1 4 2 114 3 18 -1766 24 24 -65.1 1032.25 19 38 0 1 4 2 117 3 21 -1767 24 25 -60.9 1032.25 19 40 0 1 4 2 119 3 23 -1768 24 26 -56.7 1032.25 20 2 0 1 4 3 121 3 25 -1769 24 27 -52.5 1032.25 23 39 0 1 5 2 118 3 22 -1770 24 28 -48.3 1032.25 23 37 0 1 5 2 116 3 20 -1771 24 29 -44.1 1032.25 23 35 0 1 5 2 114 3 18 -1772 24 30 -39.9 1032.25 23 38 0 1 5 2 117 3 21 -1773 24 31 -35.7 1032.25 23 40 0 1 5 2 119 3 23 -1774 24 32 -31.5 1032.25 28 3 0 1 6 3 122 3 26 -1775 24 33 -27.3 1032.25 28 1 0 1 6 3 120 3 24 -1776 24 34 -23.1 1032.25 28 2 0 1 6 3 121 3 25 -1777 24 35 -18.9 1032.25 28 4 0 1 6 3 123 3 27 -1778 24 36 -14.7 1032.25 28 6 0 1 6 3 125 3 29 -1779 24 37 -10.5 1032.25 31 37 0 1 7 2 116 3 20 -1780 24 38 -6.3 1032.25 31 35 0 1 7 2 114 3 18 -1781 24 39 -2.1 1032.25 31 33 0 1 7 2 112 3 16 -1782 24 40 2.1 1032.25 31 34 0 1 7 2 113 3 17 -1783 24 41 6.3 1032.25 31 36 0 1 7 2 115 3 19 -1784 24 42 10.5 1032.25 31 38 0 1 7 2 117 3 21 -1785 24 43 14.7 1032.25 36 5 0 1 8 3 124 3 28 -1786 24 44 18.9 1032.25 36 3 0 1 8 3 122 3 26 -1787 24 45 23.1 1032.25 36 1 0 1 8 3 120 3 24 -1788 24 46 27.3 1032.25 36 2 0 1 8 3 121 3 25 -1789 24 47 31.5 1032.25 36 4 0 1 8 3 123 3 27 -1790 24 48 35.7 1032.25 39 39 0 1 9 2 118 3 22 -1791 24 49 39.9 1032.25 39 37 0 1 9 2 116 3 20 -1792 24 50 44.1 1032.25 39 36 0 1 9 2 115 3 19 -1793 24 51 48.3 1032.25 39 38 0 1 9 2 117 3 21 -1794 24 52 52.5 1032.25 39 40 0 1 9 2 119 3 23 -1795 24 53 56.7 1032.25 44 1 0 1 10 3 120 3 24 -1796 24 54 60.9 1032.25 43 39 0 1 10 2 118 3 22 -1797 24 55 65.1 1032.25 43 37 0 1 10 2 116 3 20 -1798 24 56 69.3 1032.25 43 36 0 1 10 2 115 3 19 -1799 24 57 73.5 1032.25 43 38 0 1 10 2 117 3 21 -1800 24 58 77.7 1032.25 43 40 0 1 10 2 119 3 23 -1801 24 59 81.9 1032.25 47 39 0 1 11 2 118 3 22 -1802 24 60 86.1 1032.25 47 37 0 1 11 2 116 3 20 -1803 24 61 90.3 1032.25 47 40 0 1 11 2 119 3 23 -1804 24 62 94.5 1032.25 48 2 0 1 11 3 121 3 25 -1805 24 63 98.7 1032.25 48 4 0 1 11 3 123 3 27 -1806 24 64 102.9 1032.25 52 1 0 1 12 3 120 3 24 -1807 24 65 107.1 1032.25 51 39 0 1 12 2 118 3 22 -1808 24 66 111.3 1032.25 51 37 0 1 12 2 116 3 20 -1809 24 67 115.5 1032.25 51 38 0 1 12 2 117 3 21 -1810 24 68 119.7 1032.25 51 40 0 1 12 2 119 3 23 -1811 24 69 123.9 1032.25 55 39 0 1 13 2 118 3 22 -1812 24 70 128.1 1032.25 55 37 0 1 13 2 116 3 20 -1813 24 71 132.3 1032.25 55 38 0 1 13 2 117 3 21 -1814 24 72 136.5 1032.25 55 40 0 1 13 2 119 3 23 -1815 24 73 140.7 1032.25 56 2 0 1 13 3 121 3 25 -1816 24 74 144.9 1032.25 56 4 0 1 13 3 123 3 27 -1817 24 75 149.1 1032.25 60 1 0 1 14 3 120 3 24 -1818 24 76 153.3 1032.25 59 39 0 1 14 2 118 3 22 -1819 24 77 157.5 1032.25 59 37 0 1 14 2 116 3 20 -1820 24 78 161.7 1032.25 59 38 0 1 14 2 117 3 21 -1821 24 79 165.9 1032.25 59 40 0 1 14 2 119 3 23 -1822 25 0 -165.9 1039.75 4 5 0 1 0 3 124 3 28 -1823 25 1 -161.7 1039.75 4 3 0 1 0 3 122 3 26 -1824 25 2 -157.5 1039.75 4 1 0 1 0 3 120 3 24 -1825 25 3 -153.3 1039.75 4 4 0 1 0 3 123 3 27 -1826 25 4 -149.1 1039.75 4 6 0 1 0 3 125 3 29 -1827 25 5 -144.9 1039.75 8 7 0 1 1 3 126 3 30 -1828 25 6 -140.7 1039.75 8 5 0 1 1 3 124 3 28 -1829 25 7 -136.5 1039.75 8 2 0 1 1 3 121 3 25 -1830 25 8 -132.3 1039.75 8 4 0 1 1 3 123 3 27 -1831 25 9 -128.1 1039.75 8 6 0 1 1 3 125 3 29 -1832 25 10 -123.9 1039.75 12 5 0 1 2 3 124 3 28 -1833 25 11 -119.7 1039.75 12 3 0 1 2 3 122 3 26 -1834 25 12 -115.5 1039.75 12 1 0 1 2 3 120 3 24 -1835 25 13 -111.3 1039.75 12 4 0 1 2 3 123 3 27 -1836 25 14 -107.1 1039.75 12 6 0 1 2 3 125 3 29 -1837 25 15 -102.9 1039.75 12 8 0 1 2 3 127 3 31 -1838 25 16 -98.7 1039.75 16 7 0 1 3 3 126 3 30 -1839 25 17 -94.5 1039.75 16 5 0 1 3 3 124 3 28 -1840 25 18 -90.3 1039.75 16 2 0 1 3 3 121 3 25 -1841 25 19 -86.1 1039.75 16 4 0 1 3 3 123 3 27 -1842 25 20 -81.9 1039.75 16 6 0 1 3 3 125 3 29 -1843 25 21 -77.7 1039.75 20 5 0 1 4 3 124 3 28 -1844 25 22 -73.5 1039.75 20 3 0 1 4 3 122 3 26 -1845 25 23 -69.3 1039.75 20 1 0 1 4 3 120 3 24 -1846 25 24 -65.1 1039.75 20 4 0 1 4 3 123 3 27 -1847 25 25 -60.9 1039.75 20 6 0 1 4 3 125 3 29 -1848 25 26 -56.7 1039.75 20 8 0 1 4 3 127 3 31 -1849 25 27 -52.5 1039.75 24 5 0 1 5 3 124 3 28 -1850 25 28 -48.3 1039.75 24 3 0 1 5 3 122 3 26 -1851 25 29 -44.1 1039.75 24 1 0 1 5 3 120 3 24 -1852 25 30 -39.9 1039.75 24 2 0 1 5 3 121 3 25 -1853 25 31 -35.7 1039.75 24 4 0 1 5 3 123 3 27 -1854 25 32 -31.5 1039.75 28 9 0 1 6 3 128 4 0 -1855 25 33 -27.3 1039.75 28 7 0 1 6 3 126 3 30 -1856 25 34 -23.1 1039.75 28 5 0 1 6 3 124 3 28 -1857 25 35 -18.9 1039.75 28 8 0 1 6 3 127 3 31 -1858 25 36 -14.7 1039.75 28 10 0 1 6 3 129 4 1 -1859 25 37 -10.5 1039.75 32 3 0 1 7 3 122 3 26 -1860 25 38 -6.3 1039.75 32 1 0 1 7 3 120 3 24 -1861 25 39 -2.1 1039.75 31 39 0 1 7 2 118 3 22 -1862 25 40 2.1 1039.75 31 40 0 1 7 2 119 3 23 -1863 25 41 6.3 1039.75 32 2 0 1 7 3 121 3 25 -1864 25 42 10.5 1039.75 32 4 0 1 7 3 123 3 27 -1865 25 43 14.7 1039.75 36 9 0 1 8 3 128 4 0 -1866 25 44 18.9 1039.75 36 7 0 1 8 3 126 3 30 -1867 25 45 23.1 1039.75 36 6 0 1 8 3 125 3 29 -1868 25 46 27.3 1039.75 36 8 0 1 8 3 127 3 31 -1869 25 47 31.5 1039.75 36 10 0 1 8 3 129 4 1 -1870 25 48 35.7 1039.75 40 3 0 1 9 3 122 3 26 -1871 25 49 39.9 1039.75 40 1 0 1 9 3 120 3 24 -1872 25 50 44.1 1039.75 40 2 0 1 9 3 121 3 25 -1873 25 51 48.3 1039.75 40 4 0 1 9 3 123 3 27 -1874 25 52 52.5 1039.75 40 6 0 1 9 3 125 3 29 -1875 25 53 56.7 1039.75 44 7 0 1 10 3 126 3 30 -1876 25 54 60.9 1039.75 44 5 0 1 10 3 124 3 28 -1877 25 55 65.1 1039.75 44 3 0 1 10 3 122 3 26 -1878 25 56 69.3 1039.75 44 2 0 1 10 3 121 3 25 -1879 25 57 73.5 1039.75 44 4 0 1 10 3 123 3 27 -1880 25 58 77.7 1039.75 44 6 0 1 10 3 125 3 29 -1881 25 59 81.9 1039.75 48 5 0 1 11 3 124 3 28 -1882 25 60 86.1 1039.75 48 3 0 1 11 3 122 3 26 -1883 25 61 90.3 1039.75 48 1 0 1 11 3 120 3 24 -1884 25 62 94.5 1039.75 48 6 0 1 11 3 125 3 29 -1885 25 63 98.7 1039.75 48 8 0 1 11 3 127 3 31 -1886 25 64 102.9 1039.75 52 7 0 1 12 3 126 3 30 -1887 25 65 107.1 1039.75 52 5 0 1 12 3 124 3 28 -1888 25 66 111.3 1039.75 52 3 0 1 12 3 122 3 26 -1889 25 67 115.5 1039.75 52 2 0 1 12 3 121 3 25 -1890 25 68 119.7 1039.75 52 4 0 1 12 3 123 3 27 -1891 25 69 123.9 1039.75 52 6 0 1 12 3 125 3 29 -1892 25 70 128.1 1039.75 56 5 0 1 13 3 124 3 28 -1893 25 71 132.3 1039.75 56 3 0 1 13 3 122 3 26 -1894 25 72 136.5 1039.75 56 1 0 1 13 3 120 3 24 -1895 25 73 140.7 1039.75 56 6 0 1 13 3 125 3 29 -1896 25 74 144.9 1039.75 56 8 0 1 13 3 127 3 31 -1897 25 75 149.1 1039.75 60 5 0 1 14 3 124 3 28 -1898 25 76 153.3 1039.75 60 3 0 1 14 3 122 3 26 -1899 25 77 157.5 1039.75 60 2 0 1 14 3 121 3 25 -1900 25 78 161.7 1039.75 60 4 0 1 14 3 123 3 27 -1901 25 79 165.9 1039.75 60 6 0 1 14 3 125 3 29 -1902 26 0 -170.1 1047.25 4 11 0 1 0 3 130 4 2 -1903 26 1 -165.9 1047.25 4 9 0 1 0 3 128 4 0 -1904 26 2 -161.7 1047.25 4 7 0 1 0 3 126 3 30 -1905 26 3 -157.5 1047.25 4 8 0 1 0 3 127 3 31 -1906 26 4 -153.3 1047.25 4 10 0 1 0 3 129 4 1 -1907 26 5 -149.1 1047.25 4 12 0 1 0 3 131 4 3 -1908 26 6 -144.9 1047.25 8 11 0 1 1 3 130 4 2 -1909 26 7 -140.7 1047.25 8 9 0 1 1 3 128 4 0 -1910 26 8 -136.5 1047.25 8 8 0 1 1 3 127 3 31 -1911 26 9 -132.3 1047.25 8 10 0 1 1 3 129 4 1 -1912 26 10 -128.1 1047.25 8 12 0 1 1 3 131 4 3 -1913 26 11 -123.9 1047.25 12 11 0 1 2 3 130 4 2 -1914 26 12 -119.7 1047.25 12 9 0 1 2 3 128 4 0 -1915 26 13 -115.5 1047.25 12 7 0 1 2 3 126 3 30 -1916 26 14 -111.3 1047.25 12 10 0 1 2 3 129 4 1 -1917 26 15 -107.1 1047.25 12 12 0 1 2 3 131 4 3 -1918 26 16 -102.9 1047.25 12 14 0 1 2 3 133 4 5 -1919 26 17 -98.7 1047.25 16 11 0 1 3 3 130 4 2 -1920 26 18 -94.5 1047.25 16 9 0 1 3 3 128 4 0 -1921 26 19 -90.3 1047.25 16 8 0 1 3 3 127 3 31 -1922 26 20 -86.1 1047.25 16 10 0 1 3 3 129 4 1 -1923 26 21 -81.9 1047.25 16 12 0 1 3 3 131 4 3 -1924 26 22 -77.7 1047.25 20 11 0 1 4 3 130 4 2 -1925 26 23 -73.5 1047.25 20 9 0 1 4 3 128 4 0 -1926 26 24 -69.3 1047.25 20 7 0 1 4 3 126 3 30 -1927 26 25 -65.1 1047.25 20 10 0 1 4 3 129 4 1 -1928 26 26 -60.9 1047.25 20 12 0 1 4 3 131 4 3 -1929 26 27 -56.7 1047.25 20 14 0 1 4 3 133 4 5 -1930 26 28 -52.5 1047.25 24 9 0 1 5 3 128 4 0 -1931 26 29 -48.3 1047.25 24 7 0 1 5 3 126 3 30 -1932 26 30 -44.1 1047.25 24 6 0 1 5 3 125 3 29 -1933 26 31 -39.9 1047.25 24 8 0 1 5 3 127 3 31 -1934 26 32 -35.7 1047.25 24 10 0 1 5 3 129 4 1 -1935 26 33 -31.5 1047.25 28 13 0 1 6 3 132 4 4 -1936 26 34 -27.3 1047.25 28 11 0 1 6 3 130 4 2 -1937 26 35 -23.1 1047.25 28 12 0 1 6 3 131 4 3 -1938 26 36 -18.9 1047.25 28 14 0 1 6 3 133 4 5 -1939 26 37 -14.7 1047.25 28 16 0 1 6 3 135 4 7 -1940 26 38 -10.5 1047.25 32 9 0 1 7 3 128 4 0 -1941 26 39 -6.3 1047.25 32 7 0 1 7 3 126 3 30 -1942 26 40 -2.1 1047.25 32 5 0 1 7 3 124 3 28 -1943 26 41 2.1 1047.25 32 6 0 1 7 3 125 3 29 -1944 26 42 6.3 1047.25 32 8 0 1 7 3 127 3 31 -1945 26 43 10.5 1047.25 32 10 0 1 7 3 129 4 1 -1946 26 44 14.7 1047.25 36 15 0 1 8 3 134 4 6 -1947 26 45 18.9 1047.25 36 13 0 1 8 3 132 4 4 -1948 26 46 23.1 1047.25 36 11 0 1 8 3 130 4 2 -1949 26 47 27.3 1047.25 36 12 0 1 8 3 131 4 3 -1950 26 48 31.5 1047.25 36 14 0 1 8 3 133 4 5 -1951 26 49 35.7 1047.25 40 9 0 1 9 3 128 4 0 -1952 26 50 39.9 1047.25 40 7 0 1 9 3 126 3 30 -1953 26 51 44.1 1047.25 40 5 0 1 9 3 124 3 28 -1954 26 52 48.3 1047.25 40 8 0 1 9 3 127 3 31 -1955 26 53 52.5 1047.25 40 10 0 1 9 3 129 4 1 -1956 26 54 56.7 1047.25 44 13 0 1 10 3 132 4 4 -1957 26 55 60.9 1047.25 44 11 0 1 10 3 130 4 2 -1958 26 56 65.1 1047.25 44 9 0 1 10 3 128 4 0 -1959 26 57 69.3 1047.25 44 8 0 1 10 3 127 3 31 -1960 26 58 73.5 1047.25 44 10 0 1 10 3 129 4 1 -1961 26 59 77.7 1047.25 44 12 0 1 10 3 131 4 3 -1962 26 60 81.9 1047.25 48 11 0 1 11 3 130 4 2 -1963 26 61 86.1 1047.25 48 9 0 1 11 3 128 4 0 -1964 26 62 90.3 1047.25 48 7 0 1 11 3 126 3 30 -1965 26 63 94.5 1047.25 48 10 0 1 11 3 129 4 1 -1966 26 64 98.7 1047.25 48 12 0 1 11 3 131 4 3 -1967 26 65 102.9 1047.25 52 13 0 1 12 3 132 4 4 -1968 26 66 107.1 1047.25 52 11 0 1 12 3 130 4 2 -1969 26 67 111.3 1047.25 52 9 0 1 12 3 128 4 0 -1970 26 68 115.5 1047.25 52 8 0 1 12 3 127 3 31 -1971 26 69 119.7 1047.25 52 10 0 1 12 3 129 4 1 -1972 26 70 123.9 1047.25 52 12 0 1 12 3 131 4 3 -1973 26 71 128.1 1047.25 56 11 0 1 13 3 130 4 2 -1974 26 72 132.3 1047.25 56 9 0 1 13 3 128 4 0 -1975 26 73 136.5 1047.25 56 7 0 1 13 3 126 3 30 -1976 26 74 140.7 1047.25 56 10 0 1 13 3 129 4 1 -1977 26 75 144.9 1047.25 56 12 0 1 13 3 131 4 3 -1978 26 76 149.1 1047.25 60 11 0 1 14 3 130 4 2 -1979 26 77 153.3 1047.25 60 9 0 1 14 3 128 4 0 -1980 26 78 157.5 1047.25 60 7 0 1 14 3 126 3 30 -1981 26 79 161.7 1047.25 60 8 0 1 14 3 127 3 31 -1982 26 80 165.9 1047.25 60 10 0 1 14 3 129 4 1 -1983 26 81 170.1 1047.25 60 12 0 1 14 3 131 4 3 -1984 27 0 -170.1 1054.75 4 17 0 1 0 3 136 4 8 -1985 27 1 -165.9 1054.75 4 15 0 1 0 3 134 4 6 -1986 27 2 -161.7 1054.75 4 13 0 1 0 3 132 4 4 -1987 27 3 -157.5 1054.75 4 14 0 1 0 3 133 4 5 -1988 27 4 -153.3 1054.75 4 16 0 1 0 3 135 4 7 -1989 27 5 -149.1 1054.75 4 18 0 1 0 3 137 4 9 -1990 27 6 -144.9 1054.75 8 15 0 1 1 3 134 4 6 -1991 27 7 -140.7 1054.75 8 13 0 1 1 3 132 4 4 -1992 27 8 -136.5 1054.75 8 14 0 1 1 3 133 4 5 -1993 27 9 -132.3 1054.75 8 16 0 1 1 3 135 4 7 -1994 27 10 -128.1 1054.75 8 18 0 1 1 3 137 4 9 -1995 27 11 -123.9 1054.75 12 17 0 1 2 3 136 4 8 -1996 27 12 -119.7 1054.75 12 15 0 1 2 3 134 4 6 -1997 27 13 -115.5 1054.75 12 13 0 1 2 3 132 4 4 -1998 27 14 -111.3 1054.75 12 16 0 1 2 3 135 4 7 -1999 27 15 -107.1 1054.75 12 18 0 1 2 3 137 4 9 -2000 27 16 -102.9 1054.75 16 17 0 1 3 3 136 4 8 -2001 27 17 -98.7 1054.75 16 15 0 1 3 3 134 4 6 -2002 27 18 -94.5 1054.75 16 13 0 1 3 3 132 4 4 -2003 27 19 -90.3 1054.75 16 14 0 1 3 3 133 4 5 -2004 27 20 -86.1 1054.75 16 16 0 1 3 3 135 4 7 -2005 27 21 -81.9 1054.75 16 18 0 1 3 3 137 4 9 -2006 27 22 -77.7 1054.75 20 15 0 1 4 3 134 4 6 -2007 27 23 -73.5 1054.75 20 13 0 1 4 3 132 4 4 -2008 27 24 -69.3 1054.75 20 16 0 1 4 3 135 4 7 -2009 27 25 -65.1 1054.75 20 18 0 1 4 3 137 4 9 -2010 27 26 -60.9 1054.75 20 20 0 1 4 3 139 4 11 -2011 27 27 -56.7 1054.75 24 15 0 1 5 3 134 4 6 -2012 27 28 -52.5 1054.75 24 13 0 1 5 3 132 4 4 -2013 27 29 -48.3 1054.75 24 11 0 1 5 3 130 4 2 -2014 27 30 -44.1 1054.75 24 12 0 1 5 3 131 4 3 -2015 27 31 -39.9 1054.75 24 14 0 1 5 3 133 4 5 -2016 27 32 -35.7 1054.75 24 16 0 1 5 3 135 4 7 -2017 27 33 -31.5 1054.75 28 19 0 1 6 3 138 4 10 -2018 27 34 -27.3 1054.75 28 17 0 1 6 3 136 4 8 -2019 27 35 -23.1 1054.75 28 15 0 1 6 3 134 4 6 -2020 27 36 -18.9 1054.75 28 18 0 1 6 3 137 4 9 -2021 27 37 -14.7 1054.75 28 20 0 1 6 3 139 4 11 -2022 27 38 -10.5 1054.75 32 15 0 1 7 3 134 4 6 -2023 27 39 -6.3 1054.75 32 13 0 1 7 3 132 4 4 -2024 27 40 -2.1 1054.75 32 11 0 1 7 3 130 4 2 -2025 27 41 2.1 1054.75 32 12 0 1 7 3 131 4 3 -2026 27 42 6.3 1054.75 32 14 0 1 7 3 133 4 5 -2027 27 43 10.5 1054.75 32 16 0 1 7 3 135 4 7 -2028 27 44 14.7 1054.75 36 19 0 1 8 3 138 4 10 -2029 27 45 18.9 1054.75 36 17 0 1 8 3 136 4 8 -2030 27 46 23.1 1054.75 36 16 0 1 8 3 135 4 7 -2031 27 47 27.3 1054.75 36 18 0 1 8 3 137 4 9 -2032 27 48 31.5 1054.75 36 20 0 1 8 3 139 4 11 -2033 27 49 35.7 1054.75 40 15 0 1 9 3 134 4 6 -2034 27 50 39.9 1054.75 40 13 0 1 9 3 132 4 4 -2035 27 51 44.1 1054.75 40 11 0 1 9 3 130 4 2 -2036 27 52 48.3 1054.75 40 12 0 1 9 3 131 4 3 -2037 27 53 52.5 1054.75 40 14 0 1 9 3 133 4 5 -2038 27 54 56.7 1054.75 40 16 0 1 9 3 135 4 7 -2039 27 55 60.9 1054.75 44 19 0 1 10 3 138 4 10 -2040 27 56 65.1 1054.75 44 17 0 1 10 3 136 4 8 -2041 27 57 69.3 1054.75 44 15 0 1 10 3 134 4 6 -2042 27 58 73.5 1054.75 44 14 0 1 10 3 133 4 5 -2043 27 59 77.7 1054.75 44 16 0 1 10 3 135 4 7 -2044 27 60 81.9 1054.75 48 17 0 1 11 3 136 4 8 -2045 27 61 86.1 1054.75 48 15 0 1 11 3 134 4 6 -2046 27 62 90.3 1054.75 48 13 0 1 11 3 132 4 4 -2047 27 63 94.5 1054.75 48 14 0 1 11 3 133 4 5 -2048 27 64 98.7 1054.75 48 16 0 1 11 3 135 4 7 -2049 27 65 102.9 1054.75 48 18 0 1 11 3 137 4 9 -2050 27 66 107.1 1054.75 52 17 0 1 12 3 136 4 8 -2051 27 67 111.3 1054.75 52 15 0 1 12 3 134 4 6 -2052 27 68 115.5 1054.75 52 14 0 1 12 3 133 4 5 -2053 27 69 119.7 1054.75 52 16 0 1 12 3 135 4 7 -2054 27 70 123.9 1054.75 52 18 0 1 12 3 137 4 9 -2055 27 71 128.1 1054.75 56 17 0 1 13 3 136 4 8 -2056 27 72 132.3 1054.75 56 15 0 1 13 3 134 4 6 -2057 27 73 136.5 1054.75 56 13 0 1 13 3 132 4 4 -2058 27 74 140.7 1054.75 56 14 0 1 13 3 133 4 5 -2059 27 75 144.9 1054.75 56 16 0 1 13 3 135 4 7 -2060 27 76 149.1 1054.75 60 17 0 1 14 3 136 4 8 -2061 27 77 153.3 1054.75 60 15 0 1 14 3 134 4 6 -2062 27 78 157.5 1054.75 60 13 0 1 14 3 132 4 4 -2063 27 79 161.7 1054.75 60 14 0 1 14 3 133 4 5 -2064 27 80 165.9 1054.75 60 16 0 1 14 3 135 4 7 -2065 27 81 170.1 1054.75 60 18 0 1 14 3 137 4 9 -2066 28 0 -170.1 1062.25 4 21 0 1 0 3 140 4 12 -2067 28 1 -165.9 1062.25 4 19 0 1 0 3 138 4 10 -2068 28 2 -161.7 1062.25 4 20 0 1 0 3 139 4 11 -2069 28 3 -157.5 1062.25 4 22 0 1 0 3 141 4 13 -2070 28 4 -153.3 1062.25 4 24 0 1 0 3 143 4 15 -2071 28 5 -149.1 1062.25 8 21 0 1 1 3 140 4 12 -2072 28 6 -144.9 1062.25 8 19 0 1 1 3 138 4 10 -2073 28 7 -140.7 1062.25 8 17 0 1 1 3 136 4 8 -2074 28 8 -136.5 1062.25 8 20 0 1 1 3 139 4 11 -2075 28 9 -132.3 1062.25 8 22 0 1 1 3 141 4 13 -2076 28 10 -128.1 1062.25 8 24 0 1 1 3 143 4 15 -2077 28 11 -123.9 1062.25 12 23 0 1 2 3 142 4 14 -2078 28 12 -119.7 1062.25 12 21 0 1 2 3 140 4 12 -2079 28 13 -115.5 1062.25 12 19 0 1 2 3 138 4 10 -2080 28 14 -111.3 1062.25 12 20 0 1 2 3 139 4 11 -2081 28 15 -107.1 1062.25 12 22 0 1 2 3 141 4 13 -2082 28 16 -102.9 1062.25 16 23 0 1 3 3 142 4 14 -2083 28 17 -98.7 1062.25 16 21 0 1 3 3 140 4 12 -2084 28 18 -94.5 1062.25 16 19 0 1 3 3 138 4 10 -2085 28 19 -90.3 1062.25 16 20 0 1 3 3 139 4 11 -2086 28 20 -86.1 1062.25 16 22 0 1 3 3 141 4 13 -2087 28 21 -81.9 1062.25 16 24 0 1 3 3 143 4 15 -2088 28 22 -77.7 1062.25 20 21 0 1 4 3 140 4 12 -2089 28 23 -73.5 1062.25 20 19 0 1 4 3 138 4 10 -2090 28 24 -69.3 1062.25 20 17 0 1 4 3 136 4 8 -2091 28 25 -65.1 1062.25 20 22 0 1 4 3 141 4 13 -2092 28 26 -60.9 1062.25 20 24 0 1 4 3 143 4 15 -2093 28 27 -56.7 1062.25 24 21 0 1 5 3 140 4 12 -2094 28 28 -52.5 1062.25 24 19 0 1 5 3 138 4 10 -2095 28 29 -48.3 1062.25 24 17 0 1 5 3 136 4 8 -2096 28 30 -44.1 1062.25 24 18 0 1 5 3 137 4 9 -2097 28 31 -39.9 1062.25 24 20 0 1 5 3 139 4 11 -2098 28 32 -35.7 1062.25 24 22 0 1 5 3 141 4 13 -2099 28 33 -31.5 1062.25 28 23 0 1 6 3 142 4 14 -2100 28 34 -27.3 1062.25 28 21 0 1 6 3 140 4 12 -2101 28 35 -23.1 1062.25 28 22 0 1 6 3 141 4 13 -2102 28 36 -18.9 1062.25 28 24 0 1 6 3 143 4 15 -2103 28 37 -14.7 1062.25 28 26 0 1 6 3 145 4 17 -2104 28 38 -10.5 1062.25 32 21 0 1 7 3 140 4 12 -2105 28 39 -6.3 1062.25 32 19 0 1 7 3 138 4 10 -2106 28 40 -2.1 1062.25 32 17 0 1 7 3 136 4 8 -2107 28 41 2.1 1062.25 32 18 0 1 7 3 137 4 9 -2108 28 42 6.3 1062.25 32 20 0 1 7 3 139 4 11 -2109 28 43 10.5 1062.25 32 22 0 1 7 3 141 4 13 -2110 28 44 14.7 1062.25 36 25 0 1 8 3 144 4 16 -2111 28 45 18.9 1062.25 36 23 0 1 8 3 142 4 14 -2112 28 46 23.1 1062.25 36 21 0 1 8 3 140 4 12 -2113 28 47 27.3 1062.25 36 22 0 1 8 3 141 4 13 -2114 28 48 31.5 1062.25 36 24 0 1 8 3 143 4 15 -2115 28 49 35.7 1062.25 40 21 0 1 9 3 140 4 12 -2116 28 50 39.9 1062.25 40 19 0 1 9 3 138 4 10 -2117 28 51 44.1 1062.25 40 17 0 1 9 3 136 4 8 -2118 28 52 48.3 1062.25 40 18 0 1 9 3 137 4 9 -2119 28 53 52.5 1062.25 40 20 0 1 9 3 139 4 11 -2120 28 54 56.7 1062.25 40 22 0 1 9 3 141 4 13 -2121 28 55 60.9 1062.25 44 23 0 1 10 3 142 4 14 -2122 28 56 65.1 1062.25 44 21 0 1 10 3 140 4 12 -2123 28 57 69.3 1062.25 44 18 0 1 10 3 137 4 9 -2124 28 58 73.5 1062.25 44 20 0 1 10 3 139 4 11 -2125 28 59 77.7 1062.25 44 22 0 1 10 3 141 4 13 -2126 28 60 81.9 1062.25 48 23 0 1 11 3 142 4 14 -2127 28 61 86.1 1062.25 48 21 0 1 11 3 140 4 12 -2128 28 62 90.3 1062.25 48 19 0 1 11 3 138 4 10 -2129 28 63 94.5 1062.25 48 20 0 1 11 3 139 4 11 -2130 28 64 98.7 1062.25 48 22 0 1 11 3 141 4 13 -2131 28 65 102.9 1062.25 48 24 0 1 11 3 143 4 15 -2132 28 66 107.1 1062.25 52 21 0 1 12 3 140 4 12 -2133 28 67 111.3 1062.25 52 19 0 1 12 3 138 4 10 -2134 28 68 115.5 1062.25 52 20 0 1 12 3 139 4 11 -2135 28 69 119.7 1062.25 52 22 0 1 12 3 141 4 13 -2136 28 70 123.9 1062.25 52 24 0 1 12 3 143 4 15 -2137 28 71 128.1 1062.25 56 23 0 1 13 3 142 4 14 -2138 28 72 132.3 1062.25 56 21 0 1 13 3 140 4 12 -2139 28 73 136.5 1062.25 56 19 0 1 13 3 138 4 10 -2140 28 74 140.7 1062.25 56 18 0 1 13 3 137 4 9 -2141 28 75 144.9 1062.25 56 20 0 1 13 3 139 4 11 -2142 28 76 149.1 1062.25 56 22 0 1 13 3 141 4 13 -2143 28 77 153.3 1062.25 60 23 0 1 14 3 142 4 14 -2144 28 78 157.5 1062.25 60 21 0 1 14 3 140 4 12 -2145 28 79 161.7 1062.25 60 19 0 1 14 3 138 4 10 -2146 28 80 165.9 1062.25 60 20 0 1 14 3 139 4 11 -2147 28 81 170.1 1062.25 60 22 0 1 14 3 141 4 13 -2148 29 0 -174.3 1069.75 4 27 0 1 0 3 146 4 18 -2149 29 1 -170.1 1069.75 4 25 0 1 0 3 144 4 16 -2150 29 2 -165.9 1069.75 4 23 0 1 0 3 142 4 14 -2151 29 3 -161.7 1069.75 4 26 0 1 0 3 145 4 17 -2152 29 4 -157.5 1069.75 4 28 0 1 0 3 147 4 19 -2153 29 5 -153.3 1069.75 4 30 0 1 0 3 149 4 21 -2154 29 6 -149.1 1069.75 8 27 0 1 1 3 146 4 18 -2155 29 7 -144.9 1069.75 8 25 0 1 1 3 144 4 16 -2156 29 8 -140.7 1069.75 8 23 0 1 1 3 142 4 14 -2157 29 9 -136.5 1069.75 8 26 0 1 1 3 145 4 17 -2158 29 10 -132.3 1069.75 8 28 0 1 1 3 147 4 19 -2159 29 11 -128.1 1069.75 8 30 0 1 1 3 149 4 21 -2160 29 12 -123.9 1069.75 12 27 0 1 2 3 146 4 18 -2161 29 13 -119.7 1069.75 12 25 0 1 2 3 144 4 16 -2162 29 14 -115.5 1069.75 12 24 0 1 2 3 143 4 15 -2163 29 15 -111.3 1069.75 12 26 0 1 2 3 145 4 17 -2164 29 16 -107.1 1069.75 12 28 0 1 2 3 147 4 19 -2165 29 17 -102.9 1069.75 16 29 0 1 3 3 148 4 20 -2166 29 18 -98.7 1069.75 16 27 0 1 3 3 146 4 18 -2167 29 19 -94.5 1069.75 16 25 0 1 3 3 144 4 16 -2168 29 20 -90.3 1069.75 16 26 0 1 3 3 145 4 17 -2169 29 21 -86.1 1069.75 16 28 0 1 3 3 147 4 19 -2170 29 22 -81.9 1069.75 16 30 0 1 3 3 149 4 21 -2171 29 23 -77.7 1069.75 20 27 0 1 4 3 146 4 18 -2172 29 24 -73.5 1069.75 20 25 0 1 4 3 144 4 16 -2173 29 25 -69.3 1069.75 20 23 0 1 4 3 142 4 14 -2174 29 26 -65.1 1069.75 20 26 0 1 4 3 145 4 17 -2175 29 27 -60.9 1069.75 20 28 0 1 4 3 147 4 19 -2176 29 28 -56.7 1069.75 24 27 0 1 5 3 146 4 18 -2177 29 29 -52.5 1069.75 24 25 0 1 5 3 144 4 16 -2178 29 30 -48.3 1069.75 24 23 0 1 5 3 142 4 14 -2179 29 31 -44.1 1069.75 24 24 0 1 5 3 143 4 15 -2180 29 32 -39.9 1069.75 24 26 0 1 5 3 145 4 17 -2181 29 33 -35.7 1069.75 24 28 0 1 5 3 147 4 19 -2182 29 34 -31.5 1069.75 28 29 0 1 6 3 148 4 20 -2183 29 35 -27.3 1069.75 28 27 0 1 6 3 146 4 18 -2184 29 36 -23.1 1069.75 28 25 0 1 6 3 144 4 16 -2185 29 37 -18.9 1069.75 28 28 0 1 6 3 147 4 19 -2186 29 38 -14.7 1069.75 28 30 0 1 6 3 149 4 21 -2187 29 39 -10.5 1069.75 32 27 0 1 7 3 146 4 18 -2188 29 40 -6.3 1069.75 32 25 0 1 7 3 144 4 16 -2189 29 41 -2.1 1069.75 32 23 0 1 7 3 142 4 14 -2190 29 42 2.1 1069.75 32 24 0 1 7 3 143 4 15 -2191 29 43 6.3 1069.75 32 26 0 1 7 3 145 4 17 -2192 29 44 10.5 1069.75 32 28 0 1 7 3 147 4 19 -2193 29 45 14.7 1069.75 36 29 0 1 8 3 148 4 20 -2194 29 46 18.9 1069.75 36 27 0 1 8 3 146 4 18 -2195 29 47 23.1 1069.75 36 26 0 1 8 3 145 4 17 -2196 29 48 27.3 1069.75 36 28 0 1 8 3 147 4 19 -2197 29 49 31.5 1069.75 36 30 0 1 8 3 149 4 21 -2198 29 50 35.7 1069.75 40 27 0 1 9 3 146 4 18 -2199 29 51 39.9 1069.75 40 25 0 1 9 3 144 4 16 -2200 29 52 44.1 1069.75 40 23 0 1 9 3 142 4 14 -2201 29 53 48.3 1069.75 40 24 0 1 9 3 143 4 15 -2202 29 54 52.5 1069.75 40 26 0 1 9 3 145 4 17 -2203 29 55 56.7 1069.75 40 28 0 1 9 3 147 4 19 -2204 29 56 60.9 1069.75 44 27 0 1 10 3 146 4 18 -2205 29 57 65.1 1069.75 44 25 0 1 10 3 144 4 16 -2206 29 58 69.3 1069.75 44 24 0 1 10 3 143 4 15 -2207 29 59 73.5 1069.75 44 26 0 1 10 3 145 4 17 -2208 29 60 77.7 1069.75 44 28 0 1 10 3 147 4 19 -2209 29 61 81.9 1069.75 48 29 0 1 11 3 148 4 20 -2210 29 62 86.1 1069.75 48 27 0 1 11 3 146 4 18 -2211 29 63 90.3 1069.75 48 25 0 1 11 3 144 4 16 -2212 29 64 94.5 1069.75 48 26 0 1 11 3 145 4 17 -2213 29 65 98.7 1069.75 48 28 0 1 11 3 147 4 19 -2214 29 66 102.9 1069.75 48 30 0 1 11 3 149 4 21 -2215 29 67 107.1 1069.75 52 27 0 1 12 3 146 4 18 -2216 29 68 111.3 1069.75 52 25 0 1 12 3 144 4 16 -2217 29 69 115.5 1069.75 52 23 0 1 12 3 142 4 14 -2218 29 70 119.7 1069.75 52 26 0 1 12 3 145 4 17 -2219 29 71 123.9 1069.75 52 28 0 1 12 3 147 4 19 -2220 29 72 128.1 1069.75 56 29 0 1 13 3 148 4 20 -2221 29 73 132.3 1069.75 56 27 0 1 13 3 146 4 18 -2222 29 74 136.5 1069.75 56 25 0 1 13 3 144 4 16 -2223 29 75 140.7 1069.75 56 24 0 1 13 3 143 4 15 -2224 29 76 144.9 1069.75 56 26 0 1 13 3 145 4 17 -2225 29 77 149.1 1069.75 56 28 0 1 13 3 147 4 19 -2226 29 78 153.3 1069.75 60 29 0 1 14 3 148 4 20 -2227 29 79 157.5 1069.75 60 27 0 1 14 3 146 4 18 -2228 29 80 161.7 1069.75 60 25 0 1 14 3 144 4 16 -2229 29 81 165.9 1069.75 60 24 0 1 14 3 143 4 15 -2230 29 82 170.1 1069.75 60 26 0 1 14 3 145 4 17 -2231 29 83 174.3 1069.75 60 28 0 1 14 3 147 4 19 -2232 30 0 -174.3 1077.25 4 33 0 1 0 3 152 4 24 -2233 30 1 -170.1 1077.25 4 31 0 1 0 3 150 4 22 -2234 30 2 -165.9 1077.25 4 29 0 1 0 3 148 4 20 -2235 30 3 -161.7 1077.25 4 32 0 1 0 3 151 4 23 -2236 30 4 -157.5 1077.25 4 34 0 1 0 3 153 4 25 -2237 30 5 -153.3 1077.25 4 36 0 1 0 3 155 4 27 -2238 30 6 -149.1 1077.25 8 33 0 1 1 3 152 4 24 -2239 30 7 -144.9 1077.25 8 31 0 1 1 3 150 4 22 -2240 30 8 -140.7 1077.25 8 29 0 1 1 3 148 4 20 -2241 30 9 -136.5 1077.25 8 32 0 1 1 3 151 4 23 -2242 30 10 -132.3 1077.25 8 34 0 1 1 3 153 4 25 -2243 30 11 -128.1 1077.25 12 33 0 1 2 3 152 4 24 -2244 30 12 -123.9 1077.25 12 31 0 1 2 3 150 4 22 -2245 30 13 -119.7 1077.25 12 29 0 1 2 3 148 4 20 -2246 30 14 -115.5 1077.25 12 30 0 1 2 3 149 4 21 -2247 30 15 -111.3 1077.25 12 32 0 1 2 3 151 4 23 -2248 30 16 -107.1 1077.25 12 34 0 1 2 3 153 4 25 -2249 30 17 -102.9 1077.25 16 33 0 1 3 3 152 4 24 -2250 30 18 -98.7 1077.25 16 31 0 1 3 3 150 4 22 -2251 30 19 -94.5 1077.25 16 32 0 1 3 3 151 4 23 -2252 30 20 -90.3 1077.25 16 34 0 1 3 3 153 4 25 -2253 30 21 -86.1 1077.25 16 36 0 1 3 3 155 4 27 -2254 30 22 -81.9 1077.25 20 33 0 1 4 3 152 4 24 -2255 30 23 -77.7 1077.25 20 31 0 1 4 3 150 4 22 -2256 30 24 -73.5 1077.25 20 29 0 1 4 3 148 4 20 -2257 30 25 -69.3 1077.25 20 30 0 1 4 3 149 4 21 -2258 30 26 -65.1 1077.25 20 32 0 1 4 3 151 4 23 -2259 30 27 -60.9 1077.25 20 34 0 1 4 3 153 4 25 -2260 30 28 -56.7 1077.25 24 33 0 1 5 3 152 4 24 -2261 30 29 -52.5 1077.25 24 31 0 1 5 3 150 4 22 -2262 30 30 -48.3 1077.25 24 29 0 1 5 3 148 4 20 -2263 30 31 -44.1 1077.25 24 30 0 1 5 3 149 4 21 -2264 30 32 -39.9 1077.25 24 32 0 1 5 3 151 4 23 -2265 30 33 -35.7 1077.25 24 34 0 1 5 3 153 4 25 -2266 30 34 -31.5 1077.25 28 33 0 1 6 3 152 4 24 -2267 30 35 -27.3 1077.25 28 31 0 1 6 3 150 4 22 -2268 30 36 -23.1 1077.25 28 32 0 1 6 3 151 4 23 -2269 30 37 -18.9 1077.25 28 34 0 1 6 3 153 4 25 -2270 30 38 -14.7 1077.25 28 36 0 1 6 3 155 4 27 -2271 30 39 -10.5 1077.25 32 33 0 1 7 3 152 4 24 -2272 30 40 -6.3 1077.25 32 31 0 1 7 3 150 4 22 -2273 30 41 -2.1 1077.25 32 29 0 1 7 3 148 4 20 -2274 30 42 2.1 1077.25 32 30 0 1 7 3 149 4 21 -2275 30 43 6.3 1077.25 32 32 0 1 7 3 151 4 23 -2276 30 44 10.5 1077.25 32 34 0 1 7 3 153 4 25 -2277 30 45 14.7 1077.25 36 35 0 1 8 3 154 4 26 -2278 30 46 18.9 1077.25 36 33 0 1 8 3 152 4 24 -2279 30 47 23.1 1077.25 36 31 0 1 8 3 150 4 22 -2280 30 48 27.3 1077.25 36 32 0 1 8 3 151 4 23 -2281 30 49 31.5 1077.25 36 34 0 1 8 3 153 4 25 -2282 30 50 35.7 1077.25 40 33 0 1 9 3 152 4 24 -2283 30 51 39.9 1077.25 40 31 0 1 9 3 150 4 22 -2284 30 52 44.1 1077.25 40 29 0 1 9 3 148 4 20 -2285 30 53 48.3 1077.25 40 30 0 1 9 3 149 4 21 -2286 30 54 52.5 1077.25 40 32 0 1 9 3 151 4 23 -2287 30 55 56.7 1077.25 40 34 0 1 9 3 153 4 25 -2288 30 56 60.9 1077.25 44 33 0 1 10 3 152 4 24 -2289 30 57 65.1 1077.25 44 31 0 1 10 3 150 4 22 -2290 30 58 69.3 1077.25 44 29 0 1 10 3 148 4 20 -2291 30 59 73.5 1077.25 44 30 0 1 10 3 149 4 21 -2292 30 60 77.7 1077.25 44 32 0 1 10 3 151 4 23 -2293 30 61 81.9 1077.25 44 34 0 1 10 3 153 4 25 -2294 30 62 86.1 1077.25 48 35 0 1 11 3 154 4 26 -2295 30 63 90.3 1077.25 48 33 0 1 11 3 152 4 24 -2296 30 64 94.5 1077.25 48 31 0 1 11 3 150 4 22 -2297 30 65 98.7 1077.25 48 32 0 1 11 3 151 4 23 -2298 30 66 102.9 1077.25 48 34 0 1 11 3 153 4 25 -2299 30 67 107.1 1077.25 52 33 0 1 12 3 152 4 24 -2300 30 68 111.3 1077.25 52 31 0 1 12 3 150 4 22 -2301 30 69 115.5 1077.25 52 29 0 1 12 3 148 4 20 -2302 30 70 119.7 1077.25 52 30 0 1 12 3 149 4 21 -2303 30 71 123.9 1077.25 52 32 0 1 12 3 151 4 23 -2304 30 72 128.1 1077.25 52 34 0 1 12 3 153 4 25 -2305 30 73 132.3 1077.25 56 33 0 1 13 3 152 4 24 -2306 30 74 136.5 1077.25 56 31 0 1 13 3 150 4 22 -2307 30 75 140.7 1077.25 56 30 0 1 13 3 149 4 21 -2308 30 76 144.9 1077.25 56 32 0 1 13 3 151 4 23 -2309 30 77 149.1 1077.25 56 34 0 1 13 3 153 4 25 -2310 30 78 153.3 1077.25 60 35 0 1 14 3 154 4 26 -2311 30 79 157.5 1077.25 60 33 0 1 14 3 152 4 24 -2312 30 80 161.7 1077.25 60 31 0 1 14 3 150 4 22 -2313 30 81 165.9 1077.25 60 30 0 1 14 3 149 4 21 -2314 30 82 170.1 1077.25 60 32 0 1 14 3 151 4 23 -2315 30 83 174.3 1077.25 60 34 0 1 14 3 153 4 25 -2316 31 0 -174.3 1084.75 4 39 0 1 0 3 158 4 30 -2317 31 1 -170.1 1084.75 4 37 0 1 0 3 156 4 28 -2318 31 2 -165.9 1084.75 4 35 0 1 0 3 154 4 26 -2319 31 3 -161.7 1084.75 4 38 0 1 0 3 157 4 29 -2320 31 4 -157.5 1084.75 4 40 0 1 0 3 159 4 31 -2321 31 5 -153.3 1084.75 8 39 0 1 1 3 158 4 30 -2322 31 6 -149.1 1084.75 8 37 0 1 1 3 156 4 28 -2323 31 7 -144.9 1084.75 8 35 0 1 1 3 154 4 26 -2324 31 8 -140.7 1084.75 8 36 0 1 1 3 155 4 27 -2325 31 9 -136.5 1084.75 8 38 0 1 1 3 157 4 29 -2326 31 10 -132.3 1084.75 8 40 0 1 1 3 159 4 31 -2327 31 11 -128.1 1084.75 12 39 0 1 2 3 158 4 30 -2328 31 12 -123.9 1084.75 12 37 0 1 2 3 156 4 28 -2329 31 13 -119.7 1084.75 12 35 0 1 2 3 154 4 26 -2330 31 14 -115.5 1084.75 12 36 0 1 2 3 155 4 27 -2331 31 15 -111.3 1084.75 12 38 0 1 2 3 157 4 29 -2332 31 16 -107.1 1084.75 12 40 0 1 2 3 159 4 31 -2333 31 17 -102.9 1084.75 16 39 0 1 3 3 158 4 30 -2334 31 18 -98.7 1084.75 16 37 0 1 3 3 156 4 28 -2335 31 19 -94.5 1084.75 16 35 0 1 3 3 154 4 26 -2336 31 20 -90.3 1084.75 16 38 0 1 3 3 157 4 29 -2337 31 21 -86.1 1084.75 16 40 0 1 3 3 159 4 31 -2338 31 22 -81.9 1084.75 20 39 0 1 4 3 158 4 30 -2339 31 23 -77.7 1084.75 20 37 0 1 4 3 156 4 28 -2340 31 24 -73.5 1084.75 20 35 0 1 4 3 154 4 26 -2341 31 25 -69.3 1084.75 20 36 0 1 4 3 155 4 27 -2342 31 26 -65.1 1084.75 20 38 0 1 4 3 157 4 29 -2343 31 27 -60.9 1084.75 20 40 0 1 4 3 159 4 31 -2344 31 28 -56.7 1084.75 24 39 0 1 5 3 158 4 30 -2345 31 29 -52.5 1084.75 24 37 0 1 5 3 156 4 28 -2346 31 30 -48.3 1084.75 24 35 0 1 5 3 154 4 26 -2347 31 31 -44.1 1084.75 24 36 0 1 5 3 155 4 27 -2348 31 32 -39.9 1084.75 24 38 0 1 5 3 157 4 29 -2349 31 33 -35.7 1084.75 24 40 0 1 5 3 159 4 31 -2350 31 34 -31.5 1084.75 28 39 0 1 6 3 158 4 30 -2351 31 35 -27.3 1084.75 28 37 0 1 6 3 156 4 28 -2352 31 36 -23.1 1084.75 28 35 0 1 6 3 154 4 26 -2353 31 37 -18.9 1084.75 28 38 0 1 6 3 157 4 29 -2354 31 38 -14.7 1084.75 28 40 0 1 6 3 159 4 31 -2355 31 39 -10.5 1084.75 32 39 0 1 7 3 158 4 30 -2356 31 40 -6.3 1084.75 32 37 0 1 7 3 156 4 28 -2357 31 41 -2.1 1084.75 32 35 0 1 7 3 154 4 26 -2358 31 42 2.1 1084.75 32 36 0 1 7 3 155 4 27 -2359 31 43 6.3 1084.75 32 38 0 1 7 3 157 4 29 -2360 31 44 10.5 1084.75 32 40 0 1 7 3 159 4 31 -2361 31 45 14.7 1084.75 36 39 0 1 8 3 158 4 30 -2362 31 46 18.9 1084.75 36 37 0 1 8 3 156 4 28 -2363 31 47 23.1 1084.75 36 36 0 1 8 3 155 4 27 -2364 31 48 27.3 1084.75 36 38 0 1 8 3 157 4 29 -2365 31 49 31.5 1084.75 36 40 0 1 8 3 159 4 31 -2366 31 50 35.7 1084.75 40 39 0 1 9 3 158 4 30 -2367 31 51 39.9 1084.75 40 37 0 1 9 3 156 4 28 -2368 31 52 44.1 1084.75 40 35 0 1 9 3 154 4 26 -2369 31 53 48.3 1084.75 40 36 0 1 9 3 155 4 27 -2370 31 54 52.5 1084.75 40 38 0 1 9 3 157 4 29 -2371 31 55 56.7 1084.75 40 40 0 1 9 3 159 4 31 -2372 31 56 60.9 1084.75 44 39 0 1 10 3 158 4 30 -2373 31 57 65.1 1084.75 44 37 0 1 10 3 156 4 28 -2374 31 58 69.3 1084.75 44 35 0 1 10 3 154 4 26 -2375 31 59 73.5 1084.75 44 36 0 1 10 3 155 4 27 -2376 31 60 77.7 1084.75 44 38 0 1 10 3 157 4 29 -2377 31 61 81.9 1084.75 44 40 0 1 10 3 159 4 31 -2378 31 62 86.1 1084.75 48 39 0 1 11 3 158 4 30 -2379 31 63 90.3 1084.75 48 37 0 1 11 3 156 4 28 -2380 31 64 94.5 1084.75 48 36 0 1 11 3 155 4 27 -2381 31 65 98.7 1084.75 48 38 0 1 11 3 157 4 29 -2382 31 66 102.9 1084.75 48 40 0 1 11 3 159 4 31 -2383 31 67 107.1 1084.75 52 39 0 1 12 3 158 4 30 -2384 31 68 111.3 1084.75 52 37 0 1 12 3 156 4 28 -2385 31 69 115.5 1084.75 52 35 0 1 12 3 154 4 26 -2386 31 70 119.7 1084.75 52 36 0 1 12 3 155 4 27 -2387 31 71 123.9 1084.75 52 38 0 1 12 3 157 4 29 -2388 31 72 128.1 1084.75 52 40 0 1 12 3 159 4 31 -2389 31 73 132.3 1084.75 56 39 0 1 13 3 158 4 30 -2390 31 74 136.5 1084.75 56 37 0 1 13 3 156 4 28 -2391 31 75 140.7 1084.75 56 35 0 1 13 3 154 4 26 -2392 31 76 144.9 1084.75 56 36 0 1 13 3 155 4 27 -2393 31 77 149.1 1084.75 56 38 0 1 13 3 157 4 29 -2394 31 78 153.3 1084.75 56 40 0 1 13 3 159 4 31 -2395 31 79 157.5 1084.75 60 39 0 1 14 3 158 4 30 -2396 31 80 161.7 1084.75 60 37 0 1 14 3 156 4 28 -2397 31 81 165.9 1084.75 60 36 0 1 14 3 155 4 27 -2398 31 82 170.1 1084.75 60 38 0 1 14 3 157 4 29 -2399 31 83 174.3 1084.75 60 40 0 1 14 3 159 4 31 -2400 32 0 -178.5 1092.25 61 5 1 2 15 0 4 0 4 -2401 32 1 -174.3 1092.25 61 3 1 2 15 0 2 0 2 -2402 32 2 -170.1 1092.25 61 1 1 2 15 0 0 0 0 -2403 32 3 -165.9 1092.25 61 2 1 2 15 0 1 0 1 -2404 32 4 -161.7 1092.25 61 4 1 2 15 0 3 0 3 -2405 32 5 -157.5 1092.25 65 5 1 2 16 0 4 0 4 -2406 32 6 -153.3 1092.25 65 3 1 2 16 0 2 0 2 -2407 32 7 -149.1 1092.25 65 1 1 2 16 0 0 0 0 -2408 32 8 -144.9 1092.25 65 2 1 2 16 0 1 0 1 -2409 32 9 -140.7 1092.25 65 4 1 2 16 0 3 0 3 -2410 32 10 -136.5 1092.25 69 3 1 2 17 0 2 0 2 -2411 32 11 -132.3 1092.25 69 1 1 2 17 0 0 0 0 -2412 32 12 -128.1 1092.25 69 2 1 2 17 0 1 0 1 -2413 32 13 -123.9 1092.25 69 4 1 2 17 0 3 0 3 -2414 32 14 -119.7 1092.25 69 6 1 2 17 0 5 0 5 -2415 32 15 -115.5 1092.25 73 3 1 2 18 0 2 0 2 -2416 32 16 -111.3 1092.25 73 1 1 2 18 0 0 0 0 -2417 32 17 -107.1 1092.25 73 2 1 2 18 0 1 0 1 -2418 32 18 -102.9 1092.25 73 4 1 2 18 0 3 0 3 -2419 32 19 -98.7 1092.25 77 5 1 2 19 0 4 0 4 -2420 32 20 -94.5 1092.25 77 3 1 2 19 0 2 0 2 -2421 32 21 -90.3 1092.25 77 1 1 2 19 0 0 0 0 -2422 32 22 -86.1 1092.25 77 2 1 2 19 0 1 0 1 -2423 32 23 -81.9 1092.25 77 4 1 2 19 0 3 0 3 -2424 32 24 -77.7 1092.25 81 3 1 2 20 0 2 0 2 -2425 32 25 -73.5 1092.25 81 1 1 2 20 0 0 0 0 -2426 32 26 -69.3 1092.25 81 2 1 2 20 0 1 0 1 -2427 32 27 -65.1 1092.25 81 4 1 2 20 0 3 0 3 -2428 32 28 -60.9 1092.25 81 6 1 2 20 0 5 0 5 -2429 32 29 -56.7 1092.25 85 3 1 2 21 0 2 0 2 -2430 32 30 -52.5 1092.25 85 1 1 2 21 0 0 0 0 -2431 32 31 -48.3 1092.25 85 2 1 2 21 0 1 0 1 -2432 32 32 -44.1 1092.25 85 4 1 2 21 0 3 0 3 -2433 32 33 -39.9 1092.25 85 6 1 2 21 0 5 0 5 -2434 32 34 -35.7 1092.25 89 3 1 2 22 0 2 0 2 -2435 32 35 -31.5 1092.25 89 1 1 2 22 0 0 0 0 -2436 32 36 -27.3 1092.25 89 2 1 2 22 0 1 0 1 -2437 32 37 -23.1 1092.25 89 4 1 2 22 0 3 0 3 -2438 32 38 -18.9 1092.25 93 3 1 2 23 0 2 0 2 -2439 32 39 -14.7 1092.25 93 1 1 2 23 0 0 0 0 -2440 32 40 -10.5 1092.25 93 2 1 2 23 0 1 0 1 -2441 32 41 -6.3 1092.25 93 4 1 2 23 0 3 0 3 -2442 32 42 -2.1 1092.25 93 6 1 2 23 0 5 0 5 -2443 32 43 2.1 1092.25 97 5 1 2 24 0 4 0 4 -2444 32 44 6.3 1092.25 97 3 1 2 24 0 2 0 2 -2445 32 45 10.5 1092.25 97 1 1 2 24 0 0 0 0 -2446 32 46 14.7 1092.25 97 2 1 2 24 0 1 0 1 -2447 32 47 18.9 1092.25 97 4 1 2 24 0 3 0 3 -2448 32 48 23.1 1092.25 101 3 1 2 25 0 2 0 2 -2449 32 49 27.3 1092.25 101 1 1 2 25 0 0 0 0 -2450 32 50 31.5 1092.25 101 2 1 2 25 0 1 0 1 -2451 32 51 35.7 1092.25 101 4 1 2 25 0 3 0 3 -2452 32 52 39.9 1092.25 105 5 1 2 26 0 4 0 4 -2453 32 53 44.1 1092.25 105 3 1 2 26 0 2 0 2 -2454 32 54 48.3 1092.25 105 1 1 2 26 0 0 0 0 -2455 32 55 52.5 1092.25 105 2 1 2 26 0 1 0 1 -2456 32 56 56.7 1092.25 105 4 1 2 26 0 3 0 3 -2457 32 57 60.9 1092.25 109 5 1 2 27 0 4 0 4 -2458 32 58 65.1 1092.25 109 3 1 2 27 0 2 0 2 -2459 32 59 69.3 1092.25 109 1 1 2 27 0 0 0 0 -2460 32 60 73.5 1092.25 109 2 1 2 27 0 1 0 1 -2461 32 61 77.7 1092.25 109 4 1 2 27 0 3 0 3 -2462 32 62 81.9 1092.25 113 3 1 2 28 0 2 0 2 -2463 32 63 86.1 1092.25 113 1 1 2 28 0 0 0 0 -2464 32 64 90.3 1092.25 113 2 1 2 28 0 1 0 1 -2465 32 65 94.5 1092.25 113 4 1 2 28 0 3 0 3 -2466 32 66 98.7 1092.25 113 6 1 2 28 0 5 0 5 -2467 32 67 102.9 1092.25 117 3 1 2 29 0 2 0 2 -2468 32 68 107.1 1092.25 117 1 1 2 29 0 0 0 0 -2469 32 69 111.3 1092.25 117 2 1 2 29 0 1 0 1 -2470 32 70 115.5 1092.25 117 4 1 2 29 0 3 0 3 -2471 32 71 119.7 1092.25 121 5 1 2 30 0 4 0 4 -2472 32 72 123.9 1092.25 121 3 1 2 30 0 2 0 2 -2473 32 73 128.1 1092.25 121 1 1 2 30 0 0 0 0 -2474 32 74 132.3 1092.25 121 2 1 2 30 0 1 0 1 -2475 32 75 136.5 1092.25 121 4 1 2 30 0 3 0 3 -2476 32 76 140.7 1092.25 125 3 1 2 31 0 2 0 2 -2477 32 77 144.9 1092.25 125 1 1 2 31 0 0 0 0 -2478 32 78 149.1 1092.25 125 2 1 2 31 0 1 0 1 -2479 32 79 153.3 1092.25 125 4 1 2 31 0 3 0 3 -2480 32 80 157.5 1092.25 125 6 1 2 31 0 5 0 5 -2481 32 81 161.7 1092.25 129 3 1 2 32 0 2 0 2 -2482 32 82 165.9 1092.25 129 1 1 2 32 0 0 0 0 -2483 32 83 170.1 1092.25 129 2 1 2 32 0 1 0 1 -2484 32 84 174.3 1092.25 129 4 1 2 32 0 3 0 3 -2485 32 85 178.5 1092.25 129 6 1 2 32 0 5 0 5 -2486 33 0 -178.5 1099.75 61 9 1 2 15 0 8 0 8 -2487 33 1 -174.3 1099.75 61 7 1 2 15 0 6 0 6 -2488 33 2 -170.1 1099.75 61 6 1 2 15 0 5 0 5 -2489 33 3 -165.9 1099.75 61 8 1 2 15 0 7 0 7 -2490 33 4 -161.7 1099.75 61 10 1 2 15 0 9 0 9 -2491 33 5 -157.5 1099.75 65 9 1 2 16 0 8 0 8 -2492 33 6 -153.3 1099.75 65 7 1 2 16 0 6 0 6 -2493 33 7 -149.1 1099.75 65 6 1 2 16 0 5 0 5 -2494 33 8 -144.9 1099.75 65 8 1 2 16 0 7 0 7 -2495 33 9 -140.7 1099.75 65 10 1 2 16 0 9 0 9 -2496 33 10 -136.5 1099.75 69 7 1 2 17 0 6 0 6 -2497 33 11 -132.3 1099.75 69 5 1 2 17 0 4 0 4 -2498 33 12 -128.1 1099.75 69 8 1 2 17 0 7 0 7 -2499 33 13 -123.9 1099.75 69 10 1 2 17 0 9 0 9 -2500 33 14 -119.7 1099.75 73 9 1 2 18 0 8 0 8 -2501 33 15 -115.5 1099.75 73 7 1 2 18 0 6 0 6 -2502 33 16 -111.3 1099.75 73 5 1 2 18 0 4 0 4 -2503 33 17 -107.1 1099.75 73 6 1 2 18 0 5 0 5 -2504 33 18 -102.9 1099.75 73 8 1 2 18 0 7 0 7 -2505 33 19 -98.7 1099.75 77 9 1 2 19 0 8 0 8 -2506 33 20 -94.5 1099.75 77 7 1 2 19 0 6 0 6 -2507 33 21 -90.3 1099.75 77 6 1 2 19 0 5 0 5 -2508 33 22 -86.1 1099.75 77 8 1 2 19 0 7 0 7 -2509 33 23 -81.9 1099.75 77 10 1 2 19 0 9 0 9 -2510 33 24 -77.7 1099.75 81 9 1 2 20 0 8 0 8 -2511 33 25 -73.5 1099.75 81 7 1 2 20 0 6 0 6 -2512 33 26 -69.3 1099.75 81 5 1 2 20 0 4 0 4 -2513 33 27 -65.1 1099.75 81 8 1 2 20 0 7 0 7 -2514 33 28 -60.9 1099.75 81 10 1 2 20 0 9 0 9 -2515 33 29 -56.7 1099.75 85 7 1 2 21 0 6 0 6 -2516 33 30 -52.5 1099.75 85 5 1 2 21 0 4 0 4 -2517 33 31 -48.3 1099.75 85 8 1 2 21 0 7 0 7 -2518 33 32 -44.1 1099.75 85 10 1 2 21 0 9 0 9 -2519 33 33 -39.9 1099.75 89 9 1 2 22 0 8 0 8 -2520 33 34 -35.7 1099.75 89 7 1 2 22 0 6 0 6 -2521 33 35 -31.5 1099.75 89 5 1 2 22 0 4 0 4 -2522 33 36 -27.3 1099.75 89 6 1 2 22 0 5 0 5 -2523 33 37 -23.1 1099.75 89 8 1 2 22 0 7 0 7 -2524 33 38 -18.9 1099.75 93 9 1 2 23 0 8 0 8 -2525 33 39 -14.7 1099.75 93 7 1 2 23 0 6 0 6 -2526 33 40 -10.5 1099.75 93 5 1 2 23 0 4 0 4 -2527 33 41 -6.3 1099.75 93 8 1 2 23 0 7 0 7 -2528 33 42 -2.1 1099.75 93 10 1 2 23 0 9 0 9 -2529 33 43 2.1 1099.75 97 9 1 2 24 0 8 0 8 -2530 33 44 6.3 1099.75 97 7 1 2 24 0 6 0 6 -2531 33 45 10.5 1099.75 97 6 1 2 24 0 5 0 5 -2532 33 46 14.7 1099.75 97 8 1 2 24 0 7 0 7 -2533 33 47 18.9 1099.75 97 10 1 2 24 0 9 0 9 -2534 33 48 23.1 1099.75 101 7 1 2 25 0 6 0 6 -2535 33 49 27.3 1099.75 101 5 1 2 25 0 4 0 4 -2536 33 50 31.5 1099.75 101 6 1 2 25 0 5 0 5 -2537 33 51 35.7 1099.75 101 8 1 2 25 0 7 0 7 -2538 33 52 39.9 1099.75 101 10 1 2 25 0 9 0 9 -2539 33 53 44.1 1099.75 105 9 1 2 26 0 8 0 8 -2540 33 54 48.3 1099.75 105 7 1 2 26 0 6 0 6 -2541 33 55 52.5 1099.75 105 6 1 2 26 0 5 0 5 -2542 33 56 56.7 1099.75 105 8 1 2 26 0 7 0 7 -2543 33 57 60.9 1099.75 109 9 1 2 27 0 8 0 8 -2544 33 58 65.1 1099.75 109 7 1 2 27 0 6 0 6 -2545 33 59 69.3 1099.75 109 6 1 2 27 0 5 0 5 -2546 33 60 73.5 1099.75 109 8 1 2 27 0 7 0 7 -2547 33 61 77.7 1099.75 109 10 1 2 27 0 9 0 9 -2548 33 62 81.9 1099.75 113 9 1 2 28 0 8 0 8 -2549 33 63 86.1 1099.75 113 7 1 2 28 0 6 0 6 -2550 33 64 90.3 1099.75 113 5 1 2 28 0 4 0 4 -2551 33 65 94.5 1099.75 113 8 1 2 28 0 7 0 7 -2552 33 66 98.7 1099.75 113 10 1 2 28 0 9 0 9 -2553 33 67 102.9 1099.75 117 7 1 2 29 0 6 0 6 -2554 33 68 107.1 1099.75 117 5 1 2 29 0 4 0 4 -2555 33 69 111.3 1099.75 117 6 1 2 29 0 5 0 5 -2556 33 70 115.5 1099.75 117 8 1 2 29 0 7 0 7 -2557 33 71 119.7 1099.75 117 10 1 2 29 0 9 0 9 -2558 33 72 123.9 1099.75 121 9 1 2 30 0 8 0 8 -2559 33 73 128.1 1099.75 121 7 1 2 30 0 6 0 6 -2560 33 74 132.3 1099.75 121 6 1 2 30 0 5 0 5 -2561 33 75 136.5 1099.75 121 8 1 2 30 0 7 0 7 -2562 33 76 140.7 1099.75 125 9 1 2 31 0 8 0 8 -2563 33 77 144.9 1099.75 125 7 1 2 31 0 6 0 6 -2564 33 78 149.1 1099.75 125 5 1 2 31 0 4 0 4 -2565 33 79 153.3 1099.75 125 8 1 2 31 0 7 0 7 -2566 33 80 157.5 1099.75 125 10 1 2 31 0 9 0 9 -2567 33 81 161.7 1099.75 129 9 1 2 32 0 8 0 8 -2568 33 82 165.9 1099.75 129 7 1 2 32 0 6 0 6 -2569 33 83 170.1 1099.75 129 5 1 2 32 0 4 0 4 -2570 33 84 174.3 1099.75 129 8 1 2 32 0 7 0 7 -2571 33 85 178.5 1099.75 129 10 1 2 32 0 9 0 9 -2572 34 0 -178.5 1107.25 61 15 1 2 15 0 14 0 14 -2573 34 1 -174.3 1107.25 61 13 1 2 15 0 12 0 12 -2574 34 2 -170.1 1107.25 61 11 1 2 15 0 10 0 10 -2575 34 3 -165.9 1107.25 61 12 1 2 15 0 11 0 11 -2576 34 4 -161.7 1107.25 61 14 1 2 15 0 13 0 13 -2577 34 5 -157.5 1107.25 65 13 1 2 16 0 12 0 12 -2578 34 6 -153.3 1107.25 65 11 1 2 16 0 10 0 10 -2579 34 7 -149.1 1107.25 65 12 1 2 16 0 11 0 11 -2580 34 8 -144.9 1107.25 65 14 1 2 16 0 13 0 13 -2581 34 9 -140.7 1107.25 69 13 1 2 17 0 12 0 12 -2582 34 10 -136.5 1107.25 69 11 1 2 17 0 10 0 10 -2583 34 11 -132.3 1107.25 69 9 1 2 17 0 8 0 8 -2584 34 12 -128.1 1107.25 69 12 1 2 17 0 11 0 11 -2585 34 13 -123.9 1107.25 69 14 1 2 17 0 13 0 13 -2586 34 14 -119.7 1107.25 73 13 1 2 18 0 12 0 12 -2587 34 15 -115.5 1107.25 73 11 1 2 18 0 10 0 10 -2588 34 16 -111.3 1107.25 73 10 1 2 18 0 9 0 9 -2589 34 17 -107.1 1107.25 73 12 1 2 18 0 11 0 11 -2590 34 18 -102.9 1107.25 73 14 1 2 18 0 13 0 13 -2591 34 19 -98.7 1107.25 77 15 1 2 19 0 14 0 14 -2592 34 20 -94.5 1107.25 77 13 1 2 19 0 12 0 12 -2593 34 21 -90.3 1107.25 77 11 1 2 19 0 10 0 10 -2594 34 22 -86.1 1107.25 77 12 1 2 19 0 11 0 11 -2595 34 23 -81.9 1107.25 77 14 1 2 19 0 13 0 13 -2596 34 24 -77.7 1107.25 81 13 1 2 20 0 12 0 12 -2597 34 25 -73.5 1107.25 81 11 1 2 20 0 10 0 10 -2598 34 26 -69.3 1107.25 81 12 1 2 20 0 11 0 11 -2599 34 27 -65.1 1107.25 81 14 1 2 20 0 13 0 13 -2600 34 28 -60.9 1107.25 81 16 1 2 20 0 15 0 15 -2601 34 29 -56.7 1107.25 85 11 1 2 21 0 10 0 10 -2602 34 30 -52.5 1107.25 85 9 1 2 21 0 8 0 8 -2603 34 31 -48.3 1107.25 85 12 1 2 21 0 11 0 11 -2604 34 32 -44.1 1107.25 85 14 1 2 21 0 13 0 13 -2605 34 33 -39.9 1107.25 89 13 1 2 22 0 12 0 12 -2606 34 34 -35.7 1107.25 89 11 1 2 22 0 10 0 10 -2607 34 35 -31.5 1107.25 89 10 1 2 22 0 9 0 9 -2608 34 36 -27.3 1107.25 89 12 1 2 22 0 11 0 11 -2609 34 37 -23.1 1107.25 89 14 1 2 22 0 13 0 13 -2610 34 38 -18.9 1107.25 93 13 1 2 23 0 12 0 12 -2611 34 39 -14.7 1107.25 93 11 1 2 23 0 10 0 10 -2612 34 40 -10.5 1107.25 93 12 1 2 23 0 11 0 11 -2613 34 41 -6.3 1107.25 93 14 1 2 23 0 13 0 13 -2614 34 42 -2.1 1107.25 93 16 1 2 23 0 15 0 15 -2615 34 43 2.1 1107.25 97 15 1 2 24 0 14 0 14 -2616 34 44 6.3 1107.25 97 13 1 2 24 0 12 0 12 -2617 34 45 10.5 1107.25 97 11 1 2 24 0 10 0 10 -2618 34 46 14.7 1107.25 97 12 1 2 24 0 11 0 11 -2619 34 47 18.9 1107.25 97 14 1 2 24 0 13 0 13 -2620 34 48 23.1 1107.25 101 13 1 2 25 0 12 0 12 -2621 34 49 27.3 1107.25 101 11 1 2 25 0 10 0 10 -2622 34 50 31.5 1107.25 101 9 1 2 25 0 8 0 8 -2623 34 51 35.7 1107.25 101 12 1 2 25 0 11 0 11 -2624 34 52 39.9 1107.25 101 14 1 2 25 0 13 0 13 -2625 34 53 44.1 1107.25 105 13 1 2 26 0 12 0 12 -2626 34 54 48.3 1107.25 105 11 1 2 26 0 10 0 10 -2627 34 55 52.5 1107.25 105 10 1 2 26 0 9 0 9 -2628 34 56 56.7 1107.25 105 12 1 2 26 0 11 0 11 -2629 34 57 60.9 1107.25 109 15 1 2 27 0 14 0 14 -2630 34 58 65.1 1107.25 109 13 1 2 27 0 12 0 12 -2631 34 59 69.3 1107.25 109 11 1 2 27 0 10 0 10 -2632 34 60 73.5 1107.25 109 12 1 2 27 0 11 0 11 -2633 34 61 77.7 1107.25 109 14 1 2 27 0 13 0 13 -2634 34 62 81.9 1107.25 113 13 1 2 28 0 12 0 12 -2635 34 63 86.1 1107.25 113 11 1 2 28 0 10 0 10 -2636 34 64 90.3 1107.25 113 12 1 2 28 0 11 0 11 -2637 34 65 94.5 1107.25 113 14 1 2 28 0 13 0 13 -2638 34 66 98.7 1107.25 113 16 1 2 28 0 15 0 15 -2639 34 67 102.9 1107.25 117 13 1 2 29 0 12 0 12 -2640 34 68 107.1 1107.25 117 11 1 2 29 0 10 0 10 -2641 34 69 111.3 1107.25 117 9 1 2 29 0 8 0 8 -2642 34 70 115.5 1107.25 117 12 1 2 29 0 11 0 11 -2643 34 71 119.7 1107.25 117 14 1 2 29 0 13 0 13 -2644 34 72 123.9 1107.25 121 13 1 2 30 0 12 0 12 -2645 34 73 128.1 1107.25 121 11 1 2 30 0 10 0 10 -2646 34 74 132.3 1107.25 121 10 1 2 30 0 9 0 9 -2647 34 75 136.5 1107.25 121 12 1 2 30 0 11 0 11 -2648 34 76 140.7 1107.25 121 14 1 2 30 0 13 0 13 -2649 34 77 144.9 1107.25 125 13 1 2 31 0 12 0 12 -2650 34 78 149.1 1107.25 125 11 1 2 31 0 10 0 10 -2651 34 79 153.3 1107.25 125 12 1 2 31 0 11 0 11 -2652 34 80 157.5 1107.25 125 14 1 2 31 0 13 0 13 -2653 34 81 161.7 1107.25 129 13 1 2 32 0 12 0 12 -2654 34 82 165.9 1107.25 129 11 1 2 32 0 10 0 10 -2655 34 83 170.1 1107.25 129 12 1 2 32 0 11 0 11 -2656 34 84 174.3 1107.25 129 14 1 2 32 0 13 0 13 -2657 34 85 178.5 1107.25 129 16 1 2 32 0 15 0 15 -2658 35 0 -182.7 1114.75 61 19 1 2 15 0 18 0 18 -2659 35 1 -178.5 1114.75 61 17 1 2 15 0 16 0 16 -2660 35 2 -174.3 1114.75 61 16 1 2 15 0 15 0 15 -2661 35 3 -170.1 1114.75 61 18 1 2 15 0 17 0 17 -2662 35 4 -165.9 1114.75 61 20 1 2 15 0 19 0 19 -2663 35 5 -161.7 1114.75 65 17 1 2 16 0 16 0 16 -2664 35 6 -157.5 1114.75 65 15 1 2 16 0 14 0 14 -2665 35 7 -153.3 1114.75 65 16 1 2 16 0 15 0 15 -2666 35 8 -149.1 1114.75 65 18 1 2 16 0 17 0 17 -2667 35 9 -144.9 1114.75 65 20 1 2 16 0 19 0 19 -2668 35 10 -140.7 1114.75 69 17 1 2 17 0 16 0 16 -2669 35 11 -136.5 1114.75 69 15 1 2 17 0 14 0 14 -2670 35 12 -132.3 1114.75 69 16 1 2 17 0 15 0 15 -2671 35 13 -128.1 1114.75 69 18 1 2 17 0 17 0 17 -2672 35 14 -123.9 1114.75 69 20 1 2 17 0 19 0 19 -2673 35 15 -119.7 1114.75 73 19 1 2 18 0 18 0 18 -2674 35 16 -115.5 1114.75 73 17 1 2 18 0 16 0 16 -2675 35 17 -111.3 1114.75 73 15 1 2 18 0 14 0 14 -2676 35 18 -107.1 1114.75 73 16 1 2 18 0 15 0 15 -2677 35 19 -102.9 1114.75 73 18 1 2 18 0 17 0 17 -2678 35 20 -98.7 1114.75 77 19 1 2 19 0 18 0 18 -2679 35 21 -94.5 1114.75 77 17 1 2 19 0 16 0 16 -2680 35 22 -90.3 1114.75 77 16 1 2 19 0 15 0 15 -2681 35 23 -86.1 1114.75 77 18 1 2 19 0 17 0 17 -2682 35 24 -81.9 1114.75 77 20 1 2 19 0 19 0 19 -2683 35 25 -77.7 1114.75 81 17 1 2 20 0 16 0 16 -2684 35 26 -73.5 1114.75 81 15 1 2 20 0 14 0 14 -2685 35 27 -69.3 1114.75 81 18 1 2 20 0 17 0 17 -2686 35 28 -65.1 1114.75 81 20 1 2 20 0 19 0 19 -2687 35 29 -60.9 1114.75 85 17 1 2 21 0 16 0 16 -2688 35 30 -56.7 1114.75 85 15 1 2 21 0 14 0 14 -2689 35 31 -52.5 1114.75 85 13 1 2 21 0 12 0 12 -2690 35 32 -48.3 1114.75 85 16 1 2 21 0 15 0 15 -2691 35 33 -44.1 1114.75 85 18 1 2 21 0 17 0 17 -2692 35 34 -39.9 1114.75 89 19 1 2 22 0 18 0 18 -2693 35 35 -35.7 1114.75 89 17 1 2 22 0 16 0 16 -2694 35 36 -31.5 1114.75 89 15 1 2 22 0 14 0 14 -2695 35 37 -27.3 1114.75 89 16 1 2 22 0 15 0 15 -2696 35 38 -23.1 1114.75 89 18 1 2 22 0 17 0 17 -2697 35 39 -18.9 1114.75 93 19 1 2 23 0 18 0 18 -2698 35 40 -14.7 1114.75 93 17 1 2 23 0 16 0 16 -2699 35 41 -10.5 1114.75 93 15 1 2 23 0 14 0 14 -2700 35 42 -6.3 1114.75 93 18 1 2 23 0 17 0 17 -2701 35 43 -2.1 1114.75 93 20 1 2 23 0 19 0 19 -2702 35 44 2.1 1114.75 97 19 1 2 24 0 18 0 18 -2703 35 45 6.3 1114.75 97 17 1 2 24 0 16 0 16 -2704 35 46 10.5 1114.75 97 16 1 2 24 0 15 0 15 -2705 35 47 14.7 1114.75 97 18 1 2 24 0 17 0 17 -2706 35 48 18.9 1114.75 97 20 1 2 24 0 19 0 19 -2707 35 49 23.1 1114.75 101 17 1 2 25 0 16 0 16 -2708 35 50 27.3 1114.75 101 15 1 2 25 0 14 0 14 -2709 35 51 31.5 1114.75 101 16 1 2 25 0 15 0 15 -2710 35 52 35.7 1114.75 101 18 1 2 25 0 17 0 17 -2711 35 53 39.9 1114.75 101 20 1 2 25 0 19 0 19 -2712 35 54 44.1 1114.75 105 17 1 2 26 0 16 0 16 -2713 35 55 48.3 1114.75 105 15 1 2 26 0 14 0 14 -2714 35 56 52.5 1114.75 105 14 1 2 26 0 13 0 13 -2715 35 57 56.7 1114.75 105 16 1 2 26 0 15 0 15 -2716 35 58 60.9 1114.75 105 18 1 2 26 0 17 0 17 -2717 35 59 65.1 1114.75 109 19 1 2 27 0 18 0 18 -2718 35 60 69.3 1114.75 109 17 1 2 27 0 16 0 16 -2719 35 61 73.5 1114.75 109 16 1 2 27 0 15 0 15 -2720 35 62 77.7 1114.75 109 18 1 2 27 0 17 0 17 -2721 35 63 81.9 1114.75 113 19 1 2 28 0 18 0 18 -2722 35 64 86.1 1114.75 113 17 1 2 28 0 16 0 16 -2723 35 65 90.3 1114.75 113 15 1 2 28 0 14 0 14 -2724 35 66 94.5 1114.75 113 18 1 2 28 0 17 0 17 -2725 35 67 98.7 1114.75 113 20 1 2 28 0 19 0 19 -2726 35 68 102.9 1114.75 117 17 1 2 29 0 16 0 16 -2727 35 69 107.1 1114.75 117 15 1 2 29 0 14 0 14 -2728 35 70 111.3 1114.75 117 16 1 2 29 0 15 0 15 -2729 35 71 115.5 1114.75 117 18 1 2 29 0 17 0 17 -2730 35 72 119.7 1114.75 117 20 1 2 29 0 19 0 19 -2731 35 73 123.9 1114.75 121 19 1 2 30 0 18 0 18 -2732 35 74 128.1 1114.75 121 17 1 2 30 0 16 0 16 -2733 35 75 132.3 1114.75 121 15 1 2 30 0 14 0 14 -2734 35 76 136.5 1114.75 121 16 1 2 30 0 15 0 15 -2735 35 77 140.7 1114.75 121 18 1 2 30 0 17 0 17 -2736 35 78 144.9 1114.75 125 19 1 2 31 0 18 0 18 -2737 35 79 149.1 1114.75 125 17 1 2 31 0 16 0 16 -2738 35 80 153.3 1114.75 125 15 1 2 31 0 14 0 14 -2739 35 81 157.5 1114.75 125 16 1 2 31 0 15 0 15 -2740 35 82 161.7 1114.75 125 18 1 2 31 0 17 0 17 -2741 35 83 165.9 1114.75 129 19 1 2 32 0 18 0 18 -2742 35 84 170.1 1114.75 129 17 1 2 32 0 16 0 16 -2743 35 85 174.3 1114.75 129 15 1 2 32 0 14 0 14 -2744 35 86 178.5 1114.75 129 18 1 2 32 0 17 0 17 -2745 35 87 182.7 1114.75 129 20 1 2 32 0 19 0 19 -2746 36 0 -182.7 1122.25 61 25 1 2 15 0 24 0 24 -2747 36 1 -178.5 1122.25 61 23 1 2 15 0 22 0 22 -2748 36 2 -174.3 1122.25 61 21 1 2 15 0 20 0 20 -2749 36 3 -170.1 1122.25 61 22 1 2 15 0 21 0 21 -2750 36 4 -165.9 1122.25 61 24 1 2 15 0 23 0 23 -2751 36 5 -161.7 1122.25 65 23 1 2 16 0 22 0 22 -2752 36 6 -157.5 1122.25 65 21 1 2 16 0 20 0 20 -2753 36 7 -153.3 1122.25 65 19 1 2 16 0 18 0 18 -2754 36 8 -149.1 1122.25 65 22 1 2 16 0 21 0 21 -2755 36 9 -144.9 1122.25 65 24 1 2 16 0 23 0 23 -2756 36 10 -140.7 1122.25 69 23 1 2 17 0 22 0 22 -2757 36 11 -136.5 1122.25 69 21 1 2 17 0 20 0 20 -2758 36 12 -132.3 1122.25 69 19 1 2 17 0 18 0 18 -2759 36 13 -128.1 1122.25 69 22 1 2 17 0 21 0 21 -2760 36 14 -123.9 1122.25 69 24 1 2 17 0 23 0 23 -2761 36 15 -119.7 1122.25 73 23 1 2 18 0 22 0 22 -2762 36 16 -115.5 1122.25 73 21 1 2 18 0 20 0 20 -2763 36 17 -111.3 1122.25 73 20 1 2 18 0 19 0 19 -2764 36 18 -107.1 1122.25 73 22 1 2 18 0 21 0 21 -2765 36 19 -102.9 1122.25 73 24 1 2 18 0 23 0 23 -2766 36 20 -98.7 1122.25 77 23 1 2 19 0 22 0 22 -2767 36 21 -94.5 1122.25 77 21 1 2 19 0 20 0 20 -2768 36 22 -90.3 1122.25 77 22 1 2 19 0 21 0 21 -2769 36 23 -86.1 1122.25 77 24 1 2 19 0 23 0 23 -2770 36 24 -81.9 1122.25 81 23 1 2 20 0 22 0 22 -2771 36 25 -77.7 1122.25 81 21 1 2 20 0 20 0 20 -2772 36 26 -73.5 1122.25 81 19 1 2 20 0 18 0 18 -2773 36 27 -69.3 1122.25 81 22 1 2 20 0 21 0 21 -2774 36 28 -65.1 1122.25 81 24 1 2 20 0 23 0 23 -2775 36 29 -60.9 1122.25 85 23 1 2 21 0 22 0 22 -2776 36 30 -56.7 1122.25 85 21 1 2 21 0 20 0 20 -2777 36 31 -52.5 1122.25 85 19 1 2 21 0 18 0 18 -2778 36 32 -48.3 1122.25 85 20 1 2 21 0 19 0 19 -2779 36 33 -44.1 1122.25 85 22 1 2 21 0 21 0 21 -2780 36 34 -39.9 1122.25 89 23 1 2 22 0 22 0 22 -2781 36 35 -35.7 1122.25 89 21 1 2 22 0 20 0 20 -2782 36 36 -31.5 1122.25 89 20 1 2 22 0 19 0 19 -2783 36 37 -27.3 1122.25 89 22 1 2 22 0 21 0 21 -2784 36 38 -23.1 1122.25 89 24 1 2 22 0 23 0 23 -2785 36 39 -18.9 1122.25 93 23 1 2 23 0 22 0 22 -2786 36 40 -14.7 1122.25 93 21 1 2 23 0 20 0 20 -2787 36 41 -10.5 1122.25 93 22 1 2 23 0 21 0 21 -2788 36 42 -6.3 1122.25 93 24 1 2 23 0 23 0 23 -2789 36 43 -2.1 1122.25 93 26 1 2 23 0 25 0 25 -2790 36 44 2.1 1122.25 97 25 1 2 24 0 24 0 24 -2791 36 45 6.3 1122.25 97 23 1 2 24 0 22 0 22 -2792 36 46 10.5 1122.25 97 21 1 2 24 0 20 0 20 -2793 36 47 14.7 1122.25 97 22 1 2 24 0 21 0 21 -2794 36 48 18.9 1122.25 97 24 1 2 24 0 23 0 23 -2795 36 49 23.1 1122.25 101 23 1 2 25 0 22 0 22 -2796 36 50 27.3 1122.25 101 21 1 2 25 0 20 0 20 -2797 36 51 31.5 1122.25 101 19 1 2 25 0 18 0 18 -2798 36 52 35.7 1122.25 101 22 1 2 25 0 21 0 21 -2799 36 53 39.9 1122.25 101 24 1 2 25 0 23 0 23 -2800 36 54 44.1 1122.25 105 21 1 2 26 0 20 0 20 -2801 36 55 48.3 1122.25 105 19 1 2 26 0 18 0 18 -2802 36 56 52.5 1122.25 105 20 1 2 26 0 19 0 19 -2803 36 57 56.7 1122.25 105 22 1 2 26 0 21 0 21 -2804 36 58 60.9 1122.25 105 24 1 2 26 0 23 0 23 -2805 36 59 65.1 1122.25 109 23 1 2 27 0 22 0 22 -2806 36 60 69.3 1122.25 109 21 1 2 27 0 20 0 20 -2807 36 61 73.5 1122.25 109 20 1 2 27 0 19 0 19 -2808 36 62 77.7 1122.25 109 22 1 2 27 0 21 0 21 -2809 36 63 81.9 1122.25 109 24 1 2 27 0 23 0 23 -2810 36 64 86.1 1122.25 113 23 1 2 28 0 22 0 22 -2811 36 65 90.3 1122.25 113 21 1 2 28 0 20 0 20 -2812 36 66 94.5 1122.25 113 22 1 2 28 0 21 0 21 -2813 36 67 98.7 1122.25 113 24 1 2 28 0 23 0 23 -2814 36 68 102.9 1122.25 117 23 1 2 29 0 22 0 22 -2815 36 69 107.1 1122.25 117 21 1 2 29 0 20 0 20 -2816 36 70 111.3 1122.25 117 19 1 2 29 0 18 0 18 -2817 36 71 115.5 1122.25 117 22 1 2 29 0 21 0 21 -2818 36 72 119.7 1122.25 117 24 1 2 29 0 23 0 23 -2819 36 73 123.9 1122.25 121 23 1 2 30 0 22 0 22 -2820 36 74 128.1 1122.25 121 21 1 2 30 0 20 0 20 -2821 36 75 132.3 1122.25 121 20 1 2 30 0 19 0 19 -2822 36 76 136.5 1122.25 121 22 1 2 30 0 21 0 21 -2823 36 77 140.7 1122.25 121 24 1 2 30 0 23 0 23 -2824 36 78 144.9 1122.25 125 23 1 2 31 0 22 0 22 -2825 36 79 149.1 1122.25 125 21 1 2 31 0 20 0 20 -2826 36 80 153.3 1122.25 125 20 1 2 31 0 19 0 19 -2827 36 81 157.5 1122.25 125 22 1 2 31 0 21 0 21 -2828 36 82 161.7 1122.25 125 24 1 2 31 0 23 0 23 -2829 36 83 165.9 1122.25 129 23 1 2 32 0 22 0 22 -2830 36 84 170.1 1122.25 129 21 1 2 32 0 20 0 20 -2831 36 85 174.3 1122.25 129 22 1 2 32 0 21 0 21 -2832 36 86 178.5 1122.25 129 24 1 2 32 0 23 0 23 -2833 36 87 182.7 1122.25 129 26 1 2 32 0 25 0 25 -2834 37 0 -182.7 1129.75 61 29 1 2 15 0 28 0 28 -2835 37 1 -178.5 1129.75 61 27 1 2 15 0 26 0 26 -2836 37 2 -174.3 1129.75 61 26 1 2 15 0 25 0 25 -2837 37 3 -170.1 1129.75 61 28 1 2 15 0 27 0 27 -2838 37 4 -165.9 1129.75 61 30 1 2 15 0 29 0 29 -2839 37 5 -161.7 1129.75 65 27 1 2 16 0 26 0 26 -2840 37 6 -157.5 1129.75 65 25 1 2 16 0 24 0 24 -2841 37 7 -153.3 1129.75 65 26 1 2 16 0 25 0 25 -2842 37 8 -149.1 1129.75 65 28 1 2 16 0 27 0 27 -2843 37 9 -144.9 1129.75 65 30 1 2 16 0 29 0 29 -2844 37 10 -140.7 1129.75 69 27 1 2 17 0 26 0 26 -2845 37 11 -136.5 1129.75 69 25 1 2 17 0 24 0 24 -2846 37 12 -132.3 1129.75 69 26 1 2 17 0 25 0 25 -2847 37 13 -128.1 1129.75 69 28 1 2 17 0 27 0 27 -2848 37 14 -123.9 1129.75 69 30 1 2 17 0 29 0 29 -2849 37 15 -119.7 1129.75 73 27 1 2 18 0 26 0 26 -2850 37 16 -115.5 1129.75 73 25 1 2 18 0 24 0 24 -2851 37 17 -111.3 1129.75 73 26 1 2 18 0 25 0 25 -2852 37 18 -107.1 1129.75 73 28 1 2 18 0 27 0 27 -2853 37 19 -102.9 1129.75 77 29 1 2 19 0 28 0 28 -2854 37 20 -98.7 1129.75 77 27 1 2 19 0 26 0 26 -2855 37 21 -94.5 1129.75 77 25 1 2 19 0 24 0 24 -2856 37 22 -90.3 1129.75 77 26 1 2 19 0 25 0 25 -2857 37 23 -86.1 1129.75 77 28 1 2 19 0 27 0 27 -2858 37 24 -81.9 1129.75 81 29 1 2 20 0 28 0 28 -2859 37 25 -77.7 1129.75 81 27 1 2 20 0 26 0 26 -2860 37 26 -73.5 1129.75 81 25 1 2 20 0 24 0 24 -2861 37 27 -69.3 1129.75 81 26 1 2 20 0 25 0 25 -2862 37 28 -65.1 1129.75 81 28 1 2 20 0 27 0 27 -2863 37 29 -60.9 1129.75 85 27 1 2 21 0 26 0 26 -2864 37 30 -56.7 1129.75 85 25 1 2 21 0 24 0 24 -2865 37 31 -52.5 1129.75 85 24 1 2 21 0 23 0 23 -2866 37 32 -48.3 1129.75 85 26 1 2 21 0 25 0 25 -2867 37 33 -44.1 1129.75 85 28 1 2 21 0 27 0 27 -2868 37 34 -39.9 1129.75 89 29 1 2 22 0 28 0 28 -2869 37 35 -35.7 1129.75 89 27 1 2 22 0 26 0 26 -2870 37 36 -31.5 1129.75 89 25 1 2 22 0 24 0 24 -2871 37 37 -27.3 1129.75 89 26 1 2 22 0 25 0 25 -2872 37 38 -23.1 1129.75 89 28 1 2 22 0 27 0 27 -2873 37 39 -18.9 1129.75 93 29 1 2 23 0 28 0 28 -2874 37 40 -14.7 1129.75 93 27 1 2 23 0 26 0 26 -2875 37 41 -10.5 1129.75 93 25 1 2 23 0 24 0 24 -2876 37 42 -6.3 1129.75 93 28 1 2 23 0 27 0 27 -2877 37 43 -2.1 1129.75 93 30 1 2 23 0 29 0 29 -2878 37 44 2.1 1129.75 97 29 1 2 24 0 28 0 28 -2879 37 45 6.3 1129.75 97 27 1 2 24 0 26 0 26 -2880 37 46 10.5 1129.75 97 26 1 2 24 0 25 0 25 -2881 37 47 14.7 1129.75 97 28 1 2 24 0 27 0 27 -2882 37 48 18.9 1129.75 97 30 1 2 24 0 29 0 29 -2883 37 49 23.1 1129.75 101 27 1 2 25 0 26 0 26 -2884 37 50 27.3 1129.75 101 25 1 2 25 0 24 0 24 -2885 37 51 31.5 1129.75 101 26 1 2 25 0 25 0 25 -2886 37 52 35.7 1129.75 101 28 1 2 25 0 27 0 27 -2887 37 53 39.9 1129.75 101 30 1 2 25 0 29 0 29 -2888 37 54 44.1 1129.75 105 27 1 2 26 0 26 0 26 -2889 37 55 48.3 1129.75 105 25 1 2 26 0 24 0 24 -2890 37 56 52.5 1129.75 105 23 1 2 26 0 22 0 22 -2891 37 57 56.7 1129.75 105 26 1 2 26 0 25 0 25 -2892 37 58 60.9 1129.75 105 28 1 2 26 0 27 0 27 -2893 37 59 65.1 1129.75 109 27 1 2 27 0 26 0 26 -2894 37 60 69.3 1129.75 109 25 1 2 27 0 24 0 24 -2895 37 61 73.5 1129.75 109 26 1 2 27 0 25 0 25 -2896 37 62 77.7 1129.75 109 28 1 2 27 0 27 0 27 -2897 37 63 81.9 1129.75 109 30 1 2 27 0 29 0 29 -2898 37 64 86.1 1129.75 113 27 1 2 28 0 26 0 26 -2899 37 65 90.3 1129.75 113 25 1 2 28 0 24 0 24 -2900 37 66 94.5 1129.75 113 26 1 2 28 0 25 0 25 -2901 37 67 98.7 1129.75 113 28 1 2 28 0 27 0 27 -2902 37 68 102.9 1129.75 113 30 1 2 28 0 29 0 29 -2903 37 69 107.1 1129.75 117 27 1 2 29 0 26 0 26 -2904 37 70 111.3 1129.75 117 25 1 2 29 0 24 0 24 -2905 37 71 115.5 1129.75 117 26 1 2 29 0 25 0 25 -2906 37 72 119.7 1129.75 117 28 1 2 29 0 27 0 27 -2907 37 73 123.9 1129.75 121 29 1 2 30 0 28 0 28 -2908 37 74 128.1 1129.75 121 27 1 2 30 0 26 0 26 -2909 37 75 132.3 1129.75 121 25 1 2 30 0 24 0 24 -2910 37 76 136.5 1129.75 121 26 1 2 30 0 25 0 25 -2911 37 77 140.7 1129.75 121 28 1 2 30 0 27 0 27 -2912 37 78 144.9 1129.75 125 29 1 2 31 0 28 0 28 -2913 37 79 149.1 1129.75 125 27 1 2 31 0 26 0 26 -2914 37 80 153.3 1129.75 125 25 1 2 31 0 24 0 24 -2915 37 81 157.5 1129.75 125 26 1 2 31 0 25 0 25 -2916 37 82 161.7 1129.75 125 28 1 2 31 0 27 0 27 -2917 37 83 165.9 1129.75 129 29 1 2 32 0 28 0 28 -2918 37 84 170.1 1129.75 129 27 1 2 32 0 26 0 26 -2919 37 85 174.3 1129.75 129 25 1 2 32 0 24 0 24 -2920 37 86 178.5 1129.75 129 28 1 2 32 0 27 0 27 -2921 37 87 182.7 1129.75 129 30 1 2 32 0 29 0 29 -2922 38 0 -186.9 1137.25 61 35 1 2 15 0 34 1 2 -2923 38 1 -182.7 1137.25 61 33 1 2 15 0 32 1 0 -2924 38 2 -178.5 1137.25 61 31 1 2 15 0 30 0 30 -2925 38 3 -174.3 1137.25 61 32 1 2 15 0 31 0 31 -2926 38 4 -170.1 1137.25 61 34 1 2 15 0 33 1 1 -2927 38 5 -165.9 1137.25 65 33 1 2 16 0 32 1 0 -2928 38 6 -161.7 1137.25 65 31 1 2 16 0 30 0 30 -2929 38 7 -157.5 1137.25 65 29 1 2 16 0 28 0 28 -2930 38 8 -153.3 1137.25 65 32 1 2 16 0 31 0 31 -2931 38 9 -149.1 1137.25 65 34 1 2 16 0 33 1 1 -2932 38 10 -144.9 1137.25 69 33 1 2 17 0 32 1 0 -2933 38 11 -140.7 1137.25 69 31 1 2 17 0 30 0 30 -2934 38 12 -136.5 1137.25 69 29 1 2 17 0 28 0 28 -2935 38 13 -132.3 1137.25 69 32 1 2 17 0 31 0 31 -2936 38 14 -128.1 1137.25 69 34 1 2 17 0 33 1 1 -2937 38 15 -123.9 1137.25 73 31 1 2 18 0 30 0 30 -2938 38 16 -119.7 1137.25 73 29 1 2 18 0 28 0 28 -2939 38 17 -115.5 1137.25 73 30 1 2 18 0 29 0 29 -2940 38 18 -111.3 1137.25 73 32 1 2 18 0 31 0 31 -2941 38 19 -107.1 1137.25 73 34 1 2 18 0 33 1 1 -2942 38 20 -102.9 1137.25 77 33 1 2 19 0 32 1 0 -2943 38 21 -98.7 1137.25 77 31 1 2 19 0 30 0 30 -2944 38 22 -94.5 1137.25 77 30 1 2 19 0 29 0 29 -2945 38 23 -90.3 1137.25 77 32 1 2 19 0 31 0 31 -2946 38 24 -86.1 1137.25 77 34 1 2 19 0 33 1 1 -2947 38 25 -81.9 1137.25 81 33 1 2 20 0 32 1 0 -2948 38 26 -77.7 1137.25 81 31 1 2 20 0 30 0 30 -2949 38 27 -73.5 1137.25 81 30 1 2 20 0 29 0 29 -2950 38 28 -69.3 1137.25 81 32 1 2 20 0 31 0 31 -2951 38 29 -65.1 1137.25 81 34 1 2 20 0 33 1 1 -2952 38 30 -60.9 1137.25 85 33 1 2 21 0 32 1 0 -2953 38 31 -56.7 1137.25 85 31 1 2 21 0 30 0 30 -2954 38 32 -52.5 1137.25 85 29 1 2 21 0 28 0 28 -2955 38 33 -48.3 1137.25 85 30 1 2 21 0 29 0 29 -2956 38 34 -44.1 1137.25 85 32 1 2 21 0 31 0 31 -2957 38 35 -39.9 1137.25 89 33 1 2 22 0 32 1 0 -2958 38 36 -35.7 1137.25 89 31 1 2 22 0 30 0 30 -2959 38 37 -31.5 1137.25 89 30 1 2 22 0 29 0 29 -2960 38 38 -27.3 1137.25 89 32 1 2 22 0 31 0 31 -2961 38 39 -23.1 1137.25 89 34 1 2 22 0 33 1 1 -2962 38 40 -18.9 1137.25 93 33 1 2 23 0 32 1 0 -2963 38 41 -14.7 1137.25 93 31 1 2 23 0 30 0 30 -2964 38 42 -10.5 1137.25 93 32 1 2 23 0 31 0 31 -2965 38 43 -6.3 1137.25 93 34 1 2 23 0 33 1 1 -2966 38 44 -2.1 1137.25 93 36 1 2 23 0 35 1 3 -2967 38 45 2.1 1137.25 97 35 1 2 24 0 34 1 2 -2968 38 46 6.3 1137.25 97 33 1 2 24 0 32 1 0 -2969 38 47 10.5 1137.25 97 31 1 2 24 0 30 0 30 -2970 38 48 14.7 1137.25 97 32 1 2 24 0 31 0 31 -2971 38 49 18.9 1137.25 97 34 1 2 24 0 33 1 1 -2972 38 50 23.1 1137.25 101 33 1 2 25 0 32 1 0 -2973 38 51 27.3 1137.25 101 31 1 2 25 0 30 0 30 -2974 38 52 31.5 1137.25 101 29 1 2 25 0 28 0 28 -2975 38 53 35.7 1137.25 101 32 1 2 25 0 31 0 31 -2976 38 54 39.9 1137.25 101 34 1 2 25 0 33 1 1 -2977 38 55 44.1 1137.25 105 31 1 2 26 0 30 0 30 -2978 38 56 48.3 1137.25 105 29 1 2 26 0 28 0 28 -2979 38 57 52.5 1137.25 105 30 1 2 26 0 29 0 29 -2980 38 58 56.7 1137.25 105 32 1 2 26 0 31 0 31 -2981 38 59 60.9 1137.25 105 34 1 2 26 0 33 1 1 -2982 38 60 65.1 1137.25 109 33 1 2 27 0 32 1 0 -2983 38 61 69.3 1137.25 109 31 1 2 27 0 30 0 30 -2984 38 62 73.5 1137.25 109 29 1 2 27 0 28 0 28 -2985 38 63 77.7 1137.25 109 32 1 2 27 0 31 0 31 -2986 38 64 81.9 1137.25 109 34 1 2 27 0 33 1 1 -2987 38 65 86.1 1137.25 113 33 1 2 28 0 32 1 0 -2988 38 66 90.3 1137.25 113 31 1 2 28 0 30 0 30 -2989 38 67 94.5 1137.25 113 29 1 2 28 0 28 0 28 -2990 38 68 98.7 1137.25 113 32 1 2 28 0 31 0 31 -2991 38 69 102.9 1137.25 113 34 1 2 28 0 33 1 1 -2992 38 70 107.1 1137.25 117 33 1 2 29 0 32 1 0 -2993 38 71 111.3 1137.25 117 31 1 2 29 0 30 0 30 -2994 38 72 115.5 1137.25 117 29 1 2 29 0 28 0 28 -2995 38 73 119.7 1137.25 117 30 1 2 29 0 29 0 29 -2996 38 74 123.9 1137.25 117 32 1 2 29 0 31 0 31 -2997 38 75 128.1 1137.25 121 33 1 2 30 0 32 1 0 -2998 38 76 132.3 1137.25 121 31 1 2 30 0 30 0 30 -2999 38 77 136.5 1137.25 121 30 1 2 30 0 29 0 29 -3000 38 78 140.7 1137.25 121 32 1 2 30 0 31 0 31 -3001 38 79 144.9 1137.25 121 34 1 2 30 0 33 1 1 -3002 38 80 149.1 1137.25 125 33 1 2 31 0 32 1 0 -3003 38 81 153.3 1137.25 125 31 1 2 31 0 30 0 30 -3004 38 82 157.5 1137.25 125 30 1 2 31 0 29 0 29 -3005 38 83 161.7 1137.25 125 32 1 2 31 0 31 0 31 -3006 38 84 165.9 1137.25 125 34 1 2 31 0 33 1 1 -3007 38 85 170.1 1137.25 129 33 1 2 32 0 32 1 0 -3008 38 86 174.3 1137.25 129 31 1 2 32 0 30 0 30 -3009 38 87 178.5 1137.25 129 32 1 2 32 0 31 0 31 -3010 38 88 182.7 1137.25 129 34 1 2 32 0 33 1 1 -3011 38 89 186.9 1137.25 129 36 1 2 32 0 35 1 3 -3012 39 0 -186.9 1144.75 61 39 1 2 15 0 38 1 6 -3013 39 1 -182.7 1144.75 61 37 1 2 15 0 36 1 4 -3014 39 2 -178.5 1144.75 61 36 1 2 15 0 35 1 3 -3015 39 3 -174.3 1144.75 61 38 1 2 15 0 37 1 5 -3016 39 4 -170.1 1144.75 61 40 1 2 15 0 39 1 7 -3017 39 5 -165.9 1144.75 65 37 1 2 16 0 36 1 4 -3018 39 6 -161.7 1144.75 65 35 1 2 16 0 34 1 2 -3019 39 7 -157.5 1144.75 65 36 1 2 16 0 35 1 3 -3020 39 8 -153.3 1144.75 65 38 1 2 16 0 37 1 5 -3021 39 9 -149.1 1144.75 65 40 1 2 16 0 39 1 7 -3022 39 10 -144.9 1144.75 69 39 1 2 17 0 38 1 6 -3023 39 11 -140.7 1144.75 69 37 1 2 17 0 36 1 4 -3024 39 12 -136.5 1144.75 69 35 1 2 17 0 34 1 2 -3025 39 13 -132.3 1144.75 69 36 1 2 17 0 35 1 3 -3026 39 14 -128.1 1144.75 69 38 1 2 17 0 37 1 5 -3027 39 15 -123.9 1144.75 73 35 1 2 18 0 34 1 2 -3028 39 16 -119.7 1144.75 73 33 1 2 18 0 32 1 0 -3029 39 17 -115.5 1144.75 73 36 1 2 18 0 35 1 3 -3030 39 18 -111.3 1144.75 73 38 1 2 18 0 37 1 5 -3031 39 19 -107.1 1144.75 73 40 1 2 18 0 39 1 7 -3032 39 20 -102.9 1144.75 77 39 1 2 19 0 38 1 6 -3033 39 21 -98.7 1144.75 77 37 1 2 19 0 36 1 4 -3034 39 22 -94.5 1144.75 77 35 1 2 19 0 34 1 2 -3035 39 23 -90.3 1144.75 77 36 1 2 19 0 35 1 3 -3036 39 24 -86.1 1144.75 77 38 1 2 19 0 37 1 5 -3037 39 25 -81.9 1144.75 81 37 1 2 20 0 36 1 4 -3038 39 26 -77.7 1144.75 81 35 1 2 20 0 34 1 2 -3039 39 27 -73.5 1144.75 81 36 1 2 20 0 35 1 3 -3040 39 28 -69.3 1144.75 81 38 1 2 20 0 37 1 5 -3041 39 29 -65.1 1144.75 81 40 1 2 20 0 39 1 7 -3042 39 30 -60.9 1144.75 85 39 1 2 21 0 38 1 6 -3043 39 31 -56.7 1144.75 85 37 1 2 21 0 36 1 4 -3044 39 32 -52.5 1144.75 85 35 1 2 21 0 34 1 2 -3045 39 33 -48.3 1144.75 85 34 1 2 21 0 33 1 1 -3046 39 34 -44.1 1144.75 85 36 1 2 21 0 35 1 3 -3047 39 35 -39.9 1144.75 89 37 1 2 22 0 36 1 4 -3048 39 36 -35.7 1144.75 89 35 1 2 22 0 34 1 2 -3049 39 37 -31.5 1144.75 89 36 1 2 22 0 35 1 3 -3050 39 38 -27.3 1144.75 89 38 1 2 22 0 37 1 5 -3051 39 39 -23.1 1144.75 89 40 1 2 22 0 39 1 7 -3052 39 40 -18.9 1144.75 93 39 1 2 23 0 38 1 6 -3053 39 41 -14.7 1144.75 93 37 1 2 23 0 36 1 4 -3054 39 42 -10.5 1144.75 93 35 1 2 23 0 34 1 2 -3055 39 43 -6.3 1144.75 93 38 1 2 23 0 37 1 5 -3056 39 44 -2.1 1144.75 93 40 1 2 23 0 39 1 7 -3057 39 45 2.1 1144.75 97 39 1 2 24 0 38 1 6 -3058 39 46 6.3 1144.75 97 37 1 2 24 0 36 1 4 -3059 39 47 10.5 1144.75 97 36 1 2 24 0 35 1 3 -3060 39 48 14.7 1144.75 97 38 1 2 24 0 37 1 5 -3061 39 49 18.9 1144.75 97 40 1 2 24 0 39 1 7 -3062 39 50 23.1 1144.75 101 39 1 2 25 0 38 1 6 -3063 39 51 27.3 1144.75 101 37 1 2 25 0 36 1 4 -3064 39 52 31.5 1144.75 101 35 1 2 25 0 34 1 2 -3065 39 53 35.7 1144.75 101 36 1 2 25 0 35 1 3 -3066 39 54 39.9 1144.75 101 38 1 2 25 0 37 1 5 -3067 39 55 44.1 1144.75 105 35 1 2 26 0 34 1 2 -3068 39 56 48.3 1144.75 105 33 1 2 26 0 32 1 0 -3069 39 57 52.5 1144.75 105 36 1 2 26 0 35 1 3 -3070 39 58 56.7 1144.75 105 38 1 2 26 0 37 1 5 -3071 39 59 60.9 1144.75 105 40 1 2 26 0 39 1 7 -3072 39 60 65.1 1144.75 109 39 1 2 27 0 38 1 6 -3073 39 61 69.3 1144.75 109 37 1 2 27 0 36 1 4 -3074 39 62 73.5 1144.75 109 35 1 2 27 0 34 1 2 -3075 39 63 77.7 1144.75 109 36 1 2 27 0 35 1 3 -3076 39 64 81.9 1144.75 109 38 1 2 27 0 37 1 5 -3077 39 65 86.1 1144.75 113 37 1 2 28 0 36 1 4 -3078 39 66 90.3 1144.75 113 35 1 2 28 0 34 1 2 -3079 39 67 94.5 1144.75 113 36 1 2 28 0 35 1 3 -3080 39 68 98.7 1144.75 113 38 1 2 28 0 37 1 5 -3081 39 69 102.9 1144.75 113 40 1 2 28 0 39 1 7 -3082 39 70 107.1 1144.75 117 39 1 2 29 0 38 1 6 -3083 39 71 111.3 1144.75 117 37 1 2 29 0 36 1 4 -3084 39 72 115.5 1144.75 117 35 1 2 29 0 34 1 2 -3085 39 73 119.7 1144.75 117 34 1 2 29 0 33 1 1 -3086 39 74 123.9 1144.75 117 36 1 2 29 0 35 1 3 -3087 39 75 128.1 1144.75 121 37 1 2 30 0 36 1 4 -3088 39 76 132.3 1144.75 121 35 1 2 30 0 34 1 2 -3089 39 77 136.5 1144.75 121 36 1 2 30 0 35 1 3 -3090 39 78 140.7 1144.75 121 38 1 2 30 0 37 1 5 -3091 39 79 144.9 1144.75 121 40 1 2 30 0 39 1 7 -3092 39 80 149.1 1144.75 125 39 1 2 31 0 38 1 6 -3093 39 81 153.3 1144.75 125 37 1 2 31 0 36 1 4 -3094 39 82 157.5 1144.75 125 35 1 2 31 0 34 1 2 -3095 39 83 161.7 1144.75 125 36 1 2 31 0 35 1 3 -3096 39 84 165.9 1144.75 125 38 1 2 31 0 37 1 5 -3097 39 85 170.1 1144.75 129 39 1 2 32 0 38 1 6 -3098 39 86 174.3 1144.75 129 37 1 2 32 0 36 1 4 -3099 39 87 178.5 1144.75 129 35 1 2 32 0 34 1 2 -3100 39 88 182.7 1144.75 129 38 1 2 32 0 37 1 5 -3101 39 89 186.9 1144.75 129 40 1 2 32 0 39 1 7 -3102 40 0 -186.9 1152.25 62 5 1 2 15 1 44 1 12 -3103 40 1 -182.7 1152.25 62 3 1 2 15 1 42 1 10 -3104 40 2 -178.5 1152.25 62 1 1 2 15 1 40 1 8 -3105 40 3 -174.3 1152.25 62 2 1 2 15 1 41 1 9 -3106 40 4 -170.1 1152.25 62 4 1 2 15 1 43 1 11 -3107 40 5 -165.9 1152.25 65 39 1 2 16 0 38 1 6 -3108 40 6 -161.7 1152.25 66 3 1 2 16 1 42 1 10 -3109 40 7 -157.5 1152.25 66 1 1 2 16 1 40 1 8 -3110 40 8 -153.3 1152.25 66 2 1 2 16 1 41 1 9 -3111 40 9 -149.1 1152.25 66 4 1 2 16 1 43 1 11 -3112 40 10 -144.9 1152.25 70 3 1 2 17 1 42 1 10 -3113 40 11 -140.7 1152.25 70 1 1 2 17 1 40 1 8 -3114 40 12 -136.5 1152.25 70 2 1 2 17 1 41 1 9 -3115 40 13 -132.3 1152.25 70 4 1 2 17 1 43 1 11 -3116 40 14 -128.1 1152.25 69 40 1 2 17 0 39 1 7 -3117 40 15 -123.9 1152.25 73 39 1 2 18 0 38 1 6 -3118 40 16 -119.7 1152.25 73 37 1 2 18 0 36 1 4 -3119 40 17 -115.5 1152.25 74 2 1 2 18 1 41 1 9 -3120 40 18 -111.3 1152.25 74 4 1 2 18 1 43 1 11 -3121 40 19 -107.1 1152.25 74 6 1 2 18 1 45 1 13 -3122 40 20 -102.9 1152.25 78 3 1 2 19 1 42 1 10 -3123 40 21 -98.7 1152.25 78 1 1 2 19 1 40 1 8 -3124 40 22 -94.5 1152.25 78 2 1 2 19 1 41 1 9 -3125 40 23 -90.3 1152.25 78 4 1 2 19 1 43 1 11 -3126 40 24 -86.1 1152.25 77 40 1 2 19 0 39 1 7 -3127 40 25 -81.9 1152.25 81 39 1 2 20 0 38 1 6 -3128 40 26 -77.7 1152.25 82 3 1 2 20 1 42 1 10 -3129 40 27 -73.5 1152.25 82 1 1 2 20 1 40 1 8 -3130 40 28 -69.3 1152.25 82 2 1 2 20 1 41 1 9 -3131 40 29 -65.1 1152.25 82 4 1 2 20 1 43 1 11 -3132 40 30 -60.9 1152.25 86 5 1 2 21 1 44 1 12 -3133 40 31 -56.7 1152.25 86 3 1 2 21 1 42 1 10 -3134 40 32 -52.5 1152.25 86 1 1 2 21 1 40 1 8 -3135 40 33 -48.3 1152.25 85 38 1 2 21 0 37 1 5 -3136 40 34 -44.1 1152.25 85 40 1 2 21 0 39 1 7 -3137 40 35 -39.9 1152.25 89 39 1 2 22 0 38 1 6 -3138 40 36 -35.7 1152.25 90 3 1 2 22 1 42 1 10 -3139 40 37 -31.5 1152.25 90 1 1 2 22 1 40 1 8 -3140 40 38 -27.3 1152.25 90 2 1 2 22 1 41 1 9 -3141 40 39 -23.1 1152.25 90 4 1 2 22 1 43 1 11 -3142 40 40 -18.9 1152.25 94 3 1 2 23 1 42 1 10 -3143 40 41 -14.7 1152.25 94 1 1 2 23 1 40 1 8 -3144 40 42 -10.5 1152.25 94 2 1 2 23 1 41 1 9 -3145 40 43 -6.3 1152.25 94 4 1 2 23 1 43 1 11 -3146 40 44 -2.1 1152.25 94 6 1 2 23 1 45 1 13 -3147 40 45 2.1 1152.25 98 5 1 2 24 1 44 1 12 -3148 40 46 6.3 1152.25 98 3 1 2 24 1 42 1 10 -3149 40 47 10.5 1152.25 98 1 1 2 24 1 40 1 8 -3150 40 48 14.7 1152.25 98 2 1 2 24 1 41 1 9 -3151 40 49 18.9 1152.25 98 4 1 2 24 1 43 1 11 -3152 40 50 23.1 1152.25 102 3 1 2 25 1 42 1 10 -3153 40 51 27.3 1152.25 102 1 1 2 25 1 40 1 8 -3154 40 52 31.5 1152.25 102 2 1 2 25 1 41 1 9 -3155 40 53 35.7 1152.25 102 4 1 2 25 1 43 1 11 -3156 40 54 39.9 1152.25 101 40 1 2 25 0 39 1 7 -3157 40 55 44.1 1152.25 105 39 1 2 26 0 38 1 6 -3158 40 56 48.3 1152.25 105 37 1 2 26 0 36 1 4 -3159 40 57 52.5 1152.25 106 2 1 2 26 1 41 1 9 -3160 40 58 56.7 1152.25 106 4 1 2 26 1 43 1 11 -3161 40 59 60.9 1152.25 106 6 1 2 26 1 45 1 13 -3162 40 60 65.1 1152.25 110 3 1 2 27 1 42 1 10 -3163 40 61 69.3 1152.25 110 1 1 2 27 1 40 1 8 -3164 40 62 73.5 1152.25 110 2 1 2 27 1 41 1 9 -3165 40 63 77.7 1152.25 110 4 1 2 27 1 43 1 11 -3166 40 64 81.9 1152.25 109 40 1 2 27 0 39 1 7 -3167 40 65 86.1 1152.25 113 39 1 2 28 0 38 1 6 -3168 40 66 90.3 1152.25 114 3 1 2 28 1 42 1 10 -3169 40 67 94.5 1152.25 114 1 1 2 28 1 40 1 8 -3170 40 68 98.7 1152.25 114 2 1 2 28 1 41 1 9 -3171 40 69 102.9 1152.25 114 4 1 2 28 1 43 1 11 -3172 40 70 107.1 1152.25 118 5 1 2 29 1 44 1 12 -3173 40 71 111.3 1152.25 118 3 1 2 29 1 42 1 10 -3174 40 72 115.5 1152.25 118 1 1 2 29 1 40 1 8 -3175 40 73 119.7 1152.25 117 38 1 2 29 0 37 1 5 -3176 40 74 123.9 1152.25 117 40 1 2 29 0 39 1 7 -3177 40 75 128.1 1152.25 121 39 1 2 30 0 38 1 6 -3178 40 76 132.3 1152.25 122 3 1 2 30 1 42 1 10 -3179 40 77 136.5 1152.25 122 1 1 2 30 1 40 1 8 -3180 40 78 140.7 1152.25 122 2 1 2 30 1 41 1 9 -3181 40 79 144.9 1152.25 122 4 1 2 30 1 43 1 11 -3182 40 80 149.1 1152.25 126 3 1 2 31 1 42 1 10 -3183 40 81 153.3 1152.25 126 1 1 2 31 1 40 1 8 -3184 40 82 157.5 1152.25 126 2 1 2 31 1 41 1 9 -3185 40 83 161.7 1152.25 126 4 1 2 31 1 43 1 11 -3186 40 84 165.9 1152.25 125 40 1 2 31 0 39 1 7 -3187 40 85 170.1 1152.25 130 3 1 2 32 1 42 1 10 -3188 40 86 174.3 1152.25 130 1 1 2 32 1 40 1 8 -3189 40 87 178.5 1152.25 130 2 1 2 32 1 41 1 9 -3190 40 88 182.7 1152.25 130 4 1 2 32 1 43 1 11 -3191 40 89 186.9 1152.25 130 6 1 2 32 1 45 1 13 -3192 41 0 -186.9 1159.75 62 9 1 2 15 1 48 1 16 -3193 41 1 -182.7 1159.75 62 7 1 2 15 1 46 1 14 -3194 41 2 -178.5 1159.75 62 6 1 2 15 1 45 1 13 -3195 41 3 -174.3 1159.75 62 8 1 2 15 1 47 1 15 -3196 41 4 -170.1 1159.75 62 10 1 2 15 1 49 1 17 -3197 41 5 -165.9 1159.75 66 7 1 2 16 1 46 1 14 -3198 41 6 -161.7 1159.75 66 5 1 2 16 1 44 1 12 -3199 41 7 -157.5 1159.75 66 6 1 2 16 1 45 1 13 -3200 41 8 -153.3 1159.75 66 8 1 2 16 1 47 1 15 -3201 41 9 -149.1 1159.75 66 10 1 2 16 1 49 1 17 -3202 41 10 -144.9 1159.75 70 7 1 2 17 1 46 1 14 -3203 41 11 -140.7 1159.75 70 5 1 2 17 1 44 1 12 -3204 41 12 -136.5 1159.75 70 6 1 2 17 1 45 1 13 -3205 41 13 -132.3 1159.75 70 8 1 2 17 1 47 1 15 -3206 41 14 -128.1 1159.75 70 10 1 2 17 1 49 1 17 -3207 41 15 -123.9 1159.75 74 5 1 2 18 1 44 1 12 -3208 41 16 -119.7 1159.75 74 3 1 2 18 1 42 1 10 -3209 41 17 -115.5 1159.75 74 1 1 2 18 1 40 1 8 -3210 41 18 -111.3 1159.75 74 8 1 2 18 1 47 1 15 -3211 41 19 -107.1 1159.75 74 10 1 2 18 1 49 1 17 -3212 41 20 -102.9 1159.75 78 7 1 2 19 1 46 1 14 -3213 41 21 -98.7 1159.75 78 5 1 2 19 1 44 1 12 -3214 41 22 -94.5 1159.75 78 6 1 2 19 1 45 1 13 -3215 41 23 -90.3 1159.75 78 8 1 2 19 1 47 1 15 -3216 41 24 -86.1 1159.75 78 10 1 2 19 1 49 1 17 -3217 41 25 -81.9 1159.75 82 9 1 2 20 1 48 1 16 -3218 41 26 -77.7 1159.75 82 7 1 2 20 1 46 1 14 -3219 41 27 -73.5 1159.75 82 5 1 2 20 1 44 1 12 -3220 41 28 -69.3 1159.75 82 6 1 2 20 1 45 1 13 -3221 41 29 -65.1 1159.75 82 8 1 2 20 1 47 1 15 -3222 41 30 -60.9 1159.75 86 9 1 2 21 1 48 1 16 -3223 41 31 -56.7 1159.75 86 7 1 2 21 1 46 1 14 -3224 41 32 -52.5 1159.75 86 2 1 2 21 1 41 1 9 -3225 41 33 -48.3 1159.75 86 4 1 2 21 1 43 1 11 -3226 41 34 -44.1 1159.75 86 6 1 2 21 1 45 1 13 -3227 41 35 -39.9 1159.75 90 9 1 2 22 1 48 1 16 -3228 41 36 -35.7 1159.75 90 7 1 2 22 1 46 1 14 -3229 41 37 -31.5 1159.75 90 5 1 2 22 1 44 1 12 -3230 41 38 -27.3 1159.75 90 6 1 2 22 1 45 1 13 -3231 41 39 -23.1 1159.75 90 8 1 2 22 1 47 1 15 -3232 41 40 -18.9 1159.75 94 9 1 2 23 1 48 1 16 -3233 41 41 -14.7 1159.75 94 7 1 2 23 1 46 1 14 -3234 41 42 -10.5 1159.75 94 5 1 2 23 1 44 1 12 -3235 41 43 -6.3 1159.75 94 8 1 2 23 1 47 1 15 -3236 41 44 -2.1 1159.75 94 10 1 2 23 1 49 1 17 -3237 41 45 2.1 1159.75 98 9 1 2 24 1 48 1 16 -3238 41 46 6.3 1159.75 98 7 1 2 24 1 46 1 14 -3239 41 47 10.5 1159.75 98 6 1 2 24 1 45 1 13 -3240 41 48 14.7 1159.75 98 8 1 2 24 1 47 1 15 -3241 41 49 18.9 1159.75 98 10 1 2 24 1 49 1 17 -3242 41 50 23.1 1159.75 102 7 1 2 25 1 46 1 14 -3243 41 51 27.3 1159.75 102 5 1 2 25 1 44 1 12 -3244 41 52 31.5 1159.75 102 6 1 2 25 1 45 1 13 -3245 41 53 35.7 1159.75 102 8 1 2 25 1 47 1 15 -3246 41 54 39.9 1159.75 102 10 1 2 25 1 49 1 17 -3247 41 55 44.1 1159.75 106 5 1 2 26 1 44 1 12 -3248 41 56 48.3 1159.75 106 3 1 2 26 1 42 1 10 -3249 41 57 52.5 1159.75 106 1 1 2 26 1 40 1 8 -3250 41 58 56.7 1159.75 106 8 1 2 26 1 47 1 15 -3251 41 59 60.9 1159.75 106 10 1 2 26 1 49 1 17 -3252 41 60 65.1 1159.75 110 7 1 2 27 1 46 1 14 -3253 41 61 69.3 1159.75 110 5 1 2 27 1 44 1 12 -3254 41 62 73.5 1159.75 110 6 1 2 27 1 45 1 13 -3255 41 63 77.7 1159.75 110 8 1 2 27 1 47 1 15 -3256 41 64 81.9 1159.75 110 10 1 2 27 1 49 1 17 -3257 41 65 86.1 1159.75 114 9 1 2 28 1 48 1 16 -3258 41 66 90.3 1159.75 114 7 1 2 28 1 46 1 14 -3259 41 67 94.5 1159.75 114 5 1 2 28 1 44 1 12 -3260 41 68 98.7 1159.75 114 6 1 2 28 1 45 1 13 -3261 41 69 102.9 1159.75 114 8 1 2 28 1 47 1 15 -3262 41 70 107.1 1159.75 118 9 1 2 29 1 48 1 16 -3263 41 71 111.3 1159.75 118 7 1 2 29 1 46 1 14 -3264 41 72 115.5 1159.75 118 2 1 2 29 1 41 1 9 -3265 41 73 119.7 1159.75 118 4 1 2 29 1 43 1 11 -3266 41 74 123.9 1159.75 118 6 1 2 29 1 45 1 13 -3267 41 75 128.1 1159.75 122 9 1 2 30 1 48 1 16 -3268 41 76 132.3 1159.75 122 7 1 2 30 1 46 1 14 -3269 41 77 136.5 1159.75 122 5 1 2 30 1 44 1 12 -3270 41 78 140.7 1159.75 122 6 1 2 30 1 45 1 13 -3271 41 79 144.9 1159.75 122 8 1 2 30 1 47 1 15 -3272 41 80 149.1 1159.75 126 9 1 2 31 1 48 1 16 -3273 41 81 153.3 1159.75 126 7 1 2 31 1 46 1 14 -3274 41 82 157.5 1159.75 126 5 1 2 31 1 44 1 12 -3275 41 83 161.7 1159.75 126 6 1 2 31 1 45 1 13 -3276 41 84 165.9 1159.75 126 8 1 2 31 1 47 1 15 -3277 41 85 170.1 1159.75 130 9 1 2 32 1 48 1 16 -3278 41 86 174.3 1159.75 130 7 1 2 32 1 46 1 14 -3279 41 87 178.5 1159.75 130 5 1 2 32 1 44 1 12 -3280 41 88 182.7 1159.75 130 8 1 2 32 1 47 1 15 -3281 41 89 186.9 1159.75 130 10 1 2 32 1 49 1 17 -3282 42 0 -191.1 1167.25 62 15 1 2 15 1 54 1 22 -3283 42 1 -186.9 1167.25 62 13 1 2 15 1 52 1 20 -3284 42 2 -182.7 1167.25 62 11 1 2 15 1 50 1 18 -3285 42 3 -178.5 1167.25 62 12 1 2 15 1 51 1 19 -3286 42 4 -174.3 1167.25 62 14 1 2 15 1 53 1 21 -3287 42 5 -170.1 1167.25 66 13 1 2 16 1 52 1 20 -3288 42 6 -165.9 1167.25 66 11 1 2 16 1 50 1 18 -3289 42 7 -161.7 1167.25 66 9 1 2 16 1 48 1 16 -3290 42 8 -157.5 1167.25 66 12 1 2 16 1 51 1 19 -3291 42 9 -153.3 1167.25 66 14 1 2 16 1 53 1 21 -3292 42 10 -149.1 1167.25 70 13 1 2 17 1 52 1 20 -3293 42 11 -144.9 1167.25 70 11 1 2 17 1 50 1 18 -3294 42 12 -140.7 1167.25 70 9 1 2 17 1 48 1 16 -3295 42 13 -136.5 1167.25 70 12 1 2 17 1 51 1 19 -3296 42 14 -132.3 1167.25 70 14 1 2 17 1 53 1 21 -3297 42 15 -128.1 1167.25 74 11 1 2 18 1 50 1 18 -3298 42 16 -123.9 1167.25 74 9 1 2 18 1 48 1 16 -3299 42 17 -119.7 1167.25 74 7 1 2 18 1 46 1 14 -3300 42 18 -115.5 1167.25 74 12 1 2 18 1 51 1 19 -3301 42 19 -111.3 1167.25 74 14 1 2 18 1 53 1 21 -3302 42 20 -107.1 1167.25 74 16 1 2 18 1 55 1 23 -3303 42 21 -102.9 1167.25 78 13 1 2 19 1 52 1 20 -3304 42 22 -98.7 1167.25 78 11 1 2 19 1 50 1 18 -3305 42 23 -94.5 1167.25 78 9 1 2 19 1 48 1 16 -3306 42 24 -90.3 1167.25 78 12 1 2 19 1 51 1 19 -3307 42 25 -86.1 1167.25 78 14 1 2 19 1 53 1 21 -3308 42 26 -81.9 1167.25 82 13 1 2 20 1 52 1 20 -3309 42 27 -77.7 1167.25 82 11 1 2 20 1 50 1 18 -3310 42 28 -73.5 1167.25 82 10 1 2 20 1 49 1 17 -3311 42 29 -69.3 1167.25 82 12 1 2 20 1 51 1 19 -3312 42 30 -65.1 1167.25 82 14 1 2 20 1 53 1 21 -3313 42 31 -60.9 1167.25 86 15 1 2 21 1 54 1 22 -3314 42 32 -56.7 1167.25 86 13 1 2 21 1 52 1 20 -3315 42 33 -52.5 1167.25 86 11 1 2 21 1 50 1 18 -3316 42 34 -48.3 1167.25 86 8 1 2 21 1 47 1 15 -3317 42 35 -44.1 1167.25 86 10 1 2 21 1 49 1 17 -3318 42 36 -39.9 1167.25 90 13 1 2 22 1 52 1 20 -3319 42 37 -35.7 1167.25 90 11 1 2 22 1 50 1 18 -3320 42 38 -31.5 1167.25 90 10 1 2 22 1 49 1 17 -3321 42 39 -27.3 1167.25 90 12 1 2 22 1 51 1 19 -3322 42 40 -23.1 1167.25 90 14 1 2 22 1 53 1 21 -3323 42 41 -18.9 1167.25 94 13 1 2 23 1 52 1 20 -3324 42 42 -14.7 1167.25 94 11 1 2 23 1 50 1 18 -3325 42 43 -10.5 1167.25 94 12 1 2 23 1 51 1 19 -3326 42 44 -6.3 1167.25 94 14 1 2 23 1 53 1 21 -3327 42 45 -2.1 1167.25 94 16 1 2 23 1 55 1 23 -3328 42 46 2.1 1167.25 98 15 1 2 24 1 54 1 22 -3329 42 47 6.3 1167.25 98 13 1 2 24 1 52 1 20 -3330 42 48 10.5 1167.25 98 11 1 2 24 1 50 1 18 -3331 42 49 14.7 1167.25 98 12 1 2 24 1 51 1 19 -3332 42 50 18.9 1167.25 98 14 1 2 24 1 53 1 21 -3333 42 51 23.1 1167.25 102 13 1 2 25 1 52 1 20 -3334 42 52 27.3 1167.25 102 11 1 2 25 1 50 1 18 -3335 42 53 31.5 1167.25 102 9 1 2 25 1 48 1 16 -3336 42 54 35.7 1167.25 102 12 1 2 25 1 51 1 19 -3337 42 55 39.9 1167.25 102 14 1 2 25 1 53 1 21 -3338 42 56 44.1 1167.25 106 9 1 2 26 1 48 1 16 -3339 42 57 48.3 1167.25 106 7 1 2 26 1 46 1 14 -3340 42 58 52.5 1167.25 106 12 1 2 26 1 51 1 19 -3341 42 59 56.7 1167.25 106 14 1 2 26 1 53 1 21 -3342 42 60 60.9 1167.25 106 16 1 2 26 1 55 1 23 -3343 42 61 65.1 1167.25 110 13 1 2 27 1 52 1 20 -3344 42 62 69.3 1167.25 110 11 1 2 27 1 50 1 18 -3345 42 63 73.5 1167.25 110 9 1 2 27 1 48 1 16 -3346 42 64 77.7 1167.25 110 12 1 2 27 1 51 1 19 -3347 42 65 81.9 1167.25 110 14 1 2 27 1 53 1 21 -3348 42 66 86.1 1167.25 114 13 1 2 28 1 52 1 20 -3349 42 67 90.3 1167.25 114 11 1 2 28 1 50 1 18 -3350 42 68 94.5 1167.25 114 10 1 2 28 1 49 1 17 -3351 42 69 98.7 1167.25 114 12 1 2 28 1 51 1 19 -3352 42 70 102.9 1167.25 114 14 1 2 28 1 53 1 21 -3353 42 71 107.1 1167.25 118 15 1 2 29 1 54 1 22 -3354 42 72 111.3 1167.25 118 13 1 2 29 1 52 1 20 -3355 42 73 115.5 1167.25 118 11 1 2 29 1 50 1 18 -3356 42 74 119.7 1167.25 118 8 1 2 29 1 47 1 15 -3357 42 75 123.9 1167.25 118 10 1 2 29 1 49 1 17 -3358 42 76 128.1 1167.25 118 12 1 2 29 1 51 1 19 -3359 42 77 132.3 1167.25 122 13 1 2 30 1 52 1 20 -3360 42 78 136.5 1167.25 122 11 1 2 30 1 50 1 18 -3361 42 79 140.7 1167.25 122 10 1 2 30 1 49 1 17 -3362 42 80 144.9 1167.25 122 12 1 2 30 1 51 1 19 -3363 42 81 149.1 1167.25 122 14 1 2 30 1 53 1 21 -3364 42 82 153.3 1167.25 126 13 1 2 31 1 52 1 20 -3365 42 83 157.5 1167.25 126 11 1 2 31 1 50 1 18 -3366 42 84 161.7 1167.25 126 10 1 2 31 1 49 1 17 -3367 42 85 165.9 1167.25 126 12 1 2 31 1 51 1 19 -3368 42 86 170.1 1167.25 126 14 1 2 31 1 53 1 21 -3369 42 87 174.3 1167.25 130 13 1 2 32 1 52 1 20 -3370 42 88 178.5 1167.25 130 11 1 2 32 1 50 1 18 -3371 42 89 182.7 1167.25 130 12 1 2 32 1 51 1 19 -3372 42 90 186.9 1167.25 130 14 1 2 32 1 53 1 21 -3373 42 91 191.1 1167.25 130 16 1 2 32 1 55 1 23 -3374 43 0 -191.1 1174.75 62 19 1 2 15 1 58 1 26 -3375 43 1 -186.9 1174.75 62 17 1 2 15 1 56 1 24 -3376 43 2 -182.7 1174.75 62 16 1 2 15 1 55 1 23 -3377 43 3 -178.5 1174.75 62 18 1 2 15 1 57 1 25 -3378 43 4 -174.3 1174.75 62 20 1 2 15 1 59 1 27 -3379 43 5 -170.1 1174.75 66 19 1 2 16 1 58 1 26 -3380 43 6 -165.9 1174.75 66 17 1 2 16 1 56 1 24 -3381 43 7 -161.7 1174.75 66 15 1 2 16 1 54 1 22 -3382 43 8 -157.5 1174.75 66 16 1 2 16 1 55 1 23 -3383 43 9 -153.3 1174.75 66 18 1 2 16 1 57 1 25 -3384 43 10 -149.1 1174.75 70 17 1 2 17 1 56 1 24 -3385 43 11 -144.9 1174.75 70 15 1 2 17 1 54 1 22 -3386 43 12 -140.7 1174.75 70 16 1 2 17 1 55 1 23 -3387 43 13 -136.5 1174.75 70 18 1 2 17 1 57 1 25 -3388 43 14 -132.3 1174.75 70 20 1 2 17 1 59 1 27 -3389 43 15 -128.1 1174.75 74 17 1 2 18 1 56 1 24 -3390 43 16 -123.9 1174.75 74 15 1 2 18 1 54 1 22 -3391 43 17 -119.7 1174.75 74 13 1 2 18 1 52 1 20 -3392 43 18 -115.5 1174.75 74 18 1 2 18 1 57 1 25 -3393 43 19 -111.3 1174.75 74 20 1 2 18 1 59 1 27 -3394 43 20 -107.1 1174.75 78 19 1 2 19 1 58 1 26 -3395 43 21 -102.9 1174.75 78 17 1 2 19 1 56 1 24 -3396 43 22 -98.7 1174.75 78 15 1 2 19 1 54 1 22 -3397 43 23 -94.5 1174.75 78 16 1 2 19 1 55 1 23 -3398 43 24 -90.3 1174.75 78 18 1 2 19 1 57 1 25 -3399 43 25 -86.1 1174.75 78 20 1 2 19 1 59 1 27 -3400 43 26 -81.9 1174.75 82 19 1 2 20 1 58 1 26 -3401 43 27 -77.7 1174.75 82 17 1 2 20 1 56 1 24 -3402 43 28 -73.5 1174.75 82 15 1 2 20 1 54 1 22 -3403 43 29 -69.3 1174.75 82 16 1 2 20 1 55 1 23 -3404 43 30 -65.1 1174.75 82 18 1 2 20 1 57 1 25 -3405 43 31 -60.9 1174.75 86 19 1 2 21 1 58 1 26 -3406 43 32 -56.7 1174.75 86 17 1 2 21 1 56 1 24 -3407 43 33 -52.5 1174.75 86 12 1 2 21 1 51 1 19 -3408 43 34 -48.3 1174.75 86 14 1 2 21 1 53 1 21 -3409 43 35 -44.1 1174.75 86 16 1 2 21 1 55 1 23 -3410 43 36 -39.9 1174.75 90 19 1 2 22 1 58 1 26 -3411 43 37 -35.7 1174.75 90 17 1 2 22 1 56 1 24 -3412 43 38 -31.5 1174.75 90 15 1 2 22 1 54 1 22 -3413 43 39 -27.3 1174.75 90 16 1 2 22 1 55 1 23 -3414 43 40 -23.1 1174.75 90 18 1 2 22 1 57 1 25 -3415 43 41 -18.9 1174.75 94 19 1 2 23 1 58 1 26 -3416 43 42 -14.7 1174.75 94 17 1 2 23 1 56 1 24 -3417 43 43 -10.5 1174.75 94 15 1 2 23 1 54 1 22 -3418 43 44 -6.3 1174.75 94 18 1 2 23 1 57 1 25 -3419 43 45 -2.1 1174.75 94 20 1 2 23 1 59 1 27 -3420 43 46 2.1 1174.75 98 19 1 2 24 1 58 1 26 -3421 43 47 6.3 1174.75 98 17 1 2 24 1 56 1 24 -3422 43 48 10.5 1174.75 98 16 1 2 24 1 55 1 23 -3423 43 49 14.7 1174.75 98 18 1 2 24 1 57 1 25 -3424 43 50 18.9 1174.75 98 20 1 2 24 1 59 1 27 -3425 43 51 23.1 1174.75 102 17 1 2 25 1 56 1 24 -3426 43 52 27.3 1174.75 102 15 1 2 25 1 54 1 22 -3427 43 53 31.5 1174.75 102 16 1 2 25 1 55 1 23 -3428 43 54 35.7 1174.75 102 18 1 2 25 1 57 1 25 -3429 43 55 39.9 1174.75 102 20 1 2 25 1 59 1 27 -3430 43 56 44.1 1174.75 106 15 1 2 26 1 54 1 22 -3431 43 57 48.3 1174.75 106 13 1 2 26 1 52 1 20 -3432 43 58 52.5 1174.75 106 11 1 2 26 1 50 1 18 -3433 43 59 56.7 1174.75 106 18 1 2 26 1 57 1 25 -3434 43 60 60.9 1174.75 106 20 1 2 26 1 59 1 27 -3435 43 61 65.1 1174.75 110 17 1 2 27 1 56 1 24 -3436 43 62 69.3 1174.75 110 15 1 2 27 1 54 1 22 -3437 43 63 73.5 1174.75 110 16 1 2 27 1 55 1 23 -3438 43 64 77.7 1174.75 110 18 1 2 27 1 57 1 25 -3439 43 65 81.9 1174.75 110 20 1 2 27 1 59 1 27 -3440 43 66 86.1 1174.75 114 19 1 2 28 1 58 1 26 -3441 43 67 90.3 1174.75 114 17 1 2 28 1 56 1 24 -3442 43 68 94.5 1174.75 114 15 1 2 28 1 54 1 22 -3443 43 69 98.7 1174.75 114 16 1 2 28 1 55 1 23 -3444 43 70 102.9 1174.75 114 18 1 2 28 1 57 1 25 -3445 43 71 107.1 1174.75 114 20 1 2 28 1 59 1 27 -3446 43 72 111.3 1174.75 118 19 1 2 29 1 58 1 26 -3447 43 73 115.5 1174.75 118 17 1 2 29 1 56 1 24 -3448 43 74 119.7 1174.75 118 14 1 2 29 1 53 1 21 -3449 43 75 123.9 1174.75 118 16 1 2 29 1 55 1 23 -3450 43 76 128.1 1174.75 118 18 1 2 29 1 57 1 25 -3451 43 77 132.3 1174.75 122 19 1 2 30 1 58 1 26 -3452 43 78 136.5 1174.75 122 17 1 2 30 1 56 1 24 -3453 43 79 140.7 1174.75 122 15 1 2 30 1 54 1 22 -3454 43 80 144.9 1174.75 122 16 1 2 30 1 55 1 23 -3455 43 81 149.1 1174.75 122 18 1 2 30 1 57 1 25 -3456 43 82 153.3 1174.75 126 17 1 2 31 1 56 1 24 -3457 43 83 157.5 1174.75 126 15 1 2 31 1 54 1 22 -3458 43 84 161.7 1174.75 126 16 1 2 31 1 55 1 23 -3459 43 85 165.9 1174.75 126 18 1 2 31 1 57 1 25 -3460 43 86 170.1 1174.75 126 20 1 2 31 1 59 1 27 -3461 43 87 174.3 1174.75 130 19 1 2 32 1 58 1 26 -3462 43 88 178.5 1174.75 130 17 1 2 32 1 56 1 24 -3463 43 89 182.7 1174.75 130 15 1 2 32 1 54 1 22 -3464 43 90 186.9 1174.75 130 18 1 2 32 1 57 1 25 -3465 43 91 191.1 1174.75 130 20 1 2 32 1 59 1 27 -3466 44 0 -191.1 1182.25 62 25 1 2 15 1 64 2 0 -3467 44 1 -186.9 1182.25 62 23 1 2 15 1 62 1 30 -3468 44 2 -182.7 1182.25 62 21 1 2 15 1 60 1 28 -3469 44 3 -178.5 1182.25 62 22 1 2 15 1 61 1 29 -3470 44 4 -174.3 1182.25 62 24 1 2 15 1 63 1 31 -3471 44 5 -170.1 1182.25 66 23 1 2 16 1 62 1 30 -3472 44 6 -165.9 1182.25 66 21 1 2 16 1 60 1 28 -3473 44 7 -161.7 1182.25 66 20 1 2 16 1 59 1 27 -3474 44 8 -157.5 1182.25 66 22 1 2 16 1 61 1 29 -3475 44 9 -153.3 1182.25 66 24 1 2 16 1 63 1 31 -3476 44 10 -149.1 1182.25 70 23 1 2 17 1 62 1 30 -3477 44 11 -144.9 1182.25 70 21 1 2 17 1 60 1 28 -3478 44 12 -140.7 1182.25 70 19 1 2 17 1 58 1 26 -3479 44 13 -136.5 1182.25 70 22 1 2 17 1 61 1 29 -3480 44 14 -132.3 1182.25 70 24 1 2 17 1 63 1 31 -3481 44 15 -128.1 1182.25 74 23 1 2 18 1 62 1 30 -3482 44 16 -123.9 1182.25 74 21 1 2 18 1 60 1 28 -3483 44 17 -119.7 1182.25 74 19 1 2 18 1 58 1 26 -3484 44 18 -115.5 1182.25 74 22 1 2 18 1 61 1 29 -3485 44 19 -111.3 1182.25 74 24 1 2 18 1 63 1 31 -3486 44 20 -107.1 1182.25 78 25 1 2 19 1 64 2 0 -3487 44 21 -102.9 1182.25 78 23 1 2 19 1 62 1 30 -3488 44 22 -98.7 1182.25 78 21 1 2 19 1 60 1 28 -3489 44 23 -94.5 1182.25 78 22 1 2 19 1 61 1 29 -3490 44 24 -90.3 1182.25 78 24 1 2 19 1 63 1 31 -3491 44 25 -86.1 1182.25 82 25 1 2 20 1 64 2 0 -3492 44 26 -81.9 1182.25 82 23 1 2 20 1 62 1 30 -3493 44 27 -77.7 1182.25 82 21 1 2 20 1 60 1 28 -3494 44 28 -73.5 1182.25 82 20 1 2 20 1 59 1 27 -3495 44 29 -69.3 1182.25 82 22 1 2 20 1 61 1 29 -3496 44 30 -65.1 1182.25 82 24 1 2 20 1 63 1 31 -3497 44 31 -60.9 1182.25 86 23 1 2 21 1 62 1 30 -3498 44 32 -56.7 1182.25 86 21 1 2 21 1 60 1 28 -3499 44 33 -52.5 1182.25 86 18 1 2 21 1 57 1 25 -3500 44 34 -48.3 1182.25 86 20 1 2 21 1 59 1 27 -3501 44 35 -44.1 1182.25 86 22 1 2 21 1 61 1 29 -3502 44 36 -39.9 1182.25 90 23 1 2 22 1 62 1 30 -3503 44 37 -35.7 1182.25 90 21 1 2 22 1 60 1 28 -3504 44 38 -31.5 1182.25 90 20 1 2 22 1 59 1 27 -3505 44 39 -27.3 1182.25 90 22 1 2 22 1 61 1 29 -3506 44 40 -23.1 1182.25 90 24 1 2 22 1 63 1 31 -3507 44 41 -18.9 1182.25 94 23 1 2 23 1 62 1 30 -3508 44 42 -14.7 1182.25 94 21 1 2 23 1 60 1 28 -3509 44 43 -10.5 1182.25 94 22 1 2 23 1 61 1 29 -3510 44 44 -6.3 1182.25 94 24 1 2 23 1 63 1 31 -3511 44 45 -2.1 1182.25 94 26 1 2 23 1 65 2 1 -3512 44 46 2.1 1182.25 98 25 1 2 24 1 64 2 0 -3513 44 47 6.3 1182.25 98 23 1 2 24 1 62 1 30 -3514 44 48 10.5 1182.25 98 21 1 2 24 1 60 1 28 -3515 44 49 14.7 1182.25 98 22 1 2 24 1 61 1 29 -3516 44 50 18.9 1182.25 98 24 1 2 24 1 63 1 31 -3517 44 51 23.1 1182.25 102 23 1 2 25 1 62 1 30 -3518 44 52 27.3 1182.25 102 21 1 2 25 1 60 1 28 -3519 44 53 31.5 1182.25 102 19 1 2 25 1 58 1 26 -3520 44 54 35.7 1182.25 102 22 1 2 25 1 61 1 29 -3521 44 55 39.9 1182.25 102 24 1 2 25 1 63 1 31 -3522 44 56 44.1 1182.25 106 21 1 2 26 1 60 1 28 -3523 44 57 48.3 1182.25 106 19 1 2 26 1 58 1 26 -3524 44 58 52.5 1182.25 106 17 1 2 26 1 56 1 24 -3525 44 59 56.7 1182.25 106 22 1 2 26 1 61 1 29 -3526 44 60 60.9 1182.25 106 24 1 2 26 1 63 1 31 -3527 44 61 65.1 1182.25 110 23 1 2 27 1 62 1 30 -3528 44 62 69.3 1182.25 110 21 1 2 27 1 60 1 28 -3529 44 63 73.5 1182.25 110 19 1 2 27 1 58 1 26 -3530 44 64 77.7 1182.25 110 22 1 2 27 1 61 1 29 -3531 44 65 81.9 1182.25 110 24 1 2 27 1 63 1 31 -3532 44 66 86.1 1182.25 110 26 1 2 27 1 65 2 1 -3533 44 67 90.3 1182.25 114 23 1 2 28 1 62 1 30 -3534 44 68 94.5 1182.25 114 21 1 2 28 1 60 1 28 -3535 44 69 98.7 1182.25 114 22 1 2 28 1 61 1 29 -3536 44 70 102.9 1182.25 114 24 1 2 28 1 63 1 31 -3537 44 71 107.1 1182.25 114 26 1 2 28 1 65 2 1 -3538 44 72 111.3 1182.25 118 23 1 2 29 1 62 1 30 -3539 44 73 115.5 1182.25 118 21 1 2 29 1 60 1 28 -3540 44 74 119.7 1182.25 118 20 1 2 29 1 59 1 27 -3541 44 75 123.9 1182.25 118 22 1 2 29 1 61 1 29 -3542 44 76 128.1 1182.25 118 24 1 2 29 1 63 1 31 -3543 44 77 132.3 1182.25 122 23 1 2 30 1 62 1 30 -3544 44 78 136.5 1182.25 122 21 1 2 30 1 60 1 28 -3545 44 79 140.7 1182.25 122 20 1 2 30 1 59 1 27 -3546 44 80 144.9 1182.25 122 22 1 2 30 1 61 1 29 -3547 44 81 149.1 1182.25 122 24 1 2 30 1 63 1 31 -3548 44 82 153.3 1182.25 126 23 1 2 31 1 62 1 30 -3549 44 83 157.5 1182.25 126 21 1 2 31 1 60 1 28 -3550 44 84 161.7 1182.25 126 19 1 2 31 1 58 1 26 -3551 44 85 165.9 1182.25 126 22 1 2 31 1 61 1 29 -3552 44 86 170.1 1182.25 126 24 1 2 31 1 63 1 31 -3553 44 87 174.3 1182.25 130 23 1 2 32 1 62 1 30 -3554 44 88 178.5 1182.25 130 21 1 2 32 1 60 1 28 -3555 44 89 182.7 1182.25 130 22 1 2 32 1 61 1 29 -3556 44 90 186.9 1182.25 130 24 1 2 32 1 63 1 31 -3557 44 91 191.1 1182.25 130 26 1 2 32 1 65 2 1 -3558 45 0 -195.3 1189.75 62 29 1 2 15 1 68 2 4 -3559 45 1 -191.1 1189.75 62 27 1 2 15 1 66 2 2 -3560 45 2 -186.9 1189.75 62 26 1 2 15 1 65 2 1 -3561 45 3 -182.7 1189.75 62 28 1 2 15 1 67 2 3 -3562 45 4 -178.5 1189.75 62 30 1 2 15 1 69 2 5 -3563 45 5 -174.3 1189.75 66 29 1 2 16 1 68 2 4 -3564 45 6 -170.1 1189.75 66 27 1 2 16 1 66 2 2 -3565 45 7 -165.9 1189.75 66 25 1 2 16 1 64 2 0 -3566 45 8 -161.7 1189.75 66 26 1 2 16 1 65 2 1 -3567 45 9 -157.5 1189.75 66 28 1 2 16 1 67 2 3 -3568 45 10 -153.3 1189.75 66 30 1 2 16 1 69 2 5 -3569 45 11 -149.1 1189.75 70 29 1 2 17 1 68 2 4 -3570 45 12 -144.9 1189.75 70 27 1 2 17 1 66 2 2 -3571 45 13 -140.7 1189.75 70 25 1 2 17 1 64 2 0 -3572 45 14 -136.5 1189.75 70 26 1 2 17 1 65 2 1 -3573 45 15 -132.3 1189.75 70 28 1 2 17 1 67 2 3 -3574 45 16 -128.1 1189.75 74 29 1 2 18 1 68 2 4 -3575 45 17 -123.9 1189.75 74 27 1 2 18 1 66 2 2 -3576 45 18 -119.7 1189.75 74 25 1 2 18 1 64 2 0 -3577 45 19 -115.5 1189.75 74 26 1 2 18 1 65 2 1 -3578 45 20 -111.3 1189.75 74 28 1 2 18 1 67 2 3 -3579 45 21 -107.1 1189.75 78 29 1 2 19 1 68 2 4 -3580 45 22 -102.9 1189.75 78 27 1 2 19 1 66 2 2 -3581 45 23 -98.7 1189.75 78 26 1 2 19 1 65 2 1 -3582 45 24 -94.5 1189.75 78 28 1 2 19 1 67 2 3 -3583 45 25 -90.3 1189.75 78 30 1 2 19 1 69 2 5 -3584 45 26 -86.1 1189.75 82 29 1 2 20 1 68 2 4 -3585 45 27 -81.9 1189.75 82 27 1 2 20 1 66 2 2 -3586 45 28 -77.7 1189.75 82 26 1 2 20 1 65 2 1 -3587 45 29 -73.5 1189.75 82 28 1 2 20 1 67 2 3 -3588 45 30 -69.3 1189.75 82 30 1 2 20 1 69 2 5 -3589 45 31 -65.1 1189.75 86 29 1 2 21 1 68 2 4 -3590 45 32 -60.9 1189.75 86 27 1 2 21 1 66 2 2 -3591 45 33 -56.7 1189.75 86 25 1 2 21 1 64 2 0 -3592 45 34 -52.5 1189.75 86 24 1 2 21 1 63 1 31 -3593 45 35 -48.3 1189.75 86 26 1 2 21 1 65 2 1 -3594 45 36 -44.1 1189.75 86 28 1 2 21 1 67 2 3 -3595 45 37 -39.9 1189.75 90 29 1 2 22 1 68 2 4 -3596 45 38 -35.7 1189.75 90 27 1 2 22 1 66 2 2 -3597 45 39 -31.5 1189.75 90 25 1 2 22 1 64 2 0 -3598 45 40 -27.3 1189.75 90 26 1 2 22 1 65 2 1 -3599 45 41 -23.1 1189.75 90 28 1 2 22 1 67 2 3 -3600 45 42 -18.9 1189.75 94 29 1 2 23 1 68 2 4 -3601 45 43 -14.7 1189.75 94 27 1 2 23 1 66 2 2 -3602 45 44 -10.5 1189.75 94 25 1 2 23 1 64 2 0 -3603 45 45 -6.3 1189.75 94 28 1 2 23 1 67 2 3 -3604 45 46 -2.1 1189.75 94 30 1 2 23 1 69 2 5 -3605 45 47 2.1 1189.75 98 29 1 2 24 1 68 2 4 -3606 45 48 6.3 1189.75 98 27 1 2 24 1 66 2 2 -3607 45 49 10.5 1189.75 98 26 1 2 24 1 65 2 1 -3608 45 50 14.7 1189.75 98 28 1 2 24 1 67 2 3 -3609 45 51 18.9 1189.75 98 30 1 2 24 1 69 2 5 -3610 45 52 23.1 1189.75 102 27 1 2 25 1 66 2 2 -3611 45 53 27.3 1189.75 102 25 1 2 25 1 64 2 0 -3612 45 54 31.5 1189.75 102 26 1 2 25 1 65 2 1 -3613 45 55 35.7 1189.75 102 28 1 2 25 1 67 2 3 -3614 45 56 39.9 1189.75 102 30 1 2 25 1 69 2 5 -3615 45 57 44.1 1189.75 106 27 1 2 26 1 66 2 2 -3616 45 58 48.3 1189.75 106 25 1 2 26 1 64 2 0 -3617 45 59 52.5 1189.75 106 23 1 2 26 1 62 1 30 -3618 45 60 56.7 1189.75 106 26 1 2 26 1 65 2 1 -3619 45 61 60.9 1189.75 106 28 1 2 26 1 67 2 3 -3620 45 62 65.1 1189.75 106 30 1 2 26 1 69 2 5 -3621 45 63 69.3 1189.75 110 29 1 2 27 1 68 2 4 -3622 45 64 73.5 1189.75 110 27 1 2 27 1 66 2 2 -3623 45 65 77.7 1189.75 110 25 1 2 27 1 64 2 0 -3624 45 66 81.9 1189.75 110 28 1 2 27 1 67 2 3 -3625 45 67 86.1 1189.75 110 30 1 2 27 1 69 2 5 -3626 45 68 90.3 1189.75 114 29 1 2 28 1 68 2 4 -3627 45 69 94.5 1189.75 114 27 1 2 28 1 66 2 2 -3628 45 70 98.7 1189.75 114 25 1 2 28 1 64 2 0 -3629 45 71 102.9 1189.75 114 28 1 2 28 1 67 2 3 -3630 45 72 107.1 1189.75 114 30 1 2 28 1 69 2 5 -3631 45 73 111.3 1189.75 118 27 1 2 29 1 66 2 2 -3632 45 74 115.5 1189.75 118 25 1 2 29 1 64 2 0 -3633 45 75 119.7 1189.75 118 26 1 2 29 1 65 2 1 -3634 45 76 123.9 1189.75 118 28 1 2 29 1 67 2 3 -3635 45 77 128.1 1189.75 118 30 1 2 29 1 69 2 5 -3636 45 78 132.3 1189.75 122 27 1 2 30 1 66 2 2 -3637 45 79 136.5 1189.75 122 25 1 2 30 1 64 2 0 -3638 45 80 140.7 1189.75 122 26 1 2 30 1 65 2 1 -3639 45 81 144.9 1189.75 122 28 1 2 30 1 67 2 3 -3640 45 82 149.1 1189.75 122 30 1 2 30 1 69 2 5 -3641 45 83 153.3 1189.75 126 29 1 2 31 1 68 2 4 -3642 45 84 157.5 1189.75 126 27 1 2 31 1 66 2 2 -3643 45 85 161.7 1189.75 126 25 1 2 31 1 64 2 0 -3644 45 86 165.9 1189.75 126 26 1 2 31 1 65 2 1 -3645 45 87 170.1 1189.75 126 28 1 2 31 1 67 2 3 -3646 45 88 174.3 1189.75 126 30 1 2 31 1 69 2 5 -3647 45 89 178.5 1189.75 130 29 1 2 32 1 68 2 4 -3648 45 90 182.7 1189.75 130 27 1 2 32 1 66 2 2 -3649 45 91 186.9 1189.75 130 25 1 2 32 1 64 2 0 -3650 45 92 191.1 1189.75 130 28 1 2 32 1 67 2 3 -3651 45 93 195.3 1189.75 130 30 1 2 32 1 69 2 5 -3652 46 0 -195.3 1197.25 62 35 1 2 15 1 74 2 10 -3653 46 1 -191.1 1197.25 62 33 1 2 15 1 72 2 8 -3654 46 2 -186.9 1197.25 62 31 1 2 15 1 70 2 6 -3655 46 3 -182.7 1197.25 62 32 1 2 15 1 71 2 7 -3656 46 4 -178.5 1197.25 62 34 1 2 15 1 73 2 9 -3657 46 5 -174.3 1197.25 66 33 1 2 16 1 72 2 8 -3658 46 6 -170.1 1197.25 66 31 1 2 16 1 70 2 6 -3659 46 7 -165.9 1197.25 66 32 1 2 16 1 71 2 7 -3660 46 8 -161.7 1197.25 66 34 1 2 16 1 73 2 9 -3661 46 9 -157.5 1197.25 66 36 1 2 16 1 75 2 11 -3662 46 10 -153.3 1197.25 70 35 1 2 17 1 74 2 10 -3663 46 11 -149.1 1197.25 70 33 1 2 17 1 72 2 8 -3664 46 12 -144.9 1197.25 70 31 1 2 17 1 70 2 6 -3665 46 13 -140.7 1197.25 70 30 1 2 17 1 69 2 5 -3666 46 14 -136.5 1197.25 70 32 1 2 17 1 71 2 7 -3667 46 15 -132.3 1197.25 70 34 1 2 17 1 73 2 9 -3668 46 16 -128.1 1197.25 74 33 1 2 18 1 72 2 8 -3669 46 17 -123.9 1197.25 74 31 1 2 18 1 70 2 6 -3670 46 18 -119.7 1197.25 74 30 1 2 18 1 69 2 5 -3671 46 19 -115.5 1197.25 74 32 1 2 18 1 71 2 7 -3672 46 20 -111.3 1197.25 74 34 1 2 18 1 73 2 9 -3673 46 21 -107.1 1197.25 78 35 1 2 19 1 74 2 10 -3674 46 22 -102.9 1197.25 78 33 1 2 19 1 72 2 8 -3675 46 23 -98.7 1197.25 78 31 1 2 19 1 70 2 6 -3676 46 24 -94.5 1197.25 78 32 1 2 19 1 71 2 7 -3677 46 25 -90.3 1197.25 78 34 1 2 19 1 73 2 9 -3678 46 26 -86.1 1197.25 82 35 1 2 20 1 74 2 10 -3679 46 27 -81.9 1197.25 82 33 1 2 20 1 72 2 8 -3680 46 28 -77.7 1197.25 82 31 1 2 20 1 70 2 6 -3681 46 29 -73.5 1197.25 82 32 1 2 20 1 71 2 7 -3682 46 30 -69.3 1197.25 82 34 1 2 20 1 73 2 9 -3683 46 31 -65.1 1197.25 86 35 1 2 21 1 74 2 10 -3684 46 32 -60.9 1197.25 86 33 1 2 21 1 72 2 8 -3685 46 33 -56.7 1197.25 86 31 1 2 21 1 70 2 6 -3686 46 34 -52.5 1197.25 86 30 1 2 21 1 69 2 5 -3687 46 35 -48.3 1197.25 86 32 1 2 21 1 71 2 7 -3688 46 36 -44.1 1197.25 86 34 1 2 21 1 73 2 9 -3689 46 37 -39.9 1197.25 90 33 1 2 22 1 72 2 8 -3690 46 38 -35.7 1197.25 90 31 1 2 22 1 70 2 6 -3691 46 39 -31.5 1197.25 90 30 1 2 22 1 69 2 5 -3692 46 40 -27.3 1197.25 90 32 1 2 22 1 71 2 7 -3693 46 41 -23.1 1197.25 90 34 1 2 22 1 73 2 9 -3694 46 42 -18.9 1197.25 94 33 1 2 23 1 72 2 8 -3695 46 43 -14.7 1197.25 94 31 1 2 23 1 70 2 6 -3696 46 44 -10.5 1197.25 94 32 1 2 23 1 71 2 7 -3697 46 45 -6.3 1197.25 94 34 1 2 23 1 73 2 9 -3698 46 46 -2.1 1197.25 94 36 1 2 23 1 75 2 11 -3699 46 47 2.1 1197.25 98 35 1 2 24 1 74 2 10 -3700 46 48 6.3 1197.25 98 33 1 2 24 1 72 2 8 -3701 46 49 10.5 1197.25 98 31 1 2 24 1 70 2 6 -3702 46 50 14.7 1197.25 98 32 1 2 24 1 71 2 7 -3703 46 51 18.9 1197.25 98 34 1 2 24 1 73 2 9 -3704 46 52 23.1 1197.25 102 33 1 2 25 1 72 2 8 -3705 46 53 27.3 1197.25 102 31 1 2 25 1 70 2 6 -3706 46 54 31.5 1197.25 102 29 1 2 25 1 68 2 4 -3707 46 55 35.7 1197.25 102 32 1 2 25 1 71 2 7 -3708 46 56 39.9 1197.25 102 34 1 2 25 1 73 2 9 -3709 46 57 44.1 1197.25 106 33 1 2 26 1 72 2 8 -3710 46 58 48.3 1197.25 106 31 1 2 26 1 70 2 6 -3711 46 59 52.5 1197.25 106 29 1 2 26 1 68 2 4 -3712 46 60 56.7 1197.25 106 32 1 2 26 1 71 2 7 -3713 46 61 60.9 1197.25 106 34 1 2 26 1 73 2 9 -3714 46 62 65.1 1197.25 106 36 1 2 26 1 75 2 11 -3715 46 63 69.3 1197.25 110 33 1 2 27 1 72 2 8 -3716 46 64 73.5 1197.25 110 31 1 2 27 1 70 2 6 -3717 46 65 77.7 1197.25 110 32 1 2 27 1 71 2 7 -3718 46 66 81.9 1197.25 110 34 1 2 27 1 73 2 9 -3719 46 67 86.1 1197.25 110 36 1 2 27 1 75 2 11 -3720 46 68 90.3 1197.25 114 33 1 2 28 1 72 2 8 -3721 46 69 94.5 1197.25 114 31 1 2 28 1 70 2 6 -3722 46 70 98.7 1197.25 114 32 1 2 28 1 71 2 7 -3723 46 71 102.9 1197.25 114 34 1 2 28 1 73 2 9 -3724 46 72 107.1 1197.25 114 36 1 2 28 1 75 2 11 -3725 46 73 111.3 1197.25 118 33 1 2 29 1 72 2 8 -3726 46 74 115.5 1197.25 118 31 1 2 29 1 70 2 6 -3727 46 75 119.7 1197.25 118 29 1 2 29 1 68 2 4 -3728 46 76 123.9 1197.25 118 32 1 2 29 1 71 2 7 -3729 46 77 128.1 1197.25 118 34 1 2 29 1 73 2 9 -3730 46 78 132.3 1197.25 122 33 1 2 30 1 72 2 8 -3731 46 79 136.5 1197.25 122 31 1 2 30 1 70 2 6 -3732 46 80 140.7 1197.25 122 29 1 2 30 1 68 2 4 -3733 46 81 144.9 1197.25 122 32 1 2 30 1 71 2 7 -3734 46 82 149.1 1197.25 122 34 1 2 30 1 73 2 9 -3735 46 83 153.3 1197.25 122 36 1 2 30 1 75 2 11 -3736 46 84 157.5 1197.25 126 35 1 2 31 1 74 2 10 -3737 46 85 161.7 1197.25 126 33 1 2 31 1 72 2 8 -3738 46 86 165.9 1197.25 126 31 1 2 31 1 70 2 6 -3739 46 87 170.1 1197.25 126 32 1 2 31 1 71 2 7 -3740 46 88 174.3 1197.25 126 34 1 2 31 1 73 2 9 -3741 46 89 178.5 1197.25 130 33 1 2 32 1 72 2 8 -3742 46 90 182.7 1197.25 130 31 1 2 32 1 70 2 6 -3743 46 91 186.9 1197.25 130 32 1 2 32 1 71 2 7 -3744 46 92 191.1 1197.25 130 34 1 2 32 1 73 2 9 -3745 46 93 195.3 1197.25 130 36 1 2 32 1 75 2 11 -3746 47 0 -195.3 1204.75 62 39 1 2 15 1 78 2 14 -3747 47 1 -191.1 1204.75 62 37 1 2 15 1 76 2 12 -3748 47 2 -186.9 1204.75 62 36 1 2 15 1 75 2 11 -3749 47 3 -182.7 1204.75 62 38 1 2 15 1 77 2 13 -3750 47 4 -178.5 1204.75 62 40 1 2 15 1 79 2 15 -3751 47 5 -174.3 1204.75 66 39 1 2 16 1 78 2 14 -3752 47 6 -170.1 1204.75 66 37 1 2 16 1 76 2 12 -3753 47 7 -165.9 1204.75 66 35 1 2 16 1 74 2 10 -3754 47 8 -161.7 1204.75 66 38 1 2 16 1 77 2 13 -3755 47 9 -157.5 1204.75 66 40 1 2 16 1 79 2 15 -3756 47 10 -153.3 1204.75 70 39 1 2 17 1 78 2 14 -3757 47 11 -149.1 1204.75 70 37 1 2 17 1 76 2 12 -3758 47 12 -144.9 1204.75 70 36 1 2 17 1 75 2 11 -3759 47 13 -140.7 1204.75 70 38 1 2 17 1 77 2 13 -3760 47 14 -136.5 1204.75 70 40 1 2 17 1 79 2 15 -3761 47 15 -132.3 1204.75 74 39 1 2 18 1 78 2 14 -3762 47 16 -128.1 1204.75 74 37 1 2 18 1 76 2 12 -3763 47 17 -123.9 1204.75 74 35 1 2 18 1 74 2 10 -3764 47 18 -119.7 1204.75 74 36 1 2 18 1 75 2 11 -3765 47 19 -115.5 1204.75 74 38 1 2 18 1 77 2 13 -3766 47 20 -111.3 1204.75 74 40 1 2 18 1 79 2 15 -3767 47 21 -107.1 1204.75 78 39 1 2 19 1 78 2 14 -3768 47 22 -102.9 1204.75 78 37 1 2 19 1 76 2 12 -3769 47 23 -98.7 1204.75 78 36 1 2 19 1 75 2 11 -3770 47 24 -94.5 1204.75 78 38 1 2 19 1 77 2 13 -3771 47 25 -90.3 1204.75 78 40 1 2 19 1 79 2 15 -3772 47 26 -86.1 1204.75 82 39 1 2 20 1 78 2 14 -3773 47 27 -81.9 1204.75 82 37 1 2 20 1 76 2 12 -3774 47 28 -77.7 1204.75 82 36 1 2 20 1 75 2 11 -3775 47 29 -73.5 1204.75 82 38 1 2 20 1 77 2 13 -3776 47 30 -69.3 1204.75 82 40 1 2 20 1 79 2 15 -3777 47 31 -65.1 1204.75 86 39 1 2 21 1 78 2 14 -3778 47 32 -60.9 1204.75 86 37 1 2 21 1 76 2 12 -3779 47 33 -56.7 1204.75 86 36 1 2 21 1 75 2 11 -3780 47 34 -52.5 1204.75 86 38 1 2 21 1 77 2 13 -3781 47 35 -48.3 1204.75 86 40 1 2 21 1 79 2 15 -3782 47 36 -44.1 1204.75 90 39 1 2 22 1 78 2 14 -3783 47 37 -39.9 1204.75 90 37 1 2 22 1 76 2 12 -3784 47 38 -35.7 1204.75 90 35 1 2 22 1 74 2 10 -3785 47 39 -31.5 1204.75 90 36 1 2 22 1 75 2 11 -3786 47 40 -27.3 1204.75 90 38 1 2 22 1 77 2 13 -3787 47 41 -23.1 1204.75 90 40 1 2 22 1 79 2 15 -3788 47 42 -18.9 1204.75 94 39 1 2 23 1 78 2 14 -3789 47 43 -14.7 1204.75 94 37 1 2 23 1 76 2 12 -3790 47 44 -10.5 1204.75 94 35 1 2 23 1 74 2 10 -3791 47 45 -6.3 1204.75 94 38 1 2 23 1 77 2 13 -3792 47 46 -2.1 1204.75 94 40 1 2 23 1 79 2 15 -3793 47 47 2.1 1204.75 98 39 1 2 24 1 78 2 14 -3794 47 48 6.3 1204.75 98 37 1 2 24 1 76 2 12 -3795 47 49 10.5 1204.75 98 36 1 2 24 1 75 2 11 -3796 47 50 14.7 1204.75 98 38 1 2 24 1 77 2 13 -3797 47 51 18.9 1204.75 98 40 1 2 24 1 79 2 15 -3798 47 52 23.1 1204.75 102 39 1 2 25 1 78 2 14 -3799 47 53 27.3 1204.75 102 37 1 2 25 1 76 2 12 -3800 47 54 31.5 1204.75 102 35 1 2 25 1 74 2 10 -3801 47 55 35.7 1204.75 102 36 1 2 25 1 75 2 11 -3802 47 56 39.9 1204.75 102 38 1 2 25 1 77 2 13 -3803 47 57 44.1 1204.75 102 40 1 2 25 1 79 2 15 -3804 47 58 48.3 1204.75 106 39 1 2 26 1 78 2 14 -3805 47 59 52.5 1204.75 106 37 1 2 26 1 76 2 12 -3806 47 60 56.7 1204.75 106 35 1 2 26 1 74 2 10 -3807 47 61 60.9 1204.75 106 38 1 2 26 1 77 2 13 -3808 47 62 65.1 1204.75 106 40 1 2 26 1 79 2 15 -3809 47 63 69.3 1204.75 110 39 1 2 27 1 78 2 14 -3810 47 64 73.5 1204.75 110 37 1 2 27 1 76 2 12 -3811 47 65 77.7 1204.75 110 35 1 2 27 1 74 2 10 -3812 47 66 81.9 1204.75 110 38 1 2 27 1 77 2 13 -3813 47 67 86.1 1204.75 110 40 1 2 27 1 79 2 15 -3814 47 68 90.3 1204.75 114 39 1 2 28 1 78 2 14 -3815 47 69 94.5 1204.75 114 37 1 2 28 1 76 2 12 -3816 47 70 98.7 1204.75 114 35 1 2 28 1 74 2 10 -3817 47 71 102.9 1204.75 114 38 1 2 28 1 77 2 13 -3818 47 72 107.1 1204.75 114 40 1 2 28 1 79 2 15 -3819 47 73 111.3 1204.75 118 39 1 2 29 1 78 2 14 -3820 47 74 115.5 1204.75 118 37 1 2 29 1 76 2 12 -3821 47 75 119.7 1204.75 118 35 1 2 29 1 74 2 10 -3822 47 76 123.9 1204.75 118 36 1 2 29 1 75 2 11 -3823 47 77 128.1 1204.75 118 38 1 2 29 1 77 2 13 -3824 47 78 132.3 1204.75 118 40 1 2 29 1 79 2 15 -3825 47 79 136.5 1204.75 122 39 1 2 30 1 78 2 14 -3826 47 80 140.7 1204.75 122 37 1 2 30 1 76 2 12 -3827 47 81 144.9 1204.75 122 35 1 2 30 1 74 2 10 -3828 47 82 149.1 1204.75 122 38 1 2 30 1 77 2 13 -3829 47 83 153.3 1204.75 122 40 1 2 30 1 79 2 15 -3830 47 84 157.5 1204.75 126 39 1 2 31 1 78 2 14 -3831 47 85 161.7 1204.75 126 37 1 2 31 1 76 2 12 -3832 47 86 165.9 1204.75 126 36 1 2 31 1 75 2 11 -3833 47 87 170.1 1204.75 126 38 1 2 31 1 77 2 13 -3834 47 88 174.3 1204.75 126 40 1 2 31 1 79 2 15 -3835 47 89 178.5 1204.75 130 39 1 2 32 1 78 2 14 -3836 47 90 182.7 1204.75 130 37 1 2 32 1 76 2 12 -3837 47 91 186.9 1204.75 130 35 1 2 32 1 74 2 10 -3838 47 92 191.1 1204.75 130 38 1 2 32 1 77 2 13 -3839 47 93 195.3 1204.75 130 40 1 2 32 1 79 2 15 -3840 48 0 -198.38 1212.25 63 3 1 3 15 2 82 2 18 -3841 48 1 -194.02 1212.25 63 1 1 3 15 2 80 2 16 -3842 48 2 -189.66 1212.25 63 2 1 3 15 2 81 2 17 -3843 48 3 -185.3 1212.25 63 4 1 3 15 2 83 2 19 -3844 48 4 -180.94 1212.25 63 6 1 3 15 2 85 2 21 -3845 48 5 -176.58 1212.25 67 3 1 3 16 2 82 2 18 -3846 48 6 -172.22 1212.25 67 1 1 3 16 2 80 2 16 -3847 48 7 -167.86 1212.25 67 2 1 3 16 2 81 2 17 -3848 48 8 -163.5 1212.25 67 4 1 3 16 2 83 2 19 -3849 48 9 -159.14 1212.25 67 6 1 3 16 2 85 2 21 -3850 48 10 -154.78 1212.25 71 5 1 3 17 2 84 2 20 -3851 48 11 -150.42 1212.25 71 3 1 3 17 2 82 2 18 -3852 48 12 -146.06 1212.25 71 1 1 3 17 2 80 2 16 -3853 48 13 -141.7 1212.25 71 2 1 3 17 2 81 2 17 -3854 48 14 -137.34 1212.25 71 4 1 3 17 2 83 2 19 -3855 48 15 -132.98 1212.25 75 5 1 3 18 2 84 2 20 -3856 48 16 -128.62 1212.25 75 3 1 3 18 2 82 2 18 -3857 48 17 -124.26 1212.25 75 1 1 3 18 2 80 2 16 -3858 48 18 -119.9 1212.25 75 2 1 3 18 2 81 2 17 -3859 48 19 -115.54 1212.25 75 4 1 3 18 2 83 2 19 -3860 48 20 -111.18 1212.25 75 6 1 3 18 2 85 2 21 -3861 48 21 -106.82 1212.25 79 3 1 3 19 2 82 2 18 -3862 48 22 -102.46 1212.25 79 1 1 3 19 2 80 2 16 -3863 48 23 -98.1 1212.25 79 2 1 3 19 2 81 2 17 -3864 48 24 -93.74 1212.25 79 4 1 3 19 2 83 2 19 -3865 48 25 -89.38 1212.25 79 6 1 3 19 2 85 2 21 -3866 48 26 -85.02 1212.25 83 5 1 3 20 2 84 2 20 -3867 48 27 -80.66 1212.25 83 3 1 3 20 2 82 2 18 -3868 48 28 -76.3 1212.25 83 1 1 3 20 2 80 2 16 -3869 48 29 -71.94 1212.25 83 2 1 3 20 2 81 2 17 -3870 48 30 -67.58 1212.25 83 4 1 3 20 2 83 2 19 -3871 48 31 -63.22 1212.25 87 5 1 3 21 2 84 2 20 -3872 48 32 -58.86 1212.25 87 3 1 3 21 2 82 2 18 -3873 48 33 -54.5 1212.25 87 1 1 3 21 2 80 2 16 -3874 48 34 -50.14 1212.25 87 2 1 3 21 2 81 2 17 -3875 48 35 -45.78 1212.25 87 4 1 3 21 2 83 2 19 -3876 48 36 -41.42 1212.25 91 3 1 3 22 2 82 2 18 -3877 48 37 -37.06 1212.25 91 1 1 3 22 2 80 2 16 -3878 48 38 -32.7 1212.25 91 2 1 3 22 2 81 2 17 -3879 48 39 -28.34 1212.25 91 4 1 3 22 2 83 2 19 -3880 48 40 -23.98 1212.25 91 6 1 3 22 2 85 2 21 -3881 48 41 -19.62 1212.25 95 3 1 3 23 2 82 2 18 -3882 48 42 -15.26 1212.25 95 1 1 3 23 2 80 2 16 -3883 48 43 -10.9 1212.25 95 2 1 3 23 2 81 2 17 -3884 48 44 -6.54 1212.25 95 4 1 3 23 2 83 2 19 -3885 48 45 -2.18 1212.25 95 6 1 3 23 2 85 2 21 -3886 48 46 2.18 1212.25 99 5 1 3 24 2 84 2 20 -3887 48 47 6.54 1212.25 99 3 1 3 24 2 82 2 18 -3888 48 48 10.9 1212.25 99 1 1 3 24 2 80 2 16 -3889 48 49 15.26 1212.25 99 2 1 3 24 2 81 2 17 -3890 48 50 19.62 1212.25 99 4 1 3 24 2 83 2 19 -3891 48 51 23.98 1212.25 103 5 1 3 25 2 84 2 20 -3892 48 52 28.34 1212.25 103 3 1 3 25 2 82 2 18 -3893 48 53 32.7 1212.25 103 1 1 3 25 2 80 2 16 -3894 48 54 37.06 1212.25 103 2 1 3 25 2 81 2 17 -3895 48 55 41.42 1212.25 103 4 1 3 25 2 83 2 19 -3896 48 56 45.78 1212.25 107 3 1 3 26 2 82 2 18 -3897 48 57 50.14 1212.25 107 1 1 3 26 2 80 2 16 -3898 48 58 54.5 1212.25 107 2 1 3 26 2 81 2 17 -3899 48 59 58.86 1212.25 107 4 1 3 26 2 83 2 19 -3900 48 60 63.22 1212.25 107 6 1 3 26 2 85 2 21 -3901 48 61 67.58 1212.25 111 3 1 3 27 2 82 2 18 -3902 48 62 71.94 1212.25 111 1 1 3 27 2 80 2 16 -3903 48 63 76.3 1212.25 111 2 1 3 27 2 81 2 17 -3904 48 64 80.66 1212.25 111 4 1 3 27 2 83 2 19 -3905 48 65 85.02 1212.25 111 6 1 3 27 2 85 2 21 -3906 48 66 89.38 1212.25 115 5 1 3 28 2 84 2 20 -3907 48 67 93.74 1212.25 115 3 1 3 28 2 82 2 18 -3908 48 68 98.1 1212.25 115 1 1 3 28 2 80 2 16 -3909 48 69 102.46 1212.25 115 2 1 3 28 2 81 2 17 -3910 48 70 106.82 1212.25 115 4 1 3 28 2 83 2 19 -3911 48 71 111.18 1212.25 119 5 1 3 29 2 84 2 20 -3912 48 72 115.54 1212.25 119 3 1 3 29 2 82 2 18 -3913 48 73 119.9 1212.25 119 1 1 3 29 2 80 2 16 -3914 48 74 124.26 1212.25 119 2 1 3 29 2 81 2 17 -3915 48 75 128.62 1212.25 119 4 1 3 29 2 83 2 19 -3916 48 76 132.98 1212.25 119 6 1 3 29 2 85 2 21 -3917 48 77 137.34 1212.25 123 3 1 3 30 2 82 2 18 -3918 48 78 141.7 1212.25 123 1 1 3 30 2 80 2 16 -3919 48 79 146.06 1212.25 123 2 1 3 30 2 81 2 17 -3920 48 80 150.42 1212.25 123 4 1 3 30 2 83 2 19 -3921 48 81 154.78 1212.25 123 6 1 3 30 2 85 2 21 -3922 48 82 159.14 1212.25 127 5 1 3 31 2 84 2 20 -3923 48 83 163.5 1212.25 127 3 1 3 31 2 82 2 18 -3924 48 84 167.86 1212.25 127 1 1 3 31 2 80 2 16 -3925 48 85 172.22 1212.25 127 2 1 3 31 2 81 2 17 -3926 48 86 176.58 1212.25 127 4 1 3 31 2 83 2 19 -3927 48 87 180.94 1212.25 131 5 1 3 32 2 84 2 20 -3928 48 88 185.3 1212.25 131 3 1 3 32 2 82 2 18 -3929 48 89 189.66 1212.25 131 1 1 3 32 2 80 2 16 -3930 48 90 194.02 1212.25 131 2 1 3 32 2 81 2 17 -3931 48 91 198.38 1212.25 131 4 1 3 32 2 83 2 19 -3932 49 0 -198.38 1219.75 63 9 1 3 15 2 88 2 24 -3933 49 1 -194.02 1219.75 63 7 1 3 15 2 86 2 22 -3934 49 2 -189.66 1219.75 63 5 1 3 15 2 84 2 20 -3935 49 3 -185.3 1219.75 63 8 1 3 15 2 87 2 23 -3936 49 4 -180.94 1219.75 63 10 1 3 15 2 89 2 25 -3937 49 5 -176.58 1219.75 67 9 1 3 16 2 88 2 24 -3938 49 6 -172.22 1219.75 67 7 1 3 16 2 86 2 22 -3939 49 7 -167.86 1219.75 67 5 1 3 16 2 84 2 20 -3940 49 8 -163.5 1219.75 67 8 1 3 16 2 87 2 23 -3941 49 9 -159.14 1219.75 67 10 1 3 16 2 89 2 25 -3942 49 10 -154.78 1219.75 71 9 1 3 17 2 88 2 24 -3943 49 11 -150.42 1219.75 71 7 1 3 17 2 86 2 22 -3944 49 12 -146.06 1219.75 71 6 1 3 17 2 85 2 21 -3945 49 13 -141.7 1219.75 71 8 1 3 17 2 87 2 23 -3946 49 14 -137.34 1219.75 71 10 1 3 17 2 89 2 25 -3947 49 15 -132.98 1219.75 75 9 1 3 18 2 88 2 24 -3948 49 16 -128.62 1219.75 75 7 1 3 18 2 86 2 22 -3949 49 17 -124.26 1219.75 75 8 1 3 18 2 87 2 23 -3950 49 18 -119.9 1219.75 75 10 1 3 18 2 89 2 25 -3951 49 19 -115.54 1219.75 75 12 1 3 18 2 91 2 27 -3952 49 20 -111.18 1219.75 79 9 1 3 19 2 88 2 24 -3953 49 21 -106.82 1219.75 79 7 1 3 19 2 86 2 22 -3954 49 22 -102.46 1219.75 79 5 1 3 19 2 84 2 20 -3955 49 23 -98.1 1219.75 79 8 1 3 19 2 87 2 23 -3956 49 24 -93.74 1219.75 79 10 1 3 19 2 89 2 25 -3957 49 25 -89.38 1219.75 83 11 1 3 20 2 90 2 26 -3958 49 26 -85.02 1219.75 83 9 1 3 20 2 88 2 24 -3959 49 27 -80.66 1219.75 83 7 1 3 20 2 86 2 22 -3960 49 28 -76.3 1219.75 83 6 1 3 20 2 85 2 21 -3961 49 29 -71.94 1219.75 83 8 1 3 20 2 87 2 23 -3962 49 30 -67.58 1219.75 83 10 1 3 20 2 89 2 25 -3963 49 31 -63.22 1219.75 87 9 1 3 21 2 88 2 24 -3964 49 32 -58.86 1219.75 87 7 1 3 21 2 86 2 22 -3965 49 33 -54.5 1219.75 87 6 1 3 21 2 85 2 21 -3966 49 34 -50.14 1219.75 87 8 1 3 21 2 87 2 23 -3967 49 35 -45.78 1219.75 87 10 1 3 21 2 89 2 25 -3968 49 36 -41.42 1219.75 91 9 1 3 22 2 88 2 24 -3969 49 37 -37.06 1219.75 91 7 1 3 22 2 86 2 22 -3970 49 38 -32.7 1219.75 91 5 1 3 22 2 84 2 20 -3971 49 39 -28.34 1219.75 91 8 1 3 22 2 87 2 23 -3972 49 40 -23.98 1219.75 91 10 1 3 22 2 89 2 25 -3973 49 41 -19.62 1219.75 95 9 1 3 23 2 88 2 24 -3974 49 42 -15.26 1219.75 95 7 1 3 23 2 86 2 22 -3975 49 43 -10.9 1219.75 95 5 1 3 23 2 84 2 20 -3976 49 44 -6.54 1219.75 95 8 1 3 23 2 87 2 23 -3977 49 45 -2.18 1219.75 95 10 1 3 23 2 89 2 25 -3978 49 46 2.18 1219.75 99 9 1 3 24 2 88 2 24 -3979 49 47 6.54 1219.75 99 7 1 3 24 2 86 2 22 -3980 49 48 10.9 1219.75 99 6 1 3 24 2 85 2 21 -3981 49 49 15.26 1219.75 99 8 1 3 24 2 87 2 23 -3982 49 50 19.62 1219.75 99 10 1 3 24 2 89 2 25 -3983 49 51 23.98 1219.75 103 9 1 3 25 2 88 2 24 -3984 49 52 28.34 1219.75 103 7 1 3 25 2 86 2 22 -3985 49 53 32.7 1219.75 103 6 1 3 25 2 85 2 21 -3986 49 54 37.06 1219.75 103 8 1 3 25 2 87 2 23 -3987 49 55 41.42 1219.75 103 10 1 3 25 2 89 2 25 -3988 49 56 45.78 1219.75 107 9 1 3 26 2 88 2 24 -3989 49 57 50.14 1219.75 107 7 1 3 26 2 86 2 22 -3990 49 58 54.5 1219.75 107 5 1 3 26 2 84 2 20 -3991 49 59 58.86 1219.75 107 8 1 3 26 2 87 2 23 -3992 49 60 63.22 1219.75 107 10 1 3 26 2 89 2 25 -3993 49 61 67.58 1219.75 111 9 1 3 27 2 88 2 24 -3994 49 62 71.94 1219.75 111 7 1 3 27 2 86 2 22 -3995 49 63 76.3 1219.75 111 5 1 3 27 2 84 2 20 -3996 49 64 80.66 1219.75 111 8 1 3 27 2 87 2 23 -3997 49 65 85.02 1219.75 111 10 1 3 27 2 89 2 25 -3998 49 66 89.38 1219.75 111 12 1 3 27 2 91 2 27 -3999 49 67 93.74 1219.75 115 9 1 3 28 2 88 2 24 -4000 49 68 98.1 1219.75 115 7 1 3 28 2 86 2 22 -4001 49 69 102.46 1219.75 115 6 1 3 28 2 85 2 21 -4002 49 70 106.82 1219.75 115 8 1 3 28 2 87 2 23 -4003 49 71 111.18 1219.75 115 10 1 3 28 2 89 2 25 -4004 49 72 115.54 1219.75 119 11 1 3 29 2 90 2 26 -4005 49 73 119.9 1219.75 119 9 1 3 29 2 88 2 24 -4006 49 74 124.26 1219.75 119 7 1 3 29 2 86 2 22 -4007 49 75 128.62 1219.75 119 8 1 3 29 2 87 2 23 -4008 49 76 132.98 1219.75 119 10 1 3 29 2 89 2 25 -4009 49 77 137.34 1219.75 123 9 1 3 30 2 88 2 24 -4010 49 78 141.7 1219.75 123 7 1 3 30 2 86 2 22 -4011 49 79 146.06 1219.75 123 5 1 3 30 2 84 2 20 -4012 49 80 150.42 1219.75 123 8 1 3 30 2 87 2 23 -4013 49 81 154.78 1219.75 123 10 1 3 30 2 89 2 25 -4014 49 82 159.14 1219.75 127 9 1 3 31 2 88 2 24 -4015 49 83 163.5 1219.75 127 7 1 3 31 2 86 2 22 -4016 49 84 167.86 1219.75 127 6 1 3 31 2 85 2 21 -4017 49 85 172.22 1219.75 127 8 1 3 31 2 87 2 23 -4018 49 86 176.58 1219.75 127 10 1 3 31 2 89 2 25 -4019 49 87 180.94 1219.75 131 9 1 3 32 2 88 2 24 -4020 49 88 185.3 1219.75 131 7 1 3 32 2 86 2 22 -4021 49 89 189.66 1219.75 131 6 1 3 32 2 85 2 21 -4022 49 90 194.02 1219.75 131 8 1 3 32 2 87 2 23 -4023 49 91 198.38 1219.75 131 10 1 3 32 2 89 2 25 -4024 50 0 -198.38 1227.25 63 13 1 3 15 2 92 2 28 -4025 50 1 -194.02 1227.25 63 11 1 3 15 2 90 2 26 -4026 50 2 -189.66 1227.25 63 12 1 3 15 2 91 2 27 -4027 50 3 -185.3 1227.25 63 14 1 3 15 2 93 2 29 -4028 50 4 -180.94 1227.25 63 16 1 3 15 2 95 2 31 -4029 50 5 -176.58 1227.25 67 13 1 3 16 2 92 2 28 -4030 50 6 -172.22 1227.25 67 11 1 3 16 2 90 2 26 -4031 50 7 -167.86 1227.25 67 12 1 3 16 2 91 2 27 -4032 50 8 -163.5 1227.25 67 14 1 3 16 2 93 2 29 -4033 50 9 -159.14 1227.25 67 16 1 3 16 2 95 2 31 -4034 50 10 -154.78 1227.25 71 15 1 3 17 2 94 2 30 -4035 50 11 -150.42 1227.25 71 13 1 3 17 2 92 2 28 -4036 50 12 -146.06 1227.25 71 11 1 3 17 2 90 2 26 -4037 50 13 -141.7 1227.25 71 12 1 3 17 2 91 2 27 -4038 50 14 -137.34 1227.25 71 14 1 3 17 2 93 2 29 -4039 50 15 -132.98 1227.25 75 15 1 3 18 2 94 2 30 -4040 50 16 -128.62 1227.25 75 13 1 3 18 2 92 2 28 -4041 50 17 -124.26 1227.25 75 11 1 3 18 2 90 2 26 -4042 50 18 -119.9 1227.25 75 14 1 3 18 2 93 2 29 -4043 50 19 -115.54 1227.25 75 16 1 3 18 2 95 2 31 -4044 50 20 -111.18 1227.25 79 13 1 3 19 2 92 2 28 -4045 50 21 -106.82 1227.25 79 11 1 3 19 2 90 2 26 -4046 50 22 -102.46 1227.25 79 12 1 3 19 2 91 2 27 -4047 50 23 -98.1 1227.25 79 14 1 3 19 2 93 2 29 -4048 50 24 -93.74 1227.25 79 16 1 3 19 2 95 2 31 -4049 50 25 -89.38 1227.25 83 17 1 3 20 2 96 3 0 -4050 50 26 -85.02 1227.25 83 15 1 3 20 2 94 2 30 -4051 50 27 -80.66 1227.25 83 13 1 3 20 2 92 2 28 -4052 50 28 -76.3 1227.25 83 12 1 3 20 2 91 2 27 -4053 50 29 -71.94 1227.25 83 14 1 3 20 2 93 2 29 -4054 50 30 -67.58 1227.25 83 16 1 3 20 2 95 2 31 -4055 50 31 -63.22 1227.25 87 13 1 3 21 2 92 2 28 -4056 50 32 -58.86 1227.25 87 11 1 3 21 2 90 2 26 -4057 50 33 -54.5 1227.25 87 12 1 3 21 2 91 2 27 -4058 50 34 -50.14 1227.25 87 14 1 3 21 2 93 2 29 -4059 50 35 -45.78 1227.25 87 16 1 3 21 2 95 2 31 -4060 50 36 -41.42 1227.25 91 13 1 3 22 2 92 2 28 -4061 50 37 -37.06 1227.25 91 11 1 3 22 2 90 2 26 -4062 50 38 -32.7 1227.25 91 12 1 3 22 2 91 2 27 -4063 50 39 -28.34 1227.25 91 14 1 3 22 2 93 2 29 -4064 50 40 -23.98 1227.25 91 16 1 3 22 2 95 2 31 -4065 50 41 -19.62 1227.25 95 13 1 3 23 2 92 2 28 -4066 50 42 -15.26 1227.25 95 11 1 3 23 2 90 2 26 -4067 50 43 -10.9 1227.25 95 12 1 3 23 2 91 2 27 -4068 50 44 -6.54 1227.25 95 14 1 3 23 2 93 2 29 -4069 50 45 -2.18 1227.25 95 16 1 3 23 2 95 2 31 -4070 50 46 2.18 1227.25 99 15 1 3 24 2 94 2 30 -4071 50 47 6.54 1227.25 99 13 1 3 24 2 92 2 28 -4072 50 48 10.9 1227.25 99 11 1 3 24 2 90 2 26 -4073 50 49 15.26 1227.25 99 12 1 3 24 2 91 2 27 -4074 50 50 19.62 1227.25 99 14 1 3 24 2 93 2 29 -4075 50 51 23.98 1227.25 103 15 1 3 25 2 94 2 30 -4076 50 52 28.34 1227.25 103 13 1 3 25 2 92 2 28 -4077 50 53 32.7 1227.25 103 11 1 3 25 2 90 2 26 -4078 50 54 37.06 1227.25 103 12 1 3 25 2 91 2 27 -4079 50 55 41.42 1227.25 103 14 1 3 25 2 93 2 29 -4080 50 56 45.78 1227.25 107 15 1 3 26 2 94 2 30 -4081 50 57 50.14 1227.25 107 13 1 3 26 2 92 2 28 -4082 50 58 54.5 1227.25 107 11 1 3 26 2 90 2 26 -4083 50 59 58.86 1227.25 107 12 1 3 26 2 91 2 27 -4084 50 60 63.22 1227.25 107 14 1 3 26 2 93 2 29 -4085 50 61 67.58 1227.25 111 15 1 3 27 2 94 2 30 -4086 50 62 71.94 1227.25 111 13 1 3 27 2 92 2 28 -4087 50 63 76.3 1227.25 111 11 1 3 27 2 90 2 26 -4088 50 64 80.66 1227.25 111 14 1 3 27 2 93 2 29 -4089 50 65 85.02 1227.25 111 16 1 3 27 2 95 2 31 -4090 50 66 89.38 1227.25 111 18 1 3 27 2 97 3 1 -4091 50 67 93.74 1227.25 115 15 1 3 28 2 94 2 30 -4092 50 68 98.1 1227.25 115 13 1 3 28 2 92 2 28 -4093 50 69 102.46 1227.25 115 11 1 3 28 2 90 2 26 -4094 50 70 106.82 1227.25 115 12 1 3 28 2 91 2 27 -4095 50 71 111.18 1227.25 115 14 1 3 28 2 93 2 29 -4096 50 72 115.54 1227.25 119 15 1 3 29 2 94 2 30 -4097 50 73 119.9 1227.25 119 13 1 3 29 2 92 2 28 -4098 50 74 124.26 1227.25 119 12 1 3 29 2 91 2 27 -4099 50 75 128.62 1227.25 119 14 1 3 29 2 93 2 29 -4100 50 76 132.98 1227.25 119 16 1 3 29 2 95 2 31 -4101 50 77 137.34 1227.25 123 13 1 3 30 2 92 2 28 -4102 50 78 141.7 1227.25 123 11 1 3 30 2 90 2 26 -4103 50 79 146.06 1227.25 123 12 1 3 30 2 91 2 27 -4104 50 80 150.42 1227.25 123 14 1 3 30 2 93 2 29 -4105 50 81 154.78 1227.25 123 16 1 3 30 2 95 2 31 -4106 50 82 159.14 1227.25 127 15 1 3 31 2 94 2 30 -4107 50 83 163.5 1227.25 127 13 1 3 31 2 92 2 28 -4108 50 84 167.86 1227.25 127 11 1 3 31 2 90 2 26 -4109 50 85 172.22 1227.25 127 12 1 3 31 2 91 2 27 -4110 50 86 176.58 1227.25 127 14 1 3 31 2 93 2 29 -4111 50 87 180.94 1227.25 131 15 1 3 32 2 94 2 30 -4112 50 88 185.3 1227.25 131 13 1 3 32 2 92 2 28 -4113 50 89 189.66 1227.25 131 11 1 3 32 2 90 2 26 -4114 50 90 194.02 1227.25 131 12 1 3 32 2 91 2 27 -4115 50 91 198.38 1227.25 131 14 1 3 32 2 93 2 29 -4116 51 0 -202.74 1234.75 63 19 1 3 15 2 98 3 2 -4117 51 1 -198.38 1234.75 63 17 1 3 15 2 96 3 0 -4118 51 2 -194.02 1234.75 63 15 1 3 15 2 94 2 30 -4119 51 3 -189.66 1234.75 63 18 1 3 15 2 97 3 1 -4120 51 4 -185.3 1234.75 63 20 1 3 15 2 99 3 3 -4121 51 5 -180.94 1234.75 67 19 1 3 16 2 98 3 2 -4122 51 6 -176.58 1234.75 67 17 1 3 16 2 96 3 0 -4123 51 7 -172.22 1234.75 67 15 1 3 16 2 94 2 30 -4124 51 8 -167.86 1234.75 67 18 1 3 16 2 97 3 1 -4125 51 9 -163.5 1234.75 67 20 1 3 16 2 99 3 3 -4126 51 10 -159.14 1234.75 67 22 1 3 16 2 101 3 5 -4127 51 11 -154.78 1234.75 71 19 1 3 17 2 98 3 2 -4128 51 12 -150.42 1234.75 71 17 1 3 17 2 96 3 0 -4129 51 13 -146.06 1234.75 71 16 1 3 17 2 95 2 31 -4130 51 14 -141.7 1234.75 71 18 1 3 17 2 97 3 1 -4131 51 15 -137.34 1234.75 71 20 1 3 17 2 99 3 3 -4132 51 16 -132.98 1234.75 75 19 1 3 18 2 98 3 2 -4133 51 17 -128.62 1234.75 75 17 1 3 18 2 96 3 0 -4134 51 18 -124.26 1234.75 75 18 1 3 18 2 97 3 1 -4135 51 19 -119.9 1234.75 75 20 1 3 18 2 99 3 3 -4136 51 20 -115.54 1234.75 75 22 1 3 18 2 101 3 5 -4137 51 21 -111.18 1234.75 79 19 1 3 19 2 98 3 2 -4138 51 22 -106.82 1234.75 79 17 1 3 19 2 96 3 0 -4139 51 23 -102.46 1234.75 79 15 1 3 19 2 94 2 30 -4140 51 24 -98.1 1234.75 79 18 1 3 19 2 97 3 1 -4141 51 25 -93.74 1234.75 79 20 1 3 19 2 99 3 3 -4142 51 26 -89.38 1234.75 83 21 1 3 20 2 100 3 4 -4143 51 27 -85.02 1234.75 83 19 1 3 20 2 98 3 2 -4144 51 28 -80.66 1234.75 83 18 1 3 20 2 97 3 1 -4145 51 29 -76.3 1234.75 83 20 1 3 20 2 99 3 3 -4146 51 30 -71.94 1234.75 83 22 1 3 20 2 101 3 5 -4147 51 31 -67.58 1234.75 87 19 1 3 21 2 98 3 2 -4148 51 32 -63.22 1234.75 87 17 1 3 21 2 96 3 0 -4149 51 33 -58.86 1234.75 87 15 1 3 21 2 94 2 30 -4150 51 34 -54.5 1234.75 87 18 1 3 21 2 97 3 1 -4151 51 35 -50.14 1234.75 87 20 1 3 21 2 99 3 3 -4152 51 36 -45.78 1234.75 87 22 1 3 21 2 101 3 5 -4153 51 37 -41.42 1234.75 91 19 1 3 22 2 98 3 2 -4154 51 38 -37.06 1234.75 91 17 1 3 22 2 96 3 0 -4155 51 39 -32.7 1234.75 91 15 1 3 22 2 94 2 30 -4156 51 40 -28.34 1234.75 91 18 1 3 22 2 97 3 1 -4157 51 41 -23.98 1234.75 91 20 1 3 22 2 99 3 3 -4158 51 42 -19.62 1234.75 95 19 1 3 23 2 98 3 2 -4159 51 43 -15.26 1234.75 95 17 1 3 23 2 96 3 0 -4160 51 44 -10.9 1234.75 95 15 1 3 23 2 94 2 30 -4161 51 45 -6.54 1234.75 95 18 1 3 23 2 97 3 1 -4162 51 46 -2.18 1234.75 95 20 1 3 23 2 99 3 3 -4163 51 47 2.18 1234.75 99 19 1 3 24 2 98 3 2 -4164 51 48 6.54 1234.75 99 17 1 3 24 2 96 3 0 -4165 51 49 10.9 1234.75 99 16 1 3 24 2 95 2 31 -4166 51 50 15.26 1234.75 99 18 1 3 24 2 97 3 1 -4167 51 51 19.62 1234.75 99 20 1 3 24 2 99 3 3 -4168 51 52 23.98 1234.75 103 19 1 3 25 2 98 3 2 -4169 51 53 28.34 1234.75 103 17 1 3 25 2 96 3 0 -4170 51 54 32.7 1234.75 103 16 1 3 25 2 95 2 31 -4171 51 55 37.06 1234.75 103 18 1 3 25 2 97 3 1 -4172 51 56 41.42 1234.75 103 20 1 3 25 2 99 3 3 -4173 51 57 45.78 1234.75 107 21 1 3 26 2 100 3 4 -4174 51 58 50.14 1234.75 107 19 1 3 26 2 98 3 2 -4175 51 59 54.5 1234.75 107 17 1 3 26 2 96 3 0 -4176 51 60 58.86 1234.75 107 16 1 3 26 2 95 2 31 -4177 51 61 63.22 1234.75 107 18 1 3 26 2 97 3 1 -4178 51 62 67.58 1234.75 107 20 1 3 26 2 99 3 3 -4179 51 63 71.94 1234.75 111 21 1 3 27 2 100 3 4 -4180 51 64 76.3 1234.75 111 19 1 3 27 2 98 3 2 -4181 51 65 80.66 1234.75 111 17 1 3 27 2 96 3 0 -4182 51 66 85.02 1234.75 111 20 1 3 27 2 99 3 3 -4183 51 67 89.38 1234.75 111 22 1 3 27 2 101 3 5 -4184 51 68 93.74 1234.75 115 19 1 3 28 2 98 3 2 -4185 51 69 98.1 1234.75 115 17 1 3 28 2 96 3 0 -4186 51 70 102.46 1234.75 115 16 1 3 28 2 95 2 31 -4187 51 71 106.82 1234.75 115 18 1 3 28 2 97 3 1 -4188 51 72 111.18 1234.75 115 20 1 3 28 2 99 3 3 -4189 51 73 115.54 1234.75 119 21 1 3 29 2 100 3 4 -4190 51 74 119.9 1234.75 119 19 1 3 29 2 98 3 2 -4191 51 75 124.26 1234.75 119 17 1 3 29 2 96 3 0 -4192 51 76 128.62 1234.75 119 18 1 3 29 2 97 3 1 -4193 51 77 132.98 1234.75 119 20 1 3 29 2 99 3 3 -4194 51 78 137.34 1234.75 123 19 1 3 30 2 98 3 2 -4195 51 79 141.7 1234.75 123 17 1 3 30 2 96 3 0 -4196 51 80 146.06 1234.75 123 15 1 3 30 2 94 2 30 -4197 51 81 150.42 1234.75 123 18 1 3 30 2 97 3 1 -4198 51 82 154.78 1234.75 123 20 1 3 30 2 99 3 3 -4199 51 83 159.14 1234.75 127 21 1 3 31 2 100 3 4 -4200 51 84 163.5 1234.75 127 19 1 3 31 2 98 3 2 -4201 51 85 167.86 1234.75 127 17 1 3 31 2 96 3 0 -4202 51 86 172.22 1234.75 127 16 1 3 31 2 95 2 31 -4203 51 87 176.58 1234.75 127 18 1 3 31 2 97 3 1 -4204 51 88 180.94 1234.75 127 20 1 3 31 2 99 3 3 -4205 51 89 185.3 1234.75 131 19 1 3 32 2 98 3 2 -4206 51 90 189.66 1234.75 131 17 1 3 32 2 96 3 0 -4207 51 91 194.02 1234.75 131 16 1 3 32 2 95 2 31 -4208 51 92 198.38 1234.75 131 18 1 3 32 2 97 3 1 -4209 51 93 202.74 1234.75 131 20 1 3 32 2 99 3 3 -4210 52 0 -202.74 1242.25 63 25 1 3 15 2 104 3 8 -4211 52 1 -198.38 1242.25 63 23 1 3 15 2 102 3 6 -4212 52 2 -194.02 1242.25 63 21 1 3 15 2 100 3 4 -4213 52 3 -189.66 1242.25 63 22 1 3 15 2 101 3 5 -4214 52 4 -185.3 1242.25 63 24 1 3 15 2 103 3 7 -4215 52 5 -180.94 1242.25 67 25 1 3 16 2 104 3 8 -4216 52 6 -176.58 1242.25 67 23 1 3 16 2 102 3 6 -4217 52 7 -172.22 1242.25 67 21 1 3 16 2 100 3 4 -4218 52 8 -167.86 1242.25 67 24 1 3 16 2 103 3 7 -4219 52 9 -163.5 1242.25 67 26 1 3 16 2 105 3 9 -4220 52 10 -159.14 1242.25 71 25 1 3 17 2 104 3 8 -4221 52 11 -154.78 1242.25 71 23 1 3 17 2 102 3 6 -4222 52 12 -150.42 1242.25 71 21 1 3 17 2 100 3 4 -4223 52 13 -146.06 1242.25 71 22 1 3 17 2 101 3 5 -4224 52 14 -141.7 1242.25 71 24 1 3 17 2 103 3 7 -4225 52 15 -137.34 1242.25 71 26 1 3 17 2 105 3 9 -4226 52 16 -132.98 1242.25 75 25 1 3 18 2 104 3 8 -4227 52 17 -128.62 1242.25 75 23 1 3 18 2 102 3 6 -4228 52 18 -124.26 1242.25 75 21 1 3 18 2 100 3 4 -4229 52 19 -119.9 1242.25 75 24 1 3 18 2 103 3 7 -4230 52 20 -115.54 1242.25 75 26 1 3 18 2 105 3 9 -4231 52 21 -111.18 1242.25 79 23 1 3 19 2 102 3 6 -4232 52 22 -106.82 1242.25 79 21 1 3 19 2 100 3 4 -4233 52 23 -102.46 1242.25 79 22 1 3 19 2 101 3 5 -4234 52 24 -98.1 1242.25 79 24 1 3 19 2 103 3 7 -4235 52 25 -93.74 1242.25 79 26 1 3 19 2 105 3 9 -4236 52 26 -89.38 1242.25 83 27 1 3 20 2 106 3 10 -4237 52 27 -85.02 1242.25 83 25 1 3 20 2 104 3 8 -4238 52 28 -80.66 1242.25 83 23 1 3 20 2 102 3 6 -4239 52 29 -76.3 1242.25 83 24 1 3 20 2 103 3 7 -4240 52 30 -71.94 1242.25 83 26 1 3 20 2 105 3 9 -4241 52 31 -67.58 1242.25 87 25 1 3 21 2 104 3 8 -4242 52 32 -63.22 1242.25 87 23 1 3 21 2 102 3 6 -4243 52 33 -58.86 1242.25 87 21 1 3 21 2 100 3 4 -4244 52 34 -54.5 1242.25 87 24 1 3 21 2 103 3 7 -4245 52 35 -50.14 1242.25 87 26 1 3 21 2 105 3 9 -4246 52 36 -45.78 1242.25 87 28 1 3 21 2 107 3 11 -4247 52 37 -41.42 1242.25 91 25 1 3 22 2 104 3 8 -4248 52 38 -37.06 1242.25 91 23 1 3 22 2 102 3 6 -4249 52 39 -32.7 1242.25 91 21 1 3 22 2 100 3 4 -4250 52 40 -28.34 1242.25 91 22 1 3 22 2 101 3 5 -4251 52 41 -23.98 1242.25 91 24 1 3 22 2 103 3 7 -4252 52 42 -19.62 1242.25 95 23 1 3 23 2 102 3 6 -4253 52 43 -15.26 1242.25 95 21 1 3 23 2 100 3 4 -4254 52 44 -10.9 1242.25 95 22 1 3 23 2 101 3 5 -4255 52 45 -6.54 1242.25 95 24 1 3 23 2 103 3 7 -4256 52 46 -2.18 1242.25 95 26 1 3 23 2 105 3 9 -4257 52 47 2.18 1242.25 99 25 1 3 24 2 104 3 8 -4258 52 48 6.54 1242.25 99 23 1 3 24 2 102 3 6 -4259 52 49 10.9 1242.25 99 21 1 3 24 2 100 3 4 -4260 52 50 15.26 1242.25 99 22 1 3 24 2 101 3 5 -4261 52 51 19.62 1242.25 99 24 1 3 24 2 103 3 7 -4262 52 52 23.98 1242.25 103 23 1 3 25 2 102 3 6 -4263 52 53 28.34 1242.25 103 21 1 3 25 2 100 3 4 -4264 52 54 32.7 1242.25 103 22 1 3 25 2 101 3 5 -4265 52 55 37.06 1242.25 103 24 1 3 25 2 103 3 7 -4266 52 56 41.42 1242.25 103 26 1 3 25 2 105 3 9 -4267 52 57 45.78 1242.25 107 27 1 3 26 2 106 3 10 -4268 52 58 50.14 1242.25 107 25 1 3 26 2 104 3 8 -4269 52 59 54.5 1242.25 107 23 1 3 26 2 102 3 6 -4270 52 60 58.86 1242.25 107 22 1 3 26 2 101 3 5 -4271 52 61 63.22 1242.25 107 24 1 3 26 2 103 3 7 -4272 52 62 67.58 1242.25 107 26 1 3 26 2 105 3 9 -4273 52 63 71.94 1242.25 111 25 1 3 27 2 104 3 8 -4274 52 64 76.3 1242.25 111 23 1 3 27 2 102 3 6 -4275 52 65 80.66 1242.25 111 24 1 3 27 2 103 3 7 -4276 52 66 85.02 1242.25 111 26 1 3 27 2 105 3 9 -4277 52 67 89.38 1242.25 111 28 1 3 27 2 107 3 11 -4278 52 68 93.74 1242.25 115 25 1 3 28 2 104 3 8 -4279 52 69 98.1 1242.25 115 23 1 3 28 2 102 3 6 -4280 52 70 102.46 1242.25 115 21 1 3 28 2 100 3 4 -4281 52 71 106.82 1242.25 115 22 1 3 28 2 101 3 5 -4282 52 72 111.18 1242.25 115 24 1 3 28 2 103 3 7 -4283 52 73 115.54 1242.25 119 25 1 3 29 2 104 3 8 -4284 52 74 119.9 1242.25 119 23 1 3 29 2 102 3 6 -4285 52 75 124.26 1242.25 119 22 1 3 29 2 101 3 5 -4286 52 76 128.62 1242.25 119 24 1 3 29 2 103 3 7 -4287 52 77 132.98 1242.25 119 26 1 3 29 2 105 3 9 -4288 52 78 137.34 1242.25 123 25 1 3 30 2 104 3 8 -4289 52 79 141.7 1242.25 123 23 1 3 30 2 102 3 6 -4290 52 80 146.06 1242.25 123 21 1 3 30 2 100 3 4 -4291 52 81 150.42 1242.25 123 22 1 3 30 2 101 3 5 -4292 52 82 154.78 1242.25 123 24 1 3 30 2 103 3 7 -4293 52 83 159.14 1242.25 123 26 1 3 30 2 105 3 9 -4294 52 84 163.5 1242.25 127 25 1 3 31 2 104 3 8 -4295 52 85 167.86 1242.25 127 23 1 3 31 2 102 3 6 -4296 52 86 172.22 1242.25 127 22 1 3 31 2 101 3 5 -4297 52 87 176.58 1242.25 127 24 1 3 31 2 103 3 7 -4298 52 88 180.94 1242.25 127 26 1 3 31 2 105 3 9 -4299 52 89 185.3 1242.25 131 23 1 3 32 2 102 3 6 -4300 52 90 189.66 1242.25 131 21 1 3 32 2 100 3 4 -4301 52 91 194.02 1242.25 131 22 1 3 32 2 101 3 5 -4302 52 92 198.38 1242.25 131 24 1 3 32 2 103 3 7 -4303 52 93 202.74 1242.25 131 26 1 3 32 2 105 3 9 -4304 53 0 -202.74 1249.75 63 29 1 3 15 2 108 3 12 -4305 53 1 -198.38 1249.75 63 27 1 3 15 2 106 3 10 -4306 53 2 -194.02 1249.75 63 26 1 3 15 2 105 3 9 -4307 53 3 -189.66 1249.75 63 28 1 3 15 2 107 3 11 -4308 53 4 -185.3 1249.75 63 30 1 3 15 2 109 3 13 -4309 53 5 -180.94 1249.75 67 29 1 3 16 2 108 3 12 -4310 53 6 -176.58 1249.75 67 27 1 3 16 2 106 3 10 -4311 53 7 -172.22 1249.75 67 28 1 3 16 2 107 3 11 -4312 53 8 -167.86 1249.75 67 30 1 3 16 2 109 3 13 -4313 53 9 -163.5 1249.75 67 32 1 3 16 2 111 3 15 -4314 53 10 -159.14 1249.75 71 31 1 3 17 2 110 3 14 -4315 53 11 -154.78 1249.75 71 29 1 3 17 2 108 3 12 -4316 53 12 -150.42 1249.75 71 27 1 3 17 2 106 3 10 -4317 53 13 -146.06 1249.75 71 28 1 3 17 2 107 3 11 -4318 53 14 -141.7 1249.75 71 30 1 3 17 2 109 3 13 -4319 53 15 -137.34 1249.75 75 31 1 3 18 2 110 3 14 -4320 53 16 -132.98 1249.75 75 29 1 3 18 2 108 3 12 -4321 53 17 -128.62 1249.75 75 27 1 3 18 2 106 3 10 -4322 53 18 -124.26 1249.75 75 28 1 3 18 2 107 3 11 -4323 53 19 -119.9 1249.75 75 30 1 3 18 2 109 3 13 -4324 53 20 -115.54 1249.75 75 32 1 3 18 2 111 3 15 -4325 53 21 -111.18 1249.75 79 29 1 3 19 2 108 3 12 -4326 53 22 -106.82 1249.75 79 27 1 3 19 2 106 3 10 -4327 53 23 -102.46 1249.75 79 25 1 3 19 2 104 3 8 -4328 53 24 -98.1 1249.75 79 28 1 3 19 2 107 3 11 -4329 53 25 -93.74 1249.75 79 30 1 3 19 2 109 3 13 -4330 53 26 -89.38 1249.75 83 31 1 3 20 2 110 3 14 -4331 53 27 -85.02 1249.75 83 29 1 3 20 2 108 3 12 -4332 53 28 -80.66 1249.75 83 28 1 3 20 2 107 3 11 -4333 53 29 -76.3 1249.75 83 30 1 3 20 2 109 3 13 -4334 53 30 -71.94 1249.75 83 32 1 3 20 2 111 3 15 -4335 53 31 -67.58 1249.75 87 31 1 3 21 2 110 3 14 -4336 53 32 -63.22 1249.75 87 29 1 3 21 2 108 3 12 -4337 53 33 -58.86 1249.75 87 27 1 3 21 2 106 3 10 -4338 53 34 -54.5 1249.75 87 30 1 3 21 2 109 3 13 -4339 53 35 -50.14 1249.75 87 32 1 3 21 2 111 3 15 -4340 53 36 -45.78 1249.75 91 33 1 3 22 2 112 3 16 -4341 53 37 -41.42 1249.75 91 31 1 3 22 2 110 3 14 -4342 53 38 -37.06 1249.75 91 29 1 3 22 2 108 3 12 -4343 53 39 -32.7 1249.75 91 27 1 3 22 2 106 3 10 -4344 53 40 -28.34 1249.75 91 26 1 3 22 2 105 3 9 -4345 53 41 -23.98 1249.75 91 28 1 3 22 2 107 3 11 -4346 53 42 -19.62 1249.75 95 29 1 3 23 2 108 3 12 -4347 53 43 -15.26 1249.75 95 27 1 3 23 2 106 3 10 -4348 53 44 -10.9 1249.75 95 25 1 3 23 2 104 3 8 -4349 53 45 -6.54 1249.75 95 28 1 3 23 2 107 3 11 -4350 53 46 -2.18 1249.75 95 30 1 3 23 2 109 3 13 -4351 53 47 2.18 1249.75 99 29 1 3 24 2 108 3 12 -4352 53 48 6.54 1249.75 99 27 1 3 24 2 106 3 10 -4353 53 49 10.9 1249.75 99 26 1 3 24 2 105 3 9 -4354 53 50 15.26 1249.75 99 28 1 3 24 2 107 3 11 -4355 53 51 19.62 1249.75 99 30 1 3 24 2 109 3 13 -4356 53 52 23.98 1249.75 103 27 1 3 25 2 106 3 10 -4357 53 53 28.34 1249.75 103 25 1 3 25 2 104 3 8 -4358 53 54 32.7 1249.75 103 28 1 3 25 2 107 3 11 -4359 53 55 37.06 1249.75 103 30 1 3 25 2 109 3 13 -4360 53 56 41.42 1249.75 103 32 1 3 25 2 111 3 15 -4361 53 57 45.78 1249.75 103 34 1 3 25 2 113 3 17 -4362 53 58 50.14 1249.75 107 31 1 3 26 2 110 3 14 -4363 53 59 54.5 1249.75 107 29 1 3 26 2 108 3 12 -4364 53 60 58.86 1249.75 107 28 1 3 26 2 107 3 11 -4365 53 61 63.22 1249.75 107 30 1 3 26 2 109 3 13 -4366 53 62 67.58 1249.75 107 32 1 3 26 2 111 3 15 -4367 53 63 71.94 1249.75 111 31 1 3 27 2 110 3 14 -4368 53 64 76.3 1249.75 111 29 1 3 27 2 108 3 12 -4369 53 65 80.66 1249.75 111 27 1 3 27 2 106 3 10 -4370 53 66 85.02 1249.75 111 30 1 3 27 2 109 3 13 -4371 53 67 89.38 1249.75 111 32 1 3 27 2 111 3 15 -4372 53 68 93.74 1249.75 115 29 1 3 28 2 108 3 12 -4373 53 69 98.1 1249.75 115 27 1 3 28 2 106 3 10 -4374 53 70 102.46 1249.75 115 26 1 3 28 2 105 3 9 -4375 53 71 106.82 1249.75 115 28 1 3 28 2 107 3 11 -4376 53 72 111.18 1249.75 115 30 1 3 28 2 109 3 13 -4377 53 73 115.54 1249.75 119 31 1 3 29 2 110 3 14 -4378 53 74 119.9 1249.75 119 29 1 3 29 2 108 3 12 -4379 53 75 124.26 1249.75 119 27 1 3 29 2 106 3 10 -4380 53 76 128.62 1249.75 119 28 1 3 29 2 107 3 11 -4381 53 77 132.98 1249.75 119 30 1 3 29 2 109 3 13 -4382 53 78 137.34 1249.75 119 32 1 3 29 2 111 3 15 -4383 53 79 141.7 1249.75 123 29 1 3 30 2 108 3 12 -4384 53 80 146.06 1249.75 123 27 1 3 30 2 106 3 10 -4385 53 81 150.42 1249.75 123 28 1 3 30 2 107 3 11 -4386 53 82 154.78 1249.75 123 30 1 3 30 2 109 3 13 -4387 53 83 159.14 1249.75 123 32 1 3 30 2 111 3 15 -4388 53 84 163.5 1249.75 127 31 1 3 31 2 110 3 14 -4389 53 85 167.86 1249.75 127 29 1 3 31 2 108 3 12 -4390 53 86 172.22 1249.75 127 27 1 3 31 2 106 3 10 -4391 53 87 176.58 1249.75 127 28 1 3 31 2 107 3 11 -4392 53 88 180.94 1249.75 127 30 1 3 31 2 109 3 13 -4393 53 89 185.3 1249.75 131 29 1 3 32 2 108 3 12 -4394 53 90 189.66 1249.75 131 27 1 3 32 2 106 3 10 -4395 53 91 194.02 1249.75 131 25 1 3 32 2 104 3 8 -4396 53 92 198.38 1249.75 131 28 1 3 32 2 107 3 11 -4397 53 93 202.74 1249.75 131 30 1 3 32 2 109 3 13 -4398 54 0 -207.1 1257.25 63 35 1 3 15 2 114 3 18 -4399 54 1 -202.74 1257.25 63 33 1 3 15 2 112 3 16 -4400 54 2 -198.38 1257.25 63 31 1 3 15 2 110 3 14 -4401 54 3 -194.02 1257.25 63 32 1 3 15 2 111 3 15 -4402 54 4 -189.66 1257.25 63 34 1 3 15 2 113 3 17 -4403 54 5 -185.3 1257.25 63 36 1 3 15 2 115 3 19 -4404 54 6 -180.94 1257.25 67 35 1 3 16 2 114 3 18 -4405 54 7 -176.58 1257.25 67 33 1 3 16 2 112 3 16 -4406 54 8 -172.22 1257.25 67 31 1 3 16 2 110 3 14 -4407 54 9 -167.86 1257.25 67 34 1 3 16 2 113 3 17 -4408 54 10 -163.5 1257.25 67 36 1 3 16 2 115 3 19 -4409 54 11 -159.14 1257.25 71 35 1 3 17 2 114 3 18 -4410 54 12 -154.78 1257.25 71 33 1 3 17 2 112 3 16 -4411 54 13 -150.42 1257.25 71 32 1 3 17 2 111 3 15 -4412 54 14 -146.06 1257.25 71 34 1 3 17 2 113 3 17 -4413 54 15 -141.7 1257.25 71 36 1 3 17 2 115 3 19 -4414 54 16 -137.34 1257.25 75 39 1 3 18 2 118 3 22 -4415 54 17 -132.98 1257.25 75 37 1 3 18 2 116 3 20 -4416 54 18 -128.62 1257.25 75 35 1 3 18 2 114 3 18 -4417 54 19 -124.26 1257.25 75 33 1 3 18 2 112 3 16 -4418 54 20 -119.9 1257.25 75 34 1 3 18 2 113 3 17 -4419 54 21 -115.54 1257.25 75 36 1 3 18 2 115 3 19 -4420 54 22 -111.18 1257.25 79 33 1 3 19 2 112 3 16 -4421 54 23 -106.82 1257.25 79 31 1 3 19 2 110 3 14 -4422 54 24 -102.46 1257.25 79 32 1 3 19 2 111 3 15 -4423 54 25 -98.1 1257.25 79 34 1 3 19 2 113 3 17 -4424 54 26 -93.74 1257.25 79 36 1 3 19 2 115 3 19 -4425 54 27 -89.38 1257.25 83 37 1 3 20 2 116 3 20 -4426 54 28 -85.02 1257.25 83 35 1 3 20 2 114 3 18 -4427 54 29 -80.66 1257.25 83 33 1 3 20 2 112 3 16 -4428 54 30 -76.3 1257.25 83 34 1 3 20 2 113 3 17 -4429 54 31 -71.94 1257.25 83 36 1 3 20 2 115 3 19 -4430 54 32 -67.58 1257.25 87 35 1 3 21 2 114 3 18 -4431 54 33 -63.22 1257.25 87 33 1 3 21 2 112 3 16 -4432 54 34 -58.86 1257.25 87 34 1 3 21 2 113 3 17 -4433 54 35 -54.5 1257.25 87 36 1 3 21 2 115 3 19 -4434 54 36 -50.14 1257.25 87 38 1 3 21 2 117 3 21 -4435 54 37 -45.78 1257.25 91 39 1 3 22 2 118 3 22 -4436 54 38 -41.42 1257.25 91 37 1 3 22 2 116 3 20 -4437 54 39 -37.06 1257.25 91 35 1 3 22 2 114 3 18 -4438 54 40 -32.7 1257.25 91 30 1 3 22 2 109 3 13 -4439 54 41 -28.34 1257.25 91 32 1 3 22 2 111 3 15 -4440 54 42 -23.98 1257.25 91 34 1 3 22 2 113 3 17 -4441 54 43 -19.62 1257.25 95 33 1 3 23 2 112 3 16 -4442 54 44 -15.26 1257.25 95 31 1 3 23 2 110 3 14 -4443 54 45 -10.9 1257.25 95 32 1 3 23 2 111 3 15 -4444 54 46 -6.54 1257.25 95 34 1 3 23 2 113 3 17 -4445 54 47 -2.18 1257.25 95 36 1 3 23 2 115 3 19 -4446 54 48 2.18 1257.25 99 35 1 3 24 2 114 3 18 -4447 54 49 6.54 1257.25 99 33 1 3 24 2 112 3 16 -4448 54 50 10.9 1257.25 99 31 1 3 24 2 110 3 14 -4449 54 51 15.26 1257.25 99 32 1 3 24 2 111 3 15 -4450 54 52 19.62 1257.25 99 34 1 3 24 2 113 3 17 -4451 54 53 23.98 1257.25 103 33 1 3 25 2 112 3 16 -4452 54 54 28.34 1257.25 103 31 1 3 25 2 110 3 14 -4453 54 55 32.7 1257.25 103 29 1 3 25 2 108 3 12 -4454 54 56 37.06 1257.25 103 36 1 3 25 2 115 3 19 -4455 54 57 41.42 1257.25 103 38 1 3 25 2 117 3 21 -4456 54 58 45.78 1257.25 103 40 1 3 25 2 119 3 23 -4457 54 59 50.14 1257.25 107 37 1 3 26 2 116 3 20 -4458 54 60 54.5 1257.25 107 35 1 3 26 2 114 3 18 -4459 54 61 58.86 1257.25 107 33 1 3 26 2 112 3 16 -4460 54 62 63.22 1257.25 107 34 1 3 26 2 113 3 17 -4461 54 63 67.58 1257.25 107 36 1 3 26 2 115 3 19 -4462 54 64 71.94 1257.25 111 35 1 3 27 2 114 3 18 -4463 54 65 76.3 1257.25 111 33 1 3 27 2 112 3 16 -4464 54 66 80.66 1257.25 111 34 1 3 27 2 113 3 17 -4465 54 67 85.02 1257.25 111 36 1 3 27 2 115 3 19 -4466 54 68 89.38 1257.25 111 38 1 3 27 2 117 3 21 -4467 54 69 93.74 1257.25 115 35 1 3 28 2 114 3 18 -4468 54 70 98.1 1257.25 115 33 1 3 28 2 112 3 16 -4469 54 71 102.46 1257.25 115 31 1 3 28 2 110 3 14 -4470 54 72 106.82 1257.25 115 32 1 3 28 2 111 3 15 -4471 54 73 111.18 1257.25 115 34 1 3 28 2 113 3 17 -4472 54 74 115.54 1257.25 119 35 1 3 29 2 114 3 18 -4473 54 75 119.9 1257.25 119 33 1 3 29 2 112 3 16 -4474 54 76 124.26 1257.25 119 34 1 3 29 2 113 3 17 -4475 54 77 128.62 1257.25 119 36 1 3 29 2 115 3 19 -4476 54 78 132.98 1257.25 119 38 1 3 29 2 117 3 21 -4477 54 79 137.34 1257.25 119 40 1 3 29 2 119 3 23 -4478 54 80 141.7 1257.25 123 35 1 3 30 2 114 3 18 -4479 54 81 146.06 1257.25 123 33 1 3 30 2 112 3 16 -4480 54 82 150.42 1257.25 123 31 1 3 30 2 110 3 14 -4481 54 83 154.78 1257.25 123 34 1 3 30 2 113 3 17 -4482 54 84 159.14 1257.25 123 36 1 3 30 2 115 3 19 -4483 54 85 163.5 1257.25 127 35 1 3 31 2 114 3 18 -4484 54 86 167.86 1257.25 127 33 1 3 31 2 112 3 16 -4485 54 87 172.22 1257.25 127 32 1 3 31 2 111 3 15 -4486 54 88 176.58 1257.25 127 34 1 3 31 2 113 3 17 -4487 54 89 180.94 1257.25 127 36 1 3 31 2 115 3 19 -4488 54 90 185.3 1257.25 131 35 1 3 32 2 114 3 18 -4489 54 91 189.66 1257.25 131 33 1 3 32 2 112 3 16 -4490 54 92 194.02 1257.25 131 31 1 3 32 2 110 3 14 -4491 54 93 198.38 1257.25 131 32 1 3 32 2 111 3 15 -4492 54 94 202.74 1257.25 131 34 1 3 32 2 113 3 17 -4493 54 95 207.1 1257.25 131 36 1 3 32 2 115 3 19 -4494 55 0 -207.1 1264.75 63 39 1 3 15 2 118 3 22 -4495 55 1 -202.74 1264.75 63 37 1 3 15 2 116 3 20 -4496 55 2 -198.38 1264.75 63 38 1 3 15 2 117 3 21 -4497 55 3 -194.02 1264.75 63 40 1 3 15 2 119 3 23 -4498 55 4 -189.66 1264.75 64 2 1 3 15 3 121 3 25 -4499 55 5 -185.3 1264.75 68 3 1 3 16 3 122 3 26 -4500 55 6 -180.94 1264.75 68 1 1 3 16 3 120 3 24 -4501 55 7 -176.58 1264.75 67 39 1 3 16 2 118 3 22 -4502 55 8 -172.22 1264.75 67 37 1 3 16 2 116 3 20 -4503 55 9 -167.86 1264.75 67 38 1 3 16 2 117 3 21 -4504 55 10 -163.5 1264.75 67 40 1 3 16 2 119 3 23 -4505 55 11 -159.14 1264.75 71 39 1 3 17 2 118 3 22 -4506 55 12 -154.78 1264.75 71 37 1 3 17 2 116 3 20 -4507 55 13 -150.42 1264.75 71 38 1 3 17 2 117 3 21 -4508 55 14 -146.06 1264.75 71 40 1 3 17 2 119 3 23 -4509 55 15 -141.7 1264.75 72 2 1 3 17 3 121 3 25 -4510 55 16 -137.34 1264.75 76 3 1 3 18 3 122 3 26 -4511 55 17 -132.98 1264.75 76 1 1 3 18 3 120 3 24 -4512 55 18 -128.62 1264.75 76 2 1 3 18 3 121 3 25 -4513 55 19 -124.26 1264.75 75 38 1 3 18 2 117 3 21 -4514 55 20 -119.9 1264.75 75 40 1 3 18 2 119 3 23 -4515 55 21 -115.54 1264.75 79 39 1 3 19 2 118 3 22 -4516 55 22 -111.18 1264.75 79 37 1 3 19 2 116 3 20 -4517 55 23 -106.82 1264.75 79 35 1 3 19 2 114 3 18 -4518 55 24 -102.46 1264.75 79 38 1 3 19 2 117 3 21 -4519 55 25 -98.1 1264.75 79 40 1 3 19 2 119 3 23 -4520 55 26 -93.74 1264.75 80 2 1 3 19 3 121 3 25 -4521 55 27 -89.38 1264.75 84 3 1 3 20 3 122 3 26 -4522 55 28 -85.02 1264.75 84 1 1 3 20 3 120 3 24 -4523 55 29 -80.66 1264.75 83 39 1 3 20 2 118 3 22 -4524 55 30 -76.3 1264.75 83 38 1 3 20 2 117 3 21 -4525 55 31 -71.94 1264.75 83 40 1 3 20 2 119 3 23 -4526 55 32 -67.58 1264.75 87 39 1 3 21 2 118 3 22 -4527 55 33 -63.22 1264.75 87 37 1 3 21 2 116 3 20 -4528 55 34 -58.86 1264.75 87 40 1 3 21 2 119 3 23 -4529 55 35 -54.5 1264.75 88 2 1 3 21 3 121 3 25 -4530 55 36 -50.14 1264.75 88 4 1 3 21 3 123 3 27 -4531 55 37 -45.78 1264.75 92 5 1 3 22 3 124 3 28 -4532 55 38 -41.42 1264.75 92 3 1 3 22 3 122 3 26 -4533 55 39 -37.06 1264.75 92 1 1 3 22 3 120 3 24 -4534 55 40 -32.7 1264.75 91 36 1 3 22 2 115 3 19 -4535 55 41 -28.34 1264.75 91 38 1 3 22 2 117 3 21 -4536 55 42 -23.98 1264.75 91 40 1 3 22 2 119 3 23 -4537 55 43 -19.62 1264.75 95 39 1 3 23 2 118 3 22 -4538 55 44 -15.26 1264.75 95 37 1 3 23 2 116 3 20 -4539 55 45 -10.9 1264.75 95 35 1 3 23 2 114 3 18 -4540 55 46 -6.54 1264.75 95 38 1 3 23 2 117 3 21 -4541 55 47 -2.18 1264.75 95 40 1 3 23 2 119 3 23 -4542 55 48 2.18 1264.75 99 39 1 3 24 2 118 3 22 -4543 55 49 6.54 1264.75 99 37 1 3 24 2 116 3 20 -4544 55 50 10.9 1264.75 99 36 1 3 24 2 115 3 19 -4545 55 51 15.26 1264.75 99 38 1 3 24 2 117 3 21 -4546 55 52 19.62 1264.75 99 40 1 3 24 2 119 3 23 -4547 55 53 23.98 1264.75 103 39 1 3 25 2 118 3 22 -4548 55 54 28.34 1264.75 103 37 1 3 25 2 116 3 20 -4549 55 55 32.7 1264.75 103 35 1 3 25 2 114 3 18 -4550 55 56 37.06 1264.75 104 2 1 3 25 3 121 3 25 -4551 55 57 41.42 1264.75 104 4 1 3 25 3 123 3 27 -4552 55 58 45.78 1264.75 104 6 1 3 25 3 125 3 29 -4553 55 59 50.14 1264.75 108 3 1 3 26 3 122 3 26 -4554 55 60 54.5 1264.75 108 1 1 3 26 3 120 3 24 -4555 55 61 58.86 1264.75 107 39 1 3 26 2 118 3 22 -4556 55 62 63.22 1264.75 107 38 1 3 26 2 117 3 21 -4557 55 63 67.58 1264.75 107 40 1 3 26 2 119 3 23 -4558 55 64 71.94 1264.75 111 39 1 3 27 2 118 3 22 -4559 55 65 76.3 1264.75 111 37 1 3 27 2 116 3 20 -4560 55 66 80.66 1264.75 111 40 1 3 27 2 119 3 23 -4561 55 67 85.02 1264.75 112 2 1 3 27 3 121 3 25 -4562 55 68 89.38 1264.75 112 4 1 3 27 3 123 3 27 -4563 55 69 93.74 1264.75 116 1 1 3 28 3 120 3 24 -4564 55 70 98.1 1264.75 115 39 1 3 28 2 118 3 22 -4565 55 71 102.46 1264.75 115 37 1 3 28 2 116 3 20 -4566 55 72 106.82 1264.75 115 36 1 3 28 2 115 3 19 -4567 55 73 111.18 1264.75 115 38 1 3 28 2 117 3 21 -4568 55 74 115.54 1264.75 115 40 1 3 28 2 119 3 23 -4569 55 75 119.9 1264.75 119 39 1 3 29 2 118 3 22 -4570 55 76 124.26 1264.75 119 37 1 3 29 2 116 3 20 -4571 55 77 128.62 1264.75 120 1 1 3 29 3 120 3 24 -4572 55 78 132.98 1264.75 120 2 1 3 29 3 121 3 25 -4573 55 79 137.34 1264.75 120 4 1 3 29 3 123 3 27 -4574 55 80 141.7 1264.75 124 1 1 3 30 3 120 3 24 -4575 55 81 146.06 1264.75 123 39 1 3 30 2 118 3 22 -4576 55 82 150.42 1264.75 123 37 1 3 30 2 116 3 20 -4577 55 83 154.78 1264.75 123 38 1 3 30 2 117 3 21 -4578 55 84 159.14 1264.75 123 40 1 3 30 2 119 3 23 -4579 55 85 163.5 1264.75 127 39 1 3 31 2 118 3 22 -4580 55 86 167.86 1264.75 127 37 1 3 31 2 116 3 20 -4581 55 87 172.22 1264.75 127 38 1 3 31 2 117 3 21 -4582 55 88 176.58 1264.75 127 40 1 3 31 2 119 3 23 -4583 55 89 180.94 1264.75 128 2 1 3 31 3 121 3 25 -4584 55 90 185.3 1264.75 128 4 1 3 31 3 123 3 27 -4585 55 91 189.66 1264.75 132 1 1 3 32 3 120 3 24 -4586 55 92 194.02 1264.75 131 39 1 3 32 2 118 3 22 -4587 55 93 198.38 1264.75 131 37 1 3 32 2 116 3 20 -4588 55 94 202.74 1264.75 131 38 1 3 32 2 117 3 21 -4589 55 95 207.1 1264.75 131 40 1 3 32 2 119 3 23 -4590 56 0 -207.1 1272.25 64 5 1 3 15 3 124 3 28 -4591 56 1 -202.74 1272.25 64 3 1 3 15 3 122 3 26 -4592 56 2 -198.38 1272.25 64 1 1 3 15 3 120 3 24 -4593 56 3 -194.02 1272.25 64 4 1 3 15 3 123 3 27 -4594 56 4 -189.66 1272.25 64 6 1 3 15 3 125 3 29 -4595 56 5 -185.3 1272.25 68 7 1 3 16 3 126 3 30 -4596 56 6 -180.94 1272.25 68 5 1 3 16 3 124 3 28 -4597 56 7 -176.58 1272.25 68 2 1 3 16 3 121 3 25 -4598 56 8 -172.22 1272.25 68 4 1 3 16 3 123 3 27 -4599 56 9 -167.86 1272.25 68 6 1 3 16 3 125 3 29 -4600 56 10 -163.5 1272.25 72 5 1 3 17 3 124 3 28 -4601 56 11 -159.14 1272.25 72 3 1 3 17 3 122 3 26 -4602 56 12 -154.78 1272.25 72 1 1 3 17 3 120 3 24 -4603 56 13 -150.42 1272.25 72 4 1 3 17 3 123 3 27 -4604 56 14 -146.06 1272.25 72 6 1 3 17 3 125 3 29 -4605 56 15 -141.7 1272.25 72 8 1 3 17 3 127 3 31 -4606 56 16 -137.34 1272.25 76 7 1 3 18 3 126 3 30 -4607 56 17 -132.98 1272.25 76 5 1 3 18 3 124 3 28 -4608 56 18 -128.62 1272.25 76 4 1 3 18 3 123 3 27 -4609 56 19 -124.26 1272.25 76 6 1 3 18 3 125 3 29 -4610 56 20 -119.9 1272.25 76 8 1 3 18 3 127 3 31 -4611 56 21 -115.54 1272.25 80 5 1 3 19 3 124 3 28 -4612 56 22 -111.18 1272.25 80 3 1 3 19 3 122 3 26 -4613 56 23 -106.82 1272.25 80 1 1 3 19 3 120 3 24 -4614 56 24 -102.46 1272.25 80 4 1 3 19 3 123 3 27 -4615 56 25 -98.1 1272.25 80 6 1 3 19 3 125 3 29 -4616 56 26 -93.74 1272.25 80 8 1 3 19 3 127 3 31 -4617 56 27 -89.38 1272.25 84 7 1 3 20 3 126 3 30 -4618 56 28 -85.02 1272.25 84 5 1 3 20 3 124 3 28 -4619 56 29 -80.66 1272.25 84 2 1 3 20 3 121 3 25 -4620 56 30 -76.3 1272.25 84 4 1 3 20 3 123 3 27 -4621 56 31 -71.94 1272.25 84 6 1 3 20 3 125 3 29 -4622 56 32 -67.58 1272.25 88 5 1 3 21 3 124 3 28 -4623 56 33 -63.22 1272.25 88 3 1 3 21 3 122 3 26 -4624 56 34 -58.86 1272.25 88 1 1 3 21 3 120 3 24 -4625 56 35 -54.5 1272.25 88 6 1 3 21 3 125 3 29 -4626 56 36 -50.14 1272.25 88 8 1 3 21 3 127 3 31 -4627 56 37 -45.78 1272.25 92 11 1 3 22 3 130 4 2 -4628 56 38 -41.42 1272.25 92 9 1 3 22 3 128 4 0 -4629 56 39 -37.06 1272.25 92 7 1 3 22 3 126 3 30 -4630 56 40 -32.7 1272.25 92 2 1 3 22 3 121 3 25 -4631 56 41 -28.34 1272.25 92 4 1 3 22 3 123 3 27 -4632 56 42 -23.98 1272.25 92 6 1 3 22 3 125 3 29 -4633 56 43 -19.62 1272.25 96 5 1 3 23 3 124 3 28 -4634 56 44 -15.26 1272.25 96 3 1 3 23 3 122 3 26 -4635 56 45 -10.9 1272.25 96 1 1 3 23 3 120 3 24 -4636 56 46 -6.54 1272.25 96 2 1 3 23 3 121 3 25 -4637 56 47 -2.18 1272.25 96 4 1 3 23 3 123 3 27 -4638 56 48 2.18 1272.25 100 3 1 3 24 3 122 3 26 -4639 56 49 6.54 1272.25 100 1 1 3 24 3 120 3 24 -4640 56 50 10.9 1272.25 100 2 1 3 24 3 121 3 25 -4641 56 51 15.26 1272.25 100 4 1 3 24 3 123 3 27 -4642 56 52 19.62 1272.25 100 6 1 3 24 3 125 3 29 -4643 56 53 23.98 1272.25 104 5 1 3 25 3 124 3 28 -4644 56 54 28.34 1272.25 104 3 1 3 25 3 122 3 26 -4645 56 55 32.7 1272.25 104 1 1 3 25 3 120 3 24 -4646 56 56 37.06 1272.25 104 8 1 3 25 3 127 3 31 -4647 56 57 41.42 1272.25 104 10 1 3 25 3 129 4 1 -4648 56 58 45.78 1272.25 104 12 1 3 25 3 131 4 3 -4649 56 59 50.14 1272.25 108 7 1 3 26 3 126 3 30 -4650 56 60 54.5 1272.25 108 5 1 3 26 3 124 3 28 -4651 56 61 58.86 1272.25 108 2 1 3 26 3 121 3 25 -4652 56 62 63.22 1272.25 108 4 1 3 26 3 123 3 27 -4653 56 63 67.58 1272.25 108 6 1 3 26 3 125 3 29 -4654 56 64 71.94 1272.25 112 5 1 3 27 3 124 3 28 -4655 56 65 76.3 1272.25 112 3 1 3 27 3 122 3 26 -4656 56 66 80.66 1272.25 112 1 1 3 27 3 120 3 24 -4657 56 67 85.02 1272.25 112 6 1 3 27 3 125 3 29 -4658 56 68 89.38 1272.25 112 8 1 3 27 3 127 3 31 -4659 56 69 93.74 1272.25 116 7 1 3 28 3 126 3 30 -4660 56 70 98.1 1272.25 116 5 1 3 28 3 124 3 28 -4661 56 71 102.46 1272.25 116 3 1 3 28 3 122 3 26 -4662 56 72 106.82 1272.25 116 2 1 3 28 3 121 3 25 -4663 56 73 111.18 1272.25 116 4 1 3 28 3 123 3 27 -4664 56 74 115.54 1272.25 116 6 1 3 28 3 125 3 29 -4665 56 75 119.9 1272.25 120 7 1 3 29 3 126 3 30 -4666 56 76 124.26 1272.25 120 5 1 3 29 3 124 3 28 -4667 56 77 128.62 1272.25 120 3 1 3 29 3 122 3 26 -4668 56 78 132.98 1272.25 120 6 1 3 29 3 125 3 29 -4669 56 79 137.34 1272.25 120 8 1 3 29 3 127 3 31 -4670 56 80 141.7 1272.25 124 7 1 3 30 3 126 3 30 -4671 56 81 146.06 1272.25 124 5 1 3 30 3 124 3 28 -4672 56 82 150.42 1272.25 124 3 1 3 30 3 122 3 26 -4673 56 83 154.78 1272.25 124 2 1 3 30 3 121 3 25 -4674 56 84 159.14 1272.25 124 4 1 3 30 3 123 3 27 -4675 56 85 163.5 1272.25 124 6 1 3 30 3 125 3 29 -4676 56 86 167.86 1272.25 128 5 1 3 31 3 124 3 28 -4677 56 87 172.22 1272.25 128 3 1 3 31 3 122 3 26 -4678 56 88 176.58 1272.25 128 1 1 3 31 3 120 3 24 -4679 56 89 180.94 1272.25 128 6 1 3 31 3 125 3 29 -4680 56 90 185.3 1272.25 128 8 1 3 31 3 127 3 31 -4681 56 91 189.66 1272.25 132 5 1 3 32 3 124 3 28 -4682 56 92 194.02 1272.25 132 3 1 3 32 3 122 3 26 -4683 56 93 198.38 1272.25 132 2 1 3 32 3 121 3 25 -4684 56 94 202.74 1272.25 132 4 1 3 32 3 123 3 27 -4685 56 95 207.1 1272.25 132 6 1 3 32 3 125 3 29 -4686 57 0 -211.46 1279.75 64 11 1 3 15 3 130 4 2 -4687 57 1 -207.1 1279.75 64 9 1 3 15 3 128 4 0 -4688 57 2 -202.74 1279.75 64 7 1 3 15 3 126 3 30 -4689 57 3 -198.38 1279.75 64 8 1 3 15 3 127 3 31 -4690 57 4 -194.02 1279.75 64 10 1 3 15 3 129 4 1 -4691 57 5 -189.66 1279.75 64 12 1 3 15 3 131 4 3 -4692 57 6 -185.3 1279.75 68 11 1 3 16 3 130 4 2 -4693 57 7 -180.94 1279.75 68 9 1 3 16 3 128 4 0 -4694 57 8 -176.58 1279.75 68 8 1 3 16 3 127 3 31 -4695 57 9 -172.22 1279.75 68 10 1 3 16 3 129 4 1 -4696 57 10 -167.86 1279.75 68 12 1 3 16 3 131 4 3 -4697 57 11 -163.5 1279.75 72 11 1 3 17 3 130 4 2 -4698 57 12 -159.14 1279.75 72 9 1 3 17 3 128 4 0 -4699 57 13 -154.78 1279.75 72 7 1 3 17 3 126 3 30 -4700 57 14 -150.42 1279.75 72 10 1 3 17 3 129 4 1 -4701 57 15 -146.06 1279.75 72 12 1 3 17 3 131 4 3 -4702 57 16 -141.7 1279.75 72 14 1 3 17 3 133 4 5 -4703 57 17 -137.34 1279.75 76 13 1 3 18 3 132 4 4 -4704 57 18 -132.98 1279.75 76 11 1 3 18 3 130 4 2 -4705 57 19 -128.62 1279.75 76 9 1 3 18 3 128 4 0 -4706 57 20 -124.26 1279.75 76 10 1 3 18 3 129 4 1 -4707 57 21 -119.9 1279.75 76 12 1 3 18 3 131 4 3 -4708 57 22 -115.54 1279.75 80 11 1 3 19 3 130 4 2 -4709 57 23 -111.18 1279.75 80 9 1 3 19 3 128 4 0 -4710 57 24 -106.82 1279.75 80 7 1 3 19 3 126 3 30 -4711 57 25 -102.46 1279.75 80 10 1 3 19 3 129 4 1 -4712 57 26 -98.1 1279.75 80 12 1 3 19 3 131 4 3 -4713 57 27 -93.74 1279.75 84 13 1 3 20 3 132 4 4 -4714 57 28 -89.38 1279.75 84 11 1 3 20 3 130 4 2 -4715 57 29 -85.02 1279.75 84 9 1 3 20 3 128 4 0 -4716 57 30 -80.66 1279.75 84 8 1 3 20 3 127 3 31 -4717 57 31 -76.3 1279.75 84 10 1 3 20 3 129 4 1 -4718 57 32 -71.94 1279.75 84 12 1 3 20 3 131 4 3 -4719 57 33 -67.58 1279.75 88 11 1 3 21 3 130 4 2 -4720 57 34 -63.22 1279.75 88 9 1 3 21 3 128 4 0 -4721 57 35 -58.86 1279.75 88 7 1 3 21 3 126 3 30 -4722 57 36 -54.5 1279.75 88 10 1 3 21 3 129 4 1 -4723 57 37 -50.14 1279.75 88 12 1 3 21 3 131 4 3 -4724 57 38 -45.78 1279.75 92 15 1 3 22 3 134 4 6 -4725 57 39 -41.42 1279.75 92 13 1 3 22 3 132 4 4 -4726 57 40 -37.06 1279.75 92 8 1 3 22 3 127 3 31 -4727 57 41 -32.7 1279.75 92 10 1 3 22 3 129 4 1 -4728 57 42 -28.34 1279.75 92 12 1 3 22 3 131 4 3 -4729 57 43 -23.98 1279.75 92 14 1 3 22 3 133 4 5 -4730 57 44 -19.62 1279.75 96 9 1 3 23 3 128 4 0 -4731 57 45 -15.26 1279.75 96 7 1 3 23 3 126 3 30 -4732 57 46 -10.9 1279.75 96 6 1 3 23 3 125 3 29 -4733 57 47 -6.54 1279.75 96 8 1 3 23 3 127 3 31 -4734 57 48 -2.18 1279.75 96 10 1 3 23 3 129 4 1 -4735 57 49 2.18 1279.75 100 9 1 3 24 3 128 4 0 -4736 57 50 6.54 1279.75 100 7 1 3 24 3 126 3 30 -4737 57 51 10.9 1279.75 100 5 1 3 24 3 124 3 28 -4738 57 52 15.26 1279.75 100 8 1 3 24 3 127 3 31 -4739 57 53 19.62 1279.75 100 10 1 3 24 3 129 4 1 -4740 57 54 23.98 1279.75 104 13 1 3 25 3 132 4 4 -4741 57 55 28.34 1279.75 104 11 1 3 25 3 130 4 2 -4742 57 56 32.7 1279.75 104 9 1 3 25 3 128 4 0 -4743 57 57 37.06 1279.75 104 7 1 3 25 3 126 3 30 -4744 57 58 41.42 1279.75 104 14 1 3 25 3 133 4 5 -4745 57 59 45.78 1279.75 104 16 1 3 25 3 135 4 7 -4746 57 60 50.14 1279.75 108 11 1 3 26 3 130 4 2 -4747 57 61 54.5 1279.75 108 9 1 3 26 3 128 4 0 -4748 57 62 58.86 1279.75 108 8 1 3 26 3 127 3 31 -4749 57 63 63.22 1279.75 108 10 1 3 26 3 129 4 1 -4750 57 64 67.58 1279.75 108 12 1 3 26 3 131 4 3 -4751 57 65 71.94 1279.75 112 11 1 3 27 3 130 4 2 -4752 57 66 76.3 1279.75 112 9 1 3 27 3 128 4 0 -4753 57 67 80.66 1279.75 112 7 1 3 27 3 126 3 30 -4754 57 68 85.02 1279.75 112 10 1 3 27 3 129 4 1 -4755 57 69 89.38 1279.75 112 12 1 3 27 3 131 4 3 -4756 57 70 93.74 1279.75 112 14 1 3 27 3 133 4 5 -4757 57 71 98.1 1279.75 116 11 1 3 28 3 130 4 2 -4758 57 72 102.46 1279.75 116 9 1 3 28 3 128 4 0 -4759 57 73 106.82 1279.75 116 8 1 3 28 3 127 3 31 -4760 57 74 111.18 1279.75 116 10 1 3 28 3 129 4 1 -4761 57 75 115.54 1279.75 116 12 1 3 28 3 131 4 3 -4762 57 76 119.9 1279.75 120 11 1 3 29 3 130 4 2 -4763 57 77 124.26 1279.75 120 9 1 3 29 3 128 4 0 -4764 57 78 128.62 1279.75 120 10 1 3 29 3 129 4 1 -4765 57 79 132.98 1279.75 120 12 1 3 29 3 131 4 3 -4766 57 80 137.34 1279.75 120 14 1 3 29 3 133 4 5 -4767 57 81 141.7 1279.75 124 13 1 3 30 3 132 4 4 -4768 57 82 146.06 1279.75 124 11 1 3 30 3 130 4 2 -4769 57 83 150.42 1279.75 124 9 1 3 30 3 128 4 0 -4770 57 84 154.78 1279.75 124 8 1 3 30 3 127 3 31 -4771 57 85 159.14 1279.75 124 10 1 3 30 3 129 4 1 -4772 57 86 163.5 1279.75 124 12 1 3 30 3 131 4 3 -4773 57 87 167.86 1279.75 128 11 1 3 31 3 130 4 2 -4774 57 88 172.22 1279.75 128 9 1 3 31 3 128 4 0 -4775 57 89 176.58 1279.75 128 7 1 3 31 3 126 3 30 -4776 57 90 180.94 1279.75 128 10 1 3 31 3 129 4 1 -4777 57 91 185.3 1279.75 128 12 1 3 31 3 131 4 3 -4778 57 92 189.66 1279.75 132 11 1 3 32 3 130 4 2 -4779 57 93 194.02 1279.75 132 9 1 3 32 3 128 4 0 -4780 57 94 198.38 1279.75 132 7 1 3 32 3 126 3 30 -4781 57 95 202.74 1279.75 132 8 1 3 32 3 127 3 31 -4782 57 96 207.1 1279.75 132 10 1 3 32 3 129 4 1 -4783 57 97 211.46 1279.75 132 12 1 3 32 3 131 4 3 -4784 58 0 -211.46 1287.25 64 17 1 3 15 3 136 4 8 -4785 58 1 -207.1 1287.25 64 15 1 3 15 3 134 4 6 -4786 58 2 -202.74 1287.25 64 13 1 3 15 3 132 4 4 -4787 58 3 -198.38 1287.25 64 14 1 3 15 3 133 4 5 -4788 58 4 -194.02 1287.25 64 16 1 3 15 3 135 4 7 -4789 58 5 -189.66 1287.25 64 18 1 3 15 3 137 4 9 -4790 58 6 -185.3 1287.25 68 17 1 3 16 3 136 4 8 -4791 58 7 -180.94 1287.25 68 15 1 3 16 3 134 4 6 -4792 58 8 -176.58 1287.25 68 13 1 3 16 3 132 4 4 -4793 58 9 -172.22 1287.25 68 14 1 3 16 3 133 4 5 -4794 58 10 -167.86 1287.25 68 16 1 3 16 3 135 4 7 -4795 58 11 -163.5 1287.25 72 15 1 3 17 3 134 4 6 -4796 58 12 -159.14 1287.25 72 13 1 3 17 3 132 4 4 -4797 58 13 -154.78 1287.25 72 16 1 3 17 3 135 4 7 -4798 58 14 -150.42 1287.25 72 18 1 3 17 3 137 4 9 -4799 58 15 -146.06 1287.25 72 20 1 3 17 3 139 4 11 -4800 58 16 -141.7 1287.25 76 19 1 3 18 3 138 4 10 -4801 58 17 -137.34 1287.25 76 17 1 3 18 3 136 4 8 -4802 58 18 -132.98 1287.25 76 15 1 3 18 3 134 4 6 -4803 58 19 -128.62 1287.25 76 14 1 3 18 3 133 4 5 -4804 58 20 -124.26 1287.25 76 16 1 3 18 3 135 4 7 -4805 58 21 -119.9 1287.25 76 18 1 3 18 3 137 4 9 -4806 58 22 -115.54 1287.25 80 17 1 3 19 3 136 4 8 -4807 58 23 -111.18 1287.25 80 15 1 3 19 3 134 4 6 -4808 58 24 -106.82 1287.25 80 13 1 3 19 3 132 4 4 -4809 58 25 -102.46 1287.25 80 14 1 3 19 3 133 4 5 -4810 58 26 -98.1 1287.25 80 16 1 3 19 3 135 4 7 -4811 58 27 -93.74 1287.25 84 19 1 3 20 3 138 4 10 -4812 58 28 -89.38 1287.25 84 17 1 3 20 3 136 4 8 -4813 58 29 -85.02 1287.25 84 15 1 3 20 3 134 4 6 -4814 58 30 -80.66 1287.25 84 14 1 3 20 3 133 4 5 -4815 58 31 -76.3 1287.25 84 16 1 3 20 3 135 4 7 -4816 58 32 -71.94 1287.25 84 18 1 3 20 3 137 4 9 -4817 58 33 -67.58 1287.25 88 15 1 3 21 3 134 4 6 -4818 58 34 -63.22 1287.25 88 13 1 3 21 3 132 4 4 -4819 58 35 -58.86 1287.25 88 14 1 3 21 3 133 4 5 -4820 58 36 -54.5 1287.25 88 16 1 3 21 3 135 4 7 -4821 58 37 -50.14 1287.25 88 18 1 3 21 3 137 4 9 -4822 58 38 -45.78 1287.25 92 19 1 3 22 3 138 4 10 -4823 58 39 -41.42 1287.25 92 17 1 3 22 3 136 4 8 -4824 58 40 -37.06 1287.25 92 16 1 3 22 3 135 4 7 -4825 58 41 -32.7 1287.25 92 18 1 3 22 3 137 4 9 -4826 58 42 -28.34 1287.25 92 20 1 3 22 3 139 4 11 -4827 58 43 -23.98 1287.25 96 15 1 3 23 3 134 4 6 -4828 58 44 -19.62 1287.25 96 13 1 3 23 3 132 4 4 -4829 58 45 -15.26 1287.25 96 11 1 3 23 3 130 4 2 -4830 58 46 -10.9 1287.25 96 12 1 3 23 3 131 4 3 -4831 58 47 -6.54 1287.25 96 14 1 3 23 3 133 4 5 -4832 58 48 -2.18 1287.25 96 16 1 3 23 3 135 4 7 -4833 58 49 2.18 1287.25 100 15 1 3 24 3 134 4 6 -4834 58 50 6.54 1287.25 100 13 1 3 24 3 132 4 4 -4835 58 51 10.9 1287.25 100 11 1 3 24 3 130 4 2 -4836 58 52 15.26 1287.25 100 12 1 3 24 3 131 4 3 -4837 58 53 19.62 1287.25 100 14 1 3 24 3 133 4 5 -4838 58 54 23.98 1287.25 100 16 1 3 24 3 135 4 7 -4839 58 55 28.34 1287.25 104 19 1 3 25 3 138 4 10 -4840 58 56 32.7 1287.25 104 17 1 3 25 3 136 4 8 -4841 58 57 37.06 1287.25 104 15 1 3 25 3 134 4 6 -4842 58 58 41.42 1287.25 104 18 1 3 25 3 137 4 9 -4843 58 59 45.78 1287.25 104 20 1 3 25 3 139 4 11 -4844 58 60 50.14 1287.25 108 17 1 3 26 3 136 4 8 -4845 58 61 54.5 1287.25 108 15 1 3 26 3 134 4 6 -4846 58 62 58.86 1287.25 108 13 1 3 26 3 132 4 4 -4847 58 63 63.22 1287.25 108 14 1 3 26 3 133 4 5 -4848 58 64 67.58 1287.25 108 16 1 3 26 3 135 4 7 -4849 58 65 71.94 1287.25 112 17 1 3 27 3 136 4 8 -4850 58 66 76.3 1287.25 112 15 1 3 27 3 134 4 6 -4851 58 67 80.66 1287.25 112 13 1 3 27 3 132 4 4 -4852 58 68 85.02 1287.25 112 16 1 3 27 3 135 4 7 -4853 58 69 89.38 1287.25 112 18 1 3 27 3 137 4 9 -4854 58 70 93.74 1287.25 112 20 1 3 27 3 139 4 11 -4855 58 71 98.1 1287.25 116 15 1 3 28 3 134 4 6 -4856 58 72 102.46 1287.25 116 13 1 3 28 3 132 4 4 -4857 58 73 106.82 1287.25 116 14 1 3 28 3 133 4 5 -4858 58 74 111.18 1287.25 116 16 1 3 28 3 135 4 7 -4859 58 75 115.54 1287.25 116 18 1 3 28 3 137 4 9 -4860 58 76 119.9 1287.25 120 17 1 3 29 3 136 4 8 -4861 58 77 124.26 1287.25 120 15 1 3 29 3 134 4 6 -4862 58 78 128.62 1287.25 120 13 1 3 29 3 132 4 4 -4863 58 79 132.98 1287.25 120 16 1 3 29 3 135 4 7 -4864 58 80 137.34 1287.25 120 18 1 3 29 3 137 4 9 -4865 58 81 141.7 1287.25 120 20 1 3 29 3 139 4 11 -4866 58 82 146.06 1287.25 124 19 1 3 30 3 138 4 10 -4867 58 83 150.42 1287.25 124 17 1 3 30 3 136 4 8 -4868 58 84 154.78 1287.25 124 15 1 3 30 3 134 4 6 -4869 58 85 159.14 1287.25 124 14 1 3 30 3 133 4 5 -4870 58 86 163.5 1287.25 124 16 1 3 30 3 135 4 7 -4871 58 87 167.86 1287.25 128 15 1 3 31 3 134 4 6 -4872 58 88 172.22 1287.25 128 13 1 3 31 3 132 4 4 -4873 58 89 176.58 1287.25 128 14 1 3 31 3 133 4 5 -4874 58 90 180.94 1287.25 128 16 1 3 31 3 135 4 7 -4875 58 91 185.3 1287.25 128 18 1 3 31 3 137 4 9 -4876 58 92 189.66 1287.25 132 17 1 3 32 3 136 4 8 -4877 58 93 194.02 1287.25 132 15 1 3 32 3 134 4 6 -4878 58 94 198.38 1287.25 132 13 1 3 32 3 132 4 4 -4879 58 95 202.74 1287.25 132 14 1 3 32 3 133 4 5 -4880 58 96 207.1 1287.25 132 16 1 3 32 3 135 4 7 -4881 58 97 211.46 1287.25 132 18 1 3 32 3 137 4 9 -4882 59 0 -211.46 1294.75 64 23 1 3 15 3 142 4 14 -4883 59 1 -207.1 1294.75 64 21 1 3 15 3 140 4 12 -4884 59 2 -202.74 1294.75 64 19 1 3 15 3 138 4 10 -4885 59 3 -198.38 1294.75 64 20 1 3 15 3 139 4 11 -4886 59 4 -194.02 1294.75 64 22 1 3 15 3 141 4 13 -4887 59 5 -189.66 1294.75 68 23 1 3 16 3 142 4 14 -4888 59 6 -185.3 1294.75 68 21 1 3 16 3 140 4 12 -4889 59 7 -180.94 1294.75 68 19 1 3 16 3 138 4 10 -4890 59 8 -176.58 1294.75 68 18 1 3 16 3 137 4 9 -4891 59 9 -172.22 1294.75 68 20 1 3 16 3 139 4 11 -4892 59 10 -167.86 1294.75 68 22 1 3 16 3 141 4 13 -4893 59 11 -163.5 1294.75 72 21 1 3 17 3 140 4 12 -4894 59 12 -159.14 1294.75 72 19 1 3 17 3 138 4 10 -4895 59 13 -154.78 1294.75 72 17 1 3 17 3 136 4 8 -4896 59 14 -150.42 1294.75 72 22 1 3 17 3 141 4 13 -4897 59 15 -146.06 1294.75 72 24 1 3 17 3 143 4 15 -4898 59 16 -141.7 1294.75 76 25 1 3 18 3 144 4 16 -4899 59 17 -137.34 1294.75 76 23 1 3 18 3 142 4 14 -4900 59 18 -132.98 1294.75 76 21 1 3 18 3 140 4 12 -4901 59 19 -128.62 1294.75 76 20 1 3 18 3 139 4 11 -4902 59 20 -124.26 1294.75 76 22 1 3 18 3 141 4 13 -4903 59 21 -119.9 1294.75 76 24 1 3 18 3 143 4 15 -4904 59 22 -115.54 1294.75 80 21 1 3 19 3 140 4 12 -4905 59 23 -111.18 1294.75 80 19 1 3 19 3 138 4 10 -4906 59 24 -106.82 1294.75 80 18 1 3 19 3 137 4 9 -4907 59 25 -102.46 1294.75 80 20 1 3 19 3 139 4 11 -4908 59 26 -98.1 1294.75 80 22 1 3 19 3 141 4 13 -4909 59 27 -93.74 1294.75 84 25 1 3 20 3 144 4 16 -4910 59 28 -89.38 1294.75 84 23 1 3 20 3 142 4 14 -4911 59 29 -85.02 1294.75 84 21 1 3 20 3 140 4 12 -4912 59 30 -80.66 1294.75 84 20 1 3 20 3 139 4 11 -4913 59 31 -76.3 1294.75 84 22 1 3 20 3 141 4 13 -4914 59 32 -71.94 1294.75 84 24 1 3 20 3 143 4 15 -4915 59 33 -67.58 1294.75 88 21 1 3 21 3 140 4 12 -4916 59 34 -63.22 1294.75 88 19 1 3 21 3 138 4 10 -4917 59 35 -58.86 1294.75 88 17 1 3 21 3 136 4 8 -4918 59 36 -54.5 1294.75 88 20 1 3 21 3 139 4 11 -4919 59 37 -50.14 1294.75 88 22 1 3 21 3 141 4 13 -4920 59 38 -45.78 1294.75 92 25 1 3 22 3 144 4 16 -4921 59 39 -41.42 1294.75 92 23 1 3 22 3 142 4 14 -4922 59 40 -37.06 1294.75 92 21 1 3 22 3 140 4 12 -4923 59 41 -32.7 1294.75 92 22 1 3 22 3 141 4 13 -4924 59 42 -28.34 1294.75 92 24 1 3 22 3 143 4 15 -4925 59 43 -23.98 1294.75 96 21 1 3 23 3 140 4 12 -4926 59 44 -19.62 1294.75 96 19 1 3 23 3 138 4 10 -4927 59 45 -15.26 1294.75 96 17 1 3 23 3 136 4 8 -4928 59 46 -10.9 1294.75 96 18 1 3 23 3 137 4 9 -4929 59 47 -6.54 1294.75 96 20 1 3 23 3 139 4 11 -4930 59 48 -2.18 1294.75 96 22 1 3 23 3 141 4 13 -4931 59 49 2.18 1294.75 100 21 1 3 24 3 140 4 12 -4932 59 50 6.54 1294.75 100 19 1 3 24 3 138 4 10 -4933 59 51 10.9 1294.75 100 17 1 3 24 3 136 4 8 -4934 59 52 15.26 1294.75 100 18 1 3 24 3 137 4 9 -4935 59 53 19.62 1294.75 100 20 1 3 24 3 139 4 11 -4936 59 54 23.98 1294.75 100 22 1 3 24 3 141 4 13 -4937 59 55 28.34 1294.75 104 23 1 3 25 3 142 4 14 -4938 59 56 32.7 1294.75 104 21 1 3 25 3 140 4 12 -4939 59 57 37.06 1294.75 104 22 1 3 25 3 141 4 13 -4940 59 58 41.42 1294.75 104 24 1 3 25 3 143 4 15 -4941 59 59 45.78 1294.75 104 26 1 3 25 3 145 4 17 -4942 59 60 50.14 1294.75 108 21 1 3 26 3 140 4 12 -4943 59 61 54.5 1294.75 108 19 1 3 26 3 138 4 10 -4944 59 62 58.86 1294.75 108 18 1 3 26 3 137 4 9 -4945 59 63 63.22 1294.75 108 20 1 3 26 3 139 4 11 -4946 59 64 67.58 1294.75 108 22 1 3 26 3 141 4 13 -4947 59 65 71.94 1294.75 112 23 1 3 27 3 142 4 14 -4948 59 66 76.3 1294.75 112 21 1 3 27 3 140 4 12 -4949 59 67 80.66 1294.75 112 19 1 3 27 3 138 4 10 -4950 59 68 85.02 1294.75 112 22 1 3 27 3 141 4 13 -4951 59 69 89.38 1294.75 112 24 1 3 27 3 143 4 15 -4952 59 70 93.74 1294.75 112 26 1 3 27 3 145 4 17 -4953 59 71 98.1 1294.75 116 21 1 3 28 3 140 4 12 -4954 59 72 102.46 1294.75 116 19 1 3 28 3 138 4 10 -4955 59 73 106.82 1294.75 116 17 1 3 28 3 136 4 8 -4956 59 74 111.18 1294.75 116 20 1 3 28 3 139 4 11 -4957 59 75 115.54 1294.75 116 22 1 3 28 3 141 4 13 -4958 59 76 119.9 1294.75 120 23 1 3 29 3 142 4 14 -4959 59 77 124.26 1294.75 120 21 1 3 29 3 140 4 12 -4960 59 78 128.62 1294.75 120 19 1 3 29 3 138 4 10 -4961 59 79 132.98 1294.75 120 22 1 3 29 3 141 4 13 -4962 59 80 137.34 1294.75 120 24 1 3 29 3 143 4 15 -4963 59 81 141.7 1294.75 120 26 1 3 29 3 145 4 17 -4964 59 82 146.06 1294.75 124 23 1 3 30 3 142 4 14 -4965 59 83 150.42 1294.75 124 21 1 3 30 3 140 4 12 -4966 59 84 154.78 1294.75 124 18 1 3 30 3 137 4 9 -4967 59 85 159.14 1294.75 124 20 1 3 30 3 139 4 11 -4968 59 86 163.5 1294.75 124 22 1 3 30 3 141 4 13 -4969 59 87 167.86 1294.75 128 21 1 3 31 3 140 4 12 -4970 59 88 172.22 1294.75 128 19 1 3 31 3 138 4 10 -4971 59 89 176.58 1294.75 128 17 1 3 31 3 136 4 8 -4972 59 90 180.94 1294.75 128 20 1 3 31 3 139 4 11 -4973 59 91 185.3 1294.75 128 22 1 3 31 3 141 4 13 -4974 59 92 189.66 1294.75 128 24 1 3 31 3 143 4 15 -4975 59 93 194.02 1294.75 132 21 1 3 32 3 140 4 12 -4976 59 94 198.38 1294.75 132 19 1 3 32 3 138 4 10 -4977 59 95 202.74 1294.75 132 20 1 3 32 3 139 4 11 -4978 59 96 207.1 1294.75 132 22 1 3 32 3 141 4 13 -4979 59 97 211.46 1294.75 132 24 1 3 32 3 143 4 15 -4980 60 0 -215.82 1302.25 64 29 1 3 15 3 148 4 20 -4981 60 1 -211.46 1302.25 64 27 1 3 15 3 146 4 18 -4982 60 2 -207.1 1302.25 64 25 1 3 15 3 144 4 16 -4983 60 3 -202.74 1302.25 64 24 1 3 15 3 143 4 15 -4984 60 4 -198.38 1302.25 64 26 1 3 15 3 145 4 17 -4985 60 5 -194.02 1302.25 64 28 1 3 15 3 147 4 19 -4986 60 6 -189.66 1302.25 68 29 1 3 16 3 148 4 20 -4987 60 7 -185.3 1302.25 68 27 1 3 16 3 146 4 18 -4988 60 8 -180.94 1302.25 68 25 1 3 16 3 144 4 16 -4989 60 9 -176.58 1302.25 68 24 1 3 16 3 143 4 15 -4990 60 10 -172.22 1302.25 68 26 1 3 16 3 145 4 17 -4991 60 11 -167.86 1302.25 68 28 1 3 16 3 147 4 19 -4992 60 12 -163.5 1302.25 72 25 1 3 17 3 144 4 16 -4993 60 13 -159.14 1302.25 72 23 1 3 17 3 142 4 14 -4994 60 14 -154.78 1302.25 72 26 1 3 17 3 145 4 17 -4995 60 15 -150.42 1302.25 72 28 1 3 17 3 147 4 19 -4996 60 16 -146.06 1302.25 72 30 1 3 17 3 149 4 21 -4997 60 17 -141.7 1302.25 76 29 1 3 18 3 148 4 20 -4998 60 18 -137.34 1302.25 76 27 1 3 18 3 146 4 18 -4999 60 19 -132.98 1302.25 76 26 1 3 18 3 145 4 17 -5000 60 20 -128.62 1302.25 76 28 1 3 18 3 147 4 19 -5001 60 21 -124.26 1302.25 76 30 1 3 18 3 149 4 21 -5002 60 22 -119.9 1302.25 80 27 1 3 19 3 146 4 18 -5003 60 23 -115.54 1302.25 80 25 1 3 19 3 144 4 16 -5004 60 24 -111.18 1302.25 80 23 1 3 19 3 142 4 14 -5005 60 25 -106.82 1302.25 80 24 1 3 19 3 143 4 15 -5006 60 26 -102.46 1302.25 80 26 1 3 19 3 145 4 17 -5007 60 27 -98.1 1302.25 80 28 1 3 19 3 147 4 19 -5008 60 28 -93.74 1302.25 84 29 1 3 20 3 148 4 20 -5009 60 29 -89.38 1302.25 84 27 1 3 20 3 146 4 18 -5010 60 30 -85.02 1302.25 84 26 1 3 20 3 145 4 17 -5011 60 31 -80.66 1302.25 84 28 1 3 20 3 147 4 19 -5012 60 32 -76.3 1302.25 84 30 1 3 20 3 149 4 21 -5013 60 33 -71.94 1302.25 88 27 1 3 21 3 146 4 18 -5014 60 34 -67.58 1302.25 88 25 1 3 21 3 144 4 16 -5015 60 35 -63.22 1302.25 88 23 1 3 21 3 142 4 14 -5016 60 36 -58.86 1302.25 88 24 1 3 21 3 143 4 15 -5017 60 37 -54.5 1302.25 88 26 1 3 21 3 145 4 17 -5018 60 38 -50.14 1302.25 88 28 1 3 21 3 147 4 19 -5019 60 39 -45.78 1302.25 92 29 1 3 22 3 148 4 20 -5020 60 40 -41.42 1302.25 92 27 1 3 22 3 146 4 18 -5021 60 41 -37.06 1302.25 92 26 1 3 22 3 145 4 17 -5022 60 42 -32.7 1302.25 92 28 1 3 22 3 147 4 19 -5023 60 43 -28.34 1302.25 92 30 1 3 22 3 149 4 21 -5024 60 44 -23.98 1302.25 96 27 1 3 23 3 146 4 18 -5025 60 45 -19.62 1302.25 96 25 1 3 23 3 144 4 16 -5026 60 46 -15.26 1302.25 96 23 1 3 23 3 142 4 14 -5027 60 47 -10.9 1302.25 96 24 1 3 23 3 143 4 15 -5028 60 48 -6.54 1302.25 96 26 1 3 23 3 145 4 17 -5029 60 49 -2.18 1302.25 96 28 1 3 23 3 147 4 19 -5030 60 50 2.18 1302.25 100 27 1 3 24 3 146 4 18 -5031 60 51 6.54 1302.25 100 25 1 3 24 3 144 4 16 -5032 60 52 10.9 1302.25 100 23 1 3 24 3 142 4 14 -5033 60 53 15.26 1302.25 100 24 1 3 24 3 143 4 15 -5034 60 54 19.62 1302.25 100 26 1 3 24 3 145 4 17 -5035 60 55 23.98 1302.25 100 28 1 3 24 3 147 4 19 -5036 60 56 28.34 1302.25 104 29 1 3 25 3 148 4 20 -5037 60 57 32.7 1302.25 104 27 1 3 25 3 146 4 18 -5038 60 58 37.06 1302.25 104 25 1 3 25 3 144 4 16 -5039 60 59 41.42 1302.25 104 28 1 3 25 3 147 4 19 -5040 60 60 45.78 1302.25 104 30 1 3 25 3 149 4 21 -5041 60 61 50.14 1302.25 108 27 1 3 26 3 146 4 18 -5042 60 62 54.5 1302.25 108 25 1 3 26 3 144 4 16 -5043 60 63 58.86 1302.25 108 23 1 3 26 3 142 4 14 -5044 60 64 63.22 1302.25 108 24 1 3 26 3 143 4 15 -5045 60 65 67.58 1302.25 108 26 1 3 26 3 145 4 17 -5046 60 66 71.94 1302.25 108 28 1 3 26 3 147 4 19 -5047 60 67 76.3 1302.25 112 29 1 3 27 3 148 4 20 -5048 60 68 80.66 1302.25 112 27 1 3 27 3 146 4 18 -5049 60 69 85.02 1302.25 112 25 1 3 27 3 144 4 16 -5050 60 70 89.38 1302.25 112 28 1 3 27 3 147 4 19 -5051 60 71 93.74 1302.25 112 30 1 3 27 3 149 4 21 -5052 60 72 98.1 1302.25 116 27 1 3 28 3 146 4 18 -5053 60 73 102.46 1302.25 116 25 1 3 28 3 144 4 16 -5054 60 74 106.82 1302.25 116 23 1 3 28 3 142 4 14 -5055 60 75 111.18 1302.25 116 24 1 3 28 3 143 4 15 -5056 60 76 115.54 1302.25 116 26 1 3 28 3 145 4 17 -5057 60 77 119.9 1302.25 116 28 1 3 28 3 147 4 19 -5058 60 78 124.26 1302.25 120 29 1 3 29 3 148 4 20 -5059 60 79 128.62 1302.25 120 27 1 3 29 3 146 4 18 -5060 60 80 132.98 1302.25 120 25 1 3 29 3 144 4 16 -5061 60 81 137.34 1302.25 120 28 1 3 29 3 147 4 19 -5062 60 82 141.7 1302.25 120 30 1 3 29 3 149 4 21 -5063 60 83 146.06 1302.25 124 29 1 3 30 3 148 4 20 -5064 60 84 150.42 1302.25 124 27 1 3 30 3 146 4 18 -5065 60 85 154.78 1302.25 124 25 1 3 30 3 144 4 16 -5066 60 86 159.14 1302.25 124 24 1 3 30 3 143 4 15 -5067 60 87 163.5 1302.25 124 26 1 3 30 3 145 4 17 -5068 60 88 167.86 1302.25 128 27 1 3 31 3 146 4 18 -5069 60 89 172.22 1302.25 128 25 1 3 31 3 144 4 16 -5070 60 90 176.58 1302.25 128 23 1 3 31 3 142 4 14 -5071 60 91 180.94 1302.25 128 26 1 3 31 3 145 4 17 -5072 60 92 185.3 1302.25 128 28 1 3 31 3 147 4 19 -5073 60 93 189.66 1302.25 128 30 1 3 31 3 149 4 21 -5074 60 94 194.02 1302.25 132 27 1 3 32 3 146 4 18 -5075 60 95 198.38 1302.25 132 25 1 3 32 3 144 4 16 -5076 60 96 202.74 1302.25 132 23 1 3 32 3 142 4 14 -5077 60 97 207.1 1302.25 132 26 1 3 32 3 145 4 17 -5078 60 98 211.46 1302.25 132 28 1 3 32 3 147 4 19 -5079 60 99 215.82 1302.25 132 30 1 3 32 3 149 4 21 -5080 61 0 -215.82 1309.75 64 35 1 3 15 3 154 4 26 -5081 61 1 -211.46 1309.75 64 33 1 3 15 3 152 4 24 -5082 61 2 -207.1 1309.75 64 31 1 3 15 3 150 4 22 -5083 61 3 -202.74 1309.75 64 30 1 3 15 3 149 4 21 -5084 61 4 -198.38 1309.75 64 32 1 3 15 3 151 4 23 -5085 61 5 -194.02 1309.75 64 34 1 3 15 3 153 4 25 -5086 61 6 -189.66 1309.75 68 33 1 3 16 3 152 4 24 -5087 61 7 -185.3 1309.75 68 31 1 3 16 3 150 4 22 -5088 61 8 -180.94 1309.75 68 30 1 3 16 3 149 4 21 -5089 61 9 -176.58 1309.75 68 32 1 3 16 3 151 4 23 -5090 61 10 -172.22 1309.75 68 34 1 3 16 3 153 4 25 -5091 61 11 -167.86 1309.75 72 33 1 3 17 3 152 4 24 -5092 61 12 -163.5 1309.75 72 31 1 3 17 3 150 4 22 -5093 61 13 -159.14 1309.75 72 29 1 3 17 3 148 4 20 -5094 61 14 -154.78 1309.75 72 27 1 3 17 3 146 4 18 -5095 61 15 -150.42 1309.75 72 32 1 3 17 3 151 4 23 -5096 61 16 -146.06 1309.75 72 34 1 3 17 3 153 4 25 -5097 61 17 -141.7 1309.75 76 33 1 3 18 3 152 4 24 -5098 61 18 -137.34 1309.75 76 31 1 3 18 3 150 4 22 -5099 61 19 -132.98 1309.75 76 32 1 3 18 3 151 4 23 -5100 61 20 -128.62 1309.75 76 34 1 3 18 3 153 4 25 -5101 61 21 -124.26 1309.75 76 36 1 3 18 3 155 4 27 -5102 61 22 -119.9 1309.75 80 33 1 3 19 3 152 4 24 -5103 61 23 -115.54 1309.75 80 31 1 3 19 3 150 4 22 -5104 61 24 -111.18 1309.75 80 29 1 3 19 3 148 4 20 -5105 61 25 -106.82 1309.75 80 30 1 3 19 3 149 4 21 -5106 61 26 -102.46 1309.75 80 32 1 3 19 3 151 4 23 -5107 61 27 -98.1 1309.75 80 34 1 3 19 3 153 4 25 -5108 61 28 -93.74 1309.75 84 35 1 3 20 3 154 4 26 -5109 61 29 -89.38 1309.75 84 33 1 3 20 3 152 4 24 -5110 61 30 -85.02 1309.75 84 31 1 3 20 3 150 4 22 -5111 61 31 -80.66 1309.75 84 32 1 3 20 3 151 4 23 -5112 61 32 -76.3 1309.75 84 34 1 3 20 3 153 4 25 -5113 61 33 -71.94 1309.75 88 33 1 3 21 3 152 4 24 -5114 61 34 -67.58 1309.75 88 31 1 3 21 3 150 4 22 -5115 61 35 -63.22 1309.75 88 29 1 3 21 3 148 4 20 -5116 61 36 -58.86 1309.75 88 30 1 3 21 3 149 4 21 -5117 61 37 -54.5 1309.75 88 32 1 3 21 3 151 4 23 -5118 61 38 -50.14 1309.75 88 34 1 3 21 3 153 4 25 -5119 61 39 -45.78 1309.75 92 35 1 3 22 3 154 4 26 -5120 61 40 -41.42 1309.75 92 33 1 3 22 3 152 4 24 -5121 61 41 -37.06 1309.75 92 31 1 3 22 3 150 4 22 -5122 61 42 -32.7 1309.75 92 32 1 3 22 3 151 4 23 -5123 61 43 -28.34 1309.75 92 34 1 3 22 3 153 4 25 -5124 61 44 -23.98 1309.75 96 33 1 3 23 3 152 4 24 -5125 61 45 -19.62 1309.75 96 31 1 3 23 3 150 4 22 -5126 61 46 -15.26 1309.75 96 29 1 3 23 3 148 4 20 -5127 61 47 -10.9 1309.75 96 30 1 3 23 3 149 4 21 -5128 61 48 -6.54 1309.75 96 32 1 3 23 3 151 4 23 -5129 61 49 -2.18 1309.75 96 34 1 3 23 3 153 4 25 -5130 61 50 2.18 1309.75 100 33 1 3 24 3 152 4 24 -5131 61 51 6.54 1309.75 100 31 1 3 24 3 150 4 22 -5132 61 52 10.9 1309.75 100 29 1 3 24 3 148 4 20 -5133 61 53 15.26 1309.75 100 30 1 3 24 3 149 4 21 -5134 61 54 19.62 1309.75 100 32 1 3 24 3 151 4 23 -5135 61 55 23.98 1309.75 100 34 1 3 24 3 153 4 25 -5136 61 56 28.34 1309.75 104 33 1 3 25 3 152 4 24 -5137 61 57 32.7 1309.75 104 31 1 3 25 3 150 4 22 -5138 61 58 37.06 1309.75 104 32 1 3 25 3 151 4 23 -5139 61 59 41.42 1309.75 104 34 1 3 25 3 153 4 25 -5140 61 60 45.78 1309.75 104 36 1 3 25 3 155 4 27 -5141 61 61 50.14 1309.75 108 33 1 3 26 3 152 4 24 -5142 61 62 54.5 1309.75 108 31 1 3 26 3 150 4 22 -5143 61 63 58.86 1309.75 108 29 1 3 26 3 148 4 20 -5144 61 64 63.22 1309.75 108 30 1 3 26 3 149 4 21 -5145 61 65 67.58 1309.75 108 32 1 3 26 3 151 4 23 -5146 61 66 71.94 1309.75 108 34 1 3 26 3 153 4 25 -5147 61 67 76.3 1309.75 112 33 1 3 27 3 152 4 24 -5148 61 68 80.66 1309.75 112 31 1 3 27 3 150 4 22 -5149 61 69 85.02 1309.75 112 32 1 3 27 3 151 4 23 -5150 61 70 89.38 1309.75 112 34 1 3 27 3 153 4 25 -5151 61 71 93.74 1309.75 112 36 1 3 27 3 155 4 27 -5152 61 72 98.1 1309.75 116 33 1 3 28 3 152 4 24 -5153 61 73 102.46 1309.75 116 31 1 3 28 3 150 4 22 -5154 61 74 106.82 1309.75 116 29 1 3 28 3 148 4 20 -5155 61 75 111.18 1309.75 116 30 1 3 28 3 149 4 21 -5156 61 76 115.54 1309.75 116 32 1 3 28 3 151 4 23 -5157 61 77 119.9 1309.75 116 34 1 3 28 3 153 4 25 -5158 61 78 124.26 1309.75 120 35 1 3 29 3 154 4 26 -5159 61 79 128.62 1309.75 120 33 1 3 29 3 152 4 24 -5160 61 80 132.98 1309.75 120 31 1 3 29 3 150 4 22 -5161 61 81 137.34 1309.75 120 32 1 3 29 3 151 4 23 -5162 61 82 141.7 1309.75 120 34 1 3 29 3 153 4 25 -5163 61 83 146.06 1309.75 124 33 1 3 30 3 152 4 24 -5164 61 84 150.42 1309.75 124 31 1 3 30 3 150 4 22 -5165 61 85 154.78 1309.75 124 28 1 3 30 3 147 4 19 -5166 61 86 159.14 1309.75 124 30 1 3 30 3 149 4 21 -5167 61 87 163.5 1309.75 124 32 1 3 30 3 151 4 23 -5168 61 88 167.86 1309.75 124 34 1 3 30 3 153 4 25 -5169 61 89 172.22 1309.75 128 33 1 3 31 3 152 4 24 -5170 61 90 176.58 1309.75 128 31 1 3 31 3 150 4 22 -5171 61 91 180.94 1309.75 128 29 1 3 31 3 148 4 20 -5172 61 92 185.3 1309.75 128 32 1 3 31 3 151 4 23 -5173 61 93 189.66 1309.75 128 34 1 3 31 3 153 4 25 -5174 61 94 194.02 1309.75 132 33 1 3 32 3 152 4 24 -5175 61 95 198.38 1309.75 132 31 1 3 32 3 150 4 22 -5176 61 96 202.74 1309.75 132 29 1 3 32 3 148 4 20 -5177 61 97 207.1 1309.75 132 32 1 3 32 3 151 4 23 -5178 61 98 211.46 1309.75 132 34 1 3 32 3 153 4 25 -5179 61 99 215.82 1309.75 132 36 1 3 32 3 155 4 27 -5180 62 0 -215.82 1317.25 64 39 1 3 15 3 158 4 30 -5181 62 1 -211.46 1317.25 64 37 1 3 15 3 156 4 28 -5182 62 2 -207.1 1317.25 64 36 1 3 15 3 155 4 27 -5183 62 3 -202.74 1317.25 64 38 1 3 15 3 157 4 29 -5184 62 4 -198.38 1317.25 64 40 1 3 15 3 159 4 31 -5185 62 5 -194.02 1317.25 68 39 1 3 16 3 158 4 30 -5186 62 6 -189.66 1317.25 68 37 1 3 16 3 156 4 28 -5187 62 7 -185.3 1317.25 68 35 1 3 16 3 154 4 26 -5188 62 8 -180.94 1317.25 68 36 1 3 16 3 155 4 27 -5189 62 9 -176.58 1317.25 68 38 1 3 16 3 157 4 29 -5190 62 10 -172.22 1317.25 68 40 1 3 16 3 159 4 31 -5191 62 11 -167.86 1317.25 72 39 1 3 17 3 158 4 30 -5192 62 12 -163.5 1317.25 72 37 1 3 17 3 156 4 28 -5193 62 13 -159.14 1317.25 72 35 1 3 17 3 154 4 26 -5194 62 14 -154.78 1317.25 72 36 1 3 17 3 155 4 27 -5195 62 15 -150.42 1317.25 72 38 1 3 17 3 157 4 29 -5196 62 16 -146.06 1317.25 72 40 1 3 17 3 159 4 31 -5197 62 17 -141.7 1317.25 76 39 1 3 18 3 158 4 30 -5198 62 18 -137.34 1317.25 76 37 1 3 18 3 156 4 28 -5199 62 19 -132.98 1317.25 76 35 1 3 18 3 154 4 26 -5200 62 20 -128.62 1317.25 76 38 1 3 18 3 157 4 29 -5201 62 21 -124.26 1317.25 76 40 1 3 18 3 159 4 31 -5202 62 22 -119.9 1317.25 80 39 1 3 19 3 158 4 30 -5203 62 23 -115.54 1317.25 80 37 1 3 19 3 156 4 28 -5204 62 24 -111.18 1317.25 80 35 1 3 19 3 154 4 26 -5205 62 25 -106.82 1317.25 80 36 1 3 19 3 155 4 27 -5206 62 26 -102.46 1317.25 80 38 1 3 19 3 157 4 29 -5207 62 27 -98.1 1317.25 80 40 1 3 19 3 159 4 31 -5208 62 28 -93.74 1317.25 84 39 1 3 20 3 158 4 30 -5209 62 29 -89.38 1317.25 84 37 1 3 20 3 156 4 28 -5210 62 30 -85.02 1317.25 84 36 1 3 20 3 155 4 27 -5211 62 31 -80.66 1317.25 84 38 1 3 20 3 157 4 29 -5212 62 32 -76.3 1317.25 84 40 1 3 20 3 159 4 31 -5213 62 33 -71.94 1317.25 88 39 1 3 21 3 158 4 30 -5214 62 34 -67.58 1317.25 88 37 1 3 21 3 156 4 28 -5215 62 35 -63.22 1317.25 88 35 1 3 21 3 154 4 26 -5216 62 36 -58.86 1317.25 88 36 1 3 21 3 155 4 27 -5217 62 37 -54.5 1317.25 88 38 1 3 21 3 157 4 29 -5218 62 38 -50.14 1317.25 88 40 1 3 21 3 159 4 31 -5219 62 39 -45.78 1317.25 92 39 1 3 22 3 158 4 30 -5220 62 40 -41.42 1317.25 92 37 1 3 22 3 156 4 28 -5221 62 41 -37.06 1317.25 92 36 1 3 22 3 155 4 27 -5222 62 42 -32.7 1317.25 92 38 1 3 22 3 157 4 29 -5223 62 43 -28.34 1317.25 92 40 1 3 22 3 159 4 31 -5224 62 44 -23.98 1317.25 96 39 1 3 23 3 158 4 30 -5225 62 45 -19.62 1317.25 96 37 1 3 23 3 156 4 28 -5226 62 46 -15.26 1317.25 96 35 1 3 23 3 154 4 26 -5227 62 47 -10.9 1317.25 96 36 1 3 23 3 155 4 27 -5228 62 48 -6.54 1317.25 96 38 1 3 23 3 157 4 29 -5229 62 49 -2.18 1317.25 96 40 1 3 23 3 159 4 31 -5230 62 50 2.18 1317.25 100 39 1 3 24 3 158 4 30 -5231 62 51 6.54 1317.25 100 37 1 3 24 3 156 4 28 -5232 62 52 10.9 1317.25 100 35 1 3 24 3 154 4 26 -5233 62 53 15.26 1317.25 100 36 1 3 24 3 155 4 27 -5234 62 54 19.62 1317.25 100 38 1 3 24 3 157 4 29 -5235 62 55 23.98 1317.25 100 40 1 3 24 3 159 4 31 -5236 62 56 28.34 1317.25 104 39 1 3 25 3 158 4 30 -5237 62 57 32.7 1317.25 104 37 1 3 25 3 156 4 28 -5238 62 58 37.06 1317.25 104 35 1 3 25 3 154 4 26 -5239 62 59 41.42 1317.25 104 38 1 3 25 3 157 4 29 -5240 62 60 45.78 1317.25 104 40 1 3 25 3 159 4 31 -5241 62 61 50.14 1317.25 108 39 1 3 26 3 158 4 30 -5242 62 62 54.5 1317.25 108 37 1 3 26 3 156 4 28 -5243 62 63 58.86 1317.25 108 35 1 3 26 3 154 4 26 -5244 62 64 63.22 1317.25 108 36 1 3 26 3 155 4 27 -5245 62 65 67.58 1317.25 108 38 1 3 26 3 157 4 29 -5246 62 66 71.94 1317.25 108 40 1 3 26 3 159 4 31 -5247 62 67 76.3 1317.25 112 39 1 3 27 3 158 4 30 -5248 62 68 80.66 1317.25 112 37 1 3 27 3 156 4 28 -5249 62 69 85.02 1317.25 112 35 1 3 27 3 154 4 26 -5250 62 70 89.38 1317.25 112 38 1 3 27 3 157 4 29 -5251 62 71 93.74 1317.25 112 40 1 3 27 3 159 4 31 -5252 62 72 98.1 1317.25 116 39 1 3 28 3 158 4 30 -5253 62 73 102.46 1317.25 116 37 1 3 28 3 156 4 28 -5254 62 74 106.82 1317.25 116 35 1 3 28 3 154 4 26 -5255 62 75 111.18 1317.25 116 36 1 3 28 3 155 4 27 -5256 62 76 115.54 1317.25 116 38 1 3 28 3 157 4 29 -5257 62 77 119.9 1317.25 116 40 1 3 28 3 159 4 31 -5258 62 78 124.26 1317.25 120 39 1 3 29 3 158 4 30 -5259 62 79 128.62 1317.25 120 37 1 3 29 3 156 4 28 -5260 62 80 132.98 1317.25 120 36 1 3 29 3 155 4 27 -5261 62 81 137.34 1317.25 120 38 1 3 29 3 157 4 29 -5262 62 82 141.7 1317.25 120 40 1 3 29 3 159 4 31 -5263 62 83 146.06 1317.25 124 39 1 3 30 3 158 4 30 -5264 62 84 150.42 1317.25 124 37 1 3 30 3 156 4 28 -5265 62 85 154.78 1317.25 124 35 1 3 30 3 154 4 26 -5266 62 86 159.14 1317.25 124 36 1 3 30 3 155 4 27 -5267 62 87 163.5 1317.25 124 38 1 3 30 3 157 4 29 -5268 62 88 167.86 1317.25 124 40 1 3 30 3 159 4 31 -5269 62 89 172.22 1317.25 128 39 1 3 31 3 158 4 30 -5270 62 90 176.58 1317.25 128 37 1 3 31 3 156 4 28 -5271 62 91 180.94 1317.25 128 35 1 3 31 3 154 4 26 -5272 62 92 185.3 1317.25 128 36 1 3 31 3 155 4 27 -5273 62 93 189.66 1317.25 128 38 1 3 31 3 157 4 29 -5274 62 94 194.02 1317.25 128 40 1 3 31 3 159 4 31 -5275 62 95 198.38 1317.25 132 39 1 3 32 3 158 4 30 -5276 62 96 202.74 1317.25 132 37 1 3 32 3 156 4 28 -5277 62 97 207.1 1317.25 132 35 1 3 32 3 154 4 26 -5278 62 98 211.46 1317.25 132 38 1 3 32 3 157 4 29 -5279 62 99 215.82 1317.25 132 40 1 3 32 3 159 4 31 +0 0 0 -135.2 852.25 1 5 0 0 0 0 4 0 4 +1 0 1 -131.04 852.25 1 3 0 0 0 0 2 0 2 +2 0 2 -126.88 852.25 1 1 0 0 0 0 0 0 0 +3 0 3 -122.72 852.25 1 2 0 0 0 0 1 0 1 +4 0 4 -118.56 852.25 1 4 0 0 0 0 3 0 3 +5 0 5 -114.4 852.25 5 3 0 0 1 0 2 0 2 +6 0 6 -110.24 852.25 5 1 0 0 1 0 0 0 0 +7 0 7 -106.08 852.25 5 2 0 0 1 0 1 0 1 +8 0 8 -101.92 852.25 5 4 0 0 1 0 3 0 3 +9 0 9 -97.76 852.25 9 3 0 0 2 0 2 0 2 +10 0 10 -93.6 852.25 9 1 0 0 2 0 0 0 0 +11 0 11 -89.44 852.25 9 2 0 0 2 0 1 0 1 +12 0 12 -85.28 852.25 9 4 0 0 2 0 3 0 3 +13 0 13 -81.12 852.25 13 5 0 0 3 0 4 0 4 +14 0 14 -76.96 852.25 13 3 0 0 3 0 2 0 2 +15 0 15 -72.8 852.25 13 1 0 0 3 0 0 0 0 +16 0 16 -68.64 852.25 13 2 0 0 3 0 1 0 1 +17 0 17 -64.48 852.25 13 4 0 0 3 0 3 0 3 +18 0 18 -60.32 852.25 17 3 0 0 4 0 2 0 2 +19 0 19 -56.16 852.25 17 1 0 0 4 0 0 0 0 +20 0 20 -52 852.25 17 2 0 0 4 0 1 0 1 +21 0 21 -47.84 852.25 17 4 0 0 4 0 3 0 3 +22 0 22 -43.68 852.25 21 3 0 0 5 0 2 0 2 +23 0 23 -39.52 852.25 21 1 0 0 5 0 0 0 0 +24 0 24 -35.36 852.25 21 2 0 0 5 0 1 0 1 +25 0 25 -31.2 852.25 21 4 0 0 5 0 3 0 3 +26 0 26 -27.04 852.25 25 3 0 0 6 0 2 0 2 +27 0 27 -22.88 852.25 25 1 0 0 6 0 0 0 0 +28 0 28 -18.72 852.25 25 2 0 0 6 0 1 0 1 +29 0 29 -14.56 852.25 25 4 0 0 6 0 3 0 3 +30 0 30 -10.4 852.25 25 6 0 0 6 0 5 0 5 +31 0 31 -6.24 852.25 29 3 0 0 7 0 2 0 2 +32 0 32 -2.08 852.25 29 1 0 0 7 0 0 0 0 +33 0 33 2.08 852.25 29 2 0 0 7 0 1 0 1 +34 0 34 6.24 852.25 29 4 0 0 7 0 3 0 3 +35 0 35 10.4 852.25 33 5 0 0 8 0 4 0 4 +36 0 36 14.56 852.25 33 3 0 0 8 0 2 0 2 +37 0 37 18.72 852.25 33 1 0 0 8 0 0 0 0 +38 0 38 22.88 852.25 33 2 0 0 8 0 1 0 1 +39 0 39 27.04 852.25 33 4 0 0 8 0 3 0 3 +40 0 40 31.2 852.25 37 3 0 0 9 0 2 0 2 +41 0 41 35.36 852.25 37 1 0 0 9 0 0 0 0 +42 0 42 39.52 852.25 37 2 0 0 9 0 1 0 1 +43 0 43 43.68 852.25 37 4 0 0 9 0 3 0 3 +44 0 44 47.84 852.25 41 3 0 0 10 0 2 0 2 +45 0 45 52 852.25 41 1 0 0 10 0 0 0 0 +46 0 46 56.16 852.25 41 2 0 0 10 0 1 0 1 +47 0 47 60.32 852.25 41 4 0 0 10 0 3 0 3 +48 0 48 64.48 852.25 45 3 0 0 11 0 2 0 2 +49 0 49 68.64 852.25 45 1 0 0 11 0 0 0 0 +50 0 50 72.8 852.25 45 2 0 0 11 0 1 0 1 +51 0 51 76.96 852.25 45 4 0 0 11 0 3 0 3 +52 0 52 81.12 852.25 45 6 0 0 11 0 5 0 5 +53 0 53 85.28 852.25 49 3 0 0 12 0 2 0 2 +54 0 54 89.44 852.25 49 1 0 0 12 0 0 0 0 +55 0 55 93.6 852.25 49 2 0 0 12 0 1 0 1 +56 0 56 97.76 852.25 49 4 0 0 12 0 3 0 3 +57 0 57 101.92 852.25 53 3 0 0 13 0 2 0 2 +58 0 58 106.08 852.25 53 1 0 0 13 0 0 0 0 +59 0 59 110.24 852.25 53 2 0 0 13 0 1 0 1 +60 0 60 114.4 852.25 53 4 0 0 13 0 3 0 3 +61 0 61 118.56 852.25 57 3 0 0 14 0 2 0 2 +62 0 62 122.72 852.25 57 1 0 0 14 0 0 0 0 +63 0 63 126.88 852.25 57 2 0 0 14 0 1 0 1 +64 0 64 131.04 852.25 57 4 0 0 14 0 3 0 3 +65 0 65 135.2 852.25 57 6 0 0 14 0 5 0 5 +66 1 0 -135.2 859.75 1 9 0 0 0 0 8 0 8 +67 1 1 -131.04 859.75 1 7 0 0 0 0 6 0 6 +68 1 2 -126.88 859.75 1 6 0 0 0 0 5 0 5 +69 1 3 -122.72 859.75 1 8 0 0 0 0 7 0 7 +70 1 4 -118.56 859.75 5 7 0 0 1 0 6 0 6 +71 1 5 -114.4 859.75 5 5 0 0 1 0 4 0 4 +72 1 6 -110.24 859.75 5 6 0 0 1 0 5 0 5 +73 1 7 -106.08 859.75 5 8 0 0 1 0 7 0 7 +74 1 8 -101.92 859.75 5 10 0 0 1 0 9 0 9 +75 1 9 -97.76 859.75 9 7 0 0 2 0 6 0 6 +76 1 10 -93.6 859.75 9 5 0 0 2 0 4 0 4 +77 1 11 -89.44 859.75 9 6 0 0 2 0 5 0 5 +78 1 12 -85.28 859.75 9 8 0 0 2 0 7 0 7 +79 1 13 -81.12 859.75 13 9 0 0 3 0 8 0 8 +80 1 14 -76.96 859.75 13 7 0 0 3 0 6 0 6 +81 1 15 -72.8 859.75 13 6 0 0 3 0 5 0 5 +82 1 16 -68.64 859.75 13 8 0 0 3 0 7 0 7 +83 1 17 -64.48 859.75 13 10 0 0 3 0 9 0 9 +84 1 18 -60.32 859.75 17 7 0 0 4 0 6 0 6 +85 1 19 -56.16 859.75 17 5 0 0 4 0 4 0 4 +86 1 20 -52 859.75 17 6 0 0 4 0 5 0 5 +87 1 21 -47.84 859.75 17 8 0 0 4 0 7 0 7 +88 1 22 -43.68 859.75 21 7 0 0 5 0 6 0 6 +89 1 23 -39.52 859.75 21 5 0 0 5 0 4 0 4 +90 1 24 -35.36 859.75 21 6 0 0 5 0 5 0 5 +91 1 25 -31.2 859.75 21 8 0 0 5 0 7 0 7 +92 1 26 -27.04 859.75 25 9 0 0 6 0 8 0 8 +93 1 27 -22.88 859.75 25 7 0 0 6 0 6 0 6 +94 1 28 -18.72 859.75 25 5 0 0 6 0 4 0 4 +95 1 29 -14.56 859.75 25 8 0 0 6 0 7 0 7 +96 1 30 -10.4 859.75 25 10 0 0 6 0 9 0 9 +97 1 31 -6.24 859.75 29 7 0 0 7 0 6 0 6 +98 1 32 -2.08 859.75 29 5 0 0 7 0 4 0 4 +99 1 33 2.08 859.75 29 6 0 0 7 0 5 0 5 +100 1 34 6.24 859.75 29 8 0 0 7 0 7 0 7 +101 1 35 10.4 859.75 33 9 0 0 8 0 8 0 8 +102 1 36 14.56 859.75 33 7 0 0 8 0 6 0 6 +103 1 37 18.72 859.75 33 6 0 0 8 0 5 0 5 +104 1 38 22.88 859.75 33 8 0 0 8 0 7 0 7 +105 1 39 27.04 859.75 33 10 0 0 8 0 9 0 9 +106 1 40 31.2 859.75 37 7 0 0 9 0 6 0 6 +107 1 41 35.36 859.75 37 5 0 0 9 0 4 0 4 +108 1 42 39.52 859.75 37 6 0 0 9 0 5 0 5 +109 1 43 43.68 859.75 37 8 0 0 9 0 7 0 7 +110 1 44 47.84 859.75 41 7 0 0 10 0 6 0 6 +111 1 45 52 859.75 41 5 0 0 10 0 4 0 4 +112 1 46 56.16 859.75 41 6 0 0 10 0 5 0 5 +113 1 47 60.32 859.75 41 8 0 0 10 0 7 0 7 +114 1 48 64.48 859.75 45 9 0 0 11 0 8 0 8 +115 1 49 68.64 859.75 45 7 0 0 11 0 6 0 6 +116 1 50 72.8 859.75 45 5 0 0 11 0 4 0 4 +117 1 51 76.96 859.75 45 8 0 0 11 0 7 0 7 +118 1 52 81.12 859.75 45 10 0 0 11 0 9 0 9 +119 1 53 85.28 859.75 49 7 0 0 12 0 6 0 6 +120 1 54 89.44 859.75 49 5 0 0 12 0 4 0 4 +121 1 55 93.6 859.75 49 6 0 0 12 0 5 0 5 +122 1 56 97.76 859.75 49 8 0 0 12 0 7 0 7 +123 1 57 101.92 859.75 53 9 0 0 13 0 8 0 8 +124 1 58 106.08 859.75 53 7 0 0 13 0 6 0 6 +125 1 59 110.24 859.75 53 5 0 0 13 0 4 0 4 +126 1 60 114.4 859.75 53 6 0 0 13 0 5 0 5 +127 1 61 118.56 859.75 53 8 0 0 13 0 7 0 7 +128 1 62 122.72 859.75 57 7 0 0 14 0 6 0 6 +129 1 63 126.88 859.75 57 5 0 0 14 0 4 0 4 +130 1 64 131.04 859.75 57 8 0 0 14 0 7 0 7 +131 1 65 135.2 859.75 57 10 0 0 14 0 9 0 9 +132 2 0 -135.2 867.25 1 13 0 0 0 0 12 0 12 +133 2 1 -131.04 867.25 1 11 0 0 0 0 10 0 10 +134 2 2 -126.88 867.25 1 10 0 0 0 0 9 0 9 +135 2 3 -122.72 867.25 1 12 0 0 0 0 11 0 11 +136 2 4 -118.56 867.25 5 11 0 0 1 0 10 0 10 +137 2 5 -114.4 867.25 5 9 0 0 1 0 8 0 8 +138 2 6 -110.24 867.25 5 12 0 0 1 0 11 0 11 +139 2 7 -106.08 867.25 5 14 0 0 1 0 13 0 13 +140 2 8 -101.92 867.25 9 11 0 0 2 0 10 0 10 +141 2 9 -97.76 867.25 9 9 0 0 2 0 8 0 8 +142 2 10 -93.6 867.25 9 10 0 0 2 0 9 0 9 +143 2 11 -89.44 867.25 9 12 0 0 2 0 11 0 11 +144 2 12 -85.28 867.25 9 14 0 0 2 0 13 0 13 +145 2 13 -81.12 867.25 13 13 0 0 3 0 12 0 12 +146 2 14 -76.96 867.25 13 11 0 0 3 0 10 0 10 +147 2 15 -72.8 867.25 13 12 0 0 3 0 11 0 11 +148 2 16 -68.64 867.25 13 14 0 0 3 0 13 0 13 +149 2 17 -64.48 867.25 17 13 0 0 4 0 12 0 12 +150 2 18 -60.32 867.25 17 11 0 0 4 0 10 0 10 +151 2 19 -56.16 867.25 17 9 0 0 4 0 8 0 8 +152 2 20 -52 867.25 17 10 0 0 4 0 9 0 9 +153 2 21 -47.84 867.25 17 12 0 0 4 0 11 0 11 +154 2 22 -43.68 867.25 21 11 0 0 5 0 10 0 10 +155 2 23 -39.52 867.25 21 9 0 0 5 0 8 0 8 +156 2 24 -35.36 867.25 21 10 0 0 5 0 9 0 9 +157 2 25 -31.2 867.25 21 12 0 0 5 0 11 0 11 +158 2 26 -27.04 867.25 25 13 0 0 6 0 12 0 12 +159 2 27 -22.88 867.25 25 11 0 0 6 0 10 0 10 +160 2 28 -18.72 867.25 25 12 0 0 6 0 11 0 11 +161 2 29 -14.56 867.25 25 14 0 0 6 0 13 0 13 +162 2 30 -10.4 867.25 25 16 0 0 6 0 15 0 15 +163 2 31 -6.24 867.25 29 11 0 0 7 0 10 0 10 +164 2 32 -2.08 867.25 29 9 0 0 7 0 8 0 8 +165 2 33 2.08 867.25 29 10 0 0 7 0 9 0 9 +166 2 34 6.24 867.25 29 12 0 0 7 0 11 0 11 +167 2 35 10.4 867.25 33 15 0 0 8 0 14 0 14 +168 2 36 14.56 867.25 33 13 0 0 8 0 12 0 12 +169 2 37 18.72 867.25 33 11 0 0 8 0 10 0 10 +170 2 38 22.88 867.25 33 12 0 0 8 0 11 0 11 +171 2 39 27.04 867.25 33 14 0 0 8 0 13 0 13 +172 2 40 31.2 867.25 37 11 0 0 9 0 10 0 10 +173 2 41 35.36 867.25 37 9 0 0 9 0 8 0 8 +174 2 42 39.52 867.25 37 10 0 0 9 0 9 0 9 +175 2 43 43.68 867.25 37 12 0 0 9 0 11 0 11 +176 2 44 47.84 867.25 41 11 0 0 10 0 10 0 10 +177 2 45 52 867.25 41 9 0 0 10 0 8 0 8 +178 2 46 56.16 867.25 41 10 0 0 10 0 9 0 9 +179 2 47 60.32 867.25 41 12 0 0 10 0 11 0 11 +180 2 48 64.48 867.25 41 14 0 0 10 0 13 0 13 +181 2 49 68.64 867.25 45 13 0 0 11 0 12 0 12 +182 2 50 72.8 867.25 45 11 0 0 11 0 10 0 10 +183 2 51 76.96 867.25 45 12 0 0 11 0 11 0 11 +184 2 52 81.12 867.25 45 14 0 0 11 0 13 0 13 +185 2 53 85.28 867.25 49 13 0 0 12 0 12 0 12 +186 2 54 89.44 867.25 49 11 0 0 12 0 10 0 10 +187 2 55 93.6 867.25 49 9 0 0 12 0 8 0 8 +188 2 56 97.76 867.25 49 10 0 0 12 0 9 0 9 +189 2 57 101.92 867.25 49 12 0 0 12 0 11 0 11 +190 2 58 106.08 867.25 53 13 0 0 13 0 12 0 12 +191 2 59 110.24 867.25 53 11 0 0 13 0 10 0 10 +192 2 60 114.4 867.25 53 10 0 0 13 0 9 0 9 +193 2 61 118.56 867.25 53 12 0 0 13 0 11 0 11 +194 2 62 122.72 867.25 57 11 0 0 14 0 10 0 10 +195 2 63 126.88 867.25 57 9 0 0 14 0 8 0 8 +196 2 64 131.04 867.25 57 12 0 0 14 0 11 0 11 +197 2 65 135.2 867.25 57 14 0 0 14 0 13 0 13 +198 3 0 -139.36 874.75 1 17 0 0 0 0 16 0 16 +199 3 1 -135.2 874.75 1 15 0 0 0 0 14 0 14 +200 3 2 -131.04 874.75 1 14 0 0 0 0 13 0 13 +201 3 3 -126.88 874.75 1 16 0 0 0 0 15 0 15 +202 3 4 -122.72 874.75 1 18 0 0 0 0 17 0 17 +203 3 5 -118.56 874.75 5 15 0 0 1 0 14 0 14 +204 3 6 -114.4 874.75 5 13 0 0 1 0 12 0 12 +205 3 7 -110.24 874.75 5 16 0 0 1 0 15 0 15 +206 3 8 -106.08 874.75 5 18 0 0 1 0 17 0 17 +207 3 9 -101.92 874.75 9 17 0 0 2 0 16 0 16 +208 3 10 -97.76 874.75 9 15 0 0 2 0 14 0 14 +209 3 11 -93.6 874.75 9 13 0 0 2 0 12 0 12 +210 3 12 -89.44 874.75 9 16 0 0 2 0 15 0 15 +211 3 13 -85.28 874.75 9 18 0 0 2 0 17 0 17 +212 3 14 -81.12 874.75 13 17 0 0 3 0 16 0 16 +213 3 15 -76.96 874.75 13 15 0 0 3 0 14 0 14 +214 3 16 -72.8 874.75 13 16 0 0 3 0 15 0 15 +215 3 17 -68.64 874.75 13 18 0 0 3 0 17 0 17 +216 3 18 -64.48 874.75 17 17 0 0 4 0 16 0 16 +217 3 19 -60.32 874.75 17 15 0 0 4 0 14 0 14 +218 3 20 -56.16 874.75 17 14 0 0 4 0 13 0 13 +219 3 21 -52 874.75 17 16 0 0 4 0 15 0 15 +220 3 22 -47.84 874.75 17 18 0 0 4 0 17 0 17 +221 3 23 -43.68 874.75 21 15 0 0 5 0 14 0 14 +222 3 24 -39.52 874.75 21 13 0 0 5 0 12 0 12 +223 3 25 -35.36 874.75 21 14 0 0 5 0 13 0 13 +224 3 26 -31.2 874.75 21 16 0 0 5 0 15 0 15 +225 3 27 -27.04 874.75 25 19 0 0 6 0 18 0 18 +226 3 28 -22.88 874.75 25 17 0 0 6 0 16 0 16 +227 3 29 -18.72 874.75 25 15 0 0 6 0 14 0 14 +228 3 30 -14.56 874.75 25 18 0 0 6 0 17 0 17 +229 3 31 -10.4 874.75 25 20 0 0 6 0 19 0 19 +230 3 32 -6.24 874.75 29 15 0 0 7 0 14 0 14 +231 3 33 -2.08 874.75 29 13 0 0 7 0 12 0 12 +232 3 34 2.08 874.75 29 14 0 0 7 0 13 0 13 +233 3 35 6.24 874.75 29 16 0 0 7 0 15 0 15 +234 3 36 10.4 874.75 33 19 0 0 8 0 18 0 18 +235 3 37 14.56 874.75 33 17 0 0 8 0 16 0 16 +236 3 38 18.72 874.75 33 16 0 0 8 0 15 0 15 +237 3 39 22.88 874.75 33 18 0 0 8 0 17 0 17 +238 3 40 27.04 874.75 33 20 0 0 8 0 19 0 19 +239 3 41 31.2 874.75 37 15 0 0 9 0 14 0 14 +240 3 42 35.36 874.75 37 13 0 0 9 0 12 0 12 +241 3 43 39.52 874.75 37 14 0 0 9 0 13 0 13 +242 3 44 43.68 874.75 37 16 0 0 9 0 15 0 15 +243 3 45 47.84 874.75 41 17 0 0 10 0 16 0 16 +244 3 46 52 874.75 41 15 0 0 10 0 14 0 14 +245 3 47 56.16 874.75 41 13 0 0 10 0 12 0 12 +246 3 48 60.32 874.75 41 16 0 0 10 0 15 0 15 +247 3 49 64.48 874.75 41 18 0 0 10 0 17 0 17 +248 3 50 68.64 874.75 45 17 0 0 11 0 16 0 16 +249 3 51 72.8 874.75 45 15 0 0 11 0 14 0 14 +250 3 52 76.96 874.75 45 16 0 0 11 0 15 0 15 +251 3 53 81.12 874.75 45 18 0 0 11 0 17 0 17 +252 3 54 85.28 874.75 49 17 0 0 12 0 16 0 16 +253 3 55 89.44 874.75 49 15 0 0 12 0 14 0 14 +254 3 56 93.6 874.75 49 14 0 0 12 0 13 0 13 +255 3 57 97.76 874.75 49 16 0 0 12 0 15 0 15 +256 3 58 101.92 874.75 49 18 0 0 12 0 17 0 17 +257 3 59 106.08 874.75 53 17 0 0 13 0 16 0 16 +258 3 60 110.24 874.75 53 15 0 0 13 0 14 0 14 +259 3 61 114.4 874.75 53 14 0 0 13 0 13 0 13 +260 3 62 118.56 874.75 53 16 0 0 13 0 15 0 15 +261 3 63 122.72 874.75 57 17 0 0 14 0 16 0 16 +262 3 64 126.88 874.75 57 15 0 0 14 0 14 0 14 +263 3 65 131.04 874.75 57 13 0 0 14 0 12 0 12 +264 3 66 135.2 874.75 57 16 0 0 14 0 15 0 15 +265 3 67 139.36 874.75 57 18 0 0 14 0 17 0 17 +266 4 0 -139.36 882.25 1 21 0 0 0 0 20 0 20 +267 4 1 -135.2 882.25 1 19 0 0 0 0 18 0 18 +268 4 2 -131.04 882.25 1 20 0 0 0 0 19 0 19 +269 4 3 -126.88 882.25 1 22 0 0 0 0 21 0 21 +270 4 4 -122.72 882.25 5 21 0 0 1 0 20 0 20 +271 4 5 -118.56 882.25 5 19 0 0 1 0 18 0 18 +272 4 6 -114.4 882.25 5 17 0 0 1 0 16 0 16 +273 4 7 -110.24 882.25 5 20 0 0 1 0 19 0 19 +274 4 8 -106.08 882.25 5 22 0 0 1 0 21 0 21 +275 4 9 -101.92 882.25 9 21 0 0 2 0 20 0 20 +276 4 10 -97.76 882.25 9 19 0 0 2 0 18 0 18 +277 4 11 -93.6 882.25 9 20 0 0 2 0 19 0 19 +278 4 12 -89.44 882.25 9 22 0 0 2 0 21 0 21 +279 4 13 -85.28 882.25 9 24 0 0 2 0 23 0 23 +280 4 14 -81.12 882.25 13 21 0 0 3 0 20 0 20 +281 4 15 -76.96 882.25 13 19 0 0 3 0 18 0 18 +282 4 16 -72.8 882.25 13 20 0 0 3 0 19 0 19 +283 4 17 -68.64 882.25 13 22 0 0 3 0 21 0 21 +284 4 18 -64.48 882.25 17 23 0 0 4 0 22 0 22 +285 4 19 -60.32 882.25 17 21 0 0 4 0 20 0 20 +286 4 20 -56.16 882.25 17 19 0 0 4 0 18 0 18 +287 4 21 -52 882.25 17 20 0 0 4 0 19 0 19 +288 4 22 -47.84 882.25 17 22 0 0 4 0 21 0 21 +289 4 23 -43.68 882.25 21 19 0 0 5 0 18 0 18 +290 4 24 -39.52 882.25 21 17 0 0 5 0 16 0 16 +291 4 25 -35.36 882.25 21 18 0 0 5 0 17 0 17 +292 4 26 -31.2 882.25 21 20 0 0 5 0 19 0 19 +293 4 27 -27.04 882.25 25 23 0 0 6 0 22 0 22 +294 4 28 -22.88 882.25 25 21 0 0 6 0 20 0 20 +295 4 29 -18.72 882.25 25 22 0 0 6 0 21 0 21 +296 4 30 -14.56 882.25 25 24 0 0 6 0 23 0 23 +297 4 31 -10.4 882.25 25 26 0 0 6 0 25 0 25 +298 4 32 -6.24 882.25 29 19 0 0 7 0 18 0 18 +299 4 33 -2.08 882.25 29 17 0 0 7 0 16 0 16 +300 4 34 2.08 882.25 29 18 0 0 7 0 17 0 17 +301 4 35 6.24 882.25 29 20 0 0 7 0 19 0 19 +302 4 36 10.4 882.25 33 25 0 0 8 0 24 0 24 +303 4 37 14.56 882.25 33 23 0 0 8 0 22 0 22 +304 4 38 18.72 882.25 33 21 0 0 8 0 20 0 20 +305 4 39 22.88 882.25 33 22 0 0 8 0 21 0 21 +306 4 40 27.04 882.25 33 24 0 0 8 0 23 0 23 +307 4 41 31.2 882.25 37 19 0 0 9 0 18 0 18 +308 4 42 35.36 882.25 37 17 0 0 9 0 16 0 16 +309 4 43 39.52 882.25 37 18 0 0 9 0 17 0 17 +310 4 44 43.68 882.25 37 20 0 0 9 0 19 0 19 +311 4 45 47.84 882.25 41 21 0 0 10 0 20 0 20 +312 4 46 52 882.25 41 19 0 0 10 0 18 0 18 +313 4 47 56.16 882.25 41 20 0 0 10 0 19 0 19 +314 4 48 60.32 882.25 41 22 0 0 10 0 21 0 21 +315 4 49 64.48 882.25 41 24 0 0 10 0 23 0 23 +316 4 50 68.64 882.25 45 21 0 0 11 0 20 0 20 +317 4 51 72.8 882.25 45 19 0 0 11 0 18 0 18 +318 4 52 76.96 882.25 45 20 0 0 11 0 19 0 19 +319 4 53 81.12 882.25 45 22 0 0 11 0 21 0 21 +320 4 54 85.28 882.25 49 23 0 0 12 0 22 0 22 +321 4 55 89.44 882.25 49 21 0 0 12 0 20 0 20 +322 4 56 93.6 882.25 49 19 0 0 12 0 18 0 18 +323 4 57 97.76 882.25 49 20 0 0 12 0 19 0 19 +324 4 58 101.92 882.25 49 22 0 0 12 0 21 0 21 +325 4 59 106.08 882.25 53 21 0 0 13 0 20 0 20 +326 4 60 110.24 882.25 53 19 0 0 13 0 18 0 18 +327 4 61 114.4 882.25 53 18 0 0 13 0 17 0 17 +328 4 62 118.56 882.25 53 20 0 0 13 0 19 0 19 +329 4 63 122.72 882.25 53 22 0 0 13 0 21 0 21 +330 4 64 126.88 882.25 57 21 0 0 14 0 20 0 20 +331 4 65 131.04 882.25 57 19 0 0 14 0 18 0 18 +332 4 66 135.2 882.25 57 20 0 0 14 0 19 0 19 +333 4 67 139.36 882.25 57 22 0 0 14 0 21 0 21 +334 5 0 -139.36 889.75 1 25 0 0 0 0 24 0 24 +335 5 1 -135.2 889.75 1 23 0 0 0 0 22 0 22 +336 5 2 -131.04 889.75 1 24 0 0 0 0 23 0 23 +337 5 3 -126.88 889.75 1 26 0 0 0 0 25 0 25 +338 5 4 -122.72 889.75 5 27 0 0 1 0 26 0 26 +339 5 5 -118.56 889.75 5 25 0 0 1 0 24 0 24 +340 5 6 -114.4 889.75 5 23 0 0 1 0 22 0 22 +341 5 7 -110.24 889.75 5 24 0 0 1 0 23 0 23 +342 5 8 -106.08 889.75 5 26 0 0 1 0 25 0 25 +343 5 9 -101.92 889.75 9 25 0 0 2 0 24 0 24 +344 5 10 -97.76 889.75 9 23 0 0 2 0 22 0 22 +345 5 11 -93.6 889.75 9 26 0 0 2 0 25 0 25 +346 5 12 -89.44 889.75 9 28 0 0 2 0 27 0 27 +347 5 13 -85.28 889.75 13 27 0 0 3 0 26 0 26 +348 5 14 -81.12 889.75 13 25 0 0 3 0 24 0 24 +349 5 15 -76.96 889.75 13 23 0 0 3 0 22 0 22 +350 5 16 -72.8 889.75 13 24 0 0 3 0 23 0 23 +351 5 17 -68.64 889.75 13 26 0 0 3 0 25 0 25 +352 5 18 -64.48 889.75 17 27 0 0 4 0 26 0 26 +353 5 19 -60.32 889.75 17 25 0 0 4 0 24 0 24 +354 5 20 -56.16 889.75 17 24 0 0 4 0 23 0 23 +355 5 21 -52 889.75 17 26 0 0 4 0 25 0 25 +356 5 22 -47.84 889.75 21 25 0 0 5 0 24 0 24 +357 5 23 -43.68 889.75 21 23 0 0 5 0 22 0 22 +358 5 24 -39.52 889.75 21 21 0 0 5 0 20 0 20 +359 5 25 -35.36 889.75 21 22 0 0 5 0 21 0 21 +360 5 26 -31.2 889.75 21 24 0 0 5 0 23 0 23 +361 5 27 -27.04 889.75 25 29 0 0 6 0 28 0 28 +362 5 28 -22.88 889.75 25 27 0 0 6 0 26 0 26 +363 5 29 -18.72 889.75 25 25 0 0 6 0 24 0 24 +364 5 30 -14.56 889.75 25 28 0 0 6 0 27 0 27 +365 5 31 -10.4 889.75 25 30 0 0 6 0 29 0 29 +366 5 32 -6.24 889.75 29 23 0 0 7 0 22 0 22 +367 5 33 -2.08 889.75 29 21 0 0 7 0 20 0 20 +368 5 34 2.08 889.75 29 22 0 0 7 0 21 0 21 +369 5 35 6.24 889.75 29 24 0 0 7 0 23 0 23 +370 5 36 10.4 889.75 33 29 0 0 8 0 28 0 28 +371 5 37 14.56 889.75 33 27 0 0 8 0 26 0 26 +372 5 38 18.72 889.75 33 26 0 0 8 0 25 0 25 +373 5 39 22.88 889.75 33 28 0 0 8 0 27 0 27 +374 5 40 27.04 889.75 33 30 0 0 8 0 29 0 29 +375 5 41 31.2 889.75 37 23 0 0 9 0 22 0 22 +376 5 42 35.36 889.75 37 21 0 0 9 0 20 0 20 +377 5 43 39.52 889.75 37 22 0 0 9 0 21 0 21 +378 5 44 43.68 889.75 37 24 0 0 9 0 23 0 23 +379 5 45 47.84 889.75 37 26 0 0 9 0 25 0 25 +380 5 46 52 889.75 41 25 0 0 10 0 24 0 24 +381 5 47 56.16 889.75 41 23 0 0 10 0 22 0 22 +382 5 48 60.32 889.75 41 26 0 0 10 0 25 0 25 +383 5 49 64.48 889.75 41 28 0 0 10 0 27 0 27 +384 5 50 68.64 889.75 45 25 0 0 11 0 24 0 24 +385 5 51 72.8 889.75 45 23 0 0 11 0 22 0 22 +386 5 52 76.96 889.75 45 24 0 0 11 0 23 0 23 +387 5 53 81.12 889.75 45 26 0 0 11 0 25 0 25 +388 5 54 85.28 889.75 45 28 0 0 11 0 27 0 27 +389 5 55 89.44 889.75 49 27 0 0 12 0 26 0 26 +390 5 56 93.6 889.75 49 25 0 0 12 0 24 0 24 +391 5 57 97.76 889.75 49 24 0 0 12 0 23 0 23 +392 5 58 101.92 889.75 49 26 0 0 12 0 25 0 25 +393 5 59 106.08 889.75 53 25 0 0 13 0 24 0 24 +394 5 60 110.24 889.75 53 23 0 0 13 0 22 0 22 +395 5 61 114.4 889.75 53 24 0 0 13 0 23 0 23 +396 5 62 118.56 889.75 53 26 0 0 13 0 25 0 25 +397 5 63 122.72 889.75 53 28 0 0 13 0 27 0 27 +398 5 64 126.88 889.75 57 25 0 0 14 0 24 0 24 +399 5 65 131.04 889.75 57 23 0 0 14 0 22 0 22 +400 5 66 135.2 889.75 57 24 0 0 14 0 23 0 23 +401 5 67 139.36 889.75 57 26 0 0 14 0 25 0 25 +402 6 0 -143.52 897.25 1 31 0 0 0 0 30 0 30 +403 6 1 -139.36 897.25 1 29 0 0 0 0 28 0 28 +404 6 2 -135.2 897.25 1 27 0 0 0 0 26 0 26 +405 6 3 -131.04 897.25 1 28 0 0 0 0 27 0 27 +406 6 4 -126.88 897.25 1 30 0 0 0 0 29 0 29 +407 6 5 -122.72 897.25 5 31 0 0 1 0 30 0 30 +408 6 6 -118.56 897.25 5 29 0 0 1 0 28 0 28 +409 6 7 -114.4 897.25 5 28 0 0 1 0 27 0 27 +410 6 8 -110.24 897.25 5 30 0 0 1 0 29 0 29 +411 6 9 -106.08 897.25 5 32 0 0 1 0 31 0 31 +412 6 10 -101.92 897.25 9 29 0 0 2 0 28 0 28 +413 6 11 -97.76 897.25 9 27 0 0 2 0 26 0 26 +414 6 12 -93.6 897.25 9 30 0 0 2 0 29 0 29 +415 6 13 -89.44 897.25 9 32 0 0 2 0 31 0 31 +416 6 14 -85.28 897.25 13 33 0 0 3 0 32 1 0 +417 6 15 -81.12 897.25 13 31 0 0 3 0 30 0 30 +418 6 16 -76.96 897.25 13 29 0 0 3 0 28 0 28 +419 6 17 -72.8 897.25 13 28 0 0 3 0 27 0 27 +420 6 18 -68.64 897.25 13 30 0 0 3 0 29 0 29 +421 6 19 -64.48 897.25 17 31 0 0 4 0 30 0 30 +422 6 20 -60.32 897.25 17 29 0 0 4 0 28 0 28 +423 6 21 -56.16 897.25 17 28 0 0 4 0 27 0 27 +424 6 22 -52 897.25 17 30 0 0 4 0 29 0 29 +425 6 23 -47.84 897.25 21 29 0 0 5 0 28 0 28 +426 6 24 -43.68 897.25 21 27 0 0 5 0 26 0 26 +427 6 25 -39.52 897.25 21 26 0 0 5 0 25 0 25 +428 6 26 -35.36 897.25 21 28 0 0 5 0 27 0 27 +429 6 27 -31.2 897.25 21 30 0 0 5 0 29 0 29 +430 6 28 -27.04 897.25 25 33 0 0 6 0 32 1 0 +431 6 29 -22.88 897.25 25 31 0 0 6 0 30 0 30 +432 6 30 -18.72 897.25 25 32 0 0 6 0 31 0 31 +433 6 31 -14.56 897.25 25 34 0 0 6 0 33 1 1 +434 6 32 -10.4 897.25 25 36 0 0 6 0 35 1 3 +435 6 33 -6.24 897.25 29 27 0 0 7 0 26 0 26 +436 6 34 -2.08 897.25 29 25 0 0 7 0 24 0 24 +437 6 35 2.08 897.25 29 26 0 0 7 0 25 0 25 +438 6 36 6.24 897.25 29 28 0 0 7 0 27 0 27 +439 6 37 10.4 897.25 33 35 0 0 8 0 34 1 2 +440 6 38 14.56 897.25 33 33 0 0 8 0 32 1 0 +441 6 39 18.72 897.25 33 31 0 0 8 0 30 0 30 +442 6 40 22.88 897.25 33 32 0 0 8 0 31 0 31 +443 6 41 27.04 897.25 33 34 0 0 8 0 33 1 1 +444 6 42 31.2 897.25 37 29 0 0 9 0 28 0 28 +445 6 43 35.36 897.25 37 27 0 0 9 0 26 0 26 +446 6 44 39.52 897.25 37 25 0 0 9 0 24 0 24 +447 6 45 43.68 897.25 37 28 0 0 9 0 27 0 27 +448 6 46 47.84 897.25 37 30 0 0 9 0 29 0 29 +449 6 47 52 897.25 41 29 0 0 10 0 28 0 28 +450 6 48 56.16 897.25 41 27 0 0 10 0 26 0 26 +451 6 49 60.32 897.25 41 30 0 0 10 0 29 0 29 +452 6 50 64.48 897.25 41 32 0 0 10 0 31 0 31 +453 6 51 68.64 897.25 45 29 0 0 11 0 28 0 28 +454 6 52 72.8 897.25 45 27 0 0 11 0 26 0 26 +455 6 53 76.96 897.25 45 30 0 0 11 0 29 0 29 +456 6 54 81.12 897.25 45 32 0 0 11 0 31 0 31 +457 6 55 85.28 897.25 45 34 0 0 11 0 33 1 1 +458 6 56 89.44 897.25 49 31 0 0 12 0 30 0 30 +459 6 57 93.6 897.25 49 29 0 0 12 0 28 0 28 +460 6 58 97.76 897.25 49 28 0 0 12 0 27 0 27 +461 6 59 101.92 897.25 49 30 0 0 12 0 29 0 29 +462 6 60 106.08 897.25 53 31 0 0 13 0 30 0 30 +463 6 61 110.24 897.25 53 29 0 0 13 0 28 0 28 +464 6 62 114.4 897.25 53 27 0 0 13 0 26 0 26 +465 6 63 118.56 897.25 53 30 0 0 13 0 29 0 29 +466 6 64 122.72 897.25 53 32 0 0 13 0 31 0 31 +467 6 65 126.88 897.25 57 29 0 0 14 0 28 0 28 +468 6 66 131.04 897.25 57 27 0 0 14 0 26 0 26 +469 6 67 135.2 897.25 57 28 0 0 14 0 27 0 27 +470 6 68 139.36 897.25 57 30 0 0 14 0 29 0 29 +471 6 69 143.52 897.25 57 32 0 0 14 0 31 0 31 +472 7 0 -143.52 904.75 1 35 0 0 0 0 34 1 2 +473 7 1 -139.36 904.75 1 33 0 0 0 0 32 1 0 +474 7 2 -135.2 904.75 1 32 0 0 0 0 31 0 31 +475 7 3 -131.04 904.75 1 34 0 0 0 0 33 1 1 +476 7 4 -126.88 904.75 1 36 0 0 0 0 35 1 3 +477 7 5 -122.72 904.75 5 35 0 0 1 0 34 1 2 +478 7 6 -118.56 904.75 5 33 0 0 1 0 32 1 0 +479 7 7 -114.4 904.75 5 34 0 0 1 0 33 1 1 +480 7 8 -110.24 904.75 5 36 0 0 1 0 35 1 3 +481 7 9 -106.08 904.75 9 35 0 0 2 0 34 1 2 +482 7 10 -101.92 904.75 9 33 0 0 2 0 32 1 0 +483 7 11 -97.76 904.75 9 31 0 0 2 0 30 0 30 +484 7 12 -93.6 904.75 9 34 0 0 2 0 33 1 1 +485 7 13 -89.44 904.75 9 36 0 0 2 0 35 1 3 +486 7 14 -85.28 904.75 13 39 0 0 3 0 38 1 6 +487 7 15 -81.12 904.75 13 37 0 0 3 0 36 1 4 +488 7 16 -76.96 904.75 13 35 0 0 3 0 34 1 2 +489 7 17 -72.8 904.75 13 32 0 0 3 0 31 0 31 +490 7 18 -68.64 904.75 13 34 0 0 3 0 33 1 1 +491 7 19 -64.48 904.75 17 35 0 0 4 0 34 1 2 +492 7 20 -60.32 904.75 17 33 0 0 4 0 32 1 0 +493 7 21 -56.16 904.75 17 32 0 0 4 0 31 0 31 +494 7 22 -52 904.75 17 34 0 0 4 0 33 1 1 +495 7 23 -47.84 904.75 21 35 0 0 5 0 34 1 2 +496 7 24 -43.68 904.75 21 33 0 0 5 0 32 1 0 +497 7 25 -39.52 904.75 21 31 0 0 5 0 30 0 30 +498 7 26 -35.36 904.75 21 32 0 0 5 0 31 0 31 +499 7 27 -31.2 904.75 21 34 0 0 5 0 33 1 1 +500 7 28 -27.04 904.75 25 39 0 0 6 0 38 1 6 +501 7 29 -22.88 904.75 25 37 0 0 6 0 36 1 4 +502 7 30 -18.72 904.75 25 35 0 0 6 0 34 1 2 +503 7 31 -14.56 904.75 25 38 0 0 6 0 37 1 5 +504 7 32 -10.4 904.75 25 40 0 0 6 0 39 1 7 +505 7 33 -6.24 904.75 29 31 0 0 7 0 30 0 30 +506 7 34 -2.08 904.75 29 29 0 0 7 0 28 0 28 +507 7 35 2.08 904.75 29 30 0 0 7 0 29 0 29 +508 7 36 6.24 904.75 29 32 0 0 7 0 31 0 31 +509 7 37 10.4 904.75 33 39 0 0 8 0 38 1 6 +510 7 38 14.56 904.75 33 37 0 0 8 0 36 1 4 +511 7 39 18.72 904.75 33 36 0 0 8 0 35 1 3 +512 7 40 22.88 904.75 33 38 0 0 8 0 37 1 5 +513 7 41 27.04 904.75 33 40 0 0 8 0 39 1 7 +514 7 42 31.2 904.75 37 33 0 0 9 0 32 1 0 +515 7 43 35.36 904.75 37 31 0 0 9 0 30 0 30 +516 7 44 39.52 904.75 37 32 0 0 9 0 31 0 31 +517 7 45 43.68 904.75 37 34 0 0 9 0 33 1 1 +518 7 46 47.84 904.75 37 36 0 0 9 0 35 1 3 +519 7 47 52 904.75 41 33 0 0 10 0 32 1 0 +520 7 48 56.16 904.75 41 31 0 0 10 0 30 0 30 +521 7 49 60.32 904.75 41 34 0 0 10 0 33 1 1 +522 7 50 64.48 904.75 41 36 0 0 10 0 35 1 3 +523 7 51 68.64 904.75 45 33 0 0 11 0 32 1 0 +524 7 52 72.8 904.75 45 31 0 0 11 0 30 0 30 +525 7 53 76.96 904.75 45 36 0 0 11 0 35 1 3 +526 7 54 81.12 904.75 45 38 0 0 11 0 37 1 5 +527 7 55 85.28 904.75 45 40 0 0 11 0 39 1 7 +528 7 56 89.44 904.75 49 35 0 0 12 0 34 1 2 +529 7 57 93.6 904.75 49 33 0 0 12 0 32 1 0 +530 7 58 97.76 904.75 49 32 0 0 12 0 31 0 31 +531 7 59 101.92 904.75 49 34 0 0 12 0 33 1 1 +532 7 60 106.08 904.75 49 36 0 0 12 0 35 1 3 +533 7 61 110.24 904.75 53 35 0 0 13 0 34 1 2 +534 7 62 114.4 904.75 53 33 0 0 13 0 32 1 0 +535 7 63 118.56 904.75 53 34 0 0 13 0 33 1 1 +536 7 64 122.72 904.75 53 36 0 0 13 0 35 1 3 +537 7 65 126.88 904.75 57 35 0 0 14 0 34 1 2 +538 7 66 131.04 904.75 57 33 0 0 14 0 32 1 0 +539 7 67 135.2 904.75 57 31 0 0 14 0 30 0 30 +540 7 68 139.36 904.75 57 34 0 0 14 0 33 1 1 +541 7 69 143.52 904.75 57 36 0 0 14 0 35 1 3 +542 8 0 -143.52 912.25 1 39 0 0 0 0 38 1 6 +543 8 1 -139.36 912.25 1 37 0 0 0 0 36 1 4 +544 8 2 -135.2 912.25 1 38 0 0 0 0 37 1 5 +545 8 3 -131.04 912.25 1 40 0 0 0 0 39 1 7 +546 8 4 -126.88 912.25 5 39 0 0 1 0 38 1 6 +547 8 5 -122.72 912.25 5 37 0 0 1 0 36 1 4 +548 8 6 -118.56 912.25 5 38 0 0 1 0 37 1 5 +549 8 7 -114.4 912.25 5 40 0 0 1 0 39 1 7 +550 8 8 -110.24 912.25 6 2 0 0 1 1 41 1 9 +551 8 9 -106.08 912.25 9 39 0 0 2 0 38 1 6 +552 8 10 -101.92 912.25 9 37 0 0 2 0 36 1 4 +553 8 11 -97.76 912.25 9 38 0 0 2 0 37 1 5 +554 8 12 -93.6 912.25 9 40 0 0 2 0 39 1 7 +555 8 13 -89.44 912.25 10 2 0 0 2 1 41 1 9 +556 8 14 -85.28 912.25 14 3 0 0 3 1 42 1 10 +557 8 15 -81.12 912.25 14 1 0 0 3 1 40 1 8 +558 8 16 -76.96 912.25 13 36 0 0 3 0 35 1 3 +559 8 17 -72.8 912.25 13 38 0 0 3 0 37 1 5 +560 8 18 -68.64 912.25 13 40 0 0 3 0 39 1 7 +561 8 19 -64.48 912.25 17 39 0 0 4 0 38 1 6 +562 8 20 -60.32 912.25 17 37 0 0 4 0 36 1 4 +563 8 21 -56.16 912.25 17 36 0 0 4 0 35 1 3 +564 8 22 -52 912.25 17 38 0 0 4 0 37 1 5 +565 8 23 -47.84 912.25 21 39 0 0 5 0 38 1 6 +566 8 24 -43.68 912.25 21 37 0 0 5 0 36 1 4 +567 8 25 -39.52 912.25 21 36 0 0 5 0 35 1 3 +568 8 26 -35.36 912.25 21 38 0 0 5 0 37 1 5 +569 8 27 -31.2 912.25 21 40 0 0 5 0 39 1 7 +570 8 28 -27.04 912.25 26 5 0 0 6 1 44 1 12 +571 8 29 -22.88 912.25 26 3 0 0 6 1 42 1 10 +572 8 30 -18.72 912.25 26 1 0 0 6 1 40 1 8 +573 8 31 -14.56 912.25 26 2 0 0 6 1 41 1 9 +574 8 32 -10.4 912.25 26 4 0 0 6 1 43 1 11 +575 8 33 -6.24 912.25 29 35 0 0 7 0 34 1 2 +576 8 34 -2.08 912.25 29 33 0 0 7 0 32 1 0 +577 8 35 2.08 912.25 29 34 0 0 7 0 33 1 1 +578 8 36 6.24 912.25 29 36 0 0 7 0 35 1 3 +579 8 37 10.4 912.25 34 3 0 0 8 1 42 1 10 +580 8 38 14.56 912.25 34 1 0 0 8 1 40 1 8 +581 8 39 18.72 912.25 34 2 0 0 8 1 41 1 9 +582 8 40 22.88 912.25 34 4 0 0 8 1 43 1 11 +583 8 41 27.04 912.25 34 6 0 0 8 1 45 1 13 +584 8 42 31.2 912.25 37 39 0 0 9 0 38 1 6 +585 8 43 35.36 912.25 37 37 0 0 9 0 36 1 4 +586 8 44 39.52 912.25 37 35 0 0 9 0 34 1 2 +587 8 45 43.68 912.25 37 38 0 0 9 0 37 1 5 +588 8 46 47.84 912.25 37 40 0 0 9 0 39 1 7 +589 8 47 52 912.25 41 37 0 0 10 0 36 1 4 +590 8 48 56.16 912.25 41 35 0 0 10 0 34 1 2 +591 8 49 60.32 912.25 41 38 0 0 10 0 37 1 5 +592 8 50 64.48 912.25 41 40 0 0 10 0 39 1 7 +593 8 51 68.64 912.25 45 39 0 0 11 0 38 1 6 +594 8 52 72.8 912.25 45 37 0 0 11 0 36 1 4 +595 8 53 76.96 912.25 45 35 0 0 11 0 34 1 2 +596 8 54 81.12 912.25 46 2 0 0 11 1 41 1 9 +597 8 55 85.28 912.25 46 4 0 0 11 1 43 1 11 +598 8 56 89.44 912.25 50 1 0 0 12 1 40 1 8 +599 8 57 93.6 912.25 49 39 0 0 12 0 38 1 6 +600 8 58 97.76 912.25 49 37 0 0 12 0 36 1 4 +601 8 59 101.92 912.25 49 38 0 0 12 0 37 1 5 +602 8 60 106.08 912.25 49 40 0 0 12 0 39 1 7 +603 8 61 110.24 912.25 54 1 0 0 13 1 40 1 8 +604 8 62 114.4 912.25 53 39 0 0 13 0 38 1 6 +605 8 63 118.56 912.25 53 37 0 0 13 0 36 1 4 +606 8 64 122.72 912.25 53 38 0 0 13 0 37 1 5 +607 8 65 126.88 912.25 53 40 0 0 13 0 39 1 7 +608 8 66 131.04 912.25 57 39 0 0 14 0 38 1 6 +609 8 67 135.2 912.25 57 37 0 0 14 0 36 1 4 +610 8 68 139.36 912.25 57 38 0 0 14 0 37 1 5 +611 8 69 143.52 912.25 57 40 0 0 14 0 39 1 7 +612 9 0 -147.68 919.75 2 3 0 0 0 1 42 1 10 +613 9 1 -143.52 919.75 2 1 0 0 0 1 40 1 8 +614 9 2 -139.36 919.75 2 2 0 0 0 1 41 1 9 +615 9 3 -135.2 919.75 2 4 0 0 0 1 43 1 11 +616 9 4 -131.04 919.75 2 6 0 0 0 1 45 1 13 +617 9 5 -126.88 919.75 6 5 0 0 1 1 44 1 12 +618 9 6 -122.72 919.75 6 3 0 0 1 1 42 1 10 +619 9 7 -118.56 919.75 6 1 0 0 1 1 40 1 8 +620 9 8 -114.4 919.75 6 4 0 0 1 1 43 1 11 +621 9 9 -110.24 919.75 6 6 0 0 1 1 45 1 13 +622 9 10 -106.08 919.75 10 5 0 0 2 1 44 1 12 +623 9 11 -101.92 919.75 10 3 0 0 2 1 42 1 10 +624 9 12 -97.76 919.75 10 1 0 0 2 1 40 1 8 +625 9 13 -93.6 919.75 10 4 0 0 2 1 43 1 11 +626 9 14 -89.44 919.75 10 6 0 0 2 1 45 1 13 +627 9 15 -85.28 919.75 14 5 0 0 3 1 44 1 12 +628 9 16 -81.12 919.75 14 2 0 0 3 1 41 1 9 +629 9 17 -76.96 919.75 14 4 0 0 3 1 43 1 11 +630 9 18 -72.8 919.75 14 6 0 0 3 1 45 1 13 +631 9 19 -68.64 919.75 18 3 0 0 4 1 42 1 10 +632 9 20 -64.48 919.75 18 1 0 0 4 1 40 1 8 +633 9 21 -60.32 919.75 18 2 0 0 4 1 41 1 9 +634 9 22 -56.16 919.75 18 4 0 0 4 1 43 1 11 +635 9 23 -52 919.75 17 40 0 0 4 0 39 1 7 +636 9 24 -47.84 919.75 22 3 0 0 5 1 42 1 10 +637 9 25 -43.68 919.75 22 1 0 0 5 1 40 1 8 +638 9 26 -39.52 919.75 22 2 0 0 5 1 41 1 9 +639 9 27 -35.36 919.75 22 4 0 0 5 1 43 1 11 +640 9 28 -31.2 919.75 22 6 0 0 5 1 45 1 13 +641 9 29 -27.04 919.75 26 11 0 0 6 1 50 1 18 +642 9 30 -22.88 919.75 26 9 0 0 6 1 48 1 16 +643 9 31 -18.72 919.75 26 7 0 0 6 1 46 1 14 +644 9 32 -14.56 919.75 26 6 0 0 6 1 45 1 13 +645 9 33 -10.4 919.75 26 8 0 0 6 1 47 1 15 +646 9 34 -6.24 919.75 29 39 0 0 7 0 38 1 6 +647 9 35 -2.08 919.75 29 37 0 0 7 0 36 1 4 +648 9 36 2.08 919.75 29 38 0 0 7 0 37 1 5 +649 9 37 6.24 919.75 29 40 0 0 7 0 39 1 7 +650 9 38 10.4 919.75 34 7 0 0 8 1 46 1 14 +651 9 39 14.56 919.75 34 5 0 0 8 1 44 1 12 +652 9 40 18.72 919.75 34 8 0 0 8 1 47 1 15 +653 9 41 22.88 919.75 34 10 0 0 8 1 49 1 17 +654 9 42 27.04 919.75 34 12 0 0 8 1 51 1 19 +655 9 43 31.2 919.75 38 5 0 0 9 1 44 1 12 +656 9 44 35.36 919.75 38 3 0 0 9 1 42 1 10 +657 9 45 39.52 919.75 38 1 0 0 9 1 40 1 8 +658 9 46 43.68 919.75 38 2 0 0 9 1 41 1 9 +659 9 47 47.84 919.75 38 4 0 0 9 1 43 1 11 +660 9 48 52 919.75 41 39 0 0 10 0 38 1 6 +661 9 49 56.16 919.75 42 3 0 0 10 1 42 1 10 +662 9 50 60.32 919.75 42 1 0 0 10 1 40 1 8 +663 9 51 64.48 919.75 42 2 0 0 10 1 41 1 9 +664 9 52 68.64 919.75 42 4 0 0 10 1 43 1 11 +665 9 53 72.8 919.75 46 5 0 0 11 1 44 1 12 +666 9 54 76.96 919.75 46 3 0 0 11 1 42 1 10 +667 9 55 81.12 919.75 46 1 0 0 11 1 40 1 8 +668 9 56 85.28 919.75 46 6 0 0 11 1 45 1 13 +669 9 57 89.44 919.75 50 5 0 0 12 1 44 1 12 +670 9 58 93.6 919.75 50 3 0 0 12 1 42 1 10 +671 9 59 97.76 919.75 50 2 0 0 12 1 41 1 9 +672 9 60 101.92 919.75 50 4 0 0 12 1 43 1 11 +673 9 61 106.08 919.75 50 6 0 0 12 1 45 1 13 +674 9 62 110.24 919.75 54 5 0 0 13 1 44 1 12 +675 9 63 114.4 919.75 54 3 0 0 13 1 42 1 10 +676 9 64 118.56 919.75 54 2 0 0 13 1 41 1 9 +677 9 65 122.72 919.75 54 4 0 0 13 1 43 1 11 +678 9 66 126.88 919.75 54 6 0 0 13 1 45 1 13 +679 9 67 131.04 919.75 58 5 0 0 14 1 44 1 12 +680 9 68 135.2 919.75 58 3 0 0 14 1 42 1 10 +681 9 69 139.36 919.75 58 1 0 0 14 1 40 1 8 +682 9 70 143.52 919.75 58 2 0 0 14 1 41 1 9 +683 9 71 147.68 919.75 58 4 0 0 14 1 43 1 11 +684 10 0 -147.68 927.25 2 9 0 0 0 1 48 1 16 +685 10 1 -143.52 927.25 2 7 0 0 0 1 46 1 14 +686 10 2 -139.36 927.25 2 5 0 0 0 1 44 1 12 +687 10 3 -135.2 927.25 2 8 0 0 0 1 47 1 15 +688 10 4 -131.04 927.25 2 10 0 0 0 1 49 1 17 +689 10 5 -126.88 927.25 6 11 0 0 1 1 50 1 18 +690 10 6 -122.72 927.25 6 9 0 0 1 1 48 1 16 +691 10 7 -118.56 927.25 6 7 0 0 1 1 46 1 14 +692 10 8 -114.4 927.25 6 8 0 0 1 1 47 1 15 +693 10 9 -110.24 927.25 6 10 0 0 1 1 49 1 17 +694 10 10 -106.08 927.25 10 9 0 0 2 1 48 1 16 +695 10 11 -101.92 927.25 10 7 0 0 2 1 46 1 14 +696 10 12 -97.76 927.25 10 8 0 0 2 1 47 1 15 +697 10 13 -93.6 927.25 10 10 0 0 2 1 49 1 17 +698 10 14 -89.44 927.25 14 11 0 0 3 1 50 1 18 +699 10 15 -85.28 927.25 14 9 0 0 3 1 48 1 16 +700 10 16 -81.12 927.25 14 7 0 0 3 1 46 1 14 +701 10 17 -76.96 927.25 14 8 0 0 3 1 47 1 15 +702 10 18 -72.8 927.25 14 10 0 0 3 1 49 1 17 +703 10 19 -68.64 927.25 18 9 0 0 4 1 48 1 16 +704 10 20 -64.48 927.25 18 7 0 0 4 1 46 1 14 +705 10 21 -60.32 927.25 18 5 0 0 4 1 44 1 12 +706 10 22 -56.16 927.25 18 6 0 0 4 1 45 1 13 +707 10 23 -52 927.25 18 8 0 0 4 1 47 1 15 +708 10 24 -47.84 927.25 22 9 0 0 5 1 48 1 16 +709 10 25 -43.68 927.25 22 7 0 0 5 1 46 1 14 +710 10 26 -39.52 927.25 22 5 0 0 5 1 44 1 12 +711 10 27 -35.36 927.25 22 8 0 0 5 1 47 1 15 +712 10 28 -31.2 927.25 22 10 0 0 5 1 49 1 17 +713 10 29 -27.04 927.25 26 15 0 0 6 1 54 1 22 +714 10 30 -22.88 927.25 26 13 0 0 6 1 52 1 20 +715 10 31 -18.72 927.25 26 10 0 0 6 1 49 1 17 +716 10 32 -14.56 927.25 26 12 0 0 6 1 51 1 19 +717 10 33 -10.4 927.25 26 14 0 0 6 1 53 1 21 +718 10 34 -6.24 927.25 30 3 0 0 7 1 42 1 10 +719 10 35 -2.08 927.25 30 1 0 0 7 1 40 1 8 +720 10 36 2.08 927.25 30 2 0 0 7 1 41 1 9 +721 10 37 6.24 927.25 30 4 0 0 7 1 43 1 11 +722 10 38 10.4 927.25 34 13 0 0 8 1 52 1 20 +723 10 39 14.56 927.25 34 11 0 0 8 1 50 1 18 +724 10 40 18.72 927.25 34 9 0 0 8 1 48 1 16 +725 10 41 22.88 927.25 34 14 0 0 8 1 53 1 21 +726 10 42 27.04 927.25 34 16 0 0 8 1 55 1 23 +727 10 43 31.2 927.25 38 9 0 0 9 1 48 1 16 +728 10 44 35.36 927.25 38 7 0 0 9 1 46 1 14 +729 10 45 39.52 927.25 38 6 0 0 9 1 45 1 13 +730 10 46 43.68 927.25 38 8 0 0 9 1 47 1 15 +731 10 47 47.84 927.25 38 10 0 0 9 1 49 1 17 +732 10 48 52 927.25 42 7 0 0 10 1 46 1 14 +733 10 49 56.16 927.25 42 5 0 0 10 1 44 1 12 +734 10 50 60.32 927.25 42 6 0 0 10 1 45 1 13 +735 10 51 64.48 927.25 42 8 0 0 10 1 47 1 15 +736 10 52 68.64 927.25 42 10 0 0 10 1 49 1 17 +737 10 53 72.8 927.25 46 9 0 0 11 1 48 1 16 +738 10 54 76.96 927.25 46 7 0 0 11 1 46 1 14 +739 10 55 81.12 927.25 46 8 0 0 11 1 47 1 15 +740 10 56 85.28 927.25 46 10 0 0 11 1 49 1 17 +741 10 57 89.44 927.25 46 12 0 0 11 1 51 1 19 +742 10 58 93.6 927.25 50 9 0 0 12 1 48 1 16 +743 10 59 97.76 927.25 50 7 0 0 12 1 46 1 14 +744 10 60 101.92 927.25 50 8 0 0 12 1 47 1 15 +745 10 61 106.08 927.25 50 10 0 0 12 1 49 1 17 +746 10 62 110.24 927.25 54 9 0 0 13 1 48 1 16 +747 10 63 114.4 927.25 54 7 0 0 13 1 46 1 14 +748 10 64 118.56 927.25 54 8 0 0 13 1 47 1 15 +749 10 65 122.72 927.25 54 10 0 0 13 1 49 1 17 +750 10 66 126.88 927.25 54 12 0 0 13 1 51 1 19 +751 10 67 131.04 927.25 58 9 0 0 14 1 48 1 16 +752 10 68 135.2 927.25 58 7 0 0 14 1 46 1 14 +753 10 69 139.36 927.25 58 6 0 0 14 1 45 1 13 +754 10 70 143.52 927.25 58 8 0 0 14 1 47 1 15 +755 10 71 147.68 927.25 58 10 0 0 14 1 49 1 17 +756 11 0 -147.68 934.75 2 13 0 0 0 1 52 1 20 +757 11 1 -143.52 934.75 2 11 0 0 0 1 50 1 18 +758 11 2 -139.36 934.75 2 12 0 0 0 1 51 1 19 +759 11 3 -135.2 934.75 2 14 0 0 0 1 53 1 21 +760 11 4 -131.04 934.75 2 16 0 0 0 1 55 1 23 +761 11 5 -126.88 934.75 6 15 0 0 1 1 54 1 22 +762 11 6 -122.72 934.75 6 13 0 0 1 1 52 1 20 +763 11 7 -118.56 934.75 6 12 0 0 1 1 51 1 19 +764 11 8 -114.4 934.75 6 14 0 0 1 1 53 1 21 +765 11 9 -110.24 934.75 10 13 0 0 2 1 52 1 20 +766 11 10 -106.08 934.75 10 11 0 0 2 1 50 1 18 +767 11 11 -101.92 934.75 10 12 0 0 2 1 51 1 19 +768 11 12 -97.76 934.75 10 14 0 0 2 1 53 1 21 +769 11 13 -93.6 934.75 10 16 0 0 2 1 55 1 23 +770 11 14 -89.44 934.75 14 15 0 0 3 1 54 1 22 +771 11 15 -85.28 934.75 14 13 0 0 3 1 52 1 20 +772 11 16 -81.12 934.75 14 12 0 0 3 1 51 1 19 +773 11 17 -76.96 934.75 14 14 0 0 3 1 53 1 21 +774 11 18 -72.8 934.75 14 16 0 0 3 1 55 1 23 +775 11 19 -68.64 934.75 18 13 0 0 4 1 52 1 20 +776 11 20 -64.48 934.75 18 11 0 0 4 1 50 1 18 +777 11 21 -60.32 934.75 18 10 0 0 4 1 49 1 17 +778 11 22 -56.16 934.75 18 12 0 0 4 1 51 1 19 +779 11 23 -52 934.75 18 14 0 0 4 1 53 1 21 +780 11 24 -47.84 934.75 22 13 0 0 5 1 52 1 20 +781 11 25 -43.68 934.75 22 11 0 0 5 1 50 1 18 +782 11 26 -39.52 934.75 22 12 0 0 5 1 51 1 19 +783 11 27 -35.36 934.75 22 14 0 0 5 1 53 1 21 +784 11 28 -31.2 934.75 22 16 0 0 5 1 55 1 23 +785 11 29 -27.04 934.75 26 19 0 0 6 1 58 1 26 +786 11 30 -22.88 934.75 26 17 0 0 6 1 56 1 24 +787 11 31 -18.72 934.75 26 16 0 0 6 1 55 1 23 +788 11 32 -14.56 934.75 26 18 0 0 6 1 57 1 25 +789 11 33 -10.4 934.75 30 9 0 0 7 1 48 1 16 +790 11 34 -6.24 934.75 30 7 0 0 7 1 46 1 14 +791 11 35 -2.08 934.75 30 5 0 0 7 1 44 1 12 +792 11 36 2.08 934.75 30 6 0 0 7 1 45 1 13 +793 11 37 6.24 934.75 30 8 0 0 7 1 47 1 15 +794 11 38 10.4 934.75 30 10 0 0 7 1 49 1 17 +795 11 39 14.56 934.75 34 17 0 0 8 1 56 1 24 +796 11 40 18.72 934.75 34 15 0 0 8 1 54 1 22 +797 11 41 22.88 934.75 34 18 0 0 8 1 57 1 25 +798 11 42 27.04 934.75 34 20 0 0 8 1 59 1 27 +799 11 43 31.2 934.75 38 15 0 0 9 1 54 1 22 +800 11 44 35.36 934.75 38 13 0 0 9 1 52 1 20 +801 11 45 39.52 934.75 38 11 0 0 9 1 50 1 18 +802 11 46 43.68 934.75 38 12 0 0 9 1 51 1 19 +803 11 47 47.84 934.75 38 14 0 0 9 1 53 1 21 +804 11 48 52 934.75 42 13 0 0 10 1 52 1 20 +805 11 49 56.16 934.75 42 11 0 0 10 1 50 1 18 +806 11 50 60.32 934.75 42 9 0 0 10 1 48 1 16 +807 11 51 64.48 934.75 42 12 0 0 10 1 51 1 19 +808 11 52 68.64 934.75 42 14 0 0 10 1 53 1 21 +809 11 53 72.8 934.75 46 15 0 0 11 1 54 1 22 +810 11 54 76.96 934.75 46 13 0 0 11 1 52 1 20 +811 11 55 81.12 934.75 46 11 0 0 11 1 50 1 18 +812 11 56 85.28 934.75 46 14 0 0 11 1 53 1 21 +813 11 57 89.44 934.75 46 16 0 0 11 1 55 1 23 +814 11 58 93.6 934.75 50 15 0 0 12 1 54 1 22 +815 11 59 97.76 934.75 50 13 0 0 12 1 52 1 20 +816 11 60 101.92 934.75 50 11 0 0 12 1 50 1 18 +817 11 61 106.08 934.75 50 12 0 0 12 1 51 1 19 +818 11 62 110.24 934.75 50 14 0 0 12 1 53 1 21 +819 11 63 114.4 934.75 54 13 0 0 13 1 52 1 20 +820 11 64 118.56 934.75 54 11 0 0 13 1 50 1 18 +821 11 65 122.72 934.75 54 14 0 0 13 1 53 1 21 +822 11 66 126.88 934.75 54 16 0 0 13 1 55 1 23 +823 11 67 131.04 934.75 58 15 0 0 14 1 54 1 22 +824 11 68 135.2 934.75 58 13 0 0 14 1 52 1 20 +825 11 69 139.36 934.75 58 11 0 0 14 1 50 1 18 +826 11 70 143.52 934.75 58 12 0 0 14 1 51 1 19 +827 11 71 147.68 934.75 58 14 0 0 14 1 53 1 21 +828 12 0 -151.84 942.25 2 19 0 0 0 1 58 1 26 +829 12 1 -147.68 942.25 2 17 0 0 0 1 56 1 24 +830 12 2 -143.52 942.25 2 15 0 0 0 1 54 1 22 +831 12 3 -139.36 942.25 2 18 0 0 0 1 57 1 25 +832 12 4 -135.2 942.25 2 20 0 0 0 1 59 1 27 +833 12 5 -131.04 942.25 6 19 0 0 1 1 58 1 26 +834 12 6 -126.88 942.25 6 17 0 0 1 1 56 1 24 +835 12 7 -122.72 942.25 6 16 0 0 1 1 55 1 23 +836 12 8 -118.56 942.25 6 18 0 0 1 1 57 1 25 +837 12 9 -114.4 942.25 6 20 0 0 1 1 59 1 27 +838 12 10 -110.24 942.25 10 19 0 0 2 1 58 1 26 +839 12 11 -106.08 942.25 10 17 0 0 2 1 56 1 24 +840 12 12 -101.92 942.25 10 15 0 0 2 1 54 1 22 +841 12 13 -97.76 942.25 10 18 0 0 2 1 57 1 25 +842 12 14 -93.6 942.25 10 20 0 0 2 1 59 1 27 +843 12 15 -89.44 942.25 14 21 0 0 3 1 60 1 28 +844 12 16 -85.28 942.25 14 19 0 0 3 1 58 1 26 +845 12 17 -81.12 942.25 14 17 0 0 3 1 56 1 24 +846 12 18 -76.96 942.25 14 18 0 0 3 1 57 1 25 +847 12 19 -72.8 942.25 14 20 0 0 3 1 59 1 27 +848 12 20 -68.64 942.25 18 19 0 0 4 1 58 1 26 +849 12 21 -64.48 942.25 18 17 0 0 4 1 56 1 24 +850 12 22 -60.32 942.25 18 15 0 0 4 1 54 1 22 +851 12 23 -56.16 942.25 18 16 0 0 4 1 55 1 23 +852 12 24 -52 942.25 18 18 0 0 4 1 57 1 25 +853 12 25 -47.84 942.25 22 19 0 0 5 1 58 1 26 +854 12 26 -43.68 942.25 22 17 0 0 5 1 56 1 24 +855 12 27 -39.52 942.25 22 15 0 0 5 1 54 1 22 +856 12 28 -35.36 942.25 22 18 0 0 5 1 57 1 25 +857 12 29 -31.2 942.25 22 20 0 0 5 1 59 1 27 +858 12 30 -27.04 942.25 26 23 0 0 6 1 62 1 30 +859 12 31 -22.88 942.25 26 21 0 0 6 1 60 1 28 +860 12 32 -18.72 942.25 26 20 0 0 6 1 59 1 27 +861 12 33 -14.56 942.25 26 22 0 0 6 1 61 1 29 +862 12 34 -10.4 942.25 30 15 0 0 7 1 54 1 22 +863 12 35 -6.24 942.25 30 13 0 0 7 1 52 1 20 +864 12 36 -2.08 942.25 30 11 0 0 7 1 50 1 18 +865 12 37 2.08 942.25 30 12 0 0 7 1 51 1 19 +866 12 38 6.24 942.25 30 14 0 0 7 1 53 1 21 +867 12 39 10.4 942.25 30 16 0 0 7 1 55 1 23 +868 12 40 14.56 942.25 34 21 0 0 8 1 60 1 28 +869 12 41 18.72 942.25 34 19 0 0 8 1 58 1 26 +870 12 42 22.88 942.25 34 22 0 0 8 1 61 1 29 +871 12 43 27.04 942.25 34 24 0 0 8 1 63 1 31 +872 12 44 31.2 942.25 38 19 0 0 9 1 58 1 26 +873 12 45 35.36 942.25 38 17 0 0 9 1 56 1 24 +874 12 46 39.52 942.25 38 16 0 0 9 1 55 1 23 +875 12 47 43.68 942.25 38 18 0 0 9 1 57 1 25 +876 12 48 47.84 942.25 38 20 0 0 9 1 59 1 27 +877 12 49 52 942.25 42 17 0 0 10 1 56 1 24 +878 12 50 56.16 942.25 42 15 0 0 10 1 54 1 22 +879 12 51 60.32 942.25 42 16 0 0 10 1 55 1 23 +880 12 52 64.48 942.25 42 18 0 0 10 1 57 1 25 +881 12 53 68.64 942.25 42 20 0 0 10 1 59 1 27 +882 12 54 72.8 942.25 46 19 0 0 11 1 58 1 26 +883 12 55 76.96 942.25 46 17 0 0 11 1 56 1 24 +884 12 56 81.12 942.25 46 18 0 0 11 1 57 1 25 +885 12 57 85.28 942.25 46 20 0 0 11 1 59 1 27 +886 12 58 89.44 942.25 46 22 0 0 11 1 61 1 29 +887 12 59 93.6 942.25 50 19 0 0 12 1 58 1 26 +888 12 60 97.76 942.25 50 17 0 0 12 1 56 1 24 +889 12 61 101.92 942.25 50 16 0 0 12 1 55 1 23 +890 12 62 106.08 942.25 50 18 0 0 12 1 57 1 25 +891 12 63 110.24 942.25 50 20 0 0 12 1 59 1 27 +892 12 64 114.4 942.25 54 19 0 0 13 1 58 1 26 +893 12 65 118.56 942.25 54 17 0 0 13 1 56 1 24 +894 12 66 122.72 942.25 54 15 0 0 13 1 54 1 22 +895 12 67 126.88 942.25 54 18 0 0 13 1 57 1 25 +896 12 68 131.04 942.25 54 20 0 0 13 1 59 1 27 +897 12 69 135.2 942.25 58 19 0 0 14 1 58 1 26 +898 12 70 139.36 942.25 58 17 0 0 14 1 56 1 24 +899 12 71 143.52 942.25 58 16 0 0 14 1 55 1 23 +900 12 72 147.68 942.25 58 18 0 0 14 1 57 1 25 +901 12 73 151.84 942.25 58 20 0 0 14 1 59 1 27 +902 13 0 -151.84 949.75 2 23 0 0 0 1 62 1 30 +903 13 1 -147.68 949.75 2 21 0 0 0 1 60 1 28 +904 13 2 -143.52 949.75 2 22 0 0 0 1 61 1 29 +905 13 3 -139.36 949.75 2 24 0 0 0 1 63 1 31 +906 13 4 -135.2 949.75 2 26 0 0 0 1 65 2 1 +907 13 5 -131.04 949.75 6 25 0 0 1 1 64 2 0 +908 13 6 -126.88 949.75 6 23 0 0 1 1 62 1 30 +909 13 7 -122.72 949.75 6 21 0 0 1 1 60 1 28 +910 13 8 -118.56 949.75 6 22 0 0 1 1 61 1 29 +911 13 9 -114.4 949.75 6 24 0 0 1 1 63 1 31 +912 13 10 -110.24 949.75 10 23 0 0 2 1 62 1 30 +913 13 11 -106.08 949.75 10 21 0 0 2 1 60 1 28 +914 13 12 -101.92 949.75 10 22 0 0 2 1 61 1 29 +915 13 13 -97.76 949.75 10 24 0 0 2 1 63 1 31 +916 13 14 -93.6 949.75 10 26 0 0 2 1 65 2 1 +917 13 15 -89.44 949.75 14 25 0 0 3 1 64 2 0 +918 13 16 -85.28 949.75 14 23 0 0 3 1 62 1 30 +919 13 17 -81.12 949.75 14 22 0 0 3 1 61 1 29 +920 13 18 -76.96 949.75 14 24 0 0 3 1 63 1 31 +921 13 19 -72.8 949.75 14 26 0 0 3 1 65 2 1 +922 13 20 -68.64 949.75 18 23 0 0 4 1 62 1 30 +923 13 21 -64.48 949.75 18 21 0 0 4 1 60 1 28 +924 13 22 -60.32 949.75 18 20 0 0 4 1 59 1 27 +925 13 23 -56.16 949.75 18 22 0 0 4 1 61 1 29 +926 13 24 -52 949.75 18 24 0 0 4 1 63 1 31 +927 13 25 -47.84 949.75 22 23 0 0 5 1 62 1 30 +928 13 26 -43.68 949.75 22 21 0 0 5 1 60 1 28 +929 13 27 -39.52 949.75 22 22 0 0 5 1 61 1 29 +930 13 28 -35.36 949.75 22 24 0 0 5 1 63 1 31 +931 13 29 -31.2 949.75 22 26 0 0 5 1 65 2 1 +932 13 30 -27.04 949.75 26 27 0 0 6 1 66 2 2 +933 13 31 -22.88 949.75 26 25 0 0 6 1 64 2 0 +934 13 32 -18.72 949.75 26 24 0 0 6 1 63 1 31 +935 13 33 -14.56 949.75 26 26 0 0 6 1 65 2 1 +936 13 34 -10.4 949.75 30 21 0 0 7 1 60 1 28 +937 13 35 -6.24 949.75 30 19 0 0 7 1 58 1 26 +938 13 36 -2.08 949.75 30 17 0 0 7 1 56 1 24 +939 13 37 2.08 949.75 30 18 0 0 7 1 57 1 25 +940 13 38 6.24 949.75 30 20 0 0 7 1 59 1 27 +941 13 39 10.4 949.75 30 22 0 0 7 1 61 1 29 +942 13 40 14.56 949.75 34 25 0 0 8 1 64 2 0 +943 13 41 18.72 949.75 34 23 0 0 8 1 62 1 30 +944 13 42 22.88 949.75 34 26 0 0 8 1 65 2 1 +945 13 43 27.04 949.75 34 28 0 0 8 1 67 2 3 +946 13 44 31.2 949.75 38 25 0 0 9 1 64 2 0 +947 13 45 35.36 949.75 38 23 0 0 9 1 62 1 30 +948 13 46 39.52 949.75 38 21 0 0 9 1 60 1 28 +949 13 47 43.68 949.75 38 22 0 0 9 1 61 1 29 +950 13 48 47.84 949.75 38 24 0 0 9 1 63 1 31 +951 13 49 52 949.75 42 23 0 0 10 1 62 1 30 +952 13 50 56.16 949.75 42 21 0 0 10 1 60 1 28 +953 13 51 60.32 949.75 42 19 0 0 10 1 58 1 26 +954 13 52 64.48 949.75 42 22 0 0 10 1 61 1 29 +955 13 53 68.64 949.75 42 24 0 0 10 1 63 1 31 +956 13 54 72.8 949.75 46 25 0 0 11 1 64 2 0 +957 13 55 76.96 949.75 46 23 0 0 11 1 62 1 30 +958 13 56 81.12 949.75 46 21 0 0 11 1 60 1 28 +959 13 57 85.28 949.75 46 24 0 0 11 1 63 1 31 +960 13 58 89.44 949.75 46 26 0 0 11 1 65 2 1 +961 13 59 93.6 949.75 50 25 0 0 12 1 64 2 0 +962 13 60 97.76 949.75 50 23 0 0 12 1 62 1 30 +963 13 61 101.92 949.75 50 21 0 0 12 1 60 1 28 +964 13 62 106.08 949.75 50 22 0 0 12 1 61 1 29 +965 13 63 110.24 949.75 50 24 0 0 12 1 63 1 31 +966 13 64 114.4 949.75 54 23 0 0 13 1 62 1 30 +967 13 65 118.56 949.75 54 21 0 0 13 1 60 1 28 +968 13 66 122.72 949.75 54 22 0 0 13 1 61 1 29 +969 13 67 126.88 949.75 54 24 0 0 13 1 63 1 31 +970 13 68 131.04 949.75 54 26 0 0 13 1 65 2 1 +971 13 69 135.2 949.75 58 25 0 0 14 1 64 2 0 +972 13 70 139.36 949.75 58 23 0 0 14 1 62 1 30 +973 13 71 143.52 949.75 58 21 0 0 14 1 60 1 28 +974 13 72 147.68 949.75 58 22 0 0 14 1 61 1 29 +975 13 73 151.84 949.75 58 24 0 0 14 1 63 1 31 +976 14 0 -151.84 957.25 2 29 0 0 0 1 68 2 4 +977 14 1 -147.68 957.25 2 27 0 0 0 1 66 2 2 +978 14 2 -143.52 957.25 2 25 0 0 0 1 64 2 0 +979 14 3 -139.36 957.25 2 28 0 0 0 1 67 2 3 +980 14 4 -135.2 957.25 2 30 0 0 0 1 69 2 5 +981 14 5 -131.04 957.25 6 29 0 0 1 1 68 2 4 +982 14 6 -126.88 957.25 6 27 0 0 1 1 66 2 2 +983 14 7 -122.72 957.25 6 26 0 0 1 1 65 2 1 +984 14 8 -118.56 957.25 6 28 0 0 1 1 67 2 3 +985 14 9 -114.4 957.25 6 30 0 0 1 1 69 2 5 +986 14 10 -110.24 957.25 10 29 0 0 2 1 68 2 4 +987 14 11 -106.08 957.25 10 27 0 0 2 1 66 2 2 +988 14 12 -101.92 957.25 10 25 0 0 2 1 64 2 0 +989 14 13 -97.76 957.25 10 28 0 0 2 1 67 2 3 +990 14 14 -93.6 957.25 10 30 0 0 2 1 69 2 5 +991 14 15 -89.44 957.25 14 31 0 0 3 1 70 2 6 +992 14 16 -85.28 957.25 14 29 0 0 3 1 68 2 4 +993 14 17 -81.12 957.25 14 27 0 0 3 1 66 2 2 +994 14 18 -76.96 957.25 14 28 0 0 3 1 67 2 3 +995 14 19 -72.8 957.25 14 30 0 0 3 1 69 2 5 +996 14 20 -68.64 957.25 18 29 0 0 4 1 68 2 4 +997 14 21 -64.48 957.25 18 27 0 0 4 1 66 2 2 +998 14 22 -60.32 957.25 18 25 0 0 4 1 64 2 0 +999 14 23 -56.16 957.25 18 26 0 0 4 1 65 2 1 +1000 14 24 -52 957.25 18 28 0 0 4 1 67 2 3 +1001 14 25 -47.84 957.25 22 29 0 0 5 1 68 2 4 +1002 14 26 -43.68 957.25 22 27 0 0 5 1 66 2 2 +1003 14 27 -39.52 957.25 22 25 0 0 5 1 64 2 0 +1004 14 28 -35.36 957.25 22 28 0 0 5 1 67 2 3 +1005 14 29 -31.2 957.25 22 30 0 0 5 1 69 2 5 +1006 14 30 -27.04 957.25 26 31 0 0 6 1 70 2 6 +1007 14 31 -22.88 957.25 26 29 0 0 6 1 68 2 4 +1008 14 32 -18.72 957.25 26 28 0 0 6 1 67 2 3 +1009 14 33 -14.56 957.25 26 30 0 0 6 1 69 2 5 +1010 14 34 -10.4 957.25 30 27 0 0 7 1 66 2 2 +1011 14 35 -6.24 957.25 30 25 0 0 7 1 64 2 0 +1012 14 36 -2.08 957.25 30 23 0 0 7 1 62 1 30 +1013 14 37 2.08 957.25 30 24 0 0 7 1 63 1 31 +1014 14 38 6.24 957.25 30 26 0 0 7 1 65 2 1 +1015 14 39 10.4 957.25 30 28 0 0 7 1 67 2 3 +1016 14 40 14.56 957.25 34 29 0 0 8 1 68 2 4 +1017 14 41 18.72 957.25 34 27 0 0 8 1 66 2 2 +1018 14 42 22.88 957.25 34 30 0 0 8 1 69 2 5 +1019 14 43 27.04 957.25 34 32 0 0 8 1 71 2 7 +1020 14 44 31.2 957.25 38 29 0 0 9 1 68 2 4 +1021 14 45 35.36 957.25 38 27 0 0 9 1 66 2 2 +1022 14 46 39.52 957.25 38 26 0 0 9 1 65 2 1 +1023 14 47 43.68 957.25 38 28 0 0 9 1 67 2 3 +1024 14 48 47.84 957.25 38 30 0 0 9 1 69 2 5 +1025 14 49 52 957.25 42 27 0 0 10 1 66 2 2 +1026 14 50 56.16 957.25 42 25 0 0 10 1 64 2 0 +1027 14 51 60.32 957.25 42 26 0 0 10 1 65 2 1 +1028 14 52 64.48 957.25 42 28 0 0 10 1 67 2 3 +1029 14 53 68.64 957.25 42 30 0 0 10 1 69 2 5 +1030 14 54 72.8 957.25 46 29 0 0 11 1 68 2 4 +1031 14 55 76.96 957.25 46 27 0 0 11 1 66 2 2 +1032 14 56 81.12 957.25 46 28 0 0 11 1 67 2 3 +1033 14 57 85.28 957.25 46 30 0 0 11 1 69 2 5 +1034 14 58 89.44 957.25 46 32 0 0 11 1 71 2 7 +1035 14 59 93.6 957.25 50 29 0 0 12 1 68 2 4 +1036 14 60 97.76 957.25 50 27 0 0 12 1 66 2 2 +1037 14 61 101.92 957.25 50 26 0 0 12 1 65 2 1 +1038 14 62 106.08 957.25 50 28 0 0 12 1 67 2 3 +1039 14 63 110.24 957.25 50 30 0 0 12 1 69 2 5 +1040 14 64 114.4 957.25 54 29 0 0 13 1 68 2 4 +1041 14 65 118.56 957.25 54 27 0 0 13 1 66 2 2 +1042 14 66 122.72 957.25 54 25 0 0 13 1 64 2 0 +1043 14 67 126.88 957.25 54 28 0 0 13 1 67 2 3 +1044 14 68 131.04 957.25 54 30 0 0 13 1 69 2 5 +1045 14 69 135.2 957.25 58 29 0 0 14 1 68 2 4 +1046 14 70 139.36 957.25 58 27 0 0 14 1 66 2 2 +1047 14 71 143.52 957.25 58 26 0 0 14 1 65 2 1 +1048 14 72 147.68 957.25 58 28 0 0 14 1 67 2 3 +1049 14 73 151.84 957.25 58 30 0 0 14 1 69 2 5 +1050 15 0 -151.84 964.75 2 33 0 0 0 1 72 2 8 +1051 15 1 -147.68 964.75 2 31 0 0 0 1 70 2 6 +1052 15 2 -143.52 964.75 2 32 0 0 0 1 71 2 7 +1053 15 3 -139.36 964.75 2 34 0 0 0 1 73 2 9 +1054 15 4 -135.2 964.75 2 36 0 0 0 1 75 2 11 +1055 15 5 -131.04 964.75 6 35 0 0 1 1 74 2 10 +1056 15 6 -126.88 964.75 6 33 0 0 1 1 72 2 8 +1057 15 7 -122.72 964.75 6 31 0 0 1 1 70 2 6 +1058 15 8 -118.56 964.75 6 32 0 0 1 1 71 2 7 +1059 15 9 -114.4 964.75 6 34 0 0 1 1 73 2 9 +1060 15 10 -110.24 964.75 10 33 0 0 2 1 72 2 8 +1061 15 11 -106.08 964.75 10 31 0 0 2 1 70 2 6 +1062 15 12 -101.92 964.75 10 32 0 0 2 1 71 2 7 +1063 15 13 -97.76 964.75 10 34 0 0 2 1 73 2 9 +1064 15 14 -93.6 964.75 10 36 0 0 2 1 75 2 11 +1065 15 15 -89.44 964.75 14 35 0 0 3 1 74 2 10 +1066 15 16 -85.28 964.75 14 33 0 0 3 1 72 2 8 +1067 15 17 -81.12 964.75 14 32 0 0 3 1 71 2 7 +1068 15 18 -76.96 964.75 14 34 0 0 3 1 73 2 9 +1069 15 19 -72.8 964.75 18 35 0 0 4 1 74 2 10 +1070 15 20 -68.64 964.75 18 33 0 0 4 1 72 2 8 +1071 15 21 -64.48 964.75 18 31 0 0 4 1 70 2 6 +1072 15 22 -60.32 964.75 18 30 0 0 4 1 69 2 5 +1073 15 23 -56.16 964.75 18 32 0 0 4 1 71 2 7 +1074 15 24 -52 964.75 18 34 0 0 4 1 73 2 9 +1075 15 25 -47.84 964.75 22 33 0 0 5 1 72 2 8 +1076 15 26 -43.68 964.75 22 31 0 0 5 1 70 2 6 +1077 15 27 -39.52 964.75 22 32 0 0 5 1 71 2 7 +1078 15 28 -35.36 964.75 22 34 0 0 5 1 73 2 9 +1079 15 29 -31.2 964.75 22 36 0 0 5 1 75 2 11 +1080 15 30 -27.04 964.75 26 35 0 0 6 1 74 2 10 +1081 15 31 -22.88 964.75 26 33 0 0 6 1 72 2 8 +1082 15 32 -18.72 964.75 26 32 0 0 6 1 71 2 7 +1083 15 33 -14.56 964.75 26 34 0 0 6 1 73 2 9 +1084 15 34 -10.4 964.75 30 33 0 0 7 1 72 2 8 +1085 15 35 -6.24 964.75 30 31 0 0 7 1 70 2 6 +1086 15 36 -2.08 964.75 30 29 0 0 7 1 68 2 4 +1087 15 37 2.08 964.75 30 30 0 0 7 1 69 2 5 +1088 15 38 6.24 964.75 30 32 0 0 7 1 71 2 7 +1089 15 39 10.4 964.75 30 34 0 0 7 1 73 2 9 +1090 15 40 14.56 964.75 34 33 0 0 8 1 72 2 8 +1091 15 41 18.72 964.75 34 31 0 0 8 1 70 2 6 +1092 15 42 22.88 964.75 34 34 0 0 8 1 73 2 9 +1093 15 43 27.04 964.75 34 36 0 0 8 1 75 2 11 +1094 15 44 31.2 964.75 38 35 0 0 9 1 74 2 10 +1095 15 45 35.36 964.75 38 33 0 0 9 1 72 2 8 +1096 15 46 39.52 964.75 38 31 0 0 9 1 70 2 6 +1097 15 47 43.68 964.75 38 32 0 0 9 1 71 2 7 +1098 15 48 47.84 964.75 38 34 0 0 9 1 73 2 9 +1099 15 49 52 964.75 42 33 0 0 10 1 72 2 8 +1100 15 50 56.16 964.75 42 31 0 0 10 1 70 2 6 +1101 15 51 60.32 964.75 42 29 0 0 10 1 68 2 4 +1102 15 52 64.48 964.75 42 32 0 0 10 1 71 2 7 +1103 15 53 68.64 964.75 42 34 0 0 10 1 73 2 9 +1104 15 54 72.8 964.75 42 36 0 0 10 1 75 2 11 +1105 15 55 76.96 964.75 46 33 0 0 11 1 72 2 8 +1106 15 56 81.12 964.75 46 31 0 0 11 1 70 2 6 +1107 15 57 85.28 964.75 46 34 0 0 11 1 73 2 9 +1108 15 58 89.44 964.75 46 36 0 0 11 1 75 2 11 +1109 15 59 93.6 964.75 50 35 0 0 12 1 74 2 10 +1110 15 60 97.76 964.75 50 33 0 0 12 1 72 2 8 +1111 15 61 101.92 964.75 50 31 0 0 12 1 70 2 6 +1112 15 62 106.08 964.75 50 32 0 0 12 1 71 2 7 +1113 15 63 110.24 964.75 50 34 0 0 12 1 73 2 9 +1114 15 64 114.4 964.75 54 33 0 0 13 1 72 2 8 +1115 15 65 118.56 964.75 54 31 0 0 13 1 70 2 6 +1116 15 66 122.72 964.75 54 32 0 0 13 1 71 2 7 +1117 15 67 126.88 964.75 54 34 0 0 13 1 73 2 9 +1118 15 68 131.04 964.75 54 36 0 0 13 1 75 2 11 +1119 15 69 135.2 964.75 58 35 0 0 14 1 74 2 10 +1120 15 70 139.36 964.75 58 33 0 0 14 1 72 2 8 +1121 15 71 143.52 964.75 58 31 0 0 14 1 70 2 6 +1122 15 72 147.68 964.75 58 32 0 0 14 1 71 2 7 +1123 15 73 151.84 964.75 58 34 0 0 14 1 73 2 9 +1124 16 0 -156 972.25 2 39 0 0 0 1 78 2 14 +1125 16 1 -151.84 972.25 2 37 0 0 0 1 76 2 12 +1126 16 2 -147.68 972.25 2 35 0 0 0 1 74 2 10 +1127 16 3 -143.52 972.25 2 38 0 0 0 1 77 2 13 +1128 16 4 -139.36 972.25 2 40 0 0 0 1 79 2 15 +1129 16 5 -135.2 972.25 6 39 0 0 1 1 78 2 14 +1130 16 6 -131.04 972.25 6 37 0 0 1 1 76 2 12 +1131 16 7 -126.88 972.25 6 36 0 0 1 1 75 2 11 +1132 16 8 -122.72 972.25 6 38 0 0 1 1 77 2 13 +1133 16 9 -118.56 972.25 6 40 0 0 1 1 79 2 15 +1134 16 10 -114.4 972.25 10 39 0 0 2 1 78 2 14 +1135 16 11 -110.24 972.25 10 37 0 0 2 1 76 2 12 +1136 16 12 -106.08 972.25 10 35 0 0 2 1 74 2 10 +1137 16 13 -101.92 972.25 10 38 0 0 2 1 77 2 13 +1138 16 14 -97.76 972.25 10 40 0 0 2 1 79 2 15 +1139 16 15 -93.6 972.25 14 39 0 0 3 1 78 2 14 +1140 16 16 -89.44 972.25 14 37 0 0 3 1 76 2 12 +1141 16 17 -85.28 972.25 14 36 0 0 3 1 75 2 11 +1142 16 18 -81.12 972.25 14 38 0 0 3 1 77 2 13 +1143 16 19 -76.96 972.25 14 40 0 0 3 1 79 2 15 +1144 16 20 -72.8 972.25 18 39 0 0 4 1 78 2 14 +1145 16 21 -68.64 972.25 18 37 0 0 4 1 76 2 12 +1146 16 22 -64.48 972.25 18 36 0 0 4 1 75 2 11 +1147 16 23 -60.32 972.25 18 38 0 0 4 1 77 2 13 +1148 16 24 -56.16 972.25 18 40 0 0 4 1 79 2 15 +1149 16 25 -52 972.25 22 39 0 0 5 1 78 2 14 +1150 16 26 -47.84 972.25 22 37 0 0 5 1 76 2 12 +1151 16 27 -43.68 972.25 22 35 0 0 5 1 74 2 10 +1152 16 28 -39.52 972.25 22 38 0 0 5 1 77 2 13 +1153 16 29 -35.36 972.25 22 40 0 0 5 1 79 2 15 +1154 16 30 -31.2 972.25 26 39 0 0 6 1 78 2 14 +1155 16 31 -27.04 972.25 26 37 0 0 6 1 76 2 12 +1156 16 32 -22.88 972.25 26 36 0 0 6 1 75 2 11 +1157 16 33 -18.72 972.25 26 38 0 0 6 1 77 2 13 +1158 16 34 -14.56 972.25 26 40 0 0 6 1 79 2 15 +1159 16 35 -10.4 972.25 30 39 0 0 7 1 78 2 14 +1160 16 36 -6.24 972.25 30 37 0 0 7 1 76 2 12 +1161 16 37 -2.08 972.25 30 35 0 0 7 1 74 2 10 +1162 16 38 2.08 972.25 30 36 0 0 7 1 75 2 11 +1163 16 39 6.24 972.25 30 38 0 0 7 1 77 2 13 +1164 16 40 10.4 972.25 30 40 0 0 7 1 79 2 15 +1165 16 41 14.56 972.25 34 39 0 0 8 1 78 2 14 +1166 16 42 18.72 972.25 34 37 0 0 8 1 76 2 12 +1167 16 43 22.88 972.25 34 35 0 0 8 1 74 2 10 +1168 16 44 27.04 972.25 34 38 0 0 8 1 77 2 13 +1169 16 45 31.2 972.25 34 40 0 0 8 1 79 2 15 +1170 16 46 35.36 972.25 38 39 0 0 9 1 78 2 14 +1171 16 47 39.52 972.25 38 37 0 0 9 1 76 2 12 +1172 16 48 43.68 972.25 38 36 0 0 9 1 75 2 11 +1173 16 49 47.84 972.25 38 38 0 0 9 1 77 2 13 +1174 16 50 52 972.25 38 40 0 0 9 1 79 2 15 +1175 16 51 56.16 972.25 42 39 0 0 10 1 78 2 14 +1176 16 52 60.32 972.25 42 37 0 0 10 1 76 2 12 +1177 16 53 64.48 972.25 42 35 0 0 10 1 74 2 10 +1178 16 54 68.64 972.25 42 38 0 0 10 1 77 2 13 +1179 16 55 72.8 972.25 42 40 0 0 10 1 79 2 15 +1180 16 56 76.96 972.25 46 39 0 0 11 1 78 2 14 +1181 16 57 81.12 972.25 46 37 0 0 11 1 76 2 12 +1182 16 58 85.28 972.25 46 35 0 0 11 1 74 2 10 +1183 16 59 89.44 972.25 46 38 0 0 11 1 77 2 13 +1184 16 60 93.6 972.25 46 40 0 0 11 1 79 2 15 +1185 16 61 97.76 972.25 50 39 0 0 12 1 78 2 14 +1186 16 62 101.92 972.25 50 37 0 0 12 1 76 2 12 +1187 16 63 106.08 972.25 50 36 0 0 12 1 75 2 11 +1188 16 64 110.24 972.25 50 38 0 0 12 1 77 2 13 +1189 16 65 114.4 972.25 50 40 0 0 12 1 79 2 15 +1190 16 66 118.56 972.25 54 39 0 0 13 1 78 2 14 +1191 16 67 122.72 972.25 54 37 0 0 13 1 76 2 12 +1192 16 68 126.88 972.25 54 35 0 0 13 1 74 2 10 +1193 16 69 131.04 972.25 54 38 0 0 13 1 77 2 13 +1194 16 70 135.2 972.25 54 40 0 0 13 1 79 2 15 +1195 16 71 139.36 972.25 58 39 0 0 14 1 78 2 14 +1196 16 72 143.52 972.25 58 37 0 0 14 1 76 2 12 +1197 16 73 147.68 972.25 58 36 0 0 14 1 75 2 11 +1198 16 74 151.84 972.25 58 38 0 0 14 1 77 2 13 +1199 16 75 156 972.25 58 40 0 0 14 1 79 2 15 +1200 17 0 -157.5 979.75 3 3 0 1 0 2 82 2 18 +1201 17 1 -153.3 979.75 3 1 0 1 0 2 80 2 16 +1202 17 2 -149.1 979.75 3 2 0 1 0 2 81 2 17 +1203 17 3 -144.9 979.75 3 4 0 1 0 2 83 2 19 +1204 17 4 -140.7 979.75 3 6 0 1 0 2 85 2 21 +1205 17 5 -136.5 979.75 7 5 0 1 1 2 84 2 20 +1206 17 6 -132.3 979.75 7 3 0 1 1 2 82 2 18 +1207 17 7 -128.1 979.75 7 1 0 1 1 2 80 2 16 +1208 17 8 -123.9 979.75 7 2 0 1 1 2 81 2 17 +1209 17 9 -119.7 979.75 7 4 0 1 1 2 83 2 19 +1210 17 10 -115.5 979.75 11 5 0 1 2 2 84 2 20 +1211 17 11 -111.3 979.75 11 3 0 1 2 2 82 2 18 +1212 17 12 -107.1 979.75 11 1 0 1 2 2 80 2 16 +1213 17 13 -102.9 979.75 11 2 0 1 2 2 81 2 17 +1214 17 14 -98.7 979.75 11 4 0 1 2 2 83 2 19 +1215 17 15 -94.5 979.75 15 5 0 1 3 2 84 2 20 +1216 17 16 -90.3 979.75 15 3 0 1 3 2 82 2 18 +1217 17 17 -86.1 979.75 15 1 0 1 3 2 80 2 16 +1218 17 18 -81.9 979.75 15 2 0 1 3 2 81 2 17 +1219 17 19 -77.7 979.75 15 4 0 1 3 2 83 2 19 +1220 17 20 -73.5 979.75 19 3 0 1 4 2 82 2 18 +1221 17 21 -69.3 979.75 19 1 0 1 4 2 80 2 16 +1222 17 22 -65.1 979.75 19 2 0 1 4 2 81 2 17 +1223 17 23 -60.9 979.75 19 4 0 1 4 2 83 2 19 +1224 17 24 -56.7 979.75 19 6 0 1 4 2 85 2 21 +1225 17 25 -52.5 979.75 23 3 0 1 5 2 82 2 18 +1226 17 26 -48.3 979.75 23 1 0 1 5 2 80 2 16 +1227 17 27 -44.1 979.75 23 2 0 1 5 2 81 2 17 +1228 17 28 -39.9 979.75 23 4 0 1 5 2 83 2 19 +1229 17 29 -35.7 979.75 23 6 0 1 5 2 85 2 21 +1230 17 30 -31.5 979.75 27 5 0 1 6 2 84 2 20 +1231 17 31 -27.3 979.75 27 3 0 1 6 2 82 2 18 +1232 17 32 -23.1 979.75 27 1 0 1 6 2 80 2 16 +1233 17 33 -18.9 979.75 27 2 0 1 6 2 81 2 17 +1234 17 34 -14.7 979.75 27 4 0 1 6 2 83 2 19 +1235 17 35 -10.5 979.75 27 6 0 1 6 2 85 2 21 +1236 17 36 -6.3 979.75 31 3 0 1 7 2 82 2 18 +1237 17 37 -2.1 979.75 31 1 0 1 7 2 80 2 16 +1238 17 38 2.1 979.75 31 2 0 1 7 2 81 2 17 +1239 17 39 6.3 979.75 31 4 0 1 7 2 83 2 19 +1240 17 40 10.5 979.75 35 5 0 1 8 2 84 2 20 +1241 17 41 14.7 979.75 35 3 0 1 8 2 82 2 18 +1242 17 42 18.9 979.75 35 1 0 1 8 2 80 2 16 +1243 17 43 23.1 979.75 35 2 0 1 8 2 81 2 17 +1244 17 44 27.3 979.75 35 4 0 1 8 2 83 2 19 +1245 17 45 31.5 979.75 35 6 0 1 8 2 85 2 21 +1246 17 46 35.7 979.75 39 5 0 1 9 2 84 2 20 +1247 17 47 39.9 979.75 39 3 0 1 9 2 82 2 18 +1248 17 48 44.1 979.75 39 1 0 1 9 2 80 2 16 +1249 17 49 48.3 979.75 39 2 0 1 9 2 81 2 17 +1250 17 50 52.5 979.75 39 4 0 1 9 2 83 2 19 +1251 17 51 56.7 979.75 43 5 0 1 10 2 84 2 20 +1252 17 52 60.9 979.75 43 3 0 1 10 2 82 2 18 +1253 17 53 65.1 979.75 43 1 0 1 10 2 80 2 16 +1254 17 54 69.3 979.75 43 2 0 1 10 2 81 2 17 +1255 17 55 73.5 979.75 43 4 0 1 10 2 83 2 19 +1256 17 56 77.7 979.75 47 3 0 1 11 2 82 2 18 +1257 17 57 81.9 979.75 47 1 0 1 11 2 80 2 16 +1258 17 58 86.1 979.75 47 2 0 1 11 2 81 2 17 +1259 17 59 90.3 979.75 47 4 0 1 11 2 83 2 19 +1260 17 60 94.5 979.75 47 6 0 1 11 2 85 2 21 +1261 17 61 98.7 979.75 51 3 0 1 12 2 82 2 18 +1262 17 62 102.9 979.75 51 1 0 1 12 2 80 2 16 +1263 17 63 107.1 979.75 51 2 0 1 12 2 81 2 17 +1264 17 64 111.3 979.75 51 4 0 1 12 2 83 2 19 +1265 17 65 115.5 979.75 51 6 0 1 12 2 85 2 21 +1266 17 66 119.7 979.75 55 3 0 1 13 2 82 2 18 +1267 17 67 123.9 979.75 55 1 0 1 13 2 80 2 16 +1268 17 68 128.1 979.75 55 2 0 1 13 2 81 2 17 +1269 17 69 132.3 979.75 55 4 0 1 13 2 83 2 19 +1270 17 70 136.5 979.75 55 6 0 1 13 2 85 2 21 +1271 17 71 140.7 979.75 59 5 0 1 14 2 84 2 20 +1272 17 72 144.9 979.75 59 3 0 1 14 2 82 2 18 +1273 17 73 149.1 979.75 59 1 0 1 14 2 80 2 16 +1274 17 74 153.3 979.75 59 2 0 1 14 2 81 2 17 +1275 17 75 157.5 979.75 59 4 0 1 14 2 83 2 19 +1276 18 0 -157.5 987.25 3 9 0 1 0 2 88 2 24 +1277 18 1 -153.3 987.25 3 7 0 1 0 2 86 2 22 +1278 18 2 -149.1 987.25 3 5 0 1 0 2 84 2 20 +1279 18 3 -144.9 987.25 3 8 0 1 0 2 87 2 23 +1280 18 4 -140.7 987.25 3 10 0 1 0 2 89 2 25 +1281 18 5 -136.5 987.25 7 9 0 1 1 2 88 2 24 +1282 18 6 -132.3 987.25 7 7 0 1 1 2 86 2 22 +1283 18 7 -128.1 987.25 7 6 0 1 1 2 85 2 21 +1284 18 8 -123.9 987.25 7 8 0 1 1 2 87 2 23 +1285 18 9 -119.7 987.25 7 10 0 1 1 2 89 2 25 +1286 18 10 -115.5 987.25 11 9 0 1 2 2 88 2 24 +1287 18 11 -111.3 987.25 11 7 0 1 2 2 86 2 22 +1288 18 12 -107.1 987.25 11 6 0 1 2 2 85 2 21 +1289 18 13 -102.9 987.25 11 8 0 1 2 2 87 2 23 +1290 18 14 -98.7 987.25 11 10 0 1 2 2 89 2 25 +1291 18 15 -94.5 987.25 15 9 0 1 3 2 88 2 24 +1292 18 16 -90.3 987.25 15 7 0 1 3 2 86 2 22 +1293 18 17 -86.1 987.25 15 6 0 1 3 2 85 2 21 +1294 18 18 -81.9 987.25 15 8 0 1 3 2 87 2 23 +1295 18 19 -77.7 987.25 15 10 0 1 3 2 89 2 25 +1296 18 20 -73.5 987.25 19 9 0 1 4 2 88 2 24 +1297 18 21 -69.3 987.25 19 7 0 1 4 2 86 2 22 +1298 18 22 -65.1 987.25 19 5 0 1 4 2 84 2 20 +1299 18 23 -60.9 987.25 19 8 0 1 4 2 87 2 23 +1300 18 24 -56.7 987.25 19 10 0 1 4 2 89 2 25 +1301 18 25 -52.5 987.25 23 9 0 1 5 2 88 2 24 +1302 18 26 -48.3 987.25 23 7 0 1 5 2 86 2 22 +1303 18 27 -44.1 987.25 23 5 0 1 5 2 84 2 20 +1304 18 28 -39.9 987.25 23 8 0 1 5 2 87 2 23 +1305 18 29 -35.7 987.25 23 10 0 1 5 2 89 2 25 +1306 18 30 -31.5 987.25 27 11 0 1 6 2 90 2 26 +1307 18 31 -27.3 987.25 27 9 0 1 6 2 88 2 24 +1308 18 32 -23.1 987.25 27 7 0 1 6 2 86 2 22 +1309 18 33 -18.9 987.25 27 8 0 1 6 2 87 2 23 +1310 18 34 -14.7 987.25 27 10 0 1 6 2 89 2 25 +1311 18 35 -10.5 987.25 27 12 0 1 6 2 91 2 27 +1312 18 36 -6.3 987.25 31 7 0 1 7 2 86 2 22 +1313 18 37 -2.1 987.25 31 5 0 1 7 2 84 2 20 +1314 18 38 2.1 987.25 31 6 0 1 7 2 85 2 21 +1315 18 39 6.3 987.25 31 8 0 1 7 2 87 2 23 +1316 18 40 10.5 987.25 35 11 0 1 8 2 90 2 26 +1317 18 41 14.7 987.25 35 9 0 1 8 2 88 2 24 +1318 18 42 18.9 987.25 35 7 0 1 8 2 86 2 22 +1319 18 43 23.1 987.25 35 8 0 1 8 2 87 2 23 +1320 18 44 27.3 987.25 35 10 0 1 8 2 89 2 25 +1321 18 45 31.5 987.25 35 12 0 1 8 2 91 2 27 +1322 18 46 35.7 987.25 39 9 0 1 9 2 88 2 24 +1323 18 47 39.9 987.25 39 7 0 1 9 2 86 2 22 +1324 18 48 44.1 987.25 39 6 0 1 9 2 85 2 21 +1325 18 49 48.3 987.25 39 8 0 1 9 2 87 2 23 +1326 18 50 52.5 987.25 39 10 0 1 9 2 89 2 25 +1327 18 51 56.7 987.25 43 9 0 1 10 2 88 2 24 +1328 18 52 60.9 987.25 43 7 0 1 10 2 86 2 22 +1329 18 53 65.1 987.25 43 6 0 1 10 2 85 2 21 +1330 18 54 69.3 987.25 43 8 0 1 10 2 87 2 23 +1331 18 55 73.5 987.25 43 10 0 1 10 2 89 2 25 +1332 18 56 77.7 987.25 47 9 0 1 11 2 88 2 24 +1333 18 57 81.9 987.25 47 7 0 1 11 2 86 2 22 +1334 18 58 86.1 987.25 47 5 0 1 11 2 84 2 20 +1335 18 59 90.3 987.25 47 8 0 1 11 2 87 2 23 +1336 18 60 94.5 987.25 47 10 0 1 11 2 89 2 25 +1337 18 61 98.7 987.25 51 9 0 1 12 2 88 2 24 +1338 18 62 102.9 987.25 51 7 0 1 12 2 86 2 22 +1339 18 63 107.1 987.25 51 5 0 1 12 2 84 2 20 +1340 18 64 111.3 987.25 51 8 0 1 12 2 87 2 23 +1341 18 65 115.5 987.25 51 10 0 1 12 2 89 2 25 +1342 18 66 119.7 987.25 55 9 0 1 13 2 88 2 24 +1343 18 67 123.9 987.25 55 7 0 1 13 2 86 2 22 +1344 18 68 128.1 987.25 55 5 0 1 13 2 84 2 20 +1345 18 69 132.3 987.25 55 8 0 1 13 2 87 2 23 +1346 18 70 136.5 987.25 55 10 0 1 13 2 89 2 25 +1347 18 71 140.7 987.25 59 9 0 1 14 2 88 2 24 +1348 18 72 144.9 987.25 59 7 0 1 14 2 86 2 22 +1349 18 73 149.1 987.25 59 6 0 1 14 2 85 2 21 +1350 18 74 153.3 987.25 59 8 0 1 14 2 87 2 23 +1351 18 75 157.5 987.25 59 10 0 1 14 2 89 2 25 +1352 19 0 -157.5 994.75 3 13 0 1 0 2 92 2 28 +1353 19 1 -153.3 994.75 3 11 0 1 0 2 90 2 26 +1354 19 2 -149.1 994.75 3 12 0 1 0 2 91 2 27 +1355 19 3 -144.9 994.75 3 14 0 1 0 2 93 2 29 +1356 19 4 -140.7 994.75 3 16 0 1 0 2 95 2 31 +1357 19 5 -136.5 994.75 7 13 0 1 1 2 92 2 28 +1358 19 6 -132.3 994.75 7 11 0 1 1 2 90 2 26 +1359 19 7 -128.1 994.75 7 12 0 1 1 2 91 2 27 +1360 19 8 -123.9 994.75 7 14 0 1 1 2 93 2 29 +1361 19 9 -119.7 994.75 7 16 0 1 1 2 95 2 31 +1362 19 10 -115.5 994.75 11 15 0 1 2 2 94 2 30 +1363 19 11 -111.3 994.75 11 13 0 1 2 2 92 2 28 +1364 19 12 -107.1 994.75 11 11 0 1 2 2 90 2 26 +1365 19 13 -102.9 994.75 11 12 0 1 2 2 91 2 27 +1366 19 14 -98.7 994.75 11 14 0 1 2 2 93 2 29 +1367 19 15 -94.5 994.75 15 15 0 1 3 2 94 2 30 +1368 19 16 -90.3 994.75 15 13 0 1 3 2 92 2 28 +1369 19 17 -86.1 994.75 15 11 0 1 3 2 90 2 26 +1370 19 18 -81.9 994.75 15 12 0 1 3 2 91 2 27 +1371 19 19 -77.7 994.75 15 14 0 1 3 2 93 2 29 +1372 19 20 -73.5 994.75 19 13 0 1 4 2 92 2 28 +1373 19 21 -69.3 994.75 19 11 0 1 4 2 90 2 26 +1374 19 22 -65.1 994.75 19 12 0 1 4 2 91 2 27 +1375 19 23 -60.9 994.75 19 14 0 1 4 2 93 2 29 +1376 19 24 -56.7 994.75 19 16 0 1 4 2 95 2 31 +1377 19 25 -52.5 994.75 23 13 0 1 5 2 92 2 28 +1378 19 26 -48.3 994.75 23 11 0 1 5 2 90 2 26 +1379 19 27 -44.1 994.75 23 12 0 1 5 2 91 2 27 +1380 19 28 -39.9 994.75 23 14 0 1 5 2 93 2 29 +1381 19 29 -35.7 994.75 23 16 0 1 5 2 95 2 31 +1382 19 30 -31.5 994.75 27 17 0 1 6 2 96 3 0 +1383 19 31 -27.3 994.75 27 15 0 1 6 2 94 2 30 +1384 19 32 -23.1 994.75 27 13 0 1 6 2 92 2 28 +1385 19 33 -18.9 994.75 27 14 0 1 6 2 93 2 29 +1386 19 34 -14.7 994.75 27 16 0 1 6 2 95 2 31 +1387 19 35 -10.5 994.75 27 18 0 1 6 2 97 3 1 +1388 19 36 -6.3 994.75 31 11 0 1 7 2 90 2 26 +1389 19 37 -2.1 994.75 31 9 0 1 7 2 88 2 24 +1390 19 38 2.1 994.75 31 10 0 1 7 2 89 2 25 +1391 19 39 6.3 994.75 31 12 0 1 7 2 91 2 27 +1392 19 40 10.5 994.75 35 17 0 1 8 2 96 3 0 +1393 19 41 14.7 994.75 35 15 0 1 8 2 94 2 30 +1394 19 42 18.9 994.75 35 13 0 1 8 2 92 2 28 +1395 19 43 23.1 994.75 35 14 0 1 8 2 93 2 29 +1396 19 44 27.3 994.75 35 16 0 1 8 2 95 2 31 +1397 19 45 31.5 994.75 35 18 0 1 8 2 97 3 1 +1398 19 46 35.7 994.75 39 15 0 1 9 2 94 2 30 +1399 19 47 39.9 994.75 39 13 0 1 9 2 92 2 28 +1400 19 48 44.1 994.75 39 11 0 1 9 2 90 2 26 +1401 19 49 48.3 994.75 39 12 0 1 9 2 91 2 27 +1402 19 50 52.5 994.75 39 14 0 1 9 2 93 2 29 +1403 19 51 56.7 994.75 43 15 0 1 10 2 94 2 30 +1404 19 52 60.9 994.75 43 13 0 1 10 2 92 2 28 +1405 19 53 65.1 994.75 43 11 0 1 10 2 90 2 26 +1406 19 54 69.3 994.75 43 12 0 1 10 2 91 2 27 +1407 19 55 73.5 994.75 43 14 0 1 10 2 93 2 29 +1408 19 56 77.7 994.75 47 13 0 1 11 2 92 2 28 +1409 19 57 81.9 994.75 47 11 0 1 11 2 90 2 26 +1410 19 58 86.1 994.75 47 12 0 1 11 2 91 2 27 +1411 19 59 90.3 994.75 47 14 0 1 11 2 93 2 29 +1412 19 60 94.5 994.75 47 16 0 1 11 2 95 2 31 +1413 19 61 98.7 994.75 51 13 0 1 12 2 92 2 28 +1414 19 62 102.9 994.75 51 11 0 1 12 2 90 2 26 +1415 19 63 107.1 994.75 51 12 0 1 12 2 91 2 27 +1416 19 64 111.3 994.75 51 14 0 1 12 2 93 2 29 +1417 19 65 115.5 994.75 51 16 0 1 12 2 95 2 31 +1418 19 66 119.7 994.75 55 15 0 1 13 2 94 2 30 +1419 19 67 123.9 994.75 55 13 0 1 13 2 92 2 28 +1420 19 68 128.1 994.75 55 11 0 1 13 2 90 2 26 +1421 19 69 132.3 994.75 55 12 0 1 13 2 91 2 27 +1422 19 70 136.5 994.75 55 14 0 1 13 2 93 2 29 +1423 19 71 140.7 994.75 59 15 0 1 14 2 94 2 30 +1424 19 72 144.9 994.75 59 13 0 1 14 2 92 2 28 +1425 19 73 149.1 994.75 59 11 0 1 14 2 90 2 26 +1426 19 74 153.3 994.75 59 12 0 1 14 2 91 2 27 +1427 19 75 157.5 994.75 59 14 0 1 14 2 93 2 29 +1428 20 0 -161.7 1002.25 3 19 0 1 0 2 98 3 2 +1429 20 1 -157.5 1002.25 3 17 0 1 0 2 96 3 0 +1430 20 2 -153.3 1002.25 3 15 0 1 0 2 94 2 30 +1431 20 3 -149.1 1002.25 3 18 0 1 0 2 97 3 1 +1432 20 4 -144.9 1002.25 3 20 0 1 0 2 99 3 3 +1433 20 5 -140.7 1002.25 7 19 0 1 1 2 98 3 2 +1434 20 6 -136.5 1002.25 7 17 0 1 1 2 96 3 0 +1435 20 7 -132.3 1002.25 7 15 0 1 1 2 94 2 30 +1436 20 8 -128.1 1002.25 7 18 0 1 1 2 97 3 1 +1437 20 9 -123.9 1002.25 7 20 0 1 1 2 99 3 3 +1438 20 10 -119.7 1002.25 7 22 0 1 1 2 101 3 5 +1439 20 11 -115.5 1002.25 11 19 0 1 2 2 98 3 2 +1440 20 12 -111.3 1002.25 11 17 0 1 2 2 96 3 0 +1441 20 13 -107.1 1002.25 11 16 0 1 2 2 95 2 31 +1442 20 14 -102.9 1002.25 11 18 0 1 2 2 97 3 1 +1443 20 15 -98.7 1002.25 11 20 0 1 2 2 99 3 3 +1444 20 16 -94.5 1002.25 15 19 0 1 3 2 98 3 2 +1445 20 17 -90.3 1002.25 15 17 0 1 3 2 96 3 0 +1446 20 18 -86.1 1002.25 15 16 0 1 3 2 95 2 31 +1447 20 19 -81.9 1002.25 15 18 0 1 3 2 97 3 1 +1448 20 20 -77.7 1002.25 15 20 0 1 3 2 99 3 3 +1449 20 21 -73.5 1002.25 19 19 0 1 4 2 98 3 2 +1450 20 22 -69.3 1002.25 19 17 0 1 4 2 96 3 0 +1451 20 23 -65.1 1002.25 19 15 0 1 4 2 94 2 30 +1452 20 24 -60.9 1002.25 19 18 0 1 4 2 97 3 1 +1453 20 25 -56.7 1002.25 19 20 0 1 4 2 99 3 3 +1454 20 26 -52.5 1002.25 23 19 0 1 5 2 98 3 2 +1455 20 27 -48.3 1002.25 23 17 0 1 5 2 96 3 0 +1456 20 28 -44.1 1002.25 23 15 0 1 5 2 94 2 30 +1457 20 29 -39.9 1002.25 23 18 0 1 5 2 97 3 1 +1458 20 30 -35.7 1002.25 23 20 0 1 5 2 99 3 3 +1459 20 31 -31.5 1002.25 27 23 0 1 6 2 102 3 6 +1460 20 32 -27.3 1002.25 27 21 0 1 6 2 100 3 4 +1461 20 33 -23.1 1002.25 27 19 0 1 6 2 98 3 2 +1462 20 34 -18.9 1002.25 27 20 0 1 6 2 99 3 3 +1463 20 35 -14.7 1002.25 27 22 0 1 6 2 101 3 5 +1464 20 36 -10.5 1002.25 27 24 0 1 6 2 103 3 7 +1465 20 37 -6.3 1002.25 31 15 0 1 7 2 94 2 30 +1466 20 38 -2.1 1002.25 31 13 0 1 7 2 92 2 28 +1467 20 39 2.1 1002.25 31 14 0 1 7 2 93 2 29 +1468 20 40 6.3 1002.25 31 16 0 1 7 2 95 2 31 +1469 20 41 10.5 1002.25 35 23 0 1 8 2 102 3 6 +1470 20 42 14.7 1002.25 35 21 0 1 8 2 100 3 4 +1471 20 43 18.9 1002.25 35 19 0 1 8 2 98 3 2 +1472 20 44 23.1 1002.25 35 20 0 1 8 2 99 3 3 +1473 20 45 27.3 1002.25 35 22 0 1 8 2 101 3 5 +1474 20 46 31.5 1002.25 35 24 0 1 8 2 103 3 7 +1475 20 47 35.7 1002.25 39 19 0 1 9 2 98 3 2 +1476 20 48 39.9 1002.25 39 17 0 1 9 2 96 3 0 +1477 20 49 44.1 1002.25 39 16 0 1 9 2 95 2 31 +1478 20 50 48.3 1002.25 39 18 0 1 9 2 97 3 1 +1479 20 51 52.5 1002.25 39 20 0 1 9 2 99 3 3 +1480 20 52 56.7 1002.25 43 19 0 1 10 2 98 3 2 +1481 20 53 60.9 1002.25 43 17 0 1 10 2 96 3 0 +1482 20 54 65.1 1002.25 43 16 0 1 10 2 95 2 31 +1483 20 55 69.3 1002.25 43 18 0 1 10 2 97 3 1 +1484 20 56 73.5 1002.25 43 20 0 1 10 2 99 3 3 +1485 20 57 77.7 1002.25 47 19 0 1 11 2 98 3 2 +1486 20 58 81.9 1002.25 47 17 0 1 11 2 96 3 0 +1487 20 59 86.1 1002.25 47 15 0 1 11 2 94 2 30 +1488 20 60 90.3 1002.25 47 18 0 1 11 2 97 3 1 +1489 20 61 94.5 1002.25 47 20 0 1 11 2 99 3 3 +1490 20 62 98.7 1002.25 51 19 0 1 12 2 98 3 2 +1491 20 63 102.9 1002.25 51 17 0 1 12 2 96 3 0 +1492 20 64 107.1 1002.25 51 15 0 1 12 2 94 2 30 +1493 20 65 111.3 1002.25 51 18 0 1 12 2 97 3 1 +1494 20 66 115.5 1002.25 51 20 0 1 12 2 99 3 3 +1495 20 67 119.7 1002.25 55 21 0 1 13 2 100 3 4 +1496 20 68 123.9 1002.25 55 19 0 1 13 2 98 3 2 +1497 20 69 128.1 1002.25 55 17 0 1 13 2 96 3 0 +1498 20 70 132.3 1002.25 55 16 0 1 13 2 95 2 31 +1499 20 71 136.5 1002.25 55 18 0 1 13 2 97 3 1 +1500 20 72 140.7 1002.25 55 20 0 1 13 2 99 3 3 +1501 20 73 144.9 1002.25 59 19 0 1 14 2 98 3 2 +1502 20 74 149.1 1002.25 59 17 0 1 14 2 96 3 0 +1503 20 75 153.3 1002.25 59 16 0 1 14 2 95 2 31 +1504 20 76 157.5 1002.25 59 18 0 1 14 2 97 3 1 +1505 20 77 161.7 1002.25 59 20 0 1 14 2 99 3 3 +1506 21 0 -161.7 1009.75 3 25 0 1 0 2 104 3 8 +1507 21 1 -157.5 1009.75 3 23 0 1 0 2 102 3 6 +1508 21 2 -153.3 1009.75 3 21 0 1 0 2 100 3 4 +1509 21 3 -149.1 1009.75 3 22 0 1 0 2 101 3 5 +1510 21 4 -144.9 1009.75 3 24 0 1 0 2 103 3 7 +1511 21 5 -140.7 1009.75 7 25 0 1 1 2 104 3 8 +1512 21 6 -136.5 1009.75 7 23 0 1 1 2 102 3 6 +1513 21 7 -132.3 1009.75 7 21 0 1 1 2 100 3 4 +1514 21 8 -128.1 1009.75 7 24 0 1 1 2 103 3 7 +1515 21 9 -123.9 1009.75 7 26 0 1 1 2 105 3 9 +1516 21 10 -119.7 1009.75 11 25 0 1 2 2 104 3 8 +1517 21 11 -115.5 1009.75 11 23 0 1 2 2 102 3 6 +1518 21 12 -111.3 1009.75 11 21 0 1 2 2 100 3 4 +1519 21 13 -107.1 1009.75 11 22 0 1 2 2 101 3 5 +1520 21 14 -102.9 1009.75 11 24 0 1 2 2 103 3 7 +1521 21 15 -98.7 1009.75 11 26 0 1 2 2 105 3 9 +1522 21 16 -94.5 1009.75 15 25 0 1 3 2 104 3 8 +1523 21 17 -90.3 1009.75 15 23 0 1 3 2 102 3 6 +1524 21 18 -86.1 1009.75 15 21 0 1 3 2 100 3 4 +1525 21 19 -81.9 1009.75 15 22 0 1 3 2 101 3 5 +1526 21 20 -77.7 1009.75 15 24 0 1 3 2 103 3 7 +1527 21 21 -73.5 1009.75 19 23 0 1 4 2 102 3 6 +1528 21 22 -69.3 1009.75 19 21 0 1 4 2 100 3 4 +1529 21 23 -65.1 1009.75 19 22 0 1 4 2 101 3 5 +1530 21 24 -60.9 1009.75 19 24 0 1 4 2 103 3 7 +1531 21 25 -56.7 1009.75 19 26 0 1 4 2 105 3 9 +1532 21 26 -52.5 1009.75 23 23 0 1 5 2 102 3 6 +1533 21 27 -48.3 1009.75 23 21 0 1 5 2 100 3 4 +1534 21 28 -44.1 1009.75 23 22 0 1 5 2 101 3 5 +1535 21 29 -39.9 1009.75 23 24 0 1 5 2 103 3 7 +1536 21 30 -35.7 1009.75 23 26 0 1 5 2 105 3 9 +1537 21 31 -31.5 1009.75 27 29 0 1 6 2 108 3 12 +1538 21 32 -27.3 1009.75 27 27 0 1 6 2 106 3 10 +1539 21 33 -23.1 1009.75 27 25 0 1 6 2 104 3 8 +1540 21 34 -18.9 1009.75 27 26 0 1 6 2 105 3 9 +1541 21 35 -14.7 1009.75 27 28 0 1 6 2 107 3 11 +1542 21 36 -10.5 1009.75 27 30 0 1 6 2 109 3 13 +1543 21 37 -6.3 1009.75 31 19 0 1 7 2 98 3 2 +1544 21 38 -2.1 1009.75 31 17 0 1 7 2 96 3 0 +1545 21 39 2.1 1009.75 31 18 0 1 7 2 97 3 1 +1546 21 40 6.3 1009.75 31 20 0 1 7 2 99 3 3 +1547 21 41 10.5 1009.75 35 29 0 1 8 2 108 3 12 +1548 21 42 14.7 1009.75 35 27 0 1 8 2 106 3 10 +1549 21 43 18.9 1009.75 35 25 0 1 8 2 104 3 8 +1550 21 44 23.1 1009.75 35 26 0 1 8 2 105 3 9 +1551 21 45 27.3 1009.75 35 28 0 1 8 2 107 3 11 +1552 21 46 31.5 1009.75 35 30 0 1 8 2 109 3 13 +1553 21 47 35.7 1009.75 39 25 0 1 9 2 104 3 8 +1554 21 48 39.9 1009.75 39 23 0 1 9 2 102 3 6 +1555 21 49 44.1 1009.75 39 21 0 1 9 2 100 3 4 +1556 21 50 48.3 1009.75 39 22 0 1 9 2 101 3 5 +1557 21 51 52.5 1009.75 39 24 0 1 9 2 103 3 7 +1558 21 52 56.7 1009.75 43 25 0 1 10 2 104 3 8 +1559 21 53 60.9 1009.75 43 23 0 1 10 2 102 3 6 +1560 21 54 65.1 1009.75 43 21 0 1 10 2 100 3 4 +1561 21 55 69.3 1009.75 43 22 0 1 10 2 101 3 5 +1562 21 56 73.5 1009.75 43 24 0 1 10 2 103 3 7 +1563 21 57 77.7 1009.75 47 23 0 1 11 2 102 3 6 +1564 21 58 81.9 1009.75 47 21 0 1 11 2 100 3 4 +1565 21 59 86.1 1009.75 47 22 0 1 11 2 101 3 5 +1566 21 60 90.3 1009.75 47 24 0 1 11 2 103 3 7 +1567 21 61 94.5 1009.75 47 26 0 1 11 2 105 3 9 +1568 21 62 98.7 1009.75 51 25 0 1 12 2 104 3 8 +1569 21 63 102.9 1009.75 51 23 0 1 12 2 102 3 6 +1570 21 64 107.1 1009.75 51 21 0 1 12 2 100 3 4 +1571 21 65 111.3 1009.75 51 22 0 1 12 2 101 3 5 +1572 21 66 115.5 1009.75 51 24 0 1 12 2 103 3 7 +1573 21 67 119.7 1009.75 51 26 0 1 12 2 105 3 9 +1574 21 68 123.9 1009.75 55 25 0 1 13 2 104 3 8 +1575 21 69 128.1 1009.75 55 23 0 1 13 2 102 3 6 +1576 21 70 132.3 1009.75 55 22 0 1 13 2 101 3 5 +1577 21 71 136.5 1009.75 55 24 0 1 13 2 103 3 7 +1578 21 72 140.7 1009.75 55 26 0 1 13 2 105 3 9 +1579 21 73 144.9 1009.75 59 23 0 1 14 2 102 3 6 +1580 21 74 149.1 1009.75 59 21 0 1 14 2 100 3 4 +1581 21 75 153.3 1009.75 59 22 0 1 14 2 101 3 5 +1582 21 76 157.5 1009.75 59 24 0 1 14 2 103 3 7 +1583 21 77 161.7 1009.75 59 26 0 1 14 2 105 3 9 +1584 22 0 -161.7 1017.25 3 29 0 1 0 2 108 3 12 +1585 22 1 -157.5 1017.25 3 27 0 1 0 2 106 3 10 +1586 22 2 -153.3 1017.25 3 26 0 1 0 2 105 3 9 +1587 22 3 -149.1 1017.25 3 28 0 1 0 2 107 3 11 +1588 22 4 -144.9 1017.25 3 30 0 1 0 2 109 3 13 +1589 22 5 -140.7 1017.25 7 29 0 1 1 2 108 3 12 +1590 22 6 -136.5 1017.25 7 27 0 1 1 2 106 3 10 +1591 22 7 -132.3 1017.25 7 28 0 1 1 2 107 3 11 +1592 22 8 -128.1 1017.25 7 30 0 1 1 2 109 3 13 +1593 22 9 -123.9 1017.25 7 32 0 1 1 2 111 3 15 +1594 22 10 -119.7 1017.25 11 31 0 1 2 2 110 3 14 +1595 22 11 -115.5 1017.25 11 29 0 1 2 2 108 3 12 +1596 22 12 -111.3 1017.25 11 27 0 1 2 2 106 3 10 +1597 22 13 -107.1 1017.25 11 28 0 1 2 2 107 3 11 +1598 22 14 -102.9 1017.25 11 30 0 1 2 2 109 3 13 +1599 22 15 -98.7 1017.25 15 31 0 1 3 2 110 3 14 +1600 22 16 -94.5 1017.25 15 29 0 1 3 2 108 3 12 +1601 22 17 -90.3 1017.25 15 27 0 1 3 2 106 3 10 +1602 22 18 -86.1 1017.25 15 26 0 1 3 2 105 3 9 +1603 22 19 -81.9 1017.25 15 28 0 1 3 2 107 3 11 +1604 22 20 -77.7 1017.25 15 30 0 1 3 2 109 3 13 +1605 22 21 -73.5 1017.25 19 29 0 1 4 2 108 3 12 +1606 22 22 -69.3 1017.25 19 27 0 1 4 2 106 3 10 +1607 22 23 -65.1 1017.25 19 25 0 1 4 2 104 3 8 +1608 22 24 -60.9 1017.25 19 28 0 1 4 2 107 3 11 +1609 22 25 -56.7 1017.25 19 30 0 1 4 2 109 3 13 +1610 22 26 -52.5 1017.25 23 29 0 1 5 2 108 3 12 +1611 22 27 -48.3 1017.25 23 27 0 1 5 2 106 3 10 +1612 22 28 -44.1 1017.25 23 25 0 1 5 2 104 3 8 +1613 22 29 -39.9 1017.25 23 28 0 1 5 2 107 3 11 +1614 22 30 -35.7 1017.25 23 30 0 1 5 2 109 3 13 +1615 22 31 -31.5 1017.25 27 35 0 1 6 2 114 3 18 +1616 22 32 -27.3 1017.25 27 33 0 1 6 2 112 3 16 +1617 22 33 -23.1 1017.25 27 31 0 1 6 2 110 3 14 +1618 22 34 -18.9 1017.25 27 32 0 1 6 2 111 3 15 +1619 22 35 -14.7 1017.25 27 34 0 1 6 2 113 3 17 +1620 22 36 -10.5 1017.25 31 25 0 1 7 2 104 3 8 +1621 22 37 -6.3 1017.25 31 23 0 1 7 2 102 3 6 +1622 22 38 -2.1 1017.25 31 21 0 1 7 2 100 3 4 +1623 22 39 2.1 1017.25 31 22 0 1 7 2 101 3 5 +1624 22 40 6.3 1017.25 31 24 0 1 7 2 103 3 7 +1625 22 41 10.5 1017.25 31 26 0 1 7 2 105 3 9 +1626 22 42 14.7 1017.25 35 33 0 1 8 2 112 3 16 +1627 22 43 18.9 1017.25 35 31 0 1 8 2 110 3 14 +1628 22 44 23.1 1017.25 35 32 0 1 8 2 111 3 15 +1629 22 45 27.3 1017.25 35 34 0 1 8 2 113 3 17 +1630 22 46 31.5 1017.25 35 36 0 1 8 2 115 3 19 +1631 22 47 35.7 1017.25 39 29 0 1 9 2 108 3 12 +1632 22 48 39.9 1017.25 39 27 0 1 9 2 106 3 10 +1633 22 49 44.1 1017.25 39 26 0 1 9 2 105 3 9 +1634 22 50 48.3 1017.25 39 28 0 1 9 2 107 3 11 +1635 22 51 52.5 1017.25 39 30 0 1 9 2 109 3 13 +1636 22 52 56.7 1017.25 43 29 0 1 10 2 108 3 12 +1637 22 53 60.9 1017.25 43 27 0 1 10 2 106 3 10 +1638 22 54 65.1 1017.25 43 26 0 1 10 2 105 3 9 +1639 22 55 69.3 1017.25 43 28 0 1 10 2 107 3 11 +1640 22 56 73.5 1017.25 43 30 0 1 10 2 109 3 13 +1641 22 57 77.7 1017.25 47 29 0 1 11 2 108 3 12 +1642 22 58 81.9 1017.25 47 27 0 1 11 2 106 3 10 +1643 22 59 86.1 1017.25 47 25 0 1 11 2 104 3 8 +1644 22 60 90.3 1017.25 47 28 0 1 11 2 107 3 11 +1645 22 61 94.5 1017.25 47 30 0 1 11 2 109 3 13 +1646 22 62 98.7 1017.25 47 32 0 1 11 2 111 3 15 +1647 22 63 102.9 1017.25 51 29 0 1 12 2 108 3 12 +1648 22 64 107.1 1017.25 51 27 0 1 12 2 106 3 10 +1649 22 65 111.3 1017.25 51 28 0 1 12 2 107 3 11 +1650 22 66 115.5 1017.25 51 30 0 1 12 2 109 3 13 +1651 22 67 119.7 1017.25 51 32 0 1 12 2 111 3 15 +1652 22 68 123.9 1017.25 55 31 0 1 13 2 110 3 14 +1653 22 69 128.1 1017.25 55 29 0 1 13 2 108 3 12 +1654 22 70 132.3 1017.25 55 27 0 1 13 2 106 3 10 +1655 22 71 136.5 1017.25 55 28 0 1 13 2 107 3 11 +1656 22 72 140.7 1017.25 55 30 0 1 13 2 109 3 13 +1657 22 73 144.9 1017.25 59 29 0 1 14 2 108 3 12 +1658 22 74 149.1 1017.25 59 27 0 1 14 2 106 3 10 +1659 22 75 153.3 1017.25 59 25 0 1 14 2 104 3 8 +1660 22 76 157.5 1017.25 59 28 0 1 14 2 107 3 11 +1661 22 77 161.7 1017.25 59 30 0 1 14 2 109 3 13 +1662 23 0 -165.9 1024.75 3 35 0 1 0 2 114 3 18 +1663 23 1 -161.7 1024.75 3 33 0 1 0 2 112 3 16 +1664 23 2 -157.5 1024.75 3 31 0 1 0 2 110 3 14 +1665 23 3 -153.3 1024.75 3 32 0 1 0 2 111 3 15 +1666 23 4 -149.1 1024.75 3 34 0 1 0 2 113 3 17 +1667 23 5 -144.9 1024.75 3 36 0 1 0 2 115 3 19 +1668 23 6 -140.7 1024.75 7 35 0 1 1 2 114 3 18 +1669 23 7 -136.5 1024.75 7 33 0 1 1 2 112 3 16 +1670 23 8 -132.3 1024.75 7 31 0 1 1 2 110 3 14 +1671 23 9 -128.1 1024.75 7 34 0 1 1 2 113 3 17 +1672 23 10 -123.9 1024.75 7 36 0 1 1 2 115 3 19 +1673 23 11 -119.7 1024.75 11 35 0 1 2 2 114 3 18 +1674 23 12 -115.5 1024.75 11 33 0 1 2 2 112 3 16 +1675 23 13 -111.3 1024.75 11 32 0 1 2 2 111 3 15 +1676 23 14 -107.1 1024.75 11 34 0 1 2 2 113 3 17 +1677 23 15 -102.9 1024.75 11 36 0 1 2 2 115 3 19 +1678 23 16 -98.7 1024.75 15 37 0 1 3 2 116 3 20 +1679 23 17 -94.5 1024.75 15 35 0 1 3 2 114 3 18 +1680 23 18 -90.3 1024.75 15 33 0 1 3 2 112 3 16 +1681 23 19 -86.1 1024.75 15 32 0 1 3 2 111 3 15 +1682 23 20 -81.9 1024.75 15 34 0 1 3 2 113 3 17 +1683 23 21 -77.7 1024.75 15 36 0 1 3 2 115 3 19 +1684 23 22 -73.5 1024.75 19 33 0 1 4 2 112 3 16 +1685 23 23 -69.3 1024.75 19 31 0 1 4 2 110 3 14 +1686 23 24 -65.1 1024.75 19 32 0 1 4 2 111 3 15 +1687 23 25 -60.9 1024.75 19 34 0 1 4 2 113 3 17 +1688 23 26 -56.7 1024.75 19 36 0 1 4 2 115 3 19 +1689 23 27 -52.5 1024.75 23 33 0 1 5 2 112 3 16 +1690 23 28 -48.3 1024.75 23 31 0 1 5 2 110 3 14 +1691 23 29 -44.1 1024.75 23 32 0 1 5 2 111 3 15 +1692 23 30 -39.9 1024.75 23 34 0 1 5 2 113 3 17 +1693 23 31 -35.7 1024.75 23 36 0 1 5 2 115 3 19 +1694 23 32 -31.5 1024.75 27 39 0 1 6 2 118 3 22 +1695 23 33 -27.3 1024.75 27 37 0 1 6 2 116 3 20 +1696 23 34 -23.1 1024.75 27 36 0 1 6 2 115 3 19 +1697 23 35 -18.9 1024.75 27 38 0 1 6 2 117 3 21 +1698 23 36 -14.7 1024.75 27 40 0 1 6 2 119 3 23 +1699 23 37 -10.5 1024.75 31 31 0 1 7 2 110 3 14 +1700 23 38 -6.3 1024.75 31 29 0 1 7 2 108 3 12 +1701 23 39 -2.1 1024.75 31 27 0 1 7 2 106 3 10 +1702 23 40 2.1 1024.75 31 28 0 1 7 2 107 3 11 +1703 23 41 6.3 1024.75 31 30 0 1 7 2 109 3 13 +1704 23 42 10.5 1024.75 31 32 0 1 7 2 111 3 15 +1705 23 43 14.7 1024.75 35 39 0 1 8 2 118 3 22 +1706 23 44 18.9 1024.75 35 37 0 1 8 2 116 3 20 +1707 23 45 23.1 1024.75 35 35 0 1 8 2 114 3 18 +1708 23 46 27.3 1024.75 35 38 0 1 8 2 117 3 21 +1709 23 47 31.5 1024.75 35 40 0 1 8 2 119 3 23 +1710 23 48 35.7 1024.75 39 35 0 1 9 2 114 3 18 +1711 23 49 39.9 1024.75 39 33 0 1 9 2 112 3 16 +1712 23 50 44.1 1024.75 39 31 0 1 9 2 110 3 14 +1713 23 51 48.3 1024.75 39 32 0 1 9 2 111 3 15 +1714 23 52 52.5 1024.75 39 34 0 1 9 2 113 3 17 +1715 23 53 56.7 1024.75 43 35 0 1 10 2 114 3 18 +1716 23 54 60.9 1024.75 43 33 0 1 10 2 112 3 16 +1717 23 55 65.1 1024.75 43 31 0 1 10 2 110 3 14 +1718 23 56 69.3 1024.75 43 32 0 1 10 2 111 3 15 +1719 23 57 73.5 1024.75 43 34 0 1 10 2 113 3 17 +1720 23 58 77.7 1024.75 47 35 0 1 11 2 114 3 18 +1721 23 59 81.9 1024.75 47 33 0 1 11 2 112 3 16 +1722 23 60 86.1 1024.75 47 31 0 1 11 2 110 3 14 +1723 23 61 90.3 1024.75 47 34 0 1 11 2 113 3 17 +1724 23 62 94.5 1024.75 47 36 0 1 11 2 115 3 19 +1725 23 63 98.7 1024.75 47 38 0 1 11 2 117 3 21 +1726 23 64 102.9 1024.75 51 35 0 1 12 2 114 3 18 +1727 23 65 107.1 1024.75 51 33 0 1 12 2 112 3 16 +1728 23 66 111.3 1024.75 51 31 0 1 12 2 110 3 14 +1729 23 67 115.5 1024.75 51 34 0 1 12 2 113 3 17 +1730 23 68 119.7 1024.75 51 36 0 1 12 2 115 3 19 +1731 23 69 123.9 1024.75 55 35 0 1 13 2 114 3 18 +1732 23 70 128.1 1024.75 55 33 0 1 13 2 112 3 16 +1733 23 71 132.3 1024.75 55 32 0 1 13 2 111 3 15 +1734 23 72 136.5 1024.75 55 34 0 1 13 2 113 3 17 +1735 23 73 140.7 1024.75 55 36 0 1 13 2 115 3 19 +1736 23 74 144.9 1024.75 59 35 0 1 14 2 114 3 18 +1737 23 75 149.1 1024.75 59 33 0 1 14 2 112 3 16 +1738 23 76 153.3 1024.75 59 31 0 1 14 2 110 3 14 +1739 23 77 157.5 1024.75 59 32 0 1 14 2 111 3 15 +1740 23 78 161.7 1024.75 59 34 0 1 14 2 113 3 17 +1741 23 79 165.9 1024.75 59 36 0 1 14 2 115 3 19 +1742 24 0 -165.9 1032.25 3 39 0 1 0 2 118 3 22 +1743 24 1 -161.7 1032.25 3 37 0 1 0 2 116 3 20 +1744 24 2 -157.5 1032.25 3 38 0 1 0 2 117 3 21 +1745 24 3 -153.3 1032.25 3 40 0 1 0 2 119 3 23 +1746 24 4 -149.1 1032.25 4 2 0 1 0 3 121 3 25 +1747 24 5 -144.9 1032.25 8 3 0 1 1 3 122 3 26 +1748 24 6 -140.7 1032.25 8 1 0 1 1 3 120 3 24 +1749 24 7 -136.5 1032.25 7 39 0 1 1 2 118 3 22 +1750 24 8 -132.3 1032.25 7 37 0 1 1 2 116 3 20 +1751 24 9 -128.1 1032.25 7 38 0 1 1 2 117 3 21 +1752 24 10 -123.9 1032.25 7 40 0 1 1 2 119 3 23 +1753 24 11 -119.7 1032.25 11 39 0 1 2 2 118 3 22 +1754 24 12 -115.5 1032.25 11 37 0 1 2 2 116 3 20 +1755 24 13 -111.3 1032.25 11 38 0 1 2 2 117 3 21 +1756 24 14 -107.1 1032.25 11 40 0 1 2 2 119 3 23 +1757 24 15 -102.9 1032.25 12 2 0 1 2 3 121 3 25 +1758 24 16 -98.7 1032.25 16 3 0 1 3 3 122 3 26 +1759 24 17 -94.5 1032.25 16 1 0 1 3 3 120 3 24 +1760 24 18 -90.3 1032.25 15 39 0 1 3 2 118 3 22 +1761 24 19 -86.1 1032.25 15 38 0 1 3 2 117 3 21 +1762 24 20 -81.9 1032.25 15 40 0 1 3 2 119 3 23 +1763 24 21 -77.7 1032.25 19 39 0 1 4 2 118 3 22 +1764 24 22 -73.5 1032.25 19 37 0 1 4 2 116 3 20 +1765 24 23 -69.3 1032.25 19 35 0 1 4 2 114 3 18 +1766 24 24 -65.1 1032.25 19 38 0 1 4 2 117 3 21 +1767 24 25 -60.9 1032.25 19 40 0 1 4 2 119 3 23 +1768 24 26 -56.7 1032.25 20 2 0 1 4 3 121 3 25 +1769 24 27 -52.5 1032.25 23 39 0 1 5 2 118 3 22 +1770 24 28 -48.3 1032.25 23 37 0 1 5 2 116 3 20 +1771 24 29 -44.1 1032.25 23 35 0 1 5 2 114 3 18 +1772 24 30 -39.9 1032.25 23 38 0 1 5 2 117 3 21 +1773 24 31 -35.7 1032.25 23 40 0 1 5 2 119 3 23 +1774 24 32 -31.5 1032.25 28 3 0 1 6 3 122 3 26 +1775 24 33 -27.3 1032.25 28 1 0 1 6 3 120 3 24 +1776 24 34 -23.1 1032.25 28 2 0 1 6 3 121 3 25 +1777 24 35 -18.9 1032.25 28 4 0 1 6 3 123 3 27 +1778 24 36 -14.7 1032.25 28 6 0 1 6 3 125 3 29 +1779 24 37 -10.5 1032.25 31 37 0 1 7 2 116 3 20 +1780 24 38 -6.3 1032.25 31 35 0 1 7 2 114 3 18 +1781 24 39 -2.1 1032.25 31 33 0 1 7 2 112 3 16 +1782 24 40 2.1 1032.25 31 34 0 1 7 2 113 3 17 +1783 24 41 6.3 1032.25 31 36 0 1 7 2 115 3 19 +1784 24 42 10.5 1032.25 31 38 0 1 7 2 117 3 21 +1785 24 43 14.7 1032.25 36 5 0 1 8 3 124 3 28 +1786 24 44 18.9 1032.25 36 3 0 1 8 3 122 3 26 +1787 24 45 23.1 1032.25 36 1 0 1 8 3 120 3 24 +1788 24 46 27.3 1032.25 36 2 0 1 8 3 121 3 25 +1789 24 47 31.5 1032.25 36 4 0 1 8 3 123 3 27 +1790 24 48 35.7 1032.25 39 39 0 1 9 2 118 3 22 +1791 24 49 39.9 1032.25 39 37 0 1 9 2 116 3 20 +1792 24 50 44.1 1032.25 39 36 0 1 9 2 115 3 19 +1793 24 51 48.3 1032.25 39 38 0 1 9 2 117 3 21 +1794 24 52 52.5 1032.25 39 40 0 1 9 2 119 3 23 +1795 24 53 56.7 1032.25 44 1 0 1 10 3 120 3 24 +1796 24 54 60.9 1032.25 43 39 0 1 10 2 118 3 22 +1797 24 55 65.1 1032.25 43 37 0 1 10 2 116 3 20 +1798 24 56 69.3 1032.25 43 36 0 1 10 2 115 3 19 +1799 24 57 73.5 1032.25 43 38 0 1 10 2 117 3 21 +1800 24 58 77.7 1032.25 43 40 0 1 10 2 119 3 23 +1801 24 59 81.9 1032.25 47 39 0 1 11 2 118 3 22 +1802 24 60 86.1 1032.25 47 37 0 1 11 2 116 3 20 +1803 24 61 90.3 1032.25 47 40 0 1 11 2 119 3 23 +1804 24 62 94.5 1032.25 48 2 0 1 11 3 121 3 25 +1805 24 63 98.7 1032.25 48 4 0 1 11 3 123 3 27 +1806 24 64 102.9 1032.25 52 1 0 1 12 3 120 3 24 +1807 24 65 107.1 1032.25 51 39 0 1 12 2 118 3 22 +1808 24 66 111.3 1032.25 51 37 0 1 12 2 116 3 20 +1809 24 67 115.5 1032.25 51 38 0 1 12 2 117 3 21 +1810 24 68 119.7 1032.25 51 40 0 1 12 2 119 3 23 +1811 24 69 123.9 1032.25 55 39 0 1 13 2 118 3 22 +1812 24 70 128.1 1032.25 55 37 0 1 13 2 116 3 20 +1813 24 71 132.3 1032.25 55 38 0 1 13 2 117 3 21 +1814 24 72 136.5 1032.25 55 40 0 1 13 2 119 3 23 +1815 24 73 140.7 1032.25 56 2 0 1 13 3 121 3 25 +1816 24 74 144.9 1032.25 56 4 0 1 13 3 123 3 27 +1817 24 75 149.1 1032.25 60 1 0 1 14 3 120 3 24 +1818 24 76 153.3 1032.25 59 39 0 1 14 2 118 3 22 +1819 24 77 157.5 1032.25 59 37 0 1 14 2 116 3 20 +1820 24 78 161.7 1032.25 59 38 0 1 14 2 117 3 21 +1821 24 79 165.9 1032.25 59 40 0 1 14 2 119 3 23 +1822 25 0 -165.9 1039.75 4 5 0 1 0 3 124 3 28 +1823 25 1 -161.7 1039.75 4 3 0 1 0 3 122 3 26 +1824 25 2 -157.5 1039.75 4 1 0 1 0 3 120 3 24 +1825 25 3 -153.3 1039.75 4 4 0 1 0 3 123 3 27 +1826 25 4 -149.1 1039.75 4 6 0 1 0 3 125 3 29 +1827 25 5 -144.9 1039.75 8 7 0 1 1 3 126 3 30 +1828 25 6 -140.7 1039.75 8 5 0 1 1 3 124 3 28 +1829 25 7 -136.5 1039.75 8 2 0 1 1 3 121 3 25 +1830 25 8 -132.3 1039.75 8 4 0 1 1 3 123 3 27 +1831 25 9 -128.1 1039.75 8 6 0 1 1 3 125 3 29 +1832 25 10 -123.9 1039.75 12 5 0 1 2 3 124 3 28 +1833 25 11 -119.7 1039.75 12 3 0 1 2 3 122 3 26 +1834 25 12 -115.5 1039.75 12 1 0 1 2 3 120 3 24 +1835 25 13 -111.3 1039.75 12 4 0 1 2 3 123 3 27 +1836 25 14 -107.1 1039.75 12 6 0 1 2 3 125 3 29 +1837 25 15 -102.9 1039.75 12 8 0 1 2 3 127 3 31 +1838 25 16 -98.7 1039.75 16 7 0 1 3 3 126 3 30 +1839 25 17 -94.5 1039.75 16 5 0 1 3 3 124 3 28 +1840 25 18 -90.3 1039.75 16 2 0 1 3 3 121 3 25 +1841 25 19 -86.1 1039.75 16 4 0 1 3 3 123 3 27 +1842 25 20 -81.9 1039.75 16 6 0 1 3 3 125 3 29 +1843 25 21 -77.7 1039.75 20 5 0 1 4 3 124 3 28 +1844 25 22 -73.5 1039.75 20 3 0 1 4 3 122 3 26 +1845 25 23 -69.3 1039.75 20 1 0 1 4 3 120 3 24 +1846 25 24 -65.1 1039.75 20 4 0 1 4 3 123 3 27 +1847 25 25 -60.9 1039.75 20 6 0 1 4 3 125 3 29 +1848 25 26 -56.7 1039.75 20 8 0 1 4 3 127 3 31 +1849 25 27 -52.5 1039.75 24 5 0 1 5 3 124 3 28 +1850 25 28 -48.3 1039.75 24 3 0 1 5 3 122 3 26 +1851 25 29 -44.1 1039.75 24 1 0 1 5 3 120 3 24 +1852 25 30 -39.9 1039.75 24 2 0 1 5 3 121 3 25 +1853 25 31 -35.7 1039.75 24 4 0 1 5 3 123 3 27 +1854 25 32 -31.5 1039.75 28 9 0 1 6 3 128 4 0 +1855 25 33 -27.3 1039.75 28 7 0 1 6 3 126 3 30 +1856 25 34 -23.1 1039.75 28 5 0 1 6 3 124 3 28 +1857 25 35 -18.9 1039.75 28 8 0 1 6 3 127 3 31 +1858 25 36 -14.7 1039.75 28 10 0 1 6 3 129 4 1 +1859 25 37 -10.5 1039.75 32 3 0 1 7 3 122 3 26 +1860 25 38 -6.3 1039.75 32 1 0 1 7 3 120 3 24 +1861 25 39 -2.1 1039.75 31 39 0 1 7 2 118 3 22 +1862 25 40 2.1 1039.75 31 40 0 1 7 2 119 3 23 +1863 25 41 6.3 1039.75 32 2 0 1 7 3 121 3 25 +1864 25 42 10.5 1039.75 32 4 0 1 7 3 123 3 27 +1865 25 43 14.7 1039.75 36 9 0 1 8 3 128 4 0 +1866 25 44 18.9 1039.75 36 7 0 1 8 3 126 3 30 +1867 25 45 23.1 1039.75 36 6 0 1 8 3 125 3 29 +1868 25 46 27.3 1039.75 36 8 0 1 8 3 127 3 31 +1869 25 47 31.5 1039.75 36 10 0 1 8 3 129 4 1 +1870 25 48 35.7 1039.75 40 3 0 1 9 3 122 3 26 +1871 25 49 39.9 1039.75 40 1 0 1 9 3 120 3 24 +1872 25 50 44.1 1039.75 40 2 0 1 9 3 121 3 25 +1873 25 51 48.3 1039.75 40 4 0 1 9 3 123 3 27 +1874 25 52 52.5 1039.75 40 6 0 1 9 3 125 3 29 +1875 25 53 56.7 1039.75 44 7 0 1 10 3 126 3 30 +1876 25 54 60.9 1039.75 44 5 0 1 10 3 124 3 28 +1877 25 55 65.1 1039.75 44 3 0 1 10 3 122 3 26 +1878 25 56 69.3 1039.75 44 2 0 1 10 3 121 3 25 +1879 25 57 73.5 1039.75 44 4 0 1 10 3 123 3 27 +1880 25 58 77.7 1039.75 44 6 0 1 10 3 125 3 29 +1881 25 59 81.9 1039.75 48 5 0 1 11 3 124 3 28 +1882 25 60 86.1 1039.75 48 3 0 1 11 3 122 3 26 +1883 25 61 90.3 1039.75 48 1 0 1 11 3 120 3 24 +1884 25 62 94.5 1039.75 48 6 0 1 11 3 125 3 29 +1885 25 63 98.7 1039.75 48 8 0 1 11 3 127 3 31 +1886 25 64 102.9 1039.75 52 7 0 1 12 3 126 3 30 +1887 25 65 107.1 1039.75 52 5 0 1 12 3 124 3 28 +1888 25 66 111.3 1039.75 52 3 0 1 12 3 122 3 26 +1889 25 67 115.5 1039.75 52 2 0 1 12 3 121 3 25 +1890 25 68 119.7 1039.75 52 4 0 1 12 3 123 3 27 +1891 25 69 123.9 1039.75 52 6 0 1 12 3 125 3 29 +1892 25 70 128.1 1039.75 56 5 0 1 13 3 124 3 28 +1893 25 71 132.3 1039.75 56 3 0 1 13 3 122 3 26 +1894 25 72 136.5 1039.75 56 1 0 1 13 3 120 3 24 +1895 25 73 140.7 1039.75 56 6 0 1 13 3 125 3 29 +1896 25 74 144.9 1039.75 56 8 0 1 13 3 127 3 31 +1897 25 75 149.1 1039.75 60 5 0 1 14 3 124 3 28 +1898 25 76 153.3 1039.75 60 3 0 1 14 3 122 3 26 +1899 25 77 157.5 1039.75 60 2 0 1 14 3 121 3 25 +1900 25 78 161.7 1039.75 60 4 0 1 14 3 123 3 27 +1901 25 79 165.9 1039.75 60 6 0 1 14 3 125 3 29 +1902 26 0 -170.1 1047.25 4 11 0 1 0 3 130 4 2 +1903 26 1 -165.9 1047.25 4 9 0 1 0 3 128 4 0 +1904 26 2 -161.7 1047.25 4 7 0 1 0 3 126 3 30 +1905 26 3 -157.5 1047.25 4 8 0 1 0 3 127 3 31 +1906 26 4 -153.3 1047.25 4 10 0 1 0 3 129 4 1 +1907 26 5 -149.1 1047.25 4 12 0 1 0 3 131 4 3 +1908 26 6 -144.9 1047.25 8 11 0 1 1 3 130 4 2 +1909 26 7 -140.7 1047.25 8 9 0 1 1 3 128 4 0 +1910 26 8 -136.5 1047.25 8 8 0 1 1 3 127 3 31 +1911 26 9 -132.3 1047.25 8 10 0 1 1 3 129 4 1 +1912 26 10 -128.1 1047.25 8 12 0 1 1 3 131 4 3 +1913 26 11 -123.9 1047.25 12 11 0 1 2 3 130 4 2 +1914 26 12 -119.7 1047.25 12 9 0 1 2 3 128 4 0 +1915 26 13 -115.5 1047.25 12 7 0 1 2 3 126 3 30 +1916 26 14 -111.3 1047.25 12 10 0 1 2 3 129 4 1 +1917 26 15 -107.1 1047.25 12 12 0 1 2 3 131 4 3 +1918 26 16 -102.9 1047.25 12 14 0 1 2 3 133 4 5 +1919 26 17 -98.7 1047.25 16 11 0 1 3 3 130 4 2 +1920 26 18 -94.5 1047.25 16 9 0 1 3 3 128 4 0 +1921 26 19 -90.3 1047.25 16 8 0 1 3 3 127 3 31 +1922 26 20 -86.1 1047.25 16 10 0 1 3 3 129 4 1 +1923 26 21 -81.9 1047.25 16 12 0 1 3 3 131 4 3 +1924 26 22 -77.7 1047.25 20 11 0 1 4 3 130 4 2 +1925 26 23 -73.5 1047.25 20 9 0 1 4 3 128 4 0 +1926 26 24 -69.3 1047.25 20 7 0 1 4 3 126 3 30 +1927 26 25 -65.1 1047.25 20 10 0 1 4 3 129 4 1 +1928 26 26 -60.9 1047.25 20 12 0 1 4 3 131 4 3 +1929 26 27 -56.7 1047.25 20 14 0 1 4 3 133 4 5 +1930 26 28 -52.5 1047.25 24 9 0 1 5 3 128 4 0 +1931 26 29 -48.3 1047.25 24 7 0 1 5 3 126 3 30 +1932 26 30 -44.1 1047.25 24 6 0 1 5 3 125 3 29 +1933 26 31 -39.9 1047.25 24 8 0 1 5 3 127 3 31 +1934 26 32 -35.7 1047.25 24 10 0 1 5 3 129 4 1 +1935 26 33 -31.5 1047.25 28 13 0 1 6 3 132 4 4 +1936 26 34 -27.3 1047.25 28 11 0 1 6 3 130 4 2 +1937 26 35 -23.1 1047.25 28 12 0 1 6 3 131 4 3 +1938 26 36 -18.9 1047.25 28 14 0 1 6 3 133 4 5 +1939 26 37 -14.7 1047.25 28 16 0 1 6 3 135 4 7 +1940 26 38 -10.5 1047.25 32 9 0 1 7 3 128 4 0 +1941 26 39 -6.3 1047.25 32 7 0 1 7 3 126 3 30 +1942 26 40 -2.1 1047.25 32 5 0 1 7 3 124 3 28 +1943 26 41 2.1 1047.25 32 6 0 1 7 3 125 3 29 +1944 26 42 6.3 1047.25 32 8 0 1 7 3 127 3 31 +1945 26 43 10.5 1047.25 32 10 0 1 7 3 129 4 1 +1946 26 44 14.7 1047.25 36 15 0 1 8 3 134 4 6 +1947 26 45 18.9 1047.25 36 13 0 1 8 3 132 4 4 +1948 26 46 23.1 1047.25 36 11 0 1 8 3 130 4 2 +1949 26 47 27.3 1047.25 36 12 0 1 8 3 131 4 3 +1950 26 48 31.5 1047.25 36 14 0 1 8 3 133 4 5 +1951 26 49 35.7 1047.25 40 9 0 1 9 3 128 4 0 +1952 26 50 39.9 1047.25 40 7 0 1 9 3 126 3 30 +1953 26 51 44.1 1047.25 40 5 0 1 9 3 124 3 28 +1954 26 52 48.3 1047.25 40 8 0 1 9 3 127 3 31 +1955 26 53 52.5 1047.25 40 10 0 1 9 3 129 4 1 +1956 26 54 56.7 1047.25 44 13 0 1 10 3 132 4 4 +1957 26 55 60.9 1047.25 44 11 0 1 10 3 130 4 2 +1958 26 56 65.1 1047.25 44 9 0 1 10 3 128 4 0 +1959 26 57 69.3 1047.25 44 8 0 1 10 3 127 3 31 +1960 26 58 73.5 1047.25 44 10 0 1 10 3 129 4 1 +1961 26 59 77.7 1047.25 44 12 0 1 10 3 131 4 3 +1962 26 60 81.9 1047.25 48 11 0 1 11 3 130 4 2 +1963 26 61 86.1 1047.25 48 9 0 1 11 3 128 4 0 +1964 26 62 90.3 1047.25 48 7 0 1 11 3 126 3 30 +1965 26 63 94.5 1047.25 48 10 0 1 11 3 129 4 1 +1966 26 64 98.7 1047.25 48 12 0 1 11 3 131 4 3 +1967 26 65 102.9 1047.25 52 13 0 1 12 3 132 4 4 +1968 26 66 107.1 1047.25 52 11 0 1 12 3 130 4 2 +1969 26 67 111.3 1047.25 52 9 0 1 12 3 128 4 0 +1970 26 68 115.5 1047.25 52 8 0 1 12 3 127 3 31 +1971 26 69 119.7 1047.25 52 10 0 1 12 3 129 4 1 +1972 26 70 123.9 1047.25 52 12 0 1 12 3 131 4 3 +1973 26 71 128.1 1047.25 56 11 0 1 13 3 130 4 2 +1974 26 72 132.3 1047.25 56 9 0 1 13 3 128 4 0 +1975 26 73 136.5 1047.25 56 7 0 1 13 3 126 3 30 +1976 26 74 140.7 1047.25 56 10 0 1 13 3 129 4 1 +1977 26 75 144.9 1047.25 56 12 0 1 13 3 131 4 3 +1978 26 76 149.1 1047.25 60 11 0 1 14 3 130 4 2 +1979 26 77 153.3 1047.25 60 9 0 1 14 3 128 4 0 +1980 26 78 157.5 1047.25 60 7 0 1 14 3 126 3 30 +1981 26 79 161.7 1047.25 60 8 0 1 14 3 127 3 31 +1982 26 80 165.9 1047.25 60 10 0 1 14 3 129 4 1 +1983 26 81 170.1 1047.25 60 12 0 1 14 3 131 4 3 +1984 27 0 -170.1 1054.75 4 17 0 1 0 3 136 4 8 +1985 27 1 -165.9 1054.75 4 15 0 1 0 3 134 4 6 +1986 27 2 -161.7 1054.75 4 13 0 1 0 3 132 4 4 +1987 27 3 -157.5 1054.75 4 14 0 1 0 3 133 4 5 +1988 27 4 -153.3 1054.75 4 16 0 1 0 3 135 4 7 +1989 27 5 -149.1 1054.75 4 18 0 1 0 3 137 4 9 +1990 27 6 -144.9 1054.75 8 15 0 1 1 3 134 4 6 +1991 27 7 -140.7 1054.75 8 13 0 1 1 3 132 4 4 +1992 27 8 -136.5 1054.75 8 14 0 1 1 3 133 4 5 +1993 27 9 -132.3 1054.75 8 16 0 1 1 3 135 4 7 +1994 27 10 -128.1 1054.75 8 18 0 1 1 3 137 4 9 +1995 27 11 -123.9 1054.75 12 17 0 1 2 3 136 4 8 +1996 27 12 -119.7 1054.75 12 15 0 1 2 3 134 4 6 +1997 27 13 -115.5 1054.75 12 13 0 1 2 3 132 4 4 +1998 27 14 -111.3 1054.75 12 16 0 1 2 3 135 4 7 +1999 27 15 -107.1 1054.75 12 18 0 1 2 3 137 4 9 +2000 27 16 -102.9 1054.75 16 17 0 1 3 3 136 4 8 +2001 27 17 -98.7 1054.75 16 15 0 1 3 3 134 4 6 +2002 27 18 -94.5 1054.75 16 13 0 1 3 3 132 4 4 +2003 27 19 -90.3 1054.75 16 14 0 1 3 3 133 4 5 +2004 27 20 -86.1 1054.75 16 16 0 1 3 3 135 4 7 +2005 27 21 -81.9 1054.75 16 18 0 1 3 3 137 4 9 +2006 27 22 -77.7 1054.75 20 15 0 1 4 3 134 4 6 +2007 27 23 -73.5 1054.75 20 13 0 1 4 3 132 4 4 +2008 27 24 -69.3 1054.75 20 16 0 1 4 3 135 4 7 +2009 27 25 -65.1 1054.75 20 18 0 1 4 3 137 4 9 +2010 27 26 -60.9 1054.75 20 20 0 1 4 3 139 4 11 +2011 27 27 -56.7 1054.75 24 15 0 1 5 3 134 4 6 +2012 27 28 -52.5 1054.75 24 13 0 1 5 3 132 4 4 +2013 27 29 -48.3 1054.75 24 11 0 1 5 3 130 4 2 +2014 27 30 -44.1 1054.75 24 12 0 1 5 3 131 4 3 +2015 27 31 -39.9 1054.75 24 14 0 1 5 3 133 4 5 +2016 27 32 -35.7 1054.75 24 16 0 1 5 3 135 4 7 +2017 27 33 -31.5 1054.75 28 19 0 1 6 3 138 4 10 +2018 27 34 -27.3 1054.75 28 17 0 1 6 3 136 4 8 +2019 27 35 -23.1 1054.75 28 15 0 1 6 3 134 4 6 +2020 27 36 -18.9 1054.75 28 18 0 1 6 3 137 4 9 +2021 27 37 -14.7 1054.75 28 20 0 1 6 3 139 4 11 +2022 27 38 -10.5 1054.75 32 15 0 1 7 3 134 4 6 +2023 27 39 -6.3 1054.75 32 13 0 1 7 3 132 4 4 +2024 27 40 -2.1 1054.75 32 11 0 1 7 3 130 4 2 +2025 27 41 2.1 1054.75 32 12 0 1 7 3 131 4 3 +2026 27 42 6.3 1054.75 32 14 0 1 7 3 133 4 5 +2027 27 43 10.5 1054.75 32 16 0 1 7 3 135 4 7 +2028 27 44 14.7 1054.75 36 19 0 1 8 3 138 4 10 +2029 27 45 18.9 1054.75 36 17 0 1 8 3 136 4 8 +2030 27 46 23.1 1054.75 36 16 0 1 8 3 135 4 7 +2031 27 47 27.3 1054.75 36 18 0 1 8 3 137 4 9 +2032 27 48 31.5 1054.75 36 20 0 1 8 3 139 4 11 +2033 27 49 35.7 1054.75 40 15 0 1 9 3 134 4 6 +2034 27 50 39.9 1054.75 40 13 0 1 9 3 132 4 4 +2035 27 51 44.1 1054.75 40 11 0 1 9 3 130 4 2 +2036 27 52 48.3 1054.75 40 12 0 1 9 3 131 4 3 +2037 27 53 52.5 1054.75 40 14 0 1 9 3 133 4 5 +2038 27 54 56.7 1054.75 40 16 0 1 9 3 135 4 7 +2039 27 55 60.9 1054.75 44 19 0 1 10 3 138 4 10 +2040 27 56 65.1 1054.75 44 17 0 1 10 3 136 4 8 +2041 27 57 69.3 1054.75 44 15 0 1 10 3 134 4 6 +2042 27 58 73.5 1054.75 44 14 0 1 10 3 133 4 5 +2043 27 59 77.7 1054.75 44 16 0 1 10 3 135 4 7 +2044 27 60 81.9 1054.75 48 17 0 1 11 3 136 4 8 +2045 27 61 86.1 1054.75 48 15 0 1 11 3 134 4 6 +2046 27 62 90.3 1054.75 48 13 0 1 11 3 132 4 4 +2047 27 63 94.5 1054.75 48 14 0 1 11 3 133 4 5 +2048 27 64 98.7 1054.75 48 16 0 1 11 3 135 4 7 +2049 27 65 102.9 1054.75 48 18 0 1 11 3 137 4 9 +2050 27 66 107.1 1054.75 52 17 0 1 12 3 136 4 8 +2051 27 67 111.3 1054.75 52 15 0 1 12 3 134 4 6 +2052 27 68 115.5 1054.75 52 14 0 1 12 3 133 4 5 +2053 27 69 119.7 1054.75 52 16 0 1 12 3 135 4 7 +2054 27 70 123.9 1054.75 52 18 0 1 12 3 137 4 9 +2055 27 71 128.1 1054.75 56 17 0 1 13 3 136 4 8 +2056 27 72 132.3 1054.75 56 15 0 1 13 3 134 4 6 +2057 27 73 136.5 1054.75 56 13 0 1 13 3 132 4 4 +2058 27 74 140.7 1054.75 56 14 0 1 13 3 133 4 5 +2059 27 75 144.9 1054.75 56 16 0 1 13 3 135 4 7 +2060 27 76 149.1 1054.75 60 17 0 1 14 3 136 4 8 +2061 27 77 153.3 1054.75 60 15 0 1 14 3 134 4 6 +2062 27 78 157.5 1054.75 60 13 0 1 14 3 132 4 4 +2063 27 79 161.7 1054.75 60 14 0 1 14 3 133 4 5 +2064 27 80 165.9 1054.75 60 16 0 1 14 3 135 4 7 +2065 27 81 170.1 1054.75 60 18 0 1 14 3 137 4 9 +2066 28 0 -170.1 1062.25 4 21 0 1 0 3 140 4 12 +2067 28 1 -165.9 1062.25 4 19 0 1 0 3 138 4 10 +2068 28 2 -161.7 1062.25 4 20 0 1 0 3 139 4 11 +2069 28 3 -157.5 1062.25 4 22 0 1 0 3 141 4 13 +2070 28 4 -153.3 1062.25 4 24 0 1 0 3 143 4 15 +2071 28 5 -149.1 1062.25 8 21 0 1 1 3 140 4 12 +2072 28 6 -144.9 1062.25 8 19 0 1 1 3 138 4 10 +2073 28 7 -140.7 1062.25 8 17 0 1 1 3 136 4 8 +2074 28 8 -136.5 1062.25 8 20 0 1 1 3 139 4 11 +2075 28 9 -132.3 1062.25 8 22 0 1 1 3 141 4 13 +2076 28 10 -128.1 1062.25 8 24 0 1 1 3 143 4 15 +2077 28 11 -123.9 1062.25 12 23 0 1 2 3 142 4 14 +2078 28 12 -119.7 1062.25 12 21 0 1 2 3 140 4 12 +2079 28 13 -115.5 1062.25 12 19 0 1 2 3 138 4 10 +2080 28 14 -111.3 1062.25 12 20 0 1 2 3 139 4 11 +2081 28 15 -107.1 1062.25 12 22 0 1 2 3 141 4 13 +2082 28 16 -102.9 1062.25 16 23 0 1 3 3 142 4 14 +2083 28 17 -98.7 1062.25 16 21 0 1 3 3 140 4 12 +2084 28 18 -94.5 1062.25 16 19 0 1 3 3 138 4 10 +2085 28 19 -90.3 1062.25 16 20 0 1 3 3 139 4 11 +2086 28 20 -86.1 1062.25 16 22 0 1 3 3 141 4 13 +2087 28 21 -81.9 1062.25 16 24 0 1 3 3 143 4 15 +2088 28 22 -77.7 1062.25 20 21 0 1 4 3 140 4 12 +2089 28 23 -73.5 1062.25 20 19 0 1 4 3 138 4 10 +2090 28 24 -69.3 1062.25 20 17 0 1 4 3 136 4 8 +2091 28 25 -65.1 1062.25 20 22 0 1 4 3 141 4 13 +2092 28 26 -60.9 1062.25 20 24 0 1 4 3 143 4 15 +2093 28 27 -56.7 1062.25 24 21 0 1 5 3 140 4 12 +2094 28 28 -52.5 1062.25 24 19 0 1 5 3 138 4 10 +2095 28 29 -48.3 1062.25 24 17 0 1 5 3 136 4 8 +2096 28 30 -44.1 1062.25 24 18 0 1 5 3 137 4 9 +2097 28 31 -39.9 1062.25 24 20 0 1 5 3 139 4 11 +2098 28 32 -35.7 1062.25 24 22 0 1 5 3 141 4 13 +2099 28 33 -31.5 1062.25 28 23 0 1 6 3 142 4 14 +2100 28 34 -27.3 1062.25 28 21 0 1 6 3 140 4 12 +2101 28 35 -23.1 1062.25 28 22 0 1 6 3 141 4 13 +2102 28 36 -18.9 1062.25 28 24 0 1 6 3 143 4 15 +2103 28 37 -14.7 1062.25 28 26 0 1 6 3 145 4 17 +2104 28 38 -10.5 1062.25 32 21 0 1 7 3 140 4 12 +2105 28 39 -6.3 1062.25 32 19 0 1 7 3 138 4 10 +2106 28 40 -2.1 1062.25 32 17 0 1 7 3 136 4 8 +2107 28 41 2.1 1062.25 32 18 0 1 7 3 137 4 9 +2108 28 42 6.3 1062.25 32 20 0 1 7 3 139 4 11 +2109 28 43 10.5 1062.25 32 22 0 1 7 3 141 4 13 +2110 28 44 14.7 1062.25 36 25 0 1 8 3 144 4 16 +2111 28 45 18.9 1062.25 36 23 0 1 8 3 142 4 14 +2112 28 46 23.1 1062.25 36 21 0 1 8 3 140 4 12 +2113 28 47 27.3 1062.25 36 22 0 1 8 3 141 4 13 +2114 28 48 31.5 1062.25 36 24 0 1 8 3 143 4 15 +2115 28 49 35.7 1062.25 40 21 0 1 9 3 140 4 12 +2116 28 50 39.9 1062.25 40 19 0 1 9 3 138 4 10 +2117 28 51 44.1 1062.25 40 17 0 1 9 3 136 4 8 +2118 28 52 48.3 1062.25 40 18 0 1 9 3 137 4 9 +2119 28 53 52.5 1062.25 40 20 0 1 9 3 139 4 11 +2120 28 54 56.7 1062.25 40 22 0 1 9 3 141 4 13 +2121 28 55 60.9 1062.25 44 23 0 1 10 3 142 4 14 +2122 28 56 65.1 1062.25 44 21 0 1 10 3 140 4 12 +2123 28 57 69.3 1062.25 44 18 0 1 10 3 137 4 9 +2124 28 58 73.5 1062.25 44 20 0 1 10 3 139 4 11 +2125 28 59 77.7 1062.25 44 22 0 1 10 3 141 4 13 +2126 28 60 81.9 1062.25 48 23 0 1 11 3 142 4 14 +2127 28 61 86.1 1062.25 48 21 0 1 11 3 140 4 12 +2128 28 62 90.3 1062.25 48 19 0 1 11 3 138 4 10 +2129 28 63 94.5 1062.25 48 20 0 1 11 3 139 4 11 +2130 28 64 98.7 1062.25 48 22 0 1 11 3 141 4 13 +2131 28 65 102.9 1062.25 48 24 0 1 11 3 143 4 15 +2132 28 66 107.1 1062.25 52 21 0 1 12 3 140 4 12 +2133 28 67 111.3 1062.25 52 19 0 1 12 3 138 4 10 +2134 28 68 115.5 1062.25 52 20 0 1 12 3 139 4 11 +2135 28 69 119.7 1062.25 52 22 0 1 12 3 141 4 13 +2136 28 70 123.9 1062.25 52 24 0 1 12 3 143 4 15 +2137 28 71 128.1 1062.25 56 23 0 1 13 3 142 4 14 +2138 28 72 132.3 1062.25 56 21 0 1 13 3 140 4 12 +2139 28 73 136.5 1062.25 56 19 0 1 13 3 138 4 10 +2140 28 74 140.7 1062.25 56 18 0 1 13 3 137 4 9 +2141 28 75 144.9 1062.25 56 20 0 1 13 3 139 4 11 +2142 28 76 149.1 1062.25 56 22 0 1 13 3 141 4 13 +2143 28 77 153.3 1062.25 60 23 0 1 14 3 142 4 14 +2144 28 78 157.5 1062.25 60 21 0 1 14 3 140 4 12 +2145 28 79 161.7 1062.25 60 19 0 1 14 3 138 4 10 +2146 28 80 165.9 1062.25 60 20 0 1 14 3 139 4 11 +2147 28 81 170.1 1062.25 60 22 0 1 14 3 141 4 13 +2148 29 0 -174.3 1069.75 4 27 0 1 0 3 146 4 18 +2149 29 1 -170.1 1069.75 4 25 0 1 0 3 144 4 16 +2150 29 2 -165.9 1069.75 4 23 0 1 0 3 142 4 14 +2151 29 3 -161.7 1069.75 4 26 0 1 0 3 145 4 17 +2152 29 4 -157.5 1069.75 4 28 0 1 0 3 147 4 19 +2153 29 5 -153.3 1069.75 4 30 0 1 0 3 149 4 21 +2154 29 6 -149.1 1069.75 8 27 0 1 1 3 146 4 18 +2155 29 7 -144.9 1069.75 8 25 0 1 1 3 144 4 16 +2156 29 8 -140.7 1069.75 8 23 0 1 1 3 142 4 14 +2157 29 9 -136.5 1069.75 8 26 0 1 1 3 145 4 17 +2158 29 10 -132.3 1069.75 8 28 0 1 1 3 147 4 19 +2159 29 11 -128.1 1069.75 8 30 0 1 1 3 149 4 21 +2160 29 12 -123.9 1069.75 12 27 0 1 2 3 146 4 18 +2161 29 13 -119.7 1069.75 12 25 0 1 2 3 144 4 16 +2162 29 14 -115.5 1069.75 12 24 0 1 2 3 143 4 15 +2163 29 15 -111.3 1069.75 12 26 0 1 2 3 145 4 17 +2164 29 16 -107.1 1069.75 12 28 0 1 2 3 147 4 19 +2165 29 17 -102.9 1069.75 16 29 0 1 3 3 148 4 20 +2166 29 18 -98.7 1069.75 16 27 0 1 3 3 146 4 18 +2167 29 19 -94.5 1069.75 16 25 0 1 3 3 144 4 16 +2168 29 20 -90.3 1069.75 16 26 0 1 3 3 145 4 17 +2169 29 21 -86.1 1069.75 16 28 0 1 3 3 147 4 19 +2170 29 22 -81.9 1069.75 16 30 0 1 3 3 149 4 21 +2171 29 23 -77.7 1069.75 20 27 0 1 4 3 146 4 18 +2172 29 24 -73.5 1069.75 20 25 0 1 4 3 144 4 16 +2173 29 25 -69.3 1069.75 20 23 0 1 4 3 142 4 14 +2174 29 26 -65.1 1069.75 20 26 0 1 4 3 145 4 17 +2175 29 27 -60.9 1069.75 20 28 0 1 4 3 147 4 19 +2176 29 28 -56.7 1069.75 24 27 0 1 5 3 146 4 18 +2177 29 29 -52.5 1069.75 24 25 0 1 5 3 144 4 16 +2178 29 30 -48.3 1069.75 24 23 0 1 5 3 142 4 14 +2179 29 31 -44.1 1069.75 24 24 0 1 5 3 143 4 15 +2180 29 32 -39.9 1069.75 24 26 0 1 5 3 145 4 17 +2181 29 33 -35.7 1069.75 24 28 0 1 5 3 147 4 19 +2182 29 34 -31.5 1069.75 28 29 0 1 6 3 148 4 20 +2183 29 35 -27.3 1069.75 28 27 0 1 6 3 146 4 18 +2184 29 36 -23.1 1069.75 28 25 0 1 6 3 144 4 16 +2185 29 37 -18.9 1069.75 28 28 0 1 6 3 147 4 19 +2186 29 38 -14.7 1069.75 28 30 0 1 6 3 149 4 21 +2187 29 39 -10.5 1069.75 32 27 0 1 7 3 146 4 18 +2188 29 40 -6.3 1069.75 32 25 0 1 7 3 144 4 16 +2189 29 41 -2.1 1069.75 32 23 0 1 7 3 142 4 14 +2190 29 42 2.1 1069.75 32 24 0 1 7 3 143 4 15 +2191 29 43 6.3 1069.75 32 26 0 1 7 3 145 4 17 +2192 29 44 10.5 1069.75 32 28 0 1 7 3 147 4 19 +2193 29 45 14.7 1069.75 36 29 0 1 8 3 148 4 20 +2194 29 46 18.9 1069.75 36 27 0 1 8 3 146 4 18 +2195 29 47 23.1 1069.75 36 26 0 1 8 3 145 4 17 +2196 29 48 27.3 1069.75 36 28 0 1 8 3 147 4 19 +2197 29 49 31.5 1069.75 36 30 0 1 8 3 149 4 21 +2198 29 50 35.7 1069.75 40 27 0 1 9 3 146 4 18 +2199 29 51 39.9 1069.75 40 25 0 1 9 3 144 4 16 +2200 29 52 44.1 1069.75 40 23 0 1 9 3 142 4 14 +2201 29 53 48.3 1069.75 40 24 0 1 9 3 143 4 15 +2202 29 54 52.5 1069.75 40 26 0 1 9 3 145 4 17 +2203 29 55 56.7 1069.75 40 28 0 1 9 3 147 4 19 +2204 29 56 60.9 1069.75 44 27 0 1 10 3 146 4 18 +2205 29 57 65.1 1069.75 44 25 0 1 10 3 144 4 16 +2206 29 58 69.3 1069.75 44 24 0 1 10 3 143 4 15 +2207 29 59 73.5 1069.75 44 26 0 1 10 3 145 4 17 +2208 29 60 77.7 1069.75 44 28 0 1 10 3 147 4 19 +2209 29 61 81.9 1069.75 48 29 0 1 11 3 148 4 20 +2210 29 62 86.1 1069.75 48 27 0 1 11 3 146 4 18 +2211 29 63 90.3 1069.75 48 25 0 1 11 3 144 4 16 +2212 29 64 94.5 1069.75 48 26 0 1 11 3 145 4 17 +2213 29 65 98.7 1069.75 48 28 0 1 11 3 147 4 19 +2214 29 66 102.9 1069.75 48 30 0 1 11 3 149 4 21 +2215 29 67 107.1 1069.75 52 27 0 1 12 3 146 4 18 +2216 29 68 111.3 1069.75 52 25 0 1 12 3 144 4 16 +2217 29 69 115.5 1069.75 52 23 0 1 12 3 142 4 14 +2218 29 70 119.7 1069.75 52 26 0 1 12 3 145 4 17 +2219 29 71 123.9 1069.75 52 28 0 1 12 3 147 4 19 +2220 29 72 128.1 1069.75 56 29 0 1 13 3 148 4 20 +2221 29 73 132.3 1069.75 56 27 0 1 13 3 146 4 18 +2222 29 74 136.5 1069.75 56 25 0 1 13 3 144 4 16 +2223 29 75 140.7 1069.75 56 24 0 1 13 3 143 4 15 +2224 29 76 144.9 1069.75 56 26 0 1 13 3 145 4 17 +2225 29 77 149.1 1069.75 56 28 0 1 13 3 147 4 19 +2226 29 78 153.3 1069.75 60 29 0 1 14 3 148 4 20 +2227 29 79 157.5 1069.75 60 27 0 1 14 3 146 4 18 +2228 29 80 161.7 1069.75 60 25 0 1 14 3 144 4 16 +2229 29 81 165.9 1069.75 60 24 0 1 14 3 143 4 15 +2230 29 82 170.1 1069.75 60 26 0 1 14 3 145 4 17 +2231 29 83 174.3 1069.75 60 28 0 1 14 3 147 4 19 +2232 30 0 -174.3 1077.25 4 33 0 1 0 3 152 4 24 +2233 30 1 -170.1 1077.25 4 31 0 1 0 3 150 4 22 +2234 30 2 -165.9 1077.25 4 29 0 1 0 3 148 4 20 +2235 30 3 -161.7 1077.25 4 32 0 1 0 3 151 4 23 +2236 30 4 -157.5 1077.25 4 34 0 1 0 3 153 4 25 +2237 30 5 -153.3 1077.25 4 36 0 1 0 3 155 4 27 +2238 30 6 -149.1 1077.25 8 33 0 1 1 3 152 4 24 +2239 30 7 -144.9 1077.25 8 31 0 1 1 3 150 4 22 +2240 30 8 -140.7 1077.25 8 29 0 1 1 3 148 4 20 +2241 30 9 -136.5 1077.25 8 32 0 1 1 3 151 4 23 +2242 30 10 -132.3 1077.25 8 34 0 1 1 3 153 4 25 +2243 30 11 -128.1 1077.25 12 33 0 1 2 3 152 4 24 +2244 30 12 -123.9 1077.25 12 31 0 1 2 3 150 4 22 +2245 30 13 -119.7 1077.25 12 29 0 1 2 3 148 4 20 +2246 30 14 -115.5 1077.25 12 30 0 1 2 3 149 4 21 +2247 30 15 -111.3 1077.25 12 32 0 1 2 3 151 4 23 +2248 30 16 -107.1 1077.25 12 34 0 1 2 3 153 4 25 +2249 30 17 -102.9 1077.25 16 33 0 1 3 3 152 4 24 +2250 30 18 -98.7 1077.25 16 31 0 1 3 3 150 4 22 +2251 30 19 -94.5 1077.25 16 32 0 1 3 3 151 4 23 +2252 30 20 -90.3 1077.25 16 34 0 1 3 3 153 4 25 +2253 30 21 -86.1 1077.25 16 36 0 1 3 3 155 4 27 +2254 30 22 -81.9 1077.25 20 33 0 1 4 3 152 4 24 +2255 30 23 -77.7 1077.25 20 31 0 1 4 3 150 4 22 +2256 30 24 -73.5 1077.25 20 29 0 1 4 3 148 4 20 +2257 30 25 -69.3 1077.25 20 30 0 1 4 3 149 4 21 +2258 30 26 -65.1 1077.25 20 32 0 1 4 3 151 4 23 +2259 30 27 -60.9 1077.25 20 34 0 1 4 3 153 4 25 +2260 30 28 -56.7 1077.25 24 33 0 1 5 3 152 4 24 +2261 30 29 -52.5 1077.25 24 31 0 1 5 3 150 4 22 +2262 30 30 -48.3 1077.25 24 29 0 1 5 3 148 4 20 +2263 30 31 -44.1 1077.25 24 30 0 1 5 3 149 4 21 +2264 30 32 -39.9 1077.25 24 32 0 1 5 3 151 4 23 +2265 30 33 -35.7 1077.25 24 34 0 1 5 3 153 4 25 +2266 30 34 -31.5 1077.25 28 33 0 1 6 3 152 4 24 +2267 30 35 -27.3 1077.25 28 31 0 1 6 3 150 4 22 +2268 30 36 -23.1 1077.25 28 32 0 1 6 3 151 4 23 +2269 30 37 -18.9 1077.25 28 34 0 1 6 3 153 4 25 +2270 30 38 -14.7 1077.25 28 36 0 1 6 3 155 4 27 +2271 30 39 -10.5 1077.25 32 33 0 1 7 3 152 4 24 +2272 30 40 -6.3 1077.25 32 31 0 1 7 3 150 4 22 +2273 30 41 -2.1 1077.25 32 29 0 1 7 3 148 4 20 +2274 30 42 2.1 1077.25 32 30 0 1 7 3 149 4 21 +2275 30 43 6.3 1077.25 32 32 0 1 7 3 151 4 23 +2276 30 44 10.5 1077.25 32 34 0 1 7 3 153 4 25 +2277 30 45 14.7 1077.25 36 35 0 1 8 3 154 4 26 +2278 30 46 18.9 1077.25 36 33 0 1 8 3 152 4 24 +2279 30 47 23.1 1077.25 36 31 0 1 8 3 150 4 22 +2280 30 48 27.3 1077.25 36 32 0 1 8 3 151 4 23 +2281 30 49 31.5 1077.25 36 34 0 1 8 3 153 4 25 +2282 30 50 35.7 1077.25 40 33 0 1 9 3 152 4 24 +2283 30 51 39.9 1077.25 40 31 0 1 9 3 150 4 22 +2284 30 52 44.1 1077.25 40 29 0 1 9 3 148 4 20 +2285 30 53 48.3 1077.25 40 30 0 1 9 3 149 4 21 +2286 30 54 52.5 1077.25 40 32 0 1 9 3 151 4 23 +2287 30 55 56.7 1077.25 40 34 0 1 9 3 153 4 25 +2288 30 56 60.9 1077.25 44 33 0 1 10 3 152 4 24 +2289 30 57 65.1 1077.25 44 31 0 1 10 3 150 4 22 +2290 30 58 69.3 1077.25 44 29 0 1 10 3 148 4 20 +2291 30 59 73.5 1077.25 44 30 0 1 10 3 149 4 21 +2292 30 60 77.7 1077.25 44 32 0 1 10 3 151 4 23 +2293 30 61 81.9 1077.25 44 34 0 1 10 3 153 4 25 +2294 30 62 86.1 1077.25 48 35 0 1 11 3 154 4 26 +2295 30 63 90.3 1077.25 48 33 0 1 11 3 152 4 24 +2296 30 64 94.5 1077.25 48 31 0 1 11 3 150 4 22 +2297 30 65 98.7 1077.25 48 32 0 1 11 3 151 4 23 +2298 30 66 102.9 1077.25 48 34 0 1 11 3 153 4 25 +2299 30 67 107.1 1077.25 52 33 0 1 12 3 152 4 24 +2300 30 68 111.3 1077.25 52 31 0 1 12 3 150 4 22 +2301 30 69 115.5 1077.25 52 29 0 1 12 3 148 4 20 +2302 30 70 119.7 1077.25 52 30 0 1 12 3 149 4 21 +2303 30 71 123.9 1077.25 52 32 0 1 12 3 151 4 23 +2304 30 72 128.1 1077.25 52 34 0 1 12 3 153 4 25 +2305 30 73 132.3 1077.25 56 33 0 1 13 3 152 4 24 +2306 30 74 136.5 1077.25 56 31 0 1 13 3 150 4 22 +2307 30 75 140.7 1077.25 56 30 0 1 13 3 149 4 21 +2308 30 76 144.9 1077.25 56 32 0 1 13 3 151 4 23 +2309 30 77 149.1 1077.25 56 34 0 1 13 3 153 4 25 +2310 30 78 153.3 1077.25 60 35 0 1 14 3 154 4 26 +2311 30 79 157.5 1077.25 60 33 0 1 14 3 152 4 24 +2312 30 80 161.7 1077.25 60 31 0 1 14 3 150 4 22 +2313 30 81 165.9 1077.25 60 30 0 1 14 3 149 4 21 +2314 30 82 170.1 1077.25 60 32 0 1 14 3 151 4 23 +2315 30 83 174.3 1077.25 60 34 0 1 14 3 153 4 25 +2316 31 0 -174.3 1084.75 4 39 0 1 0 3 158 4 30 +2317 31 1 -170.1 1084.75 4 37 0 1 0 3 156 4 28 +2318 31 2 -165.9 1084.75 4 35 0 1 0 3 154 4 26 +2319 31 3 -161.7 1084.75 4 38 0 1 0 3 157 4 29 +2320 31 4 -157.5 1084.75 4 40 0 1 0 3 159 4 31 +2321 31 5 -153.3 1084.75 8 39 0 1 1 3 158 4 30 +2322 31 6 -149.1 1084.75 8 37 0 1 1 3 156 4 28 +2323 31 7 -144.9 1084.75 8 35 0 1 1 3 154 4 26 +2324 31 8 -140.7 1084.75 8 36 0 1 1 3 155 4 27 +2325 31 9 -136.5 1084.75 8 38 0 1 1 3 157 4 29 +2326 31 10 -132.3 1084.75 8 40 0 1 1 3 159 4 31 +2327 31 11 -128.1 1084.75 12 39 0 1 2 3 158 4 30 +2328 31 12 -123.9 1084.75 12 37 0 1 2 3 156 4 28 +2329 31 13 -119.7 1084.75 12 35 0 1 2 3 154 4 26 +2330 31 14 -115.5 1084.75 12 36 0 1 2 3 155 4 27 +2331 31 15 -111.3 1084.75 12 38 0 1 2 3 157 4 29 +2332 31 16 -107.1 1084.75 12 40 0 1 2 3 159 4 31 +2333 31 17 -102.9 1084.75 16 39 0 1 3 3 158 4 30 +2334 31 18 -98.7 1084.75 16 37 0 1 3 3 156 4 28 +2335 31 19 -94.5 1084.75 16 35 0 1 3 3 154 4 26 +2336 31 20 -90.3 1084.75 16 38 0 1 3 3 157 4 29 +2337 31 21 -86.1 1084.75 16 40 0 1 3 3 159 4 31 +2338 31 22 -81.9 1084.75 20 39 0 1 4 3 158 4 30 +2339 31 23 -77.7 1084.75 20 37 0 1 4 3 156 4 28 +2340 31 24 -73.5 1084.75 20 35 0 1 4 3 154 4 26 +2341 31 25 -69.3 1084.75 20 36 0 1 4 3 155 4 27 +2342 31 26 -65.1 1084.75 20 38 0 1 4 3 157 4 29 +2343 31 27 -60.9 1084.75 20 40 0 1 4 3 159 4 31 +2344 31 28 -56.7 1084.75 24 39 0 1 5 3 158 4 30 +2345 31 29 -52.5 1084.75 24 37 0 1 5 3 156 4 28 +2346 31 30 -48.3 1084.75 24 35 0 1 5 3 154 4 26 +2347 31 31 -44.1 1084.75 24 36 0 1 5 3 155 4 27 +2348 31 32 -39.9 1084.75 24 38 0 1 5 3 157 4 29 +2349 31 33 -35.7 1084.75 24 40 0 1 5 3 159 4 31 +2350 31 34 -31.5 1084.75 28 39 0 1 6 3 158 4 30 +2351 31 35 -27.3 1084.75 28 37 0 1 6 3 156 4 28 +2352 31 36 -23.1 1084.75 28 35 0 1 6 3 154 4 26 +2353 31 37 -18.9 1084.75 28 38 0 1 6 3 157 4 29 +2354 31 38 -14.7 1084.75 28 40 0 1 6 3 159 4 31 +2355 31 39 -10.5 1084.75 32 39 0 1 7 3 158 4 30 +2356 31 40 -6.3 1084.75 32 37 0 1 7 3 156 4 28 +2357 31 41 -2.1 1084.75 32 35 0 1 7 3 154 4 26 +2358 31 42 2.1 1084.75 32 36 0 1 7 3 155 4 27 +2359 31 43 6.3 1084.75 32 38 0 1 7 3 157 4 29 +2360 31 44 10.5 1084.75 32 40 0 1 7 3 159 4 31 +2361 31 45 14.7 1084.75 36 39 0 1 8 3 158 4 30 +2362 31 46 18.9 1084.75 36 37 0 1 8 3 156 4 28 +2363 31 47 23.1 1084.75 36 36 0 1 8 3 155 4 27 +2364 31 48 27.3 1084.75 36 38 0 1 8 3 157 4 29 +2365 31 49 31.5 1084.75 36 40 0 1 8 3 159 4 31 +2366 31 50 35.7 1084.75 40 39 0 1 9 3 158 4 30 +2367 31 51 39.9 1084.75 40 37 0 1 9 3 156 4 28 +2368 31 52 44.1 1084.75 40 35 0 1 9 3 154 4 26 +2369 31 53 48.3 1084.75 40 36 0 1 9 3 155 4 27 +2370 31 54 52.5 1084.75 40 38 0 1 9 3 157 4 29 +2371 31 55 56.7 1084.75 40 40 0 1 9 3 159 4 31 +2372 31 56 60.9 1084.75 44 39 0 1 10 3 158 4 30 +2373 31 57 65.1 1084.75 44 37 0 1 10 3 156 4 28 +2374 31 58 69.3 1084.75 44 35 0 1 10 3 154 4 26 +2375 31 59 73.5 1084.75 44 36 0 1 10 3 155 4 27 +2376 31 60 77.7 1084.75 44 38 0 1 10 3 157 4 29 +2377 31 61 81.9 1084.75 44 40 0 1 10 3 159 4 31 +2378 31 62 86.1 1084.75 48 39 0 1 11 3 158 4 30 +2379 31 63 90.3 1084.75 48 37 0 1 11 3 156 4 28 +2380 31 64 94.5 1084.75 48 36 0 1 11 3 155 4 27 +2381 31 65 98.7 1084.75 48 38 0 1 11 3 157 4 29 +2382 31 66 102.9 1084.75 48 40 0 1 11 3 159 4 31 +2383 31 67 107.1 1084.75 52 39 0 1 12 3 158 4 30 +2384 31 68 111.3 1084.75 52 37 0 1 12 3 156 4 28 +2385 31 69 115.5 1084.75 52 35 0 1 12 3 154 4 26 +2386 31 70 119.7 1084.75 52 36 0 1 12 3 155 4 27 +2387 31 71 123.9 1084.75 52 38 0 1 12 3 157 4 29 +2388 31 72 128.1 1084.75 52 40 0 1 12 3 159 4 31 +2389 31 73 132.3 1084.75 56 39 0 1 13 3 158 4 30 +2390 31 74 136.5 1084.75 56 37 0 1 13 3 156 4 28 +2391 31 75 140.7 1084.75 56 35 0 1 13 3 154 4 26 +2392 31 76 144.9 1084.75 56 36 0 1 13 3 155 4 27 +2393 31 77 149.1 1084.75 56 38 0 1 13 3 157 4 29 +2394 31 78 153.3 1084.75 56 40 0 1 13 3 159 4 31 +2395 31 79 157.5 1084.75 60 39 0 1 14 3 158 4 30 +2396 31 80 161.7 1084.75 60 37 0 1 14 3 156 4 28 +2397 31 81 165.9 1084.75 60 36 0 1 14 3 155 4 27 +2398 31 82 170.1 1084.75 60 38 0 1 14 3 157 4 29 +2399 31 83 174.3 1084.75 60 40 0 1 14 3 159 4 31 +2400 32 0 -178.5 1092.25 61 5 1 2 15 0 4 0 4 +2401 32 1 -174.3 1092.25 61 3 1 2 15 0 2 0 2 +2402 32 2 -170.1 1092.25 61 1 1 2 15 0 0 0 0 +2403 32 3 -165.9 1092.25 61 2 1 2 15 0 1 0 1 +2404 32 4 -161.7 1092.25 61 4 1 2 15 0 3 0 3 +2405 32 5 -157.5 1092.25 65 5 1 2 16 0 4 0 4 +2406 32 6 -153.3 1092.25 65 3 1 2 16 0 2 0 2 +2407 32 7 -149.1 1092.25 65 1 1 2 16 0 0 0 0 +2408 32 8 -144.9 1092.25 65 2 1 2 16 0 1 0 1 +2409 32 9 -140.7 1092.25 65 4 1 2 16 0 3 0 3 +2410 32 10 -136.5 1092.25 69 3 1 2 17 0 2 0 2 +2411 32 11 -132.3 1092.25 69 1 1 2 17 0 0 0 0 +2412 32 12 -128.1 1092.25 69 2 1 2 17 0 1 0 1 +2413 32 13 -123.9 1092.25 69 4 1 2 17 0 3 0 3 +2414 32 14 -119.7 1092.25 69 6 1 2 17 0 5 0 5 +2415 32 15 -115.5 1092.25 73 3 1 2 18 0 2 0 2 +2416 32 16 -111.3 1092.25 73 1 1 2 18 0 0 0 0 +2417 32 17 -107.1 1092.25 73 2 1 2 18 0 1 0 1 +2418 32 18 -102.9 1092.25 73 4 1 2 18 0 3 0 3 +2419 32 19 -98.7 1092.25 77 5 1 2 19 0 4 0 4 +2420 32 20 -94.5 1092.25 77 3 1 2 19 0 2 0 2 +2421 32 21 -90.3 1092.25 77 1 1 2 19 0 0 0 0 +2422 32 22 -86.1 1092.25 77 2 1 2 19 0 1 0 1 +2423 32 23 -81.9 1092.25 77 4 1 2 19 0 3 0 3 +2424 32 24 -77.7 1092.25 81 3 1 2 20 0 2 0 2 +2425 32 25 -73.5 1092.25 81 1 1 2 20 0 0 0 0 +2426 32 26 -69.3 1092.25 81 2 1 2 20 0 1 0 1 +2427 32 27 -65.1 1092.25 81 4 1 2 20 0 3 0 3 +2428 32 28 -60.9 1092.25 81 6 1 2 20 0 5 0 5 +2429 32 29 -56.7 1092.25 85 3 1 2 21 0 2 0 2 +2430 32 30 -52.5 1092.25 85 1 1 2 21 0 0 0 0 +2431 32 31 -48.3 1092.25 85 2 1 2 21 0 1 0 1 +2432 32 32 -44.1 1092.25 85 4 1 2 21 0 3 0 3 +2433 32 33 -39.9 1092.25 85 6 1 2 21 0 5 0 5 +2434 32 34 -35.7 1092.25 89 3 1 2 22 0 2 0 2 +2435 32 35 -31.5 1092.25 89 1 1 2 22 0 0 0 0 +2436 32 36 -27.3 1092.25 89 2 1 2 22 0 1 0 1 +2437 32 37 -23.1 1092.25 89 4 1 2 22 0 3 0 3 +2438 32 38 -18.9 1092.25 93 3 1 2 23 0 2 0 2 +2439 32 39 -14.7 1092.25 93 1 1 2 23 0 0 0 0 +2440 32 40 -10.5 1092.25 93 2 1 2 23 0 1 0 1 +2441 32 41 -6.3 1092.25 93 4 1 2 23 0 3 0 3 +2442 32 42 -2.1 1092.25 93 6 1 2 23 0 5 0 5 +2443 32 43 2.1 1092.25 97 5 1 2 24 0 4 0 4 +2444 32 44 6.3 1092.25 97 3 1 2 24 0 2 0 2 +2445 32 45 10.5 1092.25 97 1 1 2 24 0 0 0 0 +2446 32 46 14.7 1092.25 97 2 1 2 24 0 1 0 1 +2447 32 47 18.9 1092.25 97 4 1 2 24 0 3 0 3 +2448 32 48 23.1 1092.25 101 3 1 2 25 0 2 0 2 +2449 32 49 27.3 1092.25 101 1 1 2 25 0 0 0 0 +2450 32 50 31.5 1092.25 101 2 1 2 25 0 1 0 1 +2451 32 51 35.7 1092.25 101 4 1 2 25 0 3 0 3 +2452 32 52 39.9 1092.25 105 5 1 2 26 0 4 0 4 +2453 32 53 44.1 1092.25 105 3 1 2 26 0 2 0 2 +2454 32 54 48.3 1092.25 105 1 1 2 26 0 0 0 0 +2455 32 55 52.5 1092.25 105 2 1 2 26 0 1 0 1 +2456 32 56 56.7 1092.25 105 4 1 2 26 0 3 0 3 +2457 32 57 60.9 1092.25 109 5 1 2 27 0 4 0 4 +2458 32 58 65.1 1092.25 109 3 1 2 27 0 2 0 2 +2459 32 59 69.3 1092.25 109 1 1 2 27 0 0 0 0 +2460 32 60 73.5 1092.25 109 2 1 2 27 0 1 0 1 +2461 32 61 77.7 1092.25 109 4 1 2 27 0 3 0 3 +2462 32 62 81.9 1092.25 113 3 1 2 28 0 2 0 2 +2463 32 63 86.1 1092.25 113 1 1 2 28 0 0 0 0 +2464 32 64 90.3 1092.25 113 2 1 2 28 0 1 0 1 +2465 32 65 94.5 1092.25 113 4 1 2 28 0 3 0 3 +2466 32 66 98.7 1092.25 113 6 1 2 28 0 5 0 5 +2467 32 67 102.9 1092.25 117 3 1 2 29 0 2 0 2 +2468 32 68 107.1 1092.25 117 1 1 2 29 0 0 0 0 +2469 32 69 111.3 1092.25 117 2 1 2 29 0 1 0 1 +2470 32 70 115.5 1092.25 117 4 1 2 29 0 3 0 3 +2471 32 71 119.7 1092.25 121 5 1 2 30 0 4 0 4 +2472 32 72 123.9 1092.25 121 3 1 2 30 0 2 0 2 +2473 32 73 128.1 1092.25 121 1 1 2 30 0 0 0 0 +2474 32 74 132.3 1092.25 121 2 1 2 30 0 1 0 1 +2475 32 75 136.5 1092.25 121 4 1 2 30 0 3 0 3 +2476 32 76 140.7 1092.25 125 3 1 2 31 0 2 0 2 +2477 32 77 144.9 1092.25 125 1 1 2 31 0 0 0 0 +2478 32 78 149.1 1092.25 125 2 1 2 31 0 1 0 1 +2479 32 79 153.3 1092.25 125 4 1 2 31 0 3 0 3 +2480 32 80 157.5 1092.25 125 6 1 2 31 0 5 0 5 +2481 32 81 161.7 1092.25 129 3 1 2 32 0 2 0 2 +2482 32 82 165.9 1092.25 129 1 1 2 32 0 0 0 0 +2483 32 83 170.1 1092.25 129 2 1 2 32 0 1 0 1 +2484 32 84 174.3 1092.25 129 4 1 2 32 0 3 0 3 +2485 32 85 178.5 1092.25 129 6 1 2 32 0 5 0 5 +2486 33 0 -178.5 1099.75 61 9 1 2 15 0 8 0 8 +2487 33 1 -174.3 1099.75 61 7 1 2 15 0 6 0 6 +2488 33 2 -170.1 1099.75 61 6 1 2 15 0 5 0 5 +2489 33 3 -165.9 1099.75 61 8 1 2 15 0 7 0 7 +2490 33 4 -161.7 1099.75 61 10 1 2 15 0 9 0 9 +2491 33 5 -157.5 1099.75 65 9 1 2 16 0 8 0 8 +2492 33 6 -153.3 1099.75 65 7 1 2 16 0 6 0 6 +2493 33 7 -149.1 1099.75 65 6 1 2 16 0 5 0 5 +2494 33 8 -144.9 1099.75 65 8 1 2 16 0 7 0 7 +2495 33 9 -140.7 1099.75 65 10 1 2 16 0 9 0 9 +2496 33 10 -136.5 1099.75 69 7 1 2 17 0 6 0 6 +2497 33 11 -132.3 1099.75 69 5 1 2 17 0 4 0 4 +2498 33 12 -128.1 1099.75 69 8 1 2 17 0 7 0 7 +2499 33 13 -123.9 1099.75 69 10 1 2 17 0 9 0 9 +2500 33 14 -119.7 1099.75 73 9 1 2 18 0 8 0 8 +2501 33 15 -115.5 1099.75 73 7 1 2 18 0 6 0 6 +2502 33 16 -111.3 1099.75 73 5 1 2 18 0 4 0 4 +2503 33 17 -107.1 1099.75 73 6 1 2 18 0 5 0 5 +2504 33 18 -102.9 1099.75 73 8 1 2 18 0 7 0 7 +2505 33 19 -98.7 1099.75 77 9 1 2 19 0 8 0 8 +2506 33 20 -94.5 1099.75 77 7 1 2 19 0 6 0 6 +2507 33 21 -90.3 1099.75 77 6 1 2 19 0 5 0 5 +2508 33 22 -86.1 1099.75 77 8 1 2 19 0 7 0 7 +2509 33 23 -81.9 1099.75 77 10 1 2 19 0 9 0 9 +2510 33 24 -77.7 1099.75 81 9 1 2 20 0 8 0 8 +2511 33 25 -73.5 1099.75 81 7 1 2 20 0 6 0 6 +2512 33 26 -69.3 1099.75 81 5 1 2 20 0 4 0 4 +2513 33 27 -65.1 1099.75 81 8 1 2 20 0 7 0 7 +2514 33 28 -60.9 1099.75 81 10 1 2 20 0 9 0 9 +2515 33 29 -56.7 1099.75 85 7 1 2 21 0 6 0 6 +2516 33 30 -52.5 1099.75 85 5 1 2 21 0 4 0 4 +2517 33 31 -48.3 1099.75 85 8 1 2 21 0 7 0 7 +2518 33 32 -44.1 1099.75 85 10 1 2 21 0 9 0 9 +2519 33 33 -39.9 1099.75 89 9 1 2 22 0 8 0 8 +2520 33 34 -35.7 1099.75 89 7 1 2 22 0 6 0 6 +2521 33 35 -31.5 1099.75 89 5 1 2 22 0 4 0 4 +2522 33 36 -27.3 1099.75 89 6 1 2 22 0 5 0 5 +2523 33 37 -23.1 1099.75 89 8 1 2 22 0 7 0 7 +2524 33 38 -18.9 1099.75 93 9 1 2 23 0 8 0 8 +2525 33 39 -14.7 1099.75 93 7 1 2 23 0 6 0 6 +2526 33 40 -10.5 1099.75 93 5 1 2 23 0 4 0 4 +2527 33 41 -6.3 1099.75 93 8 1 2 23 0 7 0 7 +2528 33 42 -2.1 1099.75 93 10 1 2 23 0 9 0 9 +2529 33 43 2.1 1099.75 97 9 1 2 24 0 8 0 8 +2530 33 44 6.3 1099.75 97 7 1 2 24 0 6 0 6 +2531 33 45 10.5 1099.75 97 6 1 2 24 0 5 0 5 +2532 33 46 14.7 1099.75 97 8 1 2 24 0 7 0 7 +2533 33 47 18.9 1099.75 97 10 1 2 24 0 9 0 9 +2534 33 48 23.1 1099.75 101 7 1 2 25 0 6 0 6 +2535 33 49 27.3 1099.75 101 5 1 2 25 0 4 0 4 +2536 33 50 31.5 1099.75 101 6 1 2 25 0 5 0 5 +2537 33 51 35.7 1099.75 101 8 1 2 25 0 7 0 7 +2538 33 52 39.9 1099.75 101 10 1 2 25 0 9 0 9 +2539 33 53 44.1 1099.75 105 9 1 2 26 0 8 0 8 +2540 33 54 48.3 1099.75 105 7 1 2 26 0 6 0 6 +2541 33 55 52.5 1099.75 105 6 1 2 26 0 5 0 5 +2542 33 56 56.7 1099.75 105 8 1 2 26 0 7 0 7 +2543 33 57 60.9 1099.75 109 9 1 2 27 0 8 0 8 +2544 33 58 65.1 1099.75 109 7 1 2 27 0 6 0 6 +2545 33 59 69.3 1099.75 109 6 1 2 27 0 5 0 5 +2546 33 60 73.5 1099.75 109 8 1 2 27 0 7 0 7 +2547 33 61 77.7 1099.75 109 10 1 2 27 0 9 0 9 +2548 33 62 81.9 1099.75 113 9 1 2 28 0 8 0 8 +2549 33 63 86.1 1099.75 113 7 1 2 28 0 6 0 6 +2550 33 64 90.3 1099.75 113 5 1 2 28 0 4 0 4 +2551 33 65 94.5 1099.75 113 8 1 2 28 0 7 0 7 +2552 33 66 98.7 1099.75 113 10 1 2 28 0 9 0 9 +2553 33 67 102.9 1099.75 117 7 1 2 29 0 6 0 6 +2554 33 68 107.1 1099.75 117 5 1 2 29 0 4 0 4 +2555 33 69 111.3 1099.75 117 6 1 2 29 0 5 0 5 +2556 33 70 115.5 1099.75 117 8 1 2 29 0 7 0 7 +2557 33 71 119.7 1099.75 117 10 1 2 29 0 9 0 9 +2558 33 72 123.9 1099.75 121 9 1 2 30 0 8 0 8 +2559 33 73 128.1 1099.75 121 7 1 2 30 0 6 0 6 +2560 33 74 132.3 1099.75 121 6 1 2 30 0 5 0 5 +2561 33 75 136.5 1099.75 121 8 1 2 30 0 7 0 7 +2562 33 76 140.7 1099.75 125 9 1 2 31 0 8 0 8 +2563 33 77 144.9 1099.75 125 7 1 2 31 0 6 0 6 +2564 33 78 149.1 1099.75 125 5 1 2 31 0 4 0 4 +2565 33 79 153.3 1099.75 125 8 1 2 31 0 7 0 7 +2566 33 80 157.5 1099.75 125 10 1 2 31 0 9 0 9 +2567 33 81 161.7 1099.75 129 9 1 2 32 0 8 0 8 +2568 33 82 165.9 1099.75 129 7 1 2 32 0 6 0 6 +2569 33 83 170.1 1099.75 129 5 1 2 32 0 4 0 4 +2570 33 84 174.3 1099.75 129 8 1 2 32 0 7 0 7 +2571 33 85 178.5 1099.75 129 10 1 2 32 0 9 0 9 +2572 34 0 -178.5 1107.25 61 15 1 2 15 0 14 0 14 +2573 34 1 -174.3 1107.25 61 13 1 2 15 0 12 0 12 +2574 34 2 -170.1 1107.25 61 11 1 2 15 0 10 0 10 +2575 34 3 -165.9 1107.25 61 12 1 2 15 0 11 0 11 +2576 34 4 -161.7 1107.25 61 14 1 2 15 0 13 0 13 +2577 34 5 -157.5 1107.25 65 13 1 2 16 0 12 0 12 +2578 34 6 -153.3 1107.25 65 11 1 2 16 0 10 0 10 +2579 34 7 -149.1 1107.25 65 12 1 2 16 0 11 0 11 +2580 34 8 -144.9 1107.25 65 14 1 2 16 0 13 0 13 +2581 34 9 -140.7 1107.25 69 13 1 2 17 0 12 0 12 +2582 34 10 -136.5 1107.25 69 11 1 2 17 0 10 0 10 +2583 34 11 -132.3 1107.25 69 9 1 2 17 0 8 0 8 +2584 34 12 -128.1 1107.25 69 12 1 2 17 0 11 0 11 +2585 34 13 -123.9 1107.25 69 14 1 2 17 0 13 0 13 +2586 34 14 -119.7 1107.25 73 13 1 2 18 0 12 0 12 +2587 34 15 -115.5 1107.25 73 11 1 2 18 0 10 0 10 +2588 34 16 -111.3 1107.25 73 10 1 2 18 0 9 0 9 +2589 34 17 -107.1 1107.25 73 12 1 2 18 0 11 0 11 +2590 34 18 -102.9 1107.25 73 14 1 2 18 0 13 0 13 +2591 34 19 -98.7 1107.25 77 15 1 2 19 0 14 0 14 +2592 34 20 -94.5 1107.25 77 13 1 2 19 0 12 0 12 +2593 34 21 -90.3 1107.25 77 11 1 2 19 0 10 0 10 +2594 34 22 -86.1 1107.25 77 12 1 2 19 0 11 0 11 +2595 34 23 -81.9 1107.25 77 14 1 2 19 0 13 0 13 +2596 34 24 -77.7 1107.25 81 13 1 2 20 0 12 0 12 +2597 34 25 -73.5 1107.25 81 11 1 2 20 0 10 0 10 +2598 34 26 -69.3 1107.25 81 12 1 2 20 0 11 0 11 +2599 34 27 -65.1 1107.25 81 14 1 2 20 0 13 0 13 +2600 34 28 -60.9 1107.25 81 16 1 2 20 0 15 0 15 +2601 34 29 -56.7 1107.25 85 11 1 2 21 0 10 0 10 +2602 34 30 -52.5 1107.25 85 9 1 2 21 0 8 0 8 +2603 34 31 -48.3 1107.25 85 12 1 2 21 0 11 0 11 +2604 34 32 -44.1 1107.25 85 14 1 2 21 0 13 0 13 +2605 34 33 -39.9 1107.25 89 13 1 2 22 0 12 0 12 +2606 34 34 -35.7 1107.25 89 11 1 2 22 0 10 0 10 +2607 34 35 -31.5 1107.25 89 10 1 2 22 0 9 0 9 +2608 34 36 -27.3 1107.25 89 12 1 2 22 0 11 0 11 +2609 34 37 -23.1 1107.25 89 14 1 2 22 0 13 0 13 +2610 34 38 -18.9 1107.25 93 13 1 2 23 0 12 0 12 +2611 34 39 -14.7 1107.25 93 11 1 2 23 0 10 0 10 +2612 34 40 -10.5 1107.25 93 12 1 2 23 0 11 0 11 +2613 34 41 -6.3 1107.25 93 14 1 2 23 0 13 0 13 +2614 34 42 -2.1 1107.25 93 16 1 2 23 0 15 0 15 +2615 34 43 2.1 1107.25 97 15 1 2 24 0 14 0 14 +2616 34 44 6.3 1107.25 97 13 1 2 24 0 12 0 12 +2617 34 45 10.5 1107.25 97 11 1 2 24 0 10 0 10 +2618 34 46 14.7 1107.25 97 12 1 2 24 0 11 0 11 +2619 34 47 18.9 1107.25 97 14 1 2 24 0 13 0 13 +2620 34 48 23.1 1107.25 101 13 1 2 25 0 12 0 12 +2621 34 49 27.3 1107.25 101 11 1 2 25 0 10 0 10 +2622 34 50 31.5 1107.25 101 9 1 2 25 0 8 0 8 +2623 34 51 35.7 1107.25 101 12 1 2 25 0 11 0 11 +2624 34 52 39.9 1107.25 101 14 1 2 25 0 13 0 13 +2625 34 53 44.1 1107.25 105 13 1 2 26 0 12 0 12 +2626 34 54 48.3 1107.25 105 11 1 2 26 0 10 0 10 +2627 34 55 52.5 1107.25 105 10 1 2 26 0 9 0 9 +2628 34 56 56.7 1107.25 105 12 1 2 26 0 11 0 11 +2629 34 57 60.9 1107.25 109 15 1 2 27 0 14 0 14 +2630 34 58 65.1 1107.25 109 13 1 2 27 0 12 0 12 +2631 34 59 69.3 1107.25 109 11 1 2 27 0 10 0 10 +2632 34 60 73.5 1107.25 109 12 1 2 27 0 11 0 11 +2633 34 61 77.7 1107.25 109 14 1 2 27 0 13 0 13 +2634 34 62 81.9 1107.25 113 13 1 2 28 0 12 0 12 +2635 34 63 86.1 1107.25 113 11 1 2 28 0 10 0 10 +2636 34 64 90.3 1107.25 113 12 1 2 28 0 11 0 11 +2637 34 65 94.5 1107.25 113 14 1 2 28 0 13 0 13 +2638 34 66 98.7 1107.25 113 16 1 2 28 0 15 0 15 +2639 34 67 102.9 1107.25 117 13 1 2 29 0 12 0 12 +2640 34 68 107.1 1107.25 117 11 1 2 29 0 10 0 10 +2641 34 69 111.3 1107.25 117 9 1 2 29 0 8 0 8 +2642 34 70 115.5 1107.25 117 12 1 2 29 0 11 0 11 +2643 34 71 119.7 1107.25 117 14 1 2 29 0 13 0 13 +2644 34 72 123.9 1107.25 121 13 1 2 30 0 12 0 12 +2645 34 73 128.1 1107.25 121 11 1 2 30 0 10 0 10 +2646 34 74 132.3 1107.25 121 10 1 2 30 0 9 0 9 +2647 34 75 136.5 1107.25 121 12 1 2 30 0 11 0 11 +2648 34 76 140.7 1107.25 121 14 1 2 30 0 13 0 13 +2649 34 77 144.9 1107.25 125 13 1 2 31 0 12 0 12 +2650 34 78 149.1 1107.25 125 11 1 2 31 0 10 0 10 +2651 34 79 153.3 1107.25 125 12 1 2 31 0 11 0 11 +2652 34 80 157.5 1107.25 125 14 1 2 31 0 13 0 13 +2653 34 81 161.7 1107.25 129 13 1 2 32 0 12 0 12 +2654 34 82 165.9 1107.25 129 11 1 2 32 0 10 0 10 +2655 34 83 170.1 1107.25 129 12 1 2 32 0 11 0 11 +2656 34 84 174.3 1107.25 129 14 1 2 32 0 13 0 13 +2657 34 85 178.5 1107.25 129 16 1 2 32 0 15 0 15 +2658 35 0 -182.7 1114.75 61 19 1 2 15 0 18 0 18 +2659 35 1 -178.5 1114.75 61 17 1 2 15 0 16 0 16 +2660 35 2 -174.3 1114.75 61 16 1 2 15 0 15 0 15 +2661 35 3 -170.1 1114.75 61 18 1 2 15 0 17 0 17 +2662 35 4 -165.9 1114.75 61 20 1 2 15 0 19 0 19 +2663 35 5 -161.7 1114.75 65 17 1 2 16 0 16 0 16 +2664 35 6 -157.5 1114.75 65 15 1 2 16 0 14 0 14 +2665 35 7 -153.3 1114.75 65 16 1 2 16 0 15 0 15 +2666 35 8 -149.1 1114.75 65 18 1 2 16 0 17 0 17 +2667 35 9 -144.9 1114.75 65 20 1 2 16 0 19 0 19 +2668 35 10 -140.7 1114.75 69 17 1 2 17 0 16 0 16 +2669 35 11 -136.5 1114.75 69 15 1 2 17 0 14 0 14 +2670 35 12 -132.3 1114.75 69 16 1 2 17 0 15 0 15 +2671 35 13 -128.1 1114.75 69 18 1 2 17 0 17 0 17 +2672 35 14 -123.9 1114.75 69 20 1 2 17 0 19 0 19 +2673 35 15 -119.7 1114.75 73 19 1 2 18 0 18 0 18 +2674 35 16 -115.5 1114.75 73 17 1 2 18 0 16 0 16 +2675 35 17 -111.3 1114.75 73 15 1 2 18 0 14 0 14 +2676 35 18 -107.1 1114.75 73 16 1 2 18 0 15 0 15 +2677 35 19 -102.9 1114.75 73 18 1 2 18 0 17 0 17 +2678 35 20 -98.7 1114.75 77 19 1 2 19 0 18 0 18 +2679 35 21 -94.5 1114.75 77 17 1 2 19 0 16 0 16 +2680 35 22 -90.3 1114.75 77 16 1 2 19 0 15 0 15 +2681 35 23 -86.1 1114.75 77 18 1 2 19 0 17 0 17 +2682 35 24 -81.9 1114.75 77 20 1 2 19 0 19 0 19 +2683 35 25 -77.7 1114.75 81 17 1 2 20 0 16 0 16 +2684 35 26 -73.5 1114.75 81 15 1 2 20 0 14 0 14 +2685 35 27 -69.3 1114.75 81 18 1 2 20 0 17 0 17 +2686 35 28 -65.1 1114.75 81 20 1 2 20 0 19 0 19 +2687 35 29 -60.9 1114.75 85 17 1 2 21 0 16 0 16 +2688 35 30 -56.7 1114.75 85 15 1 2 21 0 14 0 14 +2689 35 31 -52.5 1114.75 85 13 1 2 21 0 12 0 12 +2690 35 32 -48.3 1114.75 85 16 1 2 21 0 15 0 15 +2691 35 33 -44.1 1114.75 85 18 1 2 21 0 17 0 17 +2692 35 34 -39.9 1114.75 89 19 1 2 22 0 18 0 18 +2693 35 35 -35.7 1114.75 89 17 1 2 22 0 16 0 16 +2694 35 36 -31.5 1114.75 89 15 1 2 22 0 14 0 14 +2695 35 37 -27.3 1114.75 89 16 1 2 22 0 15 0 15 +2696 35 38 -23.1 1114.75 89 18 1 2 22 0 17 0 17 +2697 35 39 -18.9 1114.75 93 19 1 2 23 0 18 0 18 +2698 35 40 -14.7 1114.75 93 17 1 2 23 0 16 0 16 +2699 35 41 -10.5 1114.75 93 15 1 2 23 0 14 0 14 +2700 35 42 -6.3 1114.75 93 18 1 2 23 0 17 0 17 +2701 35 43 -2.1 1114.75 93 20 1 2 23 0 19 0 19 +2702 35 44 2.1 1114.75 97 19 1 2 24 0 18 0 18 +2703 35 45 6.3 1114.75 97 17 1 2 24 0 16 0 16 +2704 35 46 10.5 1114.75 97 16 1 2 24 0 15 0 15 +2705 35 47 14.7 1114.75 97 18 1 2 24 0 17 0 17 +2706 35 48 18.9 1114.75 97 20 1 2 24 0 19 0 19 +2707 35 49 23.1 1114.75 101 17 1 2 25 0 16 0 16 +2708 35 50 27.3 1114.75 101 15 1 2 25 0 14 0 14 +2709 35 51 31.5 1114.75 101 16 1 2 25 0 15 0 15 +2710 35 52 35.7 1114.75 101 18 1 2 25 0 17 0 17 +2711 35 53 39.9 1114.75 101 20 1 2 25 0 19 0 19 +2712 35 54 44.1 1114.75 105 17 1 2 26 0 16 0 16 +2713 35 55 48.3 1114.75 105 15 1 2 26 0 14 0 14 +2714 35 56 52.5 1114.75 105 14 1 2 26 0 13 0 13 +2715 35 57 56.7 1114.75 105 16 1 2 26 0 15 0 15 +2716 35 58 60.9 1114.75 105 18 1 2 26 0 17 0 17 +2717 35 59 65.1 1114.75 109 19 1 2 27 0 18 0 18 +2718 35 60 69.3 1114.75 109 17 1 2 27 0 16 0 16 +2719 35 61 73.5 1114.75 109 16 1 2 27 0 15 0 15 +2720 35 62 77.7 1114.75 109 18 1 2 27 0 17 0 17 +2721 35 63 81.9 1114.75 113 19 1 2 28 0 18 0 18 +2722 35 64 86.1 1114.75 113 17 1 2 28 0 16 0 16 +2723 35 65 90.3 1114.75 113 15 1 2 28 0 14 0 14 +2724 35 66 94.5 1114.75 113 18 1 2 28 0 17 0 17 +2725 35 67 98.7 1114.75 113 20 1 2 28 0 19 0 19 +2726 35 68 102.9 1114.75 117 17 1 2 29 0 16 0 16 +2727 35 69 107.1 1114.75 117 15 1 2 29 0 14 0 14 +2728 35 70 111.3 1114.75 117 16 1 2 29 0 15 0 15 +2729 35 71 115.5 1114.75 117 18 1 2 29 0 17 0 17 +2730 35 72 119.7 1114.75 117 20 1 2 29 0 19 0 19 +2731 35 73 123.9 1114.75 121 19 1 2 30 0 18 0 18 +2732 35 74 128.1 1114.75 121 17 1 2 30 0 16 0 16 +2733 35 75 132.3 1114.75 121 15 1 2 30 0 14 0 14 +2734 35 76 136.5 1114.75 121 16 1 2 30 0 15 0 15 +2735 35 77 140.7 1114.75 121 18 1 2 30 0 17 0 17 +2736 35 78 144.9 1114.75 125 19 1 2 31 0 18 0 18 +2737 35 79 149.1 1114.75 125 17 1 2 31 0 16 0 16 +2738 35 80 153.3 1114.75 125 15 1 2 31 0 14 0 14 +2739 35 81 157.5 1114.75 125 16 1 2 31 0 15 0 15 +2740 35 82 161.7 1114.75 125 18 1 2 31 0 17 0 17 +2741 35 83 165.9 1114.75 129 19 1 2 32 0 18 0 18 +2742 35 84 170.1 1114.75 129 17 1 2 32 0 16 0 16 +2743 35 85 174.3 1114.75 129 15 1 2 32 0 14 0 14 +2744 35 86 178.5 1114.75 129 18 1 2 32 0 17 0 17 +2745 35 87 182.7 1114.75 129 20 1 2 32 0 19 0 19 +2746 36 0 -182.7 1122.25 61 25 1 2 15 0 24 0 24 +2747 36 1 -178.5 1122.25 61 23 1 2 15 0 22 0 22 +2748 36 2 -174.3 1122.25 61 21 1 2 15 0 20 0 20 +2749 36 3 -170.1 1122.25 61 22 1 2 15 0 21 0 21 +2750 36 4 -165.9 1122.25 61 24 1 2 15 0 23 0 23 +2751 36 5 -161.7 1122.25 65 23 1 2 16 0 22 0 22 +2752 36 6 -157.5 1122.25 65 21 1 2 16 0 20 0 20 +2753 36 7 -153.3 1122.25 65 19 1 2 16 0 18 0 18 +2754 36 8 -149.1 1122.25 65 22 1 2 16 0 21 0 21 +2755 36 9 -144.9 1122.25 65 24 1 2 16 0 23 0 23 +2756 36 10 -140.7 1122.25 69 23 1 2 17 0 22 0 22 +2757 36 11 -136.5 1122.25 69 21 1 2 17 0 20 0 20 +2758 36 12 -132.3 1122.25 69 19 1 2 17 0 18 0 18 +2759 36 13 -128.1 1122.25 69 22 1 2 17 0 21 0 21 +2760 36 14 -123.9 1122.25 69 24 1 2 17 0 23 0 23 +2761 36 15 -119.7 1122.25 73 23 1 2 18 0 22 0 22 +2762 36 16 -115.5 1122.25 73 21 1 2 18 0 20 0 20 +2763 36 17 -111.3 1122.25 73 20 1 2 18 0 19 0 19 +2764 36 18 -107.1 1122.25 73 22 1 2 18 0 21 0 21 +2765 36 19 -102.9 1122.25 73 24 1 2 18 0 23 0 23 +2766 36 20 -98.7 1122.25 77 23 1 2 19 0 22 0 22 +2767 36 21 -94.5 1122.25 77 21 1 2 19 0 20 0 20 +2768 36 22 -90.3 1122.25 77 22 1 2 19 0 21 0 21 +2769 36 23 -86.1 1122.25 77 24 1 2 19 0 23 0 23 +2770 36 24 -81.9 1122.25 81 23 1 2 20 0 22 0 22 +2771 36 25 -77.7 1122.25 81 21 1 2 20 0 20 0 20 +2772 36 26 -73.5 1122.25 81 19 1 2 20 0 18 0 18 +2773 36 27 -69.3 1122.25 81 22 1 2 20 0 21 0 21 +2774 36 28 -65.1 1122.25 81 24 1 2 20 0 23 0 23 +2775 36 29 -60.9 1122.25 85 23 1 2 21 0 22 0 22 +2776 36 30 -56.7 1122.25 85 21 1 2 21 0 20 0 20 +2777 36 31 -52.5 1122.25 85 19 1 2 21 0 18 0 18 +2778 36 32 -48.3 1122.25 85 20 1 2 21 0 19 0 19 +2779 36 33 -44.1 1122.25 85 22 1 2 21 0 21 0 21 +2780 36 34 -39.9 1122.25 89 23 1 2 22 0 22 0 22 +2781 36 35 -35.7 1122.25 89 21 1 2 22 0 20 0 20 +2782 36 36 -31.5 1122.25 89 20 1 2 22 0 19 0 19 +2783 36 37 -27.3 1122.25 89 22 1 2 22 0 21 0 21 +2784 36 38 -23.1 1122.25 89 24 1 2 22 0 23 0 23 +2785 36 39 -18.9 1122.25 93 23 1 2 23 0 22 0 22 +2786 36 40 -14.7 1122.25 93 21 1 2 23 0 20 0 20 +2787 36 41 -10.5 1122.25 93 22 1 2 23 0 21 0 21 +2788 36 42 -6.3 1122.25 93 24 1 2 23 0 23 0 23 +2789 36 43 -2.1 1122.25 93 26 1 2 23 0 25 0 25 +2790 36 44 2.1 1122.25 97 25 1 2 24 0 24 0 24 +2791 36 45 6.3 1122.25 97 23 1 2 24 0 22 0 22 +2792 36 46 10.5 1122.25 97 21 1 2 24 0 20 0 20 +2793 36 47 14.7 1122.25 97 22 1 2 24 0 21 0 21 +2794 36 48 18.9 1122.25 97 24 1 2 24 0 23 0 23 +2795 36 49 23.1 1122.25 101 23 1 2 25 0 22 0 22 +2796 36 50 27.3 1122.25 101 21 1 2 25 0 20 0 20 +2797 36 51 31.5 1122.25 101 19 1 2 25 0 18 0 18 +2798 36 52 35.7 1122.25 101 22 1 2 25 0 21 0 21 +2799 36 53 39.9 1122.25 101 24 1 2 25 0 23 0 23 +2800 36 54 44.1 1122.25 105 21 1 2 26 0 20 0 20 +2801 36 55 48.3 1122.25 105 19 1 2 26 0 18 0 18 +2802 36 56 52.5 1122.25 105 20 1 2 26 0 19 0 19 +2803 36 57 56.7 1122.25 105 22 1 2 26 0 21 0 21 +2804 36 58 60.9 1122.25 105 24 1 2 26 0 23 0 23 +2805 36 59 65.1 1122.25 109 23 1 2 27 0 22 0 22 +2806 36 60 69.3 1122.25 109 21 1 2 27 0 20 0 20 +2807 36 61 73.5 1122.25 109 20 1 2 27 0 19 0 19 +2808 36 62 77.7 1122.25 109 22 1 2 27 0 21 0 21 +2809 36 63 81.9 1122.25 109 24 1 2 27 0 23 0 23 +2810 36 64 86.1 1122.25 113 23 1 2 28 0 22 0 22 +2811 36 65 90.3 1122.25 113 21 1 2 28 0 20 0 20 +2812 36 66 94.5 1122.25 113 22 1 2 28 0 21 0 21 +2813 36 67 98.7 1122.25 113 24 1 2 28 0 23 0 23 +2814 36 68 102.9 1122.25 117 23 1 2 29 0 22 0 22 +2815 36 69 107.1 1122.25 117 21 1 2 29 0 20 0 20 +2816 36 70 111.3 1122.25 117 19 1 2 29 0 18 0 18 +2817 36 71 115.5 1122.25 117 22 1 2 29 0 21 0 21 +2818 36 72 119.7 1122.25 117 24 1 2 29 0 23 0 23 +2819 36 73 123.9 1122.25 121 23 1 2 30 0 22 0 22 +2820 36 74 128.1 1122.25 121 21 1 2 30 0 20 0 20 +2821 36 75 132.3 1122.25 121 20 1 2 30 0 19 0 19 +2822 36 76 136.5 1122.25 121 22 1 2 30 0 21 0 21 +2823 36 77 140.7 1122.25 121 24 1 2 30 0 23 0 23 +2824 36 78 144.9 1122.25 125 23 1 2 31 0 22 0 22 +2825 36 79 149.1 1122.25 125 21 1 2 31 0 20 0 20 +2826 36 80 153.3 1122.25 125 20 1 2 31 0 19 0 19 +2827 36 81 157.5 1122.25 125 22 1 2 31 0 21 0 21 +2828 36 82 161.7 1122.25 125 24 1 2 31 0 23 0 23 +2829 36 83 165.9 1122.25 129 23 1 2 32 0 22 0 22 +2830 36 84 170.1 1122.25 129 21 1 2 32 0 20 0 20 +2831 36 85 174.3 1122.25 129 22 1 2 32 0 21 0 21 +2832 36 86 178.5 1122.25 129 24 1 2 32 0 23 0 23 +2833 36 87 182.7 1122.25 129 26 1 2 32 0 25 0 25 +2834 37 0 -182.7 1129.75 61 29 1 2 15 0 28 0 28 +2835 37 1 -178.5 1129.75 61 27 1 2 15 0 26 0 26 +2836 37 2 -174.3 1129.75 61 26 1 2 15 0 25 0 25 +2837 37 3 -170.1 1129.75 61 28 1 2 15 0 27 0 27 +2838 37 4 -165.9 1129.75 61 30 1 2 15 0 29 0 29 +2839 37 5 -161.7 1129.75 65 27 1 2 16 0 26 0 26 +2840 37 6 -157.5 1129.75 65 25 1 2 16 0 24 0 24 +2841 37 7 -153.3 1129.75 65 26 1 2 16 0 25 0 25 +2842 37 8 -149.1 1129.75 65 28 1 2 16 0 27 0 27 +2843 37 9 -144.9 1129.75 65 30 1 2 16 0 29 0 29 +2844 37 10 -140.7 1129.75 69 27 1 2 17 0 26 0 26 +2845 37 11 -136.5 1129.75 69 25 1 2 17 0 24 0 24 +2846 37 12 -132.3 1129.75 69 26 1 2 17 0 25 0 25 +2847 37 13 -128.1 1129.75 69 28 1 2 17 0 27 0 27 +2848 37 14 -123.9 1129.75 69 30 1 2 17 0 29 0 29 +2849 37 15 -119.7 1129.75 73 27 1 2 18 0 26 0 26 +2850 37 16 -115.5 1129.75 73 25 1 2 18 0 24 0 24 +2851 37 17 -111.3 1129.75 73 26 1 2 18 0 25 0 25 +2852 37 18 -107.1 1129.75 73 28 1 2 18 0 27 0 27 +2853 37 19 -102.9 1129.75 77 29 1 2 19 0 28 0 28 +2854 37 20 -98.7 1129.75 77 27 1 2 19 0 26 0 26 +2855 37 21 -94.5 1129.75 77 25 1 2 19 0 24 0 24 +2856 37 22 -90.3 1129.75 77 26 1 2 19 0 25 0 25 +2857 37 23 -86.1 1129.75 77 28 1 2 19 0 27 0 27 +2858 37 24 -81.9 1129.75 81 29 1 2 20 0 28 0 28 +2859 37 25 -77.7 1129.75 81 27 1 2 20 0 26 0 26 +2860 37 26 -73.5 1129.75 81 25 1 2 20 0 24 0 24 +2861 37 27 -69.3 1129.75 81 26 1 2 20 0 25 0 25 +2862 37 28 -65.1 1129.75 81 28 1 2 20 0 27 0 27 +2863 37 29 -60.9 1129.75 85 27 1 2 21 0 26 0 26 +2864 37 30 -56.7 1129.75 85 25 1 2 21 0 24 0 24 +2865 37 31 -52.5 1129.75 85 24 1 2 21 0 23 0 23 +2866 37 32 -48.3 1129.75 85 26 1 2 21 0 25 0 25 +2867 37 33 -44.1 1129.75 85 28 1 2 21 0 27 0 27 +2868 37 34 -39.9 1129.75 89 29 1 2 22 0 28 0 28 +2869 37 35 -35.7 1129.75 89 27 1 2 22 0 26 0 26 +2870 37 36 -31.5 1129.75 89 25 1 2 22 0 24 0 24 +2871 37 37 -27.3 1129.75 89 26 1 2 22 0 25 0 25 +2872 37 38 -23.1 1129.75 89 28 1 2 22 0 27 0 27 +2873 37 39 -18.9 1129.75 93 29 1 2 23 0 28 0 28 +2874 37 40 -14.7 1129.75 93 27 1 2 23 0 26 0 26 +2875 37 41 -10.5 1129.75 93 25 1 2 23 0 24 0 24 +2876 37 42 -6.3 1129.75 93 28 1 2 23 0 27 0 27 +2877 37 43 -2.1 1129.75 93 30 1 2 23 0 29 0 29 +2878 37 44 2.1 1129.75 97 29 1 2 24 0 28 0 28 +2879 37 45 6.3 1129.75 97 27 1 2 24 0 26 0 26 +2880 37 46 10.5 1129.75 97 26 1 2 24 0 25 0 25 +2881 37 47 14.7 1129.75 97 28 1 2 24 0 27 0 27 +2882 37 48 18.9 1129.75 97 30 1 2 24 0 29 0 29 +2883 37 49 23.1 1129.75 101 27 1 2 25 0 26 0 26 +2884 37 50 27.3 1129.75 101 25 1 2 25 0 24 0 24 +2885 37 51 31.5 1129.75 101 26 1 2 25 0 25 0 25 +2886 37 52 35.7 1129.75 101 28 1 2 25 0 27 0 27 +2887 37 53 39.9 1129.75 101 30 1 2 25 0 29 0 29 +2888 37 54 44.1 1129.75 105 27 1 2 26 0 26 0 26 +2889 37 55 48.3 1129.75 105 25 1 2 26 0 24 0 24 +2890 37 56 52.5 1129.75 105 23 1 2 26 0 22 0 22 +2891 37 57 56.7 1129.75 105 26 1 2 26 0 25 0 25 +2892 37 58 60.9 1129.75 105 28 1 2 26 0 27 0 27 +2893 37 59 65.1 1129.75 109 27 1 2 27 0 26 0 26 +2894 37 60 69.3 1129.75 109 25 1 2 27 0 24 0 24 +2895 37 61 73.5 1129.75 109 26 1 2 27 0 25 0 25 +2896 37 62 77.7 1129.75 109 28 1 2 27 0 27 0 27 +2897 37 63 81.9 1129.75 109 30 1 2 27 0 29 0 29 +2898 37 64 86.1 1129.75 113 27 1 2 28 0 26 0 26 +2899 37 65 90.3 1129.75 113 25 1 2 28 0 24 0 24 +2900 37 66 94.5 1129.75 113 26 1 2 28 0 25 0 25 +2901 37 67 98.7 1129.75 113 28 1 2 28 0 27 0 27 +2902 37 68 102.9 1129.75 113 30 1 2 28 0 29 0 29 +2903 37 69 107.1 1129.75 117 27 1 2 29 0 26 0 26 +2904 37 70 111.3 1129.75 117 25 1 2 29 0 24 0 24 +2905 37 71 115.5 1129.75 117 26 1 2 29 0 25 0 25 +2906 37 72 119.7 1129.75 117 28 1 2 29 0 27 0 27 +2907 37 73 123.9 1129.75 121 29 1 2 30 0 28 0 28 +2908 37 74 128.1 1129.75 121 27 1 2 30 0 26 0 26 +2909 37 75 132.3 1129.75 121 25 1 2 30 0 24 0 24 +2910 37 76 136.5 1129.75 121 26 1 2 30 0 25 0 25 +2911 37 77 140.7 1129.75 121 28 1 2 30 0 27 0 27 +2912 37 78 144.9 1129.75 125 29 1 2 31 0 28 0 28 +2913 37 79 149.1 1129.75 125 27 1 2 31 0 26 0 26 +2914 37 80 153.3 1129.75 125 25 1 2 31 0 24 0 24 +2915 37 81 157.5 1129.75 125 26 1 2 31 0 25 0 25 +2916 37 82 161.7 1129.75 125 28 1 2 31 0 27 0 27 +2917 37 83 165.9 1129.75 129 29 1 2 32 0 28 0 28 +2918 37 84 170.1 1129.75 129 27 1 2 32 0 26 0 26 +2919 37 85 174.3 1129.75 129 25 1 2 32 0 24 0 24 +2920 37 86 178.5 1129.75 129 28 1 2 32 0 27 0 27 +2921 37 87 182.7 1129.75 129 30 1 2 32 0 29 0 29 +2922 38 0 -186.9 1137.25 61 35 1 2 15 0 34 1 2 +2923 38 1 -182.7 1137.25 61 33 1 2 15 0 32 1 0 +2924 38 2 -178.5 1137.25 61 31 1 2 15 0 30 0 30 +2925 38 3 -174.3 1137.25 61 32 1 2 15 0 31 0 31 +2926 38 4 -170.1 1137.25 61 34 1 2 15 0 33 1 1 +2927 38 5 -165.9 1137.25 65 33 1 2 16 0 32 1 0 +2928 38 6 -161.7 1137.25 65 31 1 2 16 0 30 0 30 +2929 38 7 -157.5 1137.25 65 29 1 2 16 0 28 0 28 +2930 38 8 -153.3 1137.25 65 32 1 2 16 0 31 0 31 +2931 38 9 -149.1 1137.25 65 34 1 2 16 0 33 1 1 +2932 38 10 -144.9 1137.25 69 33 1 2 17 0 32 1 0 +2933 38 11 -140.7 1137.25 69 31 1 2 17 0 30 0 30 +2934 38 12 -136.5 1137.25 69 29 1 2 17 0 28 0 28 +2935 38 13 -132.3 1137.25 69 32 1 2 17 0 31 0 31 +2936 38 14 -128.1 1137.25 69 34 1 2 17 0 33 1 1 +2937 38 15 -123.9 1137.25 73 31 1 2 18 0 30 0 30 +2938 38 16 -119.7 1137.25 73 29 1 2 18 0 28 0 28 +2939 38 17 -115.5 1137.25 73 30 1 2 18 0 29 0 29 +2940 38 18 -111.3 1137.25 73 32 1 2 18 0 31 0 31 +2941 38 19 -107.1 1137.25 73 34 1 2 18 0 33 1 1 +2942 38 20 -102.9 1137.25 77 33 1 2 19 0 32 1 0 +2943 38 21 -98.7 1137.25 77 31 1 2 19 0 30 0 30 +2944 38 22 -94.5 1137.25 77 30 1 2 19 0 29 0 29 +2945 38 23 -90.3 1137.25 77 32 1 2 19 0 31 0 31 +2946 38 24 -86.1 1137.25 77 34 1 2 19 0 33 1 1 +2947 38 25 -81.9 1137.25 81 33 1 2 20 0 32 1 0 +2948 38 26 -77.7 1137.25 81 31 1 2 20 0 30 0 30 +2949 38 27 -73.5 1137.25 81 30 1 2 20 0 29 0 29 +2950 38 28 -69.3 1137.25 81 32 1 2 20 0 31 0 31 +2951 38 29 -65.1 1137.25 81 34 1 2 20 0 33 1 1 +2952 38 30 -60.9 1137.25 85 33 1 2 21 0 32 1 0 +2953 38 31 -56.7 1137.25 85 31 1 2 21 0 30 0 30 +2954 38 32 -52.5 1137.25 85 29 1 2 21 0 28 0 28 +2955 38 33 -48.3 1137.25 85 30 1 2 21 0 29 0 29 +2956 38 34 -44.1 1137.25 85 32 1 2 21 0 31 0 31 +2957 38 35 -39.9 1137.25 89 33 1 2 22 0 32 1 0 +2958 38 36 -35.7 1137.25 89 31 1 2 22 0 30 0 30 +2959 38 37 -31.5 1137.25 89 30 1 2 22 0 29 0 29 +2960 38 38 -27.3 1137.25 89 32 1 2 22 0 31 0 31 +2961 38 39 -23.1 1137.25 89 34 1 2 22 0 33 1 1 +2962 38 40 -18.9 1137.25 93 33 1 2 23 0 32 1 0 +2963 38 41 -14.7 1137.25 93 31 1 2 23 0 30 0 30 +2964 38 42 -10.5 1137.25 93 32 1 2 23 0 31 0 31 +2965 38 43 -6.3 1137.25 93 34 1 2 23 0 33 1 1 +2966 38 44 -2.1 1137.25 93 36 1 2 23 0 35 1 3 +2967 38 45 2.1 1137.25 97 35 1 2 24 0 34 1 2 +2968 38 46 6.3 1137.25 97 33 1 2 24 0 32 1 0 +2969 38 47 10.5 1137.25 97 31 1 2 24 0 30 0 30 +2970 38 48 14.7 1137.25 97 32 1 2 24 0 31 0 31 +2971 38 49 18.9 1137.25 97 34 1 2 24 0 33 1 1 +2972 38 50 23.1 1137.25 101 33 1 2 25 0 32 1 0 +2973 38 51 27.3 1137.25 101 31 1 2 25 0 30 0 30 +2974 38 52 31.5 1137.25 101 29 1 2 25 0 28 0 28 +2975 38 53 35.7 1137.25 101 32 1 2 25 0 31 0 31 +2976 38 54 39.9 1137.25 101 34 1 2 25 0 33 1 1 +2977 38 55 44.1 1137.25 105 31 1 2 26 0 30 0 30 +2978 38 56 48.3 1137.25 105 29 1 2 26 0 28 0 28 +2979 38 57 52.5 1137.25 105 30 1 2 26 0 29 0 29 +2980 38 58 56.7 1137.25 105 32 1 2 26 0 31 0 31 +2981 38 59 60.9 1137.25 105 34 1 2 26 0 33 1 1 +2982 38 60 65.1 1137.25 109 33 1 2 27 0 32 1 0 +2983 38 61 69.3 1137.25 109 31 1 2 27 0 30 0 30 +2984 38 62 73.5 1137.25 109 29 1 2 27 0 28 0 28 +2985 38 63 77.7 1137.25 109 32 1 2 27 0 31 0 31 +2986 38 64 81.9 1137.25 109 34 1 2 27 0 33 1 1 +2987 38 65 86.1 1137.25 113 33 1 2 28 0 32 1 0 +2988 38 66 90.3 1137.25 113 31 1 2 28 0 30 0 30 +2989 38 67 94.5 1137.25 113 29 1 2 28 0 28 0 28 +2990 38 68 98.7 1137.25 113 32 1 2 28 0 31 0 31 +2991 38 69 102.9 1137.25 113 34 1 2 28 0 33 1 1 +2992 38 70 107.1 1137.25 117 33 1 2 29 0 32 1 0 +2993 38 71 111.3 1137.25 117 31 1 2 29 0 30 0 30 +2994 38 72 115.5 1137.25 117 29 1 2 29 0 28 0 28 +2995 38 73 119.7 1137.25 117 30 1 2 29 0 29 0 29 +2996 38 74 123.9 1137.25 117 32 1 2 29 0 31 0 31 +2997 38 75 128.1 1137.25 121 33 1 2 30 0 32 1 0 +2998 38 76 132.3 1137.25 121 31 1 2 30 0 30 0 30 +2999 38 77 136.5 1137.25 121 30 1 2 30 0 29 0 29 +3000 38 78 140.7 1137.25 121 32 1 2 30 0 31 0 31 +3001 38 79 144.9 1137.25 121 34 1 2 30 0 33 1 1 +3002 38 80 149.1 1137.25 125 33 1 2 31 0 32 1 0 +3003 38 81 153.3 1137.25 125 31 1 2 31 0 30 0 30 +3004 38 82 157.5 1137.25 125 30 1 2 31 0 29 0 29 +3005 38 83 161.7 1137.25 125 32 1 2 31 0 31 0 31 +3006 38 84 165.9 1137.25 125 34 1 2 31 0 33 1 1 +3007 38 85 170.1 1137.25 129 33 1 2 32 0 32 1 0 +3008 38 86 174.3 1137.25 129 31 1 2 32 0 30 0 30 +3009 38 87 178.5 1137.25 129 32 1 2 32 0 31 0 31 +3010 38 88 182.7 1137.25 129 34 1 2 32 0 33 1 1 +3011 38 89 186.9 1137.25 129 36 1 2 32 0 35 1 3 +3012 39 0 -186.9 1144.75 61 39 1 2 15 0 38 1 6 +3013 39 1 -182.7 1144.75 61 37 1 2 15 0 36 1 4 +3014 39 2 -178.5 1144.75 61 36 1 2 15 0 35 1 3 +3015 39 3 -174.3 1144.75 61 38 1 2 15 0 37 1 5 +3016 39 4 -170.1 1144.75 61 40 1 2 15 0 39 1 7 +3017 39 5 -165.9 1144.75 65 37 1 2 16 0 36 1 4 +3018 39 6 -161.7 1144.75 65 35 1 2 16 0 34 1 2 +3019 39 7 -157.5 1144.75 65 36 1 2 16 0 35 1 3 +3020 39 8 -153.3 1144.75 65 38 1 2 16 0 37 1 5 +3021 39 9 -149.1 1144.75 65 40 1 2 16 0 39 1 7 +3022 39 10 -144.9 1144.75 69 39 1 2 17 0 38 1 6 +3023 39 11 -140.7 1144.75 69 37 1 2 17 0 36 1 4 +3024 39 12 -136.5 1144.75 69 35 1 2 17 0 34 1 2 +3025 39 13 -132.3 1144.75 69 36 1 2 17 0 35 1 3 +3026 39 14 -128.1 1144.75 69 38 1 2 17 0 37 1 5 +3027 39 15 -123.9 1144.75 73 35 1 2 18 0 34 1 2 +3028 39 16 -119.7 1144.75 73 33 1 2 18 0 32 1 0 +3029 39 17 -115.5 1144.75 73 36 1 2 18 0 35 1 3 +3030 39 18 -111.3 1144.75 73 38 1 2 18 0 37 1 5 +3031 39 19 -107.1 1144.75 73 40 1 2 18 0 39 1 7 +3032 39 20 -102.9 1144.75 77 39 1 2 19 0 38 1 6 +3033 39 21 -98.7 1144.75 77 37 1 2 19 0 36 1 4 +3034 39 22 -94.5 1144.75 77 35 1 2 19 0 34 1 2 +3035 39 23 -90.3 1144.75 77 36 1 2 19 0 35 1 3 +3036 39 24 -86.1 1144.75 77 38 1 2 19 0 37 1 5 +3037 39 25 -81.9 1144.75 81 37 1 2 20 0 36 1 4 +3038 39 26 -77.7 1144.75 81 35 1 2 20 0 34 1 2 +3039 39 27 -73.5 1144.75 81 36 1 2 20 0 35 1 3 +3040 39 28 -69.3 1144.75 81 38 1 2 20 0 37 1 5 +3041 39 29 -65.1 1144.75 81 40 1 2 20 0 39 1 7 +3042 39 30 -60.9 1144.75 85 39 1 2 21 0 38 1 6 +3043 39 31 -56.7 1144.75 85 37 1 2 21 0 36 1 4 +3044 39 32 -52.5 1144.75 85 35 1 2 21 0 34 1 2 +3045 39 33 -48.3 1144.75 85 34 1 2 21 0 33 1 1 +3046 39 34 -44.1 1144.75 85 36 1 2 21 0 35 1 3 +3047 39 35 -39.9 1144.75 89 37 1 2 22 0 36 1 4 +3048 39 36 -35.7 1144.75 89 35 1 2 22 0 34 1 2 +3049 39 37 -31.5 1144.75 89 36 1 2 22 0 35 1 3 +3050 39 38 -27.3 1144.75 89 38 1 2 22 0 37 1 5 +3051 39 39 -23.1 1144.75 89 40 1 2 22 0 39 1 7 +3052 39 40 -18.9 1144.75 93 39 1 2 23 0 38 1 6 +3053 39 41 -14.7 1144.75 93 37 1 2 23 0 36 1 4 +3054 39 42 -10.5 1144.75 93 35 1 2 23 0 34 1 2 +3055 39 43 -6.3 1144.75 93 38 1 2 23 0 37 1 5 +3056 39 44 -2.1 1144.75 93 40 1 2 23 0 39 1 7 +3057 39 45 2.1 1144.75 97 39 1 2 24 0 38 1 6 +3058 39 46 6.3 1144.75 97 37 1 2 24 0 36 1 4 +3059 39 47 10.5 1144.75 97 36 1 2 24 0 35 1 3 +3060 39 48 14.7 1144.75 97 38 1 2 24 0 37 1 5 +3061 39 49 18.9 1144.75 97 40 1 2 24 0 39 1 7 +3062 39 50 23.1 1144.75 101 39 1 2 25 0 38 1 6 +3063 39 51 27.3 1144.75 101 37 1 2 25 0 36 1 4 +3064 39 52 31.5 1144.75 101 35 1 2 25 0 34 1 2 +3065 39 53 35.7 1144.75 101 36 1 2 25 0 35 1 3 +3066 39 54 39.9 1144.75 101 38 1 2 25 0 37 1 5 +3067 39 55 44.1 1144.75 105 35 1 2 26 0 34 1 2 +3068 39 56 48.3 1144.75 105 33 1 2 26 0 32 1 0 +3069 39 57 52.5 1144.75 105 36 1 2 26 0 35 1 3 +3070 39 58 56.7 1144.75 105 38 1 2 26 0 37 1 5 +3071 39 59 60.9 1144.75 105 40 1 2 26 0 39 1 7 +3072 39 60 65.1 1144.75 109 39 1 2 27 0 38 1 6 +3073 39 61 69.3 1144.75 109 37 1 2 27 0 36 1 4 +3074 39 62 73.5 1144.75 109 35 1 2 27 0 34 1 2 +3075 39 63 77.7 1144.75 109 36 1 2 27 0 35 1 3 +3076 39 64 81.9 1144.75 109 38 1 2 27 0 37 1 5 +3077 39 65 86.1 1144.75 113 37 1 2 28 0 36 1 4 +3078 39 66 90.3 1144.75 113 35 1 2 28 0 34 1 2 +3079 39 67 94.5 1144.75 113 36 1 2 28 0 35 1 3 +3080 39 68 98.7 1144.75 113 38 1 2 28 0 37 1 5 +3081 39 69 102.9 1144.75 113 40 1 2 28 0 39 1 7 +3082 39 70 107.1 1144.75 117 39 1 2 29 0 38 1 6 +3083 39 71 111.3 1144.75 117 37 1 2 29 0 36 1 4 +3084 39 72 115.5 1144.75 117 35 1 2 29 0 34 1 2 +3085 39 73 119.7 1144.75 117 34 1 2 29 0 33 1 1 +3086 39 74 123.9 1144.75 117 36 1 2 29 0 35 1 3 +3087 39 75 128.1 1144.75 121 37 1 2 30 0 36 1 4 +3088 39 76 132.3 1144.75 121 35 1 2 30 0 34 1 2 +3089 39 77 136.5 1144.75 121 36 1 2 30 0 35 1 3 +3090 39 78 140.7 1144.75 121 38 1 2 30 0 37 1 5 +3091 39 79 144.9 1144.75 121 40 1 2 30 0 39 1 7 +3092 39 80 149.1 1144.75 125 39 1 2 31 0 38 1 6 +3093 39 81 153.3 1144.75 125 37 1 2 31 0 36 1 4 +3094 39 82 157.5 1144.75 125 35 1 2 31 0 34 1 2 +3095 39 83 161.7 1144.75 125 36 1 2 31 0 35 1 3 +3096 39 84 165.9 1144.75 125 38 1 2 31 0 37 1 5 +3097 39 85 170.1 1144.75 129 39 1 2 32 0 38 1 6 +3098 39 86 174.3 1144.75 129 37 1 2 32 0 36 1 4 +3099 39 87 178.5 1144.75 129 35 1 2 32 0 34 1 2 +3100 39 88 182.7 1144.75 129 38 1 2 32 0 37 1 5 +3101 39 89 186.9 1144.75 129 40 1 2 32 0 39 1 7 +3102 40 0 -186.9 1152.25 62 5 1 2 15 1 44 1 12 +3103 40 1 -182.7 1152.25 62 3 1 2 15 1 42 1 10 +3104 40 2 -178.5 1152.25 62 1 1 2 15 1 40 1 8 +3105 40 3 -174.3 1152.25 62 2 1 2 15 1 41 1 9 +3106 40 4 -170.1 1152.25 62 4 1 2 15 1 43 1 11 +3107 40 5 -165.9 1152.25 65 39 1 2 16 0 38 1 6 +3108 40 6 -161.7 1152.25 66 3 1 2 16 1 42 1 10 +3109 40 7 -157.5 1152.25 66 1 1 2 16 1 40 1 8 +3110 40 8 -153.3 1152.25 66 2 1 2 16 1 41 1 9 +3111 40 9 -149.1 1152.25 66 4 1 2 16 1 43 1 11 +3112 40 10 -144.9 1152.25 70 3 1 2 17 1 42 1 10 +3113 40 11 -140.7 1152.25 70 1 1 2 17 1 40 1 8 +3114 40 12 -136.5 1152.25 70 2 1 2 17 1 41 1 9 +3115 40 13 -132.3 1152.25 70 4 1 2 17 1 43 1 11 +3116 40 14 -128.1 1152.25 69 40 1 2 17 0 39 1 7 +3117 40 15 -123.9 1152.25 73 39 1 2 18 0 38 1 6 +3118 40 16 -119.7 1152.25 73 37 1 2 18 0 36 1 4 +3119 40 17 -115.5 1152.25 74 2 1 2 18 1 41 1 9 +3120 40 18 -111.3 1152.25 74 4 1 2 18 1 43 1 11 +3121 40 19 -107.1 1152.25 74 6 1 2 18 1 45 1 13 +3122 40 20 -102.9 1152.25 78 3 1 2 19 1 42 1 10 +3123 40 21 -98.7 1152.25 78 1 1 2 19 1 40 1 8 +3124 40 22 -94.5 1152.25 78 2 1 2 19 1 41 1 9 +3125 40 23 -90.3 1152.25 78 4 1 2 19 1 43 1 11 +3126 40 24 -86.1 1152.25 77 40 1 2 19 0 39 1 7 +3127 40 25 -81.9 1152.25 81 39 1 2 20 0 38 1 6 +3128 40 26 -77.7 1152.25 82 3 1 2 20 1 42 1 10 +3129 40 27 -73.5 1152.25 82 1 1 2 20 1 40 1 8 +3130 40 28 -69.3 1152.25 82 2 1 2 20 1 41 1 9 +3131 40 29 -65.1 1152.25 82 4 1 2 20 1 43 1 11 +3132 40 30 -60.9 1152.25 86 5 1 2 21 1 44 1 12 +3133 40 31 -56.7 1152.25 86 3 1 2 21 1 42 1 10 +3134 40 32 -52.5 1152.25 86 1 1 2 21 1 40 1 8 +3135 40 33 -48.3 1152.25 85 38 1 2 21 0 37 1 5 +3136 40 34 -44.1 1152.25 85 40 1 2 21 0 39 1 7 +3137 40 35 -39.9 1152.25 89 39 1 2 22 0 38 1 6 +3138 40 36 -35.7 1152.25 90 3 1 2 22 1 42 1 10 +3139 40 37 -31.5 1152.25 90 1 1 2 22 1 40 1 8 +3140 40 38 -27.3 1152.25 90 2 1 2 22 1 41 1 9 +3141 40 39 -23.1 1152.25 90 4 1 2 22 1 43 1 11 +3142 40 40 -18.9 1152.25 94 3 1 2 23 1 42 1 10 +3143 40 41 -14.7 1152.25 94 1 1 2 23 1 40 1 8 +3144 40 42 -10.5 1152.25 94 2 1 2 23 1 41 1 9 +3145 40 43 -6.3 1152.25 94 4 1 2 23 1 43 1 11 +3146 40 44 -2.1 1152.25 94 6 1 2 23 1 45 1 13 +3147 40 45 2.1 1152.25 98 5 1 2 24 1 44 1 12 +3148 40 46 6.3 1152.25 98 3 1 2 24 1 42 1 10 +3149 40 47 10.5 1152.25 98 1 1 2 24 1 40 1 8 +3150 40 48 14.7 1152.25 98 2 1 2 24 1 41 1 9 +3151 40 49 18.9 1152.25 98 4 1 2 24 1 43 1 11 +3152 40 50 23.1 1152.25 102 3 1 2 25 1 42 1 10 +3153 40 51 27.3 1152.25 102 1 1 2 25 1 40 1 8 +3154 40 52 31.5 1152.25 102 2 1 2 25 1 41 1 9 +3155 40 53 35.7 1152.25 102 4 1 2 25 1 43 1 11 +3156 40 54 39.9 1152.25 101 40 1 2 25 0 39 1 7 +3157 40 55 44.1 1152.25 105 39 1 2 26 0 38 1 6 +3158 40 56 48.3 1152.25 105 37 1 2 26 0 36 1 4 +3159 40 57 52.5 1152.25 106 2 1 2 26 1 41 1 9 +3160 40 58 56.7 1152.25 106 4 1 2 26 1 43 1 11 +3161 40 59 60.9 1152.25 106 6 1 2 26 1 45 1 13 +3162 40 60 65.1 1152.25 110 3 1 2 27 1 42 1 10 +3163 40 61 69.3 1152.25 110 1 1 2 27 1 40 1 8 +3164 40 62 73.5 1152.25 110 2 1 2 27 1 41 1 9 +3165 40 63 77.7 1152.25 110 4 1 2 27 1 43 1 11 +3166 40 64 81.9 1152.25 109 40 1 2 27 0 39 1 7 +3167 40 65 86.1 1152.25 113 39 1 2 28 0 38 1 6 +3168 40 66 90.3 1152.25 114 3 1 2 28 1 42 1 10 +3169 40 67 94.5 1152.25 114 1 1 2 28 1 40 1 8 +3170 40 68 98.7 1152.25 114 2 1 2 28 1 41 1 9 +3171 40 69 102.9 1152.25 114 4 1 2 28 1 43 1 11 +3172 40 70 107.1 1152.25 118 5 1 2 29 1 44 1 12 +3173 40 71 111.3 1152.25 118 3 1 2 29 1 42 1 10 +3174 40 72 115.5 1152.25 118 1 1 2 29 1 40 1 8 +3175 40 73 119.7 1152.25 117 38 1 2 29 0 37 1 5 +3176 40 74 123.9 1152.25 117 40 1 2 29 0 39 1 7 +3177 40 75 128.1 1152.25 121 39 1 2 30 0 38 1 6 +3178 40 76 132.3 1152.25 122 3 1 2 30 1 42 1 10 +3179 40 77 136.5 1152.25 122 1 1 2 30 1 40 1 8 +3180 40 78 140.7 1152.25 122 2 1 2 30 1 41 1 9 +3181 40 79 144.9 1152.25 122 4 1 2 30 1 43 1 11 +3182 40 80 149.1 1152.25 126 3 1 2 31 1 42 1 10 +3183 40 81 153.3 1152.25 126 1 1 2 31 1 40 1 8 +3184 40 82 157.5 1152.25 126 2 1 2 31 1 41 1 9 +3185 40 83 161.7 1152.25 126 4 1 2 31 1 43 1 11 +3186 40 84 165.9 1152.25 125 40 1 2 31 0 39 1 7 +3187 40 85 170.1 1152.25 130 3 1 2 32 1 42 1 10 +3188 40 86 174.3 1152.25 130 1 1 2 32 1 40 1 8 +3189 40 87 178.5 1152.25 130 2 1 2 32 1 41 1 9 +3190 40 88 182.7 1152.25 130 4 1 2 32 1 43 1 11 +3191 40 89 186.9 1152.25 130 6 1 2 32 1 45 1 13 +3192 41 0 -186.9 1159.75 62 9 1 2 15 1 48 1 16 +3193 41 1 -182.7 1159.75 62 7 1 2 15 1 46 1 14 +3194 41 2 -178.5 1159.75 62 6 1 2 15 1 45 1 13 +3195 41 3 -174.3 1159.75 62 8 1 2 15 1 47 1 15 +3196 41 4 -170.1 1159.75 62 10 1 2 15 1 49 1 17 +3197 41 5 -165.9 1159.75 66 7 1 2 16 1 46 1 14 +3198 41 6 -161.7 1159.75 66 5 1 2 16 1 44 1 12 +3199 41 7 -157.5 1159.75 66 6 1 2 16 1 45 1 13 +3200 41 8 -153.3 1159.75 66 8 1 2 16 1 47 1 15 +3201 41 9 -149.1 1159.75 66 10 1 2 16 1 49 1 17 +3202 41 10 -144.9 1159.75 70 7 1 2 17 1 46 1 14 +3203 41 11 -140.7 1159.75 70 5 1 2 17 1 44 1 12 +3204 41 12 -136.5 1159.75 70 6 1 2 17 1 45 1 13 +3205 41 13 -132.3 1159.75 70 8 1 2 17 1 47 1 15 +3206 41 14 -128.1 1159.75 70 10 1 2 17 1 49 1 17 +3207 41 15 -123.9 1159.75 74 5 1 2 18 1 44 1 12 +3208 41 16 -119.7 1159.75 74 3 1 2 18 1 42 1 10 +3209 41 17 -115.5 1159.75 74 1 1 2 18 1 40 1 8 +3210 41 18 -111.3 1159.75 74 8 1 2 18 1 47 1 15 +3211 41 19 -107.1 1159.75 74 10 1 2 18 1 49 1 17 +3212 41 20 -102.9 1159.75 78 7 1 2 19 1 46 1 14 +3213 41 21 -98.7 1159.75 78 5 1 2 19 1 44 1 12 +3214 41 22 -94.5 1159.75 78 6 1 2 19 1 45 1 13 +3215 41 23 -90.3 1159.75 78 8 1 2 19 1 47 1 15 +3216 41 24 -86.1 1159.75 78 10 1 2 19 1 49 1 17 +3217 41 25 -81.9 1159.75 82 9 1 2 20 1 48 1 16 +3218 41 26 -77.7 1159.75 82 7 1 2 20 1 46 1 14 +3219 41 27 -73.5 1159.75 82 5 1 2 20 1 44 1 12 +3220 41 28 -69.3 1159.75 82 6 1 2 20 1 45 1 13 +3221 41 29 -65.1 1159.75 82 8 1 2 20 1 47 1 15 +3222 41 30 -60.9 1159.75 86 9 1 2 21 1 48 1 16 +3223 41 31 -56.7 1159.75 86 7 1 2 21 1 46 1 14 +3224 41 32 -52.5 1159.75 86 2 1 2 21 1 41 1 9 +3225 41 33 -48.3 1159.75 86 4 1 2 21 1 43 1 11 +3226 41 34 -44.1 1159.75 86 6 1 2 21 1 45 1 13 +3227 41 35 -39.9 1159.75 90 9 1 2 22 1 48 1 16 +3228 41 36 -35.7 1159.75 90 7 1 2 22 1 46 1 14 +3229 41 37 -31.5 1159.75 90 5 1 2 22 1 44 1 12 +3230 41 38 -27.3 1159.75 90 6 1 2 22 1 45 1 13 +3231 41 39 -23.1 1159.75 90 8 1 2 22 1 47 1 15 +3232 41 40 -18.9 1159.75 94 9 1 2 23 1 48 1 16 +3233 41 41 -14.7 1159.75 94 7 1 2 23 1 46 1 14 +3234 41 42 -10.5 1159.75 94 5 1 2 23 1 44 1 12 +3235 41 43 -6.3 1159.75 94 8 1 2 23 1 47 1 15 +3236 41 44 -2.1 1159.75 94 10 1 2 23 1 49 1 17 +3237 41 45 2.1 1159.75 98 9 1 2 24 1 48 1 16 +3238 41 46 6.3 1159.75 98 7 1 2 24 1 46 1 14 +3239 41 47 10.5 1159.75 98 6 1 2 24 1 45 1 13 +3240 41 48 14.7 1159.75 98 8 1 2 24 1 47 1 15 +3241 41 49 18.9 1159.75 98 10 1 2 24 1 49 1 17 +3242 41 50 23.1 1159.75 102 7 1 2 25 1 46 1 14 +3243 41 51 27.3 1159.75 102 5 1 2 25 1 44 1 12 +3244 41 52 31.5 1159.75 102 6 1 2 25 1 45 1 13 +3245 41 53 35.7 1159.75 102 8 1 2 25 1 47 1 15 +3246 41 54 39.9 1159.75 102 10 1 2 25 1 49 1 17 +3247 41 55 44.1 1159.75 106 5 1 2 26 1 44 1 12 +3248 41 56 48.3 1159.75 106 3 1 2 26 1 42 1 10 +3249 41 57 52.5 1159.75 106 1 1 2 26 1 40 1 8 +3250 41 58 56.7 1159.75 106 8 1 2 26 1 47 1 15 +3251 41 59 60.9 1159.75 106 10 1 2 26 1 49 1 17 +3252 41 60 65.1 1159.75 110 7 1 2 27 1 46 1 14 +3253 41 61 69.3 1159.75 110 5 1 2 27 1 44 1 12 +3254 41 62 73.5 1159.75 110 6 1 2 27 1 45 1 13 +3255 41 63 77.7 1159.75 110 8 1 2 27 1 47 1 15 +3256 41 64 81.9 1159.75 110 10 1 2 27 1 49 1 17 +3257 41 65 86.1 1159.75 114 9 1 2 28 1 48 1 16 +3258 41 66 90.3 1159.75 114 7 1 2 28 1 46 1 14 +3259 41 67 94.5 1159.75 114 5 1 2 28 1 44 1 12 +3260 41 68 98.7 1159.75 114 6 1 2 28 1 45 1 13 +3261 41 69 102.9 1159.75 114 8 1 2 28 1 47 1 15 +3262 41 70 107.1 1159.75 118 9 1 2 29 1 48 1 16 +3263 41 71 111.3 1159.75 118 7 1 2 29 1 46 1 14 +3264 41 72 115.5 1159.75 118 2 1 2 29 1 41 1 9 +3265 41 73 119.7 1159.75 118 4 1 2 29 1 43 1 11 +3266 41 74 123.9 1159.75 118 6 1 2 29 1 45 1 13 +3267 41 75 128.1 1159.75 122 9 1 2 30 1 48 1 16 +3268 41 76 132.3 1159.75 122 7 1 2 30 1 46 1 14 +3269 41 77 136.5 1159.75 122 5 1 2 30 1 44 1 12 +3270 41 78 140.7 1159.75 122 6 1 2 30 1 45 1 13 +3271 41 79 144.9 1159.75 122 8 1 2 30 1 47 1 15 +3272 41 80 149.1 1159.75 126 9 1 2 31 1 48 1 16 +3273 41 81 153.3 1159.75 126 7 1 2 31 1 46 1 14 +3274 41 82 157.5 1159.75 126 5 1 2 31 1 44 1 12 +3275 41 83 161.7 1159.75 126 6 1 2 31 1 45 1 13 +3276 41 84 165.9 1159.75 126 8 1 2 31 1 47 1 15 +3277 41 85 170.1 1159.75 130 9 1 2 32 1 48 1 16 +3278 41 86 174.3 1159.75 130 7 1 2 32 1 46 1 14 +3279 41 87 178.5 1159.75 130 5 1 2 32 1 44 1 12 +3280 41 88 182.7 1159.75 130 8 1 2 32 1 47 1 15 +3281 41 89 186.9 1159.75 130 10 1 2 32 1 49 1 17 +3282 42 0 -191.1 1167.25 62 15 1 2 15 1 54 1 22 +3283 42 1 -186.9 1167.25 62 13 1 2 15 1 52 1 20 +3284 42 2 -182.7 1167.25 62 11 1 2 15 1 50 1 18 +3285 42 3 -178.5 1167.25 62 12 1 2 15 1 51 1 19 +3286 42 4 -174.3 1167.25 62 14 1 2 15 1 53 1 21 +3287 42 5 -170.1 1167.25 66 13 1 2 16 1 52 1 20 +3288 42 6 -165.9 1167.25 66 11 1 2 16 1 50 1 18 +3289 42 7 -161.7 1167.25 66 9 1 2 16 1 48 1 16 +3290 42 8 -157.5 1167.25 66 12 1 2 16 1 51 1 19 +3291 42 9 -153.3 1167.25 66 14 1 2 16 1 53 1 21 +3292 42 10 -149.1 1167.25 70 13 1 2 17 1 52 1 20 +3293 42 11 -144.9 1167.25 70 11 1 2 17 1 50 1 18 +3294 42 12 -140.7 1167.25 70 9 1 2 17 1 48 1 16 +3295 42 13 -136.5 1167.25 70 12 1 2 17 1 51 1 19 +3296 42 14 -132.3 1167.25 70 14 1 2 17 1 53 1 21 +3297 42 15 -128.1 1167.25 74 11 1 2 18 1 50 1 18 +3298 42 16 -123.9 1167.25 74 9 1 2 18 1 48 1 16 +3299 42 17 -119.7 1167.25 74 7 1 2 18 1 46 1 14 +3300 42 18 -115.5 1167.25 74 12 1 2 18 1 51 1 19 +3301 42 19 -111.3 1167.25 74 14 1 2 18 1 53 1 21 +3302 42 20 -107.1 1167.25 74 16 1 2 18 1 55 1 23 +3303 42 21 -102.9 1167.25 78 13 1 2 19 1 52 1 20 +3304 42 22 -98.7 1167.25 78 11 1 2 19 1 50 1 18 +3305 42 23 -94.5 1167.25 78 9 1 2 19 1 48 1 16 +3306 42 24 -90.3 1167.25 78 12 1 2 19 1 51 1 19 +3307 42 25 -86.1 1167.25 78 14 1 2 19 1 53 1 21 +3308 42 26 -81.9 1167.25 82 13 1 2 20 1 52 1 20 +3309 42 27 -77.7 1167.25 82 11 1 2 20 1 50 1 18 +3310 42 28 -73.5 1167.25 82 10 1 2 20 1 49 1 17 +3311 42 29 -69.3 1167.25 82 12 1 2 20 1 51 1 19 +3312 42 30 -65.1 1167.25 82 14 1 2 20 1 53 1 21 +3313 42 31 -60.9 1167.25 86 15 1 2 21 1 54 1 22 +3314 42 32 -56.7 1167.25 86 13 1 2 21 1 52 1 20 +3315 42 33 -52.5 1167.25 86 11 1 2 21 1 50 1 18 +3316 42 34 -48.3 1167.25 86 8 1 2 21 1 47 1 15 +3317 42 35 -44.1 1167.25 86 10 1 2 21 1 49 1 17 +3318 42 36 -39.9 1167.25 90 13 1 2 22 1 52 1 20 +3319 42 37 -35.7 1167.25 90 11 1 2 22 1 50 1 18 +3320 42 38 -31.5 1167.25 90 10 1 2 22 1 49 1 17 +3321 42 39 -27.3 1167.25 90 12 1 2 22 1 51 1 19 +3322 42 40 -23.1 1167.25 90 14 1 2 22 1 53 1 21 +3323 42 41 -18.9 1167.25 94 13 1 2 23 1 52 1 20 +3324 42 42 -14.7 1167.25 94 11 1 2 23 1 50 1 18 +3325 42 43 -10.5 1167.25 94 12 1 2 23 1 51 1 19 +3326 42 44 -6.3 1167.25 94 14 1 2 23 1 53 1 21 +3327 42 45 -2.1 1167.25 94 16 1 2 23 1 55 1 23 +3328 42 46 2.1 1167.25 98 15 1 2 24 1 54 1 22 +3329 42 47 6.3 1167.25 98 13 1 2 24 1 52 1 20 +3330 42 48 10.5 1167.25 98 11 1 2 24 1 50 1 18 +3331 42 49 14.7 1167.25 98 12 1 2 24 1 51 1 19 +3332 42 50 18.9 1167.25 98 14 1 2 24 1 53 1 21 +3333 42 51 23.1 1167.25 102 13 1 2 25 1 52 1 20 +3334 42 52 27.3 1167.25 102 11 1 2 25 1 50 1 18 +3335 42 53 31.5 1167.25 102 9 1 2 25 1 48 1 16 +3336 42 54 35.7 1167.25 102 12 1 2 25 1 51 1 19 +3337 42 55 39.9 1167.25 102 14 1 2 25 1 53 1 21 +3338 42 56 44.1 1167.25 106 9 1 2 26 1 48 1 16 +3339 42 57 48.3 1167.25 106 7 1 2 26 1 46 1 14 +3340 42 58 52.5 1167.25 106 12 1 2 26 1 51 1 19 +3341 42 59 56.7 1167.25 106 14 1 2 26 1 53 1 21 +3342 42 60 60.9 1167.25 106 16 1 2 26 1 55 1 23 +3343 42 61 65.1 1167.25 110 13 1 2 27 1 52 1 20 +3344 42 62 69.3 1167.25 110 11 1 2 27 1 50 1 18 +3345 42 63 73.5 1167.25 110 9 1 2 27 1 48 1 16 +3346 42 64 77.7 1167.25 110 12 1 2 27 1 51 1 19 +3347 42 65 81.9 1167.25 110 14 1 2 27 1 53 1 21 +3348 42 66 86.1 1167.25 114 13 1 2 28 1 52 1 20 +3349 42 67 90.3 1167.25 114 11 1 2 28 1 50 1 18 +3350 42 68 94.5 1167.25 114 10 1 2 28 1 49 1 17 +3351 42 69 98.7 1167.25 114 12 1 2 28 1 51 1 19 +3352 42 70 102.9 1167.25 114 14 1 2 28 1 53 1 21 +3353 42 71 107.1 1167.25 118 15 1 2 29 1 54 1 22 +3354 42 72 111.3 1167.25 118 13 1 2 29 1 52 1 20 +3355 42 73 115.5 1167.25 118 11 1 2 29 1 50 1 18 +3356 42 74 119.7 1167.25 118 8 1 2 29 1 47 1 15 +3357 42 75 123.9 1167.25 118 10 1 2 29 1 49 1 17 +3358 42 76 128.1 1167.25 118 12 1 2 29 1 51 1 19 +3359 42 77 132.3 1167.25 122 13 1 2 30 1 52 1 20 +3360 42 78 136.5 1167.25 122 11 1 2 30 1 50 1 18 +3361 42 79 140.7 1167.25 122 10 1 2 30 1 49 1 17 +3362 42 80 144.9 1167.25 122 12 1 2 30 1 51 1 19 +3363 42 81 149.1 1167.25 122 14 1 2 30 1 53 1 21 +3364 42 82 153.3 1167.25 126 13 1 2 31 1 52 1 20 +3365 42 83 157.5 1167.25 126 11 1 2 31 1 50 1 18 +3366 42 84 161.7 1167.25 126 10 1 2 31 1 49 1 17 +3367 42 85 165.9 1167.25 126 12 1 2 31 1 51 1 19 +3368 42 86 170.1 1167.25 126 14 1 2 31 1 53 1 21 +3369 42 87 174.3 1167.25 130 13 1 2 32 1 52 1 20 +3370 42 88 178.5 1167.25 130 11 1 2 32 1 50 1 18 +3371 42 89 182.7 1167.25 130 12 1 2 32 1 51 1 19 +3372 42 90 186.9 1167.25 130 14 1 2 32 1 53 1 21 +3373 42 91 191.1 1167.25 130 16 1 2 32 1 55 1 23 +3374 43 0 -191.1 1174.75 62 19 1 2 15 1 58 1 26 +3375 43 1 -186.9 1174.75 62 17 1 2 15 1 56 1 24 +3376 43 2 -182.7 1174.75 62 16 1 2 15 1 55 1 23 +3377 43 3 -178.5 1174.75 62 18 1 2 15 1 57 1 25 +3378 43 4 -174.3 1174.75 62 20 1 2 15 1 59 1 27 +3379 43 5 -170.1 1174.75 66 19 1 2 16 1 58 1 26 +3380 43 6 -165.9 1174.75 66 17 1 2 16 1 56 1 24 +3381 43 7 -161.7 1174.75 66 15 1 2 16 1 54 1 22 +3382 43 8 -157.5 1174.75 66 16 1 2 16 1 55 1 23 +3383 43 9 -153.3 1174.75 66 18 1 2 16 1 57 1 25 +3384 43 10 -149.1 1174.75 70 17 1 2 17 1 56 1 24 +3385 43 11 -144.9 1174.75 70 15 1 2 17 1 54 1 22 +3386 43 12 -140.7 1174.75 70 16 1 2 17 1 55 1 23 +3387 43 13 -136.5 1174.75 70 18 1 2 17 1 57 1 25 +3388 43 14 -132.3 1174.75 70 20 1 2 17 1 59 1 27 +3389 43 15 -128.1 1174.75 74 17 1 2 18 1 56 1 24 +3390 43 16 -123.9 1174.75 74 15 1 2 18 1 54 1 22 +3391 43 17 -119.7 1174.75 74 13 1 2 18 1 52 1 20 +3392 43 18 -115.5 1174.75 74 18 1 2 18 1 57 1 25 +3393 43 19 -111.3 1174.75 74 20 1 2 18 1 59 1 27 +3394 43 20 -107.1 1174.75 78 19 1 2 19 1 58 1 26 +3395 43 21 -102.9 1174.75 78 17 1 2 19 1 56 1 24 +3396 43 22 -98.7 1174.75 78 15 1 2 19 1 54 1 22 +3397 43 23 -94.5 1174.75 78 16 1 2 19 1 55 1 23 +3398 43 24 -90.3 1174.75 78 18 1 2 19 1 57 1 25 +3399 43 25 -86.1 1174.75 78 20 1 2 19 1 59 1 27 +3400 43 26 -81.9 1174.75 82 19 1 2 20 1 58 1 26 +3401 43 27 -77.7 1174.75 82 17 1 2 20 1 56 1 24 +3402 43 28 -73.5 1174.75 82 15 1 2 20 1 54 1 22 +3403 43 29 -69.3 1174.75 82 16 1 2 20 1 55 1 23 +3404 43 30 -65.1 1174.75 82 18 1 2 20 1 57 1 25 +3405 43 31 -60.9 1174.75 86 19 1 2 21 1 58 1 26 +3406 43 32 -56.7 1174.75 86 17 1 2 21 1 56 1 24 +3407 43 33 -52.5 1174.75 86 12 1 2 21 1 51 1 19 +3408 43 34 -48.3 1174.75 86 14 1 2 21 1 53 1 21 +3409 43 35 -44.1 1174.75 86 16 1 2 21 1 55 1 23 +3410 43 36 -39.9 1174.75 90 19 1 2 22 1 58 1 26 +3411 43 37 -35.7 1174.75 90 17 1 2 22 1 56 1 24 +3412 43 38 -31.5 1174.75 90 15 1 2 22 1 54 1 22 +3413 43 39 -27.3 1174.75 90 16 1 2 22 1 55 1 23 +3414 43 40 -23.1 1174.75 90 18 1 2 22 1 57 1 25 +3415 43 41 -18.9 1174.75 94 19 1 2 23 1 58 1 26 +3416 43 42 -14.7 1174.75 94 17 1 2 23 1 56 1 24 +3417 43 43 -10.5 1174.75 94 15 1 2 23 1 54 1 22 +3418 43 44 -6.3 1174.75 94 18 1 2 23 1 57 1 25 +3419 43 45 -2.1 1174.75 94 20 1 2 23 1 59 1 27 +3420 43 46 2.1 1174.75 98 19 1 2 24 1 58 1 26 +3421 43 47 6.3 1174.75 98 17 1 2 24 1 56 1 24 +3422 43 48 10.5 1174.75 98 16 1 2 24 1 55 1 23 +3423 43 49 14.7 1174.75 98 18 1 2 24 1 57 1 25 +3424 43 50 18.9 1174.75 98 20 1 2 24 1 59 1 27 +3425 43 51 23.1 1174.75 102 17 1 2 25 1 56 1 24 +3426 43 52 27.3 1174.75 102 15 1 2 25 1 54 1 22 +3427 43 53 31.5 1174.75 102 16 1 2 25 1 55 1 23 +3428 43 54 35.7 1174.75 102 18 1 2 25 1 57 1 25 +3429 43 55 39.9 1174.75 102 20 1 2 25 1 59 1 27 +3430 43 56 44.1 1174.75 106 15 1 2 26 1 54 1 22 +3431 43 57 48.3 1174.75 106 13 1 2 26 1 52 1 20 +3432 43 58 52.5 1174.75 106 11 1 2 26 1 50 1 18 +3433 43 59 56.7 1174.75 106 18 1 2 26 1 57 1 25 +3434 43 60 60.9 1174.75 106 20 1 2 26 1 59 1 27 +3435 43 61 65.1 1174.75 110 17 1 2 27 1 56 1 24 +3436 43 62 69.3 1174.75 110 15 1 2 27 1 54 1 22 +3437 43 63 73.5 1174.75 110 16 1 2 27 1 55 1 23 +3438 43 64 77.7 1174.75 110 18 1 2 27 1 57 1 25 +3439 43 65 81.9 1174.75 110 20 1 2 27 1 59 1 27 +3440 43 66 86.1 1174.75 114 19 1 2 28 1 58 1 26 +3441 43 67 90.3 1174.75 114 17 1 2 28 1 56 1 24 +3442 43 68 94.5 1174.75 114 15 1 2 28 1 54 1 22 +3443 43 69 98.7 1174.75 114 16 1 2 28 1 55 1 23 +3444 43 70 102.9 1174.75 114 18 1 2 28 1 57 1 25 +3445 43 71 107.1 1174.75 114 20 1 2 28 1 59 1 27 +3446 43 72 111.3 1174.75 118 19 1 2 29 1 58 1 26 +3447 43 73 115.5 1174.75 118 17 1 2 29 1 56 1 24 +3448 43 74 119.7 1174.75 118 14 1 2 29 1 53 1 21 +3449 43 75 123.9 1174.75 118 16 1 2 29 1 55 1 23 +3450 43 76 128.1 1174.75 118 18 1 2 29 1 57 1 25 +3451 43 77 132.3 1174.75 122 19 1 2 30 1 58 1 26 +3452 43 78 136.5 1174.75 122 17 1 2 30 1 56 1 24 +3453 43 79 140.7 1174.75 122 15 1 2 30 1 54 1 22 +3454 43 80 144.9 1174.75 122 16 1 2 30 1 55 1 23 +3455 43 81 149.1 1174.75 122 18 1 2 30 1 57 1 25 +3456 43 82 153.3 1174.75 126 17 1 2 31 1 56 1 24 +3457 43 83 157.5 1174.75 126 15 1 2 31 1 54 1 22 +3458 43 84 161.7 1174.75 126 16 1 2 31 1 55 1 23 +3459 43 85 165.9 1174.75 126 18 1 2 31 1 57 1 25 +3460 43 86 170.1 1174.75 126 20 1 2 31 1 59 1 27 +3461 43 87 174.3 1174.75 130 19 1 2 32 1 58 1 26 +3462 43 88 178.5 1174.75 130 17 1 2 32 1 56 1 24 +3463 43 89 182.7 1174.75 130 15 1 2 32 1 54 1 22 +3464 43 90 186.9 1174.75 130 18 1 2 32 1 57 1 25 +3465 43 91 191.1 1174.75 130 20 1 2 32 1 59 1 27 +3466 44 0 -191.1 1182.25 62 25 1 2 15 1 64 2 0 +3467 44 1 -186.9 1182.25 62 23 1 2 15 1 62 1 30 +3468 44 2 -182.7 1182.25 62 21 1 2 15 1 60 1 28 +3469 44 3 -178.5 1182.25 62 22 1 2 15 1 61 1 29 +3470 44 4 -174.3 1182.25 62 24 1 2 15 1 63 1 31 +3471 44 5 -170.1 1182.25 66 23 1 2 16 1 62 1 30 +3472 44 6 -165.9 1182.25 66 21 1 2 16 1 60 1 28 +3473 44 7 -161.7 1182.25 66 20 1 2 16 1 59 1 27 +3474 44 8 -157.5 1182.25 66 22 1 2 16 1 61 1 29 +3475 44 9 -153.3 1182.25 66 24 1 2 16 1 63 1 31 +3476 44 10 -149.1 1182.25 70 23 1 2 17 1 62 1 30 +3477 44 11 -144.9 1182.25 70 21 1 2 17 1 60 1 28 +3478 44 12 -140.7 1182.25 70 19 1 2 17 1 58 1 26 +3479 44 13 -136.5 1182.25 70 22 1 2 17 1 61 1 29 +3480 44 14 -132.3 1182.25 70 24 1 2 17 1 63 1 31 +3481 44 15 -128.1 1182.25 74 23 1 2 18 1 62 1 30 +3482 44 16 -123.9 1182.25 74 21 1 2 18 1 60 1 28 +3483 44 17 -119.7 1182.25 74 19 1 2 18 1 58 1 26 +3484 44 18 -115.5 1182.25 74 22 1 2 18 1 61 1 29 +3485 44 19 -111.3 1182.25 74 24 1 2 18 1 63 1 31 +3486 44 20 -107.1 1182.25 78 25 1 2 19 1 64 2 0 +3487 44 21 -102.9 1182.25 78 23 1 2 19 1 62 1 30 +3488 44 22 -98.7 1182.25 78 21 1 2 19 1 60 1 28 +3489 44 23 -94.5 1182.25 78 22 1 2 19 1 61 1 29 +3490 44 24 -90.3 1182.25 78 24 1 2 19 1 63 1 31 +3491 44 25 -86.1 1182.25 82 25 1 2 20 1 64 2 0 +3492 44 26 -81.9 1182.25 82 23 1 2 20 1 62 1 30 +3493 44 27 -77.7 1182.25 82 21 1 2 20 1 60 1 28 +3494 44 28 -73.5 1182.25 82 20 1 2 20 1 59 1 27 +3495 44 29 -69.3 1182.25 82 22 1 2 20 1 61 1 29 +3496 44 30 -65.1 1182.25 82 24 1 2 20 1 63 1 31 +3497 44 31 -60.9 1182.25 86 23 1 2 21 1 62 1 30 +3498 44 32 -56.7 1182.25 86 21 1 2 21 1 60 1 28 +3499 44 33 -52.5 1182.25 86 18 1 2 21 1 57 1 25 +3500 44 34 -48.3 1182.25 86 20 1 2 21 1 59 1 27 +3501 44 35 -44.1 1182.25 86 22 1 2 21 1 61 1 29 +3502 44 36 -39.9 1182.25 90 23 1 2 22 1 62 1 30 +3503 44 37 -35.7 1182.25 90 21 1 2 22 1 60 1 28 +3504 44 38 -31.5 1182.25 90 20 1 2 22 1 59 1 27 +3505 44 39 -27.3 1182.25 90 22 1 2 22 1 61 1 29 +3506 44 40 -23.1 1182.25 90 24 1 2 22 1 63 1 31 +3507 44 41 -18.9 1182.25 94 23 1 2 23 1 62 1 30 +3508 44 42 -14.7 1182.25 94 21 1 2 23 1 60 1 28 +3509 44 43 -10.5 1182.25 94 22 1 2 23 1 61 1 29 +3510 44 44 -6.3 1182.25 94 24 1 2 23 1 63 1 31 +3511 44 45 -2.1 1182.25 94 26 1 2 23 1 65 2 1 +3512 44 46 2.1 1182.25 98 25 1 2 24 1 64 2 0 +3513 44 47 6.3 1182.25 98 23 1 2 24 1 62 1 30 +3514 44 48 10.5 1182.25 98 21 1 2 24 1 60 1 28 +3515 44 49 14.7 1182.25 98 22 1 2 24 1 61 1 29 +3516 44 50 18.9 1182.25 98 24 1 2 24 1 63 1 31 +3517 44 51 23.1 1182.25 102 23 1 2 25 1 62 1 30 +3518 44 52 27.3 1182.25 102 21 1 2 25 1 60 1 28 +3519 44 53 31.5 1182.25 102 19 1 2 25 1 58 1 26 +3520 44 54 35.7 1182.25 102 22 1 2 25 1 61 1 29 +3521 44 55 39.9 1182.25 102 24 1 2 25 1 63 1 31 +3522 44 56 44.1 1182.25 106 21 1 2 26 1 60 1 28 +3523 44 57 48.3 1182.25 106 19 1 2 26 1 58 1 26 +3524 44 58 52.5 1182.25 106 17 1 2 26 1 56 1 24 +3525 44 59 56.7 1182.25 106 22 1 2 26 1 61 1 29 +3526 44 60 60.9 1182.25 106 24 1 2 26 1 63 1 31 +3527 44 61 65.1 1182.25 110 23 1 2 27 1 62 1 30 +3528 44 62 69.3 1182.25 110 21 1 2 27 1 60 1 28 +3529 44 63 73.5 1182.25 110 19 1 2 27 1 58 1 26 +3530 44 64 77.7 1182.25 110 22 1 2 27 1 61 1 29 +3531 44 65 81.9 1182.25 110 24 1 2 27 1 63 1 31 +3532 44 66 86.1 1182.25 110 26 1 2 27 1 65 2 1 +3533 44 67 90.3 1182.25 114 23 1 2 28 1 62 1 30 +3534 44 68 94.5 1182.25 114 21 1 2 28 1 60 1 28 +3535 44 69 98.7 1182.25 114 22 1 2 28 1 61 1 29 +3536 44 70 102.9 1182.25 114 24 1 2 28 1 63 1 31 +3537 44 71 107.1 1182.25 114 26 1 2 28 1 65 2 1 +3538 44 72 111.3 1182.25 118 23 1 2 29 1 62 1 30 +3539 44 73 115.5 1182.25 118 21 1 2 29 1 60 1 28 +3540 44 74 119.7 1182.25 118 20 1 2 29 1 59 1 27 +3541 44 75 123.9 1182.25 118 22 1 2 29 1 61 1 29 +3542 44 76 128.1 1182.25 118 24 1 2 29 1 63 1 31 +3543 44 77 132.3 1182.25 122 23 1 2 30 1 62 1 30 +3544 44 78 136.5 1182.25 122 21 1 2 30 1 60 1 28 +3545 44 79 140.7 1182.25 122 20 1 2 30 1 59 1 27 +3546 44 80 144.9 1182.25 122 22 1 2 30 1 61 1 29 +3547 44 81 149.1 1182.25 122 24 1 2 30 1 63 1 31 +3548 44 82 153.3 1182.25 126 23 1 2 31 1 62 1 30 +3549 44 83 157.5 1182.25 126 21 1 2 31 1 60 1 28 +3550 44 84 161.7 1182.25 126 19 1 2 31 1 58 1 26 +3551 44 85 165.9 1182.25 126 22 1 2 31 1 61 1 29 +3552 44 86 170.1 1182.25 126 24 1 2 31 1 63 1 31 +3553 44 87 174.3 1182.25 130 23 1 2 32 1 62 1 30 +3554 44 88 178.5 1182.25 130 21 1 2 32 1 60 1 28 +3555 44 89 182.7 1182.25 130 22 1 2 32 1 61 1 29 +3556 44 90 186.9 1182.25 130 24 1 2 32 1 63 1 31 +3557 44 91 191.1 1182.25 130 26 1 2 32 1 65 2 1 +3558 45 0 -195.3 1189.75 62 29 1 2 15 1 68 2 4 +3559 45 1 -191.1 1189.75 62 27 1 2 15 1 66 2 2 +3560 45 2 -186.9 1189.75 62 26 1 2 15 1 65 2 1 +3561 45 3 -182.7 1189.75 62 28 1 2 15 1 67 2 3 +3562 45 4 -178.5 1189.75 62 30 1 2 15 1 69 2 5 +3563 45 5 -174.3 1189.75 66 29 1 2 16 1 68 2 4 +3564 45 6 -170.1 1189.75 66 27 1 2 16 1 66 2 2 +3565 45 7 -165.9 1189.75 66 25 1 2 16 1 64 2 0 +3566 45 8 -161.7 1189.75 66 26 1 2 16 1 65 2 1 +3567 45 9 -157.5 1189.75 66 28 1 2 16 1 67 2 3 +3568 45 10 -153.3 1189.75 66 30 1 2 16 1 69 2 5 +3569 45 11 -149.1 1189.75 70 29 1 2 17 1 68 2 4 +3570 45 12 -144.9 1189.75 70 27 1 2 17 1 66 2 2 +3571 45 13 -140.7 1189.75 70 25 1 2 17 1 64 2 0 +3572 45 14 -136.5 1189.75 70 26 1 2 17 1 65 2 1 +3573 45 15 -132.3 1189.75 70 28 1 2 17 1 67 2 3 +3574 45 16 -128.1 1189.75 74 29 1 2 18 1 68 2 4 +3575 45 17 -123.9 1189.75 74 27 1 2 18 1 66 2 2 +3576 45 18 -119.7 1189.75 74 25 1 2 18 1 64 2 0 +3577 45 19 -115.5 1189.75 74 26 1 2 18 1 65 2 1 +3578 45 20 -111.3 1189.75 74 28 1 2 18 1 67 2 3 +3579 45 21 -107.1 1189.75 78 29 1 2 19 1 68 2 4 +3580 45 22 -102.9 1189.75 78 27 1 2 19 1 66 2 2 +3581 45 23 -98.7 1189.75 78 26 1 2 19 1 65 2 1 +3582 45 24 -94.5 1189.75 78 28 1 2 19 1 67 2 3 +3583 45 25 -90.3 1189.75 78 30 1 2 19 1 69 2 5 +3584 45 26 -86.1 1189.75 82 29 1 2 20 1 68 2 4 +3585 45 27 -81.9 1189.75 82 27 1 2 20 1 66 2 2 +3586 45 28 -77.7 1189.75 82 26 1 2 20 1 65 2 1 +3587 45 29 -73.5 1189.75 82 28 1 2 20 1 67 2 3 +3588 45 30 -69.3 1189.75 82 30 1 2 20 1 69 2 5 +3589 45 31 -65.1 1189.75 86 29 1 2 21 1 68 2 4 +3590 45 32 -60.9 1189.75 86 27 1 2 21 1 66 2 2 +3591 45 33 -56.7 1189.75 86 25 1 2 21 1 64 2 0 +3592 45 34 -52.5 1189.75 86 24 1 2 21 1 63 1 31 +3593 45 35 -48.3 1189.75 86 26 1 2 21 1 65 2 1 +3594 45 36 -44.1 1189.75 86 28 1 2 21 1 67 2 3 +3595 45 37 -39.9 1189.75 90 29 1 2 22 1 68 2 4 +3596 45 38 -35.7 1189.75 90 27 1 2 22 1 66 2 2 +3597 45 39 -31.5 1189.75 90 25 1 2 22 1 64 2 0 +3598 45 40 -27.3 1189.75 90 26 1 2 22 1 65 2 1 +3599 45 41 -23.1 1189.75 90 28 1 2 22 1 67 2 3 +3600 45 42 -18.9 1189.75 94 29 1 2 23 1 68 2 4 +3601 45 43 -14.7 1189.75 94 27 1 2 23 1 66 2 2 +3602 45 44 -10.5 1189.75 94 25 1 2 23 1 64 2 0 +3603 45 45 -6.3 1189.75 94 28 1 2 23 1 67 2 3 +3604 45 46 -2.1 1189.75 94 30 1 2 23 1 69 2 5 +3605 45 47 2.1 1189.75 98 29 1 2 24 1 68 2 4 +3606 45 48 6.3 1189.75 98 27 1 2 24 1 66 2 2 +3607 45 49 10.5 1189.75 98 26 1 2 24 1 65 2 1 +3608 45 50 14.7 1189.75 98 28 1 2 24 1 67 2 3 +3609 45 51 18.9 1189.75 98 30 1 2 24 1 69 2 5 +3610 45 52 23.1 1189.75 102 27 1 2 25 1 66 2 2 +3611 45 53 27.3 1189.75 102 25 1 2 25 1 64 2 0 +3612 45 54 31.5 1189.75 102 26 1 2 25 1 65 2 1 +3613 45 55 35.7 1189.75 102 28 1 2 25 1 67 2 3 +3614 45 56 39.9 1189.75 102 30 1 2 25 1 69 2 5 +3615 45 57 44.1 1189.75 106 27 1 2 26 1 66 2 2 +3616 45 58 48.3 1189.75 106 25 1 2 26 1 64 2 0 +3617 45 59 52.5 1189.75 106 23 1 2 26 1 62 1 30 +3618 45 60 56.7 1189.75 106 26 1 2 26 1 65 2 1 +3619 45 61 60.9 1189.75 106 28 1 2 26 1 67 2 3 +3620 45 62 65.1 1189.75 106 30 1 2 26 1 69 2 5 +3621 45 63 69.3 1189.75 110 29 1 2 27 1 68 2 4 +3622 45 64 73.5 1189.75 110 27 1 2 27 1 66 2 2 +3623 45 65 77.7 1189.75 110 25 1 2 27 1 64 2 0 +3624 45 66 81.9 1189.75 110 28 1 2 27 1 67 2 3 +3625 45 67 86.1 1189.75 110 30 1 2 27 1 69 2 5 +3626 45 68 90.3 1189.75 114 29 1 2 28 1 68 2 4 +3627 45 69 94.5 1189.75 114 27 1 2 28 1 66 2 2 +3628 45 70 98.7 1189.75 114 25 1 2 28 1 64 2 0 +3629 45 71 102.9 1189.75 114 28 1 2 28 1 67 2 3 +3630 45 72 107.1 1189.75 114 30 1 2 28 1 69 2 5 +3631 45 73 111.3 1189.75 118 27 1 2 29 1 66 2 2 +3632 45 74 115.5 1189.75 118 25 1 2 29 1 64 2 0 +3633 45 75 119.7 1189.75 118 26 1 2 29 1 65 2 1 +3634 45 76 123.9 1189.75 118 28 1 2 29 1 67 2 3 +3635 45 77 128.1 1189.75 118 30 1 2 29 1 69 2 5 +3636 45 78 132.3 1189.75 122 27 1 2 30 1 66 2 2 +3637 45 79 136.5 1189.75 122 25 1 2 30 1 64 2 0 +3638 45 80 140.7 1189.75 122 26 1 2 30 1 65 2 1 +3639 45 81 144.9 1189.75 122 28 1 2 30 1 67 2 3 +3640 45 82 149.1 1189.75 122 30 1 2 30 1 69 2 5 +3641 45 83 153.3 1189.75 126 29 1 2 31 1 68 2 4 +3642 45 84 157.5 1189.75 126 27 1 2 31 1 66 2 2 +3643 45 85 161.7 1189.75 126 25 1 2 31 1 64 2 0 +3644 45 86 165.9 1189.75 126 26 1 2 31 1 65 2 1 +3645 45 87 170.1 1189.75 126 28 1 2 31 1 67 2 3 +3646 45 88 174.3 1189.75 126 30 1 2 31 1 69 2 5 +3647 45 89 178.5 1189.75 130 29 1 2 32 1 68 2 4 +3648 45 90 182.7 1189.75 130 27 1 2 32 1 66 2 2 +3649 45 91 186.9 1189.75 130 25 1 2 32 1 64 2 0 +3650 45 92 191.1 1189.75 130 28 1 2 32 1 67 2 3 +3651 45 93 195.3 1189.75 130 30 1 2 32 1 69 2 5 +3652 46 0 -195.3 1197.25 62 35 1 2 15 1 74 2 10 +3653 46 1 -191.1 1197.25 62 33 1 2 15 1 72 2 8 +3654 46 2 -186.9 1197.25 62 31 1 2 15 1 70 2 6 +3655 46 3 -182.7 1197.25 62 32 1 2 15 1 71 2 7 +3656 46 4 -178.5 1197.25 62 34 1 2 15 1 73 2 9 +3657 46 5 -174.3 1197.25 66 33 1 2 16 1 72 2 8 +3658 46 6 -170.1 1197.25 66 31 1 2 16 1 70 2 6 +3659 46 7 -165.9 1197.25 66 32 1 2 16 1 71 2 7 +3660 46 8 -161.7 1197.25 66 34 1 2 16 1 73 2 9 +3661 46 9 -157.5 1197.25 66 36 1 2 16 1 75 2 11 +3662 46 10 -153.3 1197.25 70 35 1 2 17 1 74 2 10 +3663 46 11 -149.1 1197.25 70 33 1 2 17 1 72 2 8 +3664 46 12 -144.9 1197.25 70 31 1 2 17 1 70 2 6 +3665 46 13 -140.7 1197.25 70 30 1 2 17 1 69 2 5 +3666 46 14 -136.5 1197.25 70 32 1 2 17 1 71 2 7 +3667 46 15 -132.3 1197.25 70 34 1 2 17 1 73 2 9 +3668 46 16 -128.1 1197.25 74 33 1 2 18 1 72 2 8 +3669 46 17 -123.9 1197.25 74 31 1 2 18 1 70 2 6 +3670 46 18 -119.7 1197.25 74 30 1 2 18 1 69 2 5 +3671 46 19 -115.5 1197.25 74 32 1 2 18 1 71 2 7 +3672 46 20 -111.3 1197.25 74 34 1 2 18 1 73 2 9 +3673 46 21 -107.1 1197.25 78 35 1 2 19 1 74 2 10 +3674 46 22 -102.9 1197.25 78 33 1 2 19 1 72 2 8 +3675 46 23 -98.7 1197.25 78 31 1 2 19 1 70 2 6 +3676 46 24 -94.5 1197.25 78 32 1 2 19 1 71 2 7 +3677 46 25 -90.3 1197.25 78 34 1 2 19 1 73 2 9 +3678 46 26 -86.1 1197.25 82 35 1 2 20 1 74 2 10 +3679 46 27 -81.9 1197.25 82 33 1 2 20 1 72 2 8 +3680 46 28 -77.7 1197.25 82 31 1 2 20 1 70 2 6 +3681 46 29 -73.5 1197.25 82 32 1 2 20 1 71 2 7 +3682 46 30 -69.3 1197.25 82 34 1 2 20 1 73 2 9 +3683 46 31 -65.1 1197.25 86 35 1 2 21 1 74 2 10 +3684 46 32 -60.9 1197.25 86 33 1 2 21 1 72 2 8 +3685 46 33 -56.7 1197.25 86 31 1 2 21 1 70 2 6 +3686 46 34 -52.5 1197.25 86 30 1 2 21 1 69 2 5 +3687 46 35 -48.3 1197.25 86 32 1 2 21 1 71 2 7 +3688 46 36 -44.1 1197.25 86 34 1 2 21 1 73 2 9 +3689 46 37 -39.9 1197.25 90 33 1 2 22 1 72 2 8 +3690 46 38 -35.7 1197.25 90 31 1 2 22 1 70 2 6 +3691 46 39 -31.5 1197.25 90 30 1 2 22 1 69 2 5 +3692 46 40 -27.3 1197.25 90 32 1 2 22 1 71 2 7 +3693 46 41 -23.1 1197.25 90 34 1 2 22 1 73 2 9 +3694 46 42 -18.9 1197.25 94 33 1 2 23 1 72 2 8 +3695 46 43 -14.7 1197.25 94 31 1 2 23 1 70 2 6 +3696 46 44 -10.5 1197.25 94 32 1 2 23 1 71 2 7 +3697 46 45 -6.3 1197.25 94 34 1 2 23 1 73 2 9 +3698 46 46 -2.1 1197.25 94 36 1 2 23 1 75 2 11 +3699 46 47 2.1 1197.25 98 35 1 2 24 1 74 2 10 +3700 46 48 6.3 1197.25 98 33 1 2 24 1 72 2 8 +3701 46 49 10.5 1197.25 98 31 1 2 24 1 70 2 6 +3702 46 50 14.7 1197.25 98 32 1 2 24 1 71 2 7 +3703 46 51 18.9 1197.25 98 34 1 2 24 1 73 2 9 +3704 46 52 23.1 1197.25 102 33 1 2 25 1 72 2 8 +3705 46 53 27.3 1197.25 102 31 1 2 25 1 70 2 6 +3706 46 54 31.5 1197.25 102 29 1 2 25 1 68 2 4 +3707 46 55 35.7 1197.25 102 32 1 2 25 1 71 2 7 +3708 46 56 39.9 1197.25 102 34 1 2 25 1 73 2 9 +3709 46 57 44.1 1197.25 106 33 1 2 26 1 72 2 8 +3710 46 58 48.3 1197.25 106 31 1 2 26 1 70 2 6 +3711 46 59 52.5 1197.25 106 29 1 2 26 1 68 2 4 +3712 46 60 56.7 1197.25 106 32 1 2 26 1 71 2 7 +3713 46 61 60.9 1197.25 106 34 1 2 26 1 73 2 9 +3714 46 62 65.1 1197.25 106 36 1 2 26 1 75 2 11 +3715 46 63 69.3 1197.25 110 33 1 2 27 1 72 2 8 +3716 46 64 73.5 1197.25 110 31 1 2 27 1 70 2 6 +3717 46 65 77.7 1197.25 110 32 1 2 27 1 71 2 7 +3718 46 66 81.9 1197.25 110 34 1 2 27 1 73 2 9 +3719 46 67 86.1 1197.25 110 36 1 2 27 1 75 2 11 +3720 46 68 90.3 1197.25 114 33 1 2 28 1 72 2 8 +3721 46 69 94.5 1197.25 114 31 1 2 28 1 70 2 6 +3722 46 70 98.7 1197.25 114 32 1 2 28 1 71 2 7 +3723 46 71 102.9 1197.25 114 34 1 2 28 1 73 2 9 +3724 46 72 107.1 1197.25 114 36 1 2 28 1 75 2 11 +3725 46 73 111.3 1197.25 118 33 1 2 29 1 72 2 8 +3726 46 74 115.5 1197.25 118 31 1 2 29 1 70 2 6 +3727 46 75 119.7 1197.25 118 29 1 2 29 1 68 2 4 +3728 46 76 123.9 1197.25 118 32 1 2 29 1 71 2 7 +3729 46 77 128.1 1197.25 118 34 1 2 29 1 73 2 9 +3730 46 78 132.3 1197.25 122 33 1 2 30 1 72 2 8 +3731 46 79 136.5 1197.25 122 31 1 2 30 1 70 2 6 +3732 46 80 140.7 1197.25 122 29 1 2 30 1 68 2 4 +3733 46 81 144.9 1197.25 122 32 1 2 30 1 71 2 7 +3734 46 82 149.1 1197.25 122 34 1 2 30 1 73 2 9 +3735 46 83 153.3 1197.25 122 36 1 2 30 1 75 2 11 +3736 46 84 157.5 1197.25 126 35 1 2 31 1 74 2 10 +3737 46 85 161.7 1197.25 126 33 1 2 31 1 72 2 8 +3738 46 86 165.9 1197.25 126 31 1 2 31 1 70 2 6 +3739 46 87 170.1 1197.25 126 32 1 2 31 1 71 2 7 +3740 46 88 174.3 1197.25 126 34 1 2 31 1 73 2 9 +3741 46 89 178.5 1197.25 130 33 1 2 32 1 72 2 8 +3742 46 90 182.7 1197.25 130 31 1 2 32 1 70 2 6 +3743 46 91 186.9 1197.25 130 32 1 2 32 1 71 2 7 +3744 46 92 191.1 1197.25 130 34 1 2 32 1 73 2 9 +3745 46 93 195.3 1197.25 130 36 1 2 32 1 75 2 11 +3746 47 0 -195.3 1204.75 62 39 1 2 15 1 78 2 14 +3747 47 1 -191.1 1204.75 62 37 1 2 15 1 76 2 12 +3748 47 2 -186.9 1204.75 62 36 1 2 15 1 75 2 11 +3749 47 3 -182.7 1204.75 62 38 1 2 15 1 77 2 13 +3750 47 4 -178.5 1204.75 62 40 1 2 15 1 79 2 15 +3751 47 5 -174.3 1204.75 66 39 1 2 16 1 78 2 14 +3752 47 6 -170.1 1204.75 66 37 1 2 16 1 76 2 12 +3753 47 7 -165.9 1204.75 66 35 1 2 16 1 74 2 10 +3754 47 8 -161.7 1204.75 66 38 1 2 16 1 77 2 13 +3755 47 9 -157.5 1204.75 66 40 1 2 16 1 79 2 15 +3756 47 10 -153.3 1204.75 70 39 1 2 17 1 78 2 14 +3757 47 11 -149.1 1204.75 70 37 1 2 17 1 76 2 12 +3758 47 12 -144.9 1204.75 70 36 1 2 17 1 75 2 11 +3759 47 13 -140.7 1204.75 70 38 1 2 17 1 77 2 13 +3760 47 14 -136.5 1204.75 70 40 1 2 17 1 79 2 15 +3761 47 15 -132.3 1204.75 74 39 1 2 18 1 78 2 14 +3762 47 16 -128.1 1204.75 74 37 1 2 18 1 76 2 12 +3763 47 17 -123.9 1204.75 74 35 1 2 18 1 74 2 10 +3764 47 18 -119.7 1204.75 74 36 1 2 18 1 75 2 11 +3765 47 19 -115.5 1204.75 74 38 1 2 18 1 77 2 13 +3766 47 20 -111.3 1204.75 74 40 1 2 18 1 79 2 15 +3767 47 21 -107.1 1204.75 78 39 1 2 19 1 78 2 14 +3768 47 22 -102.9 1204.75 78 37 1 2 19 1 76 2 12 +3769 47 23 -98.7 1204.75 78 36 1 2 19 1 75 2 11 +3770 47 24 -94.5 1204.75 78 38 1 2 19 1 77 2 13 +3771 47 25 -90.3 1204.75 78 40 1 2 19 1 79 2 15 +3772 47 26 -86.1 1204.75 82 39 1 2 20 1 78 2 14 +3773 47 27 -81.9 1204.75 82 37 1 2 20 1 76 2 12 +3774 47 28 -77.7 1204.75 82 36 1 2 20 1 75 2 11 +3775 47 29 -73.5 1204.75 82 38 1 2 20 1 77 2 13 +3776 47 30 -69.3 1204.75 82 40 1 2 20 1 79 2 15 +3777 47 31 -65.1 1204.75 86 39 1 2 21 1 78 2 14 +3778 47 32 -60.9 1204.75 86 37 1 2 21 1 76 2 12 +3779 47 33 -56.7 1204.75 86 36 1 2 21 1 75 2 11 +3780 47 34 -52.5 1204.75 86 38 1 2 21 1 77 2 13 +3781 47 35 -48.3 1204.75 86 40 1 2 21 1 79 2 15 +3782 47 36 -44.1 1204.75 90 39 1 2 22 1 78 2 14 +3783 47 37 -39.9 1204.75 90 37 1 2 22 1 76 2 12 +3784 47 38 -35.7 1204.75 90 35 1 2 22 1 74 2 10 +3785 47 39 -31.5 1204.75 90 36 1 2 22 1 75 2 11 +3786 47 40 -27.3 1204.75 90 38 1 2 22 1 77 2 13 +3787 47 41 -23.1 1204.75 90 40 1 2 22 1 79 2 15 +3788 47 42 -18.9 1204.75 94 39 1 2 23 1 78 2 14 +3789 47 43 -14.7 1204.75 94 37 1 2 23 1 76 2 12 +3790 47 44 -10.5 1204.75 94 35 1 2 23 1 74 2 10 +3791 47 45 -6.3 1204.75 94 38 1 2 23 1 77 2 13 +3792 47 46 -2.1 1204.75 94 40 1 2 23 1 79 2 15 +3793 47 47 2.1 1204.75 98 39 1 2 24 1 78 2 14 +3794 47 48 6.3 1204.75 98 37 1 2 24 1 76 2 12 +3795 47 49 10.5 1204.75 98 36 1 2 24 1 75 2 11 +3796 47 50 14.7 1204.75 98 38 1 2 24 1 77 2 13 +3797 47 51 18.9 1204.75 98 40 1 2 24 1 79 2 15 +3798 47 52 23.1 1204.75 102 39 1 2 25 1 78 2 14 +3799 47 53 27.3 1204.75 102 37 1 2 25 1 76 2 12 +3800 47 54 31.5 1204.75 102 35 1 2 25 1 74 2 10 +3801 47 55 35.7 1204.75 102 36 1 2 25 1 75 2 11 +3802 47 56 39.9 1204.75 102 38 1 2 25 1 77 2 13 +3803 47 57 44.1 1204.75 102 40 1 2 25 1 79 2 15 +3804 47 58 48.3 1204.75 106 39 1 2 26 1 78 2 14 +3805 47 59 52.5 1204.75 106 37 1 2 26 1 76 2 12 +3806 47 60 56.7 1204.75 106 35 1 2 26 1 74 2 10 +3807 47 61 60.9 1204.75 106 38 1 2 26 1 77 2 13 +3808 47 62 65.1 1204.75 106 40 1 2 26 1 79 2 15 +3809 47 63 69.3 1204.75 110 39 1 2 27 1 78 2 14 +3810 47 64 73.5 1204.75 110 37 1 2 27 1 76 2 12 +3811 47 65 77.7 1204.75 110 35 1 2 27 1 74 2 10 +3812 47 66 81.9 1204.75 110 38 1 2 27 1 77 2 13 +3813 47 67 86.1 1204.75 110 40 1 2 27 1 79 2 15 +3814 47 68 90.3 1204.75 114 39 1 2 28 1 78 2 14 +3815 47 69 94.5 1204.75 114 37 1 2 28 1 76 2 12 +3816 47 70 98.7 1204.75 114 35 1 2 28 1 74 2 10 +3817 47 71 102.9 1204.75 114 38 1 2 28 1 77 2 13 +3818 47 72 107.1 1204.75 114 40 1 2 28 1 79 2 15 +3819 47 73 111.3 1204.75 118 39 1 2 29 1 78 2 14 +3820 47 74 115.5 1204.75 118 37 1 2 29 1 76 2 12 +3821 47 75 119.7 1204.75 118 35 1 2 29 1 74 2 10 +3822 47 76 123.9 1204.75 118 36 1 2 29 1 75 2 11 +3823 47 77 128.1 1204.75 118 38 1 2 29 1 77 2 13 +3824 47 78 132.3 1204.75 118 40 1 2 29 1 79 2 15 +3825 47 79 136.5 1204.75 122 39 1 2 30 1 78 2 14 +3826 47 80 140.7 1204.75 122 37 1 2 30 1 76 2 12 +3827 47 81 144.9 1204.75 122 35 1 2 30 1 74 2 10 +3828 47 82 149.1 1204.75 122 38 1 2 30 1 77 2 13 +3829 47 83 153.3 1204.75 122 40 1 2 30 1 79 2 15 +3830 47 84 157.5 1204.75 126 39 1 2 31 1 78 2 14 +3831 47 85 161.7 1204.75 126 37 1 2 31 1 76 2 12 +3832 47 86 165.9 1204.75 126 36 1 2 31 1 75 2 11 +3833 47 87 170.1 1204.75 126 38 1 2 31 1 77 2 13 +3834 47 88 174.3 1204.75 126 40 1 2 31 1 79 2 15 +3835 47 89 178.5 1204.75 130 39 1 2 32 1 78 2 14 +3836 47 90 182.7 1204.75 130 37 1 2 32 1 76 2 12 +3837 47 91 186.9 1204.75 130 35 1 2 32 1 74 2 10 +3838 47 92 191.1 1204.75 130 38 1 2 32 1 77 2 13 +3839 47 93 195.3 1204.75 130 40 1 2 32 1 79 2 15 +3840 48 0 -198.38 1212.25 63 3 1 3 15 2 82 2 18 +3841 48 1 -194.02 1212.25 63 1 1 3 15 2 80 2 16 +3842 48 2 -189.66 1212.25 63 2 1 3 15 2 81 2 17 +3843 48 3 -185.3 1212.25 63 4 1 3 15 2 83 2 19 +3844 48 4 -180.94 1212.25 63 6 1 3 15 2 85 2 21 +3845 48 5 -176.58 1212.25 67 3 1 3 16 2 82 2 18 +3846 48 6 -172.22 1212.25 67 1 1 3 16 2 80 2 16 +3847 48 7 -167.86 1212.25 67 2 1 3 16 2 81 2 17 +3848 48 8 -163.5 1212.25 67 4 1 3 16 2 83 2 19 +3849 48 9 -159.14 1212.25 67 6 1 3 16 2 85 2 21 +3850 48 10 -154.78 1212.25 71 5 1 3 17 2 84 2 20 +3851 48 11 -150.42 1212.25 71 3 1 3 17 2 82 2 18 +3852 48 12 -146.06 1212.25 71 1 1 3 17 2 80 2 16 +3853 48 13 -141.7 1212.25 71 2 1 3 17 2 81 2 17 +3854 48 14 -137.34 1212.25 71 4 1 3 17 2 83 2 19 +3855 48 15 -132.98 1212.25 75 5 1 3 18 2 84 2 20 +3856 48 16 -128.62 1212.25 75 3 1 3 18 2 82 2 18 +3857 48 17 -124.26 1212.25 75 1 1 3 18 2 80 2 16 +3858 48 18 -119.9 1212.25 75 2 1 3 18 2 81 2 17 +3859 48 19 -115.54 1212.25 75 4 1 3 18 2 83 2 19 +3860 48 20 -111.18 1212.25 75 6 1 3 18 2 85 2 21 +3861 48 21 -106.82 1212.25 79 3 1 3 19 2 82 2 18 +3862 48 22 -102.46 1212.25 79 1 1 3 19 2 80 2 16 +3863 48 23 -98.1 1212.25 79 2 1 3 19 2 81 2 17 +3864 48 24 -93.74 1212.25 79 4 1 3 19 2 83 2 19 +3865 48 25 -89.38 1212.25 79 6 1 3 19 2 85 2 21 +3866 48 26 -85.02 1212.25 83 5 1 3 20 2 84 2 20 +3867 48 27 -80.66 1212.25 83 3 1 3 20 2 82 2 18 +3868 48 28 -76.3 1212.25 83 1 1 3 20 2 80 2 16 +3869 48 29 -71.94 1212.25 83 2 1 3 20 2 81 2 17 +3870 48 30 -67.58 1212.25 83 4 1 3 20 2 83 2 19 +3871 48 31 -63.22 1212.25 87 5 1 3 21 2 84 2 20 +3872 48 32 -58.86 1212.25 87 3 1 3 21 2 82 2 18 +3873 48 33 -54.5 1212.25 87 1 1 3 21 2 80 2 16 +3874 48 34 -50.14 1212.25 87 2 1 3 21 2 81 2 17 +3875 48 35 -45.78 1212.25 87 4 1 3 21 2 83 2 19 +3876 48 36 -41.42 1212.25 91 3 1 3 22 2 82 2 18 +3877 48 37 -37.06 1212.25 91 1 1 3 22 2 80 2 16 +3878 48 38 -32.7 1212.25 91 2 1 3 22 2 81 2 17 +3879 48 39 -28.34 1212.25 91 4 1 3 22 2 83 2 19 +3880 48 40 -23.98 1212.25 91 6 1 3 22 2 85 2 21 +3881 48 41 -19.62 1212.25 95 3 1 3 23 2 82 2 18 +3882 48 42 -15.26 1212.25 95 1 1 3 23 2 80 2 16 +3883 48 43 -10.9 1212.25 95 2 1 3 23 2 81 2 17 +3884 48 44 -6.54 1212.25 95 4 1 3 23 2 83 2 19 +3885 48 45 -2.18 1212.25 95 6 1 3 23 2 85 2 21 +3886 48 46 2.18 1212.25 99 5 1 3 24 2 84 2 20 +3887 48 47 6.54 1212.25 99 3 1 3 24 2 82 2 18 +3888 48 48 10.9 1212.25 99 1 1 3 24 2 80 2 16 +3889 48 49 15.26 1212.25 99 2 1 3 24 2 81 2 17 +3890 48 50 19.62 1212.25 99 4 1 3 24 2 83 2 19 +3891 48 51 23.98 1212.25 103 5 1 3 25 2 84 2 20 +3892 48 52 28.34 1212.25 103 3 1 3 25 2 82 2 18 +3893 48 53 32.7 1212.25 103 1 1 3 25 2 80 2 16 +3894 48 54 37.06 1212.25 103 2 1 3 25 2 81 2 17 +3895 48 55 41.42 1212.25 103 4 1 3 25 2 83 2 19 +3896 48 56 45.78 1212.25 107 3 1 3 26 2 82 2 18 +3897 48 57 50.14 1212.25 107 1 1 3 26 2 80 2 16 +3898 48 58 54.5 1212.25 107 2 1 3 26 2 81 2 17 +3899 48 59 58.86 1212.25 107 4 1 3 26 2 83 2 19 +3900 48 60 63.22 1212.25 107 6 1 3 26 2 85 2 21 +3901 48 61 67.58 1212.25 111 3 1 3 27 2 82 2 18 +3902 48 62 71.94 1212.25 111 1 1 3 27 2 80 2 16 +3903 48 63 76.3 1212.25 111 2 1 3 27 2 81 2 17 +3904 48 64 80.66 1212.25 111 4 1 3 27 2 83 2 19 +3905 48 65 85.02 1212.25 111 6 1 3 27 2 85 2 21 +3906 48 66 89.38 1212.25 115 5 1 3 28 2 84 2 20 +3907 48 67 93.74 1212.25 115 3 1 3 28 2 82 2 18 +3908 48 68 98.1 1212.25 115 1 1 3 28 2 80 2 16 +3909 48 69 102.46 1212.25 115 2 1 3 28 2 81 2 17 +3910 48 70 106.82 1212.25 115 4 1 3 28 2 83 2 19 +3911 48 71 111.18 1212.25 119 5 1 3 29 2 84 2 20 +3912 48 72 115.54 1212.25 119 3 1 3 29 2 82 2 18 +3913 48 73 119.9 1212.25 119 1 1 3 29 2 80 2 16 +3914 48 74 124.26 1212.25 119 2 1 3 29 2 81 2 17 +3915 48 75 128.62 1212.25 119 4 1 3 29 2 83 2 19 +3916 48 76 132.98 1212.25 119 6 1 3 29 2 85 2 21 +3917 48 77 137.34 1212.25 123 3 1 3 30 2 82 2 18 +3918 48 78 141.7 1212.25 123 1 1 3 30 2 80 2 16 +3919 48 79 146.06 1212.25 123 2 1 3 30 2 81 2 17 +3920 48 80 150.42 1212.25 123 4 1 3 30 2 83 2 19 +3921 48 81 154.78 1212.25 123 6 1 3 30 2 85 2 21 +3922 48 82 159.14 1212.25 127 5 1 3 31 2 84 2 20 +3923 48 83 163.5 1212.25 127 3 1 3 31 2 82 2 18 +3924 48 84 167.86 1212.25 127 1 1 3 31 2 80 2 16 +3925 48 85 172.22 1212.25 127 2 1 3 31 2 81 2 17 +3926 48 86 176.58 1212.25 127 4 1 3 31 2 83 2 19 +3927 48 87 180.94 1212.25 131 5 1 3 32 2 84 2 20 +3928 48 88 185.3 1212.25 131 3 1 3 32 2 82 2 18 +3929 48 89 189.66 1212.25 131 1 1 3 32 2 80 2 16 +3930 48 90 194.02 1212.25 131 2 1 3 32 2 81 2 17 +3931 48 91 198.38 1212.25 131 4 1 3 32 2 83 2 19 +3932 49 0 -198.38 1219.75 63 9 1 3 15 2 88 2 24 +3933 49 1 -194.02 1219.75 63 7 1 3 15 2 86 2 22 +3934 49 2 -189.66 1219.75 63 5 1 3 15 2 84 2 20 +3935 49 3 -185.3 1219.75 63 8 1 3 15 2 87 2 23 +3936 49 4 -180.94 1219.75 63 10 1 3 15 2 89 2 25 +3937 49 5 -176.58 1219.75 67 9 1 3 16 2 88 2 24 +3938 49 6 -172.22 1219.75 67 7 1 3 16 2 86 2 22 +3939 49 7 -167.86 1219.75 67 5 1 3 16 2 84 2 20 +3940 49 8 -163.5 1219.75 67 8 1 3 16 2 87 2 23 +3941 49 9 -159.14 1219.75 67 10 1 3 16 2 89 2 25 +3942 49 10 -154.78 1219.75 71 9 1 3 17 2 88 2 24 +3943 49 11 -150.42 1219.75 71 7 1 3 17 2 86 2 22 +3944 49 12 -146.06 1219.75 71 6 1 3 17 2 85 2 21 +3945 49 13 -141.7 1219.75 71 8 1 3 17 2 87 2 23 +3946 49 14 -137.34 1219.75 71 10 1 3 17 2 89 2 25 +3947 49 15 -132.98 1219.75 75 9 1 3 18 2 88 2 24 +3948 49 16 -128.62 1219.75 75 7 1 3 18 2 86 2 22 +3949 49 17 -124.26 1219.75 75 8 1 3 18 2 87 2 23 +3950 49 18 -119.9 1219.75 75 10 1 3 18 2 89 2 25 +3951 49 19 -115.54 1219.75 75 12 1 3 18 2 91 2 27 +3952 49 20 -111.18 1219.75 79 9 1 3 19 2 88 2 24 +3953 49 21 -106.82 1219.75 79 7 1 3 19 2 86 2 22 +3954 49 22 -102.46 1219.75 79 5 1 3 19 2 84 2 20 +3955 49 23 -98.1 1219.75 79 8 1 3 19 2 87 2 23 +3956 49 24 -93.74 1219.75 79 10 1 3 19 2 89 2 25 +3957 49 25 -89.38 1219.75 83 11 1 3 20 2 90 2 26 +3958 49 26 -85.02 1219.75 83 9 1 3 20 2 88 2 24 +3959 49 27 -80.66 1219.75 83 7 1 3 20 2 86 2 22 +3960 49 28 -76.3 1219.75 83 6 1 3 20 2 85 2 21 +3961 49 29 -71.94 1219.75 83 8 1 3 20 2 87 2 23 +3962 49 30 -67.58 1219.75 83 10 1 3 20 2 89 2 25 +3963 49 31 -63.22 1219.75 87 9 1 3 21 2 88 2 24 +3964 49 32 -58.86 1219.75 87 7 1 3 21 2 86 2 22 +3965 49 33 -54.5 1219.75 87 6 1 3 21 2 85 2 21 +3966 49 34 -50.14 1219.75 87 8 1 3 21 2 87 2 23 +3967 49 35 -45.78 1219.75 87 10 1 3 21 2 89 2 25 +3968 49 36 -41.42 1219.75 91 9 1 3 22 2 88 2 24 +3969 49 37 -37.06 1219.75 91 7 1 3 22 2 86 2 22 +3970 49 38 -32.7 1219.75 91 5 1 3 22 2 84 2 20 +3971 49 39 -28.34 1219.75 91 8 1 3 22 2 87 2 23 +3972 49 40 -23.98 1219.75 91 10 1 3 22 2 89 2 25 +3973 49 41 -19.62 1219.75 95 9 1 3 23 2 88 2 24 +3974 49 42 -15.26 1219.75 95 7 1 3 23 2 86 2 22 +3975 49 43 -10.9 1219.75 95 5 1 3 23 2 84 2 20 +3976 49 44 -6.54 1219.75 95 8 1 3 23 2 87 2 23 +3977 49 45 -2.18 1219.75 95 10 1 3 23 2 89 2 25 +3978 49 46 2.18 1219.75 99 9 1 3 24 2 88 2 24 +3979 49 47 6.54 1219.75 99 7 1 3 24 2 86 2 22 +3980 49 48 10.9 1219.75 99 6 1 3 24 2 85 2 21 +3981 49 49 15.26 1219.75 99 8 1 3 24 2 87 2 23 +3982 49 50 19.62 1219.75 99 10 1 3 24 2 89 2 25 +3983 49 51 23.98 1219.75 103 9 1 3 25 2 88 2 24 +3984 49 52 28.34 1219.75 103 7 1 3 25 2 86 2 22 +3985 49 53 32.7 1219.75 103 6 1 3 25 2 85 2 21 +3986 49 54 37.06 1219.75 103 8 1 3 25 2 87 2 23 +3987 49 55 41.42 1219.75 103 10 1 3 25 2 89 2 25 +3988 49 56 45.78 1219.75 107 9 1 3 26 2 88 2 24 +3989 49 57 50.14 1219.75 107 7 1 3 26 2 86 2 22 +3990 49 58 54.5 1219.75 107 5 1 3 26 2 84 2 20 +3991 49 59 58.86 1219.75 107 8 1 3 26 2 87 2 23 +3992 49 60 63.22 1219.75 107 10 1 3 26 2 89 2 25 +3993 49 61 67.58 1219.75 111 9 1 3 27 2 88 2 24 +3994 49 62 71.94 1219.75 111 7 1 3 27 2 86 2 22 +3995 49 63 76.3 1219.75 111 5 1 3 27 2 84 2 20 +3996 49 64 80.66 1219.75 111 8 1 3 27 2 87 2 23 +3997 49 65 85.02 1219.75 111 10 1 3 27 2 89 2 25 +3998 49 66 89.38 1219.75 111 12 1 3 27 2 91 2 27 +3999 49 67 93.74 1219.75 115 9 1 3 28 2 88 2 24 +4000 49 68 98.1 1219.75 115 7 1 3 28 2 86 2 22 +4001 49 69 102.46 1219.75 115 6 1 3 28 2 85 2 21 +4002 49 70 106.82 1219.75 115 8 1 3 28 2 87 2 23 +4003 49 71 111.18 1219.75 115 10 1 3 28 2 89 2 25 +4004 49 72 115.54 1219.75 119 11 1 3 29 2 90 2 26 +4005 49 73 119.9 1219.75 119 9 1 3 29 2 88 2 24 +4006 49 74 124.26 1219.75 119 7 1 3 29 2 86 2 22 +4007 49 75 128.62 1219.75 119 8 1 3 29 2 87 2 23 +4008 49 76 132.98 1219.75 119 10 1 3 29 2 89 2 25 +4009 49 77 137.34 1219.75 123 9 1 3 30 2 88 2 24 +4010 49 78 141.7 1219.75 123 7 1 3 30 2 86 2 22 +4011 49 79 146.06 1219.75 123 5 1 3 30 2 84 2 20 +4012 49 80 150.42 1219.75 123 8 1 3 30 2 87 2 23 +4013 49 81 154.78 1219.75 123 10 1 3 30 2 89 2 25 +4014 49 82 159.14 1219.75 127 9 1 3 31 2 88 2 24 +4015 49 83 163.5 1219.75 127 7 1 3 31 2 86 2 22 +4016 49 84 167.86 1219.75 127 6 1 3 31 2 85 2 21 +4017 49 85 172.22 1219.75 127 8 1 3 31 2 87 2 23 +4018 49 86 176.58 1219.75 127 10 1 3 31 2 89 2 25 +4019 49 87 180.94 1219.75 131 9 1 3 32 2 88 2 24 +4020 49 88 185.3 1219.75 131 7 1 3 32 2 86 2 22 +4021 49 89 189.66 1219.75 131 6 1 3 32 2 85 2 21 +4022 49 90 194.02 1219.75 131 8 1 3 32 2 87 2 23 +4023 49 91 198.38 1219.75 131 10 1 3 32 2 89 2 25 +4024 50 0 -198.38 1227.25 63 13 1 3 15 2 92 2 28 +4025 50 1 -194.02 1227.25 63 11 1 3 15 2 90 2 26 +4026 50 2 -189.66 1227.25 63 12 1 3 15 2 91 2 27 +4027 50 3 -185.3 1227.25 63 14 1 3 15 2 93 2 29 +4028 50 4 -180.94 1227.25 63 16 1 3 15 2 95 2 31 +4029 50 5 -176.58 1227.25 67 13 1 3 16 2 92 2 28 +4030 50 6 -172.22 1227.25 67 11 1 3 16 2 90 2 26 +4031 50 7 -167.86 1227.25 67 12 1 3 16 2 91 2 27 +4032 50 8 -163.5 1227.25 67 14 1 3 16 2 93 2 29 +4033 50 9 -159.14 1227.25 67 16 1 3 16 2 95 2 31 +4034 50 10 -154.78 1227.25 71 15 1 3 17 2 94 2 30 +4035 50 11 -150.42 1227.25 71 13 1 3 17 2 92 2 28 +4036 50 12 -146.06 1227.25 71 11 1 3 17 2 90 2 26 +4037 50 13 -141.7 1227.25 71 12 1 3 17 2 91 2 27 +4038 50 14 -137.34 1227.25 71 14 1 3 17 2 93 2 29 +4039 50 15 -132.98 1227.25 75 15 1 3 18 2 94 2 30 +4040 50 16 -128.62 1227.25 75 13 1 3 18 2 92 2 28 +4041 50 17 -124.26 1227.25 75 11 1 3 18 2 90 2 26 +4042 50 18 -119.9 1227.25 75 14 1 3 18 2 93 2 29 +4043 50 19 -115.54 1227.25 75 16 1 3 18 2 95 2 31 +4044 50 20 -111.18 1227.25 79 13 1 3 19 2 92 2 28 +4045 50 21 -106.82 1227.25 79 11 1 3 19 2 90 2 26 +4046 50 22 -102.46 1227.25 79 12 1 3 19 2 91 2 27 +4047 50 23 -98.1 1227.25 79 14 1 3 19 2 93 2 29 +4048 50 24 -93.74 1227.25 79 16 1 3 19 2 95 2 31 +4049 50 25 -89.38 1227.25 83 17 1 3 20 2 96 3 0 +4050 50 26 -85.02 1227.25 83 15 1 3 20 2 94 2 30 +4051 50 27 -80.66 1227.25 83 13 1 3 20 2 92 2 28 +4052 50 28 -76.3 1227.25 83 12 1 3 20 2 91 2 27 +4053 50 29 -71.94 1227.25 83 14 1 3 20 2 93 2 29 +4054 50 30 -67.58 1227.25 83 16 1 3 20 2 95 2 31 +4055 50 31 -63.22 1227.25 87 13 1 3 21 2 92 2 28 +4056 50 32 -58.86 1227.25 87 11 1 3 21 2 90 2 26 +4057 50 33 -54.5 1227.25 87 12 1 3 21 2 91 2 27 +4058 50 34 -50.14 1227.25 87 14 1 3 21 2 93 2 29 +4059 50 35 -45.78 1227.25 87 16 1 3 21 2 95 2 31 +4060 50 36 -41.42 1227.25 91 13 1 3 22 2 92 2 28 +4061 50 37 -37.06 1227.25 91 11 1 3 22 2 90 2 26 +4062 50 38 -32.7 1227.25 91 12 1 3 22 2 91 2 27 +4063 50 39 -28.34 1227.25 91 14 1 3 22 2 93 2 29 +4064 50 40 -23.98 1227.25 91 16 1 3 22 2 95 2 31 +4065 50 41 -19.62 1227.25 95 13 1 3 23 2 92 2 28 +4066 50 42 -15.26 1227.25 95 11 1 3 23 2 90 2 26 +4067 50 43 -10.9 1227.25 95 12 1 3 23 2 91 2 27 +4068 50 44 -6.54 1227.25 95 14 1 3 23 2 93 2 29 +4069 50 45 -2.18 1227.25 95 16 1 3 23 2 95 2 31 +4070 50 46 2.18 1227.25 99 15 1 3 24 2 94 2 30 +4071 50 47 6.54 1227.25 99 13 1 3 24 2 92 2 28 +4072 50 48 10.9 1227.25 99 11 1 3 24 2 90 2 26 +4073 50 49 15.26 1227.25 99 12 1 3 24 2 91 2 27 +4074 50 50 19.62 1227.25 99 14 1 3 24 2 93 2 29 +4075 50 51 23.98 1227.25 103 15 1 3 25 2 94 2 30 +4076 50 52 28.34 1227.25 103 13 1 3 25 2 92 2 28 +4077 50 53 32.7 1227.25 103 11 1 3 25 2 90 2 26 +4078 50 54 37.06 1227.25 103 12 1 3 25 2 91 2 27 +4079 50 55 41.42 1227.25 103 14 1 3 25 2 93 2 29 +4080 50 56 45.78 1227.25 107 15 1 3 26 2 94 2 30 +4081 50 57 50.14 1227.25 107 13 1 3 26 2 92 2 28 +4082 50 58 54.5 1227.25 107 11 1 3 26 2 90 2 26 +4083 50 59 58.86 1227.25 107 12 1 3 26 2 91 2 27 +4084 50 60 63.22 1227.25 107 14 1 3 26 2 93 2 29 +4085 50 61 67.58 1227.25 111 15 1 3 27 2 94 2 30 +4086 50 62 71.94 1227.25 111 13 1 3 27 2 92 2 28 +4087 50 63 76.3 1227.25 111 11 1 3 27 2 90 2 26 +4088 50 64 80.66 1227.25 111 14 1 3 27 2 93 2 29 +4089 50 65 85.02 1227.25 111 16 1 3 27 2 95 2 31 +4090 50 66 89.38 1227.25 111 18 1 3 27 2 97 3 1 +4091 50 67 93.74 1227.25 115 15 1 3 28 2 94 2 30 +4092 50 68 98.1 1227.25 115 13 1 3 28 2 92 2 28 +4093 50 69 102.46 1227.25 115 11 1 3 28 2 90 2 26 +4094 50 70 106.82 1227.25 115 12 1 3 28 2 91 2 27 +4095 50 71 111.18 1227.25 115 14 1 3 28 2 93 2 29 +4096 50 72 115.54 1227.25 119 15 1 3 29 2 94 2 30 +4097 50 73 119.9 1227.25 119 13 1 3 29 2 92 2 28 +4098 50 74 124.26 1227.25 119 12 1 3 29 2 91 2 27 +4099 50 75 128.62 1227.25 119 14 1 3 29 2 93 2 29 +4100 50 76 132.98 1227.25 119 16 1 3 29 2 95 2 31 +4101 50 77 137.34 1227.25 123 13 1 3 30 2 92 2 28 +4102 50 78 141.7 1227.25 123 11 1 3 30 2 90 2 26 +4103 50 79 146.06 1227.25 123 12 1 3 30 2 91 2 27 +4104 50 80 150.42 1227.25 123 14 1 3 30 2 93 2 29 +4105 50 81 154.78 1227.25 123 16 1 3 30 2 95 2 31 +4106 50 82 159.14 1227.25 127 15 1 3 31 2 94 2 30 +4107 50 83 163.5 1227.25 127 13 1 3 31 2 92 2 28 +4108 50 84 167.86 1227.25 127 11 1 3 31 2 90 2 26 +4109 50 85 172.22 1227.25 127 12 1 3 31 2 91 2 27 +4110 50 86 176.58 1227.25 127 14 1 3 31 2 93 2 29 +4111 50 87 180.94 1227.25 131 15 1 3 32 2 94 2 30 +4112 50 88 185.3 1227.25 131 13 1 3 32 2 92 2 28 +4113 50 89 189.66 1227.25 131 11 1 3 32 2 90 2 26 +4114 50 90 194.02 1227.25 131 12 1 3 32 2 91 2 27 +4115 50 91 198.38 1227.25 131 14 1 3 32 2 93 2 29 +4116 51 0 -202.74 1234.75 63 19 1 3 15 2 98 3 2 +4117 51 1 -198.38 1234.75 63 17 1 3 15 2 96 3 0 +4118 51 2 -194.02 1234.75 63 15 1 3 15 2 94 2 30 +4119 51 3 -189.66 1234.75 63 18 1 3 15 2 97 3 1 +4120 51 4 -185.3 1234.75 63 20 1 3 15 2 99 3 3 +4121 51 5 -180.94 1234.75 67 19 1 3 16 2 98 3 2 +4122 51 6 -176.58 1234.75 67 17 1 3 16 2 96 3 0 +4123 51 7 -172.22 1234.75 67 15 1 3 16 2 94 2 30 +4124 51 8 -167.86 1234.75 67 18 1 3 16 2 97 3 1 +4125 51 9 -163.5 1234.75 67 20 1 3 16 2 99 3 3 +4126 51 10 -159.14 1234.75 67 22 1 3 16 2 101 3 5 +4127 51 11 -154.78 1234.75 71 19 1 3 17 2 98 3 2 +4128 51 12 -150.42 1234.75 71 17 1 3 17 2 96 3 0 +4129 51 13 -146.06 1234.75 71 16 1 3 17 2 95 2 31 +4130 51 14 -141.7 1234.75 71 18 1 3 17 2 97 3 1 +4131 51 15 -137.34 1234.75 71 20 1 3 17 2 99 3 3 +4132 51 16 -132.98 1234.75 75 19 1 3 18 2 98 3 2 +4133 51 17 -128.62 1234.75 75 17 1 3 18 2 96 3 0 +4134 51 18 -124.26 1234.75 75 18 1 3 18 2 97 3 1 +4135 51 19 -119.9 1234.75 75 20 1 3 18 2 99 3 3 +4136 51 20 -115.54 1234.75 75 22 1 3 18 2 101 3 5 +4137 51 21 -111.18 1234.75 79 19 1 3 19 2 98 3 2 +4138 51 22 -106.82 1234.75 79 17 1 3 19 2 96 3 0 +4139 51 23 -102.46 1234.75 79 15 1 3 19 2 94 2 30 +4140 51 24 -98.1 1234.75 79 18 1 3 19 2 97 3 1 +4141 51 25 -93.74 1234.75 79 20 1 3 19 2 99 3 3 +4142 51 26 -89.38 1234.75 83 21 1 3 20 2 100 3 4 +4143 51 27 -85.02 1234.75 83 19 1 3 20 2 98 3 2 +4144 51 28 -80.66 1234.75 83 18 1 3 20 2 97 3 1 +4145 51 29 -76.3 1234.75 83 20 1 3 20 2 99 3 3 +4146 51 30 -71.94 1234.75 83 22 1 3 20 2 101 3 5 +4147 51 31 -67.58 1234.75 87 19 1 3 21 2 98 3 2 +4148 51 32 -63.22 1234.75 87 17 1 3 21 2 96 3 0 +4149 51 33 -58.86 1234.75 87 15 1 3 21 2 94 2 30 +4150 51 34 -54.5 1234.75 87 18 1 3 21 2 97 3 1 +4151 51 35 -50.14 1234.75 87 20 1 3 21 2 99 3 3 +4152 51 36 -45.78 1234.75 87 22 1 3 21 2 101 3 5 +4153 51 37 -41.42 1234.75 91 19 1 3 22 2 98 3 2 +4154 51 38 -37.06 1234.75 91 17 1 3 22 2 96 3 0 +4155 51 39 -32.7 1234.75 91 15 1 3 22 2 94 2 30 +4156 51 40 -28.34 1234.75 91 18 1 3 22 2 97 3 1 +4157 51 41 -23.98 1234.75 91 20 1 3 22 2 99 3 3 +4158 51 42 -19.62 1234.75 95 19 1 3 23 2 98 3 2 +4159 51 43 -15.26 1234.75 95 17 1 3 23 2 96 3 0 +4160 51 44 -10.9 1234.75 95 15 1 3 23 2 94 2 30 +4161 51 45 -6.54 1234.75 95 18 1 3 23 2 97 3 1 +4162 51 46 -2.18 1234.75 95 20 1 3 23 2 99 3 3 +4163 51 47 2.18 1234.75 99 19 1 3 24 2 98 3 2 +4164 51 48 6.54 1234.75 99 17 1 3 24 2 96 3 0 +4165 51 49 10.9 1234.75 99 16 1 3 24 2 95 2 31 +4166 51 50 15.26 1234.75 99 18 1 3 24 2 97 3 1 +4167 51 51 19.62 1234.75 99 20 1 3 24 2 99 3 3 +4168 51 52 23.98 1234.75 103 19 1 3 25 2 98 3 2 +4169 51 53 28.34 1234.75 103 17 1 3 25 2 96 3 0 +4170 51 54 32.7 1234.75 103 16 1 3 25 2 95 2 31 +4171 51 55 37.06 1234.75 103 18 1 3 25 2 97 3 1 +4172 51 56 41.42 1234.75 103 20 1 3 25 2 99 3 3 +4173 51 57 45.78 1234.75 107 21 1 3 26 2 100 3 4 +4174 51 58 50.14 1234.75 107 19 1 3 26 2 98 3 2 +4175 51 59 54.5 1234.75 107 17 1 3 26 2 96 3 0 +4176 51 60 58.86 1234.75 107 16 1 3 26 2 95 2 31 +4177 51 61 63.22 1234.75 107 18 1 3 26 2 97 3 1 +4178 51 62 67.58 1234.75 107 20 1 3 26 2 99 3 3 +4179 51 63 71.94 1234.75 111 21 1 3 27 2 100 3 4 +4180 51 64 76.3 1234.75 111 19 1 3 27 2 98 3 2 +4181 51 65 80.66 1234.75 111 17 1 3 27 2 96 3 0 +4182 51 66 85.02 1234.75 111 20 1 3 27 2 99 3 3 +4183 51 67 89.38 1234.75 111 22 1 3 27 2 101 3 5 +4184 51 68 93.74 1234.75 115 19 1 3 28 2 98 3 2 +4185 51 69 98.1 1234.75 115 17 1 3 28 2 96 3 0 +4186 51 70 102.46 1234.75 115 16 1 3 28 2 95 2 31 +4187 51 71 106.82 1234.75 115 18 1 3 28 2 97 3 1 +4188 51 72 111.18 1234.75 115 20 1 3 28 2 99 3 3 +4189 51 73 115.54 1234.75 119 21 1 3 29 2 100 3 4 +4190 51 74 119.9 1234.75 119 19 1 3 29 2 98 3 2 +4191 51 75 124.26 1234.75 119 17 1 3 29 2 96 3 0 +4192 51 76 128.62 1234.75 119 18 1 3 29 2 97 3 1 +4193 51 77 132.98 1234.75 119 20 1 3 29 2 99 3 3 +4194 51 78 137.34 1234.75 123 19 1 3 30 2 98 3 2 +4195 51 79 141.7 1234.75 123 17 1 3 30 2 96 3 0 +4196 51 80 146.06 1234.75 123 15 1 3 30 2 94 2 30 +4197 51 81 150.42 1234.75 123 18 1 3 30 2 97 3 1 +4198 51 82 154.78 1234.75 123 20 1 3 30 2 99 3 3 +4199 51 83 159.14 1234.75 127 21 1 3 31 2 100 3 4 +4200 51 84 163.5 1234.75 127 19 1 3 31 2 98 3 2 +4201 51 85 167.86 1234.75 127 17 1 3 31 2 96 3 0 +4202 51 86 172.22 1234.75 127 16 1 3 31 2 95 2 31 +4203 51 87 176.58 1234.75 127 18 1 3 31 2 97 3 1 +4204 51 88 180.94 1234.75 127 20 1 3 31 2 99 3 3 +4205 51 89 185.3 1234.75 131 19 1 3 32 2 98 3 2 +4206 51 90 189.66 1234.75 131 17 1 3 32 2 96 3 0 +4207 51 91 194.02 1234.75 131 16 1 3 32 2 95 2 31 +4208 51 92 198.38 1234.75 131 18 1 3 32 2 97 3 1 +4209 51 93 202.74 1234.75 131 20 1 3 32 2 99 3 3 +4210 52 0 -202.74 1242.25 63 25 1 3 15 2 104 3 8 +4211 52 1 -198.38 1242.25 63 23 1 3 15 2 102 3 6 +4212 52 2 -194.02 1242.25 63 21 1 3 15 2 100 3 4 +4213 52 3 -189.66 1242.25 63 22 1 3 15 2 101 3 5 +4214 52 4 -185.3 1242.25 63 24 1 3 15 2 103 3 7 +4215 52 5 -180.94 1242.25 67 25 1 3 16 2 104 3 8 +4216 52 6 -176.58 1242.25 67 23 1 3 16 2 102 3 6 +4217 52 7 -172.22 1242.25 67 21 1 3 16 2 100 3 4 +4218 52 8 -167.86 1242.25 67 24 1 3 16 2 103 3 7 +4219 52 9 -163.5 1242.25 67 26 1 3 16 2 105 3 9 +4220 52 10 -159.14 1242.25 71 25 1 3 17 2 104 3 8 +4221 52 11 -154.78 1242.25 71 23 1 3 17 2 102 3 6 +4222 52 12 -150.42 1242.25 71 21 1 3 17 2 100 3 4 +4223 52 13 -146.06 1242.25 71 22 1 3 17 2 101 3 5 +4224 52 14 -141.7 1242.25 71 24 1 3 17 2 103 3 7 +4225 52 15 -137.34 1242.25 71 26 1 3 17 2 105 3 9 +4226 52 16 -132.98 1242.25 75 25 1 3 18 2 104 3 8 +4227 52 17 -128.62 1242.25 75 23 1 3 18 2 102 3 6 +4228 52 18 -124.26 1242.25 75 21 1 3 18 2 100 3 4 +4229 52 19 -119.9 1242.25 75 24 1 3 18 2 103 3 7 +4230 52 20 -115.54 1242.25 75 26 1 3 18 2 105 3 9 +4231 52 21 -111.18 1242.25 79 23 1 3 19 2 102 3 6 +4232 52 22 -106.82 1242.25 79 21 1 3 19 2 100 3 4 +4233 52 23 -102.46 1242.25 79 22 1 3 19 2 101 3 5 +4234 52 24 -98.1 1242.25 79 24 1 3 19 2 103 3 7 +4235 52 25 -93.74 1242.25 79 26 1 3 19 2 105 3 9 +4236 52 26 -89.38 1242.25 83 27 1 3 20 2 106 3 10 +4237 52 27 -85.02 1242.25 83 25 1 3 20 2 104 3 8 +4238 52 28 -80.66 1242.25 83 23 1 3 20 2 102 3 6 +4239 52 29 -76.3 1242.25 83 24 1 3 20 2 103 3 7 +4240 52 30 -71.94 1242.25 83 26 1 3 20 2 105 3 9 +4241 52 31 -67.58 1242.25 87 25 1 3 21 2 104 3 8 +4242 52 32 -63.22 1242.25 87 23 1 3 21 2 102 3 6 +4243 52 33 -58.86 1242.25 87 21 1 3 21 2 100 3 4 +4244 52 34 -54.5 1242.25 87 24 1 3 21 2 103 3 7 +4245 52 35 -50.14 1242.25 87 26 1 3 21 2 105 3 9 +4246 52 36 -45.78 1242.25 87 28 1 3 21 2 107 3 11 +4247 52 37 -41.42 1242.25 91 25 1 3 22 2 104 3 8 +4248 52 38 -37.06 1242.25 91 23 1 3 22 2 102 3 6 +4249 52 39 -32.7 1242.25 91 21 1 3 22 2 100 3 4 +4250 52 40 -28.34 1242.25 91 22 1 3 22 2 101 3 5 +4251 52 41 -23.98 1242.25 91 24 1 3 22 2 103 3 7 +4252 52 42 -19.62 1242.25 95 23 1 3 23 2 102 3 6 +4253 52 43 -15.26 1242.25 95 21 1 3 23 2 100 3 4 +4254 52 44 -10.9 1242.25 95 22 1 3 23 2 101 3 5 +4255 52 45 -6.54 1242.25 95 24 1 3 23 2 103 3 7 +4256 52 46 -2.18 1242.25 95 26 1 3 23 2 105 3 9 +4257 52 47 2.18 1242.25 99 25 1 3 24 2 104 3 8 +4258 52 48 6.54 1242.25 99 23 1 3 24 2 102 3 6 +4259 52 49 10.9 1242.25 99 21 1 3 24 2 100 3 4 +4260 52 50 15.26 1242.25 99 22 1 3 24 2 101 3 5 +4261 52 51 19.62 1242.25 99 24 1 3 24 2 103 3 7 +4262 52 52 23.98 1242.25 103 23 1 3 25 2 102 3 6 +4263 52 53 28.34 1242.25 103 21 1 3 25 2 100 3 4 +4264 52 54 32.7 1242.25 103 22 1 3 25 2 101 3 5 +4265 52 55 37.06 1242.25 103 24 1 3 25 2 103 3 7 +4266 52 56 41.42 1242.25 103 26 1 3 25 2 105 3 9 +4267 52 57 45.78 1242.25 107 27 1 3 26 2 106 3 10 +4268 52 58 50.14 1242.25 107 25 1 3 26 2 104 3 8 +4269 52 59 54.5 1242.25 107 23 1 3 26 2 102 3 6 +4270 52 60 58.86 1242.25 107 22 1 3 26 2 101 3 5 +4271 52 61 63.22 1242.25 107 24 1 3 26 2 103 3 7 +4272 52 62 67.58 1242.25 107 26 1 3 26 2 105 3 9 +4273 52 63 71.94 1242.25 111 25 1 3 27 2 104 3 8 +4274 52 64 76.3 1242.25 111 23 1 3 27 2 102 3 6 +4275 52 65 80.66 1242.25 111 24 1 3 27 2 103 3 7 +4276 52 66 85.02 1242.25 111 26 1 3 27 2 105 3 9 +4277 52 67 89.38 1242.25 111 28 1 3 27 2 107 3 11 +4278 52 68 93.74 1242.25 115 25 1 3 28 2 104 3 8 +4279 52 69 98.1 1242.25 115 23 1 3 28 2 102 3 6 +4280 52 70 102.46 1242.25 115 21 1 3 28 2 100 3 4 +4281 52 71 106.82 1242.25 115 22 1 3 28 2 101 3 5 +4282 52 72 111.18 1242.25 115 24 1 3 28 2 103 3 7 +4283 52 73 115.54 1242.25 119 25 1 3 29 2 104 3 8 +4284 52 74 119.9 1242.25 119 23 1 3 29 2 102 3 6 +4285 52 75 124.26 1242.25 119 22 1 3 29 2 101 3 5 +4286 52 76 128.62 1242.25 119 24 1 3 29 2 103 3 7 +4287 52 77 132.98 1242.25 119 26 1 3 29 2 105 3 9 +4288 52 78 137.34 1242.25 123 25 1 3 30 2 104 3 8 +4289 52 79 141.7 1242.25 123 23 1 3 30 2 102 3 6 +4290 52 80 146.06 1242.25 123 21 1 3 30 2 100 3 4 +4291 52 81 150.42 1242.25 123 22 1 3 30 2 101 3 5 +4292 52 82 154.78 1242.25 123 24 1 3 30 2 103 3 7 +4293 52 83 159.14 1242.25 123 26 1 3 30 2 105 3 9 +4294 52 84 163.5 1242.25 127 25 1 3 31 2 104 3 8 +4295 52 85 167.86 1242.25 127 23 1 3 31 2 102 3 6 +4296 52 86 172.22 1242.25 127 22 1 3 31 2 101 3 5 +4297 52 87 176.58 1242.25 127 24 1 3 31 2 103 3 7 +4298 52 88 180.94 1242.25 127 26 1 3 31 2 105 3 9 +4299 52 89 185.3 1242.25 131 23 1 3 32 2 102 3 6 +4300 52 90 189.66 1242.25 131 21 1 3 32 2 100 3 4 +4301 52 91 194.02 1242.25 131 22 1 3 32 2 101 3 5 +4302 52 92 198.38 1242.25 131 24 1 3 32 2 103 3 7 +4303 52 93 202.74 1242.25 131 26 1 3 32 2 105 3 9 +4304 53 0 -202.74 1249.75 63 29 1 3 15 2 108 3 12 +4305 53 1 -198.38 1249.75 63 27 1 3 15 2 106 3 10 +4306 53 2 -194.02 1249.75 63 26 1 3 15 2 105 3 9 +4307 53 3 -189.66 1249.75 63 28 1 3 15 2 107 3 11 +4308 53 4 -185.3 1249.75 63 30 1 3 15 2 109 3 13 +4309 53 5 -180.94 1249.75 67 29 1 3 16 2 108 3 12 +4310 53 6 -176.58 1249.75 67 27 1 3 16 2 106 3 10 +4311 53 7 -172.22 1249.75 67 28 1 3 16 2 107 3 11 +4312 53 8 -167.86 1249.75 67 30 1 3 16 2 109 3 13 +4313 53 9 -163.5 1249.75 67 32 1 3 16 2 111 3 15 +4314 53 10 -159.14 1249.75 71 31 1 3 17 2 110 3 14 +4315 53 11 -154.78 1249.75 71 29 1 3 17 2 108 3 12 +4316 53 12 -150.42 1249.75 71 27 1 3 17 2 106 3 10 +4317 53 13 -146.06 1249.75 71 28 1 3 17 2 107 3 11 +4318 53 14 -141.7 1249.75 71 30 1 3 17 2 109 3 13 +4319 53 15 -137.34 1249.75 75 31 1 3 18 2 110 3 14 +4320 53 16 -132.98 1249.75 75 29 1 3 18 2 108 3 12 +4321 53 17 -128.62 1249.75 75 27 1 3 18 2 106 3 10 +4322 53 18 -124.26 1249.75 75 28 1 3 18 2 107 3 11 +4323 53 19 -119.9 1249.75 75 30 1 3 18 2 109 3 13 +4324 53 20 -115.54 1249.75 75 32 1 3 18 2 111 3 15 +4325 53 21 -111.18 1249.75 79 29 1 3 19 2 108 3 12 +4326 53 22 -106.82 1249.75 79 27 1 3 19 2 106 3 10 +4327 53 23 -102.46 1249.75 79 25 1 3 19 2 104 3 8 +4328 53 24 -98.1 1249.75 79 28 1 3 19 2 107 3 11 +4329 53 25 -93.74 1249.75 79 30 1 3 19 2 109 3 13 +4330 53 26 -89.38 1249.75 83 31 1 3 20 2 110 3 14 +4331 53 27 -85.02 1249.75 83 29 1 3 20 2 108 3 12 +4332 53 28 -80.66 1249.75 83 28 1 3 20 2 107 3 11 +4333 53 29 -76.3 1249.75 83 30 1 3 20 2 109 3 13 +4334 53 30 -71.94 1249.75 83 32 1 3 20 2 111 3 15 +4335 53 31 -67.58 1249.75 87 31 1 3 21 2 110 3 14 +4336 53 32 -63.22 1249.75 87 29 1 3 21 2 108 3 12 +4337 53 33 -58.86 1249.75 87 27 1 3 21 2 106 3 10 +4338 53 34 -54.5 1249.75 87 30 1 3 21 2 109 3 13 +4339 53 35 -50.14 1249.75 87 32 1 3 21 2 111 3 15 +4340 53 36 -45.78 1249.75 91 33 1 3 22 2 112 3 16 +4341 53 37 -41.42 1249.75 91 31 1 3 22 2 110 3 14 +4342 53 38 -37.06 1249.75 91 29 1 3 22 2 108 3 12 +4343 53 39 -32.7 1249.75 91 27 1 3 22 2 106 3 10 +4344 53 40 -28.34 1249.75 91 26 1 3 22 2 105 3 9 +4345 53 41 -23.98 1249.75 91 28 1 3 22 2 107 3 11 +4346 53 42 -19.62 1249.75 95 29 1 3 23 2 108 3 12 +4347 53 43 -15.26 1249.75 95 27 1 3 23 2 106 3 10 +4348 53 44 -10.9 1249.75 95 25 1 3 23 2 104 3 8 +4349 53 45 -6.54 1249.75 95 28 1 3 23 2 107 3 11 +4350 53 46 -2.18 1249.75 95 30 1 3 23 2 109 3 13 +4351 53 47 2.18 1249.75 99 29 1 3 24 2 108 3 12 +4352 53 48 6.54 1249.75 99 27 1 3 24 2 106 3 10 +4353 53 49 10.9 1249.75 99 26 1 3 24 2 105 3 9 +4354 53 50 15.26 1249.75 99 28 1 3 24 2 107 3 11 +4355 53 51 19.62 1249.75 99 30 1 3 24 2 109 3 13 +4356 53 52 23.98 1249.75 103 27 1 3 25 2 106 3 10 +4357 53 53 28.34 1249.75 103 25 1 3 25 2 104 3 8 +4358 53 54 32.7 1249.75 103 28 1 3 25 2 107 3 11 +4359 53 55 37.06 1249.75 103 30 1 3 25 2 109 3 13 +4360 53 56 41.42 1249.75 103 32 1 3 25 2 111 3 15 +4361 53 57 45.78 1249.75 103 34 1 3 25 2 113 3 17 +4362 53 58 50.14 1249.75 107 31 1 3 26 2 110 3 14 +4363 53 59 54.5 1249.75 107 29 1 3 26 2 108 3 12 +4364 53 60 58.86 1249.75 107 28 1 3 26 2 107 3 11 +4365 53 61 63.22 1249.75 107 30 1 3 26 2 109 3 13 +4366 53 62 67.58 1249.75 107 32 1 3 26 2 111 3 15 +4367 53 63 71.94 1249.75 111 31 1 3 27 2 110 3 14 +4368 53 64 76.3 1249.75 111 29 1 3 27 2 108 3 12 +4369 53 65 80.66 1249.75 111 27 1 3 27 2 106 3 10 +4370 53 66 85.02 1249.75 111 30 1 3 27 2 109 3 13 +4371 53 67 89.38 1249.75 111 32 1 3 27 2 111 3 15 +4372 53 68 93.74 1249.75 115 29 1 3 28 2 108 3 12 +4373 53 69 98.1 1249.75 115 27 1 3 28 2 106 3 10 +4374 53 70 102.46 1249.75 115 26 1 3 28 2 105 3 9 +4375 53 71 106.82 1249.75 115 28 1 3 28 2 107 3 11 +4376 53 72 111.18 1249.75 115 30 1 3 28 2 109 3 13 +4377 53 73 115.54 1249.75 119 31 1 3 29 2 110 3 14 +4378 53 74 119.9 1249.75 119 29 1 3 29 2 108 3 12 +4379 53 75 124.26 1249.75 119 27 1 3 29 2 106 3 10 +4380 53 76 128.62 1249.75 119 28 1 3 29 2 107 3 11 +4381 53 77 132.98 1249.75 119 30 1 3 29 2 109 3 13 +4382 53 78 137.34 1249.75 119 32 1 3 29 2 111 3 15 +4383 53 79 141.7 1249.75 123 29 1 3 30 2 108 3 12 +4384 53 80 146.06 1249.75 123 27 1 3 30 2 106 3 10 +4385 53 81 150.42 1249.75 123 28 1 3 30 2 107 3 11 +4386 53 82 154.78 1249.75 123 30 1 3 30 2 109 3 13 +4387 53 83 159.14 1249.75 123 32 1 3 30 2 111 3 15 +4388 53 84 163.5 1249.75 127 31 1 3 31 2 110 3 14 +4389 53 85 167.86 1249.75 127 29 1 3 31 2 108 3 12 +4390 53 86 172.22 1249.75 127 27 1 3 31 2 106 3 10 +4391 53 87 176.58 1249.75 127 28 1 3 31 2 107 3 11 +4392 53 88 180.94 1249.75 127 30 1 3 31 2 109 3 13 +4393 53 89 185.3 1249.75 131 29 1 3 32 2 108 3 12 +4394 53 90 189.66 1249.75 131 27 1 3 32 2 106 3 10 +4395 53 91 194.02 1249.75 131 25 1 3 32 2 104 3 8 +4396 53 92 198.38 1249.75 131 28 1 3 32 2 107 3 11 +4397 53 93 202.74 1249.75 131 30 1 3 32 2 109 3 13 +4398 54 0 -207.1 1257.25 63 35 1 3 15 2 114 3 18 +4399 54 1 -202.74 1257.25 63 33 1 3 15 2 112 3 16 +4400 54 2 -198.38 1257.25 63 31 1 3 15 2 110 3 14 +4401 54 3 -194.02 1257.25 63 32 1 3 15 2 111 3 15 +4402 54 4 -189.66 1257.25 63 34 1 3 15 2 113 3 17 +4403 54 5 -185.3 1257.25 63 36 1 3 15 2 115 3 19 +4404 54 6 -180.94 1257.25 67 35 1 3 16 2 114 3 18 +4405 54 7 -176.58 1257.25 67 33 1 3 16 2 112 3 16 +4406 54 8 -172.22 1257.25 67 31 1 3 16 2 110 3 14 +4407 54 9 -167.86 1257.25 67 34 1 3 16 2 113 3 17 +4408 54 10 -163.5 1257.25 67 36 1 3 16 2 115 3 19 +4409 54 11 -159.14 1257.25 71 35 1 3 17 2 114 3 18 +4410 54 12 -154.78 1257.25 71 33 1 3 17 2 112 3 16 +4411 54 13 -150.42 1257.25 71 32 1 3 17 2 111 3 15 +4412 54 14 -146.06 1257.25 71 34 1 3 17 2 113 3 17 +4413 54 15 -141.7 1257.25 71 36 1 3 17 2 115 3 19 +4414 54 16 -137.34 1257.25 75 39 1 3 18 2 118 3 22 +4415 54 17 -132.98 1257.25 75 37 1 3 18 2 116 3 20 +4416 54 18 -128.62 1257.25 75 35 1 3 18 2 114 3 18 +4417 54 19 -124.26 1257.25 75 33 1 3 18 2 112 3 16 +4418 54 20 -119.9 1257.25 75 34 1 3 18 2 113 3 17 +4419 54 21 -115.54 1257.25 75 36 1 3 18 2 115 3 19 +4420 54 22 -111.18 1257.25 79 33 1 3 19 2 112 3 16 +4421 54 23 -106.82 1257.25 79 31 1 3 19 2 110 3 14 +4422 54 24 -102.46 1257.25 79 32 1 3 19 2 111 3 15 +4423 54 25 -98.1 1257.25 79 34 1 3 19 2 113 3 17 +4424 54 26 -93.74 1257.25 79 36 1 3 19 2 115 3 19 +4425 54 27 -89.38 1257.25 83 37 1 3 20 2 116 3 20 +4426 54 28 -85.02 1257.25 83 35 1 3 20 2 114 3 18 +4427 54 29 -80.66 1257.25 83 33 1 3 20 2 112 3 16 +4428 54 30 -76.3 1257.25 83 34 1 3 20 2 113 3 17 +4429 54 31 -71.94 1257.25 83 36 1 3 20 2 115 3 19 +4430 54 32 -67.58 1257.25 87 35 1 3 21 2 114 3 18 +4431 54 33 -63.22 1257.25 87 33 1 3 21 2 112 3 16 +4432 54 34 -58.86 1257.25 87 34 1 3 21 2 113 3 17 +4433 54 35 -54.5 1257.25 87 36 1 3 21 2 115 3 19 +4434 54 36 -50.14 1257.25 87 38 1 3 21 2 117 3 21 +4435 54 37 -45.78 1257.25 91 39 1 3 22 2 118 3 22 +4436 54 38 -41.42 1257.25 91 37 1 3 22 2 116 3 20 +4437 54 39 -37.06 1257.25 91 35 1 3 22 2 114 3 18 +4438 54 40 -32.7 1257.25 91 30 1 3 22 2 109 3 13 +4439 54 41 -28.34 1257.25 91 32 1 3 22 2 111 3 15 +4440 54 42 -23.98 1257.25 91 34 1 3 22 2 113 3 17 +4441 54 43 -19.62 1257.25 95 33 1 3 23 2 112 3 16 +4442 54 44 -15.26 1257.25 95 31 1 3 23 2 110 3 14 +4443 54 45 -10.9 1257.25 95 32 1 3 23 2 111 3 15 +4444 54 46 -6.54 1257.25 95 34 1 3 23 2 113 3 17 +4445 54 47 -2.18 1257.25 95 36 1 3 23 2 115 3 19 +4446 54 48 2.18 1257.25 99 35 1 3 24 2 114 3 18 +4447 54 49 6.54 1257.25 99 33 1 3 24 2 112 3 16 +4448 54 50 10.9 1257.25 99 31 1 3 24 2 110 3 14 +4449 54 51 15.26 1257.25 99 32 1 3 24 2 111 3 15 +4450 54 52 19.62 1257.25 99 34 1 3 24 2 113 3 17 +4451 54 53 23.98 1257.25 103 33 1 3 25 2 112 3 16 +4452 54 54 28.34 1257.25 103 31 1 3 25 2 110 3 14 +4453 54 55 32.7 1257.25 103 29 1 3 25 2 108 3 12 +4454 54 56 37.06 1257.25 103 36 1 3 25 2 115 3 19 +4455 54 57 41.42 1257.25 103 38 1 3 25 2 117 3 21 +4456 54 58 45.78 1257.25 103 40 1 3 25 2 119 3 23 +4457 54 59 50.14 1257.25 107 37 1 3 26 2 116 3 20 +4458 54 60 54.5 1257.25 107 35 1 3 26 2 114 3 18 +4459 54 61 58.86 1257.25 107 33 1 3 26 2 112 3 16 +4460 54 62 63.22 1257.25 107 34 1 3 26 2 113 3 17 +4461 54 63 67.58 1257.25 107 36 1 3 26 2 115 3 19 +4462 54 64 71.94 1257.25 111 35 1 3 27 2 114 3 18 +4463 54 65 76.3 1257.25 111 33 1 3 27 2 112 3 16 +4464 54 66 80.66 1257.25 111 34 1 3 27 2 113 3 17 +4465 54 67 85.02 1257.25 111 36 1 3 27 2 115 3 19 +4466 54 68 89.38 1257.25 111 38 1 3 27 2 117 3 21 +4467 54 69 93.74 1257.25 115 35 1 3 28 2 114 3 18 +4468 54 70 98.1 1257.25 115 33 1 3 28 2 112 3 16 +4469 54 71 102.46 1257.25 115 31 1 3 28 2 110 3 14 +4470 54 72 106.82 1257.25 115 32 1 3 28 2 111 3 15 +4471 54 73 111.18 1257.25 115 34 1 3 28 2 113 3 17 +4472 54 74 115.54 1257.25 119 35 1 3 29 2 114 3 18 +4473 54 75 119.9 1257.25 119 33 1 3 29 2 112 3 16 +4474 54 76 124.26 1257.25 119 34 1 3 29 2 113 3 17 +4475 54 77 128.62 1257.25 119 36 1 3 29 2 115 3 19 +4476 54 78 132.98 1257.25 119 38 1 3 29 2 117 3 21 +4477 54 79 137.34 1257.25 119 40 1 3 29 2 119 3 23 +4478 54 80 141.7 1257.25 123 35 1 3 30 2 114 3 18 +4479 54 81 146.06 1257.25 123 33 1 3 30 2 112 3 16 +4480 54 82 150.42 1257.25 123 31 1 3 30 2 110 3 14 +4481 54 83 154.78 1257.25 123 34 1 3 30 2 113 3 17 +4482 54 84 159.14 1257.25 123 36 1 3 30 2 115 3 19 +4483 54 85 163.5 1257.25 127 35 1 3 31 2 114 3 18 +4484 54 86 167.86 1257.25 127 33 1 3 31 2 112 3 16 +4485 54 87 172.22 1257.25 127 32 1 3 31 2 111 3 15 +4486 54 88 176.58 1257.25 127 34 1 3 31 2 113 3 17 +4487 54 89 180.94 1257.25 127 36 1 3 31 2 115 3 19 +4488 54 90 185.3 1257.25 131 35 1 3 32 2 114 3 18 +4489 54 91 189.66 1257.25 131 33 1 3 32 2 112 3 16 +4490 54 92 194.02 1257.25 131 31 1 3 32 2 110 3 14 +4491 54 93 198.38 1257.25 131 32 1 3 32 2 111 3 15 +4492 54 94 202.74 1257.25 131 34 1 3 32 2 113 3 17 +4493 54 95 207.1 1257.25 131 36 1 3 32 2 115 3 19 +4494 55 0 -207.1 1264.75 63 39 1 3 15 2 118 3 22 +4495 55 1 -202.74 1264.75 63 37 1 3 15 2 116 3 20 +4496 55 2 -198.38 1264.75 63 38 1 3 15 2 117 3 21 +4497 55 3 -194.02 1264.75 63 40 1 3 15 2 119 3 23 +4498 55 4 -189.66 1264.75 64 2 1 3 15 3 121 3 25 +4499 55 5 -185.3 1264.75 68 3 1 3 16 3 122 3 26 +4500 55 6 -180.94 1264.75 68 1 1 3 16 3 120 3 24 +4501 55 7 -176.58 1264.75 67 39 1 3 16 2 118 3 22 +4502 55 8 -172.22 1264.75 67 37 1 3 16 2 116 3 20 +4503 55 9 -167.86 1264.75 67 38 1 3 16 2 117 3 21 +4504 55 10 -163.5 1264.75 67 40 1 3 16 2 119 3 23 +4505 55 11 -159.14 1264.75 71 39 1 3 17 2 118 3 22 +4506 55 12 -154.78 1264.75 71 37 1 3 17 2 116 3 20 +4507 55 13 -150.42 1264.75 71 38 1 3 17 2 117 3 21 +4508 55 14 -146.06 1264.75 71 40 1 3 17 2 119 3 23 +4509 55 15 -141.7 1264.75 72 2 1 3 17 3 121 3 25 +4510 55 16 -137.34 1264.75 76 3 1 3 18 3 122 3 26 +4511 55 17 -132.98 1264.75 76 1 1 3 18 3 120 3 24 +4512 55 18 -128.62 1264.75 76 2 1 3 18 3 121 3 25 +4513 55 19 -124.26 1264.75 75 38 1 3 18 2 117 3 21 +4514 55 20 -119.9 1264.75 75 40 1 3 18 2 119 3 23 +4515 55 21 -115.54 1264.75 79 39 1 3 19 2 118 3 22 +4516 55 22 -111.18 1264.75 79 37 1 3 19 2 116 3 20 +4517 55 23 -106.82 1264.75 79 35 1 3 19 2 114 3 18 +4518 55 24 -102.46 1264.75 79 38 1 3 19 2 117 3 21 +4519 55 25 -98.1 1264.75 79 40 1 3 19 2 119 3 23 +4520 55 26 -93.74 1264.75 80 2 1 3 19 3 121 3 25 +4521 55 27 -89.38 1264.75 84 3 1 3 20 3 122 3 26 +4522 55 28 -85.02 1264.75 84 1 1 3 20 3 120 3 24 +4523 55 29 -80.66 1264.75 83 39 1 3 20 2 118 3 22 +4524 55 30 -76.3 1264.75 83 38 1 3 20 2 117 3 21 +4525 55 31 -71.94 1264.75 83 40 1 3 20 2 119 3 23 +4526 55 32 -67.58 1264.75 87 39 1 3 21 2 118 3 22 +4527 55 33 -63.22 1264.75 87 37 1 3 21 2 116 3 20 +4528 55 34 -58.86 1264.75 87 40 1 3 21 2 119 3 23 +4529 55 35 -54.5 1264.75 88 2 1 3 21 3 121 3 25 +4530 55 36 -50.14 1264.75 88 4 1 3 21 3 123 3 27 +4531 55 37 -45.78 1264.75 92 5 1 3 22 3 124 3 28 +4532 55 38 -41.42 1264.75 92 3 1 3 22 3 122 3 26 +4533 55 39 -37.06 1264.75 92 1 1 3 22 3 120 3 24 +4534 55 40 -32.7 1264.75 91 36 1 3 22 2 115 3 19 +4535 55 41 -28.34 1264.75 91 38 1 3 22 2 117 3 21 +4536 55 42 -23.98 1264.75 91 40 1 3 22 2 119 3 23 +4537 55 43 -19.62 1264.75 95 39 1 3 23 2 118 3 22 +4538 55 44 -15.26 1264.75 95 37 1 3 23 2 116 3 20 +4539 55 45 -10.9 1264.75 95 35 1 3 23 2 114 3 18 +4540 55 46 -6.54 1264.75 95 38 1 3 23 2 117 3 21 +4541 55 47 -2.18 1264.75 95 40 1 3 23 2 119 3 23 +4542 55 48 2.18 1264.75 99 39 1 3 24 2 118 3 22 +4543 55 49 6.54 1264.75 99 37 1 3 24 2 116 3 20 +4544 55 50 10.9 1264.75 99 36 1 3 24 2 115 3 19 +4545 55 51 15.26 1264.75 99 38 1 3 24 2 117 3 21 +4546 55 52 19.62 1264.75 99 40 1 3 24 2 119 3 23 +4547 55 53 23.98 1264.75 103 39 1 3 25 2 118 3 22 +4548 55 54 28.34 1264.75 103 37 1 3 25 2 116 3 20 +4549 55 55 32.7 1264.75 103 35 1 3 25 2 114 3 18 +4550 55 56 37.06 1264.75 104 2 1 3 25 3 121 3 25 +4551 55 57 41.42 1264.75 104 4 1 3 25 3 123 3 27 +4552 55 58 45.78 1264.75 104 6 1 3 25 3 125 3 29 +4553 55 59 50.14 1264.75 108 3 1 3 26 3 122 3 26 +4554 55 60 54.5 1264.75 108 1 1 3 26 3 120 3 24 +4555 55 61 58.86 1264.75 107 39 1 3 26 2 118 3 22 +4556 55 62 63.22 1264.75 107 38 1 3 26 2 117 3 21 +4557 55 63 67.58 1264.75 107 40 1 3 26 2 119 3 23 +4558 55 64 71.94 1264.75 111 39 1 3 27 2 118 3 22 +4559 55 65 76.3 1264.75 111 37 1 3 27 2 116 3 20 +4560 55 66 80.66 1264.75 111 40 1 3 27 2 119 3 23 +4561 55 67 85.02 1264.75 112 2 1 3 27 3 121 3 25 +4562 55 68 89.38 1264.75 112 4 1 3 27 3 123 3 27 +4563 55 69 93.74 1264.75 116 1 1 3 28 3 120 3 24 +4564 55 70 98.1 1264.75 115 39 1 3 28 2 118 3 22 +4565 55 71 102.46 1264.75 115 37 1 3 28 2 116 3 20 +4566 55 72 106.82 1264.75 115 36 1 3 28 2 115 3 19 +4567 55 73 111.18 1264.75 115 38 1 3 28 2 117 3 21 +4568 55 74 115.54 1264.75 115 40 1 3 28 2 119 3 23 +4569 55 75 119.9 1264.75 119 39 1 3 29 2 118 3 22 +4570 55 76 124.26 1264.75 119 37 1 3 29 2 116 3 20 +4571 55 77 128.62 1264.75 120 1 1 3 29 3 120 3 24 +4572 55 78 132.98 1264.75 120 2 1 3 29 3 121 3 25 +4573 55 79 137.34 1264.75 120 4 1 3 29 3 123 3 27 +4574 55 80 141.7 1264.75 124 1 1 3 30 3 120 3 24 +4575 55 81 146.06 1264.75 123 39 1 3 30 2 118 3 22 +4576 55 82 150.42 1264.75 123 37 1 3 30 2 116 3 20 +4577 55 83 154.78 1264.75 123 38 1 3 30 2 117 3 21 +4578 55 84 159.14 1264.75 123 40 1 3 30 2 119 3 23 +4579 55 85 163.5 1264.75 127 39 1 3 31 2 118 3 22 +4580 55 86 167.86 1264.75 127 37 1 3 31 2 116 3 20 +4581 55 87 172.22 1264.75 127 38 1 3 31 2 117 3 21 +4582 55 88 176.58 1264.75 127 40 1 3 31 2 119 3 23 +4583 55 89 180.94 1264.75 128 2 1 3 31 3 121 3 25 +4584 55 90 185.3 1264.75 128 4 1 3 31 3 123 3 27 +4585 55 91 189.66 1264.75 132 1 1 3 32 3 120 3 24 +4586 55 92 194.02 1264.75 131 39 1 3 32 2 118 3 22 +4587 55 93 198.38 1264.75 131 37 1 3 32 2 116 3 20 +4588 55 94 202.74 1264.75 131 38 1 3 32 2 117 3 21 +4589 55 95 207.1 1264.75 131 40 1 3 32 2 119 3 23 +4590 56 0 -207.1 1272.25 64 5 1 3 15 3 124 3 28 +4591 56 1 -202.74 1272.25 64 3 1 3 15 3 122 3 26 +4592 56 2 -198.38 1272.25 64 1 1 3 15 3 120 3 24 +4593 56 3 -194.02 1272.25 64 4 1 3 15 3 123 3 27 +4594 56 4 -189.66 1272.25 64 6 1 3 15 3 125 3 29 +4595 56 5 -185.3 1272.25 68 7 1 3 16 3 126 3 30 +4596 56 6 -180.94 1272.25 68 5 1 3 16 3 124 3 28 +4597 56 7 -176.58 1272.25 68 2 1 3 16 3 121 3 25 +4598 56 8 -172.22 1272.25 68 4 1 3 16 3 123 3 27 +4599 56 9 -167.86 1272.25 68 6 1 3 16 3 125 3 29 +4600 56 10 -163.5 1272.25 72 5 1 3 17 3 124 3 28 +4601 56 11 -159.14 1272.25 72 3 1 3 17 3 122 3 26 +4602 56 12 -154.78 1272.25 72 1 1 3 17 3 120 3 24 +4603 56 13 -150.42 1272.25 72 4 1 3 17 3 123 3 27 +4604 56 14 -146.06 1272.25 72 6 1 3 17 3 125 3 29 +4605 56 15 -141.7 1272.25 72 8 1 3 17 3 127 3 31 +4606 56 16 -137.34 1272.25 76 7 1 3 18 3 126 3 30 +4607 56 17 -132.98 1272.25 76 5 1 3 18 3 124 3 28 +4608 56 18 -128.62 1272.25 76 4 1 3 18 3 123 3 27 +4609 56 19 -124.26 1272.25 76 6 1 3 18 3 125 3 29 +4610 56 20 -119.9 1272.25 76 8 1 3 18 3 127 3 31 +4611 56 21 -115.54 1272.25 80 5 1 3 19 3 124 3 28 +4612 56 22 -111.18 1272.25 80 3 1 3 19 3 122 3 26 +4613 56 23 -106.82 1272.25 80 1 1 3 19 3 120 3 24 +4614 56 24 -102.46 1272.25 80 4 1 3 19 3 123 3 27 +4615 56 25 -98.1 1272.25 80 6 1 3 19 3 125 3 29 +4616 56 26 -93.74 1272.25 80 8 1 3 19 3 127 3 31 +4617 56 27 -89.38 1272.25 84 7 1 3 20 3 126 3 30 +4618 56 28 -85.02 1272.25 84 5 1 3 20 3 124 3 28 +4619 56 29 -80.66 1272.25 84 2 1 3 20 3 121 3 25 +4620 56 30 -76.3 1272.25 84 4 1 3 20 3 123 3 27 +4621 56 31 -71.94 1272.25 84 6 1 3 20 3 125 3 29 +4622 56 32 -67.58 1272.25 88 5 1 3 21 3 124 3 28 +4623 56 33 -63.22 1272.25 88 3 1 3 21 3 122 3 26 +4624 56 34 -58.86 1272.25 88 1 1 3 21 3 120 3 24 +4625 56 35 -54.5 1272.25 88 6 1 3 21 3 125 3 29 +4626 56 36 -50.14 1272.25 88 8 1 3 21 3 127 3 31 +4627 56 37 -45.78 1272.25 92 11 1 3 22 3 130 4 2 +4628 56 38 -41.42 1272.25 92 9 1 3 22 3 128 4 0 +4629 56 39 -37.06 1272.25 92 7 1 3 22 3 126 3 30 +4630 56 40 -32.7 1272.25 92 2 1 3 22 3 121 3 25 +4631 56 41 -28.34 1272.25 92 4 1 3 22 3 123 3 27 +4632 56 42 -23.98 1272.25 92 6 1 3 22 3 125 3 29 +4633 56 43 -19.62 1272.25 96 5 1 3 23 3 124 3 28 +4634 56 44 -15.26 1272.25 96 3 1 3 23 3 122 3 26 +4635 56 45 -10.9 1272.25 96 1 1 3 23 3 120 3 24 +4636 56 46 -6.54 1272.25 96 2 1 3 23 3 121 3 25 +4637 56 47 -2.18 1272.25 96 4 1 3 23 3 123 3 27 +4638 56 48 2.18 1272.25 100 3 1 3 24 3 122 3 26 +4639 56 49 6.54 1272.25 100 1 1 3 24 3 120 3 24 +4640 56 50 10.9 1272.25 100 2 1 3 24 3 121 3 25 +4641 56 51 15.26 1272.25 100 4 1 3 24 3 123 3 27 +4642 56 52 19.62 1272.25 100 6 1 3 24 3 125 3 29 +4643 56 53 23.98 1272.25 104 5 1 3 25 3 124 3 28 +4644 56 54 28.34 1272.25 104 3 1 3 25 3 122 3 26 +4645 56 55 32.7 1272.25 104 1 1 3 25 3 120 3 24 +4646 56 56 37.06 1272.25 104 8 1 3 25 3 127 3 31 +4647 56 57 41.42 1272.25 104 10 1 3 25 3 129 4 1 +4648 56 58 45.78 1272.25 104 12 1 3 25 3 131 4 3 +4649 56 59 50.14 1272.25 108 7 1 3 26 3 126 3 30 +4650 56 60 54.5 1272.25 108 5 1 3 26 3 124 3 28 +4651 56 61 58.86 1272.25 108 2 1 3 26 3 121 3 25 +4652 56 62 63.22 1272.25 108 4 1 3 26 3 123 3 27 +4653 56 63 67.58 1272.25 108 6 1 3 26 3 125 3 29 +4654 56 64 71.94 1272.25 112 5 1 3 27 3 124 3 28 +4655 56 65 76.3 1272.25 112 3 1 3 27 3 122 3 26 +4656 56 66 80.66 1272.25 112 1 1 3 27 3 120 3 24 +4657 56 67 85.02 1272.25 112 6 1 3 27 3 125 3 29 +4658 56 68 89.38 1272.25 112 8 1 3 27 3 127 3 31 +4659 56 69 93.74 1272.25 116 7 1 3 28 3 126 3 30 +4660 56 70 98.1 1272.25 116 5 1 3 28 3 124 3 28 +4661 56 71 102.46 1272.25 116 3 1 3 28 3 122 3 26 +4662 56 72 106.82 1272.25 116 2 1 3 28 3 121 3 25 +4663 56 73 111.18 1272.25 116 4 1 3 28 3 123 3 27 +4664 56 74 115.54 1272.25 116 6 1 3 28 3 125 3 29 +4665 56 75 119.9 1272.25 120 7 1 3 29 3 126 3 30 +4666 56 76 124.26 1272.25 120 5 1 3 29 3 124 3 28 +4667 56 77 128.62 1272.25 120 3 1 3 29 3 122 3 26 +4668 56 78 132.98 1272.25 120 6 1 3 29 3 125 3 29 +4669 56 79 137.34 1272.25 120 8 1 3 29 3 127 3 31 +4670 56 80 141.7 1272.25 124 7 1 3 30 3 126 3 30 +4671 56 81 146.06 1272.25 124 5 1 3 30 3 124 3 28 +4672 56 82 150.42 1272.25 124 3 1 3 30 3 122 3 26 +4673 56 83 154.78 1272.25 124 2 1 3 30 3 121 3 25 +4674 56 84 159.14 1272.25 124 4 1 3 30 3 123 3 27 +4675 56 85 163.5 1272.25 124 6 1 3 30 3 125 3 29 +4676 56 86 167.86 1272.25 128 5 1 3 31 3 124 3 28 +4677 56 87 172.22 1272.25 128 3 1 3 31 3 122 3 26 +4678 56 88 176.58 1272.25 128 1 1 3 31 3 120 3 24 +4679 56 89 180.94 1272.25 128 6 1 3 31 3 125 3 29 +4680 56 90 185.3 1272.25 128 8 1 3 31 3 127 3 31 +4681 56 91 189.66 1272.25 132 5 1 3 32 3 124 3 28 +4682 56 92 194.02 1272.25 132 3 1 3 32 3 122 3 26 +4683 56 93 198.38 1272.25 132 2 1 3 32 3 121 3 25 +4684 56 94 202.74 1272.25 132 4 1 3 32 3 123 3 27 +4685 56 95 207.1 1272.25 132 6 1 3 32 3 125 3 29 +4686 57 0 -211.46 1279.75 64 11 1 3 15 3 130 4 2 +4687 57 1 -207.1 1279.75 64 9 1 3 15 3 128 4 0 +4688 57 2 -202.74 1279.75 64 7 1 3 15 3 126 3 30 +4689 57 3 -198.38 1279.75 64 8 1 3 15 3 127 3 31 +4690 57 4 -194.02 1279.75 64 10 1 3 15 3 129 4 1 +4691 57 5 -189.66 1279.75 64 12 1 3 15 3 131 4 3 +4692 57 6 -185.3 1279.75 68 11 1 3 16 3 130 4 2 +4693 57 7 -180.94 1279.75 68 9 1 3 16 3 128 4 0 +4694 57 8 -176.58 1279.75 68 8 1 3 16 3 127 3 31 +4695 57 9 -172.22 1279.75 68 10 1 3 16 3 129 4 1 +4696 57 10 -167.86 1279.75 68 12 1 3 16 3 131 4 3 +4697 57 11 -163.5 1279.75 72 11 1 3 17 3 130 4 2 +4698 57 12 -159.14 1279.75 72 9 1 3 17 3 128 4 0 +4699 57 13 -154.78 1279.75 72 7 1 3 17 3 126 3 30 +4700 57 14 -150.42 1279.75 72 10 1 3 17 3 129 4 1 +4701 57 15 -146.06 1279.75 72 12 1 3 17 3 131 4 3 +4702 57 16 -141.7 1279.75 72 14 1 3 17 3 133 4 5 +4703 57 17 -137.34 1279.75 76 13 1 3 18 3 132 4 4 +4704 57 18 -132.98 1279.75 76 11 1 3 18 3 130 4 2 +4705 57 19 -128.62 1279.75 76 9 1 3 18 3 128 4 0 +4706 57 20 -124.26 1279.75 76 10 1 3 18 3 129 4 1 +4707 57 21 -119.9 1279.75 76 12 1 3 18 3 131 4 3 +4708 57 22 -115.54 1279.75 80 11 1 3 19 3 130 4 2 +4709 57 23 -111.18 1279.75 80 9 1 3 19 3 128 4 0 +4710 57 24 -106.82 1279.75 80 7 1 3 19 3 126 3 30 +4711 57 25 -102.46 1279.75 80 10 1 3 19 3 129 4 1 +4712 57 26 -98.1 1279.75 80 12 1 3 19 3 131 4 3 +4713 57 27 -93.74 1279.75 84 13 1 3 20 3 132 4 4 +4714 57 28 -89.38 1279.75 84 11 1 3 20 3 130 4 2 +4715 57 29 -85.02 1279.75 84 9 1 3 20 3 128 4 0 +4716 57 30 -80.66 1279.75 84 8 1 3 20 3 127 3 31 +4717 57 31 -76.3 1279.75 84 10 1 3 20 3 129 4 1 +4718 57 32 -71.94 1279.75 84 12 1 3 20 3 131 4 3 +4719 57 33 -67.58 1279.75 88 11 1 3 21 3 130 4 2 +4720 57 34 -63.22 1279.75 88 9 1 3 21 3 128 4 0 +4721 57 35 -58.86 1279.75 88 7 1 3 21 3 126 3 30 +4722 57 36 -54.5 1279.75 88 10 1 3 21 3 129 4 1 +4723 57 37 -50.14 1279.75 88 12 1 3 21 3 131 4 3 +4724 57 38 -45.78 1279.75 92 15 1 3 22 3 134 4 6 +4725 57 39 -41.42 1279.75 92 13 1 3 22 3 132 4 4 +4726 57 40 -37.06 1279.75 92 8 1 3 22 3 127 3 31 +4727 57 41 -32.7 1279.75 92 10 1 3 22 3 129 4 1 +4728 57 42 -28.34 1279.75 92 12 1 3 22 3 131 4 3 +4729 57 43 -23.98 1279.75 92 14 1 3 22 3 133 4 5 +4730 57 44 -19.62 1279.75 96 9 1 3 23 3 128 4 0 +4731 57 45 -15.26 1279.75 96 7 1 3 23 3 126 3 30 +4732 57 46 -10.9 1279.75 96 6 1 3 23 3 125 3 29 +4733 57 47 -6.54 1279.75 96 8 1 3 23 3 127 3 31 +4734 57 48 -2.18 1279.75 96 10 1 3 23 3 129 4 1 +4735 57 49 2.18 1279.75 100 9 1 3 24 3 128 4 0 +4736 57 50 6.54 1279.75 100 7 1 3 24 3 126 3 30 +4737 57 51 10.9 1279.75 100 5 1 3 24 3 124 3 28 +4738 57 52 15.26 1279.75 100 8 1 3 24 3 127 3 31 +4739 57 53 19.62 1279.75 100 10 1 3 24 3 129 4 1 +4740 57 54 23.98 1279.75 104 13 1 3 25 3 132 4 4 +4741 57 55 28.34 1279.75 104 11 1 3 25 3 130 4 2 +4742 57 56 32.7 1279.75 104 9 1 3 25 3 128 4 0 +4743 57 57 37.06 1279.75 104 7 1 3 25 3 126 3 30 +4744 57 58 41.42 1279.75 104 14 1 3 25 3 133 4 5 +4745 57 59 45.78 1279.75 104 16 1 3 25 3 135 4 7 +4746 57 60 50.14 1279.75 108 11 1 3 26 3 130 4 2 +4747 57 61 54.5 1279.75 108 9 1 3 26 3 128 4 0 +4748 57 62 58.86 1279.75 108 8 1 3 26 3 127 3 31 +4749 57 63 63.22 1279.75 108 10 1 3 26 3 129 4 1 +4750 57 64 67.58 1279.75 108 12 1 3 26 3 131 4 3 +4751 57 65 71.94 1279.75 112 11 1 3 27 3 130 4 2 +4752 57 66 76.3 1279.75 112 9 1 3 27 3 128 4 0 +4753 57 67 80.66 1279.75 112 7 1 3 27 3 126 3 30 +4754 57 68 85.02 1279.75 112 10 1 3 27 3 129 4 1 +4755 57 69 89.38 1279.75 112 12 1 3 27 3 131 4 3 +4756 57 70 93.74 1279.75 112 14 1 3 27 3 133 4 5 +4757 57 71 98.1 1279.75 116 11 1 3 28 3 130 4 2 +4758 57 72 102.46 1279.75 116 9 1 3 28 3 128 4 0 +4759 57 73 106.82 1279.75 116 8 1 3 28 3 127 3 31 +4760 57 74 111.18 1279.75 116 10 1 3 28 3 129 4 1 +4761 57 75 115.54 1279.75 116 12 1 3 28 3 131 4 3 +4762 57 76 119.9 1279.75 120 11 1 3 29 3 130 4 2 +4763 57 77 124.26 1279.75 120 9 1 3 29 3 128 4 0 +4764 57 78 128.62 1279.75 120 10 1 3 29 3 129 4 1 +4765 57 79 132.98 1279.75 120 12 1 3 29 3 131 4 3 +4766 57 80 137.34 1279.75 120 14 1 3 29 3 133 4 5 +4767 57 81 141.7 1279.75 124 13 1 3 30 3 132 4 4 +4768 57 82 146.06 1279.75 124 11 1 3 30 3 130 4 2 +4769 57 83 150.42 1279.75 124 9 1 3 30 3 128 4 0 +4770 57 84 154.78 1279.75 124 8 1 3 30 3 127 3 31 +4771 57 85 159.14 1279.75 124 10 1 3 30 3 129 4 1 +4772 57 86 163.5 1279.75 124 12 1 3 30 3 131 4 3 +4773 57 87 167.86 1279.75 128 11 1 3 31 3 130 4 2 +4774 57 88 172.22 1279.75 128 9 1 3 31 3 128 4 0 +4775 57 89 176.58 1279.75 128 7 1 3 31 3 126 3 30 +4776 57 90 180.94 1279.75 128 10 1 3 31 3 129 4 1 +4777 57 91 185.3 1279.75 128 12 1 3 31 3 131 4 3 +4778 57 92 189.66 1279.75 132 11 1 3 32 3 130 4 2 +4779 57 93 194.02 1279.75 132 9 1 3 32 3 128 4 0 +4780 57 94 198.38 1279.75 132 7 1 3 32 3 126 3 30 +4781 57 95 202.74 1279.75 132 8 1 3 32 3 127 3 31 +4782 57 96 207.1 1279.75 132 10 1 3 32 3 129 4 1 +4783 57 97 211.46 1279.75 132 12 1 3 32 3 131 4 3 +4784 58 0 -211.46 1287.25 64 17 1 3 15 3 136 4 8 +4785 58 1 -207.1 1287.25 64 15 1 3 15 3 134 4 6 +4786 58 2 -202.74 1287.25 64 13 1 3 15 3 132 4 4 +4787 58 3 -198.38 1287.25 64 14 1 3 15 3 133 4 5 +4788 58 4 -194.02 1287.25 64 16 1 3 15 3 135 4 7 +4789 58 5 -189.66 1287.25 64 18 1 3 15 3 137 4 9 +4790 58 6 -185.3 1287.25 68 17 1 3 16 3 136 4 8 +4791 58 7 -180.94 1287.25 68 15 1 3 16 3 134 4 6 +4792 58 8 -176.58 1287.25 68 13 1 3 16 3 132 4 4 +4793 58 9 -172.22 1287.25 68 14 1 3 16 3 133 4 5 +4794 58 10 -167.86 1287.25 68 16 1 3 16 3 135 4 7 +4795 58 11 -163.5 1287.25 72 15 1 3 17 3 134 4 6 +4796 58 12 -159.14 1287.25 72 13 1 3 17 3 132 4 4 +4797 58 13 -154.78 1287.25 72 16 1 3 17 3 135 4 7 +4798 58 14 -150.42 1287.25 72 18 1 3 17 3 137 4 9 +4799 58 15 -146.06 1287.25 72 20 1 3 17 3 139 4 11 +4800 58 16 -141.7 1287.25 76 19 1 3 18 3 138 4 10 +4801 58 17 -137.34 1287.25 76 17 1 3 18 3 136 4 8 +4802 58 18 -132.98 1287.25 76 15 1 3 18 3 134 4 6 +4803 58 19 -128.62 1287.25 76 14 1 3 18 3 133 4 5 +4804 58 20 -124.26 1287.25 76 16 1 3 18 3 135 4 7 +4805 58 21 -119.9 1287.25 76 18 1 3 18 3 137 4 9 +4806 58 22 -115.54 1287.25 80 17 1 3 19 3 136 4 8 +4807 58 23 -111.18 1287.25 80 15 1 3 19 3 134 4 6 +4808 58 24 -106.82 1287.25 80 13 1 3 19 3 132 4 4 +4809 58 25 -102.46 1287.25 80 14 1 3 19 3 133 4 5 +4810 58 26 -98.1 1287.25 80 16 1 3 19 3 135 4 7 +4811 58 27 -93.74 1287.25 84 19 1 3 20 3 138 4 10 +4812 58 28 -89.38 1287.25 84 17 1 3 20 3 136 4 8 +4813 58 29 -85.02 1287.25 84 15 1 3 20 3 134 4 6 +4814 58 30 -80.66 1287.25 84 14 1 3 20 3 133 4 5 +4815 58 31 -76.3 1287.25 84 16 1 3 20 3 135 4 7 +4816 58 32 -71.94 1287.25 84 18 1 3 20 3 137 4 9 +4817 58 33 -67.58 1287.25 88 15 1 3 21 3 134 4 6 +4818 58 34 -63.22 1287.25 88 13 1 3 21 3 132 4 4 +4819 58 35 -58.86 1287.25 88 14 1 3 21 3 133 4 5 +4820 58 36 -54.5 1287.25 88 16 1 3 21 3 135 4 7 +4821 58 37 -50.14 1287.25 88 18 1 3 21 3 137 4 9 +4822 58 38 -45.78 1287.25 92 19 1 3 22 3 138 4 10 +4823 58 39 -41.42 1287.25 92 17 1 3 22 3 136 4 8 +4824 58 40 -37.06 1287.25 92 16 1 3 22 3 135 4 7 +4825 58 41 -32.7 1287.25 92 18 1 3 22 3 137 4 9 +4826 58 42 -28.34 1287.25 92 20 1 3 22 3 139 4 11 +4827 58 43 -23.98 1287.25 96 15 1 3 23 3 134 4 6 +4828 58 44 -19.62 1287.25 96 13 1 3 23 3 132 4 4 +4829 58 45 -15.26 1287.25 96 11 1 3 23 3 130 4 2 +4830 58 46 -10.9 1287.25 96 12 1 3 23 3 131 4 3 +4831 58 47 -6.54 1287.25 96 14 1 3 23 3 133 4 5 +4832 58 48 -2.18 1287.25 96 16 1 3 23 3 135 4 7 +4833 58 49 2.18 1287.25 100 15 1 3 24 3 134 4 6 +4834 58 50 6.54 1287.25 100 13 1 3 24 3 132 4 4 +4835 58 51 10.9 1287.25 100 11 1 3 24 3 130 4 2 +4836 58 52 15.26 1287.25 100 12 1 3 24 3 131 4 3 +4837 58 53 19.62 1287.25 100 14 1 3 24 3 133 4 5 +4838 58 54 23.98 1287.25 100 16 1 3 24 3 135 4 7 +4839 58 55 28.34 1287.25 104 19 1 3 25 3 138 4 10 +4840 58 56 32.7 1287.25 104 17 1 3 25 3 136 4 8 +4841 58 57 37.06 1287.25 104 15 1 3 25 3 134 4 6 +4842 58 58 41.42 1287.25 104 18 1 3 25 3 137 4 9 +4843 58 59 45.78 1287.25 104 20 1 3 25 3 139 4 11 +4844 58 60 50.14 1287.25 108 17 1 3 26 3 136 4 8 +4845 58 61 54.5 1287.25 108 15 1 3 26 3 134 4 6 +4846 58 62 58.86 1287.25 108 13 1 3 26 3 132 4 4 +4847 58 63 63.22 1287.25 108 14 1 3 26 3 133 4 5 +4848 58 64 67.58 1287.25 108 16 1 3 26 3 135 4 7 +4849 58 65 71.94 1287.25 112 17 1 3 27 3 136 4 8 +4850 58 66 76.3 1287.25 112 15 1 3 27 3 134 4 6 +4851 58 67 80.66 1287.25 112 13 1 3 27 3 132 4 4 +4852 58 68 85.02 1287.25 112 16 1 3 27 3 135 4 7 +4853 58 69 89.38 1287.25 112 18 1 3 27 3 137 4 9 +4854 58 70 93.74 1287.25 112 20 1 3 27 3 139 4 11 +4855 58 71 98.1 1287.25 116 15 1 3 28 3 134 4 6 +4856 58 72 102.46 1287.25 116 13 1 3 28 3 132 4 4 +4857 58 73 106.82 1287.25 116 14 1 3 28 3 133 4 5 +4858 58 74 111.18 1287.25 116 16 1 3 28 3 135 4 7 +4859 58 75 115.54 1287.25 116 18 1 3 28 3 137 4 9 +4860 58 76 119.9 1287.25 120 17 1 3 29 3 136 4 8 +4861 58 77 124.26 1287.25 120 15 1 3 29 3 134 4 6 +4862 58 78 128.62 1287.25 120 13 1 3 29 3 132 4 4 +4863 58 79 132.98 1287.25 120 16 1 3 29 3 135 4 7 +4864 58 80 137.34 1287.25 120 18 1 3 29 3 137 4 9 +4865 58 81 141.7 1287.25 120 20 1 3 29 3 139 4 11 +4866 58 82 146.06 1287.25 124 19 1 3 30 3 138 4 10 +4867 58 83 150.42 1287.25 124 17 1 3 30 3 136 4 8 +4868 58 84 154.78 1287.25 124 15 1 3 30 3 134 4 6 +4869 58 85 159.14 1287.25 124 14 1 3 30 3 133 4 5 +4870 58 86 163.5 1287.25 124 16 1 3 30 3 135 4 7 +4871 58 87 167.86 1287.25 128 15 1 3 31 3 134 4 6 +4872 58 88 172.22 1287.25 128 13 1 3 31 3 132 4 4 +4873 58 89 176.58 1287.25 128 14 1 3 31 3 133 4 5 +4874 58 90 180.94 1287.25 128 16 1 3 31 3 135 4 7 +4875 58 91 185.3 1287.25 128 18 1 3 31 3 137 4 9 +4876 58 92 189.66 1287.25 132 17 1 3 32 3 136 4 8 +4877 58 93 194.02 1287.25 132 15 1 3 32 3 134 4 6 +4878 58 94 198.38 1287.25 132 13 1 3 32 3 132 4 4 +4879 58 95 202.74 1287.25 132 14 1 3 32 3 133 4 5 +4880 58 96 207.1 1287.25 132 16 1 3 32 3 135 4 7 +4881 58 97 211.46 1287.25 132 18 1 3 32 3 137 4 9 +4882 59 0 -211.46 1294.75 64 23 1 3 15 3 142 4 14 +4883 59 1 -207.1 1294.75 64 21 1 3 15 3 140 4 12 +4884 59 2 -202.74 1294.75 64 19 1 3 15 3 138 4 10 +4885 59 3 -198.38 1294.75 64 20 1 3 15 3 139 4 11 +4886 59 4 -194.02 1294.75 64 22 1 3 15 3 141 4 13 +4887 59 5 -189.66 1294.75 68 23 1 3 16 3 142 4 14 +4888 59 6 -185.3 1294.75 68 21 1 3 16 3 140 4 12 +4889 59 7 -180.94 1294.75 68 19 1 3 16 3 138 4 10 +4890 59 8 -176.58 1294.75 68 18 1 3 16 3 137 4 9 +4891 59 9 -172.22 1294.75 68 20 1 3 16 3 139 4 11 +4892 59 10 -167.86 1294.75 68 22 1 3 16 3 141 4 13 +4893 59 11 -163.5 1294.75 72 21 1 3 17 3 140 4 12 +4894 59 12 -159.14 1294.75 72 19 1 3 17 3 138 4 10 +4895 59 13 -154.78 1294.75 72 17 1 3 17 3 136 4 8 +4896 59 14 -150.42 1294.75 72 22 1 3 17 3 141 4 13 +4897 59 15 -146.06 1294.75 72 24 1 3 17 3 143 4 15 +4898 59 16 -141.7 1294.75 76 25 1 3 18 3 144 4 16 +4899 59 17 -137.34 1294.75 76 23 1 3 18 3 142 4 14 +4900 59 18 -132.98 1294.75 76 21 1 3 18 3 140 4 12 +4901 59 19 -128.62 1294.75 76 20 1 3 18 3 139 4 11 +4902 59 20 -124.26 1294.75 76 22 1 3 18 3 141 4 13 +4903 59 21 -119.9 1294.75 76 24 1 3 18 3 143 4 15 +4904 59 22 -115.54 1294.75 80 21 1 3 19 3 140 4 12 +4905 59 23 -111.18 1294.75 80 19 1 3 19 3 138 4 10 +4906 59 24 -106.82 1294.75 80 18 1 3 19 3 137 4 9 +4907 59 25 -102.46 1294.75 80 20 1 3 19 3 139 4 11 +4908 59 26 -98.1 1294.75 80 22 1 3 19 3 141 4 13 +4909 59 27 -93.74 1294.75 84 25 1 3 20 3 144 4 16 +4910 59 28 -89.38 1294.75 84 23 1 3 20 3 142 4 14 +4911 59 29 -85.02 1294.75 84 21 1 3 20 3 140 4 12 +4912 59 30 -80.66 1294.75 84 20 1 3 20 3 139 4 11 +4913 59 31 -76.3 1294.75 84 22 1 3 20 3 141 4 13 +4914 59 32 -71.94 1294.75 84 24 1 3 20 3 143 4 15 +4915 59 33 -67.58 1294.75 88 21 1 3 21 3 140 4 12 +4916 59 34 -63.22 1294.75 88 19 1 3 21 3 138 4 10 +4917 59 35 -58.86 1294.75 88 17 1 3 21 3 136 4 8 +4918 59 36 -54.5 1294.75 88 20 1 3 21 3 139 4 11 +4919 59 37 -50.14 1294.75 88 22 1 3 21 3 141 4 13 +4920 59 38 -45.78 1294.75 92 25 1 3 22 3 144 4 16 +4921 59 39 -41.42 1294.75 92 23 1 3 22 3 142 4 14 +4922 59 40 -37.06 1294.75 92 21 1 3 22 3 140 4 12 +4923 59 41 -32.7 1294.75 92 22 1 3 22 3 141 4 13 +4924 59 42 -28.34 1294.75 92 24 1 3 22 3 143 4 15 +4925 59 43 -23.98 1294.75 96 21 1 3 23 3 140 4 12 +4926 59 44 -19.62 1294.75 96 19 1 3 23 3 138 4 10 +4927 59 45 -15.26 1294.75 96 17 1 3 23 3 136 4 8 +4928 59 46 -10.9 1294.75 96 18 1 3 23 3 137 4 9 +4929 59 47 -6.54 1294.75 96 20 1 3 23 3 139 4 11 +4930 59 48 -2.18 1294.75 96 22 1 3 23 3 141 4 13 +4931 59 49 2.18 1294.75 100 21 1 3 24 3 140 4 12 +4932 59 50 6.54 1294.75 100 19 1 3 24 3 138 4 10 +4933 59 51 10.9 1294.75 100 17 1 3 24 3 136 4 8 +4934 59 52 15.26 1294.75 100 18 1 3 24 3 137 4 9 +4935 59 53 19.62 1294.75 100 20 1 3 24 3 139 4 11 +4936 59 54 23.98 1294.75 100 22 1 3 24 3 141 4 13 +4937 59 55 28.34 1294.75 104 23 1 3 25 3 142 4 14 +4938 59 56 32.7 1294.75 104 21 1 3 25 3 140 4 12 +4939 59 57 37.06 1294.75 104 22 1 3 25 3 141 4 13 +4940 59 58 41.42 1294.75 104 24 1 3 25 3 143 4 15 +4941 59 59 45.78 1294.75 104 26 1 3 25 3 145 4 17 +4942 59 60 50.14 1294.75 108 21 1 3 26 3 140 4 12 +4943 59 61 54.5 1294.75 108 19 1 3 26 3 138 4 10 +4944 59 62 58.86 1294.75 108 18 1 3 26 3 137 4 9 +4945 59 63 63.22 1294.75 108 20 1 3 26 3 139 4 11 +4946 59 64 67.58 1294.75 108 22 1 3 26 3 141 4 13 +4947 59 65 71.94 1294.75 112 23 1 3 27 3 142 4 14 +4948 59 66 76.3 1294.75 112 21 1 3 27 3 140 4 12 +4949 59 67 80.66 1294.75 112 19 1 3 27 3 138 4 10 +4950 59 68 85.02 1294.75 112 22 1 3 27 3 141 4 13 +4951 59 69 89.38 1294.75 112 24 1 3 27 3 143 4 15 +4952 59 70 93.74 1294.75 112 26 1 3 27 3 145 4 17 +4953 59 71 98.1 1294.75 116 21 1 3 28 3 140 4 12 +4954 59 72 102.46 1294.75 116 19 1 3 28 3 138 4 10 +4955 59 73 106.82 1294.75 116 17 1 3 28 3 136 4 8 +4956 59 74 111.18 1294.75 116 20 1 3 28 3 139 4 11 +4957 59 75 115.54 1294.75 116 22 1 3 28 3 141 4 13 +4958 59 76 119.9 1294.75 120 23 1 3 29 3 142 4 14 +4959 59 77 124.26 1294.75 120 21 1 3 29 3 140 4 12 +4960 59 78 128.62 1294.75 120 19 1 3 29 3 138 4 10 +4961 59 79 132.98 1294.75 120 22 1 3 29 3 141 4 13 +4962 59 80 137.34 1294.75 120 24 1 3 29 3 143 4 15 +4963 59 81 141.7 1294.75 120 26 1 3 29 3 145 4 17 +4964 59 82 146.06 1294.75 124 23 1 3 30 3 142 4 14 +4965 59 83 150.42 1294.75 124 21 1 3 30 3 140 4 12 +4966 59 84 154.78 1294.75 124 18 1 3 30 3 137 4 9 +4967 59 85 159.14 1294.75 124 20 1 3 30 3 139 4 11 +4968 59 86 163.5 1294.75 124 22 1 3 30 3 141 4 13 +4969 59 87 167.86 1294.75 128 21 1 3 31 3 140 4 12 +4970 59 88 172.22 1294.75 128 19 1 3 31 3 138 4 10 +4971 59 89 176.58 1294.75 128 17 1 3 31 3 136 4 8 +4972 59 90 180.94 1294.75 128 20 1 3 31 3 139 4 11 +4973 59 91 185.3 1294.75 128 22 1 3 31 3 141 4 13 +4974 59 92 189.66 1294.75 128 24 1 3 31 3 143 4 15 +4975 59 93 194.02 1294.75 132 21 1 3 32 3 140 4 12 +4976 59 94 198.38 1294.75 132 19 1 3 32 3 138 4 10 +4977 59 95 202.74 1294.75 132 20 1 3 32 3 139 4 11 +4978 59 96 207.1 1294.75 132 22 1 3 32 3 141 4 13 +4979 59 97 211.46 1294.75 132 24 1 3 32 3 143 4 15 +4980 60 0 -215.82 1302.25 64 29 1 3 15 3 148 4 20 +4981 60 1 -211.46 1302.25 64 27 1 3 15 3 146 4 18 +4982 60 2 -207.1 1302.25 64 25 1 3 15 3 144 4 16 +4983 60 3 -202.74 1302.25 64 24 1 3 15 3 143 4 15 +4984 60 4 -198.38 1302.25 64 26 1 3 15 3 145 4 17 +4985 60 5 -194.02 1302.25 64 28 1 3 15 3 147 4 19 +4986 60 6 -189.66 1302.25 68 29 1 3 16 3 148 4 20 +4987 60 7 -185.3 1302.25 68 27 1 3 16 3 146 4 18 +4988 60 8 -180.94 1302.25 68 25 1 3 16 3 144 4 16 +4989 60 9 -176.58 1302.25 68 24 1 3 16 3 143 4 15 +4990 60 10 -172.22 1302.25 68 26 1 3 16 3 145 4 17 +4991 60 11 -167.86 1302.25 68 28 1 3 16 3 147 4 19 +4992 60 12 -163.5 1302.25 72 25 1 3 17 3 144 4 16 +4993 60 13 -159.14 1302.25 72 23 1 3 17 3 142 4 14 +4994 60 14 -154.78 1302.25 72 26 1 3 17 3 145 4 17 +4995 60 15 -150.42 1302.25 72 28 1 3 17 3 147 4 19 +4996 60 16 -146.06 1302.25 72 30 1 3 17 3 149 4 21 +4997 60 17 -141.7 1302.25 76 29 1 3 18 3 148 4 20 +4998 60 18 -137.34 1302.25 76 27 1 3 18 3 146 4 18 +4999 60 19 -132.98 1302.25 76 26 1 3 18 3 145 4 17 +5000 60 20 -128.62 1302.25 76 28 1 3 18 3 147 4 19 +5001 60 21 -124.26 1302.25 76 30 1 3 18 3 149 4 21 +5002 60 22 -119.9 1302.25 80 27 1 3 19 3 146 4 18 +5003 60 23 -115.54 1302.25 80 25 1 3 19 3 144 4 16 +5004 60 24 -111.18 1302.25 80 23 1 3 19 3 142 4 14 +5005 60 25 -106.82 1302.25 80 24 1 3 19 3 143 4 15 +5006 60 26 -102.46 1302.25 80 26 1 3 19 3 145 4 17 +5007 60 27 -98.1 1302.25 80 28 1 3 19 3 147 4 19 +5008 60 28 -93.74 1302.25 84 29 1 3 20 3 148 4 20 +5009 60 29 -89.38 1302.25 84 27 1 3 20 3 146 4 18 +5010 60 30 -85.02 1302.25 84 26 1 3 20 3 145 4 17 +5011 60 31 -80.66 1302.25 84 28 1 3 20 3 147 4 19 +5012 60 32 -76.3 1302.25 84 30 1 3 20 3 149 4 21 +5013 60 33 -71.94 1302.25 88 27 1 3 21 3 146 4 18 +5014 60 34 -67.58 1302.25 88 25 1 3 21 3 144 4 16 +5015 60 35 -63.22 1302.25 88 23 1 3 21 3 142 4 14 +5016 60 36 -58.86 1302.25 88 24 1 3 21 3 143 4 15 +5017 60 37 -54.5 1302.25 88 26 1 3 21 3 145 4 17 +5018 60 38 -50.14 1302.25 88 28 1 3 21 3 147 4 19 +5019 60 39 -45.78 1302.25 92 29 1 3 22 3 148 4 20 +5020 60 40 -41.42 1302.25 92 27 1 3 22 3 146 4 18 +5021 60 41 -37.06 1302.25 92 26 1 3 22 3 145 4 17 +5022 60 42 -32.7 1302.25 92 28 1 3 22 3 147 4 19 +5023 60 43 -28.34 1302.25 92 30 1 3 22 3 149 4 21 +5024 60 44 -23.98 1302.25 96 27 1 3 23 3 146 4 18 +5025 60 45 -19.62 1302.25 96 25 1 3 23 3 144 4 16 +5026 60 46 -15.26 1302.25 96 23 1 3 23 3 142 4 14 +5027 60 47 -10.9 1302.25 96 24 1 3 23 3 143 4 15 +5028 60 48 -6.54 1302.25 96 26 1 3 23 3 145 4 17 +5029 60 49 -2.18 1302.25 96 28 1 3 23 3 147 4 19 +5030 60 50 2.18 1302.25 100 27 1 3 24 3 146 4 18 +5031 60 51 6.54 1302.25 100 25 1 3 24 3 144 4 16 +5032 60 52 10.9 1302.25 100 23 1 3 24 3 142 4 14 +5033 60 53 15.26 1302.25 100 24 1 3 24 3 143 4 15 +5034 60 54 19.62 1302.25 100 26 1 3 24 3 145 4 17 +5035 60 55 23.98 1302.25 100 28 1 3 24 3 147 4 19 +5036 60 56 28.34 1302.25 104 29 1 3 25 3 148 4 20 +5037 60 57 32.7 1302.25 104 27 1 3 25 3 146 4 18 +5038 60 58 37.06 1302.25 104 25 1 3 25 3 144 4 16 +5039 60 59 41.42 1302.25 104 28 1 3 25 3 147 4 19 +5040 60 60 45.78 1302.25 104 30 1 3 25 3 149 4 21 +5041 60 61 50.14 1302.25 108 27 1 3 26 3 146 4 18 +5042 60 62 54.5 1302.25 108 25 1 3 26 3 144 4 16 +5043 60 63 58.86 1302.25 108 23 1 3 26 3 142 4 14 +5044 60 64 63.22 1302.25 108 24 1 3 26 3 143 4 15 +5045 60 65 67.58 1302.25 108 26 1 3 26 3 145 4 17 +5046 60 66 71.94 1302.25 108 28 1 3 26 3 147 4 19 +5047 60 67 76.3 1302.25 112 29 1 3 27 3 148 4 20 +5048 60 68 80.66 1302.25 112 27 1 3 27 3 146 4 18 +5049 60 69 85.02 1302.25 112 25 1 3 27 3 144 4 16 +5050 60 70 89.38 1302.25 112 28 1 3 27 3 147 4 19 +5051 60 71 93.74 1302.25 112 30 1 3 27 3 149 4 21 +5052 60 72 98.1 1302.25 116 27 1 3 28 3 146 4 18 +5053 60 73 102.46 1302.25 116 25 1 3 28 3 144 4 16 +5054 60 74 106.82 1302.25 116 23 1 3 28 3 142 4 14 +5055 60 75 111.18 1302.25 116 24 1 3 28 3 143 4 15 +5056 60 76 115.54 1302.25 116 26 1 3 28 3 145 4 17 +5057 60 77 119.9 1302.25 116 28 1 3 28 3 147 4 19 +5058 60 78 124.26 1302.25 120 29 1 3 29 3 148 4 20 +5059 60 79 128.62 1302.25 120 27 1 3 29 3 146 4 18 +5060 60 80 132.98 1302.25 120 25 1 3 29 3 144 4 16 +5061 60 81 137.34 1302.25 120 28 1 3 29 3 147 4 19 +5062 60 82 141.7 1302.25 120 30 1 3 29 3 149 4 21 +5063 60 83 146.06 1302.25 124 29 1 3 30 3 148 4 20 +5064 60 84 150.42 1302.25 124 27 1 3 30 3 146 4 18 +5065 60 85 154.78 1302.25 124 25 1 3 30 3 144 4 16 +5066 60 86 159.14 1302.25 124 24 1 3 30 3 143 4 15 +5067 60 87 163.5 1302.25 124 26 1 3 30 3 145 4 17 +5068 60 88 167.86 1302.25 128 27 1 3 31 3 146 4 18 +5069 60 89 172.22 1302.25 128 25 1 3 31 3 144 4 16 +5070 60 90 176.58 1302.25 128 23 1 3 31 3 142 4 14 +5071 60 91 180.94 1302.25 128 26 1 3 31 3 145 4 17 +5072 60 92 185.3 1302.25 128 28 1 3 31 3 147 4 19 +5073 60 93 189.66 1302.25 128 30 1 3 31 3 149 4 21 +5074 60 94 194.02 1302.25 132 27 1 3 32 3 146 4 18 +5075 60 95 198.38 1302.25 132 25 1 3 32 3 144 4 16 +5076 60 96 202.74 1302.25 132 23 1 3 32 3 142 4 14 +5077 60 97 207.1 1302.25 132 26 1 3 32 3 145 4 17 +5078 60 98 211.46 1302.25 132 28 1 3 32 3 147 4 19 +5079 60 99 215.82 1302.25 132 30 1 3 32 3 149 4 21 +5080 61 0 -215.82 1309.75 64 35 1 3 15 3 154 4 26 +5081 61 1 -211.46 1309.75 64 33 1 3 15 3 152 4 24 +5082 61 2 -207.1 1309.75 64 31 1 3 15 3 150 4 22 +5083 61 3 -202.74 1309.75 64 30 1 3 15 3 149 4 21 +5084 61 4 -198.38 1309.75 64 32 1 3 15 3 151 4 23 +5085 61 5 -194.02 1309.75 64 34 1 3 15 3 153 4 25 +5086 61 6 -189.66 1309.75 68 33 1 3 16 3 152 4 24 +5087 61 7 -185.3 1309.75 68 31 1 3 16 3 150 4 22 +5088 61 8 -180.94 1309.75 68 30 1 3 16 3 149 4 21 +5089 61 9 -176.58 1309.75 68 32 1 3 16 3 151 4 23 +5090 61 10 -172.22 1309.75 68 34 1 3 16 3 153 4 25 +5091 61 11 -167.86 1309.75 72 33 1 3 17 3 152 4 24 +5092 61 12 -163.5 1309.75 72 31 1 3 17 3 150 4 22 +5093 61 13 -159.14 1309.75 72 29 1 3 17 3 148 4 20 +5094 61 14 -154.78 1309.75 72 27 1 3 17 3 146 4 18 +5095 61 15 -150.42 1309.75 72 32 1 3 17 3 151 4 23 +5096 61 16 -146.06 1309.75 72 34 1 3 17 3 153 4 25 +5097 61 17 -141.7 1309.75 76 33 1 3 18 3 152 4 24 +5098 61 18 -137.34 1309.75 76 31 1 3 18 3 150 4 22 +5099 61 19 -132.98 1309.75 76 32 1 3 18 3 151 4 23 +5100 61 20 -128.62 1309.75 76 34 1 3 18 3 153 4 25 +5101 61 21 -124.26 1309.75 76 36 1 3 18 3 155 4 27 +5102 61 22 -119.9 1309.75 80 33 1 3 19 3 152 4 24 +5103 61 23 -115.54 1309.75 80 31 1 3 19 3 150 4 22 +5104 61 24 -111.18 1309.75 80 29 1 3 19 3 148 4 20 +5105 61 25 -106.82 1309.75 80 30 1 3 19 3 149 4 21 +5106 61 26 -102.46 1309.75 80 32 1 3 19 3 151 4 23 +5107 61 27 -98.1 1309.75 80 34 1 3 19 3 153 4 25 +5108 61 28 -93.74 1309.75 84 35 1 3 20 3 154 4 26 +5109 61 29 -89.38 1309.75 84 33 1 3 20 3 152 4 24 +5110 61 30 -85.02 1309.75 84 31 1 3 20 3 150 4 22 +5111 61 31 -80.66 1309.75 84 32 1 3 20 3 151 4 23 +5112 61 32 -76.3 1309.75 84 34 1 3 20 3 153 4 25 +5113 61 33 -71.94 1309.75 88 33 1 3 21 3 152 4 24 +5114 61 34 -67.58 1309.75 88 31 1 3 21 3 150 4 22 +5115 61 35 -63.22 1309.75 88 29 1 3 21 3 148 4 20 +5116 61 36 -58.86 1309.75 88 30 1 3 21 3 149 4 21 +5117 61 37 -54.5 1309.75 88 32 1 3 21 3 151 4 23 +5118 61 38 -50.14 1309.75 88 34 1 3 21 3 153 4 25 +5119 61 39 -45.78 1309.75 92 35 1 3 22 3 154 4 26 +5120 61 40 -41.42 1309.75 92 33 1 3 22 3 152 4 24 +5121 61 41 -37.06 1309.75 92 31 1 3 22 3 150 4 22 +5122 61 42 -32.7 1309.75 92 32 1 3 22 3 151 4 23 +5123 61 43 -28.34 1309.75 92 34 1 3 22 3 153 4 25 +5124 61 44 -23.98 1309.75 96 33 1 3 23 3 152 4 24 +5125 61 45 -19.62 1309.75 96 31 1 3 23 3 150 4 22 +5126 61 46 -15.26 1309.75 96 29 1 3 23 3 148 4 20 +5127 61 47 -10.9 1309.75 96 30 1 3 23 3 149 4 21 +5128 61 48 -6.54 1309.75 96 32 1 3 23 3 151 4 23 +5129 61 49 -2.18 1309.75 96 34 1 3 23 3 153 4 25 +5130 61 50 2.18 1309.75 100 33 1 3 24 3 152 4 24 +5131 61 51 6.54 1309.75 100 31 1 3 24 3 150 4 22 +5132 61 52 10.9 1309.75 100 29 1 3 24 3 148 4 20 +5133 61 53 15.26 1309.75 100 30 1 3 24 3 149 4 21 +5134 61 54 19.62 1309.75 100 32 1 3 24 3 151 4 23 +5135 61 55 23.98 1309.75 100 34 1 3 24 3 153 4 25 +5136 61 56 28.34 1309.75 104 33 1 3 25 3 152 4 24 +5137 61 57 32.7 1309.75 104 31 1 3 25 3 150 4 22 +5138 61 58 37.06 1309.75 104 32 1 3 25 3 151 4 23 +5139 61 59 41.42 1309.75 104 34 1 3 25 3 153 4 25 +5140 61 60 45.78 1309.75 104 36 1 3 25 3 155 4 27 +5141 61 61 50.14 1309.75 108 33 1 3 26 3 152 4 24 +5142 61 62 54.5 1309.75 108 31 1 3 26 3 150 4 22 +5143 61 63 58.86 1309.75 108 29 1 3 26 3 148 4 20 +5144 61 64 63.22 1309.75 108 30 1 3 26 3 149 4 21 +5145 61 65 67.58 1309.75 108 32 1 3 26 3 151 4 23 +5146 61 66 71.94 1309.75 108 34 1 3 26 3 153 4 25 +5147 61 67 76.3 1309.75 112 33 1 3 27 3 152 4 24 +5148 61 68 80.66 1309.75 112 31 1 3 27 3 150 4 22 +5149 61 69 85.02 1309.75 112 32 1 3 27 3 151 4 23 +5150 61 70 89.38 1309.75 112 34 1 3 27 3 153 4 25 +5151 61 71 93.74 1309.75 112 36 1 3 27 3 155 4 27 +5152 61 72 98.1 1309.75 116 33 1 3 28 3 152 4 24 +5153 61 73 102.46 1309.75 116 31 1 3 28 3 150 4 22 +5154 61 74 106.82 1309.75 116 29 1 3 28 3 148 4 20 +5155 61 75 111.18 1309.75 116 30 1 3 28 3 149 4 21 +5156 61 76 115.54 1309.75 116 32 1 3 28 3 151 4 23 +5157 61 77 119.9 1309.75 116 34 1 3 28 3 153 4 25 +5158 61 78 124.26 1309.75 120 35 1 3 29 3 154 4 26 +5159 61 79 128.62 1309.75 120 33 1 3 29 3 152 4 24 +5160 61 80 132.98 1309.75 120 31 1 3 29 3 150 4 22 +5161 61 81 137.34 1309.75 120 32 1 3 29 3 151 4 23 +5162 61 82 141.7 1309.75 120 34 1 3 29 3 153 4 25 +5163 61 83 146.06 1309.75 124 33 1 3 30 3 152 4 24 +5164 61 84 150.42 1309.75 124 31 1 3 30 3 150 4 22 +5165 61 85 154.78 1309.75 124 28 1 3 30 3 147 4 19 +5166 61 86 159.14 1309.75 124 30 1 3 30 3 149 4 21 +5167 61 87 163.5 1309.75 124 32 1 3 30 3 151 4 23 +5168 61 88 167.86 1309.75 124 34 1 3 30 3 153 4 25 +5169 61 89 172.22 1309.75 128 33 1 3 31 3 152 4 24 +5170 61 90 176.58 1309.75 128 31 1 3 31 3 150 4 22 +5171 61 91 180.94 1309.75 128 29 1 3 31 3 148 4 20 +5172 61 92 185.3 1309.75 128 32 1 3 31 3 151 4 23 +5173 61 93 189.66 1309.75 128 34 1 3 31 3 153 4 25 +5174 61 94 194.02 1309.75 132 33 1 3 32 3 152 4 24 +5175 61 95 198.38 1309.75 132 31 1 3 32 3 150 4 22 +5176 61 96 202.74 1309.75 132 29 1 3 32 3 148 4 20 +5177 61 97 207.1 1309.75 132 32 1 3 32 3 151 4 23 +5178 61 98 211.46 1309.75 132 34 1 3 32 3 153 4 25 +5179 61 99 215.82 1309.75 132 36 1 3 32 3 155 4 27 +5180 62 0 -215.82 1317.25 64 39 1 3 15 3 158 4 30 +5181 62 1 -211.46 1317.25 64 37 1 3 15 3 156 4 28 +5182 62 2 -207.1 1317.25 64 36 1 3 15 3 155 4 27 +5183 62 3 -202.74 1317.25 64 38 1 3 15 3 157 4 29 +5184 62 4 -198.38 1317.25 64 40 1 3 15 3 159 4 31 +5185 62 5 -194.02 1317.25 68 39 1 3 16 3 158 4 30 +5186 62 6 -189.66 1317.25 68 37 1 3 16 3 156 4 28 +5187 62 7 -185.3 1317.25 68 35 1 3 16 3 154 4 26 +5188 62 8 -180.94 1317.25 68 36 1 3 16 3 155 4 27 +5189 62 9 -176.58 1317.25 68 38 1 3 16 3 157 4 29 +5190 62 10 -172.22 1317.25 68 40 1 3 16 3 159 4 31 +5191 62 11 -167.86 1317.25 72 39 1 3 17 3 158 4 30 +5192 62 12 -163.5 1317.25 72 37 1 3 17 3 156 4 28 +5193 62 13 -159.14 1317.25 72 35 1 3 17 3 154 4 26 +5194 62 14 -154.78 1317.25 72 36 1 3 17 3 155 4 27 +5195 62 15 -150.42 1317.25 72 38 1 3 17 3 157 4 29 +5196 62 16 -146.06 1317.25 72 40 1 3 17 3 159 4 31 +5197 62 17 -141.7 1317.25 76 39 1 3 18 3 158 4 30 +5198 62 18 -137.34 1317.25 76 37 1 3 18 3 156 4 28 +5199 62 19 -132.98 1317.25 76 35 1 3 18 3 154 4 26 +5200 62 20 -128.62 1317.25 76 38 1 3 18 3 157 4 29 +5201 62 21 -124.26 1317.25 76 40 1 3 18 3 159 4 31 +5202 62 22 -119.9 1317.25 80 39 1 3 19 3 158 4 30 +5203 62 23 -115.54 1317.25 80 37 1 3 19 3 156 4 28 +5204 62 24 -111.18 1317.25 80 35 1 3 19 3 154 4 26 +5205 62 25 -106.82 1317.25 80 36 1 3 19 3 155 4 27 +5206 62 26 -102.46 1317.25 80 38 1 3 19 3 157 4 29 +5207 62 27 -98.1 1317.25 80 40 1 3 19 3 159 4 31 +5208 62 28 -93.74 1317.25 84 39 1 3 20 3 158 4 30 +5209 62 29 -89.38 1317.25 84 37 1 3 20 3 156 4 28 +5210 62 30 -85.02 1317.25 84 36 1 3 20 3 155 4 27 +5211 62 31 -80.66 1317.25 84 38 1 3 20 3 157 4 29 +5212 62 32 -76.3 1317.25 84 40 1 3 20 3 159 4 31 +5213 62 33 -71.94 1317.25 88 39 1 3 21 3 158 4 30 +5214 62 34 -67.58 1317.25 88 37 1 3 21 3 156 4 28 +5215 62 35 -63.22 1317.25 88 35 1 3 21 3 154 4 26 +5216 62 36 -58.86 1317.25 88 36 1 3 21 3 155 4 27 +5217 62 37 -54.5 1317.25 88 38 1 3 21 3 157 4 29 +5218 62 38 -50.14 1317.25 88 40 1 3 21 3 159 4 31 +5219 62 39 -45.78 1317.25 92 39 1 3 22 3 158 4 30 +5220 62 40 -41.42 1317.25 92 37 1 3 22 3 156 4 28 +5221 62 41 -37.06 1317.25 92 36 1 3 22 3 155 4 27 +5222 62 42 -32.7 1317.25 92 38 1 3 22 3 157 4 29 +5223 62 43 -28.34 1317.25 92 40 1 3 22 3 159 4 31 +5224 62 44 -23.98 1317.25 96 39 1 3 23 3 158 4 30 +5225 62 45 -19.62 1317.25 96 37 1 3 23 3 156 4 28 +5226 62 46 -15.26 1317.25 96 35 1 3 23 3 154 4 26 +5227 62 47 -10.9 1317.25 96 36 1 3 23 3 155 4 27 +5228 62 48 -6.54 1317.25 96 38 1 3 23 3 157 4 29 +5229 62 49 -2.18 1317.25 96 40 1 3 23 3 159 4 31 +5230 62 50 2.18 1317.25 100 39 1 3 24 3 158 4 30 +5231 62 51 6.54 1317.25 100 37 1 3 24 3 156 4 28 +5232 62 52 10.9 1317.25 100 35 1 3 24 3 154 4 26 +5233 62 53 15.26 1317.25 100 36 1 3 24 3 155 4 27 +5234 62 54 19.62 1317.25 100 38 1 3 24 3 157 4 29 +5235 62 55 23.98 1317.25 100 40 1 3 24 3 159 4 31 +5236 62 56 28.34 1317.25 104 39 1 3 25 3 158 4 30 +5237 62 57 32.7 1317.25 104 37 1 3 25 3 156 4 28 +5238 62 58 37.06 1317.25 104 35 1 3 25 3 154 4 26 +5239 62 59 41.42 1317.25 104 38 1 3 25 3 157 4 29 +5240 62 60 45.78 1317.25 104 40 1 3 25 3 159 4 31 +5241 62 61 50.14 1317.25 108 39 1 3 26 3 158 4 30 +5242 62 62 54.5 1317.25 108 37 1 3 26 3 156 4 28 +5243 62 63 58.86 1317.25 108 35 1 3 26 3 154 4 26 +5244 62 64 63.22 1317.25 108 36 1 3 26 3 155 4 27 +5245 62 65 67.58 1317.25 108 38 1 3 26 3 157 4 29 +5246 62 66 71.94 1317.25 108 40 1 3 26 3 159 4 31 +5247 62 67 76.3 1317.25 112 39 1 3 27 3 158 4 30 +5248 62 68 80.66 1317.25 112 37 1 3 27 3 156 4 28 +5249 62 69 85.02 1317.25 112 35 1 3 27 3 154 4 26 +5250 62 70 89.38 1317.25 112 38 1 3 27 3 157 4 29 +5251 62 71 93.74 1317.25 112 40 1 3 27 3 159 4 31 +5252 62 72 98.1 1317.25 116 39 1 3 28 3 158 4 30 +5253 62 73 102.46 1317.25 116 37 1 3 28 3 156 4 28 +5254 62 74 106.82 1317.25 116 35 1 3 28 3 154 4 26 +5255 62 75 111.18 1317.25 116 36 1 3 28 3 155 4 27 +5256 62 76 115.54 1317.25 116 38 1 3 28 3 157 4 29 +5257 62 77 119.9 1317.25 116 40 1 3 28 3 159 4 31 +5258 62 78 124.26 1317.25 120 39 1 3 29 3 158 4 30 +5259 62 79 128.62 1317.25 120 37 1 3 29 3 156 4 28 +5260 62 80 132.98 1317.25 120 36 1 3 29 3 155 4 27 +5261 62 81 137.34 1317.25 120 38 1 3 29 3 157 4 29 +5262 62 82 141.7 1317.25 120 40 1 3 29 3 159 4 31 +5263 62 83 146.06 1317.25 124 39 1 3 30 3 158 4 30 +5264 62 84 150.42 1317.25 124 37 1 3 30 3 156 4 28 +5265 62 85 154.78 1317.25 124 35 1 3 30 3 154 4 26 +5266 62 86 159.14 1317.25 124 36 1 3 30 3 155 4 27 +5267 62 87 163.5 1317.25 124 38 1 3 30 3 157 4 29 +5268 62 88 167.86 1317.25 124 40 1 3 30 3 159 4 31 +5269 62 89 172.22 1317.25 128 39 1 3 31 3 158 4 30 +5270 62 90 176.58 1317.25 128 37 1 3 31 3 156 4 28 +5271 62 91 180.94 1317.25 128 35 1 3 31 3 154 4 26 +5272 62 92 185.3 1317.25 128 36 1 3 31 3 155 4 27 +5273 62 93 189.66 1317.25 128 38 1 3 31 3 157 4 29 +5274 62 94 194.02 1317.25 128 40 1 3 31 3 159 4 31 +5275 62 95 198.38 1317.25 132 39 1 3 32 3 158 4 30 +5276 62 96 202.74 1317.25 132 37 1 3 32 3 156 4 28 +5277 62 97 207.1 1317.25 132 35 1 3 32 3 154 4 26 +5278 62 98 211.46 1317.25 132 38 1 3 32 3 157 4 29 +5279 62 99 215.82 1317.25 132 40 1 3 32 3 159 4 31 diff --git a/Detectors/TPC/base/files/TABLE-OROC1.txt b/Detectors/TPC/base/files/TABLE-OROC1.txt index aa44f6f63496a..94e2d04295222 100644 --- a/Detectors/TPC/base/files/TABLE-OROC1.txt +++ b/Detectors/TPC/base/files/TABLE-OROC1.txt @@ -1,2880 +1,2880 @@ -5280 63 0 -225 1352 1 3 2 4 33 0 2 0 2 -5281 63 1 -219 1352 1 1 2 4 33 0 0 0 0 -5282 63 2 -213 1352 1 2 2 4 33 0 1 0 1 -5283 63 3 -207 1352 1 4 2 4 33 0 3 0 3 -5284 63 4 -201 1352 1 6 2 4 33 0 5 0 5 -5285 63 5 -195 1352 5 3 2 4 34 0 2 0 2 -5286 63 6 -189 1352 5 1 2 4 34 0 0 0 0 -5287 63 7 -183 1352 5 2 2 4 34 0 1 0 1 -5288 63 8 -177 1352 5 4 2 4 34 0 3 0 3 -5289 63 9 -171 1352 9 3 2 4 35 0 2 0 2 -5290 63 10 -165 1352 9 1 2 4 35 0 0 0 0 -5291 63 11 -159 1352 9 2 2 4 35 0 1 0 1 -5292 63 12 -153 1352 9 4 2 4 35 0 3 0 3 -5293 63 13 -147 1352 13 3 2 4 36 0 2 0 2 -5294 63 14 -141 1352 13 1 2 4 36 0 0 0 0 -5295 63 15 -135 1352 13 2 2 4 36 0 1 0 1 -5296 63 16 -129 1352 13 4 2 4 36 0 3 0 3 -5297 63 17 -123 1352 17 3 2 4 37 0 2 0 2 -5298 63 18 -117 1352 17 1 2 4 37 0 0 0 0 -5299 63 19 -111 1352 17 2 2 4 37 0 1 0 1 -5300 63 20 -105 1352 17 4 2 4 37 0 3 0 3 -5301 63 21 -99 1352 21 3 2 4 38 0 2 0 2 -5302 63 22 -93 1352 21 1 2 4 38 0 0 0 0 -5303 63 23 -87 1352 21 2 2 4 38 0 1 0 1 -5304 63 24 -81 1352 21 4 2 4 38 0 3 0 3 -5305 63 25 -75 1352 21 6 2 4 38 0 5 0 5 -5306 63 26 -69 1352 25 3 2 4 39 0 2 0 2 -5307 63 27 -63 1352 25 1 2 4 39 0 0 0 0 -5308 63 28 -57 1352 25 2 2 4 39 0 1 0 1 -5309 63 29 -51 1352 25 4 2 4 39 0 3 0 3 -5310 63 30 -45 1352 29 3 2 4 40 0 2 0 2 -5311 63 31 -39 1352 29 1 2 4 40 0 0 0 0 -5312 63 32 -33 1352 29 2 2 4 40 0 1 0 1 -5313 63 33 -27 1352 29 4 2 4 40 0 3 0 3 -5314 63 34 -21 1352 33 3 2 4 41 0 2 0 2 -5315 63 35 -15 1352 33 1 2 4 41 0 0 0 0 -5316 63 36 -9 1352 33 2 2 4 41 0 1 0 1 -5317 63 37 -3 1352 33 4 2 4 41 0 3 0 3 -5318 63 38 3 1352 37 3 2 4 42 0 2 0 2 -5319 63 39 9 1352 37 1 2 4 42 0 0 0 0 -5320 63 40 15 1352 37 2 2 4 42 0 1 0 1 -5321 63 41 21 1352 37 4 2 4 42 0 3 0 3 -5322 63 42 27 1352 41 3 2 4 43 0 2 0 2 -5323 63 43 33 1352 41 1 2 4 43 0 0 0 0 -5324 63 44 39 1352 41 2 2 4 43 0 1 0 1 -5325 63 45 45 1352 41 4 2 4 43 0 3 0 3 -5326 63 46 51 1352 45 3 2 4 44 0 2 0 2 -5327 63 47 57 1352 45 1 2 4 44 0 0 0 0 -5328 63 48 63 1352 45 2 2 4 44 0 1 0 1 -5329 63 49 69 1352 45 4 2 4 44 0 3 0 3 -5330 63 50 75 1352 49 5 2 4 45 0 4 0 4 -5331 63 51 81 1352 49 3 2 4 45 0 2 0 2 -5332 63 52 87 1352 49 1 2 4 45 0 0 0 0 -5333 63 53 93 1352 49 2 2 4 45 0 1 0 1 -5334 63 54 99 1352 49 4 2 4 45 0 3 0 3 -5335 63 55 105 1352 53 3 2 4 46 0 2 0 2 -5336 63 56 111 1352 53 1 2 4 46 0 0 0 0 -5337 63 57 117 1352 53 2 2 4 46 0 1 0 1 -5338 63 58 123 1352 53 4 2 4 46 0 3 0 3 -5339 63 59 129 1352 57 3 2 4 47 0 2 0 2 -5340 63 60 135 1352 57 1 2 4 47 0 0 0 0 -5341 63 61 141 1352 57 2 2 4 47 0 1 0 1 -5342 63 62 147 1352 57 4 2 4 47 0 3 0 3 -5343 63 63 153 1352 61 3 2 4 48 0 2 0 2 -5344 63 64 159 1352 61 1 2 4 48 0 0 0 0 -5345 63 65 165 1352 61 2 2 4 48 0 1 0 1 -5346 63 66 171 1352 61 4 2 4 48 0 3 0 3 -5347 63 67 177 1352 65 3 2 4 49 0 2 0 2 -5348 63 68 183 1352 65 1 2 4 49 0 0 0 0 -5349 63 69 189 1352 65 2 2 4 49 0 1 0 1 -5350 63 70 195 1352 65 4 2 4 49 0 3 0 3 -5351 63 71 201 1352 69 5 2 4 50 0 4 0 4 -5352 63 72 207 1352 69 3 2 4 50 0 2 0 2 -5353 63 73 213 1352 69 1 2 4 50 0 0 0 0 -5354 63 74 219 1352 69 2 2 4 50 0 1 0 1 -5355 63 75 225 1352 69 4 2 4 50 0 3 0 3 -5356 64 0 -225 1362 1 7 2 4 33 0 6 0 6 -5357 64 1 -219 1362 1 5 2 4 33 0 4 0 4 -5358 64 2 -213 1362 1 8 2 4 33 0 7 0 7 -5359 64 3 -207 1362 1 10 2 4 33 0 9 0 9 -5360 64 4 -201 1362 5 9 2 4 34 0 8 0 8 -5361 64 5 -195 1362 5 7 2 4 34 0 6 0 6 -5362 64 6 -189 1362 5 5 2 4 34 0 4 0 4 -5363 64 7 -183 1362 5 6 2 4 34 0 5 0 5 -5364 64 8 -177 1362 5 8 2 4 34 0 7 0 7 -5365 64 9 -171 1362 9 7 2 4 35 0 6 0 6 -5366 64 10 -165 1362 9 5 2 4 35 0 4 0 4 -5367 64 11 -159 1362 9 6 2 4 35 0 5 0 5 -5368 64 12 -153 1362 9 8 2 4 35 0 7 0 7 -5369 64 13 -147 1362 13 7 2 4 36 0 6 0 6 -5370 64 14 -141 1362 13 5 2 4 36 0 4 0 4 -5371 64 15 -135 1362 13 6 2 4 36 0 5 0 5 -5372 64 16 -129 1362 13 8 2 4 36 0 7 0 7 -5373 64 17 -123 1362 17 7 2 4 37 0 6 0 6 -5374 64 18 -117 1362 17 5 2 4 37 0 4 0 4 -5375 64 19 -111 1362 17 6 2 4 37 0 5 0 5 -5376 64 20 -105 1362 17 8 2 4 37 0 7 0 7 -5377 64 21 -99 1362 21 7 2 4 38 0 6 0 6 -5378 64 22 -93 1362 21 5 2 4 38 0 4 0 4 -5379 64 23 -87 1362 21 8 2 4 38 0 7 0 7 -5380 64 24 -81 1362 21 10 2 4 38 0 9 0 9 -5381 64 25 -75 1362 25 7 2 4 39 0 6 0 6 -5382 64 26 -69 1362 25 5 2 4 39 0 4 0 4 -5383 64 27 -63 1362 25 6 2 4 39 0 5 0 5 -5384 64 28 -57 1362 25 8 2 4 39 0 7 0 7 -5385 64 29 -51 1362 25 10 2 4 39 0 9 0 9 -5386 64 30 -45 1362 29 7 2 4 40 0 6 0 6 -5387 64 31 -39 1362 29 5 2 4 40 0 4 0 4 -5388 64 32 -33 1362 29 6 2 4 40 0 5 0 5 -5389 64 33 -27 1362 29 8 2 4 40 0 7 0 7 -5390 64 34 -21 1362 33 7 2 4 41 0 6 0 6 -5391 64 35 -15 1362 33 5 2 4 41 0 4 0 4 -5392 64 36 -9 1362 33 6 2 4 41 0 5 0 5 -5393 64 37 -3 1362 33 8 2 4 41 0 7 0 7 -5394 64 38 3 1362 37 7 2 4 42 0 6 0 6 -5395 64 39 9 1362 37 5 2 4 42 0 4 0 4 -5396 64 40 15 1362 37 6 2 4 42 0 5 0 5 -5397 64 41 21 1362 37 8 2 4 42 0 7 0 7 -5398 64 42 27 1362 41 7 2 4 43 0 6 0 6 -5399 64 43 33 1362 41 5 2 4 43 0 4 0 4 -5400 64 44 39 1362 41 6 2 4 43 0 5 0 5 -5401 64 45 45 1362 41 8 2 4 43 0 7 0 7 -5402 64 46 51 1362 45 9 2 4 44 0 8 0 8 -5403 64 47 57 1362 45 7 2 4 44 0 6 0 6 -5404 64 48 63 1362 45 5 2 4 44 0 4 0 4 -5405 64 49 69 1362 45 6 2 4 44 0 5 0 5 -5406 64 50 75 1362 45 8 2 4 44 0 7 0 7 -5407 64 51 81 1362 49 9 2 4 45 0 8 0 8 -5408 64 52 87 1362 49 7 2 4 45 0 6 0 6 -5409 64 53 93 1362 49 6 2 4 45 0 5 0 5 -5410 64 54 99 1362 49 8 2 4 45 0 7 0 7 -5411 64 55 105 1362 53 7 2 4 46 0 6 0 6 -5412 64 56 111 1362 53 5 2 4 46 0 4 0 4 -5413 64 57 117 1362 53 6 2 4 46 0 5 0 5 -5414 64 58 123 1362 53 8 2 4 46 0 7 0 7 -5415 64 59 129 1362 57 7 2 4 47 0 6 0 6 -5416 64 60 135 1362 57 5 2 4 47 0 4 0 4 -5417 64 61 141 1362 57 6 2 4 47 0 5 0 5 -5418 64 62 147 1362 57 8 2 4 47 0 7 0 7 -5419 64 63 153 1362 61 7 2 4 48 0 6 0 6 -5420 64 64 159 1362 61 5 2 4 48 0 4 0 4 -5421 64 65 165 1362 61 6 2 4 48 0 5 0 5 -5422 64 66 171 1362 61 8 2 4 48 0 7 0 7 -5423 64 67 177 1362 65 7 2 4 49 0 6 0 6 -5424 64 68 183 1362 65 5 2 4 49 0 4 0 4 -5425 64 69 189 1362 65 6 2 4 49 0 5 0 5 -5426 64 70 195 1362 65 8 2 4 49 0 7 0 7 -5427 64 71 201 1362 65 10 2 4 49 0 9 0 9 -5428 64 72 207 1362 69 9 2 4 50 0 8 0 8 -5429 64 73 213 1362 69 7 2 4 50 0 6 0 6 -5430 64 74 219 1362 69 6 2 4 50 0 5 0 5 -5431 64 75 225 1362 69 8 2 4 50 0 7 0 7 -5432 65 0 -225 1372 1 11 2 4 33 0 10 0 10 -5433 65 1 -219 1372 1 9 2 4 33 0 8 0 8 -5434 65 2 -213 1372 1 12 2 4 33 0 11 0 11 -5435 65 3 -207 1372 1 14 2 4 33 0 13 0 13 -5436 65 4 -201 1372 5 13 2 4 34 0 12 0 12 -5437 65 5 -195 1372 5 11 2 4 34 0 10 0 10 -5438 65 6 -189 1372 5 10 2 4 34 0 9 0 9 -5439 65 7 -183 1372 5 12 2 4 34 0 11 0 11 -5440 65 8 -177 1372 9 11 2 4 35 0 10 0 10 -5441 65 9 -171 1372 9 9 2 4 35 0 8 0 8 -5442 65 10 -165 1372 9 10 2 4 35 0 9 0 9 -5443 65 11 -159 1372 9 12 2 4 35 0 11 0 11 -5444 65 12 -153 1372 9 14 2 4 35 0 13 0 13 -5445 65 13 -147 1372 13 11 2 4 36 0 10 0 10 -5446 65 14 -141 1372 13 9 2 4 36 0 8 0 8 -5447 65 15 -135 1372 13 10 2 4 36 0 9 0 9 -5448 65 16 -129 1372 13 12 2 4 36 0 11 0 11 -5449 65 17 -123 1372 17 11 2 4 37 0 10 0 10 -5450 65 18 -117 1372 17 9 2 4 37 0 8 0 8 -5451 65 19 -111 1372 17 10 2 4 37 0 9 0 9 -5452 65 20 -105 1372 17 12 2 4 37 0 11 0 11 -5453 65 21 -99 1372 21 11 2 4 38 0 10 0 10 -5454 65 22 -93 1372 21 9 2 4 38 0 8 0 8 -5455 65 23 -87 1372 21 12 2 4 38 0 11 0 11 -5456 65 24 -81 1372 21 14 2 4 38 0 13 0 13 -5457 65 25 -75 1372 25 11 2 4 39 0 10 0 10 -5458 65 26 -69 1372 25 9 2 4 39 0 8 0 8 -5459 65 27 -63 1372 25 12 2 4 39 0 11 0 11 -5460 65 28 -57 1372 25 14 2 4 39 0 13 0 13 -5461 65 29 -51 1372 29 11 2 4 40 0 10 0 10 -5462 65 30 -45 1372 29 9 2 4 40 0 8 0 8 -5463 65 31 -39 1372 29 10 2 4 40 0 9 0 9 -5464 65 32 -33 1372 29 12 2 4 40 0 11 0 11 -5465 65 33 -27 1372 29 14 2 4 40 0 13 0 13 -5466 65 34 -21 1372 33 11 2 4 41 0 10 0 10 -5467 65 35 -15 1372 33 9 2 4 41 0 8 0 8 -5468 65 36 -9 1372 33 10 2 4 41 0 9 0 9 -5469 65 37 -3 1372 33 12 2 4 41 0 11 0 11 -5470 65 38 3 1372 37 11 2 4 42 0 10 0 10 -5471 65 39 9 1372 37 9 2 4 42 0 8 0 8 -5472 65 40 15 1372 37 10 2 4 42 0 9 0 9 -5473 65 41 21 1372 37 12 2 4 42 0 11 0 11 -5474 65 42 27 1372 41 13 2 4 43 0 12 0 12 -5475 65 43 33 1372 41 11 2 4 43 0 10 0 10 -5476 65 44 39 1372 41 9 2 4 43 0 8 0 8 -5477 65 45 45 1372 41 10 2 4 43 0 9 0 9 -5478 65 46 51 1372 41 12 2 4 43 0 11 0 11 -5479 65 47 57 1372 45 13 2 4 44 0 12 0 12 -5480 65 48 63 1372 45 11 2 4 44 0 10 0 10 -5481 65 49 69 1372 45 10 2 4 44 0 9 0 9 -5482 65 50 75 1372 45 12 2 4 44 0 11 0 11 -5483 65 51 81 1372 49 13 2 4 45 0 12 0 12 -5484 65 52 87 1372 49 11 2 4 45 0 10 0 10 -5485 65 53 93 1372 49 10 2 4 45 0 9 0 9 -5486 65 54 99 1372 49 12 2 4 45 0 11 0 11 -5487 65 55 105 1372 53 11 2 4 46 0 10 0 10 -5488 65 56 111 1372 53 9 2 4 46 0 8 0 8 -5489 65 57 117 1372 53 10 2 4 46 0 9 0 9 -5490 65 58 123 1372 53 12 2 4 46 0 11 0 11 -5491 65 59 129 1372 57 11 2 4 47 0 10 0 10 -5492 65 60 135 1372 57 9 2 4 47 0 8 0 8 -5493 65 61 141 1372 57 10 2 4 47 0 9 0 9 -5494 65 62 147 1372 57 12 2 4 47 0 11 0 11 -5495 65 63 153 1372 61 13 2 4 48 0 12 0 12 -5496 65 64 159 1372 61 11 2 4 48 0 10 0 10 -5497 65 65 165 1372 61 9 2 4 48 0 8 0 8 -5498 65 66 171 1372 61 10 2 4 48 0 9 0 9 -5499 65 67 177 1372 61 12 2 4 48 0 11 0 11 -5500 65 68 183 1372 65 11 2 4 49 0 10 0 10 -5501 65 69 189 1372 65 9 2 4 49 0 8 0 8 -5502 65 70 195 1372 65 12 2 4 49 0 11 0 11 -5503 65 71 201 1372 65 14 2 4 49 0 13 0 13 -5504 65 72 207 1372 69 13 2 4 50 0 12 0 12 -5505 65 73 213 1372 69 11 2 4 50 0 10 0 10 -5506 65 74 219 1372 69 10 2 4 50 0 9 0 9 -5507 65 75 225 1372 69 12 2 4 50 0 11 0 11 -5508 66 0 -225 1382 1 15 2 4 33 0 14 0 14 -5509 66 1 -219 1382 1 13 2 4 33 0 12 0 12 -5510 66 2 -213 1382 1 16 2 4 33 0 15 0 15 -5511 66 3 -207 1382 1 18 2 4 33 0 17 0 17 -5512 66 4 -201 1382 5 17 2 4 34 0 16 0 16 -5513 66 5 -195 1382 5 15 2 4 34 0 14 0 14 -5514 66 6 -189 1382 5 14 2 4 34 0 13 0 13 -5515 66 7 -183 1382 5 16 2 4 34 0 15 0 15 -5516 66 8 -177 1382 9 15 2 4 35 0 14 0 14 -5517 66 9 -171 1382 9 13 2 4 35 0 12 0 12 -5518 66 10 -165 1382 9 16 2 4 35 0 15 0 15 -5519 66 11 -159 1382 9 18 2 4 35 0 17 0 17 -5520 66 12 -153 1382 13 15 2 4 36 0 14 0 14 -5521 66 13 -147 1382 13 13 2 4 36 0 12 0 12 -5522 66 14 -141 1382 13 14 2 4 36 0 13 0 13 -5523 66 15 -135 1382 13 16 2 4 36 0 15 0 15 -5524 66 16 -129 1382 13 18 2 4 36 0 17 0 17 -5525 66 17 -123 1382 17 15 2 4 37 0 14 0 14 -5526 66 18 -117 1382 17 13 2 4 37 0 12 0 12 -5527 66 19 -111 1382 17 14 2 4 37 0 13 0 13 -5528 66 20 -105 1382 17 16 2 4 37 0 15 0 15 -5529 66 21 -99 1382 21 15 2 4 38 0 14 0 14 -5530 66 22 -93 1382 21 13 2 4 38 0 12 0 12 -5531 66 23 -87 1382 21 16 2 4 38 0 15 0 15 -5532 66 24 -81 1382 21 18 2 4 38 0 17 0 17 -5533 66 25 -75 1382 25 15 2 4 39 0 14 0 14 -5534 66 26 -69 1382 25 13 2 4 39 0 12 0 12 -5535 66 27 -63 1382 25 16 2 4 39 0 15 0 15 -5536 66 28 -57 1382 25 18 2 4 39 0 17 0 17 -5537 66 29 -51 1382 29 17 2 4 40 0 16 0 16 -5538 66 30 -45 1382 29 15 2 4 40 0 14 0 14 -5539 66 31 -39 1382 29 13 2 4 40 0 12 0 12 -5540 66 32 -33 1382 29 16 2 4 40 0 15 0 15 -5541 66 33 -27 1382 29 18 2 4 40 0 17 0 17 -5542 66 34 -21 1382 33 15 2 4 41 0 14 0 14 -5543 66 35 -15 1382 33 13 2 4 41 0 12 0 12 -5544 66 36 -9 1382 33 14 2 4 41 0 13 0 13 -5545 66 37 -3 1382 33 16 2 4 41 0 15 0 15 -5546 66 38 3 1382 37 15 2 4 42 0 14 0 14 -5547 66 39 9 1382 37 13 2 4 42 0 12 0 12 -5548 66 40 15 1382 37 14 2 4 42 0 13 0 13 -5549 66 41 21 1382 37 16 2 4 42 0 15 0 15 -5550 66 42 27 1382 41 17 2 4 43 0 16 0 16 -5551 66 43 33 1382 41 15 2 4 43 0 14 0 14 -5552 66 44 39 1382 41 14 2 4 43 0 13 0 13 -5553 66 45 45 1382 41 16 2 4 43 0 15 0 15 -5554 66 46 51 1382 41 18 2 4 43 0 17 0 17 -5555 66 47 57 1382 45 17 2 4 44 0 16 0 16 -5556 66 48 63 1382 45 15 2 4 44 0 14 0 14 -5557 66 49 69 1382 45 14 2 4 44 0 13 0 13 -5558 66 50 75 1382 45 16 2 4 44 0 15 0 15 -5559 66 51 81 1382 49 17 2 4 45 0 16 0 16 -5560 66 52 87 1382 49 15 2 4 45 0 14 0 14 -5561 66 53 93 1382 49 14 2 4 45 0 13 0 13 -5562 66 54 99 1382 49 16 2 4 45 0 15 0 15 -5563 66 55 105 1382 53 15 2 4 46 0 14 0 14 -5564 66 56 111 1382 53 13 2 4 46 0 12 0 12 -5565 66 57 117 1382 53 14 2 4 46 0 13 0 13 -5566 66 58 123 1382 53 16 2 4 46 0 15 0 15 -5567 66 59 129 1382 57 17 2 4 47 0 16 0 16 -5568 66 60 135 1382 57 15 2 4 47 0 14 0 14 -5569 66 61 141 1382 57 13 2 4 47 0 12 0 12 -5570 66 62 147 1382 57 14 2 4 47 0 13 0 13 -5571 66 63 153 1382 57 16 2 4 47 0 15 0 15 -5572 66 64 159 1382 61 17 2 4 48 0 16 0 16 -5573 66 65 165 1382 61 15 2 4 48 0 14 0 14 -5574 66 66 171 1382 61 14 2 4 48 0 13 0 13 -5575 66 67 177 1382 61 16 2 4 48 0 15 0 15 -5576 66 68 183 1382 65 15 2 4 49 0 14 0 14 -5577 66 69 189 1382 65 13 2 4 49 0 12 0 12 -5578 66 70 195 1382 65 16 2 4 49 0 15 0 15 -5579 66 71 201 1382 65 18 2 4 49 0 17 0 17 -5580 66 72 207 1382 69 17 2 4 50 0 16 0 16 -5581 66 73 213 1382 69 15 2 4 50 0 14 0 14 -5582 66 74 219 1382 69 14 2 4 50 0 13 0 13 -5583 66 75 225 1382 69 16 2 4 50 0 15 0 15 -5584 67 0 -231 1392 1 21 2 4 33 0 20 0 20 -5585 67 1 -225 1392 1 19 2 4 33 0 18 0 18 -5586 67 2 -219 1392 1 17 2 4 33 0 16 0 16 -5587 67 3 -213 1392 1 20 2 4 33 0 19 0 19 -5588 67 4 -207 1392 1 22 2 4 33 0 21 0 21 -5589 67 5 -201 1392 5 21 2 4 34 0 20 0 20 -5590 67 6 -195 1392 5 19 2 4 34 0 18 0 18 -5591 67 7 -189 1392 5 18 2 4 34 0 17 0 17 -5592 67 8 -183 1392 5 20 2 4 34 0 19 0 19 -5593 67 9 -177 1392 9 19 2 4 35 0 18 0 18 -5594 67 10 -171 1392 9 17 2 4 35 0 16 0 16 -5595 67 11 -165 1392 9 20 2 4 35 0 19 0 19 -5596 67 12 -159 1392 9 22 2 4 35 0 21 0 21 -5597 67 13 -153 1392 13 19 2 4 36 0 18 0 18 -5598 67 14 -147 1392 13 17 2 4 36 0 16 0 16 -5599 67 15 -141 1392 13 20 2 4 36 0 19 0 19 -5600 67 16 -135 1392 13 22 2 4 36 0 21 0 21 -5601 67 17 -129 1392 17 21 2 4 37 0 20 0 20 -5602 67 18 -123 1392 17 19 2 4 37 0 18 0 18 -5603 67 19 -117 1392 17 17 2 4 37 0 16 0 16 -5604 67 20 -111 1392 17 18 2 4 37 0 17 0 17 -5605 67 21 -105 1392 17 20 2 4 37 0 19 0 19 -5606 67 22 -99 1392 21 19 2 4 38 0 18 0 18 -5607 67 23 -93 1392 21 17 2 4 38 0 16 0 16 -5608 67 24 -87 1392 21 20 2 4 38 0 19 0 19 -5609 67 25 -81 1392 21 22 2 4 38 0 21 0 21 -5610 67 26 -75 1392 25 19 2 4 39 0 18 0 18 -5611 67 27 -69 1392 25 17 2 4 39 0 16 0 16 -5612 67 28 -63 1392 25 20 2 4 39 0 19 0 19 -5613 67 29 -57 1392 25 22 2 4 39 0 21 0 21 -5614 67 30 -51 1392 29 21 2 4 40 0 20 0 20 -5615 67 31 -45 1392 29 19 2 4 40 0 18 0 18 -5616 67 32 -39 1392 29 20 2 4 40 0 19 0 19 -5617 67 33 -33 1392 29 22 2 4 40 0 21 0 21 -5618 67 34 -27 1392 29 24 2 4 40 0 23 0 23 -5619 67 35 -21 1392 33 19 2 4 41 0 18 0 18 -5620 67 36 -15 1392 33 17 2 4 41 0 16 0 16 -5621 67 37 -9 1392 33 18 2 4 41 0 17 0 17 -5622 67 38 -3 1392 33 20 2 4 41 0 19 0 19 -5623 67 39 3 1392 37 19 2 4 42 0 18 0 18 -5624 67 40 9 1392 37 17 2 4 42 0 16 0 16 -5625 67 41 15 1392 37 18 2 4 42 0 17 0 17 -5626 67 42 21 1392 37 20 2 4 42 0 19 0 19 -5627 67 43 27 1392 41 23 2 4 43 0 22 0 22 -5628 67 44 33 1392 41 21 2 4 43 0 20 0 20 -5629 67 45 39 1392 41 19 2 4 43 0 18 0 18 -5630 67 46 45 1392 41 20 2 4 43 0 19 0 19 -5631 67 47 51 1392 41 22 2 4 43 0 21 0 21 -5632 67 48 57 1392 45 21 2 4 44 0 20 0 20 -5633 67 49 63 1392 45 19 2 4 44 0 18 0 18 -5634 67 50 69 1392 45 18 2 4 44 0 17 0 17 -5635 67 51 75 1392 45 20 2 4 44 0 19 0 19 -5636 67 52 81 1392 49 21 2 4 45 0 20 0 20 -5637 67 53 87 1392 49 19 2 4 45 0 18 0 18 -5638 67 54 93 1392 49 18 2 4 45 0 17 0 17 -5639 67 55 99 1392 49 20 2 4 45 0 19 0 19 -5640 67 56 105 1392 53 19 2 4 46 0 18 0 18 -5641 67 57 111 1392 53 17 2 4 46 0 16 0 16 -5642 67 58 117 1392 53 18 2 4 46 0 17 0 17 -5643 67 59 123 1392 53 20 2 4 46 0 19 0 19 -5644 67 60 129 1392 53 22 2 4 46 0 21 0 21 -5645 67 61 135 1392 57 21 2 4 47 0 20 0 20 -5646 67 62 141 1392 57 19 2 4 47 0 18 0 18 -5647 67 63 147 1392 57 18 2 4 47 0 17 0 17 -5648 67 64 153 1392 57 20 2 4 47 0 19 0 19 -5649 67 65 159 1392 61 21 2 4 48 0 20 0 20 -5650 67 66 165 1392 61 19 2 4 48 0 18 0 18 -5651 67 67 171 1392 61 18 2 4 48 0 17 0 17 -5652 67 68 177 1392 61 20 2 4 48 0 19 0 19 -5653 67 69 183 1392 65 19 2 4 49 0 18 0 18 -5654 67 70 189 1392 65 17 2 4 49 0 16 0 16 -5655 67 71 195 1392 65 20 2 4 49 0 19 0 19 -5656 67 72 201 1392 65 22 2 4 49 0 21 0 21 -5657 67 73 207 1392 69 21 2 4 50 0 20 0 20 -5658 67 74 213 1392 69 19 2 4 50 0 18 0 18 -5659 67 75 219 1392 69 18 2 4 50 0 17 0 17 -5660 67 76 225 1392 69 20 2 4 50 0 19 0 19 -5661 67 77 231 1392 69 22 2 4 50 0 21 0 21 -5662 68 0 -231 1402 1 25 2 4 33 0 24 0 24 -5663 68 1 -225 1402 1 23 2 4 33 0 22 0 22 -5664 68 2 -219 1402 1 24 2 4 33 0 23 0 23 -5665 68 3 -213 1402 1 26 2 4 33 0 25 0 25 -5666 68 4 -207 1402 5 27 2 4 34 0 26 0 26 -5667 68 5 -201 1402 5 25 2 4 34 0 24 0 24 -5668 68 6 -195 1402 5 23 2 4 34 0 22 0 22 -5669 68 7 -189 1402 5 22 2 4 34 0 21 0 21 -5670 68 8 -183 1402 5 24 2 4 34 0 23 0 23 -5671 68 9 -177 1402 9 23 2 4 35 0 22 0 22 -5672 68 10 -171 1402 9 21 2 4 35 0 20 0 20 -5673 68 11 -165 1402 9 24 2 4 35 0 23 0 23 -5674 68 12 -159 1402 9 26 2 4 35 0 25 0 25 -5675 68 13 -153 1402 13 23 2 4 36 0 22 0 22 -5676 68 14 -147 1402 13 21 2 4 36 0 20 0 20 -5677 68 15 -141 1402 13 24 2 4 36 0 23 0 23 -5678 68 16 -135 1402 13 26 2 4 36 0 25 0 25 -5679 68 17 -129 1402 17 25 2 4 37 0 24 0 24 -5680 68 18 -123 1402 17 23 2 4 37 0 22 0 22 -5681 68 19 -117 1402 17 22 2 4 37 0 21 0 21 -5682 68 20 -111 1402 17 24 2 4 37 0 23 0 23 -5683 68 21 -105 1402 17 26 2 4 37 0 25 0 25 -5684 68 22 -99 1402 21 23 2 4 38 0 22 0 22 -5685 68 23 -93 1402 21 21 2 4 38 0 20 0 20 -5686 68 24 -87 1402 21 24 2 4 38 0 23 0 23 -5687 68 25 -81 1402 21 26 2 4 38 0 25 0 25 -5688 68 26 -75 1402 25 23 2 4 39 0 22 0 22 -5689 68 27 -69 1402 25 21 2 4 39 0 20 0 20 -5690 68 28 -63 1402 25 24 2 4 39 0 23 0 23 -5691 68 29 -57 1402 25 26 2 4 39 0 25 0 25 -5692 68 30 -51 1402 29 27 2 4 40 0 26 0 26 -5693 68 31 -45 1402 29 25 2 4 40 0 24 0 24 -5694 68 32 -39 1402 29 23 2 4 40 0 22 0 22 -5695 68 33 -33 1402 29 26 2 4 40 0 25 0 25 -5696 68 34 -27 1402 29 28 2 4 40 0 27 0 27 -5697 68 35 -21 1402 33 23 2 4 41 0 22 0 22 -5698 68 36 -15 1402 33 21 2 4 41 0 20 0 20 -5699 68 37 -9 1402 33 22 2 4 41 0 21 0 21 -5700 68 38 -3 1402 33 24 2 4 41 0 23 0 23 -5701 68 39 3 1402 37 23 2 4 42 0 22 0 22 -5702 68 40 9 1402 37 21 2 4 42 0 20 0 20 -5703 68 41 15 1402 37 22 2 4 42 0 21 0 21 -5704 68 42 21 1402 37 24 2 4 42 0 23 0 23 -5705 68 43 27 1402 41 27 2 4 43 0 26 0 26 -5706 68 44 33 1402 41 25 2 4 43 0 24 0 24 -5707 68 45 39 1402 41 24 2 4 43 0 23 0 23 -5708 68 46 45 1402 41 26 2 4 43 0 25 0 25 -5709 68 47 51 1402 41 28 2 4 43 0 27 0 27 -5710 68 48 57 1402 45 25 2 4 44 0 24 0 24 -5711 68 49 63 1402 45 23 2 4 44 0 22 0 22 -5712 68 50 69 1402 45 22 2 4 44 0 21 0 21 -5713 68 51 75 1402 45 24 2 4 44 0 23 0 23 -5714 68 52 81 1402 49 25 2 4 45 0 24 0 24 -5715 68 53 87 1402 49 23 2 4 45 0 22 0 22 -5716 68 54 93 1402 49 22 2 4 45 0 21 0 21 -5717 68 55 99 1402 49 24 2 4 45 0 23 0 23 -5718 68 56 105 1402 53 25 2 4 46 0 24 0 24 -5719 68 57 111 1402 53 23 2 4 46 0 22 0 22 -5720 68 58 117 1402 53 21 2 4 46 0 20 0 20 -5721 68 59 123 1402 53 24 2 4 46 0 23 0 23 -5722 68 60 129 1402 53 26 2 4 46 0 25 0 25 -5723 68 61 135 1402 57 25 2 4 47 0 24 0 24 -5724 68 62 141 1402 57 23 2 4 47 0 22 0 22 -5725 68 63 147 1402 57 22 2 4 47 0 21 0 21 -5726 68 64 153 1402 57 24 2 4 47 0 23 0 23 -5727 68 65 159 1402 61 25 2 4 48 0 24 0 24 -5728 68 66 165 1402 61 23 2 4 48 0 22 0 22 -5729 68 67 171 1402 61 22 2 4 48 0 21 0 21 -5730 68 68 177 1402 61 24 2 4 48 0 23 0 23 -5731 68 69 183 1402 65 23 2 4 49 0 22 0 22 -5732 68 70 189 1402 65 21 2 4 49 0 20 0 20 -5733 68 71 195 1402 65 24 2 4 49 0 23 0 23 -5734 68 72 201 1402 65 26 2 4 49 0 25 0 25 -5735 68 73 207 1402 65 28 2 4 49 0 27 0 27 -5736 68 74 213 1402 69 25 2 4 50 0 24 0 24 -5737 68 75 219 1402 69 23 2 4 50 0 22 0 22 -5738 68 76 225 1402 69 24 2 4 50 0 23 0 23 -5739 68 77 231 1402 69 26 2 4 50 0 25 0 25 -5740 69 0 -231 1412 1 29 2 4 33 0 28 0 28 -5741 69 1 -225 1412 1 27 2 4 33 0 26 0 26 -5742 69 2 -219 1412 1 28 2 4 33 0 27 0 27 -5743 69 3 -213 1412 1 30 2 4 33 0 29 0 29 -5744 69 4 -207 1412 5 31 2 4 34 0 30 0 30 -5745 69 5 -201 1412 5 29 2 4 34 0 28 0 28 -5746 69 6 -195 1412 5 26 2 4 34 0 25 0 25 -5747 69 7 -189 1412 5 28 2 4 34 0 27 0 27 -5748 69 8 -183 1412 9 29 2 4 35 0 28 0 28 -5749 69 9 -177 1412 9 27 2 4 35 0 26 0 26 -5750 69 10 -171 1412 9 25 2 4 35 0 24 0 24 -5751 69 11 -165 1412 9 28 2 4 35 0 27 0 27 -5752 69 12 -159 1412 9 30 2 4 35 0 29 0 29 -5753 69 13 -153 1412 13 27 2 4 36 0 26 0 26 -5754 69 14 -147 1412 13 25 2 4 36 0 24 0 24 -5755 69 15 -141 1412 13 28 2 4 36 0 27 0 27 -5756 69 16 -135 1412 13 30 2 4 36 0 29 0 29 -5757 69 17 -129 1412 17 29 2 4 37 0 28 0 28 -5758 69 18 -123 1412 17 27 2 4 37 0 26 0 26 -5759 69 19 -117 1412 17 28 2 4 37 0 27 0 27 -5760 69 20 -111 1412 17 30 2 4 37 0 29 0 29 -5761 69 21 -105 1412 17 32 2 4 37 0 31 0 31 -5762 69 22 -99 1412 21 27 2 4 38 0 26 0 26 -5763 69 23 -93 1412 21 25 2 4 38 0 24 0 24 -5764 69 24 -87 1412 21 28 2 4 38 0 27 0 27 -5765 69 25 -81 1412 21 30 2 4 38 0 29 0 29 -5766 69 26 -75 1412 25 27 2 4 39 0 26 0 26 -5767 69 27 -69 1412 25 25 2 4 39 0 24 0 24 -5768 69 28 -63 1412 25 28 2 4 39 0 27 0 27 -5769 69 29 -57 1412 25 30 2 4 39 0 29 0 29 -5770 69 30 -51 1412 29 31 2 4 40 0 30 0 30 -5771 69 31 -45 1412 29 29 2 4 40 0 28 0 28 -5772 69 32 -39 1412 29 30 2 4 40 0 29 0 29 -5773 69 33 -33 1412 29 32 2 4 40 0 31 0 31 -5774 69 34 -27 1412 29 34 2 4 40 0 33 1 1 -5775 69 35 -21 1412 33 27 2 4 41 0 26 0 26 -5776 69 36 -15 1412 33 25 2 4 41 0 24 0 24 -5777 69 37 -9 1412 33 26 2 4 41 0 25 0 25 -5778 69 38 -3 1412 33 28 2 4 41 0 27 0 27 -5779 69 39 3 1412 37 27 2 4 42 0 26 0 26 -5780 69 40 9 1412 37 25 2 4 42 0 24 0 24 -5781 69 41 15 1412 37 26 2 4 42 0 25 0 25 -5782 69 42 21 1412 37 28 2 4 42 0 27 0 27 -5783 69 43 27 1412 41 33 2 4 43 0 32 1 0 -5784 69 44 33 1412 41 31 2 4 43 0 30 0 30 -5785 69 45 39 1412 41 29 2 4 43 0 28 0 28 -5786 69 46 45 1412 41 30 2 4 43 0 29 0 29 -5787 69 47 51 1412 41 32 2 4 43 0 31 0 31 -5788 69 48 57 1412 45 29 2 4 44 0 28 0 28 -5789 69 49 63 1412 45 27 2 4 44 0 26 0 26 -5790 69 50 69 1412 45 26 2 4 44 0 25 0 25 -5791 69 51 75 1412 45 28 2 4 44 0 27 0 27 -5792 69 52 81 1412 49 29 2 4 45 0 28 0 28 -5793 69 53 87 1412 49 27 2 4 45 0 26 0 26 -5794 69 54 93 1412 49 26 2 4 45 0 25 0 25 -5795 69 55 99 1412 49 28 2 4 45 0 27 0 27 -5796 69 56 105 1412 53 31 2 4 46 0 30 0 30 -5797 69 57 111 1412 53 29 2 4 46 0 28 0 28 -5798 69 58 117 1412 53 27 2 4 46 0 26 0 26 -5799 69 59 123 1412 53 28 2 4 46 0 27 0 27 -5800 69 60 129 1412 53 30 2 4 46 0 29 0 29 -5801 69 61 135 1412 57 29 2 4 47 0 28 0 28 -5802 69 62 141 1412 57 27 2 4 47 0 26 0 26 -5803 69 63 147 1412 57 26 2 4 47 0 25 0 25 -5804 69 64 153 1412 57 28 2 4 47 0 27 0 27 -5805 69 65 159 1412 61 29 2 4 48 0 28 0 28 -5806 69 66 165 1412 61 27 2 4 48 0 26 0 26 -5807 69 67 171 1412 61 26 2 4 48 0 25 0 25 -5808 69 68 177 1412 61 28 2 4 48 0 27 0 27 -5809 69 69 183 1412 61 30 2 4 48 0 29 0 29 -5810 69 70 189 1412 65 27 2 4 49 0 26 0 26 -5811 69 71 195 1412 65 25 2 4 49 0 24 0 24 -5812 69 72 201 1412 65 30 2 4 49 0 29 0 29 -5813 69 73 207 1412 65 32 2 4 49 0 31 0 31 -5814 69 74 213 1412 69 29 2 4 50 0 28 0 28 -5815 69 75 219 1412 69 27 2 4 50 0 26 0 26 -5816 69 76 225 1412 69 28 2 4 50 0 27 0 27 -5817 69 77 231 1412 69 30 2 4 50 0 29 0 29 -5818 70 0 -237 1422 1 33 2 4 33 0 32 1 0 -5819 70 1 -231 1422 1 31 2 4 33 0 30 0 30 -5820 70 2 -225 1422 1 32 2 4 33 0 31 0 31 -5821 70 3 -219 1422 1 34 2 4 33 0 33 1 1 -5822 70 4 -213 1422 1 36 2 4 33 0 35 1 3 -5823 70 5 -207 1422 5 35 2 4 34 0 34 1 2 -5824 70 6 -201 1422 5 33 2 4 34 0 32 1 0 -5825 70 7 -195 1422 5 30 2 4 34 0 29 0 29 -5826 70 8 -189 1422 5 32 2 4 34 0 31 0 31 -5827 70 9 -183 1422 9 33 2 4 35 0 32 1 0 -5828 70 10 -177 1422 9 31 2 4 35 0 30 0 30 -5829 70 11 -171 1422 9 32 2 4 35 0 31 0 31 -5830 70 12 -165 1422 9 34 2 4 35 0 33 1 1 -5831 70 13 -159 1422 9 36 2 4 35 0 35 1 3 -5832 70 14 -153 1422 13 31 2 4 36 0 30 0 30 -5833 70 15 -147 1422 13 29 2 4 36 0 28 0 28 -5834 70 16 -141 1422 13 32 2 4 36 0 31 0 31 -5835 70 17 -135 1422 13 34 2 4 36 0 33 1 1 -5836 70 18 -129 1422 17 33 2 4 37 0 32 1 0 -5837 70 19 -123 1422 17 31 2 4 37 0 30 0 30 -5838 70 20 -117 1422 17 34 2 4 37 0 33 1 1 -5839 70 21 -111 1422 17 36 2 4 37 0 35 1 3 -5840 70 22 -105 1422 21 33 2 4 38 0 32 1 0 -5841 70 23 -99 1422 21 31 2 4 38 0 30 0 30 -5842 70 24 -93 1422 21 29 2 4 38 0 28 0 28 -5843 70 25 -87 1422 21 32 2 4 38 0 31 0 31 -5844 70 26 -81 1422 21 34 2 4 38 0 33 1 1 -5845 70 27 -75 1422 25 31 2 4 39 0 30 0 30 -5846 70 28 -69 1422 25 29 2 4 39 0 28 0 28 -5847 70 29 -63 1422 25 32 2 4 39 0 31 0 31 -5848 70 30 -57 1422 25 34 2 4 39 0 33 1 1 -5849 70 31 -51 1422 29 35 2 4 40 0 34 1 2 -5850 70 32 -45 1422 29 33 2 4 40 0 32 1 0 -5851 70 33 -39 1422 29 36 2 4 40 0 35 1 3 -5852 70 34 -33 1422 29 38 2 4 40 0 37 1 5 -5853 70 35 -27 1422 29 40 2 4 40 0 39 1 7 -5854 70 36 -21 1422 33 31 2 4 41 0 30 0 30 -5855 70 37 -15 1422 33 29 2 4 41 0 28 0 28 -5856 70 38 -9 1422 33 30 2 4 41 0 29 0 29 -5857 70 39 -3 1422 33 32 2 4 41 0 31 0 31 -5858 70 40 3 1422 37 31 2 4 42 0 30 0 30 -5859 70 41 9 1422 37 29 2 4 42 0 28 0 28 -5860 70 42 15 1422 37 30 2 4 42 0 29 0 29 -5861 70 43 21 1422 37 32 2 4 42 0 31 0 31 -5862 70 44 27 1422 41 39 2 4 43 0 38 1 6 -5863 70 45 33 1422 41 37 2 4 43 0 36 1 4 -5864 70 46 39 1422 41 35 2 4 43 0 34 1 2 -5865 70 47 45 1422 41 34 2 4 43 0 33 1 1 -5866 70 48 51 1422 41 36 2 4 43 0 35 1 3 -5867 70 49 57 1422 45 33 2 4 44 0 32 1 0 -5868 70 50 63 1422 45 31 2 4 44 0 30 0 30 -5869 70 51 69 1422 45 30 2 4 44 0 29 0 29 -5870 70 52 75 1422 45 32 2 4 44 0 31 0 31 -5871 70 53 81 1422 49 33 2 4 45 0 32 1 0 -5872 70 54 87 1422 49 31 2 4 45 0 30 0 30 -5873 70 55 93 1422 49 30 2 4 45 0 29 0 29 -5874 70 56 99 1422 49 32 2 4 45 0 31 0 31 -5875 70 57 105 1422 49 34 2 4 45 0 33 1 1 -5876 70 58 111 1422 53 35 2 4 46 0 34 1 2 -5877 70 59 117 1422 53 33 2 4 46 0 32 1 0 -5878 70 60 123 1422 53 32 2 4 46 0 31 0 31 -5879 70 61 129 1422 53 34 2 4 46 0 33 1 1 -5880 70 62 135 1422 57 33 2 4 47 0 32 1 0 -5881 70 63 141 1422 57 31 2 4 47 0 30 0 30 -5882 70 64 147 1422 57 30 2 4 47 0 29 0 29 -5883 70 65 153 1422 57 32 2 4 47 0 31 0 31 -5884 70 66 159 1422 61 35 2 4 48 0 34 1 2 -5885 70 67 165 1422 61 33 2 4 48 0 32 1 0 -5886 70 68 171 1422 61 31 2 4 48 0 30 0 30 -5887 70 69 177 1422 61 32 2 4 48 0 31 0 31 -5888 70 70 183 1422 61 34 2 4 48 0 33 1 1 -5889 70 71 189 1422 65 31 2 4 49 0 30 0 30 -5890 70 72 195 1422 65 29 2 4 49 0 28 0 28 -5891 70 73 201 1422 65 34 2 4 49 0 33 1 1 -5892 70 74 207 1422 65 36 2 4 49 0 35 1 3 -5893 70 75 213 1422 69 35 2 4 50 0 34 1 2 -5894 70 76 219 1422 69 33 2 4 50 0 32 1 0 -5895 70 77 225 1422 69 31 2 4 50 0 30 0 30 -5896 70 78 231 1422 69 32 2 4 50 0 31 0 31 -5897 70 79 237 1422 69 34 2 4 50 0 33 1 1 -5898 71 0 -237 1432 1 39 2 4 33 0 38 1 6 -5899 71 1 -231 1432 1 37 2 4 33 0 36 1 4 -5900 71 2 -225 1432 1 35 2 4 33 0 34 1 2 -5901 71 3 -219 1432 1 38 2 4 33 0 37 1 5 -5902 71 4 -213 1432 1 40 2 4 33 0 39 1 7 -5903 71 5 -207 1432 5 39 2 4 34 0 38 1 6 -5904 71 6 -201 1432 5 37 2 4 34 0 36 1 4 -5905 71 7 -195 1432 5 34 2 4 34 0 33 1 1 -5906 71 8 -189 1432 5 36 2 4 34 0 35 1 3 -5907 71 9 -183 1432 9 37 2 4 35 0 36 1 4 -5908 71 10 -177 1432 9 35 2 4 35 0 34 1 2 -5909 71 11 -171 1432 9 38 2 4 35 0 37 1 5 -5910 71 12 -165 1432 9 40 2 4 35 0 39 1 7 -5911 71 13 -159 1432 13 35 2 4 36 0 34 1 2 -5912 71 14 -153 1432 13 33 2 4 36 0 32 1 0 -5913 71 15 -147 1432 13 36 2 4 36 0 35 1 3 -5914 71 16 -141 1432 13 38 2 4 36 0 37 1 5 -5915 71 17 -135 1432 13 40 2 4 36 0 39 1 7 -5916 71 18 -129 1432 17 37 2 4 37 0 36 1 4 -5917 71 19 -123 1432 17 35 2 4 37 0 34 1 2 -5918 71 20 -117 1432 17 38 2 4 37 0 37 1 5 -5919 71 21 -111 1432 17 40 2 4 37 0 39 1 7 -5920 71 22 -105 1432 21 37 2 4 38 0 36 1 4 -5921 71 23 -99 1432 21 35 2 4 38 0 34 1 2 -5922 71 24 -93 1432 21 36 2 4 38 0 35 1 3 -5923 71 25 -87 1432 21 38 2 4 38 0 37 1 5 -5924 71 26 -81 1432 21 40 2 4 38 0 39 1 7 -5925 71 27 -75 1432 25 35 2 4 39 0 34 1 2 -5926 71 28 -69 1432 25 33 2 4 39 0 32 1 0 -5927 71 29 -63 1432 25 36 2 4 39 0 35 1 3 -5928 71 30 -57 1432 25 38 2 4 39 0 37 1 5 -5929 71 31 -51 1432 29 39 2 4 40 0 38 1 6 -5930 71 32 -45 1432 29 37 2 4 40 0 36 1 4 -5931 71 33 -39 1432 30 1 2 4 40 1 40 1 8 -5932 71 34 -33 1432 30 2 2 4 40 1 41 1 9 -5933 71 35 -27 1432 30 4 2 4 40 1 43 1 11 -5934 71 36 -21 1432 33 35 2 4 41 0 34 1 2 -5935 71 37 -15 1432 33 33 2 4 41 0 32 1 0 -5936 71 38 -9 1432 33 34 2 4 41 0 33 1 1 -5937 71 39 -3 1432 33 36 2 4 41 0 35 1 3 -5938 71 40 3 1432 37 35 2 4 42 0 34 1 2 -5939 71 41 9 1432 37 33 2 4 42 0 32 1 0 -5940 71 42 15 1432 37 34 2 4 42 0 33 1 1 -5941 71 43 21 1432 37 36 2 4 42 0 35 1 3 -5942 71 44 27 1432 42 3 2 4 43 1 42 1 10 -5943 71 45 33 1432 42 1 2 4 43 1 40 1 8 -5944 71 46 39 1432 42 2 2 4 43 1 41 1 9 -5945 71 47 45 1432 41 38 2 4 43 0 37 1 5 -5946 71 48 51 1432 41 40 2 4 43 0 39 1 7 -5947 71 49 57 1432 45 37 2 4 44 0 36 1 4 -5948 71 50 63 1432 45 35 2 4 44 0 34 1 2 -5949 71 51 69 1432 45 34 2 4 44 0 33 1 1 -5950 71 52 75 1432 45 36 2 4 44 0 35 1 3 -5951 71 53 81 1432 49 39 2 4 45 0 38 1 6 -5952 71 54 87 1432 49 37 2 4 45 0 36 1 4 -5953 71 55 93 1432 49 35 2 4 45 0 34 1 2 -5954 71 56 99 1432 49 36 2 4 45 0 35 1 3 -5955 71 57 105 1432 49 38 2 4 45 0 37 1 5 -5956 71 58 111 1432 53 39 2 4 46 0 38 1 6 -5957 71 59 117 1432 53 37 2 4 46 0 36 1 4 -5958 71 60 123 1432 53 36 2 4 46 0 35 1 3 -5959 71 61 129 1432 53 38 2 4 46 0 37 1 5 -5960 71 62 135 1432 57 39 2 4 47 0 38 1 6 -5961 71 63 141 1432 57 37 2 4 47 0 36 1 4 -5962 71 64 147 1432 57 35 2 4 47 0 34 1 2 -5963 71 65 153 1432 57 34 2 4 47 0 33 1 1 -5964 71 66 159 1432 57 36 2 4 47 0 35 1 3 -5965 71 67 165 1432 61 39 2 4 48 0 38 1 6 -5966 71 68 171 1432 61 37 2 4 48 0 36 1 4 -5967 71 69 177 1432 61 36 2 4 48 0 35 1 3 -5968 71 70 183 1432 61 38 2 4 48 0 37 1 5 -5969 71 71 189 1432 65 35 2 4 49 0 34 1 2 -5970 71 72 195 1432 65 33 2 4 49 0 32 1 0 -5971 71 73 201 1432 65 38 2 4 49 0 37 1 5 -5972 71 74 207 1432 65 40 2 4 49 0 39 1 7 -5973 71 75 213 1432 69 39 2 4 50 0 38 1 6 -5974 71 76 219 1432 69 37 2 4 50 0 36 1 4 -5975 71 77 225 1432 69 36 2 4 50 0 35 1 3 -5976 71 78 231 1432 69 38 2 4 50 0 37 1 5 -5977 71 79 237 1432 69 40 2 4 50 0 39 1 7 -5978 72 0 -237 1442 2 3 2 4 33 1 42 1 10 -5979 72 1 -231 1442 2 1 2 4 33 1 40 1 8 -5980 72 2 -225 1442 2 2 2 4 33 1 41 1 9 -5981 72 3 -219 1442 2 4 2 4 33 1 43 1 11 -5982 72 4 -213 1442 6 3 2 4 34 1 42 1 10 -5983 72 5 -207 1442 6 1 2 4 34 1 40 1 8 -5984 72 6 -201 1442 6 2 2 4 34 1 41 1 9 -5985 72 7 -195 1442 5 38 2 4 34 0 37 1 5 -5986 72 8 -189 1442 5 40 2 4 34 0 39 1 7 -5987 72 9 -183 1442 9 39 2 4 35 0 38 1 6 -5988 72 10 -177 1442 10 1 2 4 35 1 40 1 8 -5989 72 11 -171 1442 10 2 2 4 35 1 41 1 9 -5990 72 12 -165 1442 10 4 2 4 35 1 43 1 11 -5991 72 13 -159 1442 13 39 2 4 36 0 38 1 6 -5992 72 14 -153 1442 13 37 2 4 36 0 36 1 4 -5993 72 15 -147 1442 14 1 2 4 36 1 40 1 8 -5994 72 16 -141 1442 14 2 2 4 36 1 41 1 9 -5995 72 17 -135 1442 14 4 2 4 36 1 43 1 11 -5996 72 18 -129 1442 17 39 2 4 37 0 38 1 6 -5997 72 19 -123 1442 18 1 2 4 37 1 40 1 8 -5998 72 20 -117 1442 18 2 2 4 37 1 41 1 9 -5999 72 21 -111 1442 18 4 2 4 37 1 43 1 11 -6000 72 22 -105 1442 21 39 2 4 38 0 38 1 6 -6001 72 23 -99 1442 22 3 2 4 38 1 42 1 10 -6002 72 24 -93 1442 22 1 2 4 38 1 40 1 8 -6003 72 25 -87 1442 22 2 2 4 38 1 41 1 9 -6004 72 26 -81 1442 22 4 2 4 38 1 43 1 11 -6005 72 27 -75 1442 25 39 2 4 39 0 38 1 6 -6006 72 28 -69 1442 25 37 2 4 39 0 36 1 4 -6007 72 29 -63 1442 25 40 2 4 39 0 39 1 7 -6008 72 30 -57 1442 26 2 2 4 39 1 41 1 9 -6009 72 31 -51 1442 30 7 2 4 40 1 46 1 14 -6010 72 32 -45 1442 30 5 2 4 40 1 44 1 12 -6011 72 33 -39 1442 30 3 2 4 40 1 42 1 10 -6012 72 34 -33 1442 30 6 2 4 40 1 45 1 13 -6013 72 35 -27 1442 30 8 2 4 40 1 47 1 15 -6014 72 36 -21 1442 33 39 2 4 41 0 38 1 6 -6015 72 37 -15 1442 33 37 2 4 41 0 36 1 4 -6016 72 38 -9 1442 33 38 2 4 41 0 37 1 5 -6017 72 39 -3 1442 33 40 2 4 41 0 39 1 7 -6018 72 40 3 1442 37 39 2 4 42 0 38 1 6 -6019 72 41 9 1442 37 37 2 4 42 0 36 1 4 -6020 72 42 15 1442 37 38 2 4 42 0 37 1 5 -6021 72 43 21 1442 37 40 2 4 42 0 39 1 7 -6022 72 44 27 1442 42 7 2 4 43 1 46 1 14 -6023 72 45 33 1442 42 5 2 4 43 1 44 1 12 -6024 72 46 39 1442 42 4 2 4 43 1 43 1 11 -6025 72 47 45 1442 42 6 2 4 43 1 45 1 13 -6026 72 48 51 1442 42 8 2 4 43 1 47 1 15 -6027 72 49 57 1442 46 1 2 4 44 1 40 1 8 -6028 72 50 63 1442 45 39 2 4 44 0 38 1 6 -6029 72 51 69 1442 45 38 2 4 44 0 37 1 5 -6030 72 52 75 1442 45 40 2 4 44 0 39 1 7 -6031 72 53 81 1442 50 3 2 4 45 1 42 1 10 -6032 72 54 87 1442 50 1 2 4 45 1 40 1 8 -6033 72 55 93 1442 50 2 2 4 45 1 41 1 9 -6034 72 56 99 1442 50 4 2 4 45 1 43 1 11 -6035 72 57 105 1442 49 40 2 4 45 0 39 1 7 -6036 72 58 111 1442 54 3 2 4 46 1 42 1 10 -6037 72 59 117 1442 54 1 2 4 46 1 40 1 8 -6038 72 60 123 1442 54 2 2 4 46 1 41 1 9 -6039 72 61 129 1442 53 40 2 4 46 0 39 1 7 -6040 72 62 135 1442 58 3 2 4 47 1 42 1 10 -6041 72 63 141 1442 58 1 2 4 47 1 40 1 8 -6042 72 64 147 1442 58 2 2 4 47 1 41 1 9 -6043 72 65 153 1442 57 38 2 4 47 0 37 1 5 -6044 72 66 159 1442 57 40 2 4 47 0 39 1 7 -6045 72 67 165 1442 62 3 2 4 48 1 42 1 10 -6046 72 68 171 1442 62 1 2 4 48 1 40 1 8 -6047 72 69 177 1442 62 2 2 4 48 1 41 1 9 -6048 72 70 183 1442 61 40 2 4 48 0 39 1 7 -6049 72 71 189 1442 65 39 2 4 49 0 38 1 6 -6050 72 72 195 1442 65 37 2 4 49 0 36 1 4 -6051 72 73 201 1442 66 1 2 4 49 1 40 1 8 -6052 72 74 207 1442 66 2 2 4 49 1 41 1 9 -6053 72 75 213 1442 66 4 2 4 49 1 43 1 11 -6054 72 76 219 1442 70 3 2 4 50 1 42 1 10 -6055 72 77 225 1442 70 1 2 4 50 1 40 1 8 -6056 72 78 231 1442 70 2 2 4 50 1 41 1 9 -6057 72 79 237 1442 70 4 2 4 50 1 43 1 11 -6058 73 0 -237 1452 2 7 2 4 33 1 46 1 14 -6059 73 1 -231 1452 2 5 2 4 33 1 44 1 12 -6060 73 2 -225 1452 2 6 2 4 33 1 45 1 13 -6061 73 3 -219 1452 2 8 2 4 33 1 47 1 15 -6062 73 4 -213 1452 6 7 2 4 34 1 46 1 14 -6063 73 5 -207 1452 6 5 2 4 34 1 44 1 12 -6064 73 6 -201 1452 6 4 2 4 34 1 43 1 11 -6065 73 7 -195 1452 6 6 2 4 34 1 45 1 13 -6066 73 8 -189 1452 6 8 2 4 34 1 47 1 15 -6067 73 9 -183 1452 10 5 2 4 35 1 44 1 12 -6068 73 10 -177 1452 10 3 2 4 35 1 42 1 10 -6069 73 11 -171 1452 10 6 2 4 35 1 45 1 13 -6070 73 12 -165 1452 10 8 2 4 35 1 47 1 15 -6071 73 13 -159 1452 14 7 2 4 36 1 46 1 14 -6072 73 14 -153 1452 14 5 2 4 36 1 44 1 12 -6073 73 15 -147 1452 14 3 2 4 36 1 42 1 10 -6074 73 16 -141 1452 14 6 2 4 36 1 45 1 13 -6075 73 17 -135 1452 14 8 2 4 36 1 47 1 15 -6076 73 18 -129 1452 18 5 2 4 37 1 44 1 12 -6077 73 19 -123 1452 18 3 2 4 37 1 42 1 10 -6078 73 20 -117 1452 18 6 2 4 37 1 45 1 13 -6079 73 21 -111 1452 18 8 2 4 37 1 47 1 15 -6080 73 22 -105 1452 22 7 2 4 38 1 46 1 14 -6081 73 23 -99 1452 22 5 2 4 38 1 44 1 12 -6082 73 24 -93 1452 22 6 2 4 38 1 45 1 13 -6083 73 25 -87 1452 22 8 2 4 38 1 47 1 15 -6084 73 26 -81 1452 22 10 2 4 38 1 49 1 17 -6085 73 27 -75 1452 26 3 2 4 39 1 42 1 10 -6086 73 28 -69 1452 26 1 2 4 39 1 40 1 8 -6087 73 29 -63 1452 26 4 2 4 39 1 43 1 11 -6088 73 30 -57 1452 26 6 2 4 39 1 45 1 13 -6089 73 31 -51 1452 30 11 2 4 40 1 50 1 18 -6090 73 32 -45 1452 30 9 2 4 40 1 48 1 16 -6091 73 33 -39 1452 30 10 2 4 40 1 49 1 17 -6092 73 34 -33 1452 30 12 2 4 40 1 51 1 19 -6093 73 35 -27 1452 34 5 2 4 41 1 44 1 12 -6094 73 36 -21 1452 34 3 2 4 41 1 42 1 10 -6095 73 37 -15 1452 34 1 2 4 41 1 40 1 8 -6096 73 38 -9 1452 34 2 2 4 41 1 41 1 9 -6097 73 39 -3 1452 34 4 2 4 41 1 43 1 11 -6098 73 40 3 1452 38 3 2 4 42 1 42 1 10 -6099 73 41 9 1452 38 1 2 4 42 1 40 1 8 -6100 73 42 15 1452 38 2 2 4 42 1 41 1 9 -6101 73 43 21 1452 38 4 2 4 42 1 43 1 11 -6102 73 44 27 1452 38 6 2 4 42 1 45 1 13 -6103 73 45 33 1452 42 11 2 4 43 1 50 1 18 -6104 73 46 39 1452 42 9 2 4 43 1 48 1 16 -6105 73 47 45 1452 42 10 2 4 43 1 49 1 17 -6106 73 48 51 1452 42 12 2 4 43 1 51 1 19 -6107 73 49 57 1452 46 5 2 4 44 1 44 1 12 -6108 73 50 63 1452 46 3 2 4 44 1 42 1 10 -6109 73 51 69 1452 46 2 2 4 44 1 41 1 9 -6110 73 52 75 1452 46 4 2 4 44 1 43 1 11 -6111 73 53 81 1452 50 9 2 4 45 1 48 1 16 -6112 73 54 87 1452 50 7 2 4 45 1 46 1 14 -6113 73 55 93 1452 50 5 2 4 45 1 44 1 12 -6114 73 56 99 1452 50 6 2 4 45 1 45 1 13 -6115 73 57 105 1452 50 8 2 4 45 1 47 1 15 -6116 73 58 111 1452 54 7 2 4 46 1 46 1 14 -6117 73 59 117 1452 54 5 2 4 46 1 44 1 12 -6118 73 60 123 1452 54 4 2 4 46 1 43 1 11 -6119 73 61 129 1452 54 6 2 4 46 1 45 1 13 -6120 73 62 135 1452 58 7 2 4 47 1 46 1 14 -6121 73 63 141 1452 58 5 2 4 47 1 44 1 12 -6122 73 64 147 1452 58 4 2 4 47 1 43 1 11 -6123 73 65 153 1452 58 6 2 4 47 1 45 1 13 -6124 73 66 159 1452 58 8 2 4 47 1 47 1 15 -6125 73 67 165 1452 62 7 2 4 48 1 46 1 14 -6126 73 68 171 1452 62 5 2 4 48 1 44 1 12 -6127 73 69 177 1452 62 4 2 4 48 1 43 1 11 -6128 73 70 183 1452 62 6 2 4 48 1 45 1 13 -6129 73 71 189 1452 66 7 2 4 49 1 46 1 14 -6130 73 72 195 1452 66 5 2 4 49 1 44 1 12 -6131 73 73 201 1452 66 3 2 4 49 1 42 1 10 -6132 73 74 207 1452 66 6 2 4 49 1 45 1 13 -6133 73 75 213 1452 66 8 2 4 49 1 47 1 15 -6134 73 76 219 1452 70 7 2 4 50 1 46 1 14 -6135 73 77 225 1452 70 5 2 4 50 1 44 1 12 -6136 73 78 231 1452 70 6 2 4 50 1 45 1 13 -6137 73 79 237 1452 70 8 2 4 50 1 47 1 15 -6138 74 0 -243 1462 2 13 2 4 33 1 52 1 20 -6139 74 1 -237 1462 2 11 2 4 33 1 50 1 18 -6140 74 2 -231 1462 2 9 2 4 33 1 48 1 16 -6141 74 3 -225 1462 2 10 2 4 33 1 49 1 17 -6142 74 4 -219 1462 2 12 2 4 33 1 51 1 19 -6143 74 5 -213 1462 6 11 2 4 34 1 50 1 18 -6144 74 6 -207 1462 6 9 2 4 34 1 48 1 16 -6145 74 7 -201 1462 6 10 2 4 34 1 49 1 17 -6146 74 8 -195 1462 6 12 2 4 34 1 51 1 19 -6147 74 9 -189 1462 10 11 2 4 35 1 50 1 18 -6148 74 10 -183 1462 10 9 2 4 35 1 48 1 16 -6149 74 11 -177 1462 10 7 2 4 35 1 46 1 14 -6150 74 12 -171 1462 10 10 2 4 35 1 49 1 17 -6151 74 13 -165 1462 10 12 2 4 35 1 51 1 19 -6152 74 14 -159 1462 14 11 2 4 36 1 50 1 18 -6153 74 15 -153 1462 14 9 2 4 36 1 48 1 16 -6154 74 16 -147 1462 14 10 2 4 36 1 49 1 17 -6155 74 17 -141 1462 14 12 2 4 36 1 51 1 19 -6156 74 18 -135 1462 18 11 2 4 37 1 50 1 18 -6157 74 19 -129 1462 18 9 2 4 37 1 48 1 16 -6158 74 20 -123 1462 18 7 2 4 37 1 46 1 14 -6159 74 21 -117 1462 18 10 2 4 37 1 49 1 17 -6160 74 22 -111 1462 18 12 2 4 37 1 51 1 19 -6161 74 23 -105 1462 22 11 2 4 38 1 50 1 18 -6162 74 24 -99 1462 22 9 2 4 38 1 48 1 16 -6163 74 25 -93 1462 22 12 2 4 38 1 51 1 19 -6164 74 26 -87 1462 22 14 2 4 38 1 53 1 21 -6165 74 27 -81 1462 26 9 2 4 39 1 48 1 16 -6166 74 28 -75 1462 26 7 2 4 39 1 46 1 14 -6167 74 29 -69 1462 26 5 2 4 39 1 44 1 12 -6168 74 30 -63 1462 26 8 2 4 39 1 47 1 15 -6169 74 31 -57 1462 26 10 2 4 39 1 49 1 17 -6170 74 32 -51 1462 30 15 2 4 40 1 54 1 22 -6171 74 33 -45 1462 30 13 2 4 40 1 52 1 20 -6172 74 34 -39 1462 30 14 2 4 40 1 53 1 21 -6173 74 35 -33 1462 30 16 2 4 40 1 55 1 23 -6174 74 36 -27 1462 34 9 2 4 41 1 48 1 16 -6175 74 37 -21 1462 34 7 2 4 41 1 46 1 14 -6176 74 38 -15 1462 34 6 2 4 41 1 45 1 13 -6177 74 39 -9 1462 34 8 2 4 41 1 47 1 15 -6178 74 40 -3 1462 34 10 2 4 41 1 49 1 17 -6179 74 41 3 1462 38 9 2 4 42 1 48 1 16 -6180 74 42 9 1462 38 7 2 4 42 1 46 1 14 -6181 74 43 15 1462 38 5 2 4 42 1 44 1 12 -6182 74 44 21 1462 38 8 2 4 42 1 47 1 15 -6183 74 45 27 1462 38 10 2 4 42 1 49 1 17 -6184 74 46 33 1462 42 15 2 4 43 1 54 1 22 -6185 74 47 39 1462 42 13 2 4 43 1 52 1 20 -6186 74 48 45 1462 42 14 2 4 43 1 53 1 21 -6187 74 49 51 1462 42 16 2 4 43 1 55 1 23 -6188 74 50 57 1462 46 9 2 4 44 1 48 1 16 -6189 74 51 63 1462 46 7 2 4 44 1 46 1 14 -6190 74 52 69 1462 46 6 2 4 44 1 45 1 13 -6191 74 53 75 1462 46 8 2 4 44 1 47 1 15 -6192 74 54 81 1462 46 10 2 4 44 1 49 1 17 -6193 74 55 87 1462 50 13 2 4 45 1 52 1 20 -6194 74 56 93 1462 50 11 2 4 45 1 50 1 18 -6195 74 57 99 1462 50 10 2 4 45 1 49 1 17 -6196 74 58 105 1462 50 12 2 4 45 1 51 1 19 -6197 74 59 111 1462 54 11 2 4 46 1 50 1 18 -6198 74 60 117 1462 54 9 2 4 46 1 48 1 16 -6199 74 61 123 1462 54 8 2 4 46 1 47 1 15 -6200 74 62 129 1462 54 10 2 4 46 1 49 1 17 -6201 74 63 135 1462 54 12 2 4 46 1 51 1 19 -6202 74 64 141 1462 58 11 2 4 47 1 50 1 18 -6203 74 65 147 1462 58 9 2 4 47 1 48 1 16 -6204 74 66 153 1462 58 10 2 4 47 1 49 1 17 -6205 74 67 159 1462 58 12 2 4 47 1 51 1 19 -6206 74 68 165 1462 62 11 2 4 48 1 50 1 18 -6207 74 69 171 1462 62 9 2 4 48 1 48 1 16 -6208 74 70 177 1462 62 8 2 4 48 1 47 1 15 -6209 74 71 183 1462 62 10 2 4 48 1 49 1 17 -6210 74 72 189 1462 62 12 2 4 48 1 51 1 19 -6211 74 73 195 1462 66 11 2 4 49 1 50 1 18 -6212 74 74 201 1462 66 9 2 4 49 1 48 1 16 -6213 74 75 207 1462 66 10 2 4 49 1 49 1 17 -6214 74 76 213 1462 66 12 2 4 49 1 51 1 19 -6215 74 77 219 1462 70 11 2 4 50 1 50 1 18 -6216 74 78 225 1462 70 9 2 4 50 1 48 1 16 -6217 74 79 231 1462 70 10 2 4 50 1 49 1 17 -6218 74 80 237 1462 70 12 2 4 50 1 51 1 19 -6219 74 81 243 1462 70 14 2 4 50 1 53 1 21 -6220 75 0 -243 1472 2 17 2 4 33 1 56 1 24 -6221 75 1 -237 1472 2 15 2 4 33 1 54 1 22 -6222 75 2 -231 1472 2 14 2 4 33 1 53 1 21 -6223 75 3 -225 1472 2 16 2 4 33 1 55 1 23 -6224 75 4 -219 1472 2 18 2 4 33 1 57 1 25 -6225 75 5 -213 1472 6 15 2 4 34 1 54 1 22 -6226 75 6 -207 1472 6 13 2 4 34 1 52 1 20 -6227 75 7 -201 1472 6 14 2 4 34 1 53 1 21 -6228 75 8 -195 1472 6 16 2 4 34 1 55 1 23 -6229 75 9 -189 1472 10 15 2 4 35 1 54 1 22 -6230 75 10 -183 1472 10 13 2 4 35 1 52 1 20 -6231 75 11 -177 1472 10 14 2 4 35 1 53 1 21 -6232 75 12 -171 1472 10 16 2 4 35 1 55 1 23 -6233 75 13 -165 1472 10 18 2 4 35 1 57 1 25 -6234 75 14 -159 1472 14 15 2 4 36 1 54 1 22 -6235 75 15 -153 1472 14 13 2 4 36 1 52 1 20 -6236 75 16 -147 1472 14 14 2 4 36 1 53 1 21 -6237 75 17 -141 1472 14 16 2 4 36 1 55 1 23 -6238 75 18 -135 1472 18 17 2 4 37 1 56 1 24 -6239 75 19 -129 1472 18 15 2 4 37 1 54 1 22 -6240 75 20 -123 1472 18 13 2 4 37 1 52 1 20 -6241 75 21 -117 1472 18 14 2 4 37 1 53 1 21 -6242 75 22 -111 1472 18 16 2 4 37 1 55 1 23 -6243 75 23 -105 1472 22 15 2 4 38 1 54 1 22 -6244 75 24 -99 1472 22 13 2 4 38 1 52 1 20 -6245 75 25 -93 1472 22 16 2 4 38 1 55 1 23 -6246 75 26 -87 1472 22 18 2 4 38 1 57 1 25 -6247 75 27 -81 1472 26 15 2 4 39 1 54 1 22 -6248 75 28 -75 1472 26 13 2 4 39 1 52 1 20 -6249 75 29 -69 1472 26 11 2 4 39 1 50 1 18 -6250 75 30 -63 1472 26 12 2 4 39 1 51 1 19 -6251 75 31 -57 1472 26 14 2 4 39 1 53 1 21 -6252 75 32 -51 1472 30 19 2 4 40 1 58 1 26 -6253 75 33 -45 1472 30 17 2 4 40 1 56 1 24 -6254 75 34 -39 1472 30 18 2 4 40 1 57 1 25 -6255 75 35 -33 1472 30 20 2 4 40 1 59 1 27 -6256 75 36 -27 1472 34 15 2 4 41 1 54 1 22 -6257 75 37 -21 1472 34 13 2 4 41 1 52 1 20 -6258 75 38 -15 1472 34 11 2 4 41 1 50 1 18 -6259 75 39 -9 1472 34 12 2 4 41 1 51 1 19 -6260 75 40 -3 1472 34 14 2 4 41 1 53 1 21 -6261 75 41 3 1472 38 13 2 4 42 1 52 1 20 -6262 75 42 9 1472 38 11 2 4 42 1 50 1 18 -6263 75 43 15 1472 38 12 2 4 42 1 51 1 19 -6264 75 44 21 1472 38 14 2 4 42 1 53 1 21 -6265 75 45 27 1472 38 16 2 4 42 1 55 1 23 -6266 75 46 33 1472 42 19 2 4 43 1 58 1 26 -6267 75 47 39 1472 42 17 2 4 43 1 56 1 24 -6268 75 48 45 1472 42 18 2 4 43 1 57 1 25 -6269 75 49 51 1472 42 20 2 4 43 1 59 1 27 -6270 75 50 57 1472 46 13 2 4 44 1 52 1 20 -6271 75 51 63 1472 46 11 2 4 44 1 50 1 18 -6272 75 52 69 1472 46 12 2 4 44 1 51 1 19 -6273 75 53 75 1472 46 14 2 4 44 1 53 1 21 -6274 75 54 81 1472 46 16 2 4 44 1 55 1 23 -6275 75 55 87 1472 50 17 2 4 45 1 56 1 24 -6276 75 56 93 1472 50 15 2 4 45 1 54 1 22 -6277 75 57 99 1472 50 14 2 4 45 1 53 1 21 -6278 75 58 105 1472 50 16 2 4 45 1 55 1 23 -6279 75 59 111 1472 54 15 2 4 46 1 54 1 22 -6280 75 60 117 1472 54 13 2 4 46 1 52 1 20 -6281 75 61 123 1472 54 14 2 4 46 1 53 1 21 -6282 75 62 129 1472 54 16 2 4 46 1 55 1 23 -6283 75 63 135 1472 54 18 2 4 46 1 57 1 25 -6284 75 64 141 1472 58 15 2 4 47 1 54 1 22 -6285 75 65 147 1472 58 13 2 4 47 1 52 1 20 -6286 75 66 153 1472 58 14 2 4 47 1 53 1 21 -6287 75 67 159 1472 58 16 2 4 47 1 55 1 23 -6288 75 68 165 1472 62 17 2 4 48 1 56 1 24 -6289 75 69 171 1472 62 15 2 4 48 1 54 1 22 -6290 75 70 177 1472 62 13 2 4 48 1 52 1 20 -6291 75 71 183 1472 62 14 2 4 48 1 53 1 21 -6292 75 72 189 1472 62 16 2 4 48 1 55 1 23 -6293 75 73 195 1472 66 15 2 4 49 1 54 1 22 -6294 75 74 201 1472 66 13 2 4 49 1 52 1 20 -6295 75 75 207 1472 66 14 2 4 49 1 53 1 21 -6296 75 76 213 1472 66 16 2 4 49 1 55 1 23 -6297 75 77 219 1472 70 17 2 4 50 1 56 1 24 -6298 75 78 225 1472 70 15 2 4 50 1 54 1 22 -6299 75 79 231 1472 70 13 2 4 50 1 52 1 20 -6300 75 80 237 1472 70 16 2 4 50 1 55 1 23 -6301 75 81 243 1472 70 18 2 4 50 1 57 1 25 -6302 76 0 -243 1482 2 21 2 4 33 1 60 1 28 -6303 76 1 -237 1482 2 19 2 4 33 1 58 1 26 -6304 76 2 -231 1482 2 20 2 4 33 1 59 1 27 -6305 76 3 -225 1482 2 22 2 4 33 1 61 1 29 -6306 76 4 -219 1482 6 21 2 4 34 1 60 1 28 -6307 76 5 -213 1482 6 19 2 4 34 1 58 1 26 -6308 76 6 -207 1482 6 17 2 4 34 1 56 1 24 -6309 76 7 -201 1482 6 18 2 4 34 1 57 1 25 -6310 76 8 -195 1482 6 20 2 4 34 1 59 1 27 -6311 76 9 -189 1482 10 19 2 4 35 1 58 1 26 -6312 76 10 -183 1482 10 17 2 4 35 1 56 1 24 -6313 76 11 -177 1482 10 20 2 4 35 1 59 1 27 -6314 76 12 -171 1482 10 22 2 4 35 1 61 1 29 -6315 76 13 -165 1482 14 21 2 4 36 1 60 1 28 -6316 76 14 -159 1482 14 19 2 4 36 1 58 1 26 -6317 76 15 -153 1482 14 17 2 4 36 1 56 1 24 -6318 76 16 -147 1482 14 18 2 4 36 1 57 1 25 -6319 76 17 -141 1482 14 20 2 4 36 1 59 1 27 -6320 76 18 -135 1482 18 21 2 4 37 1 60 1 28 -6321 76 19 -129 1482 18 19 2 4 37 1 58 1 26 -6322 76 20 -123 1482 18 18 2 4 37 1 57 1 25 -6323 76 21 -117 1482 18 20 2 4 37 1 59 1 27 -6324 76 22 -111 1482 18 22 2 4 37 1 61 1 29 -6325 76 23 -105 1482 22 19 2 4 38 1 58 1 26 -6326 76 24 -99 1482 22 17 2 4 38 1 56 1 24 -6327 76 25 -93 1482 22 20 2 4 38 1 59 1 27 -6328 76 26 -87 1482 22 22 2 4 38 1 61 1 29 -6329 76 27 -81 1482 26 19 2 4 39 1 58 1 26 -6330 76 28 -75 1482 26 17 2 4 39 1 56 1 24 -6331 76 29 -69 1482 26 16 2 4 39 1 55 1 23 -6332 76 30 -63 1482 26 18 2 4 39 1 57 1 25 -6333 76 31 -57 1482 26 20 2 4 39 1 59 1 27 -6334 76 32 -51 1482 30 23 2 4 40 1 62 1 30 -6335 76 33 -45 1482 30 21 2 4 40 1 60 1 28 -6336 76 34 -39 1482 30 22 2 4 40 1 61 1 29 -6337 76 35 -33 1482 30 24 2 4 40 1 63 1 31 -6338 76 36 -27 1482 34 19 2 4 41 1 58 1 26 -6339 76 37 -21 1482 34 17 2 4 41 1 56 1 24 -6340 76 38 -15 1482 34 16 2 4 41 1 55 1 23 -6341 76 39 -9 1482 34 18 2 4 41 1 57 1 25 -6342 76 40 -3 1482 34 20 2 4 41 1 59 1 27 -6343 76 41 3 1482 38 19 2 4 42 1 58 1 26 -6344 76 42 9 1482 38 17 2 4 42 1 56 1 24 -6345 76 43 15 1482 38 15 2 4 42 1 54 1 22 -6346 76 44 21 1482 38 18 2 4 42 1 57 1 25 -6347 76 45 27 1482 38 20 2 4 42 1 59 1 27 -6348 76 46 33 1482 42 23 2 4 43 1 62 1 30 -6349 76 47 39 1482 42 21 2 4 43 1 60 1 28 -6350 76 48 45 1482 42 22 2 4 43 1 61 1 29 -6351 76 49 51 1482 42 24 2 4 43 1 63 1 31 -6352 76 50 57 1482 46 19 2 4 44 1 58 1 26 -6353 76 51 63 1482 46 17 2 4 44 1 56 1 24 -6354 76 52 69 1482 46 15 2 4 44 1 54 1 22 -6355 76 53 75 1482 46 18 2 4 44 1 57 1 25 -6356 76 54 81 1482 46 20 2 4 44 1 59 1 27 -6357 76 55 87 1482 50 21 2 4 45 1 60 1 28 -6358 76 56 93 1482 50 19 2 4 45 1 58 1 26 -6359 76 57 99 1482 50 18 2 4 45 1 57 1 25 -6360 76 58 105 1482 50 20 2 4 45 1 59 1 27 -6361 76 59 111 1482 54 21 2 4 46 1 60 1 28 -6362 76 60 117 1482 54 19 2 4 46 1 58 1 26 -6363 76 61 123 1482 54 17 2 4 46 1 56 1 24 -6364 76 62 129 1482 54 20 2 4 46 1 59 1 27 -6365 76 63 135 1482 54 22 2 4 46 1 61 1 29 -6366 76 64 141 1482 58 19 2 4 47 1 58 1 26 -6367 76 65 147 1482 58 17 2 4 47 1 56 1 24 -6368 76 66 153 1482 58 18 2 4 47 1 57 1 25 -6369 76 67 159 1482 58 20 2 4 47 1 59 1 27 -6370 76 68 165 1482 58 22 2 4 47 1 61 1 29 -6371 76 69 171 1482 62 21 2 4 48 1 60 1 28 -6372 76 70 177 1482 62 19 2 4 48 1 58 1 26 -6373 76 71 183 1482 62 18 2 4 48 1 57 1 25 -6374 76 72 189 1482 62 20 2 4 48 1 59 1 27 -6375 76 73 195 1482 66 19 2 4 49 1 58 1 26 -6376 76 74 201 1482 66 17 2 4 49 1 56 1 24 -6377 76 75 207 1482 66 18 2 4 49 1 57 1 25 -6378 76 76 213 1482 66 20 2 4 49 1 59 1 27 -6379 76 77 219 1482 66 22 2 4 49 1 61 1 29 -6380 76 78 225 1482 70 21 2 4 50 1 60 1 28 -6381 76 79 231 1482 70 19 2 4 50 1 58 1 26 -6382 76 80 237 1482 70 20 2 4 50 1 59 1 27 -6383 76 81 243 1482 70 22 2 4 50 1 61 1 29 -6384 77 0 -249 1492 2 27 2 4 33 1 66 2 2 -6385 77 1 -243 1492 2 25 2 4 33 1 64 2 0 -6386 77 2 -237 1492 2 23 2 4 33 1 62 1 30 -6387 77 3 -231 1492 2 24 2 4 33 1 63 1 31 -6388 77 4 -225 1492 2 26 2 4 33 1 65 2 1 -6389 77 5 -219 1492 6 25 2 4 34 1 64 2 0 -6390 77 6 -213 1492 6 23 2 4 34 1 62 1 30 -6391 77 7 -207 1492 6 22 2 4 34 1 61 1 29 -6392 77 8 -201 1492 6 24 2 4 34 1 63 1 31 -6393 77 9 -195 1492 6 26 2 4 34 1 65 2 1 -6394 77 10 -189 1492 10 23 2 4 35 1 62 1 30 -6395 77 11 -183 1492 10 21 2 4 35 1 60 1 28 -6396 77 12 -177 1492 10 24 2 4 35 1 63 1 31 -6397 77 13 -171 1492 10 26 2 4 35 1 65 2 1 -6398 77 14 -165 1492 14 25 2 4 36 1 64 2 0 -6399 77 15 -159 1492 14 23 2 4 36 1 62 1 30 -6400 77 16 -153 1492 14 22 2 4 36 1 61 1 29 -6401 77 17 -147 1492 14 24 2 4 36 1 63 1 31 -6402 77 18 -141 1492 14 26 2 4 36 1 65 2 1 -6403 77 19 -135 1492 18 25 2 4 37 1 64 2 0 -6404 77 20 -129 1492 18 23 2 4 37 1 62 1 30 -6405 77 21 -123 1492 18 24 2 4 37 1 63 1 31 -6406 77 22 -117 1492 18 26 2 4 37 1 65 2 1 -6407 77 23 -111 1492 18 28 2 4 37 1 67 2 3 -6408 77 24 -105 1492 22 23 2 4 38 1 62 1 30 -6409 77 25 -99 1492 22 21 2 4 38 1 60 1 28 -6410 77 26 -93 1492 22 24 2 4 38 1 63 1 31 -6411 77 27 -87 1492 22 26 2 4 38 1 65 2 1 -6412 77 28 -81 1492 26 25 2 4 39 1 64 2 0 -6413 77 29 -75 1492 26 23 2 4 39 1 62 1 30 -6414 77 30 -69 1492 26 21 2 4 39 1 60 1 28 -6415 77 31 -63 1492 26 22 2 4 39 1 61 1 29 -6416 77 32 -57 1492 26 24 2 4 39 1 63 1 31 -6417 77 33 -51 1492 30 27 2 4 40 1 66 2 2 -6418 77 34 -45 1492 30 25 2 4 40 1 64 2 0 -6419 77 35 -39 1492 30 26 2 4 40 1 65 2 1 -6420 77 36 -33 1492 30 28 2 4 40 1 67 2 3 -6421 77 37 -27 1492 34 25 2 4 41 1 64 2 0 -6422 77 38 -21 1492 34 23 2 4 41 1 62 1 30 -6423 77 39 -15 1492 34 21 2 4 41 1 60 1 28 -6424 77 40 -9 1492 34 22 2 4 41 1 61 1 29 -6425 77 41 -3 1492 34 24 2 4 41 1 63 1 31 -6426 77 42 3 1492 38 23 2 4 42 1 62 1 30 -6427 77 43 9 1492 38 21 2 4 42 1 60 1 28 -6428 77 44 15 1492 38 22 2 4 42 1 61 1 29 -6429 77 45 21 1492 38 24 2 4 42 1 63 1 31 -6430 77 46 27 1492 38 26 2 4 42 1 65 2 1 -6431 77 47 33 1492 42 27 2 4 43 1 66 2 2 -6432 77 48 39 1492 42 25 2 4 43 1 64 2 0 -6433 77 49 45 1492 42 26 2 4 43 1 65 2 1 -6434 77 50 51 1492 42 28 2 4 43 1 67 2 3 -6435 77 51 57 1492 46 23 2 4 44 1 62 1 30 -6436 77 52 63 1492 46 21 2 4 44 1 60 1 28 -6437 77 53 69 1492 46 22 2 4 44 1 61 1 29 -6438 77 54 75 1492 46 24 2 4 44 1 63 1 31 -6439 77 55 81 1492 46 26 2 4 44 1 65 2 1 -6440 77 56 87 1492 50 25 2 4 45 1 64 2 0 -6441 77 57 93 1492 50 23 2 4 45 1 62 1 30 -6442 77 58 99 1492 50 22 2 4 45 1 61 1 29 -6443 77 59 105 1492 50 24 2 4 45 1 63 1 31 -6444 77 60 111 1492 54 27 2 4 46 1 66 2 2 -6445 77 61 117 1492 54 25 2 4 46 1 64 2 0 -6446 77 62 123 1492 54 23 2 4 46 1 62 1 30 -6447 77 63 129 1492 54 24 2 4 46 1 63 1 31 -6448 77 64 135 1492 54 26 2 4 46 1 65 2 1 -6449 77 65 141 1492 58 25 2 4 47 1 64 2 0 -6450 77 66 147 1492 58 23 2 4 47 1 62 1 30 -6451 77 67 153 1492 58 21 2 4 47 1 60 1 28 -6452 77 68 159 1492 58 24 2 4 47 1 63 1 31 -6453 77 69 165 1492 58 26 2 4 47 1 65 2 1 -6454 77 70 171 1492 62 25 2 4 48 1 64 2 0 -6455 77 71 177 1492 62 23 2 4 48 1 62 1 30 -6456 77 72 183 1492 62 22 2 4 48 1 61 1 29 -6457 77 73 189 1492 62 24 2 4 48 1 63 1 31 -6458 77 74 195 1492 66 25 2 4 49 1 64 2 0 -6459 77 75 201 1492 66 23 2 4 49 1 62 1 30 -6460 77 76 207 1492 66 21 2 4 49 1 60 1 28 -6461 77 77 213 1492 66 24 2 4 49 1 63 1 31 -6462 77 78 219 1492 66 26 2 4 49 1 65 2 1 -6463 77 79 225 1492 70 25 2 4 50 1 64 2 0 -6464 77 80 231 1492 70 23 2 4 50 1 62 1 30 -6465 77 81 237 1492 70 24 2 4 50 1 63 1 31 -6466 77 82 243 1492 70 26 2 4 50 1 65 2 1 -6467 77 83 249 1492 70 28 2 4 50 1 67 2 3 -6468 78 0 -249 1502 2 31 2 4 33 1 70 2 6 -6469 78 1 -243 1502 2 29 2 4 33 1 68 2 4 -6470 78 2 -237 1502 2 28 2 4 33 1 67 2 3 -6471 78 3 -231 1502 2 30 2 4 33 1 69 2 5 -6472 78 4 -225 1502 2 32 2 4 33 1 71 2 7 -6473 78 5 -219 1502 6 29 2 4 34 1 68 2 4 -6474 78 6 -213 1502 6 27 2 4 34 1 66 2 2 -6475 78 7 -207 1502 6 28 2 4 34 1 67 2 3 -6476 78 8 -201 1502 6 30 2 4 34 1 69 2 5 -6477 78 9 -195 1502 10 29 2 4 35 1 68 2 4 -6478 78 10 -189 1502 10 27 2 4 35 1 66 2 2 -6479 78 11 -183 1502 10 25 2 4 35 1 64 2 0 -6480 78 12 -177 1502 10 28 2 4 35 1 67 2 3 -6481 78 13 -171 1502 10 30 2 4 35 1 69 2 5 -6482 78 14 -165 1502 14 31 2 4 36 1 70 2 6 -6483 78 15 -159 1502 14 29 2 4 36 1 68 2 4 -6484 78 16 -153 1502 14 27 2 4 36 1 66 2 2 -6485 78 17 -147 1502 14 28 2 4 36 1 67 2 3 -6486 78 18 -141 1502 14 30 2 4 36 1 69 2 5 -6487 78 19 -135 1502 18 29 2 4 37 1 68 2 4 -6488 78 20 -129 1502 18 27 2 4 37 1 66 2 2 -6489 78 21 -123 1502 18 30 2 4 37 1 69 2 5 -6490 78 22 -117 1502 18 32 2 4 37 1 71 2 7 -6491 78 23 -111 1502 22 29 2 4 38 1 68 2 4 -6492 78 24 -105 1502 22 27 2 4 38 1 66 2 2 -6493 78 25 -99 1502 22 25 2 4 38 1 64 2 0 -6494 78 26 -93 1502 22 28 2 4 38 1 67 2 3 -6495 78 27 -87 1502 22 30 2 4 38 1 69 2 5 -6496 78 28 -81 1502 26 29 2 4 39 1 68 2 4 -6497 78 29 -75 1502 26 27 2 4 39 1 66 2 2 -6498 78 30 -69 1502 26 26 2 4 39 1 65 2 1 -6499 78 31 -63 1502 26 28 2 4 39 1 67 2 3 -6500 78 32 -57 1502 26 30 2 4 39 1 69 2 5 -6501 78 33 -51 1502 30 31 2 4 40 1 70 2 6 -6502 78 34 -45 1502 30 29 2 4 40 1 68 2 4 -6503 78 35 -39 1502 30 30 2 4 40 1 69 2 5 -6504 78 36 -33 1502 30 32 2 4 40 1 71 2 7 -6505 78 37 -27 1502 34 29 2 4 41 1 68 2 4 -6506 78 38 -21 1502 34 27 2 4 41 1 66 2 2 -6507 78 39 -15 1502 34 26 2 4 41 1 65 2 1 -6508 78 40 -9 1502 34 28 2 4 41 1 67 2 3 -6509 78 41 -3 1502 34 30 2 4 41 1 69 2 5 -6510 78 42 3 1502 38 29 2 4 42 1 68 2 4 -6511 78 43 9 1502 38 27 2 4 42 1 66 2 2 -6512 78 44 15 1502 38 25 2 4 42 1 64 2 0 -6513 78 45 21 1502 38 28 2 4 42 1 67 2 3 -6514 78 46 27 1502 38 30 2 4 42 1 69 2 5 -6515 78 47 33 1502 42 31 2 4 43 1 70 2 6 -6516 78 48 39 1502 42 29 2 4 43 1 68 2 4 -6517 78 49 45 1502 42 30 2 4 43 1 69 2 5 -6518 78 50 51 1502 42 32 2 4 43 1 71 2 7 -6519 78 51 57 1502 46 29 2 4 44 1 68 2 4 -6520 78 52 63 1502 46 27 2 4 44 1 66 2 2 -6521 78 53 69 1502 46 25 2 4 44 1 64 2 0 -6522 78 54 75 1502 46 28 2 4 44 1 67 2 3 -6523 78 55 81 1502 46 30 2 4 44 1 69 2 5 -6524 78 56 87 1502 50 29 2 4 45 1 68 2 4 -6525 78 57 93 1502 50 27 2 4 45 1 66 2 2 -6526 78 58 99 1502 50 26 2 4 45 1 65 2 1 -6527 78 59 105 1502 50 28 2 4 45 1 67 2 3 -6528 78 60 111 1502 50 30 2 4 45 1 69 2 5 -6529 78 61 117 1502 54 31 2 4 46 1 70 2 6 -6530 78 62 123 1502 54 29 2 4 46 1 68 2 4 -6531 78 63 129 1502 54 28 2 4 46 1 67 2 3 -6532 78 64 135 1502 54 30 2 4 46 1 69 2 5 -6533 78 65 141 1502 58 29 2 4 47 1 68 2 4 -6534 78 66 147 1502 58 27 2 4 47 1 66 2 2 -6535 78 67 153 1502 58 28 2 4 47 1 67 2 3 -6536 78 68 159 1502 58 30 2 4 47 1 69 2 5 -6537 78 69 165 1502 58 32 2 4 47 1 71 2 7 -6538 78 70 171 1502 62 29 2 4 48 1 68 2 4 -6539 78 71 177 1502 62 27 2 4 48 1 66 2 2 -6540 78 72 183 1502 62 26 2 4 48 1 65 2 1 -6541 78 73 189 1502 62 28 2 4 48 1 67 2 3 -6542 78 74 195 1502 62 30 2 4 48 1 69 2 5 -6543 78 75 201 1502 66 29 2 4 49 1 68 2 4 -6544 78 76 207 1502 66 27 2 4 49 1 66 2 2 -6545 78 77 213 1502 66 28 2 4 49 1 67 2 3 -6546 78 78 219 1502 66 30 2 4 49 1 69 2 5 -6547 78 79 225 1502 70 31 2 4 50 1 70 2 6 -6548 78 80 231 1502 70 29 2 4 50 1 68 2 4 -6549 78 81 237 1502 70 27 2 4 50 1 66 2 2 -6550 78 82 243 1502 70 30 2 4 50 1 69 2 5 -6551 78 83 249 1502 70 32 2 4 50 1 71 2 7 -6552 79 0 -249 1512 2 35 2 4 33 1 74 2 10 -6553 79 1 -243 1512 2 33 2 4 33 1 72 2 8 -6554 79 2 -237 1512 2 34 2 4 33 1 73 2 9 -6555 79 3 -231 1512 2 36 2 4 33 1 75 2 11 -6556 79 4 -225 1512 6 35 2 4 34 1 74 2 10 -6557 79 5 -219 1512 6 33 2 4 34 1 72 2 8 -6558 79 6 -213 1512 6 31 2 4 34 1 70 2 6 -6559 79 7 -207 1512 6 32 2 4 34 1 71 2 7 -6560 79 8 -201 1512 6 34 2 4 34 1 73 2 9 -6561 79 9 -195 1512 10 33 2 4 35 1 72 2 8 -6562 79 10 -189 1512 10 31 2 4 35 1 70 2 6 -6563 79 11 -183 1512 10 32 2 4 35 1 71 2 7 -6564 79 12 -177 1512 10 34 2 4 35 1 73 2 9 -6565 79 13 -171 1512 10 36 2 4 35 1 75 2 11 -6566 79 14 -165 1512 14 35 2 4 36 1 74 2 10 -6567 79 15 -159 1512 14 33 2 4 36 1 72 2 8 -6568 79 16 -153 1512 14 32 2 4 36 1 71 2 7 -6569 79 17 -147 1512 14 34 2 4 36 1 73 2 9 -6570 79 18 -141 1512 14 36 2 4 36 1 75 2 11 -6571 79 19 -135 1512 18 33 2 4 37 1 72 2 8 -6572 79 20 -129 1512 18 31 2 4 37 1 70 2 6 -6573 79 21 -123 1512 18 34 2 4 37 1 73 2 9 -6574 79 22 -117 1512 18 36 2 4 37 1 75 2 11 -6575 79 23 -111 1512 22 33 2 4 38 1 72 2 8 -6576 79 24 -105 1512 22 31 2 4 38 1 70 2 6 -6577 79 25 -99 1512 22 32 2 4 38 1 71 2 7 -6578 79 26 -93 1512 22 34 2 4 38 1 73 2 9 -6579 79 27 -87 1512 22 36 2 4 38 1 75 2 11 -6580 79 28 -81 1512 26 35 2 4 39 1 74 2 10 -6581 79 29 -75 1512 26 33 2 4 39 1 72 2 8 -6582 79 30 -69 1512 26 31 2 4 39 1 70 2 6 -6583 79 31 -63 1512 26 32 2 4 39 1 71 2 7 -6584 79 32 -57 1512 26 34 2 4 39 1 73 2 9 -6585 79 33 -51 1512 30 35 2 4 40 1 74 2 10 -6586 79 34 -45 1512 30 33 2 4 40 1 72 2 8 -6587 79 35 -39 1512 30 34 2 4 40 1 73 2 9 -6588 79 36 -33 1512 30 36 2 4 40 1 75 2 11 -6589 79 37 -27 1512 34 35 2 4 41 1 74 2 10 -6590 79 38 -21 1512 34 33 2 4 41 1 72 2 8 -6591 79 39 -15 1512 34 31 2 4 41 1 70 2 6 -6592 79 40 -9 1512 34 32 2 4 41 1 71 2 7 -6593 79 41 -3 1512 34 34 2 4 41 1 73 2 9 -6594 79 42 3 1512 38 33 2 4 42 1 72 2 8 -6595 79 43 9 1512 38 31 2 4 42 1 70 2 6 -6596 79 44 15 1512 38 32 2 4 42 1 71 2 7 -6597 79 45 21 1512 38 34 2 4 42 1 73 2 9 -6598 79 46 27 1512 38 36 2 4 42 1 75 2 11 -6599 79 47 33 1512 42 35 2 4 43 1 74 2 10 -6600 79 48 39 1512 42 33 2 4 43 1 72 2 8 -6601 79 49 45 1512 42 34 2 4 43 1 73 2 9 -6602 79 50 51 1512 42 36 2 4 43 1 75 2 11 -6603 79 51 57 1512 46 33 2 4 44 1 72 2 8 -6604 79 52 63 1512 46 31 2 4 44 1 70 2 6 -6605 79 53 69 1512 46 32 2 4 44 1 71 2 7 -6606 79 54 75 1512 46 34 2 4 44 1 73 2 9 -6607 79 55 81 1512 46 36 2 4 44 1 75 2 11 -6608 79 56 87 1512 50 35 2 4 45 1 74 2 10 -6609 79 57 93 1512 50 33 2 4 45 1 72 2 8 -6610 79 58 99 1512 50 31 2 4 45 1 70 2 6 -6611 79 59 105 1512 50 32 2 4 45 1 71 2 7 -6612 79 60 111 1512 50 34 2 4 45 1 73 2 9 -6613 79 61 117 1512 54 35 2 4 46 1 74 2 10 -6614 79 62 123 1512 54 33 2 4 46 1 72 2 8 -6615 79 63 129 1512 54 32 2 4 46 1 71 2 7 -6616 79 64 135 1512 54 34 2 4 46 1 73 2 9 -6617 79 65 141 1512 58 35 2 4 47 1 74 2 10 -6618 79 66 147 1512 58 33 2 4 47 1 72 2 8 -6619 79 67 153 1512 58 31 2 4 47 1 70 2 6 -6620 79 68 159 1512 58 34 2 4 47 1 73 2 9 -6621 79 69 165 1512 58 36 2 4 47 1 75 2 11 -6622 79 70 171 1512 62 35 2 4 48 1 74 2 10 -6623 79 71 177 1512 62 33 2 4 48 1 72 2 8 -6624 79 72 183 1512 62 31 2 4 48 1 70 2 6 -6625 79 73 189 1512 62 32 2 4 48 1 71 2 7 -6626 79 74 195 1512 62 34 2 4 48 1 73 2 9 -6627 79 75 201 1512 66 33 2 4 49 1 72 2 8 -6628 79 76 207 1512 66 31 2 4 49 1 70 2 6 -6629 79 77 213 1512 66 32 2 4 49 1 71 2 7 -6630 79 78 219 1512 66 34 2 4 49 1 73 2 9 -6631 79 79 225 1512 66 36 2 4 49 1 75 2 11 -6632 79 80 231 1512 70 35 2 4 50 1 74 2 10 -6633 79 81 237 1512 70 33 2 4 50 1 72 2 8 -6634 79 82 243 1512 70 34 2 4 50 1 73 2 9 -6635 79 83 249 1512 70 36 2 4 50 1 75 2 11 -6636 80 0 -249 1522 2 39 2 4 33 1 78 2 14 -6637 80 1 -243 1522 2 37 2 4 33 1 76 2 12 -6638 80 2 -237 1522 2 38 2 4 33 1 77 2 13 -6639 80 3 -231 1522 2 40 2 4 33 1 79 2 15 -6640 80 4 -225 1522 6 39 2 4 34 1 78 2 14 -6641 80 5 -219 1522 6 37 2 4 34 1 76 2 12 -6642 80 6 -213 1522 6 36 2 4 34 1 75 2 11 -6643 80 7 -207 1522 6 38 2 4 34 1 77 2 13 -6644 80 8 -201 1522 6 40 2 4 34 1 79 2 15 -6645 80 9 -195 1522 10 39 2 4 35 1 78 2 14 -6646 80 10 -189 1522 10 37 2 4 35 1 76 2 12 -6647 80 11 -183 1522 10 35 2 4 35 1 74 2 10 -6648 80 12 -177 1522 10 38 2 4 35 1 77 2 13 -6649 80 13 -171 1522 10 40 2 4 35 1 79 2 15 -6650 80 14 -165 1522 14 39 2 4 36 1 78 2 14 -6651 80 15 -159 1522 14 37 2 4 36 1 76 2 12 -6652 80 16 -153 1522 14 38 2 4 36 1 77 2 13 -6653 80 17 -147 1522 14 40 2 4 36 1 79 2 15 -6654 80 18 -141 1522 18 39 2 4 37 1 78 2 14 -6655 80 19 -135 1522 18 37 2 4 37 1 76 2 12 -6656 80 20 -129 1522 18 35 2 4 37 1 74 2 10 -6657 80 21 -123 1522 18 38 2 4 37 1 77 2 13 -6658 80 22 -117 1522 18 40 2 4 37 1 79 2 15 -6659 80 23 -111 1522 22 39 2 4 38 1 78 2 14 -6660 80 24 -105 1522 22 37 2 4 38 1 76 2 12 -6661 80 25 -99 1522 22 35 2 4 38 1 74 2 10 -6662 80 26 -93 1522 22 38 2 4 38 1 77 2 13 -6663 80 27 -87 1522 22 40 2 4 38 1 79 2 15 -6664 80 28 -81 1522 26 39 2 4 39 1 78 2 14 -6665 80 29 -75 1522 26 37 2 4 39 1 76 2 12 -6666 80 30 -69 1522 26 36 2 4 39 1 75 2 11 -6667 80 31 -63 1522 26 38 2 4 39 1 77 2 13 -6668 80 32 -57 1522 26 40 2 4 39 1 79 2 15 -6669 80 33 -51 1522 30 39 2 4 40 1 78 2 14 -6670 80 34 -45 1522 30 37 2 4 40 1 76 2 12 -6671 80 35 -39 1522 30 38 2 4 40 1 77 2 13 -6672 80 36 -33 1522 30 40 2 4 40 1 79 2 15 -6673 80 37 -27 1522 34 39 2 4 41 1 78 2 14 -6674 80 38 -21 1522 34 37 2 4 41 1 76 2 12 -6675 80 39 -15 1522 34 36 2 4 41 1 75 2 11 -6676 80 40 -9 1522 34 38 2 4 41 1 77 2 13 -6677 80 41 -3 1522 34 40 2 4 41 1 79 2 15 -6678 80 42 3 1522 38 39 2 4 42 1 78 2 14 -6679 80 43 9 1522 38 37 2 4 42 1 76 2 12 -6680 80 44 15 1522 38 35 2 4 42 1 74 2 10 -6681 80 45 21 1522 38 38 2 4 42 1 77 2 13 -6682 80 46 27 1522 38 40 2 4 42 1 79 2 15 -6683 80 47 33 1522 42 39 2 4 43 1 78 2 14 -6684 80 48 39 1522 42 37 2 4 43 1 76 2 12 -6685 80 49 45 1522 42 38 2 4 43 1 77 2 13 -6686 80 50 51 1522 42 40 2 4 43 1 79 2 15 -6687 80 51 57 1522 46 39 2 4 44 1 78 2 14 -6688 80 52 63 1522 46 37 2 4 44 1 76 2 12 -6689 80 53 69 1522 46 35 2 4 44 1 74 2 10 -6690 80 54 75 1522 46 38 2 4 44 1 77 2 13 -6691 80 55 81 1522 46 40 2 4 44 1 79 2 15 -6692 80 56 87 1522 50 39 2 4 45 1 78 2 14 -6693 80 57 93 1522 50 37 2 4 45 1 76 2 12 -6694 80 58 99 1522 50 36 2 4 45 1 75 2 11 -6695 80 59 105 1522 50 38 2 4 45 1 77 2 13 -6696 80 60 111 1522 50 40 2 4 45 1 79 2 15 -6697 80 61 117 1522 54 39 2 4 46 1 78 2 14 -6698 80 62 123 1522 54 37 2 4 46 1 76 2 12 -6699 80 63 129 1522 54 36 2 4 46 1 75 2 11 -6700 80 64 135 1522 54 38 2 4 46 1 77 2 13 -6701 80 65 141 1522 54 40 2 4 46 1 79 2 15 -6702 80 66 147 1522 58 39 2 4 47 1 78 2 14 -6703 80 67 153 1522 58 37 2 4 47 1 76 2 12 -6704 80 68 159 1522 58 38 2 4 47 1 77 2 13 -6705 80 69 165 1522 58 40 2 4 47 1 79 2 15 -6706 80 70 171 1522 62 39 2 4 48 1 78 2 14 -6707 80 71 177 1522 62 37 2 4 48 1 76 2 12 -6708 80 72 183 1522 62 36 2 4 48 1 75 2 11 -6709 80 73 189 1522 62 38 2 4 48 1 77 2 13 -6710 80 74 195 1522 62 40 2 4 48 1 79 2 15 -6711 80 75 201 1522 66 39 2 4 49 1 78 2 14 -6712 80 76 207 1522 66 37 2 4 49 1 76 2 12 -6713 80 77 213 1522 66 35 2 4 49 1 74 2 10 -6714 80 78 219 1522 66 38 2 4 49 1 77 2 13 -6715 80 79 225 1522 66 40 2 4 49 1 79 2 15 -6716 80 80 231 1522 70 39 2 4 50 1 78 2 14 -6717 80 81 237 1522 70 37 2 4 50 1 76 2 12 -6718 80 82 243 1522 70 38 2 4 50 1 77 2 13 -6719 80 83 249 1522 70 40 2 4 50 1 79 2 15 -6720 81 0 -255 1532 3 5 2 5 33 2 84 2 20 -6721 81 1 -249 1532 3 3 2 5 33 2 82 2 18 -6722 81 2 -243 1532 3 1 2 5 33 2 80 2 16 -6723 81 3 -237 1532 3 2 2 5 33 2 81 2 17 -6724 81 4 -231 1532 3 4 2 5 33 2 83 2 19 -6725 81 5 -225 1532 7 5 2 5 34 2 84 2 20 -6726 81 6 -219 1532 7 3 2 5 34 2 82 2 18 -6727 81 7 -213 1532 7 1 2 5 34 2 80 2 16 -6728 81 8 -207 1532 7 2 2 5 34 2 81 2 17 -6729 81 9 -201 1532 7 4 2 5 34 2 83 2 19 -6730 81 10 -195 1532 11 3 2 5 35 2 82 2 18 -6731 81 11 -189 1532 11 1 2 5 35 2 80 2 16 -6732 81 12 -183 1532 11 2 2 5 35 2 81 2 17 -6733 81 13 -177 1532 11 4 2 5 35 2 83 2 19 -6734 81 14 -171 1532 15 3 2 5 36 2 82 2 18 -6735 81 15 -165 1532 15 1 2 5 36 2 80 2 16 -6736 81 16 -159 1532 15 2 2 5 36 2 81 2 17 -6737 81 17 -153 1532 15 4 2 5 36 2 83 2 19 -6738 81 18 -147 1532 15 6 2 5 36 2 85 2 21 -6739 81 19 -141 1532 19 5 2 5 37 2 84 2 20 -6740 81 20 -135 1532 19 3 2 5 37 2 82 2 18 -6741 81 21 -129 1532 19 1 2 5 37 2 80 2 16 -6742 81 22 -123 1532 19 2 2 5 37 2 81 2 17 -6743 81 23 -117 1532 19 4 2 5 37 2 83 2 19 -6744 81 24 -111 1532 23 3 2 5 38 2 82 2 18 -6745 81 25 -105 1532 23 1 2 5 38 2 80 2 16 -6746 81 26 -99 1532 23 2 2 5 38 2 81 2 17 -6747 81 27 -93 1532 23 4 2 5 38 2 83 2 19 -6748 81 28 -87 1532 23 6 2 5 38 2 85 2 21 -6749 81 29 -81 1532 27 3 2 5 39 2 82 2 18 -6750 81 30 -75 1532 27 1 2 5 39 2 80 2 16 -6751 81 31 -69 1532 27 2 2 5 39 2 81 2 17 -6752 81 32 -63 1532 27 4 2 5 39 2 83 2 19 -6753 81 33 -57 1532 31 5 2 5 40 2 84 2 20 -6754 81 34 -51 1532 31 3 2 5 40 2 82 2 18 -6755 81 35 -45 1532 31 1 2 5 40 2 80 2 16 -6756 81 36 -39 1532 31 2 2 5 40 2 81 2 17 -6757 81 37 -33 1532 31 4 2 5 40 2 83 2 19 -6758 81 38 -27 1532 35 5 2 5 41 2 84 2 20 -6759 81 39 -21 1532 35 3 2 5 41 2 82 2 18 -6760 81 40 -15 1532 35 1 2 5 41 2 80 2 16 -6761 81 41 -9 1532 35 2 2 5 41 2 81 2 17 -6762 81 42 -3 1532 35 4 2 5 41 2 83 2 19 -6763 81 43 3 1532 39 3 2 5 42 2 82 2 18 -6764 81 44 9 1532 39 1 2 5 42 2 80 2 16 -6765 81 45 15 1532 39 2 2 5 42 2 81 2 17 -6766 81 46 21 1532 39 4 2 5 42 2 83 2 19 -6767 81 47 27 1532 39 6 2 5 42 2 85 2 21 -6768 81 48 33 1532 43 3 2 5 43 2 82 2 18 -6769 81 49 39 1532 43 1 2 5 43 2 80 2 16 -6770 81 50 45 1532 43 2 2 5 43 2 81 2 17 -6771 81 51 51 1532 43 4 2 5 43 2 83 2 19 -6772 81 52 57 1532 43 6 2 5 43 2 85 2 21 -6773 81 53 63 1532 47 3 2 5 44 2 82 2 18 -6774 81 54 69 1532 47 1 2 5 44 2 80 2 16 -6775 81 55 75 1532 47 2 2 5 44 2 81 2 17 -6776 81 56 81 1532 47 4 2 5 44 2 83 2 19 -6777 81 57 87 1532 51 5 2 5 45 2 84 2 20 -6778 81 58 93 1532 51 3 2 5 45 2 82 2 18 -6779 81 59 99 1532 51 1 2 5 45 2 80 2 16 -6780 81 60 105 1532 51 2 2 5 45 2 81 2 17 -6781 81 61 111 1532 51 4 2 5 45 2 83 2 19 -6782 81 62 117 1532 55 3 2 5 46 2 82 2 18 -6783 81 63 123 1532 55 1 2 5 46 2 80 2 16 -6784 81 64 129 1532 55 2 2 5 46 2 81 2 17 -6785 81 65 135 1532 55 4 2 5 46 2 83 2 19 -6786 81 66 141 1532 55 6 2 5 46 2 85 2 21 -6787 81 67 147 1532 59 5 2 5 47 2 84 2 20 -6788 81 68 153 1532 59 3 2 5 47 2 82 2 18 -6789 81 69 159 1532 59 1 2 5 47 2 80 2 16 -6790 81 70 165 1532 59 2 2 5 47 2 81 2 17 -6791 81 71 171 1532 59 4 2 5 47 2 83 2 19 -6792 81 72 177 1532 63 3 2 5 48 2 82 2 18 -6793 81 73 183 1532 63 1 2 5 48 2 80 2 16 -6794 81 74 189 1532 63 2 2 5 48 2 81 2 17 -6795 81 75 195 1532 63 4 2 5 48 2 83 2 19 -6796 81 76 201 1532 67 3 2 5 49 2 82 2 18 -6797 81 77 207 1532 67 1 2 5 49 2 80 2 16 -6798 81 78 213 1532 67 2 2 5 49 2 81 2 17 -6799 81 79 219 1532 67 4 2 5 49 2 83 2 19 -6800 81 80 225 1532 67 6 2 5 49 2 85 2 21 -6801 81 81 231 1532 71 3 2 5 50 2 82 2 18 -6802 81 82 237 1532 71 1 2 5 50 2 80 2 16 -6803 81 83 243 1532 71 2 2 5 50 2 81 2 17 -6804 81 84 249 1532 71 4 2 5 50 2 83 2 19 -6805 81 85 255 1532 71 6 2 5 50 2 85 2 21 -6806 82 0 -255 1542 3 9 2 5 33 2 88 2 24 -6807 82 1 -249 1542 3 7 2 5 33 2 86 2 22 -6808 82 2 -243 1542 3 6 2 5 33 2 85 2 21 -6809 82 3 -237 1542 3 8 2 5 33 2 87 2 23 -6810 82 4 -231 1542 3 10 2 5 33 2 89 2 25 -6811 82 5 -225 1542 7 9 2 5 34 2 88 2 24 -6812 82 6 -219 1542 7 7 2 5 34 2 86 2 22 -6813 82 7 -213 1542 7 6 2 5 34 2 85 2 21 -6814 82 8 -207 1542 7 8 2 5 34 2 87 2 23 -6815 82 9 -201 1542 7 10 2 5 34 2 89 2 25 -6816 82 10 -195 1542 11 7 2 5 35 2 86 2 22 -6817 82 11 -189 1542 11 5 2 5 35 2 84 2 20 -6818 82 12 -183 1542 11 6 2 5 35 2 85 2 21 -6819 82 13 -177 1542 11 8 2 5 35 2 87 2 23 -6820 82 14 -171 1542 15 9 2 5 36 2 88 2 24 -6821 82 15 -165 1542 15 7 2 5 36 2 86 2 22 -6822 82 16 -159 1542 15 5 2 5 36 2 84 2 20 -6823 82 17 -153 1542 15 8 2 5 36 2 87 2 23 -6824 82 18 -147 1542 15 10 2 5 36 2 89 2 25 -6825 82 19 -141 1542 19 9 2 5 37 2 88 2 24 -6826 82 20 -135 1542 19 7 2 5 37 2 86 2 22 -6827 82 21 -129 1542 19 6 2 5 37 2 85 2 21 -6828 82 22 -123 1542 19 8 2 5 37 2 87 2 23 -6829 82 23 -117 1542 19 10 2 5 37 2 89 2 25 -6830 82 24 -111 1542 23 9 2 5 38 2 88 2 24 -6831 82 25 -105 1542 23 7 2 5 38 2 86 2 22 -6832 82 26 -99 1542 23 5 2 5 38 2 84 2 20 -6833 82 27 -93 1542 23 8 2 5 38 2 87 2 23 -6834 82 28 -87 1542 23 10 2 5 38 2 89 2 25 -6835 82 29 -81 1542 27 7 2 5 39 2 86 2 22 -6836 82 30 -75 1542 27 5 2 5 39 2 84 2 20 -6837 82 31 -69 1542 27 6 2 5 39 2 85 2 21 -6838 82 32 -63 1542 27 8 2 5 39 2 87 2 23 -6839 82 33 -57 1542 31 9 2 5 40 2 88 2 24 -6840 82 34 -51 1542 31 7 2 5 40 2 86 2 22 -6841 82 35 -45 1542 31 6 2 5 40 2 85 2 21 -6842 82 36 -39 1542 31 8 2 5 40 2 87 2 23 -6843 82 37 -33 1542 31 10 2 5 40 2 89 2 25 -6844 82 38 -27 1542 35 9 2 5 41 2 88 2 24 -6845 82 39 -21 1542 35 7 2 5 41 2 86 2 22 -6846 82 40 -15 1542 35 6 2 5 41 2 85 2 21 -6847 82 41 -9 1542 35 8 2 5 41 2 87 2 23 -6848 82 42 -3 1542 35 10 2 5 41 2 89 2 25 -6849 82 43 3 1542 39 9 2 5 42 2 88 2 24 -6850 82 44 9 1542 39 7 2 5 42 2 86 2 22 -6851 82 45 15 1542 39 5 2 5 42 2 84 2 20 -6852 82 46 21 1542 39 8 2 5 42 2 87 2 23 -6853 82 47 27 1542 39 10 2 5 42 2 89 2 25 -6854 82 48 33 1542 43 9 2 5 43 2 88 2 24 -6855 82 49 39 1542 43 7 2 5 43 2 86 2 22 -6856 82 50 45 1542 43 5 2 5 43 2 84 2 20 -6857 82 51 51 1542 43 8 2 5 43 2 87 2 23 -6858 82 52 57 1542 43 10 2 5 43 2 89 2 25 -6859 82 53 63 1542 47 7 2 5 44 2 86 2 22 -6860 82 54 69 1542 47 5 2 5 44 2 84 2 20 -6861 82 55 75 1542 47 6 2 5 44 2 85 2 21 -6862 82 56 81 1542 47 8 2 5 44 2 87 2 23 -6863 82 57 87 1542 51 9 2 5 45 2 88 2 24 -6864 82 58 93 1542 51 7 2 5 45 2 86 2 22 -6865 82 59 99 1542 51 6 2 5 45 2 85 2 21 -6866 82 60 105 1542 51 8 2 5 45 2 87 2 23 -6867 82 61 111 1542 51 10 2 5 45 2 89 2 25 -6868 82 62 117 1542 55 9 2 5 46 2 88 2 24 -6869 82 63 123 1542 55 7 2 5 46 2 86 2 22 -6870 82 64 129 1542 55 5 2 5 46 2 84 2 20 -6871 82 65 135 1542 55 8 2 5 46 2 87 2 23 -6872 82 66 141 1542 55 10 2 5 46 2 89 2 25 -6873 82 67 147 1542 59 9 2 5 47 2 88 2 24 -6874 82 68 153 1542 59 7 2 5 47 2 86 2 22 -6875 82 69 159 1542 59 6 2 5 47 2 85 2 21 -6876 82 70 165 1542 59 8 2 5 47 2 87 2 23 -6877 82 71 171 1542 59 10 2 5 47 2 89 2 25 -6878 82 72 177 1542 63 7 2 5 48 2 86 2 22 -6879 82 73 183 1542 63 5 2 5 48 2 84 2 20 -6880 82 74 189 1542 63 6 2 5 48 2 85 2 21 -6881 82 75 195 1542 63 8 2 5 48 2 87 2 23 -6882 82 76 201 1542 67 9 2 5 49 2 88 2 24 -6883 82 77 207 1542 67 7 2 5 49 2 86 2 22 -6884 82 78 213 1542 67 5 2 5 49 2 84 2 20 -6885 82 79 219 1542 67 8 2 5 49 2 87 2 23 -6886 82 80 225 1542 67 10 2 5 49 2 89 2 25 -6887 82 81 231 1542 71 9 2 5 50 2 88 2 24 -6888 82 82 237 1542 71 7 2 5 50 2 86 2 22 -6889 82 83 243 1542 71 5 2 5 50 2 84 2 20 -6890 82 84 249 1542 71 8 2 5 50 2 87 2 23 -6891 82 85 255 1542 71 10 2 5 50 2 89 2 25 -6892 83 0 -255 1552 3 13 2 5 33 2 92 2 28 -6893 83 1 -249 1552 3 11 2 5 33 2 90 2 26 -6894 83 2 -243 1552 3 12 2 5 33 2 91 2 27 -6895 83 3 -237 1552 3 14 2 5 33 2 93 2 29 -6896 83 4 -231 1552 7 15 2 5 34 2 94 2 30 -6897 83 5 -225 1552 7 13 2 5 34 2 92 2 28 -6898 83 6 -219 1552 7 11 2 5 34 2 90 2 26 -6899 83 7 -213 1552 7 12 2 5 34 2 91 2 27 -6900 83 8 -207 1552 7 14 2 5 34 2 93 2 29 -6901 83 9 -201 1552 11 13 2 5 35 2 92 2 28 -6902 83 10 -195 1552 11 11 2 5 35 2 90 2 26 -6903 83 11 -189 1552 11 9 2 5 35 2 88 2 24 -6904 83 12 -183 1552 11 10 2 5 35 2 89 2 25 -6905 83 13 -177 1552 11 12 2 5 35 2 91 2 27 -6906 83 14 -171 1552 15 13 2 5 36 2 92 2 28 -6907 83 15 -165 1552 15 11 2 5 36 2 90 2 26 -6908 83 16 -159 1552 15 12 2 5 36 2 91 2 27 -6909 83 17 -153 1552 15 14 2 5 36 2 93 2 29 -6910 83 18 -147 1552 15 16 2 5 36 2 95 2 31 -6911 83 19 -141 1552 19 15 2 5 37 2 94 2 30 -6912 83 20 -135 1552 19 13 2 5 37 2 92 2 28 -6913 83 21 -129 1552 19 11 2 5 37 2 90 2 26 -6914 83 22 -123 1552 19 12 2 5 37 2 91 2 27 -6915 83 23 -117 1552 19 14 2 5 37 2 93 2 29 -6916 83 24 -111 1552 23 13 2 5 38 2 92 2 28 -6917 83 25 -105 1552 23 11 2 5 38 2 90 2 26 -6918 83 26 -99 1552 23 12 2 5 38 2 91 2 27 -6919 83 27 -93 1552 23 14 2 5 38 2 93 2 29 -6920 83 28 -87 1552 23 16 2 5 38 2 95 2 31 -6921 83 29 -81 1552 27 11 2 5 39 2 90 2 26 -6922 83 30 -75 1552 27 9 2 5 39 2 88 2 24 -6923 83 31 -69 1552 27 10 2 5 39 2 89 2 25 -6924 83 32 -63 1552 27 12 2 5 39 2 91 2 27 -6925 83 33 -57 1552 31 15 2 5 40 2 94 2 30 -6926 83 34 -51 1552 31 13 2 5 40 2 92 2 28 -6927 83 35 -45 1552 31 11 2 5 40 2 90 2 26 -6928 83 36 -39 1552 31 12 2 5 40 2 91 2 27 -6929 83 37 -33 1552 31 14 2 5 40 2 93 2 29 -6930 83 38 -27 1552 35 15 2 5 41 2 94 2 30 -6931 83 39 -21 1552 35 13 2 5 41 2 92 2 28 -6932 83 40 -15 1552 35 11 2 5 41 2 90 2 26 -6933 83 41 -9 1552 35 12 2 5 41 2 91 2 27 -6934 83 42 -3 1552 35 14 2 5 41 2 93 2 29 -6935 83 43 3 1552 39 13 2 5 42 2 92 2 28 -6936 83 44 9 1552 39 11 2 5 42 2 90 2 26 -6937 83 45 15 1552 39 12 2 5 42 2 91 2 27 -6938 83 46 21 1552 39 14 2 5 42 2 93 2 29 -6939 83 47 27 1552 39 16 2 5 42 2 95 2 31 -6940 83 48 33 1552 43 13 2 5 43 2 92 2 28 -6941 83 49 39 1552 43 11 2 5 43 2 90 2 26 -6942 83 50 45 1552 43 12 2 5 43 2 91 2 27 -6943 83 51 51 1552 43 14 2 5 43 2 93 2 29 -6944 83 52 57 1552 43 16 2 5 43 2 95 2 31 -6945 83 53 63 1552 47 11 2 5 44 2 90 2 26 -6946 83 54 69 1552 47 9 2 5 44 2 88 2 24 -6947 83 55 75 1552 47 10 2 5 44 2 89 2 25 -6948 83 56 81 1552 47 12 2 5 44 2 91 2 27 -6949 83 57 87 1552 51 15 2 5 45 2 94 2 30 -6950 83 58 93 1552 51 13 2 5 45 2 92 2 28 -6951 83 59 99 1552 51 11 2 5 45 2 90 2 26 -6952 83 60 105 1552 51 12 2 5 45 2 91 2 27 -6953 83 61 111 1552 51 14 2 5 45 2 93 2 29 -6954 83 62 117 1552 55 13 2 5 46 2 92 2 28 -6955 83 63 123 1552 55 11 2 5 46 2 90 2 26 -6956 83 64 129 1552 55 12 2 5 46 2 91 2 27 -6957 83 65 135 1552 55 14 2 5 46 2 93 2 29 -6958 83 66 141 1552 55 16 2 5 46 2 95 2 31 -6959 83 67 147 1552 59 15 2 5 47 2 94 2 30 -6960 83 68 153 1552 59 13 2 5 47 2 92 2 28 -6961 83 69 159 1552 59 11 2 5 47 2 90 2 26 -6962 83 70 165 1552 59 12 2 5 47 2 91 2 27 -6963 83 71 171 1552 59 14 2 5 47 2 93 2 29 -6964 83 72 177 1552 63 11 2 5 48 2 90 2 26 -6965 83 73 183 1552 63 9 2 5 48 2 88 2 24 -6966 83 74 189 1552 63 10 2 5 48 2 89 2 25 -6967 83 75 195 1552 63 12 2 5 48 2 91 2 27 -6968 83 76 201 1552 63 14 2 5 48 2 93 2 29 -6969 83 77 207 1552 67 13 2 5 49 2 92 2 28 -6970 83 78 213 1552 67 11 2 5 49 2 90 2 26 -6971 83 79 219 1552 67 12 2 5 49 2 91 2 27 -6972 83 80 225 1552 67 14 2 5 49 2 93 2 29 -6973 83 81 231 1552 67 16 2 5 49 2 95 2 31 -6974 83 82 237 1552 71 13 2 5 50 2 92 2 28 -6975 83 83 243 1552 71 11 2 5 50 2 90 2 26 -6976 83 84 249 1552 71 12 2 5 50 2 91 2 27 -6977 83 85 255 1552 71 14 2 5 50 2 93 2 29 -6978 84 0 -261 1562 3 19 2 5 33 2 98 3 2 -6979 84 1 -255 1562 3 17 2 5 33 2 96 3 0 -6980 84 2 -249 1562 3 15 2 5 33 2 94 2 30 -6981 84 3 -243 1562 3 16 2 5 33 2 95 2 31 -6982 84 4 -237 1562 3 18 2 5 33 2 97 3 1 -6983 84 5 -231 1562 7 19 2 5 34 2 98 3 2 -6984 84 6 -225 1562 7 17 2 5 34 2 96 3 0 -6985 84 7 -219 1562 7 16 2 5 34 2 95 2 31 -6986 84 8 -213 1562 7 18 2 5 34 2 97 3 1 -6987 84 9 -207 1562 7 20 2 5 34 2 99 3 3 -6988 84 10 -201 1562 11 17 2 5 35 2 96 3 0 -6989 84 11 -195 1562 11 15 2 5 35 2 94 2 30 -6990 84 12 -189 1562 11 14 2 5 35 2 93 2 29 -6991 84 13 -183 1562 11 16 2 5 35 2 95 2 31 -6992 84 14 -177 1562 11 18 2 5 35 2 97 3 1 -6993 84 15 -171 1562 15 19 2 5 36 2 98 3 2 -6994 84 16 -165 1562 15 17 2 5 36 2 96 3 0 -6995 84 17 -159 1562 15 15 2 5 36 2 94 2 30 -6996 84 18 -153 1562 15 18 2 5 36 2 97 3 1 -6997 84 19 -147 1562 15 20 2 5 36 2 99 3 3 -6998 84 20 -141 1562 19 19 2 5 37 2 98 3 2 -6999 84 21 -135 1562 19 17 2 5 37 2 96 3 0 -7000 84 22 -129 1562 19 16 2 5 37 2 95 2 31 -7001 84 23 -123 1562 19 18 2 5 37 2 97 3 1 -7002 84 24 -117 1562 19 20 2 5 37 2 99 3 3 -7003 84 25 -111 1562 23 17 2 5 38 2 96 3 0 -7004 84 26 -105 1562 23 15 2 5 38 2 94 2 30 -7005 84 27 -99 1562 23 18 2 5 38 2 97 3 1 -7006 84 28 -93 1562 23 20 2 5 38 2 99 3 3 -7007 84 29 -87 1562 27 17 2 5 39 2 96 3 0 -7008 84 30 -81 1562 27 15 2 5 39 2 94 2 30 -7009 84 31 -75 1562 27 13 2 5 39 2 92 2 28 -7010 84 32 -69 1562 27 14 2 5 39 2 93 2 29 -7011 84 33 -63 1562 27 16 2 5 39 2 95 2 31 -7012 84 34 -57 1562 31 19 2 5 40 2 98 3 2 -7013 84 35 -51 1562 31 17 2 5 40 2 96 3 0 -7014 84 36 -45 1562 31 16 2 5 40 2 95 2 31 -7015 84 37 -39 1562 31 18 2 5 40 2 97 3 1 -7016 84 38 -33 1562 31 20 2 5 40 2 99 3 3 -7017 84 39 -27 1562 35 19 2 5 41 2 98 3 2 -7018 84 40 -21 1562 35 17 2 5 41 2 96 3 0 -7019 84 41 -15 1562 35 16 2 5 41 2 95 2 31 -7020 84 42 -9 1562 35 18 2 5 41 2 97 3 1 -7021 84 43 -3 1562 35 20 2 5 41 2 99 3 3 -7022 84 44 3 1562 39 19 2 5 42 2 98 3 2 -7023 84 45 9 1562 39 17 2 5 42 2 96 3 0 -7024 84 46 15 1562 39 15 2 5 42 2 94 2 30 -7025 84 47 21 1562 39 18 2 5 42 2 97 3 1 -7026 84 48 27 1562 39 20 2 5 42 2 99 3 3 -7027 84 49 33 1562 43 19 2 5 43 2 98 3 2 -7028 84 50 39 1562 43 17 2 5 43 2 96 3 0 -7029 84 51 45 1562 43 15 2 5 43 2 94 2 30 -7030 84 52 51 1562 43 18 2 5 43 2 97 3 1 -7031 84 53 57 1562 43 20 2 5 43 2 99 3 3 -7032 84 54 63 1562 47 15 2 5 44 2 94 2 30 -7033 84 55 69 1562 47 13 2 5 44 2 92 2 28 -7034 84 56 75 1562 47 14 2 5 44 2 93 2 29 -7035 84 57 81 1562 47 16 2 5 44 2 95 2 31 -7036 84 58 87 1562 47 18 2 5 44 2 97 3 1 -7037 84 59 93 1562 51 19 2 5 45 2 98 3 2 -7038 84 60 99 1562 51 17 2 5 45 2 96 3 0 -7039 84 61 105 1562 51 16 2 5 45 2 95 2 31 -7040 84 62 111 1562 51 18 2 5 45 2 97 3 1 -7041 84 63 117 1562 55 19 2 5 46 2 98 3 2 -7042 84 64 123 1562 55 17 2 5 46 2 96 3 0 -7043 84 65 129 1562 55 15 2 5 46 2 94 2 30 -7044 84 66 135 1562 55 18 2 5 46 2 97 3 1 -7045 84 67 141 1562 55 20 2 5 46 2 99 3 3 -7046 84 68 147 1562 59 19 2 5 47 2 98 3 2 -7047 84 69 153 1562 59 17 2 5 47 2 96 3 0 -7048 84 70 159 1562 59 16 2 5 47 2 95 2 31 -7049 84 71 165 1562 59 18 2 5 47 2 97 3 1 -7050 84 72 171 1562 59 20 2 5 47 2 99 3 3 -7051 84 73 177 1562 63 17 2 5 48 2 96 3 0 -7052 84 74 183 1562 63 15 2 5 48 2 94 2 30 -7053 84 75 189 1562 63 13 2 5 48 2 92 2 28 -7054 84 76 195 1562 63 16 2 5 48 2 95 2 31 -7055 84 77 201 1562 63 18 2 5 48 2 97 3 1 -7056 84 78 207 1562 67 19 2 5 49 2 98 3 2 -7057 84 79 213 1562 67 17 2 5 49 2 96 3 0 -7058 84 80 219 1562 67 15 2 5 49 2 94 2 30 -7059 84 81 225 1562 67 18 2 5 49 2 97 3 1 -7060 84 82 231 1562 67 20 2 5 49 2 99 3 3 -7061 84 83 237 1562 71 17 2 5 50 2 96 3 0 -7062 84 84 243 1562 71 15 2 5 50 2 94 2 30 -7063 84 85 249 1562 71 16 2 5 50 2 95 2 31 -7064 84 86 255 1562 71 18 2 5 50 2 97 3 1 -7065 84 87 261 1562 71 20 2 5 50 2 99 3 3 -7066 85 0 -261 1572 3 23 2 5 33 2 102 3 6 -7067 85 1 -255 1572 3 21 2 5 33 2 100 3 4 -7068 85 2 -249 1572 3 20 2 5 33 2 99 3 3 -7069 85 3 -243 1572 3 22 2 5 33 2 101 3 5 -7070 85 4 -237 1572 3 24 2 5 33 2 103 3 7 -7071 85 5 -231 1572 7 25 2 5 34 2 104 3 8 -7072 85 6 -225 1572 7 23 2 5 34 2 102 3 6 -7073 85 7 -219 1572 7 21 2 5 34 2 100 3 4 -7074 85 8 -213 1572 7 22 2 5 34 2 101 3 5 -7075 85 9 -207 1572 7 24 2 5 34 2 103 3 7 -7076 85 10 -201 1572 11 21 2 5 35 2 100 3 4 -7077 85 11 -195 1572 11 19 2 5 35 2 98 3 2 -7078 85 12 -189 1572 11 20 2 5 35 2 99 3 3 -7079 85 13 -183 1572 11 22 2 5 35 2 101 3 5 -7080 85 14 -177 1572 11 24 2 5 35 2 103 3 7 -7081 85 15 -171 1572 15 23 2 5 36 2 102 3 6 -7082 85 16 -165 1572 15 21 2 5 36 2 100 3 4 -7083 85 17 -159 1572 15 22 2 5 36 2 101 3 5 -7084 85 18 -153 1572 15 24 2 5 36 2 103 3 7 -7085 85 19 -147 1572 15 26 2 5 36 2 105 3 9 -7086 85 20 -141 1572 19 23 2 5 37 2 102 3 6 -7087 85 21 -135 1572 19 21 2 5 37 2 100 3 4 -7088 85 22 -129 1572 19 22 2 5 37 2 101 3 5 -7089 85 23 -123 1572 19 24 2 5 37 2 103 3 7 -7090 85 24 -117 1572 23 23 2 5 38 2 102 3 6 -7091 85 25 -111 1572 23 21 2 5 38 2 100 3 4 -7092 85 26 -105 1572 23 19 2 5 38 2 98 3 2 -7093 85 27 -99 1572 23 22 2 5 38 2 101 3 5 -7094 85 28 -93 1572 23 24 2 5 38 2 103 3 7 -7095 85 29 -87 1572 27 21 2 5 39 2 100 3 4 -7096 85 30 -81 1572 27 19 2 5 39 2 98 3 2 -7097 85 31 -75 1572 27 18 2 5 39 2 97 3 1 -7098 85 32 -69 1572 27 20 2 5 39 2 99 3 3 -7099 85 33 -63 1572 27 22 2 5 39 2 101 3 5 -7100 85 34 -57 1572 31 25 2 5 40 2 104 3 8 -7101 85 35 -51 1572 31 23 2 5 40 2 102 3 6 -7102 85 36 -45 1572 31 21 2 5 40 2 100 3 4 -7103 85 37 -39 1572 31 22 2 5 40 2 101 3 5 -7104 85 38 -33 1572 31 24 2 5 40 2 103 3 7 -7105 85 39 -27 1572 35 25 2 5 41 2 104 3 8 -7106 85 40 -21 1572 35 23 2 5 41 2 102 3 6 -7107 85 41 -15 1572 35 21 2 5 41 2 100 3 4 -7108 85 42 -9 1572 35 22 2 5 41 2 101 3 5 -7109 85 43 -3 1572 35 24 2 5 41 2 103 3 7 -7110 85 44 3 1572 39 23 2 5 42 2 102 3 6 -7111 85 45 9 1572 39 21 2 5 42 2 100 3 4 -7112 85 46 15 1572 39 22 2 5 42 2 101 3 5 -7113 85 47 21 1572 39 24 2 5 42 2 103 3 7 -7114 85 48 27 1572 39 26 2 5 42 2 105 3 9 -7115 85 49 33 1572 43 23 2 5 43 2 102 3 6 -7116 85 50 39 1572 43 21 2 5 43 2 100 3 4 -7117 85 51 45 1572 43 22 2 5 43 2 101 3 5 -7118 85 52 51 1572 43 24 2 5 43 2 103 3 7 -7119 85 53 57 1572 43 26 2 5 43 2 105 3 9 -7120 85 54 63 1572 47 21 2 5 44 2 100 3 4 -7121 85 55 69 1572 47 19 2 5 44 2 98 3 2 -7122 85 56 75 1572 47 17 2 5 44 2 96 3 0 -7123 85 57 81 1572 47 20 2 5 44 2 99 3 3 -7124 85 58 87 1572 47 22 2 5 44 2 101 3 5 -7125 85 59 93 1572 51 23 2 5 45 2 102 3 6 -7126 85 60 99 1572 51 21 2 5 45 2 100 3 4 -7127 85 61 105 1572 51 20 2 5 45 2 99 3 3 -7128 85 62 111 1572 51 22 2 5 45 2 101 3 5 -7129 85 63 117 1572 51 24 2 5 45 2 103 3 7 -7130 85 64 123 1572 55 23 2 5 46 2 102 3 6 -7131 85 65 129 1572 55 21 2 5 46 2 100 3 4 -7132 85 66 135 1572 55 22 2 5 46 2 101 3 5 -7133 85 67 141 1572 55 24 2 5 46 2 103 3 7 -7134 85 68 147 1572 59 25 2 5 47 2 104 3 8 -7135 85 69 153 1572 59 23 2 5 47 2 102 3 6 -7136 85 70 159 1572 59 21 2 5 47 2 100 3 4 -7137 85 71 165 1572 59 22 2 5 47 2 101 3 5 -7138 85 72 171 1572 59 24 2 5 47 2 103 3 7 -7139 85 73 177 1572 63 23 2 5 48 2 102 3 6 -7140 85 74 183 1572 63 21 2 5 48 2 100 3 4 -7141 85 75 189 1572 63 19 2 5 48 2 98 3 2 -7142 85 76 195 1572 63 20 2 5 48 2 99 3 3 -7143 85 77 201 1572 63 22 2 5 48 2 101 3 5 -7144 85 78 207 1572 67 23 2 5 49 2 102 3 6 -7145 85 79 213 1572 67 21 2 5 49 2 100 3 4 -7146 85 80 219 1572 67 22 2 5 49 2 101 3 5 -7147 85 81 225 1572 67 24 2 5 49 2 103 3 7 -7148 85 82 231 1572 67 26 2 5 49 2 105 3 9 -7149 85 83 237 1572 71 23 2 5 50 2 102 3 6 -7150 85 84 243 1572 71 21 2 5 50 2 100 3 4 -7151 85 85 249 1572 71 19 2 5 50 2 98 3 2 -7152 85 86 255 1572 71 22 2 5 50 2 101 3 5 -7153 85 87 261 1572 71 24 2 5 50 2 103 3 7 -7154 86 0 -261 1582 3 27 2 5 33 2 106 3 10 -7155 86 1 -255 1582 3 25 2 5 33 2 104 3 8 -7156 86 2 -249 1582 3 26 2 5 33 2 105 3 9 -7157 86 3 -243 1582 3 28 2 5 33 2 107 3 11 -7158 86 4 -237 1582 3 30 2 5 33 2 109 3 13 -7159 86 5 -231 1582 7 29 2 5 34 2 108 3 12 -7160 86 6 -225 1582 7 27 2 5 34 2 106 3 10 -7161 86 7 -219 1582 7 26 2 5 34 2 105 3 9 -7162 86 8 -213 1582 7 28 2 5 34 2 107 3 11 -7163 86 9 -207 1582 11 27 2 5 35 2 106 3 10 -7164 86 10 -201 1582 11 25 2 5 35 2 104 3 8 -7165 86 11 -195 1582 11 23 2 5 35 2 102 3 6 -7166 86 12 -189 1582 11 26 2 5 35 2 105 3 9 -7167 86 13 -183 1582 11 28 2 5 35 2 107 3 11 -7168 86 14 -177 1582 15 29 2 5 36 2 108 3 12 -7169 86 15 -171 1582 15 27 2 5 36 2 106 3 10 -7170 86 16 -165 1582 15 25 2 5 36 2 104 3 8 -7171 86 17 -159 1582 15 28 2 5 36 2 107 3 11 -7172 86 18 -153 1582 15 30 2 5 36 2 109 3 13 -7173 86 19 -147 1582 19 29 2 5 37 2 108 3 12 -7174 86 20 -141 1582 19 27 2 5 37 2 106 3 10 -7175 86 21 -135 1582 19 25 2 5 37 2 104 3 8 -7176 86 22 -129 1582 19 26 2 5 37 2 105 3 9 -7177 86 23 -123 1582 19 28 2 5 37 2 107 3 11 -7178 86 24 -117 1582 23 27 2 5 38 2 106 3 10 -7179 86 25 -111 1582 23 25 2 5 38 2 104 3 8 -7180 86 26 -105 1582 23 26 2 5 38 2 105 3 9 -7181 86 27 -99 1582 23 28 2 5 38 2 107 3 11 -7182 86 28 -93 1582 23 30 2 5 38 2 109 3 13 -7183 86 29 -87 1582 27 25 2 5 39 2 104 3 8 -7184 86 30 -81 1582 27 23 2 5 39 2 102 3 6 -7185 86 31 -75 1582 27 24 2 5 39 2 103 3 7 -7186 86 32 -69 1582 27 26 2 5 39 2 105 3 9 -7187 86 33 -63 1582 27 28 2 5 39 2 107 3 11 -7188 86 34 -57 1582 31 29 2 5 40 2 108 3 12 -7189 86 35 -51 1582 31 27 2 5 40 2 106 3 10 -7190 86 36 -45 1582 31 26 2 5 40 2 105 3 9 -7191 86 37 -39 1582 31 28 2 5 40 2 107 3 11 -7192 86 38 -33 1582 31 30 2 5 40 2 109 3 13 -7193 86 39 -27 1582 35 29 2 5 41 2 108 3 12 -7194 86 40 -21 1582 35 27 2 5 41 2 106 3 10 -7195 86 41 -15 1582 35 26 2 5 41 2 105 3 9 -7196 86 42 -9 1582 35 28 2 5 41 2 107 3 11 -7197 86 43 -3 1582 35 30 2 5 41 2 109 3 13 -7198 86 44 3 1582 39 29 2 5 42 2 108 3 12 -7199 86 45 9 1582 39 27 2 5 42 2 106 3 10 -7200 86 46 15 1582 39 25 2 5 42 2 104 3 8 -7201 86 47 21 1582 39 28 2 5 42 2 107 3 11 -7202 86 48 27 1582 39 30 2 5 42 2 109 3 13 -7203 86 49 33 1582 43 29 2 5 43 2 108 3 12 -7204 86 50 39 1582 43 27 2 5 43 2 106 3 10 -7205 86 51 45 1582 43 25 2 5 43 2 104 3 8 -7206 86 52 51 1582 43 28 2 5 43 2 107 3 11 -7207 86 53 57 1582 43 30 2 5 43 2 109 3 13 -7208 86 54 63 1582 47 27 2 5 44 2 106 3 10 -7209 86 55 69 1582 47 25 2 5 44 2 104 3 8 -7210 86 56 75 1582 47 23 2 5 44 2 102 3 6 -7211 86 57 81 1582 47 24 2 5 44 2 103 3 7 -7212 86 58 87 1582 47 26 2 5 44 2 105 3 9 -7213 86 59 93 1582 51 29 2 5 45 2 108 3 12 -7214 86 60 99 1582 51 27 2 5 45 2 106 3 10 -7215 86 61 105 1582 51 25 2 5 45 2 104 3 8 -7216 86 62 111 1582 51 26 2 5 45 2 105 3 9 -7217 86 63 117 1582 51 28 2 5 45 2 107 3 11 -7218 86 64 123 1582 55 27 2 5 46 2 106 3 10 -7219 86 65 129 1582 55 25 2 5 46 2 104 3 8 -7220 86 66 135 1582 55 26 2 5 46 2 105 3 9 -7221 86 67 141 1582 55 28 2 5 46 2 107 3 11 -7222 86 68 147 1582 55 30 2 5 46 2 109 3 13 -7223 86 69 153 1582 59 29 2 5 47 2 108 3 12 -7224 86 70 159 1582 59 27 2 5 47 2 106 3 10 -7225 86 71 165 1582 59 26 2 5 47 2 105 3 9 -7226 86 72 171 1582 59 28 2 5 47 2 107 3 11 -7227 86 73 177 1582 59 30 2 5 47 2 109 3 13 -7228 86 74 183 1582 63 27 2 5 48 2 106 3 10 -7229 86 75 189 1582 63 25 2 5 48 2 104 3 8 -7230 86 76 195 1582 63 24 2 5 48 2 103 3 7 -7231 86 77 201 1582 63 26 2 5 48 2 105 3 9 -7232 86 78 207 1582 63 28 2 5 48 2 107 3 11 -7233 86 79 213 1582 67 27 2 5 49 2 106 3 10 -7234 86 80 219 1582 67 25 2 5 49 2 104 3 8 -7235 86 81 225 1582 67 28 2 5 49 2 107 3 11 -7236 86 82 231 1582 67 30 2 5 49 2 109 3 13 -7237 86 83 237 1582 71 29 2 5 50 2 108 3 12 -7238 86 84 243 1582 71 27 2 5 50 2 106 3 10 -7239 86 85 249 1582 71 25 2 5 50 2 104 3 8 -7240 86 86 255 1582 71 26 2 5 50 2 105 3 9 -7241 86 87 261 1582 71 28 2 5 50 2 107 3 11 -7242 87 0 -267 1592 3 33 2 5 33 2 112 3 16 -7243 87 1 -261 1592 3 31 2 5 33 2 110 3 14 -7244 87 2 -255 1592 3 29 2 5 33 2 108 3 12 -7245 87 3 -249 1592 3 32 2 5 33 2 111 3 15 -7246 87 4 -243 1592 3 34 2 5 33 2 113 3 17 -7247 87 5 -237 1592 7 33 2 5 34 2 112 3 16 -7248 87 6 -231 1592 7 31 2 5 34 2 110 3 14 -7249 87 7 -225 1592 7 30 2 5 34 2 109 3 13 -7250 87 8 -219 1592 7 32 2 5 34 2 111 3 15 -7251 87 9 -213 1592 7 34 2 5 34 2 113 3 17 -7252 87 10 -207 1592 11 31 2 5 35 2 110 3 14 -7253 87 11 -201 1592 11 29 2 5 35 2 108 3 12 -7254 87 12 -195 1592 11 30 2 5 35 2 109 3 13 -7255 87 13 -189 1592 11 32 2 5 35 2 111 3 15 -7256 87 14 -183 1592 11 34 2 5 35 2 113 3 17 -7257 87 15 -177 1592 15 33 2 5 36 2 112 3 16 -7258 87 16 -171 1592 15 31 2 5 36 2 110 3 14 -7259 87 17 -165 1592 15 32 2 5 36 2 111 3 15 -7260 87 18 -159 1592 15 34 2 5 36 2 113 3 17 -7261 87 19 -153 1592 15 36 2 5 36 2 115 3 19 -7262 87 20 -147 1592 19 33 2 5 37 2 112 3 16 -7263 87 21 -141 1592 19 31 2 5 37 2 110 3 14 -7264 87 22 -135 1592 19 30 2 5 37 2 109 3 13 -7265 87 23 -129 1592 19 32 2 5 37 2 111 3 15 -7266 87 24 -123 1592 19 34 2 5 37 2 113 3 17 -7267 87 25 -117 1592 23 33 2 5 38 2 112 3 16 -7268 87 26 -111 1592 23 31 2 5 38 2 110 3 14 -7269 87 27 -105 1592 23 29 2 5 38 2 108 3 12 -7270 87 28 -99 1592 23 32 2 5 38 2 111 3 15 -7271 87 29 -93 1592 23 34 2 5 38 2 113 3 17 -7272 87 30 -87 1592 27 29 2 5 39 2 108 3 12 -7273 87 31 -81 1592 27 27 2 5 39 2 106 3 10 -7274 87 32 -75 1592 27 30 2 5 39 2 109 3 13 -7275 87 33 -69 1592 27 32 2 5 39 2 111 3 15 -7276 87 34 -63 1592 27 34 2 5 39 2 113 3 17 -7277 87 35 -57 1592 31 35 2 5 40 2 114 3 18 -7278 87 36 -51 1592 31 33 2 5 40 2 112 3 16 -7279 87 37 -45 1592 31 31 2 5 40 2 110 3 14 -7280 87 38 -39 1592 31 32 2 5 40 2 111 3 15 -7281 87 39 -33 1592 31 34 2 5 40 2 113 3 17 -7282 87 40 -27 1592 35 35 2 5 41 2 114 3 18 -7283 87 41 -21 1592 35 33 2 5 41 2 112 3 16 -7284 87 42 -15 1592 35 31 2 5 41 2 110 3 14 -7285 87 43 -9 1592 35 32 2 5 41 2 111 3 15 -7286 87 44 -3 1592 35 34 2 5 41 2 113 3 17 -7287 87 45 3 1592 39 33 2 5 42 2 112 3 16 -7288 87 46 9 1592 39 31 2 5 42 2 110 3 14 -7289 87 47 15 1592 39 32 2 5 42 2 111 3 15 -7290 87 48 21 1592 39 34 2 5 42 2 113 3 17 -7291 87 49 27 1592 39 36 2 5 42 2 115 3 19 -7292 87 50 33 1592 43 33 2 5 43 2 112 3 16 -7293 87 51 39 1592 43 31 2 5 43 2 110 3 14 -7294 87 52 45 1592 43 32 2 5 43 2 111 3 15 -7295 87 53 51 1592 43 34 2 5 43 2 113 3 17 -7296 87 54 57 1592 43 36 2 5 43 2 115 3 19 -7297 87 55 63 1592 47 33 2 5 44 2 112 3 16 -7298 87 56 69 1592 47 31 2 5 44 2 110 3 14 -7299 87 57 75 1592 47 29 2 5 44 2 108 3 12 -7300 87 58 81 1592 47 28 2 5 44 2 107 3 11 -7301 87 59 87 1592 47 30 2 5 44 2 109 3 13 -7302 87 60 93 1592 51 33 2 5 45 2 112 3 16 -7303 87 61 99 1592 51 31 2 5 45 2 110 3 14 -7304 87 62 105 1592 51 30 2 5 45 2 109 3 13 -7305 87 63 111 1592 51 32 2 5 45 2 111 3 15 -7306 87 64 117 1592 51 34 2 5 45 2 113 3 17 -7307 87 65 123 1592 55 33 2 5 46 2 112 3 16 -7308 87 66 129 1592 55 31 2 5 46 2 110 3 14 -7309 87 67 135 1592 55 29 2 5 46 2 108 3 12 -7310 87 68 141 1592 55 32 2 5 46 2 111 3 15 -7311 87 69 147 1592 55 34 2 5 46 2 113 3 17 -7312 87 70 153 1592 59 35 2 5 47 2 114 3 18 -7313 87 71 159 1592 59 33 2 5 47 2 112 3 16 -7314 87 72 165 1592 59 31 2 5 47 2 110 3 14 -7315 87 73 171 1592 59 32 2 5 47 2 111 3 15 -7316 87 74 177 1592 59 34 2 5 47 2 113 3 17 -7317 87 75 183 1592 63 33 2 5 48 2 112 3 16 -7318 87 76 189 1592 63 31 2 5 48 2 110 3 14 -7319 87 77 195 1592 63 29 2 5 48 2 108 3 12 -7320 87 78 201 1592 63 30 2 5 48 2 109 3 13 -7321 87 79 207 1592 63 32 2 5 48 2 111 3 15 -7322 87 80 213 1592 67 33 2 5 49 2 112 3 16 -7323 87 81 219 1592 67 31 2 5 49 2 110 3 14 -7324 87 82 225 1592 67 29 2 5 49 2 108 3 12 -7325 87 83 231 1592 67 32 2 5 49 2 111 3 15 -7326 87 84 237 1592 67 34 2 5 49 2 113 3 17 -7327 87 85 243 1592 71 33 2 5 50 2 112 3 16 -7328 87 86 249 1592 71 31 2 5 50 2 110 3 14 -7329 87 87 255 1592 71 30 2 5 50 2 109 3 13 -7330 87 88 261 1592 71 32 2 5 50 2 111 3 15 -7331 87 89 267 1592 71 34 2 5 50 2 113 3 17 -7332 88 0 -267 1602 3 37 2 5 33 2 116 3 20 -7333 88 1 -261 1602 3 35 2 5 33 2 114 3 18 -7334 88 2 -255 1602 3 36 2 5 33 2 115 3 19 -7335 88 3 -249 1602 3 38 2 5 33 2 117 3 21 -7336 88 4 -243 1602 3 40 2 5 33 2 119 3 23 -7337 88 5 -237 1602 7 37 2 5 34 2 116 3 20 -7338 88 6 -231 1602 7 35 2 5 34 2 114 3 18 -7339 88 7 -225 1602 7 36 2 5 34 2 115 3 19 -7340 88 8 -219 1602 7 38 2 5 34 2 117 3 21 -7341 88 9 -213 1602 7 40 2 5 34 2 119 3 23 -7342 88 10 -207 1602 11 35 2 5 35 2 114 3 18 -7343 88 11 -201 1602 11 33 2 5 35 2 112 3 16 -7344 88 12 -195 1602 11 36 2 5 35 2 115 3 19 -7345 88 13 -189 1602 11 38 2 5 35 2 117 3 21 -7346 88 14 -183 1602 11 40 2 5 35 2 119 3 23 -7347 88 15 -177 1602 15 39 2 5 36 2 118 3 22 -7348 88 16 -171 1602 15 37 2 5 36 2 116 3 20 -7349 88 17 -165 1602 15 35 2 5 36 2 114 3 18 -7350 88 18 -159 1602 15 38 2 5 36 2 117 3 21 -7351 88 19 -153 1602 15 40 2 5 36 2 119 3 23 -7352 88 20 -147 1602 19 37 2 5 37 2 116 3 20 -7353 88 21 -141 1602 19 35 2 5 37 2 114 3 18 -7354 88 22 -135 1602 19 36 2 5 37 2 115 3 19 -7355 88 23 -129 1602 19 38 2 5 37 2 117 3 21 -7356 88 24 -123 1602 19 40 2 5 37 2 119 3 23 -7357 88 25 -117 1602 23 37 2 5 38 2 116 3 20 -7358 88 26 -111 1602 23 35 2 5 38 2 114 3 18 -7359 88 27 -105 1602 23 36 2 5 38 2 115 3 19 -7360 88 28 -99 1602 23 38 2 5 38 2 117 3 21 -7361 88 29 -93 1602 23 40 2 5 38 2 119 3 23 -7362 88 30 -87 1602 27 33 2 5 39 2 112 3 16 -7363 88 31 -81 1602 27 31 2 5 39 2 110 3 14 -7364 88 32 -75 1602 27 36 2 5 39 2 115 3 19 -7365 88 33 -69 1602 27 38 2 5 39 2 117 3 21 -7366 88 34 -63 1602 27 40 2 5 39 2 119 3 23 -7367 88 35 -57 1602 31 39 2 5 40 2 118 3 22 -7368 88 36 -51 1602 31 37 2 5 40 2 116 3 20 -7369 88 37 -45 1602 31 36 2 5 40 2 115 3 19 -7370 88 38 -39 1602 31 38 2 5 40 2 117 3 21 -7371 88 39 -33 1602 31 40 2 5 40 2 119 3 23 -7372 88 40 -27 1602 35 39 2 5 41 2 118 3 22 -7373 88 41 -21 1602 35 37 2 5 41 2 116 3 20 -7374 88 42 -15 1602 35 36 2 5 41 2 115 3 19 -7375 88 43 -9 1602 35 38 2 5 41 2 117 3 21 -7376 88 44 -3 1602 35 40 2 5 41 2 119 3 23 -7377 88 45 3 1602 39 39 2 5 42 2 118 3 22 -7378 88 46 9 1602 39 37 2 5 42 2 116 3 20 -7379 88 47 15 1602 39 35 2 5 42 2 114 3 18 -7380 88 48 21 1602 39 38 2 5 42 2 117 3 21 -7381 88 49 27 1602 39 40 2 5 42 2 119 3 23 -7382 88 50 33 1602 43 39 2 5 43 2 118 3 22 -7383 88 51 39 1602 43 37 2 5 43 2 116 3 20 -7384 88 52 45 1602 43 35 2 5 43 2 114 3 18 -7385 88 53 51 1602 43 38 2 5 43 2 117 3 21 -7386 88 54 57 1602 43 40 2 5 43 2 119 3 23 -7387 88 55 63 1602 47 39 2 5 44 2 118 3 22 -7388 88 56 69 1602 47 37 2 5 44 2 116 3 20 -7389 88 57 75 1602 47 35 2 5 44 2 114 3 18 -7390 88 58 81 1602 47 32 2 5 44 2 111 3 15 -7391 88 59 87 1602 47 34 2 5 44 2 113 3 17 -7392 88 60 93 1602 51 39 2 5 45 2 118 3 22 -7393 88 61 99 1602 51 37 2 5 45 2 116 3 20 -7394 88 62 105 1602 51 35 2 5 45 2 114 3 18 -7395 88 63 111 1602 51 36 2 5 45 2 115 3 19 -7396 88 64 117 1602 51 38 2 5 45 2 117 3 21 -7397 88 65 123 1602 55 39 2 5 46 2 118 3 22 -7398 88 66 129 1602 55 37 2 5 46 2 116 3 20 -7399 88 67 135 1602 55 35 2 5 46 2 114 3 18 -7400 88 68 141 1602 55 36 2 5 46 2 115 3 19 -7401 88 69 147 1602 55 38 2 5 46 2 117 3 21 -7402 88 70 153 1602 59 39 2 5 47 2 118 3 22 -7403 88 71 159 1602 59 37 2 5 47 2 116 3 20 -7404 88 72 165 1602 59 36 2 5 47 2 115 3 19 -7405 88 73 171 1602 59 38 2 5 47 2 117 3 21 -7406 88 74 177 1602 59 40 2 5 47 2 119 3 23 -7407 88 75 183 1602 63 39 2 5 48 2 118 3 22 -7408 88 76 189 1602 63 37 2 5 48 2 116 3 20 -7409 88 77 195 1602 63 35 2 5 48 2 114 3 18 -7410 88 78 201 1602 63 34 2 5 48 2 113 3 17 -7411 88 79 207 1602 63 36 2 5 48 2 115 3 19 -7412 88 80 213 1602 67 39 2 5 49 2 118 3 22 -7413 88 81 219 1602 67 37 2 5 49 2 116 3 20 -7414 88 82 225 1602 67 35 2 5 49 2 114 3 18 -7415 88 83 231 1602 67 36 2 5 49 2 115 3 19 -7416 88 84 237 1602 67 38 2 5 49 2 117 3 21 -7417 88 85 243 1602 71 39 2 5 50 2 118 3 22 -7418 88 86 249 1602 71 37 2 5 50 2 116 3 20 -7419 88 87 255 1602 71 35 2 5 50 2 114 3 18 -7420 88 88 261 1602 71 36 2 5 50 2 115 3 19 -7421 88 89 267 1602 71 38 2 5 50 2 117 3 21 -7422 89 0 -267 1612 3 39 2 5 33 2 118 3 22 -7423 89 1 -261 1612 4 3 2 5 33 3 122 3 26 -7424 89 2 -255 1612 4 1 2 5 33 3 120 3 24 -7425 89 3 -249 1612 4 2 2 5 33 3 121 3 25 -7426 89 4 -243 1612 4 4 2 5 33 3 123 3 27 -7427 89 5 -237 1612 7 39 2 5 34 2 118 3 22 -7428 89 6 -231 1612 8 3 2 5 34 3 122 3 26 -7429 89 7 -225 1612 8 1 2 5 34 3 120 3 24 -7430 89 8 -219 1612 8 2 2 5 34 3 121 3 25 -7431 89 9 -213 1612 8 4 2 5 34 3 123 3 27 -7432 89 10 -207 1612 11 39 2 5 35 2 118 3 22 -7433 89 11 -201 1612 11 37 2 5 35 2 116 3 20 -7434 89 12 -195 1612 12 1 2 5 35 3 120 3 24 -7435 89 13 -189 1612 12 2 2 5 35 3 121 3 25 -7436 89 14 -183 1612 12 4 2 5 35 3 123 3 27 -7437 89 15 -177 1612 16 3 2 5 36 3 122 3 26 -7438 89 16 -171 1612 16 1 2 5 36 3 120 3 24 -7439 89 17 -165 1612 16 2 2 5 36 3 121 3 25 -7440 89 18 -159 1612 16 4 2 5 36 3 123 3 27 -7441 89 19 -153 1612 16 6 2 5 36 3 125 3 29 -7442 89 20 -147 1612 19 39 2 5 37 2 118 3 22 -7443 89 21 -141 1612 20 3 2 5 37 3 122 3 26 -7444 89 22 -135 1612 20 1 2 5 37 3 120 3 24 -7445 89 23 -129 1612 20 2 2 5 37 3 121 3 25 -7446 89 24 -123 1612 20 4 2 5 37 3 123 3 27 -7447 89 25 -117 1612 23 39 2 5 38 2 118 3 22 -7448 89 26 -111 1612 24 3 2 5 38 3 122 3 26 -7449 89 27 -105 1612 24 1 2 5 38 3 120 3 24 -7450 89 28 -99 1612 24 2 2 5 38 3 121 3 25 -7451 89 29 -93 1612 24 4 2 5 38 3 123 3 27 -7452 89 30 -87 1612 27 39 2 5 39 2 118 3 22 -7453 89 31 -81 1612 27 37 2 5 39 2 116 3 20 -7454 89 32 -75 1612 27 35 2 5 39 2 114 3 18 -7455 89 33 -69 1612 28 2 2 5 39 3 121 3 25 -7456 89 34 -63 1612 28 4 2 5 39 3 123 3 27 -7457 89 35 -57 1612 32 5 2 5 40 3 124 3 28 -7458 89 36 -51 1612 32 3 2 5 40 3 122 3 26 -7459 89 37 -45 1612 32 1 2 5 40 3 120 3 24 -7460 89 38 -39 1612 32 2 2 5 40 3 121 3 25 -7461 89 39 -33 1612 32 4 2 5 40 3 123 3 27 -7462 89 40 -27 1612 36 5 2 5 41 3 124 3 28 -7463 89 41 -21 1612 36 3 2 5 41 3 122 3 26 -7464 89 42 -15 1612 36 1 2 5 41 3 120 3 24 -7465 89 43 -9 1612 36 2 2 5 41 3 121 3 25 -7466 89 44 -3 1612 36 4 2 5 41 3 123 3 27 -7467 89 45 3 1612 40 3 2 5 42 3 122 3 26 -7468 89 46 9 1612 40 1 2 5 42 3 120 3 24 -7469 89 47 15 1612 40 2 2 5 42 3 121 3 25 -7470 89 48 21 1612 40 4 2 5 42 3 123 3 27 -7471 89 49 27 1612 40 6 2 5 42 3 125 3 29 -7472 89 50 33 1612 44 3 2 5 43 3 122 3 26 -7473 89 51 39 1612 44 1 2 5 43 3 120 3 24 -7474 89 52 45 1612 44 2 2 5 43 3 121 3 25 -7475 89 53 51 1612 44 4 2 5 43 3 123 3 27 -7476 89 54 57 1612 44 6 2 5 43 3 125 3 29 -7477 89 55 63 1612 48 3 2 5 44 3 122 3 26 -7478 89 56 69 1612 48 1 2 5 44 3 120 3 24 -7479 89 57 75 1612 47 36 2 5 44 2 115 3 19 -7480 89 58 81 1612 47 38 2 5 44 2 117 3 21 -7481 89 59 87 1612 47 40 2 5 44 2 119 3 23 -7482 89 60 93 1612 52 3 2 5 45 3 122 3 26 -7483 89 61 99 1612 52 1 2 5 45 3 120 3 24 -7484 89 62 105 1612 52 2 2 5 45 3 121 3 25 -7485 89 63 111 1612 52 4 2 5 45 3 123 3 27 -7486 89 64 117 1612 51 40 2 5 45 2 119 3 23 -7487 89 65 123 1612 56 3 2 5 46 3 122 3 26 -7488 89 66 129 1612 56 1 2 5 46 3 120 3 24 -7489 89 67 135 1612 56 2 2 5 46 3 121 3 25 -7490 89 68 141 1612 56 4 2 5 46 3 123 3 27 -7491 89 69 147 1612 55 40 2 5 46 2 119 3 23 -7492 89 70 153 1612 60 5 2 5 47 3 124 3 28 -7493 89 71 159 1612 60 3 2 5 47 3 122 3 26 -7494 89 72 165 1612 60 1 2 5 47 3 120 3 24 -7495 89 73 171 1612 60 2 2 5 47 3 121 3 25 -7496 89 74 177 1612 60 4 2 5 47 3 123 3 27 -7497 89 75 183 1612 64 3 2 5 48 3 122 3 26 -7498 89 76 189 1612 64 1 2 5 48 3 120 3 24 -7499 89 77 195 1612 64 2 2 5 48 3 121 3 25 -7500 89 78 201 1612 63 38 2 5 48 2 117 3 21 -7501 89 79 207 1612 63 40 2 5 48 2 119 3 23 -7502 89 80 213 1612 68 3 2 5 49 3 122 3 26 -7503 89 81 219 1612 68 1 2 5 49 3 120 3 24 -7504 89 82 225 1612 68 2 2 5 49 3 121 3 25 -7505 89 83 231 1612 68 4 2 5 49 3 123 3 27 -7506 89 84 237 1612 67 40 2 5 49 2 119 3 23 -7507 89 85 243 1612 72 3 2 5 50 3 122 3 26 -7508 89 86 249 1612 72 1 2 5 50 3 120 3 24 -7509 89 87 255 1612 72 2 2 5 50 3 121 3 25 -7510 89 88 261 1612 72 4 2 5 50 3 123 3 27 -7511 89 89 267 1612 71 40 2 5 50 2 119 3 23 -7512 90 0 -267 1622 4 9 2 5 33 3 128 4 0 -7513 90 1 -261 1622 4 7 2 5 33 3 126 3 30 -7514 90 2 -255 1622 4 5 2 5 33 3 124 3 28 -7515 90 3 -249 1622 4 6 2 5 33 3 125 3 29 -7516 90 4 -243 1622 4 8 2 5 33 3 127 3 31 -7517 90 5 -237 1622 8 7 2 5 34 3 126 3 30 -7518 90 6 -231 1622 8 5 2 5 34 3 124 3 28 -7519 90 7 -225 1622 8 6 2 5 34 3 125 3 29 -7520 90 8 -219 1622 8 8 2 5 34 3 127 3 31 -7521 90 9 -213 1622 8 10 2 5 34 3 129 4 1 -7522 90 10 -207 1622 12 7 2 5 35 3 126 3 30 -7523 90 11 -201 1622 12 5 2 5 35 3 124 3 28 -7524 90 12 -195 1622 12 3 2 5 35 3 122 3 26 -7525 90 13 -189 1622 12 6 2 5 35 3 125 3 29 -7526 90 14 -183 1622 12 8 2 5 35 3 127 3 31 -7527 90 15 -177 1622 16 9 2 5 36 3 128 4 0 -7528 90 16 -171 1622 16 7 2 5 36 3 126 3 30 -7529 90 17 -165 1622 16 5 2 5 36 3 124 3 28 -7530 90 18 -159 1622 16 8 2 5 36 3 127 3 31 -7531 90 19 -153 1622 16 10 2 5 36 3 129 4 1 -7532 90 20 -147 1622 20 9 2 5 37 3 128 4 0 -7533 90 21 -141 1622 20 7 2 5 37 3 126 3 30 -7534 90 22 -135 1622 20 5 2 5 37 3 124 3 28 -7535 90 23 -129 1622 20 6 2 5 37 3 125 3 29 -7536 90 24 -123 1622 20 8 2 5 37 3 127 3 31 -7537 90 25 -117 1622 24 9 2 5 38 3 128 4 0 -7538 90 26 -111 1622 24 7 2 5 38 3 126 3 30 -7539 90 27 -105 1622 24 5 2 5 38 3 124 3 28 -7540 90 28 -99 1622 24 6 2 5 38 3 125 3 29 -7541 90 29 -93 1622 24 8 2 5 38 3 127 3 31 -7542 90 30 -87 1622 28 5 2 5 39 3 124 3 28 -7543 90 31 -81 1622 28 3 2 5 39 3 122 3 26 -7544 90 32 -75 1622 28 1 2 5 39 3 120 3 24 -7545 90 33 -69 1622 28 6 2 5 39 3 125 3 29 -7546 90 34 -63 1622 28 8 2 5 39 3 127 3 31 -7547 90 35 -57 1622 32 9 2 5 40 3 128 4 0 -7548 90 36 -51 1622 32 7 2 5 40 3 126 3 30 -7549 90 37 -45 1622 32 6 2 5 40 3 125 3 29 -7550 90 38 -39 1622 32 8 2 5 40 3 127 3 31 -7551 90 39 -33 1622 32 10 2 5 40 3 129 4 1 -7552 90 40 -27 1622 36 9 2 5 41 3 128 4 0 -7553 90 41 -21 1622 36 7 2 5 41 3 126 3 30 -7554 90 42 -15 1622 36 6 2 5 41 3 125 3 29 -7555 90 43 -9 1622 36 8 2 5 41 3 127 3 31 -7556 90 44 -3 1622 36 10 2 5 41 3 129 4 1 -7557 90 45 3 1622 40 9 2 5 42 3 128 4 0 -7558 90 46 9 1622 40 7 2 5 42 3 126 3 30 -7559 90 47 15 1622 40 5 2 5 42 3 124 3 28 -7560 90 48 21 1622 40 8 2 5 42 3 127 3 31 -7561 90 49 27 1622 40 10 2 5 42 3 129 4 1 -7562 90 50 33 1622 44 9 2 5 43 3 128 4 0 -7563 90 51 39 1622 44 7 2 5 43 3 126 3 30 -7564 90 52 45 1622 44 5 2 5 43 3 124 3 28 -7565 90 53 51 1622 44 8 2 5 43 3 127 3 31 -7566 90 54 57 1622 44 10 2 5 43 3 129 4 1 -7567 90 55 63 1622 48 7 2 5 44 3 126 3 30 -7568 90 56 69 1622 48 5 2 5 44 3 124 3 28 -7569 90 57 75 1622 48 2 2 5 44 3 121 3 25 -7570 90 58 81 1622 48 4 2 5 44 3 123 3 27 -7571 90 59 87 1622 48 6 2 5 44 3 125 3 29 -7572 90 60 93 1622 52 7 2 5 45 3 126 3 30 -7573 90 61 99 1622 52 5 2 5 45 3 124 3 28 -7574 90 62 105 1622 52 6 2 5 45 3 125 3 29 -7575 90 63 111 1622 52 8 2 5 45 3 127 3 31 -7576 90 64 117 1622 52 10 2 5 45 3 129 4 1 -7577 90 65 123 1622 56 7 2 5 46 3 126 3 30 -7578 90 66 129 1622 56 5 2 5 46 3 124 3 28 -7579 90 67 135 1622 56 6 2 5 46 3 125 3 29 -7580 90 68 141 1622 56 8 2 5 46 3 127 3 31 -7581 90 69 147 1622 56 10 2 5 46 3 129 4 1 -7582 90 70 153 1622 60 9 2 5 47 3 128 4 0 -7583 90 71 159 1622 60 7 2 5 47 3 126 3 30 -7584 90 72 165 1622 60 6 2 5 47 3 125 3 29 -7585 90 73 171 1622 60 8 2 5 47 3 127 3 31 -7586 90 74 177 1622 60 10 2 5 47 3 129 4 1 -7587 90 75 183 1622 64 7 2 5 48 3 126 3 30 -7588 90 76 189 1622 64 5 2 5 48 3 124 3 28 -7589 90 77 195 1622 64 4 2 5 48 3 123 3 27 -7590 90 78 201 1622 64 6 2 5 48 3 125 3 29 -7591 90 79 207 1622 64 8 2 5 48 3 127 3 31 -7592 90 80 213 1622 68 9 2 5 49 3 128 4 0 -7593 90 81 219 1622 68 7 2 5 49 3 126 3 30 -7594 90 82 225 1622 68 5 2 5 49 3 124 3 28 -7595 90 83 231 1622 68 6 2 5 49 3 125 3 29 -7596 90 84 237 1622 68 8 2 5 49 3 127 3 31 -7597 90 85 243 1622 72 7 2 5 50 3 126 3 30 -7598 90 86 249 1622 72 5 2 5 50 3 124 3 28 -7599 90 87 255 1622 72 6 2 5 50 3 125 3 29 -7600 90 88 261 1622 72 8 2 5 50 3 127 3 31 -7601 90 89 267 1622 72 10 2 5 50 3 129 4 1 -7602 91 0 -273 1632 4 13 2 5 33 3 132 4 4 -7603 91 1 -267 1632 4 11 2 5 33 3 130 4 2 -7604 91 2 -261 1632 4 10 2 5 33 3 129 4 1 -7605 91 3 -255 1632 4 12 2 5 33 3 131 4 3 -7606 91 4 -249 1632 4 14 2 5 33 3 133 4 5 -7607 91 5 -243 1632 8 13 2 5 34 3 132 4 4 -7608 91 6 -237 1632 8 11 2 5 34 3 130 4 2 -7609 91 7 -231 1632 8 9 2 5 34 3 128 4 0 -7610 91 8 -225 1632 8 12 2 5 34 3 131 4 3 -7611 91 9 -219 1632 8 14 2 5 34 3 133 4 5 -7612 91 10 -213 1632 12 13 2 5 35 3 132 4 4 -7613 91 11 -207 1632 12 11 2 5 35 3 130 4 2 -7614 91 12 -201 1632 12 9 2 5 35 3 128 4 0 -7615 91 13 -195 1632 12 10 2 5 35 3 129 4 1 -7616 91 14 -189 1632 12 12 2 5 35 3 131 4 3 -7617 91 15 -183 1632 12 14 2 5 35 3 133 4 5 -7618 91 16 -177 1632 16 13 2 5 36 3 132 4 4 -7619 91 17 -171 1632 16 11 2 5 36 3 130 4 2 -7620 91 18 -165 1632 16 12 2 5 36 3 131 4 3 -7621 91 19 -159 1632 16 14 2 5 36 3 133 4 5 -7622 91 20 -153 1632 16 16 2 5 36 3 135 4 7 -7623 91 21 -147 1632 20 13 2 5 37 3 132 4 4 -7624 91 22 -141 1632 20 11 2 5 37 3 130 4 2 -7625 91 23 -135 1632 20 10 2 5 37 3 129 4 1 -7626 91 24 -129 1632 20 12 2 5 37 3 131 4 3 -7627 91 25 -123 1632 20 14 2 5 37 3 133 4 5 -7628 91 26 -117 1632 24 13 2 5 38 3 132 4 4 -7629 91 27 -111 1632 24 11 2 5 38 3 130 4 2 -7630 91 28 -105 1632 24 10 2 5 38 3 129 4 1 -7631 91 29 -99 1632 24 12 2 5 38 3 131 4 3 -7632 91 30 -93 1632 24 14 2 5 38 3 133 4 5 -7633 91 31 -87 1632 28 11 2 5 39 3 130 4 2 -7634 91 32 -81 1632 28 9 2 5 39 3 128 4 0 -7635 91 33 -75 1632 28 7 2 5 39 3 126 3 30 -7636 91 34 -69 1632 28 10 2 5 39 3 129 4 1 -7637 91 35 -63 1632 28 12 2 5 39 3 131 4 3 -7638 91 36 -57 1632 32 15 2 5 40 3 134 4 6 -7639 91 37 -51 1632 32 13 2 5 40 3 132 4 4 -7640 91 38 -45 1632 32 11 2 5 40 3 130 4 2 -7641 91 39 -39 1632 32 12 2 5 40 3 131 4 3 -7642 91 40 -33 1632 32 14 2 5 40 3 133 4 5 -7643 91 41 -27 1632 36 15 2 5 41 3 134 4 6 -7644 91 42 -21 1632 36 13 2 5 41 3 132 4 4 -7645 91 43 -15 1632 36 11 2 5 41 3 130 4 2 -7646 91 44 -9 1632 36 12 2 5 41 3 131 4 3 -7647 91 45 -3 1632 36 14 2 5 41 3 133 4 5 -7648 91 46 3 1632 40 13 2 5 42 3 132 4 4 -7649 91 47 9 1632 40 11 2 5 42 3 130 4 2 -7650 91 48 15 1632 40 12 2 5 42 3 131 4 3 -7651 91 49 21 1632 40 14 2 5 42 3 133 4 5 -7652 91 50 27 1632 40 16 2 5 42 3 135 4 7 -7653 91 51 33 1632 44 13 2 5 43 3 132 4 4 -7654 91 52 39 1632 44 11 2 5 43 3 130 4 2 -7655 91 53 45 1632 44 12 2 5 43 3 131 4 3 -7656 91 54 51 1632 44 14 2 5 43 3 133 4 5 -7657 91 55 57 1632 44 16 2 5 43 3 135 4 7 -7658 91 56 63 1632 48 11 2 5 44 3 130 4 2 -7659 91 57 69 1632 48 9 2 5 44 3 128 4 0 -7660 91 58 75 1632 48 8 2 5 44 3 127 3 31 -7661 91 59 81 1632 48 10 2 5 44 3 129 4 1 -7662 91 60 87 1632 48 12 2 5 44 3 131 4 3 -7663 91 61 93 1632 52 13 2 5 45 3 132 4 4 -7664 91 62 99 1632 52 11 2 5 45 3 130 4 2 -7665 91 63 105 1632 52 9 2 5 45 3 128 4 0 -7666 91 64 111 1632 52 12 2 5 45 3 131 4 3 -7667 91 65 117 1632 52 14 2 5 45 3 133 4 5 -7668 91 66 123 1632 56 13 2 5 46 3 132 4 4 -7669 91 67 129 1632 56 11 2 5 46 3 130 4 2 -7670 91 68 135 1632 56 9 2 5 46 3 128 4 0 -7671 91 69 141 1632 56 12 2 5 46 3 131 4 3 -7672 91 70 147 1632 56 14 2 5 46 3 133 4 5 -7673 91 71 153 1632 60 15 2 5 47 3 134 4 6 -7674 91 72 159 1632 60 13 2 5 47 3 132 4 4 -7675 91 73 165 1632 60 11 2 5 47 3 130 4 2 -7676 91 74 171 1632 60 12 2 5 47 3 131 4 3 -7677 91 75 177 1632 60 14 2 5 47 3 133 4 5 -7678 91 76 183 1632 64 13 2 5 48 3 132 4 4 -7679 91 77 189 1632 64 11 2 5 48 3 130 4 2 -7680 91 78 195 1632 64 9 2 5 48 3 128 4 0 -7681 91 79 201 1632 64 10 2 5 48 3 129 4 1 -7682 91 80 207 1632 64 12 2 5 48 3 131 4 3 -7683 91 81 213 1632 64 14 2 5 48 3 133 4 5 -7684 91 82 219 1632 68 13 2 5 49 3 132 4 4 -7685 91 83 225 1632 68 11 2 5 49 3 130 4 2 -7686 91 84 231 1632 68 10 2 5 49 3 129 4 1 -7687 91 85 237 1632 68 12 2 5 49 3 131 4 3 -7688 91 86 243 1632 68 14 2 5 49 3 133 4 5 -7689 91 87 249 1632 72 13 2 5 50 3 132 4 4 -7690 91 88 255 1632 72 11 2 5 50 3 130 4 2 -7691 91 89 261 1632 72 9 2 5 50 3 128 4 0 -7692 91 90 267 1632 72 12 2 5 50 3 131 4 3 -7693 91 91 273 1632 72 14 2 5 50 3 133 4 5 -7694 92 0 -273 1642 4 19 2 5 33 3 138 4 10 -7695 92 1 -267 1642 4 17 2 5 33 3 136 4 8 -7696 92 2 -261 1642 4 15 2 5 33 3 134 4 6 -7697 92 3 -255 1642 4 16 2 5 33 3 135 4 7 -7698 92 4 -249 1642 4 18 2 5 33 3 137 4 9 -7699 92 5 -243 1642 8 17 2 5 34 3 136 4 8 -7700 92 6 -237 1642 8 15 2 5 34 3 134 4 6 -7701 92 7 -231 1642 8 16 2 5 34 3 135 4 7 -7702 92 8 -225 1642 8 18 2 5 34 3 137 4 9 -7703 92 9 -219 1642 8 20 2 5 34 3 139 4 11 -7704 92 10 -213 1642 12 19 2 5 35 3 138 4 10 -7705 92 11 -207 1642 12 17 2 5 35 3 136 4 8 -7706 92 12 -201 1642 12 15 2 5 35 3 134 4 6 -7707 92 13 -195 1642 12 16 2 5 35 3 135 4 7 -7708 92 14 -189 1642 12 18 2 5 35 3 137 4 9 -7709 92 15 -183 1642 16 19 2 5 36 3 138 4 10 -7710 92 16 -177 1642 16 17 2 5 36 3 136 4 8 -7711 92 17 -171 1642 16 15 2 5 36 3 134 4 6 -7712 92 18 -165 1642 16 18 2 5 36 3 137 4 9 -7713 92 19 -159 1642 16 20 2 5 36 3 139 4 11 -7714 92 20 -153 1642 20 19 2 5 37 3 138 4 10 -7715 92 21 -147 1642 20 17 2 5 37 3 136 4 8 -7716 92 22 -141 1642 20 15 2 5 37 3 134 4 6 -7717 92 23 -135 1642 20 16 2 5 37 3 135 4 7 -7718 92 24 -129 1642 20 18 2 5 37 3 137 4 9 -7719 92 25 -123 1642 20 20 2 5 37 3 139 4 11 -7720 92 26 -117 1642 24 19 2 5 38 3 138 4 10 -7721 92 27 -111 1642 24 17 2 5 38 3 136 4 8 -7722 92 28 -105 1642 24 15 2 5 38 3 134 4 6 -7723 92 29 -99 1642 24 16 2 5 38 3 135 4 7 -7724 92 30 -93 1642 24 18 2 5 38 3 137 4 9 -7725 92 31 -87 1642 28 17 2 5 39 3 136 4 8 -7726 92 32 -81 1642 28 15 2 5 39 3 134 4 6 -7727 92 33 -75 1642 28 13 2 5 39 3 132 4 4 -7728 92 34 -69 1642 28 14 2 5 39 3 133 4 5 -7729 92 35 -63 1642 28 16 2 5 39 3 135 4 7 -7730 92 36 -57 1642 32 19 2 5 40 3 138 4 10 -7731 92 37 -51 1642 32 17 2 5 40 3 136 4 8 -7732 92 38 -45 1642 32 16 2 5 40 3 135 4 7 -7733 92 39 -39 1642 32 18 2 5 40 3 137 4 9 -7734 92 40 -33 1642 32 20 2 5 40 3 139 4 11 -7735 92 41 -27 1642 36 19 2 5 41 3 138 4 10 -7736 92 42 -21 1642 36 17 2 5 41 3 136 4 8 -7737 92 43 -15 1642 36 16 2 5 41 3 135 4 7 -7738 92 44 -9 1642 36 18 2 5 41 3 137 4 9 -7739 92 45 -3 1642 36 20 2 5 41 3 139 4 11 -7740 92 46 3 1642 40 19 2 5 42 3 138 4 10 -7741 92 47 9 1642 40 17 2 5 42 3 136 4 8 -7742 92 48 15 1642 40 15 2 5 42 3 134 4 6 -7743 92 49 21 1642 40 18 2 5 42 3 137 4 9 -7744 92 50 27 1642 40 20 2 5 42 3 139 4 11 -7745 92 51 33 1642 44 19 2 5 43 3 138 4 10 -7746 92 52 39 1642 44 17 2 5 43 3 136 4 8 -7747 92 53 45 1642 44 15 2 5 43 3 134 4 6 -7748 92 54 51 1642 44 18 2 5 43 3 137 4 9 -7749 92 55 57 1642 44 20 2 5 43 3 139 4 11 -7750 92 56 63 1642 48 15 2 5 44 3 134 4 6 -7751 92 57 69 1642 48 13 2 5 44 3 132 4 4 -7752 92 58 75 1642 48 14 2 5 44 3 133 4 5 -7753 92 59 81 1642 48 16 2 5 44 3 135 4 7 -7754 92 60 87 1642 48 18 2 5 44 3 137 4 9 -7755 92 61 93 1642 52 17 2 5 45 3 136 4 8 -7756 92 62 99 1642 52 15 2 5 45 3 134 4 6 -7757 92 63 105 1642 52 16 2 5 45 3 135 4 7 -7758 92 64 111 1642 52 18 2 5 45 3 137 4 9 -7759 92 65 117 1642 52 20 2 5 45 3 139 4 11 -7760 92 66 123 1642 56 19 2 5 46 3 138 4 10 -7761 92 67 129 1642 56 17 2 5 46 3 136 4 8 -7762 92 68 135 1642 56 15 2 5 46 3 134 4 6 -7763 92 69 141 1642 56 16 2 5 46 3 135 4 7 -7764 92 70 147 1642 56 18 2 5 46 3 137 4 9 -7765 92 71 153 1642 56 20 2 5 46 3 139 4 11 -7766 92 72 159 1642 60 19 2 5 47 3 138 4 10 -7767 92 73 165 1642 60 17 2 5 47 3 136 4 8 -7768 92 74 171 1642 60 16 2 5 47 3 135 4 7 -7769 92 75 177 1642 60 18 2 5 47 3 137 4 9 -7770 92 76 183 1642 60 20 2 5 47 3 139 4 11 -7771 92 77 189 1642 64 17 2 5 48 3 136 4 8 -7772 92 78 195 1642 64 15 2 5 48 3 134 4 6 -7773 92 79 201 1642 64 16 2 5 48 3 135 4 7 -7774 92 80 207 1642 64 18 2 5 48 3 137 4 9 -7775 92 81 213 1642 64 20 2 5 48 3 139 4 11 -7776 92 82 219 1642 68 19 2 5 49 3 138 4 10 -7777 92 83 225 1642 68 17 2 5 49 3 136 4 8 -7778 92 84 231 1642 68 15 2 5 49 3 134 4 6 -7779 92 85 237 1642 68 16 2 5 49 3 135 4 7 -7780 92 86 243 1642 68 18 2 5 49 3 137 4 9 -7781 92 87 249 1642 72 17 2 5 50 3 136 4 8 -7782 92 88 255 1642 72 15 2 5 50 3 134 4 6 -7783 92 89 261 1642 72 16 2 5 50 3 135 4 7 -7784 92 90 267 1642 72 18 2 5 50 3 137 4 9 -7785 92 91 273 1642 72 20 2 5 50 3 139 4 11 -7786 93 0 -273 1652 4 23 2 5 33 3 142 4 14 -7787 93 1 -267 1652 4 21 2 5 33 3 140 4 12 -7788 93 2 -261 1652 4 20 2 5 33 3 139 4 11 -7789 93 3 -255 1652 4 22 2 5 33 3 141 4 13 -7790 93 4 -249 1652 4 24 2 5 33 3 143 4 15 -7791 93 5 -243 1652 8 23 2 5 34 3 142 4 14 -7792 93 6 -237 1652 8 21 2 5 34 3 140 4 12 -7793 93 7 -231 1652 8 19 2 5 34 3 138 4 10 -7794 93 8 -225 1652 8 22 2 5 34 3 141 4 13 -7795 93 9 -219 1652 8 24 2 5 34 3 143 4 15 -7796 93 10 -213 1652 12 23 2 5 35 3 142 4 14 -7797 93 11 -207 1652 12 21 2 5 35 3 140 4 12 -7798 93 12 -201 1652 12 20 2 5 35 3 139 4 11 -7799 93 13 -195 1652 12 22 2 5 35 3 141 4 13 -7800 93 14 -189 1652 12 24 2 5 35 3 143 4 15 -7801 93 15 -183 1652 16 23 2 5 36 3 142 4 14 -7802 93 16 -177 1652 16 21 2 5 36 3 140 4 12 -7803 93 17 -171 1652 16 22 2 5 36 3 141 4 13 -7804 93 18 -165 1652 16 24 2 5 36 3 143 4 15 -7805 93 19 -159 1652 16 26 2 5 36 3 145 4 17 -7806 93 20 -153 1652 20 25 2 5 37 3 144 4 16 -7807 93 21 -147 1652 20 23 2 5 37 3 142 4 14 -7808 93 22 -141 1652 20 21 2 5 37 3 140 4 12 -7809 93 23 -135 1652 20 22 2 5 37 3 141 4 13 -7810 93 24 -129 1652 20 24 2 5 37 3 143 4 15 -7811 93 25 -123 1652 24 25 2 5 38 3 144 4 16 -7812 93 26 -117 1652 24 23 2 5 38 3 142 4 14 -7813 93 27 -111 1652 24 21 2 5 38 3 140 4 12 -7814 93 28 -105 1652 24 20 2 5 38 3 139 4 11 -7815 93 29 -99 1652 24 22 2 5 38 3 141 4 13 -7816 93 30 -93 1652 24 24 2 5 38 3 143 4 15 -7817 93 31 -87 1652 28 21 2 5 39 3 140 4 12 -7818 93 32 -81 1652 28 19 2 5 39 3 138 4 10 -7819 93 33 -75 1652 28 18 2 5 39 3 137 4 9 -7820 93 34 -69 1652 28 20 2 5 39 3 139 4 11 -7821 93 35 -63 1652 28 22 2 5 39 3 141 4 13 -7822 93 36 -57 1652 32 25 2 5 40 3 144 4 16 -7823 93 37 -51 1652 32 23 2 5 40 3 142 4 14 -7824 93 38 -45 1652 32 21 2 5 40 3 140 4 12 -7825 93 39 -39 1652 32 22 2 5 40 3 141 4 13 -7826 93 40 -33 1652 32 24 2 5 40 3 143 4 15 -7827 93 41 -27 1652 36 25 2 5 41 3 144 4 16 -7828 93 42 -21 1652 36 23 2 5 41 3 142 4 14 -7829 93 43 -15 1652 36 21 2 5 41 3 140 4 12 -7830 93 44 -9 1652 36 22 2 5 41 3 141 4 13 -7831 93 45 -3 1652 36 24 2 5 41 3 143 4 15 -7832 93 46 3 1652 40 23 2 5 42 3 142 4 14 -7833 93 47 9 1652 40 21 2 5 42 3 140 4 12 -7834 93 48 15 1652 40 22 2 5 42 3 141 4 13 -7835 93 49 21 1652 40 24 2 5 42 3 143 4 15 -7836 93 50 27 1652 40 26 2 5 42 3 145 4 17 -7837 93 51 33 1652 44 23 2 5 43 3 142 4 14 -7838 93 52 39 1652 44 21 2 5 43 3 140 4 12 -7839 93 53 45 1652 44 22 2 5 43 3 141 4 13 -7840 93 54 51 1652 44 24 2 5 43 3 143 4 15 -7841 93 55 57 1652 44 26 2 5 43 3 145 4 17 -7842 93 56 63 1652 48 21 2 5 44 3 140 4 12 -7843 93 57 69 1652 48 19 2 5 44 3 138 4 10 -7844 93 58 75 1652 48 17 2 5 44 3 136 4 8 -7845 93 59 81 1652 48 20 2 5 44 3 139 4 11 -7846 93 60 87 1652 48 22 2 5 44 3 141 4 13 -7847 93 61 93 1652 52 23 2 5 45 3 142 4 14 -7848 93 62 99 1652 52 21 2 5 45 3 140 4 12 -7849 93 63 105 1652 52 19 2 5 45 3 138 4 10 -7850 93 64 111 1652 52 22 2 5 45 3 141 4 13 -7851 93 65 117 1652 52 24 2 5 45 3 143 4 15 -7852 93 66 123 1652 52 26 2 5 45 3 145 4 17 -7853 93 67 129 1652 56 23 2 5 46 3 142 4 14 -7854 93 68 135 1652 56 21 2 5 46 3 140 4 12 -7855 93 69 141 1652 56 22 2 5 46 3 141 4 13 -7856 93 70 147 1652 56 24 2 5 46 3 143 4 15 -7857 93 71 153 1652 56 26 2 5 46 3 145 4 17 -7858 93 72 159 1652 60 25 2 5 47 3 144 4 16 -7859 93 73 165 1652 60 23 2 5 47 3 142 4 14 -7860 93 74 171 1652 60 21 2 5 47 3 140 4 12 -7861 93 75 177 1652 60 22 2 5 47 3 141 4 13 -7862 93 76 183 1652 60 24 2 5 47 3 143 4 15 -7863 93 77 189 1652 64 23 2 5 48 3 142 4 14 -7864 93 78 195 1652 64 21 2 5 48 3 140 4 12 -7865 93 79 201 1652 64 19 2 5 48 3 138 4 10 -7866 93 80 207 1652 64 22 2 5 48 3 141 4 13 -7867 93 81 213 1652 64 24 2 5 48 3 143 4 15 -7868 93 82 219 1652 68 23 2 5 49 3 142 4 14 -7869 93 83 225 1652 68 21 2 5 49 3 140 4 12 -7870 93 84 231 1652 68 20 2 5 49 3 139 4 11 -7871 93 85 237 1652 68 22 2 5 49 3 141 4 13 -7872 93 86 243 1652 68 24 2 5 49 3 143 4 15 -7873 93 87 249 1652 72 23 2 5 50 3 142 4 14 -7874 93 88 255 1652 72 21 2 5 50 3 140 4 12 -7875 93 89 261 1652 72 19 2 5 50 3 138 4 10 -7876 93 90 267 1652 72 22 2 5 50 3 141 4 13 -7877 93 91 273 1652 72 24 2 5 50 3 143 4 15 -7878 94 0 -279 1662 4 29 2 5 33 3 148 4 20 -7879 94 1 -273 1662 4 27 2 5 33 3 146 4 18 -7880 94 2 -267 1662 4 25 2 5 33 3 144 4 16 -7881 94 3 -261 1662 4 26 2 5 33 3 145 4 17 -7882 94 4 -255 1662 4 28 2 5 33 3 147 4 19 -7883 94 5 -249 1662 4 30 2 5 33 3 149 4 21 -7884 94 6 -243 1662 8 27 2 5 34 3 146 4 18 -7885 94 7 -237 1662 8 25 2 5 34 3 144 4 16 -7886 94 8 -231 1662 8 26 2 5 34 3 145 4 17 -7887 94 9 -225 1662 8 28 2 5 34 3 147 4 19 -7888 94 10 -219 1662 8 30 2 5 34 3 149 4 21 -7889 94 11 -213 1662 12 29 2 5 35 3 148 4 20 -7890 94 12 -207 1662 12 27 2 5 35 3 146 4 18 -7891 94 13 -201 1662 12 25 2 5 35 3 144 4 16 -7892 94 14 -195 1662 12 26 2 5 35 3 145 4 17 -7893 94 15 -189 1662 12 28 2 5 35 3 147 4 19 -7894 94 16 -183 1662 16 29 2 5 36 3 148 4 20 -7895 94 17 -177 1662 16 27 2 5 36 3 146 4 18 -7896 94 18 -171 1662 16 25 2 5 36 3 144 4 16 -7897 94 19 -165 1662 16 28 2 5 36 3 147 4 19 -7898 94 20 -159 1662 16 30 2 5 36 3 149 4 21 -7899 94 21 -153 1662 20 29 2 5 37 3 148 4 20 -7900 94 22 -147 1662 20 27 2 5 37 3 146 4 18 -7901 94 23 -141 1662 20 26 2 5 37 3 145 4 17 -7902 94 24 -135 1662 20 28 2 5 37 3 147 4 19 -7903 94 25 -129 1662 20 30 2 5 37 3 149 4 21 -7904 94 26 -123 1662 24 29 2 5 38 3 148 4 20 -7905 94 27 -117 1662 24 27 2 5 38 3 146 4 18 -7906 94 28 -111 1662 24 26 2 5 38 3 145 4 17 -7907 94 29 -105 1662 24 28 2 5 38 3 147 4 19 -7908 94 30 -99 1662 24 30 2 5 38 3 149 4 21 -7909 94 31 -93 1662 28 27 2 5 39 3 146 4 18 -7910 94 32 -87 1662 28 25 2 5 39 3 144 4 16 -7911 94 33 -81 1662 28 23 2 5 39 3 142 4 14 -7912 94 34 -75 1662 28 24 2 5 39 3 143 4 15 -7913 94 35 -69 1662 28 26 2 5 39 3 145 4 17 -7914 94 36 -63 1662 28 28 2 5 39 3 147 4 19 -7915 94 37 -57 1662 32 29 2 5 40 3 148 4 20 -7916 94 38 -51 1662 32 27 2 5 40 3 146 4 18 -7917 94 39 -45 1662 32 26 2 5 40 3 145 4 17 -7918 94 40 -39 1662 32 28 2 5 40 3 147 4 19 -7919 94 41 -33 1662 32 30 2 5 40 3 149 4 21 -7920 94 42 -27 1662 36 29 2 5 41 3 148 4 20 -7921 94 43 -21 1662 36 27 2 5 41 3 146 4 18 -7922 94 44 -15 1662 36 26 2 5 41 3 145 4 17 -7923 94 45 -9 1662 36 28 2 5 41 3 147 4 19 -7924 94 46 -3 1662 36 30 2 5 41 3 149 4 21 -7925 94 47 3 1662 40 29 2 5 42 3 148 4 20 -7926 94 48 9 1662 40 27 2 5 42 3 146 4 18 -7927 94 49 15 1662 40 25 2 5 42 3 144 4 16 -7928 94 50 21 1662 40 28 2 5 42 3 147 4 19 -7929 94 51 27 1662 40 30 2 5 42 3 149 4 21 -7930 94 52 33 1662 44 29 2 5 43 3 148 4 20 -7931 94 53 39 1662 44 27 2 5 43 3 146 4 18 -7932 94 54 45 1662 44 25 2 5 43 3 144 4 16 -7933 94 55 51 1662 44 28 2 5 43 3 147 4 19 -7934 94 56 57 1662 44 30 2 5 43 3 149 4 21 -7935 94 57 63 1662 48 27 2 5 44 3 146 4 18 -7936 94 58 69 1662 48 25 2 5 44 3 144 4 16 -7937 94 59 75 1662 48 23 2 5 44 3 142 4 14 -7938 94 60 81 1662 48 24 2 5 44 3 143 4 15 -7939 94 61 87 1662 48 26 2 5 44 3 145 4 17 -7940 94 62 93 1662 48 28 2 5 44 3 147 4 19 -7941 94 63 99 1662 52 29 2 5 45 3 148 4 20 -7942 94 64 105 1662 52 27 2 5 45 3 146 4 18 -7943 94 65 111 1662 52 25 2 5 45 3 144 4 16 -7944 94 66 117 1662 52 28 2 5 45 3 147 4 19 -7945 94 67 123 1662 52 30 2 5 45 3 149 4 21 -7946 94 68 129 1662 56 29 2 5 46 3 148 4 20 -7947 94 69 135 1662 56 27 2 5 46 3 146 4 18 -7948 94 70 141 1662 56 25 2 5 46 3 144 4 16 -7949 94 71 147 1662 56 28 2 5 46 3 147 4 19 -7950 94 72 153 1662 56 30 2 5 46 3 149 4 21 -7951 94 73 159 1662 60 29 2 5 47 3 148 4 20 -7952 94 74 165 1662 60 27 2 5 47 3 146 4 18 -7953 94 75 171 1662 60 26 2 5 47 3 145 4 17 -7954 94 76 177 1662 60 28 2 5 47 3 147 4 19 -7955 94 77 183 1662 60 30 2 5 47 3 149 4 21 -7956 94 78 189 1662 64 27 2 5 48 3 146 4 18 -7957 94 79 195 1662 64 25 2 5 48 3 144 4 16 -7958 94 80 201 1662 64 26 2 5 48 3 145 4 17 -7959 94 81 207 1662 64 28 2 5 48 3 147 4 19 -7960 94 82 213 1662 64 30 2 5 48 3 149 4 21 -7961 94 83 219 1662 68 29 2 5 49 3 148 4 20 -7962 94 84 225 1662 68 27 2 5 49 3 146 4 18 -7963 94 85 231 1662 68 25 2 5 49 3 144 4 16 -7964 94 86 237 1662 68 26 2 5 49 3 145 4 17 -7965 94 87 243 1662 68 28 2 5 49 3 147 4 19 -7966 94 88 249 1662 72 29 2 5 50 3 148 4 20 -7967 94 89 255 1662 72 27 2 5 50 3 146 4 18 -7968 94 90 261 1662 72 25 2 5 50 3 144 4 16 -7969 94 91 267 1662 72 26 2 5 50 3 145 4 17 -7970 94 92 273 1662 72 28 2 5 50 3 147 4 19 -7971 94 93 279 1662 72 30 2 5 50 3 149 4 21 -7972 95 0 -279 1672 4 33 2 5 33 3 152 4 24 -7973 95 1 -273 1672 4 31 2 5 33 3 150 4 22 -7974 95 2 -267 1672 4 32 2 5 33 3 151 4 23 -7975 95 3 -261 1672 4 34 2 5 33 3 153 4 25 -7976 95 4 -255 1672 4 36 2 5 33 3 155 4 27 -7977 95 5 -249 1672 8 33 2 5 34 3 152 4 24 -7978 95 6 -243 1672 8 31 2 5 34 3 150 4 22 -7979 95 7 -237 1672 8 29 2 5 34 3 148 4 20 -7980 95 8 -231 1672 8 32 2 5 34 3 151 4 23 -7981 95 9 -225 1672 8 34 2 5 34 3 153 4 25 -7982 95 10 -219 1672 8 36 2 5 34 3 155 4 27 -7983 95 11 -213 1672 12 33 2 5 35 3 152 4 24 -7984 95 12 -207 1672 12 31 2 5 35 3 150 4 22 -7985 95 13 -201 1672 12 30 2 5 35 3 149 4 21 -7986 95 14 -195 1672 12 32 2 5 35 3 151 4 23 -7987 95 15 -189 1672 12 34 2 5 35 3 153 4 25 -7988 95 16 -183 1672 16 33 2 5 36 3 152 4 24 -7989 95 17 -177 1672 16 31 2 5 36 3 150 4 22 -7990 95 18 -171 1672 16 32 2 5 36 3 151 4 23 -7991 95 19 -165 1672 16 34 2 5 36 3 153 4 25 -7992 95 20 -159 1672 16 36 2 5 36 3 155 4 27 -7993 95 21 -153 1672 20 35 2 5 37 3 154 4 26 -7994 95 22 -147 1672 20 33 2 5 37 3 152 4 24 -7995 95 23 -141 1672 20 31 2 5 37 3 150 4 22 -7996 95 24 -135 1672 20 32 2 5 37 3 151 4 23 -7997 95 25 -129 1672 20 34 2 5 37 3 153 4 25 -7998 95 26 -123 1672 24 35 2 5 38 3 154 4 26 -7999 95 27 -117 1672 24 33 2 5 38 3 152 4 24 -8000 95 28 -111 1672 24 31 2 5 38 3 150 4 22 -8001 95 29 -105 1672 24 32 2 5 38 3 151 4 23 -8002 95 30 -99 1672 24 34 2 5 38 3 153 4 25 -8003 95 31 -93 1672 28 33 2 5 39 3 152 4 24 -8004 95 32 -87 1672 28 31 2 5 39 3 150 4 22 -8005 95 33 -81 1672 28 29 2 5 39 3 148 4 20 -8006 95 34 -75 1672 28 30 2 5 39 3 149 4 21 -8007 95 35 -69 1672 28 32 2 5 39 3 151 4 23 -8008 95 36 -63 1672 28 34 2 5 39 3 153 4 25 -8009 95 37 -57 1672 32 35 2 5 40 3 154 4 26 -8010 95 38 -51 1672 32 33 2 5 40 3 152 4 24 -8011 95 39 -45 1672 32 31 2 5 40 3 150 4 22 -8012 95 40 -39 1672 32 32 2 5 40 3 151 4 23 -8013 95 41 -33 1672 32 34 2 5 40 3 153 4 25 -8014 95 42 -27 1672 36 35 2 5 41 3 154 4 26 -8015 95 43 -21 1672 36 33 2 5 41 3 152 4 24 -8016 95 44 -15 1672 36 31 2 5 41 3 150 4 22 -8017 95 45 -9 1672 36 32 2 5 41 3 151 4 23 -8018 95 46 -3 1672 36 34 2 5 41 3 153 4 25 -8019 95 47 3 1672 40 33 2 5 42 3 152 4 24 -8020 95 48 9 1672 40 31 2 5 42 3 150 4 22 -8021 95 49 15 1672 40 32 2 5 42 3 151 4 23 -8022 95 50 21 1672 40 34 2 5 42 3 153 4 25 -8023 95 51 27 1672 40 36 2 5 42 3 155 4 27 -8024 95 52 33 1672 44 33 2 5 43 3 152 4 24 -8025 95 53 39 1672 44 31 2 5 43 3 150 4 22 -8026 95 54 45 1672 44 32 2 5 43 3 151 4 23 -8027 95 55 51 1672 44 34 2 5 43 3 153 4 25 -8028 95 56 57 1672 44 36 2 5 43 3 155 4 27 -8029 95 57 63 1672 48 33 2 5 44 3 152 4 24 -8030 95 58 69 1672 48 31 2 5 44 3 150 4 22 -8031 95 59 75 1672 48 29 2 5 44 3 148 4 20 -8032 95 60 81 1672 48 30 2 5 44 3 149 4 21 -8033 95 61 87 1672 48 32 2 5 44 3 151 4 23 -8034 95 62 93 1672 48 34 2 5 44 3 153 4 25 -8035 95 63 99 1672 52 33 2 5 45 3 152 4 24 -8036 95 64 105 1672 52 31 2 5 45 3 150 4 22 -8037 95 65 111 1672 52 32 2 5 45 3 151 4 23 -8038 95 66 117 1672 52 34 2 5 45 3 153 4 25 -8039 95 67 123 1672 52 36 2 5 45 3 155 4 27 -8040 95 68 129 1672 56 33 2 5 46 3 152 4 24 -8041 95 69 135 1672 56 31 2 5 46 3 150 4 22 -8042 95 70 141 1672 56 32 2 5 46 3 151 4 23 -8043 95 71 147 1672 56 34 2 5 46 3 153 4 25 -8044 95 72 153 1672 56 36 2 5 46 3 155 4 27 -8045 95 73 159 1672 60 35 2 5 47 3 154 4 26 -8046 95 74 165 1672 60 33 2 5 47 3 152 4 24 -8047 95 75 171 1672 60 31 2 5 47 3 150 4 22 -8048 95 76 177 1672 60 32 2 5 47 3 151 4 23 -8049 95 77 183 1672 60 34 2 5 47 3 153 4 25 -8050 95 78 189 1672 64 33 2 5 48 3 152 4 24 -8051 95 79 195 1672 64 31 2 5 48 3 150 4 22 -8052 95 80 201 1672 64 29 2 5 48 3 148 4 20 -8053 95 81 207 1672 64 32 2 5 48 3 151 4 23 -8054 95 82 213 1672 64 34 2 5 48 3 153 4 25 -8055 95 83 219 1672 68 35 2 5 49 3 154 4 26 -8056 95 84 225 1672 68 33 2 5 49 3 152 4 24 -8057 95 85 231 1672 68 31 2 5 49 3 150 4 22 -8058 95 86 237 1672 68 30 2 5 49 3 149 4 21 -8059 95 87 243 1672 68 32 2 5 49 3 151 4 23 -8060 95 88 249 1672 68 34 2 5 49 3 153 4 25 -8061 95 89 255 1672 72 35 2 5 50 3 154 4 26 -8062 95 90 261 1672 72 33 2 5 50 3 152 4 24 -8063 95 91 267 1672 72 31 2 5 50 3 150 4 22 -8064 95 92 273 1672 72 32 2 5 50 3 151 4 23 -8065 95 93 279 1672 72 34 2 5 50 3 153 4 25 -8066 96 0 -279 1682 4 39 2 5 33 3 158 4 30 -8067 96 1 -273 1682 4 37 2 5 33 3 156 4 28 -8068 96 2 -267 1682 4 35 2 5 33 3 154 4 26 -8069 96 3 -261 1682 4 38 2 5 33 3 157 4 29 -8070 96 4 -255 1682 4 40 2 5 33 3 159 4 31 -8071 96 5 -249 1682 8 39 2 5 34 3 158 4 30 -8072 96 6 -243 1682 8 37 2 5 34 3 156 4 28 -8073 96 7 -237 1682 8 35 2 5 34 3 154 4 26 -8074 96 8 -231 1682 8 38 2 5 34 3 157 4 29 -8075 96 9 -225 1682 8 40 2 5 34 3 159 4 31 -8076 96 10 -219 1682 12 39 2 5 35 3 158 4 30 -8077 96 11 -213 1682 12 37 2 5 35 3 156 4 28 -8078 96 12 -207 1682 12 35 2 5 35 3 154 4 26 -8079 96 13 -201 1682 12 36 2 5 35 3 155 4 27 -8080 96 14 -195 1682 12 38 2 5 35 3 157 4 29 -8081 96 15 -189 1682 12 40 2 5 35 3 159 4 31 -8082 96 16 -183 1682 16 39 2 5 36 3 158 4 30 -8083 96 17 -177 1682 16 37 2 5 36 3 156 4 28 -8084 96 18 -171 1682 16 35 2 5 36 3 154 4 26 -8085 96 19 -165 1682 16 38 2 5 36 3 157 4 29 -8086 96 20 -159 1682 16 40 2 5 36 3 159 4 31 -8087 96 21 -153 1682 20 39 2 5 37 3 158 4 30 -8088 96 22 -147 1682 20 37 2 5 37 3 156 4 28 -8089 96 23 -141 1682 20 36 2 5 37 3 155 4 27 -8090 96 24 -135 1682 20 38 2 5 37 3 157 4 29 -8091 96 25 -129 1682 20 40 2 5 37 3 159 4 31 -8092 96 26 -123 1682 24 39 2 5 38 3 158 4 30 -8093 96 27 -117 1682 24 37 2 5 38 3 156 4 28 -8094 96 28 -111 1682 24 36 2 5 38 3 155 4 27 -8095 96 29 -105 1682 24 38 2 5 38 3 157 4 29 -8096 96 30 -99 1682 24 40 2 5 38 3 159 4 31 -8097 96 31 -93 1682 28 39 2 5 39 3 158 4 30 -8098 96 32 -87 1682 28 37 2 5 39 3 156 4 28 -8099 96 33 -81 1682 28 35 2 5 39 3 154 4 26 -8100 96 34 -75 1682 28 36 2 5 39 3 155 4 27 -8101 96 35 -69 1682 28 38 2 5 39 3 157 4 29 -8102 96 36 -63 1682 28 40 2 5 39 3 159 4 31 -8103 96 37 -57 1682 32 39 2 5 40 3 158 4 30 -8104 96 38 -51 1682 32 37 2 5 40 3 156 4 28 -8105 96 39 -45 1682 32 36 2 5 40 3 155 4 27 -8106 96 40 -39 1682 32 38 2 5 40 3 157 4 29 -8107 96 41 -33 1682 32 40 2 5 40 3 159 4 31 -8108 96 42 -27 1682 36 39 2 5 41 3 158 4 30 -8109 96 43 -21 1682 36 37 2 5 41 3 156 4 28 -8110 96 44 -15 1682 36 36 2 5 41 3 155 4 27 -8111 96 45 -9 1682 36 38 2 5 41 3 157 4 29 -8112 96 46 -3 1682 36 40 2 5 41 3 159 4 31 -8113 96 47 3 1682 40 39 2 5 42 3 158 4 30 -8114 96 48 9 1682 40 37 2 5 42 3 156 4 28 -8115 96 49 15 1682 40 35 2 5 42 3 154 4 26 -8116 96 50 21 1682 40 38 2 5 42 3 157 4 29 -8117 96 51 27 1682 40 40 2 5 42 3 159 4 31 -8118 96 52 33 1682 44 39 2 5 43 3 158 4 30 -8119 96 53 39 1682 44 37 2 5 43 3 156 4 28 -8120 96 54 45 1682 44 35 2 5 43 3 154 4 26 -8121 96 55 51 1682 44 38 2 5 43 3 157 4 29 -8122 96 56 57 1682 44 40 2 5 43 3 159 4 31 -8123 96 57 63 1682 48 39 2 5 44 3 158 4 30 -8124 96 58 69 1682 48 37 2 5 44 3 156 4 28 -8125 96 59 75 1682 48 35 2 5 44 3 154 4 26 -8126 96 60 81 1682 48 36 2 5 44 3 155 4 27 -8127 96 61 87 1682 48 38 2 5 44 3 157 4 29 -8128 96 62 93 1682 48 40 2 5 44 3 159 4 31 -8129 96 63 99 1682 52 39 2 5 45 3 158 4 30 -8130 96 64 105 1682 52 37 2 5 45 3 156 4 28 -8131 96 65 111 1682 52 35 2 5 45 3 154 4 26 -8132 96 66 117 1682 52 38 2 5 45 3 157 4 29 -8133 96 67 123 1682 52 40 2 5 45 3 159 4 31 -8134 96 68 129 1682 56 39 2 5 46 3 158 4 30 -8135 96 69 135 1682 56 37 2 5 46 3 156 4 28 -8136 96 70 141 1682 56 35 2 5 46 3 154 4 26 -8137 96 71 147 1682 56 38 2 5 46 3 157 4 29 -8138 96 72 153 1682 56 40 2 5 46 3 159 4 31 -8139 96 73 159 1682 60 39 2 5 47 3 158 4 30 -8140 96 74 165 1682 60 37 2 5 47 3 156 4 28 -8141 96 75 171 1682 60 36 2 5 47 3 155 4 27 -8142 96 76 177 1682 60 38 2 5 47 3 157 4 29 -8143 96 77 183 1682 60 40 2 5 47 3 159 4 31 -8144 96 78 189 1682 64 39 2 5 48 3 158 4 30 -8145 96 79 195 1682 64 37 2 5 48 3 156 4 28 -8146 96 80 201 1682 64 35 2 5 48 3 154 4 26 -8147 96 81 207 1682 64 36 2 5 48 3 155 4 27 -8148 96 82 213 1682 64 38 2 5 48 3 157 4 29 -8149 96 83 219 1682 64 40 2 5 48 3 159 4 31 -8150 96 84 225 1682 68 39 2 5 49 3 158 4 30 -8151 96 85 231 1682 68 37 2 5 49 3 156 4 28 -8152 96 86 237 1682 68 36 2 5 49 3 155 4 27 -8153 96 87 243 1682 68 38 2 5 49 3 157 4 29 -8154 96 88 249 1682 68 40 2 5 49 3 159 4 31 -8155 96 89 255 1682 72 39 2 5 50 3 158 4 30 -8156 96 90 261 1682 72 37 2 5 50 3 156 4 28 -8157 96 91 267 1682 72 36 2 5 50 3 155 4 27 -8158 96 92 273 1682 72 38 2 5 50 3 157 4 29 -8159 96 93 279 1682 72 40 2 5 50 3 159 4 31 +5280 63 0 -225 1352 1 3 2 4 33 0 2 0 2 +5281 63 1 -219 1352 1 1 2 4 33 0 0 0 0 +5282 63 2 -213 1352 1 2 2 4 33 0 1 0 1 +5283 63 3 -207 1352 1 4 2 4 33 0 3 0 3 +5284 63 4 -201 1352 1 6 2 4 33 0 5 0 5 +5285 63 5 -195 1352 5 3 2 4 34 0 2 0 2 +5286 63 6 -189 1352 5 1 2 4 34 0 0 0 0 +5287 63 7 -183 1352 5 2 2 4 34 0 1 0 1 +5288 63 8 -177 1352 5 4 2 4 34 0 3 0 3 +5289 63 9 -171 1352 9 3 2 4 35 0 2 0 2 +5290 63 10 -165 1352 9 1 2 4 35 0 0 0 0 +5291 63 11 -159 1352 9 2 2 4 35 0 1 0 1 +5292 63 12 -153 1352 9 4 2 4 35 0 3 0 3 +5293 63 13 -147 1352 13 3 2 4 36 0 2 0 2 +5294 63 14 -141 1352 13 1 2 4 36 0 0 0 0 +5295 63 15 -135 1352 13 2 2 4 36 0 1 0 1 +5296 63 16 -129 1352 13 4 2 4 36 0 3 0 3 +5297 63 17 -123 1352 17 3 2 4 37 0 2 0 2 +5298 63 18 -117 1352 17 1 2 4 37 0 0 0 0 +5299 63 19 -111 1352 17 2 2 4 37 0 1 0 1 +5300 63 20 -105 1352 17 4 2 4 37 0 3 0 3 +5301 63 21 -99 1352 21 3 2 4 38 0 2 0 2 +5302 63 22 -93 1352 21 1 2 4 38 0 0 0 0 +5303 63 23 -87 1352 21 2 2 4 38 0 1 0 1 +5304 63 24 -81 1352 21 4 2 4 38 0 3 0 3 +5305 63 25 -75 1352 21 6 2 4 38 0 5 0 5 +5306 63 26 -69 1352 25 3 2 4 39 0 2 0 2 +5307 63 27 -63 1352 25 1 2 4 39 0 0 0 0 +5308 63 28 -57 1352 25 2 2 4 39 0 1 0 1 +5309 63 29 -51 1352 25 4 2 4 39 0 3 0 3 +5310 63 30 -45 1352 29 3 2 4 40 0 2 0 2 +5311 63 31 -39 1352 29 1 2 4 40 0 0 0 0 +5312 63 32 -33 1352 29 2 2 4 40 0 1 0 1 +5313 63 33 -27 1352 29 4 2 4 40 0 3 0 3 +5314 63 34 -21 1352 33 3 2 4 41 0 2 0 2 +5315 63 35 -15 1352 33 1 2 4 41 0 0 0 0 +5316 63 36 -9 1352 33 2 2 4 41 0 1 0 1 +5317 63 37 -3 1352 33 4 2 4 41 0 3 0 3 +5318 63 38 3 1352 37 3 2 4 42 0 2 0 2 +5319 63 39 9 1352 37 1 2 4 42 0 0 0 0 +5320 63 40 15 1352 37 2 2 4 42 0 1 0 1 +5321 63 41 21 1352 37 4 2 4 42 0 3 0 3 +5322 63 42 27 1352 41 3 2 4 43 0 2 0 2 +5323 63 43 33 1352 41 1 2 4 43 0 0 0 0 +5324 63 44 39 1352 41 2 2 4 43 0 1 0 1 +5325 63 45 45 1352 41 4 2 4 43 0 3 0 3 +5326 63 46 51 1352 45 3 2 4 44 0 2 0 2 +5327 63 47 57 1352 45 1 2 4 44 0 0 0 0 +5328 63 48 63 1352 45 2 2 4 44 0 1 0 1 +5329 63 49 69 1352 45 4 2 4 44 0 3 0 3 +5330 63 50 75 1352 49 5 2 4 45 0 4 0 4 +5331 63 51 81 1352 49 3 2 4 45 0 2 0 2 +5332 63 52 87 1352 49 1 2 4 45 0 0 0 0 +5333 63 53 93 1352 49 2 2 4 45 0 1 0 1 +5334 63 54 99 1352 49 4 2 4 45 0 3 0 3 +5335 63 55 105 1352 53 3 2 4 46 0 2 0 2 +5336 63 56 111 1352 53 1 2 4 46 0 0 0 0 +5337 63 57 117 1352 53 2 2 4 46 0 1 0 1 +5338 63 58 123 1352 53 4 2 4 46 0 3 0 3 +5339 63 59 129 1352 57 3 2 4 47 0 2 0 2 +5340 63 60 135 1352 57 1 2 4 47 0 0 0 0 +5341 63 61 141 1352 57 2 2 4 47 0 1 0 1 +5342 63 62 147 1352 57 4 2 4 47 0 3 0 3 +5343 63 63 153 1352 61 3 2 4 48 0 2 0 2 +5344 63 64 159 1352 61 1 2 4 48 0 0 0 0 +5345 63 65 165 1352 61 2 2 4 48 0 1 0 1 +5346 63 66 171 1352 61 4 2 4 48 0 3 0 3 +5347 63 67 177 1352 65 3 2 4 49 0 2 0 2 +5348 63 68 183 1352 65 1 2 4 49 0 0 0 0 +5349 63 69 189 1352 65 2 2 4 49 0 1 0 1 +5350 63 70 195 1352 65 4 2 4 49 0 3 0 3 +5351 63 71 201 1352 69 5 2 4 50 0 4 0 4 +5352 63 72 207 1352 69 3 2 4 50 0 2 0 2 +5353 63 73 213 1352 69 1 2 4 50 0 0 0 0 +5354 63 74 219 1352 69 2 2 4 50 0 1 0 1 +5355 63 75 225 1352 69 4 2 4 50 0 3 0 3 +5356 64 0 -225 1362 1 7 2 4 33 0 6 0 6 +5357 64 1 -219 1362 1 5 2 4 33 0 4 0 4 +5358 64 2 -213 1362 1 8 2 4 33 0 7 0 7 +5359 64 3 -207 1362 1 10 2 4 33 0 9 0 9 +5360 64 4 -201 1362 5 9 2 4 34 0 8 0 8 +5361 64 5 -195 1362 5 7 2 4 34 0 6 0 6 +5362 64 6 -189 1362 5 5 2 4 34 0 4 0 4 +5363 64 7 -183 1362 5 6 2 4 34 0 5 0 5 +5364 64 8 -177 1362 5 8 2 4 34 0 7 0 7 +5365 64 9 -171 1362 9 7 2 4 35 0 6 0 6 +5366 64 10 -165 1362 9 5 2 4 35 0 4 0 4 +5367 64 11 -159 1362 9 6 2 4 35 0 5 0 5 +5368 64 12 -153 1362 9 8 2 4 35 0 7 0 7 +5369 64 13 -147 1362 13 7 2 4 36 0 6 0 6 +5370 64 14 -141 1362 13 5 2 4 36 0 4 0 4 +5371 64 15 -135 1362 13 6 2 4 36 0 5 0 5 +5372 64 16 -129 1362 13 8 2 4 36 0 7 0 7 +5373 64 17 -123 1362 17 7 2 4 37 0 6 0 6 +5374 64 18 -117 1362 17 5 2 4 37 0 4 0 4 +5375 64 19 -111 1362 17 6 2 4 37 0 5 0 5 +5376 64 20 -105 1362 17 8 2 4 37 0 7 0 7 +5377 64 21 -99 1362 21 7 2 4 38 0 6 0 6 +5378 64 22 -93 1362 21 5 2 4 38 0 4 0 4 +5379 64 23 -87 1362 21 8 2 4 38 0 7 0 7 +5380 64 24 -81 1362 21 10 2 4 38 0 9 0 9 +5381 64 25 -75 1362 25 7 2 4 39 0 6 0 6 +5382 64 26 -69 1362 25 5 2 4 39 0 4 0 4 +5383 64 27 -63 1362 25 6 2 4 39 0 5 0 5 +5384 64 28 -57 1362 25 8 2 4 39 0 7 0 7 +5385 64 29 -51 1362 25 10 2 4 39 0 9 0 9 +5386 64 30 -45 1362 29 7 2 4 40 0 6 0 6 +5387 64 31 -39 1362 29 5 2 4 40 0 4 0 4 +5388 64 32 -33 1362 29 6 2 4 40 0 5 0 5 +5389 64 33 -27 1362 29 8 2 4 40 0 7 0 7 +5390 64 34 -21 1362 33 7 2 4 41 0 6 0 6 +5391 64 35 -15 1362 33 5 2 4 41 0 4 0 4 +5392 64 36 -9 1362 33 6 2 4 41 0 5 0 5 +5393 64 37 -3 1362 33 8 2 4 41 0 7 0 7 +5394 64 38 3 1362 37 7 2 4 42 0 6 0 6 +5395 64 39 9 1362 37 5 2 4 42 0 4 0 4 +5396 64 40 15 1362 37 6 2 4 42 0 5 0 5 +5397 64 41 21 1362 37 8 2 4 42 0 7 0 7 +5398 64 42 27 1362 41 7 2 4 43 0 6 0 6 +5399 64 43 33 1362 41 5 2 4 43 0 4 0 4 +5400 64 44 39 1362 41 6 2 4 43 0 5 0 5 +5401 64 45 45 1362 41 8 2 4 43 0 7 0 7 +5402 64 46 51 1362 45 9 2 4 44 0 8 0 8 +5403 64 47 57 1362 45 7 2 4 44 0 6 0 6 +5404 64 48 63 1362 45 5 2 4 44 0 4 0 4 +5405 64 49 69 1362 45 6 2 4 44 0 5 0 5 +5406 64 50 75 1362 45 8 2 4 44 0 7 0 7 +5407 64 51 81 1362 49 9 2 4 45 0 8 0 8 +5408 64 52 87 1362 49 7 2 4 45 0 6 0 6 +5409 64 53 93 1362 49 6 2 4 45 0 5 0 5 +5410 64 54 99 1362 49 8 2 4 45 0 7 0 7 +5411 64 55 105 1362 53 7 2 4 46 0 6 0 6 +5412 64 56 111 1362 53 5 2 4 46 0 4 0 4 +5413 64 57 117 1362 53 6 2 4 46 0 5 0 5 +5414 64 58 123 1362 53 8 2 4 46 0 7 0 7 +5415 64 59 129 1362 57 7 2 4 47 0 6 0 6 +5416 64 60 135 1362 57 5 2 4 47 0 4 0 4 +5417 64 61 141 1362 57 6 2 4 47 0 5 0 5 +5418 64 62 147 1362 57 8 2 4 47 0 7 0 7 +5419 64 63 153 1362 61 7 2 4 48 0 6 0 6 +5420 64 64 159 1362 61 5 2 4 48 0 4 0 4 +5421 64 65 165 1362 61 6 2 4 48 0 5 0 5 +5422 64 66 171 1362 61 8 2 4 48 0 7 0 7 +5423 64 67 177 1362 65 7 2 4 49 0 6 0 6 +5424 64 68 183 1362 65 5 2 4 49 0 4 0 4 +5425 64 69 189 1362 65 6 2 4 49 0 5 0 5 +5426 64 70 195 1362 65 8 2 4 49 0 7 0 7 +5427 64 71 201 1362 65 10 2 4 49 0 9 0 9 +5428 64 72 207 1362 69 9 2 4 50 0 8 0 8 +5429 64 73 213 1362 69 7 2 4 50 0 6 0 6 +5430 64 74 219 1362 69 6 2 4 50 0 5 0 5 +5431 64 75 225 1362 69 8 2 4 50 0 7 0 7 +5432 65 0 -225 1372 1 11 2 4 33 0 10 0 10 +5433 65 1 -219 1372 1 9 2 4 33 0 8 0 8 +5434 65 2 -213 1372 1 12 2 4 33 0 11 0 11 +5435 65 3 -207 1372 1 14 2 4 33 0 13 0 13 +5436 65 4 -201 1372 5 13 2 4 34 0 12 0 12 +5437 65 5 -195 1372 5 11 2 4 34 0 10 0 10 +5438 65 6 -189 1372 5 10 2 4 34 0 9 0 9 +5439 65 7 -183 1372 5 12 2 4 34 0 11 0 11 +5440 65 8 -177 1372 9 11 2 4 35 0 10 0 10 +5441 65 9 -171 1372 9 9 2 4 35 0 8 0 8 +5442 65 10 -165 1372 9 10 2 4 35 0 9 0 9 +5443 65 11 -159 1372 9 12 2 4 35 0 11 0 11 +5444 65 12 -153 1372 9 14 2 4 35 0 13 0 13 +5445 65 13 -147 1372 13 11 2 4 36 0 10 0 10 +5446 65 14 -141 1372 13 9 2 4 36 0 8 0 8 +5447 65 15 -135 1372 13 10 2 4 36 0 9 0 9 +5448 65 16 -129 1372 13 12 2 4 36 0 11 0 11 +5449 65 17 -123 1372 17 11 2 4 37 0 10 0 10 +5450 65 18 -117 1372 17 9 2 4 37 0 8 0 8 +5451 65 19 -111 1372 17 10 2 4 37 0 9 0 9 +5452 65 20 -105 1372 17 12 2 4 37 0 11 0 11 +5453 65 21 -99 1372 21 11 2 4 38 0 10 0 10 +5454 65 22 -93 1372 21 9 2 4 38 0 8 0 8 +5455 65 23 -87 1372 21 12 2 4 38 0 11 0 11 +5456 65 24 -81 1372 21 14 2 4 38 0 13 0 13 +5457 65 25 -75 1372 25 11 2 4 39 0 10 0 10 +5458 65 26 -69 1372 25 9 2 4 39 0 8 0 8 +5459 65 27 -63 1372 25 12 2 4 39 0 11 0 11 +5460 65 28 -57 1372 25 14 2 4 39 0 13 0 13 +5461 65 29 -51 1372 29 11 2 4 40 0 10 0 10 +5462 65 30 -45 1372 29 9 2 4 40 0 8 0 8 +5463 65 31 -39 1372 29 10 2 4 40 0 9 0 9 +5464 65 32 -33 1372 29 12 2 4 40 0 11 0 11 +5465 65 33 -27 1372 29 14 2 4 40 0 13 0 13 +5466 65 34 -21 1372 33 11 2 4 41 0 10 0 10 +5467 65 35 -15 1372 33 9 2 4 41 0 8 0 8 +5468 65 36 -9 1372 33 10 2 4 41 0 9 0 9 +5469 65 37 -3 1372 33 12 2 4 41 0 11 0 11 +5470 65 38 3 1372 37 11 2 4 42 0 10 0 10 +5471 65 39 9 1372 37 9 2 4 42 0 8 0 8 +5472 65 40 15 1372 37 10 2 4 42 0 9 0 9 +5473 65 41 21 1372 37 12 2 4 42 0 11 0 11 +5474 65 42 27 1372 41 13 2 4 43 0 12 0 12 +5475 65 43 33 1372 41 11 2 4 43 0 10 0 10 +5476 65 44 39 1372 41 9 2 4 43 0 8 0 8 +5477 65 45 45 1372 41 10 2 4 43 0 9 0 9 +5478 65 46 51 1372 41 12 2 4 43 0 11 0 11 +5479 65 47 57 1372 45 13 2 4 44 0 12 0 12 +5480 65 48 63 1372 45 11 2 4 44 0 10 0 10 +5481 65 49 69 1372 45 10 2 4 44 0 9 0 9 +5482 65 50 75 1372 45 12 2 4 44 0 11 0 11 +5483 65 51 81 1372 49 13 2 4 45 0 12 0 12 +5484 65 52 87 1372 49 11 2 4 45 0 10 0 10 +5485 65 53 93 1372 49 10 2 4 45 0 9 0 9 +5486 65 54 99 1372 49 12 2 4 45 0 11 0 11 +5487 65 55 105 1372 53 11 2 4 46 0 10 0 10 +5488 65 56 111 1372 53 9 2 4 46 0 8 0 8 +5489 65 57 117 1372 53 10 2 4 46 0 9 0 9 +5490 65 58 123 1372 53 12 2 4 46 0 11 0 11 +5491 65 59 129 1372 57 11 2 4 47 0 10 0 10 +5492 65 60 135 1372 57 9 2 4 47 0 8 0 8 +5493 65 61 141 1372 57 10 2 4 47 0 9 0 9 +5494 65 62 147 1372 57 12 2 4 47 0 11 0 11 +5495 65 63 153 1372 61 13 2 4 48 0 12 0 12 +5496 65 64 159 1372 61 11 2 4 48 0 10 0 10 +5497 65 65 165 1372 61 9 2 4 48 0 8 0 8 +5498 65 66 171 1372 61 10 2 4 48 0 9 0 9 +5499 65 67 177 1372 61 12 2 4 48 0 11 0 11 +5500 65 68 183 1372 65 11 2 4 49 0 10 0 10 +5501 65 69 189 1372 65 9 2 4 49 0 8 0 8 +5502 65 70 195 1372 65 12 2 4 49 0 11 0 11 +5503 65 71 201 1372 65 14 2 4 49 0 13 0 13 +5504 65 72 207 1372 69 13 2 4 50 0 12 0 12 +5505 65 73 213 1372 69 11 2 4 50 0 10 0 10 +5506 65 74 219 1372 69 10 2 4 50 0 9 0 9 +5507 65 75 225 1372 69 12 2 4 50 0 11 0 11 +5508 66 0 -225 1382 1 15 2 4 33 0 14 0 14 +5509 66 1 -219 1382 1 13 2 4 33 0 12 0 12 +5510 66 2 -213 1382 1 16 2 4 33 0 15 0 15 +5511 66 3 -207 1382 1 18 2 4 33 0 17 0 17 +5512 66 4 -201 1382 5 17 2 4 34 0 16 0 16 +5513 66 5 -195 1382 5 15 2 4 34 0 14 0 14 +5514 66 6 -189 1382 5 14 2 4 34 0 13 0 13 +5515 66 7 -183 1382 5 16 2 4 34 0 15 0 15 +5516 66 8 -177 1382 9 15 2 4 35 0 14 0 14 +5517 66 9 -171 1382 9 13 2 4 35 0 12 0 12 +5518 66 10 -165 1382 9 16 2 4 35 0 15 0 15 +5519 66 11 -159 1382 9 18 2 4 35 0 17 0 17 +5520 66 12 -153 1382 13 15 2 4 36 0 14 0 14 +5521 66 13 -147 1382 13 13 2 4 36 0 12 0 12 +5522 66 14 -141 1382 13 14 2 4 36 0 13 0 13 +5523 66 15 -135 1382 13 16 2 4 36 0 15 0 15 +5524 66 16 -129 1382 13 18 2 4 36 0 17 0 17 +5525 66 17 -123 1382 17 15 2 4 37 0 14 0 14 +5526 66 18 -117 1382 17 13 2 4 37 0 12 0 12 +5527 66 19 -111 1382 17 14 2 4 37 0 13 0 13 +5528 66 20 -105 1382 17 16 2 4 37 0 15 0 15 +5529 66 21 -99 1382 21 15 2 4 38 0 14 0 14 +5530 66 22 -93 1382 21 13 2 4 38 0 12 0 12 +5531 66 23 -87 1382 21 16 2 4 38 0 15 0 15 +5532 66 24 -81 1382 21 18 2 4 38 0 17 0 17 +5533 66 25 -75 1382 25 15 2 4 39 0 14 0 14 +5534 66 26 -69 1382 25 13 2 4 39 0 12 0 12 +5535 66 27 -63 1382 25 16 2 4 39 0 15 0 15 +5536 66 28 -57 1382 25 18 2 4 39 0 17 0 17 +5537 66 29 -51 1382 29 17 2 4 40 0 16 0 16 +5538 66 30 -45 1382 29 15 2 4 40 0 14 0 14 +5539 66 31 -39 1382 29 13 2 4 40 0 12 0 12 +5540 66 32 -33 1382 29 16 2 4 40 0 15 0 15 +5541 66 33 -27 1382 29 18 2 4 40 0 17 0 17 +5542 66 34 -21 1382 33 15 2 4 41 0 14 0 14 +5543 66 35 -15 1382 33 13 2 4 41 0 12 0 12 +5544 66 36 -9 1382 33 14 2 4 41 0 13 0 13 +5545 66 37 -3 1382 33 16 2 4 41 0 15 0 15 +5546 66 38 3 1382 37 15 2 4 42 0 14 0 14 +5547 66 39 9 1382 37 13 2 4 42 0 12 0 12 +5548 66 40 15 1382 37 14 2 4 42 0 13 0 13 +5549 66 41 21 1382 37 16 2 4 42 0 15 0 15 +5550 66 42 27 1382 41 17 2 4 43 0 16 0 16 +5551 66 43 33 1382 41 15 2 4 43 0 14 0 14 +5552 66 44 39 1382 41 14 2 4 43 0 13 0 13 +5553 66 45 45 1382 41 16 2 4 43 0 15 0 15 +5554 66 46 51 1382 41 18 2 4 43 0 17 0 17 +5555 66 47 57 1382 45 17 2 4 44 0 16 0 16 +5556 66 48 63 1382 45 15 2 4 44 0 14 0 14 +5557 66 49 69 1382 45 14 2 4 44 0 13 0 13 +5558 66 50 75 1382 45 16 2 4 44 0 15 0 15 +5559 66 51 81 1382 49 17 2 4 45 0 16 0 16 +5560 66 52 87 1382 49 15 2 4 45 0 14 0 14 +5561 66 53 93 1382 49 14 2 4 45 0 13 0 13 +5562 66 54 99 1382 49 16 2 4 45 0 15 0 15 +5563 66 55 105 1382 53 15 2 4 46 0 14 0 14 +5564 66 56 111 1382 53 13 2 4 46 0 12 0 12 +5565 66 57 117 1382 53 14 2 4 46 0 13 0 13 +5566 66 58 123 1382 53 16 2 4 46 0 15 0 15 +5567 66 59 129 1382 57 17 2 4 47 0 16 0 16 +5568 66 60 135 1382 57 15 2 4 47 0 14 0 14 +5569 66 61 141 1382 57 13 2 4 47 0 12 0 12 +5570 66 62 147 1382 57 14 2 4 47 0 13 0 13 +5571 66 63 153 1382 57 16 2 4 47 0 15 0 15 +5572 66 64 159 1382 61 17 2 4 48 0 16 0 16 +5573 66 65 165 1382 61 15 2 4 48 0 14 0 14 +5574 66 66 171 1382 61 14 2 4 48 0 13 0 13 +5575 66 67 177 1382 61 16 2 4 48 0 15 0 15 +5576 66 68 183 1382 65 15 2 4 49 0 14 0 14 +5577 66 69 189 1382 65 13 2 4 49 0 12 0 12 +5578 66 70 195 1382 65 16 2 4 49 0 15 0 15 +5579 66 71 201 1382 65 18 2 4 49 0 17 0 17 +5580 66 72 207 1382 69 17 2 4 50 0 16 0 16 +5581 66 73 213 1382 69 15 2 4 50 0 14 0 14 +5582 66 74 219 1382 69 14 2 4 50 0 13 0 13 +5583 66 75 225 1382 69 16 2 4 50 0 15 0 15 +5584 67 0 -231 1392 1 21 2 4 33 0 20 0 20 +5585 67 1 -225 1392 1 19 2 4 33 0 18 0 18 +5586 67 2 -219 1392 1 17 2 4 33 0 16 0 16 +5587 67 3 -213 1392 1 20 2 4 33 0 19 0 19 +5588 67 4 -207 1392 1 22 2 4 33 0 21 0 21 +5589 67 5 -201 1392 5 21 2 4 34 0 20 0 20 +5590 67 6 -195 1392 5 19 2 4 34 0 18 0 18 +5591 67 7 -189 1392 5 18 2 4 34 0 17 0 17 +5592 67 8 -183 1392 5 20 2 4 34 0 19 0 19 +5593 67 9 -177 1392 9 19 2 4 35 0 18 0 18 +5594 67 10 -171 1392 9 17 2 4 35 0 16 0 16 +5595 67 11 -165 1392 9 20 2 4 35 0 19 0 19 +5596 67 12 -159 1392 9 22 2 4 35 0 21 0 21 +5597 67 13 -153 1392 13 19 2 4 36 0 18 0 18 +5598 67 14 -147 1392 13 17 2 4 36 0 16 0 16 +5599 67 15 -141 1392 13 20 2 4 36 0 19 0 19 +5600 67 16 -135 1392 13 22 2 4 36 0 21 0 21 +5601 67 17 -129 1392 17 21 2 4 37 0 20 0 20 +5602 67 18 -123 1392 17 19 2 4 37 0 18 0 18 +5603 67 19 -117 1392 17 17 2 4 37 0 16 0 16 +5604 67 20 -111 1392 17 18 2 4 37 0 17 0 17 +5605 67 21 -105 1392 17 20 2 4 37 0 19 0 19 +5606 67 22 -99 1392 21 19 2 4 38 0 18 0 18 +5607 67 23 -93 1392 21 17 2 4 38 0 16 0 16 +5608 67 24 -87 1392 21 20 2 4 38 0 19 0 19 +5609 67 25 -81 1392 21 22 2 4 38 0 21 0 21 +5610 67 26 -75 1392 25 19 2 4 39 0 18 0 18 +5611 67 27 -69 1392 25 17 2 4 39 0 16 0 16 +5612 67 28 -63 1392 25 20 2 4 39 0 19 0 19 +5613 67 29 -57 1392 25 22 2 4 39 0 21 0 21 +5614 67 30 -51 1392 29 21 2 4 40 0 20 0 20 +5615 67 31 -45 1392 29 19 2 4 40 0 18 0 18 +5616 67 32 -39 1392 29 20 2 4 40 0 19 0 19 +5617 67 33 -33 1392 29 22 2 4 40 0 21 0 21 +5618 67 34 -27 1392 29 24 2 4 40 0 23 0 23 +5619 67 35 -21 1392 33 19 2 4 41 0 18 0 18 +5620 67 36 -15 1392 33 17 2 4 41 0 16 0 16 +5621 67 37 -9 1392 33 18 2 4 41 0 17 0 17 +5622 67 38 -3 1392 33 20 2 4 41 0 19 0 19 +5623 67 39 3 1392 37 19 2 4 42 0 18 0 18 +5624 67 40 9 1392 37 17 2 4 42 0 16 0 16 +5625 67 41 15 1392 37 18 2 4 42 0 17 0 17 +5626 67 42 21 1392 37 20 2 4 42 0 19 0 19 +5627 67 43 27 1392 41 23 2 4 43 0 22 0 22 +5628 67 44 33 1392 41 21 2 4 43 0 20 0 20 +5629 67 45 39 1392 41 19 2 4 43 0 18 0 18 +5630 67 46 45 1392 41 20 2 4 43 0 19 0 19 +5631 67 47 51 1392 41 22 2 4 43 0 21 0 21 +5632 67 48 57 1392 45 21 2 4 44 0 20 0 20 +5633 67 49 63 1392 45 19 2 4 44 0 18 0 18 +5634 67 50 69 1392 45 18 2 4 44 0 17 0 17 +5635 67 51 75 1392 45 20 2 4 44 0 19 0 19 +5636 67 52 81 1392 49 21 2 4 45 0 20 0 20 +5637 67 53 87 1392 49 19 2 4 45 0 18 0 18 +5638 67 54 93 1392 49 18 2 4 45 0 17 0 17 +5639 67 55 99 1392 49 20 2 4 45 0 19 0 19 +5640 67 56 105 1392 53 19 2 4 46 0 18 0 18 +5641 67 57 111 1392 53 17 2 4 46 0 16 0 16 +5642 67 58 117 1392 53 18 2 4 46 0 17 0 17 +5643 67 59 123 1392 53 20 2 4 46 0 19 0 19 +5644 67 60 129 1392 53 22 2 4 46 0 21 0 21 +5645 67 61 135 1392 57 21 2 4 47 0 20 0 20 +5646 67 62 141 1392 57 19 2 4 47 0 18 0 18 +5647 67 63 147 1392 57 18 2 4 47 0 17 0 17 +5648 67 64 153 1392 57 20 2 4 47 0 19 0 19 +5649 67 65 159 1392 61 21 2 4 48 0 20 0 20 +5650 67 66 165 1392 61 19 2 4 48 0 18 0 18 +5651 67 67 171 1392 61 18 2 4 48 0 17 0 17 +5652 67 68 177 1392 61 20 2 4 48 0 19 0 19 +5653 67 69 183 1392 65 19 2 4 49 0 18 0 18 +5654 67 70 189 1392 65 17 2 4 49 0 16 0 16 +5655 67 71 195 1392 65 20 2 4 49 0 19 0 19 +5656 67 72 201 1392 65 22 2 4 49 0 21 0 21 +5657 67 73 207 1392 69 21 2 4 50 0 20 0 20 +5658 67 74 213 1392 69 19 2 4 50 0 18 0 18 +5659 67 75 219 1392 69 18 2 4 50 0 17 0 17 +5660 67 76 225 1392 69 20 2 4 50 0 19 0 19 +5661 67 77 231 1392 69 22 2 4 50 0 21 0 21 +5662 68 0 -231 1402 1 25 2 4 33 0 24 0 24 +5663 68 1 -225 1402 1 23 2 4 33 0 22 0 22 +5664 68 2 -219 1402 1 24 2 4 33 0 23 0 23 +5665 68 3 -213 1402 1 26 2 4 33 0 25 0 25 +5666 68 4 -207 1402 5 27 2 4 34 0 26 0 26 +5667 68 5 -201 1402 5 25 2 4 34 0 24 0 24 +5668 68 6 -195 1402 5 23 2 4 34 0 22 0 22 +5669 68 7 -189 1402 5 22 2 4 34 0 21 0 21 +5670 68 8 -183 1402 5 24 2 4 34 0 23 0 23 +5671 68 9 -177 1402 9 23 2 4 35 0 22 0 22 +5672 68 10 -171 1402 9 21 2 4 35 0 20 0 20 +5673 68 11 -165 1402 9 24 2 4 35 0 23 0 23 +5674 68 12 -159 1402 9 26 2 4 35 0 25 0 25 +5675 68 13 -153 1402 13 23 2 4 36 0 22 0 22 +5676 68 14 -147 1402 13 21 2 4 36 0 20 0 20 +5677 68 15 -141 1402 13 24 2 4 36 0 23 0 23 +5678 68 16 -135 1402 13 26 2 4 36 0 25 0 25 +5679 68 17 -129 1402 17 25 2 4 37 0 24 0 24 +5680 68 18 -123 1402 17 23 2 4 37 0 22 0 22 +5681 68 19 -117 1402 17 22 2 4 37 0 21 0 21 +5682 68 20 -111 1402 17 24 2 4 37 0 23 0 23 +5683 68 21 -105 1402 17 26 2 4 37 0 25 0 25 +5684 68 22 -99 1402 21 23 2 4 38 0 22 0 22 +5685 68 23 -93 1402 21 21 2 4 38 0 20 0 20 +5686 68 24 -87 1402 21 24 2 4 38 0 23 0 23 +5687 68 25 -81 1402 21 26 2 4 38 0 25 0 25 +5688 68 26 -75 1402 25 23 2 4 39 0 22 0 22 +5689 68 27 -69 1402 25 21 2 4 39 0 20 0 20 +5690 68 28 -63 1402 25 24 2 4 39 0 23 0 23 +5691 68 29 -57 1402 25 26 2 4 39 0 25 0 25 +5692 68 30 -51 1402 29 27 2 4 40 0 26 0 26 +5693 68 31 -45 1402 29 25 2 4 40 0 24 0 24 +5694 68 32 -39 1402 29 23 2 4 40 0 22 0 22 +5695 68 33 -33 1402 29 26 2 4 40 0 25 0 25 +5696 68 34 -27 1402 29 28 2 4 40 0 27 0 27 +5697 68 35 -21 1402 33 23 2 4 41 0 22 0 22 +5698 68 36 -15 1402 33 21 2 4 41 0 20 0 20 +5699 68 37 -9 1402 33 22 2 4 41 0 21 0 21 +5700 68 38 -3 1402 33 24 2 4 41 0 23 0 23 +5701 68 39 3 1402 37 23 2 4 42 0 22 0 22 +5702 68 40 9 1402 37 21 2 4 42 0 20 0 20 +5703 68 41 15 1402 37 22 2 4 42 0 21 0 21 +5704 68 42 21 1402 37 24 2 4 42 0 23 0 23 +5705 68 43 27 1402 41 27 2 4 43 0 26 0 26 +5706 68 44 33 1402 41 25 2 4 43 0 24 0 24 +5707 68 45 39 1402 41 24 2 4 43 0 23 0 23 +5708 68 46 45 1402 41 26 2 4 43 0 25 0 25 +5709 68 47 51 1402 41 28 2 4 43 0 27 0 27 +5710 68 48 57 1402 45 25 2 4 44 0 24 0 24 +5711 68 49 63 1402 45 23 2 4 44 0 22 0 22 +5712 68 50 69 1402 45 22 2 4 44 0 21 0 21 +5713 68 51 75 1402 45 24 2 4 44 0 23 0 23 +5714 68 52 81 1402 49 25 2 4 45 0 24 0 24 +5715 68 53 87 1402 49 23 2 4 45 0 22 0 22 +5716 68 54 93 1402 49 22 2 4 45 0 21 0 21 +5717 68 55 99 1402 49 24 2 4 45 0 23 0 23 +5718 68 56 105 1402 53 25 2 4 46 0 24 0 24 +5719 68 57 111 1402 53 23 2 4 46 0 22 0 22 +5720 68 58 117 1402 53 21 2 4 46 0 20 0 20 +5721 68 59 123 1402 53 24 2 4 46 0 23 0 23 +5722 68 60 129 1402 53 26 2 4 46 0 25 0 25 +5723 68 61 135 1402 57 25 2 4 47 0 24 0 24 +5724 68 62 141 1402 57 23 2 4 47 0 22 0 22 +5725 68 63 147 1402 57 22 2 4 47 0 21 0 21 +5726 68 64 153 1402 57 24 2 4 47 0 23 0 23 +5727 68 65 159 1402 61 25 2 4 48 0 24 0 24 +5728 68 66 165 1402 61 23 2 4 48 0 22 0 22 +5729 68 67 171 1402 61 22 2 4 48 0 21 0 21 +5730 68 68 177 1402 61 24 2 4 48 0 23 0 23 +5731 68 69 183 1402 65 23 2 4 49 0 22 0 22 +5732 68 70 189 1402 65 21 2 4 49 0 20 0 20 +5733 68 71 195 1402 65 24 2 4 49 0 23 0 23 +5734 68 72 201 1402 65 26 2 4 49 0 25 0 25 +5735 68 73 207 1402 65 28 2 4 49 0 27 0 27 +5736 68 74 213 1402 69 25 2 4 50 0 24 0 24 +5737 68 75 219 1402 69 23 2 4 50 0 22 0 22 +5738 68 76 225 1402 69 24 2 4 50 0 23 0 23 +5739 68 77 231 1402 69 26 2 4 50 0 25 0 25 +5740 69 0 -231 1412 1 29 2 4 33 0 28 0 28 +5741 69 1 -225 1412 1 27 2 4 33 0 26 0 26 +5742 69 2 -219 1412 1 28 2 4 33 0 27 0 27 +5743 69 3 -213 1412 1 30 2 4 33 0 29 0 29 +5744 69 4 -207 1412 5 31 2 4 34 0 30 0 30 +5745 69 5 -201 1412 5 29 2 4 34 0 28 0 28 +5746 69 6 -195 1412 5 26 2 4 34 0 25 0 25 +5747 69 7 -189 1412 5 28 2 4 34 0 27 0 27 +5748 69 8 -183 1412 9 29 2 4 35 0 28 0 28 +5749 69 9 -177 1412 9 27 2 4 35 0 26 0 26 +5750 69 10 -171 1412 9 25 2 4 35 0 24 0 24 +5751 69 11 -165 1412 9 28 2 4 35 0 27 0 27 +5752 69 12 -159 1412 9 30 2 4 35 0 29 0 29 +5753 69 13 -153 1412 13 27 2 4 36 0 26 0 26 +5754 69 14 -147 1412 13 25 2 4 36 0 24 0 24 +5755 69 15 -141 1412 13 28 2 4 36 0 27 0 27 +5756 69 16 -135 1412 13 30 2 4 36 0 29 0 29 +5757 69 17 -129 1412 17 29 2 4 37 0 28 0 28 +5758 69 18 -123 1412 17 27 2 4 37 0 26 0 26 +5759 69 19 -117 1412 17 28 2 4 37 0 27 0 27 +5760 69 20 -111 1412 17 30 2 4 37 0 29 0 29 +5761 69 21 -105 1412 17 32 2 4 37 0 31 0 31 +5762 69 22 -99 1412 21 27 2 4 38 0 26 0 26 +5763 69 23 -93 1412 21 25 2 4 38 0 24 0 24 +5764 69 24 -87 1412 21 28 2 4 38 0 27 0 27 +5765 69 25 -81 1412 21 30 2 4 38 0 29 0 29 +5766 69 26 -75 1412 25 27 2 4 39 0 26 0 26 +5767 69 27 -69 1412 25 25 2 4 39 0 24 0 24 +5768 69 28 -63 1412 25 28 2 4 39 0 27 0 27 +5769 69 29 -57 1412 25 30 2 4 39 0 29 0 29 +5770 69 30 -51 1412 29 31 2 4 40 0 30 0 30 +5771 69 31 -45 1412 29 29 2 4 40 0 28 0 28 +5772 69 32 -39 1412 29 30 2 4 40 0 29 0 29 +5773 69 33 -33 1412 29 32 2 4 40 0 31 0 31 +5774 69 34 -27 1412 29 34 2 4 40 0 33 1 1 +5775 69 35 -21 1412 33 27 2 4 41 0 26 0 26 +5776 69 36 -15 1412 33 25 2 4 41 0 24 0 24 +5777 69 37 -9 1412 33 26 2 4 41 0 25 0 25 +5778 69 38 -3 1412 33 28 2 4 41 0 27 0 27 +5779 69 39 3 1412 37 27 2 4 42 0 26 0 26 +5780 69 40 9 1412 37 25 2 4 42 0 24 0 24 +5781 69 41 15 1412 37 26 2 4 42 0 25 0 25 +5782 69 42 21 1412 37 28 2 4 42 0 27 0 27 +5783 69 43 27 1412 41 33 2 4 43 0 32 1 0 +5784 69 44 33 1412 41 31 2 4 43 0 30 0 30 +5785 69 45 39 1412 41 29 2 4 43 0 28 0 28 +5786 69 46 45 1412 41 30 2 4 43 0 29 0 29 +5787 69 47 51 1412 41 32 2 4 43 0 31 0 31 +5788 69 48 57 1412 45 29 2 4 44 0 28 0 28 +5789 69 49 63 1412 45 27 2 4 44 0 26 0 26 +5790 69 50 69 1412 45 26 2 4 44 0 25 0 25 +5791 69 51 75 1412 45 28 2 4 44 0 27 0 27 +5792 69 52 81 1412 49 29 2 4 45 0 28 0 28 +5793 69 53 87 1412 49 27 2 4 45 0 26 0 26 +5794 69 54 93 1412 49 26 2 4 45 0 25 0 25 +5795 69 55 99 1412 49 28 2 4 45 0 27 0 27 +5796 69 56 105 1412 53 31 2 4 46 0 30 0 30 +5797 69 57 111 1412 53 29 2 4 46 0 28 0 28 +5798 69 58 117 1412 53 27 2 4 46 0 26 0 26 +5799 69 59 123 1412 53 28 2 4 46 0 27 0 27 +5800 69 60 129 1412 53 30 2 4 46 0 29 0 29 +5801 69 61 135 1412 57 29 2 4 47 0 28 0 28 +5802 69 62 141 1412 57 27 2 4 47 0 26 0 26 +5803 69 63 147 1412 57 26 2 4 47 0 25 0 25 +5804 69 64 153 1412 57 28 2 4 47 0 27 0 27 +5805 69 65 159 1412 61 29 2 4 48 0 28 0 28 +5806 69 66 165 1412 61 27 2 4 48 0 26 0 26 +5807 69 67 171 1412 61 26 2 4 48 0 25 0 25 +5808 69 68 177 1412 61 28 2 4 48 0 27 0 27 +5809 69 69 183 1412 61 30 2 4 48 0 29 0 29 +5810 69 70 189 1412 65 27 2 4 49 0 26 0 26 +5811 69 71 195 1412 65 25 2 4 49 0 24 0 24 +5812 69 72 201 1412 65 30 2 4 49 0 29 0 29 +5813 69 73 207 1412 65 32 2 4 49 0 31 0 31 +5814 69 74 213 1412 69 29 2 4 50 0 28 0 28 +5815 69 75 219 1412 69 27 2 4 50 0 26 0 26 +5816 69 76 225 1412 69 28 2 4 50 0 27 0 27 +5817 69 77 231 1412 69 30 2 4 50 0 29 0 29 +5818 70 0 -237 1422 1 33 2 4 33 0 32 1 0 +5819 70 1 -231 1422 1 31 2 4 33 0 30 0 30 +5820 70 2 -225 1422 1 32 2 4 33 0 31 0 31 +5821 70 3 -219 1422 1 34 2 4 33 0 33 1 1 +5822 70 4 -213 1422 1 36 2 4 33 0 35 1 3 +5823 70 5 -207 1422 5 35 2 4 34 0 34 1 2 +5824 70 6 -201 1422 5 33 2 4 34 0 32 1 0 +5825 70 7 -195 1422 5 30 2 4 34 0 29 0 29 +5826 70 8 -189 1422 5 32 2 4 34 0 31 0 31 +5827 70 9 -183 1422 9 33 2 4 35 0 32 1 0 +5828 70 10 -177 1422 9 31 2 4 35 0 30 0 30 +5829 70 11 -171 1422 9 32 2 4 35 0 31 0 31 +5830 70 12 -165 1422 9 34 2 4 35 0 33 1 1 +5831 70 13 -159 1422 9 36 2 4 35 0 35 1 3 +5832 70 14 -153 1422 13 31 2 4 36 0 30 0 30 +5833 70 15 -147 1422 13 29 2 4 36 0 28 0 28 +5834 70 16 -141 1422 13 32 2 4 36 0 31 0 31 +5835 70 17 -135 1422 13 34 2 4 36 0 33 1 1 +5836 70 18 -129 1422 17 33 2 4 37 0 32 1 0 +5837 70 19 -123 1422 17 31 2 4 37 0 30 0 30 +5838 70 20 -117 1422 17 34 2 4 37 0 33 1 1 +5839 70 21 -111 1422 17 36 2 4 37 0 35 1 3 +5840 70 22 -105 1422 21 33 2 4 38 0 32 1 0 +5841 70 23 -99 1422 21 31 2 4 38 0 30 0 30 +5842 70 24 -93 1422 21 29 2 4 38 0 28 0 28 +5843 70 25 -87 1422 21 32 2 4 38 0 31 0 31 +5844 70 26 -81 1422 21 34 2 4 38 0 33 1 1 +5845 70 27 -75 1422 25 31 2 4 39 0 30 0 30 +5846 70 28 -69 1422 25 29 2 4 39 0 28 0 28 +5847 70 29 -63 1422 25 32 2 4 39 0 31 0 31 +5848 70 30 -57 1422 25 34 2 4 39 0 33 1 1 +5849 70 31 -51 1422 29 35 2 4 40 0 34 1 2 +5850 70 32 -45 1422 29 33 2 4 40 0 32 1 0 +5851 70 33 -39 1422 29 36 2 4 40 0 35 1 3 +5852 70 34 -33 1422 29 38 2 4 40 0 37 1 5 +5853 70 35 -27 1422 29 40 2 4 40 0 39 1 7 +5854 70 36 -21 1422 33 31 2 4 41 0 30 0 30 +5855 70 37 -15 1422 33 29 2 4 41 0 28 0 28 +5856 70 38 -9 1422 33 30 2 4 41 0 29 0 29 +5857 70 39 -3 1422 33 32 2 4 41 0 31 0 31 +5858 70 40 3 1422 37 31 2 4 42 0 30 0 30 +5859 70 41 9 1422 37 29 2 4 42 0 28 0 28 +5860 70 42 15 1422 37 30 2 4 42 0 29 0 29 +5861 70 43 21 1422 37 32 2 4 42 0 31 0 31 +5862 70 44 27 1422 41 39 2 4 43 0 38 1 6 +5863 70 45 33 1422 41 37 2 4 43 0 36 1 4 +5864 70 46 39 1422 41 35 2 4 43 0 34 1 2 +5865 70 47 45 1422 41 34 2 4 43 0 33 1 1 +5866 70 48 51 1422 41 36 2 4 43 0 35 1 3 +5867 70 49 57 1422 45 33 2 4 44 0 32 1 0 +5868 70 50 63 1422 45 31 2 4 44 0 30 0 30 +5869 70 51 69 1422 45 30 2 4 44 0 29 0 29 +5870 70 52 75 1422 45 32 2 4 44 0 31 0 31 +5871 70 53 81 1422 49 33 2 4 45 0 32 1 0 +5872 70 54 87 1422 49 31 2 4 45 0 30 0 30 +5873 70 55 93 1422 49 30 2 4 45 0 29 0 29 +5874 70 56 99 1422 49 32 2 4 45 0 31 0 31 +5875 70 57 105 1422 49 34 2 4 45 0 33 1 1 +5876 70 58 111 1422 53 35 2 4 46 0 34 1 2 +5877 70 59 117 1422 53 33 2 4 46 0 32 1 0 +5878 70 60 123 1422 53 32 2 4 46 0 31 0 31 +5879 70 61 129 1422 53 34 2 4 46 0 33 1 1 +5880 70 62 135 1422 57 33 2 4 47 0 32 1 0 +5881 70 63 141 1422 57 31 2 4 47 0 30 0 30 +5882 70 64 147 1422 57 30 2 4 47 0 29 0 29 +5883 70 65 153 1422 57 32 2 4 47 0 31 0 31 +5884 70 66 159 1422 61 35 2 4 48 0 34 1 2 +5885 70 67 165 1422 61 33 2 4 48 0 32 1 0 +5886 70 68 171 1422 61 31 2 4 48 0 30 0 30 +5887 70 69 177 1422 61 32 2 4 48 0 31 0 31 +5888 70 70 183 1422 61 34 2 4 48 0 33 1 1 +5889 70 71 189 1422 65 31 2 4 49 0 30 0 30 +5890 70 72 195 1422 65 29 2 4 49 0 28 0 28 +5891 70 73 201 1422 65 34 2 4 49 0 33 1 1 +5892 70 74 207 1422 65 36 2 4 49 0 35 1 3 +5893 70 75 213 1422 69 35 2 4 50 0 34 1 2 +5894 70 76 219 1422 69 33 2 4 50 0 32 1 0 +5895 70 77 225 1422 69 31 2 4 50 0 30 0 30 +5896 70 78 231 1422 69 32 2 4 50 0 31 0 31 +5897 70 79 237 1422 69 34 2 4 50 0 33 1 1 +5898 71 0 -237 1432 1 39 2 4 33 0 38 1 6 +5899 71 1 -231 1432 1 37 2 4 33 0 36 1 4 +5900 71 2 -225 1432 1 35 2 4 33 0 34 1 2 +5901 71 3 -219 1432 1 38 2 4 33 0 37 1 5 +5902 71 4 -213 1432 1 40 2 4 33 0 39 1 7 +5903 71 5 -207 1432 5 39 2 4 34 0 38 1 6 +5904 71 6 -201 1432 5 37 2 4 34 0 36 1 4 +5905 71 7 -195 1432 5 34 2 4 34 0 33 1 1 +5906 71 8 -189 1432 5 36 2 4 34 0 35 1 3 +5907 71 9 -183 1432 9 37 2 4 35 0 36 1 4 +5908 71 10 -177 1432 9 35 2 4 35 0 34 1 2 +5909 71 11 -171 1432 9 38 2 4 35 0 37 1 5 +5910 71 12 -165 1432 9 40 2 4 35 0 39 1 7 +5911 71 13 -159 1432 13 35 2 4 36 0 34 1 2 +5912 71 14 -153 1432 13 33 2 4 36 0 32 1 0 +5913 71 15 -147 1432 13 36 2 4 36 0 35 1 3 +5914 71 16 -141 1432 13 38 2 4 36 0 37 1 5 +5915 71 17 -135 1432 13 40 2 4 36 0 39 1 7 +5916 71 18 -129 1432 17 37 2 4 37 0 36 1 4 +5917 71 19 -123 1432 17 35 2 4 37 0 34 1 2 +5918 71 20 -117 1432 17 38 2 4 37 0 37 1 5 +5919 71 21 -111 1432 17 40 2 4 37 0 39 1 7 +5920 71 22 -105 1432 21 37 2 4 38 0 36 1 4 +5921 71 23 -99 1432 21 35 2 4 38 0 34 1 2 +5922 71 24 -93 1432 21 36 2 4 38 0 35 1 3 +5923 71 25 -87 1432 21 38 2 4 38 0 37 1 5 +5924 71 26 -81 1432 21 40 2 4 38 0 39 1 7 +5925 71 27 -75 1432 25 35 2 4 39 0 34 1 2 +5926 71 28 -69 1432 25 33 2 4 39 0 32 1 0 +5927 71 29 -63 1432 25 36 2 4 39 0 35 1 3 +5928 71 30 -57 1432 25 38 2 4 39 0 37 1 5 +5929 71 31 -51 1432 29 39 2 4 40 0 38 1 6 +5930 71 32 -45 1432 29 37 2 4 40 0 36 1 4 +5931 71 33 -39 1432 30 1 2 4 40 1 40 1 8 +5932 71 34 -33 1432 30 2 2 4 40 1 41 1 9 +5933 71 35 -27 1432 30 4 2 4 40 1 43 1 11 +5934 71 36 -21 1432 33 35 2 4 41 0 34 1 2 +5935 71 37 -15 1432 33 33 2 4 41 0 32 1 0 +5936 71 38 -9 1432 33 34 2 4 41 0 33 1 1 +5937 71 39 -3 1432 33 36 2 4 41 0 35 1 3 +5938 71 40 3 1432 37 35 2 4 42 0 34 1 2 +5939 71 41 9 1432 37 33 2 4 42 0 32 1 0 +5940 71 42 15 1432 37 34 2 4 42 0 33 1 1 +5941 71 43 21 1432 37 36 2 4 42 0 35 1 3 +5942 71 44 27 1432 42 3 2 4 43 1 42 1 10 +5943 71 45 33 1432 42 1 2 4 43 1 40 1 8 +5944 71 46 39 1432 42 2 2 4 43 1 41 1 9 +5945 71 47 45 1432 41 38 2 4 43 0 37 1 5 +5946 71 48 51 1432 41 40 2 4 43 0 39 1 7 +5947 71 49 57 1432 45 37 2 4 44 0 36 1 4 +5948 71 50 63 1432 45 35 2 4 44 0 34 1 2 +5949 71 51 69 1432 45 34 2 4 44 0 33 1 1 +5950 71 52 75 1432 45 36 2 4 44 0 35 1 3 +5951 71 53 81 1432 49 39 2 4 45 0 38 1 6 +5952 71 54 87 1432 49 37 2 4 45 0 36 1 4 +5953 71 55 93 1432 49 35 2 4 45 0 34 1 2 +5954 71 56 99 1432 49 36 2 4 45 0 35 1 3 +5955 71 57 105 1432 49 38 2 4 45 0 37 1 5 +5956 71 58 111 1432 53 39 2 4 46 0 38 1 6 +5957 71 59 117 1432 53 37 2 4 46 0 36 1 4 +5958 71 60 123 1432 53 36 2 4 46 0 35 1 3 +5959 71 61 129 1432 53 38 2 4 46 0 37 1 5 +5960 71 62 135 1432 57 39 2 4 47 0 38 1 6 +5961 71 63 141 1432 57 37 2 4 47 0 36 1 4 +5962 71 64 147 1432 57 35 2 4 47 0 34 1 2 +5963 71 65 153 1432 57 34 2 4 47 0 33 1 1 +5964 71 66 159 1432 57 36 2 4 47 0 35 1 3 +5965 71 67 165 1432 61 39 2 4 48 0 38 1 6 +5966 71 68 171 1432 61 37 2 4 48 0 36 1 4 +5967 71 69 177 1432 61 36 2 4 48 0 35 1 3 +5968 71 70 183 1432 61 38 2 4 48 0 37 1 5 +5969 71 71 189 1432 65 35 2 4 49 0 34 1 2 +5970 71 72 195 1432 65 33 2 4 49 0 32 1 0 +5971 71 73 201 1432 65 38 2 4 49 0 37 1 5 +5972 71 74 207 1432 65 40 2 4 49 0 39 1 7 +5973 71 75 213 1432 69 39 2 4 50 0 38 1 6 +5974 71 76 219 1432 69 37 2 4 50 0 36 1 4 +5975 71 77 225 1432 69 36 2 4 50 0 35 1 3 +5976 71 78 231 1432 69 38 2 4 50 0 37 1 5 +5977 71 79 237 1432 69 40 2 4 50 0 39 1 7 +5978 72 0 -237 1442 2 3 2 4 33 1 42 1 10 +5979 72 1 -231 1442 2 1 2 4 33 1 40 1 8 +5980 72 2 -225 1442 2 2 2 4 33 1 41 1 9 +5981 72 3 -219 1442 2 4 2 4 33 1 43 1 11 +5982 72 4 -213 1442 6 3 2 4 34 1 42 1 10 +5983 72 5 -207 1442 6 1 2 4 34 1 40 1 8 +5984 72 6 -201 1442 6 2 2 4 34 1 41 1 9 +5985 72 7 -195 1442 5 38 2 4 34 0 37 1 5 +5986 72 8 -189 1442 5 40 2 4 34 0 39 1 7 +5987 72 9 -183 1442 9 39 2 4 35 0 38 1 6 +5988 72 10 -177 1442 10 1 2 4 35 1 40 1 8 +5989 72 11 -171 1442 10 2 2 4 35 1 41 1 9 +5990 72 12 -165 1442 10 4 2 4 35 1 43 1 11 +5991 72 13 -159 1442 13 39 2 4 36 0 38 1 6 +5992 72 14 -153 1442 13 37 2 4 36 0 36 1 4 +5993 72 15 -147 1442 14 1 2 4 36 1 40 1 8 +5994 72 16 -141 1442 14 2 2 4 36 1 41 1 9 +5995 72 17 -135 1442 14 4 2 4 36 1 43 1 11 +5996 72 18 -129 1442 17 39 2 4 37 0 38 1 6 +5997 72 19 -123 1442 18 1 2 4 37 1 40 1 8 +5998 72 20 -117 1442 18 2 2 4 37 1 41 1 9 +5999 72 21 -111 1442 18 4 2 4 37 1 43 1 11 +6000 72 22 -105 1442 21 39 2 4 38 0 38 1 6 +6001 72 23 -99 1442 22 3 2 4 38 1 42 1 10 +6002 72 24 -93 1442 22 1 2 4 38 1 40 1 8 +6003 72 25 -87 1442 22 2 2 4 38 1 41 1 9 +6004 72 26 -81 1442 22 4 2 4 38 1 43 1 11 +6005 72 27 -75 1442 25 39 2 4 39 0 38 1 6 +6006 72 28 -69 1442 25 37 2 4 39 0 36 1 4 +6007 72 29 -63 1442 25 40 2 4 39 0 39 1 7 +6008 72 30 -57 1442 26 2 2 4 39 1 41 1 9 +6009 72 31 -51 1442 30 7 2 4 40 1 46 1 14 +6010 72 32 -45 1442 30 5 2 4 40 1 44 1 12 +6011 72 33 -39 1442 30 3 2 4 40 1 42 1 10 +6012 72 34 -33 1442 30 6 2 4 40 1 45 1 13 +6013 72 35 -27 1442 30 8 2 4 40 1 47 1 15 +6014 72 36 -21 1442 33 39 2 4 41 0 38 1 6 +6015 72 37 -15 1442 33 37 2 4 41 0 36 1 4 +6016 72 38 -9 1442 33 38 2 4 41 0 37 1 5 +6017 72 39 -3 1442 33 40 2 4 41 0 39 1 7 +6018 72 40 3 1442 37 39 2 4 42 0 38 1 6 +6019 72 41 9 1442 37 37 2 4 42 0 36 1 4 +6020 72 42 15 1442 37 38 2 4 42 0 37 1 5 +6021 72 43 21 1442 37 40 2 4 42 0 39 1 7 +6022 72 44 27 1442 42 7 2 4 43 1 46 1 14 +6023 72 45 33 1442 42 5 2 4 43 1 44 1 12 +6024 72 46 39 1442 42 4 2 4 43 1 43 1 11 +6025 72 47 45 1442 42 6 2 4 43 1 45 1 13 +6026 72 48 51 1442 42 8 2 4 43 1 47 1 15 +6027 72 49 57 1442 46 1 2 4 44 1 40 1 8 +6028 72 50 63 1442 45 39 2 4 44 0 38 1 6 +6029 72 51 69 1442 45 38 2 4 44 0 37 1 5 +6030 72 52 75 1442 45 40 2 4 44 0 39 1 7 +6031 72 53 81 1442 50 3 2 4 45 1 42 1 10 +6032 72 54 87 1442 50 1 2 4 45 1 40 1 8 +6033 72 55 93 1442 50 2 2 4 45 1 41 1 9 +6034 72 56 99 1442 50 4 2 4 45 1 43 1 11 +6035 72 57 105 1442 49 40 2 4 45 0 39 1 7 +6036 72 58 111 1442 54 3 2 4 46 1 42 1 10 +6037 72 59 117 1442 54 1 2 4 46 1 40 1 8 +6038 72 60 123 1442 54 2 2 4 46 1 41 1 9 +6039 72 61 129 1442 53 40 2 4 46 0 39 1 7 +6040 72 62 135 1442 58 3 2 4 47 1 42 1 10 +6041 72 63 141 1442 58 1 2 4 47 1 40 1 8 +6042 72 64 147 1442 58 2 2 4 47 1 41 1 9 +6043 72 65 153 1442 57 38 2 4 47 0 37 1 5 +6044 72 66 159 1442 57 40 2 4 47 0 39 1 7 +6045 72 67 165 1442 62 3 2 4 48 1 42 1 10 +6046 72 68 171 1442 62 1 2 4 48 1 40 1 8 +6047 72 69 177 1442 62 2 2 4 48 1 41 1 9 +6048 72 70 183 1442 61 40 2 4 48 0 39 1 7 +6049 72 71 189 1442 65 39 2 4 49 0 38 1 6 +6050 72 72 195 1442 65 37 2 4 49 0 36 1 4 +6051 72 73 201 1442 66 1 2 4 49 1 40 1 8 +6052 72 74 207 1442 66 2 2 4 49 1 41 1 9 +6053 72 75 213 1442 66 4 2 4 49 1 43 1 11 +6054 72 76 219 1442 70 3 2 4 50 1 42 1 10 +6055 72 77 225 1442 70 1 2 4 50 1 40 1 8 +6056 72 78 231 1442 70 2 2 4 50 1 41 1 9 +6057 72 79 237 1442 70 4 2 4 50 1 43 1 11 +6058 73 0 -237 1452 2 7 2 4 33 1 46 1 14 +6059 73 1 -231 1452 2 5 2 4 33 1 44 1 12 +6060 73 2 -225 1452 2 6 2 4 33 1 45 1 13 +6061 73 3 -219 1452 2 8 2 4 33 1 47 1 15 +6062 73 4 -213 1452 6 7 2 4 34 1 46 1 14 +6063 73 5 -207 1452 6 5 2 4 34 1 44 1 12 +6064 73 6 -201 1452 6 4 2 4 34 1 43 1 11 +6065 73 7 -195 1452 6 6 2 4 34 1 45 1 13 +6066 73 8 -189 1452 6 8 2 4 34 1 47 1 15 +6067 73 9 -183 1452 10 5 2 4 35 1 44 1 12 +6068 73 10 -177 1452 10 3 2 4 35 1 42 1 10 +6069 73 11 -171 1452 10 6 2 4 35 1 45 1 13 +6070 73 12 -165 1452 10 8 2 4 35 1 47 1 15 +6071 73 13 -159 1452 14 7 2 4 36 1 46 1 14 +6072 73 14 -153 1452 14 5 2 4 36 1 44 1 12 +6073 73 15 -147 1452 14 3 2 4 36 1 42 1 10 +6074 73 16 -141 1452 14 6 2 4 36 1 45 1 13 +6075 73 17 -135 1452 14 8 2 4 36 1 47 1 15 +6076 73 18 -129 1452 18 5 2 4 37 1 44 1 12 +6077 73 19 -123 1452 18 3 2 4 37 1 42 1 10 +6078 73 20 -117 1452 18 6 2 4 37 1 45 1 13 +6079 73 21 -111 1452 18 8 2 4 37 1 47 1 15 +6080 73 22 -105 1452 22 7 2 4 38 1 46 1 14 +6081 73 23 -99 1452 22 5 2 4 38 1 44 1 12 +6082 73 24 -93 1452 22 6 2 4 38 1 45 1 13 +6083 73 25 -87 1452 22 8 2 4 38 1 47 1 15 +6084 73 26 -81 1452 22 10 2 4 38 1 49 1 17 +6085 73 27 -75 1452 26 3 2 4 39 1 42 1 10 +6086 73 28 -69 1452 26 1 2 4 39 1 40 1 8 +6087 73 29 -63 1452 26 4 2 4 39 1 43 1 11 +6088 73 30 -57 1452 26 6 2 4 39 1 45 1 13 +6089 73 31 -51 1452 30 11 2 4 40 1 50 1 18 +6090 73 32 -45 1452 30 9 2 4 40 1 48 1 16 +6091 73 33 -39 1452 30 10 2 4 40 1 49 1 17 +6092 73 34 -33 1452 30 12 2 4 40 1 51 1 19 +6093 73 35 -27 1452 34 5 2 4 41 1 44 1 12 +6094 73 36 -21 1452 34 3 2 4 41 1 42 1 10 +6095 73 37 -15 1452 34 1 2 4 41 1 40 1 8 +6096 73 38 -9 1452 34 2 2 4 41 1 41 1 9 +6097 73 39 -3 1452 34 4 2 4 41 1 43 1 11 +6098 73 40 3 1452 38 3 2 4 42 1 42 1 10 +6099 73 41 9 1452 38 1 2 4 42 1 40 1 8 +6100 73 42 15 1452 38 2 2 4 42 1 41 1 9 +6101 73 43 21 1452 38 4 2 4 42 1 43 1 11 +6102 73 44 27 1452 38 6 2 4 42 1 45 1 13 +6103 73 45 33 1452 42 11 2 4 43 1 50 1 18 +6104 73 46 39 1452 42 9 2 4 43 1 48 1 16 +6105 73 47 45 1452 42 10 2 4 43 1 49 1 17 +6106 73 48 51 1452 42 12 2 4 43 1 51 1 19 +6107 73 49 57 1452 46 5 2 4 44 1 44 1 12 +6108 73 50 63 1452 46 3 2 4 44 1 42 1 10 +6109 73 51 69 1452 46 2 2 4 44 1 41 1 9 +6110 73 52 75 1452 46 4 2 4 44 1 43 1 11 +6111 73 53 81 1452 50 9 2 4 45 1 48 1 16 +6112 73 54 87 1452 50 7 2 4 45 1 46 1 14 +6113 73 55 93 1452 50 5 2 4 45 1 44 1 12 +6114 73 56 99 1452 50 6 2 4 45 1 45 1 13 +6115 73 57 105 1452 50 8 2 4 45 1 47 1 15 +6116 73 58 111 1452 54 7 2 4 46 1 46 1 14 +6117 73 59 117 1452 54 5 2 4 46 1 44 1 12 +6118 73 60 123 1452 54 4 2 4 46 1 43 1 11 +6119 73 61 129 1452 54 6 2 4 46 1 45 1 13 +6120 73 62 135 1452 58 7 2 4 47 1 46 1 14 +6121 73 63 141 1452 58 5 2 4 47 1 44 1 12 +6122 73 64 147 1452 58 4 2 4 47 1 43 1 11 +6123 73 65 153 1452 58 6 2 4 47 1 45 1 13 +6124 73 66 159 1452 58 8 2 4 47 1 47 1 15 +6125 73 67 165 1452 62 7 2 4 48 1 46 1 14 +6126 73 68 171 1452 62 5 2 4 48 1 44 1 12 +6127 73 69 177 1452 62 4 2 4 48 1 43 1 11 +6128 73 70 183 1452 62 6 2 4 48 1 45 1 13 +6129 73 71 189 1452 66 7 2 4 49 1 46 1 14 +6130 73 72 195 1452 66 5 2 4 49 1 44 1 12 +6131 73 73 201 1452 66 3 2 4 49 1 42 1 10 +6132 73 74 207 1452 66 6 2 4 49 1 45 1 13 +6133 73 75 213 1452 66 8 2 4 49 1 47 1 15 +6134 73 76 219 1452 70 7 2 4 50 1 46 1 14 +6135 73 77 225 1452 70 5 2 4 50 1 44 1 12 +6136 73 78 231 1452 70 6 2 4 50 1 45 1 13 +6137 73 79 237 1452 70 8 2 4 50 1 47 1 15 +6138 74 0 -243 1462 2 13 2 4 33 1 52 1 20 +6139 74 1 -237 1462 2 11 2 4 33 1 50 1 18 +6140 74 2 -231 1462 2 9 2 4 33 1 48 1 16 +6141 74 3 -225 1462 2 10 2 4 33 1 49 1 17 +6142 74 4 -219 1462 2 12 2 4 33 1 51 1 19 +6143 74 5 -213 1462 6 11 2 4 34 1 50 1 18 +6144 74 6 -207 1462 6 9 2 4 34 1 48 1 16 +6145 74 7 -201 1462 6 10 2 4 34 1 49 1 17 +6146 74 8 -195 1462 6 12 2 4 34 1 51 1 19 +6147 74 9 -189 1462 10 11 2 4 35 1 50 1 18 +6148 74 10 -183 1462 10 9 2 4 35 1 48 1 16 +6149 74 11 -177 1462 10 7 2 4 35 1 46 1 14 +6150 74 12 -171 1462 10 10 2 4 35 1 49 1 17 +6151 74 13 -165 1462 10 12 2 4 35 1 51 1 19 +6152 74 14 -159 1462 14 11 2 4 36 1 50 1 18 +6153 74 15 -153 1462 14 9 2 4 36 1 48 1 16 +6154 74 16 -147 1462 14 10 2 4 36 1 49 1 17 +6155 74 17 -141 1462 14 12 2 4 36 1 51 1 19 +6156 74 18 -135 1462 18 11 2 4 37 1 50 1 18 +6157 74 19 -129 1462 18 9 2 4 37 1 48 1 16 +6158 74 20 -123 1462 18 7 2 4 37 1 46 1 14 +6159 74 21 -117 1462 18 10 2 4 37 1 49 1 17 +6160 74 22 -111 1462 18 12 2 4 37 1 51 1 19 +6161 74 23 -105 1462 22 11 2 4 38 1 50 1 18 +6162 74 24 -99 1462 22 9 2 4 38 1 48 1 16 +6163 74 25 -93 1462 22 12 2 4 38 1 51 1 19 +6164 74 26 -87 1462 22 14 2 4 38 1 53 1 21 +6165 74 27 -81 1462 26 9 2 4 39 1 48 1 16 +6166 74 28 -75 1462 26 7 2 4 39 1 46 1 14 +6167 74 29 -69 1462 26 5 2 4 39 1 44 1 12 +6168 74 30 -63 1462 26 8 2 4 39 1 47 1 15 +6169 74 31 -57 1462 26 10 2 4 39 1 49 1 17 +6170 74 32 -51 1462 30 15 2 4 40 1 54 1 22 +6171 74 33 -45 1462 30 13 2 4 40 1 52 1 20 +6172 74 34 -39 1462 30 14 2 4 40 1 53 1 21 +6173 74 35 -33 1462 30 16 2 4 40 1 55 1 23 +6174 74 36 -27 1462 34 9 2 4 41 1 48 1 16 +6175 74 37 -21 1462 34 7 2 4 41 1 46 1 14 +6176 74 38 -15 1462 34 6 2 4 41 1 45 1 13 +6177 74 39 -9 1462 34 8 2 4 41 1 47 1 15 +6178 74 40 -3 1462 34 10 2 4 41 1 49 1 17 +6179 74 41 3 1462 38 9 2 4 42 1 48 1 16 +6180 74 42 9 1462 38 7 2 4 42 1 46 1 14 +6181 74 43 15 1462 38 5 2 4 42 1 44 1 12 +6182 74 44 21 1462 38 8 2 4 42 1 47 1 15 +6183 74 45 27 1462 38 10 2 4 42 1 49 1 17 +6184 74 46 33 1462 42 15 2 4 43 1 54 1 22 +6185 74 47 39 1462 42 13 2 4 43 1 52 1 20 +6186 74 48 45 1462 42 14 2 4 43 1 53 1 21 +6187 74 49 51 1462 42 16 2 4 43 1 55 1 23 +6188 74 50 57 1462 46 9 2 4 44 1 48 1 16 +6189 74 51 63 1462 46 7 2 4 44 1 46 1 14 +6190 74 52 69 1462 46 6 2 4 44 1 45 1 13 +6191 74 53 75 1462 46 8 2 4 44 1 47 1 15 +6192 74 54 81 1462 46 10 2 4 44 1 49 1 17 +6193 74 55 87 1462 50 13 2 4 45 1 52 1 20 +6194 74 56 93 1462 50 11 2 4 45 1 50 1 18 +6195 74 57 99 1462 50 10 2 4 45 1 49 1 17 +6196 74 58 105 1462 50 12 2 4 45 1 51 1 19 +6197 74 59 111 1462 54 11 2 4 46 1 50 1 18 +6198 74 60 117 1462 54 9 2 4 46 1 48 1 16 +6199 74 61 123 1462 54 8 2 4 46 1 47 1 15 +6200 74 62 129 1462 54 10 2 4 46 1 49 1 17 +6201 74 63 135 1462 54 12 2 4 46 1 51 1 19 +6202 74 64 141 1462 58 11 2 4 47 1 50 1 18 +6203 74 65 147 1462 58 9 2 4 47 1 48 1 16 +6204 74 66 153 1462 58 10 2 4 47 1 49 1 17 +6205 74 67 159 1462 58 12 2 4 47 1 51 1 19 +6206 74 68 165 1462 62 11 2 4 48 1 50 1 18 +6207 74 69 171 1462 62 9 2 4 48 1 48 1 16 +6208 74 70 177 1462 62 8 2 4 48 1 47 1 15 +6209 74 71 183 1462 62 10 2 4 48 1 49 1 17 +6210 74 72 189 1462 62 12 2 4 48 1 51 1 19 +6211 74 73 195 1462 66 11 2 4 49 1 50 1 18 +6212 74 74 201 1462 66 9 2 4 49 1 48 1 16 +6213 74 75 207 1462 66 10 2 4 49 1 49 1 17 +6214 74 76 213 1462 66 12 2 4 49 1 51 1 19 +6215 74 77 219 1462 70 11 2 4 50 1 50 1 18 +6216 74 78 225 1462 70 9 2 4 50 1 48 1 16 +6217 74 79 231 1462 70 10 2 4 50 1 49 1 17 +6218 74 80 237 1462 70 12 2 4 50 1 51 1 19 +6219 74 81 243 1462 70 14 2 4 50 1 53 1 21 +6220 75 0 -243 1472 2 17 2 4 33 1 56 1 24 +6221 75 1 -237 1472 2 15 2 4 33 1 54 1 22 +6222 75 2 -231 1472 2 14 2 4 33 1 53 1 21 +6223 75 3 -225 1472 2 16 2 4 33 1 55 1 23 +6224 75 4 -219 1472 2 18 2 4 33 1 57 1 25 +6225 75 5 -213 1472 6 15 2 4 34 1 54 1 22 +6226 75 6 -207 1472 6 13 2 4 34 1 52 1 20 +6227 75 7 -201 1472 6 14 2 4 34 1 53 1 21 +6228 75 8 -195 1472 6 16 2 4 34 1 55 1 23 +6229 75 9 -189 1472 10 15 2 4 35 1 54 1 22 +6230 75 10 -183 1472 10 13 2 4 35 1 52 1 20 +6231 75 11 -177 1472 10 14 2 4 35 1 53 1 21 +6232 75 12 -171 1472 10 16 2 4 35 1 55 1 23 +6233 75 13 -165 1472 10 18 2 4 35 1 57 1 25 +6234 75 14 -159 1472 14 15 2 4 36 1 54 1 22 +6235 75 15 -153 1472 14 13 2 4 36 1 52 1 20 +6236 75 16 -147 1472 14 14 2 4 36 1 53 1 21 +6237 75 17 -141 1472 14 16 2 4 36 1 55 1 23 +6238 75 18 -135 1472 18 17 2 4 37 1 56 1 24 +6239 75 19 -129 1472 18 15 2 4 37 1 54 1 22 +6240 75 20 -123 1472 18 13 2 4 37 1 52 1 20 +6241 75 21 -117 1472 18 14 2 4 37 1 53 1 21 +6242 75 22 -111 1472 18 16 2 4 37 1 55 1 23 +6243 75 23 -105 1472 22 15 2 4 38 1 54 1 22 +6244 75 24 -99 1472 22 13 2 4 38 1 52 1 20 +6245 75 25 -93 1472 22 16 2 4 38 1 55 1 23 +6246 75 26 -87 1472 22 18 2 4 38 1 57 1 25 +6247 75 27 -81 1472 26 15 2 4 39 1 54 1 22 +6248 75 28 -75 1472 26 13 2 4 39 1 52 1 20 +6249 75 29 -69 1472 26 11 2 4 39 1 50 1 18 +6250 75 30 -63 1472 26 12 2 4 39 1 51 1 19 +6251 75 31 -57 1472 26 14 2 4 39 1 53 1 21 +6252 75 32 -51 1472 30 19 2 4 40 1 58 1 26 +6253 75 33 -45 1472 30 17 2 4 40 1 56 1 24 +6254 75 34 -39 1472 30 18 2 4 40 1 57 1 25 +6255 75 35 -33 1472 30 20 2 4 40 1 59 1 27 +6256 75 36 -27 1472 34 15 2 4 41 1 54 1 22 +6257 75 37 -21 1472 34 13 2 4 41 1 52 1 20 +6258 75 38 -15 1472 34 11 2 4 41 1 50 1 18 +6259 75 39 -9 1472 34 12 2 4 41 1 51 1 19 +6260 75 40 -3 1472 34 14 2 4 41 1 53 1 21 +6261 75 41 3 1472 38 13 2 4 42 1 52 1 20 +6262 75 42 9 1472 38 11 2 4 42 1 50 1 18 +6263 75 43 15 1472 38 12 2 4 42 1 51 1 19 +6264 75 44 21 1472 38 14 2 4 42 1 53 1 21 +6265 75 45 27 1472 38 16 2 4 42 1 55 1 23 +6266 75 46 33 1472 42 19 2 4 43 1 58 1 26 +6267 75 47 39 1472 42 17 2 4 43 1 56 1 24 +6268 75 48 45 1472 42 18 2 4 43 1 57 1 25 +6269 75 49 51 1472 42 20 2 4 43 1 59 1 27 +6270 75 50 57 1472 46 13 2 4 44 1 52 1 20 +6271 75 51 63 1472 46 11 2 4 44 1 50 1 18 +6272 75 52 69 1472 46 12 2 4 44 1 51 1 19 +6273 75 53 75 1472 46 14 2 4 44 1 53 1 21 +6274 75 54 81 1472 46 16 2 4 44 1 55 1 23 +6275 75 55 87 1472 50 17 2 4 45 1 56 1 24 +6276 75 56 93 1472 50 15 2 4 45 1 54 1 22 +6277 75 57 99 1472 50 14 2 4 45 1 53 1 21 +6278 75 58 105 1472 50 16 2 4 45 1 55 1 23 +6279 75 59 111 1472 54 15 2 4 46 1 54 1 22 +6280 75 60 117 1472 54 13 2 4 46 1 52 1 20 +6281 75 61 123 1472 54 14 2 4 46 1 53 1 21 +6282 75 62 129 1472 54 16 2 4 46 1 55 1 23 +6283 75 63 135 1472 54 18 2 4 46 1 57 1 25 +6284 75 64 141 1472 58 15 2 4 47 1 54 1 22 +6285 75 65 147 1472 58 13 2 4 47 1 52 1 20 +6286 75 66 153 1472 58 14 2 4 47 1 53 1 21 +6287 75 67 159 1472 58 16 2 4 47 1 55 1 23 +6288 75 68 165 1472 62 17 2 4 48 1 56 1 24 +6289 75 69 171 1472 62 15 2 4 48 1 54 1 22 +6290 75 70 177 1472 62 13 2 4 48 1 52 1 20 +6291 75 71 183 1472 62 14 2 4 48 1 53 1 21 +6292 75 72 189 1472 62 16 2 4 48 1 55 1 23 +6293 75 73 195 1472 66 15 2 4 49 1 54 1 22 +6294 75 74 201 1472 66 13 2 4 49 1 52 1 20 +6295 75 75 207 1472 66 14 2 4 49 1 53 1 21 +6296 75 76 213 1472 66 16 2 4 49 1 55 1 23 +6297 75 77 219 1472 70 17 2 4 50 1 56 1 24 +6298 75 78 225 1472 70 15 2 4 50 1 54 1 22 +6299 75 79 231 1472 70 13 2 4 50 1 52 1 20 +6300 75 80 237 1472 70 16 2 4 50 1 55 1 23 +6301 75 81 243 1472 70 18 2 4 50 1 57 1 25 +6302 76 0 -243 1482 2 21 2 4 33 1 60 1 28 +6303 76 1 -237 1482 2 19 2 4 33 1 58 1 26 +6304 76 2 -231 1482 2 20 2 4 33 1 59 1 27 +6305 76 3 -225 1482 2 22 2 4 33 1 61 1 29 +6306 76 4 -219 1482 6 21 2 4 34 1 60 1 28 +6307 76 5 -213 1482 6 19 2 4 34 1 58 1 26 +6308 76 6 -207 1482 6 17 2 4 34 1 56 1 24 +6309 76 7 -201 1482 6 18 2 4 34 1 57 1 25 +6310 76 8 -195 1482 6 20 2 4 34 1 59 1 27 +6311 76 9 -189 1482 10 19 2 4 35 1 58 1 26 +6312 76 10 -183 1482 10 17 2 4 35 1 56 1 24 +6313 76 11 -177 1482 10 20 2 4 35 1 59 1 27 +6314 76 12 -171 1482 10 22 2 4 35 1 61 1 29 +6315 76 13 -165 1482 14 21 2 4 36 1 60 1 28 +6316 76 14 -159 1482 14 19 2 4 36 1 58 1 26 +6317 76 15 -153 1482 14 17 2 4 36 1 56 1 24 +6318 76 16 -147 1482 14 18 2 4 36 1 57 1 25 +6319 76 17 -141 1482 14 20 2 4 36 1 59 1 27 +6320 76 18 -135 1482 18 21 2 4 37 1 60 1 28 +6321 76 19 -129 1482 18 19 2 4 37 1 58 1 26 +6322 76 20 -123 1482 18 18 2 4 37 1 57 1 25 +6323 76 21 -117 1482 18 20 2 4 37 1 59 1 27 +6324 76 22 -111 1482 18 22 2 4 37 1 61 1 29 +6325 76 23 -105 1482 22 19 2 4 38 1 58 1 26 +6326 76 24 -99 1482 22 17 2 4 38 1 56 1 24 +6327 76 25 -93 1482 22 20 2 4 38 1 59 1 27 +6328 76 26 -87 1482 22 22 2 4 38 1 61 1 29 +6329 76 27 -81 1482 26 19 2 4 39 1 58 1 26 +6330 76 28 -75 1482 26 17 2 4 39 1 56 1 24 +6331 76 29 -69 1482 26 16 2 4 39 1 55 1 23 +6332 76 30 -63 1482 26 18 2 4 39 1 57 1 25 +6333 76 31 -57 1482 26 20 2 4 39 1 59 1 27 +6334 76 32 -51 1482 30 23 2 4 40 1 62 1 30 +6335 76 33 -45 1482 30 21 2 4 40 1 60 1 28 +6336 76 34 -39 1482 30 22 2 4 40 1 61 1 29 +6337 76 35 -33 1482 30 24 2 4 40 1 63 1 31 +6338 76 36 -27 1482 34 19 2 4 41 1 58 1 26 +6339 76 37 -21 1482 34 17 2 4 41 1 56 1 24 +6340 76 38 -15 1482 34 16 2 4 41 1 55 1 23 +6341 76 39 -9 1482 34 18 2 4 41 1 57 1 25 +6342 76 40 -3 1482 34 20 2 4 41 1 59 1 27 +6343 76 41 3 1482 38 19 2 4 42 1 58 1 26 +6344 76 42 9 1482 38 17 2 4 42 1 56 1 24 +6345 76 43 15 1482 38 15 2 4 42 1 54 1 22 +6346 76 44 21 1482 38 18 2 4 42 1 57 1 25 +6347 76 45 27 1482 38 20 2 4 42 1 59 1 27 +6348 76 46 33 1482 42 23 2 4 43 1 62 1 30 +6349 76 47 39 1482 42 21 2 4 43 1 60 1 28 +6350 76 48 45 1482 42 22 2 4 43 1 61 1 29 +6351 76 49 51 1482 42 24 2 4 43 1 63 1 31 +6352 76 50 57 1482 46 19 2 4 44 1 58 1 26 +6353 76 51 63 1482 46 17 2 4 44 1 56 1 24 +6354 76 52 69 1482 46 15 2 4 44 1 54 1 22 +6355 76 53 75 1482 46 18 2 4 44 1 57 1 25 +6356 76 54 81 1482 46 20 2 4 44 1 59 1 27 +6357 76 55 87 1482 50 21 2 4 45 1 60 1 28 +6358 76 56 93 1482 50 19 2 4 45 1 58 1 26 +6359 76 57 99 1482 50 18 2 4 45 1 57 1 25 +6360 76 58 105 1482 50 20 2 4 45 1 59 1 27 +6361 76 59 111 1482 54 21 2 4 46 1 60 1 28 +6362 76 60 117 1482 54 19 2 4 46 1 58 1 26 +6363 76 61 123 1482 54 17 2 4 46 1 56 1 24 +6364 76 62 129 1482 54 20 2 4 46 1 59 1 27 +6365 76 63 135 1482 54 22 2 4 46 1 61 1 29 +6366 76 64 141 1482 58 19 2 4 47 1 58 1 26 +6367 76 65 147 1482 58 17 2 4 47 1 56 1 24 +6368 76 66 153 1482 58 18 2 4 47 1 57 1 25 +6369 76 67 159 1482 58 20 2 4 47 1 59 1 27 +6370 76 68 165 1482 58 22 2 4 47 1 61 1 29 +6371 76 69 171 1482 62 21 2 4 48 1 60 1 28 +6372 76 70 177 1482 62 19 2 4 48 1 58 1 26 +6373 76 71 183 1482 62 18 2 4 48 1 57 1 25 +6374 76 72 189 1482 62 20 2 4 48 1 59 1 27 +6375 76 73 195 1482 66 19 2 4 49 1 58 1 26 +6376 76 74 201 1482 66 17 2 4 49 1 56 1 24 +6377 76 75 207 1482 66 18 2 4 49 1 57 1 25 +6378 76 76 213 1482 66 20 2 4 49 1 59 1 27 +6379 76 77 219 1482 66 22 2 4 49 1 61 1 29 +6380 76 78 225 1482 70 21 2 4 50 1 60 1 28 +6381 76 79 231 1482 70 19 2 4 50 1 58 1 26 +6382 76 80 237 1482 70 20 2 4 50 1 59 1 27 +6383 76 81 243 1482 70 22 2 4 50 1 61 1 29 +6384 77 0 -249 1492 2 27 2 4 33 1 66 2 2 +6385 77 1 -243 1492 2 25 2 4 33 1 64 2 0 +6386 77 2 -237 1492 2 23 2 4 33 1 62 1 30 +6387 77 3 -231 1492 2 24 2 4 33 1 63 1 31 +6388 77 4 -225 1492 2 26 2 4 33 1 65 2 1 +6389 77 5 -219 1492 6 25 2 4 34 1 64 2 0 +6390 77 6 -213 1492 6 23 2 4 34 1 62 1 30 +6391 77 7 -207 1492 6 22 2 4 34 1 61 1 29 +6392 77 8 -201 1492 6 24 2 4 34 1 63 1 31 +6393 77 9 -195 1492 6 26 2 4 34 1 65 2 1 +6394 77 10 -189 1492 10 23 2 4 35 1 62 1 30 +6395 77 11 -183 1492 10 21 2 4 35 1 60 1 28 +6396 77 12 -177 1492 10 24 2 4 35 1 63 1 31 +6397 77 13 -171 1492 10 26 2 4 35 1 65 2 1 +6398 77 14 -165 1492 14 25 2 4 36 1 64 2 0 +6399 77 15 -159 1492 14 23 2 4 36 1 62 1 30 +6400 77 16 -153 1492 14 22 2 4 36 1 61 1 29 +6401 77 17 -147 1492 14 24 2 4 36 1 63 1 31 +6402 77 18 -141 1492 14 26 2 4 36 1 65 2 1 +6403 77 19 -135 1492 18 25 2 4 37 1 64 2 0 +6404 77 20 -129 1492 18 23 2 4 37 1 62 1 30 +6405 77 21 -123 1492 18 24 2 4 37 1 63 1 31 +6406 77 22 -117 1492 18 26 2 4 37 1 65 2 1 +6407 77 23 -111 1492 18 28 2 4 37 1 67 2 3 +6408 77 24 -105 1492 22 23 2 4 38 1 62 1 30 +6409 77 25 -99 1492 22 21 2 4 38 1 60 1 28 +6410 77 26 -93 1492 22 24 2 4 38 1 63 1 31 +6411 77 27 -87 1492 22 26 2 4 38 1 65 2 1 +6412 77 28 -81 1492 26 25 2 4 39 1 64 2 0 +6413 77 29 -75 1492 26 23 2 4 39 1 62 1 30 +6414 77 30 -69 1492 26 21 2 4 39 1 60 1 28 +6415 77 31 -63 1492 26 22 2 4 39 1 61 1 29 +6416 77 32 -57 1492 26 24 2 4 39 1 63 1 31 +6417 77 33 -51 1492 30 27 2 4 40 1 66 2 2 +6418 77 34 -45 1492 30 25 2 4 40 1 64 2 0 +6419 77 35 -39 1492 30 26 2 4 40 1 65 2 1 +6420 77 36 -33 1492 30 28 2 4 40 1 67 2 3 +6421 77 37 -27 1492 34 25 2 4 41 1 64 2 0 +6422 77 38 -21 1492 34 23 2 4 41 1 62 1 30 +6423 77 39 -15 1492 34 21 2 4 41 1 60 1 28 +6424 77 40 -9 1492 34 22 2 4 41 1 61 1 29 +6425 77 41 -3 1492 34 24 2 4 41 1 63 1 31 +6426 77 42 3 1492 38 23 2 4 42 1 62 1 30 +6427 77 43 9 1492 38 21 2 4 42 1 60 1 28 +6428 77 44 15 1492 38 22 2 4 42 1 61 1 29 +6429 77 45 21 1492 38 24 2 4 42 1 63 1 31 +6430 77 46 27 1492 38 26 2 4 42 1 65 2 1 +6431 77 47 33 1492 42 27 2 4 43 1 66 2 2 +6432 77 48 39 1492 42 25 2 4 43 1 64 2 0 +6433 77 49 45 1492 42 26 2 4 43 1 65 2 1 +6434 77 50 51 1492 42 28 2 4 43 1 67 2 3 +6435 77 51 57 1492 46 23 2 4 44 1 62 1 30 +6436 77 52 63 1492 46 21 2 4 44 1 60 1 28 +6437 77 53 69 1492 46 22 2 4 44 1 61 1 29 +6438 77 54 75 1492 46 24 2 4 44 1 63 1 31 +6439 77 55 81 1492 46 26 2 4 44 1 65 2 1 +6440 77 56 87 1492 50 25 2 4 45 1 64 2 0 +6441 77 57 93 1492 50 23 2 4 45 1 62 1 30 +6442 77 58 99 1492 50 22 2 4 45 1 61 1 29 +6443 77 59 105 1492 50 24 2 4 45 1 63 1 31 +6444 77 60 111 1492 54 27 2 4 46 1 66 2 2 +6445 77 61 117 1492 54 25 2 4 46 1 64 2 0 +6446 77 62 123 1492 54 23 2 4 46 1 62 1 30 +6447 77 63 129 1492 54 24 2 4 46 1 63 1 31 +6448 77 64 135 1492 54 26 2 4 46 1 65 2 1 +6449 77 65 141 1492 58 25 2 4 47 1 64 2 0 +6450 77 66 147 1492 58 23 2 4 47 1 62 1 30 +6451 77 67 153 1492 58 21 2 4 47 1 60 1 28 +6452 77 68 159 1492 58 24 2 4 47 1 63 1 31 +6453 77 69 165 1492 58 26 2 4 47 1 65 2 1 +6454 77 70 171 1492 62 25 2 4 48 1 64 2 0 +6455 77 71 177 1492 62 23 2 4 48 1 62 1 30 +6456 77 72 183 1492 62 22 2 4 48 1 61 1 29 +6457 77 73 189 1492 62 24 2 4 48 1 63 1 31 +6458 77 74 195 1492 66 25 2 4 49 1 64 2 0 +6459 77 75 201 1492 66 23 2 4 49 1 62 1 30 +6460 77 76 207 1492 66 21 2 4 49 1 60 1 28 +6461 77 77 213 1492 66 24 2 4 49 1 63 1 31 +6462 77 78 219 1492 66 26 2 4 49 1 65 2 1 +6463 77 79 225 1492 70 25 2 4 50 1 64 2 0 +6464 77 80 231 1492 70 23 2 4 50 1 62 1 30 +6465 77 81 237 1492 70 24 2 4 50 1 63 1 31 +6466 77 82 243 1492 70 26 2 4 50 1 65 2 1 +6467 77 83 249 1492 70 28 2 4 50 1 67 2 3 +6468 78 0 -249 1502 2 31 2 4 33 1 70 2 6 +6469 78 1 -243 1502 2 29 2 4 33 1 68 2 4 +6470 78 2 -237 1502 2 28 2 4 33 1 67 2 3 +6471 78 3 -231 1502 2 30 2 4 33 1 69 2 5 +6472 78 4 -225 1502 2 32 2 4 33 1 71 2 7 +6473 78 5 -219 1502 6 29 2 4 34 1 68 2 4 +6474 78 6 -213 1502 6 27 2 4 34 1 66 2 2 +6475 78 7 -207 1502 6 28 2 4 34 1 67 2 3 +6476 78 8 -201 1502 6 30 2 4 34 1 69 2 5 +6477 78 9 -195 1502 10 29 2 4 35 1 68 2 4 +6478 78 10 -189 1502 10 27 2 4 35 1 66 2 2 +6479 78 11 -183 1502 10 25 2 4 35 1 64 2 0 +6480 78 12 -177 1502 10 28 2 4 35 1 67 2 3 +6481 78 13 -171 1502 10 30 2 4 35 1 69 2 5 +6482 78 14 -165 1502 14 31 2 4 36 1 70 2 6 +6483 78 15 -159 1502 14 29 2 4 36 1 68 2 4 +6484 78 16 -153 1502 14 27 2 4 36 1 66 2 2 +6485 78 17 -147 1502 14 28 2 4 36 1 67 2 3 +6486 78 18 -141 1502 14 30 2 4 36 1 69 2 5 +6487 78 19 -135 1502 18 29 2 4 37 1 68 2 4 +6488 78 20 -129 1502 18 27 2 4 37 1 66 2 2 +6489 78 21 -123 1502 18 30 2 4 37 1 69 2 5 +6490 78 22 -117 1502 18 32 2 4 37 1 71 2 7 +6491 78 23 -111 1502 22 29 2 4 38 1 68 2 4 +6492 78 24 -105 1502 22 27 2 4 38 1 66 2 2 +6493 78 25 -99 1502 22 25 2 4 38 1 64 2 0 +6494 78 26 -93 1502 22 28 2 4 38 1 67 2 3 +6495 78 27 -87 1502 22 30 2 4 38 1 69 2 5 +6496 78 28 -81 1502 26 29 2 4 39 1 68 2 4 +6497 78 29 -75 1502 26 27 2 4 39 1 66 2 2 +6498 78 30 -69 1502 26 26 2 4 39 1 65 2 1 +6499 78 31 -63 1502 26 28 2 4 39 1 67 2 3 +6500 78 32 -57 1502 26 30 2 4 39 1 69 2 5 +6501 78 33 -51 1502 30 31 2 4 40 1 70 2 6 +6502 78 34 -45 1502 30 29 2 4 40 1 68 2 4 +6503 78 35 -39 1502 30 30 2 4 40 1 69 2 5 +6504 78 36 -33 1502 30 32 2 4 40 1 71 2 7 +6505 78 37 -27 1502 34 29 2 4 41 1 68 2 4 +6506 78 38 -21 1502 34 27 2 4 41 1 66 2 2 +6507 78 39 -15 1502 34 26 2 4 41 1 65 2 1 +6508 78 40 -9 1502 34 28 2 4 41 1 67 2 3 +6509 78 41 -3 1502 34 30 2 4 41 1 69 2 5 +6510 78 42 3 1502 38 29 2 4 42 1 68 2 4 +6511 78 43 9 1502 38 27 2 4 42 1 66 2 2 +6512 78 44 15 1502 38 25 2 4 42 1 64 2 0 +6513 78 45 21 1502 38 28 2 4 42 1 67 2 3 +6514 78 46 27 1502 38 30 2 4 42 1 69 2 5 +6515 78 47 33 1502 42 31 2 4 43 1 70 2 6 +6516 78 48 39 1502 42 29 2 4 43 1 68 2 4 +6517 78 49 45 1502 42 30 2 4 43 1 69 2 5 +6518 78 50 51 1502 42 32 2 4 43 1 71 2 7 +6519 78 51 57 1502 46 29 2 4 44 1 68 2 4 +6520 78 52 63 1502 46 27 2 4 44 1 66 2 2 +6521 78 53 69 1502 46 25 2 4 44 1 64 2 0 +6522 78 54 75 1502 46 28 2 4 44 1 67 2 3 +6523 78 55 81 1502 46 30 2 4 44 1 69 2 5 +6524 78 56 87 1502 50 29 2 4 45 1 68 2 4 +6525 78 57 93 1502 50 27 2 4 45 1 66 2 2 +6526 78 58 99 1502 50 26 2 4 45 1 65 2 1 +6527 78 59 105 1502 50 28 2 4 45 1 67 2 3 +6528 78 60 111 1502 50 30 2 4 45 1 69 2 5 +6529 78 61 117 1502 54 31 2 4 46 1 70 2 6 +6530 78 62 123 1502 54 29 2 4 46 1 68 2 4 +6531 78 63 129 1502 54 28 2 4 46 1 67 2 3 +6532 78 64 135 1502 54 30 2 4 46 1 69 2 5 +6533 78 65 141 1502 58 29 2 4 47 1 68 2 4 +6534 78 66 147 1502 58 27 2 4 47 1 66 2 2 +6535 78 67 153 1502 58 28 2 4 47 1 67 2 3 +6536 78 68 159 1502 58 30 2 4 47 1 69 2 5 +6537 78 69 165 1502 58 32 2 4 47 1 71 2 7 +6538 78 70 171 1502 62 29 2 4 48 1 68 2 4 +6539 78 71 177 1502 62 27 2 4 48 1 66 2 2 +6540 78 72 183 1502 62 26 2 4 48 1 65 2 1 +6541 78 73 189 1502 62 28 2 4 48 1 67 2 3 +6542 78 74 195 1502 62 30 2 4 48 1 69 2 5 +6543 78 75 201 1502 66 29 2 4 49 1 68 2 4 +6544 78 76 207 1502 66 27 2 4 49 1 66 2 2 +6545 78 77 213 1502 66 28 2 4 49 1 67 2 3 +6546 78 78 219 1502 66 30 2 4 49 1 69 2 5 +6547 78 79 225 1502 70 31 2 4 50 1 70 2 6 +6548 78 80 231 1502 70 29 2 4 50 1 68 2 4 +6549 78 81 237 1502 70 27 2 4 50 1 66 2 2 +6550 78 82 243 1502 70 30 2 4 50 1 69 2 5 +6551 78 83 249 1502 70 32 2 4 50 1 71 2 7 +6552 79 0 -249 1512 2 35 2 4 33 1 74 2 10 +6553 79 1 -243 1512 2 33 2 4 33 1 72 2 8 +6554 79 2 -237 1512 2 34 2 4 33 1 73 2 9 +6555 79 3 -231 1512 2 36 2 4 33 1 75 2 11 +6556 79 4 -225 1512 6 35 2 4 34 1 74 2 10 +6557 79 5 -219 1512 6 33 2 4 34 1 72 2 8 +6558 79 6 -213 1512 6 31 2 4 34 1 70 2 6 +6559 79 7 -207 1512 6 32 2 4 34 1 71 2 7 +6560 79 8 -201 1512 6 34 2 4 34 1 73 2 9 +6561 79 9 -195 1512 10 33 2 4 35 1 72 2 8 +6562 79 10 -189 1512 10 31 2 4 35 1 70 2 6 +6563 79 11 -183 1512 10 32 2 4 35 1 71 2 7 +6564 79 12 -177 1512 10 34 2 4 35 1 73 2 9 +6565 79 13 -171 1512 10 36 2 4 35 1 75 2 11 +6566 79 14 -165 1512 14 35 2 4 36 1 74 2 10 +6567 79 15 -159 1512 14 33 2 4 36 1 72 2 8 +6568 79 16 -153 1512 14 32 2 4 36 1 71 2 7 +6569 79 17 -147 1512 14 34 2 4 36 1 73 2 9 +6570 79 18 -141 1512 14 36 2 4 36 1 75 2 11 +6571 79 19 -135 1512 18 33 2 4 37 1 72 2 8 +6572 79 20 -129 1512 18 31 2 4 37 1 70 2 6 +6573 79 21 -123 1512 18 34 2 4 37 1 73 2 9 +6574 79 22 -117 1512 18 36 2 4 37 1 75 2 11 +6575 79 23 -111 1512 22 33 2 4 38 1 72 2 8 +6576 79 24 -105 1512 22 31 2 4 38 1 70 2 6 +6577 79 25 -99 1512 22 32 2 4 38 1 71 2 7 +6578 79 26 -93 1512 22 34 2 4 38 1 73 2 9 +6579 79 27 -87 1512 22 36 2 4 38 1 75 2 11 +6580 79 28 -81 1512 26 35 2 4 39 1 74 2 10 +6581 79 29 -75 1512 26 33 2 4 39 1 72 2 8 +6582 79 30 -69 1512 26 31 2 4 39 1 70 2 6 +6583 79 31 -63 1512 26 32 2 4 39 1 71 2 7 +6584 79 32 -57 1512 26 34 2 4 39 1 73 2 9 +6585 79 33 -51 1512 30 35 2 4 40 1 74 2 10 +6586 79 34 -45 1512 30 33 2 4 40 1 72 2 8 +6587 79 35 -39 1512 30 34 2 4 40 1 73 2 9 +6588 79 36 -33 1512 30 36 2 4 40 1 75 2 11 +6589 79 37 -27 1512 34 35 2 4 41 1 74 2 10 +6590 79 38 -21 1512 34 33 2 4 41 1 72 2 8 +6591 79 39 -15 1512 34 31 2 4 41 1 70 2 6 +6592 79 40 -9 1512 34 32 2 4 41 1 71 2 7 +6593 79 41 -3 1512 34 34 2 4 41 1 73 2 9 +6594 79 42 3 1512 38 33 2 4 42 1 72 2 8 +6595 79 43 9 1512 38 31 2 4 42 1 70 2 6 +6596 79 44 15 1512 38 32 2 4 42 1 71 2 7 +6597 79 45 21 1512 38 34 2 4 42 1 73 2 9 +6598 79 46 27 1512 38 36 2 4 42 1 75 2 11 +6599 79 47 33 1512 42 35 2 4 43 1 74 2 10 +6600 79 48 39 1512 42 33 2 4 43 1 72 2 8 +6601 79 49 45 1512 42 34 2 4 43 1 73 2 9 +6602 79 50 51 1512 42 36 2 4 43 1 75 2 11 +6603 79 51 57 1512 46 33 2 4 44 1 72 2 8 +6604 79 52 63 1512 46 31 2 4 44 1 70 2 6 +6605 79 53 69 1512 46 32 2 4 44 1 71 2 7 +6606 79 54 75 1512 46 34 2 4 44 1 73 2 9 +6607 79 55 81 1512 46 36 2 4 44 1 75 2 11 +6608 79 56 87 1512 50 35 2 4 45 1 74 2 10 +6609 79 57 93 1512 50 33 2 4 45 1 72 2 8 +6610 79 58 99 1512 50 31 2 4 45 1 70 2 6 +6611 79 59 105 1512 50 32 2 4 45 1 71 2 7 +6612 79 60 111 1512 50 34 2 4 45 1 73 2 9 +6613 79 61 117 1512 54 35 2 4 46 1 74 2 10 +6614 79 62 123 1512 54 33 2 4 46 1 72 2 8 +6615 79 63 129 1512 54 32 2 4 46 1 71 2 7 +6616 79 64 135 1512 54 34 2 4 46 1 73 2 9 +6617 79 65 141 1512 58 35 2 4 47 1 74 2 10 +6618 79 66 147 1512 58 33 2 4 47 1 72 2 8 +6619 79 67 153 1512 58 31 2 4 47 1 70 2 6 +6620 79 68 159 1512 58 34 2 4 47 1 73 2 9 +6621 79 69 165 1512 58 36 2 4 47 1 75 2 11 +6622 79 70 171 1512 62 35 2 4 48 1 74 2 10 +6623 79 71 177 1512 62 33 2 4 48 1 72 2 8 +6624 79 72 183 1512 62 31 2 4 48 1 70 2 6 +6625 79 73 189 1512 62 32 2 4 48 1 71 2 7 +6626 79 74 195 1512 62 34 2 4 48 1 73 2 9 +6627 79 75 201 1512 66 33 2 4 49 1 72 2 8 +6628 79 76 207 1512 66 31 2 4 49 1 70 2 6 +6629 79 77 213 1512 66 32 2 4 49 1 71 2 7 +6630 79 78 219 1512 66 34 2 4 49 1 73 2 9 +6631 79 79 225 1512 66 36 2 4 49 1 75 2 11 +6632 79 80 231 1512 70 35 2 4 50 1 74 2 10 +6633 79 81 237 1512 70 33 2 4 50 1 72 2 8 +6634 79 82 243 1512 70 34 2 4 50 1 73 2 9 +6635 79 83 249 1512 70 36 2 4 50 1 75 2 11 +6636 80 0 -249 1522 2 39 2 4 33 1 78 2 14 +6637 80 1 -243 1522 2 37 2 4 33 1 76 2 12 +6638 80 2 -237 1522 2 38 2 4 33 1 77 2 13 +6639 80 3 -231 1522 2 40 2 4 33 1 79 2 15 +6640 80 4 -225 1522 6 39 2 4 34 1 78 2 14 +6641 80 5 -219 1522 6 37 2 4 34 1 76 2 12 +6642 80 6 -213 1522 6 36 2 4 34 1 75 2 11 +6643 80 7 -207 1522 6 38 2 4 34 1 77 2 13 +6644 80 8 -201 1522 6 40 2 4 34 1 79 2 15 +6645 80 9 -195 1522 10 39 2 4 35 1 78 2 14 +6646 80 10 -189 1522 10 37 2 4 35 1 76 2 12 +6647 80 11 -183 1522 10 35 2 4 35 1 74 2 10 +6648 80 12 -177 1522 10 38 2 4 35 1 77 2 13 +6649 80 13 -171 1522 10 40 2 4 35 1 79 2 15 +6650 80 14 -165 1522 14 39 2 4 36 1 78 2 14 +6651 80 15 -159 1522 14 37 2 4 36 1 76 2 12 +6652 80 16 -153 1522 14 38 2 4 36 1 77 2 13 +6653 80 17 -147 1522 14 40 2 4 36 1 79 2 15 +6654 80 18 -141 1522 18 39 2 4 37 1 78 2 14 +6655 80 19 -135 1522 18 37 2 4 37 1 76 2 12 +6656 80 20 -129 1522 18 35 2 4 37 1 74 2 10 +6657 80 21 -123 1522 18 38 2 4 37 1 77 2 13 +6658 80 22 -117 1522 18 40 2 4 37 1 79 2 15 +6659 80 23 -111 1522 22 39 2 4 38 1 78 2 14 +6660 80 24 -105 1522 22 37 2 4 38 1 76 2 12 +6661 80 25 -99 1522 22 35 2 4 38 1 74 2 10 +6662 80 26 -93 1522 22 38 2 4 38 1 77 2 13 +6663 80 27 -87 1522 22 40 2 4 38 1 79 2 15 +6664 80 28 -81 1522 26 39 2 4 39 1 78 2 14 +6665 80 29 -75 1522 26 37 2 4 39 1 76 2 12 +6666 80 30 -69 1522 26 36 2 4 39 1 75 2 11 +6667 80 31 -63 1522 26 38 2 4 39 1 77 2 13 +6668 80 32 -57 1522 26 40 2 4 39 1 79 2 15 +6669 80 33 -51 1522 30 39 2 4 40 1 78 2 14 +6670 80 34 -45 1522 30 37 2 4 40 1 76 2 12 +6671 80 35 -39 1522 30 38 2 4 40 1 77 2 13 +6672 80 36 -33 1522 30 40 2 4 40 1 79 2 15 +6673 80 37 -27 1522 34 39 2 4 41 1 78 2 14 +6674 80 38 -21 1522 34 37 2 4 41 1 76 2 12 +6675 80 39 -15 1522 34 36 2 4 41 1 75 2 11 +6676 80 40 -9 1522 34 38 2 4 41 1 77 2 13 +6677 80 41 -3 1522 34 40 2 4 41 1 79 2 15 +6678 80 42 3 1522 38 39 2 4 42 1 78 2 14 +6679 80 43 9 1522 38 37 2 4 42 1 76 2 12 +6680 80 44 15 1522 38 35 2 4 42 1 74 2 10 +6681 80 45 21 1522 38 38 2 4 42 1 77 2 13 +6682 80 46 27 1522 38 40 2 4 42 1 79 2 15 +6683 80 47 33 1522 42 39 2 4 43 1 78 2 14 +6684 80 48 39 1522 42 37 2 4 43 1 76 2 12 +6685 80 49 45 1522 42 38 2 4 43 1 77 2 13 +6686 80 50 51 1522 42 40 2 4 43 1 79 2 15 +6687 80 51 57 1522 46 39 2 4 44 1 78 2 14 +6688 80 52 63 1522 46 37 2 4 44 1 76 2 12 +6689 80 53 69 1522 46 35 2 4 44 1 74 2 10 +6690 80 54 75 1522 46 38 2 4 44 1 77 2 13 +6691 80 55 81 1522 46 40 2 4 44 1 79 2 15 +6692 80 56 87 1522 50 39 2 4 45 1 78 2 14 +6693 80 57 93 1522 50 37 2 4 45 1 76 2 12 +6694 80 58 99 1522 50 36 2 4 45 1 75 2 11 +6695 80 59 105 1522 50 38 2 4 45 1 77 2 13 +6696 80 60 111 1522 50 40 2 4 45 1 79 2 15 +6697 80 61 117 1522 54 39 2 4 46 1 78 2 14 +6698 80 62 123 1522 54 37 2 4 46 1 76 2 12 +6699 80 63 129 1522 54 36 2 4 46 1 75 2 11 +6700 80 64 135 1522 54 38 2 4 46 1 77 2 13 +6701 80 65 141 1522 54 40 2 4 46 1 79 2 15 +6702 80 66 147 1522 58 39 2 4 47 1 78 2 14 +6703 80 67 153 1522 58 37 2 4 47 1 76 2 12 +6704 80 68 159 1522 58 38 2 4 47 1 77 2 13 +6705 80 69 165 1522 58 40 2 4 47 1 79 2 15 +6706 80 70 171 1522 62 39 2 4 48 1 78 2 14 +6707 80 71 177 1522 62 37 2 4 48 1 76 2 12 +6708 80 72 183 1522 62 36 2 4 48 1 75 2 11 +6709 80 73 189 1522 62 38 2 4 48 1 77 2 13 +6710 80 74 195 1522 62 40 2 4 48 1 79 2 15 +6711 80 75 201 1522 66 39 2 4 49 1 78 2 14 +6712 80 76 207 1522 66 37 2 4 49 1 76 2 12 +6713 80 77 213 1522 66 35 2 4 49 1 74 2 10 +6714 80 78 219 1522 66 38 2 4 49 1 77 2 13 +6715 80 79 225 1522 66 40 2 4 49 1 79 2 15 +6716 80 80 231 1522 70 39 2 4 50 1 78 2 14 +6717 80 81 237 1522 70 37 2 4 50 1 76 2 12 +6718 80 82 243 1522 70 38 2 4 50 1 77 2 13 +6719 80 83 249 1522 70 40 2 4 50 1 79 2 15 +6720 81 0 -255 1532 3 5 2 5 33 2 84 2 20 +6721 81 1 -249 1532 3 3 2 5 33 2 82 2 18 +6722 81 2 -243 1532 3 1 2 5 33 2 80 2 16 +6723 81 3 -237 1532 3 2 2 5 33 2 81 2 17 +6724 81 4 -231 1532 3 4 2 5 33 2 83 2 19 +6725 81 5 -225 1532 7 5 2 5 34 2 84 2 20 +6726 81 6 -219 1532 7 3 2 5 34 2 82 2 18 +6727 81 7 -213 1532 7 1 2 5 34 2 80 2 16 +6728 81 8 -207 1532 7 2 2 5 34 2 81 2 17 +6729 81 9 -201 1532 7 4 2 5 34 2 83 2 19 +6730 81 10 -195 1532 11 3 2 5 35 2 82 2 18 +6731 81 11 -189 1532 11 1 2 5 35 2 80 2 16 +6732 81 12 -183 1532 11 2 2 5 35 2 81 2 17 +6733 81 13 -177 1532 11 4 2 5 35 2 83 2 19 +6734 81 14 -171 1532 15 3 2 5 36 2 82 2 18 +6735 81 15 -165 1532 15 1 2 5 36 2 80 2 16 +6736 81 16 -159 1532 15 2 2 5 36 2 81 2 17 +6737 81 17 -153 1532 15 4 2 5 36 2 83 2 19 +6738 81 18 -147 1532 15 6 2 5 36 2 85 2 21 +6739 81 19 -141 1532 19 5 2 5 37 2 84 2 20 +6740 81 20 -135 1532 19 3 2 5 37 2 82 2 18 +6741 81 21 -129 1532 19 1 2 5 37 2 80 2 16 +6742 81 22 -123 1532 19 2 2 5 37 2 81 2 17 +6743 81 23 -117 1532 19 4 2 5 37 2 83 2 19 +6744 81 24 -111 1532 23 3 2 5 38 2 82 2 18 +6745 81 25 -105 1532 23 1 2 5 38 2 80 2 16 +6746 81 26 -99 1532 23 2 2 5 38 2 81 2 17 +6747 81 27 -93 1532 23 4 2 5 38 2 83 2 19 +6748 81 28 -87 1532 23 6 2 5 38 2 85 2 21 +6749 81 29 -81 1532 27 3 2 5 39 2 82 2 18 +6750 81 30 -75 1532 27 1 2 5 39 2 80 2 16 +6751 81 31 -69 1532 27 2 2 5 39 2 81 2 17 +6752 81 32 -63 1532 27 4 2 5 39 2 83 2 19 +6753 81 33 -57 1532 31 5 2 5 40 2 84 2 20 +6754 81 34 -51 1532 31 3 2 5 40 2 82 2 18 +6755 81 35 -45 1532 31 1 2 5 40 2 80 2 16 +6756 81 36 -39 1532 31 2 2 5 40 2 81 2 17 +6757 81 37 -33 1532 31 4 2 5 40 2 83 2 19 +6758 81 38 -27 1532 35 5 2 5 41 2 84 2 20 +6759 81 39 -21 1532 35 3 2 5 41 2 82 2 18 +6760 81 40 -15 1532 35 1 2 5 41 2 80 2 16 +6761 81 41 -9 1532 35 2 2 5 41 2 81 2 17 +6762 81 42 -3 1532 35 4 2 5 41 2 83 2 19 +6763 81 43 3 1532 39 3 2 5 42 2 82 2 18 +6764 81 44 9 1532 39 1 2 5 42 2 80 2 16 +6765 81 45 15 1532 39 2 2 5 42 2 81 2 17 +6766 81 46 21 1532 39 4 2 5 42 2 83 2 19 +6767 81 47 27 1532 39 6 2 5 42 2 85 2 21 +6768 81 48 33 1532 43 3 2 5 43 2 82 2 18 +6769 81 49 39 1532 43 1 2 5 43 2 80 2 16 +6770 81 50 45 1532 43 2 2 5 43 2 81 2 17 +6771 81 51 51 1532 43 4 2 5 43 2 83 2 19 +6772 81 52 57 1532 43 6 2 5 43 2 85 2 21 +6773 81 53 63 1532 47 3 2 5 44 2 82 2 18 +6774 81 54 69 1532 47 1 2 5 44 2 80 2 16 +6775 81 55 75 1532 47 2 2 5 44 2 81 2 17 +6776 81 56 81 1532 47 4 2 5 44 2 83 2 19 +6777 81 57 87 1532 51 5 2 5 45 2 84 2 20 +6778 81 58 93 1532 51 3 2 5 45 2 82 2 18 +6779 81 59 99 1532 51 1 2 5 45 2 80 2 16 +6780 81 60 105 1532 51 2 2 5 45 2 81 2 17 +6781 81 61 111 1532 51 4 2 5 45 2 83 2 19 +6782 81 62 117 1532 55 3 2 5 46 2 82 2 18 +6783 81 63 123 1532 55 1 2 5 46 2 80 2 16 +6784 81 64 129 1532 55 2 2 5 46 2 81 2 17 +6785 81 65 135 1532 55 4 2 5 46 2 83 2 19 +6786 81 66 141 1532 55 6 2 5 46 2 85 2 21 +6787 81 67 147 1532 59 5 2 5 47 2 84 2 20 +6788 81 68 153 1532 59 3 2 5 47 2 82 2 18 +6789 81 69 159 1532 59 1 2 5 47 2 80 2 16 +6790 81 70 165 1532 59 2 2 5 47 2 81 2 17 +6791 81 71 171 1532 59 4 2 5 47 2 83 2 19 +6792 81 72 177 1532 63 3 2 5 48 2 82 2 18 +6793 81 73 183 1532 63 1 2 5 48 2 80 2 16 +6794 81 74 189 1532 63 2 2 5 48 2 81 2 17 +6795 81 75 195 1532 63 4 2 5 48 2 83 2 19 +6796 81 76 201 1532 67 3 2 5 49 2 82 2 18 +6797 81 77 207 1532 67 1 2 5 49 2 80 2 16 +6798 81 78 213 1532 67 2 2 5 49 2 81 2 17 +6799 81 79 219 1532 67 4 2 5 49 2 83 2 19 +6800 81 80 225 1532 67 6 2 5 49 2 85 2 21 +6801 81 81 231 1532 71 3 2 5 50 2 82 2 18 +6802 81 82 237 1532 71 1 2 5 50 2 80 2 16 +6803 81 83 243 1532 71 2 2 5 50 2 81 2 17 +6804 81 84 249 1532 71 4 2 5 50 2 83 2 19 +6805 81 85 255 1532 71 6 2 5 50 2 85 2 21 +6806 82 0 -255 1542 3 9 2 5 33 2 88 2 24 +6807 82 1 -249 1542 3 7 2 5 33 2 86 2 22 +6808 82 2 -243 1542 3 6 2 5 33 2 85 2 21 +6809 82 3 -237 1542 3 8 2 5 33 2 87 2 23 +6810 82 4 -231 1542 3 10 2 5 33 2 89 2 25 +6811 82 5 -225 1542 7 9 2 5 34 2 88 2 24 +6812 82 6 -219 1542 7 7 2 5 34 2 86 2 22 +6813 82 7 -213 1542 7 6 2 5 34 2 85 2 21 +6814 82 8 -207 1542 7 8 2 5 34 2 87 2 23 +6815 82 9 -201 1542 7 10 2 5 34 2 89 2 25 +6816 82 10 -195 1542 11 7 2 5 35 2 86 2 22 +6817 82 11 -189 1542 11 5 2 5 35 2 84 2 20 +6818 82 12 -183 1542 11 6 2 5 35 2 85 2 21 +6819 82 13 -177 1542 11 8 2 5 35 2 87 2 23 +6820 82 14 -171 1542 15 9 2 5 36 2 88 2 24 +6821 82 15 -165 1542 15 7 2 5 36 2 86 2 22 +6822 82 16 -159 1542 15 5 2 5 36 2 84 2 20 +6823 82 17 -153 1542 15 8 2 5 36 2 87 2 23 +6824 82 18 -147 1542 15 10 2 5 36 2 89 2 25 +6825 82 19 -141 1542 19 9 2 5 37 2 88 2 24 +6826 82 20 -135 1542 19 7 2 5 37 2 86 2 22 +6827 82 21 -129 1542 19 6 2 5 37 2 85 2 21 +6828 82 22 -123 1542 19 8 2 5 37 2 87 2 23 +6829 82 23 -117 1542 19 10 2 5 37 2 89 2 25 +6830 82 24 -111 1542 23 9 2 5 38 2 88 2 24 +6831 82 25 -105 1542 23 7 2 5 38 2 86 2 22 +6832 82 26 -99 1542 23 5 2 5 38 2 84 2 20 +6833 82 27 -93 1542 23 8 2 5 38 2 87 2 23 +6834 82 28 -87 1542 23 10 2 5 38 2 89 2 25 +6835 82 29 -81 1542 27 7 2 5 39 2 86 2 22 +6836 82 30 -75 1542 27 5 2 5 39 2 84 2 20 +6837 82 31 -69 1542 27 6 2 5 39 2 85 2 21 +6838 82 32 -63 1542 27 8 2 5 39 2 87 2 23 +6839 82 33 -57 1542 31 9 2 5 40 2 88 2 24 +6840 82 34 -51 1542 31 7 2 5 40 2 86 2 22 +6841 82 35 -45 1542 31 6 2 5 40 2 85 2 21 +6842 82 36 -39 1542 31 8 2 5 40 2 87 2 23 +6843 82 37 -33 1542 31 10 2 5 40 2 89 2 25 +6844 82 38 -27 1542 35 9 2 5 41 2 88 2 24 +6845 82 39 -21 1542 35 7 2 5 41 2 86 2 22 +6846 82 40 -15 1542 35 6 2 5 41 2 85 2 21 +6847 82 41 -9 1542 35 8 2 5 41 2 87 2 23 +6848 82 42 -3 1542 35 10 2 5 41 2 89 2 25 +6849 82 43 3 1542 39 9 2 5 42 2 88 2 24 +6850 82 44 9 1542 39 7 2 5 42 2 86 2 22 +6851 82 45 15 1542 39 5 2 5 42 2 84 2 20 +6852 82 46 21 1542 39 8 2 5 42 2 87 2 23 +6853 82 47 27 1542 39 10 2 5 42 2 89 2 25 +6854 82 48 33 1542 43 9 2 5 43 2 88 2 24 +6855 82 49 39 1542 43 7 2 5 43 2 86 2 22 +6856 82 50 45 1542 43 5 2 5 43 2 84 2 20 +6857 82 51 51 1542 43 8 2 5 43 2 87 2 23 +6858 82 52 57 1542 43 10 2 5 43 2 89 2 25 +6859 82 53 63 1542 47 7 2 5 44 2 86 2 22 +6860 82 54 69 1542 47 5 2 5 44 2 84 2 20 +6861 82 55 75 1542 47 6 2 5 44 2 85 2 21 +6862 82 56 81 1542 47 8 2 5 44 2 87 2 23 +6863 82 57 87 1542 51 9 2 5 45 2 88 2 24 +6864 82 58 93 1542 51 7 2 5 45 2 86 2 22 +6865 82 59 99 1542 51 6 2 5 45 2 85 2 21 +6866 82 60 105 1542 51 8 2 5 45 2 87 2 23 +6867 82 61 111 1542 51 10 2 5 45 2 89 2 25 +6868 82 62 117 1542 55 9 2 5 46 2 88 2 24 +6869 82 63 123 1542 55 7 2 5 46 2 86 2 22 +6870 82 64 129 1542 55 5 2 5 46 2 84 2 20 +6871 82 65 135 1542 55 8 2 5 46 2 87 2 23 +6872 82 66 141 1542 55 10 2 5 46 2 89 2 25 +6873 82 67 147 1542 59 9 2 5 47 2 88 2 24 +6874 82 68 153 1542 59 7 2 5 47 2 86 2 22 +6875 82 69 159 1542 59 6 2 5 47 2 85 2 21 +6876 82 70 165 1542 59 8 2 5 47 2 87 2 23 +6877 82 71 171 1542 59 10 2 5 47 2 89 2 25 +6878 82 72 177 1542 63 7 2 5 48 2 86 2 22 +6879 82 73 183 1542 63 5 2 5 48 2 84 2 20 +6880 82 74 189 1542 63 6 2 5 48 2 85 2 21 +6881 82 75 195 1542 63 8 2 5 48 2 87 2 23 +6882 82 76 201 1542 67 9 2 5 49 2 88 2 24 +6883 82 77 207 1542 67 7 2 5 49 2 86 2 22 +6884 82 78 213 1542 67 5 2 5 49 2 84 2 20 +6885 82 79 219 1542 67 8 2 5 49 2 87 2 23 +6886 82 80 225 1542 67 10 2 5 49 2 89 2 25 +6887 82 81 231 1542 71 9 2 5 50 2 88 2 24 +6888 82 82 237 1542 71 7 2 5 50 2 86 2 22 +6889 82 83 243 1542 71 5 2 5 50 2 84 2 20 +6890 82 84 249 1542 71 8 2 5 50 2 87 2 23 +6891 82 85 255 1542 71 10 2 5 50 2 89 2 25 +6892 83 0 -255 1552 3 13 2 5 33 2 92 2 28 +6893 83 1 -249 1552 3 11 2 5 33 2 90 2 26 +6894 83 2 -243 1552 3 12 2 5 33 2 91 2 27 +6895 83 3 -237 1552 3 14 2 5 33 2 93 2 29 +6896 83 4 -231 1552 7 15 2 5 34 2 94 2 30 +6897 83 5 -225 1552 7 13 2 5 34 2 92 2 28 +6898 83 6 -219 1552 7 11 2 5 34 2 90 2 26 +6899 83 7 -213 1552 7 12 2 5 34 2 91 2 27 +6900 83 8 -207 1552 7 14 2 5 34 2 93 2 29 +6901 83 9 -201 1552 11 13 2 5 35 2 92 2 28 +6902 83 10 -195 1552 11 11 2 5 35 2 90 2 26 +6903 83 11 -189 1552 11 9 2 5 35 2 88 2 24 +6904 83 12 -183 1552 11 10 2 5 35 2 89 2 25 +6905 83 13 -177 1552 11 12 2 5 35 2 91 2 27 +6906 83 14 -171 1552 15 13 2 5 36 2 92 2 28 +6907 83 15 -165 1552 15 11 2 5 36 2 90 2 26 +6908 83 16 -159 1552 15 12 2 5 36 2 91 2 27 +6909 83 17 -153 1552 15 14 2 5 36 2 93 2 29 +6910 83 18 -147 1552 15 16 2 5 36 2 95 2 31 +6911 83 19 -141 1552 19 15 2 5 37 2 94 2 30 +6912 83 20 -135 1552 19 13 2 5 37 2 92 2 28 +6913 83 21 -129 1552 19 11 2 5 37 2 90 2 26 +6914 83 22 -123 1552 19 12 2 5 37 2 91 2 27 +6915 83 23 -117 1552 19 14 2 5 37 2 93 2 29 +6916 83 24 -111 1552 23 13 2 5 38 2 92 2 28 +6917 83 25 -105 1552 23 11 2 5 38 2 90 2 26 +6918 83 26 -99 1552 23 12 2 5 38 2 91 2 27 +6919 83 27 -93 1552 23 14 2 5 38 2 93 2 29 +6920 83 28 -87 1552 23 16 2 5 38 2 95 2 31 +6921 83 29 -81 1552 27 11 2 5 39 2 90 2 26 +6922 83 30 -75 1552 27 9 2 5 39 2 88 2 24 +6923 83 31 -69 1552 27 10 2 5 39 2 89 2 25 +6924 83 32 -63 1552 27 12 2 5 39 2 91 2 27 +6925 83 33 -57 1552 31 15 2 5 40 2 94 2 30 +6926 83 34 -51 1552 31 13 2 5 40 2 92 2 28 +6927 83 35 -45 1552 31 11 2 5 40 2 90 2 26 +6928 83 36 -39 1552 31 12 2 5 40 2 91 2 27 +6929 83 37 -33 1552 31 14 2 5 40 2 93 2 29 +6930 83 38 -27 1552 35 15 2 5 41 2 94 2 30 +6931 83 39 -21 1552 35 13 2 5 41 2 92 2 28 +6932 83 40 -15 1552 35 11 2 5 41 2 90 2 26 +6933 83 41 -9 1552 35 12 2 5 41 2 91 2 27 +6934 83 42 -3 1552 35 14 2 5 41 2 93 2 29 +6935 83 43 3 1552 39 13 2 5 42 2 92 2 28 +6936 83 44 9 1552 39 11 2 5 42 2 90 2 26 +6937 83 45 15 1552 39 12 2 5 42 2 91 2 27 +6938 83 46 21 1552 39 14 2 5 42 2 93 2 29 +6939 83 47 27 1552 39 16 2 5 42 2 95 2 31 +6940 83 48 33 1552 43 13 2 5 43 2 92 2 28 +6941 83 49 39 1552 43 11 2 5 43 2 90 2 26 +6942 83 50 45 1552 43 12 2 5 43 2 91 2 27 +6943 83 51 51 1552 43 14 2 5 43 2 93 2 29 +6944 83 52 57 1552 43 16 2 5 43 2 95 2 31 +6945 83 53 63 1552 47 11 2 5 44 2 90 2 26 +6946 83 54 69 1552 47 9 2 5 44 2 88 2 24 +6947 83 55 75 1552 47 10 2 5 44 2 89 2 25 +6948 83 56 81 1552 47 12 2 5 44 2 91 2 27 +6949 83 57 87 1552 51 15 2 5 45 2 94 2 30 +6950 83 58 93 1552 51 13 2 5 45 2 92 2 28 +6951 83 59 99 1552 51 11 2 5 45 2 90 2 26 +6952 83 60 105 1552 51 12 2 5 45 2 91 2 27 +6953 83 61 111 1552 51 14 2 5 45 2 93 2 29 +6954 83 62 117 1552 55 13 2 5 46 2 92 2 28 +6955 83 63 123 1552 55 11 2 5 46 2 90 2 26 +6956 83 64 129 1552 55 12 2 5 46 2 91 2 27 +6957 83 65 135 1552 55 14 2 5 46 2 93 2 29 +6958 83 66 141 1552 55 16 2 5 46 2 95 2 31 +6959 83 67 147 1552 59 15 2 5 47 2 94 2 30 +6960 83 68 153 1552 59 13 2 5 47 2 92 2 28 +6961 83 69 159 1552 59 11 2 5 47 2 90 2 26 +6962 83 70 165 1552 59 12 2 5 47 2 91 2 27 +6963 83 71 171 1552 59 14 2 5 47 2 93 2 29 +6964 83 72 177 1552 63 11 2 5 48 2 90 2 26 +6965 83 73 183 1552 63 9 2 5 48 2 88 2 24 +6966 83 74 189 1552 63 10 2 5 48 2 89 2 25 +6967 83 75 195 1552 63 12 2 5 48 2 91 2 27 +6968 83 76 201 1552 63 14 2 5 48 2 93 2 29 +6969 83 77 207 1552 67 13 2 5 49 2 92 2 28 +6970 83 78 213 1552 67 11 2 5 49 2 90 2 26 +6971 83 79 219 1552 67 12 2 5 49 2 91 2 27 +6972 83 80 225 1552 67 14 2 5 49 2 93 2 29 +6973 83 81 231 1552 67 16 2 5 49 2 95 2 31 +6974 83 82 237 1552 71 13 2 5 50 2 92 2 28 +6975 83 83 243 1552 71 11 2 5 50 2 90 2 26 +6976 83 84 249 1552 71 12 2 5 50 2 91 2 27 +6977 83 85 255 1552 71 14 2 5 50 2 93 2 29 +6978 84 0 -261 1562 3 19 2 5 33 2 98 3 2 +6979 84 1 -255 1562 3 17 2 5 33 2 96 3 0 +6980 84 2 -249 1562 3 15 2 5 33 2 94 2 30 +6981 84 3 -243 1562 3 16 2 5 33 2 95 2 31 +6982 84 4 -237 1562 3 18 2 5 33 2 97 3 1 +6983 84 5 -231 1562 7 19 2 5 34 2 98 3 2 +6984 84 6 -225 1562 7 17 2 5 34 2 96 3 0 +6985 84 7 -219 1562 7 16 2 5 34 2 95 2 31 +6986 84 8 -213 1562 7 18 2 5 34 2 97 3 1 +6987 84 9 -207 1562 7 20 2 5 34 2 99 3 3 +6988 84 10 -201 1562 11 17 2 5 35 2 96 3 0 +6989 84 11 -195 1562 11 15 2 5 35 2 94 2 30 +6990 84 12 -189 1562 11 14 2 5 35 2 93 2 29 +6991 84 13 -183 1562 11 16 2 5 35 2 95 2 31 +6992 84 14 -177 1562 11 18 2 5 35 2 97 3 1 +6993 84 15 -171 1562 15 19 2 5 36 2 98 3 2 +6994 84 16 -165 1562 15 17 2 5 36 2 96 3 0 +6995 84 17 -159 1562 15 15 2 5 36 2 94 2 30 +6996 84 18 -153 1562 15 18 2 5 36 2 97 3 1 +6997 84 19 -147 1562 15 20 2 5 36 2 99 3 3 +6998 84 20 -141 1562 19 19 2 5 37 2 98 3 2 +6999 84 21 -135 1562 19 17 2 5 37 2 96 3 0 +7000 84 22 -129 1562 19 16 2 5 37 2 95 2 31 +7001 84 23 -123 1562 19 18 2 5 37 2 97 3 1 +7002 84 24 -117 1562 19 20 2 5 37 2 99 3 3 +7003 84 25 -111 1562 23 17 2 5 38 2 96 3 0 +7004 84 26 -105 1562 23 15 2 5 38 2 94 2 30 +7005 84 27 -99 1562 23 18 2 5 38 2 97 3 1 +7006 84 28 -93 1562 23 20 2 5 38 2 99 3 3 +7007 84 29 -87 1562 27 17 2 5 39 2 96 3 0 +7008 84 30 -81 1562 27 15 2 5 39 2 94 2 30 +7009 84 31 -75 1562 27 13 2 5 39 2 92 2 28 +7010 84 32 -69 1562 27 14 2 5 39 2 93 2 29 +7011 84 33 -63 1562 27 16 2 5 39 2 95 2 31 +7012 84 34 -57 1562 31 19 2 5 40 2 98 3 2 +7013 84 35 -51 1562 31 17 2 5 40 2 96 3 0 +7014 84 36 -45 1562 31 16 2 5 40 2 95 2 31 +7015 84 37 -39 1562 31 18 2 5 40 2 97 3 1 +7016 84 38 -33 1562 31 20 2 5 40 2 99 3 3 +7017 84 39 -27 1562 35 19 2 5 41 2 98 3 2 +7018 84 40 -21 1562 35 17 2 5 41 2 96 3 0 +7019 84 41 -15 1562 35 16 2 5 41 2 95 2 31 +7020 84 42 -9 1562 35 18 2 5 41 2 97 3 1 +7021 84 43 -3 1562 35 20 2 5 41 2 99 3 3 +7022 84 44 3 1562 39 19 2 5 42 2 98 3 2 +7023 84 45 9 1562 39 17 2 5 42 2 96 3 0 +7024 84 46 15 1562 39 15 2 5 42 2 94 2 30 +7025 84 47 21 1562 39 18 2 5 42 2 97 3 1 +7026 84 48 27 1562 39 20 2 5 42 2 99 3 3 +7027 84 49 33 1562 43 19 2 5 43 2 98 3 2 +7028 84 50 39 1562 43 17 2 5 43 2 96 3 0 +7029 84 51 45 1562 43 15 2 5 43 2 94 2 30 +7030 84 52 51 1562 43 18 2 5 43 2 97 3 1 +7031 84 53 57 1562 43 20 2 5 43 2 99 3 3 +7032 84 54 63 1562 47 15 2 5 44 2 94 2 30 +7033 84 55 69 1562 47 13 2 5 44 2 92 2 28 +7034 84 56 75 1562 47 14 2 5 44 2 93 2 29 +7035 84 57 81 1562 47 16 2 5 44 2 95 2 31 +7036 84 58 87 1562 47 18 2 5 44 2 97 3 1 +7037 84 59 93 1562 51 19 2 5 45 2 98 3 2 +7038 84 60 99 1562 51 17 2 5 45 2 96 3 0 +7039 84 61 105 1562 51 16 2 5 45 2 95 2 31 +7040 84 62 111 1562 51 18 2 5 45 2 97 3 1 +7041 84 63 117 1562 55 19 2 5 46 2 98 3 2 +7042 84 64 123 1562 55 17 2 5 46 2 96 3 0 +7043 84 65 129 1562 55 15 2 5 46 2 94 2 30 +7044 84 66 135 1562 55 18 2 5 46 2 97 3 1 +7045 84 67 141 1562 55 20 2 5 46 2 99 3 3 +7046 84 68 147 1562 59 19 2 5 47 2 98 3 2 +7047 84 69 153 1562 59 17 2 5 47 2 96 3 0 +7048 84 70 159 1562 59 16 2 5 47 2 95 2 31 +7049 84 71 165 1562 59 18 2 5 47 2 97 3 1 +7050 84 72 171 1562 59 20 2 5 47 2 99 3 3 +7051 84 73 177 1562 63 17 2 5 48 2 96 3 0 +7052 84 74 183 1562 63 15 2 5 48 2 94 2 30 +7053 84 75 189 1562 63 13 2 5 48 2 92 2 28 +7054 84 76 195 1562 63 16 2 5 48 2 95 2 31 +7055 84 77 201 1562 63 18 2 5 48 2 97 3 1 +7056 84 78 207 1562 67 19 2 5 49 2 98 3 2 +7057 84 79 213 1562 67 17 2 5 49 2 96 3 0 +7058 84 80 219 1562 67 15 2 5 49 2 94 2 30 +7059 84 81 225 1562 67 18 2 5 49 2 97 3 1 +7060 84 82 231 1562 67 20 2 5 49 2 99 3 3 +7061 84 83 237 1562 71 17 2 5 50 2 96 3 0 +7062 84 84 243 1562 71 15 2 5 50 2 94 2 30 +7063 84 85 249 1562 71 16 2 5 50 2 95 2 31 +7064 84 86 255 1562 71 18 2 5 50 2 97 3 1 +7065 84 87 261 1562 71 20 2 5 50 2 99 3 3 +7066 85 0 -261 1572 3 23 2 5 33 2 102 3 6 +7067 85 1 -255 1572 3 21 2 5 33 2 100 3 4 +7068 85 2 -249 1572 3 20 2 5 33 2 99 3 3 +7069 85 3 -243 1572 3 22 2 5 33 2 101 3 5 +7070 85 4 -237 1572 3 24 2 5 33 2 103 3 7 +7071 85 5 -231 1572 7 25 2 5 34 2 104 3 8 +7072 85 6 -225 1572 7 23 2 5 34 2 102 3 6 +7073 85 7 -219 1572 7 21 2 5 34 2 100 3 4 +7074 85 8 -213 1572 7 22 2 5 34 2 101 3 5 +7075 85 9 -207 1572 7 24 2 5 34 2 103 3 7 +7076 85 10 -201 1572 11 21 2 5 35 2 100 3 4 +7077 85 11 -195 1572 11 19 2 5 35 2 98 3 2 +7078 85 12 -189 1572 11 20 2 5 35 2 99 3 3 +7079 85 13 -183 1572 11 22 2 5 35 2 101 3 5 +7080 85 14 -177 1572 11 24 2 5 35 2 103 3 7 +7081 85 15 -171 1572 15 23 2 5 36 2 102 3 6 +7082 85 16 -165 1572 15 21 2 5 36 2 100 3 4 +7083 85 17 -159 1572 15 22 2 5 36 2 101 3 5 +7084 85 18 -153 1572 15 24 2 5 36 2 103 3 7 +7085 85 19 -147 1572 15 26 2 5 36 2 105 3 9 +7086 85 20 -141 1572 19 23 2 5 37 2 102 3 6 +7087 85 21 -135 1572 19 21 2 5 37 2 100 3 4 +7088 85 22 -129 1572 19 22 2 5 37 2 101 3 5 +7089 85 23 -123 1572 19 24 2 5 37 2 103 3 7 +7090 85 24 -117 1572 23 23 2 5 38 2 102 3 6 +7091 85 25 -111 1572 23 21 2 5 38 2 100 3 4 +7092 85 26 -105 1572 23 19 2 5 38 2 98 3 2 +7093 85 27 -99 1572 23 22 2 5 38 2 101 3 5 +7094 85 28 -93 1572 23 24 2 5 38 2 103 3 7 +7095 85 29 -87 1572 27 21 2 5 39 2 100 3 4 +7096 85 30 -81 1572 27 19 2 5 39 2 98 3 2 +7097 85 31 -75 1572 27 18 2 5 39 2 97 3 1 +7098 85 32 -69 1572 27 20 2 5 39 2 99 3 3 +7099 85 33 -63 1572 27 22 2 5 39 2 101 3 5 +7100 85 34 -57 1572 31 25 2 5 40 2 104 3 8 +7101 85 35 -51 1572 31 23 2 5 40 2 102 3 6 +7102 85 36 -45 1572 31 21 2 5 40 2 100 3 4 +7103 85 37 -39 1572 31 22 2 5 40 2 101 3 5 +7104 85 38 -33 1572 31 24 2 5 40 2 103 3 7 +7105 85 39 -27 1572 35 25 2 5 41 2 104 3 8 +7106 85 40 -21 1572 35 23 2 5 41 2 102 3 6 +7107 85 41 -15 1572 35 21 2 5 41 2 100 3 4 +7108 85 42 -9 1572 35 22 2 5 41 2 101 3 5 +7109 85 43 -3 1572 35 24 2 5 41 2 103 3 7 +7110 85 44 3 1572 39 23 2 5 42 2 102 3 6 +7111 85 45 9 1572 39 21 2 5 42 2 100 3 4 +7112 85 46 15 1572 39 22 2 5 42 2 101 3 5 +7113 85 47 21 1572 39 24 2 5 42 2 103 3 7 +7114 85 48 27 1572 39 26 2 5 42 2 105 3 9 +7115 85 49 33 1572 43 23 2 5 43 2 102 3 6 +7116 85 50 39 1572 43 21 2 5 43 2 100 3 4 +7117 85 51 45 1572 43 22 2 5 43 2 101 3 5 +7118 85 52 51 1572 43 24 2 5 43 2 103 3 7 +7119 85 53 57 1572 43 26 2 5 43 2 105 3 9 +7120 85 54 63 1572 47 21 2 5 44 2 100 3 4 +7121 85 55 69 1572 47 19 2 5 44 2 98 3 2 +7122 85 56 75 1572 47 17 2 5 44 2 96 3 0 +7123 85 57 81 1572 47 20 2 5 44 2 99 3 3 +7124 85 58 87 1572 47 22 2 5 44 2 101 3 5 +7125 85 59 93 1572 51 23 2 5 45 2 102 3 6 +7126 85 60 99 1572 51 21 2 5 45 2 100 3 4 +7127 85 61 105 1572 51 20 2 5 45 2 99 3 3 +7128 85 62 111 1572 51 22 2 5 45 2 101 3 5 +7129 85 63 117 1572 51 24 2 5 45 2 103 3 7 +7130 85 64 123 1572 55 23 2 5 46 2 102 3 6 +7131 85 65 129 1572 55 21 2 5 46 2 100 3 4 +7132 85 66 135 1572 55 22 2 5 46 2 101 3 5 +7133 85 67 141 1572 55 24 2 5 46 2 103 3 7 +7134 85 68 147 1572 59 25 2 5 47 2 104 3 8 +7135 85 69 153 1572 59 23 2 5 47 2 102 3 6 +7136 85 70 159 1572 59 21 2 5 47 2 100 3 4 +7137 85 71 165 1572 59 22 2 5 47 2 101 3 5 +7138 85 72 171 1572 59 24 2 5 47 2 103 3 7 +7139 85 73 177 1572 63 23 2 5 48 2 102 3 6 +7140 85 74 183 1572 63 21 2 5 48 2 100 3 4 +7141 85 75 189 1572 63 19 2 5 48 2 98 3 2 +7142 85 76 195 1572 63 20 2 5 48 2 99 3 3 +7143 85 77 201 1572 63 22 2 5 48 2 101 3 5 +7144 85 78 207 1572 67 23 2 5 49 2 102 3 6 +7145 85 79 213 1572 67 21 2 5 49 2 100 3 4 +7146 85 80 219 1572 67 22 2 5 49 2 101 3 5 +7147 85 81 225 1572 67 24 2 5 49 2 103 3 7 +7148 85 82 231 1572 67 26 2 5 49 2 105 3 9 +7149 85 83 237 1572 71 23 2 5 50 2 102 3 6 +7150 85 84 243 1572 71 21 2 5 50 2 100 3 4 +7151 85 85 249 1572 71 19 2 5 50 2 98 3 2 +7152 85 86 255 1572 71 22 2 5 50 2 101 3 5 +7153 85 87 261 1572 71 24 2 5 50 2 103 3 7 +7154 86 0 -261 1582 3 27 2 5 33 2 106 3 10 +7155 86 1 -255 1582 3 25 2 5 33 2 104 3 8 +7156 86 2 -249 1582 3 26 2 5 33 2 105 3 9 +7157 86 3 -243 1582 3 28 2 5 33 2 107 3 11 +7158 86 4 -237 1582 3 30 2 5 33 2 109 3 13 +7159 86 5 -231 1582 7 29 2 5 34 2 108 3 12 +7160 86 6 -225 1582 7 27 2 5 34 2 106 3 10 +7161 86 7 -219 1582 7 26 2 5 34 2 105 3 9 +7162 86 8 -213 1582 7 28 2 5 34 2 107 3 11 +7163 86 9 -207 1582 11 27 2 5 35 2 106 3 10 +7164 86 10 -201 1582 11 25 2 5 35 2 104 3 8 +7165 86 11 -195 1582 11 23 2 5 35 2 102 3 6 +7166 86 12 -189 1582 11 26 2 5 35 2 105 3 9 +7167 86 13 -183 1582 11 28 2 5 35 2 107 3 11 +7168 86 14 -177 1582 15 29 2 5 36 2 108 3 12 +7169 86 15 -171 1582 15 27 2 5 36 2 106 3 10 +7170 86 16 -165 1582 15 25 2 5 36 2 104 3 8 +7171 86 17 -159 1582 15 28 2 5 36 2 107 3 11 +7172 86 18 -153 1582 15 30 2 5 36 2 109 3 13 +7173 86 19 -147 1582 19 29 2 5 37 2 108 3 12 +7174 86 20 -141 1582 19 27 2 5 37 2 106 3 10 +7175 86 21 -135 1582 19 25 2 5 37 2 104 3 8 +7176 86 22 -129 1582 19 26 2 5 37 2 105 3 9 +7177 86 23 -123 1582 19 28 2 5 37 2 107 3 11 +7178 86 24 -117 1582 23 27 2 5 38 2 106 3 10 +7179 86 25 -111 1582 23 25 2 5 38 2 104 3 8 +7180 86 26 -105 1582 23 26 2 5 38 2 105 3 9 +7181 86 27 -99 1582 23 28 2 5 38 2 107 3 11 +7182 86 28 -93 1582 23 30 2 5 38 2 109 3 13 +7183 86 29 -87 1582 27 25 2 5 39 2 104 3 8 +7184 86 30 -81 1582 27 23 2 5 39 2 102 3 6 +7185 86 31 -75 1582 27 24 2 5 39 2 103 3 7 +7186 86 32 -69 1582 27 26 2 5 39 2 105 3 9 +7187 86 33 -63 1582 27 28 2 5 39 2 107 3 11 +7188 86 34 -57 1582 31 29 2 5 40 2 108 3 12 +7189 86 35 -51 1582 31 27 2 5 40 2 106 3 10 +7190 86 36 -45 1582 31 26 2 5 40 2 105 3 9 +7191 86 37 -39 1582 31 28 2 5 40 2 107 3 11 +7192 86 38 -33 1582 31 30 2 5 40 2 109 3 13 +7193 86 39 -27 1582 35 29 2 5 41 2 108 3 12 +7194 86 40 -21 1582 35 27 2 5 41 2 106 3 10 +7195 86 41 -15 1582 35 26 2 5 41 2 105 3 9 +7196 86 42 -9 1582 35 28 2 5 41 2 107 3 11 +7197 86 43 -3 1582 35 30 2 5 41 2 109 3 13 +7198 86 44 3 1582 39 29 2 5 42 2 108 3 12 +7199 86 45 9 1582 39 27 2 5 42 2 106 3 10 +7200 86 46 15 1582 39 25 2 5 42 2 104 3 8 +7201 86 47 21 1582 39 28 2 5 42 2 107 3 11 +7202 86 48 27 1582 39 30 2 5 42 2 109 3 13 +7203 86 49 33 1582 43 29 2 5 43 2 108 3 12 +7204 86 50 39 1582 43 27 2 5 43 2 106 3 10 +7205 86 51 45 1582 43 25 2 5 43 2 104 3 8 +7206 86 52 51 1582 43 28 2 5 43 2 107 3 11 +7207 86 53 57 1582 43 30 2 5 43 2 109 3 13 +7208 86 54 63 1582 47 27 2 5 44 2 106 3 10 +7209 86 55 69 1582 47 25 2 5 44 2 104 3 8 +7210 86 56 75 1582 47 23 2 5 44 2 102 3 6 +7211 86 57 81 1582 47 24 2 5 44 2 103 3 7 +7212 86 58 87 1582 47 26 2 5 44 2 105 3 9 +7213 86 59 93 1582 51 29 2 5 45 2 108 3 12 +7214 86 60 99 1582 51 27 2 5 45 2 106 3 10 +7215 86 61 105 1582 51 25 2 5 45 2 104 3 8 +7216 86 62 111 1582 51 26 2 5 45 2 105 3 9 +7217 86 63 117 1582 51 28 2 5 45 2 107 3 11 +7218 86 64 123 1582 55 27 2 5 46 2 106 3 10 +7219 86 65 129 1582 55 25 2 5 46 2 104 3 8 +7220 86 66 135 1582 55 26 2 5 46 2 105 3 9 +7221 86 67 141 1582 55 28 2 5 46 2 107 3 11 +7222 86 68 147 1582 55 30 2 5 46 2 109 3 13 +7223 86 69 153 1582 59 29 2 5 47 2 108 3 12 +7224 86 70 159 1582 59 27 2 5 47 2 106 3 10 +7225 86 71 165 1582 59 26 2 5 47 2 105 3 9 +7226 86 72 171 1582 59 28 2 5 47 2 107 3 11 +7227 86 73 177 1582 59 30 2 5 47 2 109 3 13 +7228 86 74 183 1582 63 27 2 5 48 2 106 3 10 +7229 86 75 189 1582 63 25 2 5 48 2 104 3 8 +7230 86 76 195 1582 63 24 2 5 48 2 103 3 7 +7231 86 77 201 1582 63 26 2 5 48 2 105 3 9 +7232 86 78 207 1582 63 28 2 5 48 2 107 3 11 +7233 86 79 213 1582 67 27 2 5 49 2 106 3 10 +7234 86 80 219 1582 67 25 2 5 49 2 104 3 8 +7235 86 81 225 1582 67 28 2 5 49 2 107 3 11 +7236 86 82 231 1582 67 30 2 5 49 2 109 3 13 +7237 86 83 237 1582 71 29 2 5 50 2 108 3 12 +7238 86 84 243 1582 71 27 2 5 50 2 106 3 10 +7239 86 85 249 1582 71 25 2 5 50 2 104 3 8 +7240 86 86 255 1582 71 26 2 5 50 2 105 3 9 +7241 86 87 261 1582 71 28 2 5 50 2 107 3 11 +7242 87 0 -267 1592 3 33 2 5 33 2 112 3 16 +7243 87 1 -261 1592 3 31 2 5 33 2 110 3 14 +7244 87 2 -255 1592 3 29 2 5 33 2 108 3 12 +7245 87 3 -249 1592 3 32 2 5 33 2 111 3 15 +7246 87 4 -243 1592 3 34 2 5 33 2 113 3 17 +7247 87 5 -237 1592 7 33 2 5 34 2 112 3 16 +7248 87 6 -231 1592 7 31 2 5 34 2 110 3 14 +7249 87 7 -225 1592 7 30 2 5 34 2 109 3 13 +7250 87 8 -219 1592 7 32 2 5 34 2 111 3 15 +7251 87 9 -213 1592 7 34 2 5 34 2 113 3 17 +7252 87 10 -207 1592 11 31 2 5 35 2 110 3 14 +7253 87 11 -201 1592 11 29 2 5 35 2 108 3 12 +7254 87 12 -195 1592 11 30 2 5 35 2 109 3 13 +7255 87 13 -189 1592 11 32 2 5 35 2 111 3 15 +7256 87 14 -183 1592 11 34 2 5 35 2 113 3 17 +7257 87 15 -177 1592 15 33 2 5 36 2 112 3 16 +7258 87 16 -171 1592 15 31 2 5 36 2 110 3 14 +7259 87 17 -165 1592 15 32 2 5 36 2 111 3 15 +7260 87 18 -159 1592 15 34 2 5 36 2 113 3 17 +7261 87 19 -153 1592 15 36 2 5 36 2 115 3 19 +7262 87 20 -147 1592 19 33 2 5 37 2 112 3 16 +7263 87 21 -141 1592 19 31 2 5 37 2 110 3 14 +7264 87 22 -135 1592 19 30 2 5 37 2 109 3 13 +7265 87 23 -129 1592 19 32 2 5 37 2 111 3 15 +7266 87 24 -123 1592 19 34 2 5 37 2 113 3 17 +7267 87 25 -117 1592 23 33 2 5 38 2 112 3 16 +7268 87 26 -111 1592 23 31 2 5 38 2 110 3 14 +7269 87 27 -105 1592 23 29 2 5 38 2 108 3 12 +7270 87 28 -99 1592 23 32 2 5 38 2 111 3 15 +7271 87 29 -93 1592 23 34 2 5 38 2 113 3 17 +7272 87 30 -87 1592 27 29 2 5 39 2 108 3 12 +7273 87 31 -81 1592 27 27 2 5 39 2 106 3 10 +7274 87 32 -75 1592 27 30 2 5 39 2 109 3 13 +7275 87 33 -69 1592 27 32 2 5 39 2 111 3 15 +7276 87 34 -63 1592 27 34 2 5 39 2 113 3 17 +7277 87 35 -57 1592 31 35 2 5 40 2 114 3 18 +7278 87 36 -51 1592 31 33 2 5 40 2 112 3 16 +7279 87 37 -45 1592 31 31 2 5 40 2 110 3 14 +7280 87 38 -39 1592 31 32 2 5 40 2 111 3 15 +7281 87 39 -33 1592 31 34 2 5 40 2 113 3 17 +7282 87 40 -27 1592 35 35 2 5 41 2 114 3 18 +7283 87 41 -21 1592 35 33 2 5 41 2 112 3 16 +7284 87 42 -15 1592 35 31 2 5 41 2 110 3 14 +7285 87 43 -9 1592 35 32 2 5 41 2 111 3 15 +7286 87 44 -3 1592 35 34 2 5 41 2 113 3 17 +7287 87 45 3 1592 39 33 2 5 42 2 112 3 16 +7288 87 46 9 1592 39 31 2 5 42 2 110 3 14 +7289 87 47 15 1592 39 32 2 5 42 2 111 3 15 +7290 87 48 21 1592 39 34 2 5 42 2 113 3 17 +7291 87 49 27 1592 39 36 2 5 42 2 115 3 19 +7292 87 50 33 1592 43 33 2 5 43 2 112 3 16 +7293 87 51 39 1592 43 31 2 5 43 2 110 3 14 +7294 87 52 45 1592 43 32 2 5 43 2 111 3 15 +7295 87 53 51 1592 43 34 2 5 43 2 113 3 17 +7296 87 54 57 1592 43 36 2 5 43 2 115 3 19 +7297 87 55 63 1592 47 33 2 5 44 2 112 3 16 +7298 87 56 69 1592 47 31 2 5 44 2 110 3 14 +7299 87 57 75 1592 47 29 2 5 44 2 108 3 12 +7300 87 58 81 1592 47 28 2 5 44 2 107 3 11 +7301 87 59 87 1592 47 30 2 5 44 2 109 3 13 +7302 87 60 93 1592 51 33 2 5 45 2 112 3 16 +7303 87 61 99 1592 51 31 2 5 45 2 110 3 14 +7304 87 62 105 1592 51 30 2 5 45 2 109 3 13 +7305 87 63 111 1592 51 32 2 5 45 2 111 3 15 +7306 87 64 117 1592 51 34 2 5 45 2 113 3 17 +7307 87 65 123 1592 55 33 2 5 46 2 112 3 16 +7308 87 66 129 1592 55 31 2 5 46 2 110 3 14 +7309 87 67 135 1592 55 29 2 5 46 2 108 3 12 +7310 87 68 141 1592 55 32 2 5 46 2 111 3 15 +7311 87 69 147 1592 55 34 2 5 46 2 113 3 17 +7312 87 70 153 1592 59 35 2 5 47 2 114 3 18 +7313 87 71 159 1592 59 33 2 5 47 2 112 3 16 +7314 87 72 165 1592 59 31 2 5 47 2 110 3 14 +7315 87 73 171 1592 59 32 2 5 47 2 111 3 15 +7316 87 74 177 1592 59 34 2 5 47 2 113 3 17 +7317 87 75 183 1592 63 33 2 5 48 2 112 3 16 +7318 87 76 189 1592 63 31 2 5 48 2 110 3 14 +7319 87 77 195 1592 63 29 2 5 48 2 108 3 12 +7320 87 78 201 1592 63 30 2 5 48 2 109 3 13 +7321 87 79 207 1592 63 32 2 5 48 2 111 3 15 +7322 87 80 213 1592 67 33 2 5 49 2 112 3 16 +7323 87 81 219 1592 67 31 2 5 49 2 110 3 14 +7324 87 82 225 1592 67 29 2 5 49 2 108 3 12 +7325 87 83 231 1592 67 32 2 5 49 2 111 3 15 +7326 87 84 237 1592 67 34 2 5 49 2 113 3 17 +7327 87 85 243 1592 71 33 2 5 50 2 112 3 16 +7328 87 86 249 1592 71 31 2 5 50 2 110 3 14 +7329 87 87 255 1592 71 30 2 5 50 2 109 3 13 +7330 87 88 261 1592 71 32 2 5 50 2 111 3 15 +7331 87 89 267 1592 71 34 2 5 50 2 113 3 17 +7332 88 0 -267 1602 3 37 2 5 33 2 116 3 20 +7333 88 1 -261 1602 3 35 2 5 33 2 114 3 18 +7334 88 2 -255 1602 3 36 2 5 33 2 115 3 19 +7335 88 3 -249 1602 3 38 2 5 33 2 117 3 21 +7336 88 4 -243 1602 3 40 2 5 33 2 119 3 23 +7337 88 5 -237 1602 7 37 2 5 34 2 116 3 20 +7338 88 6 -231 1602 7 35 2 5 34 2 114 3 18 +7339 88 7 -225 1602 7 36 2 5 34 2 115 3 19 +7340 88 8 -219 1602 7 38 2 5 34 2 117 3 21 +7341 88 9 -213 1602 7 40 2 5 34 2 119 3 23 +7342 88 10 -207 1602 11 35 2 5 35 2 114 3 18 +7343 88 11 -201 1602 11 33 2 5 35 2 112 3 16 +7344 88 12 -195 1602 11 36 2 5 35 2 115 3 19 +7345 88 13 -189 1602 11 38 2 5 35 2 117 3 21 +7346 88 14 -183 1602 11 40 2 5 35 2 119 3 23 +7347 88 15 -177 1602 15 39 2 5 36 2 118 3 22 +7348 88 16 -171 1602 15 37 2 5 36 2 116 3 20 +7349 88 17 -165 1602 15 35 2 5 36 2 114 3 18 +7350 88 18 -159 1602 15 38 2 5 36 2 117 3 21 +7351 88 19 -153 1602 15 40 2 5 36 2 119 3 23 +7352 88 20 -147 1602 19 37 2 5 37 2 116 3 20 +7353 88 21 -141 1602 19 35 2 5 37 2 114 3 18 +7354 88 22 -135 1602 19 36 2 5 37 2 115 3 19 +7355 88 23 -129 1602 19 38 2 5 37 2 117 3 21 +7356 88 24 -123 1602 19 40 2 5 37 2 119 3 23 +7357 88 25 -117 1602 23 37 2 5 38 2 116 3 20 +7358 88 26 -111 1602 23 35 2 5 38 2 114 3 18 +7359 88 27 -105 1602 23 36 2 5 38 2 115 3 19 +7360 88 28 -99 1602 23 38 2 5 38 2 117 3 21 +7361 88 29 -93 1602 23 40 2 5 38 2 119 3 23 +7362 88 30 -87 1602 27 33 2 5 39 2 112 3 16 +7363 88 31 -81 1602 27 31 2 5 39 2 110 3 14 +7364 88 32 -75 1602 27 36 2 5 39 2 115 3 19 +7365 88 33 -69 1602 27 38 2 5 39 2 117 3 21 +7366 88 34 -63 1602 27 40 2 5 39 2 119 3 23 +7367 88 35 -57 1602 31 39 2 5 40 2 118 3 22 +7368 88 36 -51 1602 31 37 2 5 40 2 116 3 20 +7369 88 37 -45 1602 31 36 2 5 40 2 115 3 19 +7370 88 38 -39 1602 31 38 2 5 40 2 117 3 21 +7371 88 39 -33 1602 31 40 2 5 40 2 119 3 23 +7372 88 40 -27 1602 35 39 2 5 41 2 118 3 22 +7373 88 41 -21 1602 35 37 2 5 41 2 116 3 20 +7374 88 42 -15 1602 35 36 2 5 41 2 115 3 19 +7375 88 43 -9 1602 35 38 2 5 41 2 117 3 21 +7376 88 44 -3 1602 35 40 2 5 41 2 119 3 23 +7377 88 45 3 1602 39 39 2 5 42 2 118 3 22 +7378 88 46 9 1602 39 37 2 5 42 2 116 3 20 +7379 88 47 15 1602 39 35 2 5 42 2 114 3 18 +7380 88 48 21 1602 39 38 2 5 42 2 117 3 21 +7381 88 49 27 1602 39 40 2 5 42 2 119 3 23 +7382 88 50 33 1602 43 39 2 5 43 2 118 3 22 +7383 88 51 39 1602 43 37 2 5 43 2 116 3 20 +7384 88 52 45 1602 43 35 2 5 43 2 114 3 18 +7385 88 53 51 1602 43 38 2 5 43 2 117 3 21 +7386 88 54 57 1602 43 40 2 5 43 2 119 3 23 +7387 88 55 63 1602 47 39 2 5 44 2 118 3 22 +7388 88 56 69 1602 47 37 2 5 44 2 116 3 20 +7389 88 57 75 1602 47 35 2 5 44 2 114 3 18 +7390 88 58 81 1602 47 32 2 5 44 2 111 3 15 +7391 88 59 87 1602 47 34 2 5 44 2 113 3 17 +7392 88 60 93 1602 51 39 2 5 45 2 118 3 22 +7393 88 61 99 1602 51 37 2 5 45 2 116 3 20 +7394 88 62 105 1602 51 35 2 5 45 2 114 3 18 +7395 88 63 111 1602 51 36 2 5 45 2 115 3 19 +7396 88 64 117 1602 51 38 2 5 45 2 117 3 21 +7397 88 65 123 1602 55 39 2 5 46 2 118 3 22 +7398 88 66 129 1602 55 37 2 5 46 2 116 3 20 +7399 88 67 135 1602 55 35 2 5 46 2 114 3 18 +7400 88 68 141 1602 55 36 2 5 46 2 115 3 19 +7401 88 69 147 1602 55 38 2 5 46 2 117 3 21 +7402 88 70 153 1602 59 39 2 5 47 2 118 3 22 +7403 88 71 159 1602 59 37 2 5 47 2 116 3 20 +7404 88 72 165 1602 59 36 2 5 47 2 115 3 19 +7405 88 73 171 1602 59 38 2 5 47 2 117 3 21 +7406 88 74 177 1602 59 40 2 5 47 2 119 3 23 +7407 88 75 183 1602 63 39 2 5 48 2 118 3 22 +7408 88 76 189 1602 63 37 2 5 48 2 116 3 20 +7409 88 77 195 1602 63 35 2 5 48 2 114 3 18 +7410 88 78 201 1602 63 34 2 5 48 2 113 3 17 +7411 88 79 207 1602 63 36 2 5 48 2 115 3 19 +7412 88 80 213 1602 67 39 2 5 49 2 118 3 22 +7413 88 81 219 1602 67 37 2 5 49 2 116 3 20 +7414 88 82 225 1602 67 35 2 5 49 2 114 3 18 +7415 88 83 231 1602 67 36 2 5 49 2 115 3 19 +7416 88 84 237 1602 67 38 2 5 49 2 117 3 21 +7417 88 85 243 1602 71 39 2 5 50 2 118 3 22 +7418 88 86 249 1602 71 37 2 5 50 2 116 3 20 +7419 88 87 255 1602 71 35 2 5 50 2 114 3 18 +7420 88 88 261 1602 71 36 2 5 50 2 115 3 19 +7421 88 89 267 1602 71 38 2 5 50 2 117 3 21 +7422 89 0 -267 1612 3 39 2 5 33 2 118 3 22 +7423 89 1 -261 1612 4 3 2 5 33 3 122 3 26 +7424 89 2 -255 1612 4 1 2 5 33 3 120 3 24 +7425 89 3 -249 1612 4 2 2 5 33 3 121 3 25 +7426 89 4 -243 1612 4 4 2 5 33 3 123 3 27 +7427 89 5 -237 1612 7 39 2 5 34 2 118 3 22 +7428 89 6 -231 1612 8 3 2 5 34 3 122 3 26 +7429 89 7 -225 1612 8 1 2 5 34 3 120 3 24 +7430 89 8 -219 1612 8 2 2 5 34 3 121 3 25 +7431 89 9 -213 1612 8 4 2 5 34 3 123 3 27 +7432 89 10 -207 1612 11 39 2 5 35 2 118 3 22 +7433 89 11 -201 1612 11 37 2 5 35 2 116 3 20 +7434 89 12 -195 1612 12 1 2 5 35 3 120 3 24 +7435 89 13 -189 1612 12 2 2 5 35 3 121 3 25 +7436 89 14 -183 1612 12 4 2 5 35 3 123 3 27 +7437 89 15 -177 1612 16 3 2 5 36 3 122 3 26 +7438 89 16 -171 1612 16 1 2 5 36 3 120 3 24 +7439 89 17 -165 1612 16 2 2 5 36 3 121 3 25 +7440 89 18 -159 1612 16 4 2 5 36 3 123 3 27 +7441 89 19 -153 1612 16 6 2 5 36 3 125 3 29 +7442 89 20 -147 1612 19 39 2 5 37 2 118 3 22 +7443 89 21 -141 1612 20 3 2 5 37 3 122 3 26 +7444 89 22 -135 1612 20 1 2 5 37 3 120 3 24 +7445 89 23 -129 1612 20 2 2 5 37 3 121 3 25 +7446 89 24 -123 1612 20 4 2 5 37 3 123 3 27 +7447 89 25 -117 1612 23 39 2 5 38 2 118 3 22 +7448 89 26 -111 1612 24 3 2 5 38 3 122 3 26 +7449 89 27 -105 1612 24 1 2 5 38 3 120 3 24 +7450 89 28 -99 1612 24 2 2 5 38 3 121 3 25 +7451 89 29 -93 1612 24 4 2 5 38 3 123 3 27 +7452 89 30 -87 1612 27 39 2 5 39 2 118 3 22 +7453 89 31 -81 1612 27 37 2 5 39 2 116 3 20 +7454 89 32 -75 1612 27 35 2 5 39 2 114 3 18 +7455 89 33 -69 1612 28 2 2 5 39 3 121 3 25 +7456 89 34 -63 1612 28 4 2 5 39 3 123 3 27 +7457 89 35 -57 1612 32 5 2 5 40 3 124 3 28 +7458 89 36 -51 1612 32 3 2 5 40 3 122 3 26 +7459 89 37 -45 1612 32 1 2 5 40 3 120 3 24 +7460 89 38 -39 1612 32 2 2 5 40 3 121 3 25 +7461 89 39 -33 1612 32 4 2 5 40 3 123 3 27 +7462 89 40 -27 1612 36 5 2 5 41 3 124 3 28 +7463 89 41 -21 1612 36 3 2 5 41 3 122 3 26 +7464 89 42 -15 1612 36 1 2 5 41 3 120 3 24 +7465 89 43 -9 1612 36 2 2 5 41 3 121 3 25 +7466 89 44 -3 1612 36 4 2 5 41 3 123 3 27 +7467 89 45 3 1612 40 3 2 5 42 3 122 3 26 +7468 89 46 9 1612 40 1 2 5 42 3 120 3 24 +7469 89 47 15 1612 40 2 2 5 42 3 121 3 25 +7470 89 48 21 1612 40 4 2 5 42 3 123 3 27 +7471 89 49 27 1612 40 6 2 5 42 3 125 3 29 +7472 89 50 33 1612 44 3 2 5 43 3 122 3 26 +7473 89 51 39 1612 44 1 2 5 43 3 120 3 24 +7474 89 52 45 1612 44 2 2 5 43 3 121 3 25 +7475 89 53 51 1612 44 4 2 5 43 3 123 3 27 +7476 89 54 57 1612 44 6 2 5 43 3 125 3 29 +7477 89 55 63 1612 48 3 2 5 44 3 122 3 26 +7478 89 56 69 1612 48 1 2 5 44 3 120 3 24 +7479 89 57 75 1612 47 36 2 5 44 2 115 3 19 +7480 89 58 81 1612 47 38 2 5 44 2 117 3 21 +7481 89 59 87 1612 47 40 2 5 44 2 119 3 23 +7482 89 60 93 1612 52 3 2 5 45 3 122 3 26 +7483 89 61 99 1612 52 1 2 5 45 3 120 3 24 +7484 89 62 105 1612 52 2 2 5 45 3 121 3 25 +7485 89 63 111 1612 52 4 2 5 45 3 123 3 27 +7486 89 64 117 1612 51 40 2 5 45 2 119 3 23 +7487 89 65 123 1612 56 3 2 5 46 3 122 3 26 +7488 89 66 129 1612 56 1 2 5 46 3 120 3 24 +7489 89 67 135 1612 56 2 2 5 46 3 121 3 25 +7490 89 68 141 1612 56 4 2 5 46 3 123 3 27 +7491 89 69 147 1612 55 40 2 5 46 2 119 3 23 +7492 89 70 153 1612 60 5 2 5 47 3 124 3 28 +7493 89 71 159 1612 60 3 2 5 47 3 122 3 26 +7494 89 72 165 1612 60 1 2 5 47 3 120 3 24 +7495 89 73 171 1612 60 2 2 5 47 3 121 3 25 +7496 89 74 177 1612 60 4 2 5 47 3 123 3 27 +7497 89 75 183 1612 64 3 2 5 48 3 122 3 26 +7498 89 76 189 1612 64 1 2 5 48 3 120 3 24 +7499 89 77 195 1612 64 2 2 5 48 3 121 3 25 +7500 89 78 201 1612 63 38 2 5 48 2 117 3 21 +7501 89 79 207 1612 63 40 2 5 48 2 119 3 23 +7502 89 80 213 1612 68 3 2 5 49 3 122 3 26 +7503 89 81 219 1612 68 1 2 5 49 3 120 3 24 +7504 89 82 225 1612 68 2 2 5 49 3 121 3 25 +7505 89 83 231 1612 68 4 2 5 49 3 123 3 27 +7506 89 84 237 1612 67 40 2 5 49 2 119 3 23 +7507 89 85 243 1612 72 3 2 5 50 3 122 3 26 +7508 89 86 249 1612 72 1 2 5 50 3 120 3 24 +7509 89 87 255 1612 72 2 2 5 50 3 121 3 25 +7510 89 88 261 1612 72 4 2 5 50 3 123 3 27 +7511 89 89 267 1612 71 40 2 5 50 2 119 3 23 +7512 90 0 -267 1622 4 9 2 5 33 3 128 4 0 +7513 90 1 -261 1622 4 7 2 5 33 3 126 3 30 +7514 90 2 -255 1622 4 5 2 5 33 3 124 3 28 +7515 90 3 -249 1622 4 6 2 5 33 3 125 3 29 +7516 90 4 -243 1622 4 8 2 5 33 3 127 3 31 +7517 90 5 -237 1622 8 7 2 5 34 3 126 3 30 +7518 90 6 -231 1622 8 5 2 5 34 3 124 3 28 +7519 90 7 -225 1622 8 6 2 5 34 3 125 3 29 +7520 90 8 -219 1622 8 8 2 5 34 3 127 3 31 +7521 90 9 -213 1622 8 10 2 5 34 3 129 4 1 +7522 90 10 -207 1622 12 7 2 5 35 3 126 3 30 +7523 90 11 -201 1622 12 5 2 5 35 3 124 3 28 +7524 90 12 -195 1622 12 3 2 5 35 3 122 3 26 +7525 90 13 -189 1622 12 6 2 5 35 3 125 3 29 +7526 90 14 -183 1622 12 8 2 5 35 3 127 3 31 +7527 90 15 -177 1622 16 9 2 5 36 3 128 4 0 +7528 90 16 -171 1622 16 7 2 5 36 3 126 3 30 +7529 90 17 -165 1622 16 5 2 5 36 3 124 3 28 +7530 90 18 -159 1622 16 8 2 5 36 3 127 3 31 +7531 90 19 -153 1622 16 10 2 5 36 3 129 4 1 +7532 90 20 -147 1622 20 9 2 5 37 3 128 4 0 +7533 90 21 -141 1622 20 7 2 5 37 3 126 3 30 +7534 90 22 -135 1622 20 5 2 5 37 3 124 3 28 +7535 90 23 -129 1622 20 6 2 5 37 3 125 3 29 +7536 90 24 -123 1622 20 8 2 5 37 3 127 3 31 +7537 90 25 -117 1622 24 9 2 5 38 3 128 4 0 +7538 90 26 -111 1622 24 7 2 5 38 3 126 3 30 +7539 90 27 -105 1622 24 5 2 5 38 3 124 3 28 +7540 90 28 -99 1622 24 6 2 5 38 3 125 3 29 +7541 90 29 -93 1622 24 8 2 5 38 3 127 3 31 +7542 90 30 -87 1622 28 5 2 5 39 3 124 3 28 +7543 90 31 -81 1622 28 3 2 5 39 3 122 3 26 +7544 90 32 -75 1622 28 1 2 5 39 3 120 3 24 +7545 90 33 -69 1622 28 6 2 5 39 3 125 3 29 +7546 90 34 -63 1622 28 8 2 5 39 3 127 3 31 +7547 90 35 -57 1622 32 9 2 5 40 3 128 4 0 +7548 90 36 -51 1622 32 7 2 5 40 3 126 3 30 +7549 90 37 -45 1622 32 6 2 5 40 3 125 3 29 +7550 90 38 -39 1622 32 8 2 5 40 3 127 3 31 +7551 90 39 -33 1622 32 10 2 5 40 3 129 4 1 +7552 90 40 -27 1622 36 9 2 5 41 3 128 4 0 +7553 90 41 -21 1622 36 7 2 5 41 3 126 3 30 +7554 90 42 -15 1622 36 6 2 5 41 3 125 3 29 +7555 90 43 -9 1622 36 8 2 5 41 3 127 3 31 +7556 90 44 -3 1622 36 10 2 5 41 3 129 4 1 +7557 90 45 3 1622 40 9 2 5 42 3 128 4 0 +7558 90 46 9 1622 40 7 2 5 42 3 126 3 30 +7559 90 47 15 1622 40 5 2 5 42 3 124 3 28 +7560 90 48 21 1622 40 8 2 5 42 3 127 3 31 +7561 90 49 27 1622 40 10 2 5 42 3 129 4 1 +7562 90 50 33 1622 44 9 2 5 43 3 128 4 0 +7563 90 51 39 1622 44 7 2 5 43 3 126 3 30 +7564 90 52 45 1622 44 5 2 5 43 3 124 3 28 +7565 90 53 51 1622 44 8 2 5 43 3 127 3 31 +7566 90 54 57 1622 44 10 2 5 43 3 129 4 1 +7567 90 55 63 1622 48 7 2 5 44 3 126 3 30 +7568 90 56 69 1622 48 5 2 5 44 3 124 3 28 +7569 90 57 75 1622 48 2 2 5 44 3 121 3 25 +7570 90 58 81 1622 48 4 2 5 44 3 123 3 27 +7571 90 59 87 1622 48 6 2 5 44 3 125 3 29 +7572 90 60 93 1622 52 7 2 5 45 3 126 3 30 +7573 90 61 99 1622 52 5 2 5 45 3 124 3 28 +7574 90 62 105 1622 52 6 2 5 45 3 125 3 29 +7575 90 63 111 1622 52 8 2 5 45 3 127 3 31 +7576 90 64 117 1622 52 10 2 5 45 3 129 4 1 +7577 90 65 123 1622 56 7 2 5 46 3 126 3 30 +7578 90 66 129 1622 56 5 2 5 46 3 124 3 28 +7579 90 67 135 1622 56 6 2 5 46 3 125 3 29 +7580 90 68 141 1622 56 8 2 5 46 3 127 3 31 +7581 90 69 147 1622 56 10 2 5 46 3 129 4 1 +7582 90 70 153 1622 60 9 2 5 47 3 128 4 0 +7583 90 71 159 1622 60 7 2 5 47 3 126 3 30 +7584 90 72 165 1622 60 6 2 5 47 3 125 3 29 +7585 90 73 171 1622 60 8 2 5 47 3 127 3 31 +7586 90 74 177 1622 60 10 2 5 47 3 129 4 1 +7587 90 75 183 1622 64 7 2 5 48 3 126 3 30 +7588 90 76 189 1622 64 5 2 5 48 3 124 3 28 +7589 90 77 195 1622 64 4 2 5 48 3 123 3 27 +7590 90 78 201 1622 64 6 2 5 48 3 125 3 29 +7591 90 79 207 1622 64 8 2 5 48 3 127 3 31 +7592 90 80 213 1622 68 9 2 5 49 3 128 4 0 +7593 90 81 219 1622 68 7 2 5 49 3 126 3 30 +7594 90 82 225 1622 68 5 2 5 49 3 124 3 28 +7595 90 83 231 1622 68 6 2 5 49 3 125 3 29 +7596 90 84 237 1622 68 8 2 5 49 3 127 3 31 +7597 90 85 243 1622 72 7 2 5 50 3 126 3 30 +7598 90 86 249 1622 72 5 2 5 50 3 124 3 28 +7599 90 87 255 1622 72 6 2 5 50 3 125 3 29 +7600 90 88 261 1622 72 8 2 5 50 3 127 3 31 +7601 90 89 267 1622 72 10 2 5 50 3 129 4 1 +7602 91 0 -273 1632 4 13 2 5 33 3 132 4 4 +7603 91 1 -267 1632 4 11 2 5 33 3 130 4 2 +7604 91 2 -261 1632 4 10 2 5 33 3 129 4 1 +7605 91 3 -255 1632 4 12 2 5 33 3 131 4 3 +7606 91 4 -249 1632 4 14 2 5 33 3 133 4 5 +7607 91 5 -243 1632 8 13 2 5 34 3 132 4 4 +7608 91 6 -237 1632 8 11 2 5 34 3 130 4 2 +7609 91 7 -231 1632 8 9 2 5 34 3 128 4 0 +7610 91 8 -225 1632 8 12 2 5 34 3 131 4 3 +7611 91 9 -219 1632 8 14 2 5 34 3 133 4 5 +7612 91 10 -213 1632 12 13 2 5 35 3 132 4 4 +7613 91 11 -207 1632 12 11 2 5 35 3 130 4 2 +7614 91 12 -201 1632 12 9 2 5 35 3 128 4 0 +7615 91 13 -195 1632 12 10 2 5 35 3 129 4 1 +7616 91 14 -189 1632 12 12 2 5 35 3 131 4 3 +7617 91 15 -183 1632 12 14 2 5 35 3 133 4 5 +7618 91 16 -177 1632 16 13 2 5 36 3 132 4 4 +7619 91 17 -171 1632 16 11 2 5 36 3 130 4 2 +7620 91 18 -165 1632 16 12 2 5 36 3 131 4 3 +7621 91 19 -159 1632 16 14 2 5 36 3 133 4 5 +7622 91 20 -153 1632 16 16 2 5 36 3 135 4 7 +7623 91 21 -147 1632 20 13 2 5 37 3 132 4 4 +7624 91 22 -141 1632 20 11 2 5 37 3 130 4 2 +7625 91 23 -135 1632 20 10 2 5 37 3 129 4 1 +7626 91 24 -129 1632 20 12 2 5 37 3 131 4 3 +7627 91 25 -123 1632 20 14 2 5 37 3 133 4 5 +7628 91 26 -117 1632 24 13 2 5 38 3 132 4 4 +7629 91 27 -111 1632 24 11 2 5 38 3 130 4 2 +7630 91 28 -105 1632 24 10 2 5 38 3 129 4 1 +7631 91 29 -99 1632 24 12 2 5 38 3 131 4 3 +7632 91 30 -93 1632 24 14 2 5 38 3 133 4 5 +7633 91 31 -87 1632 28 11 2 5 39 3 130 4 2 +7634 91 32 -81 1632 28 9 2 5 39 3 128 4 0 +7635 91 33 -75 1632 28 7 2 5 39 3 126 3 30 +7636 91 34 -69 1632 28 10 2 5 39 3 129 4 1 +7637 91 35 -63 1632 28 12 2 5 39 3 131 4 3 +7638 91 36 -57 1632 32 15 2 5 40 3 134 4 6 +7639 91 37 -51 1632 32 13 2 5 40 3 132 4 4 +7640 91 38 -45 1632 32 11 2 5 40 3 130 4 2 +7641 91 39 -39 1632 32 12 2 5 40 3 131 4 3 +7642 91 40 -33 1632 32 14 2 5 40 3 133 4 5 +7643 91 41 -27 1632 36 15 2 5 41 3 134 4 6 +7644 91 42 -21 1632 36 13 2 5 41 3 132 4 4 +7645 91 43 -15 1632 36 11 2 5 41 3 130 4 2 +7646 91 44 -9 1632 36 12 2 5 41 3 131 4 3 +7647 91 45 -3 1632 36 14 2 5 41 3 133 4 5 +7648 91 46 3 1632 40 13 2 5 42 3 132 4 4 +7649 91 47 9 1632 40 11 2 5 42 3 130 4 2 +7650 91 48 15 1632 40 12 2 5 42 3 131 4 3 +7651 91 49 21 1632 40 14 2 5 42 3 133 4 5 +7652 91 50 27 1632 40 16 2 5 42 3 135 4 7 +7653 91 51 33 1632 44 13 2 5 43 3 132 4 4 +7654 91 52 39 1632 44 11 2 5 43 3 130 4 2 +7655 91 53 45 1632 44 12 2 5 43 3 131 4 3 +7656 91 54 51 1632 44 14 2 5 43 3 133 4 5 +7657 91 55 57 1632 44 16 2 5 43 3 135 4 7 +7658 91 56 63 1632 48 11 2 5 44 3 130 4 2 +7659 91 57 69 1632 48 9 2 5 44 3 128 4 0 +7660 91 58 75 1632 48 8 2 5 44 3 127 3 31 +7661 91 59 81 1632 48 10 2 5 44 3 129 4 1 +7662 91 60 87 1632 48 12 2 5 44 3 131 4 3 +7663 91 61 93 1632 52 13 2 5 45 3 132 4 4 +7664 91 62 99 1632 52 11 2 5 45 3 130 4 2 +7665 91 63 105 1632 52 9 2 5 45 3 128 4 0 +7666 91 64 111 1632 52 12 2 5 45 3 131 4 3 +7667 91 65 117 1632 52 14 2 5 45 3 133 4 5 +7668 91 66 123 1632 56 13 2 5 46 3 132 4 4 +7669 91 67 129 1632 56 11 2 5 46 3 130 4 2 +7670 91 68 135 1632 56 9 2 5 46 3 128 4 0 +7671 91 69 141 1632 56 12 2 5 46 3 131 4 3 +7672 91 70 147 1632 56 14 2 5 46 3 133 4 5 +7673 91 71 153 1632 60 15 2 5 47 3 134 4 6 +7674 91 72 159 1632 60 13 2 5 47 3 132 4 4 +7675 91 73 165 1632 60 11 2 5 47 3 130 4 2 +7676 91 74 171 1632 60 12 2 5 47 3 131 4 3 +7677 91 75 177 1632 60 14 2 5 47 3 133 4 5 +7678 91 76 183 1632 64 13 2 5 48 3 132 4 4 +7679 91 77 189 1632 64 11 2 5 48 3 130 4 2 +7680 91 78 195 1632 64 9 2 5 48 3 128 4 0 +7681 91 79 201 1632 64 10 2 5 48 3 129 4 1 +7682 91 80 207 1632 64 12 2 5 48 3 131 4 3 +7683 91 81 213 1632 64 14 2 5 48 3 133 4 5 +7684 91 82 219 1632 68 13 2 5 49 3 132 4 4 +7685 91 83 225 1632 68 11 2 5 49 3 130 4 2 +7686 91 84 231 1632 68 10 2 5 49 3 129 4 1 +7687 91 85 237 1632 68 12 2 5 49 3 131 4 3 +7688 91 86 243 1632 68 14 2 5 49 3 133 4 5 +7689 91 87 249 1632 72 13 2 5 50 3 132 4 4 +7690 91 88 255 1632 72 11 2 5 50 3 130 4 2 +7691 91 89 261 1632 72 9 2 5 50 3 128 4 0 +7692 91 90 267 1632 72 12 2 5 50 3 131 4 3 +7693 91 91 273 1632 72 14 2 5 50 3 133 4 5 +7694 92 0 -273 1642 4 19 2 5 33 3 138 4 10 +7695 92 1 -267 1642 4 17 2 5 33 3 136 4 8 +7696 92 2 -261 1642 4 15 2 5 33 3 134 4 6 +7697 92 3 -255 1642 4 16 2 5 33 3 135 4 7 +7698 92 4 -249 1642 4 18 2 5 33 3 137 4 9 +7699 92 5 -243 1642 8 17 2 5 34 3 136 4 8 +7700 92 6 -237 1642 8 15 2 5 34 3 134 4 6 +7701 92 7 -231 1642 8 16 2 5 34 3 135 4 7 +7702 92 8 -225 1642 8 18 2 5 34 3 137 4 9 +7703 92 9 -219 1642 8 20 2 5 34 3 139 4 11 +7704 92 10 -213 1642 12 19 2 5 35 3 138 4 10 +7705 92 11 -207 1642 12 17 2 5 35 3 136 4 8 +7706 92 12 -201 1642 12 15 2 5 35 3 134 4 6 +7707 92 13 -195 1642 12 16 2 5 35 3 135 4 7 +7708 92 14 -189 1642 12 18 2 5 35 3 137 4 9 +7709 92 15 -183 1642 16 19 2 5 36 3 138 4 10 +7710 92 16 -177 1642 16 17 2 5 36 3 136 4 8 +7711 92 17 -171 1642 16 15 2 5 36 3 134 4 6 +7712 92 18 -165 1642 16 18 2 5 36 3 137 4 9 +7713 92 19 -159 1642 16 20 2 5 36 3 139 4 11 +7714 92 20 -153 1642 20 19 2 5 37 3 138 4 10 +7715 92 21 -147 1642 20 17 2 5 37 3 136 4 8 +7716 92 22 -141 1642 20 15 2 5 37 3 134 4 6 +7717 92 23 -135 1642 20 16 2 5 37 3 135 4 7 +7718 92 24 -129 1642 20 18 2 5 37 3 137 4 9 +7719 92 25 -123 1642 20 20 2 5 37 3 139 4 11 +7720 92 26 -117 1642 24 19 2 5 38 3 138 4 10 +7721 92 27 -111 1642 24 17 2 5 38 3 136 4 8 +7722 92 28 -105 1642 24 15 2 5 38 3 134 4 6 +7723 92 29 -99 1642 24 16 2 5 38 3 135 4 7 +7724 92 30 -93 1642 24 18 2 5 38 3 137 4 9 +7725 92 31 -87 1642 28 17 2 5 39 3 136 4 8 +7726 92 32 -81 1642 28 15 2 5 39 3 134 4 6 +7727 92 33 -75 1642 28 13 2 5 39 3 132 4 4 +7728 92 34 -69 1642 28 14 2 5 39 3 133 4 5 +7729 92 35 -63 1642 28 16 2 5 39 3 135 4 7 +7730 92 36 -57 1642 32 19 2 5 40 3 138 4 10 +7731 92 37 -51 1642 32 17 2 5 40 3 136 4 8 +7732 92 38 -45 1642 32 16 2 5 40 3 135 4 7 +7733 92 39 -39 1642 32 18 2 5 40 3 137 4 9 +7734 92 40 -33 1642 32 20 2 5 40 3 139 4 11 +7735 92 41 -27 1642 36 19 2 5 41 3 138 4 10 +7736 92 42 -21 1642 36 17 2 5 41 3 136 4 8 +7737 92 43 -15 1642 36 16 2 5 41 3 135 4 7 +7738 92 44 -9 1642 36 18 2 5 41 3 137 4 9 +7739 92 45 -3 1642 36 20 2 5 41 3 139 4 11 +7740 92 46 3 1642 40 19 2 5 42 3 138 4 10 +7741 92 47 9 1642 40 17 2 5 42 3 136 4 8 +7742 92 48 15 1642 40 15 2 5 42 3 134 4 6 +7743 92 49 21 1642 40 18 2 5 42 3 137 4 9 +7744 92 50 27 1642 40 20 2 5 42 3 139 4 11 +7745 92 51 33 1642 44 19 2 5 43 3 138 4 10 +7746 92 52 39 1642 44 17 2 5 43 3 136 4 8 +7747 92 53 45 1642 44 15 2 5 43 3 134 4 6 +7748 92 54 51 1642 44 18 2 5 43 3 137 4 9 +7749 92 55 57 1642 44 20 2 5 43 3 139 4 11 +7750 92 56 63 1642 48 15 2 5 44 3 134 4 6 +7751 92 57 69 1642 48 13 2 5 44 3 132 4 4 +7752 92 58 75 1642 48 14 2 5 44 3 133 4 5 +7753 92 59 81 1642 48 16 2 5 44 3 135 4 7 +7754 92 60 87 1642 48 18 2 5 44 3 137 4 9 +7755 92 61 93 1642 52 17 2 5 45 3 136 4 8 +7756 92 62 99 1642 52 15 2 5 45 3 134 4 6 +7757 92 63 105 1642 52 16 2 5 45 3 135 4 7 +7758 92 64 111 1642 52 18 2 5 45 3 137 4 9 +7759 92 65 117 1642 52 20 2 5 45 3 139 4 11 +7760 92 66 123 1642 56 19 2 5 46 3 138 4 10 +7761 92 67 129 1642 56 17 2 5 46 3 136 4 8 +7762 92 68 135 1642 56 15 2 5 46 3 134 4 6 +7763 92 69 141 1642 56 16 2 5 46 3 135 4 7 +7764 92 70 147 1642 56 18 2 5 46 3 137 4 9 +7765 92 71 153 1642 56 20 2 5 46 3 139 4 11 +7766 92 72 159 1642 60 19 2 5 47 3 138 4 10 +7767 92 73 165 1642 60 17 2 5 47 3 136 4 8 +7768 92 74 171 1642 60 16 2 5 47 3 135 4 7 +7769 92 75 177 1642 60 18 2 5 47 3 137 4 9 +7770 92 76 183 1642 60 20 2 5 47 3 139 4 11 +7771 92 77 189 1642 64 17 2 5 48 3 136 4 8 +7772 92 78 195 1642 64 15 2 5 48 3 134 4 6 +7773 92 79 201 1642 64 16 2 5 48 3 135 4 7 +7774 92 80 207 1642 64 18 2 5 48 3 137 4 9 +7775 92 81 213 1642 64 20 2 5 48 3 139 4 11 +7776 92 82 219 1642 68 19 2 5 49 3 138 4 10 +7777 92 83 225 1642 68 17 2 5 49 3 136 4 8 +7778 92 84 231 1642 68 15 2 5 49 3 134 4 6 +7779 92 85 237 1642 68 16 2 5 49 3 135 4 7 +7780 92 86 243 1642 68 18 2 5 49 3 137 4 9 +7781 92 87 249 1642 72 17 2 5 50 3 136 4 8 +7782 92 88 255 1642 72 15 2 5 50 3 134 4 6 +7783 92 89 261 1642 72 16 2 5 50 3 135 4 7 +7784 92 90 267 1642 72 18 2 5 50 3 137 4 9 +7785 92 91 273 1642 72 20 2 5 50 3 139 4 11 +7786 93 0 -273 1652 4 23 2 5 33 3 142 4 14 +7787 93 1 -267 1652 4 21 2 5 33 3 140 4 12 +7788 93 2 -261 1652 4 20 2 5 33 3 139 4 11 +7789 93 3 -255 1652 4 22 2 5 33 3 141 4 13 +7790 93 4 -249 1652 4 24 2 5 33 3 143 4 15 +7791 93 5 -243 1652 8 23 2 5 34 3 142 4 14 +7792 93 6 -237 1652 8 21 2 5 34 3 140 4 12 +7793 93 7 -231 1652 8 19 2 5 34 3 138 4 10 +7794 93 8 -225 1652 8 22 2 5 34 3 141 4 13 +7795 93 9 -219 1652 8 24 2 5 34 3 143 4 15 +7796 93 10 -213 1652 12 23 2 5 35 3 142 4 14 +7797 93 11 -207 1652 12 21 2 5 35 3 140 4 12 +7798 93 12 -201 1652 12 20 2 5 35 3 139 4 11 +7799 93 13 -195 1652 12 22 2 5 35 3 141 4 13 +7800 93 14 -189 1652 12 24 2 5 35 3 143 4 15 +7801 93 15 -183 1652 16 23 2 5 36 3 142 4 14 +7802 93 16 -177 1652 16 21 2 5 36 3 140 4 12 +7803 93 17 -171 1652 16 22 2 5 36 3 141 4 13 +7804 93 18 -165 1652 16 24 2 5 36 3 143 4 15 +7805 93 19 -159 1652 16 26 2 5 36 3 145 4 17 +7806 93 20 -153 1652 20 25 2 5 37 3 144 4 16 +7807 93 21 -147 1652 20 23 2 5 37 3 142 4 14 +7808 93 22 -141 1652 20 21 2 5 37 3 140 4 12 +7809 93 23 -135 1652 20 22 2 5 37 3 141 4 13 +7810 93 24 -129 1652 20 24 2 5 37 3 143 4 15 +7811 93 25 -123 1652 24 25 2 5 38 3 144 4 16 +7812 93 26 -117 1652 24 23 2 5 38 3 142 4 14 +7813 93 27 -111 1652 24 21 2 5 38 3 140 4 12 +7814 93 28 -105 1652 24 20 2 5 38 3 139 4 11 +7815 93 29 -99 1652 24 22 2 5 38 3 141 4 13 +7816 93 30 -93 1652 24 24 2 5 38 3 143 4 15 +7817 93 31 -87 1652 28 21 2 5 39 3 140 4 12 +7818 93 32 -81 1652 28 19 2 5 39 3 138 4 10 +7819 93 33 -75 1652 28 18 2 5 39 3 137 4 9 +7820 93 34 -69 1652 28 20 2 5 39 3 139 4 11 +7821 93 35 -63 1652 28 22 2 5 39 3 141 4 13 +7822 93 36 -57 1652 32 25 2 5 40 3 144 4 16 +7823 93 37 -51 1652 32 23 2 5 40 3 142 4 14 +7824 93 38 -45 1652 32 21 2 5 40 3 140 4 12 +7825 93 39 -39 1652 32 22 2 5 40 3 141 4 13 +7826 93 40 -33 1652 32 24 2 5 40 3 143 4 15 +7827 93 41 -27 1652 36 25 2 5 41 3 144 4 16 +7828 93 42 -21 1652 36 23 2 5 41 3 142 4 14 +7829 93 43 -15 1652 36 21 2 5 41 3 140 4 12 +7830 93 44 -9 1652 36 22 2 5 41 3 141 4 13 +7831 93 45 -3 1652 36 24 2 5 41 3 143 4 15 +7832 93 46 3 1652 40 23 2 5 42 3 142 4 14 +7833 93 47 9 1652 40 21 2 5 42 3 140 4 12 +7834 93 48 15 1652 40 22 2 5 42 3 141 4 13 +7835 93 49 21 1652 40 24 2 5 42 3 143 4 15 +7836 93 50 27 1652 40 26 2 5 42 3 145 4 17 +7837 93 51 33 1652 44 23 2 5 43 3 142 4 14 +7838 93 52 39 1652 44 21 2 5 43 3 140 4 12 +7839 93 53 45 1652 44 22 2 5 43 3 141 4 13 +7840 93 54 51 1652 44 24 2 5 43 3 143 4 15 +7841 93 55 57 1652 44 26 2 5 43 3 145 4 17 +7842 93 56 63 1652 48 21 2 5 44 3 140 4 12 +7843 93 57 69 1652 48 19 2 5 44 3 138 4 10 +7844 93 58 75 1652 48 17 2 5 44 3 136 4 8 +7845 93 59 81 1652 48 20 2 5 44 3 139 4 11 +7846 93 60 87 1652 48 22 2 5 44 3 141 4 13 +7847 93 61 93 1652 52 23 2 5 45 3 142 4 14 +7848 93 62 99 1652 52 21 2 5 45 3 140 4 12 +7849 93 63 105 1652 52 19 2 5 45 3 138 4 10 +7850 93 64 111 1652 52 22 2 5 45 3 141 4 13 +7851 93 65 117 1652 52 24 2 5 45 3 143 4 15 +7852 93 66 123 1652 52 26 2 5 45 3 145 4 17 +7853 93 67 129 1652 56 23 2 5 46 3 142 4 14 +7854 93 68 135 1652 56 21 2 5 46 3 140 4 12 +7855 93 69 141 1652 56 22 2 5 46 3 141 4 13 +7856 93 70 147 1652 56 24 2 5 46 3 143 4 15 +7857 93 71 153 1652 56 26 2 5 46 3 145 4 17 +7858 93 72 159 1652 60 25 2 5 47 3 144 4 16 +7859 93 73 165 1652 60 23 2 5 47 3 142 4 14 +7860 93 74 171 1652 60 21 2 5 47 3 140 4 12 +7861 93 75 177 1652 60 22 2 5 47 3 141 4 13 +7862 93 76 183 1652 60 24 2 5 47 3 143 4 15 +7863 93 77 189 1652 64 23 2 5 48 3 142 4 14 +7864 93 78 195 1652 64 21 2 5 48 3 140 4 12 +7865 93 79 201 1652 64 19 2 5 48 3 138 4 10 +7866 93 80 207 1652 64 22 2 5 48 3 141 4 13 +7867 93 81 213 1652 64 24 2 5 48 3 143 4 15 +7868 93 82 219 1652 68 23 2 5 49 3 142 4 14 +7869 93 83 225 1652 68 21 2 5 49 3 140 4 12 +7870 93 84 231 1652 68 20 2 5 49 3 139 4 11 +7871 93 85 237 1652 68 22 2 5 49 3 141 4 13 +7872 93 86 243 1652 68 24 2 5 49 3 143 4 15 +7873 93 87 249 1652 72 23 2 5 50 3 142 4 14 +7874 93 88 255 1652 72 21 2 5 50 3 140 4 12 +7875 93 89 261 1652 72 19 2 5 50 3 138 4 10 +7876 93 90 267 1652 72 22 2 5 50 3 141 4 13 +7877 93 91 273 1652 72 24 2 5 50 3 143 4 15 +7878 94 0 -279 1662 4 29 2 5 33 3 148 4 20 +7879 94 1 -273 1662 4 27 2 5 33 3 146 4 18 +7880 94 2 -267 1662 4 25 2 5 33 3 144 4 16 +7881 94 3 -261 1662 4 26 2 5 33 3 145 4 17 +7882 94 4 -255 1662 4 28 2 5 33 3 147 4 19 +7883 94 5 -249 1662 4 30 2 5 33 3 149 4 21 +7884 94 6 -243 1662 8 27 2 5 34 3 146 4 18 +7885 94 7 -237 1662 8 25 2 5 34 3 144 4 16 +7886 94 8 -231 1662 8 26 2 5 34 3 145 4 17 +7887 94 9 -225 1662 8 28 2 5 34 3 147 4 19 +7888 94 10 -219 1662 8 30 2 5 34 3 149 4 21 +7889 94 11 -213 1662 12 29 2 5 35 3 148 4 20 +7890 94 12 -207 1662 12 27 2 5 35 3 146 4 18 +7891 94 13 -201 1662 12 25 2 5 35 3 144 4 16 +7892 94 14 -195 1662 12 26 2 5 35 3 145 4 17 +7893 94 15 -189 1662 12 28 2 5 35 3 147 4 19 +7894 94 16 -183 1662 16 29 2 5 36 3 148 4 20 +7895 94 17 -177 1662 16 27 2 5 36 3 146 4 18 +7896 94 18 -171 1662 16 25 2 5 36 3 144 4 16 +7897 94 19 -165 1662 16 28 2 5 36 3 147 4 19 +7898 94 20 -159 1662 16 30 2 5 36 3 149 4 21 +7899 94 21 -153 1662 20 29 2 5 37 3 148 4 20 +7900 94 22 -147 1662 20 27 2 5 37 3 146 4 18 +7901 94 23 -141 1662 20 26 2 5 37 3 145 4 17 +7902 94 24 -135 1662 20 28 2 5 37 3 147 4 19 +7903 94 25 -129 1662 20 30 2 5 37 3 149 4 21 +7904 94 26 -123 1662 24 29 2 5 38 3 148 4 20 +7905 94 27 -117 1662 24 27 2 5 38 3 146 4 18 +7906 94 28 -111 1662 24 26 2 5 38 3 145 4 17 +7907 94 29 -105 1662 24 28 2 5 38 3 147 4 19 +7908 94 30 -99 1662 24 30 2 5 38 3 149 4 21 +7909 94 31 -93 1662 28 27 2 5 39 3 146 4 18 +7910 94 32 -87 1662 28 25 2 5 39 3 144 4 16 +7911 94 33 -81 1662 28 23 2 5 39 3 142 4 14 +7912 94 34 -75 1662 28 24 2 5 39 3 143 4 15 +7913 94 35 -69 1662 28 26 2 5 39 3 145 4 17 +7914 94 36 -63 1662 28 28 2 5 39 3 147 4 19 +7915 94 37 -57 1662 32 29 2 5 40 3 148 4 20 +7916 94 38 -51 1662 32 27 2 5 40 3 146 4 18 +7917 94 39 -45 1662 32 26 2 5 40 3 145 4 17 +7918 94 40 -39 1662 32 28 2 5 40 3 147 4 19 +7919 94 41 -33 1662 32 30 2 5 40 3 149 4 21 +7920 94 42 -27 1662 36 29 2 5 41 3 148 4 20 +7921 94 43 -21 1662 36 27 2 5 41 3 146 4 18 +7922 94 44 -15 1662 36 26 2 5 41 3 145 4 17 +7923 94 45 -9 1662 36 28 2 5 41 3 147 4 19 +7924 94 46 -3 1662 36 30 2 5 41 3 149 4 21 +7925 94 47 3 1662 40 29 2 5 42 3 148 4 20 +7926 94 48 9 1662 40 27 2 5 42 3 146 4 18 +7927 94 49 15 1662 40 25 2 5 42 3 144 4 16 +7928 94 50 21 1662 40 28 2 5 42 3 147 4 19 +7929 94 51 27 1662 40 30 2 5 42 3 149 4 21 +7930 94 52 33 1662 44 29 2 5 43 3 148 4 20 +7931 94 53 39 1662 44 27 2 5 43 3 146 4 18 +7932 94 54 45 1662 44 25 2 5 43 3 144 4 16 +7933 94 55 51 1662 44 28 2 5 43 3 147 4 19 +7934 94 56 57 1662 44 30 2 5 43 3 149 4 21 +7935 94 57 63 1662 48 27 2 5 44 3 146 4 18 +7936 94 58 69 1662 48 25 2 5 44 3 144 4 16 +7937 94 59 75 1662 48 23 2 5 44 3 142 4 14 +7938 94 60 81 1662 48 24 2 5 44 3 143 4 15 +7939 94 61 87 1662 48 26 2 5 44 3 145 4 17 +7940 94 62 93 1662 48 28 2 5 44 3 147 4 19 +7941 94 63 99 1662 52 29 2 5 45 3 148 4 20 +7942 94 64 105 1662 52 27 2 5 45 3 146 4 18 +7943 94 65 111 1662 52 25 2 5 45 3 144 4 16 +7944 94 66 117 1662 52 28 2 5 45 3 147 4 19 +7945 94 67 123 1662 52 30 2 5 45 3 149 4 21 +7946 94 68 129 1662 56 29 2 5 46 3 148 4 20 +7947 94 69 135 1662 56 27 2 5 46 3 146 4 18 +7948 94 70 141 1662 56 25 2 5 46 3 144 4 16 +7949 94 71 147 1662 56 28 2 5 46 3 147 4 19 +7950 94 72 153 1662 56 30 2 5 46 3 149 4 21 +7951 94 73 159 1662 60 29 2 5 47 3 148 4 20 +7952 94 74 165 1662 60 27 2 5 47 3 146 4 18 +7953 94 75 171 1662 60 26 2 5 47 3 145 4 17 +7954 94 76 177 1662 60 28 2 5 47 3 147 4 19 +7955 94 77 183 1662 60 30 2 5 47 3 149 4 21 +7956 94 78 189 1662 64 27 2 5 48 3 146 4 18 +7957 94 79 195 1662 64 25 2 5 48 3 144 4 16 +7958 94 80 201 1662 64 26 2 5 48 3 145 4 17 +7959 94 81 207 1662 64 28 2 5 48 3 147 4 19 +7960 94 82 213 1662 64 30 2 5 48 3 149 4 21 +7961 94 83 219 1662 68 29 2 5 49 3 148 4 20 +7962 94 84 225 1662 68 27 2 5 49 3 146 4 18 +7963 94 85 231 1662 68 25 2 5 49 3 144 4 16 +7964 94 86 237 1662 68 26 2 5 49 3 145 4 17 +7965 94 87 243 1662 68 28 2 5 49 3 147 4 19 +7966 94 88 249 1662 72 29 2 5 50 3 148 4 20 +7967 94 89 255 1662 72 27 2 5 50 3 146 4 18 +7968 94 90 261 1662 72 25 2 5 50 3 144 4 16 +7969 94 91 267 1662 72 26 2 5 50 3 145 4 17 +7970 94 92 273 1662 72 28 2 5 50 3 147 4 19 +7971 94 93 279 1662 72 30 2 5 50 3 149 4 21 +7972 95 0 -279 1672 4 33 2 5 33 3 152 4 24 +7973 95 1 -273 1672 4 31 2 5 33 3 150 4 22 +7974 95 2 -267 1672 4 32 2 5 33 3 151 4 23 +7975 95 3 -261 1672 4 34 2 5 33 3 153 4 25 +7976 95 4 -255 1672 4 36 2 5 33 3 155 4 27 +7977 95 5 -249 1672 8 33 2 5 34 3 152 4 24 +7978 95 6 -243 1672 8 31 2 5 34 3 150 4 22 +7979 95 7 -237 1672 8 29 2 5 34 3 148 4 20 +7980 95 8 -231 1672 8 32 2 5 34 3 151 4 23 +7981 95 9 -225 1672 8 34 2 5 34 3 153 4 25 +7982 95 10 -219 1672 8 36 2 5 34 3 155 4 27 +7983 95 11 -213 1672 12 33 2 5 35 3 152 4 24 +7984 95 12 -207 1672 12 31 2 5 35 3 150 4 22 +7985 95 13 -201 1672 12 30 2 5 35 3 149 4 21 +7986 95 14 -195 1672 12 32 2 5 35 3 151 4 23 +7987 95 15 -189 1672 12 34 2 5 35 3 153 4 25 +7988 95 16 -183 1672 16 33 2 5 36 3 152 4 24 +7989 95 17 -177 1672 16 31 2 5 36 3 150 4 22 +7990 95 18 -171 1672 16 32 2 5 36 3 151 4 23 +7991 95 19 -165 1672 16 34 2 5 36 3 153 4 25 +7992 95 20 -159 1672 16 36 2 5 36 3 155 4 27 +7993 95 21 -153 1672 20 35 2 5 37 3 154 4 26 +7994 95 22 -147 1672 20 33 2 5 37 3 152 4 24 +7995 95 23 -141 1672 20 31 2 5 37 3 150 4 22 +7996 95 24 -135 1672 20 32 2 5 37 3 151 4 23 +7997 95 25 -129 1672 20 34 2 5 37 3 153 4 25 +7998 95 26 -123 1672 24 35 2 5 38 3 154 4 26 +7999 95 27 -117 1672 24 33 2 5 38 3 152 4 24 +8000 95 28 -111 1672 24 31 2 5 38 3 150 4 22 +8001 95 29 -105 1672 24 32 2 5 38 3 151 4 23 +8002 95 30 -99 1672 24 34 2 5 38 3 153 4 25 +8003 95 31 -93 1672 28 33 2 5 39 3 152 4 24 +8004 95 32 -87 1672 28 31 2 5 39 3 150 4 22 +8005 95 33 -81 1672 28 29 2 5 39 3 148 4 20 +8006 95 34 -75 1672 28 30 2 5 39 3 149 4 21 +8007 95 35 -69 1672 28 32 2 5 39 3 151 4 23 +8008 95 36 -63 1672 28 34 2 5 39 3 153 4 25 +8009 95 37 -57 1672 32 35 2 5 40 3 154 4 26 +8010 95 38 -51 1672 32 33 2 5 40 3 152 4 24 +8011 95 39 -45 1672 32 31 2 5 40 3 150 4 22 +8012 95 40 -39 1672 32 32 2 5 40 3 151 4 23 +8013 95 41 -33 1672 32 34 2 5 40 3 153 4 25 +8014 95 42 -27 1672 36 35 2 5 41 3 154 4 26 +8015 95 43 -21 1672 36 33 2 5 41 3 152 4 24 +8016 95 44 -15 1672 36 31 2 5 41 3 150 4 22 +8017 95 45 -9 1672 36 32 2 5 41 3 151 4 23 +8018 95 46 -3 1672 36 34 2 5 41 3 153 4 25 +8019 95 47 3 1672 40 33 2 5 42 3 152 4 24 +8020 95 48 9 1672 40 31 2 5 42 3 150 4 22 +8021 95 49 15 1672 40 32 2 5 42 3 151 4 23 +8022 95 50 21 1672 40 34 2 5 42 3 153 4 25 +8023 95 51 27 1672 40 36 2 5 42 3 155 4 27 +8024 95 52 33 1672 44 33 2 5 43 3 152 4 24 +8025 95 53 39 1672 44 31 2 5 43 3 150 4 22 +8026 95 54 45 1672 44 32 2 5 43 3 151 4 23 +8027 95 55 51 1672 44 34 2 5 43 3 153 4 25 +8028 95 56 57 1672 44 36 2 5 43 3 155 4 27 +8029 95 57 63 1672 48 33 2 5 44 3 152 4 24 +8030 95 58 69 1672 48 31 2 5 44 3 150 4 22 +8031 95 59 75 1672 48 29 2 5 44 3 148 4 20 +8032 95 60 81 1672 48 30 2 5 44 3 149 4 21 +8033 95 61 87 1672 48 32 2 5 44 3 151 4 23 +8034 95 62 93 1672 48 34 2 5 44 3 153 4 25 +8035 95 63 99 1672 52 33 2 5 45 3 152 4 24 +8036 95 64 105 1672 52 31 2 5 45 3 150 4 22 +8037 95 65 111 1672 52 32 2 5 45 3 151 4 23 +8038 95 66 117 1672 52 34 2 5 45 3 153 4 25 +8039 95 67 123 1672 52 36 2 5 45 3 155 4 27 +8040 95 68 129 1672 56 33 2 5 46 3 152 4 24 +8041 95 69 135 1672 56 31 2 5 46 3 150 4 22 +8042 95 70 141 1672 56 32 2 5 46 3 151 4 23 +8043 95 71 147 1672 56 34 2 5 46 3 153 4 25 +8044 95 72 153 1672 56 36 2 5 46 3 155 4 27 +8045 95 73 159 1672 60 35 2 5 47 3 154 4 26 +8046 95 74 165 1672 60 33 2 5 47 3 152 4 24 +8047 95 75 171 1672 60 31 2 5 47 3 150 4 22 +8048 95 76 177 1672 60 32 2 5 47 3 151 4 23 +8049 95 77 183 1672 60 34 2 5 47 3 153 4 25 +8050 95 78 189 1672 64 33 2 5 48 3 152 4 24 +8051 95 79 195 1672 64 31 2 5 48 3 150 4 22 +8052 95 80 201 1672 64 29 2 5 48 3 148 4 20 +8053 95 81 207 1672 64 32 2 5 48 3 151 4 23 +8054 95 82 213 1672 64 34 2 5 48 3 153 4 25 +8055 95 83 219 1672 68 35 2 5 49 3 154 4 26 +8056 95 84 225 1672 68 33 2 5 49 3 152 4 24 +8057 95 85 231 1672 68 31 2 5 49 3 150 4 22 +8058 95 86 237 1672 68 30 2 5 49 3 149 4 21 +8059 95 87 243 1672 68 32 2 5 49 3 151 4 23 +8060 95 88 249 1672 68 34 2 5 49 3 153 4 25 +8061 95 89 255 1672 72 35 2 5 50 3 154 4 26 +8062 95 90 261 1672 72 33 2 5 50 3 152 4 24 +8063 95 91 267 1672 72 31 2 5 50 3 150 4 22 +8064 95 92 273 1672 72 32 2 5 50 3 151 4 23 +8065 95 93 279 1672 72 34 2 5 50 3 153 4 25 +8066 96 0 -279 1682 4 39 2 5 33 3 158 4 30 +8067 96 1 -273 1682 4 37 2 5 33 3 156 4 28 +8068 96 2 -267 1682 4 35 2 5 33 3 154 4 26 +8069 96 3 -261 1682 4 38 2 5 33 3 157 4 29 +8070 96 4 -255 1682 4 40 2 5 33 3 159 4 31 +8071 96 5 -249 1682 8 39 2 5 34 3 158 4 30 +8072 96 6 -243 1682 8 37 2 5 34 3 156 4 28 +8073 96 7 -237 1682 8 35 2 5 34 3 154 4 26 +8074 96 8 -231 1682 8 38 2 5 34 3 157 4 29 +8075 96 9 -225 1682 8 40 2 5 34 3 159 4 31 +8076 96 10 -219 1682 12 39 2 5 35 3 158 4 30 +8077 96 11 -213 1682 12 37 2 5 35 3 156 4 28 +8078 96 12 -207 1682 12 35 2 5 35 3 154 4 26 +8079 96 13 -201 1682 12 36 2 5 35 3 155 4 27 +8080 96 14 -195 1682 12 38 2 5 35 3 157 4 29 +8081 96 15 -189 1682 12 40 2 5 35 3 159 4 31 +8082 96 16 -183 1682 16 39 2 5 36 3 158 4 30 +8083 96 17 -177 1682 16 37 2 5 36 3 156 4 28 +8084 96 18 -171 1682 16 35 2 5 36 3 154 4 26 +8085 96 19 -165 1682 16 38 2 5 36 3 157 4 29 +8086 96 20 -159 1682 16 40 2 5 36 3 159 4 31 +8087 96 21 -153 1682 20 39 2 5 37 3 158 4 30 +8088 96 22 -147 1682 20 37 2 5 37 3 156 4 28 +8089 96 23 -141 1682 20 36 2 5 37 3 155 4 27 +8090 96 24 -135 1682 20 38 2 5 37 3 157 4 29 +8091 96 25 -129 1682 20 40 2 5 37 3 159 4 31 +8092 96 26 -123 1682 24 39 2 5 38 3 158 4 30 +8093 96 27 -117 1682 24 37 2 5 38 3 156 4 28 +8094 96 28 -111 1682 24 36 2 5 38 3 155 4 27 +8095 96 29 -105 1682 24 38 2 5 38 3 157 4 29 +8096 96 30 -99 1682 24 40 2 5 38 3 159 4 31 +8097 96 31 -93 1682 28 39 2 5 39 3 158 4 30 +8098 96 32 -87 1682 28 37 2 5 39 3 156 4 28 +8099 96 33 -81 1682 28 35 2 5 39 3 154 4 26 +8100 96 34 -75 1682 28 36 2 5 39 3 155 4 27 +8101 96 35 -69 1682 28 38 2 5 39 3 157 4 29 +8102 96 36 -63 1682 28 40 2 5 39 3 159 4 31 +8103 96 37 -57 1682 32 39 2 5 40 3 158 4 30 +8104 96 38 -51 1682 32 37 2 5 40 3 156 4 28 +8105 96 39 -45 1682 32 36 2 5 40 3 155 4 27 +8106 96 40 -39 1682 32 38 2 5 40 3 157 4 29 +8107 96 41 -33 1682 32 40 2 5 40 3 159 4 31 +8108 96 42 -27 1682 36 39 2 5 41 3 158 4 30 +8109 96 43 -21 1682 36 37 2 5 41 3 156 4 28 +8110 96 44 -15 1682 36 36 2 5 41 3 155 4 27 +8111 96 45 -9 1682 36 38 2 5 41 3 157 4 29 +8112 96 46 -3 1682 36 40 2 5 41 3 159 4 31 +8113 96 47 3 1682 40 39 2 5 42 3 158 4 30 +8114 96 48 9 1682 40 37 2 5 42 3 156 4 28 +8115 96 49 15 1682 40 35 2 5 42 3 154 4 26 +8116 96 50 21 1682 40 38 2 5 42 3 157 4 29 +8117 96 51 27 1682 40 40 2 5 42 3 159 4 31 +8118 96 52 33 1682 44 39 2 5 43 3 158 4 30 +8119 96 53 39 1682 44 37 2 5 43 3 156 4 28 +8120 96 54 45 1682 44 35 2 5 43 3 154 4 26 +8121 96 55 51 1682 44 38 2 5 43 3 157 4 29 +8122 96 56 57 1682 44 40 2 5 43 3 159 4 31 +8123 96 57 63 1682 48 39 2 5 44 3 158 4 30 +8124 96 58 69 1682 48 37 2 5 44 3 156 4 28 +8125 96 59 75 1682 48 35 2 5 44 3 154 4 26 +8126 96 60 81 1682 48 36 2 5 44 3 155 4 27 +8127 96 61 87 1682 48 38 2 5 44 3 157 4 29 +8128 96 62 93 1682 48 40 2 5 44 3 159 4 31 +8129 96 63 99 1682 52 39 2 5 45 3 158 4 30 +8130 96 64 105 1682 52 37 2 5 45 3 156 4 28 +8131 96 65 111 1682 52 35 2 5 45 3 154 4 26 +8132 96 66 117 1682 52 38 2 5 45 3 157 4 29 +8133 96 67 123 1682 52 40 2 5 45 3 159 4 31 +8134 96 68 129 1682 56 39 2 5 46 3 158 4 30 +8135 96 69 135 1682 56 37 2 5 46 3 156 4 28 +8136 96 70 141 1682 56 35 2 5 46 3 154 4 26 +8137 96 71 147 1682 56 38 2 5 46 3 157 4 29 +8138 96 72 153 1682 56 40 2 5 46 3 159 4 31 +8139 96 73 159 1682 60 39 2 5 47 3 158 4 30 +8140 96 74 165 1682 60 37 2 5 47 3 156 4 28 +8141 96 75 171 1682 60 36 2 5 47 3 155 4 27 +8142 96 76 177 1682 60 38 2 5 47 3 157 4 29 +8143 96 77 183 1682 60 40 2 5 47 3 159 4 31 +8144 96 78 189 1682 64 39 2 5 48 3 158 4 30 +8145 96 79 195 1682 64 37 2 5 48 3 156 4 28 +8146 96 80 201 1682 64 35 2 5 48 3 154 4 26 +8147 96 81 207 1682 64 36 2 5 48 3 155 4 27 +8148 96 82 213 1682 64 38 2 5 48 3 157 4 29 +8149 96 83 219 1682 64 40 2 5 48 3 159 4 31 +8150 96 84 225 1682 68 39 2 5 49 3 158 4 30 +8151 96 85 231 1682 68 37 2 5 49 3 156 4 28 +8152 96 86 237 1682 68 36 2 5 49 3 155 4 27 +8153 96 87 243 1682 68 38 2 5 49 3 157 4 29 +8154 96 88 249 1682 68 40 2 5 49 3 159 4 31 +8155 96 89 255 1682 72 39 2 5 50 3 158 4 30 +8156 96 90 261 1682 72 37 2 5 50 3 156 4 28 +8157 96 91 267 1682 72 36 2 5 50 3 155 4 27 +8158 96 92 273 1682 72 38 2 5 50 3 157 4 29 +8159 96 93 279 1682 72 40 2 5 50 3 159 4 31 diff --git a/Detectors/TPC/base/files/TABLE-OROC2.txt b/Detectors/TPC/base/files/TABLE-OROC2.txt index 7009ac072c038..d251c70f8b7ef 100644 --- a/Detectors/TPC/base/files/TABLE-OROC2.txt +++ b/Detectors/TPC/base/files/TABLE-OROC2.txt @@ -1,3200 +1,3200 @@ -8160 97 0 -282.72 1714 1 3 3 6 51 0 2 0 2 -8161 97 1 -276.64 1714 1 1 3 6 51 0 0 0 0 -8162 97 2 -270.56 1714 1 2 3 6 51 0 1 0 1 -8163 97 3 -264.48 1714 1 4 3 6 51 0 3 0 3 -8164 97 4 -258.4 1714 5 3 3 6 52 0 2 0 2 -8165 97 5 -252.32 1714 5 1 3 6 52 0 0 0 0 -8166 97 6 -246.24 1714 5 2 3 6 52 0 1 0 1 -8167 97 7 -240.16 1714 5 4 3 6 52 0 3 0 3 -8168 97 8 -234.08 1714 5 6 3 6 52 0 5 0 5 -8169 97 9 -228 1714 9 5 3 6 53 0 4 0 4 -8170 97 10 -221.92 1714 9 3 3 6 53 0 2 0 2 -8171 97 11 -215.84 1714 9 1 3 6 53 0 0 0 0 -8172 97 12 -209.76 1714 9 2 3 6 53 0 1 0 1 -8173 97 13 -203.68 1714 9 4 3 6 53 0 3 0 3 -8174 97 14 -197.6 1714 13 3 3 6 54 0 2 0 2 -8175 97 15 -191.52 1714 13 1 3 6 54 0 0 0 0 -8176 97 16 -185.44 1714 13 2 3 6 54 0 1 0 1 -8177 97 17 -179.36 1714 13 4 3 6 54 0 3 0 3 -8178 97 18 -173.28 1714 13 6 3 6 54 0 5 0 5 -8179 97 19 -167.2 1714 17 3 3 6 55 0 2 0 2 -8180 97 20 -161.12 1714 17 1 3 6 55 0 0 0 0 -8181 97 21 -155.04 1714 17 2 3 6 55 0 1 0 1 -8182 97 22 -148.96 1714 17 4 3 6 55 0 3 0 3 -8183 97 23 -142.88 1714 21 5 3 6 56 0 4 0 4 -8184 97 24 -136.8 1714 21 3 3 6 56 0 2 0 2 -8185 97 25 -130.72 1714 21 1 3 6 56 0 0 0 0 -8186 97 26 -124.64 1714 21 2 3 6 56 0 1 0 1 -8187 97 27 -118.56 1714 21 4 3 6 56 0 3 0 3 -8188 97 28 -112.48 1714 25 3 3 6 57 0 2 0 2 -8189 97 29 -106.4 1714 25 1 3 6 57 0 0 0 0 -8190 97 30 -100.32 1714 25 2 3 6 57 0 1 0 1 -8191 97 31 -94.24 1714 25 4 3 6 57 0 3 0 3 -8192 97 32 -88.16 1714 25 6 3 6 57 0 5 0 5 -8193 97 33 -82.08 1714 29 3 3 6 58 0 2 0 2 -8194 97 34 -76 1714 29 1 3 6 58 0 0 0 0 -8195 97 35 -69.92 1714 29 2 3 6 58 0 1 0 1 -8196 97 36 -63.84 1714 29 4 3 6 58 0 3 0 3 -8197 97 37 -57.76 1714 33 5 3 6 59 0 4 0 4 -8198 97 38 -51.68 1714 33 3 3 6 59 0 2 0 2 -8199 97 39 -45.6 1714 33 1 3 6 59 0 0 0 0 -8200 97 40 -39.52 1714 33 2 3 6 59 0 1 0 1 -8201 97 41 -33.44 1714 33 4 3 6 59 0 3 0 3 -8202 97 42 -27.36 1714 37 5 3 6 60 0 4 0 4 -8203 97 43 -21.28 1714 37 3 3 6 60 0 2 0 2 -8204 97 44 -15.2 1714 37 1 3 6 60 0 0 0 0 -8205 97 45 -9.12 1714 37 2 3 6 60 0 1 0 1 -8206 97 46 -3.04 1714 37 4 3 6 60 0 3 0 3 -8207 97 47 3.04 1714 41 3 3 6 61 0 2 0 2 -8208 97 48 9.12 1714 41 1 3 6 61 0 0 0 0 -8209 97 49 15.2 1714 41 2 3 6 61 0 1 0 1 -8210 97 50 21.28 1714 41 4 3 6 61 0 3 0 3 -8211 97 51 27.36 1714 41 6 3 6 61 0 5 0 5 -8212 97 52 33.44 1714 45 3 3 6 62 0 2 0 2 -8213 97 53 39.52 1714 45 1 3 6 62 0 0 0 0 -8214 97 54 45.6 1714 45 2 3 6 62 0 1 0 1 -8215 97 55 51.68 1714 45 4 3 6 62 0 3 0 3 -8216 97 56 57.76 1714 45 6 3 6 62 0 5 0 5 -8217 97 57 63.84 1714 49 3 3 6 63 0 2 0 2 -8218 97 58 69.92 1714 49 1 3 6 63 0 0 0 0 -8219 97 59 76 1714 49 2 3 6 63 0 1 0 1 -8220 97 60 82.08 1714 49 4 3 6 63 0 3 0 3 -8221 97 61 88.16 1714 53 5 3 6 64 0 4 0 4 -8222 97 62 94.24 1714 53 3 3 6 64 0 2 0 2 -8223 97 63 100.32 1714 53 1 3 6 64 0 0 0 0 -8224 97 64 106.4 1714 53 2 3 6 64 0 1 0 1 -8225 97 65 112.48 1714 53 4 3 6 64 0 3 0 3 -8226 97 66 118.56 1714 57 3 3 6 65 0 2 0 2 -8227 97 67 124.64 1714 57 1 3 6 65 0 0 0 0 -8228 97 68 130.72 1714 57 2 3 6 65 0 1 0 1 -8229 97 69 136.8 1714 57 4 3 6 65 0 3 0 3 -8230 97 70 142.88 1714 57 6 3 6 65 0 5 0 5 -8231 97 71 148.96 1714 61 3 3 6 66 0 2 0 2 -8232 97 72 155.04 1714 61 1 3 6 66 0 0 0 0 -8233 97 73 161.12 1714 61 2 3 6 66 0 1 0 1 -8234 97 74 167.2 1714 61 4 3 6 66 0 3 0 3 -8235 97 75 173.28 1714 65 5 3 6 67 0 4 0 4 -8236 97 76 179.36 1714 65 3 3 6 67 0 2 0 2 -8237 97 77 185.44 1714 65 1 3 6 67 0 0 0 0 -8238 97 78 191.52 1714 65 2 3 6 67 0 1 0 1 -8239 97 79 197.6 1714 65 4 3 6 67 0 3 0 3 -8240 97 80 203.68 1714 69 3 3 6 68 0 2 0 2 -8241 97 81 209.76 1714 69 1 3 6 68 0 0 0 0 -8242 97 82 215.84 1714 69 2 3 6 68 0 1 0 1 -8243 97 83 221.92 1714 69 4 3 6 68 0 3 0 3 -8244 97 84 228 1714 69 6 3 6 68 0 5 0 5 -8245 97 85 234.08 1714 73 5 3 6 69 0 4 0 4 -8246 97 86 240.16 1714 73 3 3 6 69 0 2 0 2 -8247 97 87 246.24 1714 73 1 3 6 69 0 0 0 0 -8248 97 88 252.32 1714 73 2 3 6 69 0 1 0 1 -8249 97 89 258.4 1714 73 4 3 6 69 0 3 0 3 -8250 97 90 264.48 1714 77 3 3 6 70 0 2 0 2 -8251 97 91 270.56 1714 77 1 3 6 70 0 0 0 0 -8252 97 92 276.64 1714 77 2 3 6 70 0 1 0 1 -8253 97 93 282.72 1714 77 4 3 6 70 0 3 0 3 -8254 98 0 -288.8 1726 1 7 3 6 51 0 6 0 6 -8255 98 1 -282.72 1726 1 5 3 6 51 0 4 0 4 -8256 98 2 -276.64 1726 1 6 3 6 51 0 5 0 5 -8257 98 3 -270.56 1726 1 8 3 6 51 0 7 0 7 -8258 98 4 -264.48 1726 1 10 3 6 51 0 9 0 9 -8259 98 5 -258.4 1726 5 9 3 6 52 0 8 0 8 -8260 98 6 -252.32 1726 5 7 3 6 52 0 6 0 6 -8261 98 7 -246.24 1726 5 5 3 6 52 0 4 0 4 -8262 98 8 -240.16 1726 5 8 3 6 52 0 7 0 7 -8263 98 9 -234.08 1726 5 10 3 6 52 0 9 0 9 -8264 98 10 -228 1726 9 9 3 6 53 0 8 0 8 -8265 98 11 -221.92 1726 9 7 3 6 53 0 6 0 6 -8266 98 12 -215.84 1726 9 6 3 6 53 0 5 0 5 -8267 98 13 -209.76 1726 9 8 3 6 53 0 7 0 7 -8268 98 14 -203.68 1726 9 10 3 6 53 0 9 0 9 -8269 98 15 -197.6 1726 13 7 3 6 54 0 6 0 6 -8270 98 16 -191.52 1726 13 5 3 6 54 0 4 0 4 -8271 98 17 -185.44 1726 13 8 3 6 54 0 7 0 7 -8272 98 18 -179.36 1726 13 10 3 6 54 0 9 0 9 -8273 98 19 -173.28 1726 17 9 3 6 55 0 8 0 8 -8274 98 20 -167.2 1726 17 7 3 6 55 0 6 0 6 -8275 98 21 -161.12 1726 17 5 3 6 55 0 4 0 4 -8276 98 22 -155.04 1726 17 6 3 6 55 0 5 0 5 -8277 98 23 -148.96 1726 17 8 3 6 55 0 7 0 7 -8278 98 24 -142.88 1726 21 9 3 6 56 0 8 0 8 -8279 98 25 -136.8 1726 21 7 3 6 56 0 6 0 6 -8280 98 26 -130.72 1726 21 6 3 6 56 0 5 0 5 -8281 98 27 -124.64 1726 21 8 3 6 56 0 7 0 7 -8282 98 28 -118.56 1726 21 10 3 6 56 0 9 0 9 -8283 98 29 -112.48 1726 25 9 3 6 57 0 8 0 8 -8284 98 30 -106.4 1726 25 7 3 6 57 0 6 0 6 -8285 98 31 -100.32 1726 25 5 3 6 57 0 4 0 4 -8286 98 32 -94.24 1726 25 8 3 6 57 0 7 0 7 -8287 98 33 -88.16 1726 25 10 3 6 57 0 9 0 9 -8288 98 34 -82.08 1726 29 7 3 6 58 0 6 0 6 -8289 98 35 -76 1726 29 5 3 6 58 0 4 0 4 -8290 98 36 -69.92 1726 29 6 3 6 58 0 5 0 5 -8291 98 37 -63.84 1726 29 8 3 6 58 0 7 0 7 -8292 98 38 -57.76 1726 33 9 3 6 59 0 8 0 8 -8293 98 39 -51.68 1726 33 7 3 6 59 0 6 0 6 -8294 98 40 -45.6 1726 33 6 3 6 59 0 5 0 5 -8295 98 41 -39.52 1726 33 8 3 6 59 0 7 0 7 -8296 98 42 -33.44 1726 33 10 3 6 59 0 9 0 9 -8297 98 43 -27.36 1726 37 9 3 6 60 0 8 0 8 -8298 98 44 -21.28 1726 37 7 3 6 60 0 6 0 6 -8299 98 45 -15.2 1726 37 6 3 6 60 0 5 0 5 -8300 98 46 -9.12 1726 37 8 3 6 60 0 7 0 7 -8301 98 47 -3.04 1726 37 10 3 6 60 0 9 0 9 -8302 98 48 3.04 1726 41 9 3 6 61 0 8 0 8 -8303 98 49 9.12 1726 41 7 3 6 61 0 6 0 6 -8304 98 50 15.2 1726 41 5 3 6 61 0 4 0 4 -8305 98 51 21.28 1726 41 8 3 6 61 0 7 0 7 -8306 98 52 27.36 1726 41 10 3 6 61 0 9 0 9 -8307 98 53 33.44 1726 45 9 3 6 62 0 8 0 8 -8308 98 54 39.52 1726 45 7 3 6 62 0 6 0 6 -8309 98 55 45.6 1726 45 5 3 6 62 0 4 0 4 -8310 98 56 51.68 1726 45 8 3 6 62 0 7 0 7 -8311 98 57 57.76 1726 45 10 3 6 62 0 9 0 9 -8312 98 58 63.84 1726 49 7 3 6 63 0 6 0 6 -8313 98 59 69.92 1726 49 5 3 6 63 0 4 0 4 -8314 98 60 76 1726 49 6 3 6 63 0 5 0 5 -8315 98 61 82.08 1726 49 8 3 6 63 0 7 0 7 -8316 98 62 88.16 1726 53 9 3 6 64 0 8 0 8 -8317 98 63 94.24 1726 53 7 3 6 64 0 6 0 6 -8318 98 64 100.32 1726 53 6 3 6 64 0 5 0 5 -8319 98 65 106.4 1726 53 8 3 6 64 0 7 0 7 -8320 98 66 112.48 1726 53 10 3 6 64 0 9 0 9 -8321 98 67 118.56 1726 57 9 3 6 65 0 8 0 8 -8322 98 68 124.64 1726 57 7 3 6 65 0 6 0 6 -8323 98 69 130.72 1726 57 5 3 6 65 0 4 0 4 -8324 98 70 136.8 1726 57 8 3 6 65 0 7 0 7 -8325 98 71 142.88 1726 57 10 3 6 65 0 9 0 9 -8326 98 72 148.96 1726 61 7 3 6 66 0 6 0 6 -8327 98 73 155.04 1726 61 5 3 6 66 0 4 0 4 -8328 98 74 161.12 1726 61 6 3 6 66 0 5 0 5 -8329 98 75 167.2 1726 61 8 3 6 66 0 7 0 7 -8330 98 76 173.28 1726 61 10 3 6 66 0 9 0 9 -8331 98 77 179.36 1726 65 9 3 6 67 0 8 0 8 -8332 98 78 185.44 1726 65 7 3 6 67 0 6 0 6 -8333 98 79 191.52 1726 65 6 3 6 67 0 5 0 5 -8334 98 80 197.6 1726 65 8 3 6 67 0 7 0 7 -8335 98 81 203.68 1726 69 9 3 6 68 0 8 0 8 -8336 98 82 209.76 1726 69 7 3 6 68 0 6 0 6 -8337 98 83 215.84 1726 69 5 3 6 68 0 4 0 4 -8338 98 84 221.92 1726 69 8 3 6 68 0 7 0 7 -8339 98 85 228 1726 69 10 3 6 68 0 9 0 9 -8340 98 86 234.08 1726 73 9 3 6 69 0 8 0 8 -8341 98 87 240.16 1726 73 7 3 6 69 0 6 0 6 -8342 98 88 246.24 1726 73 6 3 6 69 0 5 0 5 -8343 98 89 252.32 1726 73 8 3 6 69 0 7 0 7 -8344 98 90 258.4 1726 73 10 3 6 69 0 9 0 9 -8345 98 91 264.48 1726 77 9 3 6 70 0 8 0 8 -8346 98 92 270.56 1726 77 7 3 6 70 0 6 0 6 -8347 98 93 276.64 1726 77 5 3 6 70 0 4 0 4 -8348 98 94 282.72 1726 77 6 3 6 70 0 5 0 5 -8349 98 95 288.8 1726 77 8 3 6 70 0 7 0 7 -8350 99 0 -288.8 1738 1 13 3 6 51 0 12 0 12 -8351 99 1 -282.72 1738 1 11 3 6 51 0 10 0 10 -8352 99 2 -276.64 1738 1 9 3 6 51 0 8 0 8 -8353 99 3 -270.56 1738 1 12 3 6 51 0 11 0 11 -8354 99 4 -264.48 1738 1 14 3 6 51 0 13 0 13 -8355 99 5 -258.4 1738 5 13 3 6 52 0 12 0 12 -8356 99 6 -252.32 1738 5 11 3 6 52 0 10 0 10 -8357 99 7 -246.24 1738 5 12 3 6 52 0 11 0 11 -8358 99 8 -240.16 1738 5 14 3 6 52 0 13 0 13 -8359 99 9 -234.08 1738 5 16 3 6 52 0 15 0 15 -8360 99 10 -228 1738 9 13 3 6 53 0 12 0 12 -8361 99 11 -221.92 1738 9 11 3 6 53 0 10 0 10 -8362 99 12 -215.84 1738 9 12 3 6 53 0 11 0 11 -8363 99 13 -209.76 1738 9 14 3 6 53 0 13 0 13 -8364 99 14 -203.68 1738 13 13 3 6 54 0 12 0 12 -8365 99 15 -197.6 1738 13 11 3 6 54 0 10 0 10 -8366 99 16 -191.52 1738 13 9 3 6 54 0 8 0 8 -8367 99 17 -185.44 1738 13 12 3 6 54 0 11 0 11 -8368 99 18 -179.36 1738 13 14 3 6 54 0 13 0 13 -8369 99 19 -173.28 1738 17 13 3 6 55 0 12 0 12 -8370 99 20 -167.2 1738 17 11 3 6 55 0 10 0 10 -8371 99 21 -161.12 1738 17 10 3 6 55 0 9 0 9 -8372 99 22 -155.04 1738 17 12 3 6 55 0 11 0 11 -8373 99 23 -148.96 1738 17 14 3 6 55 0 13 0 13 -8374 99 24 -142.88 1738 21 15 3 6 56 0 14 0 14 -8375 99 25 -136.8 1738 21 13 3 6 56 0 12 0 12 -8376 99 26 -130.72 1738 21 11 3 6 56 0 10 0 10 -8377 99 27 -124.64 1738 21 12 3 6 56 0 11 0 11 -8378 99 28 -118.56 1738 21 14 3 6 56 0 13 0 13 -8379 99 29 -112.48 1738 25 13 3 6 57 0 12 0 12 -8380 99 30 -106.4 1738 25 11 3 6 57 0 10 0 10 -8381 99 31 -100.32 1738 25 12 3 6 57 0 11 0 11 -8382 99 32 -94.24 1738 25 14 3 6 57 0 13 0 13 -8383 99 33 -88.16 1738 25 16 3 6 57 0 15 0 15 -8384 99 34 -82.08 1738 29 11 3 6 58 0 10 0 10 -8385 99 35 -76 1738 29 9 3 6 58 0 8 0 8 -8386 99 36 -69.92 1738 29 10 3 6 58 0 9 0 9 -8387 99 37 -63.84 1738 29 12 3 6 58 0 11 0 11 -8388 99 38 -57.76 1738 33 15 3 6 59 0 14 0 14 -8389 99 39 -51.68 1738 33 13 3 6 59 0 12 0 12 -8390 99 40 -45.6 1738 33 11 3 6 59 0 10 0 10 -8391 99 41 -39.52 1738 33 12 3 6 59 0 11 0 11 -8392 99 42 -33.44 1738 33 14 3 6 59 0 13 0 13 -8393 99 43 -27.36 1738 37 15 3 6 60 0 14 0 14 -8394 99 44 -21.28 1738 37 13 3 6 60 0 12 0 12 -8395 99 45 -15.2 1738 37 11 3 6 60 0 10 0 10 -8396 99 46 -9.12 1738 37 12 3 6 60 0 11 0 11 -8397 99 47 -3.04 1738 37 14 3 6 60 0 13 0 13 -8398 99 48 3.04 1738 41 13 3 6 61 0 12 0 12 -8399 99 49 9.12 1738 41 11 3 6 61 0 10 0 10 -8400 99 50 15.2 1738 41 12 3 6 61 0 11 0 11 -8401 99 51 21.28 1738 41 14 3 6 61 0 13 0 13 -8402 99 52 27.36 1738 41 16 3 6 61 0 15 0 15 -8403 99 53 33.44 1738 45 13 3 6 62 0 12 0 12 -8404 99 54 39.52 1738 45 11 3 6 62 0 10 0 10 -8405 99 55 45.6 1738 45 12 3 6 62 0 11 0 11 -8406 99 56 51.68 1738 45 14 3 6 62 0 13 0 13 -8407 99 57 57.76 1738 45 16 3 6 62 0 15 0 15 -8408 99 58 63.84 1738 49 11 3 6 63 0 10 0 10 -8409 99 59 69.92 1738 49 9 3 6 63 0 8 0 8 -8410 99 60 76 1738 49 10 3 6 63 0 9 0 9 -8411 99 61 82.08 1738 49 12 3 6 63 0 11 0 11 -8412 99 62 88.16 1738 53 15 3 6 64 0 14 0 14 -8413 99 63 94.24 1738 53 13 3 6 64 0 12 0 12 -8414 99 64 100.32 1738 53 11 3 6 64 0 10 0 10 -8415 99 65 106.4 1738 53 12 3 6 64 0 11 0 11 -8416 99 66 112.48 1738 53 14 3 6 64 0 13 0 13 -8417 99 67 118.56 1738 57 13 3 6 65 0 12 0 12 -8418 99 68 124.64 1738 57 11 3 6 65 0 10 0 10 -8419 99 69 130.72 1738 57 12 3 6 65 0 11 0 11 -8420 99 70 136.8 1738 57 14 3 6 65 0 13 0 13 -8421 99 71 142.88 1738 57 16 3 6 65 0 15 0 15 -8422 99 72 148.96 1738 61 13 3 6 66 0 12 0 12 -8423 99 73 155.04 1738 61 11 3 6 66 0 10 0 10 -8424 99 74 161.12 1738 61 9 3 6 66 0 8 0 8 -8425 99 75 167.2 1738 61 12 3 6 66 0 11 0 11 -8426 99 76 173.28 1738 61 14 3 6 66 0 13 0 13 -8427 99 77 179.36 1738 65 13 3 6 67 0 12 0 12 -8428 99 78 185.44 1738 65 11 3 6 67 0 10 0 10 -8429 99 79 191.52 1738 65 10 3 6 67 0 9 0 9 -8430 99 80 197.6 1738 65 12 3 6 67 0 11 0 11 -8431 99 81 203.68 1738 65 14 3 6 67 0 13 0 13 -8432 99 82 209.76 1738 69 13 3 6 68 0 12 0 12 -8433 99 83 215.84 1738 69 11 3 6 68 0 10 0 10 -8434 99 84 221.92 1738 69 12 3 6 68 0 11 0 11 -8435 99 85 228 1738 69 14 3 6 68 0 13 0 13 -8436 99 86 234.08 1738 73 15 3 6 69 0 14 0 14 -8437 99 87 240.16 1738 73 13 3 6 69 0 12 0 12 -8438 99 88 246.24 1738 73 11 3 6 69 0 10 0 10 -8439 99 89 252.32 1738 73 12 3 6 69 0 11 0 11 -8440 99 90 258.4 1738 73 14 3 6 69 0 13 0 13 -8441 99 91 264.48 1738 77 13 3 6 70 0 12 0 12 -8442 99 92 270.56 1738 77 11 3 6 70 0 10 0 10 -8443 99 93 276.64 1738 77 10 3 6 70 0 9 0 9 -8444 99 94 282.72 1738 77 12 3 6 70 0 11 0 11 -8445 99 95 288.8 1738 77 14 3 6 70 0 13 0 13 -8446 100 0 -288.8 1750 1 17 3 6 51 0 16 0 16 -8447 100 1 -282.72 1750 1 15 3 6 51 0 14 0 14 -8448 100 2 -276.64 1750 1 16 3 6 51 0 15 0 15 -8449 100 3 -270.56 1750 1 18 3 6 51 0 17 0 17 -8450 100 4 -264.48 1750 5 19 3 6 52 0 18 0 18 -8451 100 5 -258.4 1750 5 17 3 6 52 0 16 0 16 -8452 100 6 -252.32 1750 5 15 3 6 52 0 14 0 14 -8453 100 7 -246.24 1750 5 18 3 6 52 0 17 0 17 -8454 100 8 -240.16 1750 5 20 3 6 52 0 19 0 19 -8455 100 9 -234.08 1750 9 19 3 6 53 0 18 0 18 -8456 100 10 -228 1750 9 17 3 6 53 0 16 0 16 -8457 100 11 -221.92 1750 9 15 3 6 53 0 14 0 14 -8458 100 12 -215.84 1750 9 16 3 6 53 0 15 0 15 -8459 100 13 -209.76 1750 9 18 3 6 53 0 17 0 17 -8460 100 14 -203.68 1750 13 17 3 6 54 0 16 0 16 -8461 100 15 -197.6 1750 13 15 3 6 54 0 14 0 14 -8462 100 16 -191.52 1750 13 16 3 6 54 0 15 0 15 -8463 100 17 -185.44 1750 13 18 3 6 54 0 17 0 17 -8464 100 18 -179.36 1750 13 20 3 6 54 0 19 0 19 -8465 100 19 -173.28 1750 17 19 3 6 55 0 18 0 18 -8466 100 20 -167.2 1750 17 17 3 6 55 0 16 0 16 -8467 100 21 -161.12 1750 17 15 3 6 55 0 14 0 14 -8468 100 22 -155.04 1750 17 16 3 6 55 0 15 0 15 -8469 100 23 -148.96 1750 17 18 3 6 55 0 17 0 17 -8470 100 24 -142.88 1750 21 19 3 6 56 0 18 0 18 -8471 100 25 -136.8 1750 21 17 3 6 56 0 16 0 16 -8472 100 26 -130.72 1750 21 16 3 6 56 0 15 0 15 -8473 100 27 -124.64 1750 21 18 3 6 56 0 17 0 17 -8474 100 28 -118.56 1750 21 20 3 6 56 0 19 0 19 -8475 100 29 -112.48 1750 25 17 3 6 57 0 16 0 16 -8476 100 30 -106.4 1750 25 15 3 6 57 0 14 0 14 -8477 100 31 -100.32 1750 25 18 3 6 57 0 17 0 17 -8478 100 32 -94.24 1750 25 20 3 6 57 0 19 0 19 -8479 100 33 -88.16 1750 29 17 3 6 58 0 16 0 16 -8480 100 34 -82.08 1750 29 15 3 6 58 0 14 0 14 -8481 100 35 -76 1750 29 13 3 6 58 0 12 0 12 -8482 100 36 -69.92 1750 29 14 3 6 58 0 13 0 13 -8483 100 37 -63.84 1750 29 16 3 6 58 0 15 0 15 -8484 100 38 -57.76 1750 33 19 3 6 59 0 18 0 18 -8485 100 39 -51.68 1750 33 17 3 6 59 0 16 0 16 -8486 100 40 -45.6 1750 33 16 3 6 59 0 15 0 15 -8487 100 41 -39.52 1750 33 18 3 6 59 0 17 0 17 -8488 100 42 -33.44 1750 33 20 3 6 59 0 19 0 19 -8489 100 43 -27.36 1750 37 19 3 6 60 0 18 0 18 -8490 100 44 -21.28 1750 37 17 3 6 60 0 16 0 16 -8491 100 45 -15.2 1750 37 16 3 6 60 0 15 0 15 -8492 100 46 -9.12 1750 37 18 3 6 60 0 17 0 17 -8493 100 47 -3.04 1750 37 20 3 6 60 0 19 0 19 -8494 100 48 3.04 1750 41 19 3 6 61 0 18 0 18 -8495 100 49 9.12 1750 41 17 3 6 61 0 16 0 16 -8496 100 50 15.2 1750 41 15 3 6 61 0 14 0 14 -8497 100 51 21.28 1750 41 18 3 6 61 0 17 0 17 -8498 100 52 27.36 1750 41 20 3 6 61 0 19 0 19 -8499 100 53 33.44 1750 45 19 3 6 62 0 18 0 18 -8500 100 54 39.52 1750 45 17 3 6 62 0 16 0 16 -8501 100 55 45.6 1750 45 15 3 6 62 0 14 0 14 -8502 100 56 51.68 1750 45 18 3 6 62 0 17 0 17 -8503 100 57 57.76 1750 45 20 3 6 62 0 19 0 19 -8504 100 58 63.84 1750 49 15 3 6 63 0 14 0 14 -8505 100 59 69.92 1750 49 13 3 6 63 0 12 0 12 -8506 100 60 76 1750 49 14 3 6 63 0 13 0 13 -8507 100 61 82.08 1750 49 16 3 6 63 0 15 0 15 -8508 100 62 88.16 1750 49 18 3 6 63 0 17 0 17 -8509 100 63 94.24 1750 53 19 3 6 64 0 18 0 18 -8510 100 64 100.32 1750 53 17 3 6 64 0 16 0 16 -8511 100 65 106.4 1750 53 16 3 6 64 0 15 0 15 -8512 100 66 112.48 1750 53 18 3 6 64 0 17 0 17 -8513 100 67 118.56 1750 57 19 3 6 65 0 18 0 18 -8514 100 68 124.64 1750 57 17 3 6 65 0 16 0 16 -8515 100 69 130.72 1750 57 15 3 6 65 0 14 0 14 -8516 100 70 136.8 1750 57 18 3 6 65 0 17 0 17 -8517 100 71 142.88 1750 57 20 3 6 65 0 19 0 19 -8518 100 72 148.96 1750 61 17 3 6 66 0 16 0 16 -8519 100 73 155.04 1750 61 15 3 6 66 0 14 0 14 -8520 100 74 161.12 1750 61 16 3 6 66 0 15 0 15 -8521 100 75 167.2 1750 61 18 3 6 66 0 17 0 17 -8522 100 76 173.28 1750 61 20 3 6 66 0 19 0 19 -8523 100 77 179.36 1750 65 19 3 6 67 0 18 0 18 -8524 100 78 185.44 1750 65 17 3 6 67 0 16 0 16 -8525 100 79 191.52 1750 65 15 3 6 67 0 14 0 14 -8526 100 80 197.6 1750 65 16 3 6 67 0 15 0 15 -8527 100 81 203.68 1750 65 18 3 6 67 0 17 0 17 -8528 100 82 209.76 1750 69 17 3 6 68 0 16 0 16 -8529 100 83 215.84 1750 69 15 3 6 68 0 14 0 14 -8530 100 84 221.92 1750 69 16 3 6 68 0 15 0 15 -8531 100 85 228 1750 69 18 3 6 68 0 17 0 17 -8532 100 86 234.08 1750 69 20 3 6 68 0 19 0 19 -8533 100 87 240.16 1750 73 19 3 6 69 0 18 0 18 -8534 100 88 246.24 1750 73 17 3 6 69 0 16 0 16 -8535 100 89 252.32 1750 73 16 3 6 69 0 15 0 15 -8536 100 90 258.4 1750 73 18 3 6 69 0 17 0 17 -8537 100 91 264.48 1750 73 20 3 6 69 0 19 0 19 -8538 100 92 270.56 1750 77 17 3 6 70 0 16 0 16 -8539 100 93 276.64 1750 77 15 3 6 70 0 14 0 14 -8540 100 94 282.72 1750 77 16 3 6 70 0 15 0 15 -8541 100 95 288.8 1750 77 18 3 6 70 0 17 0 17 -8542 101 0 -294.88 1762 1 23 3 6 51 0 22 0 22 -8543 101 1 -288.8 1762 1 21 3 6 51 0 20 0 20 -8544 101 2 -282.72 1762 1 19 3 6 51 0 18 0 18 -8545 101 3 -276.64 1762 1 20 3 6 51 0 19 0 19 -8546 101 4 -270.56 1762 1 22 3 6 51 0 21 0 21 -8547 101 5 -264.48 1762 5 23 3 6 52 0 22 0 22 -8548 101 6 -258.4 1762 5 21 3 6 52 0 20 0 20 -8549 101 7 -252.32 1762 5 22 3 6 52 0 21 0 21 -8550 101 8 -246.24 1762 5 24 3 6 52 0 23 0 23 -8551 101 9 -240.16 1762 5 26 3 6 52 0 25 0 25 -8552 101 10 -234.08 1762 9 23 3 6 53 0 22 0 22 -8553 101 11 -228 1762 9 21 3 6 53 0 20 0 20 -8554 101 12 -221.92 1762 9 20 3 6 53 0 19 0 19 -8555 101 13 -215.84 1762 9 22 3 6 53 0 21 0 21 -8556 101 14 -209.76 1762 9 24 3 6 53 0 23 0 23 -8557 101 15 -203.68 1762 13 23 3 6 54 0 22 0 22 -8558 101 16 -197.6 1762 13 21 3 6 54 0 20 0 20 -8559 101 17 -191.52 1762 13 19 3 6 54 0 18 0 18 -8560 101 18 -185.44 1762 13 22 3 6 54 0 21 0 21 -8561 101 19 -179.36 1762 13 24 3 6 54 0 23 0 23 -8562 101 20 -173.28 1762 17 23 3 6 55 0 22 0 22 -8563 101 21 -167.2 1762 17 21 3 6 55 0 20 0 20 -8564 101 22 -161.12 1762 17 20 3 6 55 0 19 0 19 -8565 101 23 -155.04 1762 17 22 3 6 55 0 21 0 21 -8566 101 24 -148.96 1762 17 24 3 6 55 0 23 0 23 -8567 101 25 -142.88 1762 21 23 3 6 56 0 22 0 22 -8568 101 26 -136.8 1762 21 21 3 6 56 0 20 0 20 -8569 101 27 -130.72 1762 21 22 3 6 56 0 21 0 21 -8570 101 28 -124.64 1762 21 24 3 6 56 0 23 0 23 -8571 101 29 -118.56 1762 25 23 3 6 57 0 22 0 22 -8572 101 30 -112.48 1762 25 21 3 6 57 0 20 0 20 -8573 101 31 -106.4 1762 25 19 3 6 57 0 18 0 18 -8574 101 32 -100.32 1762 25 22 3 6 57 0 21 0 21 -8575 101 33 -94.24 1762 25 24 3 6 57 0 23 0 23 -8576 101 34 -88.16 1762 29 21 3 6 58 0 20 0 20 -8577 101 35 -82.08 1762 29 19 3 6 58 0 18 0 18 -8578 101 36 -76 1762 29 18 3 6 58 0 17 0 17 -8579 101 37 -69.92 1762 29 20 3 6 58 0 19 0 19 -8580 101 38 -63.84 1762 29 22 3 6 58 0 21 0 21 -8581 101 39 -57.76 1762 33 25 3 6 59 0 24 0 24 -8582 101 40 -51.68 1762 33 23 3 6 59 0 22 0 22 -8583 101 41 -45.6 1762 33 21 3 6 59 0 20 0 20 -8584 101 42 -39.52 1762 33 22 3 6 59 0 21 0 21 -8585 101 43 -33.44 1762 33 24 3 6 59 0 23 0 23 -8586 101 44 -27.36 1762 37 25 3 6 60 0 24 0 24 -8587 101 45 -21.28 1762 37 23 3 6 60 0 22 0 22 -8588 101 46 -15.2 1762 37 21 3 6 60 0 20 0 20 -8589 101 47 -9.12 1762 37 22 3 6 60 0 21 0 21 -8590 101 48 -3.04 1762 37 24 3 6 60 0 23 0 23 -8591 101 49 3.04 1762 41 23 3 6 61 0 22 0 22 -8592 101 50 9.12 1762 41 21 3 6 61 0 20 0 20 -8593 101 51 15.2 1762 41 22 3 6 61 0 21 0 21 -8594 101 52 21.28 1762 41 24 3 6 61 0 23 0 23 -8595 101 53 27.36 1762 41 26 3 6 61 0 25 0 25 -8596 101 54 33.44 1762 45 23 3 6 62 0 22 0 22 -8597 101 55 39.52 1762 45 21 3 6 62 0 20 0 20 -8598 101 56 45.6 1762 45 22 3 6 62 0 21 0 21 -8599 101 57 51.68 1762 45 24 3 6 62 0 23 0 23 -8600 101 58 57.76 1762 45 26 3 6 62 0 25 0 25 -8601 101 59 63.84 1762 49 21 3 6 63 0 20 0 20 -8602 101 60 69.92 1762 49 19 3 6 63 0 18 0 18 -8603 101 61 76 1762 49 17 3 6 63 0 16 0 16 -8604 101 62 82.08 1762 49 20 3 6 63 0 19 0 19 -8605 101 63 88.16 1762 49 22 3 6 63 0 21 0 21 -8606 101 64 94.24 1762 53 23 3 6 64 0 22 0 22 -8607 101 65 100.32 1762 53 21 3 6 64 0 20 0 20 -8608 101 66 106.4 1762 53 20 3 6 64 0 19 0 19 -8609 101 67 112.48 1762 53 22 3 6 64 0 21 0 21 -8610 101 68 118.56 1762 53 24 3 6 64 0 23 0 23 -8611 101 69 124.64 1762 57 23 3 6 65 0 22 0 22 -8612 101 70 130.72 1762 57 21 3 6 65 0 20 0 20 -8613 101 71 136.8 1762 57 22 3 6 65 0 21 0 21 -8614 101 72 142.88 1762 57 24 3 6 65 0 23 0 23 -8615 101 73 148.96 1762 61 23 3 6 66 0 22 0 22 -8616 101 74 155.04 1762 61 21 3 6 66 0 20 0 20 -8617 101 75 161.12 1762 61 19 3 6 66 0 18 0 18 -8618 101 76 167.2 1762 61 22 3 6 66 0 21 0 21 -8619 101 77 173.28 1762 61 24 3 6 66 0 23 0 23 -8620 101 78 179.36 1762 65 23 3 6 67 0 22 0 22 -8621 101 79 185.44 1762 65 21 3 6 67 0 20 0 20 -8622 101 80 191.52 1762 65 20 3 6 67 0 19 0 19 -8623 101 81 197.6 1762 65 22 3 6 67 0 21 0 21 -8624 101 82 203.68 1762 65 24 3 6 67 0 23 0 23 -8625 101 83 209.76 1762 69 23 3 6 68 0 22 0 22 -8626 101 84 215.84 1762 69 21 3 6 68 0 20 0 20 -8627 101 85 221.92 1762 69 19 3 6 68 0 18 0 18 -8628 101 86 228 1762 69 22 3 6 68 0 21 0 21 -8629 101 87 234.08 1762 69 24 3 6 68 0 23 0 23 -8630 101 88 240.16 1762 73 25 3 6 69 0 24 0 24 -8631 101 89 246.24 1762 73 23 3 6 69 0 22 0 22 -8632 101 90 252.32 1762 73 21 3 6 69 0 20 0 20 -8633 101 91 258.4 1762 73 22 3 6 69 0 21 0 21 -8634 101 92 264.48 1762 73 24 3 6 69 0 23 0 23 -8635 101 93 270.56 1762 77 21 3 6 70 0 20 0 20 -8636 101 94 276.64 1762 77 19 3 6 70 0 18 0 18 -8637 101 95 282.72 1762 77 20 3 6 70 0 19 0 19 -8638 101 96 288.8 1762 77 22 3 6 70 0 21 0 21 -8639 101 97 294.88 1762 77 24 3 6 70 0 23 0 23 -8640 102 0 -294.88 1774 1 27 3 6 51 0 26 0 26 -8641 102 1 -288.8 1774 1 25 3 6 51 0 24 0 24 -8642 102 2 -282.72 1774 1 24 3 6 51 0 23 0 23 -8643 102 3 -276.64 1774 1 26 3 6 51 0 25 0 25 -8644 102 4 -270.56 1774 1 28 3 6 51 0 27 0 27 -8645 102 5 -264.48 1774 5 27 3 6 52 0 26 0 26 -8646 102 6 -258.4 1774 5 25 3 6 52 0 24 0 24 -8647 102 7 -252.32 1774 5 28 3 6 52 0 27 0 27 -8648 102 8 -246.24 1774 5 30 3 6 52 0 29 0 29 -8649 102 9 -240.16 1774 5 32 3 6 52 0 31 0 31 -8650 102 10 -234.08 1774 9 27 3 6 53 0 26 0 26 -8651 102 11 -228 1774 9 25 3 6 53 0 24 0 24 -8652 102 12 -221.92 1774 9 26 3 6 53 0 25 0 25 -8653 102 13 -215.84 1774 9 28 3 6 53 0 27 0 27 -8654 102 14 -209.76 1774 9 30 3 6 53 0 29 0 29 -8655 102 15 -203.68 1774 13 27 3 6 54 0 26 0 26 -8656 102 16 -197.6 1774 13 25 3 6 54 0 24 0 24 -8657 102 17 -191.52 1774 13 26 3 6 54 0 25 0 25 -8658 102 18 -185.44 1774 13 28 3 6 54 0 27 0 27 -8659 102 19 -179.36 1774 13 30 3 6 54 0 29 0 29 -8660 102 20 -173.28 1774 17 27 3 6 55 0 26 0 26 -8661 102 21 -167.2 1774 17 25 3 6 55 0 24 0 24 -8662 102 22 -161.12 1774 17 26 3 6 55 0 25 0 25 -8663 102 23 -155.04 1774 17 28 3 6 55 0 27 0 27 -8664 102 24 -148.96 1774 21 29 3 6 56 0 28 0 28 -8665 102 25 -142.88 1774 21 27 3 6 56 0 26 0 26 -8666 102 26 -136.8 1774 21 25 3 6 56 0 24 0 24 -8667 102 27 -130.72 1774 21 26 3 6 56 0 25 0 25 -8668 102 28 -124.64 1774 21 28 3 6 56 0 27 0 27 -8669 102 29 -118.56 1774 25 27 3 6 57 0 26 0 26 -8670 102 30 -112.48 1774 25 25 3 6 57 0 24 0 24 -8671 102 31 -106.4 1774 25 26 3 6 57 0 25 0 25 -8672 102 32 -100.32 1774 25 28 3 6 57 0 27 0 27 -8673 102 33 -94.24 1774 25 30 3 6 57 0 29 0 29 -8674 102 34 -88.16 1774 29 27 3 6 58 0 26 0 26 -8675 102 35 -82.08 1774 29 25 3 6 58 0 24 0 24 -8676 102 36 -76 1774 29 23 3 6 58 0 22 0 22 -8677 102 37 -69.92 1774 29 24 3 6 58 0 23 0 23 -8678 102 38 -63.84 1774 29 26 3 6 58 0 25 0 25 -8679 102 39 -57.76 1774 33 29 3 6 59 0 28 0 28 -8680 102 40 -51.68 1774 33 27 3 6 59 0 26 0 26 -8681 102 41 -45.6 1774 33 26 3 6 59 0 25 0 25 -8682 102 42 -39.52 1774 33 28 3 6 59 0 27 0 27 -8683 102 43 -33.44 1774 33 30 3 6 59 0 29 0 29 -8684 102 44 -27.36 1774 37 29 3 6 60 0 28 0 28 -8685 102 45 -21.28 1774 37 27 3 6 60 0 26 0 26 -8686 102 46 -15.2 1774 37 26 3 6 60 0 25 0 25 -8687 102 47 -9.12 1774 37 28 3 6 60 0 27 0 27 -8688 102 48 -3.04 1774 37 30 3 6 60 0 29 0 29 -8689 102 49 3.04 1774 41 29 3 6 61 0 28 0 28 -8690 102 50 9.12 1774 41 27 3 6 61 0 26 0 26 -8691 102 51 15.2 1774 41 25 3 6 61 0 24 0 24 -8692 102 52 21.28 1774 41 28 3 6 61 0 27 0 27 -8693 102 53 27.36 1774 41 30 3 6 61 0 29 0 29 -8694 102 54 33.44 1774 45 29 3 6 62 0 28 0 28 -8695 102 55 39.52 1774 45 27 3 6 62 0 26 0 26 -8696 102 56 45.6 1774 45 25 3 6 62 0 24 0 24 -8697 102 57 51.68 1774 45 28 3 6 62 0 27 0 27 -8698 102 58 57.76 1774 45 30 3 6 62 0 29 0 29 -8699 102 59 63.84 1774 49 25 3 6 63 0 24 0 24 -8700 102 60 69.92 1774 49 23 3 6 63 0 22 0 22 -8701 102 61 76 1774 49 24 3 6 63 0 23 0 23 -8702 102 62 82.08 1774 49 26 3 6 63 0 25 0 25 -8703 102 63 88.16 1774 49 28 3 6 63 0 27 0 27 -8704 102 64 94.24 1774 53 29 3 6 64 0 28 0 28 -8705 102 65 100.32 1774 53 27 3 6 64 0 26 0 26 -8706 102 66 106.4 1774 53 25 3 6 64 0 24 0 24 -8707 102 67 112.48 1774 53 26 3 6 64 0 25 0 25 -8708 102 68 118.56 1774 53 28 3 6 64 0 27 0 27 -8709 102 69 124.64 1774 57 27 3 6 65 0 26 0 26 -8710 102 70 130.72 1774 57 25 3 6 65 0 24 0 24 -8711 102 71 136.8 1774 57 26 3 6 65 0 25 0 25 -8712 102 72 142.88 1774 57 28 3 6 65 0 27 0 27 -8713 102 73 148.96 1774 57 30 3 6 65 0 29 0 29 -8714 102 74 155.04 1774 61 27 3 6 66 0 26 0 26 -8715 102 75 161.12 1774 61 25 3 6 66 0 24 0 24 -8716 102 76 167.2 1774 61 26 3 6 66 0 25 0 25 -8717 102 77 173.28 1774 61 28 3 6 66 0 27 0 27 -8718 102 78 179.36 1774 65 29 3 6 67 0 28 0 28 -8719 102 79 185.44 1774 65 27 3 6 67 0 26 0 26 -8720 102 80 191.52 1774 65 25 3 6 67 0 24 0 24 -8721 102 81 197.6 1774 65 26 3 6 67 0 25 0 25 -8722 102 82 203.68 1774 65 28 3 6 67 0 27 0 27 -8723 102 83 209.76 1774 69 29 3 6 68 0 28 0 28 -8724 102 84 215.84 1774 69 27 3 6 68 0 26 0 26 -8725 102 85 221.92 1774 69 25 3 6 68 0 24 0 24 -8726 102 86 228 1774 69 26 3 6 68 0 25 0 25 -8727 102 87 234.08 1774 69 28 3 6 68 0 27 0 27 -8728 102 88 240.16 1774 73 31 3 6 69 0 30 0 30 -8729 102 89 246.24 1774 73 29 3 6 69 0 28 0 28 -8730 102 90 252.32 1774 73 27 3 6 69 0 26 0 26 -8731 102 91 258.4 1774 73 26 3 6 69 0 25 0 25 -8732 102 92 264.48 1774 73 28 3 6 69 0 27 0 27 -8733 102 93 270.56 1774 77 27 3 6 70 0 26 0 26 -8734 102 94 276.64 1774 77 25 3 6 70 0 24 0 24 -8735 102 95 282.72 1774 77 23 3 6 70 0 22 0 22 -8736 102 96 288.8 1774 77 26 3 6 70 0 25 0 25 -8737 102 97 294.88 1774 77 28 3 6 70 0 27 0 27 -8738 103 0 -294.88 1786 1 31 3 6 51 0 30 0 30 -8739 103 1 -288.8 1786 1 29 3 6 51 0 28 0 28 -8740 103 2 -282.72 1786 1 30 3 6 51 0 29 0 29 -8741 103 3 -276.64 1786 1 32 3 6 51 0 31 0 31 -8742 103 4 -270.56 1786 5 33 3 6 52 0 32 1 0 -8743 103 5 -264.48 1786 5 31 3 6 52 0 30 0 30 -8744 103 6 -258.4 1786 5 29 3 6 52 0 28 0 28 -8745 103 7 -252.32 1786 5 34 3 6 52 0 33 1 1 -8746 103 8 -246.24 1786 5 36 3 6 52 0 35 1 3 -8747 103 9 -240.16 1786 9 33 3 6 53 0 32 1 0 -8748 103 10 -234.08 1786 9 31 3 6 53 0 30 0 30 -8749 103 11 -228 1786 9 29 3 6 53 0 28 0 28 -8750 103 12 -221.92 1786 9 32 3 6 53 0 31 0 31 -8751 103 13 -215.84 1786 9 34 3 6 53 0 33 1 1 -8752 103 14 -209.76 1786 13 33 3 6 54 0 32 1 0 -8753 103 15 -203.68 1786 13 31 3 6 54 0 30 0 30 -8754 103 16 -197.6 1786 13 29 3 6 54 0 28 0 28 -8755 103 17 -191.52 1786 13 32 3 6 54 0 31 0 31 -8756 103 18 -185.44 1786 13 34 3 6 54 0 33 1 1 -8757 103 19 -179.36 1786 17 31 3 6 55 0 30 0 30 -8758 103 20 -173.28 1786 17 29 3 6 55 0 28 0 28 -8759 103 21 -167.2 1786 17 30 3 6 55 0 29 0 29 -8760 103 22 -161.12 1786 17 32 3 6 55 0 31 0 31 -8761 103 23 -155.04 1786 17 34 3 6 55 0 33 1 1 -8762 103 24 -148.96 1786 21 33 3 6 56 0 32 1 0 -8763 103 25 -142.88 1786 21 31 3 6 56 0 30 0 30 -8764 103 26 -136.8 1786 21 30 3 6 56 0 29 0 29 -8765 103 27 -130.72 1786 21 32 3 6 56 0 31 0 31 -8766 103 28 -124.64 1786 21 34 3 6 56 0 33 1 1 -8767 103 29 -118.56 1786 25 33 3 6 57 0 32 1 0 -8768 103 30 -112.48 1786 25 31 3 6 57 0 30 0 30 -8769 103 31 -106.4 1786 25 29 3 6 57 0 28 0 28 -8770 103 32 -100.32 1786 25 32 3 6 57 0 31 0 31 -8771 103 33 -94.24 1786 25 34 3 6 57 0 33 1 1 -8772 103 34 -88.16 1786 29 31 3 6 58 0 30 0 30 -8773 103 35 -82.08 1786 29 29 3 6 58 0 28 0 28 -8774 103 36 -76 1786 29 28 3 6 58 0 27 0 27 -8775 103 37 -69.92 1786 29 30 3 6 58 0 29 0 29 -8776 103 38 -63.84 1786 29 32 3 6 58 0 31 0 31 -8777 103 39 -57.76 1786 33 35 3 6 59 0 34 1 2 -8778 103 40 -51.68 1786 33 33 3 6 59 0 32 1 0 -8779 103 41 -45.6 1786 33 31 3 6 59 0 30 0 30 -8780 103 42 -39.52 1786 33 32 3 6 59 0 31 0 31 -8781 103 43 -33.44 1786 33 34 3 6 59 0 33 1 1 -8782 103 44 -27.36 1786 37 35 3 6 60 0 34 1 2 -8783 103 45 -21.28 1786 37 33 3 6 60 0 32 1 0 -8784 103 46 -15.2 1786 37 31 3 6 60 0 30 0 30 -8785 103 47 -9.12 1786 37 32 3 6 60 0 31 0 31 -8786 103 48 -3.04 1786 37 34 3 6 60 0 33 1 1 -8787 103 49 3.04 1786 41 33 3 6 61 0 32 1 0 -8788 103 50 9.12 1786 41 31 3 6 61 0 30 0 30 -8789 103 51 15.2 1786 41 32 3 6 61 0 31 0 31 -8790 103 52 21.28 1786 41 34 3 6 61 0 33 1 1 -8791 103 53 27.36 1786 41 36 3 6 61 0 35 1 3 -8792 103 54 33.44 1786 45 33 3 6 62 0 32 1 0 -8793 103 55 39.52 1786 45 31 3 6 62 0 30 0 30 -8794 103 56 45.6 1786 45 32 3 6 62 0 31 0 31 -8795 103 57 51.68 1786 45 34 3 6 62 0 33 1 1 -8796 103 58 57.76 1786 45 36 3 6 62 0 35 1 3 -8797 103 59 63.84 1786 49 31 3 6 63 0 30 0 30 -8798 103 60 69.92 1786 49 29 3 6 63 0 28 0 28 -8799 103 61 76 1786 49 27 3 6 63 0 26 0 26 -8800 103 62 82.08 1786 49 30 3 6 63 0 29 0 29 -8801 103 63 88.16 1786 49 32 3 6 63 0 31 0 31 -8802 103 64 94.24 1786 53 33 3 6 64 0 32 1 0 -8803 103 65 100.32 1786 53 31 3 6 64 0 30 0 30 -8804 103 66 106.4 1786 53 30 3 6 64 0 29 0 29 -8805 103 67 112.48 1786 53 32 3 6 64 0 31 0 31 -8806 103 68 118.56 1786 53 34 3 6 64 0 33 1 1 -8807 103 69 124.64 1786 57 33 3 6 65 0 32 1 0 -8808 103 70 130.72 1786 57 31 3 6 65 0 30 0 30 -8809 103 71 136.8 1786 57 29 3 6 65 0 28 0 28 -8810 103 72 142.88 1786 57 32 3 6 65 0 31 0 31 -8811 103 73 148.96 1786 57 34 3 6 65 0 33 1 1 -8812 103 74 155.04 1786 61 33 3 6 66 0 32 1 0 -8813 103 75 161.12 1786 61 31 3 6 66 0 30 0 30 -8814 103 76 167.2 1786 61 29 3 6 66 0 28 0 28 -8815 103 77 173.28 1786 61 30 3 6 66 0 29 0 29 -8816 103 78 179.36 1786 61 32 3 6 66 0 31 0 31 -8817 103 79 185.44 1786 65 33 3 6 67 0 32 1 0 -8818 103 80 191.52 1786 65 31 3 6 67 0 30 0 30 -8819 103 81 197.6 1786 65 30 3 6 67 0 29 0 29 -8820 103 82 203.68 1786 65 32 3 6 67 0 31 0 31 -8821 103 83 209.76 1786 65 34 3 6 67 0 33 1 1 -8822 103 84 215.84 1786 69 33 3 6 68 0 32 1 0 -8823 103 85 221.92 1786 69 31 3 6 68 0 30 0 30 -8824 103 86 228 1786 69 30 3 6 68 0 29 0 29 -8825 103 87 234.08 1786 69 32 3 6 68 0 31 0 31 -8826 103 88 240.16 1786 69 34 3 6 68 0 33 1 1 -8827 103 89 246.24 1786 73 35 3 6 69 0 34 1 2 -8828 103 90 252.32 1786 73 33 3 6 69 0 32 1 0 -8829 103 91 258.4 1786 73 30 3 6 69 0 29 0 29 -8830 103 92 264.48 1786 73 32 3 6 69 0 31 0 31 -8831 103 93 270.56 1786 73 34 3 6 69 0 33 1 1 -8832 103 94 276.64 1786 77 31 3 6 70 0 30 0 30 -8833 103 95 282.72 1786 77 29 3 6 70 0 28 0 28 -8834 103 96 288.8 1786 77 30 3 6 70 0 29 0 29 -8835 103 97 294.88 1786 77 32 3 6 70 0 31 0 31 -8836 104 0 -300.96 1798 1 35 3 6 51 0 34 1 2 -8837 104 1 -294.88 1798 1 33 3 6 51 0 32 1 0 -8838 104 2 -288.8 1798 1 34 3 6 51 0 33 1 1 -8839 104 3 -282.72 1798 1 36 3 6 51 0 35 1 3 -8840 104 4 -276.64 1798 1 38 3 6 51 0 37 1 5 -8841 104 5 -270.56 1798 5 39 3 6 52 0 38 1 6 -8842 104 6 -264.48 1798 5 37 3 6 52 0 36 1 4 -8843 104 7 -258.4 1798 5 35 3 6 52 0 34 1 2 -8844 104 8 -252.32 1798 5 38 3 6 52 0 37 1 5 -8845 104 9 -246.24 1798 5 40 3 6 52 0 39 1 7 -8846 104 10 -240.16 1798 9 37 3 6 53 0 36 1 4 -8847 104 11 -234.08 1798 9 35 3 6 53 0 34 1 2 -8848 104 12 -228 1798 9 36 3 6 53 0 35 1 3 -8849 104 13 -221.92 1798 9 38 3 6 53 0 37 1 5 -8850 104 14 -215.84 1798 9 40 3 6 53 0 39 1 7 -8851 104 15 -209.76 1798 13 37 3 6 54 0 36 1 4 -8852 104 16 -203.68 1798 13 35 3 6 54 0 34 1 2 -8853 104 17 -197.6 1798 13 36 3 6 54 0 35 1 3 -8854 104 18 -191.52 1798 13 38 3 6 54 0 37 1 5 -8855 104 19 -185.44 1798 13 40 3 6 54 0 39 1 7 -8856 104 20 -179.36 1798 17 35 3 6 55 0 34 1 2 -8857 104 21 -173.28 1798 17 33 3 6 55 0 32 1 0 -8858 104 22 -167.2 1798 17 36 3 6 55 0 35 1 3 -8859 104 23 -161.12 1798 17 38 3 6 55 0 37 1 5 -8860 104 24 -155.04 1798 17 40 3 6 55 0 39 1 7 -8861 104 25 -148.96 1798 21 37 3 6 56 0 36 1 4 -8862 104 26 -142.88 1798 21 35 3 6 56 0 34 1 2 -8863 104 27 -136.8 1798 21 36 3 6 56 0 35 1 3 -8864 104 28 -130.72 1798 21 38 3 6 56 0 37 1 5 -8865 104 29 -124.64 1798 21 40 3 6 56 0 39 1 7 -8866 104 30 -118.56 1798 25 37 3 6 57 0 36 1 4 -8867 104 31 -112.48 1798 25 35 3 6 57 0 34 1 2 -8868 104 32 -106.4 1798 25 36 3 6 57 0 35 1 3 -8869 104 33 -100.32 1798 25 38 3 6 57 0 37 1 5 -8870 104 34 -94.24 1798 25 40 3 6 57 0 39 1 7 -8871 104 35 -88.16 1798 29 35 3 6 58 0 34 1 2 -8872 104 36 -82.08 1798 29 33 3 6 58 0 32 1 0 -8873 104 37 -76 1798 29 34 3 6 58 0 33 1 1 -8874 104 38 -69.92 1798 29 36 3 6 58 0 35 1 3 -8875 104 39 -63.84 1798 29 38 3 6 58 0 37 1 5 -8876 104 40 -57.76 1798 33 39 3 6 59 0 38 1 6 -8877 104 41 -51.68 1798 33 37 3 6 59 0 36 1 4 -8878 104 42 -45.6 1798 33 36 3 6 59 0 35 1 3 -8879 104 43 -39.52 1798 33 38 3 6 59 0 37 1 5 -8880 104 44 -33.44 1798 33 40 3 6 59 0 39 1 7 -8881 104 45 -27.36 1798 37 39 3 6 60 0 38 1 6 -8882 104 46 -21.28 1798 37 37 3 6 60 0 36 1 4 -8883 104 47 -15.2 1798 37 36 3 6 60 0 35 1 3 -8884 104 48 -9.12 1798 37 38 3 6 60 0 37 1 5 -8885 104 49 -3.04 1798 37 40 3 6 60 0 39 1 7 -8886 104 50 3.04 1798 41 39 3 6 61 0 38 1 6 -8887 104 51 9.12 1798 41 37 3 6 61 0 36 1 4 -8888 104 52 15.2 1798 41 35 3 6 61 0 34 1 2 -8889 104 53 21.28 1798 41 38 3 6 61 0 37 1 5 -8890 104 54 27.36 1798 41 40 3 6 61 0 39 1 7 -8891 104 55 33.44 1798 45 39 3 6 62 0 38 1 6 -8892 104 56 39.52 1798 45 37 3 6 62 0 36 1 4 -8893 104 57 45.6 1798 45 35 3 6 62 0 34 1 2 -8894 104 58 51.68 1798 45 38 3 6 62 0 37 1 5 -8895 104 59 57.76 1798 45 40 3 6 62 0 39 1 7 -8896 104 60 63.84 1798 49 37 3 6 63 0 36 1 4 -8897 104 61 69.92 1798 49 35 3 6 63 0 34 1 2 -8898 104 62 76 1798 49 33 3 6 63 0 32 1 0 -8899 104 63 82.08 1798 49 34 3 6 63 0 33 1 1 -8900 104 64 88.16 1798 49 36 3 6 63 0 35 1 3 -8901 104 65 94.24 1798 53 39 3 6 64 0 38 1 6 -8902 104 66 100.32 1798 53 37 3 6 64 0 36 1 4 -8903 104 67 106.4 1798 53 35 3 6 64 0 34 1 2 -8904 104 68 112.48 1798 53 36 3 6 64 0 35 1 3 -8905 104 69 118.56 1798 53 38 3 6 64 0 37 1 5 -8906 104 70 124.64 1798 57 39 3 6 65 0 38 1 6 -8907 104 71 130.72 1798 57 37 3 6 65 0 36 1 4 -8908 104 72 136.8 1798 57 35 3 6 65 0 34 1 2 -8909 104 73 142.88 1798 57 36 3 6 65 0 35 1 3 -8910 104 74 148.96 1798 57 38 3 6 65 0 37 1 5 -8911 104 75 155.04 1798 61 39 3 6 66 0 38 1 6 -8912 104 76 161.12 1798 61 37 3 6 66 0 36 1 4 -8913 104 77 167.2 1798 61 35 3 6 66 0 34 1 2 -8914 104 78 173.28 1798 61 34 3 6 66 0 33 1 1 -8915 104 79 179.36 1798 61 36 3 6 66 0 35 1 3 -8916 104 80 185.44 1798 65 39 3 6 67 0 38 1 6 -8917 104 81 191.52 1798 65 37 3 6 67 0 36 1 4 -8918 104 82 197.6 1798 65 35 3 6 67 0 34 1 2 -8919 104 83 203.68 1798 65 36 3 6 67 0 35 1 3 -8920 104 84 209.76 1798 65 38 3 6 67 0 37 1 5 -8921 104 85 215.84 1798 69 39 3 6 68 0 38 1 6 -8922 104 86 221.92 1798 69 37 3 6 68 0 36 1 4 -8923 104 87 228 1798 69 35 3 6 68 0 34 1 2 -8924 104 88 234.08 1798 69 36 3 6 68 0 35 1 3 -8925 104 89 240.16 1798 69 38 3 6 68 0 37 1 5 -8926 104 90 246.24 1798 73 39 3 6 69 0 38 1 6 -8927 104 91 252.32 1798 73 37 3 6 69 0 36 1 4 -8928 104 92 258.4 1798 73 36 3 6 69 0 35 1 3 -8929 104 93 264.48 1798 73 38 3 6 69 0 37 1 5 -8930 104 94 270.56 1798 73 40 3 6 69 0 39 1 7 -8931 104 95 276.64 1798 77 37 3 6 70 0 36 1 4 -8932 104 96 282.72 1798 77 35 3 6 70 0 34 1 2 -8933 104 97 288.8 1798 77 33 3 6 70 0 32 1 0 -8934 104 98 294.88 1798 77 34 3 6 70 0 33 1 1 -8935 104 99 300.96 1798 77 36 3 6 70 0 35 1 3 -8936 105 0 -300.96 1810 1 39 3 6 51 0 38 1 6 -8937 105 1 -294.88 1810 1 37 3 6 51 0 36 1 4 -8938 105 2 -288.8 1810 1 40 3 6 51 0 39 1 7 -8939 105 3 -282.72 1810 2 2 3 6 51 1 41 1 9 -8940 105 4 -276.64 1810 2 4 3 6 51 1 43 1 11 -8941 105 5 -270.56 1810 6 5 3 6 52 1 44 1 12 -8942 105 6 -264.48 1810 6 3 3 6 52 1 42 1 10 -8943 105 7 -258.4 1810 6 1 3 6 52 1 40 1 8 -8944 105 8 -252.32 1810 6 2 3 6 52 1 41 1 9 -8945 105 9 -246.24 1810 6 4 3 6 52 1 43 1 11 -8946 105 10 -240.16 1810 9 39 3 6 53 0 38 1 6 -8947 105 11 -234.08 1810 10 3 3 6 53 1 42 1 10 -8948 105 12 -228 1810 10 1 3 6 53 1 40 1 8 -8949 105 13 -221.92 1810 10 2 3 6 53 1 41 1 9 -8950 105 14 -215.84 1810 10 4 3 6 53 1 43 1 11 -8951 105 15 -209.76 1810 13 39 3 6 54 0 38 1 6 -8952 105 16 -203.68 1810 14 3 3 6 54 1 42 1 10 -8953 105 17 -197.6 1810 14 1 3 6 54 1 40 1 8 -8954 105 18 -191.52 1810 14 2 3 6 54 1 41 1 9 -8955 105 19 -185.44 1810 14 4 3 6 54 1 43 1 11 -8956 105 20 -179.36 1810 17 39 3 6 55 0 38 1 6 -8957 105 21 -173.28 1810 17 37 3 6 55 0 36 1 4 -8958 105 22 -167.2 1810 18 1 3 6 55 1 40 1 8 -8959 105 23 -161.12 1810 18 2 3 6 55 1 41 1 9 -8960 105 24 -155.04 1810 18 4 3 6 55 1 43 1 11 -8961 105 25 -148.96 1810 21 39 3 6 56 0 38 1 6 -8962 105 26 -142.88 1810 22 3 3 6 56 1 42 1 10 -8963 105 27 -136.8 1810 22 1 3 6 56 1 40 1 8 -8964 105 28 -130.72 1810 22 2 3 6 56 1 41 1 9 -8965 105 29 -124.64 1810 22 4 3 6 56 1 43 1 11 -8966 105 30 -118.56 1810 25 39 3 6 57 0 38 1 6 -8967 105 31 -112.48 1810 26 3 3 6 57 1 42 1 10 -8968 105 32 -106.4 1810 26 1 3 6 57 1 40 1 8 -8969 105 33 -100.32 1810 26 2 3 6 57 1 41 1 9 -8970 105 34 -94.24 1810 26 4 3 6 57 1 43 1 11 -8971 105 35 -88.16 1810 29 39 3 6 58 0 38 1 6 -8972 105 36 -82.08 1810 29 37 3 6 58 0 36 1 4 -8973 105 37 -76 1810 29 40 3 6 58 0 39 1 7 -8974 105 38 -69.92 1810 30 2 3 6 58 1 41 1 9 -8975 105 39 -63.84 1810 30 4 3 6 58 1 43 1 11 -8976 105 40 -57.76 1810 34 5 3 6 59 1 44 1 12 -8977 105 41 -51.68 1810 34 3 3 6 59 1 42 1 10 -8978 105 42 -45.6 1810 34 1 3 6 59 1 40 1 8 -8979 105 43 -39.52 1810 34 2 3 6 59 1 41 1 9 -8980 105 44 -33.44 1810 34 4 3 6 59 1 43 1 11 -8981 105 45 -27.36 1810 38 5 3 6 60 1 44 1 12 -8982 105 46 -21.28 1810 38 3 3 6 60 1 42 1 10 -8983 105 47 -15.2 1810 38 1 3 6 60 1 40 1 8 -8984 105 48 -9.12 1810 38 2 3 6 60 1 41 1 9 -8985 105 49 -3.04 1810 38 4 3 6 60 1 43 1 11 -8986 105 50 3.04 1810 42 3 3 6 61 1 42 1 10 -8987 105 51 9.12 1810 42 1 3 6 61 1 40 1 8 -8988 105 52 15.2 1810 42 2 3 6 61 1 41 1 9 -8989 105 53 21.28 1810 42 4 3 6 61 1 43 1 11 -8990 105 54 27.36 1810 42 6 3 6 61 1 45 1 13 -8991 105 55 33.44 1810 46 3 3 6 62 1 42 1 10 -8992 105 56 39.52 1810 46 1 3 6 62 1 40 1 8 -8993 105 57 45.6 1810 46 2 3 6 62 1 41 1 9 -8994 105 58 51.68 1810 46 4 3 6 62 1 43 1 11 -8995 105 59 57.76 1810 46 6 3 6 62 1 45 1 13 -8996 105 60 63.84 1810 50 3 3 6 63 1 42 1 10 -8997 105 61 69.92 1810 50 1 3 6 63 1 40 1 8 -8998 105 62 76 1810 49 39 3 6 63 0 38 1 6 -8999 105 63 82.08 1810 49 38 3 6 63 0 37 1 5 -9000 105 64 88.16 1810 49 40 3 6 63 0 39 1 7 -9001 105 65 94.24 1810 54 3 3 6 64 1 42 1 10 -9002 105 66 100.32 1810 54 1 3 6 64 1 40 1 8 -9003 105 67 106.4 1810 54 2 3 6 64 1 41 1 9 -9004 105 68 112.48 1810 54 4 3 6 64 1 43 1 11 -9005 105 69 118.56 1810 53 40 3 6 64 0 39 1 7 -9006 105 70 124.64 1810 58 3 3 6 65 1 42 1 10 -9007 105 71 130.72 1810 58 1 3 6 65 1 40 1 8 -9008 105 72 136.8 1810 58 2 3 6 65 1 41 1 9 -9009 105 73 142.88 1810 58 4 3 6 65 1 43 1 11 -9010 105 74 148.96 1810 57 40 3 6 65 0 39 1 7 -9011 105 75 155.04 1810 62 3 3 6 66 1 42 1 10 -9012 105 76 161.12 1810 62 1 3 6 66 1 40 1 8 -9013 105 77 167.2 1810 62 2 3 6 66 1 41 1 9 -9014 105 78 173.28 1810 61 38 3 6 66 0 37 1 5 -9015 105 79 179.36 1810 61 40 3 6 66 0 39 1 7 -9016 105 80 185.44 1810 66 3 3 6 67 1 42 1 10 -9017 105 81 191.52 1810 66 1 3 6 67 1 40 1 8 -9018 105 82 197.6 1810 66 2 3 6 67 1 41 1 9 -9019 105 83 203.68 1810 66 4 3 6 67 1 43 1 11 -9020 105 84 209.76 1810 65 40 3 6 67 0 39 1 7 -9021 105 85 215.84 1810 70 3 3 6 68 1 42 1 10 -9022 105 86 221.92 1810 70 1 3 6 68 1 40 1 8 -9023 105 87 228 1810 70 2 3 6 68 1 41 1 9 -9024 105 88 234.08 1810 70 4 3 6 68 1 43 1 11 -9025 105 89 240.16 1810 69 40 3 6 68 0 39 1 7 -9026 105 90 246.24 1810 74 3 3 6 69 1 42 1 10 -9027 105 91 252.32 1810 74 1 3 6 69 1 40 1 8 -9028 105 92 258.4 1810 74 2 3 6 69 1 41 1 9 -9029 105 93 264.48 1810 74 4 3 6 69 1 43 1 11 -9030 105 94 270.56 1810 74 6 3 6 69 1 45 1 13 -9031 105 95 276.64 1810 78 3 3 6 70 1 42 1 10 -9032 105 96 282.72 1810 78 1 3 6 70 1 40 1 8 -9033 105 97 288.8 1810 77 39 3 6 70 0 38 1 6 -9034 105 98 294.88 1810 77 38 3 6 70 0 37 1 5 -9035 105 99 300.96 1810 77 40 3 6 70 0 39 1 7 -9036 106 0 -307.04 1822 2 5 3 6 51 1 44 1 12 -9037 106 1 -300.96 1822 2 3 3 6 51 1 42 1 10 -9038 106 2 -294.88 1822 2 1 3 6 51 1 40 1 8 -9039 106 3 -288.8 1822 2 6 3 6 51 1 45 1 13 -9040 106 4 -282.72 1822 2 8 3 6 51 1 47 1 15 -9041 106 5 -276.64 1822 2 10 3 6 51 1 49 1 17 -9042 106 6 -270.56 1822 6 9 3 6 52 1 48 1 16 -9043 106 7 -264.48 1822 6 7 3 6 52 1 46 1 14 -9044 106 8 -258.4 1822 6 6 3 6 52 1 45 1 13 -9045 106 9 -252.32 1822 6 8 3 6 52 1 47 1 15 -9046 106 10 -246.24 1822 6 10 3 6 52 1 49 1 17 -9047 106 11 -240.16 1822 10 9 3 6 53 1 48 1 16 -9048 106 12 -234.08 1822 10 7 3 6 53 1 46 1 14 -9049 106 13 -228 1822 10 5 3 6 53 1 44 1 12 -9050 106 14 -221.92 1822 10 6 3 6 53 1 45 1 13 -9051 106 15 -215.84 1822 10 8 3 6 53 1 47 1 15 -9052 106 16 -209.76 1822 14 9 3 6 54 1 48 1 16 -9053 106 17 -203.68 1822 14 7 3 6 54 1 46 1 14 -9054 106 18 -197.6 1822 14 5 3 6 54 1 44 1 12 -9055 106 19 -191.52 1822 14 6 3 6 54 1 45 1 13 -9056 106 20 -185.44 1822 14 8 3 6 54 1 47 1 15 -9057 106 21 -179.36 1822 18 7 3 6 55 1 46 1 14 -9058 106 22 -173.28 1822 18 5 3 6 55 1 44 1 12 -9059 106 23 -167.2 1822 18 3 3 6 55 1 42 1 10 -9060 106 24 -161.12 1822 18 6 3 6 55 1 45 1 13 -9061 106 25 -155.04 1822 18 8 3 6 55 1 47 1 15 -9062 106 26 -148.96 1822 22 9 3 6 56 1 48 1 16 -9063 106 27 -142.88 1822 22 7 3 6 56 1 46 1 14 -9064 106 28 -136.8 1822 22 5 3 6 56 1 44 1 12 -9065 106 29 -130.72 1822 22 6 3 6 56 1 45 1 13 -9066 106 30 -124.64 1822 22 8 3 6 56 1 47 1 15 -9067 106 31 -118.56 1822 26 9 3 6 57 1 48 1 16 -9068 106 32 -112.48 1822 26 7 3 6 57 1 46 1 14 -9069 106 33 -106.4 1822 26 5 3 6 57 1 44 1 12 -9070 106 34 -100.32 1822 26 6 3 6 57 1 45 1 13 -9071 106 35 -94.24 1822 26 8 3 6 57 1 47 1 15 -9072 106 36 -88.16 1822 30 5 3 6 58 1 44 1 12 -9073 106 37 -82.08 1822 30 3 3 6 58 1 42 1 10 -9074 106 38 -76 1822 30 1 3 6 58 1 40 1 8 -9075 106 39 -69.92 1822 30 6 3 6 58 1 45 1 13 -9076 106 40 -63.84 1822 30 8 3 6 58 1 47 1 15 -9077 106 41 -57.76 1822 34 9 3 6 59 1 48 1 16 -9078 106 42 -51.68 1822 34 7 3 6 59 1 46 1 14 -9079 106 43 -45.6 1822 34 6 3 6 59 1 45 1 13 -9080 106 44 -39.52 1822 34 8 3 6 59 1 47 1 15 -9081 106 45 -33.44 1822 34 10 3 6 59 1 49 1 17 -9082 106 46 -27.36 1822 38 9 3 6 60 1 48 1 16 -9083 106 47 -21.28 1822 38 7 3 6 60 1 46 1 14 -9084 106 48 -15.2 1822 38 6 3 6 60 1 45 1 13 -9085 106 49 -9.12 1822 38 8 3 6 60 1 47 1 15 -9086 106 50 -3.04 1822 38 10 3 6 60 1 49 1 17 -9087 106 51 3.04 1822 42 9 3 6 61 1 48 1 16 -9088 106 52 9.12 1822 42 7 3 6 61 1 46 1 14 -9089 106 53 15.2 1822 42 5 3 6 61 1 44 1 12 -9090 106 54 21.28 1822 42 8 3 6 61 1 47 1 15 -9091 106 55 27.36 1822 42 10 3 6 61 1 49 1 17 -9092 106 56 33.44 1822 46 9 3 6 62 1 48 1 16 -9093 106 57 39.52 1822 46 7 3 6 62 1 46 1 14 -9094 106 58 45.6 1822 46 5 3 6 62 1 44 1 12 -9095 106 59 51.68 1822 46 8 3 6 62 1 47 1 15 -9096 106 60 57.76 1822 46 10 3 6 62 1 49 1 17 -9097 106 61 63.84 1822 50 7 3 6 63 1 46 1 14 -9098 106 62 69.92 1822 50 5 3 6 63 1 44 1 12 -9099 106 63 76 1822 50 2 3 6 63 1 41 1 9 -9100 106 64 82.08 1822 50 4 3 6 63 1 43 1 11 -9101 106 65 88.16 1822 50 6 3 6 63 1 45 1 13 -9102 106 66 94.24 1822 54 7 3 6 64 1 46 1 14 -9103 106 67 100.32 1822 54 5 3 6 64 1 44 1 12 -9104 106 68 106.4 1822 54 6 3 6 64 1 45 1 13 -9105 106 69 112.48 1822 54 8 3 6 64 1 47 1 15 -9106 106 70 118.56 1822 54 10 3 6 64 1 49 1 17 -9107 106 71 124.64 1822 58 7 3 6 65 1 46 1 14 -9108 106 72 130.72 1822 58 5 3 6 65 1 44 1 12 -9109 106 73 136.8 1822 58 6 3 6 65 1 45 1 13 -9110 106 74 142.88 1822 58 8 3 6 65 1 47 1 15 -9111 106 75 148.96 1822 58 10 3 6 65 1 49 1 17 -9112 106 76 155.04 1822 62 7 3 6 66 1 46 1 14 -9113 106 77 161.12 1822 62 5 3 6 66 1 44 1 12 -9114 106 78 167.2 1822 62 4 3 6 66 1 43 1 11 -9115 106 79 173.28 1822 62 6 3 6 66 1 45 1 13 -9116 106 80 179.36 1822 62 8 3 6 66 1 47 1 15 -9117 106 81 185.44 1822 66 7 3 6 67 1 46 1 14 -9118 106 82 191.52 1822 66 5 3 6 67 1 44 1 12 -9119 106 83 197.6 1822 66 6 3 6 67 1 45 1 13 -9120 106 84 203.68 1822 66 8 3 6 67 1 47 1 15 -9121 106 85 209.76 1822 66 10 3 6 67 1 49 1 17 -9122 106 86 215.84 1822 70 7 3 6 68 1 46 1 14 -9123 106 87 221.92 1822 70 5 3 6 68 1 44 1 12 -9124 106 88 228 1822 70 6 3 6 68 1 45 1 13 -9125 106 89 234.08 1822 70 8 3 6 68 1 47 1 15 -9126 106 90 240.16 1822 70 10 3 6 68 1 49 1 17 -9127 106 91 246.24 1822 74 9 3 6 69 1 48 1 16 -9128 106 92 252.32 1822 74 7 3 6 69 1 46 1 14 -9129 106 93 258.4 1822 74 5 3 6 69 1 44 1 12 -9130 106 94 264.48 1822 74 8 3 6 69 1 47 1 15 -9131 106 95 270.56 1822 74 10 3 6 69 1 49 1 17 -9132 106 96 276.64 1822 78 9 3 6 70 1 48 1 16 -9133 106 97 282.72 1822 78 7 3 6 70 1 46 1 14 -9134 106 98 288.8 1822 78 5 3 6 70 1 44 1 12 -9135 106 99 294.88 1822 78 2 3 6 70 1 41 1 9 -9136 106 100 300.96 1822 78 4 3 6 70 1 43 1 11 -9137 106 101 307.04 1822 78 6 3 6 70 1 45 1 13 -9138 107 0 -307.04 1834 2 11 3 6 51 1 50 1 18 -9139 107 1 -300.96 1834 2 9 3 6 51 1 48 1 16 -9140 107 2 -294.88 1834 2 7 3 6 51 1 46 1 14 -9141 107 3 -288.8 1834 2 12 3 6 51 1 51 1 19 -9142 107 4 -282.72 1834 2 14 3 6 51 1 53 1 21 -9143 107 5 -276.64 1834 6 15 3 6 52 1 54 1 22 -9144 107 6 -270.56 1834 6 13 3 6 52 1 52 1 20 -9145 107 7 -264.48 1834 6 11 3 6 52 1 50 1 18 -9146 107 8 -258.4 1834 6 12 3 6 52 1 51 1 19 -9147 107 9 -252.32 1834 6 14 3 6 52 1 53 1 21 -9148 107 10 -246.24 1834 10 15 3 6 53 1 54 1 22 -9149 107 11 -240.16 1834 10 13 3 6 53 1 52 1 20 -9150 107 12 -234.08 1834 10 11 3 6 53 1 50 1 18 -9151 107 13 -228 1834 10 10 3 6 53 1 49 1 17 -9152 107 14 -221.92 1834 10 12 3 6 53 1 51 1 19 -9153 107 15 -215.84 1834 14 15 3 6 54 1 54 1 22 -9154 107 16 -209.76 1834 14 13 3 6 54 1 52 1 20 -9155 107 17 -203.68 1834 14 11 3 6 54 1 50 1 18 -9156 107 18 -197.6 1834 14 10 3 6 54 1 49 1 17 -9157 107 19 -191.52 1834 14 12 3 6 54 1 51 1 19 -9158 107 20 -185.44 1834 18 13 3 6 55 1 52 1 20 -9159 107 21 -179.36 1834 18 11 3 6 55 1 50 1 18 -9160 107 22 -173.28 1834 18 9 3 6 55 1 48 1 16 -9161 107 23 -167.2 1834 18 10 3 6 55 1 49 1 17 -9162 107 24 -161.12 1834 18 12 3 6 55 1 51 1 19 -9163 107 25 -155.04 1834 18 14 3 6 55 1 53 1 21 -9164 107 26 -148.96 1834 22 13 3 6 56 1 52 1 20 -9165 107 27 -142.88 1834 22 11 3 6 56 1 50 1 18 -9166 107 28 -136.8 1834 22 10 3 6 56 1 49 1 17 -9167 107 29 -130.72 1834 22 12 3 6 56 1 51 1 19 -9168 107 30 -124.64 1834 22 14 3 6 56 1 53 1 21 -9169 107 31 -118.56 1834 26 13 3 6 57 1 52 1 20 -9170 107 32 -112.48 1834 26 11 3 6 57 1 50 1 18 -9171 107 33 -106.4 1834 26 10 3 6 57 1 49 1 17 -9172 107 34 -100.32 1834 26 12 3 6 57 1 51 1 19 -9173 107 35 -94.24 1834 26 14 3 6 57 1 53 1 21 -9174 107 36 -88.16 1834 30 11 3 6 58 1 50 1 18 -9175 107 37 -82.08 1834 30 9 3 6 58 1 48 1 16 -9176 107 38 -76 1834 30 7 3 6 58 1 46 1 14 -9177 107 39 -69.92 1834 30 10 3 6 58 1 49 1 17 -9178 107 40 -63.84 1834 30 12 3 6 58 1 51 1 19 -9179 107 41 -57.76 1834 34 15 3 6 59 1 54 1 22 -9180 107 42 -51.68 1834 34 13 3 6 59 1 52 1 20 -9181 107 43 -45.6 1834 34 11 3 6 59 1 50 1 18 -9182 107 44 -39.52 1834 34 12 3 6 59 1 51 1 19 -9183 107 45 -33.44 1834 34 14 3 6 59 1 53 1 21 -9184 107 46 -27.36 1834 38 15 3 6 60 1 54 1 22 -9185 107 47 -21.28 1834 38 13 3 6 60 1 52 1 20 -9186 107 48 -15.2 1834 38 11 3 6 60 1 50 1 18 -9187 107 49 -9.12 1834 38 12 3 6 60 1 51 1 19 -9188 107 50 -3.04 1834 38 14 3 6 60 1 53 1 21 -9189 107 51 3.04 1834 42 13 3 6 61 1 52 1 20 -9190 107 52 9.12 1834 42 11 3 6 61 1 50 1 18 -9191 107 53 15.2 1834 42 12 3 6 61 1 51 1 19 -9192 107 54 21.28 1834 42 14 3 6 61 1 53 1 21 -9193 107 55 27.36 1834 42 16 3 6 61 1 55 1 23 -9194 107 56 33.44 1834 46 13 3 6 62 1 52 1 20 -9195 107 57 39.52 1834 46 11 3 6 62 1 50 1 18 -9196 107 58 45.6 1834 46 12 3 6 62 1 51 1 19 -9197 107 59 51.68 1834 46 14 3 6 62 1 53 1 21 -9198 107 60 57.76 1834 46 16 3 6 62 1 55 1 23 -9199 107 61 63.84 1834 50 11 3 6 63 1 50 1 18 -9200 107 62 69.92 1834 50 9 3 6 63 1 48 1 16 -9201 107 63 76 1834 50 8 3 6 63 1 47 1 15 -9202 107 64 82.08 1834 50 10 3 6 63 1 49 1 17 -9203 107 65 88.16 1834 50 12 3 6 63 1 51 1 19 -9204 107 66 94.24 1834 54 13 3 6 64 1 52 1 20 -9205 107 67 100.32 1834 54 11 3 6 64 1 50 1 18 -9206 107 68 106.4 1834 54 9 3 6 64 1 48 1 16 -9207 107 69 112.48 1834 54 12 3 6 64 1 51 1 19 -9208 107 70 118.56 1834 54 14 3 6 64 1 53 1 21 -9209 107 71 124.64 1834 58 13 3 6 65 1 52 1 20 -9210 107 72 130.72 1834 58 11 3 6 65 1 50 1 18 -9211 107 73 136.8 1834 58 9 3 6 65 1 48 1 16 -9212 107 74 142.88 1834 58 12 3 6 65 1 51 1 19 -9213 107 75 148.96 1834 58 14 3 6 65 1 53 1 21 -9214 107 76 155.04 1834 62 13 3 6 66 1 52 1 20 -9215 107 77 161.12 1834 62 11 3 6 66 1 50 1 18 -9216 107 78 167.2 1834 62 9 3 6 66 1 48 1 16 -9217 107 79 173.28 1834 62 10 3 6 66 1 49 1 17 -9218 107 80 179.36 1834 62 12 3 6 66 1 51 1 19 -9219 107 81 185.44 1834 62 14 3 6 66 1 53 1 21 -9220 107 82 191.52 1834 66 11 3 6 67 1 50 1 18 -9221 107 83 197.6 1834 66 9 3 6 67 1 48 1 16 -9222 107 84 203.68 1834 66 12 3 6 67 1 51 1 19 -9223 107 85 209.76 1834 66 14 3 6 67 1 53 1 21 -9224 107 86 215.84 1834 66 16 3 6 67 1 55 1 23 -9225 107 87 221.92 1834 70 11 3 6 68 1 50 1 18 -9226 107 88 228 1834 70 9 3 6 68 1 48 1 16 -9227 107 89 234.08 1834 70 12 3 6 68 1 51 1 19 -9228 107 90 240.16 1834 70 14 3 6 68 1 53 1 21 -9229 107 91 246.24 1834 70 16 3 6 68 1 55 1 23 -9230 107 92 252.32 1834 74 13 3 6 69 1 52 1 20 -9231 107 93 258.4 1834 74 11 3 6 69 1 50 1 18 -9232 107 94 264.48 1834 74 12 3 6 69 1 51 1 19 -9233 107 95 270.56 1834 74 14 3 6 69 1 53 1 21 -9234 107 96 276.64 1834 74 16 3 6 69 1 55 1 23 -9235 107 97 282.72 1834 78 13 3 6 70 1 52 1 20 -9236 107 98 288.8 1834 78 11 3 6 70 1 50 1 18 -9237 107 99 294.88 1834 78 8 3 6 70 1 47 1 15 -9238 107 100 300.96 1834 78 10 3 6 70 1 49 1 17 -9239 107 101 307.04 1834 78 12 3 6 70 1 51 1 19 -9240 108 0 -307.04 1846 2 17 3 6 51 1 56 1 24 -9241 108 1 -300.96 1846 2 15 3 6 51 1 54 1 22 -9242 108 2 -294.88 1846 2 13 3 6 51 1 52 1 20 -9243 108 3 -288.8 1846 2 16 3 6 51 1 55 1 23 -9244 108 4 -282.72 1846 2 18 3 6 51 1 57 1 25 -9245 108 5 -276.64 1846 6 21 3 6 52 1 60 1 28 -9246 108 6 -270.56 1846 6 19 3 6 52 1 58 1 26 -9247 108 7 -264.48 1846 6 17 3 6 52 1 56 1 24 -9248 108 8 -258.4 1846 6 16 3 6 52 1 55 1 23 -9249 108 9 -252.32 1846 6 18 3 6 52 1 57 1 25 -9250 108 10 -246.24 1846 10 19 3 6 53 1 58 1 26 -9251 108 11 -240.16 1846 10 17 3 6 53 1 56 1 24 -9252 108 12 -234.08 1846 10 14 3 6 53 1 53 1 21 -9253 108 13 -228 1846 10 16 3 6 53 1 55 1 23 -9254 108 14 -221.92 1846 10 18 3 6 53 1 57 1 25 -9255 108 15 -215.84 1846 14 21 3 6 54 1 60 1 28 -9256 108 16 -209.76 1846 14 19 3 6 54 1 58 1 26 -9257 108 17 -203.68 1846 14 17 3 6 54 1 56 1 24 -9258 108 18 -197.6 1846 14 14 3 6 54 1 53 1 21 -9259 108 19 -191.52 1846 14 16 3 6 54 1 55 1 23 -9260 108 20 -185.44 1846 18 19 3 6 55 1 58 1 26 -9261 108 21 -179.36 1846 18 17 3 6 55 1 56 1 24 -9262 108 22 -173.28 1846 18 15 3 6 55 1 54 1 22 -9263 108 23 -167.2 1846 18 16 3 6 55 1 55 1 23 -9264 108 24 -161.12 1846 18 18 3 6 55 1 57 1 25 -9265 108 25 -155.04 1846 22 19 3 6 56 1 58 1 26 -9266 108 26 -148.96 1846 22 17 3 6 56 1 56 1 24 -9267 108 27 -142.88 1846 22 15 3 6 56 1 54 1 22 -9268 108 28 -136.8 1846 22 16 3 6 56 1 55 1 23 -9269 108 29 -130.72 1846 22 18 3 6 56 1 57 1 25 -9270 108 30 -124.64 1846 22 20 3 6 56 1 59 1 27 -9271 108 31 -118.56 1846 26 19 3 6 57 1 58 1 26 -9272 108 32 -112.48 1846 26 17 3 6 57 1 56 1 24 -9273 108 33 -106.4 1846 26 15 3 6 57 1 54 1 22 -9274 108 34 -100.32 1846 26 16 3 6 57 1 55 1 23 -9275 108 35 -94.24 1846 26 18 3 6 57 1 57 1 25 -9276 108 36 -88.16 1846 30 17 3 6 58 1 56 1 24 -9277 108 37 -82.08 1846 30 15 3 6 58 1 54 1 22 -9278 108 38 -76 1846 30 13 3 6 58 1 52 1 20 -9279 108 39 -69.92 1846 30 14 3 6 58 1 53 1 21 -9280 108 40 -63.84 1846 30 16 3 6 58 1 55 1 23 -9281 108 41 -57.76 1846 34 19 3 6 59 1 58 1 26 -9282 108 42 -51.68 1846 34 17 3 6 59 1 56 1 24 -9283 108 43 -45.6 1846 34 16 3 6 59 1 55 1 23 -9284 108 44 -39.52 1846 34 18 3 6 59 1 57 1 25 -9285 108 45 -33.44 1846 34 20 3 6 59 1 59 1 27 -9286 108 46 -27.36 1846 38 19 3 6 60 1 58 1 26 -9287 108 47 -21.28 1846 38 17 3 6 60 1 56 1 24 -9288 108 48 -15.2 1846 38 16 3 6 60 1 55 1 23 -9289 108 49 -9.12 1846 38 18 3 6 60 1 57 1 25 -9290 108 50 -3.04 1846 38 20 3 6 60 1 59 1 27 -9291 108 51 3.04 1846 42 19 3 6 61 1 58 1 26 -9292 108 52 9.12 1846 42 17 3 6 61 1 56 1 24 -9293 108 53 15.2 1846 42 15 3 6 61 1 54 1 22 -9294 108 54 21.28 1846 42 18 3 6 61 1 57 1 25 -9295 108 55 27.36 1846 42 20 3 6 61 1 59 1 27 -9296 108 56 33.44 1846 46 19 3 6 62 1 58 1 26 -9297 108 57 39.52 1846 46 17 3 6 62 1 56 1 24 -9298 108 58 45.6 1846 46 15 3 6 62 1 54 1 22 -9299 108 59 51.68 1846 46 18 3 6 62 1 57 1 25 -9300 108 60 57.76 1846 46 20 3 6 62 1 59 1 27 -9301 108 61 63.84 1846 50 15 3 6 63 1 54 1 22 -9302 108 62 69.92 1846 50 13 3 6 63 1 52 1 20 -9303 108 63 76 1846 50 14 3 6 63 1 53 1 21 -9304 108 64 82.08 1846 50 16 3 6 63 1 55 1 23 -9305 108 65 88.16 1846 50 18 3 6 63 1 57 1 25 -9306 108 66 94.24 1846 54 17 3 6 64 1 56 1 24 -9307 108 67 100.32 1846 54 15 3 6 64 1 54 1 22 -9308 108 68 106.4 1846 54 16 3 6 64 1 55 1 23 -9309 108 69 112.48 1846 54 18 3 6 64 1 57 1 25 -9310 108 70 118.56 1846 54 20 3 6 64 1 59 1 27 -9311 108 71 124.64 1846 58 19 3 6 65 1 58 1 26 -9312 108 72 130.72 1846 58 17 3 6 65 1 56 1 24 -9313 108 73 136.8 1846 58 15 3 6 65 1 54 1 22 -9314 108 74 142.88 1846 58 16 3 6 65 1 55 1 23 -9315 108 75 148.96 1846 58 18 3 6 65 1 57 1 25 -9316 108 76 155.04 1846 58 20 3 6 65 1 59 1 27 -9317 108 77 161.12 1846 62 17 3 6 66 1 56 1 24 -9318 108 78 167.2 1846 62 15 3 6 66 1 54 1 22 -9319 108 79 173.28 1846 62 16 3 6 66 1 55 1 23 -9320 108 80 179.36 1846 62 18 3 6 66 1 57 1 25 -9321 108 81 185.44 1846 62 20 3 6 66 1 59 1 27 -9322 108 82 191.52 1846 66 15 3 6 67 1 54 1 22 -9323 108 83 197.6 1846 66 13 3 6 67 1 52 1 20 -9324 108 84 203.68 1846 66 18 3 6 67 1 57 1 25 -9325 108 85 209.76 1846 66 20 3 6 67 1 59 1 27 -9326 108 86 215.84 1846 66 22 3 6 67 1 61 1 29 -9327 108 87 221.92 1846 70 17 3 6 68 1 56 1 24 -9328 108 88 228 1846 70 15 3 6 68 1 54 1 22 -9329 108 89 234.08 1846 70 13 3 6 68 1 52 1 20 -9330 108 90 240.16 1846 70 18 3 6 68 1 57 1 25 -9331 108 91 246.24 1846 70 20 3 6 68 1 59 1 27 -9332 108 92 252.32 1846 74 17 3 6 69 1 56 1 24 -9333 108 93 258.4 1846 74 15 3 6 69 1 54 1 22 -9334 108 94 264.48 1846 74 18 3 6 69 1 57 1 25 -9335 108 95 270.56 1846 74 20 3 6 69 1 59 1 27 -9336 108 96 276.64 1846 74 22 3 6 69 1 61 1 29 -9337 108 97 282.72 1846 78 17 3 6 70 1 56 1 24 -9338 108 98 288.8 1846 78 15 3 6 70 1 54 1 22 -9339 108 99 294.88 1846 78 14 3 6 70 1 53 1 21 -9340 108 100 300.96 1846 78 16 3 6 70 1 55 1 23 -9341 108 101 307.04 1846 78 18 3 6 70 1 57 1 25 -9342 109 0 -313.12 1858 2 23 3 6 51 1 62 1 30 -9343 109 1 -307.04 1858 2 21 3 6 51 1 60 1 28 -9344 109 2 -300.96 1858 2 19 3 6 51 1 58 1 26 -9345 109 3 -294.88 1858 2 20 3 6 51 1 59 1 27 -9346 109 4 -288.8 1858 2 22 3 6 51 1 61 1 29 -9347 109 5 -282.72 1858 2 24 3 6 51 1 63 1 31 -9348 109 6 -276.64 1858 6 25 3 6 52 1 64 2 0 -9349 109 7 -270.56 1858 6 23 3 6 52 1 62 1 30 -9350 109 8 -264.48 1858 6 20 3 6 52 1 59 1 27 -9351 109 9 -258.4 1858 6 22 3 6 52 1 61 1 29 -9352 109 10 -252.32 1858 6 24 3 6 52 1 63 1 31 -9353 109 11 -246.24 1858 10 23 3 6 53 1 62 1 30 -9354 109 12 -240.16 1858 10 21 3 6 53 1 60 1 28 -9355 109 13 -234.08 1858 10 20 3 6 53 1 59 1 27 -9356 109 14 -228 1858 10 22 3 6 53 1 61 1 29 -9357 109 15 -221.92 1858 10 24 3 6 53 1 63 1 31 -9358 109 16 -215.84 1858 14 25 3 6 54 1 64 2 0 -9359 109 17 -209.76 1858 14 23 3 6 54 1 62 1 30 -9360 109 18 -203.68 1858 14 18 3 6 54 1 57 1 25 -9361 109 19 -197.6 1858 14 20 3 6 54 1 59 1 27 -9362 109 20 -191.52 1858 14 22 3 6 54 1 61 1 29 -9363 109 21 -185.44 1858 18 23 3 6 55 1 62 1 30 -9364 109 22 -179.36 1858 18 21 3 6 55 1 60 1 28 -9365 109 23 -173.28 1858 18 20 3 6 55 1 59 1 27 -9366 109 24 -167.2 1858 18 22 3 6 55 1 61 1 29 -9367 109 25 -161.12 1858 18 24 3 6 55 1 63 1 31 -9368 109 26 -155.04 1858 22 23 3 6 56 1 62 1 30 -9369 109 27 -148.96 1858 22 21 3 6 56 1 60 1 28 -9370 109 28 -142.88 1858 22 22 3 6 56 1 61 1 29 -9371 109 29 -136.8 1858 22 24 3 6 56 1 63 1 31 -9372 109 30 -130.72 1858 22 26 3 6 56 1 65 2 1 -9373 109 31 -124.64 1858 26 25 3 6 57 1 64 2 0 -9374 109 32 -118.56 1858 26 23 3 6 57 1 62 1 30 -9375 109 33 -112.48 1858 26 21 3 6 57 1 60 1 28 -9376 109 34 -106.4 1858 26 20 3 6 57 1 59 1 27 -9377 109 35 -100.32 1858 26 22 3 6 57 1 61 1 29 -9378 109 36 -94.24 1858 26 24 3 6 57 1 63 1 31 -9379 109 37 -88.16 1858 30 21 3 6 58 1 60 1 28 -9380 109 38 -82.08 1858 30 19 3 6 58 1 58 1 26 -9381 109 39 -76 1858 30 18 3 6 58 1 57 1 25 -9382 109 40 -69.92 1858 30 20 3 6 58 1 59 1 27 -9383 109 41 -63.84 1858 30 22 3 6 58 1 61 1 29 -9384 109 42 -57.76 1858 34 25 3 6 59 1 64 2 0 -9385 109 43 -51.68 1858 34 23 3 6 59 1 62 1 30 -9386 109 44 -45.6 1858 34 21 3 6 59 1 60 1 28 -9387 109 45 -39.52 1858 34 22 3 6 59 1 61 1 29 -9388 109 46 -33.44 1858 34 24 3 6 59 1 63 1 31 -9389 109 47 -27.36 1858 38 25 3 6 60 1 64 2 0 -9390 109 48 -21.28 1858 38 23 3 6 60 1 62 1 30 -9391 109 49 -15.2 1858 38 21 3 6 60 1 60 1 28 -9392 109 50 -9.12 1858 38 22 3 6 60 1 61 1 29 -9393 109 51 -3.04 1858 38 24 3 6 60 1 63 1 31 -9394 109 52 3.04 1858 42 23 3 6 61 1 62 1 30 -9395 109 53 9.12 1858 42 21 3 6 61 1 60 1 28 -9396 109 54 15.2 1858 42 22 3 6 61 1 61 1 29 -9397 109 55 21.28 1858 42 24 3 6 61 1 63 1 31 -9398 109 56 27.36 1858 42 26 3 6 61 1 65 2 1 -9399 109 57 33.44 1858 46 23 3 6 62 1 62 1 30 -9400 109 58 39.52 1858 46 21 3 6 62 1 60 1 28 -9401 109 59 45.6 1858 46 22 3 6 62 1 61 1 29 -9402 109 60 51.68 1858 46 24 3 6 62 1 63 1 31 -9403 109 61 57.76 1858 46 26 3 6 62 1 65 2 1 -9404 109 62 63.84 1858 50 21 3 6 63 1 60 1 28 -9405 109 63 69.92 1858 50 19 3 6 63 1 58 1 26 -9406 109 64 76 1858 50 17 3 6 63 1 56 1 24 -9407 109 65 82.08 1858 50 20 3 6 63 1 59 1 27 -9408 109 66 88.16 1858 50 22 3 6 63 1 61 1 29 -9409 109 67 94.24 1858 54 23 3 6 64 1 62 1 30 -9410 109 68 100.32 1858 54 21 3 6 64 1 60 1 28 -9411 109 69 106.4 1858 54 19 3 6 64 1 58 1 26 -9412 109 70 112.48 1858 54 22 3 6 64 1 61 1 29 -9413 109 71 118.56 1858 54 24 3 6 64 1 63 1 31 -9414 109 72 124.64 1858 54 26 3 6 64 1 65 2 1 -9415 109 73 130.72 1858 58 25 3 6 65 1 64 2 0 -9416 109 74 136.8 1858 58 23 3 6 65 1 62 1 30 -9417 109 75 142.88 1858 58 21 3 6 65 1 60 1 28 -9418 109 76 148.96 1858 58 22 3 6 65 1 61 1 29 -9419 109 77 155.04 1858 58 24 3 6 65 1 63 1 31 -9420 109 78 161.12 1858 62 23 3 6 66 1 62 1 30 -9421 109 79 167.2 1858 62 21 3 6 66 1 60 1 28 -9422 109 80 173.28 1858 62 19 3 6 66 1 58 1 26 -9423 109 81 179.36 1858 62 22 3 6 66 1 61 1 29 -9424 109 82 185.44 1858 62 24 3 6 66 1 63 1 31 -9425 109 83 191.52 1858 66 21 3 6 67 1 60 1 28 -9426 109 84 197.6 1858 66 19 3 6 67 1 58 1 26 -9427 109 85 203.68 1858 66 17 3 6 67 1 56 1 24 -9428 109 86 209.76 1858 66 24 3 6 67 1 63 1 31 -9429 109 87 215.84 1858 66 26 3 6 67 1 65 2 1 -9430 109 88 221.92 1858 70 23 3 6 68 1 62 1 30 -9431 109 89 228 1858 70 21 3 6 68 1 60 1 28 -9432 109 90 234.08 1858 70 19 3 6 68 1 58 1 26 -9433 109 91 240.16 1858 70 22 3 6 68 1 61 1 29 -9434 109 92 246.24 1858 70 24 3 6 68 1 63 1 31 -9435 109 93 252.32 1858 74 23 3 6 69 1 62 1 30 -9436 109 94 258.4 1858 74 21 3 6 69 1 60 1 28 -9437 109 95 264.48 1858 74 19 3 6 69 1 58 1 26 -9438 109 96 270.56 1858 74 24 3 6 69 1 63 1 31 -9439 109 97 276.64 1858 74 26 3 6 69 1 65 2 1 -9440 109 98 282.72 1858 78 23 3 6 70 1 62 1 30 -9441 109 99 288.8 1858 78 21 3 6 70 1 60 1 28 -9442 109 100 294.88 1858 78 19 3 6 70 1 58 1 26 -9443 109 101 300.96 1858 78 20 3 6 70 1 59 1 27 -9444 109 102 307.04 1858 78 22 3 6 70 1 61 1 29 -9445 109 103 313.12 1858 78 24 3 6 70 1 63 1 31 -9446 110 0 -313.12 1870 2 29 3 6 51 1 68 2 4 -9447 110 1 -307.04 1870 2 27 3 6 51 1 66 2 2 -9448 110 2 -300.96 1870 2 25 3 6 51 1 64 2 0 -9449 110 3 -294.88 1870 2 26 3 6 51 1 65 2 1 -9450 110 4 -288.8 1870 2 28 3 6 51 1 67 2 3 -9451 110 5 -282.72 1870 6 29 3 6 52 1 68 2 4 -9452 110 6 -276.64 1870 6 27 3 6 52 1 66 2 2 -9453 110 7 -270.56 1870 6 26 3 6 52 1 65 2 1 -9454 110 8 -264.48 1870 6 28 3 6 52 1 67 2 3 -9455 110 9 -258.4 1870 6 30 3 6 52 1 69 2 5 -9456 110 10 -252.32 1870 10 29 3 6 53 1 68 2 4 -9457 110 11 -246.24 1870 10 27 3 6 53 1 66 2 2 -9458 110 12 -240.16 1870 10 25 3 6 53 1 64 2 0 -9459 110 13 -234.08 1870 10 26 3 6 53 1 65 2 1 -9460 110 14 -228 1870 10 28 3 6 53 1 67 2 3 -9461 110 15 -221.92 1870 10 30 3 6 53 1 69 2 5 -9462 110 16 -215.84 1870 14 29 3 6 54 1 68 2 4 -9463 110 17 -209.76 1870 14 27 3 6 54 1 66 2 2 -9464 110 18 -203.68 1870 14 24 3 6 54 1 63 1 31 -9465 110 19 -197.6 1870 14 26 3 6 54 1 65 2 1 -9466 110 20 -191.52 1870 14 28 3 6 54 1 67 2 3 -9467 110 21 -185.44 1870 18 29 3 6 55 1 68 2 4 -9468 110 22 -179.36 1870 18 27 3 6 55 1 66 2 2 -9469 110 23 -173.28 1870 18 25 3 6 55 1 64 2 0 -9470 110 24 -167.2 1870 18 26 3 6 55 1 65 2 1 -9471 110 25 -161.12 1870 18 28 3 6 55 1 67 2 3 -9472 110 26 -155.04 1870 22 29 3 6 56 1 68 2 4 -9473 110 27 -148.96 1870 22 27 3 6 56 1 66 2 2 -9474 110 28 -142.88 1870 22 25 3 6 56 1 64 2 0 -9475 110 29 -136.8 1870 22 28 3 6 56 1 67 2 3 -9476 110 30 -130.72 1870 22 30 3 6 56 1 69 2 5 -9477 110 31 -124.64 1870 26 29 3 6 57 1 68 2 4 -9478 110 32 -118.56 1870 26 27 3 6 57 1 66 2 2 -9479 110 33 -112.48 1870 26 26 3 6 57 1 65 2 1 -9480 110 34 -106.4 1870 26 28 3 6 57 1 67 2 3 -9481 110 35 -100.32 1870 26 30 3 6 57 1 69 2 5 -9482 110 36 -94.24 1870 30 27 3 6 58 1 66 2 2 -9483 110 37 -88.16 1870 30 25 3 6 58 1 64 2 0 -9484 110 38 -82.08 1870 30 23 3 6 58 1 62 1 30 -9485 110 39 -76 1870 30 24 3 6 58 1 63 1 31 -9486 110 40 -69.92 1870 30 26 3 6 58 1 65 2 1 -9487 110 41 -63.84 1870 30 28 3 6 58 1 67 2 3 -9488 110 42 -57.76 1870 34 29 3 6 59 1 68 2 4 -9489 110 43 -51.68 1870 34 27 3 6 59 1 66 2 2 -9490 110 44 -45.6 1870 34 26 3 6 59 1 65 2 1 -9491 110 45 -39.52 1870 34 28 3 6 59 1 67 2 3 -9492 110 46 -33.44 1870 34 30 3 6 59 1 69 2 5 -9493 110 47 -27.36 1870 38 29 3 6 60 1 68 2 4 -9494 110 48 -21.28 1870 38 27 3 6 60 1 66 2 2 -9495 110 49 -15.2 1870 38 26 3 6 60 1 65 2 1 -9496 110 50 -9.12 1870 38 28 3 6 60 1 67 2 3 -9497 110 51 -3.04 1870 38 30 3 6 60 1 69 2 5 -9498 110 52 3.04 1870 42 29 3 6 61 1 68 2 4 -9499 110 53 9.12 1870 42 27 3 6 61 1 66 2 2 -9500 110 54 15.2 1870 42 25 3 6 61 1 64 2 0 -9501 110 55 21.28 1870 42 28 3 6 61 1 67 2 3 -9502 110 56 27.36 1870 42 30 3 6 61 1 69 2 5 -9503 110 57 33.44 1870 46 29 3 6 62 1 68 2 4 -9504 110 58 39.52 1870 46 27 3 6 62 1 66 2 2 -9505 110 59 45.6 1870 46 25 3 6 62 1 64 2 0 -9506 110 60 51.68 1870 46 28 3 6 62 1 67 2 3 -9507 110 61 57.76 1870 46 30 3 6 62 1 69 2 5 -9508 110 62 63.84 1870 50 27 3 6 63 1 66 2 2 -9509 110 63 69.92 1870 50 25 3 6 63 1 64 2 0 -9510 110 64 76 1870 50 23 3 6 63 1 62 1 30 -9511 110 65 82.08 1870 50 24 3 6 63 1 63 1 31 -9512 110 66 88.16 1870 50 26 3 6 63 1 65 2 1 -9513 110 67 94.24 1870 50 28 3 6 63 1 67 2 3 -9514 110 68 100.32 1870 54 29 3 6 64 1 68 2 4 -9515 110 69 106.4 1870 54 27 3 6 64 1 66 2 2 -9516 110 70 112.48 1870 54 25 3 6 64 1 64 2 0 -9517 110 71 118.56 1870 54 28 3 6 64 1 67 2 3 -9518 110 72 124.64 1870 54 30 3 6 64 1 69 2 5 -9519 110 73 130.72 1870 58 29 3 6 65 1 68 2 4 -9520 110 74 136.8 1870 58 27 3 6 65 1 66 2 2 -9521 110 75 142.88 1870 58 26 3 6 65 1 65 2 1 -9522 110 76 148.96 1870 58 28 3 6 65 1 67 2 3 -9523 110 77 155.04 1870 58 30 3 6 65 1 69 2 5 -9524 110 78 161.12 1870 62 27 3 6 66 1 66 2 2 -9525 110 79 167.2 1870 62 25 3 6 66 1 64 2 0 -9526 110 80 173.28 1870 62 26 3 6 66 1 65 2 1 -9527 110 81 179.36 1870 62 28 3 6 66 1 67 2 3 -9528 110 82 185.44 1870 62 30 3 6 66 1 69 2 5 -9529 110 83 191.52 1870 66 27 3 6 67 1 66 2 2 -9530 110 84 197.6 1870 66 25 3 6 67 1 64 2 0 -9531 110 85 203.68 1870 66 23 3 6 67 1 62 1 30 -9532 110 86 209.76 1870 66 28 3 6 67 1 67 2 3 -9533 110 87 215.84 1870 66 30 3 6 67 1 69 2 5 -9534 110 88 221.92 1870 70 29 3 6 68 1 68 2 4 -9535 110 89 228 1870 70 27 3 6 68 1 66 2 2 -9536 110 90 234.08 1870 70 25 3 6 68 1 64 2 0 -9537 110 91 240.16 1870 70 26 3 6 68 1 65 2 1 -9538 110 92 246.24 1870 70 28 3 6 68 1 67 2 3 -9539 110 93 252.32 1870 70 30 3 6 68 1 69 2 5 -9540 110 94 258.4 1870 74 29 3 6 69 1 68 2 4 -9541 110 95 264.48 1870 74 27 3 6 69 1 66 2 2 -9542 110 96 270.56 1870 74 25 3 6 69 1 64 2 0 -9543 110 97 276.64 1870 74 28 3 6 69 1 67 2 3 -9544 110 98 282.72 1870 74 30 3 6 69 1 69 2 5 -9545 110 99 288.8 1870 78 27 3 6 70 1 66 2 2 -9546 110 100 294.88 1870 78 25 3 6 70 1 64 2 0 -9547 110 101 300.96 1870 78 26 3 6 70 1 65 2 1 -9548 110 102 307.04 1870 78 28 3 6 70 1 67 2 3 -9549 110 103 313.12 1870 78 30 3 6 70 1 69 2 5 -9550 111 0 -313.12 1882 2 33 3 6 51 1 72 2 8 -9551 111 1 -307.04 1882 2 31 3 6 51 1 70 2 6 -9552 111 2 -300.96 1882 2 30 3 6 51 1 69 2 5 -9553 111 3 -294.88 1882 2 32 3 6 51 1 71 2 7 -9554 111 4 -288.8 1882 2 34 3 6 51 1 73 2 9 -9555 111 5 -282.72 1882 6 35 3 6 52 1 74 2 10 -9556 111 6 -276.64 1882 6 33 3 6 52 1 72 2 8 -9557 111 7 -270.56 1882 6 31 3 6 52 1 70 2 6 -9558 111 8 -264.48 1882 6 32 3 6 52 1 71 2 7 -9559 111 9 -258.4 1882 6 34 3 6 52 1 73 2 9 -9560 111 10 -252.32 1882 10 35 3 6 53 1 74 2 10 -9561 111 11 -246.24 1882 10 33 3 6 53 1 72 2 8 -9562 111 12 -240.16 1882 10 31 3 6 53 1 70 2 6 -9563 111 13 -234.08 1882 10 32 3 6 53 1 71 2 7 -9564 111 14 -228 1882 10 34 3 6 53 1 73 2 9 -9565 111 15 -221.92 1882 14 35 3 6 54 1 74 2 10 -9566 111 16 -215.84 1882 14 33 3 6 54 1 72 2 8 -9567 111 17 -209.76 1882 14 31 3 6 54 1 70 2 6 -9568 111 18 -203.68 1882 14 30 3 6 54 1 69 2 5 -9569 111 19 -197.6 1882 14 32 3 6 54 1 71 2 7 -9570 111 20 -191.52 1882 14 34 3 6 54 1 73 2 9 -9571 111 21 -185.44 1882 18 33 3 6 55 1 72 2 8 -9572 111 22 -179.36 1882 18 31 3 6 55 1 70 2 6 -9573 111 23 -173.28 1882 18 30 3 6 55 1 69 2 5 -9574 111 24 -167.2 1882 18 32 3 6 55 1 71 2 7 -9575 111 25 -161.12 1882 18 34 3 6 55 1 73 2 9 -9576 111 26 -155.04 1882 22 33 3 6 56 1 72 2 8 -9577 111 27 -148.96 1882 22 31 3 6 56 1 70 2 6 -9578 111 28 -142.88 1882 22 32 3 6 56 1 71 2 7 -9579 111 29 -136.8 1882 22 34 3 6 56 1 73 2 9 -9580 111 30 -130.72 1882 22 36 3 6 56 1 75 2 11 -9581 111 31 -124.64 1882 26 35 3 6 57 1 74 2 10 -9582 111 32 -118.56 1882 26 33 3 6 57 1 72 2 8 -9583 111 33 -112.48 1882 26 31 3 6 57 1 70 2 6 -9584 111 34 -106.4 1882 26 32 3 6 57 1 71 2 7 -9585 111 35 -100.32 1882 26 34 3 6 57 1 73 2 9 -9586 111 36 -94.24 1882 30 33 3 6 58 1 72 2 8 -9587 111 37 -88.16 1882 30 31 3 6 58 1 70 2 6 -9588 111 38 -82.08 1882 30 29 3 6 58 1 68 2 4 -9589 111 39 -76 1882 30 30 3 6 58 1 69 2 5 -9590 111 40 -69.92 1882 30 32 3 6 58 1 71 2 7 -9591 111 41 -63.84 1882 30 34 3 6 58 1 73 2 9 -9592 111 42 -57.76 1882 34 35 3 6 59 1 74 2 10 -9593 111 43 -51.68 1882 34 33 3 6 59 1 72 2 8 -9594 111 44 -45.6 1882 34 31 3 6 59 1 70 2 6 -9595 111 45 -39.52 1882 34 32 3 6 59 1 71 2 7 -9596 111 46 -33.44 1882 34 34 3 6 59 1 73 2 9 -9597 111 47 -27.36 1882 38 35 3 6 60 1 74 2 10 -9598 111 48 -21.28 1882 38 33 3 6 60 1 72 2 8 -9599 111 49 -15.2 1882 38 31 3 6 60 1 70 2 6 -9600 111 50 -9.12 1882 38 32 3 6 60 1 71 2 7 -9601 111 51 -3.04 1882 38 34 3 6 60 1 73 2 9 -9602 111 52 3.04 1882 42 33 3 6 61 1 72 2 8 -9603 111 53 9.12 1882 42 31 3 6 61 1 70 2 6 -9604 111 54 15.2 1882 42 32 3 6 61 1 71 2 7 -9605 111 55 21.28 1882 42 34 3 6 61 1 73 2 9 -9606 111 56 27.36 1882 42 36 3 6 61 1 75 2 11 -9607 111 57 33.44 1882 46 33 3 6 62 1 72 2 8 -9608 111 58 39.52 1882 46 31 3 6 62 1 70 2 6 -9609 111 59 45.6 1882 46 32 3 6 62 1 71 2 7 -9610 111 60 51.68 1882 46 34 3 6 62 1 73 2 9 -9611 111 61 57.76 1882 46 36 3 6 62 1 75 2 11 -9612 111 62 63.84 1882 50 33 3 6 63 1 72 2 8 -9613 111 63 69.92 1882 50 31 3 6 63 1 70 2 6 -9614 111 64 76 1882 50 29 3 6 63 1 68 2 4 -9615 111 65 82.08 1882 50 30 3 6 63 1 69 2 5 -9616 111 66 88.16 1882 50 32 3 6 63 1 71 2 7 -9617 111 67 94.24 1882 50 34 3 6 63 1 73 2 9 -9618 111 68 100.32 1882 54 33 3 6 64 1 72 2 8 -9619 111 69 106.4 1882 54 31 3 6 64 1 70 2 6 -9620 111 70 112.48 1882 54 32 3 6 64 1 71 2 7 -9621 111 71 118.56 1882 54 34 3 6 64 1 73 2 9 -9622 111 72 124.64 1882 54 36 3 6 64 1 75 2 11 -9623 111 73 130.72 1882 58 35 3 6 65 1 74 2 10 -9624 111 74 136.8 1882 58 33 3 6 65 1 72 2 8 -9625 111 75 142.88 1882 58 31 3 6 65 1 70 2 6 -9626 111 76 148.96 1882 58 32 3 6 65 1 71 2 7 -9627 111 77 155.04 1882 58 34 3 6 65 1 73 2 9 -9628 111 78 161.12 1882 62 33 3 6 66 1 72 2 8 -9629 111 79 167.2 1882 62 31 3 6 66 1 70 2 6 -9630 111 80 173.28 1882 62 29 3 6 66 1 68 2 4 -9631 111 81 179.36 1882 62 32 3 6 66 1 71 2 7 -9632 111 82 185.44 1882 62 34 3 6 66 1 73 2 9 -9633 111 83 191.52 1882 66 33 3 6 67 1 72 2 8 -9634 111 84 197.6 1882 66 31 3 6 67 1 70 2 6 -9635 111 85 203.68 1882 66 29 3 6 67 1 68 2 4 -9636 111 86 209.76 1882 66 32 3 6 67 1 71 2 7 -9637 111 87 215.84 1882 66 34 3 6 67 1 73 2 9 -9638 111 88 221.92 1882 66 36 3 6 67 1 75 2 11 -9639 111 89 228 1882 70 33 3 6 68 1 72 2 8 -9640 111 90 234.08 1882 70 31 3 6 68 1 70 2 6 -9641 111 91 240.16 1882 70 32 3 6 68 1 71 2 7 -9642 111 92 246.24 1882 70 34 3 6 68 1 73 2 9 -9643 111 93 252.32 1882 70 36 3 6 68 1 75 2 11 -9644 111 94 258.4 1882 74 33 3 6 69 1 72 2 8 -9645 111 95 264.48 1882 74 31 3 6 69 1 70 2 6 -9646 111 96 270.56 1882 74 32 3 6 69 1 71 2 7 -9647 111 97 276.64 1882 74 34 3 6 69 1 73 2 9 -9648 111 98 282.72 1882 74 36 3 6 69 1 75 2 11 -9649 111 99 288.8 1882 78 33 3 6 70 1 72 2 8 -9650 111 100 294.88 1882 78 31 3 6 70 1 70 2 6 -9651 111 101 300.96 1882 78 29 3 6 70 1 68 2 4 -9652 111 102 307.04 1882 78 32 3 6 70 1 71 2 7 -9653 111 103 313.12 1882 78 34 3 6 70 1 73 2 9 -9654 112 0 -319.2 1894 2 39 3 6 51 1 78 2 14 -9655 112 1 -313.12 1894 2 37 3 6 51 1 76 2 12 -9656 112 2 -307.04 1894 2 35 3 6 51 1 74 2 10 -9657 112 3 -300.96 1894 2 36 3 6 51 1 75 2 11 -9658 112 4 -294.88 1894 2 38 3 6 51 1 77 2 13 -9659 112 5 -288.8 1894 2 40 3 6 51 1 79 2 15 -9660 112 6 -282.72 1894 6 39 3 6 52 1 78 2 14 -9661 112 7 -276.64 1894 6 37 3 6 52 1 76 2 12 -9662 112 8 -270.56 1894 6 36 3 6 52 1 75 2 11 -9663 112 9 -264.48 1894 6 38 3 6 52 1 77 2 13 -9664 112 10 -258.4 1894 6 40 3 6 52 1 79 2 15 -9665 112 11 -252.32 1894 10 39 3 6 53 1 78 2 14 -9666 112 12 -246.24 1894 10 37 3 6 53 1 76 2 12 -9667 112 13 -240.16 1894 10 36 3 6 53 1 75 2 11 -9668 112 14 -234.08 1894 10 38 3 6 53 1 77 2 13 -9669 112 15 -228 1894 10 40 3 6 53 1 79 2 15 -9670 112 16 -221.92 1894 14 39 3 6 54 1 78 2 14 -9671 112 17 -215.84 1894 14 37 3 6 54 1 76 2 12 -9672 112 18 -209.76 1894 14 36 3 6 54 1 75 2 11 -9673 112 19 -203.68 1894 14 38 3 6 54 1 77 2 13 -9674 112 20 -197.6 1894 14 40 3 6 54 1 79 2 15 -9675 112 21 -191.52 1894 18 39 3 6 55 1 78 2 14 -9676 112 22 -185.44 1894 18 37 3 6 55 1 76 2 12 -9677 112 23 -179.36 1894 18 35 3 6 55 1 74 2 10 -9678 112 24 -173.28 1894 18 36 3 6 55 1 75 2 11 -9679 112 25 -167.2 1894 18 38 3 6 55 1 77 2 13 -9680 112 26 -161.12 1894 18 40 3 6 55 1 79 2 15 -9681 112 27 -155.04 1894 22 39 3 6 56 1 78 2 14 -9682 112 28 -148.96 1894 22 37 3 6 56 1 76 2 12 -9683 112 29 -142.88 1894 22 35 3 6 56 1 74 2 10 -9684 112 30 -136.8 1894 22 38 3 6 56 1 77 2 13 -9685 112 31 -130.72 1894 22 40 3 6 56 1 79 2 15 -9686 112 32 -124.64 1894 26 39 3 6 57 1 78 2 14 -9687 112 33 -118.56 1894 26 37 3 6 57 1 76 2 12 -9688 112 34 -112.48 1894 26 36 3 6 57 1 75 2 11 -9689 112 35 -106.4 1894 26 38 3 6 57 1 77 2 13 -9690 112 36 -100.32 1894 26 40 3 6 57 1 79 2 15 -9691 112 37 -94.24 1894 30 39 3 6 58 1 78 2 14 -9692 112 38 -88.16 1894 30 37 3 6 58 1 76 2 12 -9693 112 39 -82.08 1894 30 35 3 6 58 1 74 2 10 -9694 112 40 -76 1894 30 36 3 6 58 1 75 2 11 -9695 112 41 -69.92 1894 30 38 3 6 58 1 77 2 13 -9696 112 42 -63.84 1894 30 40 3 6 58 1 79 2 15 -9697 112 43 -57.76 1894 34 39 3 6 59 1 78 2 14 -9698 112 44 -51.68 1894 34 37 3 6 59 1 76 2 12 -9699 112 45 -45.6 1894 34 36 3 6 59 1 75 2 11 -9700 112 46 -39.52 1894 34 38 3 6 59 1 77 2 13 -9701 112 47 -33.44 1894 34 40 3 6 59 1 79 2 15 -9702 112 48 -27.36 1894 38 39 3 6 60 1 78 2 14 -9703 112 49 -21.28 1894 38 37 3 6 60 1 76 2 12 -9704 112 50 -15.2 1894 38 36 3 6 60 1 75 2 11 -9705 112 51 -9.12 1894 38 38 3 6 60 1 77 2 13 -9706 112 52 -3.04 1894 38 40 3 6 60 1 79 2 15 -9707 112 53 3.04 1894 42 39 3 6 61 1 78 2 14 -9708 112 54 9.12 1894 42 37 3 6 61 1 76 2 12 -9709 112 55 15.2 1894 42 35 3 6 61 1 74 2 10 -9710 112 56 21.28 1894 42 38 3 6 61 1 77 2 13 -9711 112 57 27.36 1894 42 40 3 6 61 1 79 2 15 -9712 112 58 33.44 1894 46 39 3 6 62 1 78 2 14 -9713 112 59 39.52 1894 46 37 3 6 62 1 76 2 12 -9714 112 60 45.6 1894 46 35 3 6 62 1 74 2 10 -9715 112 61 51.68 1894 46 38 3 6 62 1 77 2 13 -9716 112 62 57.76 1894 46 40 3 6 62 1 79 2 15 -9717 112 63 63.84 1894 50 39 3 6 63 1 78 2 14 -9718 112 64 69.92 1894 50 37 3 6 63 1 76 2 12 -9719 112 65 76 1894 50 35 3 6 63 1 74 2 10 -9720 112 66 82.08 1894 50 36 3 6 63 1 75 2 11 -9721 112 67 88.16 1894 50 38 3 6 63 1 77 2 13 -9722 112 68 94.24 1894 50 40 3 6 63 1 79 2 15 -9723 112 69 100.32 1894 54 39 3 6 64 1 78 2 14 -9724 112 70 106.4 1894 54 37 3 6 64 1 76 2 12 -9725 112 71 112.48 1894 54 35 3 6 64 1 74 2 10 -9726 112 72 118.56 1894 54 38 3 6 64 1 77 2 13 -9727 112 73 124.64 1894 54 40 3 6 64 1 79 2 15 -9728 112 74 130.72 1894 58 39 3 6 65 1 78 2 14 -9729 112 75 136.8 1894 58 37 3 6 65 1 76 2 12 -9730 112 76 142.88 1894 58 36 3 6 65 1 75 2 11 -9731 112 77 148.96 1894 58 38 3 6 65 1 77 2 13 -9732 112 78 155.04 1894 58 40 3 6 65 1 79 2 15 -9733 112 79 161.12 1894 62 39 3 6 66 1 78 2 14 -9734 112 80 167.2 1894 62 37 3 6 66 1 76 2 12 -9735 112 81 173.28 1894 62 35 3 6 66 1 74 2 10 -9736 112 82 179.36 1894 62 36 3 6 66 1 75 2 11 -9737 112 83 185.44 1894 62 38 3 6 66 1 77 2 13 -9738 112 84 191.52 1894 62 40 3 6 66 1 79 2 15 -9739 112 85 197.6 1894 66 39 3 6 67 1 78 2 14 -9740 112 86 203.68 1894 66 37 3 6 67 1 76 2 12 -9741 112 87 209.76 1894 66 35 3 6 67 1 74 2 10 -9742 112 88 215.84 1894 66 38 3 6 67 1 77 2 13 -9743 112 89 221.92 1894 66 40 3 6 67 1 79 2 15 -9744 112 90 228 1894 70 39 3 6 68 1 78 2 14 -9745 112 91 234.08 1894 70 37 3 6 68 1 76 2 12 -9746 112 92 240.16 1894 70 35 3 6 68 1 74 2 10 -9747 112 93 246.24 1894 70 38 3 6 68 1 77 2 13 -9748 112 94 252.32 1894 70 40 3 6 68 1 79 2 15 -9749 112 95 258.4 1894 74 39 3 6 69 1 78 2 14 -9750 112 96 264.48 1894 74 37 3 6 69 1 76 2 12 -9751 112 97 270.56 1894 74 35 3 6 69 1 74 2 10 -9752 112 98 276.64 1894 74 38 3 6 69 1 77 2 13 -9753 112 99 282.72 1894 74 40 3 6 69 1 79 2 15 -9754 112 100 288.8 1894 78 39 3 6 70 1 78 2 14 -9755 112 101 294.88 1894 78 37 3 6 70 1 76 2 12 -9756 112 102 300.96 1894 78 35 3 6 70 1 74 2 10 -9757 112 103 307.04 1894 78 36 3 6 70 1 75 2 11 -9758 112 104 313.12 1894 78 38 3 6 70 1 77 2 13 -9759 112 105 319.2 1894 78 40 3 6 70 1 79 2 15 -9760 113 0 -320.46 1906 3 5 3 7 51 2 84 2 20 -9761 113 1 -314.58 1906 3 3 3 7 51 2 82 2 18 -9762 113 2 -308.7 1906 3 1 3 7 51 2 80 2 16 -9763 113 3 -302.82 1906 3 2 3 7 51 2 81 2 17 -9764 113 4 -296.94 1906 3 4 3 7 51 2 83 2 19 -9765 113 5 -291.06 1906 3 6 3 7 51 2 85 2 21 -9766 113 6 -285.18 1906 7 3 3 7 52 2 82 2 18 -9767 113 7 -279.3 1906 7 1 3 7 52 2 80 2 16 -9768 113 8 -273.42 1906 7 2 3 7 52 2 81 2 17 -9769 113 9 -267.54 1906 7 4 3 7 52 2 83 2 19 -9770 113 10 -261.66 1906 7 6 3 7 52 2 85 2 21 -9771 113 11 -255.78 1906 11 5 3 7 53 2 84 2 20 -9772 113 12 -249.9 1906 11 3 3 7 53 2 82 2 18 -9773 113 13 -244.02 1906 11 1 3 7 53 2 80 2 16 -9774 113 14 -238.14 1906 11 2 3 7 53 2 81 2 17 -9775 113 15 -232.26 1906 11 4 3 7 53 2 83 2 19 -9776 113 16 -226.38 1906 11 6 3 7 53 2 85 2 21 -9777 113 17 -220.5 1906 15 3 3 7 54 2 82 2 18 -9778 113 18 -214.62 1906 15 1 3 7 54 2 80 2 16 -9779 113 19 -208.74 1906 15 2 3 7 54 2 81 2 17 -9780 113 20 -202.86 1906 15 4 3 7 54 2 83 2 19 -9781 113 21 -196.98 1906 15 6 3 7 54 2 85 2 21 -9782 113 22 -191.1 1906 19 5 3 7 55 2 84 2 20 -9783 113 23 -185.22 1906 19 3 3 7 55 2 82 2 18 -9784 113 24 -179.34 1906 19 1 3 7 55 2 80 2 16 -9785 113 25 -173.46 1906 19 2 3 7 55 2 81 2 17 -9786 113 26 -167.58 1906 19 4 3 7 55 2 83 2 19 -9787 113 27 -161.7 1906 19 6 3 7 55 2 85 2 21 -9788 113 28 -155.82 1906 23 5 3 7 56 2 84 2 20 -9789 113 29 -149.94 1906 23 3 3 7 56 2 82 2 18 -9790 113 30 -144.06 1906 23 1 3 7 56 2 80 2 16 -9791 113 31 -138.18 1906 23 2 3 7 56 2 81 2 17 -9792 113 32 -132.3 1906 23 4 3 7 56 2 83 2 19 -9793 113 33 -126.42 1906 27 5 3 7 57 2 84 2 20 -9794 113 34 -120.54 1906 27 3 3 7 57 2 82 2 18 -9795 113 35 -114.66 1906 27 1 3 7 57 2 80 2 16 -9796 113 36 -108.78 1906 27 2 3 7 57 2 81 2 17 -9797 113 37 -102.9 1906 27 4 3 7 57 2 83 2 19 -9798 113 38 -97.02 1906 27 6 3 7 57 2 85 2 21 -9799 113 39 -91.14 1906 31 5 3 7 58 2 84 2 20 -9800 113 40 -85.26 1906 31 3 3 7 58 2 82 2 18 -9801 113 41 -79.38 1906 31 1 3 7 58 2 80 2 16 -9802 113 42 -73.5 1906 31 2 3 7 58 2 81 2 17 -9803 113 43 -67.62 1906 31 4 3 7 58 2 83 2 19 -9804 113 44 -61.74 1906 35 5 3 7 59 2 84 2 20 -9805 113 45 -55.86 1906 35 3 3 7 59 2 82 2 18 -9806 113 46 -49.98 1906 35 1 3 7 59 2 80 2 16 -9807 113 47 -44.1 1906 35 2 3 7 59 2 81 2 17 -9808 113 48 -38.22 1906 35 4 3 7 59 2 83 2 19 -9809 113 49 -32.34 1906 35 6 3 7 59 2 85 2 21 -9810 113 50 -26.46 1906 39 3 3 7 60 2 82 2 18 -9811 113 51 -20.58 1906 39 1 3 7 60 2 80 2 16 -9812 113 52 -14.7 1906 39 2 3 7 60 2 81 2 17 -9813 113 53 -8.82 1906 39 4 3 7 60 2 83 2 19 -9814 113 54 -2.94 1906 39 6 3 7 60 2 85 2 21 -9815 113 55 2.94 1906 43 5 3 7 61 2 84 2 20 -9816 113 56 8.82 1906 43 3 3 7 61 2 82 2 18 -9817 113 57 14.7 1906 43 1 3 7 61 2 80 2 16 -9818 113 58 20.58 1906 43 2 3 7 61 2 81 2 17 -9819 113 59 26.46 1906 43 4 3 7 61 2 83 2 19 -9820 113 60 32.34 1906 47 5 3 7 62 2 84 2 20 -9821 113 61 38.22 1906 47 3 3 7 62 2 82 2 18 -9822 113 62 44.1 1906 47 1 3 7 62 2 80 2 16 -9823 113 63 49.98 1906 47 2 3 7 62 2 81 2 17 -9824 113 64 55.86 1906 47 4 3 7 62 2 83 2 19 -9825 113 65 61.74 1906 47 6 3 7 62 2 85 2 21 -9826 113 66 67.62 1906 51 3 3 7 63 2 82 2 18 -9827 113 67 73.5 1906 51 1 3 7 63 2 80 2 16 -9828 113 68 79.38 1906 51 2 3 7 63 2 81 2 17 -9829 113 69 85.26 1906 51 4 3 7 63 2 83 2 19 -9830 113 70 91.14 1906 51 6 3 7 63 2 85 2 21 -9831 113 71 97.02 1906 55 5 3 7 64 2 84 2 20 -9832 113 72 102.9 1906 55 3 3 7 64 2 82 2 18 -9833 113 73 108.78 1906 55 1 3 7 64 2 80 2 16 -9834 113 74 114.66 1906 55 2 3 7 64 2 81 2 17 -9835 113 75 120.54 1906 55 4 3 7 64 2 83 2 19 -9836 113 76 126.42 1906 55 6 3 7 64 2 85 2 21 -9837 113 77 132.3 1906 59 3 3 7 65 2 82 2 18 -9838 113 78 138.18 1906 59 1 3 7 65 2 80 2 16 -9839 113 79 144.06 1906 59 2 3 7 65 2 81 2 17 -9840 113 80 149.94 1906 59 4 3 7 65 2 83 2 19 -9841 113 81 155.82 1906 59 6 3 7 65 2 85 2 21 -9842 113 82 161.7 1906 63 5 3 7 66 2 84 2 20 -9843 113 83 167.58 1906 63 3 3 7 66 2 82 2 18 -9844 113 84 173.46 1906 63 1 3 7 66 2 80 2 16 -9845 113 85 179.34 1906 63 2 3 7 66 2 81 2 17 -9846 113 86 185.22 1906 63 4 3 7 66 2 83 2 19 -9847 113 87 191.1 1906 63 6 3 7 66 2 85 2 21 -9848 113 88 196.98 1906 67 5 3 7 67 2 84 2 20 -9849 113 89 202.86 1906 67 3 3 7 67 2 82 2 18 -9850 113 90 208.74 1906 67 1 3 7 67 2 80 2 16 -9851 113 91 214.62 1906 67 2 3 7 67 2 81 2 17 -9852 113 92 220.5 1906 67 4 3 7 67 2 83 2 19 -9853 113 93 226.38 1906 71 5 3 7 68 2 84 2 20 -9854 113 94 232.26 1906 71 3 3 7 68 2 82 2 18 -9855 113 95 238.14 1906 71 1 3 7 68 2 80 2 16 -9856 113 96 244.02 1906 71 2 3 7 68 2 81 2 17 -9857 113 97 249.9 1906 71 4 3 7 68 2 83 2 19 -9858 113 98 255.78 1906 71 6 3 7 68 2 85 2 21 -9859 113 99 261.66 1906 75 5 3 7 69 2 84 2 20 -9860 113 100 267.54 1906 75 3 3 7 69 2 82 2 18 -9861 113 101 273.42 1906 75 1 3 7 69 2 80 2 16 -9862 113 102 279.3 1906 75 2 3 7 69 2 81 2 17 -9863 113 103 285.18 1906 75 4 3 7 69 2 83 2 19 -9864 113 104 291.06 1906 79 5 3 7 70 2 84 2 20 -9865 113 105 296.94 1906 79 3 3 7 70 2 82 2 18 -9866 113 106 302.82 1906 79 1 3 7 70 2 80 2 16 -9867 113 107 308.7 1906 79 2 3 7 70 2 81 2 17 -9868 113 108 314.58 1906 79 4 3 7 70 2 83 2 19 -9869 113 109 320.46 1906 79 6 3 7 70 2 85 2 21 -9870 114 0 -320.46 1918 3 9 3 7 51 2 88 2 24 -9871 114 1 -314.58 1918 3 7 3 7 51 2 86 2 22 -9872 114 2 -308.7 1918 3 8 3 7 51 2 87 2 23 -9873 114 3 -302.82 1918 3 10 3 7 51 2 89 2 25 -9874 114 4 -296.94 1918 3 12 3 7 51 2 91 2 27 -9875 114 5 -291.06 1918 7 9 3 7 52 2 88 2 24 -9876 114 6 -285.18 1918 7 7 3 7 52 2 86 2 22 -9877 114 7 -279.3 1918 7 5 3 7 52 2 84 2 20 -9878 114 8 -273.42 1918 7 8 3 7 52 2 87 2 23 -9879 114 9 -267.54 1918 7 10 3 7 52 2 89 2 25 -9880 114 10 -261.66 1918 7 12 3 7 52 2 91 2 27 -9881 114 11 -255.78 1918 11 11 3 7 53 2 90 2 26 -9882 114 12 -249.9 1918 11 9 3 7 53 2 88 2 24 -9883 114 13 -244.02 1918 11 7 3 7 53 2 86 2 22 -9884 114 14 -238.14 1918 11 8 3 7 53 2 87 2 23 -9885 114 15 -232.26 1918 11 10 3 7 53 2 89 2 25 -9886 114 16 -226.38 1918 15 9 3 7 54 2 88 2 24 -9887 114 17 -220.5 1918 15 7 3 7 54 2 86 2 22 -9888 114 18 -214.62 1918 15 5 3 7 54 2 84 2 20 -9889 114 19 -208.74 1918 15 8 3 7 54 2 87 2 23 -9890 114 20 -202.86 1918 15 10 3 7 54 2 89 2 25 -9891 114 21 -196.98 1918 15 12 3 7 54 2 91 2 27 -9892 114 22 -191.1 1918 19 11 3 7 55 2 90 2 26 -9893 114 23 -185.22 1918 19 9 3 7 55 2 88 2 24 -9894 114 24 -179.34 1918 19 7 3 7 55 2 86 2 22 -9895 114 25 -173.46 1918 19 8 3 7 55 2 87 2 23 -9896 114 26 -167.58 1918 19 10 3 7 55 2 89 2 25 -9897 114 27 -161.7 1918 23 11 3 7 56 2 90 2 26 -9898 114 28 -155.82 1918 23 9 3 7 56 2 88 2 24 -9899 114 29 -149.94 1918 23 7 3 7 56 2 86 2 22 -9900 114 30 -144.06 1918 23 6 3 7 56 2 85 2 21 -9901 114 31 -138.18 1918 23 8 3 7 56 2 87 2 23 -9902 114 32 -132.3 1918 23 10 3 7 56 2 89 2 25 -9903 114 33 -126.42 1918 27 11 3 7 57 2 90 2 26 -9904 114 34 -120.54 1918 27 9 3 7 57 2 88 2 24 -9905 114 35 -114.66 1918 27 7 3 7 57 2 86 2 22 -9906 114 36 -108.78 1918 27 8 3 7 57 2 87 2 23 -9907 114 37 -102.9 1918 27 10 3 7 57 2 89 2 25 -9908 114 38 -97.02 1918 27 12 3 7 57 2 91 2 27 -9909 114 39 -91.14 1918 31 9 3 7 58 2 88 2 24 -9910 114 40 -85.26 1918 31 7 3 7 58 2 86 2 22 -9911 114 41 -79.38 1918 31 6 3 7 58 2 85 2 21 -9912 114 42 -73.5 1918 31 8 3 7 58 2 87 2 23 -9913 114 43 -67.62 1918 31 10 3 7 58 2 89 2 25 -9914 114 44 -61.74 1918 35 11 3 7 59 2 90 2 26 -9915 114 45 -55.86 1918 35 9 3 7 59 2 88 2 24 -9916 114 46 -49.98 1918 35 7 3 7 59 2 86 2 22 -9917 114 47 -44.1 1918 35 8 3 7 59 2 87 2 23 -9918 114 48 -38.22 1918 35 10 3 7 59 2 89 2 25 -9919 114 49 -32.34 1918 35 12 3 7 59 2 91 2 27 -9920 114 50 -26.46 1918 39 9 3 7 60 2 88 2 24 -9921 114 51 -20.58 1918 39 7 3 7 60 2 86 2 22 -9922 114 52 -14.7 1918 39 5 3 7 60 2 84 2 20 -9923 114 53 -8.82 1918 39 8 3 7 60 2 87 2 23 -9924 114 54 -2.94 1918 39 10 3 7 60 2 89 2 25 -9925 114 55 2.94 1918 43 9 3 7 61 2 88 2 24 -9926 114 56 8.82 1918 43 7 3 7 61 2 86 2 22 -9927 114 57 14.7 1918 43 6 3 7 61 2 85 2 21 -9928 114 58 20.58 1918 43 8 3 7 61 2 87 2 23 -9929 114 59 26.46 1918 43 10 3 7 61 2 89 2 25 -9930 114 60 32.34 1918 47 11 3 7 62 2 90 2 26 -9931 114 61 38.22 1918 47 9 3 7 62 2 88 2 24 -9932 114 62 44.1 1918 47 7 3 7 62 2 86 2 22 -9933 114 63 49.98 1918 47 8 3 7 62 2 87 2 23 -9934 114 64 55.86 1918 47 10 3 7 62 2 89 2 25 -9935 114 65 61.74 1918 47 12 3 7 62 2 91 2 27 -9936 114 66 67.62 1918 51 9 3 7 63 2 88 2 24 -9937 114 67 73.5 1918 51 7 3 7 63 2 86 2 22 -9938 114 68 79.38 1918 51 5 3 7 63 2 84 2 20 -9939 114 69 85.26 1918 51 8 3 7 63 2 87 2 23 -9940 114 70 91.14 1918 51 10 3 7 63 2 89 2 25 -9941 114 71 97.02 1918 55 11 3 7 64 2 90 2 26 -9942 114 72 102.9 1918 55 9 3 7 64 2 88 2 24 -9943 114 73 108.78 1918 55 7 3 7 64 2 86 2 22 -9944 114 74 114.66 1918 55 8 3 7 64 2 87 2 23 -9945 114 75 120.54 1918 55 10 3 7 64 2 89 2 25 -9946 114 76 126.42 1918 55 12 3 7 64 2 91 2 27 -9947 114 77 132.3 1918 59 9 3 7 65 2 88 2 24 -9948 114 78 138.18 1918 59 7 3 7 65 2 86 2 22 -9949 114 79 144.06 1918 59 5 3 7 65 2 84 2 20 -9950 114 80 149.94 1918 59 8 3 7 65 2 87 2 23 -9951 114 81 155.82 1918 59 10 3 7 65 2 89 2 25 -9952 114 82 161.7 1918 59 12 3 7 65 2 91 2 27 -9953 114 83 167.58 1918 63 9 3 7 66 2 88 2 24 -9954 114 84 173.46 1918 63 7 3 7 66 2 86 2 22 -9955 114 85 179.34 1918 63 8 3 7 66 2 87 2 23 -9956 114 86 185.22 1918 63 10 3 7 66 2 89 2 25 -9957 114 87 191.1 1918 63 12 3 7 66 2 91 2 27 -9958 114 88 196.98 1918 67 11 3 7 67 2 90 2 26 -9959 114 89 202.86 1918 67 9 3 7 67 2 88 2 24 -9960 114 90 208.74 1918 67 7 3 7 67 2 86 2 22 -9961 114 91 214.62 1918 67 6 3 7 67 2 85 2 21 -9962 114 92 220.5 1918 67 8 3 7 67 2 87 2 23 -9963 114 93 226.38 1918 67 10 3 7 67 2 89 2 25 -9964 114 94 232.26 1918 71 9 3 7 68 2 88 2 24 -9965 114 95 238.14 1918 71 7 3 7 68 2 86 2 22 -9966 114 96 244.02 1918 71 8 3 7 68 2 87 2 23 -9967 114 97 249.9 1918 71 10 3 7 68 2 89 2 25 -9968 114 98 255.78 1918 71 12 3 7 68 2 91 2 27 -9969 114 99 261.66 1918 75 11 3 7 69 2 90 2 26 -9970 114 100 267.54 1918 75 9 3 7 69 2 88 2 24 -9971 114 101 273.42 1918 75 7 3 7 69 2 86 2 22 -9972 114 102 279.3 1918 75 6 3 7 69 2 85 2 21 -9973 114 103 285.18 1918 75 8 3 7 69 2 87 2 23 -9974 114 104 291.06 1918 75 10 3 7 69 2 89 2 25 -9975 114 105 296.94 1918 79 11 3 7 70 2 90 2 26 -9976 114 106 302.82 1918 79 9 3 7 70 2 88 2 24 -9977 114 107 308.7 1918 79 7 3 7 70 2 86 2 22 -9978 114 108 314.58 1918 79 8 3 7 70 2 87 2 23 -9979 114 109 320.46 1918 79 10 3 7 70 2 89 2 25 -9980 115 0 -326.34 1930 3 15 3 7 51 2 94 2 30 -9981 115 1 -320.46 1930 3 13 3 7 51 2 92 2 28 -9982 115 2 -314.58 1930 3 11 3 7 51 2 90 2 26 -9983 115 3 -308.7 1930 3 14 3 7 51 2 93 2 29 -9984 115 4 -302.82 1930 3 16 3 7 51 2 95 2 31 -9985 115 5 -296.94 1930 3 18 3 7 51 2 97 3 1 -9986 115 6 -291.06 1930 7 15 3 7 52 2 94 2 30 -9987 115 7 -285.18 1930 7 13 3 7 52 2 92 2 28 -9988 115 8 -279.3 1930 7 11 3 7 52 2 90 2 26 -9989 115 9 -273.42 1930 7 14 3 7 52 2 93 2 29 -9990 115 10 -267.54 1930 7 16 3 7 52 2 95 2 31 -9991 115 11 -261.66 1930 7 18 3 7 52 2 97 3 1 -9992 115 12 -255.78 1930 11 15 3 7 53 2 94 2 30 -9993 115 13 -249.9 1930 11 13 3 7 53 2 92 2 28 -9994 115 14 -244.02 1930 11 12 3 7 53 2 91 2 27 -9995 115 15 -238.14 1930 11 14 3 7 53 2 93 2 29 -9996 115 16 -232.26 1930 11 16 3 7 53 2 95 2 31 -9997 115 17 -226.38 1930 15 15 3 7 54 2 94 2 30 -9998 115 18 -220.5 1930 15 13 3 7 54 2 92 2 28 -9999 115 19 -214.62 1930 15 11 3 7 54 2 90 2 26 -10000 115 20 -208.74 1930 15 14 3 7 54 2 93 2 29 -10001 115 21 -202.86 1930 15 16 3 7 54 2 95 2 31 -10002 115 22 -196.98 1930 15 18 3 7 54 2 97 3 1 -10003 115 23 -191.1 1930 19 15 3 7 55 2 94 2 30 -10004 115 24 -185.22 1930 19 13 3 7 55 2 92 2 28 -10005 115 25 -179.34 1930 19 12 3 7 55 2 91 2 27 -10006 115 26 -173.46 1930 19 14 3 7 55 2 93 2 29 -10007 115 27 -167.58 1930 19 16 3 7 55 2 95 2 31 -10008 115 28 -161.7 1930 23 17 3 7 56 2 96 3 0 -10009 115 29 -155.82 1930 23 15 3 7 56 2 94 2 30 -10010 115 30 -149.94 1930 23 13 3 7 56 2 92 2 28 -10011 115 31 -144.06 1930 23 12 3 7 56 2 91 2 27 -10012 115 32 -138.18 1930 23 14 3 7 56 2 93 2 29 -10013 115 33 -132.3 1930 23 16 3 7 56 2 95 2 31 -10014 115 34 -126.42 1930 27 17 3 7 57 2 96 3 0 -10015 115 35 -120.54 1930 27 15 3 7 57 2 94 2 30 -10016 115 36 -114.66 1930 27 13 3 7 57 2 92 2 28 -10017 115 37 -108.78 1930 27 14 3 7 57 2 93 2 29 -10018 115 38 -102.9 1930 27 16 3 7 57 2 95 2 31 -10019 115 39 -97.02 1930 31 15 3 7 58 2 94 2 30 -10020 115 40 -91.14 1930 31 13 3 7 58 2 92 2 28 -10021 115 41 -85.26 1930 31 11 3 7 58 2 90 2 26 -10022 115 42 -79.38 1930 31 12 3 7 58 2 91 2 27 -10023 115 43 -73.5 1930 31 14 3 7 58 2 93 2 29 -10024 115 44 -67.62 1930 31 16 3 7 58 2 95 2 31 -10025 115 45 -61.74 1930 35 17 3 7 59 2 96 3 0 -10026 115 46 -55.86 1930 35 15 3 7 59 2 94 2 30 -10027 115 47 -49.98 1930 35 13 3 7 59 2 92 2 28 -10028 115 48 -44.1 1930 35 14 3 7 59 2 93 2 29 -10029 115 49 -38.22 1930 35 16 3 7 59 2 95 2 31 -10030 115 50 -32.34 1930 35 18 3 7 59 2 97 3 1 -10031 115 51 -26.46 1930 39 13 3 7 60 2 92 2 28 -10032 115 52 -20.58 1930 39 11 3 7 60 2 90 2 26 -10033 115 53 -14.7 1930 39 12 3 7 60 2 91 2 27 -10034 115 54 -8.82 1930 39 14 3 7 60 2 93 2 29 -10035 115 55 -2.94 1930 39 16 3 7 60 2 95 2 31 -10036 115 56 2.94 1930 43 15 3 7 61 2 94 2 30 -10037 115 57 8.82 1930 43 13 3 7 61 2 92 2 28 -10038 115 58 14.7 1930 43 11 3 7 61 2 90 2 26 -10039 115 59 20.58 1930 43 12 3 7 61 2 91 2 27 -10040 115 60 26.46 1930 43 14 3 7 61 2 93 2 29 -10041 115 61 32.34 1930 47 17 3 7 62 2 96 3 0 -10042 115 62 38.22 1930 47 15 3 7 62 2 94 2 30 -10043 115 63 44.1 1930 47 13 3 7 62 2 92 2 28 -10044 115 64 49.98 1930 47 14 3 7 62 2 93 2 29 -10045 115 65 55.86 1930 47 16 3 7 62 2 95 2 31 -10046 115 66 61.74 1930 47 18 3 7 62 2 97 3 1 -10047 115 67 67.62 1930 51 15 3 7 63 2 94 2 30 -10048 115 68 73.5 1930 51 13 3 7 63 2 92 2 28 -10049 115 69 79.38 1930 51 11 3 7 63 2 90 2 26 -10050 115 70 85.26 1930 51 12 3 7 63 2 91 2 27 -10051 115 71 91.14 1930 51 14 3 7 63 2 93 2 29 -10052 115 72 97.02 1930 51 16 3 7 63 2 95 2 31 -10053 115 73 102.9 1930 55 15 3 7 64 2 94 2 30 -10054 115 74 108.78 1930 55 13 3 7 64 2 92 2 28 -10055 115 75 114.66 1930 55 14 3 7 64 2 93 2 29 -10056 115 76 120.54 1930 55 16 3 7 64 2 95 2 31 -10057 115 77 126.42 1930 55 18 3 7 64 2 97 3 1 -10058 115 78 132.3 1930 59 15 3 7 65 2 94 2 30 -10059 115 79 138.18 1930 59 13 3 7 65 2 92 2 28 -10060 115 80 144.06 1930 59 11 3 7 65 2 90 2 26 -10061 115 81 149.94 1930 59 14 3 7 65 2 93 2 29 -10062 115 82 155.82 1930 59 16 3 7 65 2 95 2 31 -10063 115 83 161.7 1930 59 18 3 7 65 2 97 3 1 -10064 115 84 167.58 1930 63 15 3 7 66 2 94 2 30 -10065 115 85 173.46 1930 63 13 3 7 66 2 92 2 28 -10066 115 86 179.34 1930 63 11 3 7 66 2 90 2 26 -10067 115 87 185.22 1930 63 14 3 7 66 2 93 2 29 -10068 115 88 191.1 1930 63 16 3 7 66 2 95 2 31 -10069 115 89 196.98 1930 67 17 3 7 67 2 96 3 0 -10070 115 90 202.86 1930 67 15 3 7 67 2 94 2 30 -10071 115 91 208.74 1930 67 13 3 7 67 2 92 2 28 -10072 115 92 214.62 1930 67 12 3 7 67 2 91 2 27 -10073 115 93 220.5 1930 67 14 3 7 67 2 93 2 29 -10074 115 94 226.38 1930 67 16 3 7 67 2 95 2 31 -10075 115 95 232.26 1930 71 15 3 7 68 2 94 2 30 -10076 115 96 238.14 1930 71 13 3 7 68 2 92 2 28 -10077 115 97 244.02 1930 71 11 3 7 68 2 90 2 26 -10078 115 98 249.9 1930 71 14 3 7 68 2 93 2 29 -10079 115 99 255.78 1930 71 16 3 7 68 2 95 2 31 -10080 115 100 261.66 1930 75 17 3 7 69 2 96 3 0 -10081 115 101 267.54 1930 75 15 3 7 69 2 94 2 30 -10082 115 102 273.42 1930 75 13 3 7 69 2 92 2 28 -10083 115 103 279.3 1930 75 12 3 7 69 2 91 2 27 -10084 115 104 285.18 1930 75 14 3 7 69 2 93 2 29 -10085 115 105 291.06 1930 75 16 3 7 69 2 95 2 31 -10086 115 106 296.94 1930 79 17 3 7 70 2 96 3 0 -10087 115 107 302.82 1930 79 15 3 7 70 2 94 2 30 -10088 115 108 308.7 1930 79 13 3 7 70 2 92 2 28 -10089 115 109 314.58 1930 79 12 3 7 70 2 91 2 27 -10090 115 110 320.46 1930 79 14 3 7 70 2 93 2 29 -10091 115 111 326.34 1930 79 16 3 7 70 2 95 2 31 -10092 116 0 -326.34 1942 3 21 3 7 51 2 100 3 4 -10093 116 1 -320.46 1942 3 19 3 7 51 2 98 3 2 -10094 116 2 -314.58 1942 3 17 3 7 51 2 96 3 0 -10095 116 3 -308.7 1942 3 20 3 7 51 2 99 3 3 -10096 116 4 -302.82 1942 3 22 3 7 51 2 101 3 5 -10097 116 5 -296.94 1942 3 24 3 7 51 2 103 3 7 -10098 116 6 -291.06 1942 7 21 3 7 52 2 100 3 4 -10099 116 7 -285.18 1942 7 19 3 7 52 2 98 3 2 -10100 116 8 -279.3 1942 7 17 3 7 52 2 96 3 0 -10101 116 9 -273.42 1942 7 20 3 7 52 2 99 3 3 -10102 116 10 -267.54 1942 7 22 3 7 52 2 101 3 5 -10103 116 11 -261.66 1942 11 21 3 7 53 2 100 3 4 -10104 116 12 -255.78 1942 11 19 3 7 53 2 98 3 2 -10105 116 13 -249.9 1942 11 17 3 7 53 2 96 3 0 -10106 116 14 -244.02 1942 11 18 3 7 53 2 97 3 1 -10107 116 15 -238.14 1942 11 20 3 7 53 2 99 3 3 -10108 116 16 -232.26 1942 11 22 3 7 53 2 101 3 5 -10109 116 17 -226.38 1942 15 21 3 7 54 2 100 3 4 -10110 116 18 -220.5 1942 15 19 3 7 54 2 98 3 2 -10111 116 19 -214.62 1942 15 17 3 7 54 2 96 3 0 -10112 116 20 -208.74 1942 15 20 3 7 54 2 99 3 3 -10113 116 21 -202.86 1942 15 22 3 7 54 2 101 3 5 -10114 116 22 -196.98 1942 19 21 3 7 55 2 100 3 4 -10115 116 23 -191.1 1942 19 19 3 7 55 2 98 3 2 -10116 116 24 -185.22 1942 19 17 3 7 55 2 96 3 0 -10117 116 25 -179.34 1942 19 18 3 7 55 2 97 3 1 -10118 116 26 -173.46 1942 19 20 3 7 55 2 99 3 3 -10119 116 27 -167.58 1942 19 22 3 7 55 2 101 3 5 -10120 116 28 -161.7 1942 23 23 3 7 56 2 102 3 6 -10121 116 29 -155.82 1942 23 21 3 7 56 2 100 3 4 -10122 116 30 -149.94 1942 23 19 3 7 56 2 98 3 2 -10123 116 31 -144.06 1942 23 18 3 7 56 2 97 3 1 -10124 116 32 -138.18 1942 23 20 3 7 56 2 99 3 3 -10125 116 33 -132.3 1942 23 22 3 7 56 2 101 3 5 -10126 116 34 -126.42 1942 27 21 3 7 57 2 100 3 4 -10127 116 35 -120.54 1942 27 19 3 7 57 2 98 3 2 -10128 116 36 -114.66 1942 27 18 3 7 57 2 97 3 1 -10129 116 37 -108.78 1942 27 20 3 7 57 2 99 3 3 -10130 116 38 -102.9 1942 27 22 3 7 57 2 101 3 5 -10131 116 39 -97.02 1942 31 21 3 7 58 2 100 3 4 -10132 116 40 -91.14 1942 31 19 3 7 58 2 98 3 2 -10133 116 41 -85.26 1942 31 17 3 7 58 2 96 3 0 -10134 116 42 -79.38 1942 31 18 3 7 58 2 97 3 1 -10135 116 43 -73.5 1942 31 20 3 7 58 2 99 3 3 -10136 116 44 -67.62 1942 31 22 3 7 58 2 101 3 5 -10137 116 45 -61.74 1942 35 23 3 7 59 2 102 3 6 -10138 116 46 -55.86 1942 35 21 3 7 59 2 100 3 4 -10139 116 47 -49.98 1942 35 19 3 7 59 2 98 3 2 -10140 116 48 -44.1 1942 35 20 3 7 59 2 99 3 3 -10141 116 49 -38.22 1942 35 22 3 7 59 2 101 3 5 -10142 116 50 -32.34 1942 35 24 3 7 59 2 103 3 7 -10143 116 51 -26.46 1942 39 19 3 7 60 2 98 3 2 -10144 116 52 -20.58 1942 39 17 3 7 60 2 96 3 0 -10145 116 53 -14.7 1942 39 15 3 7 60 2 94 2 30 -10146 116 54 -8.82 1942 39 18 3 7 60 2 97 3 1 -10147 116 55 -2.94 1942 39 20 3 7 60 2 99 3 3 -10148 116 56 2.94 1942 43 19 3 7 61 2 98 3 2 -10149 116 57 8.82 1942 43 17 3 7 61 2 96 3 0 -10150 116 58 14.7 1942 43 16 3 7 61 2 95 2 31 -10151 116 59 20.58 1942 43 18 3 7 61 2 97 3 1 -10152 116 60 26.46 1942 43 20 3 7 61 2 99 3 3 -10153 116 61 32.34 1942 47 23 3 7 62 2 102 3 6 -10154 116 62 38.22 1942 47 21 3 7 62 2 100 3 4 -10155 116 63 44.1 1942 47 19 3 7 62 2 98 3 2 -10156 116 64 49.98 1942 47 20 3 7 62 2 99 3 3 -10157 116 65 55.86 1942 47 22 3 7 62 2 101 3 5 -10158 116 66 61.74 1942 47 24 3 7 62 2 103 3 7 -10159 116 67 67.62 1942 51 21 3 7 63 2 100 3 4 -10160 116 68 73.5 1942 51 19 3 7 63 2 98 3 2 -10161 116 69 79.38 1942 51 17 3 7 63 2 96 3 0 -10162 116 70 85.26 1942 51 18 3 7 63 2 97 3 1 -10163 116 71 91.14 1942 51 20 3 7 63 2 99 3 3 -10164 116 72 97.02 1942 51 22 3 7 63 2 101 3 5 -10165 116 73 102.9 1942 55 21 3 7 64 2 100 3 4 -10166 116 74 108.78 1942 55 19 3 7 64 2 98 3 2 -10167 116 75 114.66 1942 55 17 3 7 64 2 96 3 0 -10168 116 76 120.54 1942 55 20 3 7 64 2 99 3 3 -10169 116 77 126.42 1942 55 22 3 7 64 2 101 3 5 -10170 116 78 132.3 1942 59 21 3 7 65 2 100 3 4 -10171 116 79 138.18 1942 59 19 3 7 65 2 98 3 2 -10172 116 80 144.06 1942 59 17 3 7 65 2 96 3 0 -10173 116 81 149.94 1942 59 20 3 7 65 2 99 3 3 -10174 116 82 155.82 1942 59 22 3 7 65 2 101 3 5 -10175 116 83 161.7 1942 59 24 3 7 65 2 103 3 7 -10176 116 84 167.58 1942 63 21 3 7 66 2 100 3 4 -10177 116 85 173.46 1942 63 19 3 7 66 2 98 3 2 -10178 116 86 179.34 1942 63 17 3 7 66 2 96 3 0 -10179 116 87 185.22 1942 63 18 3 7 66 2 97 3 1 -10180 116 88 191.1 1942 63 20 3 7 66 2 99 3 3 -10181 116 89 196.98 1942 63 22 3 7 66 2 101 3 5 -10182 116 90 202.86 1942 67 21 3 7 67 2 100 3 4 -10183 116 91 208.74 1942 67 19 3 7 67 2 98 3 2 -10184 116 92 214.62 1942 67 18 3 7 67 2 97 3 1 -10185 116 93 220.5 1942 67 20 3 7 67 2 99 3 3 -10186 116 94 226.38 1942 67 22 3 7 67 2 101 3 5 -10187 116 95 232.26 1942 71 21 3 7 68 2 100 3 4 -10188 116 96 238.14 1942 71 19 3 7 68 2 98 3 2 -10189 116 97 244.02 1942 71 17 3 7 68 2 96 3 0 -10190 116 98 249.9 1942 71 18 3 7 68 2 97 3 1 -10191 116 99 255.78 1942 71 20 3 7 68 2 99 3 3 -10192 116 100 261.66 1942 71 22 3 7 68 2 101 3 5 -10193 116 101 267.54 1942 75 21 3 7 69 2 100 3 4 -10194 116 102 273.42 1942 75 19 3 7 69 2 98 3 2 -10195 116 103 279.3 1942 75 18 3 7 69 2 97 3 1 -10196 116 104 285.18 1942 75 20 3 7 69 2 99 3 3 -10197 116 105 291.06 1942 75 22 3 7 69 2 101 3 5 -10198 116 106 296.94 1942 79 23 3 7 70 2 102 3 6 -10199 116 107 302.82 1942 79 21 3 7 70 2 100 3 4 -10200 116 108 308.7 1942 79 19 3 7 70 2 98 3 2 -10201 116 109 314.58 1942 79 18 3 7 70 2 97 3 1 -10202 116 110 320.46 1942 79 20 3 7 70 2 99 3 3 -10203 116 111 326.34 1942 79 22 3 7 70 2 101 3 5 -10204 117 0 -326.34 1954 3 27 3 7 51 2 106 3 10 -10205 117 1 -320.46 1954 3 25 3 7 51 2 104 3 8 -10206 117 2 -314.58 1954 3 23 3 7 51 2 102 3 6 -10207 117 3 -308.7 1954 3 26 3 7 51 2 105 3 9 -10208 117 4 -302.82 1954 3 28 3 7 51 2 107 3 11 -10209 117 5 -296.94 1954 7 27 3 7 52 2 106 3 10 -10210 117 6 -291.06 1954 7 25 3 7 52 2 104 3 8 -10211 117 7 -285.18 1954 7 23 3 7 52 2 102 3 6 -10212 117 8 -279.3 1954 7 24 3 7 52 2 103 3 7 -10213 117 9 -273.42 1954 7 26 3 7 52 2 105 3 9 -10214 117 10 -267.54 1954 7 28 3 7 52 2 107 3 11 -10215 117 11 -261.66 1954 11 27 3 7 53 2 106 3 10 -10216 117 12 -255.78 1954 11 25 3 7 53 2 104 3 8 -10217 117 13 -249.9 1954 11 23 3 7 53 2 102 3 6 -10218 117 14 -244.02 1954 11 24 3 7 53 2 103 3 7 -10219 117 15 -238.14 1954 11 26 3 7 53 2 105 3 9 -10220 117 16 -232.26 1954 11 28 3 7 53 2 107 3 11 -10221 117 17 -226.38 1954 15 25 3 7 54 2 104 3 8 -10222 117 18 -220.5 1954 15 23 3 7 54 2 102 3 6 -10223 117 19 -214.62 1954 15 24 3 7 54 2 103 3 7 -10224 117 20 -208.74 1954 15 26 3 7 54 2 105 3 9 -10225 117 21 -202.86 1954 15 28 3 7 54 2 107 3 11 -10226 117 22 -196.98 1954 19 27 3 7 55 2 106 3 10 -10227 117 23 -191.1 1954 19 25 3 7 55 2 104 3 8 -10228 117 24 -185.22 1954 19 23 3 7 55 2 102 3 6 -10229 117 25 -179.34 1954 19 24 3 7 55 2 103 3 7 -10230 117 26 -173.46 1954 19 26 3 7 55 2 105 3 9 -10231 117 27 -167.58 1954 19 28 3 7 55 2 107 3 11 -10232 117 28 -161.7 1954 23 29 3 7 56 2 108 3 12 -10233 117 29 -155.82 1954 23 27 3 7 56 2 106 3 10 -10234 117 30 -149.94 1954 23 25 3 7 56 2 104 3 8 -10235 117 31 -144.06 1954 23 24 3 7 56 2 103 3 7 -10236 117 32 -138.18 1954 23 26 3 7 56 2 105 3 9 -10237 117 33 -132.3 1954 23 28 3 7 56 2 107 3 11 -10238 117 34 -126.42 1954 27 25 3 7 57 2 104 3 8 -10239 117 35 -120.54 1954 27 23 3 7 57 2 102 3 6 -10240 117 36 -114.66 1954 27 24 3 7 57 2 103 3 7 -10241 117 37 -108.78 1954 27 26 3 7 57 2 105 3 9 -10242 117 38 -102.9 1954 27 28 3 7 57 2 107 3 11 -10243 117 39 -97.02 1954 31 27 3 7 58 2 106 3 10 -10244 117 40 -91.14 1954 31 25 3 7 58 2 104 3 8 -10245 117 41 -85.26 1954 31 23 3 7 58 2 102 3 6 -10246 117 42 -79.38 1954 31 24 3 7 58 2 103 3 7 -10247 117 43 -73.5 1954 31 26 3 7 58 2 105 3 9 -10248 117 44 -67.62 1954 31 28 3 7 58 2 107 3 11 -10249 117 45 -61.74 1954 35 27 3 7 59 2 106 3 10 -10250 117 46 -55.86 1954 35 25 3 7 59 2 104 3 8 -10251 117 47 -49.98 1954 35 26 3 7 59 2 105 3 9 -10252 117 48 -44.1 1954 35 28 3 7 59 2 107 3 11 -10253 117 49 -38.22 1954 35 30 3 7 59 2 109 3 13 -10254 117 50 -32.34 1954 39 25 3 7 60 2 104 3 8 -10255 117 51 -26.46 1954 39 23 3 7 60 2 102 3 6 -10256 117 52 -20.58 1954 39 21 3 7 60 2 100 3 4 -10257 117 53 -14.7 1954 39 22 3 7 60 2 101 3 5 -10258 117 54 -8.82 1954 39 24 3 7 60 2 103 3 7 -10259 117 55 -2.94 1954 39 26 3 7 60 2 105 3 9 -10260 117 56 2.94 1954 43 25 3 7 61 2 104 3 8 -10261 117 57 8.82 1954 43 23 3 7 61 2 102 3 6 -10262 117 58 14.7 1954 43 21 3 7 61 2 100 3 4 -10263 117 59 20.58 1954 43 22 3 7 61 2 101 3 5 -10264 117 60 26.46 1954 43 24 3 7 61 2 103 3 7 -10265 117 61 32.34 1954 43 26 3 7 61 2 105 3 9 -10266 117 62 38.22 1954 47 29 3 7 62 2 108 3 12 -10267 117 63 44.1 1954 47 27 3 7 62 2 106 3 10 -10268 117 64 49.98 1954 47 25 3 7 62 2 104 3 8 -10269 117 65 55.86 1954 47 26 3 7 62 2 105 3 9 -10270 117 66 61.74 1954 47 28 3 7 62 2 107 3 11 -10271 117 67 67.62 1954 51 27 3 7 63 2 106 3 10 -10272 117 68 73.5 1954 51 25 3 7 63 2 104 3 8 -10273 117 69 79.38 1954 51 23 3 7 63 2 102 3 6 -10274 117 70 85.26 1954 51 24 3 7 63 2 103 3 7 -10275 117 71 91.14 1954 51 26 3 7 63 2 105 3 9 -10276 117 72 97.02 1954 51 28 3 7 63 2 107 3 11 -10277 117 73 102.9 1954 55 27 3 7 64 2 106 3 10 -10278 117 74 108.78 1954 55 25 3 7 64 2 104 3 8 -10279 117 75 114.66 1954 55 23 3 7 64 2 102 3 6 -10280 117 76 120.54 1954 55 24 3 7 64 2 103 3 7 -10281 117 77 126.42 1954 55 26 3 7 64 2 105 3 9 -10282 117 78 132.3 1954 59 27 3 7 65 2 106 3 10 -10283 117 79 138.18 1954 59 25 3 7 65 2 104 3 8 -10284 117 80 144.06 1954 59 23 3 7 65 2 102 3 6 -10285 117 81 149.94 1954 59 26 3 7 65 2 105 3 9 -10286 117 82 155.82 1954 59 28 3 7 65 2 107 3 11 -10287 117 83 161.7 1954 59 30 3 7 65 2 109 3 13 -10288 117 84 167.58 1954 63 27 3 7 66 2 106 3 10 -10289 117 85 173.46 1954 63 25 3 7 66 2 104 3 8 -10290 117 86 179.34 1954 63 23 3 7 66 2 102 3 6 -10291 117 87 185.22 1954 63 24 3 7 66 2 103 3 7 -10292 117 88 191.1 1954 63 26 3 7 66 2 105 3 9 -10293 117 89 196.98 1954 63 28 3 7 66 2 107 3 11 -10294 117 90 202.86 1954 67 27 3 7 67 2 106 3 10 -10295 117 91 208.74 1954 67 25 3 7 67 2 104 3 8 -10296 117 92 214.62 1954 67 23 3 7 67 2 102 3 6 -10297 117 93 220.5 1954 67 24 3 7 67 2 103 3 7 -10298 117 94 226.38 1954 67 26 3 7 67 2 105 3 9 -10299 117 95 232.26 1954 71 27 3 7 68 2 106 3 10 -10300 117 96 238.14 1954 71 25 3 7 68 2 104 3 8 -10301 117 97 244.02 1954 71 23 3 7 68 2 102 3 6 -10302 117 98 249.9 1954 71 24 3 7 68 2 103 3 7 -10303 117 99 255.78 1954 71 26 3 7 68 2 105 3 9 -10304 117 100 261.66 1954 71 28 3 7 68 2 107 3 11 -10305 117 101 267.54 1954 75 27 3 7 69 2 106 3 10 -10306 117 102 273.42 1954 75 25 3 7 69 2 104 3 8 -10307 117 103 279.3 1954 75 23 3 7 69 2 102 3 6 -10308 117 104 285.18 1954 75 24 3 7 69 2 103 3 7 -10309 117 105 291.06 1954 75 26 3 7 69 2 105 3 9 -10310 117 106 296.94 1954 75 28 3 7 69 2 107 3 11 -10311 117 107 302.82 1954 79 27 3 7 70 2 106 3 10 -10312 117 108 308.7 1954 79 25 3 7 70 2 104 3 8 -10313 117 109 314.58 1954 79 24 3 7 70 2 103 3 7 -10314 117 110 320.46 1954 79 26 3 7 70 2 105 3 9 -10315 117 111 326.34 1954 79 28 3 7 70 2 107 3 11 -10316 118 0 -332.22 1966 3 33 3 7 51 2 112 3 16 -10317 118 1 -326.34 1966 3 31 3 7 51 2 110 3 14 -10318 118 2 -320.46 1966 3 29 3 7 51 2 108 3 12 -10319 118 3 -314.58 1966 3 30 3 7 51 2 109 3 13 -10320 118 4 -308.7 1966 3 32 3 7 51 2 111 3 15 -10321 118 5 -302.82 1966 3 34 3 7 51 2 113 3 17 -10322 118 6 -296.94 1966 7 33 3 7 52 2 112 3 16 -10323 118 7 -291.06 1966 7 31 3 7 52 2 110 3 14 -10324 118 8 -285.18 1966 7 29 3 7 52 2 108 3 12 -10325 118 9 -279.3 1966 7 30 3 7 52 2 109 3 13 -10326 118 10 -273.42 1966 7 32 3 7 52 2 111 3 15 -10327 118 11 -267.54 1966 7 34 3 7 52 2 113 3 17 -10328 118 12 -261.66 1966 11 31 3 7 53 2 110 3 14 -10329 118 13 -255.78 1966 11 29 3 7 53 2 108 3 12 -10330 118 14 -249.9 1966 11 30 3 7 53 2 109 3 13 -10331 118 15 -244.02 1966 11 32 3 7 53 2 111 3 15 -10332 118 16 -238.14 1966 11 34 3 7 53 2 113 3 17 -10333 118 17 -232.26 1966 15 31 3 7 54 2 110 3 14 -10334 118 18 -226.38 1966 15 29 3 7 54 2 108 3 12 -10335 118 19 -220.5 1966 15 27 3 7 54 2 106 3 10 -10336 118 20 -214.62 1966 15 30 3 7 54 2 109 3 13 -10337 118 21 -208.74 1966 15 32 3 7 54 2 111 3 15 -10338 118 22 -202.86 1966 15 34 3 7 54 2 113 3 17 -10339 118 23 -196.98 1966 19 33 3 7 55 2 112 3 16 -10340 118 24 -191.1 1966 19 31 3 7 55 2 110 3 14 -10341 118 25 -185.22 1966 19 29 3 7 55 2 108 3 12 -10342 118 26 -179.34 1966 19 30 3 7 55 2 109 3 13 -10343 118 27 -173.46 1966 19 32 3 7 55 2 111 3 15 -10344 118 28 -167.58 1966 19 34 3 7 55 2 113 3 17 -10345 118 29 -161.7 1966 23 33 3 7 56 2 112 3 16 -10346 118 30 -155.82 1966 23 31 3 7 56 2 110 3 14 -10347 118 31 -149.94 1966 23 30 3 7 56 2 109 3 13 -10348 118 32 -144.06 1966 23 32 3 7 56 2 111 3 15 -10349 118 33 -138.18 1966 23 34 3 7 56 2 113 3 17 -10350 118 34 -132.3 1966 27 31 3 7 57 2 110 3 14 -10351 118 35 -126.42 1966 27 29 3 7 57 2 108 3 12 -10352 118 36 -120.54 1966 27 27 3 7 57 2 106 3 10 -10353 118 37 -114.66 1966 27 30 3 7 57 2 109 3 13 -10354 118 38 -108.78 1966 27 32 3 7 57 2 111 3 15 -10355 118 39 -102.9 1966 27 34 3 7 57 2 113 3 17 -10356 118 40 -97.02 1966 31 33 3 7 58 2 112 3 16 -10357 118 41 -91.14 1966 31 31 3 7 58 2 110 3 14 -10358 118 42 -85.26 1966 31 29 3 7 58 2 108 3 12 -10359 118 43 -79.38 1966 31 30 3 7 58 2 109 3 13 -10360 118 44 -73.5 1966 31 32 3 7 58 2 111 3 15 -10361 118 45 -67.62 1966 31 34 3 7 58 2 113 3 17 -10362 118 46 -61.74 1966 35 33 3 7 59 2 112 3 16 -10363 118 47 -55.86 1966 35 31 3 7 59 2 110 3 14 -10364 118 48 -49.98 1966 35 29 3 7 59 2 108 3 12 -10365 118 49 -44.1 1966 35 32 3 7 59 2 111 3 15 -10366 118 50 -38.22 1966 35 34 3 7 59 2 113 3 17 -10367 118 51 -32.34 1966 39 31 3 7 60 2 110 3 14 -10368 118 52 -26.46 1966 39 29 3 7 60 2 108 3 12 -10369 118 53 -20.58 1966 39 27 3 7 60 2 106 3 10 -10370 118 54 -14.7 1966 39 28 3 7 60 2 107 3 11 -10371 118 55 -8.82 1966 39 30 3 7 60 2 109 3 13 -10372 118 56 -2.94 1966 39 32 3 7 60 2 111 3 15 -10373 118 57 2.94 1966 43 31 3 7 61 2 110 3 14 -10374 118 58 8.82 1966 43 29 3 7 61 2 108 3 12 -10375 118 59 14.7 1966 43 27 3 7 61 2 106 3 10 -10376 118 60 20.58 1966 43 28 3 7 61 2 107 3 11 -10377 118 61 26.46 1966 43 30 3 7 61 2 109 3 13 -10378 118 62 32.34 1966 43 32 3 7 61 2 111 3 15 -10379 118 63 38.22 1966 47 33 3 7 62 2 112 3 16 -10380 118 64 44.1 1966 47 31 3 7 62 2 110 3 14 -10381 118 65 49.98 1966 47 30 3 7 62 2 109 3 13 -10382 118 66 55.86 1966 47 32 3 7 62 2 111 3 15 -10383 118 67 61.74 1966 47 34 3 7 62 2 113 3 17 -10384 118 68 67.62 1966 51 33 3 7 63 2 112 3 16 -10385 118 69 73.5 1966 51 31 3 7 63 2 110 3 14 -10386 118 70 79.38 1966 51 29 3 7 63 2 108 3 12 -10387 118 71 85.26 1966 51 30 3 7 63 2 109 3 13 -10388 118 72 91.14 1966 51 32 3 7 63 2 111 3 15 -10389 118 73 97.02 1966 51 34 3 7 63 2 113 3 17 -10390 118 74 102.9 1966 55 33 3 7 64 2 112 3 16 -10391 118 75 108.78 1966 55 31 3 7 64 2 110 3 14 -10392 118 76 114.66 1966 55 29 3 7 64 2 108 3 12 -10393 118 77 120.54 1966 55 28 3 7 64 2 107 3 11 -10394 118 78 126.42 1966 55 30 3 7 64 2 109 3 13 -10395 118 79 132.3 1966 55 32 3 7 64 2 111 3 15 -10396 118 80 138.18 1966 59 33 3 7 65 2 112 3 16 -10397 118 81 144.06 1966 59 31 3 7 65 2 110 3 14 -10398 118 82 149.94 1966 59 29 3 7 65 2 108 3 12 -10399 118 83 155.82 1966 59 32 3 7 65 2 111 3 15 -10400 118 84 161.7 1966 59 34 3 7 65 2 113 3 17 -10401 118 85 167.58 1966 63 33 3 7 66 2 112 3 16 -10402 118 86 173.46 1966 63 31 3 7 66 2 110 3 14 -10403 118 87 179.34 1966 63 29 3 7 66 2 108 3 12 -10404 118 88 185.22 1966 63 30 3 7 66 2 109 3 13 -10405 118 89 191.1 1966 63 32 3 7 66 2 111 3 15 -10406 118 90 196.98 1966 63 34 3 7 66 2 113 3 17 -10407 118 91 202.86 1966 67 33 3 7 67 2 112 3 16 -10408 118 92 208.74 1966 67 31 3 7 67 2 110 3 14 -10409 118 93 214.62 1966 67 29 3 7 67 2 108 3 12 -10410 118 94 220.5 1966 67 28 3 7 67 2 107 3 11 -10411 118 95 226.38 1966 67 30 3 7 67 2 109 3 13 -10412 118 96 232.26 1966 67 32 3 7 67 2 111 3 15 -10413 118 97 238.14 1966 71 33 3 7 68 2 112 3 16 -10414 118 98 244.02 1966 71 31 3 7 68 2 110 3 14 -10415 118 99 249.9 1966 71 29 3 7 68 2 108 3 12 -10416 118 100 255.78 1966 71 30 3 7 68 2 109 3 13 -10417 118 101 261.66 1966 71 32 3 7 68 2 111 3 15 -10418 118 102 267.54 1966 75 33 3 7 69 2 112 3 16 -10419 118 103 273.42 1966 75 31 3 7 69 2 110 3 14 -10420 118 104 279.3 1966 75 29 3 7 69 2 108 3 12 -10421 118 105 285.18 1966 75 30 3 7 69 2 109 3 13 -10422 118 106 291.06 1966 75 32 3 7 69 2 111 3 15 -10423 118 107 296.94 1966 75 34 3 7 69 2 113 3 17 -10424 118 108 302.82 1966 79 33 3 7 70 2 112 3 16 -10425 118 109 308.7 1966 79 31 3 7 70 2 110 3 14 -10426 118 110 314.58 1966 79 29 3 7 70 2 108 3 12 -10427 118 111 320.46 1966 79 30 3 7 70 2 109 3 13 -10428 118 112 326.34 1966 79 32 3 7 70 2 111 3 15 -10429 118 113 332.22 1966 79 34 3 7 70 2 113 3 17 -10430 119 0 -332.22 1978 3 39 3 7 51 2 118 3 22 -10431 119 1 -326.34 1978 3 37 3 7 51 2 116 3 20 -10432 119 2 -320.46 1978 3 35 3 7 51 2 114 3 18 -10433 119 3 -314.58 1978 3 36 3 7 51 2 115 3 19 -10434 119 4 -308.7 1978 3 38 3 7 51 2 117 3 21 -10435 119 5 -302.82 1978 3 40 3 7 51 2 119 3 23 -10436 119 6 -296.94 1978 7 37 3 7 52 2 116 3 20 -10437 119 7 -291.06 1978 7 35 3 7 52 2 114 3 18 -10438 119 8 -285.18 1978 7 36 3 7 52 2 115 3 19 -10439 119 9 -279.3 1978 7 38 3 7 52 2 117 3 21 -10440 119 10 -273.42 1978 7 40 3 7 52 2 119 3 23 -10441 119 11 -267.54 1978 11 37 3 7 53 2 116 3 20 -10442 119 12 -261.66 1978 11 35 3 7 53 2 114 3 18 -10443 119 13 -255.78 1978 11 33 3 7 53 2 112 3 16 -10444 119 14 -249.9 1978 11 36 3 7 53 2 115 3 19 -10445 119 15 -244.02 1978 11 38 3 7 53 2 117 3 21 -10446 119 16 -238.14 1978 11 40 3 7 53 2 119 3 23 -10447 119 17 -232.26 1978 15 37 3 7 54 2 116 3 20 -10448 119 18 -226.38 1978 15 35 3 7 54 2 114 3 18 -10449 119 19 -220.5 1978 15 33 3 7 54 2 112 3 16 -10450 119 20 -214.62 1978 15 36 3 7 54 2 115 3 19 -10451 119 21 -208.74 1978 15 38 3 7 54 2 117 3 21 -10452 119 22 -202.86 1978 15 40 3 7 54 2 119 3 23 -10453 119 23 -196.98 1978 19 39 3 7 55 2 118 3 22 -10454 119 24 -191.1 1978 19 37 3 7 55 2 116 3 20 -10455 119 25 -185.22 1978 19 35 3 7 55 2 114 3 18 -10456 119 26 -179.34 1978 19 36 3 7 55 2 115 3 19 -10457 119 27 -173.46 1978 19 38 3 7 55 2 117 3 21 -10458 119 28 -167.58 1978 19 40 3 7 55 2 119 3 23 -10459 119 29 -161.7 1978 23 39 3 7 56 2 118 3 22 -10460 119 30 -155.82 1978 23 37 3 7 56 2 116 3 20 -10461 119 31 -149.94 1978 23 35 3 7 56 2 114 3 18 -10462 119 32 -144.06 1978 23 36 3 7 56 2 115 3 19 -10463 119 33 -138.18 1978 23 38 3 7 56 2 117 3 21 -10464 119 34 -132.3 1978 27 37 3 7 57 2 116 3 20 -10465 119 35 -126.42 1978 27 35 3 7 57 2 114 3 18 -10466 119 36 -120.54 1978 27 33 3 7 57 2 112 3 16 -10467 119 37 -114.66 1978 27 36 3 7 57 2 115 3 19 -10468 119 38 -108.78 1978 27 38 3 7 57 2 117 3 21 -10469 119 39 -102.9 1978 27 40 3 7 57 2 119 3 23 -10470 119 40 -97.02 1978 31 39 3 7 58 2 118 3 22 -10471 119 41 -91.14 1978 31 37 3 7 58 2 116 3 20 -10472 119 42 -85.26 1978 31 35 3 7 58 2 114 3 18 -10473 119 43 -79.38 1978 31 36 3 7 58 2 115 3 19 -10474 119 44 -73.5 1978 31 38 3 7 58 2 117 3 21 -10475 119 45 -67.62 1978 31 40 3 7 58 2 119 3 23 -10476 119 46 -61.74 1978 35 37 3 7 59 2 116 3 20 -10477 119 47 -55.86 1978 35 35 3 7 59 2 114 3 18 -10478 119 48 -49.98 1978 35 36 3 7 59 2 115 3 19 -10479 119 49 -44.1 1978 35 38 3 7 59 2 117 3 21 -10480 119 50 -38.22 1978 35 40 3 7 59 2 119 3 23 -10481 119 51 -32.34 1978 39 35 3 7 60 2 114 3 18 -10482 119 52 -26.46 1978 39 33 3 7 60 2 112 3 16 -10483 119 53 -20.58 1978 39 34 3 7 60 2 113 3 17 -10484 119 54 -14.7 1978 39 36 3 7 60 2 115 3 19 -10485 119 55 -8.82 1978 39 38 3 7 60 2 117 3 21 -10486 119 56 -2.94 1978 39 40 3 7 60 2 119 3 23 -10487 119 57 2.94 1978 43 39 3 7 61 2 118 3 22 -10488 119 58 8.82 1978 43 37 3 7 61 2 116 3 20 -10489 119 59 14.7 1978 43 35 3 7 61 2 114 3 18 -10490 119 60 20.58 1978 43 33 3 7 61 2 112 3 16 -10491 119 61 26.46 1978 43 34 3 7 61 2 113 3 17 -10492 119 62 32.34 1978 43 36 3 7 61 2 115 3 19 -10493 119 63 38.22 1978 47 39 3 7 62 2 118 3 22 -10494 119 64 44.1 1978 47 37 3 7 62 2 116 3 20 -10495 119 65 49.98 1978 47 35 3 7 62 2 114 3 18 -10496 119 66 55.86 1978 47 36 3 7 62 2 115 3 19 -10497 119 67 61.74 1978 47 38 3 7 62 2 117 3 21 -10498 119 68 67.62 1978 51 39 3 7 63 2 118 3 22 -10499 119 69 73.5 1978 51 37 3 7 63 2 116 3 20 -10500 119 70 79.38 1978 51 35 3 7 63 2 114 3 18 -10501 119 71 85.26 1978 51 36 3 7 63 2 115 3 19 -10502 119 72 91.14 1978 51 38 3 7 63 2 117 3 21 -10503 119 73 97.02 1978 51 40 3 7 63 2 119 3 23 -10504 119 74 102.9 1978 55 39 3 7 64 2 118 3 22 -10505 119 75 108.78 1978 55 37 3 7 64 2 116 3 20 -10506 119 76 114.66 1978 55 35 3 7 64 2 114 3 18 -10507 119 77 120.54 1978 55 34 3 7 64 2 113 3 17 -10508 119 78 126.42 1978 55 36 3 7 64 2 115 3 19 -10509 119 79 132.3 1978 55 38 3 7 64 2 117 3 21 -10510 119 80 138.18 1978 59 37 3 7 65 2 116 3 20 -10511 119 81 144.06 1978 59 35 3 7 65 2 114 3 18 -10512 119 82 149.94 1978 59 36 3 7 65 2 115 3 19 -10513 119 83 155.82 1978 59 38 3 7 65 2 117 3 21 -10514 119 84 161.7 1978 59 40 3 7 65 2 119 3 23 -10515 119 85 167.58 1978 63 39 3 7 66 2 118 3 22 -10516 119 86 173.46 1978 63 37 3 7 66 2 116 3 20 -10517 119 87 179.34 1978 63 35 3 7 66 2 114 3 18 -10518 119 88 185.22 1978 63 36 3 7 66 2 115 3 19 -10519 119 89 191.1 1978 63 38 3 7 66 2 117 3 21 -10520 119 90 196.98 1978 63 40 3 7 66 2 119 3 23 -10521 119 91 202.86 1978 67 39 3 7 67 2 118 3 22 -10522 119 92 208.74 1978 67 37 3 7 67 2 116 3 20 -10523 119 93 214.62 1978 67 35 3 7 67 2 114 3 18 -10524 119 94 220.5 1978 67 34 3 7 67 2 113 3 17 -10525 119 95 226.38 1978 67 36 3 7 67 2 115 3 19 -10526 119 96 232.26 1978 67 38 3 7 67 2 117 3 21 -10527 119 97 238.14 1978 71 39 3 7 68 2 118 3 22 -10528 119 98 244.02 1978 71 37 3 7 68 2 116 3 20 -10529 119 99 249.9 1978 71 35 3 7 68 2 114 3 18 -10530 119 100 255.78 1978 71 34 3 7 68 2 113 3 17 -10531 119 101 261.66 1978 71 36 3 7 68 2 115 3 19 -10532 119 102 267.54 1978 71 38 3 7 68 2 117 3 21 -10533 119 103 273.42 1978 75 39 3 7 69 2 118 3 22 -10534 119 104 279.3 1978 75 37 3 7 69 2 116 3 20 -10535 119 105 285.18 1978 75 35 3 7 69 2 114 3 18 -10536 119 106 291.06 1978 75 36 3 7 69 2 115 3 19 -10537 119 107 296.94 1978 75 38 3 7 69 2 117 3 21 -10538 119 108 302.82 1978 79 39 3 7 70 2 118 3 22 -10539 119 109 308.7 1978 79 37 3 7 70 2 116 3 20 -10540 119 110 314.58 1978 79 35 3 7 70 2 114 3 18 -10541 119 111 320.46 1978 79 36 3 7 70 2 115 3 19 -10542 119 112 326.34 1978 79 38 3 7 70 2 117 3 21 -10543 119 113 332.22 1978 79 40 3 7 70 2 119 3 23 -10544 120 0 -332.22 1990 4 5 3 7 51 3 124 3 28 -10545 120 1 -326.34 1990 4 3 3 7 51 3 122 3 26 -10546 120 2 -320.46 1990 4 1 3 7 51 3 120 3 24 -10547 120 3 -314.58 1990 4 2 3 7 51 3 121 3 25 -10548 120 4 -308.7 1990 4 4 3 7 51 3 123 3 27 -10549 120 5 -302.82 1990 4 6 3 7 51 3 125 3 29 -10550 120 6 -296.94 1990 7 39 3 7 52 2 118 3 22 -10551 120 7 -291.06 1990 8 3 3 7 52 3 122 3 26 -10552 120 8 -285.18 1990 8 1 3 7 52 3 120 3 24 -10553 120 9 -279.3 1990 8 2 3 7 52 3 121 3 25 -10554 120 10 -273.42 1990 8 4 3 7 52 3 123 3 27 -10555 120 11 -267.54 1990 11 39 3 7 53 2 118 3 22 -10556 120 12 -261.66 1990 12 3 3 7 53 3 122 3 26 -10557 120 13 -255.78 1990 12 1 3 7 53 3 120 3 24 -10558 120 14 -249.9 1990 12 2 3 7 53 3 121 3 25 -10559 120 15 -244.02 1990 12 4 3 7 53 3 123 3 27 -10560 120 16 -238.14 1990 12 6 3 7 53 3 125 3 29 -10561 120 17 -232.26 1990 15 39 3 7 54 2 118 3 22 -10562 120 18 -226.38 1990 16 3 3 7 54 3 122 3 26 -10563 120 19 -220.5 1990 16 1 3 7 54 3 120 3 24 -10564 120 20 -214.62 1990 16 2 3 7 54 3 121 3 25 -10565 120 21 -208.74 1990 16 4 3 7 54 3 123 3 27 -10566 120 22 -202.86 1990 16 6 3 7 54 3 125 3 29 -10567 120 23 -196.98 1990 20 3 3 7 55 3 122 3 26 -10568 120 24 -191.1 1990 20 1 3 7 55 3 120 3 24 -10569 120 25 -185.22 1990 20 2 3 7 55 3 121 3 25 -10570 120 26 -179.34 1990 20 4 3 7 55 3 123 3 27 -10571 120 27 -173.46 1990 20 6 3 7 55 3 125 3 29 -10572 120 28 -167.58 1990 24 5 3 7 56 3 124 3 28 -10573 120 29 -161.7 1990 24 3 3 7 56 3 122 3 26 -10574 120 30 -155.82 1990 24 1 3 7 56 3 120 3 24 -10575 120 31 -149.94 1990 24 2 3 7 56 3 121 3 25 -10576 120 32 -144.06 1990 24 4 3 7 56 3 123 3 27 -10577 120 33 -138.18 1990 23 40 3 7 56 2 119 3 23 -10578 120 34 -132.3 1990 27 39 3 7 57 2 118 3 22 -10579 120 35 -126.42 1990 28 5 3 7 57 3 124 3 28 -10580 120 36 -120.54 1990 28 3 3 7 57 3 122 3 26 -10581 120 37 -114.66 1990 28 1 3 7 57 3 120 3 24 -10582 120 38 -108.78 1990 28 2 3 7 57 3 121 3 25 -10583 120 39 -102.9 1990 28 4 3 7 57 3 123 3 27 -10584 120 40 -97.02 1990 32 5 3 7 58 3 124 3 28 -10585 120 41 -91.14 1990 32 3 3 7 58 3 122 3 26 -10586 120 42 -85.26 1990 32 1 3 7 58 3 120 3 24 -10587 120 43 -79.38 1990 32 2 3 7 58 3 121 3 25 -10588 120 44 -73.5 1990 32 4 3 7 58 3 123 3 27 -10589 120 45 -67.62 1990 32 6 3 7 58 3 125 3 29 -10590 120 46 -61.74 1990 35 39 3 7 59 2 118 3 22 -10591 120 47 -55.86 1990 36 3 3 7 59 3 122 3 26 -10592 120 48 -49.98 1990 36 1 3 7 59 3 120 3 24 -10593 120 49 -44.1 1990 36 2 3 7 59 3 121 3 25 -10594 120 50 -38.22 1990 36 4 3 7 59 3 123 3 27 -10595 120 51 -32.34 1990 39 39 3 7 60 2 118 3 22 -10596 120 52 -26.46 1990 39 37 3 7 60 2 116 3 20 -10597 120 53 -20.58 1990 40 3 3 7 60 3 122 3 26 -10598 120 54 -14.7 1990 40 1 3 7 60 3 120 3 24 -10599 120 55 -8.82 1990 40 2 3 7 60 3 121 3 25 -10600 120 56 -2.94 1990 40 4 3 7 60 3 123 3 27 -10601 120 57 2.94 1990 44 3 3 7 61 3 122 3 26 -10602 120 58 8.82 1990 44 1 3 7 61 3 120 3 24 -10603 120 59 14.7 1990 44 2 3 7 61 3 121 3 25 -10604 120 60 20.58 1990 44 4 3 7 61 3 123 3 27 -10605 120 61 26.46 1990 43 38 3 7 61 2 117 3 21 -10606 120 62 32.34 1990 43 40 3 7 61 2 119 3 23 -10607 120 63 38.22 1990 48 3 3 7 62 3 122 3 26 -10608 120 64 44.1 1990 48 1 3 7 62 3 120 3 24 -10609 120 65 49.98 1990 48 2 3 7 62 3 121 3 25 -10610 120 66 55.86 1990 48 4 3 7 62 3 123 3 27 -10611 120 67 61.74 1990 47 40 3 7 62 2 119 3 23 -10612 120 68 67.62 1990 52 5 3 7 63 3 124 3 28 -10613 120 69 73.5 1990 52 3 3 7 63 3 122 3 26 -10614 120 70 79.38 1990 52 1 3 7 63 3 120 3 24 -10615 120 71 85.26 1990 52 2 3 7 63 3 121 3 25 -10616 120 72 91.14 1990 52 4 3 7 63 3 123 3 27 -10617 120 73 97.02 1990 52 6 3 7 63 3 125 3 29 -10618 120 74 102.9 1990 56 3 3 7 64 3 122 3 26 -10619 120 75 108.78 1990 56 1 3 7 64 3 120 3 24 -10620 120 76 114.66 1990 56 2 3 7 64 3 121 3 25 -10621 120 77 120.54 1990 56 4 3 7 64 3 123 3 27 -10622 120 78 126.42 1990 56 6 3 7 64 3 125 3 29 -10623 120 79 132.3 1990 55 40 3 7 64 2 119 3 23 -10624 120 80 138.18 1990 59 39 3 7 65 2 118 3 22 -10625 120 81 144.06 1990 60 3 3 7 65 3 122 3 26 -10626 120 82 149.94 1990 60 1 3 7 65 3 120 3 24 -10627 120 83 155.82 1990 60 2 3 7 65 3 121 3 25 -10628 120 84 161.7 1990 60 4 3 7 65 3 123 3 27 -10629 120 85 167.58 1990 60 6 3 7 65 3 125 3 29 -10630 120 86 173.46 1990 64 5 3 7 66 3 124 3 28 -10631 120 87 179.34 1990 64 3 3 7 66 3 122 3 26 -10632 120 88 185.22 1990 64 1 3 7 66 3 120 3 24 -10633 120 89 191.1 1990 64 2 3 7 66 3 121 3 25 -10634 120 90 196.98 1990 64 4 3 7 66 3 123 3 27 -10635 120 91 202.86 1990 68 5 3 7 67 3 124 3 28 -10636 120 92 208.74 1990 68 3 3 7 67 3 122 3 26 -10637 120 93 214.62 1990 68 1 3 7 67 3 120 3 24 -10638 120 94 220.5 1990 68 2 3 7 67 3 121 3 25 -10639 120 95 226.38 1990 68 4 3 7 67 3 123 3 27 -10640 120 96 232.26 1990 67 40 3 7 67 2 119 3 23 -10641 120 97 238.14 1990 72 5 3 7 68 3 124 3 28 -10642 120 98 244.02 1990 72 3 3 7 68 3 122 3 26 -10643 120 99 249.9 1990 72 1 3 7 68 3 120 3 24 -10644 120 100 255.78 1990 72 2 3 7 68 3 121 3 25 -10645 120 101 261.66 1990 72 4 3 7 68 3 123 3 27 -10646 120 102 267.54 1990 71 40 3 7 68 2 119 3 23 -10647 120 103 273.42 1990 76 3 3 7 69 3 122 3 26 -10648 120 104 279.3 1990 76 1 3 7 69 3 120 3 24 -10649 120 105 285.18 1990 76 2 3 7 69 3 121 3 25 -10650 120 106 291.06 1990 76 4 3 7 69 3 123 3 27 -10651 120 107 296.94 1990 75 40 3 7 69 2 119 3 23 -10652 120 108 302.82 1990 80 5 3 7 70 3 124 3 28 -10653 120 109 308.7 1990 80 3 3 7 70 3 122 3 26 -10654 120 110 314.58 1990 80 1 3 7 70 3 120 3 24 -10655 120 111 320.46 1990 80 2 3 7 70 3 121 3 25 -10656 120 112 326.34 1990 80 4 3 7 70 3 123 3 27 -10657 120 113 332.22 1990 80 6 3 7 70 3 125 3 29 -10658 121 0 -338.1 2002 4 11 3 7 51 3 130 4 2 -10659 121 1 -332.22 2002 4 9 3 7 51 3 128 4 0 -10660 121 2 -326.34 2002 4 7 3 7 51 3 126 3 30 -10661 121 3 -320.46 2002 4 8 3 7 51 3 127 3 31 -10662 121 4 -314.58 2002 4 10 3 7 51 3 129 4 1 -10663 121 5 -308.7 2002 4 12 3 7 51 3 131 4 3 -10664 121 6 -302.82 2002 8 9 3 7 52 3 128 4 0 -10665 121 7 -296.94 2002 8 7 3 7 52 3 126 3 30 -10666 121 8 -291.06 2002 8 5 3 7 52 3 124 3 28 -10667 121 9 -285.18 2002 8 6 3 7 52 3 125 3 29 -10668 121 10 -279.3 2002 8 8 3 7 52 3 127 3 31 -10669 121 11 -273.42 2002 8 10 3 7 52 3 129 4 1 -10670 121 12 -267.54 2002 12 9 3 7 53 3 128 4 0 -10671 121 13 -261.66 2002 12 7 3 7 53 3 126 3 30 -10672 121 14 -255.78 2002 12 5 3 7 53 3 124 3 28 -10673 121 15 -249.9 2002 12 8 3 7 53 3 127 3 31 -10674 121 16 -244.02 2002 12 10 3 7 53 3 129 4 1 -10675 121 17 -238.14 2002 12 12 3 7 53 3 131 4 3 -10676 121 18 -232.26 2002 16 9 3 7 54 3 128 4 0 -10677 121 19 -226.38 2002 16 7 3 7 54 3 126 3 30 -10678 121 20 -220.5 2002 16 5 3 7 54 3 124 3 28 -10679 121 21 -214.62 2002 16 8 3 7 54 3 127 3 31 -10680 121 22 -208.74 2002 16 10 3 7 54 3 129 4 1 -10681 121 23 -202.86 2002 20 9 3 7 55 3 128 4 0 -10682 121 24 -196.98 2002 20 7 3 7 55 3 126 3 30 -10683 121 25 -191.1 2002 20 5 3 7 55 3 124 3 28 -10684 121 26 -185.22 2002 20 8 3 7 55 3 127 3 31 -10685 121 27 -179.34 2002 20 10 3 7 55 3 129 4 1 -10686 121 28 -173.46 2002 20 12 3 7 55 3 131 4 3 -10687 121 29 -167.58 2002 24 11 3 7 56 3 130 4 2 -10688 121 30 -161.7 2002 24 9 3 7 56 3 128 4 0 -10689 121 31 -155.82 2002 24 7 3 7 56 3 126 3 30 -10690 121 32 -149.94 2002 24 6 3 7 56 3 125 3 29 -10691 121 33 -144.06 2002 24 8 3 7 56 3 127 3 31 -10692 121 34 -138.18 2002 24 10 3 7 56 3 129 4 1 -10693 121 35 -132.3 2002 28 11 3 7 57 3 130 4 2 -10694 121 36 -126.42 2002 28 9 3 7 57 3 128 4 0 -10695 121 37 -120.54 2002 28 7 3 7 57 3 126 3 30 -10696 121 38 -114.66 2002 28 6 3 7 57 3 125 3 29 -10697 121 39 -108.78 2002 28 8 3 7 57 3 127 3 31 -10698 121 40 -102.9 2002 28 10 3 7 57 3 129 4 1 -10699 121 41 -97.02 2002 32 9 3 7 58 3 128 4 0 -10700 121 42 -91.14 2002 32 7 3 7 58 3 126 3 30 -10701 121 43 -85.26 2002 32 8 3 7 58 3 127 3 31 -10702 121 44 -79.38 2002 32 10 3 7 58 3 129 4 1 -10703 121 45 -73.5 2002 32 12 3 7 58 3 131 4 3 -10704 121 46 -67.62 2002 36 9 3 7 59 3 128 4 0 -10705 121 47 -61.74 2002 36 7 3 7 59 3 126 3 30 -10706 121 48 -55.86 2002 36 5 3 7 59 3 124 3 28 -10707 121 49 -49.98 2002 36 6 3 7 59 3 125 3 29 -10708 121 50 -44.1 2002 36 8 3 7 59 3 127 3 31 -10709 121 51 -38.22 2002 36 10 3 7 59 3 129 4 1 -10710 121 52 -32.34 2002 40 9 3 7 60 3 128 4 0 -10711 121 53 -26.46 2002 40 7 3 7 60 3 126 3 30 -10712 121 54 -20.58 2002 40 5 3 7 60 3 124 3 28 -10713 121 55 -14.7 2002 40 6 3 7 60 3 125 3 29 -10714 121 56 -8.82 2002 40 8 3 7 60 3 127 3 31 -10715 121 57 -2.94 2002 40 10 3 7 60 3 129 4 1 -10716 121 58 2.94 2002 44 9 3 7 61 3 128 4 0 -10717 121 59 8.82 2002 44 7 3 7 61 3 126 3 30 -10718 121 60 14.7 2002 44 5 3 7 61 3 124 3 28 -10719 121 61 20.58 2002 44 6 3 7 61 3 125 3 29 -10720 121 62 26.46 2002 44 8 3 7 61 3 127 3 31 -10721 121 63 32.34 2002 44 10 3 7 61 3 129 4 1 -10722 121 64 38.22 2002 48 9 3 7 62 3 128 4 0 -10723 121 65 44.1 2002 48 7 3 7 62 3 126 3 30 -10724 121 66 49.98 2002 48 5 3 7 62 3 124 3 28 -10725 121 67 55.86 2002 48 6 3 7 62 3 125 3 29 -10726 121 68 61.74 2002 48 8 3 7 62 3 127 3 31 -10727 121 69 67.62 2002 48 10 3 7 62 3 129 4 1 -10728 121 70 73.5 2002 52 11 3 7 63 3 130 4 2 -10729 121 71 79.38 2002 52 9 3 7 63 3 128 4 0 -10730 121 72 85.26 2002 52 7 3 7 63 3 126 3 30 -10731 121 73 91.14 2002 52 8 3 7 63 3 127 3 31 -10732 121 74 97.02 2002 52 10 3 7 63 3 129 4 1 -10733 121 75 102.9 2002 56 9 3 7 64 3 128 4 0 -10734 121 76 108.78 2002 56 7 3 7 64 3 126 3 30 -10735 121 77 114.66 2002 56 5 3 7 64 3 124 3 28 -10736 121 78 120.54 2002 56 8 3 7 64 3 127 3 31 -10737 121 79 126.42 2002 56 10 3 7 64 3 129 4 1 -10738 121 80 132.3 2002 56 12 3 7 64 3 131 4 3 -10739 121 81 138.18 2002 60 9 3 7 65 3 128 4 0 -10740 121 82 144.06 2002 60 7 3 7 65 3 126 3 30 -10741 121 83 149.94 2002 60 5 3 7 65 3 124 3 28 -10742 121 84 155.82 2002 60 8 3 7 65 3 127 3 31 -10743 121 85 161.7 2002 60 10 3 7 65 3 129 4 1 -10744 121 86 167.58 2002 60 12 3 7 65 3 131 4 3 -10745 121 87 173.46 2002 64 11 3 7 66 3 130 4 2 -10746 121 88 179.34 2002 64 9 3 7 66 3 128 4 0 -10747 121 89 185.22 2002 64 7 3 7 66 3 126 3 30 -10748 121 90 191.1 2002 64 6 3 7 66 3 125 3 29 -10749 121 91 196.98 2002 64 8 3 7 66 3 127 3 31 -10750 121 92 202.86 2002 64 10 3 7 66 3 129 4 1 -10751 121 93 208.74 2002 68 9 3 7 67 3 128 4 0 -10752 121 94 214.62 2002 68 7 3 7 67 3 126 3 30 -10753 121 95 220.5 2002 68 6 3 7 67 3 125 3 29 -10754 121 96 226.38 2002 68 8 3 7 67 3 127 3 31 -10755 121 97 232.26 2002 68 10 3 7 67 3 129 4 1 -10756 121 98 238.14 2002 72 11 3 7 68 3 130 4 2 -10757 121 99 244.02 2002 72 9 3 7 68 3 128 4 0 -10758 121 100 249.9 2002 72 7 3 7 68 3 126 3 30 -10759 121 101 255.78 2002 72 6 3 7 68 3 125 3 29 -10760 121 102 261.66 2002 72 8 3 7 68 3 127 3 31 -10761 121 103 267.54 2002 72 10 3 7 68 3 129 4 1 -10762 121 104 273.42 2002 76 9 3 7 69 3 128 4 0 -10763 121 105 279.3 2002 76 7 3 7 69 3 126 3 30 -10764 121 106 285.18 2002 76 5 3 7 69 3 124 3 28 -10765 121 107 291.06 2002 76 6 3 7 69 3 125 3 29 -10766 121 108 296.94 2002 76 8 3 7 69 3 127 3 31 -10767 121 109 302.82 2002 76 10 3 7 69 3 129 4 1 -10768 121 110 308.7 2002 80 11 3 7 70 3 130 4 2 -10769 121 111 314.58 2002 80 9 3 7 70 3 128 4 0 -10770 121 112 320.46 2002 80 7 3 7 70 3 126 3 30 -10771 121 113 326.34 2002 80 8 3 7 70 3 127 3 31 -10772 121 114 332.22 2002 80 10 3 7 70 3 129 4 1 -10773 121 115 338.1 2002 80 12 3 7 70 3 131 4 3 -10774 122 0 -338.1 2014 4 17 3 7 51 3 136 4 8 -10775 122 1 -332.22 2014 4 15 3 7 51 3 134 4 6 -10776 122 2 -326.34 2014 4 13 3 7 51 3 132 4 4 -10777 122 3 -320.46 2014 4 14 3 7 51 3 133 4 5 -10778 122 4 -314.58 2014 4 16 3 7 51 3 135 4 7 -10779 122 5 -308.7 2014 4 18 3 7 51 3 137 4 9 -10780 122 6 -302.82 2014 8 15 3 7 52 3 134 4 6 -10781 122 7 -296.94 2014 8 13 3 7 52 3 132 4 4 -10782 122 8 -291.06 2014 8 11 3 7 52 3 130 4 2 -10783 122 9 -285.18 2014 8 12 3 7 52 3 131 4 3 -10784 122 10 -279.3 2014 8 14 3 7 52 3 133 4 5 -10785 122 11 -273.42 2014 8 16 3 7 52 3 135 4 7 -10786 122 12 -267.54 2014 12 15 3 7 53 3 134 4 6 -10787 122 13 -261.66 2014 12 13 3 7 53 3 132 4 4 -10788 122 14 -255.78 2014 12 11 3 7 53 3 130 4 2 -10789 122 15 -249.9 2014 12 14 3 7 53 3 133 4 5 -10790 122 16 -244.02 2014 12 16 3 7 53 3 135 4 7 -10791 122 17 -238.14 2014 16 15 3 7 54 3 134 4 6 -10792 122 18 -232.26 2014 16 13 3 7 54 3 132 4 4 -10793 122 19 -226.38 2014 16 11 3 7 54 3 130 4 2 -10794 122 20 -220.5 2014 16 12 3 7 54 3 131 4 3 -10795 122 21 -214.62 2014 16 14 3 7 54 3 133 4 5 -10796 122 22 -208.74 2014 16 16 3 7 54 3 135 4 7 -10797 122 23 -202.86 2014 20 15 3 7 55 3 134 4 6 -10798 122 24 -196.98 2014 20 13 3 7 55 3 132 4 4 -10799 122 25 -191.1 2014 20 11 3 7 55 3 130 4 2 -10800 122 26 -185.22 2014 20 14 3 7 55 3 133 4 5 -10801 122 27 -179.34 2014 20 16 3 7 55 3 135 4 7 -10802 122 28 -173.46 2014 20 18 3 7 55 3 137 4 9 -10803 122 29 -167.58 2014 24 17 3 7 56 3 136 4 8 -10804 122 30 -161.7 2014 24 15 3 7 56 3 134 4 6 -10805 122 31 -155.82 2014 24 13 3 7 56 3 132 4 4 -10806 122 32 -149.94 2014 24 12 3 7 56 3 131 4 3 -10807 122 33 -144.06 2014 24 14 3 7 56 3 133 4 5 -10808 122 34 -138.18 2014 24 16 3 7 56 3 135 4 7 -10809 122 35 -132.3 2014 28 17 3 7 57 3 136 4 8 -10810 122 36 -126.42 2014 28 15 3 7 57 3 134 4 6 -10811 122 37 -120.54 2014 28 13 3 7 57 3 132 4 4 -10812 122 38 -114.66 2014 28 12 3 7 57 3 131 4 3 -10813 122 39 -108.78 2014 28 14 3 7 57 3 133 4 5 -10814 122 40 -102.9 2014 28 16 3 7 57 3 135 4 7 -10815 122 41 -97.02 2014 32 15 3 7 58 3 134 4 6 -10816 122 42 -91.14 2014 32 13 3 7 58 3 132 4 4 -10817 122 43 -85.26 2014 32 11 3 7 58 3 130 4 2 -10818 122 44 -79.38 2014 32 14 3 7 58 3 133 4 5 -10819 122 45 -73.5 2014 32 16 3 7 58 3 135 4 7 -10820 122 46 -67.62 2014 36 15 3 7 59 3 134 4 6 -10821 122 47 -61.74 2014 36 13 3 7 59 3 132 4 4 -10822 122 48 -55.86 2014 36 11 3 7 59 3 130 4 2 -10823 122 49 -49.98 2014 36 12 3 7 59 3 131 4 3 -10824 122 50 -44.1 2014 36 14 3 7 59 3 133 4 5 -10825 122 51 -38.22 2014 36 16 3 7 59 3 135 4 7 -10826 122 52 -32.34 2014 40 15 3 7 60 3 134 4 6 -10827 122 53 -26.46 2014 40 13 3 7 60 3 132 4 4 -10828 122 54 -20.58 2014 40 11 3 7 60 3 130 4 2 -10829 122 55 -14.7 2014 40 12 3 7 60 3 131 4 3 -10830 122 56 -8.82 2014 40 14 3 7 60 3 133 4 5 -10831 122 57 -2.94 2014 40 16 3 7 60 3 135 4 7 -10832 122 58 2.94 2014 44 15 3 7 61 3 134 4 6 -10833 122 59 8.82 2014 44 13 3 7 61 3 132 4 4 -10834 122 60 14.7 2014 44 11 3 7 61 3 130 4 2 -10835 122 61 20.58 2014 44 12 3 7 61 3 131 4 3 -10836 122 62 26.46 2014 44 14 3 7 61 3 133 4 5 -10837 122 63 32.34 2014 44 16 3 7 61 3 135 4 7 -10838 122 64 38.22 2014 48 15 3 7 62 3 134 4 6 -10839 122 65 44.1 2014 48 13 3 7 62 3 132 4 4 -10840 122 66 49.98 2014 48 11 3 7 62 3 130 4 2 -10841 122 67 55.86 2014 48 12 3 7 62 3 131 4 3 -10842 122 68 61.74 2014 48 14 3 7 62 3 133 4 5 -10843 122 69 67.62 2014 48 16 3 7 62 3 135 4 7 -10844 122 70 73.5 2014 52 15 3 7 63 3 134 4 6 -10845 122 71 79.38 2014 52 13 3 7 63 3 132 4 4 -10846 122 72 85.26 2014 52 12 3 7 63 3 131 4 3 -10847 122 73 91.14 2014 52 14 3 7 63 3 133 4 5 -10848 122 74 97.02 2014 52 16 3 7 63 3 135 4 7 -10849 122 75 102.9 2014 56 15 3 7 64 3 134 4 6 -10850 122 76 108.78 2014 56 13 3 7 64 3 132 4 4 -10851 122 77 114.66 2014 56 11 3 7 64 3 130 4 2 -10852 122 78 120.54 2014 56 14 3 7 64 3 133 4 5 -10853 122 79 126.42 2014 56 16 3 7 64 3 135 4 7 -10854 122 80 132.3 2014 56 18 3 7 64 3 137 4 9 -10855 122 81 138.18 2014 60 15 3 7 65 3 134 4 6 -10856 122 82 144.06 2014 60 13 3 7 65 3 132 4 4 -10857 122 83 149.94 2014 60 11 3 7 65 3 130 4 2 -10858 122 84 155.82 2014 60 14 3 7 65 3 133 4 5 -10859 122 85 161.7 2014 60 16 3 7 65 3 135 4 7 -10860 122 86 167.58 2014 60 18 3 7 65 3 137 4 9 -10861 122 87 173.46 2014 64 17 3 7 66 3 136 4 8 -10862 122 88 179.34 2014 64 15 3 7 66 3 134 4 6 -10863 122 89 185.22 2014 64 13 3 7 66 3 132 4 4 -10864 122 90 191.1 2014 64 12 3 7 66 3 131 4 3 -10865 122 91 196.98 2014 64 14 3 7 66 3 133 4 5 -10866 122 92 202.86 2014 64 16 3 7 66 3 135 4 7 -10867 122 93 208.74 2014 68 15 3 7 67 3 134 4 6 -10868 122 94 214.62 2014 68 13 3 7 67 3 132 4 4 -10869 122 95 220.5 2014 68 11 3 7 67 3 130 4 2 -10870 122 96 226.38 2014 68 12 3 7 67 3 131 4 3 -10871 122 97 232.26 2014 68 14 3 7 67 3 133 4 5 -10872 122 98 238.14 2014 68 16 3 7 67 3 135 4 7 -10873 122 99 244.02 2014 72 15 3 7 68 3 134 4 6 -10874 122 100 249.9 2014 72 13 3 7 68 3 132 4 4 -10875 122 101 255.78 2014 72 12 3 7 68 3 131 4 3 -10876 122 102 261.66 2014 72 14 3 7 68 3 133 4 5 -10877 122 103 267.54 2014 72 16 3 7 68 3 135 4 7 -10878 122 104 273.42 2014 76 15 3 7 69 3 134 4 6 -10879 122 105 279.3 2014 76 13 3 7 69 3 132 4 4 -10880 122 106 285.18 2014 76 11 3 7 69 3 130 4 2 -10881 122 107 291.06 2014 76 12 3 7 69 3 131 4 3 -10882 122 108 296.94 2014 76 14 3 7 69 3 133 4 5 -10883 122 109 302.82 2014 76 16 3 7 69 3 135 4 7 -10884 122 110 308.7 2014 80 17 3 7 70 3 136 4 8 -10885 122 111 314.58 2014 80 15 3 7 70 3 134 4 6 -10886 122 112 320.46 2014 80 13 3 7 70 3 132 4 4 -10887 122 113 326.34 2014 80 14 3 7 70 3 133 4 5 -10888 122 114 332.22 2014 80 16 3 7 70 3 135 4 7 -10889 122 115 338.1 2014 80 18 3 7 70 3 137 4 9 -10890 123 0 -338.1 2026 4 23 3 7 51 3 142 4 14 -10891 123 1 -332.22 2026 4 21 3 7 51 3 140 4 12 -10892 123 2 -326.34 2026 4 19 3 7 51 3 138 4 10 -10893 123 3 -320.46 2026 4 20 3 7 51 3 139 4 11 -10894 123 4 -314.58 2026 4 22 3 7 51 3 141 4 13 -10895 123 5 -308.7 2026 8 21 3 7 52 3 140 4 12 -10896 123 6 -302.82 2026 8 19 3 7 52 3 138 4 10 -10897 123 7 -296.94 2026 8 17 3 7 52 3 136 4 8 -10898 123 8 -291.06 2026 8 18 3 7 52 3 137 4 9 -10899 123 9 -285.18 2026 8 20 3 7 52 3 139 4 11 -10900 123 10 -279.3 2026 8 22 3 7 52 3 141 4 13 -10901 123 11 -273.42 2026 12 21 3 7 53 3 140 4 12 -10902 123 12 -267.54 2026 12 19 3 7 53 3 138 4 10 -10903 123 13 -261.66 2026 12 17 3 7 53 3 136 4 8 -10904 123 14 -255.78 2026 12 18 3 7 53 3 137 4 9 -10905 123 15 -249.9 2026 12 20 3 7 53 3 139 4 11 -10906 123 16 -244.02 2026 12 22 3 7 53 3 141 4 13 -10907 123 17 -238.14 2026 16 21 3 7 54 3 140 4 12 -10908 123 18 -232.26 2026 16 19 3 7 54 3 138 4 10 -10909 123 19 -226.38 2026 16 17 3 7 54 3 136 4 8 -10910 123 20 -220.5 2026 16 18 3 7 54 3 137 4 9 -10911 123 21 -214.62 2026 16 20 3 7 54 3 139 4 11 -10912 123 22 -208.74 2026 16 22 3 7 54 3 141 4 13 -10913 123 23 -202.86 2026 20 21 3 7 55 3 140 4 12 -10914 123 24 -196.98 2026 20 19 3 7 55 3 138 4 10 -10915 123 25 -191.1 2026 20 17 3 7 55 3 136 4 8 -10916 123 26 -185.22 2026 20 20 3 7 55 3 139 4 11 -10917 123 27 -179.34 2026 20 22 3 7 55 3 141 4 13 -10918 123 28 -173.46 2026 20 24 3 7 55 3 143 4 15 -10919 123 29 -167.58 2026 24 23 3 7 56 3 142 4 14 -10920 123 30 -161.7 2026 24 21 3 7 56 3 140 4 12 -10921 123 31 -155.82 2026 24 19 3 7 56 3 138 4 10 -10922 123 32 -149.94 2026 24 18 3 7 56 3 137 4 9 -10923 123 33 -144.06 2026 24 20 3 7 56 3 139 4 11 -10924 123 34 -138.18 2026 24 22 3 7 56 3 141 4 13 -10925 123 35 -132.3 2026 28 21 3 7 57 3 140 4 12 -10926 123 36 -126.42 2026 28 19 3 7 57 3 138 4 10 -10927 123 37 -120.54 2026 28 18 3 7 57 3 137 4 9 -10928 123 38 -114.66 2026 28 20 3 7 57 3 139 4 11 -10929 123 39 -108.78 2026 28 22 3 7 57 3 141 4 13 -10930 123 40 -102.9 2026 32 21 3 7 58 3 140 4 12 -10931 123 41 -97.02 2026 32 19 3 7 58 3 138 4 10 -10932 123 42 -91.14 2026 32 17 3 7 58 3 136 4 8 -10933 123 43 -85.26 2026 32 18 3 7 58 3 137 4 9 -10934 123 44 -79.38 2026 32 20 3 7 58 3 139 4 11 -10935 123 45 -73.5 2026 32 22 3 7 58 3 141 4 13 -10936 123 46 -67.62 2026 36 21 3 7 59 3 140 4 12 -10937 123 47 -61.74 2026 36 19 3 7 59 3 138 4 10 -10938 123 48 -55.86 2026 36 17 3 7 59 3 136 4 8 -10939 123 49 -49.98 2026 36 18 3 7 59 3 137 4 9 -10940 123 50 -44.1 2026 36 20 3 7 59 3 139 4 11 -10941 123 51 -38.22 2026 36 22 3 7 59 3 141 4 13 -10942 123 52 -32.34 2026 40 21 3 7 60 3 140 4 12 -10943 123 53 -26.46 2026 40 19 3 7 60 3 138 4 10 -10944 123 54 -20.58 2026 40 17 3 7 60 3 136 4 8 -10945 123 55 -14.7 2026 40 18 3 7 60 3 137 4 9 -10946 123 56 -8.82 2026 40 20 3 7 60 3 139 4 11 -10947 123 57 -2.94 2026 40 22 3 7 60 3 141 4 13 -10948 123 58 2.94 2026 44 21 3 7 61 3 140 4 12 -10949 123 59 8.82 2026 44 19 3 7 61 3 138 4 10 -10950 123 60 14.7 2026 44 17 3 7 61 3 136 4 8 -10951 123 61 20.58 2026 44 18 3 7 61 3 137 4 9 -10952 123 62 26.46 2026 44 20 3 7 61 3 139 4 11 -10953 123 63 32.34 2026 44 22 3 7 61 3 141 4 13 -10954 123 64 38.22 2026 48 21 3 7 62 3 140 4 12 -10955 123 65 44.1 2026 48 19 3 7 62 3 138 4 10 -10956 123 66 49.98 2026 48 17 3 7 62 3 136 4 8 -10957 123 67 55.86 2026 48 18 3 7 62 3 137 4 9 -10958 123 68 61.74 2026 48 20 3 7 62 3 139 4 11 -10959 123 69 67.62 2026 48 22 3 7 62 3 141 4 13 -10960 123 70 73.5 2026 52 21 3 7 63 3 140 4 12 -10961 123 71 79.38 2026 52 19 3 7 63 3 138 4 10 -10962 123 72 85.26 2026 52 17 3 7 63 3 136 4 8 -10963 123 73 91.14 2026 52 18 3 7 63 3 137 4 9 -10964 123 74 97.02 2026 52 20 3 7 63 3 139 4 11 -10965 123 75 102.9 2026 52 22 3 7 63 3 141 4 13 -10966 123 76 108.78 2026 56 21 3 7 64 3 140 4 12 -10967 123 77 114.66 2026 56 19 3 7 64 3 138 4 10 -10968 123 78 120.54 2026 56 17 3 7 64 3 136 4 8 -10969 123 79 126.42 2026 56 20 3 7 64 3 139 4 11 -10970 123 80 132.3 2026 56 22 3 7 64 3 141 4 13 -10971 123 81 138.18 2026 60 21 3 7 65 3 140 4 12 -10972 123 82 144.06 2026 60 19 3 7 65 3 138 4 10 -10973 123 83 149.94 2026 60 17 3 7 65 3 136 4 8 -10974 123 84 155.82 2026 60 20 3 7 65 3 139 4 11 -10975 123 85 161.7 2026 60 22 3 7 65 3 141 4 13 -10976 123 86 167.58 2026 60 24 3 7 65 3 143 4 15 -10977 123 87 173.46 2026 64 23 3 7 66 3 142 4 14 -10978 123 88 179.34 2026 64 21 3 7 66 3 140 4 12 -10979 123 89 185.22 2026 64 19 3 7 66 3 138 4 10 -10980 123 90 191.1 2026 64 18 3 7 66 3 137 4 9 -10981 123 91 196.98 2026 64 20 3 7 66 3 139 4 11 -10982 123 92 202.86 2026 64 22 3 7 66 3 141 4 13 -10983 123 93 208.74 2026 68 21 3 7 67 3 140 4 12 -10984 123 94 214.62 2026 68 19 3 7 67 3 138 4 10 -10985 123 95 220.5 2026 68 17 3 7 67 3 136 4 8 -10986 123 96 226.38 2026 68 18 3 7 67 3 137 4 9 -10987 123 97 232.26 2026 68 20 3 7 67 3 139 4 11 -10988 123 98 238.14 2026 68 22 3 7 67 3 141 4 13 -10989 123 99 244.02 2026 72 21 3 7 68 3 140 4 12 -10990 123 100 249.9 2026 72 19 3 7 68 3 138 4 10 -10991 123 101 255.78 2026 72 17 3 7 68 3 136 4 8 -10992 123 102 261.66 2026 72 18 3 7 68 3 137 4 9 -10993 123 103 267.54 2026 72 20 3 7 68 3 139 4 11 -10994 123 104 273.42 2026 72 22 3 7 68 3 141 4 13 -10995 123 105 279.3 2026 76 21 3 7 69 3 140 4 12 -10996 123 106 285.18 2026 76 19 3 7 69 3 138 4 10 -10997 123 107 291.06 2026 76 17 3 7 69 3 136 4 8 -10998 123 108 296.94 2026 76 18 3 7 69 3 137 4 9 -10999 123 109 302.82 2026 76 20 3 7 69 3 139 4 11 -11000 123 110 308.7 2026 76 22 3 7 69 3 141 4 13 -11001 123 111 314.58 2026 80 21 3 7 70 3 140 4 12 -11002 123 112 320.46 2026 80 19 3 7 70 3 138 4 10 -11003 123 113 326.34 2026 80 20 3 7 70 3 139 4 11 -11004 123 114 332.22 2026 80 22 3 7 70 3 141 4 13 -11005 123 115 338.1 2026 80 24 3 7 70 3 143 4 15 -11006 124 0 -343.98 2038 4 29 3 7 51 3 148 4 20 -11007 124 1 -338.1 2038 4 27 3 7 51 3 146 4 18 -11008 124 2 -332.22 2038 4 25 3 7 51 3 144 4 16 -11009 124 3 -326.34 2038 4 24 3 7 51 3 143 4 15 -11010 124 4 -320.46 2038 4 26 3 7 51 3 145 4 17 -11011 124 5 -314.58 2038 4 28 3 7 51 3 147 4 19 -11012 124 6 -308.7 2038 8 27 3 7 52 3 146 4 18 -11013 124 7 -302.82 2038 8 25 3 7 52 3 144 4 16 -11014 124 8 -296.94 2038 8 23 3 7 52 3 142 4 14 -11015 124 9 -291.06 2038 8 24 3 7 52 3 143 4 15 -11016 124 10 -285.18 2038 8 26 3 7 52 3 145 4 17 -11017 124 11 -279.3 2038 8 28 3 7 52 3 147 4 19 -11018 124 12 -273.42 2038 12 27 3 7 53 3 146 4 18 -11019 124 13 -267.54 2038 12 25 3 7 53 3 144 4 16 -11020 124 14 -261.66 2038 12 23 3 7 53 3 142 4 14 -11021 124 15 -255.78 2038 12 24 3 7 53 3 143 4 15 -11022 124 16 -249.9 2038 12 26 3 7 53 3 145 4 17 -11023 124 17 -244.02 2038 12 28 3 7 53 3 147 4 19 -11024 124 18 -238.14 2038 16 27 3 7 54 3 146 4 18 -11025 124 19 -232.26 2038 16 25 3 7 54 3 144 4 16 -11026 124 20 -226.38 2038 16 23 3 7 54 3 142 4 14 -11027 124 21 -220.5 2038 16 24 3 7 54 3 143 4 15 -11028 124 22 -214.62 2038 16 26 3 7 54 3 145 4 17 -11029 124 23 -208.74 2038 16 28 3 7 54 3 147 4 19 -11030 124 24 -202.86 2038 20 27 3 7 55 3 146 4 18 -11031 124 25 -196.98 2038 20 25 3 7 55 3 144 4 16 -11032 124 26 -191.1 2038 20 23 3 7 55 3 142 4 14 -11033 124 27 -185.22 2038 20 26 3 7 55 3 145 4 17 -11034 124 28 -179.34 2038 20 28 3 7 55 3 147 4 19 -11035 124 29 -173.46 2038 20 30 3 7 55 3 149 4 21 -11036 124 30 -167.58 2038 24 27 3 7 56 3 146 4 18 -11037 124 31 -161.7 2038 24 25 3 7 56 3 144 4 16 -11038 124 32 -155.82 2038 24 24 3 7 56 3 143 4 15 -11039 124 33 -149.94 2038 24 26 3 7 56 3 145 4 17 -11040 124 34 -144.06 2038 24 28 3 7 56 3 147 4 19 -11041 124 35 -138.18 2038 28 27 3 7 57 3 146 4 18 -11042 124 36 -132.3 2038 28 25 3 7 57 3 144 4 16 -11043 124 37 -126.42 2038 28 23 3 7 57 3 142 4 14 -11044 124 38 -120.54 2038 28 24 3 7 57 3 143 4 15 -11045 124 39 -114.66 2038 28 26 3 7 57 3 145 4 17 -11046 124 40 -108.78 2038 28 28 3 7 57 3 147 4 19 -11047 124 41 -102.9 2038 32 27 3 7 58 3 146 4 18 -11048 124 42 -97.02 2038 32 25 3 7 58 3 144 4 16 -11049 124 43 -91.14 2038 32 23 3 7 58 3 142 4 14 -11050 124 44 -85.26 2038 32 24 3 7 58 3 143 4 15 -11051 124 45 -79.38 2038 32 26 3 7 58 3 145 4 17 -11052 124 46 -73.5 2038 32 28 3 7 58 3 147 4 19 -11053 124 47 -67.62 2038 36 27 3 7 59 3 146 4 18 -11054 124 48 -61.74 2038 36 25 3 7 59 3 144 4 16 -11055 124 49 -55.86 2038 36 23 3 7 59 3 142 4 14 -11056 124 50 -49.98 2038 36 24 3 7 59 3 143 4 15 -11057 124 51 -44.1 2038 36 26 3 7 59 3 145 4 17 -11058 124 52 -38.22 2038 36 28 3 7 59 3 147 4 19 -11059 124 53 -32.34 2038 40 27 3 7 60 3 146 4 18 -11060 124 54 -26.46 2038 40 25 3 7 60 3 144 4 16 -11061 124 55 -20.58 2038 40 23 3 7 60 3 142 4 14 -11062 124 56 -14.7 2038 40 24 3 7 60 3 143 4 15 -11063 124 57 -8.82 2038 40 26 3 7 60 3 145 4 17 -11064 124 58 -2.94 2038 40 28 3 7 60 3 147 4 19 -11065 124 59 2.94 2038 44 27 3 7 61 3 146 4 18 -11066 124 60 8.82 2038 44 25 3 7 61 3 144 4 16 -11067 124 61 14.7 2038 44 23 3 7 61 3 142 4 14 -11068 124 62 20.58 2038 44 24 3 7 61 3 143 4 15 -11069 124 63 26.46 2038 44 26 3 7 61 3 145 4 17 -11070 124 64 32.34 2038 44 28 3 7 61 3 147 4 19 -11071 124 65 38.22 2038 48 27 3 7 62 3 146 4 18 -11072 124 66 44.1 2038 48 25 3 7 62 3 144 4 16 -11073 124 67 49.98 2038 48 23 3 7 62 3 142 4 14 -11074 124 68 55.86 2038 48 24 3 7 62 3 143 4 15 -11075 124 69 61.74 2038 48 26 3 7 62 3 145 4 17 -11076 124 70 67.62 2038 48 28 3 7 62 3 147 4 19 -11077 124 71 73.5 2038 52 27 3 7 63 3 146 4 18 -11078 124 72 79.38 2038 52 25 3 7 63 3 144 4 16 -11079 124 73 85.26 2038 52 23 3 7 63 3 142 4 14 -11080 124 74 91.14 2038 52 24 3 7 63 3 143 4 15 -11081 124 75 97.02 2038 52 26 3 7 63 3 145 4 17 -11082 124 76 102.9 2038 52 28 3 7 63 3 147 4 19 -11083 124 77 108.78 2038 56 27 3 7 64 3 146 4 18 -11084 124 78 114.66 2038 56 25 3 7 64 3 144 4 16 -11085 124 79 120.54 2038 56 23 3 7 64 3 142 4 14 -11086 124 80 126.42 2038 56 24 3 7 64 3 143 4 15 -11087 124 81 132.3 2038 56 26 3 7 64 3 145 4 17 -11088 124 82 138.18 2038 56 28 3 7 64 3 147 4 19 -11089 124 83 144.06 2038 60 27 3 7 65 3 146 4 18 -11090 124 84 149.94 2038 60 25 3 7 65 3 144 4 16 -11091 124 85 155.82 2038 60 23 3 7 65 3 142 4 14 -11092 124 86 161.7 2038 60 26 3 7 65 3 145 4 17 -11093 124 87 167.58 2038 60 28 3 7 65 3 147 4 19 -11094 124 88 173.46 2038 64 29 3 7 66 3 148 4 20 -11095 124 89 179.34 2038 64 27 3 7 66 3 146 4 18 -11096 124 90 185.22 2038 64 25 3 7 66 3 144 4 16 -11097 124 91 191.1 2038 64 24 3 7 66 3 143 4 15 -11098 124 92 196.98 2038 64 26 3 7 66 3 145 4 17 -11099 124 93 202.86 2038 64 28 3 7 66 3 147 4 19 -11100 124 94 208.74 2038 68 27 3 7 67 3 146 4 18 -11101 124 95 214.62 2038 68 25 3 7 67 3 144 4 16 -11102 124 96 220.5 2038 68 23 3 7 67 3 142 4 14 -11103 124 97 226.38 2038 68 24 3 7 67 3 143 4 15 -11104 124 98 232.26 2038 68 26 3 7 67 3 145 4 17 -11105 124 99 238.14 2038 68 28 3 7 67 3 147 4 19 -11106 124 100 244.02 2038 72 27 3 7 68 3 146 4 18 -11107 124 101 249.9 2038 72 25 3 7 68 3 144 4 16 -11108 124 102 255.78 2038 72 23 3 7 68 3 142 4 14 -11109 124 103 261.66 2038 72 24 3 7 68 3 143 4 15 -11110 124 104 267.54 2038 72 26 3 7 68 3 145 4 17 -11111 124 105 273.42 2038 72 28 3 7 68 3 147 4 19 -11112 124 106 279.3 2038 76 27 3 7 69 3 146 4 18 -11113 124 107 285.18 2038 76 25 3 7 69 3 144 4 16 -11114 124 108 291.06 2038 76 23 3 7 69 3 142 4 14 -11115 124 109 296.94 2038 76 24 3 7 69 3 143 4 15 -11116 124 110 302.82 2038 76 26 3 7 69 3 145 4 17 -11117 124 111 308.7 2038 76 28 3 7 69 3 147 4 19 -11118 124 112 314.58 2038 80 27 3 7 70 3 146 4 18 -11119 124 113 320.46 2038 80 25 3 7 70 3 144 4 16 -11120 124 114 326.34 2038 80 23 3 7 70 3 142 4 14 -11121 124 115 332.22 2038 80 26 3 7 70 3 145 4 17 -11122 124 116 338.1 2038 80 28 3 7 70 3 147 4 19 -11123 124 117 343.98 2038 80 30 3 7 70 3 149 4 21 -11124 125 0 -343.98 2050 4 35 3 7 51 3 154 4 26 -11125 125 1 -338.1 2050 4 33 3 7 51 3 152 4 24 -11126 125 2 -332.22 2050 4 31 3 7 51 3 150 4 22 -11127 125 3 -326.34 2050 4 30 3 7 51 3 149 4 21 -11128 125 4 -320.46 2050 4 32 3 7 51 3 151 4 23 -11129 125 5 -314.58 2050 4 34 3 7 51 3 153 4 25 -11130 125 6 -308.7 2050 8 33 3 7 52 3 152 4 24 -11131 125 7 -302.82 2050 8 31 3 7 52 3 150 4 22 -11132 125 8 -296.94 2050 8 29 3 7 52 3 148 4 20 -11133 125 9 -291.06 2050 8 30 3 7 52 3 149 4 21 -11134 125 10 -285.18 2050 8 32 3 7 52 3 151 4 23 -11135 125 11 -279.3 2050 8 34 3 7 52 3 153 4 25 -11136 125 12 -273.42 2050 12 33 3 7 53 3 152 4 24 -11137 125 13 -267.54 2050 12 31 3 7 53 3 150 4 22 -11138 125 14 -261.66 2050 12 29 3 7 53 3 148 4 20 -11139 125 15 -255.78 2050 12 30 3 7 53 3 149 4 21 -11140 125 16 -249.9 2050 12 32 3 7 53 3 151 4 23 -11141 125 17 -244.02 2050 12 34 3 7 53 3 153 4 25 -11142 125 18 -238.14 2050 16 33 3 7 54 3 152 4 24 -11143 125 19 -232.26 2050 16 31 3 7 54 3 150 4 22 -11144 125 20 -226.38 2050 16 29 3 7 54 3 148 4 20 -11145 125 21 -220.5 2050 16 30 3 7 54 3 149 4 21 -11146 125 22 -214.62 2050 16 32 3 7 54 3 151 4 23 -11147 125 23 -208.74 2050 16 34 3 7 54 3 153 4 25 -11148 125 24 -202.86 2050 20 33 3 7 55 3 152 4 24 -11149 125 25 -196.98 2050 20 31 3 7 55 3 150 4 22 -11150 125 26 -191.1 2050 20 29 3 7 55 3 148 4 20 -11151 125 27 -185.22 2050 20 32 3 7 55 3 151 4 23 -11152 125 28 -179.34 2050 20 34 3 7 55 3 153 4 25 -11153 125 29 -173.46 2050 24 33 3 7 56 3 152 4 24 -11154 125 30 -167.58 2050 24 31 3 7 56 3 150 4 22 -11155 125 31 -161.7 2050 24 29 3 7 56 3 148 4 20 -11156 125 32 -155.82 2050 24 30 3 7 56 3 149 4 21 -11157 125 33 -149.94 2050 24 32 3 7 56 3 151 4 23 -11158 125 34 -144.06 2050 24 34 3 7 56 3 153 4 25 -11159 125 35 -138.18 2050 28 33 3 7 57 3 152 4 24 -11160 125 36 -132.3 2050 28 31 3 7 57 3 150 4 22 -11161 125 37 -126.42 2050 28 29 3 7 57 3 148 4 20 -11162 125 38 -120.54 2050 28 30 3 7 57 3 149 4 21 -11163 125 39 -114.66 2050 28 32 3 7 57 3 151 4 23 -11164 125 40 -108.78 2050 28 34 3 7 57 3 153 4 25 -11165 125 41 -102.9 2050 32 33 3 7 58 3 152 4 24 -11166 125 42 -97.02 2050 32 31 3 7 58 3 150 4 22 -11167 125 43 -91.14 2050 32 29 3 7 58 3 148 4 20 -11168 125 44 -85.26 2050 32 30 3 7 58 3 149 4 21 -11169 125 45 -79.38 2050 32 32 3 7 58 3 151 4 23 -11170 125 46 -73.5 2050 32 34 3 7 58 3 153 4 25 -11171 125 47 -67.62 2050 36 33 3 7 59 3 152 4 24 -11172 125 48 -61.74 2050 36 31 3 7 59 3 150 4 22 -11173 125 49 -55.86 2050 36 29 3 7 59 3 148 4 20 -11174 125 50 -49.98 2050 36 30 3 7 59 3 149 4 21 -11175 125 51 -44.1 2050 36 32 3 7 59 3 151 4 23 -11176 125 52 -38.22 2050 36 34 3 7 59 3 153 4 25 -11177 125 53 -32.34 2050 40 33 3 7 60 3 152 4 24 -11178 125 54 -26.46 2050 40 31 3 7 60 3 150 4 22 -11179 125 55 -20.58 2050 40 29 3 7 60 3 148 4 20 -11180 125 56 -14.7 2050 40 30 3 7 60 3 149 4 21 -11181 125 57 -8.82 2050 40 32 3 7 60 3 151 4 23 -11182 125 58 -2.94 2050 40 34 3 7 60 3 153 4 25 -11183 125 59 2.94 2050 44 33 3 7 61 3 152 4 24 -11184 125 60 8.82 2050 44 31 3 7 61 3 150 4 22 -11185 125 61 14.7 2050 44 29 3 7 61 3 148 4 20 -11186 125 62 20.58 2050 44 30 3 7 61 3 149 4 21 -11187 125 63 26.46 2050 44 32 3 7 61 3 151 4 23 -11188 125 64 32.34 2050 44 34 3 7 61 3 153 4 25 -11189 125 65 38.22 2050 48 33 3 7 62 3 152 4 24 -11190 125 66 44.1 2050 48 31 3 7 62 3 150 4 22 -11191 125 67 49.98 2050 48 29 3 7 62 3 148 4 20 -11192 125 68 55.86 2050 48 30 3 7 62 3 149 4 21 -11193 125 69 61.74 2050 48 32 3 7 62 3 151 4 23 -11194 125 70 67.62 2050 48 34 3 7 62 3 153 4 25 -11195 125 71 73.5 2050 52 33 3 7 63 3 152 4 24 -11196 125 72 79.38 2050 52 31 3 7 63 3 150 4 22 -11197 125 73 85.26 2050 52 29 3 7 63 3 148 4 20 -11198 125 74 91.14 2050 52 30 3 7 63 3 149 4 21 -11199 125 75 97.02 2050 52 32 3 7 63 3 151 4 23 -11200 125 76 102.9 2050 52 34 3 7 63 3 153 4 25 -11201 125 77 108.78 2050 56 33 3 7 64 3 152 4 24 -11202 125 78 114.66 2050 56 31 3 7 64 3 150 4 22 -11203 125 79 120.54 2050 56 29 3 7 64 3 148 4 20 -11204 125 80 126.42 2050 56 30 3 7 64 3 149 4 21 -11205 125 81 132.3 2050 56 32 3 7 64 3 151 4 23 -11206 125 82 138.18 2050 56 34 3 7 64 3 153 4 25 -11207 125 83 144.06 2050 60 33 3 7 65 3 152 4 24 -11208 125 84 149.94 2050 60 31 3 7 65 3 150 4 22 -11209 125 85 155.82 2050 60 29 3 7 65 3 148 4 20 -11210 125 86 161.7 2050 60 30 3 7 65 3 149 4 21 -11211 125 87 167.58 2050 60 32 3 7 65 3 151 4 23 -11212 125 88 173.46 2050 60 34 3 7 65 3 153 4 25 -11213 125 89 179.34 2050 64 33 3 7 66 3 152 4 24 -11214 125 90 185.22 2050 64 31 3 7 66 3 150 4 22 -11215 125 91 191.1 2050 64 30 3 7 66 3 149 4 21 -11216 125 92 196.98 2050 64 32 3 7 66 3 151 4 23 -11217 125 93 202.86 2050 64 34 3 7 66 3 153 4 25 -11218 125 94 208.74 2050 68 33 3 7 67 3 152 4 24 -11219 125 95 214.62 2050 68 31 3 7 67 3 150 4 22 -11220 125 96 220.5 2050 68 29 3 7 67 3 148 4 20 -11221 125 97 226.38 2050 68 30 3 7 67 3 149 4 21 -11222 125 98 232.26 2050 68 32 3 7 67 3 151 4 23 -11223 125 99 238.14 2050 68 34 3 7 67 3 153 4 25 -11224 125 100 244.02 2050 72 33 3 7 68 3 152 4 24 -11225 125 101 249.9 2050 72 31 3 7 68 3 150 4 22 -11226 125 102 255.78 2050 72 29 3 7 68 3 148 4 20 -11227 125 103 261.66 2050 72 30 3 7 68 3 149 4 21 -11228 125 104 267.54 2050 72 32 3 7 68 3 151 4 23 -11229 125 105 273.42 2050 72 34 3 7 68 3 153 4 25 -11230 125 106 279.3 2050 76 33 3 7 69 3 152 4 24 -11231 125 107 285.18 2050 76 31 3 7 69 3 150 4 22 -11232 125 108 291.06 2050 76 29 3 7 69 3 148 4 20 -11233 125 109 296.94 2050 76 30 3 7 69 3 149 4 21 -11234 125 110 302.82 2050 76 32 3 7 69 3 151 4 23 -11235 125 111 308.7 2050 76 34 3 7 69 3 153 4 25 -11236 125 112 314.58 2050 80 33 3 7 70 3 152 4 24 -11237 125 113 320.46 2050 80 31 3 7 70 3 150 4 22 -11238 125 114 326.34 2050 80 29 3 7 70 3 148 4 20 -11239 125 115 332.22 2050 80 32 3 7 70 3 151 4 23 -11240 125 116 338.1 2050 80 34 3 7 70 3 153 4 25 -11241 125 117 343.98 2050 80 36 3 7 70 3 155 4 27 -11242 126 0 -343.98 2062 4 39 3 7 51 3 158 4 30 -11243 126 1 -338.1 2062 4 37 3 7 51 3 156 4 28 -11244 126 2 -332.22 2062 4 36 3 7 51 3 155 4 27 -11245 126 3 -326.34 2062 4 38 3 7 51 3 157 4 29 -11246 126 4 -320.46 2062 4 40 3 7 51 3 159 4 31 -11247 126 5 -314.58 2062 8 39 3 7 52 3 158 4 30 -11248 126 6 -308.7 2062 8 37 3 7 52 3 156 4 28 -11249 126 7 -302.82 2062 8 35 3 7 52 3 154 4 26 -11250 126 8 -296.94 2062 8 36 3 7 52 3 155 4 27 -11251 126 9 -291.06 2062 8 38 3 7 52 3 157 4 29 -11252 126 10 -285.18 2062 8 40 3 7 52 3 159 4 31 -11253 126 11 -279.3 2062 12 39 3 7 53 3 158 4 30 -11254 126 12 -273.42 2062 12 37 3 7 53 3 156 4 28 -11255 126 13 -267.54 2062 12 35 3 7 53 3 154 4 26 -11256 126 14 -261.66 2062 12 36 3 7 53 3 155 4 27 -11257 126 15 -255.78 2062 12 38 3 7 53 3 157 4 29 -11258 126 16 -249.9 2062 12 40 3 7 53 3 159 4 31 -11259 126 17 -244.02 2062 16 39 3 7 54 3 158 4 30 -11260 126 18 -238.14 2062 16 37 3 7 54 3 156 4 28 -11261 126 19 -232.26 2062 16 35 3 7 54 3 154 4 26 -11262 126 20 -226.38 2062 16 36 3 7 54 3 155 4 27 -11263 126 21 -220.5 2062 16 38 3 7 54 3 157 4 29 -11264 126 22 -214.62 2062 16 40 3 7 54 3 159 4 31 -11265 126 23 -208.74 2062 20 39 3 7 55 3 158 4 30 -11266 126 24 -202.86 2062 20 37 3 7 55 3 156 4 28 -11267 126 25 -196.98 2062 20 35 3 7 55 3 154 4 26 -11268 126 26 -191.1 2062 20 36 3 7 55 3 155 4 27 -11269 126 27 -185.22 2062 20 38 3 7 55 3 157 4 29 -11270 126 28 -179.34 2062 20 40 3 7 55 3 159 4 31 -11271 126 29 -173.46 2062 24 39 3 7 56 3 158 4 30 -11272 126 30 -167.58 2062 24 37 3 7 56 3 156 4 28 -11273 126 31 -161.7 2062 24 35 3 7 56 3 154 4 26 -11274 126 32 -155.82 2062 24 36 3 7 56 3 155 4 27 -11275 126 33 -149.94 2062 24 38 3 7 56 3 157 4 29 -11276 126 34 -144.06 2062 24 40 3 7 56 3 159 4 31 -11277 126 35 -138.18 2062 28 39 3 7 57 3 158 4 30 -11278 126 36 -132.3 2062 28 37 3 7 57 3 156 4 28 -11279 126 37 -126.42 2062 28 35 3 7 57 3 154 4 26 -11280 126 38 -120.54 2062 28 36 3 7 57 3 155 4 27 -11281 126 39 -114.66 2062 28 38 3 7 57 3 157 4 29 -11282 126 40 -108.78 2062 28 40 3 7 57 3 159 4 31 -11283 126 41 -102.9 2062 32 39 3 7 58 3 158 4 30 -11284 126 42 -97.02 2062 32 37 3 7 58 3 156 4 28 -11285 126 43 -91.14 2062 32 35 3 7 58 3 154 4 26 -11286 126 44 -85.26 2062 32 36 3 7 58 3 155 4 27 -11287 126 45 -79.38 2062 32 38 3 7 58 3 157 4 29 -11288 126 46 -73.5 2062 32 40 3 7 58 3 159 4 31 -11289 126 47 -67.62 2062 36 39 3 7 59 3 158 4 30 -11290 126 48 -61.74 2062 36 37 3 7 59 3 156 4 28 -11291 126 49 -55.86 2062 36 35 3 7 59 3 154 4 26 -11292 126 50 -49.98 2062 36 36 3 7 59 3 155 4 27 -11293 126 51 -44.1 2062 36 38 3 7 59 3 157 4 29 -11294 126 52 -38.22 2062 36 40 3 7 59 3 159 4 31 -11295 126 53 -32.34 2062 40 39 3 7 60 3 158 4 30 -11296 126 54 -26.46 2062 40 37 3 7 60 3 156 4 28 -11297 126 55 -20.58 2062 40 35 3 7 60 3 154 4 26 -11298 126 56 -14.7 2062 40 36 3 7 60 3 155 4 27 -11299 126 57 -8.82 2062 40 38 3 7 60 3 157 4 29 -11300 126 58 -2.94 2062 40 40 3 7 60 3 159 4 31 -11301 126 59 2.94 2062 44 39 3 7 61 3 158 4 30 -11302 126 60 8.82 2062 44 37 3 7 61 3 156 4 28 -11303 126 61 14.7 2062 44 35 3 7 61 3 154 4 26 -11304 126 62 20.58 2062 44 36 3 7 61 3 155 4 27 -11305 126 63 26.46 2062 44 38 3 7 61 3 157 4 29 -11306 126 64 32.34 2062 44 40 3 7 61 3 159 4 31 -11307 126 65 38.22 2062 48 39 3 7 62 3 158 4 30 -11308 126 66 44.1 2062 48 37 3 7 62 3 156 4 28 -11309 126 67 49.98 2062 48 35 3 7 62 3 154 4 26 -11310 126 68 55.86 2062 48 36 3 7 62 3 155 4 27 -11311 126 69 61.74 2062 48 38 3 7 62 3 157 4 29 -11312 126 70 67.62 2062 48 40 3 7 62 3 159 4 31 -11313 126 71 73.5 2062 52 39 3 7 63 3 158 4 30 -11314 126 72 79.38 2062 52 37 3 7 63 3 156 4 28 -11315 126 73 85.26 2062 52 35 3 7 63 3 154 4 26 -11316 126 74 91.14 2062 52 36 3 7 63 3 155 4 27 -11317 126 75 97.02 2062 52 38 3 7 63 3 157 4 29 -11318 126 76 102.9 2062 52 40 3 7 63 3 159 4 31 -11319 126 77 108.78 2062 56 39 3 7 64 3 158 4 30 -11320 126 78 114.66 2062 56 37 3 7 64 3 156 4 28 -11321 126 79 120.54 2062 56 35 3 7 64 3 154 4 26 -11322 126 80 126.42 2062 56 36 3 7 64 3 155 4 27 -11323 126 81 132.3 2062 56 38 3 7 64 3 157 4 29 -11324 126 82 138.18 2062 56 40 3 7 64 3 159 4 31 -11325 126 83 144.06 2062 60 39 3 7 65 3 158 4 30 -11326 126 84 149.94 2062 60 37 3 7 65 3 156 4 28 -11327 126 85 155.82 2062 60 35 3 7 65 3 154 4 26 -11328 126 86 161.7 2062 60 36 3 7 65 3 155 4 27 -11329 126 87 167.58 2062 60 38 3 7 65 3 157 4 29 -11330 126 88 173.46 2062 60 40 3 7 65 3 159 4 31 -11331 126 89 179.34 2062 64 39 3 7 66 3 158 4 30 -11332 126 90 185.22 2062 64 37 3 7 66 3 156 4 28 -11333 126 91 191.1 2062 64 35 3 7 66 3 154 4 26 -11334 126 92 196.98 2062 64 36 3 7 66 3 155 4 27 -11335 126 93 202.86 2062 64 38 3 7 66 3 157 4 29 -11336 126 94 208.74 2062 64 40 3 7 66 3 159 4 31 -11337 126 95 214.62 2062 68 39 3 7 67 3 158 4 30 -11338 126 96 220.5 2062 68 37 3 7 67 3 156 4 28 -11339 126 97 226.38 2062 68 35 3 7 67 3 154 4 26 -11340 126 98 232.26 2062 68 36 3 7 67 3 155 4 27 -11341 126 99 238.14 2062 68 38 3 7 67 3 157 4 29 -11342 126 100 244.02 2062 68 40 3 7 67 3 159 4 31 -11343 126 101 249.9 2062 72 39 3 7 68 3 158 4 30 -11344 126 102 255.78 2062 72 37 3 7 68 3 156 4 28 -11345 126 103 261.66 2062 72 35 3 7 68 3 154 4 26 -11346 126 104 267.54 2062 72 36 3 7 68 3 155 4 27 -11347 126 105 273.42 2062 72 38 3 7 68 3 157 4 29 -11348 126 106 279.3 2062 72 40 3 7 68 3 159 4 31 -11349 126 107 285.18 2062 76 39 3 7 69 3 158 4 30 -11350 126 108 291.06 2062 76 37 3 7 69 3 156 4 28 -11351 126 109 296.94 2062 76 35 3 7 69 3 154 4 26 -11352 126 110 302.82 2062 76 36 3 7 69 3 155 4 27 -11353 126 111 308.7 2062 76 38 3 7 69 3 157 4 29 -11354 126 112 314.58 2062 76 40 3 7 69 3 159 4 31 -11355 126 113 320.46 2062 80 39 3 7 70 3 158 4 30 -11356 126 114 326.34 2062 80 37 3 7 70 3 156 4 28 -11357 126 115 332.22 2062 80 35 3 7 70 3 154 4 26 -11358 126 116 338.1 2062 80 38 3 7 70 3 157 4 29 -11359 126 117 343.98 2062 80 40 3 7 70 3 159 4 31 +8160 97 0 -282.72 1714 1 3 3 6 51 0 2 0 2 +8161 97 1 -276.64 1714 1 1 3 6 51 0 0 0 0 +8162 97 2 -270.56 1714 1 2 3 6 51 0 1 0 1 +8163 97 3 -264.48 1714 1 4 3 6 51 0 3 0 3 +8164 97 4 -258.4 1714 5 3 3 6 52 0 2 0 2 +8165 97 5 -252.32 1714 5 1 3 6 52 0 0 0 0 +8166 97 6 -246.24 1714 5 2 3 6 52 0 1 0 1 +8167 97 7 -240.16 1714 5 4 3 6 52 0 3 0 3 +8168 97 8 -234.08 1714 5 6 3 6 52 0 5 0 5 +8169 97 9 -228 1714 9 5 3 6 53 0 4 0 4 +8170 97 10 -221.92 1714 9 3 3 6 53 0 2 0 2 +8171 97 11 -215.84 1714 9 1 3 6 53 0 0 0 0 +8172 97 12 -209.76 1714 9 2 3 6 53 0 1 0 1 +8173 97 13 -203.68 1714 9 4 3 6 53 0 3 0 3 +8174 97 14 -197.6 1714 13 3 3 6 54 0 2 0 2 +8175 97 15 -191.52 1714 13 1 3 6 54 0 0 0 0 +8176 97 16 -185.44 1714 13 2 3 6 54 0 1 0 1 +8177 97 17 -179.36 1714 13 4 3 6 54 0 3 0 3 +8178 97 18 -173.28 1714 13 6 3 6 54 0 5 0 5 +8179 97 19 -167.2 1714 17 3 3 6 55 0 2 0 2 +8180 97 20 -161.12 1714 17 1 3 6 55 0 0 0 0 +8181 97 21 -155.04 1714 17 2 3 6 55 0 1 0 1 +8182 97 22 -148.96 1714 17 4 3 6 55 0 3 0 3 +8183 97 23 -142.88 1714 21 5 3 6 56 0 4 0 4 +8184 97 24 -136.8 1714 21 3 3 6 56 0 2 0 2 +8185 97 25 -130.72 1714 21 1 3 6 56 0 0 0 0 +8186 97 26 -124.64 1714 21 2 3 6 56 0 1 0 1 +8187 97 27 -118.56 1714 21 4 3 6 56 0 3 0 3 +8188 97 28 -112.48 1714 25 3 3 6 57 0 2 0 2 +8189 97 29 -106.4 1714 25 1 3 6 57 0 0 0 0 +8190 97 30 -100.32 1714 25 2 3 6 57 0 1 0 1 +8191 97 31 -94.24 1714 25 4 3 6 57 0 3 0 3 +8192 97 32 -88.16 1714 25 6 3 6 57 0 5 0 5 +8193 97 33 -82.08 1714 29 3 3 6 58 0 2 0 2 +8194 97 34 -76 1714 29 1 3 6 58 0 0 0 0 +8195 97 35 -69.92 1714 29 2 3 6 58 0 1 0 1 +8196 97 36 -63.84 1714 29 4 3 6 58 0 3 0 3 +8197 97 37 -57.76 1714 33 5 3 6 59 0 4 0 4 +8198 97 38 -51.68 1714 33 3 3 6 59 0 2 0 2 +8199 97 39 -45.6 1714 33 1 3 6 59 0 0 0 0 +8200 97 40 -39.52 1714 33 2 3 6 59 0 1 0 1 +8201 97 41 -33.44 1714 33 4 3 6 59 0 3 0 3 +8202 97 42 -27.36 1714 37 5 3 6 60 0 4 0 4 +8203 97 43 -21.28 1714 37 3 3 6 60 0 2 0 2 +8204 97 44 -15.2 1714 37 1 3 6 60 0 0 0 0 +8205 97 45 -9.12 1714 37 2 3 6 60 0 1 0 1 +8206 97 46 -3.04 1714 37 4 3 6 60 0 3 0 3 +8207 97 47 3.04 1714 41 3 3 6 61 0 2 0 2 +8208 97 48 9.12 1714 41 1 3 6 61 0 0 0 0 +8209 97 49 15.2 1714 41 2 3 6 61 0 1 0 1 +8210 97 50 21.28 1714 41 4 3 6 61 0 3 0 3 +8211 97 51 27.36 1714 41 6 3 6 61 0 5 0 5 +8212 97 52 33.44 1714 45 3 3 6 62 0 2 0 2 +8213 97 53 39.52 1714 45 1 3 6 62 0 0 0 0 +8214 97 54 45.6 1714 45 2 3 6 62 0 1 0 1 +8215 97 55 51.68 1714 45 4 3 6 62 0 3 0 3 +8216 97 56 57.76 1714 45 6 3 6 62 0 5 0 5 +8217 97 57 63.84 1714 49 3 3 6 63 0 2 0 2 +8218 97 58 69.92 1714 49 1 3 6 63 0 0 0 0 +8219 97 59 76 1714 49 2 3 6 63 0 1 0 1 +8220 97 60 82.08 1714 49 4 3 6 63 0 3 0 3 +8221 97 61 88.16 1714 53 5 3 6 64 0 4 0 4 +8222 97 62 94.24 1714 53 3 3 6 64 0 2 0 2 +8223 97 63 100.32 1714 53 1 3 6 64 0 0 0 0 +8224 97 64 106.4 1714 53 2 3 6 64 0 1 0 1 +8225 97 65 112.48 1714 53 4 3 6 64 0 3 0 3 +8226 97 66 118.56 1714 57 3 3 6 65 0 2 0 2 +8227 97 67 124.64 1714 57 1 3 6 65 0 0 0 0 +8228 97 68 130.72 1714 57 2 3 6 65 0 1 0 1 +8229 97 69 136.8 1714 57 4 3 6 65 0 3 0 3 +8230 97 70 142.88 1714 57 6 3 6 65 0 5 0 5 +8231 97 71 148.96 1714 61 3 3 6 66 0 2 0 2 +8232 97 72 155.04 1714 61 1 3 6 66 0 0 0 0 +8233 97 73 161.12 1714 61 2 3 6 66 0 1 0 1 +8234 97 74 167.2 1714 61 4 3 6 66 0 3 0 3 +8235 97 75 173.28 1714 65 5 3 6 67 0 4 0 4 +8236 97 76 179.36 1714 65 3 3 6 67 0 2 0 2 +8237 97 77 185.44 1714 65 1 3 6 67 0 0 0 0 +8238 97 78 191.52 1714 65 2 3 6 67 0 1 0 1 +8239 97 79 197.6 1714 65 4 3 6 67 0 3 0 3 +8240 97 80 203.68 1714 69 3 3 6 68 0 2 0 2 +8241 97 81 209.76 1714 69 1 3 6 68 0 0 0 0 +8242 97 82 215.84 1714 69 2 3 6 68 0 1 0 1 +8243 97 83 221.92 1714 69 4 3 6 68 0 3 0 3 +8244 97 84 228 1714 69 6 3 6 68 0 5 0 5 +8245 97 85 234.08 1714 73 5 3 6 69 0 4 0 4 +8246 97 86 240.16 1714 73 3 3 6 69 0 2 0 2 +8247 97 87 246.24 1714 73 1 3 6 69 0 0 0 0 +8248 97 88 252.32 1714 73 2 3 6 69 0 1 0 1 +8249 97 89 258.4 1714 73 4 3 6 69 0 3 0 3 +8250 97 90 264.48 1714 77 3 3 6 70 0 2 0 2 +8251 97 91 270.56 1714 77 1 3 6 70 0 0 0 0 +8252 97 92 276.64 1714 77 2 3 6 70 0 1 0 1 +8253 97 93 282.72 1714 77 4 3 6 70 0 3 0 3 +8254 98 0 -288.8 1726 1 7 3 6 51 0 6 0 6 +8255 98 1 -282.72 1726 1 5 3 6 51 0 4 0 4 +8256 98 2 -276.64 1726 1 6 3 6 51 0 5 0 5 +8257 98 3 -270.56 1726 1 8 3 6 51 0 7 0 7 +8258 98 4 -264.48 1726 1 10 3 6 51 0 9 0 9 +8259 98 5 -258.4 1726 5 9 3 6 52 0 8 0 8 +8260 98 6 -252.32 1726 5 7 3 6 52 0 6 0 6 +8261 98 7 -246.24 1726 5 5 3 6 52 0 4 0 4 +8262 98 8 -240.16 1726 5 8 3 6 52 0 7 0 7 +8263 98 9 -234.08 1726 5 10 3 6 52 0 9 0 9 +8264 98 10 -228 1726 9 9 3 6 53 0 8 0 8 +8265 98 11 -221.92 1726 9 7 3 6 53 0 6 0 6 +8266 98 12 -215.84 1726 9 6 3 6 53 0 5 0 5 +8267 98 13 -209.76 1726 9 8 3 6 53 0 7 0 7 +8268 98 14 -203.68 1726 9 10 3 6 53 0 9 0 9 +8269 98 15 -197.6 1726 13 7 3 6 54 0 6 0 6 +8270 98 16 -191.52 1726 13 5 3 6 54 0 4 0 4 +8271 98 17 -185.44 1726 13 8 3 6 54 0 7 0 7 +8272 98 18 -179.36 1726 13 10 3 6 54 0 9 0 9 +8273 98 19 -173.28 1726 17 9 3 6 55 0 8 0 8 +8274 98 20 -167.2 1726 17 7 3 6 55 0 6 0 6 +8275 98 21 -161.12 1726 17 5 3 6 55 0 4 0 4 +8276 98 22 -155.04 1726 17 6 3 6 55 0 5 0 5 +8277 98 23 -148.96 1726 17 8 3 6 55 0 7 0 7 +8278 98 24 -142.88 1726 21 9 3 6 56 0 8 0 8 +8279 98 25 -136.8 1726 21 7 3 6 56 0 6 0 6 +8280 98 26 -130.72 1726 21 6 3 6 56 0 5 0 5 +8281 98 27 -124.64 1726 21 8 3 6 56 0 7 0 7 +8282 98 28 -118.56 1726 21 10 3 6 56 0 9 0 9 +8283 98 29 -112.48 1726 25 9 3 6 57 0 8 0 8 +8284 98 30 -106.4 1726 25 7 3 6 57 0 6 0 6 +8285 98 31 -100.32 1726 25 5 3 6 57 0 4 0 4 +8286 98 32 -94.24 1726 25 8 3 6 57 0 7 0 7 +8287 98 33 -88.16 1726 25 10 3 6 57 0 9 0 9 +8288 98 34 -82.08 1726 29 7 3 6 58 0 6 0 6 +8289 98 35 -76 1726 29 5 3 6 58 0 4 0 4 +8290 98 36 -69.92 1726 29 6 3 6 58 0 5 0 5 +8291 98 37 -63.84 1726 29 8 3 6 58 0 7 0 7 +8292 98 38 -57.76 1726 33 9 3 6 59 0 8 0 8 +8293 98 39 -51.68 1726 33 7 3 6 59 0 6 0 6 +8294 98 40 -45.6 1726 33 6 3 6 59 0 5 0 5 +8295 98 41 -39.52 1726 33 8 3 6 59 0 7 0 7 +8296 98 42 -33.44 1726 33 10 3 6 59 0 9 0 9 +8297 98 43 -27.36 1726 37 9 3 6 60 0 8 0 8 +8298 98 44 -21.28 1726 37 7 3 6 60 0 6 0 6 +8299 98 45 -15.2 1726 37 6 3 6 60 0 5 0 5 +8300 98 46 -9.12 1726 37 8 3 6 60 0 7 0 7 +8301 98 47 -3.04 1726 37 10 3 6 60 0 9 0 9 +8302 98 48 3.04 1726 41 9 3 6 61 0 8 0 8 +8303 98 49 9.12 1726 41 7 3 6 61 0 6 0 6 +8304 98 50 15.2 1726 41 5 3 6 61 0 4 0 4 +8305 98 51 21.28 1726 41 8 3 6 61 0 7 0 7 +8306 98 52 27.36 1726 41 10 3 6 61 0 9 0 9 +8307 98 53 33.44 1726 45 9 3 6 62 0 8 0 8 +8308 98 54 39.52 1726 45 7 3 6 62 0 6 0 6 +8309 98 55 45.6 1726 45 5 3 6 62 0 4 0 4 +8310 98 56 51.68 1726 45 8 3 6 62 0 7 0 7 +8311 98 57 57.76 1726 45 10 3 6 62 0 9 0 9 +8312 98 58 63.84 1726 49 7 3 6 63 0 6 0 6 +8313 98 59 69.92 1726 49 5 3 6 63 0 4 0 4 +8314 98 60 76 1726 49 6 3 6 63 0 5 0 5 +8315 98 61 82.08 1726 49 8 3 6 63 0 7 0 7 +8316 98 62 88.16 1726 53 9 3 6 64 0 8 0 8 +8317 98 63 94.24 1726 53 7 3 6 64 0 6 0 6 +8318 98 64 100.32 1726 53 6 3 6 64 0 5 0 5 +8319 98 65 106.4 1726 53 8 3 6 64 0 7 0 7 +8320 98 66 112.48 1726 53 10 3 6 64 0 9 0 9 +8321 98 67 118.56 1726 57 9 3 6 65 0 8 0 8 +8322 98 68 124.64 1726 57 7 3 6 65 0 6 0 6 +8323 98 69 130.72 1726 57 5 3 6 65 0 4 0 4 +8324 98 70 136.8 1726 57 8 3 6 65 0 7 0 7 +8325 98 71 142.88 1726 57 10 3 6 65 0 9 0 9 +8326 98 72 148.96 1726 61 7 3 6 66 0 6 0 6 +8327 98 73 155.04 1726 61 5 3 6 66 0 4 0 4 +8328 98 74 161.12 1726 61 6 3 6 66 0 5 0 5 +8329 98 75 167.2 1726 61 8 3 6 66 0 7 0 7 +8330 98 76 173.28 1726 61 10 3 6 66 0 9 0 9 +8331 98 77 179.36 1726 65 9 3 6 67 0 8 0 8 +8332 98 78 185.44 1726 65 7 3 6 67 0 6 0 6 +8333 98 79 191.52 1726 65 6 3 6 67 0 5 0 5 +8334 98 80 197.6 1726 65 8 3 6 67 0 7 0 7 +8335 98 81 203.68 1726 69 9 3 6 68 0 8 0 8 +8336 98 82 209.76 1726 69 7 3 6 68 0 6 0 6 +8337 98 83 215.84 1726 69 5 3 6 68 0 4 0 4 +8338 98 84 221.92 1726 69 8 3 6 68 0 7 0 7 +8339 98 85 228 1726 69 10 3 6 68 0 9 0 9 +8340 98 86 234.08 1726 73 9 3 6 69 0 8 0 8 +8341 98 87 240.16 1726 73 7 3 6 69 0 6 0 6 +8342 98 88 246.24 1726 73 6 3 6 69 0 5 0 5 +8343 98 89 252.32 1726 73 8 3 6 69 0 7 0 7 +8344 98 90 258.4 1726 73 10 3 6 69 0 9 0 9 +8345 98 91 264.48 1726 77 9 3 6 70 0 8 0 8 +8346 98 92 270.56 1726 77 7 3 6 70 0 6 0 6 +8347 98 93 276.64 1726 77 5 3 6 70 0 4 0 4 +8348 98 94 282.72 1726 77 6 3 6 70 0 5 0 5 +8349 98 95 288.8 1726 77 8 3 6 70 0 7 0 7 +8350 99 0 -288.8 1738 1 13 3 6 51 0 12 0 12 +8351 99 1 -282.72 1738 1 11 3 6 51 0 10 0 10 +8352 99 2 -276.64 1738 1 9 3 6 51 0 8 0 8 +8353 99 3 -270.56 1738 1 12 3 6 51 0 11 0 11 +8354 99 4 -264.48 1738 1 14 3 6 51 0 13 0 13 +8355 99 5 -258.4 1738 5 13 3 6 52 0 12 0 12 +8356 99 6 -252.32 1738 5 11 3 6 52 0 10 0 10 +8357 99 7 -246.24 1738 5 12 3 6 52 0 11 0 11 +8358 99 8 -240.16 1738 5 14 3 6 52 0 13 0 13 +8359 99 9 -234.08 1738 5 16 3 6 52 0 15 0 15 +8360 99 10 -228 1738 9 13 3 6 53 0 12 0 12 +8361 99 11 -221.92 1738 9 11 3 6 53 0 10 0 10 +8362 99 12 -215.84 1738 9 12 3 6 53 0 11 0 11 +8363 99 13 -209.76 1738 9 14 3 6 53 0 13 0 13 +8364 99 14 -203.68 1738 13 13 3 6 54 0 12 0 12 +8365 99 15 -197.6 1738 13 11 3 6 54 0 10 0 10 +8366 99 16 -191.52 1738 13 9 3 6 54 0 8 0 8 +8367 99 17 -185.44 1738 13 12 3 6 54 0 11 0 11 +8368 99 18 -179.36 1738 13 14 3 6 54 0 13 0 13 +8369 99 19 -173.28 1738 17 13 3 6 55 0 12 0 12 +8370 99 20 -167.2 1738 17 11 3 6 55 0 10 0 10 +8371 99 21 -161.12 1738 17 10 3 6 55 0 9 0 9 +8372 99 22 -155.04 1738 17 12 3 6 55 0 11 0 11 +8373 99 23 -148.96 1738 17 14 3 6 55 0 13 0 13 +8374 99 24 -142.88 1738 21 15 3 6 56 0 14 0 14 +8375 99 25 -136.8 1738 21 13 3 6 56 0 12 0 12 +8376 99 26 -130.72 1738 21 11 3 6 56 0 10 0 10 +8377 99 27 -124.64 1738 21 12 3 6 56 0 11 0 11 +8378 99 28 -118.56 1738 21 14 3 6 56 0 13 0 13 +8379 99 29 -112.48 1738 25 13 3 6 57 0 12 0 12 +8380 99 30 -106.4 1738 25 11 3 6 57 0 10 0 10 +8381 99 31 -100.32 1738 25 12 3 6 57 0 11 0 11 +8382 99 32 -94.24 1738 25 14 3 6 57 0 13 0 13 +8383 99 33 -88.16 1738 25 16 3 6 57 0 15 0 15 +8384 99 34 -82.08 1738 29 11 3 6 58 0 10 0 10 +8385 99 35 -76 1738 29 9 3 6 58 0 8 0 8 +8386 99 36 -69.92 1738 29 10 3 6 58 0 9 0 9 +8387 99 37 -63.84 1738 29 12 3 6 58 0 11 0 11 +8388 99 38 -57.76 1738 33 15 3 6 59 0 14 0 14 +8389 99 39 -51.68 1738 33 13 3 6 59 0 12 0 12 +8390 99 40 -45.6 1738 33 11 3 6 59 0 10 0 10 +8391 99 41 -39.52 1738 33 12 3 6 59 0 11 0 11 +8392 99 42 -33.44 1738 33 14 3 6 59 0 13 0 13 +8393 99 43 -27.36 1738 37 15 3 6 60 0 14 0 14 +8394 99 44 -21.28 1738 37 13 3 6 60 0 12 0 12 +8395 99 45 -15.2 1738 37 11 3 6 60 0 10 0 10 +8396 99 46 -9.12 1738 37 12 3 6 60 0 11 0 11 +8397 99 47 -3.04 1738 37 14 3 6 60 0 13 0 13 +8398 99 48 3.04 1738 41 13 3 6 61 0 12 0 12 +8399 99 49 9.12 1738 41 11 3 6 61 0 10 0 10 +8400 99 50 15.2 1738 41 12 3 6 61 0 11 0 11 +8401 99 51 21.28 1738 41 14 3 6 61 0 13 0 13 +8402 99 52 27.36 1738 41 16 3 6 61 0 15 0 15 +8403 99 53 33.44 1738 45 13 3 6 62 0 12 0 12 +8404 99 54 39.52 1738 45 11 3 6 62 0 10 0 10 +8405 99 55 45.6 1738 45 12 3 6 62 0 11 0 11 +8406 99 56 51.68 1738 45 14 3 6 62 0 13 0 13 +8407 99 57 57.76 1738 45 16 3 6 62 0 15 0 15 +8408 99 58 63.84 1738 49 11 3 6 63 0 10 0 10 +8409 99 59 69.92 1738 49 9 3 6 63 0 8 0 8 +8410 99 60 76 1738 49 10 3 6 63 0 9 0 9 +8411 99 61 82.08 1738 49 12 3 6 63 0 11 0 11 +8412 99 62 88.16 1738 53 15 3 6 64 0 14 0 14 +8413 99 63 94.24 1738 53 13 3 6 64 0 12 0 12 +8414 99 64 100.32 1738 53 11 3 6 64 0 10 0 10 +8415 99 65 106.4 1738 53 12 3 6 64 0 11 0 11 +8416 99 66 112.48 1738 53 14 3 6 64 0 13 0 13 +8417 99 67 118.56 1738 57 13 3 6 65 0 12 0 12 +8418 99 68 124.64 1738 57 11 3 6 65 0 10 0 10 +8419 99 69 130.72 1738 57 12 3 6 65 0 11 0 11 +8420 99 70 136.8 1738 57 14 3 6 65 0 13 0 13 +8421 99 71 142.88 1738 57 16 3 6 65 0 15 0 15 +8422 99 72 148.96 1738 61 13 3 6 66 0 12 0 12 +8423 99 73 155.04 1738 61 11 3 6 66 0 10 0 10 +8424 99 74 161.12 1738 61 9 3 6 66 0 8 0 8 +8425 99 75 167.2 1738 61 12 3 6 66 0 11 0 11 +8426 99 76 173.28 1738 61 14 3 6 66 0 13 0 13 +8427 99 77 179.36 1738 65 13 3 6 67 0 12 0 12 +8428 99 78 185.44 1738 65 11 3 6 67 0 10 0 10 +8429 99 79 191.52 1738 65 10 3 6 67 0 9 0 9 +8430 99 80 197.6 1738 65 12 3 6 67 0 11 0 11 +8431 99 81 203.68 1738 65 14 3 6 67 0 13 0 13 +8432 99 82 209.76 1738 69 13 3 6 68 0 12 0 12 +8433 99 83 215.84 1738 69 11 3 6 68 0 10 0 10 +8434 99 84 221.92 1738 69 12 3 6 68 0 11 0 11 +8435 99 85 228 1738 69 14 3 6 68 0 13 0 13 +8436 99 86 234.08 1738 73 15 3 6 69 0 14 0 14 +8437 99 87 240.16 1738 73 13 3 6 69 0 12 0 12 +8438 99 88 246.24 1738 73 11 3 6 69 0 10 0 10 +8439 99 89 252.32 1738 73 12 3 6 69 0 11 0 11 +8440 99 90 258.4 1738 73 14 3 6 69 0 13 0 13 +8441 99 91 264.48 1738 77 13 3 6 70 0 12 0 12 +8442 99 92 270.56 1738 77 11 3 6 70 0 10 0 10 +8443 99 93 276.64 1738 77 10 3 6 70 0 9 0 9 +8444 99 94 282.72 1738 77 12 3 6 70 0 11 0 11 +8445 99 95 288.8 1738 77 14 3 6 70 0 13 0 13 +8446 100 0 -288.8 1750 1 17 3 6 51 0 16 0 16 +8447 100 1 -282.72 1750 1 15 3 6 51 0 14 0 14 +8448 100 2 -276.64 1750 1 16 3 6 51 0 15 0 15 +8449 100 3 -270.56 1750 1 18 3 6 51 0 17 0 17 +8450 100 4 -264.48 1750 5 19 3 6 52 0 18 0 18 +8451 100 5 -258.4 1750 5 17 3 6 52 0 16 0 16 +8452 100 6 -252.32 1750 5 15 3 6 52 0 14 0 14 +8453 100 7 -246.24 1750 5 18 3 6 52 0 17 0 17 +8454 100 8 -240.16 1750 5 20 3 6 52 0 19 0 19 +8455 100 9 -234.08 1750 9 19 3 6 53 0 18 0 18 +8456 100 10 -228 1750 9 17 3 6 53 0 16 0 16 +8457 100 11 -221.92 1750 9 15 3 6 53 0 14 0 14 +8458 100 12 -215.84 1750 9 16 3 6 53 0 15 0 15 +8459 100 13 -209.76 1750 9 18 3 6 53 0 17 0 17 +8460 100 14 -203.68 1750 13 17 3 6 54 0 16 0 16 +8461 100 15 -197.6 1750 13 15 3 6 54 0 14 0 14 +8462 100 16 -191.52 1750 13 16 3 6 54 0 15 0 15 +8463 100 17 -185.44 1750 13 18 3 6 54 0 17 0 17 +8464 100 18 -179.36 1750 13 20 3 6 54 0 19 0 19 +8465 100 19 -173.28 1750 17 19 3 6 55 0 18 0 18 +8466 100 20 -167.2 1750 17 17 3 6 55 0 16 0 16 +8467 100 21 -161.12 1750 17 15 3 6 55 0 14 0 14 +8468 100 22 -155.04 1750 17 16 3 6 55 0 15 0 15 +8469 100 23 -148.96 1750 17 18 3 6 55 0 17 0 17 +8470 100 24 -142.88 1750 21 19 3 6 56 0 18 0 18 +8471 100 25 -136.8 1750 21 17 3 6 56 0 16 0 16 +8472 100 26 -130.72 1750 21 16 3 6 56 0 15 0 15 +8473 100 27 -124.64 1750 21 18 3 6 56 0 17 0 17 +8474 100 28 -118.56 1750 21 20 3 6 56 0 19 0 19 +8475 100 29 -112.48 1750 25 17 3 6 57 0 16 0 16 +8476 100 30 -106.4 1750 25 15 3 6 57 0 14 0 14 +8477 100 31 -100.32 1750 25 18 3 6 57 0 17 0 17 +8478 100 32 -94.24 1750 25 20 3 6 57 0 19 0 19 +8479 100 33 -88.16 1750 29 17 3 6 58 0 16 0 16 +8480 100 34 -82.08 1750 29 15 3 6 58 0 14 0 14 +8481 100 35 -76 1750 29 13 3 6 58 0 12 0 12 +8482 100 36 -69.92 1750 29 14 3 6 58 0 13 0 13 +8483 100 37 -63.84 1750 29 16 3 6 58 0 15 0 15 +8484 100 38 -57.76 1750 33 19 3 6 59 0 18 0 18 +8485 100 39 -51.68 1750 33 17 3 6 59 0 16 0 16 +8486 100 40 -45.6 1750 33 16 3 6 59 0 15 0 15 +8487 100 41 -39.52 1750 33 18 3 6 59 0 17 0 17 +8488 100 42 -33.44 1750 33 20 3 6 59 0 19 0 19 +8489 100 43 -27.36 1750 37 19 3 6 60 0 18 0 18 +8490 100 44 -21.28 1750 37 17 3 6 60 0 16 0 16 +8491 100 45 -15.2 1750 37 16 3 6 60 0 15 0 15 +8492 100 46 -9.12 1750 37 18 3 6 60 0 17 0 17 +8493 100 47 -3.04 1750 37 20 3 6 60 0 19 0 19 +8494 100 48 3.04 1750 41 19 3 6 61 0 18 0 18 +8495 100 49 9.12 1750 41 17 3 6 61 0 16 0 16 +8496 100 50 15.2 1750 41 15 3 6 61 0 14 0 14 +8497 100 51 21.28 1750 41 18 3 6 61 0 17 0 17 +8498 100 52 27.36 1750 41 20 3 6 61 0 19 0 19 +8499 100 53 33.44 1750 45 19 3 6 62 0 18 0 18 +8500 100 54 39.52 1750 45 17 3 6 62 0 16 0 16 +8501 100 55 45.6 1750 45 15 3 6 62 0 14 0 14 +8502 100 56 51.68 1750 45 18 3 6 62 0 17 0 17 +8503 100 57 57.76 1750 45 20 3 6 62 0 19 0 19 +8504 100 58 63.84 1750 49 15 3 6 63 0 14 0 14 +8505 100 59 69.92 1750 49 13 3 6 63 0 12 0 12 +8506 100 60 76 1750 49 14 3 6 63 0 13 0 13 +8507 100 61 82.08 1750 49 16 3 6 63 0 15 0 15 +8508 100 62 88.16 1750 49 18 3 6 63 0 17 0 17 +8509 100 63 94.24 1750 53 19 3 6 64 0 18 0 18 +8510 100 64 100.32 1750 53 17 3 6 64 0 16 0 16 +8511 100 65 106.4 1750 53 16 3 6 64 0 15 0 15 +8512 100 66 112.48 1750 53 18 3 6 64 0 17 0 17 +8513 100 67 118.56 1750 57 19 3 6 65 0 18 0 18 +8514 100 68 124.64 1750 57 17 3 6 65 0 16 0 16 +8515 100 69 130.72 1750 57 15 3 6 65 0 14 0 14 +8516 100 70 136.8 1750 57 18 3 6 65 0 17 0 17 +8517 100 71 142.88 1750 57 20 3 6 65 0 19 0 19 +8518 100 72 148.96 1750 61 17 3 6 66 0 16 0 16 +8519 100 73 155.04 1750 61 15 3 6 66 0 14 0 14 +8520 100 74 161.12 1750 61 16 3 6 66 0 15 0 15 +8521 100 75 167.2 1750 61 18 3 6 66 0 17 0 17 +8522 100 76 173.28 1750 61 20 3 6 66 0 19 0 19 +8523 100 77 179.36 1750 65 19 3 6 67 0 18 0 18 +8524 100 78 185.44 1750 65 17 3 6 67 0 16 0 16 +8525 100 79 191.52 1750 65 15 3 6 67 0 14 0 14 +8526 100 80 197.6 1750 65 16 3 6 67 0 15 0 15 +8527 100 81 203.68 1750 65 18 3 6 67 0 17 0 17 +8528 100 82 209.76 1750 69 17 3 6 68 0 16 0 16 +8529 100 83 215.84 1750 69 15 3 6 68 0 14 0 14 +8530 100 84 221.92 1750 69 16 3 6 68 0 15 0 15 +8531 100 85 228 1750 69 18 3 6 68 0 17 0 17 +8532 100 86 234.08 1750 69 20 3 6 68 0 19 0 19 +8533 100 87 240.16 1750 73 19 3 6 69 0 18 0 18 +8534 100 88 246.24 1750 73 17 3 6 69 0 16 0 16 +8535 100 89 252.32 1750 73 16 3 6 69 0 15 0 15 +8536 100 90 258.4 1750 73 18 3 6 69 0 17 0 17 +8537 100 91 264.48 1750 73 20 3 6 69 0 19 0 19 +8538 100 92 270.56 1750 77 17 3 6 70 0 16 0 16 +8539 100 93 276.64 1750 77 15 3 6 70 0 14 0 14 +8540 100 94 282.72 1750 77 16 3 6 70 0 15 0 15 +8541 100 95 288.8 1750 77 18 3 6 70 0 17 0 17 +8542 101 0 -294.88 1762 1 23 3 6 51 0 22 0 22 +8543 101 1 -288.8 1762 1 21 3 6 51 0 20 0 20 +8544 101 2 -282.72 1762 1 19 3 6 51 0 18 0 18 +8545 101 3 -276.64 1762 1 20 3 6 51 0 19 0 19 +8546 101 4 -270.56 1762 1 22 3 6 51 0 21 0 21 +8547 101 5 -264.48 1762 5 23 3 6 52 0 22 0 22 +8548 101 6 -258.4 1762 5 21 3 6 52 0 20 0 20 +8549 101 7 -252.32 1762 5 22 3 6 52 0 21 0 21 +8550 101 8 -246.24 1762 5 24 3 6 52 0 23 0 23 +8551 101 9 -240.16 1762 5 26 3 6 52 0 25 0 25 +8552 101 10 -234.08 1762 9 23 3 6 53 0 22 0 22 +8553 101 11 -228 1762 9 21 3 6 53 0 20 0 20 +8554 101 12 -221.92 1762 9 20 3 6 53 0 19 0 19 +8555 101 13 -215.84 1762 9 22 3 6 53 0 21 0 21 +8556 101 14 -209.76 1762 9 24 3 6 53 0 23 0 23 +8557 101 15 -203.68 1762 13 23 3 6 54 0 22 0 22 +8558 101 16 -197.6 1762 13 21 3 6 54 0 20 0 20 +8559 101 17 -191.52 1762 13 19 3 6 54 0 18 0 18 +8560 101 18 -185.44 1762 13 22 3 6 54 0 21 0 21 +8561 101 19 -179.36 1762 13 24 3 6 54 0 23 0 23 +8562 101 20 -173.28 1762 17 23 3 6 55 0 22 0 22 +8563 101 21 -167.2 1762 17 21 3 6 55 0 20 0 20 +8564 101 22 -161.12 1762 17 20 3 6 55 0 19 0 19 +8565 101 23 -155.04 1762 17 22 3 6 55 0 21 0 21 +8566 101 24 -148.96 1762 17 24 3 6 55 0 23 0 23 +8567 101 25 -142.88 1762 21 23 3 6 56 0 22 0 22 +8568 101 26 -136.8 1762 21 21 3 6 56 0 20 0 20 +8569 101 27 -130.72 1762 21 22 3 6 56 0 21 0 21 +8570 101 28 -124.64 1762 21 24 3 6 56 0 23 0 23 +8571 101 29 -118.56 1762 25 23 3 6 57 0 22 0 22 +8572 101 30 -112.48 1762 25 21 3 6 57 0 20 0 20 +8573 101 31 -106.4 1762 25 19 3 6 57 0 18 0 18 +8574 101 32 -100.32 1762 25 22 3 6 57 0 21 0 21 +8575 101 33 -94.24 1762 25 24 3 6 57 0 23 0 23 +8576 101 34 -88.16 1762 29 21 3 6 58 0 20 0 20 +8577 101 35 -82.08 1762 29 19 3 6 58 0 18 0 18 +8578 101 36 -76 1762 29 18 3 6 58 0 17 0 17 +8579 101 37 -69.92 1762 29 20 3 6 58 0 19 0 19 +8580 101 38 -63.84 1762 29 22 3 6 58 0 21 0 21 +8581 101 39 -57.76 1762 33 25 3 6 59 0 24 0 24 +8582 101 40 -51.68 1762 33 23 3 6 59 0 22 0 22 +8583 101 41 -45.6 1762 33 21 3 6 59 0 20 0 20 +8584 101 42 -39.52 1762 33 22 3 6 59 0 21 0 21 +8585 101 43 -33.44 1762 33 24 3 6 59 0 23 0 23 +8586 101 44 -27.36 1762 37 25 3 6 60 0 24 0 24 +8587 101 45 -21.28 1762 37 23 3 6 60 0 22 0 22 +8588 101 46 -15.2 1762 37 21 3 6 60 0 20 0 20 +8589 101 47 -9.12 1762 37 22 3 6 60 0 21 0 21 +8590 101 48 -3.04 1762 37 24 3 6 60 0 23 0 23 +8591 101 49 3.04 1762 41 23 3 6 61 0 22 0 22 +8592 101 50 9.12 1762 41 21 3 6 61 0 20 0 20 +8593 101 51 15.2 1762 41 22 3 6 61 0 21 0 21 +8594 101 52 21.28 1762 41 24 3 6 61 0 23 0 23 +8595 101 53 27.36 1762 41 26 3 6 61 0 25 0 25 +8596 101 54 33.44 1762 45 23 3 6 62 0 22 0 22 +8597 101 55 39.52 1762 45 21 3 6 62 0 20 0 20 +8598 101 56 45.6 1762 45 22 3 6 62 0 21 0 21 +8599 101 57 51.68 1762 45 24 3 6 62 0 23 0 23 +8600 101 58 57.76 1762 45 26 3 6 62 0 25 0 25 +8601 101 59 63.84 1762 49 21 3 6 63 0 20 0 20 +8602 101 60 69.92 1762 49 19 3 6 63 0 18 0 18 +8603 101 61 76 1762 49 17 3 6 63 0 16 0 16 +8604 101 62 82.08 1762 49 20 3 6 63 0 19 0 19 +8605 101 63 88.16 1762 49 22 3 6 63 0 21 0 21 +8606 101 64 94.24 1762 53 23 3 6 64 0 22 0 22 +8607 101 65 100.32 1762 53 21 3 6 64 0 20 0 20 +8608 101 66 106.4 1762 53 20 3 6 64 0 19 0 19 +8609 101 67 112.48 1762 53 22 3 6 64 0 21 0 21 +8610 101 68 118.56 1762 53 24 3 6 64 0 23 0 23 +8611 101 69 124.64 1762 57 23 3 6 65 0 22 0 22 +8612 101 70 130.72 1762 57 21 3 6 65 0 20 0 20 +8613 101 71 136.8 1762 57 22 3 6 65 0 21 0 21 +8614 101 72 142.88 1762 57 24 3 6 65 0 23 0 23 +8615 101 73 148.96 1762 61 23 3 6 66 0 22 0 22 +8616 101 74 155.04 1762 61 21 3 6 66 0 20 0 20 +8617 101 75 161.12 1762 61 19 3 6 66 0 18 0 18 +8618 101 76 167.2 1762 61 22 3 6 66 0 21 0 21 +8619 101 77 173.28 1762 61 24 3 6 66 0 23 0 23 +8620 101 78 179.36 1762 65 23 3 6 67 0 22 0 22 +8621 101 79 185.44 1762 65 21 3 6 67 0 20 0 20 +8622 101 80 191.52 1762 65 20 3 6 67 0 19 0 19 +8623 101 81 197.6 1762 65 22 3 6 67 0 21 0 21 +8624 101 82 203.68 1762 65 24 3 6 67 0 23 0 23 +8625 101 83 209.76 1762 69 23 3 6 68 0 22 0 22 +8626 101 84 215.84 1762 69 21 3 6 68 0 20 0 20 +8627 101 85 221.92 1762 69 19 3 6 68 0 18 0 18 +8628 101 86 228 1762 69 22 3 6 68 0 21 0 21 +8629 101 87 234.08 1762 69 24 3 6 68 0 23 0 23 +8630 101 88 240.16 1762 73 25 3 6 69 0 24 0 24 +8631 101 89 246.24 1762 73 23 3 6 69 0 22 0 22 +8632 101 90 252.32 1762 73 21 3 6 69 0 20 0 20 +8633 101 91 258.4 1762 73 22 3 6 69 0 21 0 21 +8634 101 92 264.48 1762 73 24 3 6 69 0 23 0 23 +8635 101 93 270.56 1762 77 21 3 6 70 0 20 0 20 +8636 101 94 276.64 1762 77 19 3 6 70 0 18 0 18 +8637 101 95 282.72 1762 77 20 3 6 70 0 19 0 19 +8638 101 96 288.8 1762 77 22 3 6 70 0 21 0 21 +8639 101 97 294.88 1762 77 24 3 6 70 0 23 0 23 +8640 102 0 -294.88 1774 1 27 3 6 51 0 26 0 26 +8641 102 1 -288.8 1774 1 25 3 6 51 0 24 0 24 +8642 102 2 -282.72 1774 1 24 3 6 51 0 23 0 23 +8643 102 3 -276.64 1774 1 26 3 6 51 0 25 0 25 +8644 102 4 -270.56 1774 1 28 3 6 51 0 27 0 27 +8645 102 5 -264.48 1774 5 27 3 6 52 0 26 0 26 +8646 102 6 -258.4 1774 5 25 3 6 52 0 24 0 24 +8647 102 7 -252.32 1774 5 28 3 6 52 0 27 0 27 +8648 102 8 -246.24 1774 5 30 3 6 52 0 29 0 29 +8649 102 9 -240.16 1774 5 32 3 6 52 0 31 0 31 +8650 102 10 -234.08 1774 9 27 3 6 53 0 26 0 26 +8651 102 11 -228 1774 9 25 3 6 53 0 24 0 24 +8652 102 12 -221.92 1774 9 26 3 6 53 0 25 0 25 +8653 102 13 -215.84 1774 9 28 3 6 53 0 27 0 27 +8654 102 14 -209.76 1774 9 30 3 6 53 0 29 0 29 +8655 102 15 -203.68 1774 13 27 3 6 54 0 26 0 26 +8656 102 16 -197.6 1774 13 25 3 6 54 0 24 0 24 +8657 102 17 -191.52 1774 13 26 3 6 54 0 25 0 25 +8658 102 18 -185.44 1774 13 28 3 6 54 0 27 0 27 +8659 102 19 -179.36 1774 13 30 3 6 54 0 29 0 29 +8660 102 20 -173.28 1774 17 27 3 6 55 0 26 0 26 +8661 102 21 -167.2 1774 17 25 3 6 55 0 24 0 24 +8662 102 22 -161.12 1774 17 26 3 6 55 0 25 0 25 +8663 102 23 -155.04 1774 17 28 3 6 55 0 27 0 27 +8664 102 24 -148.96 1774 21 29 3 6 56 0 28 0 28 +8665 102 25 -142.88 1774 21 27 3 6 56 0 26 0 26 +8666 102 26 -136.8 1774 21 25 3 6 56 0 24 0 24 +8667 102 27 -130.72 1774 21 26 3 6 56 0 25 0 25 +8668 102 28 -124.64 1774 21 28 3 6 56 0 27 0 27 +8669 102 29 -118.56 1774 25 27 3 6 57 0 26 0 26 +8670 102 30 -112.48 1774 25 25 3 6 57 0 24 0 24 +8671 102 31 -106.4 1774 25 26 3 6 57 0 25 0 25 +8672 102 32 -100.32 1774 25 28 3 6 57 0 27 0 27 +8673 102 33 -94.24 1774 25 30 3 6 57 0 29 0 29 +8674 102 34 -88.16 1774 29 27 3 6 58 0 26 0 26 +8675 102 35 -82.08 1774 29 25 3 6 58 0 24 0 24 +8676 102 36 -76 1774 29 23 3 6 58 0 22 0 22 +8677 102 37 -69.92 1774 29 24 3 6 58 0 23 0 23 +8678 102 38 -63.84 1774 29 26 3 6 58 0 25 0 25 +8679 102 39 -57.76 1774 33 29 3 6 59 0 28 0 28 +8680 102 40 -51.68 1774 33 27 3 6 59 0 26 0 26 +8681 102 41 -45.6 1774 33 26 3 6 59 0 25 0 25 +8682 102 42 -39.52 1774 33 28 3 6 59 0 27 0 27 +8683 102 43 -33.44 1774 33 30 3 6 59 0 29 0 29 +8684 102 44 -27.36 1774 37 29 3 6 60 0 28 0 28 +8685 102 45 -21.28 1774 37 27 3 6 60 0 26 0 26 +8686 102 46 -15.2 1774 37 26 3 6 60 0 25 0 25 +8687 102 47 -9.12 1774 37 28 3 6 60 0 27 0 27 +8688 102 48 -3.04 1774 37 30 3 6 60 0 29 0 29 +8689 102 49 3.04 1774 41 29 3 6 61 0 28 0 28 +8690 102 50 9.12 1774 41 27 3 6 61 0 26 0 26 +8691 102 51 15.2 1774 41 25 3 6 61 0 24 0 24 +8692 102 52 21.28 1774 41 28 3 6 61 0 27 0 27 +8693 102 53 27.36 1774 41 30 3 6 61 0 29 0 29 +8694 102 54 33.44 1774 45 29 3 6 62 0 28 0 28 +8695 102 55 39.52 1774 45 27 3 6 62 0 26 0 26 +8696 102 56 45.6 1774 45 25 3 6 62 0 24 0 24 +8697 102 57 51.68 1774 45 28 3 6 62 0 27 0 27 +8698 102 58 57.76 1774 45 30 3 6 62 0 29 0 29 +8699 102 59 63.84 1774 49 25 3 6 63 0 24 0 24 +8700 102 60 69.92 1774 49 23 3 6 63 0 22 0 22 +8701 102 61 76 1774 49 24 3 6 63 0 23 0 23 +8702 102 62 82.08 1774 49 26 3 6 63 0 25 0 25 +8703 102 63 88.16 1774 49 28 3 6 63 0 27 0 27 +8704 102 64 94.24 1774 53 29 3 6 64 0 28 0 28 +8705 102 65 100.32 1774 53 27 3 6 64 0 26 0 26 +8706 102 66 106.4 1774 53 25 3 6 64 0 24 0 24 +8707 102 67 112.48 1774 53 26 3 6 64 0 25 0 25 +8708 102 68 118.56 1774 53 28 3 6 64 0 27 0 27 +8709 102 69 124.64 1774 57 27 3 6 65 0 26 0 26 +8710 102 70 130.72 1774 57 25 3 6 65 0 24 0 24 +8711 102 71 136.8 1774 57 26 3 6 65 0 25 0 25 +8712 102 72 142.88 1774 57 28 3 6 65 0 27 0 27 +8713 102 73 148.96 1774 57 30 3 6 65 0 29 0 29 +8714 102 74 155.04 1774 61 27 3 6 66 0 26 0 26 +8715 102 75 161.12 1774 61 25 3 6 66 0 24 0 24 +8716 102 76 167.2 1774 61 26 3 6 66 0 25 0 25 +8717 102 77 173.28 1774 61 28 3 6 66 0 27 0 27 +8718 102 78 179.36 1774 65 29 3 6 67 0 28 0 28 +8719 102 79 185.44 1774 65 27 3 6 67 0 26 0 26 +8720 102 80 191.52 1774 65 25 3 6 67 0 24 0 24 +8721 102 81 197.6 1774 65 26 3 6 67 0 25 0 25 +8722 102 82 203.68 1774 65 28 3 6 67 0 27 0 27 +8723 102 83 209.76 1774 69 29 3 6 68 0 28 0 28 +8724 102 84 215.84 1774 69 27 3 6 68 0 26 0 26 +8725 102 85 221.92 1774 69 25 3 6 68 0 24 0 24 +8726 102 86 228 1774 69 26 3 6 68 0 25 0 25 +8727 102 87 234.08 1774 69 28 3 6 68 0 27 0 27 +8728 102 88 240.16 1774 73 31 3 6 69 0 30 0 30 +8729 102 89 246.24 1774 73 29 3 6 69 0 28 0 28 +8730 102 90 252.32 1774 73 27 3 6 69 0 26 0 26 +8731 102 91 258.4 1774 73 26 3 6 69 0 25 0 25 +8732 102 92 264.48 1774 73 28 3 6 69 0 27 0 27 +8733 102 93 270.56 1774 77 27 3 6 70 0 26 0 26 +8734 102 94 276.64 1774 77 25 3 6 70 0 24 0 24 +8735 102 95 282.72 1774 77 23 3 6 70 0 22 0 22 +8736 102 96 288.8 1774 77 26 3 6 70 0 25 0 25 +8737 102 97 294.88 1774 77 28 3 6 70 0 27 0 27 +8738 103 0 -294.88 1786 1 31 3 6 51 0 30 0 30 +8739 103 1 -288.8 1786 1 29 3 6 51 0 28 0 28 +8740 103 2 -282.72 1786 1 30 3 6 51 0 29 0 29 +8741 103 3 -276.64 1786 1 32 3 6 51 0 31 0 31 +8742 103 4 -270.56 1786 5 33 3 6 52 0 32 1 0 +8743 103 5 -264.48 1786 5 31 3 6 52 0 30 0 30 +8744 103 6 -258.4 1786 5 29 3 6 52 0 28 0 28 +8745 103 7 -252.32 1786 5 34 3 6 52 0 33 1 1 +8746 103 8 -246.24 1786 5 36 3 6 52 0 35 1 3 +8747 103 9 -240.16 1786 9 33 3 6 53 0 32 1 0 +8748 103 10 -234.08 1786 9 31 3 6 53 0 30 0 30 +8749 103 11 -228 1786 9 29 3 6 53 0 28 0 28 +8750 103 12 -221.92 1786 9 32 3 6 53 0 31 0 31 +8751 103 13 -215.84 1786 9 34 3 6 53 0 33 1 1 +8752 103 14 -209.76 1786 13 33 3 6 54 0 32 1 0 +8753 103 15 -203.68 1786 13 31 3 6 54 0 30 0 30 +8754 103 16 -197.6 1786 13 29 3 6 54 0 28 0 28 +8755 103 17 -191.52 1786 13 32 3 6 54 0 31 0 31 +8756 103 18 -185.44 1786 13 34 3 6 54 0 33 1 1 +8757 103 19 -179.36 1786 17 31 3 6 55 0 30 0 30 +8758 103 20 -173.28 1786 17 29 3 6 55 0 28 0 28 +8759 103 21 -167.2 1786 17 30 3 6 55 0 29 0 29 +8760 103 22 -161.12 1786 17 32 3 6 55 0 31 0 31 +8761 103 23 -155.04 1786 17 34 3 6 55 0 33 1 1 +8762 103 24 -148.96 1786 21 33 3 6 56 0 32 1 0 +8763 103 25 -142.88 1786 21 31 3 6 56 0 30 0 30 +8764 103 26 -136.8 1786 21 30 3 6 56 0 29 0 29 +8765 103 27 -130.72 1786 21 32 3 6 56 0 31 0 31 +8766 103 28 -124.64 1786 21 34 3 6 56 0 33 1 1 +8767 103 29 -118.56 1786 25 33 3 6 57 0 32 1 0 +8768 103 30 -112.48 1786 25 31 3 6 57 0 30 0 30 +8769 103 31 -106.4 1786 25 29 3 6 57 0 28 0 28 +8770 103 32 -100.32 1786 25 32 3 6 57 0 31 0 31 +8771 103 33 -94.24 1786 25 34 3 6 57 0 33 1 1 +8772 103 34 -88.16 1786 29 31 3 6 58 0 30 0 30 +8773 103 35 -82.08 1786 29 29 3 6 58 0 28 0 28 +8774 103 36 -76 1786 29 28 3 6 58 0 27 0 27 +8775 103 37 -69.92 1786 29 30 3 6 58 0 29 0 29 +8776 103 38 -63.84 1786 29 32 3 6 58 0 31 0 31 +8777 103 39 -57.76 1786 33 35 3 6 59 0 34 1 2 +8778 103 40 -51.68 1786 33 33 3 6 59 0 32 1 0 +8779 103 41 -45.6 1786 33 31 3 6 59 0 30 0 30 +8780 103 42 -39.52 1786 33 32 3 6 59 0 31 0 31 +8781 103 43 -33.44 1786 33 34 3 6 59 0 33 1 1 +8782 103 44 -27.36 1786 37 35 3 6 60 0 34 1 2 +8783 103 45 -21.28 1786 37 33 3 6 60 0 32 1 0 +8784 103 46 -15.2 1786 37 31 3 6 60 0 30 0 30 +8785 103 47 -9.12 1786 37 32 3 6 60 0 31 0 31 +8786 103 48 -3.04 1786 37 34 3 6 60 0 33 1 1 +8787 103 49 3.04 1786 41 33 3 6 61 0 32 1 0 +8788 103 50 9.12 1786 41 31 3 6 61 0 30 0 30 +8789 103 51 15.2 1786 41 32 3 6 61 0 31 0 31 +8790 103 52 21.28 1786 41 34 3 6 61 0 33 1 1 +8791 103 53 27.36 1786 41 36 3 6 61 0 35 1 3 +8792 103 54 33.44 1786 45 33 3 6 62 0 32 1 0 +8793 103 55 39.52 1786 45 31 3 6 62 0 30 0 30 +8794 103 56 45.6 1786 45 32 3 6 62 0 31 0 31 +8795 103 57 51.68 1786 45 34 3 6 62 0 33 1 1 +8796 103 58 57.76 1786 45 36 3 6 62 0 35 1 3 +8797 103 59 63.84 1786 49 31 3 6 63 0 30 0 30 +8798 103 60 69.92 1786 49 29 3 6 63 0 28 0 28 +8799 103 61 76 1786 49 27 3 6 63 0 26 0 26 +8800 103 62 82.08 1786 49 30 3 6 63 0 29 0 29 +8801 103 63 88.16 1786 49 32 3 6 63 0 31 0 31 +8802 103 64 94.24 1786 53 33 3 6 64 0 32 1 0 +8803 103 65 100.32 1786 53 31 3 6 64 0 30 0 30 +8804 103 66 106.4 1786 53 30 3 6 64 0 29 0 29 +8805 103 67 112.48 1786 53 32 3 6 64 0 31 0 31 +8806 103 68 118.56 1786 53 34 3 6 64 0 33 1 1 +8807 103 69 124.64 1786 57 33 3 6 65 0 32 1 0 +8808 103 70 130.72 1786 57 31 3 6 65 0 30 0 30 +8809 103 71 136.8 1786 57 29 3 6 65 0 28 0 28 +8810 103 72 142.88 1786 57 32 3 6 65 0 31 0 31 +8811 103 73 148.96 1786 57 34 3 6 65 0 33 1 1 +8812 103 74 155.04 1786 61 33 3 6 66 0 32 1 0 +8813 103 75 161.12 1786 61 31 3 6 66 0 30 0 30 +8814 103 76 167.2 1786 61 29 3 6 66 0 28 0 28 +8815 103 77 173.28 1786 61 30 3 6 66 0 29 0 29 +8816 103 78 179.36 1786 61 32 3 6 66 0 31 0 31 +8817 103 79 185.44 1786 65 33 3 6 67 0 32 1 0 +8818 103 80 191.52 1786 65 31 3 6 67 0 30 0 30 +8819 103 81 197.6 1786 65 30 3 6 67 0 29 0 29 +8820 103 82 203.68 1786 65 32 3 6 67 0 31 0 31 +8821 103 83 209.76 1786 65 34 3 6 67 0 33 1 1 +8822 103 84 215.84 1786 69 33 3 6 68 0 32 1 0 +8823 103 85 221.92 1786 69 31 3 6 68 0 30 0 30 +8824 103 86 228 1786 69 30 3 6 68 0 29 0 29 +8825 103 87 234.08 1786 69 32 3 6 68 0 31 0 31 +8826 103 88 240.16 1786 69 34 3 6 68 0 33 1 1 +8827 103 89 246.24 1786 73 35 3 6 69 0 34 1 2 +8828 103 90 252.32 1786 73 33 3 6 69 0 32 1 0 +8829 103 91 258.4 1786 73 30 3 6 69 0 29 0 29 +8830 103 92 264.48 1786 73 32 3 6 69 0 31 0 31 +8831 103 93 270.56 1786 73 34 3 6 69 0 33 1 1 +8832 103 94 276.64 1786 77 31 3 6 70 0 30 0 30 +8833 103 95 282.72 1786 77 29 3 6 70 0 28 0 28 +8834 103 96 288.8 1786 77 30 3 6 70 0 29 0 29 +8835 103 97 294.88 1786 77 32 3 6 70 0 31 0 31 +8836 104 0 -300.96 1798 1 35 3 6 51 0 34 1 2 +8837 104 1 -294.88 1798 1 33 3 6 51 0 32 1 0 +8838 104 2 -288.8 1798 1 34 3 6 51 0 33 1 1 +8839 104 3 -282.72 1798 1 36 3 6 51 0 35 1 3 +8840 104 4 -276.64 1798 1 38 3 6 51 0 37 1 5 +8841 104 5 -270.56 1798 5 39 3 6 52 0 38 1 6 +8842 104 6 -264.48 1798 5 37 3 6 52 0 36 1 4 +8843 104 7 -258.4 1798 5 35 3 6 52 0 34 1 2 +8844 104 8 -252.32 1798 5 38 3 6 52 0 37 1 5 +8845 104 9 -246.24 1798 5 40 3 6 52 0 39 1 7 +8846 104 10 -240.16 1798 9 37 3 6 53 0 36 1 4 +8847 104 11 -234.08 1798 9 35 3 6 53 0 34 1 2 +8848 104 12 -228 1798 9 36 3 6 53 0 35 1 3 +8849 104 13 -221.92 1798 9 38 3 6 53 0 37 1 5 +8850 104 14 -215.84 1798 9 40 3 6 53 0 39 1 7 +8851 104 15 -209.76 1798 13 37 3 6 54 0 36 1 4 +8852 104 16 -203.68 1798 13 35 3 6 54 0 34 1 2 +8853 104 17 -197.6 1798 13 36 3 6 54 0 35 1 3 +8854 104 18 -191.52 1798 13 38 3 6 54 0 37 1 5 +8855 104 19 -185.44 1798 13 40 3 6 54 0 39 1 7 +8856 104 20 -179.36 1798 17 35 3 6 55 0 34 1 2 +8857 104 21 -173.28 1798 17 33 3 6 55 0 32 1 0 +8858 104 22 -167.2 1798 17 36 3 6 55 0 35 1 3 +8859 104 23 -161.12 1798 17 38 3 6 55 0 37 1 5 +8860 104 24 -155.04 1798 17 40 3 6 55 0 39 1 7 +8861 104 25 -148.96 1798 21 37 3 6 56 0 36 1 4 +8862 104 26 -142.88 1798 21 35 3 6 56 0 34 1 2 +8863 104 27 -136.8 1798 21 36 3 6 56 0 35 1 3 +8864 104 28 -130.72 1798 21 38 3 6 56 0 37 1 5 +8865 104 29 -124.64 1798 21 40 3 6 56 0 39 1 7 +8866 104 30 -118.56 1798 25 37 3 6 57 0 36 1 4 +8867 104 31 -112.48 1798 25 35 3 6 57 0 34 1 2 +8868 104 32 -106.4 1798 25 36 3 6 57 0 35 1 3 +8869 104 33 -100.32 1798 25 38 3 6 57 0 37 1 5 +8870 104 34 -94.24 1798 25 40 3 6 57 0 39 1 7 +8871 104 35 -88.16 1798 29 35 3 6 58 0 34 1 2 +8872 104 36 -82.08 1798 29 33 3 6 58 0 32 1 0 +8873 104 37 -76 1798 29 34 3 6 58 0 33 1 1 +8874 104 38 -69.92 1798 29 36 3 6 58 0 35 1 3 +8875 104 39 -63.84 1798 29 38 3 6 58 0 37 1 5 +8876 104 40 -57.76 1798 33 39 3 6 59 0 38 1 6 +8877 104 41 -51.68 1798 33 37 3 6 59 0 36 1 4 +8878 104 42 -45.6 1798 33 36 3 6 59 0 35 1 3 +8879 104 43 -39.52 1798 33 38 3 6 59 0 37 1 5 +8880 104 44 -33.44 1798 33 40 3 6 59 0 39 1 7 +8881 104 45 -27.36 1798 37 39 3 6 60 0 38 1 6 +8882 104 46 -21.28 1798 37 37 3 6 60 0 36 1 4 +8883 104 47 -15.2 1798 37 36 3 6 60 0 35 1 3 +8884 104 48 -9.12 1798 37 38 3 6 60 0 37 1 5 +8885 104 49 -3.04 1798 37 40 3 6 60 0 39 1 7 +8886 104 50 3.04 1798 41 39 3 6 61 0 38 1 6 +8887 104 51 9.12 1798 41 37 3 6 61 0 36 1 4 +8888 104 52 15.2 1798 41 35 3 6 61 0 34 1 2 +8889 104 53 21.28 1798 41 38 3 6 61 0 37 1 5 +8890 104 54 27.36 1798 41 40 3 6 61 0 39 1 7 +8891 104 55 33.44 1798 45 39 3 6 62 0 38 1 6 +8892 104 56 39.52 1798 45 37 3 6 62 0 36 1 4 +8893 104 57 45.6 1798 45 35 3 6 62 0 34 1 2 +8894 104 58 51.68 1798 45 38 3 6 62 0 37 1 5 +8895 104 59 57.76 1798 45 40 3 6 62 0 39 1 7 +8896 104 60 63.84 1798 49 37 3 6 63 0 36 1 4 +8897 104 61 69.92 1798 49 35 3 6 63 0 34 1 2 +8898 104 62 76 1798 49 33 3 6 63 0 32 1 0 +8899 104 63 82.08 1798 49 34 3 6 63 0 33 1 1 +8900 104 64 88.16 1798 49 36 3 6 63 0 35 1 3 +8901 104 65 94.24 1798 53 39 3 6 64 0 38 1 6 +8902 104 66 100.32 1798 53 37 3 6 64 0 36 1 4 +8903 104 67 106.4 1798 53 35 3 6 64 0 34 1 2 +8904 104 68 112.48 1798 53 36 3 6 64 0 35 1 3 +8905 104 69 118.56 1798 53 38 3 6 64 0 37 1 5 +8906 104 70 124.64 1798 57 39 3 6 65 0 38 1 6 +8907 104 71 130.72 1798 57 37 3 6 65 0 36 1 4 +8908 104 72 136.8 1798 57 35 3 6 65 0 34 1 2 +8909 104 73 142.88 1798 57 36 3 6 65 0 35 1 3 +8910 104 74 148.96 1798 57 38 3 6 65 0 37 1 5 +8911 104 75 155.04 1798 61 39 3 6 66 0 38 1 6 +8912 104 76 161.12 1798 61 37 3 6 66 0 36 1 4 +8913 104 77 167.2 1798 61 35 3 6 66 0 34 1 2 +8914 104 78 173.28 1798 61 34 3 6 66 0 33 1 1 +8915 104 79 179.36 1798 61 36 3 6 66 0 35 1 3 +8916 104 80 185.44 1798 65 39 3 6 67 0 38 1 6 +8917 104 81 191.52 1798 65 37 3 6 67 0 36 1 4 +8918 104 82 197.6 1798 65 35 3 6 67 0 34 1 2 +8919 104 83 203.68 1798 65 36 3 6 67 0 35 1 3 +8920 104 84 209.76 1798 65 38 3 6 67 0 37 1 5 +8921 104 85 215.84 1798 69 39 3 6 68 0 38 1 6 +8922 104 86 221.92 1798 69 37 3 6 68 0 36 1 4 +8923 104 87 228 1798 69 35 3 6 68 0 34 1 2 +8924 104 88 234.08 1798 69 36 3 6 68 0 35 1 3 +8925 104 89 240.16 1798 69 38 3 6 68 0 37 1 5 +8926 104 90 246.24 1798 73 39 3 6 69 0 38 1 6 +8927 104 91 252.32 1798 73 37 3 6 69 0 36 1 4 +8928 104 92 258.4 1798 73 36 3 6 69 0 35 1 3 +8929 104 93 264.48 1798 73 38 3 6 69 0 37 1 5 +8930 104 94 270.56 1798 73 40 3 6 69 0 39 1 7 +8931 104 95 276.64 1798 77 37 3 6 70 0 36 1 4 +8932 104 96 282.72 1798 77 35 3 6 70 0 34 1 2 +8933 104 97 288.8 1798 77 33 3 6 70 0 32 1 0 +8934 104 98 294.88 1798 77 34 3 6 70 0 33 1 1 +8935 104 99 300.96 1798 77 36 3 6 70 0 35 1 3 +8936 105 0 -300.96 1810 1 39 3 6 51 0 38 1 6 +8937 105 1 -294.88 1810 1 37 3 6 51 0 36 1 4 +8938 105 2 -288.8 1810 1 40 3 6 51 0 39 1 7 +8939 105 3 -282.72 1810 2 2 3 6 51 1 41 1 9 +8940 105 4 -276.64 1810 2 4 3 6 51 1 43 1 11 +8941 105 5 -270.56 1810 6 5 3 6 52 1 44 1 12 +8942 105 6 -264.48 1810 6 3 3 6 52 1 42 1 10 +8943 105 7 -258.4 1810 6 1 3 6 52 1 40 1 8 +8944 105 8 -252.32 1810 6 2 3 6 52 1 41 1 9 +8945 105 9 -246.24 1810 6 4 3 6 52 1 43 1 11 +8946 105 10 -240.16 1810 9 39 3 6 53 0 38 1 6 +8947 105 11 -234.08 1810 10 3 3 6 53 1 42 1 10 +8948 105 12 -228 1810 10 1 3 6 53 1 40 1 8 +8949 105 13 -221.92 1810 10 2 3 6 53 1 41 1 9 +8950 105 14 -215.84 1810 10 4 3 6 53 1 43 1 11 +8951 105 15 -209.76 1810 13 39 3 6 54 0 38 1 6 +8952 105 16 -203.68 1810 14 3 3 6 54 1 42 1 10 +8953 105 17 -197.6 1810 14 1 3 6 54 1 40 1 8 +8954 105 18 -191.52 1810 14 2 3 6 54 1 41 1 9 +8955 105 19 -185.44 1810 14 4 3 6 54 1 43 1 11 +8956 105 20 -179.36 1810 17 39 3 6 55 0 38 1 6 +8957 105 21 -173.28 1810 17 37 3 6 55 0 36 1 4 +8958 105 22 -167.2 1810 18 1 3 6 55 1 40 1 8 +8959 105 23 -161.12 1810 18 2 3 6 55 1 41 1 9 +8960 105 24 -155.04 1810 18 4 3 6 55 1 43 1 11 +8961 105 25 -148.96 1810 21 39 3 6 56 0 38 1 6 +8962 105 26 -142.88 1810 22 3 3 6 56 1 42 1 10 +8963 105 27 -136.8 1810 22 1 3 6 56 1 40 1 8 +8964 105 28 -130.72 1810 22 2 3 6 56 1 41 1 9 +8965 105 29 -124.64 1810 22 4 3 6 56 1 43 1 11 +8966 105 30 -118.56 1810 25 39 3 6 57 0 38 1 6 +8967 105 31 -112.48 1810 26 3 3 6 57 1 42 1 10 +8968 105 32 -106.4 1810 26 1 3 6 57 1 40 1 8 +8969 105 33 -100.32 1810 26 2 3 6 57 1 41 1 9 +8970 105 34 -94.24 1810 26 4 3 6 57 1 43 1 11 +8971 105 35 -88.16 1810 29 39 3 6 58 0 38 1 6 +8972 105 36 -82.08 1810 29 37 3 6 58 0 36 1 4 +8973 105 37 -76 1810 29 40 3 6 58 0 39 1 7 +8974 105 38 -69.92 1810 30 2 3 6 58 1 41 1 9 +8975 105 39 -63.84 1810 30 4 3 6 58 1 43 1 11 +8976 105 40 -57.76 1810 34 5 3 6 59 1 44 1 12 +8977 105 41 -51.68 1810 34 3 3 6 59 1 42 1 10 +8978 105 42 -45.6 1810 34 1 3 6 59 1 40 1 8 +8979 105 43 -39.52 1810 34 2 3 6 59 1 41 1 9 +8980 105 44 -33.44 1810 34 4 3 6 59 1 43 1 11 +8981 105 45 -27.36 1810 38 5 3 6 60 1 44 1 12 +8982 105 46 -21.28 1810 38 3 3 6 60 1 42 1 10 +8983 105 47 -15.2 1810 38 1 3 6 60 1 40 1 8 +8984 105 48 -9.12 1810 38 2 3 6 60 1 41 1 9 +8985 105 49 -3.04 1810 38 4 3 6 60 1 43 1 11 +8986 105 50 3.04 1810 42 3 3 6 61 1 42 1 10 +8987 105 51 9.12 1810 42 1 3 6 61 1 40 1 8 +8988 105 52 15.2 1810 42 2 3 6 61 1 41 1 9 +8989 105 53 21.28 1810 42 4 3 6 61 1 43 1 11 +8990 105 54 27.36 1810 42 6 3 6 61 1 45 1 13 +8991 105 55 33.44 1810 46 3 3 6 62 1 42 1 10 +8992 105 56 39.52 1810 46 1 3 6 62 1 40 1 8 +8993 105 57 45.6 1810 46 2 3 6 62 1 41 1 9 +8994 105 58 51.68 1810 46 4 3 6 62 1 43 1 11 +8995 105 59 57.76 1810 46 6 3 6 62 1 45 1 13 +8996 105 60 63.84 1810 50 3 3 6 63 1 42 1 10 +8997 105 61 69.92 1810 50 1 3 6 63 1 40 1 8 +8998 105 62 76 1810 49 39 3 6 63 0 38 1 6 +8999 105 63 82.08 1810 49 38 3 6 63 0 37 1 5 +9000 105 64 88.16 1810 49 40 3 6 63 0 39 1 7 +9001 105 65 94.24 1810 54 3 3 6 64 1 42 1 10 +9002 105 66 100.32 1810 54 1 3 6 64 1 40 1 8 +9003 105 67 106.4 1810 54 2 3 6 64 1 41 1 9 +9004 105 68 112.48 1810 54 4 3 6 64 1 43 1 11 +9005 105 69 118.56 1810 53 40 3 6 64 0 39 1 7 +9006 105 70 124.64 1810 58 3 3 6 65 1 42 1 10 +9007 105 71 130.72 1810 58 1 3 6 65 1 40 1 8 +9008 105 72 136.8 1810 58 2 3 6 65 1 41 1 9 +9009 105 73 142.88 1810 58 4 3 6 65 1 43 1 11 +9010 105 74 148.96 1810 57 40 3 6 65 0 39 1 7 +9011 105 75 155.04 1810 62 3 3 6 66 1 42 1 10 +9012 105 76 161.12 1810 62 1 3 6 66 1 40 1 8 +9013 105 77 167.2 1810 62 2 3 6 66 1 41 1 9 +9014 105 78 173.28 1810 61 38 3 6 66 0 37 1 5 +9015 105 79 179.36 1810 61 40 3 6 66 0 39 1 7 +9016 105 80 185.44 1810 66 3 3 6 67 1 42 1 10 +9017 105 81 191.52 1810 66 1 3 6 67 1 40 1 8 +9018 105 82 197.6 1810 66 2 3 6 67 1 41 1 9 +9019 105 83 203.68 1810 66 4 3 6 67 1 43 1 11 +9020 105 84 209.76 1810 65 40 3 6 67 0 39 1 7 +9021 105 85 215.84 1810 70 3 3 6 68 1 42 1 10 +9022 105 86 221.92 1810 70 1 3 6 68 1 40 1 8 +9023 105 87 228 1810 70 2 3 6 68 1 41 1 9 +9024 105 88 234.08 1810 70 4 3 6 68 1 43 1 11 +9025 105 89 240.16 1810 69 40 3 6 68 0 39 1 7 +9026 105 90 246.24 1810 74 3 3 6 69 1 42 1 10 +9027 105 91 252.32 1810 74 1 3 6 69 1 40 1 8 +9028 105 92 258.4 1810 74 2 3 6 69 1 41 1 9 +9029 105 93 264.48 1810 74 4 3 6 69 1 43 1 11 +9030 105 94 270.56 1810 74 6 3 6 69 1 45 1 13 +9031 105 95 276.64 1810 78 3 3 6 70 1 42 1 10 +9032 105 96 282.72 1810 78 1 3 6 70 1 40 1 8 +9033 105 97 288.8 1810 77 39 3 6 70 0 38 1 6 +9034 105 98 294.88 1810 77 38 3 6 70 0 37 1 5 +9035 105 99 300.96 1810 77 40 3 6 70 0 39 1 7 +9036 106 0 -307.04 1822 2 5 3 6 51 1 44 1 12 +9037 106 1 -300.96 1822 2 3 3 6 51 1 42 1 10 +9038 106 2 -294.88 1822 2 1 3 6 51 1 40 1 8 +9039 106 3 -288.8 1822 2 6 3 6 51 1 45 1 13 +9040 106 4 -282.72 1822 2 8 3 6 51 1 47 1 15 +9041 106 5 -276.64 1822 2 10 3 6 51 1 49 1 17 +9042 106 6 -270.56 1822 6 9 3 6 52 1 48 1 16 +9043 106 7 -264.48 1822 6 7 3 6 52 1 46 1 14 +9044 106 8 -258.4 1822 6 6 3 6 52 1 45 1 13 +9045 106 9 -252.32 1822 6 8 3 6 52 1 47 1 15 +9046 106 10 -246.24 1822 6 10 3 6 52 1 49 1 17 +9047 106 11 -240.16 1822 10 9 3 6 53 1 48 1 16 +9048 106 12 -234.08 1822 10 7 3 6 53 1 46 1 14 +9049 106 13 -228 1822 10 5 3 6 53 1 44 1 12 +9050 106 14 -221.92 1822 10 6 3 6 53 1 45 1 13 +9051 106 15 -215.84 1822 10 8 3 6 53 1 47 1 15 +9052 106 16 -209.76 1822 14 9 3 6 54 1 48 1 16 +9053 106 17 -203.68 1822 14 7 3 6 54 1 46 1 14 +9054 106 18 -197.6 1822 14 5 3 6 54 1 44 1 12 +9055 106 19 -191.52 1822 14 6 3 6 54 1 45 1 13 +9056 106 20 -185.44 1822 14 8 3 6 54 1 47 1 15 +9057 106 21 -179.36 1822 18 7 3 6 55 1 46 1 14 +9058 106 22 -173.28 1822 18 5 3 6 55 1 44 1 12 +9059 106 23 -167.2 1822 18 3 3 6 55 1 42 1 10 +9060 106 24 -161.12 1822 18 6 3 6 55 1 45 1 13 +9061 106 25 -155.04 1822 18 8 3 6 55 1 47 1 15 +9062 106 26 -148.96 1822 22 9 3 6 56 1 48 1 16 +9063 106 27 -142.88 1822 22 7 3 6 56 1 46 1 14 +9064 106 28 -136.8 1822 22 5 3 6 56 1 44 1 12 +9065 106 29 -130.72 1822 22 6 3 6 56 1 45 1 13 +9066 106 30 -124.64 1822 22 8 3 6 56 1 47 1 15 +9067 106 31 -118.56 1822 26 9 3 6 57 1 48 1 16 +9068 106 32 -112.48 1822 26 7 3 6 57 1 46 1 14 +9069 106 33 -106.4 1822 26 5 3 6 57 1 44 1 12 +9070 106 34 -100.32 1822 26 6 3 6 57 1 45 1 13 +9071 106 35 -94.24 1822 26 8 3 6 57 1 47 1 15 +9072 106 36 -88.16 1822 30 5 3 6 58 1 44 1 12 +9073 106 37 -82.08 1822 30 3 3 6 58 1 42 1 10 +9074 106 38 -76 1822 30 1 3 6 58 1 40 1 8 +9075 106 39 -69.92 1822 30 6 3 6 58 1 45 1 13 +9076 106 40 -63.84 1822 30 8 3 6 58 1 47 1 15 +9077 106 41 -57.76 1822 34 9 3 6 59 1 48 1 16 +9078 106 42 -51.68 1822 34 7 3 6 59 1 46 1 14 +9079 106 43 -45.6 1822 34 6 3 6 59 1 45 1 13 +9080 106 44 -39.52 1822 34 8 3 6 59 1 47 1 15 +9081 106 45 -33.44 1822 34 10 3 6 59 1 49 1 17 +9082 106 46 -27.36 1822 38 9 3 6 60 1 48 1 16 +9083 106 47 -21.28 1822 38 7 3 6 60 1 46 1 14 +9084 106 48 -15.2 1822 38 6 3 6 60 1 45 1 13 +9085 106 49 -9.12 1822 38 8 3 6 60 1 47 1 15 +9086 106 50 -3.04 1822 38 10 3 6 60 1 49 1 17 +9087 106 51 3.04 1822 42 9 3 6 61 1 48 1 16 +9088 106 52 9.12 1822 42 7 3 6 61 1 46 1 14 +9089 106 53 15.2 1822 42 5 3 6 61 1 44 1 12 +9090 106 54 21.28 1822 42 8 3 6 61 1 47 1 15 +9091 106 55 27.36 1822 42 10 3 6 61 1 49 1 17 +9092 106 56 33.44 1822 46 9 3 6 62 1 48 1 16 +9093 106 57 39.52 1822 46 7 3 6 62 1 46 1 14 +9094 106 58 45.6 1822 46 5 3 6 62 1 44 1 12 +9095 106 59 51.68 1822 46 8 3 6 62 1 47 1 15 +9096 106 60 57.76 1822 46 10 3 6 62 1 49 1 17 +9097 106 61 63.84 1822 50 7 3 6 63 1 46 1 14 +9098 106 62 69.92 1822 50 5 3 6 63 1 44 1 12 +9099 106 63 76 1822 50 2 3 6 63 1 41 1 9 +9100 106 64 82.08 1822 50 4 3 6 63 1 43 1 11 +9101 106 65 88.16 1822 50 6 3 6 63 1 45 1 13 +9102 106 66 94.24 1822 54 7 3 6 64 1 46 1 14 +9103 106 67 100.32 1822 54 5 3 6 64 1 44 1 12 +9104 106 68 106.4 1822 54 6 3 6 64 1 45 1 13 +9105 106 69 112.48 1822 54 8 3 6 64 1 47 1 15 +9106 106 70 118.56 1822 54 10 3 6 64 1 49 1 17 +9107 106 71 124.64 1822 58 7 3 6 65 1 46 1 14 +9108 106 72 130.72 1822 58 5 3 6 65 1 44 1 12 +9109 106 73 136.8 1822 58 6 3 6 65 1 45 1 13 +9110 106 74 142.88 1822 58 8 3 6 65 1 47 1 15 +9111 106 75 148.96 1822 58 10 3 6 65 1 49 1 17 +9112 106 76 155.04 1822 62 7 3 6 66 1 46 1 14 +9113 106 77 161.12 1822 62 5 3 6 66 1 44 1 12 +9114 106 78 167.2 1822 62 4 3 6 66 1 43 1 11 +9115 106 79 173.28 1822 62 6 3 6 66 1 45 1 13 +9116 106 80 179.36 1822 62 8 3 6 66 1 47 1 15 +9117 106 81 185.44 1822 66 7 3 6 67 1 46 1 14 +9118 106 82 191.52 1822 66 5 3 6 67 1 44 1 12 +9119 106 83 197.6 1822 66 6 3 6 67 1 45 1 13 +9120 106 84 203.68 1822 66 8 3 6 67 1 47 1 15 +9121 106 85 209.76 1822 66 10 3 6 67 1 49 1 17 +9122 106 86 215.84 1822 70 7 3 6 68 1 46 1 14 +9123 106 87 221.92 1822 70 5 3 6 68 1 44 1 12 +9124 106 88 228 1822 70 6 3 6 68 1 45 1 13 +9125 106 89 234.08 1822 70 8 3 6 68 1 47 1 15 +9126 106 90 240.16 1822 70 10 3 6 68 1 49 1 17 +9127 106 91 246.24 1822 74 9 3 6 69 1 48 1 16 +9128 106 92 252.32 1822 74 7 3 6 69 1 46 1 14 +9129 106 93 258.4 1822 74 5 3 6 69 1 44 1 12 +9130 106 94 264.48 1822 74 8 3 6 69 1 47 1 15 +9131 106 95 270.56 1822 74 10 3 6 69 1 49 1 17 +9132 106 96 276.64 1822 78 9 3 6 70 1 48 1 16 +9133 106 97 282.72 1822 78 7 3 6 70 1 46 1 14 +9134 106 98 288.8 1822 78 5 3 6 70 1 44 1 12 +9135 106 99 294.88 1822 78 2 3 6 70 1 41 1 9 +9136 106 100 300.96 1822 78 4 3 6 70 1 43 1 11 +9137 106 101 307.04 1822 78 6 3 6 70 1 45 1 13 +9138 107 0 -307.04 1834 2 11 3 6 51 1 50 1 18 +9139 107 1 -300.96 1834 2 9 3 6 51 1 48 1 16 +9140 107 2 -294.88 1834 2 7 3 6 51 1 46 1 14 +9141 107 3 -288.8 1834 2 12 3 6 51 1 51 1 19 +9142 107 4 -282.72 1834 2 14 3 6 51 1 53 1 21 +9143 107 5 -276.64 1834 6 15 3 6 52 1 54 1 22 +9144 107 6 -270.56 1834 6 13 3 6 52 1 52 1 20 +9145 107 7 -264.48 1834 6 11 3 6 52 1 50 1 18 +9146 107 8 -258.4 1834 6 12 3 6 52 1 51 1 19 +9147 107 9 -252.32 1834 6 14 3 6 52 1 53 1 21 +9148 107 10 -246.24 1834 10 15 3 6 53 1 54 1 22 +9149 107 11 -240.16 1834 10 13 3 6 53 1 52 1 20 +9150 107 12 -234.08 1834 10 11 3 6 53 1 50 1 18 +9151 107 13 -228 1834 10 10 3 6 53 1 49 1 17 +9152 107 14 -221.92 1834 10 12 3 6 53 1 51 1 19 +9153 107 15 -215.84 1834 14 15 3 6 54 1 54 1 22 +9154 107 16 -209.76 1834 14 13 3 6 54 1 52 1 20 +9155 107 17 -203.68 1834 14 11 3 6 54 1 50 1 18 +9156 107 18 -197.6 1834 14 10 3 6 54 1 49 1 17 +9157 107 19 -191.52 1834 14 12 3 6 54 1 51 1 19 +9158 107 20 -185.44 1834 18 13 3 6 55 1 52 1 20 +9159 107 21 -179.36 1834 18 11 3 6 55 1 50 1 18 +9160 107 22 -173.28 1834 18 9 3 6 55 1 48 1 16 +9161 107 23 -167.2 1834 18 10 3 6 55 1 49 1 17 +9162 107 24 -161.12 1834 18 12 3 6 55 1 51 1 19 +9163 107 25 -155.04 1834 18 14 3 6 55 1 53 1 21 +9164 107 26 -148.96 1834 22 13 3 6 56 1 52 1 20 +9165 107 27 -142.88 1834 22 11 3 6 56 1 50 1 18 +9166 107 28 -136.8 1834 22 10 3 6 56 1 49 1 17 +9167 107 29 -130.72 1834 22 12 3 6 56 1 51 1 19 +9168 107 30 -124.64 1834 22 14 3 6 56 1 53 1 21 +9169 107 31 -118.56 1834 26 13 3 6 57 1 52 1 20 +9170 107 32 -112.48 1834 26 11 3 6 57 1 50 1 18 +9171 107 33 -106.4 1834 26 10 3 6 57 1 49 1 17 +9172 107 34 -100.32 1834 26 12 3 6 57 1 51 1 19 +9173 107 35 -94.24 1834 26 14 3 6 57 1 53 1 21 +9174 107 36 -88.16 1834 30 11 3 6 58 1 50 1 18 +9175 107 37 -82.08 1834 30 9 3 6 58 1 48 1 16 +9176 107 38 -76 1834 30 7 3 6 58 1 46 1 14 +9177 107 39 -69.92 1834 30 10 3 6 58 1 49 1 17 +9178 107 40 -63.84 1834 30 12 3 6 58 1 51 1 19 +9179 107 41 -57.76 1834 34 15 3 6 59 1 54 1 22 +9180 107 42 -51.68 1834 34 13 3 6 59 1 52 1 20 +9181 107 43 -45.6 1834 34 11 3 6 59 1 50 1 18 +9182 107 44 -39.52 1834 34 12 3 6 59 1 51 1 19 +9183 107 45 -33.44 1834 34 14 3 6 59 1 53 1 21 +9184 107 46 -27.36 1834 38 15 3 6 60 1 54 1 22 +9185 107 47 -21.28 1834 38 13 3 6 60 1 52 1 20 +9186 107 48 -15.2 1834 38 11 3 6 60 1 50 1 18 +9187 107 49 -9.12 1834 38 12 3 6 60 1 51 1 19 +9188 107 50 -3.04 1834 38 14 3 6 60 1 53 1 21 +9189 107 51 3.04 1834 42 13 3 6 61 1 52 1 20 +9190 107 52 9.12 1834 42 11 3 6 61 1 50 1 18 +9191 107 53 15.2 1834 42 12 3 6 61 1 51 1 19 +9192 107 54 21.28 1834 42 14 3 6 61 1 53 1 21 +9193 107 55 27.36 1834 42 16 3 6 61 1 55 1 23 +9194 107 56 33.44 1834 46 13 3 6 62 1 52 1 20 +9195 107 57 39.52 1834 46 11 3 6 62 1 50 1 18 +9196 107 58 45.6 1834 46 12 3 6 62 1 51 1 19 +9197 107 59 51.68 1834 46 14 3 6 62 1 53 1 21 +9198 107 60 57.76 1834 46 16 3 6 62 1 55 1 23 +9199 107 61 63.84 1834 50 11 3 6 63 1 50 1 18 +9200 107 62 69.92 1834 50 9 3 6 63 1 48 1 16 +9201 107 63 76 1834 50 8 3 6 63 1 47 1 15 +9202 107 64 82.08 1834 50 10 3 6 63 1 49 1 17 +9203 107 65 88.16 1834 50 12 3 6 63 1 51 1 19 +9204 107 66 94.24 1834 54 13 3 6 64 1 52 1 20 +9205 107 67 100.32 1834 54 11 3 6 64 1 50 1 18 +9206 107 68 106.4 1834 54 9 3 6 64 1 48 1 16 +9207 107 69 112.48 1834 54 12 3 6 64 1 51 1 19 +9208 107 70 118.56 1834 54 14 3 6 64 1 53 1 21 +9209 107 71 124.64 1834 58 13 3 6 65 1 52 1 20 +9210 107 72 130.72 1834 58 11 3 6 65 1 50 1 18 +9211 107 73 136.8 1834 58 9 3 6 65 1 48 1 16 +9212 107 74 142.88 1834 58 12 3 6 65 1 51 1 19 +9213 107 75 148.96 1834 58 14 3 6 65 1 53 1 21 +9214 107 76 155.04 1834 62 13 3 6 66 1 52 1 20 +9215 107 77 161.12 1834 62 11 3 6 66 1 50 1 18 +9216 107 78 167.2 1834 62 9 3 6 66 1 48 1 16 +9217 107 79 173.28 1834 62 10 3 6 66 1 49 1 17 +9218 107 80 179.36 1834 62 12 3 6 66 1 51 1 19 +9219 107 81 185.44 1834 62 14 3 6 66 1 53 1 21 +9220 107 82 191.52 1834 66 11 3 6 67 1 50 1 18 +9221 107 83 197.6 1834 66 9 3 6 67 1 48 1 16 +9222 107 84 203.68 1834 66 12 3 6 67 1 51 1 19 +9223 107 85 209.76 1834 66 14 3 6 67 1 53 1 21 +9224 107 86 215.84 1834 66 16 3 6 67 1 55 1 23 +9225 107 87 221.92 1834 70 11 3 6 68 1 50 1 18 +9226 107 88 228 1834 70 9 3 6 68 1 48 1 16 +9227 107 89 234.08 1834 70 12 3 6 68 1 51 1 19 +9228 107 90 240.16 1834 70 14 3 6 68 1 53 1 21 +9229 107 91 246.24 1834 70 16 3 6 68 1 55 1 23 +9230 107 92 252.32 1834 74 13 3 6 69 1 52 1 20 +9231 107 93 258.4 1834 74 11 3 6 69 1 50 1 18 +9232 107 94 264.48 1834 74 12 3 6 69 1 51 1 19 +9233 107 95 270.56 1834 74 14 3 6 69 1 53 1 21 +9234 107 96 276.64 1834 74 16 3 6 69 1 55 1 23 +9235 107 97 282.72 1834 78 13 3 6 70 1 52 1 20 +9236 107 98 288.8 1834 78 11 3 6 70 1 50 1 18 +9237 107 99 294.88 1834 78 8 3 6 70 1 47 1 15 +9238 107 100 300.96 1834 78 10 3 6 70 1 49 1 17 +9239 107 101 307.04 1834 78 12 3 6 70 1 51 1 19 +9240 108 0 -307.04 1846 2 17 3 6 51 1 56 1 24 +9241 108 1 -300.96 1846 2 15 3 6 51 1 54 1 22 +9242 108 2 -294.88 1846 2 13 3 6 51 1 52 1 20 +9243 108 3 -288.8 1846 2 16 3 6 51 1 55 1 23 +9244 108 4 -282.72 1846 2 18 3 6 51 1 57 1 25 +9245 108 5 -276.64 1846 6 21 3 6 52 1 60 1 28 +9246 108 6 -270.56 1846 6 19 3 6 52 1 58 1 26 +9247 108 7 -264.48 1846 6 17 3 6 52 1 56 1 24 +9248 108 8 -258.4 1846 6 16 3 6 52 1 55 1 23 +9249 108 9 -252.32 1846 6 18 3 6 52 1 57 1 25 +9250 108 10 -246.24 1846 10 19 3 6 53 1 58 1 26 +9251 108 11 -240.16 1846 10 17 3 6 53 1 56 1 24 +9252 108 12 -234.08 1846 10 14 3 6 53 1 53 1 21 +9253 108 13 -228 1846 10 16 3 6 53 1 55 1 23 +9254 108 14 -221.92 1846 10 18 3 6 53 1 57 1 25 +9255 108 15 -215.84 1846 14 21 3 6 54 1 60 1 28 +9256 108 16 -209.76 1846 14 19 3 6 54 1 58 1 26 +9257 108 17 -203.68 1846 14 17 3 6 54 1 56 1 24 +9258 108 18 -197.6 1846 14 14 3 6 54 1 53 1 21 +9259 108 19 -191.52 1846 14 16 3 6 54 1 55 1 23 +9260 108 20 -185.44 1846 18 19 3 6 55 1 58 1 26 +9261 108 21 -179.36 1846 18 17 3 6 55 1 56 1 24 +9262 108 22 -173.28 1846 18 15 3 6 55 1 54 1 22 +9263 108 23 -167.2 1846 18 16 3 6 55 1 55 1 23 +9264 108 24 -161.12 1846 18 18 3 6 55 1 57 1 25 +9265 108 25 -155.04 1846 22 19 3 6 56 1 58 1 26 +9266 108 26 -148.96 1846 22 17 3 6 56 1 56 1 24 +9267 108 27 -142.88 1846 22 15 3 6 56 1 54 1 22 +9268 108 28 -136.8 1846 22 16 3 6 56 1 55 1 23 +9269 108 29 -130.72 1846 22 18 3 6 56 1 57 1 25 +9270 108 30 -124.64 1846 22 20 3 6 56 1 59 1 27 +9271 108 31 -118.56 1846 26 19 3 6 57 1 58 1 26 +9272 108 32 -112.48 1846 26 17 3 6 57 1 56 1 24 +9273 108 33 -106.4 1846 26 15 3 6 57 1 54 1 22 +9274 108 34 -100.32 1846 26 16 3 6 57 1 55 1 23 +9275 108 35 -94.24 1846 26 18 3 6 57 1 57 1 25 +9276 108 36 -88.16 1846 30 17 3 6 58 1 56 1 24 +9277 108 37 -82.08 1846 30 15 3 6 58 1 54 1 22 +9278 108 38 -76 1846 30 13 3 6 58 1 52 1 20 +9279 108 39 -69.92 1846 30 14 3 6 58 1 53 1 21 +9280 108 40 -63.84 1846 30 16 3 6 58 1 55 1 23 +9281 108 41 -57.76 1846 34 19 3 6 59 1 58 1 26 +9282 108 42 -51.68 1846 34 17 3 6 59 1 56 1 24 +9283 108 43 -45.6 1846 34 16 3 6 59 1 55 1 23 +9284 108 44 -39.52 1846 34 18 3 6 59 1 57 1 25 +9285 108 45 -33.44 1846 34 20 3 6 59 1 59 1 27 +9286 108 46 -27.36 1846 38 19 3 6 60 1 58 1 26 +9287 108 47 -21.28 1846 38 17 3 6 60 1 56 1 24 +9288 108 48 -15.2 1846 38 16 3 6 60 1 55 1 23 +9289 108 49 -9.12 1846 38 18 3 6 60 1 57 1 25 +9290 108 50 -3.04 1846 38 20 3 6 60 1 59 1 27 +9291 108 51 3.04 1846 42 19 3 6 61 1 58 1 26 +9292 108 52 9.12 1846 42 17 3 6 61 1 56 1 24 +9293 108 53 15.2 1846 42 15 3 6 61 1 54 1 22 +9294 108 54 21.28 1846 42 18 3 6 61 1 57 1 25 +9295 108 55 27.36 1846 42 20 3 6 61 1 59 1 27 +9296 108 56 33.44 1846 46 19 3 6 62 1 58 1 26 +9297 108 57 39.52 1846 46 17 3 6 62 1 56 1 24 +9298 108 58 45.6 1846 46 15 3 6 62 1 54 1 22 +9299 108 59 51.68 1846 46 18 3 6 62 1 57 1 25 +9300 108 60 57.76 1846 46 20 3 6 62 1 59 1 27 +9301 108 61 63.84 1846 50 15 3 6 63 1 54 1 22 +9302 108 62 69.92 1846 50 13 3 6 63 1 52 1 20 +9303 108 63 76 1846 50 14 3 6 63 1 53 1 21 +9304 108 64 82.08 1846 50 16 3 6 63 1 55 1 23 +9305 108 65 88.16 1846 50 18 3 6 63 1 57 1 25 +9306 108 66 94.24 1846 54 17 3 6 64 1 56 1 24 +9307 108 67 100.32 1846 54 15 3 6 64 1 54 1 22 +9308 108 68 106.4 1846 54 16 3 6 64 1 55 1 23 +9309 108 69 112.48 1846 54 18 3 6 64 1 57 1 25 +9310 108 70 118.56 1846 54 20 3 6 64 1 59 1 27 +9311 108 71 124.64 1846 58 19 3 6 65 1 58 1 26 +9312 108 72 130.72 1846 58 17 3 6 65 1 56 1 24 +9313 108 73 136.8 1846 58 15 3 6 65 1 54 1 22 +9314 108 74 142.88 1846 58 16 3 6 65 1 55 1 23 +9315 108 75 148.96 1846 58 18 3 6 65 1 57 1 25 +9316 108 76 155.04 1846 58 20 3 6 65 1 59 1 27 +9317 108 77 161.12 1846 62 17 3 6 66 1 56 1 24 +9318 108 78 167.2 1846 62 15 3 6 66 1 54 1 22 +9319 108 79 173.28 1846 62 16 3 6 66 1 55 1 23 +9320 108 80 179.36 1846 62 18 3 6 66 1 57 1 25 +9321 108 81 185.44 1846 62 20 3 6 66 1 59 1 27 +9322 108 82 191.52 1846 66 15 3 6 67 1 54 1 22 +9323 108 83 197.6 1846 66 13 3 6 67 1 52 1 20 +9324 108 84 203.68 1846 66 18 3 6 67 1 57 1 25 +9325 108 85 209.76 1846 66 20 3 6 67 1 59 1 27 +9326 108 86 215.84 1846 66 22 3 6 67 1 61 1 29 +9327 108 87 221.92 1846 70 17 3 6 68 1 56 1 24 +9328 108 88 228 1846 70 15 3 6 68 1 54 1 22 +9329 108 89 234.08 1846 70 13 3 6 68 1 52 1 20 +9330 108 90 240.16 1846 70 18 3 6 68 1 57 1 25 +9331 108 91 246.24 1846 70 20 3 6 68 1 59 1 27 +9332 108 92 252.32 1846 74 17 3 6 69 1 56 1 24 +9333 108 93 258.4 1846 74 15 3 6 69 1 54 1 22 +9334 108 94 264.48 1846 74 18 3 6 69 1 57 1 25 +9335 108 95 270.56 1846 74 20 3 6 69 1 59 1 27 +9336 108 96 276.64 1846 74 22 3 6 69 1 61 1 29 +9337 108 97 282.72 1846 78 17 3 6 70 1 56 1 24 +9338 108 98 288.8 1846 78 15 3 6 70 1 54 1 22 +9339 108 99 294.88 1846 78 14 3 6 70 1 53 1 21 +9340 108 100 300.96 1846 78 16 3 6 70 1 55 1 23 +9341 108 101 307.04 1846 78 18 3 6 70 1 57 1 25 +9342 109 0 -313.12 1858 2 23 3 6 51 1 62 1 30 +9343 109 1 -307.04 1858 2 21 3 6 51 1 60 1 28 +9344 109 2 -300.96 1858 2 19 3 6 51 1 58 1 26 +9345 109 3 -294.88 1858 2 20 3 6 51 1 59 1 27 +9346 109 4 -288.8 1858 2 22 3 6 51 1 61 1 29 +9347 109 5 -282.72 1858 2 24 3 6 51 1 63 1 31 +9348 109 6 -276.64 1858 6 25 3 6 52 1 64 2 0 +9349 109 7 -270.56 1858 6 23 3 6 52 1 62 1 30 +9350 109 8 -264.48 1858 6 20 3 6 52 1 59 1 27 +9351 109 9 -258.4 1858 6 22 3 6 52 1 61 1 29 +9352 109 10 -252.32 1858 6 24 3 6 52 1 63 1 31 +9353 109 11 -246.24 1858 10 23 3 6 53 1 62 1 30 +9354 109 12 -240.16 1858 10 21 3 6 53 1 60 1 28 +9355 109 13 -234.08 1858 10 20 3 6 53 1 59 1 27 +9356 109 14 -228 1858 10 22 3 6 53 1 61 1 29 +9357 109 15 -221.92 1858 10 24 3 6 53 1 63 1 31 +9358 109 16 -215.84 1858 14 25 3 6 54 1 64 2 0 +9359 109 17 -209.76 1858 14 23 3 6 54 1 62 1 30 +9360 109 18 -203.68 1858 14 18 3 6 54 1 57 1 25 +9361 109 19 -197.6 1858 14 20 3 6 54 1 59 1 27 +9362 109 20 -191.52 1858 14 22 3 6 54 1 61 1 29 +9363 109 21 -185.44 1858 18 23 3 6 55 1 62 1 30 +9364 109 22 -179.36 1858 18 21 3 6 55 1 60 1 28 +9365 109 23 -173.28 1858 18 20 3 6 55 1 59 1 27 +9366 109 24 -167.2 1858 18 22 3 6 55 1 61 1 29 +9367 109 25 -161.12 1858 18 24 3 6 55 1 63 1 31 +9368 109 26 -155.04 1858 22 23 3 6 56 1 62 1 30 +9369 109 27 -148.96 1858 22 21 3 6 56 1 60 1 28 +9370 109 28 -142.88 1858 22 22 3 6 56 1 61 1 29 +9371 109 29 -136.8 1858 22 24 3 6 56 1 63 1 31 +9372 109 30 -130.72 1858 22 26 3 6 56 1 65 2 1 +9373 109 31 -124.64 1858 26 25 3 6 57 1 64 2 0 +9374 109 32 -118.56 1858 26 23 3 6 57 1 62 1 30 +9375 109 33 -112.48 1858 26 21 3 6 57 1 60 1 28 +9376 109 34 -106.4 1858 26 20 3 6 57 1 59 1 27 +9377 109 35 -100.32 1858 26 22 3 6 57 1 61 1 29 +9378 109 36 -94.24 1858 26 24 3 6 57 1 63 1 31 +9379 109 37 -88.16 1858 30 21 3 6 58 1 60 1 28 +9380 109 38 -82.08 1858 30 19 3 6 58 1 58 1 26 +9381 109 39 -76 1858 30 18 3 6 58 1 57 1 25 +9382 109 40 -69.92 1858 30 20 3 6 58 1 59 1 27 +9383 109 41 -63.84 1858 30 22 3 6 58 1 61 1 29 +9384 109 42 -57.76 1858 34 25 3 6 59 1 64 2 0 +9385 109 43 -51.68 1858 34 23 3 6 59 1 62 1 30 +9386 109 44 -45.6 1858 34 21 3 6 59 1 60 1 28 +9387 109 45 -39.52 1858 34 22 3 6 59 1 61 1 29 +9388 109 46 -33.44 1858 34 24 3 6 59 1 63 1 31 +9389 109 47 -27.36 1858 38 25 3 6 60 1 64 2 0 +9390 109 48 -21.28 1858 38 23 3 6 60 1 62 1 30 +9391 109 49 -15.2 1858 38 21 3 6 60 1 60 1 28 +9392 109 50 -9.12 1858 38 22 3 6 60 1 61 1 29 +9393 109 51 -3.04 1858 38 24 3 6 60 1 63 1 31 +9394 109 52 3.04 1858 42 23 3 6 61 1 62 1 30 +9395 109 53 9.12 1858 42 21 3 6 61 1 60 1 28 +9396 109 54 15.2 1858 42 22 3 6 61 1 61 1 29 +9397 109 55 21.28 1858 42 24 3 6 61 1 63 1 31 +9398 109 56 27.36 1858 42 26 3 6 61 1 65 2 1 +9399 109 57 33.44 1858 46 23 3 6 62 1 62 1 30 +9400 109 58 39.52 1858 46 21 3 6 62 1 60 1 28 +9401 109 59 45.6 1858 46 22 3 6 62 1 61 1 29 +9402 109 60 51.68 1858 46 24 3 6 62 1 63 1 31 +9403 109 61 57.76 1858 46 26 3 6 62 1 65 2 1 +9404 109 62 63.84 1858 50 21 3 6 63 1 60 1 28 +9405 109 63 69.92 1858 50 19 3 6 63 1 58 1 26 +9406 109 64 76 1858 50 17 3 6 63 1 56 1 24 +9407 109 65 82.08 1858 50 20 3 6 63 1 59 1 27 +9408 109 66 88.16 1858 50 22 3 6 63 1 61 1 29 +9409 109 67 94.24 1858 54 23 3 6 64 1 62 1 30 +9410 109 68 100.32 1858 54 21 3 6 64 1 60 1 28 +9411 109 69 106.4 1858 54 19 3 6 64 1 58 1 26 +9412 109 70 112.48 1858 54 22 3 6 64 1 61 1 29 +9413 109 71 118.56 1858 54 24 3 6 64 1 63 1 31 +9414 109 72 124.64 1858 54 26 3 6 64 1 65 2 1 +9415 109 73 130.72 1858 58 25 3 6 65 1 64 2 0 +9416 109 74 136.8 1858 58 23 3 6 65 1 62 1 30 +9417 109 75 142.88 1858 58 21 3 6 65 1 60 1 28 +9418 109 76 148.96 1858 58 22 3 6 65 1 61 1 29 +9419 109 77 155.04 1858 58 24 3 6 65 1 63 1 31 +9420 109 78 161.12 1858 62 23 3 6 66 1 62 1 30 +9421 109 79 167.2 1858 62 21 3 6 66 1 60 1 28 +9422 109 80 173.28 1858 62 19 3 6 66 1 58 1 26 +9423 109 81 179.36 1858 62 22 3 6 66 1 61 1 29 +9424 109 82 185.44 1858 62 24 3 6 66 1 63 1 31 +9425 109 83 191.52 1858 66 21 3 6 67 1 60 1 28 +9426 109 84 197.6 1858 66 19 3 6 67 1 58 1 26 +9427 109 85 203.68 1858 66 17 3 6 67 1 56 1 24 +9428 109 86 209.76 1858 66 24 3 6 67 1 63 1 31 +9429 109 87 215.84 1858 66 26 3 6 67 1 65 2 1 +9430 109 88 221.92 1858 70 23 3 6 68 1 62 1 30 +9431 109 89 228 1858 70 21 3 6 68 1 60 1 28 +9432 109 90 234.08 1858 70 19 3 6 68 1 58 1 26 +9433 109 91 240.16 1858 70 22 3 6 68 1 61 1 29 +9434 109 92 246.24 1858 70 24 3 6 68 1 63 1 31 +9435 109 93 252.32 1858 74 23 3 6 69 1 62 1 30 +9436 109 94 258.4 1858 74 21 3 6 69 1 60 1 28 +9437 109 95 264.48 1858 74 19 3 6 69 1 58 1 26 +9438 109 96 270.56 1858 74 24 3 6 69 1 63 1 31 +9439 109 97 276.64 1858 74 26 3 6 69 1 65 2 1 +9440 109 98 282.72 1858 78 23 3 6 70 1 62 1 30 +9441 109 99 288.8 1858 78 21 3 6 70 1 60 1 28 +9442 109 100 294.88 1858 78 19 3 6 70 1 58 1 26 +9443 109 101 300.96 1858 78 20 3 6 70 1 59 1 27 +9444 109 102 307.04 1858 78 22 3 6 70 1 61 1 29 +9445 109 103 313.12 1858 78 24 3 6 70 1 63 1 31 +9446 110 0 -313.12 1870 2 29 3 6 51 1 68 2 4 +9447 110 1 -307.04 1870 2 27 3 6 51 1 66 2 2 +9448 110 2 -300.96 1870 2 25 3 6 51 1 64 2 0 +9449 110 3 -294.88 1870 2 26 3 6 51 1 65 2 1 +9450 110 4 -288.8 1870 2 28 3 6 51 1 67 2 3 +9451 110 5 -282.72 1870 6 29 3 6 52 1 68 2 4 +9452 110 6 -276.64 1870 6 27 3 6 52 1 66 2 2 +9453 110 7 -270.56 1870 6 26 3 6 52 1 65 2 1 +9454 110 8 -264.48 1870 6 28 3 6 52 1 67 2 3 +9455 110 9 -258.4 1870 6 30 3 6 52 1 69 2 5 +9456 110 10 -252.32 1870 10 29 3 6 53 1 68 2 4 +9457 110 11 -246.24 1870 10 27 3 6 53 1 66 2 2 +9458 110 12 -240.16 1870 10 25 3 6 53 1 64 2 0 +9459 110 13 -234.08 1870 10 26 3 6 53 1 65 2 1 +9460 110 14 -228 1870 10 28 3 6 53 1 67 2 3 +9461 110 15 -221.92 1870 10 30 3 6 53 1 69 2 5 +9462 110 16 -215.84 1870 14 29 3 6 54 1 68 2 4 +9463 110 17 -209.76 1870 14 27 3 6 54 1 66 2 2 +9464 110 18 -203.68 1870 14 24 3 6 54 1 63 1 31 +9465 110 19 -197.6 1870 14 26 3 6 54 1 65 2 1 +9466 110 20 -191.52 1870 14 28 3 6 54 1 67 2 3 +9467 110 21 -185.44 1870 18 29 3 6 55 1 68 2 4 +9468 110 22 -179.36 1870 18 27 3 6 55 1 66 2 2 +9469 110 23 -173.28 1870 18 25 3 6 55 1 64 2 0 +9470 110 24 -167.2 1870 18 26 3 6 55 1 65 2 1 +9471 110 25 -161.12 1870 18 28 3 6 55 1 67 2 3 +9472 110 26 -155.04 1870 22 29 3 6 56 1 68 2 4 +9473 110 27 -148.96 1870 22 27 3 6 56 1 66 2 2 +9474 110 28 -142.88 1870 22 25 3 6 56 1 64 2 0 +9475 110 29 -136.8 1870 22 28 3 6 56 1 67 2 3 +9476 110 30 -130.72 1870 22 30 3 6 56 1 69 2 5 +9477 110 31 -124.64 1870 26 29 3 6 57 1 68 2 4 +9478 110 32 -118.56 1870 26 27 3 6 57 1 66 2 2 +9479 110 33 -112.48 1870 26 26 3 6 57 1 65 2 1 +9480 110 34 -106.4 1870 26 28 3 6 57 1 67 2 3 +9481 110 35 -100.32 1870 26 30 3 6 57 1 69 2 5 +9482 110 36 -94.24 1870 30 27 3 6 58 1 66 2 2 +9483 110 37 -88.16 1870 30 25 3 6 58 1 64 2 0 +9484 110 38 -82.08 1870 30 23 3 6 58 1 62 1 30 +9485 110 39 -76 1870 30 24 3 6 58 1 63 1 31 +9486 110 40 -69.92 1870 30 26 3 6 58 1 65 2 1 +9487 110 41 -63.84 1870 30 28 3 6 58 1 67 2 3 +9488 110 42 -57.76 1870 34 29 3 6 59 1 68 2 4 +9489 110 43 -51.68 1870 34 27 3 6 59 1 66 2 2 +9490 110 44 -45.6 1870 34 26 3 6 59 1 65 2 1 +9491 110 45 -39.52 1870 34 28 3 6 59 1 67 2 3 +9492 110 46 -33.44 1870 34 30 3 6 59 1 69 2 5 +9493 110 47 -27.36 1870 38 29 3 6 60 1 68 2 4 +9494 110 48 -21.28 1870 38 27 3 6 60 1 66 2 2 +9495 110 49 -15.2 1870 38 26 3 6 60 1 65 2 1 +9496 110 50 -9.12 1870 38 28 3 6 60 1 67 2 3 +9497 110 51 -3.04 1870 38 30 3 6 60 1 69 2 5 +9498 110 52 3.04 1870 42 29 3 6 61 1 68 2 4 +9499 110 53 9.12 1870 42 27 3 6 61 1 66 2 2 +9500 110 54 15.2 1870 42 25 3 6 61 1 64 2 0 +9501 110 55 21.28 1870 42 28 3 6 61 1 67 2 3 +9502 110 56 27.36 1870 42 30 3 6 61 1 69 2 5 +9503 110 57 33.44 1870 46 29 3 6 62 1 68 2 4 +9504 110 58 39.52 1870 46 27 3 6 62 1 66 2 2 +9505 110 59 45.6 1870 46 25 3 6 62 1 64 2 0 +9506 110 60 51.68 1870 46 28 3 6 62 1 67 2 3 +9507 110 61 57.76 1870 46 30 3 6 62 1 69 2 5 +9508 110 62 63.84 1870 50 27 3 6 63 1 66 2 2 +9509 110 63 69.92 1870 50 25 3 6 63 1 64 2 0 +9510 110 64 76 1870 50 23 3 6 63 1 62 1 30 +9511 110 65 82.08 1870 50 24 3 6 63 1 63 1 31 +9512 110 66 88.16 1870 50 26 3 6 63 1 65 2 1 +9513 110 67 94.24 1870 50 28 3 6 63 1 67 2 3 +9514 110 68 100.32 1870 54 29 3 6 64 1 68 2 4 +9515 110 69 106.4 1870 54 27 3 6 64 1 66 2 2 +9516 110 70 112.48 1870 54 25 3 6 64 1 64 2 0 +9517 110 71 118.56 1870 54 28 3 6 64 1 67 2 3 +9518 110 72 124.64 1870 54 30 3 6 64 1 69 2 5 +9519 110 73 130.72 1870 58 29 3 6 65 1 68 2 4 +9520 110 74 136.8 1870 58 27 3 6 65 1 66 2 2 +9521 110 75 142.88 1870 58 26 3 6 65 1 65 2 1 +9522 110 76 148.96 1870 58 28 3 6 65 1 67 2 3 +9523 110 77 155.04 1870 58 30 3 6 65 1 69 2 5 +9524 110 78 161.12 1870 62 27 3 6 66 1 66 2 2 +9525 110 79 167.2 1870 62 25 3 6 66 1 64 2 0 +9526 110 80 173.28 1870 62 26 3 6 66 1 65 2 1 +9527 110 81 179.36 1870 62 28 3 6 66 1 67 2 3 +9528 110 82 185.44 1870 62 30 3 6 66 1 69 2 5 +9529 110 83 191.52 1870 66 27 3 6 67 1 66 2 2 +9530 110 84 197.6 1870 66 25 3 6 67 1 64 2 0 +9531 110 85 203.68 1870 66 23 3 6 67 1 62 1 30 +9532 110 86 209.76 1870 66 28 3 6 67 1 67 2 3 +9533 110 87 215.84 1870 66 30 3 6 67 1 69 2 5 +9534 110 88 221.92 1870 70 29 3 6 68 1 68 2 4 +9535 110 89 228 1870 70 27 3 6 68 1 66 2 2 +9536 110 90 234.08 1870 70 25 3 6 68 1 64 2 0 +9537 110 91 240.16 1870 70 26 3 6 68 1 65 2 1 +9538 110 92 246.24 1870 70 28 3 6 68 1 67 2 3 +9539 110 93 252.32 1870 70 30 3 6 68 1 69 2 5 +9540 110 94 258.4 1870 74 29 3 6 69 1 68 2 4 +9541 110 95 264.48 1870 74 27 3 6 69 1 66 2 2 +9542 110 96 270.56 1870 74 25 3 6 69 1 64 2 0 +9543 110 97 276.64 1870 74 28 3 6 69 1 67 2 3 +9544 110 98 282.72 1870 74 30 3 6 69 1 69 2 5 +9545 110 99 288.8 1870 78 27 3 6 70 1 66 2 2 +9546 110 100 294.88 1870 78 25 3 6 70 1 64 2 0 +9547 110 101 300.96 1870 78 26 3 6 70 1 65 2 1 +9548 110 102 307.04 1870 78 28 3 6 70 1 67 2 3 +9549 110 103 313.12 1870 78 30 3 6 70 1 69 2 5 +9550 111 0 -313.12 1882 2 33 3 6 51 1 72 2 8 +9551 111 1 -307.04 1882 2 31 3 6 51 1 70 2 6 +9552 111 2 -300.96 1882 2 30 3 6 51 1 69 2 5 +9553 111 3 -294.88 1882 2 32 3 6 51 1 71 2 7 +9554 111 4 -288.8 1882 2 34 3 6 51 1 73 2 9 +9555 111 5 -282.72 1882 6 35 3 6 52 1 74 2 10 +9556 111 6 -276.64 1882 6 33 3 6 52 1 72 2 8 +9557 111 7 -270.56 1882 6 31 3 6 52 1 70 2 6 +9558 111 8 -264.48 1882 6 32 3 6 52 1 71 2 7 +9559 111 9 -258.4 1882 6 34 3 6 52 1 73 2 9 +9560 111 10 -252.32 1882 10 35 3 6 53 1 74 2 10 +9561 111 11 -246.24 1882 10 33 3 6 53 1 72 2 8 +9562 111 12 -240.16 1882 10 31 3 6 53 1 70 2 6 +9563 111 13 -234.08 1882 10 32 3 6 53 1 71 2 7 +9564 111 14 -228 1882 10 34 3 6 53 1 73 2 9 +9565 111 15 -221.92 1882 14 35 3 6 54 1 74 2 10 +9566 111 16 -215.84 1882 14 33 3 6 54 1 72 2 8 +9567 111 17 -209.76 1882 14 31 3 6 54 1 70 2 6 +9568 111 18 -203.68 1882 14 30 3 6 54 1 69 2 5 +9569 111 19 -197.6 1882 14 32 3 6 54 1 71 2 7 +9570 111 20 -191.52 1882 14 34 3 6 54 1 73 2 9 +9571 111 21 -185.44 1882 18 33 3 6 55 1 72 2 8 +9572 111 22 -179.36 1882 18 31 3 6 55 1 70 2 6 +9573 111 23 -173.28 1882 18 30 3 6 55 1 69 2 5 +9574 111 24 -167.2 1882 18 32 3 6 55 1 71 2 7 +9575 111 25 -161.12 1882 18 34 3 6 55 1 73 2 9 +9576 111 26 -155.04 1882 22 33 3 6 56 1 72 2 8 +9577 111 27 -148.96 1882 22 31 3 6 56 1 70 2 6 +9578 111 28 -142.88 1882 22 32 3 6 56 1 71 2 7 +9579 111 29 -136.8 1882 22 34 3 6 56 1 73 2 9 +9580 111 30 -130.72 1882 22 36 3 6 56 1 75 2 11 +9581 111 31 -124.64 1882 26 35 3 6 57 1 74 2 10 +9582 111 32 -118.56 1882 26 33 3 6 57 1 72 2 8 +9583 111 33 -112.48 1882 26 31 3 6 57 1 70 2 6 +9584 111 34 -106.4 1882 26 32 3 6 57 1 71 2 7 +9585 111 35 -100.32 1882 26 34 3 6 57 1 73 2 9 +9586 111 36 -94.24 1882 30 33 3 6 58 1 72 2 8 +9587 111 37 -88.16 1882 30 31 3 6 58 1 70 2 6 +9588 111 38 -82.08 1882 30 29 3 6 58 1 68 2 4 +9589 111 39 -76 1882 30 30 3 6 58 1 69 2 5 +9590 111 40 -69.92 1882 30 32 3 6 58 1 71 2 7 +9591 111 41 -63.84 1882 30 34 3 6 58 1 73 2 9 +9592 111 42 -57.76 1882 34 35 3 6 59 1 74 2 10 +9593 111 43 -51.68 1882 34 33 3 6 59 1 72 2 8 +9594 111 44 -45.6 1882 34 31 3 6 59 1 70 2 6 +9595 111 45 -39.52 1882 34 32 3 6 59 1 71 2 7 +9596 111 46 -33.44 1882 34 34 3 6 59 1 73 2 9 +9597 111 47 -27.36 1882 38 35 3 6 60 1 74 2 10 +9598 111 48 -21.28 1882 38 33 3 6 60 1 72 2 8 +9599 111 49 -15.2 1882 38 31 3 6 60 1 70 2 6 +9600 111 50 -9.12 1882 38 32 3 6 60 1 71 2 7 +9601 111 51 -3.04 1882 38 34 3 6 60 1 73 2 9 +9602 111 52 3.04 1882 42 33 3 6 61 1 72 2 8 +9603 111 53 9.12 1882 42 31 3 6 61 1 70 2 6 +9604 111 54 15.2 1882 42 32 3 6 61 1 71 2 7 +9605 111 55 21.28 1882 42 34 3 6 61 1 73 2 9 +9606 111 56 27.36 1882 42 36 3 6 61 1 75 2 11 +9607 111 57 33.44 1882 46 33 3 6 62 1 72 2 8 +9608 111 58 39.52 1882 46 31 3 6 62 1 70 2 6 +9609 111 59 45.6 1882 46 32 3 6 62 1 71 2 7 +9610 111 60 51.68 1882 46 34 3 6 62 1 73 2 9 +9611 111 61 57.76 1882 46 36 3 6 62 1 75 2 11 +9612 111 62 63.84 1882 50 33 3 6 63 1 72 2 8 +9613 111 63 69.92 1882 50 31 3 6 63 1 70 2 6 +9614 111 64 76 1882 50 29 3 6 63 1 68 2 4 +9615 111 65 82.08 1882 50 30 3 6 63 1 69 2 5 +9616 111 66 88.16 1882 50 32 3 6 63 1 71 2 7 +9617 111 67 94.24 1882 50 34 3 6 63 1 73 2 9 +9618 111 68 100.32 1882 54 33 3 6 64 1 72 2 8 +9619 111 69 106.4 1882 54 31 3 6 64 1 70 2 6 +9620 111 70 112.48 1882 54 32 3 6 64 1 71 2 7 +9621 111 71 118.56 1882 54 34 3 6 64 1 73 2 9 +9622 111 72 124.64 1882 54 36 3 6 64 1 75 2 11 +9623 111 73 130.72 1882 58 35 3 6 65 1 74 2 10 +9624 111 74 136.8 1882 58 33 3 6 65 1 72 2 8 +9625 111 75 142.88 1882 58 31 3 6 65 1 70 2 6 +9626 111 76 148.96 1882 58 32 3 6 65 1 71 2 7 +9627 111 77 155.04 1882 58 34 3 6 65 1 73 2 9 +9628 111 78 161.12 1882 62 33 3 6 66 1 72 2 8 +9629 111 79 167.2 1882 62 31 3 6 66 1 70 2 6 +9630 111 80 173.28 1882 62 29 3 6 66 1 68 2 4 +9631 111 81 179.36 1882 62 32 3 6 66 1 71 2 7 +9632 111 82 185.44 1882 62 34 3 6 66 1 73 2 9 +9633 111 83 191.52 1882 66 33 3 6 67 1 72 2 8 +9634 111 84 197.6 1882 66 31 3 6 67 1 70 2 6 +9635 111 85 203.68 1882 66 29 3 6 67 1 68 2 4 +9636 111 86 209.76 1882 66 32 3 6 67 1 71 2 7 +9637 111 87 215.84 1882 66 34 3 6 67 1 73 2 9 +9638 111 88 221.92 1882 66 36 3 6 67 1 75 2 11 +9639 111 89 228 1882 70 33 3 6 68 1 72 2 8 +9640 111 90 234.08 1882 70 31 3 6 68 1 70 2 6 +9641 111 91 240.16 1882 70 32 3 6 68 1 71 2 7 +9642 111 92 246.24 1882 70 34 3 6 68 1 73 2 9 +9643 111 93 252.32 1882 70 36 3 6 68 1 75 2 11 +9644 111 94 258.4 1882 74 33 3 6 69 1 72 2 8 +9645 111 95 264.48 1882 74 31 3 6 69 1 70 2 6 +9646 111 96 270.56 1882 74 32 3 6 69 1 71 2 7 +9647 111 97 276.64 1882 74 34 3 6 69 1 73 2 9 +9648 111 98 282.72 1882 74 36 3 6 69 1 75 2 11 +9649 111 99 288.8 1882 78 33 3 6 70 1 72 2 8 +9650 111 100 294.88 1882 78 31 3 6 70 1 70 2 6 +9651 111 101 300.96 1882 78 29 3 6 70 1 68 2 4 +9652 111 102 307.04 1882 78 32 3 6 70 1 71 2 7 +9653 111 103 313.12 1882 78 34 3 6 70 1 73 2 9 +9654 112 0 -319.2 1894 2 39 3 6 51 1 78 2 14 +9655 112 1 -313.12 1894 2 37 3 6 51 1 76 2 12 +9656 112 2 -307.04 1894 2 35 3 6 51 1 74 2 10 +9657 112 3 -300.96 1894 2 36 3 6 51 1 75 2 11 +9658 112 4 -294.88 1894 2 38 3 6 51 1 77 2 13 +9659 112 5 -288.8 1894 2 40 3 6 51 1 79 2 15 +9660 112 6 -282.72 1894 6 39 3 6 52 1 78 2 14 +9661 112 7 -276.64 1894 6 37 3 6 52 1 76 2 12 +9662 112 8 -270.56 1894 6 36 3 6 52 1 75 2 11 +9663 112 9 -264.48 1894 6 38 3 6 52 1 77 2 13 +9664 112 10 -258.4 1894 6 40 3 6 52 1 79 2 15 +9665 112 11 -252.32 1894 10 39 3 6 53 1 78 2 14 +9666 112 12 -246.24 1894 10 37 3 6 53 1 76 2 12 +9667 112 13 -240.16 1894 10 36 3 6 53 1 75 2 11 +9668 112 14 -234.08 1894 10 38 3 6 53 1 77 2 13 +9669 112 15 -228 1894 10 40 3 6 53 1 79 2 15 +9670 112 16 -221.92 1894 14 39 3 6 54 1 78 2 14 +9671 112 17 -215.84 1894 14 37 3 6 54 1 76 2 12 +9672 112 18 -209.76 1894 14 36 3 6 54 1 75 2 11 +9673 112 19 -203.68 1894 14 38 3 6 54 1 77 2 13 +9674 112 20 -197.6 1894 14 40 3 6 54 1 79 2 15 +9675 112 21 -191.52 1894 18 39 3 6 55 1 78 2 14 +9676 112 22 -185.44 1894 18 37 3 6 55 1 76 2 12 +9677 112 23 -179.36 1894 18 35 3 6 55 1 74 2 10 +9678 112 24 -173.28 1894 18 36 3 6 55 1 75 2 11 +9679 112 25 -167.2 1894 18 38 3 6 55 1 77 2 13 +9680 112 26 -161.12 1894 18 40 3 6 55 1 79 2 15 +9681 112 27 -155.04 1894 22 39 3 6 56 1 78 2 14 +9682 112 28 -148.96 1894 22 37 3 6 56 1 76 2 12 +9683 112 29 -142.88 1894 22 35 3 6 56 1 74 2 10 +9684 112 30 -136.8 1894 22 38 3 6 56 1 77 2 13 +9685 112 31 -130.72 1894 22 40 3 6 56 1 79 2 15 +9686 112 32 -124.64 1894 26 39 3 6 57 1 78 2 14 +9687 112 33 -118.56 1894 26 37 3 6 57 1 76 2 12 +9688 112 34 -112.48 1894 26 36 3 6 57 1 75 2 11 +9689 112 35 -106.4 1894 26 38 3 6 57 1 77 2 13 +9690 112 36 -100.32 1894 26 40 3 6 57 1 79 2 15 +9691 112 37 -94.24 1894 30 39 3 6 58 1 78 2 14 +9692 112 38 -88.16 1894 30 37 3 6 58 1 76 2 12 +9693 112 39 -82.08 1894 30 35 3 6 58 1 74 2 10 +9694 112 40 -76 1894 30 36 3 6 58 1 75 2 11 +9695 112 41 -69.92 1894 30 38 3 6 58 1 77 2 13 +9696 112 42 -63.84 1894 30 40 3 6 58 1 79 2 15 +9697 112 43 -57.76 1894 34 39 3 6 59 1 78 2 14 +9698 112 44 -51.68 1894 34 37 3 6 59 1 76 2 12 +9699 112 45 -45.6 1894 34 36 3 6 59 1 75 2 11 +9700 112 46 -39.52 1894 34 38 3 6 59 1 77 2 13 +9701 112 47 -33.44 1894 34 40 3 6 59 1 79 2 15 +9702 112 48 -27.36 1894 38 39 3 6 60 1 78 2 14 +9703 112 49 -21.28 1894 38 37 3 6 60 1 76 2 12 +9704 112 50 -15.2 1894 38 36 3 6 60 1 75 2 11 +9705 112 51 -9.12 1894 38 38 3 6 60 1 77 2 13 +9706 112 52 -3.04 1894 38 40 3 6 60 1 79 2 15 +9707 112 53 3.04 1894 42 39 3 6 61 1 78 2 14 +9708 112 54 9.12 1894 42 37 3 6 61 1 76 2 12 +9709 112 55 15.2 1894 42 35 3 6 61 1 74 2 10 +9710 112 56 21.28 1894 42 38 3 6 61 1 77 2 13 +9711 112 57 27.36 1894 42 40 3 6 61 1 79 2 15 +9712 112 58 33.44 1894 46 39 3 6 62 1 78 2 14 +9713 112 59 39.52 1894 46 37 3 6 62 1 76 2 12 +9714 112 60 45.6 1894 46 35 3 6 62 1 74 2 10 +9715 112 61 51.68 1894 46 38 3 6 62 1 77 2 13 +9716 112 62 57.76 1894 46 40 3 6 62 1 79 2 15 +9717 112 63 63.84 1894 50 39 3 6 63 1 78 2 14 +9718 112 64 69.92 1894 50 37 3 6 63 1 76 2 12 +9719 112 65 76 1894 50 35 3 6 63 1 74 2 10 +9720 112 66 82.08 1894 50 36 3 6 63 1 75 2 11 +9721 112 67 88.16 1894 50 38 3 6 63 1 77 2 13 +9722 112 68 94.24 1894 50 40 3 6 63 1 79 2 15 +9723 112 69 100.32 1894 54 39 3 6 64 1 78 2 14 +9724 112 70 106.4 1894 54 37 3 6 64 1 76 2 12 +9725 112 71 112.48 1894 54 35 3 6 64 1 74 2 10 +9726 112 72 118.56 1894 54 38 3 6 64 1 77 2 13 +9727 112 73 124.64 1894 54 40 3 6 64 1 79 2 15 +9728 112 74 130.72 1894 58 39 3 6 65 1 78 2 14 +9729 112 75 136.8 1894 58 37 3 6 65 1 76 2 12 +9730 112 76 142.88 1894 58 36 3 6 65 1 75 2 11 +9731 112 77 148.96 1894 58 38 3 6 65 1 77 2 13 +9732 112 78 155.04 1894 58 40 3 6 65 1 79 2 15 +9733 112 79 161.12 1894 62 39 3 6 66 1 78 2 14 +9734 112 80 167.2 1894 62 37 3 6 66 1 76 2 12 +9735 112 81 173.28 1894 62 35 3 6 66 1 74 2 10 +9736 112 82 179.36 1894 62 36 3 6 66 1 75 2 11 +9737 112 83 185.44 1894 62 38 3 6 66 1 77 2 13 +9738 112 84 191.52 1894 62 40 3 6 66 1 79 2 15 +9739 112 85 197.6 1894 66 39 3 6 67 1 78 2 14 +9740 112 86 203.68 1894 66 37 3 6 67 1 76 2 12 +9741 112 87 209.76 1894 66 35 3 6 67 1 74 2 10 +9742 112 88 215.84 1894 66 38 3 6 67 1 77 2 13 +9743 112 89 221.92 1894 66 40 3 6 67 1 79 2 15 +9744 112 90 228 1894 70 39 3 6 68 1 78 2 14 +9745 112 91 234.08 1894 70 37 3 6 68 1 76 2 12 +9746 112 92 240.16 1894 70 35 3 6 68 1 74 2 10 +9747 112 93 246.24 1894 70 38 3 6 68 1 77 2 13 +9748 112 94 252.32 1894 70 40 3 6 68 1 79 2 15 +9749 112 95 258.4 1894 74 39 3 6 69 1 78 2 14 +9750 112 96 264.48 1894 74 37 3 6 69 1 76 2 12 +9751 112 97 270.56 1894 74 35 3 6 69 1 74 2 10 +9752 112 98 276.64 1894 74 38 3 6 69 1 77 2 13 +9753 112 99 282.72 1894 74 40 3 6 69 1 79 2 15 +9754 112 100 288.8 1894 78 39 3 6 70 1 78 2 14 +9755 112 101 294.88 1894 78 37 3 6 70 1 76 2 12 +9756 112 102 300.96 1894 78 35 3 6 70 1 74 2 10 +9757 112 103 307.04 1894 78 36 3 6 70 1 75 2 11 +9758 112 104 313.12 1894 78 38 3 6 70 1 77 2 13 +9759 112 105 319.2 1894 78 40 3 6 70 1 79 2 15 +9760 113 0 -320.46 1906 3 5 3 7 51 2 84 2 20 +9761 113 1 -314.58 1906 3 3 3 7 51 2 82 2 18 +9762 113 2 -308.7 1906 3 1 3 7 51 2 80 2 16 +9763 113 3 -302.82 1906 3 2 3 7 51 2 81 2 17 +9764 113 4 -296.94 1906 3 4 3 7 51 2 83 2 19 +9765 113 5 -291.06 1906 3 6 3 7 51 2 85 2 21 +9766 113 6 -285.18 1906 7 3 3 7 52 2 82 2 18 +9767 113 7 -279.3 1906 7 1 3 7 52 2 80 2 16 +9768 113 8 -273.42 1906 7 2 3 7 52 2 81 2 17 +9769 113 9 -267.54 1906 7 4 3 7 52 2 83 2 19 +9770 113 10 -261.66 1906 7 6 3 7 52 2 85 2 21 +9771 113 11 -255.78 1906 11 5 3 7 53 2 84 2 20 +9772 113 12 -249.9 1906 11 3 3 7 53 2 82 2 18 +9773 113 13 -244.02 1906 11 1 3 7 53 2 80 2 16 +9774 113 14 -238.14 1906 11 2 3 7 53 2 81 2 17 +9775 113 15 -232.26 1906 11 4 3 7 53 2 83 2 19 +9776 113 16 -226.38 1906 11 6 3 7 53 2 85 2 21 +9777 113 17 -220.5 1906 15 3 3 7 54 2 82 2 18 +9778 113 18 -214.62 1906 15 1 3 7 54 2 80 2 16 +9779 113 19 -208.74 1906 15 2 3 7 54 2 81 2 17 +9780 113 20 -202.86 1906 15 4 3 7 54 2 83 2 19 +9781 113 21 -196.98 1906 15 6 3 7 54 2 85 2 21 +9782 113 22 -191.1 1906 19 5 3 7 55 2 84 2 20 +9783 113 23 -185.22 1906 19 3 3 7 55 2 82 2 18 +9784 113 24 -179.34 1906 19 1 3 7 55 2 80 2 16 +9785 113 25 -173.46 1906 19 2 3 7 55 2 81 2 17 +9786 113 26 -167.58 1906 19 4 3 7 55 2 83 2 19 +9787 113 27 -161.7 1906 19 6 3 7 55 2 85 2 21 +9788 113 28 -155.82 1906 23 5 3 7 56 2 84 2 20 +9789 113 29 -149.94 1906 23 3 3 7 56 2 82 2 18 +9790 113 30 -144.06 1906 23 1 3 7 56 2 80 2 16 +9791 113 31 -138.18 1906 23 2 3 7 56 2 81 2 17 +9792 113 32 -132.3 1906 23 4 3 7 56 2 83 2 19 +9793 113 33 -126.42 1906 27 5 3 7 57 2 84 2 20 +9794 113 34 -120.54 1906 27 3 3 7 57 2 82 2 18 +9795 113 35 -114.66 1906 27 1 3 7 57 2 80 2 16 +9796 113 36 -108.78 1906 27 2 3 7 57 2 81 2 17 +9797 113 37 -102.9 1906 27 4 3 7 57 2 83 2 19 +9798 113 38 -97.02 1906 27 6 3 7 57 2 85 2 21 +9799 113 39 -91.14 1906 31 5 3 7 58 2 84 2 20 +9800 113 40 -85.26 1906 31 3 3 7 58 2 82 2 18 +9801 113 41 -79.38 1906 31 1 3 7 58 2 80 2 16 +9802 113 42 -73.5 1906 31 2 3 7 58 2 81 2 17 +9803 113 43 -67.62 1906 31 4 3 7 58 2 83 2 19 +9804 113 44 -61.74 1906 35 5 3 7 59 2 84 2 20 +9805 113 45 -55.86 1906 35 3 3 7 59 2 82 2 18 +9806 113 46 -49.98 1906 35 1 3 7 59 2 80 2 16 +9807 113 47 -44.1 1906 35 2 3 7 59 2 81 2 17 +9808 113 48 -38.22 1906 35 4 3 7 59 2 83 2 19 +9809 113 49 -32.34 1906 35 6 3 7 59 2 85 2 21 +9810 113 50 -26.46 1906 39 3 3 7 60 2 82 2 18 +9811 113 51 -20.58 1906 39 1 3 7 60 2 80 2 16 +9812 113 52 -14.7 1906 39 2 3 7 60 2 81 2 17 +9813 113 53 -8.82 1906 39 4 3 7 60 2 83 2 19 +9814 113 54 -2.94 1906 39 6 3 7 60 2 85 2 21 +9815 113 55 2.94 1906 43 5 3 7 61 2 84 2 20 +9816 113 56 8.82 1906 43 3 3 7 61 2 82 2 18 +9817 113 57 14.7 1906 43 1 3 7 61 2 80 2 16 +9818 113 58 20.58 1906 43 2 3 7 61 2 81 2 17 +9819 113 59 26.46 1906 43 4 3 7 61 2 83 2 19 +9820 113 60 32.34 1906 47 5 3 7 62 2 84 2 20 +9821 113 61 38.22 1906 47 3 3 7 62 2 82 2 18 +9822 113 62 44.1 1906 47 1 3 7 62 2 80 2 16 +9823 113 63 49.98 1906 47 2 3 7 62 2 81 2 17 +9824 113 64 55.86 1906 47 4 3 7 62 2 83 2 19 +9825 113 65 61.74 1906 47 6 3 7 62 2 85 2 21 +9826 113 66 67.62 1906 51 3 3 7 63 2 82 2 18 +9827 113 67 73.5 1906 51 1 3 7 63 2 80 2 16 +9828 113 68 79.38 1906 51 2 3 7 63 2 81 2 17 +9829 113 69 85.26 1906 51 4 3 7 63 2 83 2 19 +9830 113 70 91.14 1906 51 6 3 7 63 2 85 2 21 +9831 113 71 97.02 1906 55 5 3 7 64 2 84 2 20 +9832 113 72 102.9 1906 55 3 3 7 64 2 82 2 18 +9833 113 73 108.78 1906 55 1 3 7 64 2 80 2 16 +9834 113 74 114.66 1906 55 2 3 7 64 2 81 2 17 +9835 113 75 120.54 1906 55 4 3 7 64 2 83 2 19 +9836 113 76 126.42 1906 55 6 3 7 64 2 85 2 21 +9837 113 77 132.3 1906 59 3 3 7 65 2 82 2 18 +9838 113 78 138.18 1906 59 1 3 7 65 2 80 2 16 +9839 113 79 144.06 1906 59 2 3 7 65 2 81 2 17 +9840 113 80 149.94 1906 59 4 3 7 65 2 83 2 19 +9841 113 81 155.82 1906 59 6 3 7 65 2 85 2 21 +9842 113 82 161.7 1906 63 5 3 7 66 2 84 2 20 +9843 113 83 167.58 1906 63 3 3 7 66 2 82 2 18 +9844 113 84 173.46 1906 63 1 3 7 66 2 80 2 16 +9845 113 85 179.34 1906 63 2 3 7 66 2 81 2 17 +9846 113 86 185.22 1906 63 4 3 7 66 2 83 2 19 +9847 113 87 191.1 1906 63 6 3 7 66 2 85 2 21 +9848 113 88 196.98 1906 67 5 3 7 67 2 84 2 20 +9849 113 89 202.86 1906 67 3 3 7 67 2 82 2 18 +9850 113 90 208.74 1906 67 1 3 7 67 2 80 2 16 +9851 113 91 214.62 1906 67 2 3 7 67 2 81 2 17 +9852 113 92 220.5 1906 67 4 3 7 67 2 83 2 19 +9853 113 93 226.38 1906 71 5 3 7 68 2 84 2 20 +9854 113 94 232.26 1906 71 3 3 7 68 2 82 2 18 +9855 113 95 238.14 1906 71 1 3 7 68 2 80 2 16 +9856 113 96 244.02 1906 71 2 3 7 68 2 81 2 17 +9857 113 97 249.9 1906 71 4 3 7 68 2 83 2 19 +9858 113 98 255.78 1906 71 6 3 7 68 2 85 2 21 +9859 113 99 261.66 1906 75 5 3 7 69 2 84 2 20 +9860 113 100 267.54 1906 75 3 3 7 69 2 82 2 18 +9861 113 101 273.42 1906 75 1 3 7 69 2 80 2 16 +9862 113 102 279.3 1906 75 2 3 7 69 2 81 2 17 +9863 113 103 285.18 1906 75 4 3 7 69 2 83 2 19 +9864 113 104 291.06 1906 79 5 3 7 70 2 84 2 20 +9865 113 105 296.94 1906 79 3 3 7 70 2 82 2 18 +9866 113 106 302.82 1906 79 1 3 7 70 2 80 2 16 +9867 113 107 308.7 1906 79 2 3 7 70 2 81 2 17 +9868 113 108 314.58 1906 79 4 3 7 70 2 83 2 19 +9869 113 109 320.46 1906 79 6 3 7 70 2 85 2 21 +9870 114 0 -320.46 1918 3 9 3 7 51 2 88 2 24 +9871 114 1 -314.58 1918 3 7 3 7 51 2 86 2 22 +9872 114 2 -308.7 1918 3 8 3 7 51 2 87 2 23 +9873 114 3 -302.82 1918 3 10 3 7 51 2 89 2 25 +9874 114 4 -296.94 1918 3 12 3 7 51 2 91 2 27 +9875 114 5 -291.06 1918 7 9 3 7 52 2 88 2 24 +9876 114 6 -285.18 1918 7 7 3 7 52 2 86 2 22 +9877 114 7 -279.3 1918 7 5 3 7 52 2 84 2 20 +9878 114 8 -273.42 1918 7 8 3 7 52 2 87 2 23 +9879 114 9 -267.54 1918 7 10 3 7 52 2 89 2 25 +9880 114 10 -261.66 1918 7 12 3 7 52 2 91 2 27 +9881 114 11 -255.78 1918 11 11 3 7 53 2 90 2 26 +9882 114 12 -249.9 1918 11 9 3 7 53 2 88 2 24 +9883 114 13 -244.02 1918 11 7 3 7 53 2 86 2 22 +9884 114 14 -238.14 1918 11 8 3 7 53 2 87 2 23 +9885 114 15 -232.26 1918 11 10 3 7 53 2 89 2 25 +9886 114 16 -226.38 1918 15 9 3 7 54 2 88 2 24 +9887 114 17 -220.5 1918 15 7 3 7 54 2 86 2 22 +9888 114 18 -214.62 1918 15 5 3 7 54 2 84 2 20 +9889 114 19 -208.74 1918 15 8 3 7 54 2 87 2 23 +9890 114 20 -202.86 1918 15 10 3 7 54 2 89 2 25 +9891 114 21 -196.98 1918 15 12 3 7 54 2 91 2 27 +9892 114 22 -191.1 1918 19 11 3 7 55 2 90 2 26 +9893 114 23 -185.22 1918 19 9 3 7 55 2 88 2 24 +9894 114 24 -179.34 1918 19 7 3 7 55 2 86 2 22 +9895 114 25 -173.46 1918 19 8 3 7 55 2 87 2 23 +9896 114 26 -167.58 1918 19 10 3 7 55 2 89 2 25 +9897 114 27 -161.7 1918 23 11 3 7 56 2 90 2 26 +9898 114 28 -155.82 1918 23 9 3 7 56 2 88 2 24 +9899 114 29 -149.94 1918 23 7 3 7 56 2 86 2 22 +9900 114 30 -144.06 1918 23 6 3 7 56 2 85 2 21 +9901 114 31 -138.18 1918 23 8 3 7 56 2 87 2 23 +9902 114 32 -132.3 1918 23 10 3 7 56 2 89 2 25 +9903 114 33 -126.42 1918 27 11 3 7 57 2 90 2 26 +9904 114 34 -120.54 1918 27 9 3 7 57 2 88 2 24 +9905 114 35 -114.66 1918 27 7 3 7 57 2 86 2 22 +9906 114 36 -108.78 1918 27 8 3 7 57 2 87 2 23 +9907 114 37 -102.9 1918 27 10 3 7 57 2 89 2 25 +9908 114 38 -97.02 1918 27 12 3 7 57 2 91 2 27 +9909 114 39 -91.14 1918 31 9 3 7 58 2 88 2 24 +9910 114 40 -85.26 1918 31 7 3 7 58 2 86 2 22 +9911 114 41 -79.38 1918 31 6 3 7 58 2 85 2 21 +9912 114 42 -73.5 1918 31 8 3 7 58 2 87 2 23 +9913 114 43 -67.62 1918 31 10 3 7 58 2 89 2 25 +9914 114 44 -61.74 1918 35 11 3 7 59 2 90 2 26 +9915 114 45 -55.86 1918 35 9 3 7 59 2 88 2 24 +9916 114 46 -49.98 1918 35 7 3 7 59 2 86 2 22 +9917 114 47 -44.1 1918 35 8 3 7 59 2 87 2 23 +9918 114 48 -38.22 1918 35 10 3 7 59 2 89 2 25 +9919 114 49 -32.34 1918 35 12 3 7 59 2 91 2 27 +9920 114 50 -26.46 1918 39 9 3 7 60 2 88 2 24 +9921 114 51 -20.58 1918 39 7 3 7 60 2 86 2 22 +9922 114 52 -14.7 1918 39 5 3 7 60 2 84 2 20 +9923 114 53 -8.82 1918 39 8 3 7 60 2 87 2 23 +9924 114 54 -2.94 1918 39 10 3 7 60 2 89 2 25 +9925 114 55 2.94 1918 43 9 3 7 61 2 88 2 24 +9926 114 56 8.82 1918 43 7 3 7 61 2 86 2 22 +9927 114 57 14.7 1918 43 6 3 7 61 2 85 2 21 +9928 114 58 20.58 1918 43 8 3 7 61 2 87 2 23 +9929 114 59 26.46 1918 43 10 3 7 61 2 89 2 25 +9930 114 60 32.34 1918 47 11 3 7 62 2 90 2 26 +9931 114 61 38.22 1918 47 9 3 7 62 2 88 2 24 +9932 114 62 44.1 1918 47 7 3 7 62 2 86 2 22 +9933 114 63 49.98 1918 47 8 3 7 62 2 87 2 23 +9934 114 64 55.86 1918 47 10 3 7 62 2 89 2 25 +9935 114 65 61.74 1918 47 12 3 7 62 2 91 2 27 +9936 114 66 67.62 1918 51 9 3 7 63 2 88 2 24 +9937 114 67 73.5 1918 51 7 3 7 63 2 86 2 22 +9938 114 68 79.38 1918 51 5 3 7 63 2 84 2 20 +9939 114 69 85.26 1918 51 8 3 7 63 2 87 2 23 +9940 114 70 91.14 1918 51 10 3 7 63 2 89 2 25 +9941 114 71 97.02 1918 55 11 3 7 64 2 90 2 26 +9942 114 72 102.9 1918 55 9 3 7 64 2 88 2 24 +9943 114 73 108.78 1918 55 7 3 7 64 2 86 2 22 +9944 114 74 114.66 1918 55 8 3 7 64 2 87 2 23 +9945 114 75 120.54 1918 55 10 3 7 64 2 89 2 25 +9946 114 76 126.42 1918 55 12 3 7 64 2 91 2 27 +9947 114 77 132.3 1918 59 9 3 7 65 2 88 2 24 +9948 114 78 138.18 1918 59 7 3 7 65 2 86 2 22 +9949 114 79 144.06 1918 59 5 3 7 65 2 84 2 20 +9950 114 80 149.94 1918 59 8 3 7 65 2 87 2 23 +9951 114 81 155.82 1918 59 10 3 7 65 2 89 2 25 +9952 114 82 161.7 1918 59 12 3 7 65 2 91 2 27 +9953 114 83 167.58 1918 63 9 3 7 66 2 88 2 24 +9954 114 84 173.46 1918 63 7 3 7 66 2 86 2 22 +9955 114 85 179.34 1918 63 8 3 7 66 2 87 2 23 +9956 114 86 185.22 1918 63 10 3 7 66 2 89 2 25 +9957 114 87 191.1 1918 63 12 3 7 66 2 91 2 27 +9958 114 88 196.98 1918 67 11 3 7 67 2 90 2 26 +9959 114 89 202.86 1918 67 9 3 7 67 2 88 2 24 +9960 114 90 208.74 1918 67 7 3 7 67 2 86 2 22 +9961 114 91 214.62 1918 67 6 3 7 67 2 85 2 21 +9962 114 92 220.5 1918 67 8 3 7 67 2 87 2 23 +9963 114 93 226.38 1918 67 10 3 7 67 2 89 2 25 +9964 114 94 232.26 1918 71 9 3 7 68 2 88 2 24 +9965 114 95 238.14 1918 71 7 3 7 68 2 86 2 22 +9966 114 96 244.02 1918 71 8 3 7 68 2 87 2 23 +9967 114 97 249.9 1918 71 10 3 7 68 2 89 2 25 +9968 114 98 255.78 1918 71 12 3 7 68 2 91 2 27 +9969 114 99 261.66 1918 75 11 3 7 69 2 90 2 26 +9970 114 100 267.54 1918 75 9 3 7 69 2 88 2 24 +9971 114 101 273.42 1918 75 7 3 7 69 2 86 2 22 +9972 114 102 279.3 1918 75 6 3 7 69 2 85 2 21 +9973 114 103 285.18 1918 75 8 3 7 69 2 87 2 23 +9974 114 104 291.06 1918 75 10 3 7 69 2 89 2 25 +9975 114 105 296.94 1918 79 11 3 7 70 2 90 2 26 +9976 114 106 302.82 1918 79 9 3 7 70 2 88 2 24 +9977 114 107 308.7 1918 79 7 3 7 70 2 86 2 22 +9978 114 108 314.58 1918 79 8 3 7 70 2 87 2 23 +9979 114 109 320.46 1918 79 10 3 7 70 2 89 2 25 +9980 115 0 -326.34 1930 3 15 3 7 51 2 94 2 30 +9981 115 1 -320.46 1930 3 13 3 7 51 2 92 2 28 +9982 115 2 -314.58 1930 3 11 3 7 51 2 90 2 26 +9983 115 3 -308.7 1930 3 14 3 7 51 2 93 2 29 +9984 115 4 -302.82 1930 3 16 3 7 51 2 95 2 31 +9985 115 5 -296.94 1930 3 18 3 7 51 2 97 3 1 +9986 115 6 -291.06 1930 7 15 3 7 52 2 94 2 30 +9987 115 7 -285.18 1930 7 13 3 7 52 2 92 2 28 +9988 115 8 -279.3 1930 7 11 3 7 52 2 90 2 26 +9989 115 9 -273.42 1930 7 14 3 7 52 2 93 2 29 +9990 115 10 -267.54 1930 7 16 3 7 52 2 95 2 31 +9991 115 11 -261.66 1930 7 18 3 7 52 2 97 3 1 +9992 115 12 -255.78 1930 11 15 3 7 53 2 94 2 30 +9993 115 13 -249.9 1930 11 13 3 7 53 2 92 2 28 +9994 115 14 -244.02 1930 11 12 3 7 53 2 91 2 27 +9995 115 15 -238.14 1930 11 14 3 7 53 2 93 2 29 +9996 115 16 -232.26 1930 11 16 3 7 53 2 95 2 31 +9997 115 17 -226.38 1930 15 15 3 7 54 2 94 2 30 +9998 115 18 -220.5 1930 15 13 3 7 54 2 92 2 28 +9999 115 19 -214.62 1930 15 11 3 7 54 2 90 2 26 +10000 115 20 -208.74 1930 15 14 3 7 54 2 93 2 29 +10001 115 21 -202.86 1930 15 16 3 7 54 2 95 2 31 +10002 115 22 -196.98 1930 15 18 3 7 54 2 97 3 1 +10003 115 23 -191.1 1930 19 15 3 7 55 2 94 2 30 +10004 115 24 -185.22 1930 19 13 3 7 55 2 92 2 28 +10005 115 25 -179.34 1930 19 12 3 7 55 2 91 2 27 +10006 115 26 -173.46 1930 19 14 3 7 55 2 93 2 29 +10007 115 27 -167.58 1930 19 16 3 7 55 2 95 2 31 +10008 115 28 -161.7 1930 23 17 3 7 56 2 96 3 0 +10009 115 29 -155.82 1930 23 15 3 7 56 2 94 2 30 +10010 115 30 -149.94 1930 23 13 3 7 56 2 92 2 28 +10011 115 31 -144.06 1930 23 12 3 7 56 2 91 2 27 +10012 115 32 -138.18 1930 23 14 3 7 56 2 93 2 29 +10013 115 33 -132.3 1930 23 16 3 7 56 2 95 2 31 +10014 115 34 -126.42 1930 27 17 3 7 57 2 96 3 0 +10015 115 35 -120.54 1930 27 15 3 7 57 2 94 2 30 +10016 115 36 -114.66 1930 27 13 3 7 57 2 92 2 28 +10017 115 37 -108.78 1930 27 14 3 7 57 2 93 2 29 +10018 115 38 -102.9 1930 27 16 3 7 57 2 95 2 31 +10019 115 39 -97.02 1930 31 15 3 7 58 2 94 2 30 +10020 115 40 -91.14 1930 31 13 3 7 58 2 92 2 28 +10021 115 41 -85.26 1930 31 11 3 7 58 2 90 2 26 +10022 115 42 -79.38 1930 31 12 3 7 58 2 91 2 27 +10023 115 43 -73.5 1930 31 14 3 7 58 2 93 2 29 +10024 115 44 -67.62 1930 31 16 3 7 58 2 95 2 31 +10025 115 45 -61.74 1930 35 17 3 7 59 2 96 3 0 +10026 115 46 -55.86 1930 35 15 3 7 59 2 94 2 30 +10027 115 47 -49.98 1930 35 13 3 7 59 2 92 2 28 +10028 115 48 -44.1 1930 35 14 3 7 59 2 93 2 29 +10029 115 49 -38.22 1930 35 16 3 7 59 2 95 2 31 +10030 115 50 -32.34 1930 35 18 3 7 59 2 97 3 1 +10031 115 51 -26.46 1930 39 13 3 7 60 2 92 2 28 +10032 115 52 -20.58 1930 39 11 3 7 60 2 90 2 26 +10033 115 53 -14.7 1930 39 12 3 7 60 2 91 2 27 +10034 115 54 -8.82 1930 39 14 3 7 60 2 93 2 29 +10035 115 55 -2.94 1930 39 16 3 7 60 2 95 2 31 +10036 115 56 2.94 1930 43 15 3 7 61 2 94 2 30 +10037 115 57 8.82 1930 43 13 3 7 61 2 92 2 28 +10038 115 58 14.7 1930 43 11 3 7 61 2 90 2 26 +10039 115 59 20.58 1930 43 12 3 7 61 2 91 2 27 +10040 115 60 26.46 1930 43 14 3 7 61 2 93 2 29 +10041 115 61 32.34 1930 47 17 3 7 62 2 96 3 0 +10042 115 62 38.22 1930 47 15 3 7 62 2 94 2 30 +10043 115 63 44.1 1930 47 13 3 7 62 2 92 2 28 +10044 115 64 49.98 1930 47 14 3 7 62 2 93 2 29 +10045 115 65 55.86 1930 47 16 3 7 62 2 95 2 31 +10046 115 66 61.74 1930 47 18 3 7 62 2 97 3 1 +10047 115 67 67.62 1930 51 15 3 7 63 2 94 2 30 +10048 115 68 73.5 1930 51 13 3 7 63 2 92 2 28 +10049 115 69 79.38 1930 51 11 3 7 63 2 90 2 26 +10050 115 70 85.26 1930 51 12 3 7 63 2 91 2 27 +10051 115 71 91.14 1930 51 14 3 7 63 2 93 2 29 +10052 115 72 97.02 1930 51 16 3 7 63 2 95 2 31 +10053 115 73 102.9 1930 55 15 3 7 64 2 94 2 30 +10054 115 74 108.78 1930 55 13 3 7 64 2 92 2 28 +10055 115 75 114.66 1930 55 14 3 7 64 2 93 2 29 +10056 115 76 120.54 1930 55 16 3 7 64 2 95 2 31 +10057 115 77 126.42 1930 55 18 3 7 64 2 97 3 1 +10058 115 78 132.3 1930 59 15 3 7 65 2 94 2 30 +10059 115 79 138.18 1930 59 13 3 7 65 2 92 2 28 +10060 115 80 144.06 1930 59 11 3 7 65 2 90 2 26 +10061 115 81 149.94 1930 59 14 3 7 65 2 93 2 29 +10062 115 82 155.82 1930 59 16 3 7 65 2 95 2 31 +10063 115 83 161.7 1930 59 18 3 7 65 2 97 3 1 +10064 115 84 167.58 1930 63 15 3 7 66 2 94 2 30 +10065 115 85 173.46 1930 63 13 3 7 66 2 92 2 28 +10066 115 86 179.34 1930 63 11 3 7 66 2 90 2 26 +10067 115 87 185.22 1930 63 14 3 7 66 2 93 2 29 +10068 115 88 191.1 1930 63 16 3 7 66 2 95 2 31 +10069 115 89 196.98 1930 67 17 3 7 67 2 96 3 0 +10070 115 90 202.86 1930 67 15 3 7 67 2 94 2 30 +10071 115 91 208.74 1930 67 13 3 7 67 2 92 2 28 +10072 115 92 214.62 1930 67 12 3 7 67 2 91 2 27 +10073 115 93 220.5 1930 67 14 3 7 67 2 93 2 29 +10074 115 94 226.38 1930 67 16 3 7 67 2 95 2 31 +10075 115 95 232.26 1930 71 15 3 7 68 2 94 2 30 +10076 115 96 238.14 1930 71 13 3 7 68 2 92 2 28 +10077 115 97 244.02 1930 71 11 3 7 68 2 90 2 26 +10078 115 98 249.9 1930 71 14 3 7 68 2 93 2 29 +10079 115 99 255.78 1930 71 16 3 7 68 2 95 2 31 +10080 115 100 261.66 1930 75 17 3 7 69 2 96 3 0 +10081 115 101 267.54 1930 75 15 3 7 69 2 94 2 30 +10082 115 102 273.42 1930 75 13 3 7 69 2 92 2 28 +10083 115 103 279.3 1930 75 12 3 7 69 2 91 2 27 +10084 115 104 285.18 1930 75 14 3 7 69 2 93 2 29 +10085 115 105 291.06 1930 75 16 3 7 69 2 95 2 31 +10086 115 106 296.94 1930 79 17 3 7 70 2 96 3 0 +10087 115 107 302.82 1930 79 15 3 7 70 2 94 2 30 +10088 115 108 308.7 1930 79 13 3 7 70 2 92 2 28 +10089 115 109 314.58 1930 79 12 3 7 70 2 91 2 27 +10090 115 110 320.46 1930 79 14 3 7 70 2 93 2 29 +10091 115 111 326.34 1930 79 16 3 7 70 2 95 2 31 +10092 116 0 -326.34 1942 3 21 3 7 51 2 100 3 4 +10093 116 1 -320.46 1942 3 19 3 7 51 2 98 3 2 +10094 116 2 -314.58 1942 3 17 3 7 51 2 96 3 0 +10095 116 3 -308.7 1942 3 20 3 7 51 2 99 3 3 +10096 116 4 -302.82 1942 3 22 3 7 51 2 101 3 5 +10097 116 5 -296.94 1942 3 24 3 7 51 2 103 3 7 +10098 116 6 -291.06 1942 7 21 3 7 52 2 100 3 4 +10099 116 7 -285.18 1942 7 19 3 7 52 2 98 3 2 +10100 116 8 -279.3 1942 7 17 3 7 52 2 96 3 0 +10101 116 9 -273.42 1942 7 20 3 7 52 2 99 3 3 +10102 116 10 -267.54 1942 7 22 3 7 52 2 101 3 5 +10103 116 11 -261.66 1942 11 21 3 7 53 2 100 3 4 +10104 116 12 -255.78 1942 11 19 3 7 53 2 98 3 2 +10105 116 13 -249.9 1942 11 17 3 7 53 2 96 3 0 +10106 116 14 -244.02 1942 11 18 3 7 53 2 97 3 1 +10107 116 15 -238.14 1942 11 20 3 7 53 2 99 3 3 +10108 116 16 -232.26 1942 11 22 3 7 53 2 101 3 5 +10109 116 17 -226.38 1942 15 21 3 7 54 2 100 3 4 +10110 116 18 -220.5 1942 15 19 3 7 54 2 98 3 2 +10111 116 19 -214.62 1942 15 17 3 7 54 2 96 3 0 +10112 116 20 -208.74 1942 15 20 3 7 54 2 99 3 3 +10113 116 21 -202.86 1942 15 22 3 7 54 2 101 3 5 +10114 116 22 -196.98 1942 19 21 3 7 55 2 100 3 4 +10115 116 23 -191.1 1942 19 19 3 7 55 2 98 3 2 +10116 116 24 -185.22 1942 19 17 3 7 55 2 96 3 0 +10117 116 25 -179.34 1942 19 18 3 7 55 2 97 3 1 +10118 116 26 -173.46 1942 19 20 3 7 55 2 99 3 3 +10119 116 27 -167.58 1942 19 22 3 7 55 2 101 3 5 +10120 116 28 -161.7 1942 23 23 3 7 56 2 102 3 6 +10121 116 29 -155.82 1942 23 21 3 7 56 2 100 3 4 +10122 116 30 -149.94 1942 23 19 3 7 56 2 98 3 2 +10123 116 31 -144.06 1942 23 18 3 7 56 2 97 3 1 +10124 116 32 -138.18 1942 23 20 3 7 56 2 99 3 3 +10125 116 33 -132.3 1942 23 22 3 7 56 2 101 3 5 +10126 116 34 -126.42 1942 27 21 3 7 57 2 100 3 4 +10127 116 35 -120.54 1942 27 19 3 7 57 2 98 3 2 +10128 116 36 -114.66 1942 27 18 3 7 57 2 97 3 1 +10129 116 37 -108.78 1942 27 20 3 7 57 2 99 3 3 +10130 116 38 -102.9 1942 27 22 3 7 57 2 101 3 5 +10131 116 39 -97.02 1942 31 21 3 7 58 2 100 3 4 +10132 116 40 -91.14 1942 31 19 3 7 58 2 98 3 2 +10133 116 41 -85.26 1942 31 17 3 7 58 2 96 3 0 +10134 116 42 -79.38 1942 31 18 3 7 58 2 97 3 1 +10135 116 43 -73.5 1942 31 20 3 7 58 2 99 3 3 +10136 116 44 -67.62 1942 31 22 3 7 58 2 101 3 5 +10137 116 45 -61.74 1942 35 23 3 7 59 2 102 3 6 +10138 116 46 -55.86 1942 35 21 3 7 59 2 100 3 4 +10139 116 47 -49.98 1942 35 19 3 7 59 2 98 3 2 +10140 116 48 -44.1 1942 35 20 3 7 59 2 99 3 3 +10141 116 49 -38.22 1942 35 22 3 7 59 2 101 3 5 +10142 116 50 -32.34 1942 35 24 3 7 59 2 103 3 7 +10143 116 51 -26.46 1942 39 19 3 7 60 2 98 3 2 +10144 116 52 -20.58 1942 39 17 3 7 60 2 96 3 0 +10145 116 53 -14.7 1942 39 15 3 7 60 2 94 2 30 +10146 116 54 -8.82 1942 39 18 3 7 60 2 97 3 1 +10147 116 55 -2.94 1942 39 20 3 7 60 2 99 3 3 +10148 116 56 2.94 1942 43 19 3 7 61 2 98 3 2 +10149 116 57 8.82 1942 43 17 3 7 61 2 96 3 0 +10150 116 58 14.7 1942 43 16 3 7 61 2 95 2 31 +10151 116 59 20.58 1942 43 18 3 7 61 2 97 3 1 +10152 116 60 26.46 1942 43 20 3 7 61 2 99 3 3 +10153 116 61 32.34 1942 47 23 3 7 62 2 102 3 6 +10154 116 62 38.22 1942 47 21 3 7 62 2 100 3 4 +10155 116 63 44.1 1942 47 19 3 7 62 2 98 3 2 +10156 116 64 49.98 1942 47 20 3 7 62 2 99 3 3 +10157 116 65 55.86 1942 47 22 3 7 62 2 101 3 5 +10158 116 66 61.74 1942 47 24 3 7 62 2 103 3 7 +10159 116 67 67.62 1942 51 21 3 7 63 2 100 3 4 +10160 116 68 73.5 1942 51 19 3 7 63 2 98 3 2 +10161 116 69 79.38 1942 51 17 3 7 63 2 96 3 0 +10162 116 70 85.26 1942 51 18 3 7 63 2 97 3 1 +10163 116 71 91.14 1942 51 20 3 7 63 2 99 3 3 +10164 116 72 97.02 1942 51 22 3 7 63 2 101 3 5 +10165 116 73 102.9 1942 55 21 3 7 64 2 100 3 4 +10166 116 74 108.78 1942 55 19 3 7 64 2 98 3 2 +10167 116 75 114.66 1942 55 17 3 7 64 2 96 3 0 +10168 116 76 120.54 1942 55 20 3 7 64 2 99 3 3 +10169 116 77 126.42 1942 55 22 3 7 64 2 101 3 5 +10170 116 78 132.3 1942 59 21 3 7 65 2 100 3 4 +10171 116 79 138.18 1942 59 19 3 7 65 2 98 3 2 +10172 116 80 144.06 1942 59 17 3 7 65 2 96 3 0 +10173 116 81 149.94 1942 59 20 3 7 65 2 99 3 3 +10174 116 82 155.82 1942 59 22 3 7 65 2 101 3 5 +10175 116 83 161.7 1942 59 24 3 7 65 2 103 3 7 +10176 116 84 167.58 1942 63 21 3 7 66 2 100 3 4 +10177 116 85 173.46 1942 63 19 3 7 66 2 98 3 2 +10178 116 86 179.34 1942 63 17 3 7 66 2 96 3 0 +10179 116 87 185.22 1942 63 18 3 7 66 2 97 3 1 +10180 116 88 191.1 1942 63 20 3 7 66 2 99 3 3 +10181 116 89 196.98 1942 63 22 3 7 66 2 101 3 5 +10182 116 90 202.86 1942 67 21 3 7 67 2 100 3 4 +10183 116 91 208.74 1942 67 19 3 7 67 2 98 3 2 +10184 116 92 214.62 1942 67 18 3 7 67 2 97 3 1 +10185 116 93 220.5 1942 67 20 3 7 67 2 99 3 3 +10186 116 94 226.38 1942 67 22 3 7 67 2 101 3 5 +10187 116 95 232.26 1942 71 21 3 7 68 2 100 3 4 +10188 116 96 238.14 1942 71 19 3 7 68 2 98 3 2 +10189 116 97 244.02 1942 71 17 3 7 68 2 96 3 0 +10190 116 98 249.9 1942 71 18 3 7 68 2 97 3 1 +10191 116 99 255.78 1942 71 20 3 7 68 2 99 3 3 +10192 116 100 261.66 1942 71 22 3 7 68 2 101 3 5 +10193 116 101 267.54 1942 75 21 3 7 69 2 100 3 4 +10194 116 102 273.42 1942 75 19 3 7 69 2 98 3 2 +10195 116 103 279.3 1942 75 18 3 7 69 2 97 3 1 +10196 116 104 285.18 1942 75 20 3 7 69 2 99 3 3 +10197 116 105 291.06 1942 75 22 3 7 69 2 101 3 5 +10198 116 106 296.94 1942 79 23 3 7 70 2 102 3 6 +10199 116 107 302.82 1942 79 21 3 7 70 2 100 3 4 +10200 116 108 308.7 1942 79 19 3 7 70 2 98 3 2 +10201 116 109 314.58 1942 79 18 3 7 70 2 97 3 1 +10202 116 110 320.46 1942 79 20 3 7 70 2 99 3 3 +10203 116 111 326.34 1942 79 22 3 7 70 2 101 3 5 +10204 117 0 -326.34 1954 3 27 3 7 51 2 106 3 10 +10205 117 1 -320.46 1954 3 25 3 7 51 2 104 3 8 +10206 117 2 -314.58 1954 3 23 3 7 51 2 102 3 6 +10207 117 3 -308.7 1954 3 26 3 7 51 2 105 3 9 +10208 117 4 -302.82 1954 3 28 3 7 51 2 107 3 11 +10209 117 5 -296.94 1954 7 27 3 7 52 2 106 3 10 +10210 117 6 -291.06 1954 7 25 3 7 52 2 104 3 8 +10211 117 7 -285.18 1954 7 23 3 7 52 2 102 3 6 +10212 117 8 -279.3 1954 7 24 3 7 52 2 103 3 7 +10213 117 9 -273.42 1954 7 26 3 7 52 2 105 3 9 +10214 117 10 -267.54 1954 7 28 3 7 52 2 107 3 11 +10215 117 11 -261.66 1954 11 27 3 7 53 2 106 3 10 +10216 117 12 -255.78 1954 11 25 3 7 53 2 104 3 8 +10217 117 13 -249.9 1954 11 23 3 7 53 2 102 3 6 +10218 117 14 -244.02 1954 11 24 3 7 53 2 103 3 7 +10219 117 15 -238.14 1954 11 26 3 7 53 2 105 3 9 +10220 117 16 -232.26 1954 11 28 3 7 53 2 107 3 11 +10221 117 17 -226.38 1954 15 25 3 7 54 2 104 3 8 +10222 117 18 -220.5 1954 15 23 3 7 54 2 102 3 6 +10223 117 19 -214.62 1954 15 24 3 7 54 2 103 3 7 +10224 117 20 -208.74 1954 15 26 3 7 54 2 105 3 9 +10225 117 21 -202.86 1954 15 28 3 7 54 2 107 3 11 +10226 117 22 -196.98 1954 19 27 3 7 55 2 106 3 10 +10227 117 23 -191.1 1954 19 25 3 7 55 2 104 3 8 +10228 117 24 -185.22 1954 19 23 3 7 55 2 102 3 6 +10229 117 25 -179.34 1954 19 24 3 7 55 2 103 3 7 +10230 117 26 -173.46 1954 19 26 3 7 55 2 105 3 9 +10231 117 27 -167.58 1954 19 28 3 7 55 2 107 3 11 +10232 117 28 -161.7 1954 23 29 3 7 56 2 108 3 12 +10233 117 29 -155.82 1954 23 27 3 7 56 2 106 3 10 +10234 117 30 -149.94 1954 23 25 3 7 56 2 104 3 8 +10235 117 31 -144.06 1954 23 24 3 7 56 2 103 3 7 +10236 117 32 -138.18 1954 23 26 3 7 56 2 105 3 9 +10237 117 33 -132.3 1954 23 28 3 7 56 2 107 3 11 +10238 117 34 -126.42 1954 27 25 3 7 57 2 104 3 8 +10239 117 35 -120.54 1954 27 23 3 7 57 2 102 3 6 +10240 117 36 -114.66 1954 27 24 3 7 57 2 103 3 7 +10241 117 37 -108.78 1954 27 26 3 7 57 2 105 3 9 +10242 117 38 -102.9 1954 27 28 3 7 57 2 107 3 11 +10243 117 39 -97.02 1954 31 27 3 7 58 2 106 3 10 +10244 117 40 -91.14 1954 31 25 3 7 58 2 104 3 8 +10245 117 41 -85.26 1954 31 23 3 7 58 2 102 3 6 +10246 117 42 -79.38 1954 31 24 3 7 58 2 103 3 7 +10247 117 43 -73.5 1954 31 26 3 7 58 2 105 3 9 +10248 117 44 -67.62 1954 31 28 3 7 58 2 107 3 11 +10249 117 45 -61.74 1954 35 27 3 7 59 2 106 3 10 +10250 117 46 -55.86 1954 35 25 3 7 59 2 104 3 8 +10251 117 47 -49.98 1954 35 26 3 7 59 2 105 3 9 +10252 117 48 -44.1 1954 35 28 3 7 59 2 107 3 11 +10253 117 49 -38.22 1954 35 30 3 7 59 2 109 3 13 +10254 117 50 -32.34 1954 39 25 3 7 60 2 104 3 8 +10255 117 51 -26.46 1954 39 23 3 7 60 2 102 3 6 +10256 117 52 -20.58 1954 39 21 3 7 60 2 100 3 4 +10257 117 53 -14.7 1954 39 22 3 7 60 2 101 3 5 +10258 117 54 -8.82 1954 39 24 3 7 60 2 103 3 7 +10259 117 55 -2.94 1954 39 26 3 7 60 2 105 3 9 +10260 117 56 2.94 1954 43 25 3 7 61 2 104 3 8 +10261 117 57 8.82 1954 43 23 3 7 61 2 102 3 6 +10262 117 58 14.7 1954 43 21 3 7 61 2 100 3 4 +10263 117 59 20.58 1954 43 22 3 7 61 2 101 3 5 +10264 117 60 26.46 1954 43 24 3 7 61 2 103 3 7 +10265 117 61 32.34 1954 43 26 3 7 61 2 105 3 9 +10266 117 62 38.22 1954 47 29 3 7 62 2 108 3 12 +10267 117 63 44.1 1954 47 27 3 7 62 2 106 3 10 +10268 117 64 49.98 1954 47 25 3 7 62 2 104 3 8 +10269 117 65 55.86 1954 47 26 3 7 62 2 105 3 9 +10270 117 66 61.74 1954 47 28 3 7 62 2 107 3 11 +10271 117 67 67.62 1954 51 27 3 7 63 2 106 3 10 +10272 117 68 73.5 1954 51 25 3 7 63 2 104 3 8 +10273 117 69 79.38 1954 51 23 3 7 63 2 102 3 6 +10274 117 70 85.26 1954 51 24 3 7 63 2 103 3 7 +10275 117 71 91.14 1954 51 26 3 7 63 2 105 3 9 +10276 117 72 97.02 1954 51 28 3 7 63 2 107 3 11 +10277 117 73 102.9 1954 55 27 3 7 64 2 106 3 10 +10278 117 74 108.78 1954 55 25 3 7 64 2 104 3 8 +10279 117 75 114.66 1954 55 23 3 7 64 2 102 3 6 +10280 117 76 120.54 1954 55 24 3 7 64 2 103 3 7 +10281 117 77 126.42 1954 55 26 3 7 64 2 105 3 9 +10282 117 78 132.3 1954 59 27 3 7 65 2 106 3 10 +10283 117 79 138.18 1954 59 25 3 7 65 2 104 3 8 +10284 117 80 144.06 1954 59 23 3 7 65 2 102 3 6 +10285 117 81 149.94 1954 59 26 3 7 65 2 105 3 9 +10286 117 82 155.82 1954 59 28 3 7 65 2 107 3 11 +10287 117 83 161.7 1954 59 30 3 7 65 2 109 3 13 +10288 117 84 167.58 1954 63 27 3 7 66 2 106 3 10 +10289 117 85 173.46 1954 63 25 3 7 66 2 104 3 8 +10290 117 86 179.34 1954 63 23 3 7 66 2 102 3 6 +10291 117 87 185.22 1954 63 24 3 7 66 2 103 3 7 +10292 117 88 191.1 1954 63 26 3 7 66 2 105 3 9 +10293 117 89 196.98 1954 63 28 3 7 66 2 107 3 11 +10294 117 90 202.86 1954 67 27 3 7 67 2 106 3 10 +10295 117 91 208.74 1954 67 25 3 7 67 2 104 3 8 +10296 117 92 214.62 1954 67 23 3 7 67 2 102 3 6 +10297 117 93 220.5 1954 67 24 3 7 67 2 103 3 7 +10298 117 94 226.38 1954 67 26 3 7 67 2 105 3 9 +10299 117 95 232.26 1954 71 27 3 7 68 2 106 3 10 +10300 117 96 238.14 1954 71 25 3 7 68 2 104 3 8 +10301 117 97 244.02 1954 71 23 3 7 68 2 102 3 6 +10302 117 98 249.9 1954 71 24 3 7 68 2 103 3 7 +10303 117 99 255.78 1954 71 26 3 7 68 2 105 3 9 +10304 117 100 261.66 1954 71 28 3 7 68 2 107 3 11 +10305 117 101 267.54 1954 75 27 3 7 69 2 106 3 10 +10306 117 102 273.42 1954 75 25 3 7 69 2 104 3 8 +10307 117 103 279.3 1954 75 23 3 7 69 2 102 3 6 +10308 117 104 285.18 1954 75 24 3 7 69 2 103 3 7 +10309 117 105 291.06 1954 75 26 3 7 69 2 105 3 9 +10310 117 106 296.94 1954 75 28 3 7 69 2 107 3 11 +10311 117 107 302.82 1954 79 27 3 7 70 2 106 3 10 +10312 117 108 308.7 1954 79 25 3 7 70 2 104 3 8 +10313 117 109 314.58 1954 79 24 3 7 70 2 103 3 7 +10314 117 110 320.46 1954 79 26 3 7 70 2 105 3 9 +10315 117 111 326.34 1954 79 28 3 7 70 2 107 3 11 +10316 118 0 -332.22 1966 3 33 3 7 51 2 112 3 16 +10317 118 1 -326.34 1966 3 31 3 7 51 2 110 3 14 +10318 118 2 -320.46 1966 3 29 3 7 51 2 108 3 12 +10319 118 3 -314.58 1966 3 30 3 7 51 2 109 3 13 +10320 118 4 -308.7 1966 3 32 3 7 51 2 111 3 15 +10321 118 5 -302.82 1966 3 34 3 7 51 2 113 3 17 +10322 118 6 -296.94 1966 7 33 3 7 52 2 112 3 16 +10323 118 7 -291.06 1966 7 31 3 7 52 2 110 3 14 +10324 118 8 -285.18 1966 7 29 3 7 52 2 108 3 12 +10325 118 9 -279.3 1966 7 30 3 7 52 2 109 3 13 +10326 118 10 -273.42 1966 7 32 3 7 52 2 111 3 15 +10327 118 11 -267.54 1966 7 34 3 7 52 2 113 3 17 +10328 118 12 -261.66 1966 11 31 3 7 53 2 110 3 14 +10329 118 13 -255.78 1966 11 29 3 7 53 2 108 3 12 +10330 118 14 -249.9 1966 11 30 3 7 53 2 109 3 13 +10331 118 15 -244.02 1966 11 32 3 7 53 2 111 3 15 +10332 118 16 -238.14 1966 11 34 3 7 53 2 113 3 17 +10333 118 17 -232.26 1966 15 31 3 7 54 2 110 3 14 +10334 118 18 -226.38 1966 15 29 3 7 54 2 108 3 12 +10335 118 19 -220.5 1966 15 27 3 7 54 2 106 3 10 +10336 118 20 -214.62 1966 15 30 3 7 54 2 109 3 13 +10337 118 21 -208.74 1966 15 32 3 7 54 2 111 3 15 +10338 118 22 -202.86 1966 15 34 3 7 54 2 113 3 17 +10339 118 23 -196.98 1966 19 33 3 7 55 2 112 3 16 +10340 118 24 -191.1 1966 19 31 3 7 55 2 110 3 14 +10341 118 25 -185.22 1966 19 29 3 7 55 2 108 3 12 +10342 118 26 -179.34 1966 19 30 3 7 55 2 109 3 13 +10343 118 27 -173.46 1966 19 32 3 7 55 2 111 3 15 +10344 118 28 -167.58 1966 19 34 3 7 55 2 113 3 17 +10345 118 29 -161.7 1966 23 33 3 7 56 2 112 3 16 +10346 118 30 -155.82 1966 23 31 3 7 56 2 110 3 14 +10347 118 31 -149.94 1966 23 30 3 7 56 2 109 3 13 +10348 118 32 -144.06 1966 23 32 3 7 56 2 111 3 15 +10349 118 33 -138.18 1966 23 34 3 7 56 2 113 3 17 +10350 118 34 -132.3 1966 27 31 3 7 57 2 110 3 14 +10351 118 35 -126.42 1966 27 29 3 7 57 2 108 3 12 +10352 118 36 -120.54 1966 27 27 3 7 57 2 106 3 10 +10353 118 37 -114.66 1966 27 30 3 7 57 2 109 3 13 +10354 118 38 -108.78 1966 27 32 3 7 57 2 111 3 15 +10355 118 39 -102.9 1966 27 34 3 7 57 2 113 3 17 +10356 118 40 -97.02 1966 31 33 3 7 58 2 112 3 16 +10357 118 41 -91.14 1966 31 31 3 7 58 2 110 3 14 +10358 118 42 -85.26 1966 31 29 3 7 58 2 108 3 12 +10359 118 43 -79.38 1966 31 30 3 7 58 2 109 3 13 +10360 118 44 -73.5 1966 31 32 3 7 58 2 111 3 15 +10361 118 45 -67.62 1966 31 34 3 7 58 2 113 3 17 +10362 118 46 -61.74 1966 35 33 3 7 59 2 112 3 16 +10363 118 47 -55.86 1966 35 31 3 7 59 2 110 3 14 +10364 118 48 -49.98 1966 35 29 3 7 59 2 108 3 12 +10365 118 49 -44.1 1966 35 32 3 7 59 2 111 3 15 +10366 118 50 -38.22 1966 35 34 3 7 59 2 113 3 17 +10367 118 51 -32.34 1966 39 31 3 7 60 2 110 3 14 +10368 118 52 -26.46 1966 39 29 3 7 60 2 108 3 12 +10369 118 53 -20.58 1966 39 27 3 7 60 2 106 3 10 +10370 118 54 -14.7 1966 39 28 3 7 60 2 107 3 11 +10371 118 55 -8.82 1966 39 30 3 7 60 2 109 3 13 +10372 118 56 -2.94 1966 39 32 3 7 60 2 111 3 15 +10373 118 57 2.94 1966 43 31 3 7 61 2 110 3 14 +10374 118 58 8.82 1966 43 29 3 7 61 2 108 3 12 +10375 118 59 14.7 1966 43 27 3 7 61 2 106 3 10 +10376 118 60 20.58 1966 43 28 3 7 61 2 107 3 11 +10377 118 61 26.46 1966 43 30 3 7 61 2 109 3 13 +10378 118 62 32.34 1966 43 32 3 7 61 2 111 3 15 +10379 118 63 38.22 1966 47 33 3 7 62 2 112 3 16 +10380 118 64 44.1 1966 47 31 3 7 62 2 110 3 14 +10381 118 65 49.98 1966 47 30 3 7 62 2 109 3 13 +10382 118 66 55.86 1966 47 32 3 7 62 2 111 3 15 +10383 118 67 61.74 1966 47 34 3 7 62 2 113 3 17 +10384 118 68 67.62 1966 51 33 3 7 63 2 112 3 16 +10385 118 69 73.5 1966 51 31 3 7 63 2 110 3 14 +10386 118 70 79.38 1966 51 29 3 7 63 2 108 3 12 +10387 118 71 85.26 1966 51 30 3 7 63 2 109 3 13 +10388 118 72 91.14 1966 51 32 3 7 63 2 111 3 15 +10389 118 73 97.02 1966 51 34 3 7 63 2 113 3 17 +10390 118 74 102.9 1966 55 33 3 7 64 2 112 3 16 +10391 118 75 108.78 1966 55 31 3 7 64 2 110 3 14 +10392 118 76 114.66 1966 55 29 3 7 64 2 108 3 12 +10393 118 77 120.54 1966 55 28 3 7 64 2 107 3 11 +10394 118 78 126.42 1966 55 30 3 7 64 2 109 3 13 +10395 118 79 132.3 1966 55 32 3 7 64 2 111 3 15 +10396 118 80 138.18 1966 59 33 3 7 65 2 112 3 16 +10397 118 81 144.06 1966 59 31 3 7 65 2 110 3 14 +10398 118 82 149.94 1966 59 29 3 7 65 2 108 3 12 +10399 118 83 155.82 1966 59 32 3 7 65 2 111 3 15 +10400 118 84 161.7 1966 59 34 3 7 65 2 113 3 17 +10401 118 85 167.58 1966 63 33 3 7 66 2 112 3 16 +10402 118 86 173.46 1966 63 31 3 7 66 2 110 3 14 +10403 118 87 179.34 1966 63 29 3 7 66 2 108 3 12 +10404 118 88 185.22 1966 63 30 3 7 66 2 109 3 13 +10405 118 89 191.1 1966 63 32 3 7 66 2 111 3 15 +10406 118 90 196.98 1966 63 34 3 7 66 2 113 3 17 +10407 118 91 202.86 1966 67 33 3 7 67 2 112 3 16 +10408 118 92 208.74 1966 67 31 3 7 67 2 110 3 14 +10409 118 93 214.62 1966 67 29 3 7 67 2 108 3 12 +10410 118 94 220.5 1966 67 28 3 7 67 2 107 3 11 +10411 118 95 226.38 1966 67 30 3 7 67 2 109 3 13 +10412 118 96 232.26 1966 67 32 3 7 67 2 111 3 15 +10413 118 97 238.14 1966 71 33 3 7 68 2 112 3 16 +10414 118 98 244.02 1966 71 31 3 7 68 2 110 3 14 +10415 118 99 249.9 1966 71 29 3 7 68 2 108 3 12 +10416 118 100 255.78 1966 71 30 3 7 68 2 109 3 13 +10417 118 101 261.66 1966 71 32 3 7 68 2 111 3 15 +10418 118 102 267.54 1966 75 33 3 7 69 2 112 3 16 +10419 118 103 273.42 1966 75 31 3 7 69 2 110 3 14 +10420 118 104 279.3 1966 75 29 3 7 69 2 108 3 12 +10421 118 105 285.18 1966 75 30 3 7 69 2 109 3 13 +10422 118 106 291.06 1966 75 32 3 7 69 2 111 3 15 +10423 118 107 296.94 1966 75 34 3 7 69 2 113 3 17 +10424 118 108 302.82 1966 79 33 3 7 70 2 112 3 16 +10425 118 109 308.7 1966 79 31 3 7 70 2 110 3 14 +10426 118 110 314.58 1966 79 29 3 7 70 2 108 3 12 +10427 118 111 320.46 1966 79 30 3 7 70 2 109 3 13 +10428 118 112 326.34 1966 79 32 3 7 70 2 111 3 15 +10429 118 113 332.22 1966 79 34 3 7 70 2 113 3 17 +10430 119 0 -332.22 1978 3 39 3 7 51 2 118 3 22 +10431 119 1 -326.34 1978 3 37 3 7 51 2 116 3 20 +10432 119 2 -320.46 1978 3 35 3 7 51 2 114 3 18 +10433 119 3 -314.58 1978 3 36 3 7 51 2 115 3 19 +10434 119 4 -308.7 1978 3 38 3 7 51 2 117 3 21 +10435 119 5 -302.82 1978 3 40 3 7 51 2 119 3 23 +10436 119 6 -296.94 1978 7 37 3 7 52 2 116 3 20 +10437 119 7 -291.06 1978 7 35 3 7 52 2 114 3 18 +10438 119 8 -285.18 1978 7 36 3 7 52 2 115 3 19 +10439 119 9 -279.3 1978 7 38 3 7 52 2 117 3 21 +10440 119 10 -273.42 1978 7 40 3 7 52 2 119 3 23 +10441 119 11 -267.54 1978 11 37 3 7 53 2 116 3 20 +10442 119 12 -261.66 1978 11 35 3 7 53 2 114 3 18 +10443 119 13 -255.78 1978 11 33 3 7 53 2 112 3 16 +10444 119 14 -249.9 1978 11 36 3 7 53 2 115 3 19 +10445 119 15 -244.02 1978 11 38 3 7 53 2 117 3 21 +10446 119 16 -238.14 1978 11 40 3 7 53 2 119 3 23 +10447 119 17 -232.26 1978 15 37 3 7 54 2 116 3 20 +10448 119 18 -226.38 1978 15 35 3 7 54 2 114 3 18 +10449 119 19 -220.5 1978 15 33 3 7 54 2 112 3 16 +10450 119 20 -214.62 1978 15 36 3 7 54 2 115 3 19 +10451 119 21 -208.74 1978 15 38 3 7 54 2 117 3 21 +10452 119 22 -202.86 1978 15 40 3 7 54 2 119 3 23 +10453 119 23 -196.98 1978 19 39 3 7 55 2 118 3 22 +10454 119 24 -191.1 1978 19 37 3 7 55 2 116 3 20 +10455 119 25 -185.22 1978 19 35 3 7 55 2 114 3 18 +10456 119 26 -179.34 1978 19 36 3 7 55 2 115 3 19 +10457 119 27 -173.46 1978 19 38 3 7 55 2 117 3 21 +10458 119 28 -167.58 1978 19 40 3 7 55 2 119 3 23 +10459 119 29 -161.7 1978 23 39 3 7 56 2 118 3 22 +10460 119 30 -155.82 1978 23 37 3 7 56 2 116 3 20 +10461 119 31 -149.94 1978 23 35 3 7 56 2 114 3 18 +10462 119 32 -144.06 1978 23 36 3 7 56 2 115 3 19 +10463 119 33 -138.18 1978 23 38 3 7 56 2 117 3 21 +10464 119 34 -132.3 1978 27 37 3 7 57 2 116 3 20 +10465 119 35 -126.42 1978 27 35 3 7 57 2 114 3 18 +10466 119 36 -120.54 1978 27 33 3 7 57 2 112 3 16 +10467 119 37 -114.66 1978 27 36 3 7 57 2 115 3 19 +10468 119 38 -108.78 1978 27 38 3 7 57 2 117 3 21 +10469 119 39 -102.9 1978 27 40 3 7 57 2 119 3 23 +10470 119 40 -97.02 1978 31 39 3 7 58 2 118 3 22 +10471 119 41 -91.14 1978 31 37 3 7 58 2 116 3 20 +10472 119 42 -85.26 1978 31 35 3 7 58 2 114 3 18 +10473 119 43 -79.38 1978 31 36 3 7 58 2 115 3 19 +10474 119 44 -73.5 1978 31 38 3 7 58 2 117 3 21 +10475 119 45 -67.62 1978 31 40 3 7 58 2 119 3 23 +10476 119 46 -61.74 1978 35 37 3 7 59 2 116 3 20 +10477 119 47 -55.86 1978 35 35 3 7 59 2 114 3 18 +10478 119 48 -49.98 1978 35 36 3 7 59 2 115 3 19 +10479 119 49 -44.1 1978 35 38 3 7 59 2 117 3 21 +10480 119 50 -38.22 1978 35 40 3 7 59 2 119 3 23 +10481 119 51 -32.34 1978 39 35 3 7 60 2 114 3 18 +10482 119 52 -26.46 1978 39 33 3 7 60 2 112 3 16 +10483 119 53 -20.58 1978 39 34 3 7 60 2 113 3 17 +10484 119 54 -14.7 1978 39 36 3 7 60 2 115 3 19 +10485 119 55 -8.82 1978 39 38 3 7 60 2 117 3 21 +10486 119 56 -2.94 1978 39 40 3 7 60 2 119 3 23 +10487 119 57 2.94 1978 43 39 3 7 61 2 118 3 22 +10488 119 58 8.82 1978 43 37 3 7 61 2 116 3 20 +10489 119 59 14.7 1978 43 35 3 7 61 2 114 3 18 +10490 119 60 20.58 1978 43 33 3 7 61 2 112 3 16 +10491 119 61 26.46 1978 43 34 3 7 61 2 113 3 17 +10492 119 62 32.34 1978 43 36 3 7 61 2 115 3 19 +10493 119 63 38.22 1978 47 39 3 7 62 2 118 3 22 +10494 119 64 44.1 1978 47 37 3 7 62 2 116 3 20 +10495 119 65 49.98 1978 47 35 3 7 62 2 114 3 18 +10496 119 66 55.86 1978 47 36 3 7 62 2 115 3 19 +10497 119 67 61.74 1978 47 38 3 7 62 2 117 3 21 +10498 119 68 67.62 1978 51 39 3 7 63 2 118 3 22 +10499 119 69 73.5 1978 51 37 3 7 63 2 116 3 20 +10500 119 70 79.38 1978 51 35 3 7 63 2 114 3 18 +10501 119 71 85.26 1978 51 36 3 7 63 2 115 3 19 +10502 119 72 91.14 1978 51 38 3 7 63 2 117 3 21 +10503 119 73 97.02 1978 51 40 3 7 63 2 119 3 23 +10504 119 74 102.9 1978 55 39 3 7 64 2 118 3 22 +10505 119 75 108.78 1978 55 37 3 7 64 2 116 3 20 +10506 119 76 114.66 1978 55 35 3 7 64 2 114 3 18 +10507 119 77 120.54 1978 55 34 3 7 64 2 113 3 17 +10508 119 78 126.42 1978 55 36 3 7 64 2 115 3 19 +10509 119 79 132.3 1978 55 38 3 7 64 2 117 3 21 +10510 119 80 138.18 1978 59 37 3 7 65 2 116 3 20 +10511 119 81 144.06 1978 59 35 3 7 65 2 114 3 18 +10512 119 82 149.94 1978 59 36 3 7 65 2 115 3 19 +10513 119 83 155.82 1978 59 38 3 7 65 2 117 3 21 +10514 119 84 161.7 1978 59 40 3 7 65 2 119 3 23 +10515 119 85 167.58 1978 63 39 3 7 66 2 118 3 22 +10516 119 86 173.46 1978 63 37 3 7 66 2 116 3 20 +10517 119 87 179.34 1978 63 35 3 7 66 2 114 3 18 +10518 119 88 185.22 1978 63 36 3 7 66 2 115 3 19 +10519 119 89 191.1 1978 63 38 3 7 66 2 117 3 21 +10520 119 90 196.98 1978 63 40 3 7 66 2 119 3 23 +10521 119 91 202.86 1978 67 39 3 7 67 2 118 3 22 +10522 119 92 208.74 1978 67 37 3 7 67 2 116 3 20 +10523 119 93 214.62 1978 67 35 3 7 67 2 114 3 18 +10524 119 94 220.5 1978 67 34 3 7 67 2 113 3 17 +10525 119 95 226.38 1978 67 36 3 7 67 2 115 3 19 +10526 119 96 232.26 1978 67 38 3 7 67 2 117 3 21 +10527 119 97 238.14 1978 71 39 3 7 68 2 118 3 22 +10528 119 98 244.02 1978 71 37 3 7 68 2 116 3 20 +10529 119 99 249.9 1978 71 35 3 7 68 2 114 3 18 +10530 119 100 255.78 1978 71 34 3 7 68 2 113 3 17 +10531 119 101 261.66 1978 71 36 3 7 68 2 115 3 19 +10532 119 102 267.54 1978 71 38 3 7 68 2 117 3 21 +10533 119 103 273.42 1978 75 39 3 7 69 2 118 3 22 +10534 119 104 279.3 1978 75 37 3 7 69 2 116 3 20 +10535 119 105 285.18 1978 75 35 3 7 69 2 114 3 18 +10536 119 106 291.06 1978 75 36 3 7 69 2 115 3 19 +10537 119 107 296.94 1978 75 38 3 7 69 2 117 3 21 +10538 119 108 302.82 1978 79 39 3 7 70 2 118 3 22 +10539 119 109 308.7 1978 79 37 3 7 70 2 116 3 20 +10540 119 110 314.58 1978 79 35 3 7 70 2 114 3 18 +10541 119 111 320.46 1978 79 36 3 7 70 2 115 3 19 +10542 119 112 326.34 1978 79 38 3 7 70 2 117 3 21 +10543 119 113 332.22 1978 79 40 3 7 70 2 119 3 23 +10544 120 0 -332.22 1990 4 5 3 7 51 3 124 3 28 +10545 120 1 -326.34 1990 4 3 3 7 51 3 122 3 26 +10546 120 2 -320.46 1990 4 1 3 7 51 3 120 3 24 +10547 120 3 -314.58 1990 4 2 3 7 51 3 121 3 25 +10548 120 4 -308.7 1990 4 4 3 7 51 3 123 3 27 +10549 120 5 -302.82 1990 4 6 3 7 51 3 125 3 29 +10550 120 6 -296.94 1990 7 39 3 7 52 2 118 3 22 +10551 120 7 -291.06 1990 8 3 3 7 52 3 122 3 26 +10552 120 8 -285.18 1990 8 1 3 7 52 3 120 3 24 +10553 120 9 -279.3 1990 8 2 3 7 52 3 121 3 25 +10554 120 10 -273.42 1990 8 4 3 7 52 3 123 3 27 +10555 120 11 -267.54 1990 11 39 3 7 53 2 118 3 22 +10556 120 12 -261.66 1990 12 3 3 7 53 3 122 3 26 +10557 120 13 -255.78 1990 12 1 3 7 53 3 120 3 24 +10558 120 14 -249.9 1990 12 2 3 7 53 3 121 3 25 +10559 120 15 -244.02 1990 12 4 3 7 53 3 123 3 27 +10560 120 16 -238.14 1990 12 6 3 7 53 3 125 3 29 +10561 120 17 -232.26 1990 15 39 3 7 54 2 118 3 22 +10562 120 18 -226.38 1990 16 3 3 7 54 3 122 3 26 +10563 120 19 -220.5 1990 16 1 3 7 54 3 120 3 24 +10564 120 20 -214.62 1990 16 2 3 7 54 3 121 3 25 +10565 120 21 -208.74 1990 16 4 3 7 54 3 123 3 27 +10566 120 22 -202.86 1990 16 6 3 7 54 3 125 3 29 +10567 120 23 -196.98 1990 20 3 3 7 55 3 122 3 26 +10568 120 24 -191.1 1990 20 1 3 7 55 3 120 3 24 +10569 120 25 -185.22 1990 20 2 3 7 55 3 121 3 25 +10570 120 26 -179.34 1990 20 4 3 7 55 3 123 3 27 +10571 120 27 -173.46 1990 20 6 3 7 55 3 125 3 29 +10572 120 28 -167.58 1990 24 5 3 7 56 3 124 3 28 +10573 120 29 -161.7 1990 24 3 3 7 56 3 122 3 26 +10574 120 30 -155.82 1990 24 1 3 7 56 3 120 3 24 +10575 120 31 -149.94 1990 24 2 3 7 56 3 121 3 25 +10576 120 32 -144.06 1990 24 4 3 7 56 3 123 3 27 +10577 120 33 -138.18 1990 23 40 3 7 56 2 119 3 23 +10578 120 34 -132.3 1990 27 39 3 7 57 2 118 3 22 +10579 120 35 -126.42 1990 28 5 3 7 57 3 124 3 28 +10580 120 36 -120.54 1990 28 3 3 7 57 3 122 3 26 +10581 120 37 -114.66 1990 28 1 3 7 57 3 120 3 24 +10582 120 38 -108.78 1990 28 2 3 7 57 3 121 3 25 +10583 120 39 -102.9 1990 28 4 3 7 57 3 123 3 27 +10584 120 40 -97.02 1990 32 5 3 7 58 3 124 3 28 +10585 120 41 -91.14 1990 32 3 3 7 58 3 122 3 26 +10586 120 42 -85.26 1990 32 1 3 7 58 3 120 3 24 +10587 120 43 -79.38 1990 32 2 3 7 58 3 121 3 25 +10588 120 44 -73.5 1990 32 4 3 7 58 3 123 3 27 +10589 120 45 -67.62 1990 32 6 3 7 58 3 125 3 29 +10590 120 46 -61.74 1990 35 39 3 7 59 2 118 3 22 +10591 120 47 -55.86 1990 36 3 3 7 59 3 122 3 26 +10592 120 48 -49.98 1990 36 1 3 7 59 3 120 3 24 +10593 120 49 -44.1 1990 36 2 3 7 59 3 121 3 25 +10594 120 50 -38.22 1990 36 4 3 7 59 3 123 3 27 +10595 120 51 -32.34 1990 39 39 3 7 60 2 118 3 22 +10596 120 52 -26.46 1990 39 37 3 7 60 2 116 3 20 +10597 120 53 -20.58 1990 40 3 3 7 60 3 122 3 26 +10598 120 54 -14.7 1990 40 1 3 7 60 3 120 3 24 +10599 120 55 -8.82 1990 40 2 3 7 60 3 121 3 25 +10600 120 56 -2.94 1990 40 4 3 7 60 3 123 3 27 +10601 120 57 2.94 1990 44 3 3 7 61 3 122 3 26 +10602 120 58 8.82 1990 44 1 3 7 61 3 120 3 24 +10603 120 59 14.7 1990 44 2 3 7 61 3 121 3 25 +10604 120 60 20.58 1990 44 4 3 7 61 3 123 3 27 +10605 120 61 26.46 1990 43 38 3 7 61 2 117 3 21 +10606 120 62 32.34 1990 43 40 3 7 61 2 119 3 23 +10607 120 63 38.22 1990 48 3 3 7 62 3 122 3 26 +10608 120 64 44.1 1990 48 1 3 7 62 3 120 3 24 +10609 120 65 49.98 1990 48 2 3 7 62 3 121 3 25 +10610 120 66 55.86 1990 48 4 3 7 62 3 123 3 27 +10611 120 67 61.74 1990 47 40 3 7 62 2 119 3 23 +10612 120 68 67.62 1990 52 5 3 7 63 3 124 3 28 +10613 120 69 73.5 1990 52 3 3 7 63 3 122 3 26 +10614 120 70 79.38 1990 52 1 3 7 63 3 120 3 24 +10615 120 71 85.26 1990 52 2 3 7 63 3 121 3 25 +10616 120 72 91.14 1990 52 4 3 7 63 3 123 3 27 +10617 120 73 97.02 1990 52 6 3 7 63 3 125 3 29 +10618 120 74 102.9 1990 56 3 3 7 64 3 122 3 26 +10619 120 75 108.78 1990 56 1 3 7 64 3 120 3 24 +10620 120 76 114.66 1990 56 2 3 7 64 3 121 3 25 +10621 120 77 120.54 1990 56 4 3 7 64 3 123 3 27 +10622 120 78 126.42 1990 56 6 3 7 64 3 125 3 29 +10623 120 79 132.3 1990 55 40 3 7 64 2 119 3 23 +10624 120 80 138.18 1990 59 39 3 7 65 2 118 3 22 +10625 120 81 144.06 1990 60 3 3 7 65 3 122 3 26 +10626 120 82 149.94 1990 60 1 3 7 65 3 120 3 24 +10627 120 83 155.82 1990 60 2 3 7 65 3 121 3 25 +10628 120 84 161.7 1990 60 4 3 7 65 3 123 3 27 +10629 120 85 167.58 1990 60 6 3 7 65 3 125 3 29 +10630 120 86 173.46 1990 64 5 3 7 66 3 124 3 28 +10631 120 87 179.34 1990 64 3 3 7 66 3 122 3 26 +10632 120 88 185.22 1990 64 1 3 7 66 3 120 3 24 +10633 120 89 191.1 1990 64 2 3 7 66 3 121 3 25 +10634 120 90 196.98 1990 64 4 3 7 66 3 123 3 27 +10635 120 91 202.86 1990 68 5 3 7 67 3 124 3 28 +10636 120 92 208.74 1990 68 3 3 7 67 3 122 3 26 +10637 120 93 214.62 1990 68 1 3 7 67 3 120 3 24 +10638 120 94 220.5 1990 68 2 3 7 67 3 121 3 25 +10639 120 95 226.38 1990 68 4 3 7 67 3 123 3 27 +10640 120 96 232.26 1990 67 40 3 7 67 2 119 3 23 +10641 120 97 238.14 1990 72 5 3 7 68 3 124 3 28 +10642 120 98 244.02 1990 72 3 3 7 68 3 122 3 26 +10643 120 99 249.9 1990 72 1 3 7 68 3 120 3 24 +10644 120 100 255.78 1990 72 2 3 7 68 3 121 3 25 +10645 120 101 261.66 1990 72 4 3 7 68 3 123 3 27 +10646 120 102 267.54 1990 71 40 3 7 68 2 119 3 23 +10647 120 103 273.42 1990 76 3 3 7 69 3 122 3 26 +10648 120 104 279.3 1990 76 1 3 7 69 3 120 3 24 +10649 120 105 285.18 1990 76 2 3 7 69 3 121 3 25 +10650 120 106 291.06 1990 76 4 3 7 69 3 123 3 27 +10651 120 107 296.94 1990 75 40 3 7 69 2 119 3 23 +10652 120 108 302.82 1990 80 5 3 7 70 3 124 3 28 +10653 120 109 308.7 1990 80 3 3 7 70 3 122 3 26 +10654 120 110 314.58 1990 80 1 3 7 70 3 120 3 24 +10655 120 111 320.46 1990 80 2 3 7 70 3 121 3 25 +10656 120 112 326.34 1990 80 4 3 7 70 3 123 3 27 +10657 120 113 332.22 1990 80 6 3 7 70 3 125 3 29 +10658 121 0 -338.1 2002 4 11 3 7 51 3 130 4 2 +10659 121 1 -332.22 2002 4 9 3 7 51 3 128 4 0 +10660 121 2 -326.34 2002 4 7 3 7 51 3 126 3 30 +10661 121 3 -320.46 2002 4 8 3 7 51 3 127 3 31 +10662 121 4 -314.58 2002 4 10 3 7 51 3 129 4 1 +10663 121 5 -308.7 2002 4 12 3 7 51 3 131 4 3 +10664 121 6 -302.82 2002 8 9 3 7 52 3 128 4 0 +10665 121 7 -296.94 2002 8 7 3 7 52 3 126 3 30 +10666 121 8 -291.06 2002 8 5 3 7 52 3 124 3 28 +10667 121 9 -285.18 2002 8 6 3 7 52 3 125 3 29 +10668 121 10 -279.3 2002 8 8 3 7 52 3 127 3 31 +10669 121 11 -273.42 2002 8 10 3 7 52 3 129 4 1 +10670 121 12 -267.54 2002 12 9 3 7 53 3 128 4 0 +10671 121 13 -261.66 2002 12 7 3 7 53 3 126 3 30 +10672 121 14 -255.78 2002 12 5 3 7 53 3 124 3 28 +10673 121 15 -249.9 2002 12 8 3 7 53 3 127 3 31 +10674 121 16 -244.02 2002 12 10 3 7 53 3 129 4 1 +10675 121 17 -238.14 2002 12 12 3 7 53 3 131 4 3 +10676 121 18 -232.26 2002 16 9 3 7 54 3 128 4 0 +10677 121 19 -226.38 2002 16 7 3 7 54 3 126 3 30 +10678 121 20 -220.5 2002 16 5 3 7 54 3 124 3 28 +10679 121 21 -214.62 2002 16 8 3 7 54 3 127 3 31 +10680 121 22 -208.74 2002 16 10 3 7 54 3 129 4 1 +10681 121 23 -202.86 2002 20 9 3 7 55 3 128 4 0 +10682 121 24 -196.98 2002 20 7 3 7 55 3 126 3 30 +10683 121 25 -191.1 2002 20 5 3 7 55 3 124 3 28 +10684 121 26 -185.22 2002 20 8 3 7 55 3 127 3 31 +10685 121 27 -179.34 2002 20 10 3 7 55 3 129 4 1 +10686 121 28 -173.46 2002 20 12 3 7 55 3 131 4 3 +10687 121 29 -167.58 2002 24 11 3 7 56 3 130 4 2 +10688 121 30 -161.7 2002 24 9 3 7 56 3 128 4 0 +10689 121 31 -155.82 2002 24 7 3 7 56 3 126 3 30 +10690 121 32 -149.94 2002 24 6 3 7 56 3 125 3 29 +10691 121 33 -144.06 2002 24 8 3 7 56 3 127 3 31 +10692 121 34 -138.18 2002 24 10 3 7 56 3 129 4 1 +10693 121 35 -132.3 2002 28 11 3 7 57 3 130 4 2 +10694 121 36 -126.42 2002 28 9 3 7 57 3 128 4 0 +10695 121 37 -120.54 2002 28 7 3 7 57 3 126 3 30 +10696 121 38 -114.66 2002 28 6 3 7 57 3 125 3 29 +10697 121 39 -108.78 2002 28 8 3 7 57 3 127 3 31 +10698 121 40 -102.9 2002 28 10 3 7 57 3 129 4 1 +10699 121 41 -97.02 2002 32 9 3 7 58 3 128 4 0 +10700 121 42 -91.14 2002 32 7 3 7 58 3 126 3 30 +10701 121 43 -85.26 2002 32 8 3 7 58 3 127 3 31 +10702 121 44 -79.38 2002 32 10 3 7 58 3 129 4 1 +10703 121 45 -73.5 2002 32 12 3 7 58 3 131 4 3 +10704 121 46 -67.62 2002 36 9 3 7 59 3 128 4 0 +10705 121 47 -61.74 2002 36 7 3 7 59 3 126 3 30 +10706 121 48 -55.86 2002 36 5 3 7 59 3 124 3 28 +10707 121 49 -49.98 2002 36 6 3 7 59 3 125 3 29 +10708 121 50 -44.1 2002 36 8 3 7 59 3 127 3 31 +10709 121 51 -38.22 2002 36 10 3 7 59 3 129 4 1 +10710 121 52 -32.34 2002 40 9 3 7 60 3 128 4 0 +10711 121 53 -26.46 2002 40 7 3 7 60 3 126 3 30 +10712 121 54 -20.58 2002 40 5 3 7 60 3 124 3 28 +10713 121 55 -14.7 2002 40 6 3 7 60 3 125 3 29 +10714 121 56 -8.82 2002 40 8 3 7 60 3 127 3 31 +10715 121 57 -2.94 2002 40 10 3 7 60 3 129 4 1 +10716 121 58 2.94 2002 44 9 3 7 61 3 128 4 0 +10717 121 59 8.82 2002 44 7 3 7 61 3 126 3 30 +10718 121 60 14.7 2002 44 5 3 7 61 3 124 3 28 +10719 121 61 20.58 2002 44 6 3 7 61 3 125 3 29 +10720 121 62 26.46 2002 44 8 3 7 61 3 127 3 31 +10721 121 63 32.34 2002 44 10 3 7 61 3 129 4 1 +10722 121 64 38.22 2002 48 9 3 7 62 3 128 4 0 +10723 121 65 44.1 2002 48 7 3 7 62 3 126 3 30 +10724 121 66 49.98 2002 48 5 3 7 62 3 124 3 28 +10725 121 67 55.86 2002 48 6 3 7 62 3 125 3 29 +10726 121 68 61.74 2002 48 8 3 7 62 3 127 3 31 +10727 121 69 67.62 2002 48 10 3 7 62 3 129 4 1 +10728 121 70 73.5 2002 52 11 3 7 63 3 130 4 2 +10729 121 71 79.38 2002 52 9 3 7 63 3 128 4 0 +10730 121 72 85.26 2002 52 7 3 7 63 3 126 3 30 +10731 121 73 91.14 2002 52 8 3 7 63 3 127 3 31 +10732 121 74 97.02 2002 52 10 3 7 63 3 129 4 1 +10733 121 75 102.9 2002 56 9 3 7 64 3 128 4 0 +10734 121 76 108.78 2002 56 7 3 7 64 3 126 3 30 +10735 121 77 114.66 2002 56 5 3 7 64 3 124 3 28 +10736 121 78 120.54 2002 56 8 3 7 64 3 127 3 31 +10737 121 79 126.42 2002 56 10 3 7 64 3 129 4 1 +10738 121 80 132.3 2002 56 12 3 7 64 3 131 4 3 +10739 121 81 138.18 2002 60 9 3 7 65 3 128 4 0 +10740 121 82 144.06 2002 60 7 3 7 65 3 126 3 30 +10741 121 83 149.94 2002 60 5 3 7 65 3 124 3 28 +10742 121 84 155.82 2002 60 8 3 7 65 3 127 3 31 +10743 121 85 161.7 2002 60 10 3 7 65 3 129 4 1 +10744 121 86 167.58 2002 60 12 3 7 65 3 131 4 3 +10745 121 87 173.46 2002 64 11 3 7 66 3 130 4 2 +10746 121 88 179.34 2002 64 9 3 7 66 3 128 4 0 +10747 121 89 185.22 2002 64 7 3 7 66 3 126 3 30 +10748 121 90 191.1 2002 64 6 3 7 66 3 125 3 29 +10749 121 91 196.98 2002 64 8 3 7 66 3 127 3 31 +10750 121 92 202.86 2002 64 10 3 7 66 3 129 4 1 +10751 121 93 208.74 2002 68 9 3 7 67 3 128 4 0 +10752 121 94 214.62 2002 68 7 3 7 67 3 126 3 30 +10753 121 95 220.5 2002 68 6 3 7 67 3 125 3 29 +10754 121 96 226.38 2002 68 8 3 7 67 3 127 3 31 +10755 121 97 232.26 2002 68 10 3 7 67 3 129 4 1 +10756 121 98 238.14 2002 72 11 3 7 68 3 130 4 2 +10757 121 99 244.02 2002 72 9 3 7 68 3 128 4 0 +10758 121 100 249.9 2002 72 7 3 7 68 3 126 3 30 +10759 121 101 255.78 2002 72 6 3 7 68 3 125 3 29 +10760 121 102 261.66 2002 72 8 3 7 68 3 127 3 31 +10761 121 103 267.54 2002 72 10 3 7 68 3 129 4 1 +10762 121 104 273.42 2002 76 9 3 7 69 3 128 4 0 +10763 121 105 279.3 2002 76 7 3 7 69 3 126 3 30 +10764 121 106 285.18 2002 76 5 3 7 69 3 124 3 28 +10765 121 107 291.06 2002 76 6 3 7 69 3 125 3 29 +10766 121 108 296.94 2002 76 8 3 7 69 3 127 3 31 +10767 121 109 302.82 2002 76 10 3 7 69 3 129 4 1 +10768 121 110 308.7 2002 80 11 3 7 70 3 130 4 2 +10769 121 111 314.58 2002 80 9 3 7 70 3 128 4 0 +10770 121 112 320.46 2002 80 7 3 7 70 3 126 3 30 +10771 121 113 326.34 2002 80 8 3 7 70 3 127 3 31 +10772 121 114 332.22 2002 80 10 3 7 70 3 129 4 1 +10773 121 115 338.1 2002 80 12 3 7 70 3 131 4 3 +10774 122 0 -338.1 2014 4 17 3 7 51 3 136 4 8 +10775 122 1 -332.22 2014 4 15 3 7 51 3 134 4 6 +10776 122 2 -326.34 2014 4 13 3 7 51 3 132 4 4 +10777 122 3 -320.46 2014 4 14 3 7 51 3 133 4 5 +10778 122 4 -314.58 2014 4 16 3 7 51 3 135 4 7 +10779 122 5 -308.7 2014 4 18 3 7 51 3 137 4 9 +10780 122 6 -302.82 2014 8 15 3 7 52 3 134 4 6 +10781 122 7 -296.94 2014 8 13 3 7 52 3 132 4 4 +10782 122 8 -291.06 2014 8 11 3 7 52 3 130 4 2 +10783 122 9 -285.18 2014 8 12 3 7 52 3 131 4 3 +10784 122 10 -279.3 2014 8 14 3 7 52 3 133 4 5 +10785 122 11 -273.42 2014 8 16 3 7 52 3 135 4 7 +10786 122 12 -267.54 2014 12 15 3 7 53 3 134 4 6 +10787 122 13 -261.66 2014 12 13 3 7 53 3 132 4 4 +10788 122 14 -255.78 2014 12 11 3 7 53 3 130 4 2 +10789 122 15 -249.9 2014 12 14 3 7 53 3 133 4 5 +10790 122 16 -244.02 2014 12 16 3 7 53 3 135 4 7 +10791 122 17 -238.14 2014 16 15 3 7 54 3 134 4 6 +10792 122 18 -232.26 2014 16 13 3 7 54 3 132 4 4 +10793 122 19 -226.38 2014 16 11 3 7 54 3 130 4 2 +10794 122 20 -220.5 2014 16 12 3 7 54 3 131 4 3 +10795 122 21 -214.62 2014 16 14 3 7 54 3 133 4 5 +10796 122 22 -208.74 2014 16 16 3 7 54 3 135 4 7 +10797 122 23 -202.86 2014 20 15 3 7 55 3 134 4 6 +10798 122 24 -196.98 2014 20 13 3 7 55 3 132 4 4 +10799 122 25 -191.1 2014 20 11 3 7 55 3 130 4 2 +10800 122 26 -185.22 2014 20 14 3 7 55 3 133 4 5 +10801 122 27 -179.34 2014 20 16 3 7 55 3 135 4 7 +10802 122 28 -173.46 2014 20 18 3 7 55 3 137 4 9 +10803 122 29 -167.58 2014 24 17 3 7 56 3 136 4 8 +10804 122 30 -161.7 2014 24 15 3 7 56 3 134 4 6 +10805 122 31 -155.82 2014 24 13 3 7 56 3 132 4 4 +10806 122 32 -149.94 2014 24 12 3 7 56 3 131 4 3 +10807 122 33 -144.06 2014 24 14 3 7 56 3 133 4 5 +10808 122 34 -138.18 2014 24 16 3 7 56 3 135 4 7 +10809 122 35 -132.3 2014 28 17 3 7 57 3 136 4 8 +10810 122 36 -126.42 2014 28 15 3 7 57 3 134 4 6 +10811 122 37 -120.54 2014 28 13 3 7 57 3 132 4 4 +10812 122 38 -114.66 2014 28 12 3 7 57 3 131 4 3 +10813 122 39 -108.78 2014 28 14 3 7 57 3 133 4 5 +10814 122 40 -102.9 2014 28 16 3 7 57 3 135 4 7 +10815 122 41 -97.02 2014 32 15 3 7 58 3 134 4 6 +10816 122 42 -91.14 2014 32 13 3 7 58 3 132 4 4 +10817 122 43 -85.26 2014 32 11 3 7 58 3 130 4 2 +10818 122 44 -79.38 2014 32 14 3 7 58 3 133 4 5 +10819 122 45 -73.5 2014 32 16 3 7 58 3 135 4 7 +10820 122 46 -67.62 2014 36 15 3 7 59 3 134 4 6 +10821 122 47 -61.74 2014 36 13 3 7 59 3 132 4 4 +10822 122 48 -55.86 2014 36 11 3 7 59 3 130 4 2 +10823 122 49 -49.98 2014 36 12 3 7 59 3 131 4 3 +10824 122 50 -44.1 2014 36 14 3 7 59 3 133 4 5 +10825 122 51 -38.22 2014 36 16 3 7 59 3 135 4 7 +10826 122 52 -32.34 2014 40 15 3 7 60 3 134 4 6 +10827 122 53 -26.46 2014 40 13 3 7 60 3 132 4 4 +10828 122 54 -20.58 2014 40 11 3 7 60 3 130 4 2 +10829 122 55 -14.7 2014 40 12 3 7 60 3 131 4 3 +10830 122 56 -8.82 2014 40 14 3 7 60 3 133 4 5 +10831 122 57 -2.94 2014 40 16 3 7 60 3 135 4 7 +10832 122 58 2.94 2014 44 15 3 7 61 3 134 4 6 +10833 122 59 8.82 2014 44 13 3 7 61 3 132 4 4 +10834 122 60 14.7 2014 44 11 3 7 61 3 130 4 2 +10835 122 61 20.58 2014 44 12 3 7 61 3 131 4 3 +10836 122 62 26.46 2014 44 14 3 7 61 3 133 4 5 +10837 122 63 32.34 2014 44 16 3 7 61 3 135 4 7 +10838 122 64 38.22 2014 48 15 3 7 62 3 134 4 6 +10839 122 65 44.1 2014 48 13 3 7 62 3 132 4 4 +10840 122 66 49.98 2014 48 11 3 7 62 3 130 4 2 +10841 122 67 55.86 2014 48 12 3 7 62 3 131 4 3 +10842 122 68 61.74 2014 48 14 3 7 62 3 133 4 5 +10843 122 69 67.62 2014 48 16 3 7 62 3 135 4 7 +10844 122 70 73.5 2014 52 15 3 7 63 3 134 4 6 +10845 122 71 79.38 2014 52 13 3 7 63 3 132 4 4 +10846 122 72 85.26 2014 52 12 3 7 63 3 131 4 3 +10847 122 73 91.14 2014 52 14 3 7 63 3 133 4 5 +10848 122 74 97.02 2014 52 16 3 7 63 3 135 4 7 +10849 122 75 102.9 2014 56 15 3 7 64 3 134 4 6 +10850 122 76 108.78 2014 56 13 3 7 64 3 132 4 4 +10851 122 77 114.66 2014 56 11 3 7 64 3 130 4 2 +10852 122 78 120.54 2014 56 14 3 7 64 3 133 4 5 +10853 122 79 126.42 2014 56 16 3 7 64 3 135 4 7 +10854 122 80 132.3 2014 56 18 3 7 64 3 137 4 9 +10855 122 81 138.18 2014 60 15 3 7 65 3 134 4 6 +10856 122 82 144.06 2014 60 13 3 7 65 3 132 4 4 +10857 122 83 149.94 2014 60 11 3 7 65 3 130 4 2 +10858 122 84 155.82 2014 60 14 3 7 65 3 133 4 5 +10859 122 85 161.7 2014 60 16 3 7 65 3 135 4 7 +10860 122 86 167.58 2014 60 18 3 7 65 3 137 4 9 +10861 122 87 173.46 2014 64 17 3 7 66 3 136 4 8 +10862 122 88 179.34 2014 64 15 3 7 66 3 134 4 6 +10863 122 89 185.22 2014 64 13 3 7 66 3 132 4 4 +10864 122 90 191.1 2014 64 12 3 7 66 3 131 4 3 +10865 122 91 196.98 2014 64 14 3 7 66 3 133 4 5 +10866 122 92 202.86 2014 64 16 3 7 66 3 135 4 7 +10867 122 93 208.74 2014 68 15 3 7 67 3 134 4 6 +10868 122 94 214.62 2014 68 13 3 7 67 3 132 4 4 +10869 122 95 220.5 2014 68 11 3 7 67 3 130 4 2 +10870 122 96 226.38 2014 68 12 3 7 67 3 131 4 3 +10871 122 97 232.26 2014 68 14 3 7 67 3 133 4 5 +10872 122 98 238.14 2014 68 16 3 7 67 3 135 4 7 +10873 122 99 244.02 2014 72 15 3 7 68 3 134 4 6 +10874 122 100 249.9 2014 72 13 3 7 68 3 132 4 4 +10875 122 101 255.78 2014 72 12 3 7 68 3 131 4 3 +10876 122 102 261.66 2014 72 14 3 7 68 3 133 4 5 +10877 122 103 267.54 2014 72 16 3 7 68 3 135 4 7 +10878 122 104 273.42 2014 76 15 3 7 69 3 134 4 6 +10879 122 105 279.3 2014 76 13 3 7 69 3 132 4 4 +10880 122 106 285.18 2014 76 11 3 7 69 3 130 4 2 +10881 122 107 291.06 2014 76 12 3 7 69 3 131 4 3 +10882 122 108 296.94 2014 76 14 3 7 69 3 133 4 5 +10883 122 109 302.82 2014 76 16 3 7 69 3 135 4 7 +10884 122 110 308.7 2014 80 17 3 7 70 3 136 4 8 +10885 122 111 314.58 2014 80 15 3 7 70 3 134 4 6 +10886 122 112 320.46 2014 80 13 3 7 70 3 132 4 4 +10887 122 113 326.34 2014 80 14 3 7 70 3 133 4 5 +10888 122 114 332.22 2014 80 16 3 7 70 3 135 4 7 +10889 122 115 338.1 2014 80 18 3 7 70 3 137 4 9 +10890 123 0 -338.1 2026 4 23 3 7 51 3 142 4 14 +10891 123 1 -332.22 2026 4 21 3 7 51 3 140 4 12 +10892 123 2 -326.34 2026 4 19 3 7 51 3 138 4 10 +10893 123 3 -320.46 2026 4 20 3 7 51 3 139 4 11 +10894 123 4 -314.58 2026 4 22 3 7 51 3 141 4 13 +10895 123 5 -308.7 2026 8 21 3 7 52 3 140 4 12 +10896 123 6 -302.82 2026 8 19 3 7 52 3 138 4 10 +10897 123 7 -296.94 2026 8 17 3 7 52 3 136 4 8 +10898 123 8 -291.06 2026 8 18 3 7 52 3 137 4 9 +10899 123 9 -285.18 2026 8 20 3 7 52 3 139 4 11 +10900 123 10 -279.3 2026 8 22 3 7 52 3 141 4 13 +10901 123 11 -273.42 2026 12 21 3 7 53 3 140 4 12 +10902 123 12 -267.54 2026 12 19 3 7 53 3 138 4 10 +10903 123 13 -261.66 2026 12 17 3 7 53 3 136 4 8 +10904 123 14 -255.78 2026 12 18 3 7 53 3 137 4 9 +10905 123 15 -249.9 2026 12 20 3 7 53 3 139 4 11 +10906 123 16 -244.02 2026 12 22 3 7 53 3 141 4 13 +10907 123 17 -238.14 2026 16 21 3 7 54 3 140 4 12 +10908 123 18 -232.26 2026 16 19 3 7 54 3 138 4 10 +10909 123 19 -226.38 2026 16 17 3 7 54 3 136 4 8 +10910 123 20 -220.5 2026 16 18 3 7 54 3 137 4 9 +10911 123 21 -214.62 2026 16 20 3 7 54 3 139 4 11 +10912 123 22 -208.74 2026 16 22 3 7 54 3 141 4 13 +10913 123 23 -202.86 2026 20 21 3 7 55 3 140 4 12 +10914 123 24 -196.98 2026 20 19 3 7 55 3 138 4 10 +10915 123 25 -191.1 2026 20 17 3 7 55 3 136 4 8 +10916 123 26 -185.22 2026 20 20 3 7 55 3 139 4 11 +10917 123 27 -179.34 2026 20 22 3 7 55 3 141 4 13 +10918 123 28 -173.46 2026 20 24 3 7 55 3 143 4 15 +10919 123 29 -167.58 2026 24 23 3 7 56 3 142 4 14 +10920 123 30 -161.7 2026 24 21 3 7 56 3 140 4 12 +10921 123 31 -155.82 2026 24 19 3 7 56 3 138 4 10 +10922 123 32 -149.94 2026 24 18 3 7 56 3 137 4 9 +10923 123 33 -144.06 2026 24 20 3 7 56 3 139 4 11 +10924 123 34 -138.18 2026 24 22 3 7 56 3 141 4 13 +10925 123 35 -132.3 2026 28 21 3 7 57 3 140 4 12 +10926 123 36 -126.42 2026 28 19 3 7 57 3 138 4 10 +10927 123 37 -120.54 2026 28 18 3 7 57 3 137 4 9 +10928 123 38 -114.66 2026 28 20 3 7 57 3 139 4 11 +10929 123 39 -108.78 2026 28 22 3 7 57 3 141 4 13 +10930 123 40 -102.9 2026 32 21 3 7 58 3 140 4 12 +10931 123 41 -97.02 2026 32 19 3 7 58 3 138 4 10 +10932 123 42 -91.14 2026 32 17 3 7 58 3 136 4 8 +10933 123 43 -85.26 2026 32 18 3 7 58 3 137 4 9 +10934 123 44 -79.38 2026 32 20 3 7 58 3 139 4 11 +10935 123 45 -73.5 2026 32 22 3 7 58 3 141 4 13 +10936 123 46 -67.62 2026 36 21 3 7 59 3 140 4 12 +10937 123 47 -61.74 2026 36 19 3 7 59 3 138 4 10 +10938 123 48 -55.86 2026 36 17 3 7 59 3 136 4 8 +10939 123 49 -49.98 2026 36 18 3 7 59 3 137 4 9 +10940 123 50 -44.1 2026 36 20 3 7 59 3 139 4 11 +10941 123 51 -38.22 2026 36 22 3 7 59 3 141 4 13 +10942 123 52 -32.34 2026 40 21 3 7 60 3 140 4 12 +10943 123 53 -26.46 2026 40 19 3 7 60 3 138 4 10 +10944 123 54 -20.58 2026 40 17 3 7 60 3 136 4 8 +10945 123 55 -14.7 2026 40 18 3 7 60 3 137 4 9 +10946 123 56 -8.82 2026 40 20 3 7 60 3 139 4 11 +10947 123 57 -2.94 2026 40 22 3 7 60 3 141 4 13 +10948 123 58 2.94 2026 44 21 3 7 61 3 140 4 12 +10949 123 59 8.82 2026 44 19 3 7 61 3 138 4 10 +10950 123 60 14.7 2026 44 17 3 7 61 3 136 4 8 +10951 123 61 20.58 2026 44 18 3 7 61 3 137 4 9 +10952 123 62 26.46 2026 44 20 3 7 61 3 139 4 11 +10953 123 63 32.34 2026 44 22 3 7 61 3 141 4 13 +10954 123 64 38.22 2026 48 21 3 7 62 3 140 4 12 +10955 123 65 44.1 2026 48 19 3 7 62 3 138 4 10 +10956 123 66 49.98 2026 48 17 3 7 62 3 136 4 8 +10957 123 67 55.86 2026 48 18 3 7 62 3 137 4 9 +10958 123 68 61.74 2026 48 20 3 7 62 3 139 4 11 +10959 123 69 67.62 2026 48 22 3 7 62 3 141 4 13 +10960 123 70 73.5 2026 52 21 3 7 63 3 140 4 12 +10961 123 71 79.38 2026 52 19 3 7 63 3 138 4 10 +10962 123 72 85.26 2026 52 17 3 7 63 3 136 4 8 +10963 123 73 91.14 2026 52 18 3 7 63 3 137 4 9 +10964 123 74 97.02 2026 52 20 3 7 63 3 139 4 11 +10965 123 75 102.9 2026 52 22 3 7 63 3 141 4 13 +10966 123 76 108.78 2026 56 21 3 7 64 3 140 4 12 +10967 123 77 114.66 2026 56 19 3 7 64 3 138 4 10 +10968 123 78 120.54 2026 56 17 3 7 64 3 136 4 8 +10969 123 79 126.42 2026 56 20 3 7 64 3 139 4 11 +10970 123 80 132.3 2026 56 22 3 7 64 3 141 4 13 +10971 123 81 138.18 2026 60 21 3 7 65 3 140 4 12 +10972 123 82 144.06 2026 60 19 3 7 65 3 138 4 10 +10973 123 83 149.94 2026 60 17 3 7 65 3 136 4 8 +10974 123 84 155.82 2026 60 20 3 7 65 3 139 4 11 +10975 123 85 161.7 2026 60 22 3 7 65 3 141 4 13 +10976 123 86 167.58 2026 60 24 3 7 65 3 143 4 15 +10977 123 87 173.46 2026 64 23 3 7 66 3 142 4 14 +10978 123 88 179.34 2026 64 21 3 7 66 3 140 4 12 +10979 123 89 185.22 2026 64 19 3 7 66 3 138 4 10 +10980 123 90 191.1 2026 64 18 3 7 66 3 137 4 9 +10981 123 91 196.98 2026 64 20 3 7 66 3 139 4 11 +10982 123 92 202.86 2026 64 22 3 7 66 3 141 4 13 +10983 123 93 208.74 2026 68 21 3 7 67 3 140 4 12 +10984 123 94 214.62 2026 68 19 3 7 67 3 138 4 10 +10985 123 95 220.5 2026 68 17 3 7 67 3 136 4 8 +10986 123 96 226.38 2026 68 18 3 7 67 3 137 4 9 +10987 123 97 232.26 2026 68 20 3 7 67 3 139 4 11 +10988 123 98 238.14 2026 68 22 3 7 67 3 141 4 13 +10989 123 99 244.02 2026 72 21 3 7 68 3 140 4 12 +10990 123 100 249.9 2026 72 19 3 7 68 3 138 4 10 +10991 123 101 255.78 2026 72 17 3 7 68 3 136 4 8 +10992 123 102 261.66 2026 72 18 3 7 68 3 137 4 9 +10993 123 103 267.54 2026 72 20 3 7 68 3 139 4 11 +10994 123 104 273.42 2026 72 22 3 7 68 3 141 4 13 +10995 123 105 279.3 2026 76 21 3 7 69 3 140 4 12 +10996 123 106 285.18 2026 76 19 3 7 69 3 138 4 10 +10997 123 107 291.06 2026 76 17 3 7 69 3 136 4 8 +10998 123 108 296.94 2026 76 18 3 7 69 3 137 4 9 +10999 123 109 302.82 2026 76 20 3 7 69 3 139 4 11 +11000 123 110 308.7 2026 76 22 3 7 69 3 141 4 13 +11001 123 111 314.58 2026 80 21 3 7 70 3 140 4 12 +11002 123 112 320.46 2026 80 19 3 7 70 3 138 4 10 +11003 123 113 326.34 2026 80 20 3 7 70 3 139 4 11 +11004 123 114 332.22 2026 80 22 3 7 70 3 141 4 13 +11005 123 115 338.1 2026 80 24 3 7 70 3 143 4 15 +11006 124 0 -343.98 2038 4 29 3 7 51 3 148 4 20 +11007 124 1 -338.1 2038 4 27 3 7 51 3 146 4 18 +11008 124 2 -332.22 2038 4 25 3 7 51 3 144 4 16 +11009 124 3 -326.34 2038 4 24 3 7 51 3 143 4 15 +11010 124 4 -320.46 2038 4 26 3 7 51 3 145 4 17 +11011 124 5 -314.58 2038 4 28 3 7 51 3 147 4 19 +11012 124 6 -308.7 2038 8 27 3 7 52 3 146 4 18 +11013 124 7 -302.82 2038 8 25 3 7 52 3 144 4 16 +11014 124 8 -296.94 2038 8 23 3 7 52 3 142 4 14 +11015 124 9 -291.06 2038 8 24 3 7 52 3 143 4 15 +11016 124 10 -285.18 2038 8 26 3 7 52 3 145 4 17 +11017 124 11 -279.3 2038 8 28 3 7 52 3 147 4 19 +11018 124 12 -273.42 2038 12 27 3 7 53 3 146 4 18 +11019 124 13 -267.54 2038 12 25 3 7 53 3 144 4 16 +11020 124 14 -261.66 2038 12 23 3 7 53 3 142 4 14 +11021 124 15 -255.78 2038 12 24 3 7 53 3 143 4 15 +11022 124 16 -249.9 2038 12 26 3 7 53 3 145 4 17 +11023 124 17 -244.02 2038 12 28 3 7 53 3 147 4 19 +11024 124 18 -238.14 2038 16 27 3 7 54 3 146 4 18 +11025 124 19 -232.26 2038 16 25 3 7 54 3 144 4 16 +11026 124 20 -226.38 2038 16 23 3 7 54 3 142 4 14 +11027 124 21 -220.5 2038 16 24 3 7 54 3 143 4 15 +11028 124 22 -214.62 2038 16 26 3 7 54 3 145 4 17 +11029 124 23 -208.74 2038 16 28 3 7 54 3 147 4 19 +11030 124 24 -202.86 2038 20 27 3 7 55 3 146 4 18 +11031 124 25 -196.98 2038 20 25 3 7 55 3 144 4 16 +11032 124 26 -191.1 2038 20 23 3 7 55 3 142 4 14 +11033 124 27 -185.22 2038 20 26 3 7 55 3 145 4 17 +11034 124 28 -179.34 2038 20 28 3 7 55 3 147 4 19 +11035 124 29 -173.46 2038 20 30 3 7 55 3 149 4 21 +11036 124 30 -167.58 2038 24 27 3 7 56 3 146 4 18 +11037 124 31 -161.7 2038 24 25 3 7 56 3 144 4 16 +11038 124 32 -155.82 2038 24 24 3 7 56 3 143 4 15 +11039 124 33 -149.94 2038 24 26 3 7 56 3 145 4 17 +11040 124 34 -144.06 2038 24 28 3 7 56 3 147 4 19 +11041 124 35 -138.18 2038 28 27 3 7 57 3 146 4 18 +11042 124 36 -132.3 2038 28 25 3 7 57 3 144 4 16 +11043 124 37 -126.42 2038 28 23 3 7 57 3 142 4 14 +11044 124 38 -120.54 2038 28 24 3 7 57 3 143 4 15 +11045 124 39 -114.66 2038 28 26 3 7 57 3 145 4 17 +11046 124 40 -108.78 2038 28 28 3 7 57 3 147 4 19 +11047 124 41 -102.9 2038 32 27 3 7 58 3 146 4 18 +11048 124 42 -97.02 2038 32 25 3 7 58 3 144 4 16 +11049 124 43 -91.14 2038 32 23 3 7 58 3 142 4 14 +11050 124 44 -85.26 2038 32 24 3 7 58 3 143 4 15 +11051 124 45 -79.38 2038 32 26 3 7 58 3 145 4 17 +11052 124 46 -73.5 2038 32 28 3 7 58 3 147 4 19 +11053 124 47 -67.62 2038 36 27 3 7 59 3 146 4 18 +11054 124 48 -61.74 2038 36 25 3 7 59 3 144 4 16 +11055 124 49 -55.86 2038 36 23 3 7 59 3 142 4 14 +11056 124 50 -49.98 2038 36 24 3 7 59 3 143 4 15 +11057 124 51 -44.1 2038 36 26 3 7 59 3 145 4 17 +11058 124 52 -38.22 2038 36 28 3 7 59 3 147 4 19 +11059 124 53 -32.34 2038 40 27 3 7 60 3 146 4 18 +11060 124 54 -26.46 2038 40 25 3 7 60 3 144 4 16 +11061 124 55 -20.58 2038 40 23 3 7 60 3 142 4 14 +11062 124 56 -14.7 2038 40 24 3 7 60 3 143 4 15 +11063 124 57 -8.82 2038 40 26 3 7 60 3 145 4 17 +11064 124 58 -2.94 2038 40 28 3 7 60 3 147 4 19 +11065 124 59 2.94 2038 44 27 3 7 61 3 146 4 18 +11066 124 60 8.82 2038 44 25 3 7 61 3 144 4 16 +11067 124 61 14.7 2038 44 23 3 7 61 3 142 4 14 +11068 124 62 20.58 2038 44 24 3 7 61 3 143 4 15 +11069 124 63 26.46 2038 44 26 3 7 61 3 145 4 17 +11070 124 64 32.34 2038 44 28 3 7 61 3 147 4 19 +11071 124 65 38.22 2038 48 27 3 7 62 3 146 4 18 +11072 124 66 44.1 2038 48 25 3 7 62 3 144 4 16 +11073 124 67 49.98 2038 48 23 3 7 62 3 142 4 14 +11074 124 68 55.86 2038 48 24 3 7 62 3 143 4 15 +11075 124 69 61.74 2038 48 26 3 7 62 3 145 4 17 +11076 124 70 67.62 2038 48 28 3 7 62 3 147 4 19 +11077 124 71 73.5 2038 52 27 3 7 63 3 146 4 18 +11078 124 72 79.38 2038 52 25 3 7 63 3 144 4 16 +11079 124 73 85.26 2038 52 23 3 7 63 3 142 4 14 +11080 124 74 91.14 2038 52 24 3 7 63 3 143 4 15 +11081 124 75 97.02 2038 52 26 3 7 63 3 145 4 17 +11082 124 76 102.9 2038 52 28 3 7 63 3 147 4 19 +11083 124 77 108.78 2038 56 27 3 7 64 3 146 4 18 +11084 124 78 114.66 2038 56 25 3 7 64 3 144 4 16 +11085 124 79 120.54 2038 56 23 3 7 64 3 142 4 14 +11086 124 80 126.42 2038 56 24 3 7 64 3 143 4 15 +11087 124 81 132.3 2038 56 26 3 7 64 3 145 4 17 +11088 124 82 138.18 2038 56 28 3 7 64 3 147 4 19 +11089 124 83 144.06 2038 60 27 3 7 65 3 146 4 18 +11090 124 84 149.94 2038 60 25 3 7 65 3 144 4 16 +11091 124 85 155.82 2038 60 23 3 7 65 3 142 4 14 +11092 124 86 161.7 2038 60 26 3 7 65 3 145 4 17 +11093 124 87 167.58 2038 60 28 3 7 65 3 147 4 19 +11094 124 88 173.46 2038 64 29 3 7 66 3 148 4 20 +11095 124 89 179.34 2038 64 27 3 7 66 3 146 4 18 +11096 124 90 185.22 2038 64 25 3 7 66 3 144 4 16 +11097 124 91 191.1 2038 64 24 3 7 66 3 143 4 15 +11098 124 92 196.98 2038 64 26 3 7 66 3 145 4 17 +11099 124 93 202.86 2038 64 28 3 7 66 3 147 4 19 +11100 124 94 208.74 2038 68 27 3 7 67 3 146 4 18 +11101 124 95 214.62 2038 68 25 3 7 67 3 144 4 16 +11102 124 96 220.5 2038 68 23 3 7 67 3 142 4 14 +11103 124 97 226.38 2038 68 24 3 7 67 3 143 4 15 +11104 124 98 232.26 2038 68 26 3 7 67 3 145 4 17 +11105 124 99 238.14 2038 68 28 3 7 67 3 147 4 19 +11106 124 100 244.02 2038 72 27 3 7 68 3 146 4 18 +11107 124 101 249.9 2038 72 25 3 7 68 3 144 4 16 +11108 124 102 255.78 2038 72 23 3 7 68 3 142 4 14 +11109 124 103 261.66 2038 72 24 3 7 68 3 143 4 15 +11110 124 104 267.54 2038 72 26 3 7 68 3 145 4 17 +11111 124 105 273.42 2038 72 28 3 7 68 3 147 4 19 +11112 124 106 279.3 2038 76 27 3 7 69 3 146 4 18 +11113 124 107 285.18 2038 76 25 3 7 69 3 144 4 16 +11114 124 108 291.06 2038 76 23 3 7 69 3 142 4 14 +11115 124 109 296.94 2038 76 24 3 7 69 3 143 4 15 +11116 124 110 302.82 2038 76 26 3 7 69 3 145 4 17 +11117 124 111 308.7 2038 76 28 3 7 69 3 147 4 19 +11118 124 112 314.58 2038 80 27 3 7 70 3 146 4 18 +11119 124 113 320.46 2038 80 25 3 7 70 3 144 4 16 +11120 124 114 326.34 2038 80 23 3 7 70 3 142 4 14 +11121 124 115 332.22 2038 80 26 3 7 70 3 145 4 17 +11122 124 116 338.1 2038 80 28 3 7 70 3 147 4 19 +11123 124 117 343.98 2038 80 30 3 7 70 3 149 4 21 +11124 125 0 -343.98 2050 4 35 3 7 51 3 154 4 26 +11125 125 1 -338.1 2050 4 33 3 7 51 3 152 4 24 +11126 125 2 -332.22 2050 4 31 3 7 51 3 150 4 22 +11127 125 3 -326.34 2050 4 30 3 7 51 3 149 4 21 +11128 125 4 -320.46 2050 4 32 3 7 51 3 151 4 23 +11129 125 5 -314.58 2050 4 34 3 7 51 3 153 4 25 +11130 125 6 -308.7 2050 8 33 3 7 52 3 152 4 24 +11131 125 7 -302.82 2050 8 31 3 7 52 3 150 4 22 +11132 125 8 -296.94 2050 8 29 3 7 52 3 148 4 20 +11133 125 9 -291.06 2050 8 30 3 7 52 3 149 4 21 +11134 125 10 -285.18 2050 8 32 3 7 52 3 151 4 23 +11135 125 11 -279.3 2050 8 34 3 7 52 3 153 4 25 +11136 125 12 -273.42 2050 12 33 3 7 53 3 152 4 24 +11137 125 13 -267.54 2050 12 31 3 7 53 3 150 4 22 +11138 125 14 -261.66 2050 12 29 3 7 53 3 148 4 20 +11139 125 15 -255.78 2050 12 30 3 7 53 3 149 4 21 +11140 125 16 -249.9 2050 12 32 3 7 53 3 151 4 23 +11141 125 17 -244.02 2050 12 34 3 7 53 3 153 4 25 +11142 125 18 -238.14 2050 16 33 3 7 54 3 152 4 24 +11143 125 19 -232.26 2050 16 31 3 7 54 3 150 4 22 +11144 125 20 -226.38 2050 16 29 3 7 54 3 148 4 20 +11145 125 21 -220.5 2050 16 30 3 7 54 3 149 4 21 +11146 125 22 -214.62 2050 16 32 3 7 54 3 151 4 23 +11147 125 23 -208.74 2050 16 34 3 7 54 3 153 4 25 +11148 125 24 -202.86 2050 20 33 3 7 55 3 152 4 24 +11149 125 25 -196.98 2050 20 31 3 7 55 3 150 4 22 +11150 125 26 -191.1 2050 20 29 3 7 55 3 148 4 20 +11151 125 27 -185.22 2050 20 32 3 7 55 3 151 4 23 +11152 125 28 -179.34 2050 20 34 3 7 55 3 153 4 25 +11153 125 29 -173.46 2050 24 33 3 7 56 3 152 4 24 +11154 125 30 -167.58 2050 24 31 3 7 56 3 150 4 22 +11155 125 31 -161.7 2050 24 29 3 7 56 3 148 4 20 +11156 125 32 -155.82 2050 24 30 3 7 56 3 149 4 21 +11157 125 33 -149.94 2050 24 32 3 7 56 3 151 4 23 +11158 125 34 -144.06 2050 24 34 3 7 56 3 153 4 25 +11159 125 35 -138.18 2050 28 33 3 7 57 3 152 4 24 +11160 125 36 -132.3 2050 28 31 3 7 57 3 150 4 22 +11161 125 37 -126.42 2050 28 29 3 7 57 3 148 4 20 +11162 125 38 -120.54 2050 28 30 3 7 57 3 149 4 21 +11163 125 39 -114.66 2050 28 32 3 7 57 3 151 4 23 +11164 125 40 -108.78 2050 28 34 3 7 57 3 153 4 25 +11165 125 41 -102.9 2050 32 33 3 7 58 3 152 4 24 +11166 125 42 -97.02 2050 32 31 3 7 58 3 150 4 22 +11167 125 43 -91.14 2050 32 29 3 7 58 3 148 4 20 +11168 125 44 -85.26 2050 32 30 3 7 58 3 149 4 21 +11169 125 45 -79.38 2050 32 32 3 7 58 3 151 4 23 +11170 125 46 -73.5 2050 32 34 3 7 58 3 153 4 25 +11171 125 47 -67.62 2050 36 33 3 7 59 3 152 4 24 +11172 125 48 -61.74 2050 36 31 3 7 59 3 150 4 22 +11173 125 49 -55.86 2050 36 29 3 7 59 3 148 4 20 +11174 125 50 -49.98 2050 36 30 3 7 59 3 149 4 21 +11175 125 51 -44.1 2050 36 32 3 7 59 3 151 4 23 +11176 125 52 -38.22 2050 36 34 3 7 59 3 153 4 25 +11177 125 53 -32.34 2050 40 33 3 7 60 3 152 4 24 +11178 125 54 -26.46 2050 40 31 3 7 60 3 150 4 22 +11179 125 55 -20.58 2050 40 29 3 7 60 3 148 4 20 +11180 125 56 -14.7 2050 40 30 3 7 60 3 149 4 21 +11181 125 57 -8.82 2050 40 32 3 7 60 3 151 4 23 +11182 125 58 -2.94 2050 40 34 3 7 60 3 153 4 25 +11183 125 59 2.94 2050 44 33 3 7 61 3 152 4 24 +11184 125 60 8.82 2050 44 31 3 7 61 3 150 4 22 +11185 125 61 14.7 2050 44 29 3 7 61 3 148 4 20 +11186 125 62 20.58 2050 44 30 3 7 61 3 149 4 21 +11187 125 63 26.46 2050 44 32 3 7 61 3 151 4 23 +11188 125 64 32.34 2050 44 34 3 7 61 3 153 4 25 +11189 125 65 38.22 2050 48 33 3 7 62 3 152 4 24 +11190 125 66 44.1 2050 48 31 3 7 62 3 150 4 22 +11191 125 67 49.98 2050 48 29 3 7 62 3 148 4 20 +11192 125 68 55.86 2050 48 30 3 7 62 3 149 4 21 +11193 125 69 61.74 2050 48 32 3 7 62 3 151 4 23 +11194 125 70 67.62 2050 48 34 3 7 62 3 153 4 25 +11195 125 71 73.5 2050 52 33 3 7 63 3 152 4 24 +11196 125 72 79.38 2050 52 31 3 7 63 3 150 4 22 +11197 125 73 85.26 2050 52 29 3 7 63 3 148 4 20 +11198 125 74 91.14 2050 52 30 3 7 63 3 149 4 21 +11199 125 75 97.02 2050 52 32 3 7 63 3 151 4 23 +11200 125 76 102.9 2050 52 34 3 7 63 3 153 4 25 +11201 125 77 108.78 2050 56 33 3 7 64 3 152 4 24 +11202 125 78 114.66 2050 56 31 3 7 64 3 150 4 22 +11203 125 79 120.54 2050 56 29 3 7 64 3 148 4 20 +11204 125 80 126.42 2050 56 30 3 7 64 3 149 4 21 +11205 125 81 132.3 2050 56 32 3 7 64 3 151 4 23 +11206 125 82 138.18 2050 56 34 3 7 64 3 153 4 25 +11207 125 83 144.06 2050 60 33 3 7 65 3 152 4 24 +11208 125 84 149.94 2050 60 31 3 7 65 3 150 4 22 +11209 125 85 155.82 2050 60 29 3 7 65 3 148 4 20 +11210 125 86 161.7 2050 60 30 3 7 65 3 149 4 21 +11211 125 87 167.58 2050 60 32 3 7 65 3 151 4 23 +11212 125 88 173.46 2050 60 34 3 7 65 3 153 4 25 +11213 125 89 179.34 2050 64 33 3 7 66 3 152 4 24 +11214 125 90 185.22 2050 64 31 3 7 66 3 150 4 22 +11215 125 91 191.1 2050 64 30 3 7 66 3 149 4 21 +11216 125 92 196.98 2050 64 32 3 7 66 3 151 4 23 +11217 125 93 202.86 2050 64 34 3 7 66 3 153 4 25 +11218 125 94 208.74 2050 68 33 3 7 67 3 152 4 24 +11219 125 95 214.62 2050 68 31 3 7 67 3 150 4 22 +11220 125 96 220.5 2050 68 29 3 7 67 3 148 4 20 +11221 125 97 226.38 2050 68 30 3 7 67 3 149 4 21 +11222 125 98 232.26 2050 68 32 3 7 67 3 151 4 23 +11223 125 99 238.14 2050 68 34 3 7 67 3 153 4 25 +11224 125 100 244.02 2050 72 33 3 7 68 3 152 4 24 +11225 125 101 249.9 2050 72 31 3 7 68 3 150 4 22 +11226 125 102 255.78 2050 72 29 3 7 68 3 148 4 20 +11227 125 103 261.66 2050 72 30 3 7 68 3 149 4 21 +11228 125 104 267.54 2050 72 32 3 7 68 3 151 4 23 +11229 125 105 273.42 2050 72 34 3 7 68 3 153 4 25 +11230 125 106 279.3 2050 76 33 3 7 69 3 152 4 24 +11231 125 107 285.18 2050 76 31 3 7 69 3 150 4 22 +11232 125 108 291.06 2050 76 29 3 7 69 3 148 4 20 +11233 125 109 296.94 2050 76 30 3 7 69 3 149 4 21 +11234 125 110 302.82 2050 76 32 3 7 69 3 151 4 23 +11235 125 111 308.7 2050 76 34 3 7 69 3 153 4 25 +11236 125 112 314.58 2050 80 33 3 7 70 3 152 4 24 +11237 125 113 320.46 2050 80 31 3 7 70 3 150 4 22 +11238 125 114 326.34 2050 80 29 3 7 70 3 148 4 20 +11239 125 115 332.22 2050 80 32 3 7 70 3 151 4 23 +11240 125 116 338.1 2050 80 34 3 7 70 3 153 4 25 +11241 125 117 343.98 2050 80 36 3 7 70 3 155 4 27 +11242 126 0 -343.98 2062 4 39 3 7 51 3 158 4 30 +11243 126 1 -338.1 2062 4 37 3 7 51 3 156 4 28 +11244 126 2 -332.22 2062 4 36 3 7 51 3 155 4 27 +11245 126 3 -326.34 2062 4 38 3 7 51 3 157 4 29 +11246 126 4 -320.46 2062 4 40 3 7 51 3 159 4 31 +11247 126 5 -314.58 2062 8 39 3 7 52 3 158 4 30 +11248 126 6 -308.7 2062 8 37 3 7 52 3 156 4 28 +11249 126 7 -302.82 2062 8 35 3 7 52 3 154 4 26 +11250 126 8 -296.94 2062 8 36 3 7 52 3 155 4 27 +11251 126 9 -291.06 2062 8 38 3 7 52 3 157 4 29 +11252 126 10 -285.18 2062 8 40 3 7 52 3 159 4 31 +11253 126 11 -279.3 2062 12 39 3 7 53 3 158 4 30 +11254 126 12 -273.42 2062 12 37 3 7 53 3 156 4 28 +11255 126 13 -267.54 2062 12 35 3 7 53 3 154 4 26 +11256 126 14 -261.66 2062 12 36 3 7 53 3 155 4 27 +11257 126 15 -255.78 2062 12 38 3 7 53 3 157 4 29 +11258 126 16 -249.9 2062 12 40 3 7 53 3 159 4 31 +11259 126 17 -244.02 2062 16 39 3 7 54 3 158 4 30 +11260 126 18 -238.14 2062 16 37 3 7 54 3 156 4 28 +11261 126 19 -232.26 2062 16 35 3 7 54 3 154 4 26 +11262 126 20 -226.38 2062 16 36 3 7 54 3 155 4 27 +11263 126 21 -220.5 2062 16 38 3 7 54 3 157 4 29 +11264 126 22 -214.62 2062 16 40 3 7 54 3 159 4 31 +11265 126 23 -208.74 2062 20 39 3 7 55 3 158 4 30 +11266 126 24 -202.86 2062 20 37 3 7 55 3 156 4 28 +11267 126 25 -196.98 2062 20 35 3 7 55 3 154 4 26 +11268 126 26 -191.1 2062 20 36 3 7 55 3 155 4 27 +11269 126 27 -185.22 2062 20 38 3 7 55 3 157 4 29 +11270 126 28 -179.34 2062 20 40 3 7 55 3 159 4 31 +11271 126 29 -173.46 2062 24 39 3 7 56 3 158 4 30 +11272 126 30 -167.58 2062 24 37 3 7 56 3 156 4 28 +11273 126 31 -161.7 2062 24 35 3 7 56 3 154 4 26 +11274 126 32 -155.82 2062 24 36 3 7 56 3 155 4 27 +11275 126 33 -149.94 2062 24 38 3 7 56 3 157 4 29 +11276 126 34 -144.06 2062 24 40 3 7 56 3 159 4 31 +11277 126 35 -138.18 2062 28 39 3 7 57 3 158 4 30 +11278 126 36 -132.3 2062 28 37 3 7 57 3 156 4 28 +11279 126 37 -126.42 2062 28 35 3 7 57 3 154 4 26 +11280 126 38 -120.54 2062 28 36 3 7 57 3 155 4 27 +11281 126 39 -114.66 2062 28 38 3 7 57 3 157 4 29 +11282 126 40 -108.78 2062 28 40 3 7 57 3 159 4 31 +11283 126 41 -102.9 2062 32 39 3 7 58 3 158 4 30 +11284 126 42 -97.02 2062 32 37 3 7 58 3 156 4 28 +11285 126 43 -91.14 2062 32 35 3 7 58 3 154 4 26 +11286 126 44 -85.26 2062 32 36 3 7 58 3 155 4 27 +11287 126 45 -79.38 2062 32 38 3 7 58 3 157 4 29 +11288 126 46 -73.5 2062 32 40 3 7 58 3 159 4 31 +11289 126 47 -67.62 2062 36 39 3 7 59 3 158 4 30 +11290 126 48 -61.74 2062 36 37 3 7 59 3 156 4 28 +11291 126 49 -55.86 2062 36 35 3 7 59 3 154 4 26 +11292 126 50 -49.98 2062 36 36 3 7 59 3 155 4 27 +11293 126 51 -44.1 2062 36 38 3 7 59 3 157 4 29 +11294 126 52 -38.22 2062 36 40 3 7 59 3 159 4 31 +11295 126 53 -32.34 2062 40 39 3 7 60 3 158 4 30 +11296 126 54 -26.46 2062 40 37 3 7 60 3 156 4 28 +11297 126 55 -20.58 2062 40 35 3 7 60 3 154 4 26 +11298 126 56 -14.7 2062 40 36 3 7 60 3 155 4 27 +11299 126 57 -8.82 2062 40 38 3 7 60 3 157 4 29 +11300 126 58 -2.94 2062 40 40 3 7 60 3 159 4 31 +11301 126 59 2.94 2062 44 39 3 7 61 3 158 4 30 +11302 126 60 8.82 2062 44 37 3 7 61 3 156 4 28 +11303 126 61 14.7 2062 44 35 3 7 61 3 154 4 26 +11304 126 62 20.58 2062 44 36 3 7 61 3 155 4 27 +11305 126 63 26.46 2062 44 38 3 7 61 3 157 4 29 +11306 126 64 32.34 2062 44 40 3 7 61 3 159 4 31 +11307 126 65 38.22 2062 48 39 3 7 62 3 158 4 30 +11308 126 66 44.1 2062 48 37 3 7 62 3 156 4 28 +11309 126 67 49.98 2062 48 35 3 7 62 3 154 4 26 +11310 126 68 55.86 2062 48 36 3 7 62 3 155 4 27 +11311 126 69 61.74 2062 48 38 3 7 62 3 157 4 29 +11312 126 70 67.62 2062 48 40 3 7 62 3 159 4 31 +11313 126 71 73.5 2062 52 39 3 7 63 3 158 4 30 +11314 126 72 79.38 2062 52 37 3 7 63 3 156 4 28 +11315 126 73 85.26 2062 52 35 3 7 63 3 154 4 26 +11316 126 74 91.14 2062 52 36 3 7 63 3 155 4 27 +11317 126 75 97.02 2062 52 38 3 7 63 3 157 4 29 +11318 126 76 102.9 2062 52 40 3 7 63 3 159 4 31 +11319 126 77 108.78 2062 56 39 3 7 64 3 158 4 30 +11320 126 78 114.66 2062 56 37 3 7 64 3 156 4 28 +11321 126 79 120.54 2062 56 35 3 7 64 3 154 4 26 +11322 126 80 126.42 2062 56 36 3 7 64 3 155 4 27 +11323 126 81 132.3 2062 56 38 3 7 64 3 157 4 29 +11324 126 82 138.18 2062 56 40 3 7 64 3 159 4 31 +11325 126 83 144.06 2062 60 39 3 7 65 3 158 4 30 +11326 126 84 149.94 2062 60 37 3 7 65 3 156 4 28 +11327 126 85 155.82 2062 60 35 3 7 65 3 154 4 26 +11328 126 86 161.7 2062 60 36 3 7 65 3 155 4 27 +11329 126 87 167.58 2062 60 38 3 7 65 3 157 4 29 +11330 126 88 173.46 2062 60 40 3 7 65 3 159 4 31 +11331 126 89 179.34 2062 64 39 3 7 66 3 158 4 30 +11332 126 90 185.22 2062 64 37 3 7 66 3 156 4 28 +11333 126 91 191.1 2062 64 35 3 7 66 3 154 4 26 +11334 126 92 196.98 2062 64 36 3 7 66 3 155 4 27 +11335 126 93 202.86 2062 64 38 3 7 66 3 157 4 29 +11336 126 94 208.74 2062 64 40 3 7 66 3 159 4 31 +11337 126 95 214.62 2062 68 39 3 7 67 3 158 4 30 +11338 126 96 220.5 2062 68 37 3 7 67 3 156 4 28 +11339 126 97 226.38 2062 68 35 3 7 67 3 154 4 26 +11340 126 98 232.26 2062 68 36 3 7 67 3 155 4 27 +11341 126 99 238.14 2062 68 38 3 7 67 3 157 4 29 +11342 126 100 244.02 2062 68 40 3 7 67 3 159 4 31 +11343 126 101 249.9 2062 72 39 3 7 68 3 158 4 30 +11344 126 102 255.78 2062 72 37 3 7 68 3 156 4 28 +11345 126 103 261.66 2062 72 35 3 7 68 3 154 4 26 +11346 126 104 267.54 2062 72 36 3 7 68 3 155 4 27 +11347 126 105 273.42 2062 72 38 3 7 68 3 157 4 29 +11348 126 106 279.3 2062 72 40 3 7 68 3 159 4 31 +11349 126 107 285.18 2062 76 39 3 7 69 3 158 4 30 +11350 126 108 291.06 2062 76 37 3 7 69 3 156 4 28 +11351 126 109 296.94 2062 76 35 3 7 69 3 154 4 26 +11352 126 110 302.82 2062 76 36 3 7 69 3 155 4 27 +11353 126 111 308.7 2062 76 38 3 7 69 3 157 4 29 +11354 126 112 314.58 2062 76 40 3 7 69 3 159 4 31 +11355 126 113 320.46 2062 80 39 3 7 70 3 158 4 30 +11356 126 114 326.34 2062 80 37 3 7 70 3 156 4 28 +11357 126 115 332.22 2062 80 35 3 7 70 3 154 4 26 +11358 126 116 338.1 2062 80 38 3 7 70 3 157 4 29 +11359 126 117 343.98 2062 80 40 3 7 70 3 159 4 31 diff --git a/Detectors/TPC/base/files/TABLE-OROC3.txt b/Detectors/TPC/base/files/TABLE-OROC3.txt index a541c91e2666c..5f9e107d34dec 100644 --- a/Detectors/TPC/base/files/TABLE-OROC3.txt +++ b/Detectors/TPC/base/files/TABLE-OROC3.txt @@ -1,3200 +1,3200 @@ -11360 127 0 -353.34 2096.5 1 5 4 8 71 0 4 0 4 -11361 127 1 -347.3 2096.5 1 3 4 8 71 0 2 0 2 -11362 127 2 -341.26 2096.5 1 1 4 8 71 0 0 0 0 -11363 127 3 -335.22 2096.5 1 2 4 8 71 0 1 0 1 -11364 127 4 -329.18 2096.5 1 4 4 8 71 0 3 0 3 -11365 127 5 -323.14 2096.5 1 6 4 8 71 0 5 0 5 -11366 127 6 -317.1 2096.5 5 5 4 8 72 0 4 0 4 -11367 127 7 -311.06 2096.5 5 3 4 8 72 0 2 0 2 -11368 127 8 -305.02 2096.5 5 1 4 8 72 0 0 0 0 -11369 127 9 -298.98 2096.5 5 2 4 8 72 0 1 0 1 -11370 127 10 -292.94 2096.5 5 4 4 8 72 0 3 0 3 -11371 127 11 -286.9 2096.5 5 6 4 8 72 0 5 0 5 -11372 127 12 -280.86 2096.5 9 5 4 8 73 0 4 0 4 -11373 127 13 -274.82 2096.5 9 3 4 8 73 0 2 0 2 -11374 127 14 -268.78 2096.5 9 1 4 8 73 0 0 0 0 -11375 127 15 -262.74 2096.5 9 2 4 8 73 0 1 0 1 -11376 127 16 -256.7 2096.5 9 4 4 8 73 0 3 0 3 -11377 127 17 -250.66 2096.5 9 6 4 8 73 0 5 0 5 -11378 127 18 -244.62 2096.5 13 5 4 8 74 0 4 0 4 -11379 127 19 -238.58 2096.5 13 3 4 8 74 0 2 0 2 -11380 127 20 -232.54 2096.5 13 1 4 8 74 0 0 0 0 -11381 127 21 -226.5 2096.5 13 2 4 8 74 0 1 0 1 -11382 127 22 -220.46 2096.5 13 4 4 8 74 0 3 0 3 -11383 127 23 -214.42 2096.5 13 6 4 8 74 0 5 0 5 -11384 127 24 -208.38 2096.5 17 5 4 8 75 0 4 0 4 -11385 127 25 -202.34 2096.5 17 3 4 8 75 0 2 0 2 -11386 127 26 -196.3 2096.5 17 1 4 8 75 0 0 0 0 -11387 127 27 -190.26 2096.5 17 2 4 8 75 0 1 0 1 -11388 127 28 -184.22 2096.5 17 4 4 8 75 0 3 0 3 -11389 127 29 -178.18 2096.5 17 6 4 8 75 0 5 0 5 -11390 127 30 -172.14 2096.5 21 5 4 8 76 0 4 0 4 -11391 127 31 -166.1 2096.5 21 3 4 8 76 0 2 0 2 -11392 127 32 -160.06 2096.5 21 1 4 8 76 0 0 0 0 -11393 127 33 -154.02 2096.5 21 2 4 8 76 0 1 0 1 -11394 127 34 -147.98 2096.5 21 4 4 8 76 0 3 0 3 -11395 127 35 -141.94 2096.5 25 5 4 8 77 0 4 0 4 -11396 127 36 -135.9 2096.5 25 3 4 8 77 0 2 0 2 -11397 127 37 -129.86 2096.5 25 1 4 8 77 0 0 0 0 -11398 127 38 -123.82 2096.5 25 2 4 8 77 0 1 0 1 -11399 127 39 -117.78 2096.5 25 4 4 8 77 0 3 0 3 -11400 127 40 -111.74 2096.5 25 6 4 8 77 0 5 0 5 -11401 127 41 -105.7 2096.5 29 5 4 8 78 0 4 0 4 -11402 127 42 -99.66 2096.5 29 3 4 8 78 0 2 0 2 -11403 127 43 -93.62 2096.5 29 1 4 8 78 0 0 0 0 -11404 127 44 -87.58 2096.5 29 2 4 8 78 0 1 0 1 -11405 127 45 -81.54 2096.5 29 4 4 8 78 0 3 0 3 -11406 127 46 -75.5 2096.5 29 6 4 8 78 0 5 0 5 -11407 127 47 -69.46 2096.5 33 5 4 8 79 0 4 0 4 -11408 127 48 -63.42 2096.5 33 3 4 8 79 0 2 0 2 -11409 127 49 -57.38 2096.5 33 1 4 8 79 0 0 0 0 -11410 127 50 -51.34 2096.5 33 2 4 8 79 0 1 0 1 -11411 127 51 -45.3 2096.5 33 4 4 8 79 0 3 0 3 -11412 127 52 -39.26 2096.5 33 6 4 8 79 0 5 0 5 -11413 127 53 -33.22 2096.5 37 5 4 8 80 0 4 0 4 -11414 127 54 -27.18 2096.5 37 3 4 8 80 0 2 0 2 -11415 127 55 -21.14 2096.5 37 1 4 8 80 0 0 0 0 -11416 127 56 -15.1 2096.5 37 2 4 8 80 0 1 0 1 -11417 127 57 -9.06 2096.5 37 4 4 8 80 0 3 0 3 -11418 127 58 -3.02 2096.5 37 6 4 8 80 0 5 0 5 -11419 127 59 3.02 2096.5 41 5 4 8 81 0 4 0 4 -11420 127 60 9.06 2096.5 41 3 4 8 81 0 2 0 2 -11421 127 61 15.1 2096.5 41 1 4 8 81 0 0 0 0 -11422 127 62 21.14 2096.5 41 2 4 8 81 0 1 0 1 -11423 127 63 27.18 2096.5 41 4 4 8 81 0 3 0 3 -11424 127 64 33.22 2096.5 41 6 4 8 81 0 5 0 5 -11425 127 65 39.26 2096.5 45 5 4 8 82 0 4 0 4 -11426 127 66 45.3 2096.5 45 3 4 8 82 0 2 0 2 -11427 127 67 51.34 2096.5 45 1 4 8 82 0 0 0 0 -11428 127 68 57.38 2096.5 45 2 4 8 82 0 1 0 1 -11429 127 69 63.42 2096.5 45 4 4 8 82 0 3 0 3 -11430 127 70 69.46 2096.5 45 6 4 8 82 0 5 0 5 -11431 127 71 75.5 2096.5 49 5 4 8 83 0 4 0 4 -11432 127 72 81.54 2096.5 49 3 4 8 83 0 2 0 2 -11433 127 73 87.58 2096.5 49 1 4 8 83 0 0 0 0 -11434 127 74 93.62 2096.5 49 2 4 8 83 0 1 0 1 -11435 127 75 99.66 2096.5 49 4 4 8 83 0 3 0 3 -11436 127 76 105.7 2096.5 49 6 4 8 83 0 5 0 5 -11437 127 77 111.74 2096.5 53 5 4 8 84 0 4 0 4 -11438 127 78 117.78 2096.5 53 3 4 8 84 0 2 0 2 -11439 127 79 123.82 2096.5 53 1 4 8 84 0 0 0 0 -11440 127 80 129.86 2096.5 53 2 4 8 84 0 1 0 1 -11441 127 81 135.9 2096.5 53 4 4 8 84 0 3 0 3 -11442 127 82 141.94 2096.5 53 6 4 8 84 0 5 0 5 -11443 127 83 147.98 2096.5 57 3 4 8 85 0 2 0 2 -11444 127 84 154.02 2096.5 57 1 4 8 85 0 0 0 0 -11445 127 85 160.06 2096.5 57 2 4 8 85 0 1 0 1 -11446 127 86 166.1 2096.5 57 4 4 8 85 0 3 0 3 -11447 127 87 172.14 2096.5 57 6 4 8 85 0 5 0 5 -11448 127 88 178.18 2096.5 61 5 4 8 86 0 4 0 4 -11449 127 89 184.22 2096.5 61 3 4 8 86 0 2 0 2 -11450 127 90 190.26 2096.5 61 1 4 8 86 0 0 0 0 -11451 127 91 196.3 2096.5 61 2 4 8 86 0 1 0 1 -11452 127 92 202.34 2096.5 61 4 4 8 86 0 3 0 3 -11453 127 93 208.38 2096.5 61 6 4 8 86 0 5 0 5 -11454 127 94 214.42 2096.5 65 5 4 8 87 0 4 0 4 -11455 127 95 220.46 2096.5 65 3 4 8 87 0 2 0 2 -11456 127 96 226.5 2096.5 65 1 4 8 87 0 0 0 0 -11457 127 97 232.54 2096.5 65 2 4 8 87 0 1 0 1 -11458 127 98 238.58 2096.5 65 4 4 8 87 0 3 0 3 -11459 127 99 244.62 2096.5 65 6 4 8 87 0 5 0 5 -11460 127 100 250.66 2096.5 69 5 4 8 88 0 4 0 4 -11461 127 101 256.7 2096.5 69 3 4 8 88 0 2 0 2 -11462 127 102 262.74 2096.5 69 1 4 8 88 0 0 0 0 -11463 127 103 268.78 2096.5 69 2 4 8 88 0 1 0 1 -11464 127 104 274.82 2096.5 69 4 4 8 88 0 3 0 3 -11465 127 105 280.86 2096.5 69 6 4 8 88 0 5 0 5 -11466 127 106 286.9 2096.5 73 5 4 8 89 0 4 0 4 -11467 127 107 292.94 2096.5 73 3 4 8 89 0 2 0 2 -11468 127 108 298.98 2096.5 73 1 4 8 89 0 0 0 0 -11469 127 109 305.02 2096.5 73 2 4 8 89 0 1 0 1 -11470 127 110 311.06 2096.5 73 4 4 8 89 0 3 0 3 -11471 127 111 317.1 2096.5 73 6 4 8 89 0 5 0 5 -11472 127 112 323.14 2096.5 77 5 4 8 90 0 4 0 4 -11473 127 113 329.18 2096.5 77 3 4 8 90 0 2 0 2 -11474 127 114 335.22 2096.5 77 1 4 8 90 0 0 0 0 -11475 127 115 341.26 2096.5 77 2 4 8 90 0 1 0 1 -11476 127 116 347.3 2096.5 77 4 4 8 90 0 3 0 3 -11477 127 117 353.34 2096.5 77 6 4 8 90 0 5 0 5 -11478 128 0 -353.34 2111.5 1 11 4 8 71 0 10 0 10 -11479 128 1 -347.3 2111.5 1 9 4 8 71 0 8 0 8 -11480 128 2 -341.26 2111.5 1 7 4 8 71 0 6 0 6 -11481 128 3 -335.22 2111.5 1 8 4 8 71 0 7 0 7 -11482 128 4 -329.18 2111.5 1 10 4 8 71 0 9 0 9 -11483 128 5 -323.14 2111.5 1 12 4 8 71 0 11 0 11 -11484 128 6 -317.1 2111.5 5 11 4 8 72 0 10 0 10 -11485 128 7 -311.06 2111.5 5 9 4 8 72 0 8 0 8 -11486 128 8 -305.02 2111.5 5 7 4 8 72 0 6 0 6 -11487 128 9 -298.98 2111.5 5 8 4 8 72 0 7 0 7 -11488 128 10 -292.94 2111.5 5 10 4 8 72 0 9 0 9 -11489 128 11 -286.9 2111.5 5 12 4 8 72 0 11 0 11 -11490 128 12 -280.86 2111.5 9 11 4 8 73 0 10 0 10 -11491 128 13 -274.82 2111.5 9 9 4 8 73 0 8 0 8 -11492 128 14 -268.78 2111.5 9 7 4 8 73 0 6 0 6 -11493 128 15 -262.74 2111.5 9 8 4 8 73 0 7 0 7 -11494 128 16 -256.7 2111.5 9 10 4 8 73 0 9 0 9 -11495 128 17 -250.66 2111.5 13 11 4 8 74 0 10 0 10 -11496 128 18 -244.62 2111.5 13 9 4 8 74 0 8 0 8 -11497 128 19 -238.58 2111.5 13 7 4 8 74 0 6 0 6 -11498 128 20 -232.54 2111.5 13 8 4 8 74 0 7 0 7 -11499 128 21 -226.5 2111.5 13 10 4 8 74 0 9 0 9 -11500 128 22 -220.46 2111.5 13 12 4 8 74 0 11 0 11 -11501 128 23 -214.42 2111.5 17 11 4 8 75 0 10 0 10 -11502 128 24 -208.38 2111.5 17 9 4 8 75 0 8 0 8 -11503 128 25 -202.34 2111.5 17 7 4 8 75 0 6 0 6 -11504 128 26 -196.3 2111.5 17 8 4 8 75 0 7 0 7 -11505 128 27 -190.26 2111.5 17 10 4 8 75 0 9 0 9 -11506 128 28 -184.22 2111.5 17 12 4 8 75 0 11 0 11 -11507 128 29 -178.18 2111.5 21 11 4 8 76 0 10 0 10 -11508 128 30 -172.14 2111.5 21 9 4 8 76 0 8 0 8 -11509 128 31 -166.1 2111.5 21 7 4 8 76 0 6 0 6 -11510 128 32 -160.06 2111.5 21 6 4 8 76 0 5 0 5 -11511 128 33 -154.02 2111.5 21 8 4 8 76 0 7 0 7 -11512 128 34 -147.98 2111.5 21 10 4 8 76 0 9 0 9 -11513 128 35 -141.94 2111.5 25 11 4 8 77 0 10 0 10 -11514 128 36 -135.9 2111.5 25 9 4 8 77 0 8 0 8 -11515 128 37 -129.86 2111.5 25 7 4 8 77 0 6 0 6 -11516 128 38 -123.82 2111.5 25 8 4 8 77 0 7 0 7 -11517 128 39 -117.78 2111.5 25 10 4 8 77 0 9 0 9 -11518 128 40 -111.74 2111.5 25 12 4 8 77 0 11 0 11 -11519 128 41 -105.7 2111.5 29 11 4 8 78 0 10 0 10 -11520 128 42 -99.66 2111.5 29 9 4 8 78 0 8 0 8 -11521 128 43 -93.62 2111.5 29 7 4 8 78 0 6 0 6 -11522 128 44 -87.58 2111.5 29 8 4 8 78 0 7 0 7 -11523 128 45 -81.54 2111.5 29 10 4 8 78 0 9 0 9 -11524 128 46 -75.5 2111.5 29 12 4 8 78 0 11 0 11 -11525 128 47 -69.46 2111.5 33 11 4 8 79 0 10 0 10 -11526 128 48 -63.42 2111.5 33 9 4 8 79 0 8 0 8 -11527 128 49 -57.38 2111.5 33 7 4 8 79 0 6 0 6 -11528 128 50 -51.34 2111.5 33 8 4 8 79 0 7 0 7 -11529 128 51 -45.3 2111.5 33 10 4 8 79 0 9 0 9 -11530 128 52 -39.26 2111.5 33 12 4 8 79 0 11 0 11 -11531 128 53 -33.22 2111.5 37 11 4 8 80 0 10 0 10 -11532 128 54 -27.18 2111.5 37 9 4 8 80 0 8 0 8 -11533 128 55 -21.14 2111.5 37 7 4 8 80 0 6 0 6 -11534 128 56 -15.1 2111.5 37 8 4 8 80 0 7 0 7 -11535 128 57 -9.06 2111.5 37 10 4 8 80 0 9 0 9 -11536 128 58 -3.02 2111.5 37 12 4 8 80 0 11 0 11 -11537 128 59 3.02 2111.5 41 11 4 8 81 0 10 0 10 -11538 128 60 9.06 2111.5 41 9 4 8 81 0 8 0 8 -11539 128 61 15.1 2111.5 41 7 4 8 81 0 6 0 6 -11540 128 62 21.14 2111.5 41 8 4 8 81 0 7 0 7 -11541 128 63 27.18 2111.5 41 10 4 8 81 0 9 0 9 -11542 128 64 33.22 2111.5 41 12 4 8 81 0 11 0 11 -11543 128 65 39.26 2111.5 45 11 4 8 82 0 10 0 10 -11544 128 66 45.3 2111.5 45 9 4 8 82 0 8 0 8 -11545 128 67 51.34 2111.5 45 7 4 8 82 0 6 0 6 -11546 128 68 57.38 2111.5 45 8 4 8 82 0 7 0 7 -11547 128 69 63.42 2111.5 45 10 4 8 82 0 9 0 9 -11548 128 70 69.46 2111.5 45 12 4 8 82 0 11 0 11 -11549 128 71 75.5 2111.5 49 11 4 8 83 0 10 0 10 -11550 128 72 81.54 2111.5 49 9 4 8 83 0 8 0 8 -11551 128 73 87.58 2111.5 49 7 4 8 83 0 6 0 6 -11552 128 74 93.62 2111.5 49 8 4 8 83 0 7 0 7 -11553 128 75 99.66 2111.5 49 10 4 8 83 0 9 0 9 -11554 128 76 105.7 2111.5 49 12 4 8 83 0 11 0 11 -11555 128 77 111.74 2111.5 53 11 4 8 84 0 10 0 10 -11556 128 78 117.78 2111.5 53 9 4 8 84 0 8 0 8 -11557 128 79 123.82 2111.5 53 7 4 8 84 0 6 0 6 -11558 128 80 129.86 2111.5 53 8 4 8 84 0 7 0 7 -11559 128 81 135.9 2111.5 53 10 4 8 84 0 9 0 9 -11560 128 82 141.94 2111.5 53 12 4 8 84 0 11 0 11 -11561 128 83 147.98 2111.5 57 9 4 8 85 0 8 0 8 -11562 128 84 154.02 2111.5 57 7 4 8 85 0 6 0 6 -11563 128 85 160.06 2111.5 57 5 4 8 85 0 4 0 4 -11564 128 86 166.1 2111.5 57 8 4 8 85 0 7 0 7 -11565 128 87 172.14 2111.5 57 10 4 8 85 0 9 0 9 -11566 128 88 178.18 2111.5 57 12 4 8 85 0 11 0 11 -11567 128 89 184.22 2111.5 61 11 4 8 86 0 10 0 10 -11568 128 90 190.26 2111.5 61 9 4 8 86 0 8 0 8 -11569 128 91 196.3 2111.5 61 7 4 8 86 0 6 0 6 -11570 128 92 202.34 2111.5 61 8 4 8 86 0 7 0 7 -11571 128 93 208.38 2111.5 61 10 4 8 86 0 9 0 9 -11572 128 94 214.42 2111.5 61 12 4 8 86 0 11 0 11 -11573 128 95 220.46 2111.5 65 11 4 8 87 0 10 0 10 -11574 128 96 226.5 2111.5 65 9 4 8 87 0 8 0 8 -11575 128 97 232.54 2111.5 65 7 4 8 87 0 6 0 6 -11576 128 98 238.58 2111.5 65 8 4 8 87 0 7 0 7 -11577 128 99 244.62 2111.5 65 10 4 8 87 0 9 0 9 -11578 128 100 250.66 2111.5 65 12 4 8 87 0 11 0 11 -11579 128 101 256.7 2111.5 69 9 4 8 88 0 8 0 8 -11580 128 102 262.74 2111.5 69 7 4 8 88 0 6 0 6 -11581 128 103 268.78 2111.5 69 8 4 8 88 0 7 0 7 -11582 128 104 274.82 2111.5 69 10 4 8 88 0 9 0 9 -11583 128 105 280.86 2111.5 69 12 4 8 88 0 11 0 11 -11584 128 106 286.9 2111.5 73 11 4 8 89 0 10 0 10 -11585 128 107 292.94 2111.5 73 9 4 8 89 0 8 0 8 -11586 128 108 298.98 2111.5 73 7 4 8 89 0 6 0 6 -11587 128 109 305.02 2111.5 73 8 4 8 89 0 7 0 7 -11588 128 110 311.06 2111.5 73 10 4 8 89 0 9 0 9 -11589 128 111 317.1 2111.5 73 12 4 8 89 0 11 0 11 -11590 128 112 323.14 2111.5 77 11 4 8 90 0 10 0 10 -11591 128 113 329.18 2111.5 77 9 4 8 90 0 8 0 8 -11592 128 114 335.22 2111.5 77 7 4 8 90 0 6 0 6 -11593 128 115 341.26 2111.5 77 8 4 8 90 0 7 0 7 -11594 128 116 347.3 2111.5 77 10 4 8 90 0 9 0 9 -11595 128 117 353.34 2111.5 77 12 4 8 90 0 11 0 11 -11596 129 0 -359.38 2126.5 1 17 4 8 71 0 16 0 16 -11597 129 1 -353.34 2126.5 1 15 4 8 71 0 14 0 14 -11598 129 2 -347.3 2126.5 1 13 4 8 71 0 12 0 12 -11599 129 3 -341.26 2126.5 1 14 4 8 71 0 13 0 13 -11600 129 4 -335.22 2126.5 1 16 4 8 71 0 15 0 15 -11601 129 5 -329.18 2126.5 1 18 4 8 71 0 17 0 17 -11602 129 6 -323.14 2126.5 5 17 4 8 72 0 16 0 16 -11603 129 7 -317.1 2126.5 5 15 4 8 72 0 14 0 14 -11604 129 8 -311.06 2126.5 5 13 4 8 72 0 12 0 12 -11605 129 9 -305.02 2126.5 5 14 4 8 72 0 13 0 13 -11606 129 10 -298.98 2126.5 5 16 4 8 72 0 15 0 15 -11607 129 11 -292.94 2126.5 5 18 4 8 72 0 17 0 17 -11608 129 12 -286.9 2126.5 9 17 4 8 73 0 16 0 16 -11609 129 13 -280.86 2126.5 9 15 4 8 73 0 14 0 14 -11610 129 14 -274.82 2126.5 9 13 4 8 73 0 12 0 12 -11611 129 15 -268.78 2126.5 9 12 4 8 73 0 11 0 11 -11612 129 16 -262.74 2126.5 9 14 4 8 73 0 13 0 13 -11613 129 17 -256.7 2126.5 9 16 4 8 73 0 15 0 15 -11614 129 18 -250.66 2126.5 13 17 4 8 74 0 16 0 16 -11615 129 19 -244.62 2126.5 13 15 4 8 74 0 14 0 14 -11616 129 20 -238.58 2126.5 13 13 4 8 74 0 12 0 12 -11617 129 21 -232.54 2126.5 13 14 4 8 74 0 13 0 13 -11618 129 22 -226.5 2126.5 13 16 4 8 74 0 15 0 15 -11619 129 23 -220.46 2126.5 13 18 4 8 74 0 17 0 17 -11620 129 24 -214.42 2126.5 17 17 4 8 75 0 16 0 16 -11621 129 25 -208.38 2126.5 17 15 4 8 75 0 14 0 14 -11622 129 26 -202.34 2126.5 17 13 4 8 75 0 12 0 12 -11623 129 27 -196.3 2126.5 17 14 4 8 75 0 13 0 13 -11624 129 28 -190.26 2126.5 17 16 4 8 75 0 15 0 15 -11625 129 29 -184.22 2126.5 17 18 4 8 75 0 17 0 17 -11626 129 30 -178.18 2126.5 21 17 4 8 76 0 16 0 16 -11627 129 31 -172.14 2126.5 21 15 4 8 76 0 14 0 14 -11628 129 32 -166.1 2126.5 21 13 4 8 76 0 12 0 12 -11629 129 33 -160.06 2126.5 21 12 4 8 76 0 11 0 11 -11630 129 34 -154.02 2126.5 21 14 4 8 76 0 13 0 13 -11631 129 35 -147.98 2126.5 21 16 4 8 76 0 15 0 15 -11632 129 36 -141.94 2126.5 25 17 4 8 77 0 16 0 16 -11633 129 37 -135.9 2126.5 25 15 4 8 77 0 14 0 14 -11634 129 38 -129.86 2126.5 25 13 4 8 77 0 12 0 12 -11635 129 39 -123.82 2126.5 25 14 4 8 77 0 13 0 13 -11636 129 40 -117.78 2126.5 25 16 4 8 77 0 15 0 15 -11637 129 41 -111.74 2126.5 25 18 4 8 77 0 17 0 17 -11638 129 42 -105.7 2126.5 29 17 4 8 78 0 16 0 16 -11639 129 43 -99.66 2126.5 29 15 4 8 78 0 14 0 14 -11640 129 44 -93.62 2126.5 29 13 4 8 78 0 12 0 12 -11641 129 45 -87.58 2126.5 29 14 4 8 78 0 13 0 13 -11642 129 46 -81.54 2126.5 29 16 4 8 78 0 15 0 15 -11643 129 47 -75.5 2126.5 29 18 4 8 78 0 17 0 17 -11644 129 48 -69.46 2126.5 33 17 4 8 79 0 16 0 16 -11645 129 49 -63.42 2126.5 33 15 4 8 79 0 14 0 14 -11646 129 50 -57.38 2126.5 33 13 4 8 79 0 12 0 12 -11647 129 51 -51.34 2126.5 33 14 4 8 79 0 13 0 13 -11648 129 52 -45.3 2126.5 33 16 4 8 79 0 15 0 15 -11649 129 53 -39.26 2126.5 33 18 4 8 79 0 17 0 17 -11650 129 54 -33.22 2126.5 37 17 4 8 80 0 16 0 16 -11651 129 55 -27.18 2126.5 37 15 4 8 80 0 14 0 14 -11652 129 56 -21.14 2126.5 37 13 4 8 80 0 12 0 12 -11653 129 57 -15.1 2126.5 37 14 4 8 80 0 13 0 13 -11654 129 58 -9.06 2126.5 37 16 4 8 80 0 15 0 15 -11655 129 59 -3.02 2126.5 37 18 4 8 80 0 17 0 17 -11656 129 60 3.02 2126.5 41 17 4 8 81 0 16 0 16 -11657 129 61 9.06 2126.5 41 15 4 8 81 0 14 0 14 -11658 129 62 15.1 2126.5 41 13 4 8 81 0 12 0 12 -11659 129 63 21.14 2126.5 41 14 4 8 81 0 13 0 13 -11660 129 64 27.18 2126.5 41 16 4 8 81 0 15 0 15 -11661 129 65 33.22 2126.5 41 18 4 8 81 0 17 0 17 -11662 129 66 39.26 2126.5 45 17 4 8 82 0 16 0 16 -11663 129 67 45.3 2126.5 45 15 4 8 82 0 14 0 14 -11664 129 68 51.34 2126.5 45 13 4 8 82 0 12 0 12 -11665 129 69 57.38 2126.5 45 14 4 8 82 0 13 0 13 -11666 129 70 63.42 2126.5 45 16 4 8 82 0 15 0 15 -11667 129 71 69.46 2126.5 45 18 4 8 82 0 17 0 17 -11668 129 72 75.5 2126.5 49 17 4 8 83 0 16 0 16 -11669 129 73 81.54 2126.5 49 15 4 8 83 0 14 0 14 -11670 129 74 87.58 2126.5 49 13 4 8 83 0 12 0 12 -11671 129 75 93.62 2126.5 49 14 4 8 83 0 13 0 13 -11672 129 76 99.66 2126.5 49 16 4 8 83 0 15 0 15 -11673 129 77 105.7 2126.5 49 18 4 8 83 0 17 0 17 -11674 129 78 111.74 2126.5 53 17 4 8 84 0 16 0 16 -11675 129 79 117.78 2126.5 53 15 4 8 84 0 14 0 14 -11676 129 80 123.82 2126.5 53 13 4 8 84 0 12 0 12 -11677 129 81 129.86 2126.5 53 14 4 8 84 0 13 0 13 -11678 129 82 135.9 2126.5 53 16 4 8 84 0 15 0 15 -11679 129 83 141.94 2126.5 53 18 4 8 84 0 17 0 17 -11680 129 84 147.98 2126.5 57 15 4 8 85 0 14 0 14 -11681 129 85 154.02 2126.5 57 13 4 8 85 0 12 0 12 -11682 129 86 160.06 2126.5 57 11 4 8 85 0 10 0 10 -11683 129 87 166.1 2126.5 57 14 4 8 85 0 13 0 13 -11684 129 88 172.14 2126.5 57 16 4 8 85 0 15 0 15 -11685 129 89 178.18 2126.5 57 18 4 8 85 0 17 0 17 -11686 129 90 184.22 2126.5 61 17 4 8 86 0 16 0 16 -11687 129 91 190.26 2126.5 61 15 4 8 86 0 14 0 14 -11688 129 92 196.3 2126.5 61 13 4 8 86 0 12 0 12 -11689 129 93 202.34 2126.5 61 14 4 8 86 0 13 0 13 -11690 129 94 208.38 2126.5 61 16 4 8 86 0 15 0 15 -11691 129 95 214.42 2126.5 61 18 4 8 86 0 17 0 17 -11692 129 96 220.46 2126.5 65 17 4 8 87 0 16 0 16 -11693 129 97 226.5 2126.5 65 15 4 8 87 0 14 0 14 -11694 129 98 232.54 2126.5 65 13 4 8 87 0 12 0 12 -11695 129 99 238.58 2126.5 65 14 4 8 87 0 13 0 13 -11696 129 100 244.62 2126.5 65 16 4 8 87 0 15 0 15 -11697 129 101 250.66 2126.5 65 18 4 8 87 0 17 0 17 -11698 129 102 256.7 2126.5 69 15 4 8 88 0 14 0 14 -11699 129 103 262.74 2126.5 69 13 4 8 88 0 12 0 12 -11700 129 104 268.78 2126.5 69 11 4 8 88 0 10 0 10 -11701 129 105 274.82 2126.5 69 14 4 8 88 0 13 0 13 -11702 129 106 280.86 2126.5 69 16 4 8 88 0 15 0 15 -11703 129 107 286.9 2126.5 69 18 4 8 88 0 17 0 17 -11704 129 108 292.94 2126.5 73 17 4 8 89 0 16 0 16 -11705 129 109 298.98 2126.5 73 15 4 8 89 0 14 0 14 -11706 129 110 305.02 2126.5 73 13 4 8 89 0 12 0 12 -11707 129 111 311.06 2126.5 73 14 4 8 89 0 13 0 13 -11708 129 112 317.1 2126.5 73 16 4 8 89 0 15 0 15 -11709 129 113 323.14 2126.5 73 18 4 8 89 0 17 0 17 -11710 129 114 329.18 2126.5 77 17 4 8 90 0 16 0 16 -11711 129 115 335.22 2126.5 77 15 4 8 90 0 14 0 14 -11712 129 116 341.26 2126.5 77 13 4 8 90 0 12 0 12 -11713 129 117 347.3 2126.5 77 14 4 8 90 0 13 0 13 -11714 129 118 353.34 2126.5 77 16 4 8 90 0 15 0 15 -11715 129 119 359.38 2126.5 77 18 4 8 90 0 17 0 17 -11716 130 0 -359.38 2141.5 1 23 4 8 71 0 22 0 22 -11717 130 1 -353.34 2141.5 1 21 4 8 71 0 20 0 20 -11718 130 2 -347.3 2141.5 1 19 4 8 71 0 18 0 18 -11719 130 3 -341.26 2141.5 1 20 4 8 71 0 19 0 19 -11720 130 4 -335.22 2141.5 1 22 4 8 71 0 21 0 21 -11721 130 5 -329.18 2141.5 1 24 4 8 71 0 23 0 23 -11722 130 6 -323.14 2141.5 5 23 4 8 72 0 22 0 22 -11723 130 7 -317.1 2141.5 5 21 4 8 72 0 20 0 20 -11724 130 8 -311.06 2141.5 5 19 4 8 72 0 18 0 18 -11725 130 9 -305.02 2141.5 5 20 4 8 72 0 19 0 19 -11726 130 10 -298.98 2141.5 5 22 4 8 72 0 21 0 21 -11727 130 11 -292.94 2141.5 5 24 4 8 72 0 23 0 23 -11728 130 12 -286.9 2141.5 9 23 4 8 73 0 22 0 22 -11729 130 13 -280.86 2141.5 9 21 4 8 73 0 20 0 20 -11730 130 14 -274.82 2141.5 9 19 4 8 73 0 18 0 18 -11731 130 15 -268.78 2141.5 9 18 4 8 73 0 17 0 17 -11732 130 16 -262.74 2141.5 9 20 4 8 73 0 19 0 19 -11733 130 17 -256.7 2141.5 9 22 4 8 73 0 21 0 21 -11734 130 18 -250.66 2141.5 13 23 4 8 74 0 22 0 22 -11735 130 19 -244.62 2141.5 13 21 4 8 74 0 20 0 20 -11736 130 20 -238.58 2141.5 13 19 4 8 74 0 18 0 18 -11737 130 21 -232.54 2141.5 13 20 4 8 74 0 19 0 19 -11738 130 22 -226.5 2141.5 13 22 4 8 74 0 21 0 21 -11739 130 23 -220.46 2141.5 13 24 4 8 74 0 23 0 23 -11740 130 24 -214.42 2141.5 17 23 4 8 75 0 22 0 22 -11741 130 25 -208.38 2141.5 17 21 4 8 75 0 20 0 20 -11742 130 26 -202.34 2141.5 17 19 4 8 75 0 18 0 18 -11743 130 27 -196.3 2141.5 17 20 4 8 75 0 19 0 19 -11744 130 28 -190.26 2141.5 17 22 4 8 75 0 21 0 21 -11745 130 29 -184.22 2141.5 17 24 4 8 75 0 23 0 23 -11746 130 30 -178.18 2141.5 21 23 4 8 76 0 22 0 22 -11747 130 31 -172.14 2141.5 21 21 4 8 76 0 20 0 20 -11748 130 32 -166.1 2141.5 21 19 4 8 76 0 18 0 18 -11749 130 33 -160.06 2141.5 21 18 4 8 76 0 17 0 17 -11750 130 34 -154.02 2141.5 21 20 4 8 76 0 19 0 19 -11751 130 35 -147.98 2141.5 21 22 4 8 76 0 21 0 21 -11752 130 36 -141.94 2141.5 25 23 4 8 77 0 22 0 22 -11753 130 37 -135.9 2141.5 25 21 4 8 77 0 20 0 20 -11754 130 38 -129.86 2141.5 25 19 4 8 77 0 18 0 18 -11755 130 39 -123.82 2141.5 25 20 4 8 77 0 19 0 19 -11756 130 40 -117.78 2141.5 25 22 4 8 77 0 21 0 21 -11757 130 41 -111.74 2141.5 25 24 4 8 77 0 23 0 23 -11758 130 42 -105.7 2141.5 29 23 4 8 78 0 22 0 22 -11759 130 43 -99.66 2141.5 29 21 4 8 78 0 20 0 20 -11760 130 44 -93.62 2141.5 29 19 4 8 78 0 18 0 18 -11761 130 45 -87.58 2141.5 29 20 4 8 78 0 19 0 19 -11762 130 46 -81.54 2141.5 29 22 4 8 78 0 21 0 21 -11763 130 47 -75.5 2141.5 29 24 4 8 78 0 23 0 23 -11764 130 48 -69.46 2141.5 33 23 4 8 79 0 22 0 22 -11765 130 49 -63.42 2141.5 33 21 4 8 79 0 20 0 20 -11766 130 50 -57.38 2141.5 33 19 4 8 79 0 18 0 18 -11767 130 51 -51.34 2141.5 33 20 4 8 79 0 19 0 19 -11768 130 52 -45.3 2141.5 33 22 4 8 79 0 21 0 21 -11769 130 53 -39.26 2141.5 33 24 4 8 79 0 23 0 23 -11770 130 54 -33.22 2141.5 37 23 4 8 80 0 22 0 22 -11771 130 55 -27.18 2141.5 37 21 4 8 80 0 20 0 20 -11772 130 56 -21.14 2141.5 37 19 4 8 80 0 18 0 18 -11773 130 57 -15.1 2141.5 37 20 4 8 80 0 19 0 19 -11774 130 58 -9.06 2141.5 37 22 4 8 80 0 21 0 21 -11775 130 59 -3.02 2141.5 37 24 4 8 80 0 23 0 23 -11776 130 60 3.02 2141.5 41 23 4 8 81 0 22 0 22 -11777 130 61 9.06 2141.5 41 21 4 8 81 0 20 0 20 -11778 130 62 15.1 2141.5 41 19 4 8 81 0 18 0 18 -11779 130 63 21.14 2141.5 41 20 4 8 81 0 19 0 19 -11780 130 64 27.18 2141.5 41 22 4 8 81 0 21 0 21 -11781 130 65 33.22 2141.5 41 24 4 8 81 0 23 0 23 -11782 130 66 39.26 2141.5 45 23 4 8 82 0 22 0 22 -11783 130 67 45.3 2141.5 45 21 4 8 82 0 20 0 20 -11784 130 68 51.34 2141.5 45 19 4 8 82 0 18 0 18 -11785 130 69 57.38 2141.5 45 20 4 8 82 0 19 0 19 -11786 130 70 63.42 2141.5 45 22 4 8 82 0 21 0 21 -11787 130 71 69.46 2141.5 45 24 4 8 82 0 23 0 23 -11788 130 72 75.5 2141.5 49 23 4 8 83 0 22 0 22 -11789 130 73 81.54 2141.5 49 21 4 8 83 0 20 0 20 -11790 130 74 87.58 2141.5 49 19 4 8 83 0 18 0 18 -11791 130 75 93.62 2141.5 49 20 4 8 83 0 19 0 19 -11792 130 76 99.66 2141.5 49 22 4 8 83 0 21 0 21 -11793 130 77 105.7 2141.5 49 24 4 8 83 0 23 0 23 -11794 130 78 111.74 2141.5 53 23 4 8 84 0 22 0 22 -11795 130 79 117.78 2141.5 53 21 4 8 84 0 20 0 20 -11796 130 80 123.82 2141.5 53 19 4 8 84 0 18 0 18 -11797 130 81 129.86 2141.5 53 20 4 8 84 0 19 0 19 -11798 130 82 135.9 2141.5 53 22 4 8 84 0 21 0 21 -11799 130 83 141.94 2141.5 53 24 4 8 84 0 23 0 23 -11800 130 84 147.98 2141.5 57 21 4 8 85 0 20 0 20 -11801 130 85 154.02 2141.5 57 19 4 8 85 0 18 0 18 -11802 130 86 160.06 2141.5 57 17 4 8 85 0 16 0 16 -11803 130 87 166.1 2141.5 57 20 4 8 85 0 19 0 19 -11804 130 88 172.14 2141.5 57 22 4 8 85 0 21 0 21 -11805 130 89 178.18 2141.5 57 24 4 8 85 0 23 0 23 -11806 130 90 184.22 2141.5 61 23 4 8 86 0 22 0 22 -11807 130 91 190.26 2141.5 61 21 4 8 86 0 20 0 20 -11808 130 92 196.3 2141.5 61 19 4 8 86 0 18 0 18 -11809 130 93 202.34 2141.5 61 20 4 8 86 0 19 0 19 -11810 130 94 208.38 2141.5 61 22 4 8 86 0 21 0 21 -11811 130 95 214.42 2141.5 61 24 4 8 86 0 23 0 23 -11812 130 96 220.46 2141.5 65 23 4 8 87 0 22 0 22 -11813 130 97 226.5 2141.5 65 21 4 8 87 0 20 0 20 -11814 130 98 232.54 2141.5 65 19 4 8 87 0 18 0 18 -11815 130 99 238.58 2141.5 65 20 4 8 87 0 19 0 19 -11816 130 100 244.62 2141.5 65 22 4 8 87 0 21 0 21 -11817 130 101 250.66 2141.5 65 24 4 8 87 0 23 0 23 -11818 130 102 256.7 2141.5 69 21 4 8 88 0 20 0 20 -11819 130 103 262.74 2141.5 69 19 4 8 88 0 18 0 18 -11820 130 104 268.78 2141.5 69 17 4 8 88 0 16 0 16 -11821 130 105 274.82 2141.5 69 20 4 8 88 0 19 0 19 -11822 130 106 280.86 2141.5 69 22 4 8 88 0 21 0 21 -11823 130 107 286.9 2141.5 69 24 4 8 88 0 23 0 23 -11824 130 108 292.94 2141.5 73 23 4 8 89 0 22 0 22 -11825 130 109 298.98 2141.5 73 21 4 8 89 0 20 0 20 -11826 130 110 305.02 2141.5 73 19 4 8 89 0 18 0 18 -11827 130 111 311.06 2141.5 73 20 4 8 89 0 19 0 19 -11828 130 112 317.1 2141.5 73 22 4 8 89 0 21 0 21 -11829 130 113 323.14 2141.5 73 24 4 8 89 0 23 0 23 -11830 130 114 329.18 2141.5 77 23 4 8 90 0 22 0 22 -11831 130 115 335.22 2141.5 77 21 4 8 90 0 20 0 20 -11832 130 116 341.26 2141.5 77 19 4 8 90 0 18 0 18 -11833 130 117 347.3 2141.5 77 20 4 8 90 0 19 0 19 -11834 130 118 353.34 2141.5 77 22 4 8 90 0 21 0 21 -11835 130 119 359.38 2141.5 77 24 4 8 90 0 23 0 23 -11836 131 0 -365.42 2156.5 1 29 4 8 71 0 28 0 28 -11837 131 1 -359.38 2156.5 1 27 4 8 71 0 26 0 26 -11838 131 2 -353.34 2156.5 1 25 4 8 71 0 24 0 24 -11839 131 3 -347.3 2156.5 1 26 4 8 71 0 25 0 25 -11840 131 4 -341.26 2156.5 1 28 4 8 71 0 27 0 27 -11841 131 5 -335.22 2156.5 1 30 4 8 71 0 29 0 29 -11842 131 6 -329.18 2156.5 5 29 4 8 72 0 28 0 28 -11843 131 7 -323.14 2156.5 5 27 4 8 72 0 26 0 26 -11844 131 8 -317.1 2156.5 5 25 4 8 72 0 24 0 24 -11845 131 9 -311.06 2156.5 5 26 4 8 72 0 25 0 25 -11846 131 10 -305.02 2156.5 5 28 4 8 72 0 27 0 27 -11847 131 11 -298.98 2156.5 5 30 4 8 72 0 29 0 29 -11848 131 12 -292.94 2156.5 9 29 4 8 73 0 28 0 28 -11849 131 13 -286.9 2156.5 9 27 4 8 73 0 26 0 26 -11850 131 14 -280.86 2156.5 9 25 4 8 73 0 24 0 24 -11851 131 15 -274.82 2156.5 9 24 4 8 73 0 23 0 23 -11852 131 16 -268.78 2156.5 9 26 4 8 73 0 25 0 25 -11853 131 17 -262.74 2156.5 9 28 4 8 73 0 27 0 27 -11854 131 18 -256.7 2156.5 9 30 4 8 73 0 29 0 29 -11855 131 19 -250.66 2156.5 13 29 4 8 74 0 28 0 28 -11856 131 20 -244.62 2156.5 13 27 4 8 74 0 26 0 26 -11857 131 21 -238.58 2156.5 13 25 4 8 74 0 24 0 24 -11858 131 22 -232.54 2156.5 13 26 4 8 74 0 25 0 25 -11859 131 23 -226.5 2156.5 13 28 4 8 74 0 27 0 27 -11860 131 24 -220.46 2156.5 13 30 4 8 74 0 29 0 29 -11861 131 25 -214.42 2156.5 17 29 4 8 75 0 28 0 28 -11862 131 26 -208.38 2156.5 17 27 4 8 75 0 26 0 26 -11863 131 27 -202.34 2156.5 17 25 4 8 75 0 24 0 24 -11864 131 28 -196.3 2156.5 17 26 4 8 75 0 25 0 25 -11865 131 29 -190.26 2156.5 17 28 4 8 75 0 27 0 27 -11866 131 30 -184.22 2156.5 17 30 4 8 75 0 29 0 29 -11867 131 31 -178.18 2156.5 21 29 4 8 76 0 28 0 28 -11868 131 32 -172.14 2156.5 21 27 4 8 76 0 26 0 26 -11869 131 33 -166.1 2156.5 21 25 4 8 76 0 24 0 24 -11870 131 34 -160.06 2156.5 21 24 4 8 76 0 23 0 23 -11871 131 35 -154.02 2156.5 21 26 4 8 76 0 25 0 25 -11872 131 36 -147.98 2156.5 21 28 4 8 76 0 27 0 27 -11873 131 37 -141.94 2156.5 25 29 4 8 77 0 28 0 28 -11874 131 38 -135.9 2156.5 25 27 4 8 77 0 26 0 26 -11875 131 39 -129.86 2156.5 25 25 4 8 77 0 24 0 24 -11876 131 40 -123.82 2156.5 25 26 4 8 77 0 25 0 25 -11877 131 41 -117.78 2156.5 25 28 4 8 77 0 27 0 27 -11878 131 42 -111.74 2156.5 25 30 4 8 77 0 29 0 29 -11879 131 43 -105.7 2156.5 29 29 4 8 78 0 28 0 28 -11880 131 44 -99.66 2156.5 29 27 4 8 78 0 26 0 26 -11881 131 45 -93.62 2156.5 29 25 4 8 78 0 24 0 24 -11882 131 46 -87.58 2156.5 29 26 4 8 78 0 25 0 25 -11883 131 47 -81.54 2156.5 29 28 4 8 78 0 27 0 27 -11884 131 48 -75.5 2156.5 29 30 4 8 78 0 29 0 29 -11885 131 49 -69.46 2156.5 33 29 4 8 79 0 28 0 28 -11886 131 50 -63.42 2156.5 33 27 4 8 79 0 26 0 26 -11887 131 51 -57.38 2156.5 33 25 4 8 79 0 24 0 24 -11888 131 52 -51.34 2156.5 33 26 4 8 79 0 25 0 25 -11889 131 53 -45.3 2156.5 33 28 4 8 79 0 27 0 27 -11890 131 54 -39.26 2156.5 33 30 4 8 79 0 29 0 29 -11891 131 55 -33.22 2156.5 37 29 4 8 80 0 28 0 28 -11892 131 56 -27.18 2156.5 37 27 4 8 80 0 26 0 26 -11893 131 57 -21.14 2156.5 37 25 4 8 80 0 24 0 24 -11894 131 58 -15.1 2156.5 37 26 4 8 80 0 25 0 25 -11895 131 59 -9.06 2156.5 37 28 4 8 80 0 27 0 27 -11896 131 60 -3.02 2156.5 37 30 4 8 80 0 29 0 29 -11897 131 61 3.02 2156.5 41 29 4 8 81 0 28 0 28 -11898 131 62 9.06 2156.5 41 27 4 8 81 0 26 0 26 -11899 131 63 15.1 2156.5 41 25 4 8 81 0 24 0 24 -11900 131 64 21.14 2156.5 41 26 4 8 81 0 25 0 25 -11901 131 65 27.18 2156.5 41 28 4 8 81 0 27 0 27 -11902 131 66 33.22 2156.5 41 30 4 8 81 0 29 0 29 -11903 131 67 39.26 2156.5 45 29 4 8 82 0 28 0 28 -11904 131 68 45.3 2156.5 45 27 4 8 82 0 26 0 26 -11905 131 69 51.34 2156.5 45 25 4 8 82 0 24 0 24 -11906 131 70 57.38 2156.5 45 26 4 8 82 0 25 0 25 -11907 131 71 63.42 2156.5 45 28 4 8 82 0 27 0 27 -11908 131 72 69.46 2156.5 45 30 4 8 82 0 29 0 29 -11909 131 73 75.5 2156.5 49 29 4 8 83 0 28 0 28 -11910 131 74 81.54 2156.5 49 27 4 8 83 0 26 0 26 -11911 131 75 87.58 2156.5 49 25 4 8 83 0 24 0 24 -11912 131 76 93.62 2156.5 49 26 4 8 83 0 25 0 25 -11913 131 77 99.66 2156.5 49 28 4 8 83 0 27 0 27 -11914 131 78 105.7 2156.5 49 30 4 8 83 0 29 0 29 -11915 131 79 111.74 2156.5 53 29 4 8 84 0 28 0 28 -11916 131 80 117.78 2156.5 53 27 4 8 84 0 26 0 26 -11917 131 81 123.82 2156.5 53 25 4 8 84 0 24 0 24 -11918 131 82 129.86 2156.5 53 26 4 8 84 0 25 0 25 -11919 131 83 135.9 2156.5 53 28 4 8 84 0 27 0 27 -11920 131 84 141.94 2156.5 53 30 4 8 84 0 29 0 29 -11921 131 85 147.98 2156.5 57 27 4 8 85 0 26 0 26 -11922 131 86 154.02 2156.5 57 25 4 8 85 0 24 0 24 -11923 131 87 160.06 2156.5 57 23 4 8 85 0 22 0 22 -11924 131 88 166.1 2156.5 57 26 4 8 85 0 25 0 25 -11925 131 89 172.14 2156.5 57 28 4 8 85 0 27 0 27 -11926 131 90 178.18 2156.5 57 30 4 8 85 0 29 0 29 -11927 131 91 184.22 2156.5 61 29 4 8 86 0 28 0 28 -11928 131 92 190.26 2156.5 61 27 4 8 86 0 26 0 26 -11929 131 93 196.3 2156.5 61 25 4 8 86 0 24 0 24 -11930 131 94 202.34 2156.5 61 26 4 8 86 0 25 0 25 -11931 131 95 208.38 2156.5 61 28 4 8 86 0 27 0 27 -11932 131 96 214.42 2156.5 61 30 4 8 86 0 29 0 29 -11933 131 97 220.46 2156.5 65 29 4 8 87 0 28 0 28 -11934 131 98 226.5 2156.5 65 27 4 8 87 0 26 0 26 -11935 131 99 232.54 2156.5 65 25 4 8 87 0 24 0 24 -11936 131 100 238.58 2156.5 65 26 4 8 87 0 25 0 25 -11937 131 101 244.62 2156.5 65 28 4 8 87 0 27 0 27 -11938 131 102 250.66 2156.5 65 30 4 8 87 0 29 0 29 -11939 131 103 256.7 2156.5 69 29 4 8 88 0 28 0 28 -11940 131 104 262.74 2156.5 69 27 4 8 88 0 26 0 26 -11941 131 105 268.78 2156.5 69 25 4 8 88 0 24 0 24 -11942 131 106 274.82 2156.5 69 23 4 8 88 0 22 0 22 -11943 131 107 280.86 2156.5 69 26 4 8 88 0 25 0 25 -11944 131 108 286.9 2156.5 69 28 4 8 88 0 27 0 27 -11945 131 109 292.94 2156.5 69 30 4 8 88 0 29 0 29 -11946 131 110 298.98 2156.5 73 29 4 8 89 0 28 0 28 -11947 131 111 305.02 2156.5 73 27 4 8 89 0 26 0 26 -11948 131 112 311.06 2156.5 73 25 4 8 89 0 24 0 24 -11949 131 113 317.1 2156.5 73 26 4 8 89 0 25 0 25 -11950 131 114 323.14 2156.5 73 28 4 8 89 0 27 0 27 -11951 131 115 329.18 2156.5 73 30 4 8 89 0 29 0 29 -11952 131 116 335.22 2156.5 77 29 4 8 90 0 28 0 28 -11953 131 117 341.26 2156.5 77 27 4 8 90 0 26 0 26 -11954 131 118 347.3 2156.5 77 25 4 8 90 0 24 0 24 -11955 131 119 353.34 2156.5 77 26 4 8 90 0 25 0 25 -11956 131 120 359.38 2156.5 77 28 4 8 90 0 27 0 27 -11957 131 121 365.42 2156.5 77 30 4 8 90 0 29 0 29 -11958 132 0 -365.42 2171.5 1 35 4 8 71 0 34 1 2 -11959 132 1 -359.38 2171.5 1 33 4 8 71 0 32 1 0 -11960 132 2 -353.34 2171.5 1 31 4 8 71 0 30 0 30 -11961 132 3 -347.3 2171.5 1 32 4 8 71 0 31 0 31 -11962 132 4 -341.26 2171.5 1 34 4 8 71 0 33 1 1 -11963 132 5 -335.22 2171.5 1 36 4 8 71 0 35 1 3 -11964 132 6 -329.18 2171.5 5 35 4 8 72 0 34 1 2 -11965 132 7 -323.14 2171.5 5 33 4 8 72 0 32 1 0 -11966 132 8 -317.1 2171.5 5 31 4 8 72 0 30 0 30 -11967 132 9 -311.06 2171.5 5 32 4 8 72 0 31 0 31 -11968 132 10 -305.02 2171.5 5 34 4 8 72 0 33 1 1 -11969 132 11 -298.98 2171.5 5 36 4 8 72 0 35 1 3 -11970 132 12 -292.94 2171.5 9 35 4 8 73 0 34 1 2 -11971 132 13 -286.9 2171.5 9 33 4 8 73 0 32 1 0 -11972 132 14 -280.86 2171.5 9 31 4 8 73 0 30 0 30 -11973 132 15 -274.82 2171.5 9 32 4 8 73 0 31 0 31 -11974 132 16 -268.78 2171.5 9 34 4 8 73 0 33 1 1 -11975 132 17 -262.74 2171.5 9 36 4 8 73 0 35 1 3 -11976 132 18 -256.7 2171.5 13 35 4 8 74 0 34 1 2 -11977 132 19 -250.66 2171.5 13 33 4 8 74 0 32 1 0 -11978 132 20 -244.62 2171.5 13 31 4 8 74 0 30 0 30 -11979 132 21 -238.58 2171.5 13 32 4 8 74 0 31 0 31 -11980 132 22 -232.54 2171.5 13 34 4 8 74 0 33 1 1 -11981 132 23 -226.5 2171.5 13 36 4 8 74 0 35 1 3 -11982 132 24 -220.46 2171.5 17 35 4 8 75 0 34 1 2 -11983 132 25 -214.42 2171.5 17 33 4 8 75 0 32 1 0 -11984 132 26 -208.38 2171.5 17 31 4 8 75 0 30 0 30 -11985 132 27 -202.34 2171.5 17 32 4 8 75 0 31 0 31 -11986 132 28 -196.3 2171.5 17 34 4 8 75 0 33 1 1 -11987 132 29 -190.26 2171.5 17 36 4 8 75 0 35 1 3 -11988 132 30 -184.22 2171.5 21 35 4 8 76 0 34 1 2 -11989 132 31 -178.18 2171.5 21 33 4 8 76 0 32 1 0 -11990 132 32 -172.14 2171.5 21 31 4 8 76 0 30 0 30 -11991 132 33 -166.1 2171.5 21 30 4 8 76 0 29 0 29 -11992 132 34 -160.06 2171.5 21 32 4 8 76 0 31 0 31 -11993 132 35 -154.02 2171.5 21 34 4 8 76 0 33 1 1 -11994 132 36 -147.98 2171.5 21 36 4 8 76 0 35 1 3 -11995 132 37 -141.94 2171.5 25 35 4 8 77 0 34 1 2 -11996 132 38 -135.9 2171.5 25 33 4 8 77 0 32 1 0 -11997 132 39 -129.86 2171.5 25 31 4 8 77 0 30 0 30 -11998 132 40 -123.82 2171.5 25 32 4 8 77 0 31 0 31 -11999 132 41 -117.78 2171.5 25 34 4 8 77 0 33 1 1 -12000 132 42 -111.74 2171.5 25 36 4 8 77 0 35 1 3 -12001 132 43 -105.7 2171.5 29 35 4 8 78 0 34 1 2 -12002 132 44 -99.66 2171.5 29 33 4 8 78 0 32 1 0 -12003 132 45 -93.62 2171.5 29 31 4 8 78 0 30 0 30 -12004 132 46 -87.58 2171.5 29 32 4 8 78 0 31 0 31 -12005 132 47 -81.54 2171.5 29 34 4 8 78 0 33 1 1 -12006 132 48 -75.5 2171.5 29 36 4 8 78 0 35 1 3 -12007 132 49 -69.46 2171.5 33 35 4 8 79 0 34 1 2 -12008 132 50 -63.42 2171.5 33 33 4 8 79 0 32 1 0 -12009 132 51 -57.38 2171.5 33 31 4 8 79 0 30 0 30 -12010 132 52 -51.34 2171.5 33 32 4 8 79 0 31 0 31 -12011 132 53 -45.3 2171.5 33 34 4 8 79 0 33 1 1 -12012 132 54 -39.26 2171.5 33 36 4 8 79 0 35 1 3 -12013 132 55 -33.22 2171.5 37 35 4 8 80 0 34 1 2 -12014 132 56 -27.18 2171.5 37 33 4 8 80 0 32 1 0 -12015 132 57 -21.14 2171.5 37 31 4 8 80 0 30 0 30 -12016 132 58 -15.1 2171.5 37 32 4 8 80 0 31 0 31 -12017 132 59 -9.06 2171.5 37 34 4 8 80 0 33 1 1 -12018 132 60 -3.02 2171.5 37 36 4 8 80 0 35 1 3 -12019 132 61 3.02 2171.5 41 35 4 8 81 0 34 1 2 -12020 132 62 9.06 2171.5 41 33 4 8 81 0 32 1 0 -12021 132 63 15.1 2171.5 41 31 4 8 81 0 30 0 30 -12022 132 64 21.14 2171.5 41 32 4 8 81 0 31 0 31 -12023 132 65 27.18 2171.5 41 34 4 8 81 0 33 1 1 -12024 132 66 33.22 2171.5 41 36 4 8 81 0 35 1 3 -12025 132 67 39.26 2171.5 45 35 4 8 82 0 34 1 2 -12026 132 68 45.3 2171.5 45 33 4 8 82 0 32 1 0 -12027 132 69 51.34 2171.5 45 31 4 8 82 0 30 0 30 -12028 132 70 57.38 2171.5 45 32 4 8 82 0 31 0 31 -12029 132 71 63.42 2171.5 45 34 4 8 82 0 33 1 1 -12030 132 72 69.46 2171.5 45 36 4 8 82 0 35 1 3 -12031 132 73 75.5 2171.5 49 35 4 8 83 0 34 1 2 -12032 132 74 81.54 2171.5 49 33 4 8 83 0 32 1 0 -12033 132 75 87.58 2171.5 49 31 4 8 83 0 30 0 30 -12034 132 76 93.62 2171.5 49 32 4 8 83 0 31 0 31 -12035 132 77 99.66 2171.5 49 34 4 8 83 0 33 1 1 -12036 132 78 105.7 2171.5 49 36 4 8 83 0 35 1 3 -12037 132 79 111.74 2171.5 53 35 4 8 84 0 34 1 2 -12038 132 80 117.78 2171.5 53 33 4 8 84 0 32 1 0 -12039 132 81 123.82 2171.5 53 31 4 8 84 0 30 0 30 -12040 132 82 129.86 2171.5 53 32 4 8 84 0 31 0 31 -12041 132 83 135.9 2171.5 53 34 4 8 84 0 33 1 1 -12042 132 84 141.94 2171.5 53 36 4 8 84 0 35 1 3 -12043 132 85 147.98 2171.5 57 35 4 8 85 0 34 1 2 -12044 132 86 154.02 2171.5 57 33 4 8 85 0 32 1 0 -12045 132 87 160.06 2171.5 57 31 4 8 85 0 30 0 30 -12046 132 88 166.1 2171.5 57 29 4 8 85 0 28 0 28 -12047 132 89 172.14 2171.5 57 32 4 8 85 0 31 0 31 -12048 132 90 178.18 2171.5 57 34 4 8 85 0 33 1 1 -12049 132 91 184.22 2171.5 57 36 4 8 85 0 35 1 3 -12050 132 92 190.26 2171.5 61 35 4 8 86 0 34 1 2 -12051 132 93 196.3 2171.5 61 33 4 8 86 0 32 1 0 -12052 132 94 202.34 2171.5 61 31 4 8 86 0 30 0 30 -12053 132 95 208.38 2171.5 61 32 4 8 86 0 31 0 31 -12054 132 96 214.42 2171.5 61 34 4 8 86 0 33 1 1 -12055 132 97 220.46 2171.5 61 36 4 8 86 0 35 1 3 -12056 132 98 226.5 2171.5 65 35 4 8 87 0 34 1 2 -12057 132 99 232.54 2171.5 65 33 4 8 87 0 32 1 0 -12058 132 100 238.58 2171.5 65 31 4 8 87 0 30 0 30 -12059 132 101 244.62 2171.5 65 32 4 8 87 0 31 0 31 -12060 132 102 250.66 2171.5 65 34 4 8 87 0 33 1 1 -12061 132 103 256.7 2171.5 65 36 4 8 87 0 35 1 3 -12062 132 104 262.74 2171.5 69 35 4 8 88 0 34 1 2 -12063 132 105 268.78 2171.5 69 33 4 8 88 0 32 1 0 -12064 132 106 274.82 2171.5 69 31 4 8 88 0 30 0 30 -12065 132 107 280.86 2171.5 69 32 4 8 88 0 31 0 31 -12066 132 108 286.9 2171.5 69 34 4 8 88 0 33 1 1 -12067 132 109 292.94 2171.5 69 36 4 8 88 0 35 1 3 -12068 132 110 298.98 2171.5 73 35 4 8 89 0 34 1 2 -12069 132 111 305.02 2171.5 73 33 4 8 89 0 32 1 0 -12070 132 112 311.06 2171.5 73 31 4 8 89 0 30 0 30 -12071 132 113 317.1 2171.5 73 32 4 8 89 0 31 0 31 -12072 132 114 323.14 2171.5 73 34 4 8 89 0 33 1 1 -12073 132 115 329.18 2171.5 73 36 4 8 89 0 35 1 3 -12074 132 116 335.22 2171.5 77 35 4 8 90 0 34 1 2 -12075 132 117 341.26 2171.5 77 33 4 8 90 0 32 1 0 -12076 132 118 347.3 2171.5 77 31 4 8 90 0 30 0 30 -12077 132 119 353.34 2171.5 77 32 4 8 90 0 31 0 31 -12078 132 120 359.38 2171.5 77 34 4 8 90 0 33 1 1 -12079 132 121 365.42 2171.5 77 36 4 8 90 0 35 1 3 -12080 133 0 -371.46 2186.5 1 39 4 8 71 0 38 1 6 -12081 133 1 -365.42 2186.5 1 37 4 8 71 0 36 1 4 -12082 133 2 -359.38 2186.5 1 38 4 8 71 0 37 1 5 -12083 133 3 -353.34 2186.5 1 40 4 8 71 0 39 1 7 -12084 133 4 -347.3 2186.5 2 2 4 8 71 1 41 1 9 -12085 133 5 -341.26 2186.5 2 4 4 8 71 1 43 1 11 -12086 133 6 -335.22 2186.5 2 6 4 8 71 1 45 1 13 -12087 133 7 -329.18 2186.5 6 3 4 8 72 1 42 1 10 -12088 133 8 -323.14 2186.5 6 1 4 8 72 1 40 1 8 -12089 133 9 -317.1 2186.5 5 39 4 8 72 0 38 1 6 -12090 133 10 -311.06 2186.5 5 37 4 8 72 0 36 1 4 -12091 133 11 -305.02 2186.5 5 38 4 8 72 0 37 1 5 -12092 133 12 -298.98 2186.5 5 40 4 8 72 0 39 1 7 -12093 133 13 -292.94 2186.5 9 39 4 8 73 0 38 1 6 -12094 133 14 -286.9 2186.5 9 37 4 8 73 0 36 1 4 -12095 133 15 -280.86 2186.5 9 38 4 8 73 0 37 1 5 -12096 133 16 -274.82 2186.5 9 40 4 8 73 0 39 1 7 -12097 133 17 -268.78 2186.5 10 2 4 8 73 1 41 1 9 -12098 133 18 -262.74 2186.5 10 4 4 8 73 1 43 1 11 -12099 133 19 -256.7 2186.5 13 39 4 8 74 0 38 1 6 -12100 133 20 -250.66 2186.5 13 37 4 8 74 0 36 1 4 -12101 133 21 -244.62 2186.5 13 38 4 8 74 0 37 1 5 -12102 133 22 -238.58 2186.5 13 40 4 8 74 0 39 1 7 -12103 133 23 -232.54 2186.5 14 2 4 8 74 1 41 1 9 -12104 133 24 -226.5 2186.5 14 4 4 8 74 1 43 1 11 -12105 133 25 -220.46 2186.5 17 39 4 8 75 0 38 1 6 -12106 133 26 -214.42 2186.5 17 37 4 8 75 0 36 1 4 -12107 133 27 -208.38 2186.5 17 38 4 8 75 0 37 1 5 -12108 133 28 -202.34 2186.5 17 40 4 8 75 0 39 1 7 -12109 133 29 -196.3 2186.5 18 2 4 8 75 1 41 1 9 -12110 133 30 -190.26 2186.5 18 4 4 8 75 1 43 1 11 -12111 133 31 -184.22 2186.5 21 39 4 8 76 0 38 1 6 -12112 133 32 -178.18 2186.5 21 37 4 8 76 0 36 1 4 -12113 133 33 -172.14 2186.5 21 38 4 8 76 0 37 1 5 -12114 133 34 -166.1 2186.5 21 40 4 8 76 0 39 1 7 -12115 133 35 -160.06 2186.5 22 2 4 8 76 1 41 1 9 -12116 133 36 -154.02 2186.5 22 4 4 8 76 1 43 1 11 -12117 133 37 -147.98 2186.5 26 5 4 8 77 1 44 1 12 -12118 133 38 -141.94 2186.5 26 3 4 8 77 1 42 1 10 -12119 133 39 -135.9 2186.5 26 1 4 8 77 1 40 1 8 -12120 133 40 -129.86 2186.5 25 39 4 8 77 0 38 1 6 -12121 133 41 -123.82 2186.5 25 37 4 8 77 0 36 1 4 -12122 133 42 -117.78 2186.5 25 38 4 8 77 0 37 1 5 -12123 133 43 -111.74 2186.5 25 40 4 8 77 0 39 1 7 -12124 133 44 -105.7 2186.5 29 39 4 8 78 0 38 1 6 -12125 133 45 -99.66 2186.5 29 37 4 8 78 0 36 1 4 -12126 133 46 -93.62 2186.5 29 38 4 8 78 0 37 1 5 -12127 133 47 -87.58 2186.5 29 40 4 8 78 0 39 1 7 -12128 133 48 -81.54 2186.5 30 2 4 8 78 1 41 1 9 -12129 133 49 -75.5 2186.5 30 4 4 8 78 1 43 1 11 -12130 133 50 -69.46 2186.5 33 39 4 8 79 0 38 1 6 -12131 133 51 -63.42 2186.5 33 37 4 8 79 0 36 1 4 -12132 133 52 -57.38 2186.5 33 38 4 8 79 0 37 1 5 -12133 133 53 -51.34 2186.5 33 40 4 8 79 0 39 1 7 -12134 133 54 -45.3 2186.5 34 2 4 8 79 1 41 1 9 -12135 133 55 -39.26 2186.5 34 4 4 8 79 1 43 1 11 -12136 133 56 -33.22 2186.5 37 39 4 8 80 0 38 1 6 -12137 133 57 -27.18 2186.5 37 37 4 8 80 0 36 1 4 -12138 133 58 -21.14 2186.5 37 38 4 8 80 0 37 1 5 -12139 133 59 -15.1 2186.5 37 40 4 8 80 0 39 1 7 -12140 133 60 -9.06 2186.5 38 2 4 8 80 1 41 1 9 -12141 133 61 -3.02 2186.5 38 4 4 8 80 1 43 1 11 -12142 133 62 3.02 2186.5 42 3 4 8 81 1 42 1 10 -12143 133 63 9.06 2186.5 42 1 4 8 81 1 40 1 8 -12144 133 64 15.1 2186.5 41 39 4 8 81 0 38 1 6 -12145 133 65 21.14 2186.5 41 37 4 8 81 0 36 1 4 -12146 133 66 27.18 2186.5 41 38 4 8 81 0 37 1 5 -12147 133 67 33.22 2186.5 41 40 4 8 81 0 39 1 7 -12148 133 68 39.26 2186.5 46 3 4 8 82 1 42 1 10 -12149 133 69 45.3 2186.5 46 1 4 8 82 1 40 1 8 -12150 133 70 51.34 2186.5 45 39 4 8 82 0 38 1 6 -12151 133 71 57.38 2186.5 45 37 4 8 82 0 36 1 4 -12152 133 72 63.42 2186.5 45 38 4 8 82 0 37 1 5 -12153 133 73 69.46 2186.5 45 40 4 8 82 0 39 1 7 -12154 133 74 75.5 2186.5 50 3 4 8 83 1 42 1 10 -12155 133 75 81.54 2186.5 50 1 4 8 83 1 40 1 8 -12156 133 76 87.58 2186.5 49 39 4 8 83 0 38 1 6 -12157 133 77 93.62 2186.5 49 37 4 8 83 0 36 1 4 -12158 133 78 99.66 2186.5 49 38 4 8 83 0 37 1 5 -12159 133 79 105.7 2186.5 49 40 4 8 83 0 39 1 7 -12160 133 80 111.74 2186.5 53 39 4 8 84 0 38 1 6 -12161 133 81 117.78 2186.5 53 37 4 8 84 0 36 1 4 -12162 133 82 123.82 2186.5 53 38 4 8 84 0 37 1 5 -12163 133 83 129.86 2186.5 53 40 4 8 84 0 39 1 7 -12164 133 84 135.9 2186.5 54 2 4 8 84 1 41 1 9 -12165 133 85 141.94 2186.5 54 4 4 8 84 1 43 1 11 -12166 133 86 147.98 2186.5 54 6 4 8 84 1 45 1 13 -12167 133 87 154.02 2186.5 58 3 4 8 85 1 42 1 10 -12168 133 88 160.06 2186.5 58 1 4 8 85 1 40 1 8 -12169 133 89 166.1 2186.5 57 39 4 8 85 0 38 1 6 -12170 133 90 172.14 2186.5 57 37 4 8 85 0 36 1 4 -12171 133 91 178.18 2186.5 57 38 4 8 85 0 37 1 5 -12172 133 92 184.22 2186.5 57 40 4 8 85 0 39 1 7 -12173 133 93 190.26 2186.5 62 3 4 8 86 1 42 1 10 -12174 133 94 196.3 2186.5 62 1 4 8 86 1 40 1 8 -12175 133 95 202.34 2186.5 61 39 4 8 86 0 38 1 6 -12176 133 96 208.38 2186.5 61 37 4 8 86 0 36 1 4 -12177 133 97 214.42 2186.5 61 38 4 8 86 0 37 1 5 -12178 133 98 220.46 2186.5 61 40 4 8 86 0 39 1 7 -12179 133 99 226.5 2186.5 66 3 4 8 87 1 42 1 10 -12180 133 100 232.54 2186.5 66 1 4 8 87 1 40 1 8 -12181 133 101 238.58 2186.5 65 39 4 8 87 0 38 1 6 -12182 133 102 244.62 2186.5 65 37 4 8 87 0 36 1 4 -12183 133 103 250.66 2186.5 65 38 4 8 87 0 37 1 5 -12184 133 104 256.7 2186.5 65 40 4 8 87 0 39 1 7 -12185 133 105 262.74 2186.5 70 3 4 8 88 1 42 1 10 -12186 133 106 268.78 2186.5 70 1 4 8 88 1 40 1 8 -12187 133 107 274.82 2186.5 69 39 4 8 88 0 38 1 6 -12188 133 108 280.86 2186.5 69 37 4 8 88 0 36 1 4 -12189 133 109 286.9 2186.5 69 38 4 8 88 0 37 1 5 -12190 133 110 292.94 2186.5 69 40 4 8 88 0 39 1 7 -12191 133 111 298.98 2186.5 73 39 4 8 89 0 38 1 6 -12192 133 112 305.02 2186.5 73 37 4 8 89 0 36 1 4 -12193 133 113 311.06 2186.5 73 38 4 8 89 0 37 1 5 -12194 133 114 317.1 2186.5 73 40 4 8 89 0 39 1 7 -12195 133 115 323.14 2186.5 74 2 4 8 89 1 41 1 9 -12196 133 116 329.18 2186.5 74 4 4 8 89 1 43 1 11 -12197 133 117 335.22 2186.5 78 5 4 8 90 1 44 1 12 -12198 133 118 341.26 2186.5 78 3 4 8 90 1 42 1 10 -12199 133 119 347.3 2186.5 78 1 4 8 90 1 40 1 8 -12200 133 120 353.34 2186.5 77 39 4 8 90 0 38 1 6 -12201 133 121 359.38 2186.5 77 37 4 8 90 0 36 1 4 -12202 133 122 365.42 2186.5 77 38 4 8 90 0 37 1 5 -12203 133 123 371.46 2186.5 77 40 4 8 90 0 39 1 7 -12204 134 0 -371.46 2201.5 2 7 4 8 71 1 46 1 14 -12205 134 1 -365.42 2201.5 2 5 4 8 71 1 44 1 12 -12206 134 2 -359.38 2201.5 2 3 4 8 71 1 42 1 10 -12207 134 3 -353.34 2201.5 2 1 4 8 71 1 40 1 8 -12208 134 4 -347.3 2201.5 2 8 4 8 71 1 47 1 15 -12209 134 5 -341.26 2201.5 2 10 4 8 71 1 49 1 17 -12210 134 6 -335.22 2201.5 6 9 4 8 72 1 48 1 16 -12211 134 7 -329.18 2201.5 6 7 4 8 72 1 46 1 14 -12212 134 8 -323.14 2201.5 6 5 4 8 72 1 44 1 12 -12213 134 9 -317.1 2201.5 6 2 4 8 72 1 41 1 9 -12214 134 10 -311.06 2201.5 6 4 4 8 72 1 43 1 11 -12215 134 11 -305.02 2201.5 6 6 4 8 72 1 45 1 13 -12216 134 12 -298.98 2201.5 10 7 4 8 73 1 46 1 14 -12217 134 13 -292.94 2201.5 10 5 4 8 73 1 44 1 12 -12218 134 14 -286.9 2201.5 10 3 4 8 73 1 42 1 10 -12219 134 15 -280.86 2201.5 10 1 4 8 73 1 40 1 8 -12220 134 16 -274.82 2201.5 10 6 4 8 73 1 45 1 13 -12221 134 17 -268.78 2201.5 10 8 4 8 73 1 47 1 15 -12222 134 18 -262.74 2201.5 10 10 4 8 73 1 49 1 17 -12223 134 19 -256.7 2201.5 14 7 4 8 74 1 46 1 14 -12224 134 20 -250.66 2201.5 14 5 4 8 74 1 44 1 12 -12225 134 21 -244.62 2201.5 14 3 4 8 74 1 42 1 10 -12226 134 22 -238.58 2201.5 14 1 4 8 74 1 40 1 8 -12227 134 23 -232.54 2201.5 14 6 4 8 74 1 45 1 13 -12228 134 24 -226.5 2201.5 14 8 4 8 74 1 47 1 15 -12229 134 25 -220.46 2201.5 18 7 4 8 75 1 46 1 14 -12230 134 26 -214.42 2201.5 18 5 4 8 75 1 44 1 12 -12231 134 27 -208.38 2201.5 18 3 4 8 75 1 42 1 10 -12232 134 28 -202.34 2201.5 18 1 4 8 75 1 40 1 8 -12233 134 29 -196.3 2201.5 18 6 4 8 75 1 45 1 13 -12234 134 30 -190.26 2201.5 18 8 4 8 75 1 47 1 15 -12235 134 31 -184.22 2201.5 22 7 4 8 76 1 46 1 14 -12236 134 32 -178.18 2201.5 22 5 4 8 76 1 44 1 12 -12237 134 33 -172.14 2201.5 22 3 4 8 76 1 42 1 10 -12238 134 34 -166.1 2201.5 22 1 4 8 76 1 40 1 8 -12239 134 35 -160.06 2201.5 22 6 4 8 76 1 45 1 13 -12240 134 36 -154.02 2201.5 22 8 4 8 76 1 47 1 15 -12241 134 37 -147.98 2201.5 26 9 4 8 77 1 48 1 16 -12242 134 38 -141.94 2201.5 26 7 4 8 77 1 46 1 14 -12243 134 39 -135.9 2201.5 26 2 4 8 77 1 41 1 9 -12244 134 40 -129.86 2201.5 26 4 4 8 77 1 43 1 11 -12245 134 41 -123.82 2201.5 26 6 4 8 77 1 45 1 13 -12246 134 42 -117.78 2201.5 26 8 4 8 77 1 47 1 15 -12247 134 43 -111.74 2201.5 30 7 4 8 78 1 46 1 14 -12248 134 44 -105.7 2201.5 30 5 4 8 78 1 44 1 12 -12249 134 45 -99.66 2201.5 30 3 4 8 78 1 42 1 10 -12250 134 46 -93.62 2201.5 30 1 4 8 78 1 40 1 8 -12251 134 47 -87.58 2201.5 30 6 4 8 78 1 45 1 13 -12252 134 48 -81.54 2201.5 30 8 4 8 78 1 47 1 15 -12253 134 49 -75.5 2201.5 30 10 4 8 78 1 49 1 17 -12254 134 50 -69.46 2201.5 34 5 4 8 79 1 44 1 12 -12255 134 51 -63.42 2201.5 34 3 4 8 79 1 42 1 10 -12256 134 52 -57.38 2201.5 34 1 4 8 79 1 40 1 8 -12257 134 53 -51.34 2201.5 34 6 4 8 79 1 45 1 13 -12258 134 54 -45.3 2201.5 34 8 4 8 79 1 47 1 15 -12259 134 55 -39.26 2201.5 34 10 4 8 79 1 49 1 17 -12260 134 56 -33.22 2201.5 38 5 4 8 80 1 44 1 12 -12261 134 57 -27.18 2201.5 38 3 4 8 80 1 42 1 10 -12262 134 58 -21.14 2201.5 38 1 4 8 80 1 40 1 8 -12263 134 59 -15.1 2201.5 38 6 4 8 80 1 45 1 13 -12264 134 60 -9.06 2201.5 38 8 4 8 80 1 47 1 15 -12265 134 61 -3.02 2201.5 38 10 4 8 80 1 49 1 17 -12266 134 62 3.02 2201.5 42 9 4 8 81 1 48 1 16 -12267 134 63 9.06 2201.5 42 7 4 8 81 1 46 1 14 -12268 134 64 15.1 2201.5 42 5 4 8 81 1 44 1 12 -12269 134 65 21.14 2201.5 42 2 4 8 81 1 41 1 9 -12270 134 66 27.18 2201.5 42 4 4 8 81 1 43 1 11 -12271 134 67 33.22 2201.5 42 6 4 8 81 1 45 1 13 -12272 134 68 39.26 2201.5 46 9 4 8 82 1 48 1 16 -12273 134 69 45.3 2201.5 46 7 4 8 82 1 46 1 14 -12274 134 70 51.34 2201.5 46 5 4 8 82 1 44 1 12 -12275 134 71 57.38 2201.5 46 2 4 8 82 1 41 1 9 -12276 134 72 63.42 2201.5 46 4 4 8 82 1 43 1 11 -12277 134 73 69.46 2201.5 46 6 4 8 82 1 45 1 13 -12278 134 74 75.5 2201.5 50 9 4 8 83 1 48 1 16 -12279 134 75 81.54 2201.5 50 7 4 8 83 1 46 1 14 -12280 134 76 87.58 2201.5 50 5 4 8 83 1 44 1 12 -12281 134 77 93.62 2201.5 50 2 4 8 83 1 41 1 9 -12282 134 78 99.66 2201.5 50 4 4 8 83 1 43 1 11 -12283 134 79 105.7 2201.5 50 6 4 8 83 1 45 1 13 -12284 134 80 111.74 2201.5 50 8 4 8 83 1 47 1 15 -12285 134 81 117.78 2201.5 54 7 4 8 84 1 46 1 14 -12286 134 82 123.82 2201.5 54 5 4 8 84 1 44 1 12 -12287 134 83 129.86 2201.5 54 3 4 8 84 1 42 1 10 -12288 134 84 135.9 2201.5 54 1 4 8 84 1 40 1 8 -12289 134 85 141.94 2201.5 54 8 4 8 84 1 47 1 15 -12290 134 86 147.98 2201.5 54 10 4 8 84 1 49 1 17 -12291 134 87 154.02 2201.5 58 7 4 8 85 1 46 1 14 -12292 134 88 160.06 2201.5 58 5 4 8 85 1 44 1 12 -12293 134 89 166.1 2201.5 58 2 4 8 85 1 41 1 9 -12294 134 90 172.14 2201.5 58 4 4 8 85 1 43 1 11 -12295 134 91 178.18 2201.5 58 6 4 8 85 1 45 1 13 -12296 134 92 184.22 2201.5 58 8 4 8 85 1 47 1 15 -12297 134 93 190.26 2201.5 62 7 4 8 86 1 46 1 14 -12298 134 94 196.3 2201.5 62 5 4 8 86 1 44 1 12 -12299 134 95 202.34 2201.5 62 2 4 8 86 1 41 1 9 -12300 134 96 208.38 2201.5 62 4 4 8 86 1 43 1 11 -12301 134 97 214.42 2201.5 62 6 4 8 86 1 45 1 13 -12302 134 98 220.46 2201.5 62 8 4 8 86 1 47 1 15 -12303 134 99 226.5 2201.5 66 7 4 8 87 1 46 1 14 -12304 134 100 232.54 2201.5 66 5 4 8 87 1 44 1 12 -12305 134 101 238.58 2201.5 66 2 4 8 87 1 41 1 9 -12306 134 102 244.62 2201.5 66 4 4 8 87 1 43 1 11 -12307 134 103 250.66 2201.5 66 6 4 8 87 1 45 1 13 -12308 134 104 256.7 2201.5 66 8 4 8 87 1 47 1 15 -12309 134 105 262.74 2201.5 70 9 4 8 88 1 48 1 16 -12310 134 106 268.78 2201.5 70 7 4 8 88 1 46 1 14 -12311 134 107 274.82 2201.5 70 5 4 8 88 1 44 1 12 -12312 134 108 280.86 2201.5 70 2 4 8 88 1 41 1 9 -12313 134 109 286.9 2201.5 70 4 4 8 88 1 43 1 11 -12314 134 110 292.94 2201.5 70 6 4 8 88 1 45 1 13 -12315 134 111 298.98 2201.5 70 8 4 8 88 1 47 1 15 -12316 134 112 305.02 2201.5 74 5 4 8 89 1 44 1 12 -12317 134 113 311.06 2201.5 74 3 4 8 89 1 42 1 10 -12318 134 114 317.1 2201.5 74 1 4 8 89 1 40 1 8 -12319 134 115 323.14 2201.5 74 6 4 8 89 1 45 1 13 -12320 134 116 329.18 2201.5 74 8 4 8 89 1 47 1 15 -12321 134 117 335.22 2201.5 74 10 4 8 89 1 49 1 17 -12322 134 118 341.26 2201.5 78 9 4 8 90 1 48 1 16 -12323 134 119 347.3 2201.5 78 7 4 8 90 1 46 1 14 -12324 134 120 353.34 2201.5 78 2 4 8 90 1 41 1 9 -12325 134 121 359.38 2201.5 78 4 4 8 90 1 43 1 11 -12326 134 122 365.42 2201.5 78 6 4 8 90 1 45 1 13 -12327 134 123 371.46 2201.5 78 8 4 8 90 1 47 1 15 -12328 135 0 -371.46 2216.5 2 13 4 8 71 1 52 1 20 -12329 135 1 -365.42 2216.5 2 11 4 8 71 1 50 1 18 -12330 135 2 -359.38 2216.5 2 9 4 8 71 1 48 1 16 -12331 135 3 -353.34 2216.5 2 12 4 8 71 1 51 1 19 -12332 135 4 -347.3 2216.5 2 14 4 8 71 1 53 1 21 -12333 135 5 -341.26 2216.5 2 16 4 8 71 1 55 1 23 -12334 135 6 -335.22 2216.5 6 15 4 8 72 1 54 1 22 -12335 135 7 -329.18 2216.5 6 13 4 8 72 1 52 1 20 -12336 135 8 -323.14 2216.5 6 11 4 8 72 1 50 1 18 -12337 135 9 -317.1 2216.5 6 8 4 8 72 1 47 1 15 -12338 135 10 -311.06 2216.5 6 10 4 8 72 1 49 1 17 -12339 135 11 -305.02 2216.5 6 12 4 8 72 1 51 1 19 -12340 135 12 -298.98 2216.5 10 13 4 8 73 1 52 1 20 -12341 135 13 -292.94 2216.5 10 11 4 8 73 1 50 1 18 -12342 135 14 -286.9 2216.5 10 9 4 8 73 1 48 1 16 -12343 135 15 -280.86 2216.5 10 12 4 8 73 1 51 1 19 -12344 135 16 -274.82 2216.5 10 14 4 8 73 1 53 1 21 -12345 135 17 -268.78 2216.5 10 16 4 8 73 1 55 1 23 -12346 135 18 -262.74 2216.5 14 15 4 8 74 1 54 1 22 -12347 135 19 -256.7 2216.5 14 13 4 8 74 1 52 1 20 -12348 135 20 -250.66 2216.5 14 11 4 8 74 1 50 1 18 -12349 135 21 -244.62 2216.5 14 9 4 8 74 1 48 1 16 -12350 135 22 -238.58 2216.5 14 10 4 8 74 1 49 1 17 -12351 135 23 -232.54 2216.5 14 12 4 8 74 1 51 1 19 -12352 135 24 -226.5 2216.5 14 14 4 8 74 1 53 1 21 -12353 135 25 -220.46 2216.5 18 13 4 8 75 1 52 1 20 -12354 135 26 -214.42 2216.5 18 11 4 8 75 1 50 1 18 -12355 135 27 -208.38 2216.5 18 9 4 8 75 1 48 1 16 -12356 135 28 -202.34 2216.5 18 10 4 8 75 1 49 1 17 -12357 135 29 -196.3 2216.5 18 12 4 8 75 1 51 1 19 -12358 135 30 -190.26 2216.5 18 14 4 8 75 1 53 1 21 -12359 135 31 -184.22 2216.5 22 13 4 8 76 1 52 1 20 -12360 135 32 -178.18 2216.5 22 11 4 8 76 1 50 1 18 -12361 135 33 -172.14 2216.5 22 9 4 8 76 1 48 1 16 -12362 135 34 -166.1 2216.5 22 10 4 8 76 1 49 1 17 -12363 135 35 -160.06 2216.5 22 12 4 8 76 1 51 1 19 -12364 135 36 -154.02 2216.5 22 14 4 8 76 1 53 1 21 -12365 135 37 -147.98 2216.5 26 15 4 8 77 1 54 1 22 -12366 135 38 -141.94 2216.5 26 13 4 8 77 1 52 1 20 -12367 135 39 -135.9 2216.5 26 11 4 8 77 1 50 1 18 -12368 135 40 -129.86 2216.5 26 10 4 8 77 1 49 1 17 -12369 135 41 -123.82 2216.5 26 12 4 8 77 1 51 1 19 -12370 135 42 -117.78 2216.5 26 14 4 8 77 1 53 1 21 -12371 135 43 -111.74 2216.5 30 15 4 8 78 1 54 1 22 -12372 135 44 -105.7 2216.5 30 13 4 8 78 1 52 1 20 -12373 135 45 -99.66 2216.5 30 11 4 8 78 1 50 1 18 -12374 135 46 -93.62 2216.5 30 9 4 8 78 1 48 1 16 -12375 135 47 -87.58 2216.5 30 12 4 8 78 1 51 1 19 -12376 135 48 -81.54 2216.5 30 14 4 8 78 1 53 1 21 -12377 135 49 -75.5 2216.5 30 16 4 8 78 1 55 1 23 -12378 135 50 -69.46 2216.5 34 11 4 8 79 1 50 1 18 -12379 135 51 -63.42 2216.5 34 9 4 8 79 1 48 1 16 -12380 135 52 -57.38 2216.5 34 7 4 8 79 1 46 1 14 -12381 135 53 -51.34 2216.5 34 12 4 8 79 1 51 1 19 -12382 135 54 -45.3 2216.5 34 14 4 8 79 1 53 1 21 -12383 135 55 -39.26 2216.5 34 16 4 8 79 1 55 1 23 -12384 135 56 -33.22 2216.5 38 11 4 8 80 1 50 1 18 -12385 135 57 -27.18 2216.5 38 9 4 8 80 1 48 1 16 -12386 135 58 -21.14 2216.5 38 7 4 8 80 1 46 1 14 -12387 135 59 -15.1 2216.5 38 12 4 8 80 1 51 1 19 -12388 135 60 -9.06 2216.5 38 14 4 8 80 1 53 1 21 -12389 135 61 -3.02 2216.5 38 16 4 8 80 1 55 1 23 -12390 135 62 3.02 2216.5 42 15 4 8 81 1 54 1 22 -12391 135 63 9.06 2216.5 42 13 4 8 81 1 52 1 20 -12392 135 64 15.1 2216.5 42 11 4 8 81 1 50 1 18 -12393 135 65 21.14 2216.5 42 8 4 8 81 1 47 1 15 -12394 135 66 27.18 2216.5 42 10 4 8 81 1 49 1 17 -12395 135 67 33.22 2216.5 42 12 4 8 81 1 51 1 19 -12396 135 68 39.26 2216.5 46 15 4 8 82 1 54 1 22 -12397 135 69 45.3 2216.5 46 13 4 8 82 1 52 1 20 -12398 135 70 51.34 2216.5 46 11 4 8 82 1 50 1 18 -12399 135 71 57.38 2216.5 46 8 4 8 82 1 47 1 15 -12400 135 72 63.42 2216.5 46 10 4 8 82 1 49 1 17 -12401 135 73 69.46 2216.5 46 12 4 8 82 1 51 1 19 -12402 135 74 75.5 2216.5 50 15 4 8 83 1 54 1 22 -12403 135 75 81.54 2216.5 50 13 4 8 83 1 52 1 20 -12404 135 76 87.58 2216.5 50 11 4 8 83 1 50 1 18 -12405 135 77 93.62 2216.5 50 10 4 8 83 1 49 1 17 -12406 135 78 99.66 2216.5 50 12 4 8 83 1 51 1 19 -12407 135 79 105.7 2216.5 50 14 4 8 83 1 53 1 21 -12408 135 80 111.74 2216.5 50 16 4 8 83 1 55 1 23 -12409 135 81 117.78 2216.5 54 13 4 8 84 1 52 1 20 -12410 135 82 123.82 2216.5 54 11 4 8 84 1 50 1 18 -12411 135 83 129.86 2216.5 54 9 4 8 84 1 48 1 16 -12412 135 84 135.9 2216.5 54 12 4 8 84 1 51 1 19 -12413 135 85 141.94 2216.5 54 14 4 8 84 1 53 1 21 -12414 135 86 147.98 2216.5 54 16 4 8 84 1 55 1 23 -12415 135 87 154.02 2216.5 58 13 4 8 85 1 52 1 20 -12416 135 88 160.06 2216.5 58 11 4 8 85 1 50 1 18 -12417 135 89 166.1 2216.5 58 9 4 8 85 1 48 1 16 -12418 135 90 172.14 2216.5 58 10 4 8 85 1 49 1 17 -12419 135 91 178.18 2216.5 58 12 4 8 85 1 51 1 19 -12420 135 92 184.22 2216.5 58 14 4 8 85 1 53 1 21 -12421 135 93 190.26 2216.5 62 13 4 8 86 1 52 1 20 -12422 135 94 196.3 2216.5 62 11 4 8 86 1 50 1 18 -12423 135 95 202.34 2216.5 62 9 4 8 86 1 48 1 16 -12424 135 96 208.38 2216.5 62 10 4 8 86 1 49 1 17 -12425 135 97 214.42 2216.5 62 12 4 8 86 1 51 1 19 -12426 135 98 220.46 2216.5 62 14 4 8 86 1 53 1 21 -12427 135 99 226.5 2216.5 66 13 4 8 87 1 52 1 20 -12428 135 100 232.54 2216.5 66 11 4 8 87 1 50 1 18 -12429 135 101 238.58 2216.5 66 9 4 8 87 1 48 1 16 -12430 135 102 244.62 2216.5 66 10 4 8 87 1 49 1 17 -12431 135 103 250.66 2216.5 66 12 4 8 87 1 51 1 19 -12432 135 104 256.7 2216.5 66 14 4 8 87 1 53 1 21 -12433 135 105 262.74 2216.5 66 16 4 8 87 1 55 1 23 -12434 135 106 268.78 2216.5 70 15 4 8 88 1 54 1 22 -12435 135 107 274.82 2216.5 70 13 4 8 88 1 52 1 20 -12436 135 108 280.86 2216.5 70 11 4 8 88 1 50 1 18 -12437 135 109 286.9 2216.5 70 10 4 8 88 1 49 1 17 -12438 135 110 292.94 2216.5 70 12 4 8 88 1 51 1 19 -12439 135 111 298.98 2216.5 70 14 4 8 88 1 53 1 21 -12440 135 112 305.02 2216.5 74 11 4 8 89 1 50 1 18 -12441 135 113 311.06 2216.5 74 9 4 8 89 1 48 1 16 -12442 135 114 317.1 2216.5 74 7 4 8 89 1 46 1 14 -12443 135 115 323.14 2216.5 74 12 4 8 89 1 51 1 19 -12444 135 116 329.18 2216.5 74 14 4 8 89 1 53 1 21 -12445 135 117 335.22 2216.5 74 16 4 8 89 1 55 1 23 -12446 135 118 341.26 2216.5 78 15 4 8 90 1 54 1 22 -12447 135 119 347.3 2216.5 78 13 4 8 90 1 52 1 20 -12448 135 120 353.34 2216.5 78 11 4 8 90 1 50 1 18 -12449 135 121 359.38 2216.5 78 10 4 8 90 1 49 1 17 -12450 135 122 365.42 2216.5 78 12 4 8 90 1 51 1 19 -12451 135 123 371.46 2216.5 78 14 4 8 90 1 53 1 21 -12452 136 0 -377.5 2231.5 2 19 4 8 71 1 58 1 26 -12453 136 1 -371.46 2231.5 2 17 4 8 71 1 56 1 24 -12454 136 2 -365.42 2231.5 2 15 4 8 71 1 54 1 22 -12455 136 3 -359.38 2231.5 2 18 4 8 71 1 57 1 25 -12456 136 4 -353.34 2231.5 2 20 4 8 71 1 59 1 27 -12457 136 5 -347.3 2231.5 2 22 4 8 71 1 61 1 29 -12458 136 6 -341.26 2231.5 6 21 4 8 72 1 60 1 28 -12459 136 7 -335.22 2231.5 6 19 4 8 72 1 58 1 26 -12460 136 8 -329.18 2231.5 6 17 4 8 72 1 56 1 24 -12461 136 9 -323.14 2231.5 6 14 4 8 72 1 53 1 21 -12462 136 10 -317.1 2231.5 6 16 4 8 72 1 55 1 23 -12463 136 11 -311.06 2231.5 6 18 4 8 72 1 57 1 25 -12464 136 12 -305.02 2231.5 6 20 4 8 72 1 59 1 27 -12465 136 13 -298.98 2231.5 10 19 4 8 73 1 58 1 26 -12466 136 14 -292.94 2231.5 10 17 4 8 73 1 56 1 24 -12467 136 15 -286.9 2231.5 10 15 4 8 73 1 54 1 22 -12468 136 16 -280.86 2231.5 10 18 4 8 73 1 57 1 25 -12469 136 17 -274.82 2231.5 10 20 4 8 73 1 59 1 27 -12470 136 18 -268.78 2231.5 10 22 4 8 73 1 61 1 29 -12471 136 19 -262.74 2231.5 14 21 4 8 74 1 60 1 28 -12472 136 20 -256.7 2231.5 14 19 4 8 74 1 58 1 26 -12473 136 21 -250.66 2231.5 14 17 4 8 74 1 56 1 24 -12474 136 22 -244.62 2231.5 14 16 4 8 74 1 55 1 23 -12475 136 23 -238.58 2231.5 14 18 4 8 74 1 57 1 25 -12476 136 24 -232.54 2231.5 14 20 4 8 74 1 59 1 27 -12477 136 25 -226.5 2231.5 18 21 4 8 75 1 60 1 28 -12478 136 26 -220.46 2231.5 18 19 4 8 75 1 58 1 26 -12479 136 27 -214.42 2231.5 18 17 4 8 75 1 56 1 24 -12480 136 28 -208.38 2231.5 18 15 4 8 75 1 54 1 22 -12481 136 29 -202.34 2231.5 18 16 4 8 75 1 55 1 23 -12482 136 30 -196.3 2231.5 18 18 4 8 75 1 57 1 25 -12483 136 31 -190.26 2231.5 18 20 4 8 75 1 59 1 27 -12484 136 32 -184.22 2231.5 22 19 4 8 76 1 58 1 26 -12485 136 33 -178.18 2231.5 22 17 4 8 76 1 56 1 24 -12486 136 34 -172.14 2231.5 22 15 4 8 76 1 54 1 22 -12487 136 35 -166.1 2231.5 22 16 4 8 76 1 55 1 23 -12488 136 36 -160.06 2231.5 22 18 4 8 76 1 57 1 25 -12489 136 37 -154.02 2231.5 22 20 4 8 76 1 59 1 27 -12490 136 38 -147.98 2231.5 26 21 4 8 77 1 60 1 28 -12491 136 39 -141.94 2231.5 26 19 4 8 77 1 58 1 26 -12492 136 40 -135.9 2231.5 26 17 4 8 77 1 56 1 24 -12493 136 41 -129.86 2231.5 26 16 4 8 77 1 55 1 23 -12494 136 42 -123.82 2231.5 26 18 4 8 77 1 57 1 25 -12495 136 43 -117.78 2231.5 26 20 4 8 77 1 59 1 27 -12496 136 44 -111.74 2231.5 30 21 4 8 78 1 60 1 28 -12497 136 45 -105.7 2231.5 30 19 4 8 78 1 58 1 26 -12498 136 46 -99.66 2231.5 30 17 4 8 78 1 56 1 24 -12499 136 47 -93.62 2231.5 30 18 4 8 78 1 57 1 25 -12500 136 48 -87.58 2231.5 30 20 4 8 78 1 59 1 27 -12501 136 49 -81.54 2231.5 30 22 4 8 78 1 61 1 29 -12502 136 50 -75.5 2231.5 34 19 4 8 79 1 58 1 26 -12503 136 51 -69.46 2231.5 34 17 4 8 79 1 56 1 24 -12504 136 52 -63.42 2231.5 34 15 4 8 79 1 54 1 22 -12505 136 53 -57.38 2231.5 34 13 4 8 79 1 52 1 20 -12506 136 54 -51.34 2231.5 34 18 4 8 79 1 57 1 25 -12507 136 55 -45.3 2231.5 34 20 4 8 79 1 59 1 27 -12508 136 56 -39.26 2231.5 34 22 4 8 79 1 61 1 29 -12509 136 57 -33.22 2231.5 38 17 4 8 80 1 56 1 24 -12510 136 58 -27.18 2231.5 38 15 4 8 80 1 54 1 22 -12511 136 59 -21.14 2231.5 38 13 4 8 80 1 52 1 20 -12512 136 60 -15.1 2231.5 38 18 4 8 80 1 57 1 25 -12513 136 61 -9.06 2231.5 38 20 4 8 80 1 59 1 27 -12514 136 62 -3.02 2231.5 38 22 4 8 80 1 61 1 29 -12515 136 63 3.02 2231.5 42 21 4 8 81 1 60 1 28 -12516 136 64 9.06 2231.5 42 19 4 8 81 1 58 1 26 -12517 136 65 15.1 2231.5 42 17 4 8 81 1 56 1 24 -12518 136 66 21.14 2231.5 42 14 4 8 81 1 53 1 21 -12519 136 67 27.18 2231.5 42 16 4 8 81 1 55 1 23 -12520 136 68 33.22 2231.5 42 18 4 8 81 1 57 1 25 -12521 136 69 39.26 2231.5 46 21 4 8 82 1 60 1 28 -12522 136 70 45.3 2231.5 46 19 4 8 82 1 58 1 26 -12523 136 71 51.34 2231.5 46 17 4 8 82 1 56 1 24 -12524 136 72 57.38 2231.5 46 14 4 8 82 1 53 1 21 -12525 136 73 63.42 2231.5 46 16 4 8 82 1 55 1 23 -12526 136 74 69.46 2231.5 46 18 4 8 82 1 57 1 25 -12527 136 75 75.5 2231.5 46 20 4 8 82 1 59 1 27 -12528 136 76 81.54 2231.5 50 21 4 8 83 1 60 1 28 -12529 136 77 87.58 2231.5 50 19 4 8 83 1 58 1 26 -12530 136 78 93.62 2231.5 50 17 4 8 83 1 56 1 24 -12531 136 79 99.66 2231.5 50 18 4 8 83 1 57 1 25 -12532 136 80 105.7 2231.5 50 20 4 8 83 1 59 1 27 -12533 136 81 111.74 2231.5 50 22 4 8 83 1 61 1 29 -12534 136 82 117.78 2231.5 54 19 4 8 84 1 58 1 26 -12535 136 83 123.82 2231.5 54 17 4 8 84 1 56 1 24 -12536 136 84 129.86 2231.5 54 15 4 8 84 1 54 1 22 -12537 136 85 135.9 2231.5 54 18 4 8 84 1 57 1 25 -12538 136 86 141.94 2231.5 54 20 4 8 84 1 59 1 27 -12539 136 87 147.98 2231.5 54 22 4 8 84 1 61 1 29 -12540 136 88 154.02 2231.5 58 19 4 8 85 1 58 1 26 -12541 136 89 160.06 2231.5 58 17 4 8 85 1 56 1 24 -12542 136 90 166.1 2231.5 58 15 4 8 85 1 54 1 22 -12543 136 91 172.14 2231.5 58 16 4 8 85 1 55 1 23 -12544 136 92 178.18 2231.5 58 18 4 8 85 1 57 1 25 -12545 136 93 184.22 2231.5 58 20 4 8 85 1 59 1 27 -12546 136 94 190.26 2231.5 62 19 4 8 86 1 58 1 26 -12547 136 95 196.3 2231.5 62 17 4 8 86 1 56 1 24 -12548 136 96 202.34 2231.5 62 15 4 8 86 1 54 1 22 -12549 136 97 208.38 2231.5 62 16 4 8 86 1 55 1 23 -12550 136 98 214.42 2231.5 62 18 4 8 86 1 57 1 25 -12551 136 99 220.46 2231.5 62 20 4 8 86 1 59 1 27 -12552 136 100 226.5 2231.5 62 22 4 8 86 1 61 1 29 -12553 136 101 232.54 2231.5 66 19 4 8 87 1 58 1 26 -12554 136 102 238.58 2231.5 66 17 4 8 87 1 56 1 24 -12555 136 103 244.62 2231.5 66 15 4 8 87 1 54 1 22 -12556 136 104 250.66 2231.5 66 18 4 8 87 1 57 1 25 -12557 136 105 256.7 2231.5 66 20 4 8 87 1 59 1 27 -12558 136 106 262.74 2231.5 66 22 4 8 87 1 61 1 29 -12559 136 107 268.78 2231.5 70 21 4 8 88 1 60 1 28 -12560 136 108 274.82 2231.5 70 19 4 8 88 1 58 1 26 -12561 136 109 280.86 2231.5 70 17 4 8 88 1 56 1 24 -12562 136 110 286.9 2231.5 70 16 4 8 88 1 55 1 23 -12563 136 111 292.94 2231.5 70 18 4 8 88 1 57 1 25 -12564 136 112 298.98 2231.5 70 20 4 8 88 1 59 1 27 -12565 136 113 305.02 2231.5 74 19 4 8 89 1 58 1 26 -12566 136 114 311.06 2231.5 74 17 4 8 89 1 56 1 24 -12567 136 115 317.1 2231.5 74 15 4 8 89 1 54 1 22 -12568 136 116 323.14 2231.5 74 13 4 8 89 1 52 1 20 -12569 136 117 329.18 2231.5 74 18 4 8 89 1 57 1 25 -12570 136 118 335.22 2231.5 74 20 4 8 89 1 59 1 27 -12571 136 119 341.26 2231.5 74 22 4 8 89 1 61 1 29 -12572 136 120 347.3 2231.5 78 21 4 8 90 1 60 1 28 -12573 136 121 353.34 2231.5 78 19 4 8 90 1 58 1 26 -12574 136 122 359.38 2231.5 78 17 4 8 90 1 56 1 24 -12575 136 123 365.42 2231.5 78 16 4 8 90 1 55 1 23 -12576 136 124 371.46 2231.5 78 18 4 8 90 1 57 1 25 -12577 136 125 377.5 2231.5 78 20 4 8 90 1 59 1 27 -12578 137 0 -377.5 2246.5 2 25 4 8 71 1 64 2 0 -12579 137 1 -371.46 2246.5 2 23 4 8 71 1 62 1 30 -12580 137 2 -365.42 2246.5 2 21 4 8 71 1 60 1 28 -12581 137 3 -359.38 2246.5 2 24 4 8 71 1 63 1 31 -12582 137 4 -353.34 2246.5 2 26 4 8 71 1 65 2 1 -12583 137 5 -347.3 2246.5 2 28 4 8 71 1 67 2 3 -12584 137 6 -341.26 2246.5 6 27 4 8 72 1 66 2 2 -12585 137 7 -335.22 2246.5 6 25 4 8 72 1 64 2 0 -12586 137 8 -329.18 2246.5 6 23 4 8 72 1 62 1 30 -12587 137 9 -323.14 2246.5 6 22 4 8 72 1 61 1 29 -12588 137 10 -317.1 2246.5 6 24 4 8 72 1 63 1 31 -12589 137 11 -311.06 2246.5 6 26 4 8 72 1 65 2 1 -12590 137 12 -305.02 2246.5 10 27 4 8 73 1 66 2 2 -12591 137 13 -298.98 2246.5 10 25 4 8 73 1 64 2 0 -12592 137 14 -292.94 2246.5 10 23 4 8 73 1 62 1 30 -12593 137 15 -286.9 2246.5 10 21 4 8 73 1 60 1 28 -12594 137 16 -280.86 2246.5 10 24 4 8 73 1 63 1 31 -12595 137 17 -274.82 2246.5 10 26 4 8 73 1 65 2 1 -12596 137 18 -268.78 2246.5 10 28 4 8 73 1 67 2 3 -12597 137 19 -262.74 2246.5 14 27 4 8 74 1 66 2 2 -12598 137 20 -256.7 2246.5 14 25 4 8 74 1 64 2 0 -12599 137 21 -250.66 2246.5 14 23 4 8 74 1 62 1 30 -12600 137 22 -244.62 2246.5 14 22 4 8 74 1 61 1 29 -12601 137 23 -238.58 2246.5 14 24 4 8 74 1 63 1 31 -12602 137 24 -232.54 2246.5 14 26 4 8 74 1 65 2 1 -12603 137 25 -226.5 2246.5 18 27 4 8 75 1 66 2 2 -12604 137 26 -220.46 2246.5 18 25 4 8 75 1 64 2 0 -12605 137 27 -214.42 2246.5 18 23 4 8 75 1 62 1 30 -12606 137 28 -208.38 2246.5 18 22 4 8 75 1 61 1 29 -12607 137 29 -202.34 2246.5 18 24 4 8 75 1 63 1 31 -12608 137 30 -196.3 2246.5 18 26 4 8 75 1 65 2 1 -12609 137 31 -190.26 2246.5 22 27 4 8 76 1 66 2 2 -12610 137 32 -184.22 2246.5 22 25 4 8 76 1 64 2 0 -12611 137 33 -178.18 2246.5 22 23 4 8 76 1 62 1 30 -12612 137 34 -172.14 2246.5 22 21 4 8 76 1 60 1 28 -12613 137 35 -166.1 2246.5 22 22 4 8 76 1 61 1 29 -12614 137 36 -160.06 2246.5 22 24 4 8 76 1 63 1 31 -12615 137 37 -154.02 2246.5 22 26 4 8 76 1 65 2 1 -12616 137 38 -147.98 2246.5 26 27 4 8 77 1 66 2 2 -12617 137 39 -141.94 2246.5 26 25 4 8 77 1 64 2 0 -12618 137 40 -135.9 2246.5 26 23 4 8 77 1 62 1 30 -12619 137 41 -129.86 2246.5 26 22 4 8 77 1 61 1 29 -12620 137 42 -123.82 2246.5 26 24 4 8 77 1 63 1 31 -12621 137 43 -117.78 2246.5 26 26 4 8 77 1 65 2 1 -12622 137 44 -111.74 2246.5 30 27 4 8 78 1 66 2 2 -12623 137 45 -105.7 2246.5 30 25 4 8 78 1 64 2 0 -12624 137 46 -99.66 2246.5 30 23 4 8 78 1 62 1 30 -12625 137 47 -93.62 2246.5 30 24 4 8 78 1 63 1 31 -12626 137 48 -87.58 2246.5 30 26 4 8 78 1 65 2 1 -12627 137 49 -81.54 2246.5 30 28 4 8 78 1 67 2 3 -12628 137 50 -75.5 2246.5 34 27 4 8 79 1 66 2 2 -12629 137 51 -69.46 2246.5 34 25 4 8 79 1 64 2 0 -12630 137 52 -63.42 2246.5 34 23 4 8 79 1 62 1 30 -12631 137 53 -57.38 2246.5 34 21 4 8 79 1 60 1 28 -12632 137 54 -51.34 2246.5 34 24 4 8 79 1 63 1 31 -12633 137 55 -45.3 2246.5 34 26 4 8 79 1 65 2 1 -12634 137 56 -39.26 2246.5 34 28 4 8 79 1 67 2 3 -12635 137 57 -33.22 2246.5 38 23 4 8 80 1 62 1 30 -12636 137 58 -27.18 2246.5 38 21 4 8 80 1 60 1 28 -12637 137 59 -21.14 2246.5 38 19 4 8 80 1 58 1 26 -12638 137 60 -15.1 2246.5 38 24 4 8 80 1 63 1 31 -12639 137 61 -9.06 2246.5 38 26 4 8 80 1 65 2 1 -12640 137 62 -3.02 2246.5 38 28 4 8 80 1 67 2 3 -12641 137 63 3.02 2246.5 42 27 4 8 81 1 66 2 2 -12642 137 64 9.06 2246.5 42 25 4 8 81 1 64 2 0 -12643 137 65 15.1 2246.5 42 23 4 8 81 1 62 1 30 -12644 137 66 21.14 2246.5 42 20 4 8 81 1 59 1 27 -12645 137 67 27.18 2246.5 42 22 4 8 81 1 61 1 29 -12646 137 68 33.22 2246.5 42 24 4 8 81 1 63 1 31 -12647 137 69 39.26 2246.5 46 27 4 8 82 1 66 2 2 -12648 137 70 45.3 2246.5 46 25 4 8 82 1 64 2 0 -12649 137 71 51.34 2246.5 46 23 4 8 82 1 62 1 30 -12650 137 72 57.38 2246.5 46 22 4 8 82 1 61 1 29 -12651 137 73 63.42 2246.5 46 24 4 8 82 1 63 1 31 -12652 137 74 69.46 2246.5 46 26 4 8 82 1 65 2 1 -12653 137 75 75.5 2246.5 46 28 4 8 82 1 67 2 3 -12654 137 76 81.54 2246.5 50 27 4 8 83 1 66 2 2 -12655 137 77 87.58 2246.5 50 25 4 8 83 1 64 2 0 -12656 137 78 93.62 2246.5 50 23 4 8 83 1 62 1 30 -12657 137 79 99.66 2246.5 50 24 4 8 83 1 63 1 31 -12658 137 80 105.7 2246.5 50 26 4 8 83 1 65 2 1 -12659 137 81 111.74 2246.5 50 28 4 8 83 1 67 2 3 -12660 137 82 117.78 2246.5 54 25 4 8 84 1 64 2 0 -12661 137 83 123.82 2246.5 54 23 4 8 84 1 62 1 30 -12662 137 84 129.86 2246.5 54 21 4 8 84 1 60 1 28 -12663 137 85 135.9 2246.5 54 24 4 8 84 1 63 1 31 -12664 137 86 141.94 2246.5 54 26 4 8 84 1 65 2 1 -12665 137 87 147.98 2246.5 54 28 4 8 84 1 67 2 3 -12666 137 88 154.02 2246.5 58 25 4 8 85 1 64 2 0 -12667 137 89 160.06 2246.5 58 23 4 8 85 1 62 1 30 -12668 137 90 166.1 2246.5 58 21 4 8 85 1 60 1 28 -12669 137 91 172.14 2246.5 58 22 4 8 85 1 61 1 29 -12670 137 92 178.18 2246.5 58 24 4 8 85 1 63 1 31 -12671 137 93 184.22 2246.5 58 26 4 8 85 1 65 2 1 -12672 137 94 190.26 2246.5 58 28 4 8 85 1 67 2 3 -12673 137 95 196.3 2246.5 62 25 4 8 86 1 64 2 0 -12674 137 96 202.34 2246.5 62 23 4 8 86 1 62 1 30 -12675 137 97 208.38 2246.5 62 21 4 8 86 1 60 1 28 -12676 137 98 214.42 2246.5 62 24 4 8 86 1 63 1 31 -12677 137 99 220.46 2246.5 62 26 4 8 86 1 65 2 1 -12678 137 100 226.5 2246.5 62 28 4 8 86 1 67 2 3 -12679 137 101 232.54 2246.5 66 25 4 8 87 1 64 2 0 -12680 137 102 238.58 2246.5 66 23 4 8 87 1 62 1 30 -12681 137 103 244.62 2246.5 66 21 4 8 87 1 60 1 28 -12682 137 104 250.66 2246.5 66 24 4 8 87 1 63 1 31 -12683 137 105 256.7 2246.5 66 26 4 8 87 1 65 2 1 -12684 137 106 262.74 2246.5 66 28 4 8 87 1 67 2 3 -12685 137 107 268.78 2246.5 70 27 4 8 88 1 66 2 2 -12686 137 108 274.82 2246.5 70 25 4 8 88 1 64 2 0 -12687 137 109 280.86 2246.5 70 23 4 8 88 1 62 1 30 -12688 137 110 286.9 2246.5 70 22 4 8 88 1 61 1 29 -12689 137 111 292.94 2246.5 70 24 4 8 88 1 63 1 31 -12690 137 112 298.98 2246.5 70 26 4 8 88 1 65 2 1 -12691 137 113 305.02 2246.5 70 28 4 8 88 1 67 2 3 -12692 137 114 311.06 2246.5 74 25 4 8 89 1 64 2 0 -12693 137 115 317.1 2246.5 74 23 4 8 89 1 62 1 30 -12694 137 116 323.14 2246.5 74 21 4 8 89 1 60 1 28 -12695 137 117 329.18 2246.5 74 24 4 8 89 1 63 1 31 -12696 137 118 335.22 2246.5 74 26 4 8 89 1 65 2 1 -12697 137 119 341.26 2246.5 74 28 4 8 89 1 67 2 3 -12698 137 120 347.3 2246.5 78 27 4 8 90 1 66 2 2 -12699 137 121 353.34 2246.5 78 25 4 8 90 1 64 2 0 -12700 137 122 359.38 2246.5 78 23 4 8 90 1 62 1 30 -12701 137 123 365.42 2246.5 78 22 4 8 90 1 61 1 29 -12702 137 124 371.46 2246.5 78 24 4 8 90 1 63 1 31 -12703 137 125 377.5 2246.5 78 26 4 8 90 1 65 2 1 -12704 138 0 -383.54 2261.5 2 33 4 8 71 1 72 2 8 -12705 138 1 -377.5 2261.5 2 31 4 8 71 1 70 2 6 -12706 138 2 -371.46 2261.5 2 29 4 8 71 1 68 2 4 -12707 138 3 -365.42 2261.5 2 27 4 8 71 1 66 2 2 -12708 138 4 -359.38 2261.5 2 30 4 8 71 1 69 2 5 -12709 138 5 -353.34 2261.5 2 32 4 8 71 1 71 2 7 -12710 138 6 -347.3 2261.5 2 34 4 8 71 1 73 2 9 -12711 138 7 -341.26 2261.5 6 33 4 8 72 1 72 2 8 -12712 138 8 -335.22 2261.5 6 31 4 8 72 1 70 2 6 -12713 138 9 -329.18 2261.5 6 29 4 8 72 1 68 2 4 -12714 138 10 -323.14 2261.5 6 28 4 8 72 1 67 2 3 -12715 138 11 -317.1 2261.5 6 30 4 8 72 1 69 2 5 -12716 138 12 -311.06 2261.5 6 32 4 8 72 1 71 2 7 -12717 138 13 -305.02 2261.5 10 33 4 8 73 1 72 2 8 -12718 138 14 -298.98 2261.5 10 31 4 8 73 1 70 2 6 -12719 138 15 -292.94 2261.5 10 29 4 8 73 1 68 2 4 -12720 138 16 -286.9 2261.5 10 30 4 8 73 1 69 2 5 -12721 138 17 -280.86 2261.5 10 32 4 8 73 1 71 2 7 -12722 138 18 -274.82 2261.5 10 34 4 8 73 1 73 2 9 -12723 138 19 -268.78 2261.5 14 33 4 8 74 1 72 2 8 -12724 138 20 -262.74 2261.5 14 31 4 8 74 1 70 2 6 -12725 138 21 -256.7 2261.5 14 29 4 8 74 1 68 2 4 -12726 138 22 -250.66 2261.5 14 28 4 8 74 1 67 2 3 -12727 138 23 -244.62 2261.5 14 30 4 8 74 1 69 2 5 -12728 138 24 -238.58 2261.5 14 32 4 8 74 1 71 2 7 -12729 138 25 -232.54 2261.5 14 34 4 8 74 1 73 2 9 -12730 138 26 -226.5 2261.5 18 33 4 8 75 1 72 2 8 -12731 138 27 -220.46 2261.5 18 31 4 8 75 1 70 2 6 -12732 138 28 -214.42 2261.5 18 29 4 8 75 1 68 2 4 -12733 138 29 -208.38 2261.5 18 28 4 8 75 1 67 2 3 -12734 138 30 -202.34 2261.5 18 30 4 8 75 1 69 2 5 -12735 138 31 -196.3 2261.5 18 32 4 8 75 1 71 2 7 -12736 138 32 -190.26 2261.5 22 33 4 8 76 1 72 2 8 -12737 138 33 -184.22 2261.5 22 31 4 8 76 1 70 2 6 -12738 138 34 -178.18 2261.5 22 29 4 8 76 1 68 2 4 -12739 138 35 -172.14 2261.5 22 28 4 8 76 1 67 2 3 -12740 138 36 -166.1 2261.5 22 30 4 8 76 1 69 2 5 -12741 138 37 -160.06 2261.5 22 32 4 8 76 1 71 2 7 -12742 138 38 -154.02 2261.5 22 34 4 8 76 1 73 2 9 -12743 138 39 -147.98 2261.5 26 33 4 8 77 1 72 2 8 -12744 138 40 -141.94 2261.5 26 31 4 8 77 1 70 2 6 -12745 138 41 -135.9 2261.5 26 29 4 8 77 1 68 2 4 -12746 138 42 -129.86 2261.5 26 28 4 8 77 1 67 2 3 -12747 138 43 -123.82 2261.5 26 30 4 8 77 1 69 2 5 -12748 138 44 -117.78 2261.5 26 32 4 8 77 1 71 2 7 -12749 138 45 -111.74 2261.5 30 33 4 8 78 1 72 2 8 -12750 138 46 -105.7 2261.5 30 31 4 8 78 1 70 2 6 -12751 138 47 -99.66 2261.5 30 29 4 8 78 1 68 2 4 -12752 138 48 -93.62 2261.5 30 30 4 8 78 1 69 2 5 -12753 138 49 -87.58 2261.5 30 32 4 8 78 1 71 2 7 -12754 138 50 -81.54 2261.5 30 34 4 8 78 1 73 2 9 -12755 138 51 -75.5 2261.5 34 33 4 8 79 1 72 2 8 -12756 138 52 -69.46 2261.5 34 31 4 8 79 1 70 2 6 -12757 138 53 -63.42 2261.5 34 29 4 8 79 1 68 2 4 -12758 138 54 -57.38 2261.5 34 30 4 8 79 1 69 2 5 -12759 138 55 -51.34 2261.5 34 32 4 8 79 1 71 2 7 -12760 138 56 -45.3 2261.5 34 34 4 8 79 1 73 2 9 -12761 138 57 -39.26 2261.5 38 31 4 8 80 1 70 2 6 -12762 138 58 -33.22 2261.5 38 29 4 8 80 1 68 2 4 -12763 138 59 -27.18 2261.5 38 27 4 8 80 1 66 2 2 -12764 138 60 -21.14 2261.5 38 25 4 8 80 1 64 2 0 -12765 138 61 -15.1 2261.5 38 30 4 8 80 1 69 2 5 -12766 138 62 -9.06 2261.5 38 32 4 8 80 1 71 2 7 -12767 138 63 -3.02 2261.5 38 34 4 8 80 1 73 2 9 -12768 138 64 3.02 2261.5 42 33 4 8 81 1 72 2 8 -12769 138 65 9.06 2261.5 42 31 4 8 81 1 70 2 6 -12770 138 66 15.1 2261.5 42 29 4 8 81 1 68 2 4 -12771 138 67 21.14 2261.5 42 26 4 8 81 1 65 2 1 -12772 138 68 27.18 2261.5 42 28 4 8 81 1 67 2 3 -12773 138 69 33.22 2261.5 42 30 4 8 81 1 69 2 5 -12774 138 70 39.26 2261.5 42 32 4 8 81 1 71 2 7 -12775 138 71 45.3 2261.5 46 33 4 8 82 1 72 2 8 -12776 138 72 51.34 2261.5 46 31 4 8 82 1 70 2 6 -12777 138 73 57.38 2261.5 46 29 4 8 82 1 68 2 4 -12778 138 74 63.42 2261.5 46 30 4 8 82 1 69 2 5 -12779 138 75 69.46 2261.5 46 32 4 8 82 1 71 2 7 -12780 138 76 75.5 2261.5 46 34 4 8 82 1 73 2 9 -12781 138 77 81.54 2261.5 50 33 4 8 83 1 72 2 8 -12782 138 78 87.58 2261.5 50 31 4 8 83 1 70 2 6 -12783 138 79 93.62 2261.5 50 29 4 8 83 1 68 2 4 -12784 138 80 99.66 2261.5 50 30 4 8 83 1 69 2 5 -12785 138 81 105.7 2261.5 50 32 4 8 83 1 71 2 7 -12786 138 82 111.74 2261.5 50 34 4 8 83 1 73 2 9 -12787 138 83 117.78 2261.5 54 31 4 8 84 1 70 2 6 -12788 138 84 123.82 2261.5 54 29 4 8 84 1 68 2 4 -12789 138 85 129.86 2261.5 54 27 4 8 84 1 66 2 2 -12790 138 86 135.9 2261.5 54 30 4 8 84 1 69 2 5 -12791 138 87 141.94 2261.5 54 32 4 8 84 1 71 2 7 -12792 138 88 147.98 2261.5 54 34 4 8 84 1 73 2 9 -12793 138 89 154.02 2261.5 58 33 4 8 85 1 72 2 8 -12794 138 90 160.06 2261.5 58 31 4 8 85 1 70 2 6 -12795 138 91 166.1 2261.5 58 29 4 8 85 1 68 2 4 -12796 138 92 172.14 2261.5 58 27 4 8 85 1 66 2 2 -12797 138 93 178.18 2261.5 58 30 4 8 85 1 69 2 5 -12798 138 94 184.22 2261.5 58 32 4 8 85 1 71 2 7 -12799 138 95 190.26 2261.5 58 34 4 8 85 1 73 2 9 -12800 138 96 196.3 2261.5 62 31 4 8 86 1 70 2 6 -12801 138 97 202.34 2261.5 62 29 4 8 86 1 68 2 4 -12802 138 98 208.38 2261.5 62 27 4 8 86 1 66 2 2 -12803 138 99 214.42 2261.5 62 30 4 8 86 1 69 2 5 -12804 138 100 220.46 2261.5 62 32 4 8 86 1 71 2 7 -12805 138 101 226.5 2261.5 62 34 4 8 86 1 73 2 9 -12806 138 102 232.54 2261.5 66 33 4 8 87 1 72 2 8 -12807 138 103 238.58 2261.5 66 31 4 8 87 1 70 2 6 -12808 138 104 244.62 2261.5 66 29 4 8 87 1 68 2 4 -12809 138 105 250.66 2261.5 66 27 4 8 87 1 66 2 2 -12810 138 106 256.7 2261.5 66 30 4 8 87 1 69 2 5 -12811 138 107 262.74 2261.5 66 32 4 8 87 1 71 2 7 -12812 138 108 268.78 2261.5 66 34 4 8 87 1 73 2 9 -12813 138 109 274.82 2261.5 70 33 4 8 88 1 72 2 8 -12814 138 110 280.86 2261.5 70 31 4 8 88 1 70 2 6 -12815 138 111 286.9 2261.5 70 29 4 8 88 1 68 2 4 -12816 138 112 292.94 2261.5 70 30 4 8 88 1 69 2 5 -12817 138 113 298.98 2261.5 70 32 4 8 88 1 71 2 7 -12818 138 114 305.02 2261.5 70 34 4 8 88 1 73 2 9 -12819 138 115 311.06 2261.5 74 31 4 8 89 1 70 2 6 -12820 138 116 317.1 2261.5 74 29 4 8 89 1 68 2 4 -12821 138 117 323.14 2261.5 74 27 4 8 89 1 66 2 2 -12822 138 118 329.18 2261.5 74 30 4 8 89 1 69 2 5 -12823 138 119 335.22 2261.5 74 32 4 8 89 1 71 2 7 -12824 138 120 341.26 2261.5 74 34 4 8 89 1 73 2 9 -12825 138 121 347.3 2261.5 78 33 4 8 90 1 72 2 8 -12826 138 122 353.34 2261.5 78 31 4 8 90 1 70 2 6 -12827 138 123 359.38 2261.5 78 29 4 8 90 1 68 2 4 -12828 138 124 365.42 2261.5 78 28 4 8 90 1 67 2 3 -12829 138 125 371.46 2261.5 78 30 4 8 90 1 69 2 5 -12830 138 126 377.5 2261.5 78 32 4 8 90 1 71 2 7 -12831 138 127 383.54 2261.5 78 34 4 8 90 1 73 2 9 -12832 139 0 -383.54 2276.5 2 39 4 8 71 1 78 2 14 -12833 139 1 -377.5 2276.5 2 37 4 8 71 1 76 2 12 -12834 139 2 -371.46 2276.5 2 35 4 8 71 1 74 2 10 -12835 139 3 -365.42 2276.5 2 36 4 8 71 1 75 2 11 -12836 139 4 -359.38 2276.5 2 38 4 8 71 1 77 2 13 -12837 139 5 -353.34 2276.5 2 40 4 8 71 1 79 2 15 -12838 139 6 -347.3 2276.5 6 39 4 8 72 1 78 2 14 -12839 139 7 -341.26 2276.5 6 37 4 8 72 1 76 2 12 -12840 139 8 -335.22 2276.5 6 35 4 8 72 1 74 2 10 -12841 139 9 -329.18 2276.5 6 34 4 8 72 1 73 2 9 -12842 139 10 -323.14 2276.5 6 36 4 8 72 1 75 2 11 -12843 139 11 -317.1 2276.5 6 38 4 8 72 1 77 2 13 -12844 139 12 -311.06 2276.5 6 40 4 8 72 1 79 2 15 -12845 139 13 -305.02 2276.5 10 39 4 8 73 1 78 2 14 -12846 139 14 -298.98 2276.5 10 37 4 8 73 1 76 2 12 -12847 139 15 -292.94 2276.5 10 35 4 8 73 1 74 2 10 -12848 139 16 -286.9 2276.5 10 36 4 8 73 1 75 2 11 -12849 139 17 -280.86 2276.5 10 38 4 8 73 1 77 2 13 -12850 139 18 -274.82 2276.5 10 40 4 8 73 1 79 2 15 -12851 139 19 -268.78 2276.5 14 39 4 8 74 1 78 2 14 -12852 139 20 -262.74 2276.5 14 37 4 8 74 1 76 2 12 -12853 139 21 -256.7 2276.5 14 35 4 8 74 1 74 2 10 -12854 139 22 -250.66 2276.5 14 36 4 8 74 1 75 2 11 -12855 139 23 -244.62 2276.5 14 38 4 8 74 1 77 2 13 -12856 139 24 -238.58 2276.5 14 40 4 8 74 1 79 2 15 -12857 139 25 -232.54 2276.5 18 39 4 8 75 1 78 2 14 -12858 139 26 -226.5 2276.5 18 37 4 8 75 1 76 2 12 -12859 139 27 -220.46 2276.5 18 35 4 8 75 1 74 2 10 -12860 139 28 -214.42 2276.5 18 34 4 8 75 1 73 2 9 -12861 139 29 -208.38 2276.5 18 36 4 8 75 1 75 2 11 -12862 139 30 -202.34 2276.5 18 38 4 8 75 1 77 2 13 -12863 139 31 -196.3 2276.5 18 40 4 8 75 1 79 2 15 -12864 139 32 -190.26 2276.5 22 39 4 8 76 1 78 2 14 -12865 139 33 -184.22 2276.5 22 37 4 8 76 1 76 2 12 -12866 139 34 -178.18 2276.5 22 35 4 8 76 1 74 2 10 -12867 139 35 -172.14 2276.5 22 36 4 8 76 1 75 2 11 -12868 139 36 -166.1 2276.5 22 38 4 8 76 1 77 2 13 -12869 139 37 -160.06 2276.5 22 40 4 8 76 1 79 2 15 -12870 139 38 -154.02 2276.5 26 39 4 8 77 1 78 2 14 -12871 139 39 -147.98 2276.5 26 37 4 8 77 1 76 2 12 -12872 139 40 -141.94 2276.5 26 35 4 8 77 1 74 2 10 -12873 139 41 -135.9 2276.5 26 34 4 8 77 1 73 2 9 -12874 139 42 -129.86 2276.5 26 36 4 8 77 1 75 2 11 -12875 139 43 -123.82 2276.5 26 38 4 8 77 1 77 2 13 -12876 139 44 -117.78 2276.5 26 40 4 8 77 1 79 2 15 -12877 139 45 -111.74 2276.5 30 39 4 8 78 1 78 2 14 -12878 139 46 -105.7 2276.5 30 37 4 8 78 1 76 2 12 -12879 139 47 -99.66 2276.5 30 35 4 8 78 1 74 2 10 -12880 139 48 -93.62 2276.5 30 36 4 8 78 1 75 2 11 -12881 139 49 -87.58 2276.5 30 38 4 8 78 1 77 2 13 -12882 139 50 -81.54 2276.5 30 40 4 8 78 1 79 2 15 -12883 139 51 -75.5 2276.5 34 39 4 8 79 1 78 2 14 -12884 139 52 -69.46 2276.5 34 37 4 8 79 1 76 2 12 -12885 139 53 -63.42 2276.5 34 35 4 8 79 1 74 2 10 -12886 139 54 -57.38 2276.5 34 36 4 8 79 1 75 2 11 -12887 139 55 -51.34 2276.5 34 38 4 8 79 1 77 2 13 -12888 139 56 -45.3 2276.5 34 40 4 8 79 1 79 2 15 -12889 139 57 -39.26 2276.5 38 39 4 8 80 1 78 2 14 -12890 139 58 -33.22 2276.5 38 37 4 8 80 1 76 2 12 -12891 139 59 -27.18 2276.5 38 35 4 8 80 1 74 2 10 -12892 139 60 -21.14 2276.5 38 33 4 8 80 1 72 2 8 -12893 139 61 -15.1 2276.5 38 36 4 8 80 1 75 2 11 -12894 139 62 -9.06 2276.5 38 38 4 8 80 1 77 2 13 -12895 139 63 -3.02 2276.5 38 40 4 8 80 1 79 2 15 -12896 139 64 3.02 2276.5 42 39 4 8 81 1 78 2 14 -12897 139 65 9.06 2276.5 42 37 4 8 81 1 76 2 12 -12898 139 66 15.1 2276.5 42 35 4 8 81 1 74 2 10 -12899 139 67 21.14 2276.5 42 34 4 8 81 1 73 2 9 -12900 139 68 27.18 2276.5 42 36 4 8 81 1 75 2 11 -12901 139 69 33.22 2276.5 42 38 4 8 81 1 77 2 13 -12902 139 70 39.26 2276.5 42 40 4 8 81 1 79 2 15 -12903 139 71 45.3 2276.5 46 39 4 8 82 1 78 2 14 -12904 139 72 51.34 2276.5 46 37 4 8 82 1 76 2 12 -12905 139 73 57.38 2276.5 46 35 4 8 82 1 74 2 10 -12906 139 74 63.42 2276.5 46 36 4 8 82 1 75 2 11 -12907 139 75 69.46 2276.5 46 38 4 8 82 1 77 2 13 -12908 139 76 75.5 2276.5 46 40 4 8 82 1 79 2 15 -12909 139 77 81.54 2276.5 50 39 4 8 83 1 78 2 14 -12910 139 78 87.58 2276.5 50 37 4 8 83 1 76 2 12 -12911 139 79 93.62 2276.5 50 35 4 8 83 1 74 2 10 -12912 139 80 99.66 2276.5 50 36 4 8 83 1 75 2 11 -12913 139 81 105.7 2276.5 50 38 4 8 83 1 77 2 13 -12914 139 82 111.74 2276.5 50 40 4 8 83 1 79 2 15 -12915 139 83 117.78 2276.5 54 39 4 8 84 1 78 2 14 -12916 139 84 123.82 2276.5 54 37 4 8 84 1 76 2 12 -12917 139 85 129.86 2276.5 54 35 4 8 84 1 74 2 10 -12918 139 86 135.9 2276.5 54 33 4 8 84 1 72 2 8 -12919 139 87 141.94 2276.5 54 36 4 8 84 1 75 2 11 -12920 139 88 147.98 2276.5 54 38 4 8 84 1 77 2 13 -12921 139 89 154.02 2276.5 54 40 4 8 84 1 79 2 15 -12922 139 90 160.06 2276.5 58 39 4 8 85 1 78 2 14 -12923 139 91 166.1 2276.5 58 37 4 8 85 1 76 2 12 -12924 139 92 172.14 2276.5 58 35 4 8 85 1 74 2 10 -12925 139 93 178.18 2276.5 58 36 4 8 85 1 75 2 11 -12926 139 94 184.22 2276.5 58 38 4 8 85 1 77 2 13 -12927 139 95 190.26 2276.5 58 40 4 8 85 1 79 2 15 -12928 139 96 196.3 2276.5 62 39 4 8 86 1 78 2 14 -12929 139 97 202.34 2276.5 62 37 4 8 86 1 76 2 12 -12930 139 98 208.38 2276.5 62 35 4 8 86 1 74 2 10 -12931 139 99 214.42 2276.5 62 33 4 8 86 1 72 2 8 -12932 139 100 220.46 2276.5 62 36 4 8 86 1 75 2 11 -12933 139 101 226.5 2276.5 62 38 4 8 86 1 77 2 13 -12934 139 102 232.54 2276.5 62 40 4 8 86 1 79 2 15 -12935 139 103 238.58 2276.5 66 39 4 8 87 1 78 2 14 -12936 139 104 244.62 2276.5 66 37 4 8 87 1 76 2 12 -12937 139 105 250.66 2276.5 66 35 4 8 87 1 74 2 10 -12938 139 106 256.7 2276.5 66 36 4 8 87 1 75 2 11 -12939 139 107 262.74 2276.5 66 38 4 8 87 1 77 2 13 -12940 139 108 268.78 2276.5 66 40 4 8 87 1 79 2 15 -12941 139 109 274.82 2276.5 70 39 4 8 88 1 78 2 14 -12942 139 110 280.86 2276.5 70 37 4 8 88 1 76 2 12 -12943 139 111 286.9 2276.5 70 35 4 8 88 1 74 2 10 -12944 139 112 292.94 2276.5 70 36 4 8 88 1 75 2 11 -12945 139 113 298.98 2276.5 70 38 4 8 88 1 77 2 13 -12946 139 114 305.02 2276.5 70 40 4 8 88 1 79 2 15 -12947 139 115 311.06 2276.5 74 39 4 8 89 1 78 2 14 -12948 139 116 317.1 2276.5 74 37 4 8 89 1 76 2 12 -12949 139 117 323.14 2276.5 74 35 4 8 89 1 74 2 10 -12950 139 118 329.18 2276.5 74 33 4 8 89 1 72 2 8 -12951 139 119 335.22 2276.5 74 36 4 8 89 1 75 2 11 -12952 139 120 341.26 2276.5 74 38 4 8 89 1 77 2 13 -12953 139 121 347.3 2276.5 74 40 4 8 89 1 79 2 15 -12954 139 122 353.34 2276.5 78 39 4 8 90 1 78 2 14 -12955 139 123 359.38 2276.5 78 37 4 8 90 1 76 2 12 -12956 139 124 365.42 2276.5 78 35 4 8 90 1 74 2 10 -12957 139 125 371.46 2276.5 78 36 4 8 90 1 75 2 11 -12958 139 126 377.5 2276.5 78 38 4 8 90 1 77 2 13 -12959 139 127 383.54 2276.5 78 40 4 8 90 1 79 2 15 -12960 140 0 -385.445 2291.5 3 5 4 9 71 2 84 2 20 -12961 140 1 -379.375 2291.5 3 3 4 9 71 2 82 2 18 -12962 140 2 -373.305 2291.5 3 1 4 9 71 2 80 2 16 -12963 140 3 -367.235 2291.5 3 2 4 9 71 2 81 2 17 -12964 140 4 -361.165 2291.5 3 4 4 9 71 2 83 2 19 -12965 140 5 -355.095 2291.5 3 6 4 9 71 2 85 2 21 -12966 140 6 -349.025 2291.5 7 7 4 9 72 2 86 2 22 -12967 140 7 -342.955 2291.5 7 5 4 9 72 2 84 2 20 -12968 140 8 -336.885 2291.5 7 3 4 9 72 2 82 2 18 -12969 140 9 -330.815 2291.5 7 1 4 9 72 2 80 2 16 -12970 140 10 -324.745 2291.5 7 2 4 9 72 2 81 2 17 -12971 140 11 -318.675 2291.5 7 4 4 9 72 2 83 2 19 -12972 140 12 -312.605 2291.5 7 6 4 9 72 2 85 2 21 -12973 140 13 -306.535 2291.5 11 5 4 9 73 2 84 2 20 -12974 140 14 -300.465 2291.5 11 3 4 9 73 2 82 2 18 -12975 140 15 -294.395 2291.5 11 1 4 9 73 2 80 2 16 -12976 140 16 -288.325 2291.5 11 2 4 9 73 2 81 2 17 -12977 140 17 -282.255 2291.5 11 4 4 9 73 2 83 2 19 -12978 140 18 -276.185 2291.5 11 6 4 9 73 2 85 2 21 -12979 140 19 -270.115 2291.5 15 5 4 9 74 2 84 2 20 -12980 140 20 -264.045 2291.5 15 3 4 9 74 2 82 2 18 -12981 140 21 -257.975 2291.5 15 1 4 9 74 2 80 2 16 -12982 140 22 -251.905 2291.5 15 2 4 9 74 2 81 2 17 -12983 140 23 -245.835 2291.5 15 4 4 9 74 2 83 2 19 -12984 140 24 -239.765 2291.5 15 6 4 9 74 2 85 2 21 -12985 140 25 -233.695 2291.5 19 7 4 9 75 2 86 2 22 -12986 140 26 -227.625 2291.5 19 5 4 9 75 2 84 2 20 -12987 140 27 -221.555 2291.5 19 3 4 9 75 2 82 2 18 -12988 140 28 -215.485 2291.5 19 1 4 9 75 2 80 2 16 -12989 140 29 -209.415 2291.5 19 2 4 9 75 2 81 2 17 -12990 140 30 -203.345 2291.5 19 4 4 9 75 2 83 2 19 -12991 140 31 -197.275 2291.5 19 6 4 9 75 2 85 2 21 -12992 140 32 -191.205 2291.5 23 5 4 9 76 2 84 2 20 -12993 140 33 -185.135 2291.5 23 3 4 9 76 2 82 2 18 -12994 140 34 -179.065 2291.5 23 1 4 9 76 2 80 2 16 -12995 140 35 -172.995 2291.5 23 2 4 9 76 2 81 2 17 -12996 140 36 -166.925 2291.5 23 4 4 9 76 2 83 2 19 -12997 140 37 -160.855 2291.5 23 6 4 9 76 2 85 2 21 -12998 140 38 -154.785 2291.5 27 7 4 9 77 2 86 2 22 -12999 140 39 -148.715 2291.5 27 5 4 9 77 2 84 2 20 -13000 140 40 -142.645 2291.5 27 3 4 9 77 2 82 2 18 -13001 140 41 -136.575 2291.5 27 1 4 9 77 2 80 2 16 -13002 140 42 -130.505 2291.5 27 2 4 9 77 2 81 2 17 -13003 140 43 -124.435 2291.5 27 4 4 9 77 2 83 2 19 -13004 140 44 -118.365 2291.5 27 6 4 9 77 2 85 2 21 -13005 140 45 -112.295 2291.5 31 5 4 9 78 2 84 2 20 -13006 140 46 -106.225 2291.5 31 3 4 9 78 2 82 2 18 -13007 140 47 -100.155 2291.5 31 1 4 9 78 2 80 2 16 -13008 140 48 -94.085 2291.5 31 2 4 9 78 2 81 2 17 -13009 140 49 -88.015 2291.5 31 4 4 9 78 2 83 2 19 -13010 140 50 -81.945 2291.5 31 6 4 9 78 2 85 2 21 -13011 140 51 -75.875 2291.5 35 7 4 9 79 2 86 2 22 -13012 140 52 -69.805 2291.5 35 5 4 9 79 2 84 2 20 -13013 140 53 -63.735 2291.5 35 3 4 9 79 2 82 2 18 -13014 140 54 -57.665 2291.5 35 1 4 9 79 2 80 2 16 -13015 140 55 -51.595 2291.5 35 2 4 9 79 2 81 2 17 -13016 140 56 -45.525 2291.5 35 4 4 9 79 2 83 2 19 -13017 140 57 -39.455 2291.5 35 6 4 9 79 2 85 2 21 -13018 140 58 -33.385 2291.5 39 5 4 9 80 2 84 2 20 -13019 140 59 -27.315 2291.5 39 3 4 9 80 2 82 2 18 -13020 140 60 -21.245 2291.5 39 1 4 9 80 2 80 2 16 -13021 140 61 -15.175 2291.5 39 2 4 9 80 2 81 2 17 -13022 140 62 -9.105 2291.5 39 4 4 9 80 2 83 2 19 -13023 140 63 -3.035 2291.5 39 6 4 9 80 2 85 2 21 -13024 140 64 3.035 2291.5 43 5 4 9 81 2 84 2 20 -13025 140 65 9.105 2291.5 43 3 4 9 81 2 82 2 18 -13026 140 66 15.175 2291.5 43 1 4 9 81 2 80 2 16 -13027 140 67 21.245 2291.5 43 2 4 9 81 2 81 2 17 -13028 140 68 27.315 2291.5 43 4 4 9 81 2 83 2 19 -13029 140 69 33.385 2291.5 43 6 4 9 81 2 85 2 21 -13030 140 70 39.455 2291.5 47 5 4 9 82 2 84 2 20 -13031 140 71 45.525 2291.5 47 3 4 9 82 2 82 2 18 -13032 140 72 51.595 2291.5 47 1 4 9 82 2 80 2 16 -13033 140 73 57.665 2291.5 47 2 4 9 82 2 81 2 17 -13034 140 74 63.735 2291.5 47 4 4 9 82 2 83 2 19 -13035 140 75 69.805 2291.5 47 6 4 9 82 2 85 2 21 -13036 140 76 75.875 2291.5 47 8 4 9 82 2 87 2 23 -13037 140 77 81.945 2291.5 51 5 4 9 83 2 84 2 20 -13038 140 78 88.015 2291.5 51 3 4 9 83 2 82 2 18 -13039 140 79 94.085 2291.5 51 1 4 9 83 2 80 2 16 -13040 140 80 100.155 2291.5 51 2 4 9 83 2 81 2 17 -13041 140 81 106.225 2291.5 51 4 4 9 83 2 83 2 19 -13042 140 82 112.295 2291.5 51 6 4 9 83 2 85 2 21 -13043 140 83 118.365 2291.5 55 5 4 9 84 2 84 2 20 -13044 140 84 124.435 2291.5 55 3 4 9 84 2 82 2 18 -13045 140 85 130.505 2291.5 55 1 4 9 84 2 80 2 16 -13046 140 86 136.575 2291.5 55 2 4 9 84 2 81 2 17 -13047 140 87 142.645 2291.5 55 4 4 9 84 2 83 2 19 -13048 140 88 148.715 2291.5 55 6 4 9 84 2 85 2 21 -13049 140 89 154.785 2291.5 55 8 4 9 84 2 87 2 23 -13050 140 90 160.855 2291.5 59 5 4 9 85 2 84 2 20 -13051 140 91 166.925 2291.5 59 3 4 9 85 2 82 2 18 -13052 140 92 172.995 2291.5 59 1 4 9 85 2 80 2 16 -13053 140 93 179.065 2291.5 59 2 4 9 85 2 81 2 17 -13054 140 94 185.135 2291.5 59 4 4 9 85 2 83 2 19 -13055 140 95 191.205 2291.5 59 6 4 9 85 2 85 2 21 -13056 140 96 197.275 2291.5 63 5 4 9 86 2 84 2 20 -13057 140 97 203.345 2291.5 63 3 4 9 86 2 82 2 18 -13058 140 98 209.415 2291.5 63 1 4 9 86 2 80 2 16 -13059 140 99 215.485 2291.5 63 2 4 9 86 2 81 2 17 -13060 140 100 221.555 2291.5 63 4 4 9 86 2 83 2 19 -13061 140 101 227.625 2291.5 63 6 4 9 86 2 85 2 21 -13062 140 102 233.695 2291.5 63 8 4 9 86 2 87 2 23 -13063 140 103 239.765 2291.5 67 5 4 9 87 2 84 2 20 -13064 140 104 245.835 2291.5 67 3 4 9 87 2 82 2 18 -13065 140 105 251.905 2291.5 67 1 4 9 87 2 80 2 16 -13066 140 106 257.975 2291.5 67 2 4 9 87 2 81 2 17 -13067 140 107 264.045 2291.5 67 4 4 9 87 2 83 2 19 -13068 140 108 270.115 2291.5 67 6 4 9 87 2 85 2 21 -13069 140 109 276.185 2291.5 71 5 4 9 88 2 84 2 20 -13070 140 110 282.255 2291.5 71 3 4 9 88 2 82 2 18 -13071 140 111 288.325 2291.5 71 1 4 9 88 2 80 2 16 -13072 140 112 294.395 2291.5 71 2 4 9 88 2 81 2 17 -13073 140 113 300.465 2291.5 71 4 4 9 88 2 83 2 19 -13074 140 114 306.535 2291.5 71 6 4 9 88 2 85 2 21 -13075 140 115 312.605 2291.5 75 5 4 9 89 2 84 2 20 -13076 140 116 318.675 2291.5 75 3 4 9 89 2 82 2 18 -13077 140 117 324.745 2291.5 75 1 4 9 89 2 80 2 16 -13078 140 118 330.815 2291.5 75 2 4 9 89 2 81 2 17 -13079 140 119 336.885 2291.5 75 4 4 9 89 2 83 2 19 -13080 140 120 342.955 2291.5 75 6 4 9 89 2 85 2 21 -13081 140 121 349.025 2291.5 75 8 4 9 89 2 87 2 23 -13082 140 122 355.095 2291.5 79 5 4 9 90 2 84 2 20 -13083 140 123 361.165 2291.5 79 3 4 9 90 2 82 2 18 -13084 140 124 367.235 2291.5 79 1 4 9 90 2 80 2 16 -13085 140 125 373.305 2291.5 79 2 4 9 90 2 81 2 17 -13086 140 126 379.375 2291.5 79 4 4 9 90 2 83 2 19 -13087 140 127 385.445 2291.5 79 6 4 9 90 2 85 2 21 -13088 141 0 -391.515 2306.5 3 11 4 9 71 2 90 2 26 -13089 141 1 -385.445 2306.5 3 9 4 9 71 2 88 2 24 -13090 141 2 -379.375 2306.5 3 7 4 9 71 2 86 2 22 -13091 141 3 -373.305 2306.5 3 8 4 9 71 2 87 2 23 -13092 141 4 -367.235 2306.5 3 10 4 9 71 2 89 2 25 -13093 141 5 -361.165 2306.5 3 12 4 9 71 2 91 2 27 -13094 141 6 -355.095 2306.5 3 14 4 9 71 2 93 2 29 -13095 141 7 -349.025 2306.5 7 13 4 9 72 2 92 2 28 -13096 141 8 -342.955 2306.5 7 11 4 9 72 2 90 2 26 -13097 141 9 -336.885 2306.5 7 9 4 9 72 2 88 2 24 -13098 141 10 -330.815 2306.5 7 8 4 9 72 2 87 2 23 -13099 141 11 -324.745 2306.5 7 10 4 9 72 2 89 2 25 -13100 141 12 -318.675 2306.5 7 12 4 9 72 2 91 2 27 -13101 141 13 -312.605 2306.5 11 13 4 9 73 2 92 2 28 -13102 141 14 -306.535 2306.5 11 11 4 9 73 2 90 2 26 -13103 141 15 -300.465 2306.5 11 9 4 9 73 2 88 2 24 -13104 141 16 -294.395 2306.5 11 7 4 9 73 2 86 2 22 -13105 141 17 -288.325 2306.5 11 8 4 9 73 2 87 2 23 -13106 141 18 -282.255 2306.5 11 10 4 9 73 2 89 2 25 -13107 141 19 -276.185 2306.5 11 12 4 9 73 2 91 2 27 -13108 141 20 -270.115 2306.5 15 11 4 9 74 2 90 2 26 -13109 141 21 -264.045 2306.5 15 9 4 9 74 2 88 2 24 -13110 141 22 -257.975 2306.5 15 7 4 9 74 2 86 2 22 -13111 141 23 -251.905 2306.5 15 8 4 9 74 2 87 2 23 -13112 141 24 -245.835 2306.5 15 10 4 9 74 2 89 2 25 -13113 141 25 -239.765 2306.5 15 12 4 9 74 2 91 2 27 -13114 141 26 -233.695 2306.5 19 13 4 9 75 2 92 2 28 -13115 141 27 -227.625 2306.5 19 11 4 9 75 2 90 2 26 -13116 141 28 -221.555 2306.5 19 9 4 9 75 2 88 2 24 -13117 141 29 -215.485 2306.5 19 8 4 9 75 2 87 2 23 -13118 141 30 -209.415 2306.5 19 10 4 9 75 2 89 2 25 -13119 141 31 -203.345 2306.5 19 12 4 9 75 2 91 2 27 -13120 141 32 -197.275 2306.5 19 14 4 9 75 2 93 2 29 -13121 141 33 -191.205 2306.5 23 11 4 9 76 2 90 2 26 -13122 141 34 -185.135 2306.5 23 9 4 9 76 2 88 2 24 -13123 141 35 -179.065 2306.5 23 7 4 9 76 2 86 2 22 -13124 141 36 -172.995 2306.5 23 8 4 9 76 2 87 2 23 -13125 141 37 -166.925 2306.5 23 10 4 9 76 2 89 2 25 -13126 141 38 -160.855 2306.5 23 12 4 9 76 2 91 2 27 -13127 141 39 -154.785 2306.5 27 13 4 9 77 2 92 2 28 -13128 141 40 -148.715 2306.5 27 11 4 9 77 2 90 2 26 -13129 141 41 -142.645 2306.5 27 9 4 9 77 2 88 2 24 -13130 141 42 -136.575 2306.5 27 8 4 9 77 2 87 2 23 -13131 141 43 -130.505 2306.5 27 10 4 9 77 2 89 2 25 -13132 141 44 -124.435 2306.5 27 12 4 9 77 2 91 2 27 -13133 141 45 -118.365 2306.5 27 14 4 9 77 2 93 2 29 -13134 141 46 -112.295 2306.5 31 11 4 9 78 2 90 2 26 -13135 141 47 -106.225 2306.5 31 9 4 9 78 2 88 2 24 -13136 141 48 -100.155 2306.5 31 7 4 9 78 2 86 2 22 -13137 141 49 -94.085 2306.5 31 8 4 9 78 2 87 2 23 -13138 141 50 -88.015 2306.5 31 10 4 9 78 2 89 2 25 -13139 141 51 -81.945 2306.5 31 12 4 9 78 2 91 2 27 -13140 141 52 -75.875 2306.5 35 13 4 9 79 2 92 2 28 -13141 141 53 -69.805 2306.5 35 11 4 9 79 2 90 2 26 -13142 141 54 -63.735 2306.5 35 9 4 9 79 2 88 2 24 -13143 141 55 -57.665 2306.5 35 8 4 9 79 2 87 2 23 -13144 141 56 -51.595 2306.5 35 10 4 9 79 2 89 2 25 -13145 141 57 -45.525 2306.5 35 12 4 9 79 2 91 2 27 -13146 141 58 -39.455 2306.5 35 14 4 9 79 2 93 2 29 -13147 141 59 -33.385 2306.5 39 11 4 9 80 2 90 2 26 -13148 141 60 -27.315 2306.5 39 9 4 9 80 2 88 2 24 -13149 141 61 -21.245 2306.5 39 7 4 9 80 2 86 2 22 -13150 141 62 -15.175 2306.5 39 8 4 9 80 2 87 2 23 -13151 141 63 -9.105 2306.5 39 10 4 9 80 2 89 2 25 -13152 141 64 -3.035 2306.5 39 12 4 9 80 2 91 2 27 -13153 141 65 3.035 2306.5 43 11 4 9 81 2 90 2 26 -13154 141 66 9.105 2306.5 43 9 4 9 81 2 88 2 24 -13155 141 67 15.175 2306.5 43 7 4 9 81 2 86 2 22 -13156 141 68 21.245 2306.5 43 8 4 9 81 2 87 2 23 -13157 141 69 27.315 2306.5 43 10 4 9 81 2 89 2 25 -13158 141 70 33.385 2306.5 43 12 4 9 81 2 91 2 27 -13159 141 71 39.455 2306.5 47 13 4 9 82 2 92 2 28 -13160 141 72 45.525 2306.5 47 11 4 9 82 2 90 2 26 -13161 141 73 51.595 2306.5 47 9 4 9 82 2 88 2 24 -13162 141 74 57.665 2306.5 47 7 4 9 82 2 86 2 22 -13163 141 75 63.735 2306.5 47 10 4 9 82 2 89 2 25 -13164 141 76 69.805 2306.5 47 12 4 9 82 2 91 2 27 -13165 141 77 75.875 2306.5 47 14 4 9 82 2 93 2 29 -13166 141 78 81.945 2306.5 51 11 4 9 83 2 90 2 26 -13167 141 79 88.015 2306.5 51 9 4 9 83 2 88 2 24 -13168 141 80 94.085 2306.5 51 7 4 9 83 2 86 2 22 -13169 141 81 100.155 2306.5 51 8 4 9 83 2 87 2 23 -13170 141 82 106.225 2306.5 51 10 4 9 83 2 89 2 25 -13171 141 83 112.295 2306.5 51 12 4 9 83 2 91 2 27 -13172 141 84 118.365 2306.5 55 13 4 9 84 2 92 2 28 -13173 141 85 124.435 2306.5 55 11 4 9 84 2 90 2 26 -13174 141 86 130.505 2306.5 55 9 4 9 84 2 88 2 24 -13175 141 87 136.575 2306.5 55 7 4 9 84 2 86 2 22 -13176 141 88 142.645 2306.5 55 10 4 9 84 2 89 2 25 -13177 141 89 148.715 2306.5 55 12 4 9 84 2 91 2 27 -13178 141 90 154.785 2306.5 55 14 4 9 84 2 93 2 29 -13179 141 91 160.855 2306.5 59 11 4 9 85 2 90 2 26 -13180 141 92 166.925 2306.5 59 9 4 9 85 2 88 2 24 -13181 141 93 172.995 2306.5 59 7 4 9 85 2 86 2 22 -13182 141 94 179.065 2306.5 59 8 4 9 85 2 87 2 23 -13183 141 95 185.135 2306.5 59 10 4 9 85 2 89 2 25 -13184 141 96 191.205 2306.5 59 12 4 9 85 2 91 2 27 -13185 141 97 197.275 2306.5 63 13 4 9 86 2 92 2 28 -13186 141 98 203.345 2306.5 63 11 4 9 86 2 90 2 26 -13187 141 99 209.415 2306.5 63 9 4 9 86 2 88 2 24 -13188 141 100 215.485 2306.5 63 7 4 9 86 2 86 2 22 -13189 141 101 221.555 2306.5 63 10 4 9 86 2 89 2 25 -13190 141 102 227.625 2306.5 63 12 4 9 86 2 91 2 27 -13191 141 103 233.695 2306.5 63 14 4 9 86 2 93 2 29 -13192 141 104 239.765 2306.5 67 11 4 9 87 2 90 2 26 -13193 141 105 245.835 2306.5 67 9 4 9 87 2 88 2 24 -13194 141 106 251.905 2306.5 67 7 4 9 87 2 86 2 22 -13195 141 107 257.975 2306.5 67 8 4 9 87 2 87 2 23 -13196 141 108 264.045 2306.5 67 10 4 9 87 2 89 2 25 -13197 141 109 270.115 2306.5 67 12 4 9 87 2 91 2 27 -13198 141 110 276.185 2306.5 71 11 4 9 88 2 90 2 26 -13199 141 111 282.255 2306.5 71 9 4 9 88 2 88 2 24 -13200 141 112 288.325 2306.5 71 7 4 9 88 2 86 2 22 -13201 141 113 294.395 2306.5 71 8 4 9 88 2 87 2 23 -13202 141 114 300.465 2306.5 71 10 4 9 88 2 89 2 25 -13203 141 115 306.535 2306.5 71 12 4 9 88 2 91 2 27 -13204 141 116 312.605 2306.5 71 14 4 9 88 2 93 2 29 -13205 141 117 318.675 2306.5 75 11 4 9 89 2 90 2 26 -13206 141 118 324.745 2306.5 75 9 4 9 89 2 88 2 24 -13207 141 119 330.815 2306.5 75 7 4 9 89 2 86 2 22 -13208 141 120 336.885 2306.5 75 10 4 9 89 2 89 2 25 -13209 141 121 342.955 2306.5 75 12 4 9 89 2 91 2 27 -13210 141 122 349.025 2306.5 75 14 4 9 89 2 93 2 29 -13211 141 123 355.095 2306.5 79 13 4 9 90 2 92 2 28 -13212 141 124 361.165 2306.5 79 11 4 9 90 2 90 2 26 -13213 141 125 367.235 2306.5 79 9 4 9 90 2 88 2 24 -13214 141 126 373.305 2306.5 79 7 4 9 90 2 86 2 22 -13215 141 127 379.375 2306.5 79 8 4 9 90 2 87 2 23 -13216 141 128 385.445 2306.5 79 10 4 9 90 2 89 2 25 -13217 141 129 391.515 2306.5 79 12 4 9 90 2 91 2 27 -13218 142 0 -391.515 2321.5 3 17 4 9 71 2 96 3 0 -13219 142 1 -385.445 2321.5 3 15 4 9 71 2 94 2 30 -13220 142 2 -379.375 2321.5 3 13 4 9 71 2 92 2 28 -13221 142 3 -373.305 2321.5 3 16 4 9 71 2 95 2 31 -13222 142 4 -367.235 2321.5 3 18 4 9 71 2 97 3 1 -13223 142 5 -361.165 2321.5 3 20 4 9 71 2 99 3 3 -13224 142 6 -355.095 2321.5 7 21 4 9 72 2 100 3 4 -13225 142 7 -349.025 2321.5 7 19 4 9 72 2 98 3 2 -13226 142 8 -342.955 2321.5 7 17 4 9 72 2 96 3 0 -13227 142 9 -336.885 2321.5 7 15 4 9 72 2 94 2 30 -13228 142 10 -330.815 2321.5 7 14 4 9 72 2 93 2 29 -13229 142 11 -324.745 2321.5 7 16 4 9 72 2 95 2 31 -13230 142 12 -318.675 2321.5 7 18 4 9 72 2 97 3 1 -13231 142 13 -312.605 2321.5 11 19 4 9 73 2 98 3 2 -13232 142 14 -306.535 2321.5 11 17 4 9 73 2 96 3 0 -13233 142 15 -300.465 2321.5 11 15 4 9 73 2 94 2 30 -13234 142 16 -294.395 2321.5 11 14 4 9 73 2 93 2 29 -13235 142 17 -288.325 2321.5 11 16 4 9 73 2 95 2 31 -13236 142 18 -282.255 2321.5 11 18 4 9 73 2 97 3 1 -13237 142 19 -276.185 2321.5 15 19 4 9 74 2 98 3 2 -13238 142 20 -270.115 2321.5 15 17 4 9 74 2 96 3 0 -13239 142 21 -264.045 2321.5 15 15 4 9 74 2 94 2 30 -13240 142 22 -257.975 2321.5 15 13 4 9 74 2 92 2 28 -13241 142 23 -251.905 2321.5 15 14 4 9 74 2 93 2 29 -13242 142 24 -245.835 2321.5 15 16 4 9 74 2 95 2 31 -13243 142 25 -239.765 2321.5 15 18 4 9 74 2 97 3 1 -13244 142 26 -233.695 2321.5 19 19 4 9 75 2 98 3 2 -13245 142 27 -227.625 2321.5 19 17 4 9 75 2 96 3 0 -13246 142 28 -221.555 2321.5 19 15 4 9 75 2 94 2 30 -13247 142 29 -215.485 2321.5 19 16 4 9 75 2 95 2 31 -13248 142 30 -209.415 2321.5 19 18 4 9 75 2 97 3 1 -13249 142 31 -203.345 2321.5 19 20 4 9 75 2 99 3 3 -13250 142 32 -197.275 2321.5 23 19 4 9 76 2 98 3 2 -13251 142 33 -191.205 2321.5 23 17 4 9 76 2 96 3 0 -13252 142 34 -185.135 2321.5 23 15 4 9 76 2 94 2 30 -13253 142 35 -179.065 2321.5 23 13 4 9 76 2 92 2 28 -13254 142 36 -172.995 2321.5 23 14 4 9 76 2 93 2 29 -13255 142 37 -166.925 2321.5 23 16 4 9 76 2 95 2 31 -13256 142 38 -160.855 2321.5 23 18 4 9 76 2 97 3 1 -13257 142 39 -154.785 2321.5 27 19 4 9 77 2 98 3 2 -13258 142 40 -148.715 2321.5 27 17 4 9 77 2 96 3 0 -13259 142 41 -142.645 2321.5 27 15 4 9 77 2 94 2 30 -13260 142 42 -136.575 2321.5 27 16 4 9 77 2 95 2 31 -13261 142 43 -130.505 2321.5 27 18 4 9 77 2 97 3 1 -13262 142 44 -124.435 2321.5 27 20 4 9 77 2 99 3 3 -13263 142 45 -118.365 2321.5 31 19 4 9 78 2 98 3 2 -13264 142 46 -112.295 2321.5 31 17 4 9 78 2 96 3 0 -13265 142 47 -106.225 2321.5 31 15 4 9 78 2 94 2 30 -13266 142 48 -100.155 2321.5 31 13 4 9 78 2 92 2 28 -13267 142 49 -94.085 2321.5 31 14 4 9 78 2 93 2 29 -13268 142 50 -88.015 2321.5 31 16 4 9 78 2 95 2 31 -13269 142 51 -81.945 2321.5 31 18 4 9 78 2 97 3 1 -13270 142 52 -75.875 2321.5 35 21 4 9 79 2 100 3 4 -13271 142 53 -69.805 2321.5 35 19 4 9 79 2 98 3 2 -13272 142 54 -63.735 2321.5 35 17 4 9 79 2 96 3 0 -13273 142 55 -57.665 2321.5 35 15 4 9 79 2 94 2 30 -13274 142 56 -51.595 2321.5 35 16 4 9 79 2 95 2 31 -13275 142 57 -45.525 2321.5 35 18 4 9 79 2 97 3 1 -13276 142 58 -39.455 2321.5 35 20 4 9 79 2 99 3 3 -13277 142 59 -33.385 2321.5 39 17 4 9 80 2 96 3 0 -13278 142 60 -27.315 2321.5 39 15 4 9 80 2 94 2 30 -13279 142 61 -21.245 2321.5 39 13 4 9 80 2 92 2 28 -13280 142 62 -15.175 2321.5 39 14 4 9 80 2 93 2 29 -13281 142 63 -9.105 2321.5 39 16 4 9 80 2 95 2 31 -13282 142 64 -3.035 2321.5 39 18 4 9 80 2 97 3 1 -13283 142 65 3.035 2321.5 43 17 4 9 81 2 96 3 0 -13284 142 66 9.105 2321.5 43 15 4 9 81 2 94 2 30 -13285 142 67 15.175 2321.5 43 13 4 9 81 2 92 2 28 -13286 142 68 21.245 2321.5 43 14 4 9 81 2 93 2 29 -13287 142 69 27.315 2321.5 43 16 4 9 81 2 95 2 31 -13288 142 70 33.385 2321.5 43 18 4 9 81 2 97 3 1 -13289 142 71 39.455 2321.5 47 19 4 9 82 2 98 3 2 -13290 142 72 45.525 2321.5 47 17 4 9 82 2 96 3 0 -13291 142 73 51.595 2321.5 47 15 4 9 82 2 94 2 30 -13292 142 74 57.665 2321.5 47 16 4 9 82 2 95 2 31 -13293 142 75 63.735 2321.5 47 18 4 9 82 2 97 3 1 -13294 142 76 69.805 2321.5 47 20 4 9 82 2 99 3 3 -13295 142 77 75.875 2321.5 47 22 4 9 82 2 101 3 5 -13296 142 78 81.945 2321.5 51 17 4 9 83 2 96 3 0 -13297 142 79 88.015 2321.5 51 15 4 9 83 2 94 2 30 -13298 142 80 94.085 2321.5 51 13 4 9 83 2 92 2 28 -13299 142 81 100.155 2321.5 51 14 4 9 83 2 93 2 29 -13300 142 82 106.225 2321.5 51 16 4 9 83 2 95 2 31 -13301 142 83 112.295 2321.5 51 18 4 9 83 2 97 3 1 -13302 142 84 118.365 2321.5 51 20 4 9 83 2 99 3 3 -13303 142 85 124.435 2321.5 55 19 4 9 84 2 98 3 2 -13304 142 86 130.505 2321.5 55 17 4 9 84 2 96 3 0 -13305 142 87 136.575 2321.5 55 15 4 9 84 2 94 2 30 -13306 142 88 142.645 2321.5 55 16 4 9 84 2 95 2 31 -13307 142 89 148.715 2321.5 55 18 4 9 84 2 97 3 1 -13308 142 90 154.785 2321.5 55 20 4 9 84 2 99 3 3 -13309 142 91 160.855 2321.5 59 17 4 9 85 2 96 3 0 -13310 142 92 166.925 2321.5 59 15 4 9 85 2 94 2 30 -13311 142 93 172.995 2321.5 59 13 4 9 85 2 92 2 28 -13312 142 94 179.065 2321.5 59 14 4 9 85 2 93 2 29 -13313 142 95 185.135 2321.5 59 16 4 9 85 2 95 2 31 -13314 142 96 191.205 2321.5 59 18 4 9 85 2 97 3 1 -13315 142 97 197.275 2321.5 59 20 4 9 85 2 99 3 3 -13316 142 98 203.345 2321.5 63 19 4 9 86 2 98 3 2 -13317 142 99 209.415 2321.5 63 17 4 9 86 2 96 3 0 -13318 142 100 215.485 2321.5 63 15 4 9 86 2 94 2 30 -13319 142 101 221.555 2321.5 63 16 4 9 86 2 95 2 31 -13320 142 102 227.625 2321.5 63 18 4 9 86 2 97 3 1 -13321 142 103 233.695 2321.5 63 20 4 9 86 2 99 3 3 -13322 142 104 239.765 2321.5 67 17 4 9 87 2 96 3 0 -13323 142 105 245.835 2321.5 67 15 4 9 87 2 94 2 30 -13324 142 106 251.905 2321.5 67 13 4 9 87 2 92 2 28 -13325 142 107 257.975 2321.5 67 14 4 9 87 2 93 2 29 -13326 142 108 264.045 2321.5 67 16 4 9 87 2 95 2 31 -13327 142 109 270.115 2321.5 67 18 4 9 87 2 97 3 1 -13328 142 110 276.185 2321.5 67 20 4 9 87 2 99 3 3 -13329 142 111 282.255 2321.5 71 17 4 9 88 2 96 3 0 -13330 142 112 288.325 2321.5 71 15 4 9 88 2 94 2 30 -13331 142 113 294.395 2321.5 71 13 4 9 88 2 92 2 28 -13332 142 114 300.465 2321.5 71 16 4 9 88 2 95 2 31 -13333 142 115 306.535 2321.5 71 18 4 9 88 2 97 3 1 -13334 142 116 312.605 2321.5 71 20 4 9 88 2 99 3 3 -13335 142 117 318.675 2321.5 75 17 4 9 89 2 96 3 0 -13336 142 118 324.745 2321.5 75 15 4 9 89 2 94 2 30 -13337 142 119 330.815 2321.5 75 13 4 9 89 2 92 2 28 -13338 142 120 336.885 2321.5 75 16 4 9 89 2 95 2 31 -13339 142 121 342.955 2321.5 75 18 4 9 89 2 97 3 1 -13340 142 122 349.025 2321.5 75 20 4 9 89 2 99 3 3 -13341 142 123 355.095 2321.5 75 22 4 9 89 2 101 3 5 -13342 142 124 361.165 2321.5 79 19 4 9 90 2 98 3 2 -13343 142 125 367.235 2321.5 79 17 4 9 90 2 96 3 0 -13344 142 126 373.305 2321.5 79 15 4 9 90 2 94 2 30 -13345 142 127 379.375 2321.5 79 14 4 9 90 2 93 2 29 -13346 142 128 385.445 2321.5 79 16 4 9 90 2 95 2 31 -13347 142 129 391.515 2321.5 79 18 4 9 90 2 97 3 1 -13348 143 0 -397.585 2336.5 3 25 4 9 71 2 104 3 8 -13349 143 1 -391.515 2336.5 3 23 4 9 71 2 102 3 6 -13350 143 2 -385.445 2336.5 3 21 4 9 71 2 100 3 4 -13351 143 3 -379.375 2336.5 3 19 4 9 71 2 98 3 2 -13352 143 4 -373.305 2336.5 3 22 4 9 71 2 101 3 5 -13353 143 5 -367.235 2336.5 3 24 4 9 71 2 103 3 7 -13354 143 6 -361.165 2336.5 3 26 4 9 71 2 105 3 9 -13355 143 7 -355.095 2336.5 7 27 4 9 72 2 106 3 10 -13356 143 8 -349.025 2336.5 7 25 4 9 72 2 104 3 8 -13357 143 9 -342.955 2336.5 7 23 4 9 72 2 102 3 6 -13358 143 10 -336.885 2336.5 7 20 4 9 72 2 99 3 3 -13359 143 11 -330.815 2336.5 7 22 4 9 72 2 101 3 5 -13360 143 12 -324.745 2336.5 7 24 4 9 72 2 103 3 7 -13361 143 13 -318.675 2336.5 7 26 4 9 72 2 105 3 9 -13362 143 14 -312.605 2336.5 11 25 4 9 73 2 104 3 8 -13363 143 15 -306.535 2336.5 11 23 4 9 73 2 102 3 6 -13364 143 16 -300.465 2336.5 11 21 4 9 73 2 100 3 4 -13365 143 17 -294.395 2336.5 11 20 4 9 73 2 99 3 3 -13366 143 18 -288.325 2336.5 11 22 4 9 73 2 101 3 5 -13367 143 19 -282.255 2336.5 11 24 4 9 73 2 103 3 7 -13368 143 20 -276.185 2336.5 15 25 4 9 74 2 104 3 8 -13369 143 21 -270.115 2336.5 15 23 4 9 74 2 102 3 6 -13370 143 22 -264.045 2336.5 15 21 4 9 74 2 100 3 4 -13371 143 23 -257.975 2336.5 15 20 4 9 74 2 99 3 3 -13372 143 24 -251.905 2336.5 15 22 4 9 74 2 101 3 5 -13373 143 25 -245.835 2336.5 15 24 4 9 74 2 103 3 7 -13374 143 26 -239.765 2336.5 15 26 4 9 74 2 105 3 9 -13375 143 27 -233.695 2336.5 19 25 4 9 75 2 104 3 8 -13376 143 28 -227.625 2336.5 19 23 4 9 75 2 102 3 6 -13377 143 29 -221.555 2336.5 19 21 4 9 75 2 100 3 4 -13378 143 30 -215.485 2336.5 19 22 4 9 75 2 101 3 5 -13379 143 31 -209.415 2336.5 19 24 4 9 75 2 103 3 7 -13380 143 32 -203.345 2336.5 19 26 4 9 75 2 105 3 9 -13381 143 33 -197.275 2336.5 23 25 4 9 76 2 104 3 8 -13382 143 34 -191.205 2336.5 23 23 4 9 76 2 102 3 6 -13383 143 35 -185.135 2336.5 23 21 4 9 76 2 100 3 4 -13384 143 36 -179.065 2336.5 23 20 4 9 76 2 99 3 3 -13385 143 37 -172.995 2336.5 23 22 4 9 76 2 101 3 5 -13386 143 38 -166.925 2336.5 23 24 4 9 76 2 103 3 7 -13387 143 39 -160.855 2336.5 23 26 4 9 76 2 105 3 9 -13388 143 40 -154.785 2336.5 27 25 4 9 77 2 104 3 8 -13389 143 41 -148.715 2336.5 27 23 4 9 77 2 102 3 6 -13390 143 42 -142.645 2336.5 27 21 4 9 77 2 100 3 4 -13391 143 43 -136.575 2336.5 27 22 4 9 77 2 101 3 5 -13392 143 44 -130.505 2336.5 27 24 4 9 77 2 103 3 7 -13393 143 45 -124.435 2336.5 27 26 4 9 77 2 105 3 9 -13394 143 46 -118.365 2336.5 31 25 4 9 78 2 104 3 8 -13395 143 47 -112.295 2336.5 31 23 4 9 78 2 102 3 6 -13396 143 48 -106.225 2336.5 31 21 4 9 78 2 100 3 4 -13397 143 49 -100.155 2336.5 31 20 4 9 78 2 99 3 3 -13398 143 50 -94.085 2336.5 31 22 4 9 78 2 101 3 5 -13399 143 51 -88.015 2336.5 31 24 4 9 78 2 103 3 7 -13400 143 52 -81.945 2336.5 31 26 4 9 78 2 105 3 9 -13401 143 53 -75.875 2336.5 35 27 4 9 79 2 106 3 10 -13402 143 54 -69.805 2336.5 35 25 4 9 79 2 104 3 8 -13403 143 55 -63.735 2336.5 35 23 4 9 79 2 102 3 6 -13404 143 56 -57.665 2336.5 35 22 4 9 79 2 101 3 5 -13405 143 57 -51.595 2336.5 35 24 4 9 79 2 103 3 7 -13406 143 58 -45.525 2336.5 35 26 4 9 79 2 105 3 9 -13407 143 59 -39.455 2336.5 35 28 4 9 79 2 107 3 11 -13408 143 60 -33.385 2336.5 39 23 4 9 80 2 102 3 6 -13409 143 61 -27.315 2336.5 39 21 4 9 80 2 100 3 4 -13410 143 62 -21.245 2336.5 39 19 4 9 80 2 98 3 2 -13411 143 63 -15.175 2336.5 39 20 4 9 80 2 99 3 3 -13412 143 64 -9.105 2336.5 39 22 4 9 80 2 101 3 5 -13413 143 65 -3.035 2336.5 39 24 4 9 80 2 103 3 7 -13414 143 66 3.035 2336.5 43 23 4 9 81 2 102 3 6 -13415 143 67 9.105 2336.5 43 21 4 9 81 2 100 3 4 -13416 143 68 15.175 2336.5 43 19 4 9 81 2 98 3 2 -13417 143 69 21.245 2336.5 43 20 4 9 81 2 99 3 3 -13418 143 70 27.315 2336.5 43 22 4 9 81 2 101 3 5 -13419 143 71 33.385 2336.5 43 24 4 9 81 2 103 3 7 -13420 143 72 39.455 2336.5 47 27 4 9 82 2 106 3 10 -13421 143 73 45.525 2336.5 47 25 4 9 82 2 104 3 8 -13422 143 74 51.595 2336.5 47 23 4 9 82 2 102 3 6 -13423 143 75 57.665 2336.5 47 21 4 9 82 2 100 3 4 -13424 143 76 63.735 2336.5 47 24 4 9 82 2 103 3 7 -13425 143 77 69.805 2336.5 47 26 4 9 82 2 105 3 9 -13426 143 78 75.875 2336.5 47 28 4 9 82 2 107 3 11 -13427 143 79 81.945 2336.5 51 25 4 9 83 2 104 3 8 -13428 143 80 88.015 2336.5 51 23 4 9 83 2 102 3 6 -13429 143 81 94.085 2336.5 51 21 4 9 83 2 100 3 4 -13430 143 82 100.155 2336.5 51 19 4 9 83 2 98 3 2 -13431 143 83 106.225 2336.5 51 22 4 9 83 2 101 3 5 -13432 143 84 112.295 2336.5 51 24 4 9 83 2 103 3 7 -13433 143 85 118.365 2336.5 51 26 4 9 83 2 105 3 9 -13434 143 86 124.435 2336.5 55 25 4 9 84 2 104 3 8 -13435 143 87 130.505 2336.5 55 23 4 9 84 2 102 3 6 -13436 143 88 136.575 2336.5 55 21 4 9 84 2 100 3 4 -13437 143 89 142.645 2336.5 55 22 4 9 84 2 101 3 5 -13438 143 90 148.715 2336.5 55 24 4 9 84 2 103 3 7 -13439 143 91 154.785 2336.5 55 26 4 9 84 2 105 3 9 -13440 143 92 160.855 2336.5 59 25 4 9 85 2 104 3 8 -13441 143 93 166.925 2336.5 59 23 4 9 85 2 102 3 6 -13442 143 94 172.995 2336.5 59 21 4 9 85 2 100 3 4 -13443 143 95 179.065 2336.5 59 19 4 9 85 2 98 3 2 -13444 143 96 185.135 2336.5 59 22 4 9 85 2 101 3 5 -13445 143 97 191.205 2336.5 59 24 4 9 85 2 103 3 7 -13446 143 98 197.275 2336.5 59 26 4 9 85 2 105 3 9 -13447 143 99 203.345 2336.5 63 25 4 9 86 2 104 3 8 -13448 143 100 209.415 2336.5 63 23 4 9 86 2 102 3 6 -13449 143 101 215.485 2336.5 63 21 4 9 86 2 100 3 4 -13450 143 102 221.555 2336.5 63 22 4 9 86 2 101 3 5 -13451 143 103 227.625 2336.5 63 24 4 9 86 2 103 3 7 -13452 143 104 233.695 2336.5 63 26 4 9 86 2 105 3 9 -13453 143 105 239.765 2336.5 67 25 4 9 87 2 104 3 8 -13454 143 106 245.835 2336.5 67 23 4 9 87 2 102 3 6 -13455 143 107 251.905 2336.5 67 21 4 9 87 2 100 3 4 -13456 143 108 257.975 2336.5 67 19 4 9 87 2 98 3 2 -13457 143 109 264.045 2336.5 67 22 4 9 87 2 101 3 5 -13458 143 110 270.115 2336.5 67 24 4 9 87 2 103 3 7 -13459 143 111 276.185 2336.5 67 26 4 9 87 2 105 3 9 -13460 143 112 282.255 2336.5 71 23 4 9 88 2 102 3 6 -13461 143 113 288.325 2336.5 71 21 4 9 88 2 100 3 4 -13462 143 114 294.395 2336.5 71 19 4 9 88 2 98 3 2 -13463 143 115 300.465 2336.5 71 22 4 9 88 2 101 3 5 -13464 143 116 306.535 2336.5 71 24 4 9 88 2 103 3 7 -13465 143 117 312.605 2336.5 71 26 4 9 88 2 105 3 9 -13466 143 118 318.675 2336.5 75 25 4 9 89 2 104 3 8 -13467 143 119 324.745 2336.5 75 23 4 9 89 2 102 3 6 -13468 143 120 330.815 2336.5 75 21 4 9 89 2 100 3 4 -13469 143 121 336.885 2336.5 75 19 4 9 89 2 98 3 2 -13470 143 122 342.955 2336.5 75 24 4 9 89 2 103 3 7 -13471 143 123 349.025 2336.5 75 26 4 9 89 2 105 3 9 -13472 143 124 355.095 2336.5 75 28 4 9 89 2 107 3 11 -13473 143 125 361.165 2336.5 79 25 4 9 90 2 104 3 8 -13474 143 126 367.235 2336.5 79 23 4 9 90 2 102 3 6 -13475 143 127 373.305 2336.5 79 21 4 9 90 2 100 3 4 -13476 143 128 379.375 2336.5 79 20 4 9 90 2 99 3 3 -13477 143 129 385.445 2336.5 79 22 4 9 90 2 101 3 5 -13478 143 130 391.515 2336.5 79 24 4 9 90 2 103 3 7 -13479 143 131 397.585 2336.5 79 26 4 9 90 2 105 3 9 -13480 144 0 -397.585 2351.5 3 33 4 9 71 2 112 3 16 -13481 144 1 -391.515 2351.5 3 31 4 9 71 2 110 3 14 -13482 144 2 -385.445 2351.5 3 29 4 9 71 2 108 3 12 -13483 144 3 -379.375 2351.5 3 27 4 9 71 2 106 3 10 -13484 144 4 -373.305 2351.5 3 28 4 9 71 2 107 3 11 -13485 144 5 -367.235 2351.5 3 30 4 9 71 2 109 3 13 -13486 144 6 -361.165 2351.5 3 32 4 9 71 2 111 3 15 -13487 144 7 -355.095 2351.5 7 33 4 9 72 2 112 3 16 -13488 144 8 -349.025 2351.5 7 31 4 9 72 2 110 3 14 -13489 144 9 -342.955 2351.5 7 29 4 9 72 2 108 3 12 -13490 144 10 -336.885 2351.5 7 28 4 9 72 2 107 3 11 -13491 144 11 -330.815 2351.5 7 30 4 9 72 2 109 3 13 -13492 144 12 -324.745 2351.5 7 32 4 9 72 2 111 3 15 -13493 144 13 -318.675 2351.5 11 31 4 9 73 2 110 3 14 -13494 144 14 -312.605 2351.5 11 29 4 9 73 2 108 3 12 -13495 144 15 -306.535 2351.5 11 27 4 9 73 2 106 3 10 -13496 144 16 -300.465 2351.5 11 26 4 9 73 2 105 3 9 -13497 144 17 -294.395 2351.5 11 28 4 9 73 2 107 3 11 -13498 144 18 -288.325 2351.5 11 30 4 9 73 2 109 3 13 -13499 144 19 -282.255 2351.5 11 32 4 9 73 2 111 3 15 -13500 144 20 -276.185 2351.5 15 31 4 9 74 2 110 3 14 -13501 144 21 -270.115 2351.5 15 29 4 9 74 2 108 3 12 -13502 144 22 -264.045 2351.5 15 27 4 9 74 2 106 3 10 -13503 144 23 -257.975 2351.5 15 28 4 9 74 2 107 3 11 -13504 144 24 -251.905 2351.5 15 30 4 9 74 2 109 3 13 -13505 144 25 -245.835 2351.5 15 32 4 9 74 2 111 3 15 -13506 144 26 -239.765 2351.5 19 33 4 9 75 2 112 3 16 -13507 144 27 -233.695 2351.5 19 31 4 9 75 2 110 3 14 -13508 144 28 -227.625 2351.5 19 29 4 9 75 2 108 3 12 -13509 144 29 -221.555 2351.5 19 27 4 9 75 2 106 3 10 -13510 144 30 -215.485 2351.5 19 28 4 9 75 2 107 3 11 -13511 144 31 -209.415 2351.5 19 30 4 9 75 2 109 3 13 -13512 144 32 -203.345 2351.5 19 32 4 9 75 2 111 3 15 -13513 144 33 -197.275 2351.5 23 31 4 9 76 2 110 3 14 -13514 144 34 -191.205 2351.5 23 29 4 9 76 2 108 3 12 -13515 144 35 -185.135 2351.5 23 27 4 9 76 2 106 3 10 -13516 144 36 -179.065 2351.5 23 28 4 9 76 2 107 3 11 -13517 144 37 -172.995 2351.5 23 30 4 9 76 2 109 3 13 -13518 144 38 -166.925 2351.5 23 32 4 9 76 2 111 3 15 -13519 144 39 -160.855 2351.5 23 34 4 9 76 2 113 3 17 -13520 144 40 -154.785 2351.5 27 31 4 9 77 2 110 3 14 -13521 144 41 -148.715 2351.5 27 29 4 9 77 2 108 3 12 -13522 144 42 -142.645 2351.5 27 27 4 9 77 2 106 3 10 -13523 144 43 -136.575 2351.5 27 28 4 9 77 2 107 3 11 -13524 144 44 -130.505 2351.5 27 30 4 9 77 2 109 3 13 -13525 144 45 -124.435 2351.5 27 32 4 9 77 2 111 3 15 -13526 144 46 -118.365 2351.5 31 33 4 9 78 2 112 3 16 -13527 144 47 -112.295 2351.5 31 31 4 9 78 2 110 3 14 -13528 144 48 -106.225 2351.5 31 29 4 9 78 2 108 3 12 -13529 144 49 -100.155 2351.5 31 27 4 9 78 2 106 3 10 -13530 144 50 -94.085 2351.5 31 28 4 9 78 2 107 3 11 -13531 144 51 -88.015 2351.5 31 30 4 9 78 2 109 3 13 -13532 144 52 -81.945 2351.5 31 32 4 9 78 2 111 3 15 -13533 144 53 -75.875 2351.5 35 33 4 9 79 2 112 3 16 -13534 144 54 -69.805 2351.5 35 31 4 9 79 2 110 3 14 -13535 144 55 -63.735 2351.5 35 29 4 9 79 2 108 3 12 -13536 144 56 -57.665 2351.5 35 30 4 9 79 2 109 3 13 -13537 144 57 -51.595 2351.5 35 32 4 9 79 2 111 3 15 -13538 144 58 -45.525 2351.5 35 34 4 9 79 2 113 3 17 -13539 144 59 -39.455 2351.5 39 29 4 9 80 2 108 3 12 -13540 144 60 -33.385 2351.5 39 27 4 9 80 2 106 3 10 -13541 144 61 -27.315 2351.5 39 25 4 9 80 2 104 3 8 -13542 144 62 -21.245 2351.5 39 26 4 9 80 2 105 3 9 -13543 144 63 -15.175 2351.5 39 28 4 9 80 2 107 3 11 -13544 144 64 -9.105 2351.5 39 30 4 9 80 2 109 3 13 -13545 144 65 -3.035 2351.5 39 32 4 9 80 2 111 3 15 -13546 144 66 3.035 2351.5 43 31 4 9 81 2 110 3 14 -13547 144 67 9.105 2351.5 43 29 4 9 81 2 108 3 12 -13548 144 68 15.175 2351.5 43 27 4 9 81 2 106 3 10 -13549 144 69 21.245 2351.5 43 25 4 9 81 2 104 3 8 -13550 144 70 27.315 2351.5 43 26 4 9 81 2 105 3 9 -13551 144 71 33.385 2351.5 43 28 4 9 81 2 107 3 11 -13552 144 72 39.455 2351.5 43 30 4 9 81 2 109 3 13 -13553 144 73 45.525 2351.5 47 33 4 9 82 2 112 3 16 -13554 144 74 51.595 2351.5 47 31 4 9 82 2 110 3 14 -13555 144 75 57.665 2351.5 47 29 4 9 82 2 108 3 12 -13556 144 76 63.735 2351.5 47 30 4 9 82 2 109 3 13 -13557 144 77 69.805 2351.5 47 32 4 9 82 2 111 3 15 -13558 144 78 75.875 2351.5 47 34 4 9 82 2 113 3 17 -13559 144 79 81.945 2351.5 51 31 4 9 83 2 110 3 14 -13560 144 80 88.015 2351.5 51 29 4 9 83 2 108 3 12 -13561 144 81 94.085 2351.5 51 27 4 9 83 2 106 3 10 -13562 144 82 100.155 2351.5 51 28 4 9 83 2 107 3 11 -13563 144 83 106.225 2351.5 51 30 4 9 83 2 109 3 13 -13564 144 84 112.295 2351.5 51 32 4 9 83 2 111 3 15 -13565 144 85 118.365 2351.5 51 34 4 9 83 2 113 3 17 -13566 144 86 124.435 2351.5 55 31 4 9 84 2 110 3 14 -13567 144 87 130.505 2351.5 55 29 4 9 84 2 108 3 12 -13568 144 88 136.575 2351.5 55 27 4 9 84 2 106 3 10 -13569 144 89 142.645 2351.5 55 28 4 9 84 2 107 3 11 -13570 144 90 148.715 2351.5 55 30 4 9 84 2 109 3 13 -13571 144 91 154.785 2351.5 55 32 4 9 84 2 111 3 15 -13572 144 92 160.855 2351.5 59 33 4 9 85 2 112 3 16 -13573 144 93 166.925 2351.5 59 31 4 9 85 2 110 3 14 -13574 144 94 172.995 2351.5 59 29 4 9 85 2 108 3 12 -13575 144 95 179.065 2351.5 59 27 4 9 85 2 106 3 10 -13576 144 96 185.135 2351.5 59 28 4 9 85 2 107 3 11 -13577 144 97 191.205 2351.5 59 30 4 9 85 2 109 3 13 -13578 144 98 197.275 2351.5 59 32 4 9 85 2 111 3 15 -13579 144 99 203.345 2351.5 63 31 4 9 86 2 110 3 14 -13580 144 100 209.415 2351.5 63 29 4 9 86 2 108 3 12 -13581 144 101 215.485 2351.5 63 27 4 9 86 2 106 3 10 -13582 144 102 221.555 2351.5 63 28 4 9 86 2 107 3 11 -13583 144 103 227.625 2351.5 63 30 4 9 86 2 109 3 13 -13584 144 104 233.695 2351.5 63 32 4 9 86 2 111 3 15 -13585 144 105 239.765 2351.5 63 34 4 9 86 2 113 3 17 -13586 144 106 245.835 2351.5 67 31 4 9 87 2 110 3 14 -13587 144 107 251.905 2351.5 67 29 4 9 87 2 108 3 12 -13588 144 108 257.975 2351.5 67 27 4 9 87 2 106 3 10 -13589 144 109 264.045 2351.5 67 28 4 9 87 2 107 3 11 -13590 144 110 270.115 2351.5 67 30 4 9 87 2 109 3 13 -13591 144 111 276.185 2351.5 67 32 4 9 87 2 111 3 15 -13592 144 112 282.255 2351.5 71 31 4 9 88 2 110 3 14 -13593 144 113 288.325 2351.5 71 29 4 9 88 2 108 3 12 -13594 144 114 294.395 2351.5 71 27 4 9 88 2 106 3 10 -13595 144 115 300.465 2351.5 71 25 4 9 88 2 104 3 8 -13596 144 116 306.535 2351.5 71 28 4 9 88 2 107 3 11 -13597 144 117 312.605 2351.5 71 30 4 9 88 2 109 3 13 -13598 144 118 318.675 2351.5 71 32 4 9 88 2 111 3 15 -13599 144 119 324.745 2351.5 75 31 4 9 89 2 110 3 14 -13600 144 120 330.815 2351.5 75 29 4 9 89 2 108 3 12 -13601 144 121 336.885 2351.5 75 27 4 9 89 2 106 3 10 -13602 144 122 342.955 2351.5 75 30 4 9 89 2 109 3 13 -13603 144 123 349.025 2351.5 75 32 4 9 89 2 111 3 15 -13604 144 124 355.095 2351.5 75 34 4 9 89 2 113 3 17 -13605 144 125 361.165 2351.5 79 31 4 9 90 2 110 3 14 -13606 144 126 367.235 2351.5 79 29 4 9 90 2 108 3 12 -13607 144 127 373.305 2351.5 79 27 4 9 90 2 106 3 10 -13608 144 128 379.375 2351.5 79 28 4 9 90 2 107 3 11 -13609 144 129 385.445 2351.5 79 30 4 9 90 2 109 3 13 -13610 144 130 391.515 2351.5 79 32 4 9 90 2 111 3 15 -13611 144 131 397.585 2351.5 79 34 4 9 90 2 113 3 17 -13612 145 0 -397.585 2366.5 3 39 4 9 71 2 118 3 22 -13613 145 1 -391.515 2366.5 3 37 4 9 71 2 116 3 20 -13614 145 2 -385.445 2366.5 3 35 4 9 71 2 114 3 18 -13615 145 3 -379.375 2366.5 3 34 4 9 71 2 113 3 17 -13616 145 4 -373.305 2366.5 3 36 4 9 71 2 115 3 19 -13617 145 5 -367.235 2366.5 3 38 4 9 71 2 117 3 21 -13618 145 6 -361.165 2366.5 7 39 4 9 72 2 118 3 22 -13619 145 7 -355.095 2366.5 7 37 4 9 72 2 116 3 20 -13620 145 8 -349.025 2366.5 7 35 4 9 72 2 114 3 18 -13621 145 9 -342.955 2366.5 7 34 4 9 72 2 113 3 17 -13622 145 10 -336.885 2366.5 7 36 4 9 72 2 115 3 19 -13623 145 11 -330.815 2366.5 7 38 4 9 72 2 117 3 21 -13624 145 12 -324.745 2366.5 7 40 4 9 72 2 119 3 23 -13625 145 13 -318.675 2366.5 11 39 4 9 73 2 118 3 22 -13626 145 14 -312.605 2366.5 11 37 4 9 73 2 116 3 20 -13627 145 15 -306.535 2366.5 11 35 4 9 73 2 114 3 18 -13628 145 16 -300.465 2366.5 11 33 4 9 73 2 112 3 16 -13629 145 17 -294.395 2366.5 11 34 4 9 73 2 113 3 17 -13630 145 18 -288.325 2366.5 11 36 4 9 73 2 115 3 19 -13631 145 19 -282.255 2366.5 15 37 4 9 74 2 116 3 20 -13632 145 20 -276.185 2366.5 15 35 4 9 74 2 114 3 18 -13633 145 21 -270.115 2366.5 15 33 4 9 74 2 112 3 16 -13634 145 22 -264.045 2366.5 15 34 4 9 74 2 113 3 17 -13635 145 23 -257.975 2366.5 15 36 4 9 74 2 115 3 19 -13636 145 24 -251.905 2366.5 15 38 4 9 74 2 117 3 21 -13637 145 25 -245.835 2366.5 15 40 4 9 74 2 119 3 23 -13638 145 26 -239.765 2366.5 19 39 4 9 75 2 118 3 22 -13639 145 27 -233.695 2366.5 19 37 4 9 75 2 116 3 20 -13640 145 28 -227.625 2366.5 19 35 4 9 75 2 114 3 18 -13641 145 29 -221.555 2366.5 19 34 4 9 75 2 113 3 17 -13642 145 30 -215.485 2366.5 19 36 4 9 75 2 115 3 19 -13643 145 31 -209.415 2366.5 19 38 4 9 75 2 117 3 21 -13644 145 32 -203.345 2366.5 19 40 4 9 75 2 119 3 23 -13645 145 33 -197.275 2366.5 23 37 4 9 76 2 116 3 20 -13646 145 34 -191.205 2366.5 23 35 4 9 76 2 114 3 18 -13647 145 35 -185.135 2366.5 23 33 4 9 76 2 112 3 16 -13648 145 36 -179.065 2366.5 23 36 4 9 76 2 115 3 19 -13649 145 37 -172.995 2366.5 23 38 4 9 76 2 117 3 21 -13650 145 38 -166.925 2366.5 23 40 4 9 76 2 119 3 23 -13651 145 39 -160.855 2366.5 27 37 4 9 77 2 116 3 20 -13652 145 40 -154.785 2366.5 27 35 4 9 77 2 114 3 18 -13653 145 41 -148.715 2366.5 27 33 4 9 77 2 112 3 16 -13654 145 42 -142.645 2366.5 27 34 4 9 77 2 113 3 17 -13655 145 43 -136.575 2366.5 27 36 4 9 77 2 115 3 19 -13656 145 44 -130.505 2366.5 27 38 4 9 77 2 117 3 21 -13657 145 45 -124.435 2366.5 27 40 4 9 77 2 119 3 23 -13658 145 46 -118.365 2366.5 31 39 4 9 78 2 118 3 22 -13659 145 47 -112.295 2366.5 31 37 4 9 78 2 116 3 20 -13660 145 48 -106.225 2366.5 31 35 4 9 78 2 114 3 18 -13661 145 49 -100.155 2366.5 31 34 4 9 78 2 113 3 17 -13662 145 50 -94.085 2366.5 31 36 4 9 78 2 115 3 19 -13663 145 51 -88.015 2366.5 31 38 4 9 78 2 117 3 21 -13664 145 52 -81.945 2366.5 31 40 4 9 78 2 119 3 23 -13665 145 53 -75.875 2366.5 35 39 4 9 79 2 118 3 22 -13666 145 54 -69.805 2366.5 35 37 4 9 79 2 116 3 20 -13667 145 55 -63.735 2366.5 35 35 4 9 79 2 114 3 18 -13668 145 56 -57.665 2366.5 35 36 4 9 79 2 115 3 19 -13669 145 57 -51.595 2366.5 35 38 4 9 79 2 117 3 21 -13670 145 58 -45.525 2366.5 35 40 4 9 79 2 119 3 23 -13671 145 59 -39.455 2366.5 39 35 4 9 80 2 114 3 18 -13672 145 60 -33.385 2366.5 39 33 4 9 80 2 112 3 16 -13673 145 61 -27.315 2366.5 39 31 4 9 80 2 110 3 14 -13674 145 62 -21.245 2366.5 39 34 4 9 80 2 113 3 17 -13675 145 63 -15.175 2366.5 39 36 4 9 80 2 115 3 19 -13676 145 64 -9.105 2366.5 39 38 4 9 80 2 117 3 21 -13677 145 65 -3.035 2366.5 39 40 4 9 80 2 119 3 23 -13678 145 66 3.035 2366.5 43 39 4 9 81 2 118 3 22 -13679 145 67 9.105 2366.5 43 37 4 9 81 2 116 3 20 -13680 145 68 15.175 2366.5 43 35 4 9 81 2 114 3 18 -13681 145 69 21.245 2366.5 43 33 4 9 81 2 112 3 16 -13682 145 70 27.315 2366.5 43 32 4 9 81 2 111 3 15 -13683 145 71 33.385 2366.5 43 34 4 9 81 2 113 3 17 -13684 145 72 39.455 2366.5 43 36 4 9 81 2 115 3 19 -13685 145 73 45.525 2366.5 47 39 4 9 82 2 118 3 22 -13686 145 74 51.595 2366.5 47 37 4 9 82 2 116 3 20 -13687 145 75 57.665 2366.5 47 35 4 9 82 2 114 3 18 -13688 145 76 63.735 2366.5 47 36 4 9 82 2 115 3 19 -13689 145 77 69.805 2366.5 47 38 4 9 82 2 117 3 21 -13690 145 78 75.875 2366.5 47 40 4 9 82 2 119 3 23 -13691 145 79 81.945 2366.5 51 39 4 9 83 2 118 3 22 -13692 145 80 88.015 2366.5 51 37 4 9 83 2 116 3 20 -13693 145 81 94.085 2366.5 51 35 4 9 83 2 114 3 18 -13694 145 82 100.155 2366.5 51 33 4 9 83 2 112 3 16 -13695 145 83 106.225 2366.5 51 36 4 9 83 2 115 3 19 -13696 145 84 112.295 2366.5 51 38 4 9 83 2 117 3 21 -13697 145 85 118.365 2366.5 51 40 4 9 83 2 119 3 23 -13698 145 86 124.435 2366.5 55 39 4 9 84 2 118 3 22 -13699 145 87 130.505 2366.5 55 37 4 9 84 2 116 3 20 -13700 145 88 136.575 2366.5 55 35 4 9 84 2 114 3 18 -13701 145 89 142.645 2366.5 55 33 4 9 84 2 112 3 16 -13702 145 90 148.715 2366.5 55 34 4 9 84 2 113 3 17 -13703 145 91 154.785 2366.5 55 36 4 9 84 2 115 3 19 -13704 145 92 160.855 2366.5 55 38 4 9 84 2 117 3 21 -13705 145 93 166.925 2366.5 59 39 4 9 85 2 118 3 22 -13706 145 94 172.995 2366.5 59 37 4 9 85 2 116 3 20 -13707 145 95 179.065 2366.5 59 35 4 9 85 2 114 3 18 -13708 145 96 185.135 2366.5 59 34 4 9 85 2 113 3 17 -13709 145 97 191.205 2366.5 59 36 4 9 85 2 115 3 19 -13710 145 98 197.275 2366.5 59 38 4 9 85 2 117 3 21 -13711 145 99 203.345 2366.5 63 39 4 9 86 2 118 3 22 -13712 145 100 209.415 2366.5 63 37 4 9 86 2 116 3 20 -13713 145 101 215.485 2366.5 63 35 4 9 86 2 114 3 18 -13714 145 102 221.555 2366.5 63 33 4 9 86 2 112 3 16 -13715 145 103 227.625 2366.5 63 36 4 9 86 2 115 3 19 -13716 145 104 233.695 2366.5 63 38 4 9 86 2 117 3 21 -13717 145 105 239.765 2366.5 63 40 4 9 86 2 119 3 23 -13718 145 106 245.835 2366.5 67 39 4 9 87 2 118 3 22 -13719 145 107 251.905 2366.5 67 37 4 9 87 2 116 3 20 -13720 145 108 257.975 2366.5 67 35 4 9 87 2 114 3 18 -13721 145 109 264.045 2366.5 67 33 4 9 87 2 112 3 16 -13722 145 110 270.115 2366.5 67 34 4 9 87 2 113 3 17 -13723 145 111 276.185 2366.5 67 36 4 9 87 2 115 3 19 -13724 145 112 282.255 2366.5 67 38 4 9 87 2 117 3 21 -13725 145 113 288.325 2366.5 71 35 4 9 88 2 114 3 18 -13726 145 114 294.395 2366.5 71 33 4 9 88 2 112 3 16 -13727 145 115 300.465 2366.5 71 34 4 9 88 2 113 3 17 -13728 145 116 306.535 2366.5 71 36 4 9 88 2 115 3 19 -13729 145 117 312.605 2366.5 71 38 4 9 88 2 117 3 21 -13730 145 118 318.675 2366.5 71 40 4 9 88 2 119 3 23 -13731 145 119 324.745 2366.5 75 39 4 9 89 2 118 3 22 -13732 145 120 330.815 2366.5 75 37 4 9 89 2 116 3 20 -13733 145 121 336.885 2366.5 75 35 4 9 89 2 114 3 18 -13734 145 122 342.955 2366.5 75 33 4 9 89 2 112 3 16 -13735 145 123 349.025 2366.5 75 36 4 9 89 2 115 3 19 -13736 145 124 355.095 2366.5 75 38 4 9 89 2 117 3 21 -13737 145 125 361.165 2366.5 75 40 4 9 89 2 119 3 23 -13738 145 126 367.235 2366.5 79 37 4 9 90 2 116 3 20 -13739 145 127 373.305 2366.5 79 35 4 9 90 2 114 3 18 -13740 145 128 379.375 2366.5 79 33 4 9 90 2 112 3 16 -13741 145 129 385.445 2366.5 79 36 4 9 90 2 115 3 19 -13742 145 130 391.515 2366.5 79 38 4 9 90 2 117 3 21 -13743 145 131 397.585 2366.5 79 40 4 9 90 2 119 3 23 -13744 146 0 -403.655 2381.5 4 5 4 9 71 3 124 3 28 -13745 146 1 -397.585 2381.5 4 3 4 9 71 3 122 3 26 -13746 146 2 -391.515 2381.5 4 1 4 9 71 3 120 3 24 -13747 146 3 -385.445 2381.5 4 2 4 9 71 3 121 3 25 -13748 146 4 -379.375 2381.5 4 4 4 9 71 3 123 3 27 -13749 146 5 -373.305 2381.5 4 6 4 9 71 3 125 3 29 -13750 146 6 -367.235 2381.5 3 40 4 9 71 2 119 3 23 -13751 146 7 -361.165 2381.5 8 5 4 9 72 3 124 3 28 -13752 146 8 -355.095 2381.5 8 3 4 9 72 3 122 3 26 -13753 146 9 -349.025 2381.5 8 1 4 9 72 3 120 3 24 -13754 146 10 -342.955 2381.5 8 2 4 9 72 3 121 3 25 -13755 146 11 -336.885 2381.5 8 4 4 9 72 3 123 3 27 -13756 146 12 -330.815 2381.5 8 6 4 9 72 3 125 3 29 -13757 146 13 -324.745 2381.5 12 5 4 9 73 3 124 3 28 -13758 146 14 -318.675 2381.5 12 3 4 9 73 3 122 3 26 -13759 146 15 -312.605 2381.5 12 1 4 9 73 3 120 3 24 -13760 146 16 -306.535 2381.5 12 2 4 9 73 3 121 3 25 -13761 146 17 -300.465 2381.5 12 4 4 9 73 3 123 3 27 -13762 146 18 -294.395 2381.5 11 38 4 9 73 2 117 3 21 -13763 146 19 -288.325 2381.5 11 40 4 9 73 2 119 3 23 -13764 146 20 -282.255 2381.5 15 39 4 9 74 2 118 3 22 -13765 146 21 -276.185 2381.5 16 5 4 9 74 3 124 3 28 -13766 146 22 -270.115 2381.5 16 3 4 9 74 3 122 3 26 -13767 146 23 -264.045 2381.5 16 1 4 9 74 3 120 3 24 -13768 146 24 -257.975 2381.5 16 2 4 9 74 3 121 3 25 -13769 146 25 -251.905 2381.5 16 4 4 9 74 3 123 3 27 -13770 146 26 -245.835 2381.5 16 6 4 9 74 3 125 3 29 -13771 146 27 -239.765 2381.5 20 7 4 9 75 3 126 3 30 -13772 146 28 -233.695 2381.5 20 5 4 9 75 3 124 3 28 -13773 146 29 -227.625 2381.5 20 3 4 9 75 3 122 3 26 -13774 146 30 -221.555 2381.5 20 1 4 9 75 3 120 3 24 -13775 146 31 -215.485 2381.5 20 2 4 9 75 3 121 3 25 -13776 146 32 -209.415 2381.5 20 4 4 9 75 3 123 3 27 -13777 146 33 -203.345 2381.5 20 6 4 9 75 3 125 3 29 -13778 146 34 -197.275 2381.5 23 39 4 9 76 2 118 3 22 -13779 146 35 -191.205 2381.5 24 3 4 9 76 3 122 3 26 -13780 146 36 -185.135 2381.5 24 1 4 9 76 3 120 3 24 -13781 146 37 -179.065 2381.5 24 2 4 9 76 3 121 3 25 -13782 146 38 -172.995 2381.5 24 4 4 9 76 3 123 3 27 -13783 146 39 -166.925 2381.5 24 6 4 9 76 3 125 3 29 -13784 146 40 -160.855 2381.5 27 39 4 9 77 2 118 3 22 -13785 146 41 -154.785 2381.5 28 5 4 9 77 3 124 3 28 -13786 146 42 -148.715 2381.5 28 3 4 9 77 3 122 3 26 -13787 146 43 -142.645 2381.5 28 1 4 9 77 3 120 3 24 -13788 146 44 -136.575 2381.5 28 2 4 9 77 3 121 3 25 -13789 146 45 -130.505 2381.5 28 4 4 9 77 3 123 3 27 -13790 146 46 -124.435 2381.5 28 6 4 9 77 3 125 3 29 -13791 146 47 -118.365 2381.5 32 5 4 9 78 3 124 3 28 -13792 146 48 -112.295 2381.5 32 3 4 9 78 3 122 3 26 -13793 146 49 -106.225 2381.5 32 1 4 9 78 3 120 3 24 -13794 146 50 -100.155 2381.5 32 2 4 9 78 3 121 3 25 -13795 146 51 -94.085 2381.5 32 4 4 9 78 3 123 3 27 -13796 146 52 -88.015 2381.5 32 6 4 9 78 3 125 3 29 -13797 146 53 -81.945 2381.5 32 8 4 9 78 3 127 3 31 -13798 146 54 -75.875 2381.5 36 5 4 9 79 3 124 3 28 -13799 146 55 -69.805 2381.5 36 3 4 9 79 3 122 3 26 -13800 146 56 -63.735 2381.5 36 1 4 9 79 3 120 3 24 -13801 146 57 -57.665 2381.5 36 2 4 9 79 3 121 3 25 -13802 146 58 -51.595 2381.5 36 4 4 9 79 3 123 3 27 -13803 146 59 -45.525 2381.5 36 6 4 9 79 3 125 3 29 -13804 146 60 -39.455 2381.5 39 39 4 9 80 2 118 3 22 -13805 146 61 -33.385 2381.5 39 37 4 9 80 2 116 3 20 -13806 146 62 -27.315 2381.5 40 3 4 9 80 3 122 3 26 -13807 146 63 -21.245 2381.5 40 1 4 9 80 3 120 3 24 -13808 146 64 -15.175 2381.5 40 2 4 9 80 3 121 3 25 -13809 146 65 -9.105 2381.5 40 4 4 9 80 3 123 3 27 -13810 146 66 -3.035 2381.5 40 6 4 9 80 3 125 3 29 -13811 146 67 3.035 2381.5 44 5 4 9 81 3 124 3 28 -13812 146 68 9.105 2381.5 44 3 4 9 81 3 122 3 26 -13813 146 69 15.175 2381.5 44 1 4 9 81 3 120 3 24 -13814 146 70 21.245 2381.5 44 2 4 9 81 3 121 3 25 -13815 146 71 27.315 2381.5 44 4 4 9 81 3 123 3 27 -13816 146 72 33.385 2381.5 43 38 4 9 81 2 117 3 21 -13817 146 73 39.455 2381.5 43 40 4 9 81 2 119 3 23 -13818 146 74 45.525 2381.5 48 5 4 9 82 3 124 3 28 -13819 146 75 51.595 2381.5 48 3 4 9 82 3 122 3 26 -13820 146 76 57.665 2381.5 48 1 4 9 82 3 120 3 24 -13821 146 77 63.735 2381.5 48 2 4 9 82 3 121 3 25 -13822 146 78 69.805 2381.5 48 4 4 9 82 3 123 3 27 -13823 146 79 75.875 2381.5 48 6 4 9 82 3 125 3 29 -13824 146 80 81.945 2381.5 52 7 4 9 83 3 126 3 30 -13825 146 81 88.015 2381.5 52 5 4 9 83 3 124 3 28 -13826 146 82 94.085 2381.5 52 3 4 9 83 3 122 3 26 -13827 146 83 100.155 2381.5 52 1 4 9 83 3 120 3 24 -13828 146 84 106.225 2381.5 52 2 4 9 83 3 121 3 25 -13829 146 85 112.295 2381.5 52 4 4 9 83 3 123 3 27 -13830 146 86 118.365 2381.5 52 6 4 9 83 3 125 3 29 -13831 146 87 124.435 2381.5 56 5 4 9 84 3 124 3 28 -13832 146 88 130.505 2381.5 56 3 4 9 84 3 122 3 26 -13833 146 89 136.575 2381.5 56 1 4 9 84 3 120 3 24 -13834 146 90 142.645 2381.5 56 2 4 9 84 3 121 3 25 -13835 146 91 148.715 2381.5 56 4 4 9 84 3 123 3 27 -13836 146 92 154.785 2381.5 56 6 4 9 84 3 125 3 29 -13837 146 93 160.855 2381.5 55 40 4 9 84 2 119 3 23 -13838 146 94 166.925 2381.5 60 5 4 9 85 3 124 3 28 -13839 146 95 172.995 2381.5 60 3 4 9 85 3 122 3 26 -13840 146 96 179.065 2381.5 60 1 4 9 85 3 120 3 24 -13841 146 97 185.135 2381.5 60 2 4 9 85 3 121 3 25 -13842 146 98 191.205 2381.5 60 4 4 9 85 3 123 3 27 -13843 146 99 197.275 2381.5 59 40 4 9 85 2 119 3 23 -13844 146 100 203.345 2381.5 64 5 4 9 86 3 124 3 28 -13845 146 101 209.415 2381.5 64 3 4 9 86 3 122 3 26 -13846 146 102 215.485 2381.5 64 1 4 9 86 3 120 3 24 -13847 146 103 221.555 2381.5 64 2 4 9 86 3 121 3 25 -13848 146 104 227.625 2381.5 64 4 4 9 86 3 123 3 27 -13849 146 105 233.695 2381.5 64 6 4 9 86 3 125 3 29 -13850 146 106 239.765 2381.5 64 8 4 9 86 3 127 3 31 -13851 146 107 245.835 2381.5 68 5 4 9 87 3 124 3 28 -13852 146 108 251.905 2381.5 68 3 4 9 87 3 122 3 26 -13853 146 109 257.975 2381.5 68 1 4 9 87 3 120 3 24 -13854 146 110 264.045 2381.5 68 2 4 9 87 3 121 3 25 -13855 146 111 270.115 2381.5 68 4 4 9 87 3 123 3 27 -13856 146 112 276.185 2381.5 68 6 4 9 87 3 125 3 29 -13857 146 113 282.255 2381.5 67 40 4 9 87 2 119 3 23 -13858 146 114 288.325 2381.5 71 39 4 9 88 2 118 3 22 -13859 146 115 294.395 2381.5 71 37 4 9 88 2 116 3 20 -13860 146 116 300.465 2381.5 72 3 4 9 88 3 122 3 26 -13861 146 117 306.535 2381.5 72 1 4 9 88 3 120 3 24 -13862 146 118 312.605 2381.5 72 2 4 9 88 3 121 3 25 -13863 146 119 318.675 2381.5 72 4 4 9 88 3 123 3 27 -13864 146 120 324.745 2381.5 72 6 4 9 88 3 125 3 29 -13865 146 121 330.815 2381.5 76 5 4 9 89 3 124 3 28 -13866 146 122 336.885 2381.5 76 3 4 9 89 3 122 3 26 -13867 146 123 342.955 2381.5 76 1 4 9 89 3 120 3 24 -13868 146 124 349.025 2381.5 76 2 4 9 89 3 121 3 25 -13869 146 125 355.095 2381.5 76 4 4 9 89 3 123 3 27 -13870 146 126 361.165 2381.5 76 6 4 9 89 3 125 3 29 -13871 146 127 367.235 2381.5 79 39 4 9 90 2 118 3 22 -13872 146 128 373.305 2381.5 80 5 4 9 90 3 124 3 28 -13873 146 129 379.375 2381.5 80 3 4 9 90 3 122 3 26 -13874 146 130 385.445 2381.5 80 1 4 9 90 3 120 3 24 -13875 146 131 391.515 2381.5 80 2 4 9 90 3 121 3 25 -13876 146 132 397.585 2381.5 80 4 4 9 90 3 123 3 27 -13877 146 133 403.655 2381.5 80 6 4 9 90 3 125 3 29 -13878 147 0 -403.655 2396.5 4 11 4 9 71 3 130 4 2 -13879 147 1 -397.585 2396.5 4 9 4 9 71 3 128 4 0 -13880 147 2 -391.515 2396.5 4 7 4 9 71 3 126 3 30 -13881 147 3 -385.445 2396.5 4 8 4 9 71 3 127 3 31 -13882 147 4 -379.375 2396.5 4 10 4 9 71 3 129 4 1 -13883 147 5 -373.305 2396.5 4 12 4 9 71 3 131 4 3 -13884 147 6 -367.235 2396.5 8 13 4 9 72 3 132 4 4 -13885 147 7 -361.165 2396.5 8 11 4 9 72 3 130 4 2 -13886 147 8 -355.095 2396.5 8 9 4 9 72 3 128 4 0 -13887 147 9 -349.025 2396.5 8 7 4 9 72 3 126 3 30 -13888 147 10 -342.955 2396.5 8 8 4 9 72 3 127 3 31 -13889 147 11 -336.885 2396.5 8 10 4 9 72 3 129 4 1 -13890 147 12 -330.815 2396.5 8 12 4 9 72 3 131 4 3 -13891 147 13 -324.745 2396.5 12 11 4 9 73 3 130 4 2 -13892 147 14 -318.675 2396.5 12 9 4 9 73 3 128 4 0 -13893 147 15 -312.605 2396.5 12 7 4 9 73 3 126 3 30 -13894 147 16 -306.535 2396.5 12 6 4 9 73 3 125 3 29 -13895 147 17 -300.465 2396.5 12 8 4 9 73 3 127 3 31 -13896 147 18 -294.395 2396.5 12 10 4 9 73 3 129 4 1 -13897 147 19 -288.325 2396.5 12 12 4 9 73 3 131 4 3 -13898 147 20 -282.255 2396.5 16 13 4 9 74 3 132 4 4 -13899 147 21 -276.185 2396.5 16 11 4 9 74 3 130 4 2 -13900 147 22 -270.115 2396.5 16 9 4 9 74 3 128 4 0 -13901 147 23 -264.045 2396.5 16 7 4 9 74 3 126 3 30 -13902 147 24 -257.975 2396.5 16 8 4 9 74 3 127 3 31 -13903 147 25 -251.905 2396.5 16 10 4 9 74 3 129 4 1 -13904 147 26 -245.835 2396.5 16 12 4 9 74 3 131 4 3 -13905 147 27 -239.765 2396.5 20 13 4 9 75 3 132 4 4 -13906 147 28 -233.695 2396.5 20 11 4 9 75 3 130 4 2 -13907 147 29 -227.625 2396.5 20 9 4 9 75 3 128 4 0 -13908 147 30 -221.555 2396.5 20 8 4 9 75 3 127 3 31 -13909 147 31 -215.485 2396.5 20 10 4 9 75 3 129 4 1 -13910 147 32 -209.415 2396.5 20 12 4 9 75 3 131 4 3 -13911 147 33 -203.345 2396.5 24 11 4 9 76 3 130 4 2 -13912 147 34 -197.275 2396.5 24 9 4 9 76 3 128 4 0 -13913 147 35 -191.205 2396.5 24 7 4 9 76 3 126 3 30 -13914 147 36 -185.135 2396.5 24 5 4 9 76 3 124 3 28 -13915 147 37 -179.065 2396.5 24 8 4 9 76 3 127 3 31 -13916 147 38 -172.995 2396.5 24 10 4 9 76 3 129 4 1 -13917 147 39 -166.925 2396.5 24 12 4 9 76 3 131 4 3 -13918 147 40 -160.855 2396.5 28 13 4 9 77 3 132 4 4 -13919 147 41 -154.785 2396.5 28 11 4 9 77 3 130 4 2 -13920 147 42 -148.715 2396.5 28 9 4 9 77 3 128 4 0 -13921 147 43 -142.645 2396.5 28 7 4 9 77 3 126 3 30 -13922 147 44 -136.575 2396.5 28 8 4 9 77 3 127 3 31 -13923 147 45 -130.505 2396.5 28 10 4 9 77 3 129 4 1 -13924 147 46 -124.435 2396.5 28 12 4 9 77 3 131 4 3 -13925 147 47 -118.365 2396.5 32 13 4 9 78 3 132 4 4 -13926 147 48 -112.295 2396.5 32 11 4 9 78 3 130 4 2 -13927 147 49 -106.225 2396.5 32 9 4 9 78 3 128 4 0 -13928 147 50 -100.155 2396.5 32 7 4 9 78 3 126 3 30 -13929 147 51 -94.085 2396.5 32 10 4 9 78 3 129 4 1 -13930 147 52 -88.015 2396.5 32 12 4 9 78 3 131 4 3 -13931 147 53 -81.945 2396.5 32 14 4 9 78 3 133 4 5 -13932 147 54 -75.875 2396.5 36 11 4 9 79 3 130 4 2 -13933 147 55 -69.805 2396.5 36 9 4 9 79 3 128 4 0 -13934 147 56 -63.735 2396.5 36 7 4 9 79 3 126 3 30 -13935 147 57 -57.665 2396.5 36 8 4 9 79 3 127 3 31 -13936 147 58 -51.595 2396.5 36 10 4 9 79 3 129 4 1 -13937 147 59 -45.525 2396.5 36 12 4 9 79 3 131 4 3 -13938 147 60 -39.455 2396.5 40 11 4 9 80 3 130 4 2 -13939 147 61 -33.385 2396.5 40 9 4 9 80 3 128 4 0 -13940 147 62 -27.315 2396.5 40 7 4 9 80 3 126 3 30 -13941 147 63 -21.245 2396.5 40 5 4 9 80 3 124 3 28 -13942 147 64 -15.175 2396.5 40 8 4 9 80 3 127 3 31 -13943 147 65 -9.105 2396.5 40 10 4 9 80 3 129 4 1 -13944 147 66 -3.035 2396.5 40 12 4 9 80 3 131 4 3 -13945 147 67 3.035 2396.5 44 11 4 9 81 3 130 4 2 -13946 147 68 9.105 2396.5 44 9 4 9 81 3 128 4 0 -13947 147 69 15.175 2396.5 44 7 4 9 81 3 126 3 30 -13948 147 70 21.245 2396.5 44 6 4 9 81 3 125 3 29 -13949 147 71 27.315 2396.5 44 8 4 9 81 3 127 3 31 -13950 147 72 33.385 2396.5 44 10 4 9 81 3 129 4 1 -13951 147 73 39.455 2396.5 44 12 4 9 81 3 131 4 3 -13952 147 74 45.525 2396.5 48 11 4 9 82 3 130 4 2 -13953 147 75 51.595 2396.5 48 9 4 9 82 3 128 4 0 -13954 147 76 57.665 2396.5 48 7 4 9 82 3 126 3 30 -13955 147 77 63.735 2396.5 48 8 4 9 82 3 127 3 31 -13956 147 78 69.805 2396.5 48 10 4 9 82 3 129 4 1 -13957 147 79 75.875 2396.5 48 12 4 9 82 3 131 4 3 -13958 147 80 81.945 2396.5 52 13 4 9 83 3 132 4 4 -13959 147 81 88.015 2396.5 52 11 4 9 83 3 130 4 2 -13960 147 82 94.085 2396.5 52 9 4 9 83 3 128 4 0 -13961 147 83 100.155 2396.5 52 8 4 9 83 3 127 3 31 -13962 147 84 106.225 2396.5 52 10 4 9 83 3 129 4 1 -13963 147 85 112.295 2396.5 52 12 4 9 83 3 131 4 3 -13964 147 86 118.365 2396.5 52 14 4 9 83 3 133 4 5 -13965 147 87 124.435 2396.5 56 11 4 9 84 3 130 4 2 -13966 147 88 130.505 2396.5 56 9 4 9 84 3 128 4 0 -13967 147 89 136.575 2396.5 56 7 4 9 84 3 126 3 30 -13968 147 90 142.645 2396.5 56 8 4 9 84 3 127 3 31 -13969 147 91 148.715 2396.5 56 10 4 9 84 3 129 4 1 -13970 147 92 154.785 2396.5 56 12 4 9 84 3 131 4 3 -13971 147 93 160.855 2396.5 56 14 4 9 84 3 133 4 5 -13972 147 94 166.925 2396.5 60 11 4 9 85 3 130 4 2 -13973 147 95 172.995 2396.5 60 9 4 9 85 3 128 4 0 -13974 147 96 179.065 2396.5 60 7 4 9 85 3 126 3 30 -13975 147 97 185.135 2396.5 60 6 4 9 85 3 125 3 29 -13976 147 98 191.205 2396.5 60 8 4 9 85 3 127 3 31 -13977 147 99 197.275 2396.5 60 10 4 9 85 3 129 4 1 -13978 147 100 203.345 2396.5 60 12 4 9 85 3 131 4 3 -13979 147 101 209.415 2396.5 64 11 4 9 86 3 130 4 2 -13980 147 102 215.485 2396.5 64 9 4 9 86 3 128 4 0 -13981 147 103 221.555 2396.5 64 7 4 9 86 3 126 3 30 -13982 147 104 227.625 2396.5 64 10 4 9 86 3 129 4 1 -13983 147 105 233.695 2396.5 64 12 4 9 86 3 131 4 3 -13984 147 106 239.765 2396.5 64 14 4 9 86 3 133 4 5 -13985 147 107 245.835 2396.5 68 11 4 9 87 3 130 4 2 -13986 147 108 251.905 2396.5 68 9 4 9 87 3 128 4 0 -13987 147 109 257.975 2396.5 68 7 4 9 87 3 126 3 30 -13988 147 110 264.045 2396.5 68 8 4 9 87 3 127 3 31 -13989 147 111 270.115 2396.5 68 10 4 9 87 3 129 4 1 -13990 147 112 276.185 2396.5 68 12 4 9 87 3 131 4 3 -13991 147 113 282.255 2396.5 68 14 4 9 87 3 133 4 5 -13992 147 114 288.325 2396.5 72 11 4 9 88 3 130 4 2 -13993 147 115 294.395 2396.5 72 9 4 9 88 3 128 4 0 -13994 147 116 300.465 2396.5 72 7 4 9 88 3 126 3 30 -13995 147 117 306.535 2396.5 72 5 4 9 88 3 124 3 28 -13996 147 118 312.605 2396.5 72 8 4 9 88 3 127 3 31 -13997 147 119 318.675 2396.5 72 10 4 9 88 3 129 4 1 -13998 147 120 324.745 2396.5 72 12 4 9 88 3 131 4 3 -13999 147 121 330.815 2396.5 76 11 4 9 89 3 130 4 2 -14000 147 122 336.885 2396.5 76 9 4 9 89 3 128 4 0 -14001 147 123 342.955 2396.5 76 7 4 9 89 3 126 3 30 -14002 147 124 349.025 2396.5 76 8 4 9 89 3 127 3 31 -14003 147 125 355.095 2396.5 76 10 4 9 89 3 129 4 1 -14004 147 126 361.165 2396.5 76 12 4 9 89 3 131 4 3 -14005 147 127 367.235 2396.5 76 14 4 9 89 3 133 4 5 -14006 147 128 373.305 2396.5 80 11 4 9 90 3 130 4 2 -14007 147 129 379.375 2396.5 80 9 4 9 90 3 128 4 0 -14008 147 130 385.445 2396.5 80 7 4 9 90 3 126 3 30 -14009 147 131 391.515 2396.5 80 8 4 9 90 3 127 3 31 -14010 147 132 397.585 2396.5 80 10 4 9 90 3 129 4 1 -14011 147 133 403.655 2396.5 80 12 4 9 90 3 131 4 3 -14012 148 0 -409.725 2411.5 4 19 4 9 71 3 138 4 10 -14013 148 1 -403.655 2411.5 4 17 4 9 71 3 136 4 8 -14014 148 2 -397.585 2411.5 4 15 4 9 71 3 134 4 6 -14015 148 3 -391.515 2411.5 4 13 4 9 71 3 132 4 4 -14016 148 4 -385.445 2411.5 4 14 4 9 71 3 133 4 5 -14017 148 5 -379.375 2411.5 4 16 4 9 71 3 135 4 7 -14018 148 6 -373.305 2411.5 4 18 4 9 71 3 137 4 9 -14019 148 7 -367.235 2411.5 8 19 4 9 72 3 138 4 10 -14020 148 8 -361.165 2411.5 8 17 4 9 72 3 136 4 8 -14021 148 9 -355.095 2411.5 8 15 4 9 72 3 134 4 6 -14022 148 10 -349.025 2411.5 8 14 4 9 72 3 133 4 5 -14023 148 11 -342.955 2411.5 8 16 4 9 72 3 135 4 7 -14024 148 12 -336.885 2411.5 8 18 4 9 72 3 137 4 9 -14025 148 13 -330.815 2411.5 8 20 4 9 72 3 139 4 11 -14026 148 14 -324.745 2411.5 12 17 4 9 73 3 136 4 8 -14027 148 15 -318.675 2411.5 12 15 4 9 73 3 134 4 6 -14028 148 16 -312.605 2411.5 12 13 4 9 73 3 132 4 4 -14029 148 17 -306.535 2411.5 12 14 4 9 73 3 133 4 5 -14030 148 18 -300.465 2411.5 12 16 4 9 73 3 135 4 7 -14031 148 19 -294.395 2411.5 12 18 4 9 73 3 137 4 9 -14032 148 20 -288.325 2411.5 12 20 4 9 73 3 139 4 11 -14033 148 21 -282.255 2411.5 16 19 4 9 74 3 138 4 10 -14034 148 22 -276.185 2411.5 16 17 4 9 74 3 136 4 8 -14035 148 23 -270.115 2411.5 16 15 4 9 74 3 134 4 6 -14036 148 24 -264.045 2411.5 16 14 4 9 74 3 133 4 5 -14037 148 25 -257.975 2411.5 16 16 4 9 74 3 135 4 7 -14038 148 26 -251.905 2411.5 16 18 4 9 74 3 137 4 9 -14039 148 27 -245.835 2411.5 20 19 4 9 75 3 138 4 10 -14040 148 28 -239.765 2411.5 20 17 4 9 75 3 136 4 8 -14041 148 29 -233.695 2411.5 20 15 4 9 75 3 134 4 6 -14042 148 30 -227.625 2411.5 20 14 4 9 75 3 133 4 5 -14043 148 31 -221.555 2411.5 20 16 4 9 75 3 135 4 7 -14044 148 32 -215.485 2411.5 20 18 4 9 75 3 137 4 9 -14045 148 33 -209.415 2411.5 20 20 4 9 75 3 139 4 11 -14046 148 34 -203.345 2411.5 24 17 4 9 76 3 136 4 8 -14047 148 35 -197.275 2411.5 24 15 4 9 76 3 134 4 6 -14048 148 36 -191.205 2411.5 24 13 4 9 76 3 132 4 4 -14049 148 37 -185.135 2411.5 24 14 4 9 76 3 133 4 5 -14050 148 38 -179.065 2411.5 24 16 4 9 76 3 135 4 7 -14051 148 39 -172.995 2411.5 24 18 4 9 76 3 137 4 9 -14052 148 40 -166.925 2411.5 24 20 4 9 76 3 139 4 11 -14053 148 41 -160.855 2411.5 28 19 4 9 77 3 138 4 10 -14054 148 42 -154.785 2411.5 28 17 4 9 77 3 136 4 8 -14055 148 43 -148.715 2411.5 28 15 4 9 77 3 134 4 6 -14056 148 44 -142.645 2411.5 28 14 4 9 77 3 133 4 5 -14057 148 45 -136.575 2411.5 28 16 4 9 77 3 135 4 7 -14058 148 46 -130.505 2411.5 28 18 4 9 77 3 137 4 9 -14059 148 47 -124.435 2411.5 28 20 4 9 77 3 139 4 11 -14060 148 48 -118.365 2411.5 32 19 4 9 78 3 138 4 10 -14061 148 49 -112.295 2411.5 32 17 4 9 78 3 136 4 8 -14062 148 50 -106.225 2411.5 32 15 4 9 78 3 134 4 6 -14063 148 51 -100.155 2411.5 32 16 4 9 78 3 135 4 7 -14064 148 52 -94.085 2411.5 32 18 4 9 78 3 137 4 9 -14065 148 53 -88.015 2411.5 32 20 4 9 78 3 139 4 11 -14066 148 54 -81.945 2411.5 36 17 4 9 79 3 136 4 8 -14067 148 55 -75.875 2411.5 36 15 4 9 79 3 134 4 6 -14068 148 56 -69.805 2411.5 36 13 4 9 79 3 132 4 4 -14069 148 57 -63.735 2411.5 36 14 4 9 79 3 133 4 5 -14070 148 58 -57.665 2411.5 36 16 4 9 79 3 135 4 7 -14071 148 59 -51.595 2411.5 36 18 4 9 79 3 137 4 9 -14072 148 60 -45.525 2411.5 36 20 4 9 79 3 139 4 11 -14073 148 61 -39.455 2411.5 40 17 4 9 80 3 136 4 8 -14074 148 62 -33.385 2411.5 40 15 4 9 80 3 134 4 6 -14075 148 63 -27.315 2411.5 40 13 4 9 80 3 132 4 4 -14076 148 64 -21.245 2411.5 40 14 4 9 80 3 133 4 5 -14077 148 65 -15.175 2411.5 40 16 4 9 80 3 135 4 7 -14078 148 66 -9.105 2411.5 40 18 4 9 80 3 137 4 9 -14079 148 67 -3.035 2411.5 40 20 4 9 80 3 139 4 11 -14080 148 68 3.035 2411.5 44 19 4 9 81 3 138 4 10 -14081 148 69 9.105 2411.5 44 17 4 9 81 3 136 4 8 -14082 148 70 15.175 2411.5 44 15 4 9 81 3 134 4 6 -14083 148 71 21.245 2411.5 44 13 4 9 81 3 132 4 4 -14084 148 72 27.315 2411.5 44 14 4 9 81 3 133 4 5 -14085 148 73 33.385 2411.5 44 16 4 9 81 3 135 4 7 -14086 148 74 39.455 2411.5 44 18 4 9 81 3 137 4 9 -14087 148 75 45.525 2411.5 48 19 4 9 82 3 138 4 10 -14088 148 76 51.595 2411.5 48 17 4 9 82 3 136 4 8 -14089 148 77 57.665 2411.5 48 15 4 9 82 3 134 4 6 -14090 148 78 63.735 2411.5 48 13 4 9 82 3 132 4 4 -14091 148 79 69.805 2411.5 48 14 4 9 82 3 133 4 5 -14092 148 80 75.875 2411.5 48 16 4 9 82 3 135 4 7 -14093 148 81 81.945 2411.5 48 18 4 9 82 3 137 4 9 -14094 148 82 88.015 2411.5 52 19 4 9 83 3 138 4 10 -14095 148 83 94.085 2411.5 52 17 4 9 83 3 136 4 8 -14096 148 84 100.155 2411.5 52 15 4 9 83 3 134 4 6 -14097 148 85 106.225 2411.5 52 16 4 9 83 3 135 4 7 -14098 148 86 112.295 2411.5 52 18 4 9 83 3 137 4 9 -14099 148 87 118.365 2411.5 52 20 4 9 83 3 139 4 11 -14100 148 88 124.435 2411.5 56 19 4 9 84 3 138 4 10 -14101 148 89 130.505 2411.5 56 17 4 9 84 3 136 4 8 -14102 148 90 136.575 2411.5 56 15 4 9 84 3 134 4 6 -14103 148 91 142.645 2411.5 56 13 4 9 84 3 132 4 4 -14104 148 92 148.715 2411.5 56 16 4 9 84 3 135 4 7 -14105 148 93 154.785 2411.5 56 18 4 9 84 3 137 4 9 -14106 148 94 160.855 2411.5 56 20 4 9 84 3 139 4 11 -14107 148 95 166.925 2411.5 60 19 4 9 85 3 138 4 10 -14108 148 96 172.995 2411.5 60 17 4 9 85 3 136 4 8 -14109 148 97 179.065 2411.5 60 15 4 9 85 3 134 4 6 -14110 148 98 185.135 2411.5 60 13 4 9 85 3 132 4 4 -14111 148 99 191.205 2411.5 60 14 4 9 85 3 133 4 5 -14112 148 100 197.275 2411.5 60 16 4 9 85 3 135 4 7 -14113 148 101 203.345 2411.5 60 18 4 9 85 3 137 4 9 -14114 148 102 209.415 2411.5 64 19 4 9 86 3 138 4 10 -14115 148 103 215.485 2411.5 64 17 4 9 86 3 136 4 8 -14116 148 104 221.555 2411.5 64 15 4 9 86 3 134 4 6 -14117 148 105 227.625 2411.5 64 13 4 9 86 3 132 4 4 -14118 148 106 233.695 2411.5 64 16 4 9 86 3 135 4 7 -14119 148 107 239.765 2411.5 64 18 4 9 86 3 137 4 9 -14120 148 108 245.835 2411.5 64 20 4 9 86 3 139 4 11 -14121 148 109 251.905 2411.5 68 17 4 9 87 3 136 4 8 -14122 148 110 257.975 2411.5 68 15 4 9 87 3 134 4 6 -14123 148 111 264.045 2411.5 68 13 4 9 87 3 132 4 4 -14124 148 112 270.115 2411.5 68 16 4 9 87 3 135 4 7 -14125 148 113 276.185 2411.5 68 18 4 9 87 3 137 4 9 -14126 148 114 282.255 2411.5 68 20 4 9 87 3 139 4 11 -14127 148 115 288.325 2411.5 72 19 4 9 88 3 138 4 10 -14128 148 116 294.395 2411.5 72 17 4 9 88 3 136 4 8 -14129 148 117 300.465 2411.5 72 15 4 9 88 3 134 4 6 -14130 148 118 306.535 2411.5 72 13 4 9 88 3 132 4 4 -14131 148 119 312.605 2411.5 72 14 4 9 88 3 133 4 5 -14132 148 120 318.675 2411.5 72 16 4 9 88 3 135 4 7 -14133 148 121 324.745 2411.5 72 18 4 9 88 3 137 4 9 -14134 148 122 330.815 2411.5 76 19 4 9 89 3 138 4 10 -14135 148 123 336.885 2411.5 76 17 4 9 89 3 136 4 8 -14136 148 124 342.955 2411.5 76 15 4 9 89 3 134 4 6 -14137 148 125 349.025 2411.5 76 13 4 9 89 3 132 4 4 -14138 148 126 355.095 2411.5 76 16 4 9 89 3 135 4 7 -14139 148 127 361.165 2411.5 76 18 4 9 89 3 137 4 9 -14140 148 128 367.235 2411.5 76 20 4 9 89 3 139 4 11 -14141 148 129 373.305 2411.5 80 17 4 9 90 3 136 4 8 -14142 148 130 379.375 2411.5 80 15 4 9 90 3 134 4 6 -14143 148 131 385.445 2411.5 80 13 4 9 90 3 132 4 4 -14144 148 132 391.515 2411.5 80 14 4 9 90 3 133 4 5 -14145 148 133 397.585 2411.5 80 16 4 9 90 3 135 4 7 -14146 148 134 403.655 2411.5 80 18 4 9 90 3 137 4 9 -14147 148 135 409.725 2411.5 80 20 4 9 90 3 139 4 11 -14148 149 0 -409.725 2426.5 4 25 4 9 71 3 144 4 16 -14149 149 1 -403.655 2426.5 4 23 4 9 71 3 142 4 14 -14150 149 2 -397.585 2426.5 4 21 4 9 71 3 140 4 12 -14151 149 3 -391.515 2426.5 4 20 4 9 71 3 139 4 11 -14152 149 4 -385.445 2426.5 4 22 4 9 71 3 141 4 13 -14153 149 5 -379.375 2426.5 4 24 4 9 71 3 143 4 15 -14154 149 6 -373.305 2426.5 4 26 4 9 71 3 145 4 17 -14155 149 7 -367.235 2426.5 8 25 4 9 72 3 144 4 16 -14156 149 8 -361.165 2426.5 8 23 4 9 72 3 142 4 14 -14157 149 9 -355.095 2426.5 8 21 4 9 72 3 140 4 12 -14158 149 10 -349.025 2426.5 8 22 4 9 72 3 141 4 13 -14159 149 11 -342.955 2426.5 8 24 4 9 72 3 143 4 15 -14160 149 12 -336.885 2426.5 8 26 4 9 72 3 145 4 17 -14161 149 13 -330.815 2426.5 12 25 4 9 73 3 144 4 16 -14162 149 14 -324.745 2426.5 12 23 4 9 73 3 142 4 14 -14163 149 15 -318.675 2426.5 12 21 4 9 73 3 140 4 12 -14164 149 16 -312.605 2426.5 12 19 4 9 73 3 138 4 10 -14165 149 17 -306.535 2426.5 12 22 4 9 73 3 141 4 13 -14166 149 18 -300.465 2426.5 12 24 4 9 73 3 143 4 15 -14167 149 19 -294.395 2426.5 12 26 4 9 73 3 145 4 17 -14168 149 20 -288.325 2426.5 16 25 4 9 74 3 144 4 16 -14169 149 21 -282.255 2426.5 16 23 4 9 74 3 142 4 14 -14170 149 22 -276.185 2426.5 16 21 4 9 74 3 140 4 12 -14171 149 23 -270.115 2426.5 16 20 4 9 74 3 139 4 11 -14172 149 24 -264.045 2426.5 16 22 4 9 74 3 141 4 13 -14173 149 25 -257.975 2426.5 16 24 4 9 74 3 143 4 15 -14174 149 26 -251.905 2426.5 16 26 4 9 74 3 145 4 17 -14175 149 27 -245.835 2426.5 20 27 4 9 75 3 146 4 18 -14176 149 28 -239.765 2426.5 20 25 4 9 75 3 144 4 16 -14177 149 29 -233.695 2426.5 20 23 4 9 75 3 142 4 14 -14178 149 30 -227.625 2426.5 20 21 4 9 75 3 140 4 12 -14179 149 31 -221.555 2426.5 20 22 4 9 75 3 141 4 13 -14180 149 32 -215.485 2426.5 20 24 4 9 75 3 143 4 15 -14181 149 33 -209.415 2426.5 20 26 4 9 75 3 145 4 17 -14182 149 34 -203.345 2426.5 24 25 4 9 76 3 144 4 16 -14183 149 35 -197.275 2426.5 24 23 4 9 76 3 142 4 14 -14184 149 36 -191.205 2426.5 24 21 4 9 76 3 140 4 12 -14185 149 37 -185.135 2426.5 24 19 4 9 76 3 138 4 10 -14186 149 38 -179.065 2426.5 24 22 4 9 76 3 141 4 13 -14187 149 39 -172.995 2426.5 24 24 4 9 76 3 143 4 15 -14188 149 40 -166.925 2426.5 24 26 4 9 76 3 145 4 17 -14189 149 41 -160.855 2426.5 28 25 4 9 77 3 144 4 16 -14190 149 42 -154.785 2426.5 28 23 4 9 77 3 142 4 14 -14191 149 43 -148.715 2426.5 28 21 4 9 77 3 140 4 12 -14192 149 44 -142.645 2426.5 28 22 4 9 77 3 141 4 13 -14193 149 45 -136.575 2426.5 28 24 4 9 77 3 143 4 15 -14194 149 46 -130.505 2426.5 28 26 4 9 77 3 145 4 17 -14195 149 47 -124.435 2426.5 28 28 4 9 77 3 147 4 19 -14196 149 48 -118.365 2426.5 32 25 4 9 78 3 144 4 16 -14197 149 49 -112.295 2426.5 32 23 4 9 78 3 142 4 14 -14198 149 50 -106.225 2426.5 32 21 4 9 78 3 140 4 12 -14199 149 51 -100.155 2426.5 32 22 4 9 78 3 141 4 13 -14200 149 52 -94.085 2426.5 32 24 4 9 78 3 143 4 15 -14201 149 53 -88.015 2426.5 32 26 4 9 78 3 145 4 17 -14202 149 54 -81.945 2426.5 36 25 4 9 79 3 144 4 16 -14203 149 55 -75.875 2426.5 36 23 4 9 79 3 142 4 14 -14204 149 56 -69.805 2426.5 36 21 4 9 79 3 140 4 12 -14205 149 57 -63.735 2426.5 36 19 4 9 79 3 138 4 10 -14206 149 58 -57.665 2426.5 36 22 4 9 79 3 141 4 13 -14207 149 59 -51.595 2426.5 36 24 4 9 79 3 143 4 15 -14208 149 60 -45.525 2426.5 36 26 4 9 79 3 145 4 17 -14209 149 61 -39.455 2426.5 40 25 4 9 80 3 144 4 16 -14210 149 62 -33.385 2426.5 40 23 4 9 80 3 142 4 14 -14211 149 63 -27.315 2426.5 40 21 4 9 80 3 140 4 12 -14212 149 64 -21.245 2426.5 40 19 4 9 80 3 138 4 10 -14213 149 65 -15.175 2426.5 40 22 4 9 80 3 141 4 13 -14214 149 66 -9.105 2426.5 40 24 4 9 80 3 143 4 15 -14215 149 67 -3.035 2426.5 40 26 4 9 80 3 145 4 17 -14216 149 68 3.035 2426.5 44 25 4 9 81 3 144 4 16 -14217 149 69 9.105 2426.5 44 23 4 9 81 3 142 4 14 -14218 149 70 15.175 2426.5 44 21 4 9 81 3 140 4 12 -14219 149 71 21.245 2426.5 44 20 4 9 81 3 139 4 11 -14220 149 72 27.315 2426.5 44 22 4 9 81 3 141 4 13 -14221 149 73 33.385 2426.5 44 24 4 9 81 3 143 4 15 -14222 149 74 39.455 2426.5 44 26 4 9 81 3 145 4 17 -14223 149 75 45.525 2426.5 48 25 4 9 82 3 144 4 16 -14224 149 76 51.595 2426.5 48 23 4 9 82 3 142 4 14 -14225 149 77 57.665 2426.5 48 21 4 9 82 3 140 4 12 -14226 149 78 63.735 2426.5 48 20 4 9 82 3 139 4 11 -14227 149 79 69.805 2426.5 48 22 4 9 82 3 141 4 13 -14228 149 80 75.875 2426.5 48 24 4 9 82 3 143 4 15 -14229 149 81 81.945 2426.5 48 26 4 9 82 3 145 4 17 -14230 149 82 88.015 2426.5 52 25 4 9 83 3 144 4 16 -14231 149 83 94.085 2426.5 52 23 4 9 83 3 142 4 14 -14232 149 84 100.155 2426.5 52 21 4 9 83 3 140 4 12 -14233 149 85 106.225 2426.5 52 22 4 9 83 3 141 4 13 -14234 149 86 112.295 2426.5 52 24 4 9 83 3 143 4 15 -14235 149 87 118.365 2426.5 52 26 4 9 83 3 145 4 17 -14236 149 88 124.435 2426.5 56 27 4 9 84 3 146 4 18 -14237 149 89 130.505 2426.5 56 25 4 9 84 3 144 4 16 -14238 149 90 136.575 2426.5 56 23 4 9 84 3 142 4 14 -14239 149 91 142.645 2426.5 56 21 4 9 84 3 140 4 12 -14240 149 92 148.715 2426.5 56 22 4 9 84 3 141 4 13 -14241 149 93 154.785 2426.5 56 24 4 9 84 3 143 4 15 -14242 149 94 160.855 2426.5 56 26 4 9 84 3 145 4 17 -14243 149 95 166.925 2426.5 60 25 4 9 85 3 144 4 16 -14244 149 96 172.995 2426.5 60 23 4 9 85 3 142 4 14 -14245 149 97 179.065 2426.5 60 21 4 9 85 3 140 4 12 -14246 149 98 185.135 2426.5 60 20 4 9 85 3 139 4 11 -14247 149 99 191.205 2426.5 60 22 4 9 85 3 141 4 13 -14248 149 100 197.275 2426.5 60 24 4 9 85 3 143 4 15 -14249 149 101 203.345 2426.5 60 26 4 9 85 3 145 4 17 -14250 149 102 209.415 2426.5 64 25 4 9 86 3 144 4 16 -14251 149 103 215.485 2426.5 64 23 4 9 86 3 142 4 14 -14252 149 104 221.555 2426.5 64 21 4 9 86 3 140 4 12 -14253 149 105 227.625 2426.5 64 22 4 9 86 3 141 4 13 -14254 149 106 233.695 2426.5 64 24 4 9 86 3 143 4 15 -14255 149 107 239.765 2426.5 64 26 4 9 86 3 145 4 17 -14256 149 108 245.835 2426.5 64 28 4 9 86 3 147 4 19 -14257 149 109 251.905 2426.5 68 25 4 9 87 3 144 4 16 -14258 149 110 257.975 2426.5 68 23 4 9 87 3 142 4 14 -14259 149 111 264.045 2426.5 68 21 4 9 87 3 140 4 12 -14260 149 112 270.115 2426.5 68 19 4 9 87 3 138 4 10 -14261 149 113 276.185 2426.5 68 22 4 9 87 3 141 4 13 -14262 149 114 282.255 2426.5 68 24 4 9 87 3 143 4 15 -14263 149 115 288.325 2426.5 68 26 4 9 87 3 145 4 17 -14264 149 116 294.395 2426.5 72 25 4 9 88 3 144 4 16 -14265 149 117 300.465 2426.5 72 23 4 9 88 3 142 4 14 -14266 149 118 306.535 2426.5 72 21 4 9 88 3 140 4 12 -14267 149 119 312.605 2426.5 72 20 4 9 88 3 139 4 11 -14268 149 120 318.675 2426.5 72 22 4 9 88 3 141 4 13 -14269 149 121 324.745 2426.5 72 24 4 9 88 3 143 4 15 -14270 149 122 330.815 2426.5 72 26 4 9 88 3 145 4 17 -14271 149 123 336.885 2426.5 76 25 4 9 89 3 144 4 16 -14272 149 124 342.955 2426.5 76 23 4 9 89 3 142 4 14 -14273 149 125 349.025 2426.5 76 21 4 9 89 3 140 4 12 -14274 149 126 355.095 2426.5 76 22 4 9 89 3 141 4 13 -14275 149 127 361.165 2426.5 76 24 4 9 89 3 143 4 15 -14276 149 128 367.235 2426.5 76 26 4 9 89 3 145 4 17 -14277 149 129 373.305 2426.5 80 25 4 9 90 3 144 4 16 -14278 149 130 379.375 2426.5 80 23 4 9 90 3 142 4 14 -14279 149 131 385.445 2426.5 80 21 4 9 90 3 140 4 12 -14280 149 132 391.515 2426.5 80 19 4 9 90 3 138 4 10 -14281 149 133 397.585 2426.5 80 22 4 9 90 3 141 4 13 -14282 149 134 403.655 2426.5 80 24 4 9 90 3 143 4 15 -14283 149 135 409.725 2426.5 80 26 4 9 90 3 145 4 17 -14284 150 0 -415.795 2441.5 4 33 4 9 71 3 152 4 24 -14285 150 1 -409.725 2441.5 4 31 4 9 71 3 150 4 22 -14286 150 2 -403.655 2441.5 4 29 4 9 71 3 148 4 20 -14287 150 3 -397.585 2441.5 4 27 4 9 71 3 146 4 18 -14288 150 4 -391.515 2441.5 4 28 4 9 71 3 147 4 19 -14289 150 5 -385.445 2441.5 4 30 4 9 71 3 149 4 21 -14290 150 6 -379.375 2441.5 4 32 4 9 71 3 151 4 23 -14291 150 7 -373.305 2441.5 8 33 4 9 72 3 152 4 24 -14292 150 8 -367.235 2441.5 8 31 4 9 72 3 150 4 22 -14293 150 9 -361.165 2441.5 8 29 4 9 72 3 148 4 20 -14294 150 10 -355.095 2441.5 8 27 4 9 72 3 146 4 18 -14295 150 11 -349.025 2441.5 8 28 4 9 72 3 147 4 19 -14296 150 12 -342.955 2441.5 8 30 4 9 72 3 149 4 21 -14297 150 13 -336.885 2441.5 8 32 4 9 72 3 151 4 23 -14298 150 14 -330.815 2441.5 12 33 4 9 73 3 152 4 24 -14299 150 15 -324.745 2441.5 12 31 4 9 73 3 150 4 22 -14300 150 16 -318.675 2441.5 12 29 4 9 73 3 148 4 20 -14301 150 17 -312.605 2441.5 12 27 4 9 73 3 146 4 18 -14302 150 18 -306.535 2441.5 12 28 4 9 73 3 147 4 19 -14303 150 19 -300.465 2441.5 12 30 4 9 73 3 149 4 21 -14304 150 20 -294.395 2441.5 12 32 4 9 73 3 151 4 23 -14305 150 21 -288.325 2441.5 16 33 4 9 74 3 152 4 24 -14306 150 22 -282.255 2441.5 16 31 4 9 74 3 150 4 22 -14307 150 23 -276.185 2441.5 16 29 4 9 74 3 148 4 20 -14308 150 24 -270.115 2441.5 16 27 4 9 74 3 146 4 18 -14309 150 25 -264.045 2441.5 16 28 4 9 74 3 147 4 19 -14310 150 26 -257.975 2441.5 16 30 4 9 74 3 149 4 21 -14311 150 27 -251.905 2441.5 16 32 4 9 74 3 151 4 23 -14312 150 28 -245.835 2441.5 20 33 4 9 75 3 152 4 24 -14313 150 29 -239.765 2441.5 20 31 4 9 75 3 150 4 22 -14314 150 30 -233.695 2441.5 20 29 4 9 75 3 148 4 20 -14315 150 31 -227.625 2441.5 20 28 4 9 75 3 147 4 19 -14316 150 32 -221.555 2441.5 20 30 4 9 75 3 149 4 21 -14317 150 33 -215.485 2441.5 20 32 4 9 75 3 151 4 23 -14318 150 34 -209.415 2441.5 20 34 4 9 75 3 153 4 25 -14319 150 35 -203.345 2441.5 24 31 4 9 76 3 150 4 22 -14320 150 36 -197.275 2441.5 24 29 4 9 76 3 148 4 20 -14321 150 37 -191.205 2441.5 24 27 4 9 76 3 146 4 18 -14322 150 38 -185.135 2441.5 24 28 4 9 76 3 147 4 19 -14323 150 39 -179.065 2441.5 24 30 4 9 76 3 149 4 21 -14324 150 40 -172.995 2441.5 24 32 4 9 76 3 151 4 23 -14325 150 41 -166.925 2441.5 24 34 4 9 76 3 153 4 25 -14326 150 42 -160.855 2441.5 28 31 4 9 77 3 150 4 22 -14327 150 43 -154.785 2441.5 28 29 4 9 77 3 148 4 20 -14328 150 44 -148.715 2441.5 28 27 4 9 77 3 146 4 18 -14329 150 45 -142.645 2441.5 28 30 4 9 77 3 149 4 21 -14330 150 46 -136.575 2441.5 28 32 4 9 77 3 151 4 23 -14331 150 47 -130.505 2441.5 28 34 4 9 77 3 153 4 25 -14332 150 48 -124.435 2441.5 32 33 4 9 78 3 152 4 24 -14333 150 49 -118.365 2441.5 32 31 4 9 78 3 150 4 22 -14334 150 50 -112.295 2441.5 32 29 4 9 78 3 148 4 20 -14335 150 51 -106.225 2441.5 32 27 4 9 78 3 146 4 18 -14336 150 52 -100.155 2441.5 32 28 4 9 78 3 147 4 19 -14337 150 53 -94.085 2441.5 32 30 4 9 78 3 149 4 21 -14338 150 54 -88.015 2441.5 32 32 4 9 78 3 151 4 23 -14339 150 55 -81.945 2441.5 36 31 4 9 79 3 150 4 22 -14340 150 56 -75.875 2441.5 36 29 4 9 79 3 148 4 20 -14341 150 57 -69.805 2441.5 36 27 4 9 79 3 146 4 18 -14342 150 58 -63.735 2441.5 36 28 4 9 79 3 147 4 19 -14343 150 59 -57.665 2441.5 36 30 4 9 79 3 149 4 21 -14344 150 60 -51.595 2441.5 36 32 4 9 79 3 151 4 23 -14345 150 61 -45.525 2441.5 36 34 4 9 79 3 153 4 25 -14346 150 62 -39.455 2441.5 40 31 4 9 80 3 150 4 22 -14347 150 63 -33.385 2441.5 40 29 4 9 80 3 148 4 20 -14348 150 64 -27.315 2441.5 40 27 4 9 80 3 146 4 18 -14349 150 65 -21.245 2441.5 40 28 4 9 80 3 147 4 19 -14350 150 66 -15.175 2441.5 40 30 4 9 80 3 149 4 21 -14351 150 67 -9.105 2441.5 40 32 4 9 80 3 151 4 23 -14352 150 68 -3.035 2441.5 40 34 4 9 80 3 153 4 25 -14353 150 69 3.035 2441.5 44 33 4 9 81 3 152 4 24 -14354 150 70 9.105 2441.5 44 31 4 9 81 3 150 4 22 -14355 150 71 15.175 2441.5 44 29 4 9 81 3 148 4 20 -14356 150 72 21.245 2441.5 44 27 4 9 81 3 146 4 18 -14357 150 73 27.315 2441.5 44 28 4 9 81 3 147 4 19 -14358 150 74 33.385 2441.5 44 30 4 9 81 3 149 4 21 -14359 150 75 39.455 2441.5 44 32 4 9 81 3 151 4 23 -14360 150 76 45.525 2441.5 48 33 4 9 82 3 152 4 24 -14361 150 77 51.595 2441.5 48 31 4 9 82 3 150 4 22 -14362 150 78 57.665 2441.5 48 29 4 9 82 3 148 4 20 -14363 150 79 63.735 2441.5 48 27 4 9 82 3 146 4 18 -14364 150 80 69.805 2441.5 48 28 4 9 82 3 147 4 19 -14365 150 81 75.875 2441.5 48 30 4 9 82 3 149 4 21 -14366 150 82 81.945 2441.5 48 32 4 9 82 3 151 4 23 -14367 150 83 88.015 2441.5 52 31 4 9 83 3 150 4 22 -14368 150 84 94.085 2441.5 52 29 4 9 83 3 148 4 20 -14369 150 85 100.155 2441.5 52 27 4 9 83 3 146 4 18 -14370 150 86 106.225 2441.5 52 28 4 9 83 3 147 4 19 -14371 150 87 112.295 2441.5 52 30 4 9 83 3 149 4 21 -14372 150 88 118.365 2441.5 52 32 4 9 83 3 151 4 23 -14373 150 89 124.435 2441.5 52 34 4 9 83 3 153 4 25 -14374 150 90 130.505 2441.5 56 33 4 9 84 3 152 4 24 -14375 150 91 136.575 2441.5 56 31 4 9 84 3 150 4 22 -14376 150 92 142.645 2441.5 56 29 4 9 84 3 148 4 20 -14377 150 93 148.715 2441.5 56 28 4 9 84 3 147 4 19 -14378 150 94 154.785 2441.5 56 30 4 9 84 3 149 4 21 -14379 150 95 160.855 2441.5 56 32 4 9 84 3 151 4 23 -14380 150 96 166.925 2441.5 60 33 4 9 85 3 152 4 24 -14381 150 97 172.995 2441.5 60 31 4 9 85 3 150 4 22 -14382 150 98 179.065 2441.5 60 29 4 9 85 3 148 4 20 -14383 150 99 185.135 2441.5 60 27 4 9 85 3 146 4 18 -14384 150 100 191.205 2441.5 60 28 4 9 85 3 147 4 19 -14385 150 101 197.275 2441.5 60 30 4 9 85 3 149 4 21 -14386 150 102 203.345 2441.5 60 32 4 9 85 3 151 4 23 -14387 150 103 209.415 2441.5 64 33 4 9 86 3 152 4 24 -14388 150 104 215.485 2441.5 64 31 4 9 86 3 150 4 22 -14389 150 105 221.555 2441.5 64 29 4 9 86 3 148 4 20 -14390 150 106 227.625 2441.5 64 27 4 9 86 3 146 4 18 -14391 150 107 233.695 2441.5 64 30 4 9 86 3 149 4 21 -14392 150 108 239.765 2441.5 64 32 4 9 86 3 151 4 23 -14393 150 109 245.835 2441.5 64 34 4 9 86 3 153 4 25 -14394 150 110 251.905 2441.5 68 31 4 9 87 3 150 4 22 -14395 150 111 257.975 2441.5 68 29 4 9 87 3 148 4 20 -14396 150 112 264.045 2441.5 68 27 4 9 87 3 146 4 18 -14397 150 113 270.115 2441.5 68 28 4 9 87 3 147 4 19 -14398 150 114 276.185 2441.5 68 30 4 9 87 3 149 4 21 -14399 150 115 282.255 2441.5 68 32 4 9 87 3 151 4 23 -14400 150 116 288.325 2441.5 68 34 4 9 87 3 153 4 25 -14401 150 117 294.395 2441.5 72 31 4 9 88 3 150 4 22 -14402 150 118 300.465 2441.5 72 29 4 9 88 3 148 4 20 -14403 150 119 306.535 2441.5 72 27 4 9 88 3 146 4 18 -14404 150 120 312.605 2441.5 72 28 4 9 88 3 147 4 19 -14405 150 121 318.675 2441.5 72 30 4 9 88 3 149 4 21 -14406 150 122 324.745 2441.5 72 32 4 9 88 3 151 4 23 -14407 150 123 330.815 2441.5 72 34 4 9 88 3 153 4 25 -14408 150 124 336.885 2441.5 76 31 4 9 89 3 150 4 22 -14409 150 125 342.955 2441.5 76 29 4 9 89 3 148 4 20 -14410 150 126 349.025 2441.5 76 27 4 9 89 3 146 4 18 -14411 150 127 355.095 2441.5 76 28 4 9 89 3 147 4 19 -14412 150 128 361.165 2441.5 76 30 4 9 89 3 149 4 21 -14413 150 129 367.235 2441.5 76 32 4 9 89 3 151 4 23 -14414 150 130 373.305 2441.5 76 34 4 9 89 3 153 4 25 -14415 150 131 379.375 2441.5 80 31 4 9 90 3 150 4 22 -14416 150 132 385.445 2441.5 80 29 4 9 90 3 148 4 20 -14417 150 133 391.515 2441.5 80 27 4 9 90 3 146 4 18 -14418 150 134 397.585 2441.5 80 28 4 9 90 3 147 4 19 -14419 150 135 403.655 2441.5 80 30 4 9 90 3 149 4 21 -14420 150 136 409.725 2441.5 80 32 4 9 90 3 151 4 23 -14421 150 137 415.795 2441.5 80 34 4 9 90 3 153 4 25 -14422 151 0 -415.795 2456.5 4 39 4 9 71 3 158 4 30 -14423 151 1 -409.725 2456.5 4 37 4 9 71 3 156 4 28 -14424 151 2 -403.655 2456.5 4 35 4 9 71 3 154 4 26 -14425 151 3 -397.585 2456.5 4 34 4 9 71 3 153 4 25 -14426 151 4 -391.515 2456.5 4 36 4 9 71 3 155 4 27 -14427 151 5 -385.445 2456.5 4 38 4 9 71 3 157 4 29 -14428 151 6 -379.375 2456.5 4 40 4 9 71 3 159 4 31 -14429 151 7 -373.305 2456.5 8 39 4 9 72 3 158 4 30 -14430 151 8 -367.235 2456.5 8 37 4 9 72 3 156 4 28 -14431 151 9 -361.165 2456.5 8 35 4 9 72 3 154 4 26 -14432 151 10 -355.095 2456.5 8 34 4 9 72 3 153 4 25 -14433 151 11 -349.025 2456.5 8 36 4 9 72 3 155 4 27 -14434 151 12 -342.955 2456.5 8 38 4 9 72 3 157 4 29 -14435 151 13 -336.885 2456.5 8 40 4 9 72 3 159 4 31 -14436 151 14 -330.815 2456.5 12 39 4 9 73 3 158 4 30 -14437 151 15 -324.745 2456.5 12 37 4 9 73 3 156 4 28 -14438 151 16 -318.675 2456.5 12 35 4 9 73 3 154 4 26 -14439 151 17 -312.605 2456.5 12 34 4 9 73 3 153 4 25 -14440 151 18 -306.535 2456.5 12 36 4 9 73 3 155 4 27 -14441 151 19 -300.465 2456.5 12 38 4 9 73 3 157 4 29 -14442 151 20 -294.395 2456.5 12 40 4 9 73 3 159 4 31 -14443 151 21 -288.325 2456.5 16 39 4 9 74 3 158 4 30 -14444 151 22 -282.255 2456.5 16 37 4 9 74 3 156 4 28 -14445 151 23 -276.185 2456.5 16 35 4 9 74 3 154 4 26 -14446 151 24 -270.115 2456.5 16 34 4 9 74 3 153 4 25 -14447 151 25 -264.045 2456.5 16 36 4 9 74 3 155 4 27 -14448 151 26 -257.975 2456.5 16 38 4 9 74 3 157 4 29 -14449 151 27 -251.905 2456.5 16 40 4 9 74 3 159 4 31 -14450 151 28 -245.835 2456.5 20 39 4 9 75 3 158 4 30 -14451 151 29 -239.765 2456.5 20 37 4 9 75 3 156 4 28 -14452 151 30 -233.695 2456.5 20 35 4 9 75 3 154 4 26 -14453 151 31 -227.625 2456.5 20 36 4 9 75 3 155 4 27 -14454 151 32 -221.555 2456.5 20 38 4 9 75 3 157 4 29 -14455 151 33 -215.485 2456.5 20 40 4 9 75 3 159 4 31 -14456 151 34 -209.415 2456.5 24 39 4 9 76 3 158 4 30 -14457 151 35 -203.345 2456.5 24 37 4 9 76 3 156 4 28 -14458 151 36 -197.275 2456.5 24 35 4 9 76 3 154 4 26 -14459 151 37 -191.205 2456.5 24 33 4 9 76 3 152 4 24 -14460 151 38 -185.135 2456.5 24 36 4 9 76 3 155 4 27 -14461 151 39 -179.065 2456.5 24 38 4 9 76 3 157 4 29 -14462 151 40 -172.995 2456.5 24 40 4 9 76 3 159 4 31 -14463 151 41 -166.925 2456.5 28 39 4 9 77 3 158 4 30 -14464 151 42 -160.855 2456.5 28 37 4 9 77 3 156 4 28 -14465 151 43 -154.785 2456.5 28 35 4 9 77 3 154 4 26 -14466 151 44 -148.715 2456.5 28 33 4 9 77 3 152 4 24 -14467 151 45 -142.645 2456.5 28 36 4 9 77 3 155 4 27 -14468 151 46 -136.575 2456.5 28 38 4 9 77 3 157 4 29 -14469 151 47 -130.505 2456.5 28 40 4 9 77 3 159 4 31 -14470 151 48 -124.435 2456.5 32 39 4 9 78 3 158 4 30 -14471 151 49 -118.365 2456.5 32 37 4 9 78 3 156 4 28 -14472 151 50 -112.295 2456.5 32 35 4 9 78 3 154 4 26 -14473 151 51 -106.225 2456.5 32 34 4 9 78 3 153 4 25 -14474 151 52 -100.155 2456.5 32 36 4 9 78 3 155 4 27 -14475 151 53 -94.085 2456.5 32 38 4 9 78 3 157 4 29 -14476 151 54 -88.015 2456.5 32 40 4 9 78 3 159 4 31 -14477 151 55 -81.945 2456.5 36 39 4 9 79 3 158 4 30 -14478 151 56 -75.875 2456.5 36 37 4 9 79 3 156 4 28 -14479 151 57 -69.805 2456.5 36 35 4 9 79 3 154 4 26 -14480 151 58 -63.735 2456.5 36 33 4 9 79 3 152 4 24 -14481 151 59 -57.665 2456.5 36 36 4 9 79 3 155 4 27 -14482 151 60 -51.595 2456.5 36 38 4 9 79 3 157 4 29 -14483 151 61 -45.525 2456.5 36 40 4 9 79 3 159 4 31 -14484 151 62 -39.455 2456.5 40 39 4 9 80 3 158 4 30 -14485 151 63 -33.385 2456.5 40 37 4 9 80 3 156 4 28 -14486 151 64 -27.315 2456.5 40 35 4 9 80 3 154 4 26 -14487 151 65 -21.245 2456.5 40 33 4 9 80 3 152 4 24 -14488 151 66 -15.175 2456.5 40 36 4 9 80 3 155 4 27 -14489 151 67 -9.105 2456.5 40 38 4 9 80 3 157 4 29 -14490 151 68 -3.035 2456.5 40 40 4 9 80 3 159 4 31 -14491 151 69 3.035 2456.5 44 39 4 9 81 3 158 4 30 -14492 151 70 9.105 2456.5 44 37 4 9 81 3 156 4 28 -14493 151 71 15.175 2456.5 44 35 4 9 81 3 154 4 26 -14494 151 72 21.245 2456.5 44 34 4 9 81 3 153 4 25 -14495 151 73 27.315 2456.5 44 36 4 9 81 3 155 4 27 -14496 151 74 33.385 2456.5 44 38 4 9 81 3 157 4 29 -14497 151 75 39.455 2456.5 44 40 4 9 81 3 159 4 31 -14498 151 76 45.525 2456.5 48 39 4 9 82 3 158 4 30 -14499 151 77 51.595 2456.5 48 37 4 9 82 3 156 4 28 -14500 151 78 57.665 2456.5 48 35 4 9 82 3 154 4 26 -14501 151 79 63.735 2456.5 48 34 4 9 82 3 153 4 25 -14502 151 80 69.805 2456.5 48 36 4 9 82 3 155 4 27 -14503 151 81 75.875 2456.5 48 38 4 9 82 3 157 4 29 -14504 151 82 81.945 2456.5 48 40 4 9 82 3 159 4 31 -14505 151 83 88.015 2456.5 52 39 4 9 83 3 158 4 30 -14506 151 84 94.085 2456.5 52 37 4 9 83 3 156 4 28 -14507 151 85 100.155 2456.5 52 35 4 9 83 3 154 4 26 -14508 151 86 106.225 2456.5 52 33 4 9 83 3 152 4 24 -14509 151 87 112.295 2456.5 52 36 4 9 83 3 155 4 27 -14510 151 88 118.365 2456.5 52 38 4 9 83 3 157 4 29 -14511 151 89 124.435 2456.5 52 40 4 9 83 3 159 4 31 -14512 151 90 130.505 2456.5 56 39 4 9 84 3 158 4 30 -14513 151 91 136.575 2456.5 56 37 4 9 84 3 156 4 28 -14514 151 92 142.645 2456.5 56 35 4 9 84 3 154 4 26 -14515 151 93 148.715 2456.5 56 34 4 9 84 3 153 4 25 -14516 151 94 154.785 2456.5 56 36 4 9 84 3 155 4 27 -14517 151 95 160.855 2456.5 56 38 4 9 84 3 157 4 29 -14518 151 96 166.925 2456.5 56 40 4 9 84 3 159 4 31 -14519 151 97 172.995 2456.5 60 39 4 9 85 3 158 4 30 -14520 151 98 179.065 2456.5 60 37 4 9 85 3 156 4 28 -14521 151 99 185.135 2456.5 60 35 4 9 85 3 154 4 26 -14522 151 100 191.205 2456.5 60 34 4 9 85 3 153 4 25 -14523 151 101 197.275 2456.5 60 36 4 9 85 3 155 4 27 -14524 151 102 203.345 2456.5 60 38 4 9 85 3 157 4 29 -14525 151 103 209.415 2456.5 60 40 4 9 85 3 159 4 31 -14526 151 104 215.485 2456.5 64 39 4 9 86 3 158 4 30 -14527 151 105 221.555 2456.5 64 37 4 9 86 3 156 4 28 -14528 151 106 227.625 2456.5 64 35 4 9 86 3 154 4 26 -14529 151 107 233.695 2456.5 64 36 4 9 86 3 155 4 27 -14530 151 108 239.765 2456.5 64 38 4 9 86 3 157 4 29 -14531 151 109 245.835 2456.5 64 40 4 9 86 3 159 4 31 -14532 151 110 251.905 2456.5 68 39 4 9 87 3 158 4 30 -14533 151 111 257.975 2456.5 68 37 4 9 87 3 156 4 28 -14534 151 112 264.045 2456.5 68 35 4 9 87 3 154 4 26 -14535 151 113 270.115 2456.5 68 33 4 9 87 3 152 4 24 -14536 151 114 276.185 2456.5 68 36 4 9 87 3 155 4 27 -14537 151 115 282.255 2456.5 68 38 4 9 87 3 157 4 29 -14538 151 116 288.325 2456.5 68 40 4 9 87 3 159 4 31 -14539 151 117 294.395 2456.5 72 39 4 9 88 3 158 4 30 -14540 151 118 300.465 2456.5 72 37 4 9 88 3 156 4 28 -14541 151 119 306.535 2456.5 72 35 4 9 88 3 154 4 26 -14542 151 120 312.605 2456.5 72 33 4 9 88 3 152 4 24 -14543 151 121 318.675 2456.5 72 36 4 9 88 3 155 4 27 -14544 151 122 324.745 2456.5 72 38 4 9 88 3 157 4 29 -14545 151 123 330.815 2456.5 72 40 4 9 88 3 159 4 31 -14546 151 124 336.885 2456.5 76 39 4 9 89 3 158 4 30 -14547 151 125 342.955 2456.5 76 37 4 9 89 3 156 4 28 -14548 151 126 349.025 2456.5 76 35 4 9 89 3 154 4 26 -14549 151 127 355.095 2456.5 76 33 4 9 89 3 152 4 24 -14550 151 128 361.165 2456.5 76 36 4 9 89 3 155 4 27 -14551 151 129 367.235 2456.5 76 38 4 9 89 3 157 4 29 -14552 151 130 373.305 2456.5 76 40 4 9 89 3 159 4 31 -14553 151 131 379.375 2456.5 80 39 4 9 90 3 158 4 30 -14554 151 132 385.445 2456.5 80 37 4 9 90 3 156 4 28 -14555 151 133 391.515 2456.5 80 35 4 9 90 3 154 4 26 -14556 151 134 397.585 2456.5 80 33 4 9 90 3 152 4 24 -14557 151 135 403.655 2456.5 80 36 4 9 90 3 155 4 27 -14558 151 136 409.725 2456.5 80 38 4 9 90 3 157 4 29 -14559 151 137 415.795 2456.5 80 40 4 9 90 3 159 4 31 +11360 127 0 -353.34 2096.5 1 5 4 8 71 0 4 0 4 +11361 127 1 -347.3 2096.5 1 3 4 8 71 0 2 0 2 +11362 127 2 -341.26 2096.5 1 1 4 8 71 0 0 0 0 +11363 127 3 -335.22 2096.5 1 2 4 8 71 0 1 0 1 +11364 127 4 -329.18 2096.5 1 4 4 8 71 0 3 0 3 +11365 127 5 -323.14 2096.5 1 6 4 8 71 0 5 0 5 +11366 127 6 -317.1 2096.5 5 5 4 8 72 0 4 0 4 +11367 127 7 -311.06 2096.5 5 3 4 8 72 0 2 0 2 +11368 127 8 -305.02 2096.5 5 1 4 8 72 0 0 0 0 +11369 127 9 -298.98 2096.5 5 2 4 8 72 0 1 0 1 +11370 127 10 -292.94 2096.5 5 4 4 8 72 0 3 0 3 +11371 127 11 -286.9 2096.5 5 6 4 8 72 0 5 0 5 +11372 127 12 -280.86 2096.5 9 5 4 8 73 0 4 0 4 +11373 127 13 -274.82 2096.5 9 3 4 8 73 0 2 0 2 +11374 127 14 -268.78 2096.5 9 1 4 8 73 0 0 0 0 +11375 127 15 -262.74 2096.5 9 2 4 8 73 0 1 0 1 +11376 127 16 -256.7 2096.5 9 4 4 8 73 0 3 0 3 +11377 127 17 -250.66 2096.5 9 6 4 8 73 0 5 0 5 +11378 127 18 -244.62 2096.5 13 5 4 8 74 0 4 0 4 +11379 127 19 -238.58 2096.5 13 3 4 8 74 0 2 0 2 +11380 127 20 -232.54 2096.5 13 1 4 8 74 0 0 0 0 +11381 127 21 -226.5 2096.5 13 2 4 8 74 0 1 0 1 +11382 127 22 -220.46 2096.5 13 4 4 8 74 0 3 0 3 +11383 127 23 -214.42 2096.5 13 6 4 8 74 0 5 0 5 +11384 127 24 -208.38 2096.5 17 5 4 8 75 0 4 0 4 +11385 127 25 -202.34 2096.5 17 3 4 8 75 0 2 0 2 +11386 127 26 -196.3 2096.5 17 1 4 8 75 0 0 0 0 +11387 127 27 -190.26 2096.5 17 2 4 8 75 0 1 0 1 +11388 127 28 -184.22 2096.5 17 4 4 8 75 0 3 0 3 +11389 127 29 -178.18 2096.5 17 6 4 8 75 0 5 0 5 +11390 127 30 -172.14 2096.5 21 5 4 8 76 0 4 0 4 +11391 127 31 -166.1 2096.5 21 3 4 8 76 0 2 0 2 +11392 127 32 -160.06 2096.5 21 1 4 8 76 0 0 0 0 +11393 127 33 -154.02 2096.5 21 2 4 8 76 0 1 0 1 +11394 127 34 -147.98 2096.5 21 4 4 8 76 0 3 0 3 +11395 127 35 -141.94 2096.5 25 5 4 8 77 0 4 0 4 +11396 127 36 -135.9 2096.5 25 3 4 8 77 0 2 0 2 +11397 127 37 -129.86 2096.5 25 1 4 8 77 0 0 0 0 +11398 127 38 -123.82 2096.5 25 2 4 8 77 0 1 0 1 +11399 127 39 -117.78 2096.5 25 4 4 8 77 0 3 0 3 +11400 127 40 -111.74 2096.5 25 6 4 8 77 0 5 0 5 +11401 127 41 -105.7 2096.5 29 5 4 8 78 0 4 0 4 +11402 127 42 -99.66 2096.5 29 3 4 8 78 0 2 0 2 +11403 127 43 -93.62 2096.5 29 1 4 8 78 0 0 0 0 +11404 127 44 -87.58 2096.5 29 2 4 8 78 0 1 0 1 +11405 127 45 -81.54 2096.5 29 4 4 8 78 0 3 0 3 +11406 127 46 -75.5 2096.5 29 6 4 8 78 0 5 0 5 +11407 127 47 -69.46 2096.5 33 5 4 8 79 0 4 0 4 +11408 127 48 -63.42 2096.5 33 3 4 8 79 0 2 0 2 +11409 127 49 -57.38 2096.5 33 1 4 8 79 0 0 0 0 +11410 127 50 -51.34 2096.5 33 2 4 8 79 0 1 0 1 +11411 127 51 -45.3 2096.5 33 4 4 8 79 0 3 0 3 +11412 127 52 -39.26 2096.5 33 6 4 8 79 0 5 0 5 +11413 127 53 -33.22 2096.5 37 5 4 8 80 0 4 0 4 +11414 127 54 -27.18 2096.5 37 3 4 8 80 0 2 0 2 +11415 127 55 -21.14 2096.5 37 1 4 8 80 0 0 0 0 +11416 127 56 -15.1 2096.5 37 2 4 8 80 0 1 0 1 +11417 127 57 -9.06 2096.5 37 4 4 8 80 0 3 0 3 +11418 127 58 -3.02 2096.5 37 6 4 8 80 0 5 0 5 +11419 127 59 3.02 2096.5 41 5 4 8 81 0 4 0 4 +11420 127 60 9.06 2096.5 41 3 4 8 81 0 2 0 2 +11421 127 61 15.1 2096.5 41 1 4 8 81 0 0 0 0 +11422 127 62 21.14 2096.5 41 2 4 8 81 0 1 0 1 +11423 127 63 27.18 2096.5 41 4 4 8 81 0 3 0 3 +11424 127 64 33.22 2096.5 41 6 4 8 81 0 5 0 5 +11425 127 65 39.26 2096.5 45 5 4 8 82 0 4 0 4 +11426 127 66 45.3 2096.5 45 3 4 8 82 0 2 0 2 +11427 127 67 51.34 2096.5 45 1 4 8 82 0 0 0 0 +11428 127 68 57.38 2096.5 45 2 4 8 82 0 1 0 1 +11429 127 69 63.42 2096.5 45 4 4 8 82 0 3 0 3 +11430 127 70 69.46 2096.5 45 6 4 8 82 0 5 0 5 +11431 127 71 75.5 2096.5 49 5 4 8 83 0 4 0 4 +11432 127 72 81.54 2096.5 49 3 4 8 83 0 2 0 2 +11433 127 73 87.58 2096.5 49 1 4 8 83 0 0 0 0 +11434 127 74 93.62 2096.5 49 2 4 8 83 0 1 0 1 +11435 127 75 99.66 2096.5 49 4 4 8 83 0 3 0 3 +11436 127 76 105.7 2096.5 49 6 4 8 83 0 5 0 5 +11437 127 77 111.74 2096.5 53 5 4 8 84 0 4 0 4 +11438 127 78 117.78 2096.5 53 3 4 8 84 0 2 0 2 +11439 127 79 123.82 2096.5 53 1 4 8 84 0 0 0 0 +11440 127 80 129.86 2096.5 53 2 4 8 84 0 1 0 1 +11441 127 81 135.9 2096.5 53 4 4 8 84 0 3 0 3 +11442 127 82 141.94 2096.5 53 6 4 8 84 0 5 0 5 +11443 127 83 147.98 2096.5 57 3 4 8 85 0 2 0 2 +11444 127 84 154.02 2096.5 57 1 4 8 85 0 0 0 0 +11445 127 85 160.06 2096.5 57 2 4 8 85 0 1 0 1 +11446 127 86 166.1 2096.5 57 4 4 8 85 0 3 0 3 +11447 127 87 172.14 2096.5 57 6 4 8 85 0 5 0 5 +11448 127 88 178.18 2096.5 61 5 4 8 86 0 4 0 4 +11449 127 89 184.22 2096.5 61 3 4 8 86 0 2 0 2 +11450 127 90 190.26 2096.5 61 1 4 8 86 0 0 0 0 +11451 127 91 196.3 2096.5 61 2 4 8 86 0 1 0 1 +11452 127 92 202.34 2096.5 61 4 4 8 86 0 3 0 3 +11453 127 93 208.38 2096.5 61 6 4 8 86 0 5 0 5 +11454 127 94 214.42 2096.5 65 5 4 8 87 0 4 0 4 +11455 127 95 220.46 2096.5 65 3 4 8 87 0 2 0 2 +11456 127 96 226.5 2096.5 65 1 4 8 87 0 0 0 0 +11457 127 97 232.54 2096.5 65 2 4 8 87 0 1 0 1 +11458 127 98 238.58 2096.5 65 4 4 8 87 0 3 0 3 +11459 127 99 244.62 2096.5 65 6 4 8 87 0 5 0 5 +11460 127 100 250.66 2096.5 69 5 4 8 88 0 4 0 4 +11461 127 101 256.7 2096.5 69 3 4 8 88 0 2 0 2 +11462 127 102 262.74 2096.5 69 1 4 8 88 0 0 0 0 +11463 127 103 268.78 2096.5 69 2 4 8 88 0 1 0 1 +11464 127 104 274.82 2096.5 69 4 4 8 88 0 3 0 3 +11465 127 105 280.86 2096.5 69 6 4 8 88 0 5 0 5 +11466 127 106 286.9 2096.5 73 5 4 8 89 0 4 0 4 +11467 127 107 292.94 2096.5 73 3 4 8 89 0 2 0 2 +11468 127 108 298.98 2096.5 73 1 4 8 89 0 0 0 0 +11469 127 109 305.02 2096.5 73 2 4 8 89 0 1 0 1 +11470 127 110 311.06 2096.5 73 4 4 8 89 0 3 0 3 +11471 127 111 317.1 2096.5 73 6 4 8 89 0 5 0 5 +11472 127 112 323.14 2096.5 77 5 4 8 90 0 4 0 4 +11473 127 113 329.18 2096.5 77 3 4 8 90 0 2 0 2 +11474 127 114 335.22 2096.5 77 1 4 8 90 0 0 0 0 +11475 127 115 341.26 2096.5 77 2 4 8 90 0 1 0 1 +11476 127 116 347.3 2096.5 77 4 4 8 90 0 3 0 3 +11477 127 117 353.34 2096.5 77 6 4 8 90 0 5 0 5 +11478 128 0 -353.34 2111.5 1 11 4 8 71 0 10 0 10 +11479 128 1 -347.3 2111.5 1 9 4 8 71 0 8 0 8 +11480 128 2 -341.26 2111.5 1 7 4 8 71 0 6 0 6 +11481 128 3 -335.22 2111.5 1 8 4 8 71 0 7 0 7 +11482 128 4 -329.18 2111.5 1 10 4 8 71 0 9 0 9 +11483 128 5 -323.14 2111.5 1 12 4 8 71 0 11 0 11 +11484 128 6 -317.1 2111.5 5 11 4 8 72 0 10 0 10 +11485 128 7 -311.06 2111.5 5 9 4 8 72 0 8 0 8 +11486 128 8 -305.02 2111.5 5 7 4 8 72 0 6 0 6 +11487 128 9 -298.98 2111.5 5 8 4 8 72 0 7 0 7 +11488 128 10 -292.94 2111.5 5 10 4 8 72 0 9 0 9 +11489 128 11 -286.9 2111.5 5 12 4 8 72 0 11 0 11 +11490 128 12 -280.86 2111.5 9 11 4 8 73 0 10 0 10 +11491 128 13 -274.82 2111.5 9 9 4 8 73 0 8 0 8 +11492 128 14 -268.78 2111.5 9 7 4 8 73 0 6 0 6 +11493 128 15 -262.74 2111.5 9 8 4 8 73 0 7 0 7 +11494 128 16 -256.7 2111.5 9 10 4 8 73 0 9 0 9 +11495 128 17 -250.66 2111.5 13 11 4 8 74 0 10 0 10 +11496 128 18 -244.62 2111.5 13 9 4 8 74 0 8 0 8 +11497 128 19 -238.58 2111.5 13 7 4 8 74 0 6 0 6 +11498 128 20 -232.54 2111.5 13 8 4 8 74 0 7 0 7 +11499 128 21 -226.5 2111.5 13 10 4 8 74 0 9 0 9 +11500 128 22 -220.46 2111.5 13 12 4 8 74 0 11 0 11 +11501 128 23 -214.42 2111.5 17 11 4 8 75 0 10 0 10 +11502 128 24 -208.38 2111.5 17 9 4 8 75 0 8 0 8 +11503 128 25 -202.34 2111.5 17 7 4 8 75 0 6 0 6 +11504 128 26 -196.3 2111.5 17 8 4 8 75 0 7 0 7 +11505 128 27 -190.26 2111.5 17 10 4 8 75 0 9 0 9 +11506 128 28 -184.22 2111.5 17 12 4 8 75 0 11 0 11 +11507 128 29 -178.18 2111.5 21 11 4 8 76 0 10 0 10 +11508 128 30 -172.14 2111.5 21 9 4 8 76 0 8 0 8 +11509 128 31 -166.1 2111.5 21 7 4 8 76 0 6 0 6 +11510 128 32 -160.06 2111.5 21 6 4 8 76 0 5 0 5 +11511 128 33 -154.02 2111.5 21 8 4 8 76 0 7 0 7 +11512 128 34 -147.98 2111.5 21 10 4 8 76 0 9 0 9 +11513 128 35 -141.94 2111.5 25 11 4 8 77 0 10 0 10 +11514 128 36 -135.9 2111.5 25 9 4 8 77 0 8 0 8 +11515 128 37 -129.86 2111.5 25 7 4 8 77 0 6 0 6 +11516 128 38 -123.82 2111.5 25 8 4 8 77 0 7 0 7 +11517 128 39 -117.78 2111.5 25 10 4 8 77 0 9 0 9 +11518 128 40 -111.74 2111.5 25 12 4 8 77 0 11 0 11 +11519 128 41 -105.7 2111.5 29 11 4 8 78 0 10 0 10 +11520 128 42 -99.66 2111.5 29 9 4 8 78 0 8 0 8 +11521 128 43 -93.62 2111.5 29 7 4 8 78 0 6 0 6 +11522 128 44 -87.58 2111.5 29 8 4 8 78 0 7 0 7 +11523 128 45 -81.54 2111.5 29 10 4 8 78 0 9 0 9 +11524 128 46 -75.5 2111.5 29 12 4 8 78 0 11 0 11 +11525 128 47 -69.46 2111.5 33 11 4 8 79 0 10 0 10 +11526 128 48 -63.42 2111.5 33 9 4 8 79 0 8 0 8 +11527 128 49 -57.38 2111.5 33 7 4 8 79 0 6 0 6 +11528 128 50 -51.34 2111.5 33 8 4 8 79 0 7 0 7 +11529 128 51 -45.3 2111.5 33 10 4 8 79 0 9 0 9 +11530 128 52 -39.26 2111.5 33 12 4 8 79 0 11 0 11 +11531 128 53 -33.22 2111.5 37 11 4 8 80 0 10 0 10 +11532 128 54 -27.18 2111.5 37 9 4 8 80 0 8 0 8 +11533 128 55 -21.14 2111.5 37 7 4 8 80 0 6 0 6 +11534 128 56 -15.1 2111.5 37 8 4 8 80 0 7 0 7 +11535 128 57 -9.06 2111.5 37 10 4 8 80 0 9 0 9 +11536 128 58 -3.02 2111.5 37 12 4 8 80 0 11 0 11 +11537 128 59 3.02 2111.5 41 11 4 8 81 0 10 0 10 +11538 128 60 9.06 2111.5 41 9 4 8 81 0 8 0 8 +11539 128 61 15.1 2111.5 41 7 4 8 81 0 6 0 6 +11540 128 62 21.14 2111.5 41 8 4 8 81 0 7 0 7 +11541 128 63 27.18 2111.5 41 10 4 8 81 0 9 0 9 +11542 128 64 33.22 2111.5 41 12 4 8 81 0 11 0 11 +11543 128 65 39.26 2111.5 45 11 4 8 82 0 10 0 10 +11544 128 66 45.3 2111.5 45 9 4 8 82 0 8 0 8 +11545 128 67 51.34 2111.5 45 7 4 8 82 0 6 0 6 +11546 128 68 57.38 2111.5 45 8 4 8 82 0 7 0 7 +11547 128 69 63.42 2111.5 45 10 4 8 82 0 9 0 9 +11548 128 70 69.46 2111.5 45 12 4 8 82 0 11 0 11 +11549 128 71 75.5 2111.5 49 11 4 8 83 0 10 0 10 +11550 128 72 81.54 2111.5 49 9 4 8 83 0 8 0 8 +11551 128 73 87.58 2111.5 49 7 4 8 83 0 6 0 6 +11552 128 74 93.62 2111.5 49 8 4 8 83 0 7 0 7 +11553 128 75 99.66 2111.5 49 10 4 8 83 0 9 0 9 +11554 128 76 105.7 2111.5 49 12 4 8 83 0 11 0 11 +11555 128 77 111.74 2111.5 53 11 4 8 84 0 10 0 10 +11556 128 78 117.78 2111.5 53 9 4 8 84 0 8 0 8 +11557 128 79 123.82 2111.5 53 7 4 8 84 0 6 0 6 +11558 128 80 129.86 2111.5 53 8 4 8 84 0 7 0 7 +11559 128 81 135.9 2111.5 53 10 4 8 84 0 9 0 9 +11560 128 82 141.94 2111.5 53 12 4 8 84 0 11 0 11 +11561 128 83 147.98 2111.5 57 9 4 8 85 0 8 0 8 +11562 128 84 154.02 2111.5 57 7 4 8 85 0 6 0 6 +11563 128 85 160.06 2111.5 57 5 4 8 85 0 4 0 4 +11564 128 86 166.1 2111.5 57 8 4 8 85 0 7 0 7 +11565 128 87 172.14 2111.5 57 10 4 8 85 0 9 0 9 +11566 128 88 178.18 2111.5 57 12 4 8 85 0 11 0 11 +11567 128 89 184.22 2111.5 61 11 4 8 86 0 10 0 10 +11568 128 90 190.26 2111.5 61 9 4 8 86 0 8 0 8 +11569 128 91 196.3 2111.5 61 7 4 8 86 0 6 0 6 +11570 128 92 202.34 2111.5 61 8 4 8 86 0 7 0 7 +11571 128 93 208.38 2111.5 61 10 4 8 86 0 9 0 9 +11572 128 94 214.42 2111.5 61 12 4 8 86 0 11 0 11 +11573 128 95 220.46 2111.5 65 11 4 8 87 0 10 0 10 +11574 128 96 226.5 2111.5 65 9 4 8 87 0 8 0 8 +11575 128 97 232.54 2111.5 65 7 4 8 87 0 6 0 6 +11576 128 98 238.58 2111.5 65 8 4 8 87 0 7 0 7 +11577 128 99 244.62 2111.5 65 10 4 8 87 0 9 0 9 +11578 128 100 250.66 2111.5 65 12 4 8 87 0 11 0 11 +11579 128 101 256.7 2111.5 69 9 4 8 88 0 8 0 8 +11580 128 102 262.74 2111.5 69 7 4 8 88 0 6 0 6 +11581 128 103 268.78 2111.5 69 8 4 8 88 0 7 0 7 +11582 128 104 274.82 2111.5 69 10 4 8 88 0 9 0 9 +11583 128 105 280.86 2111.5 69 12 4 8 88 0 11 0 11 +11584 128 106 286.9 2111.5 73 11 4 8 89 0 10 0 10 +11585 128 107 292.94 2111.5 73 9 4 8 89 0 8 0 8 +11586 128 108 298.98 2111.5 73 7 4 8 89 0 6 0 6 +11587 128 109 305.02 2111.5 73 8 4 8 89 0 7 0 7 +11588 128 110 311.06 2111.5 73 10 4 8 89 0 9 0 9 +11589 128 111 317.1 2111.5 73 12 4 8 89 0 11 0 11 +11590 128 112 323.14 2111.5 77 11 4 8 90 0 10 0 10 +11591 128 113 329.18 2111.5 77 9 4 8 90 0 8 0 8 +11592 128 114 335.22 2111.5 77 7 4 8 90 0 6 0 6 +11593 128 115 341.26 2111.5 77 8 4 8 90 0 7 0 7 +11594 128 116 347.3 2111.5 77 10 4 8 90 0 9 0 9 +11595 128 117 353.34 2111.5 77 12 4 8 90 0 11 0 11 +11596 129 0 -359.38 2126.5 1 17 4 8 71 0 16 0 16 +11597 129 1 -353.34 2126.5 1 15 4 8 71 0 14 0 14 +11598 129 2 -347.3 2126.5 1 13 4 8 71 0 12 0 12 +11599 129 3 -341.26 2126.5 1 14 4 8 71 0 13 0 13 +11600 129 4 -335.22 2126.5 1 16 4 8 71 0 15 0 15 +11601 129 5 -329.18 2126.5 1 18 4 8 71 0 17 0 17 +11602 129 6 -323.14 2126.5 5 17 4 8 72 0 16 0 16 +11603 129 7 -317.1 2126.5 5 15 4 8 72 0 14 0 14 +11604 129 8 -311.06 2126.5 5 13 4 8 72 0 12 0 12 +11605 129 9 -305.02 2126.5 5 14 4 8 72 0 13 0 13 +11606 129 10 -298.98 2126.5 5 16 4 8 72 0 15 0 15 +11607 129 11 -292.94 2126.5 5 18 4 8 72 0 17 0 17 +11608 129 12 -286.9 2126.5 9 17 4 8 73 0 16 0 16 +11609 129 13 -280.86 2126.5 9 15 4 8 73 0 14 0 14 +11610 129 14 -274.82 2126.5 9 13 4 8 73 0 12 0 12 +11611 129 15 -268.78 2126.5 9 12 4 8 73 0 11 0 11 +11612 129 16 -262.74 2126.5 9 14 4 8 73 0 13 0 13 +11613 129 17 -256.7 2126.5 9 16 4 8 73 0 15 0 15 +11614 129 18 -250.66 2126.5 13 17 4 8 74 0 16 0 16 +11615 129 19 -244.62 2126.5 13 15 4 8 74 0 14 0 14 +11616 129 20 -238.58 2126.5 13 13 4 8 74 0 12 0 12 +11617 129 21 -232.54 2126.5 13 14 4 8 74 0 13 0 13 +11618 129 22 -226.5 2126.5 13 16 4 8 74 0 15 0 15 +11619 129 23 -220.46 2126.5 13 18 4 8 74 0 17 0 17 +11620 129 24 -214.42 2126.5 17 17 4 8 75 0 16 0 16 +11621 129 25 -208.38 2126.5 17 15 4 8 75 0 14 0 14 +11622 129 26 -202.34 2126.5 17 13 4 8 75 0 12 0 12 +11623 129 27 -196.3 2126.5 17 14 4 8 75 0 13 0 13 +11624 129 28 -190.26 2126.5 17 16 4 8 75 0 15 0 15 +11625 129 29 -184.22 2126.5 17 18 4 8 75 0 17 0 17 +11626 129 30 -178.18 2126.5 21 17 4 8 76 0 16 0 16 +11627 129 31 -172.14 2126.5 21 15 4 8 76 0 14 0 14 +11628 129 32 -166.1 2126.5 21 13 4 8 76 0 12 0 12 +11629 129 33 -160.06 2126.5 21 12 4 8 76 0 11 0 11 +11630 129 34 -154.02 2126.5 21 14 4 8 76 0 13 0 13 +11631 129 35 -147.98 2126.5 21 16 4 8 76 0 15 0 15 +11632 129 36 -141.94 2126.5 25 17 4 8 77 0 16 0 16 +11633 129 37 -135.9 2126.5 25 15 4 8 77 0 14 0 14 +11634 129 38 -129.86 2126.5 25 13 4 8 77 0 12 0 12 +11635 129 39 -123.82 2126.5 25 14 4 8 77 0 13 0 13 +11636 129 40 -117.78 2126.5 25 16 4 8 77 0 15 0 15 +11637 129 41 -111.74 2126.5 25 18 4 8 77 0 17 0 17 +11638 129 42 -105.7 2126.5 29 17 4 8 78 0 16 0 16 +11639 129 43 -99.66 2126.5 29 15 4 8 78 0 14 0 14 +11640 129 44 -93.62 2126.5 29 13 4 8 78 0 12 0 12 +11641 129 45 -87.58 2126.5 29 14 4 8 78 0 13 0 13 +11642 129 46 -81.54 2126.5 29 16 4 8 78 0 15 0 15 +11643 129 47 -75.5 2126.5 29 18 4 8 78 0 17 0 17 +11644 129 48 -69.46 2126.5 33 17 4 8 79 0 16 0 16 +11645 129 49 -63.42 2126.5 33 15 4 8 79 0 14 0 14 +11646 129 50 -57.38 2126.5 33 13 4 8 79 0 12 0 12 +11647 129 51 -51.34 2126.5 33 14 4 8 79 0 13 0 13 +11648 129 52 -45.3 2126.5 33 16 4 8 79 0 15 0 15 +11649 129 53 -39.26 2126.5 33 18 4 8 79 0 17 0 17 +11650 129 54 -33.22 2126.5 37 17 4 8 80 0 16 0 16 +11651 129 55 -27.18 2126.5 37 15 4 8 80 0 14 0 14 +11652 129 56 -21.14 2126.5 37 13 4 8 80 0 12 0 12 +11653 129 57 -15.1 2126.5 37 14 4 8 80 0 13 0 13 +11654 129 58 -9.06 2126.5 37 16 4 8 80 0 15 0 15 +11655 129 59 -3.02 2126.5 37 18 4 8 80 0 17 0 17 +11656 129 60 3.02 2126.5 41 17 4 8 81 0 16 0 16 +11657 129 61 9.06 2126.5 41 15 4 8 81 0 14 0 14 +11658 129 62 15.1 2126.5 41 13 4 8 81 0 12 0 12 +11659 129 63 21.14 2126.5 41 14 4 8 81 0 13 0 13 +11660 129 64 27.18 2126.5 41 16 4 8 81 0 15 0 15 +11661 129 65 33.22 2126.5 41 18 4 8 81 0 17 0 17 +11662 129 66 39.26 2126.5 45 17 4 8 82 0 16 0 16 +11663 129 67 45.3 2126.5 45 15 4 8 82 0 14 0 14 +11664 129 68 51.34 2126.5 45 13 4 8 82 0 12 0 12 +11665 129 69 57.38 2126.5 45 14 4 8 82 0 13 0 13 +11666 129 70 63.42 2126.5 45 16 4 8 82 0 15 0 15 +11667 129 71 69.46 2126.5 45 18 4 8 82 0 17 0 17 +11668 129 72 75.5 2126.5 49 17 4 8 83 0 16 0 16 +11669 129 73 81.54 2126.5 49 15 4 8 83 0 14 0 14 +11670 129 74 87.58 2126.5 49 13 4 8 83 0 12 0 12 +11671 129 75 93.62 2126.5 49 14 4 8 83 0 13 0 13 +11672 129 76 99.66 2126.5 49 16 4 8 83 0 15 0 15 +11673 129 77 105.7 2126.5 49 18 4 8 83 0 17 0 17 +11674 129 78 111.74 2126.5 53 17 4 8 84 0 16 0 16 +11675 129 79 117.78 2126.5 53 15 4 8 84 0 14 0 14 +11676 129 80 123.82 2126.5 53 13 4 8 84 0 12 0 12 +11677 129 81 129.86 2126.5 53 14 4 8 84 0 13 0 13 +11678 129 82 135.9 2126.5 53 16 4 8 84 0 15 0 15 +11679 129 83 141.94 2126.5 53 18 4 8 84 0 17 0 17 +11680 129 84 147.98 2126.5 57 15 4 8 85 0 14 0 14 +11681 129 85 154.02 2126.5 57 13 4 8 85 0 12 0 12 +11682 129 86 160.06 2126.5 57 11 4 8 85 0 10 0 10 +11683 129 87 166.1 2126.5 57 14 4 8 85 0 13 0 13 +11684 129 88 172.14 2126.5 57 16 4 8 85 0 15 0 15 +11685 129 89 178.18 2126.5 57 18 4 8 85 0 17 0 17 +11686 129 90 184.22 2126.5 61 17 4 8 86 0 16 0 16 +11687 129 91 190.26 2126.5 61 15 4 8 86 0 14 0 14 +11688 129 92 196.3 2126.5 61 13 4 8 86 0 12 0 12 +11689 129 93 202.34 2126.5 61 14 4 8 86 0 13 0 13 +11690 129 94 208.38 2126.5 61 16 4 8 86 0 15 0 15 +11691 129 95 214.42 2126.5 61 18 4 8 86 0 17 0 17 +11692 129 96 220.46 2126.5 65 17 4 8 87 0 16 0 16 +11693 129 97 226.5 2126.5 65 15 4 8 87 0 14 0 14 +11694 129 98 232.54 2126.5 65 13 4 8 87 0 12 0 12 +11695 129 99 238.58 2126.5 65 14 4 8 87 0 13 0 13 +11696 129 100 244.62 2126.5 65 16 4 8 87 0 15 0 15 +11697 129 101 250.66 2126.5 65 18 4 8 87 0 17 0 17 +11698 129 102 256.7 2126.5 69 15 4 8 88 0 14 0 14 +11699 129 103 262.74 2126.5 69 13 4 8 88 0 12 0 12 +11700 129 104 268.78 2126.5 69 11 4 8 88 0 10 0 10 +11701 129 105 274.82 2126.5 69 14 4 8 88 0 13 0 13 +11702 129 106 280.86 2126.5 69 16 4 8 88 0 15 0 15 +11703 129 107 286.9 2126.5 69 18 4 8 88 0 17 0 17 +11704 129 108 292.94 2126.5 73 17 4 8 89 0 16 0 16 +11705 129 109 298.98 2126.5 73 15 4 8 89 0 14 0 14 +11706 129 110 305.02 2126.5 73 13 4 8 89 0 12 0 12 +11707 129 111 311.06 2126.5 73 14 4 8 89 0 13 0 13 +11708 129 112 317.1 2126.5 73 16 4 8 89 0 15 0 15 +11709 129 113 323.14 2126.5 73 18 4 8 89 0 17 0 17 +11710 129 114 329.18 2126.5 77 17 4 8 90 0 16 0 16 +11711 129 115 335.22 2126.5 77 15 4 8 90 0 14 0 14 +11712 129 116 341.26 2126.5 77 13 4 8 90 0 12 0 12 +11713 129 117 347.3 2126.5 77 14 4 8 90 0 13 0 13 +11714 129 118 353.34 2126.5 77 16 4 8 90 0 15 0 15 +11715 129 119 359.38 2126.5 77 18 4 8 90 0 17 0 17 +11716 130 0 -359.38 2141.5 1 23 4 8 71 0 22 0 22 +11717 130 1 -353.34 2141.5 1 21 4 8 71 0 20 0 20 +11718 130 2 -347.3 2141.5 1 19 4 8 71 0 18 0 18 +11719 130 3 -341.26 2141.5 1 20 4 8 71 0 19 0 19 +11720 130 4 -335.22 2141.5 1 22 4 8 71 0 21 0 21 +11721 130 5 -329.18 2141.5 1 24 4 8 71 0 23 0 23 +11722 130 6 -323.14 2141.5 5 23 4 8 72 0 22 0 22 +11723 130 7 -317.1 2141.5 5 21 4 8 72 0 20 0 20 +11724 130 8 -311.06 2141.5 5 19 4 8 72 0 18 0 18 +11725 130 9 -305.02 2141.5 5 20 4 8 72 0 19 0 19 +11726 130 10 -298.98 2141.5 5 22 4 8 72 0 21 0 21 +11727 130 11 -292.94 2141.5 5 24 4 8 72 0 23 0 23 +11728 130 12 -286.9 2141.5 9 23 4 8 73 0 22 0 22 +11729 130 13 -280.86 2141.5 9 21 4 8 73 0 20 0 20 +11730 130 14 -274.82 2141.5 9 19 4 8 73 0 18 0 18 +11731 130 15 -268.78 2141.5 9 18 4 8 73 0 17 0 17 +11732 130 16 -262.74 2141.5 9 20 4 8 73 0 19 0 19 +11733 130 17 -256.7 2141.5 9 22 4 8 73 0 21 0 21 +11734 130 18 -250.66 2141.5 13 23 4 8 74 0 22 0 22 +11735 130 19 -244.62 2141.5 13 21 4 8 74 0 20 0 20 +11736 130 20 -238.58 2141.5 13 19 4 8 74 0 18 0 18 +11737 130 21 -232.54 2141.5 13 20 4 8 74 0 19 0 19 +11738 130 22 -226.5 2141.5 13 22 4 8 74 0 21 0 21 +11739 130 23 -220.46 2141.5 13 24 4 8 74 0 23 0 23 +11740 130 24 -214.42 2141.5 17 23 4 8 75 0 22 0 22 +11741 130 25 -208.38 2141.5 17 21 4 8 75 0 20 0 20 +11742 130 26 -202.34 2141.5 17 19 4 8 75 0 18 0 18 +11743 130 27 -196.3 2141.5 17 20 4 8 75 0 19 0 19 +11744 130 28 -190.26 2141.5 17 22 4 8 75 0 21 0 21 +11745 130 29 -184.22 2141.5 17 24 4 8 75 0 23 0 23 +11746 130 30 -178.18 2141.5 21 23 4 8 76 0 22 0 22 +11747 130 31 -172.14 2141.5 21 21 4 8 76 0 20 0 20 +11748 130 32 -166.1 2141.5 21 19 4 8 76 0 18 0 18 +11749 130 33 -160.06 2141.5 21 18 4 8 76 0 17 0 17 +11750 130 34 -154.02 2141.5 21 20 4 8 76 0 19 0 19 +11751 130 35 -147.98 2141.5 21 22 4 8 76 0 21 0 21 +11752 130 36 -141.94 2141.5 25 23 4 8 77 0 22 0 22 +11753 130 37 -135.9 2141.5 25 21 4 8 77 0 20 0 20 +11754 130 38 -129.86 2141.5 25 19 4 8 77 0 18 0 18 +11755 130 39 -123.82 2141.5 25 20 4 8 77 0 19 0 19 +11756 130 40 -117.78 2141.5 25 22 4 8 77 0 21 0 21 +11757 130 41 -111.74 2141.5 25 24 4 8 77 0 23 0 23 +11758 130 42 -105.7 2141.5 29 23 4 8 78 0 22 0 22 +11759 130 43 -99.66 2141.5 29 21 4 8 78 0 20 0 20 +11760 130 44 -93.62 2141.5 29 19 4 8 78 0 18 0 18 +11761 130 45 -87.58 2141.5 29 20 4 8 78 0 19 0 19 +11762 130 46 -81.54 2141.5 29 22 4 8 78 0 21 0 21 +11763 130 47 -75.5 2141.5 29 24 4 8 78 0 23 0 23 +11764 130 48 -69.46 2141.5 33 23 4 8 79 0 22 0 22 +11765 130 49 -63.42 2141.5 33 21 4 8 79 0 20 0 20 +11766 130 50 -57.38 2141.5 33 19 4 8 79 0 18 0 18 +11767 130 51 -51.34 2141.5 33 20 4 8 79 0 19 0 19 +11768 130 52 -45.3 2141.5 33 22 4 8 79 0 21 0 21 +11769 130 53 -39.26 2141.5 33 24 4 8 79 0 23 0 23 +11770 130 54 -33.22 2141.5 37 23 4 8 80 0 22 0 22 +11771 130 55 -27.18 2141.5 37 21 4 8 80 0 20 0 20 +11772 130 56 -21.14 2141.5 37 19 4 8 80 0 18 0 18 +11773 130 57 -15.1 2141.5 37 20 4 8 80 0 19 0 19 +11774 130 58 -9.06 2141.5 37 22 4 8 80 0 21 0 21 +11775 130 59 -3.02 2141.5 37 24 4 8 80 0 23 0 23 +11776 130 60 3.02 2141.5 41 23 4 8 81 0 22 0 22 +11777 130 61 9.06 2141.5 41 21 4 8 81 0 20 0 20 +11778 130 62 15.1 2141.5 41 19 4 8 81 0 18 0 18 +11779 130 63 21.14 2141.5 41 20 4 8 81 0 19 0 19 +11780 130 64 27.18 2141.5 41 22 4 8 81 0 21 0 21 +11781 130 65 33.22 2141.5 41 24 4 8 81 0 23 0 23 +11782 130 66 39.26 2141.5 45 23 4 8 82 0 22 0 22 +11783 130 67 45.3 2141.5 45 21 4 8 82 0 20 0 20 +11784 130 68 51.34 2141.5 45 19 4 8 82 0 18 0 18 +11785 130 69 57.38 2141.5 45 20 4 8 82 0 19 0 19 +11786 130 70 63.42 2141.5 45 22 4 8 82 0 21 0 21 +11787 130 71 69.46 2141.5 45 24 4 8 82 0 23 0 23 +11788 130 72 75.5 2141.5 49 23 4 8 83 0 22 0 22 +11789 130 73 81.54 2141.5 49 21 4 8 83 0 20 0 20 +11790 130 74 87.58 2141.5 49 19 4 8 83 0 18 0 18 +11791 130 75 93.62 2141.5 49 20 4 8 83 0 19 0 19 +11792 130 76 99.66 2141.5 49 22 4 8 83 0 21 0 21 +11793 130 77 105.7 2141.5 49 24 4 8 83 0 23 0 23 +11794 130 78 111.74 2141.5 53 23 4 8 84 0 22 0 22 +11795 130 79 117.78 2141.5 53 21 4 8 84 0 20 0 20 +11796 130 80 123.82 2141.5 53 19 4 8 84 0 18 0 18 +11797 130 81 129.86 2141.5 53 20 4 8 84 0 19 0 19 +11798 130 82 135.9 2141.5 53 22 4 8 84 0 21 0 21 +11799 130 83 141.94 2141.5 53 24 4 8 84 0 23 0 23 +11800 130 84 147.98 2141.5 57 21 4 8 85 0 20 0 20 +11801 130 85 154.02 2141.5 57 19 4 8 85 0 18 0 18 +11802 130 86 160.06 2141.5 57 17 4 8 85 0 16 0 16 +11803 130 87 166.1 2141.5 57 20 4 8 85 0 19 0 19 +11804 130 88 172.14 2141.5 57 22 4 8 85 0 21 0 21 +11805 130 89 178.18 2141.5 57 24 4 8 85 0 23 0 23 +11806 130 90 184.22 2141.5 61 23 4 8 86 0 22 0 22 +11807 130 91 190.26 2141.5 61 21 4 8 86 0 20 0 20 +11808 130 92 196.3 2141.5 61 19 4 8 86 0 18 0 18 +11809 130 93 202.34 2141.5 61 20 4 8 86 0 19 0 19 +11810 130 94 208.38 2141.5 61 22 4 8 86 0 21 0 21 +11811 130 95 214.42 2141.5 61 24 4 8 86 0 23 0 23 +11812 130 96 220.46 2141.5 65 23 4 8 87 0 22 0 22 +11813 130 97 226.5 2141.5 65 21 4 8 87 0 20 0 20 +11814 130 98 232.54 2141.5 65 19 4 8 87 0 18 0 18 +11815 130 99 238.58 2141.5 65 20 4 8 87 0 19 0 19 +11816 130 100 244.62 2141.5 65 22 4 8 87 0 21 0 21 +11817 130 101 250.66 2141.5 65 24 4 8 87 0 23 0 23 +11818 130 102 256.7 2141.5 69 21 4 8 88 0 20 0 20 +11819 130 103 262.74 2141.5 69 19 4 8 88 0 18 0 18 +11820 130 104 268.78 2141.5 69 17 4 8 88 0 16 0 16 +11821 130 105 274.82 2141.5 69 20 4 8 88 0 19 0 19 +11822 130 106 280.86 2141.5 69 22 4 8 88 0 21 0 21 +11823 130 107 286.9 2141.5 69 24 4 8 88 0 23 0 23 +11824 130 108 292.94 2141.5 73 23 4 8 89 0 22 0 22 +11825 130 109 298.98 2141.5 73 21 4 8 89 0 20 0 20 +11826 130 110 305.02 2141.5 73 19 4 8 89 0 18 0 18 +11827 130 111 311.06 2141.5 73 20 4 8 89 0 19 0 19 +11828 130 112 317.1 2141.5 73 22 4 8 89 0 21 0 21 +11829 130 113 323.14 2141.5 73 24 4 8 89 0 23 0 23 +11830 130 114 329.18 2141.5 77 23 4 8 90 0 22 0 22 +11831 130 115 335.22 2141.5 77 21 4 8 90 0 20 0 20 +11832 130 116 341.26 2141.5 77 19 4 8 90 0 18 0 18 +11833 130 117 347.3 2141.5 77 20 4 8 90 0 19 0 19 +11834 130 118 353.34 2141.5 77 22 4 8 90 0 21 0 21 +11835 130 119 359.38 2141.5 77 24 4 8 90 0 23 0 23 +11836 131 0 -365.42 2156.5 1 29 4 8 71 0 28 0 28 +11837 131 1 -359.38 2156.5 1 27 4 8 71 0 26 0 26 +11838 131 2 -353.34 2156.5 1 25 4 8 71 0 24 0 24 +11839 131 3 -347.3 2156.5 1 26 4 8 71 0 25 0 25 +11840 131 4 -341.26 2156.5 1 28 4 8 71 0 27 0 27 +11841 131 5 -335.22 2156.5 1 30 4 8 71 0 29 0 29 +11842 131 6 -329.18 2156.5 5 29 4 8 72 0 28 0 28 +11843 131 7 -323.14 2156.5 5 27 4 8 72 0 26 0 26 +11844 131 8 -317.1 2156.5 5 25 4 8 72 0 24 0 24 +11845 131 9 -311.06 2156.5 5 26 4 8 72 0 25 0 25 +11846 131 10 -305.02 2156.5 5 28 4 8 72 0 27 0 27 +11847 131 11 -298.98 2156.5 5 30 4 8 72 0 29 0 29 +11848 131 12 -292.94 2156.5 9 29 4 8 73 0 28 0 28 +11849 131 13 -286.9 2156.5 9 27 4 8 73 0 26 0 26 +11850 131 14 -280.86 2156.5 9 25 4 8 73 0 24 0 24 +11851 131 15 -274.82 2156.5 9 24 4 8 73 0 23 0 23 +11852 131 16 -268.78 2156.5 9 26 4 8 73 0 25 0 25 +11853 131 17 -262.74 2156.5 9 28 4 8 73 0 27 0 27 +11854 131 18 -256.7 2156.5 9 30 4 8 73 0 29 0 29 +11855 131 19 -250.66 2156.5 13 29 4 8 74 0 28 0 28 +11856 131 20 -244.62 2156.5 13 27 4 8 74 0 26 0 26 +11857 131 21 -238.58 2156.5 13 25 4 8 74 0 24 0 24 +11858 131 22 -232.54 2156.5 13 26 4 8 74 0 25 0 25 +11859 131 23 -226.5 2156.5 13 28 4 8 74 0 27 0 27 +11860 131 24 -220.46 2156.5 13 30 4 8 74 0 29 0 29 +11861 131 25 -214.42 2156.5 17 29 4 8 75 0 28 0 28 +11862 131 26 -208.38 2156.5 17 27 4 8 75 0 26 0 26 +11863 131 27 -202.34 2156.5 17 25 4 8 75 0 24 0 24 +11864 131 28 -196.3 2156.5 17 26 4 8 75 0 25 0 25 +11865 131 29 -190.26 2156.5 17 28 4 8 75 0 27 0 27 +11866 131 30 -184.22 2156.5 17 30 4 8 75 0 29 0 29 +11867 131 31 -178.18 2156.5 21 29 4 8 76 0 28 0 28 +11868 131 32 -172.14 2156.5 21 27 4 8 76 0 26 0 26 +11869 131 33 -166.1 2156.5 21 25 4 8 76 0 24 0 24 +11870 131 34 -160.06 2156.5 21 24 4 8 76 0 23 0 23 +11871 131 35 -154.02 2156.5 21 26 4 8 76 0 25 0 25 +11872 131 36 -147.98 2156.5 21 28 4 8 76 0 27 0 27 +11873 131 37 -141.94 2156.5 25 29 4 8 77 0 28 0 28 +11874 131 38 -135.9 2156.5 25 27 4 8 77 0 26 0 26 +11875 131 39 -129.86 2156.5 25 25 4 8 77 0 24 0 24 +11876 131 40 -123.82 2156.5 25 26 4 8 77 0 25 0 25 +11877 131 41 -117.78 2156.5 25 28 4 8 77 0 27 0 27 +11878 131 42 -111.74 2156.5 25 30 4 8 77 0 29 0 29 +11879 131 43 -105.7 2156.5 29 29 4 8 78 0 28 0 28 +11880 131 44 -99.66 2156.5 29 27 4 8 78 0 26 0 26 +11881 131 45 -93.62 2156.5 29 25 4 8 78 0 24 0 24 +11882 131 46 -87.58 2156.5 29 26 4 8 78 0 25 0 25 +11883 131 47 -81.54 2156.5 29 28 4 8 78 0 27 0 27 +11884 131 48 -75.5 2156.5 29 30 4 8 78 0 29 0 29 +11885 131 49 -69.46 2156.5 33 29 4 8 79 0 28 0 28 +11886 131 50 -63.42 2156.5 33 27 4 8 79 0 26 0 26 +11887 131 51 -57.38 2156.5 33 25 4 8 79 0 24 0 24 +11888 131 52 -51.34 2156.5 33 26 4 8 79 0 25 0 25 +11889 131 53 -45.3 2156.5 33 28 4 8 79 0 27 0 27 +11890 131 54 -39.26 2156.5 33 30 4 8 79 0 29 0 29 +11891 131 55 -33.22 2156.5 37 29 4 8 80 0 28 0 28 +11892 131 56 -27.18 2156.5 37 27 4 8 80 0 26 0 26 +11893 131 57 -21.14 2156.5 37 25 4 8 80 0 24 0 24 +11894 131 58 -15.1 2156.5 37 26 4 8 80 0 25 0 25 +11895 131 59 -9.06 2156.5 37 28 4 8 80 0 27 0 27 +11896 131 60 -3.02 2156.5 37 30 4 8 80 0 29 0 29 +11897 131 61 3.02 2156.5 41 29 4 8 81 0 28 0 28 +11898 131 62 9.06 2156.5 41 27 4 8 81 0 26 0 26 +11899 131 63 15.1 2156.5 41 25 4 8 81 0 24 0 24 +11900 131 64 21.14 2156.5 41 26 4 8 81 0 25 0 25 +11901 131 65 27.18 2156.5 41 28 4 8 81 0 27 0 27 +11902 131 66 33.22 2156.5 41 30 4 8 81 0 29 0 29 +11903 131 67 39.26 2156.5 45 29 4 8 82 0 28 0 28 +11904 131 68 45.3 2156.5 45 27 4 8 82 0 26 0 26 +11905 131 69 51.34 2156.5 45 25 4 8 82 0 24 0 24 +11906 131 70 57.38 2156.5 45 26 4 8 82 0 25 0 25 +11907 131 71 63.42 2156.5 45 28 4 8 82 0 27 0 27 +11908 131 72 69.46 2156.5 45 30 4 8 82 0 29 0 29 +11909 131 73 75.5 2156.5 49 29 4 8 83 0 28 0 28 +11910 131 74 81.54 2156.5 49 27 4 8 83 0 26 0 26 +11911 131 75 87.58 2156.5 49 25 4 8 83 0 24 0 24 +11912 131 76 93.62 2156.5 49 26 4 8 83 0 25 0 25 +11913 131 77 99.66 2156.5 49 28 4 8 83 0 27 0 27 +11914 131 78 105.7 2156.5 49 30 4 8 83 0 29 0 29 +11915 131 79 111.74 2156.5 53 29 4 8 84 0 28 0 28 +11916 131 80 117.78 2156.5 53 27 4 8 84 0 26 0 26 +11917 131 81 123.82 2156.5 53 25 4 8 84 0 24 0 24 +11918 131 82 129.86 2156.5 53 26 4 8 84 0 25 0 25 +11919 131 83 135.9 2156.5 53 28 4 8 84 0 27 0 27 +11920 131 84 141.94 2156.5 53 30 4 8 84 0 29 0 29 +11921 131 85 147.98 2156.5 57 27 4 8 85 0 26 0 26 +11922 131 86 154.02 2156.5 57 25 4 8 85 0 24 0 24 +11923 131 87 160.06 2156.5 57 23 4 8 85 0 22 0 22 +11924 131 88 166.1 2156.5 57 26 4 8 85 0 25 0 25 +11925 131 89 172.14 2156.5 57 28 4 8 85 0 27 0 27 +11926 131 90 178.18 2156.5 57 30 4 8 85 0 29 0 29 +11927 131 91 184.22 2156.5 61 29 4 8 86 0 28 0 28 +11928 131 92 190.26 2156.5 61 27 4 8 86 0 26 0 26 +11929 131 93 196.3 2156.5 61 25 4 8 86 0 24 0 24 +11930 131 94 202.34 2156.5 61 26 4 8 86 0 25 0 25 +11931 131 95 208.38 2156.5 61 28 4 8 86 0 27 0 27 +11932 131 96 214.42 2156.5 61 30 4 8 86 0 29 0 29 +11933 131 97 220.46 2156.5 65 29 4 8 87 0 28 0 28 +11934 131 98 226.5 2156.5 65 27 4 8 87 0 26 0 26 +11935 131 99 232.54 2156.5 65 25 4 8 87 0 24 0 24 +11936 131 100 238.58 2156.5 65 26 4 8 87 0 25 0 25 +11937 131 101 244.62 2156.5 65 28 4 8 87 0 27 0 27 +11938 131 102 250.66 2156.5 65 30 4 8 87 0 29 0 29 +11939 131 103 256.7 2156.5 69 29 4 8 88 0 28 0 28 +11940 131 104 262.74 2156.5 69 27 4 8 88 0 26 0 26 +11941 131 105 268.78 2156.5 69 25 4 8 88 0 24 0 24 +11942 131 106 274.82 2156.5 69 23 4 8 88 0 22 0 22 +11943 131 107 280.86 2156.5 69 26 4 8 88 0 25 0 25 +11944 131 108 286.9 2156.5 69 28 4 8 88 0 27 0 27 +11945 131 109 292.94 2156.5 69 30 4 8 88 0 29 0 29 +11946 131 110 298.98 2156.5 73 29 4 8 89 0 28 0 28 +11947 131 111 305.02 2156.5 73 27 4 8 89 0 26 0 26 +11948 131 112 311.06 2156.5 73 25 4 8 89 0 24 0 24 +11949 131 113 317.1 2156.5 73 26 4 8 89 0 25 0 25 +11950 131 114 323.14 2156.5 73 28 4 8 89 0 27 0 27 +11951 131 115 329.18 2156.5 73 30 4 8 89 0 29 0 29 +11952 131 116 335.22 2156.5 77 29 4 8 90 0 28 0 28 +11953 131 117 341.26 2156.5 77 27 4 8 90 0 26 0 26 +11954 131 118 347.3 2156.5 77 25 4 8 90 0 24 0 24 +11955 131 119 353.34 2156.5 77 26 4 8 90 0 25 0 25 +11956 131 120 359.38 2156.5 77 28 4 8 90 0 27 0 27 +11957 131 121 365.42 2156.5 77 30 4 8 90 0 29 0 29 +11958 132 0 -365.42 2171.5 1 35 4 8 71 0 34 1 2 +11959 132 1 -359.38 2171.5 1 33 4 8 71 0 32 1 0 +11960 132 2 -353.34 2171.5 1 31 4 8 71 0 30 0 30 +11961 132 3 -347.3 2171.5 1 32 4 8 71 0 31 0 31 +11962 132 4 -341.26 2171.5 1 34 4 8 71 0 33 1 1 +11963 132 5 -335.22 2171.5 1 36 4 8 71 0 35 1 3 +11964 132 6 -329.18 2171.5 5 35 4 8 72 0 34 1 2 +11965 132 7 -323.14 2171.5 5 33 4 8 72 0 32 1 0 +11966 132 8 -317.1 2171.5 5 31 4 8 72 0 30 0 30 +11967 132 9 -311.06 2171.5 5 32 4 8 72 0 31 0 31 +11968 132 10 -305.02 2171.5 5 34 4 8 72 0 33 1 1 +11969 132 11 -298.98 2171.5 5 36 4 8 72 0 35 1 3 +11970 132 12 -292.94 2171.5 9 35 4 8 73 0 34 1 2 +11971 132 13 -286.9 2171.5 9 33 4 8 73 0 32 1 0 +11972 132 14 -280.86 2171.5 9 31 4 8 73 0 30 0 30 +11973 132 15 -274.82 2171.5 9 32 4 8 73 0 31 0 31 +11974 132 16 -268.78 2171.5 9 34 4 8 73 0 33 1 1 +11975 132 17 -262.74 2171.5 9 36 4 8 73 0 35 1 3 +11976 132 18 -256.7 2171.5 13 35 4 8 74 0 34 1 2 +11977 132 19 -250.66 2171.5 13 33 4 8 74 0 32 1 0 +11978 132 20 -244.62 2171.5 13 31 4 8 74 0 30 0 30 +11979 132 21 -238.58 2171.5 13 32 4 8 74 0 31 0 31 +11980 132 22 -232.54 2171.5 13 34 4 8 74 0 33 1 1 +11981 132 23 -226.5 2171.5 13 36 4 8 74 0 35 1 3 +11982 132 24 -220.46 2171.5 17 35 4 8 75 0 34 1 2 +11983 132 25 -214.42 2171.5 17 33 4 8 75 0 32 1 0 +11984 132 26 -208.38 2171.5 17 31 4 8 75 0 30 0 30 +11985 132 27 -202.34 2171.5 17 32 4 8 75 0 31 0 31 +11986 132 28 -196.3 2171.5 17 34 4 8 75 0 33 1 1 +11987 132 29 -190.26 2171.5 17 36 4 8 75 0 35 1 3 +11988 132 30 -184.22 2171.5 21 35 4 8 76 0 34 1 2 +11989 132 31 -178.18 2171.5 21 33 4 8 76 0 32 1 0 +11990 132 32 -172.14 2171.5 21 31 4 8 76 0 30 0 30 +11991 132 33 -166.1 2171.5 21 30 4 8 76 0 29 0 29 +11992 132 34 -160.06 2171.5 21 32 4 8 76 0 31 0 31 +11993 132 35 -154.02 2171.5 21 34 4 8 76 0 33 1 1 +11994 132 36 -147.98 2171.5 21 36 4 8 76 0 35 1 3 +11995 132 37 -141.94 2171.5 25 35 4 8 77 0 34 1 2 +11996 132 38 -135.9 2171.5 25 33 4 8 77 0 32 1 0 +11997 132 39 -129.86 2171.5 25 31 4 8 77 0 30 0 30 +11998 132 40 -123.82 2171.5 25 32 4 8 77 0 31 0 31 +11999 132 41 -117.78 2171.5 25 34 4 8 77 0 33 1 1 +12000 132 42 -111.74 2171.5 25 36 4 8 77 0 35 1 3 +12001 132 43 -105.7 2171.5 29 35 4 8 78 0 34 1 2 +12002 132 44 -99.66 2171.5 29 33 4 8 78 0 32 1 0 +12003 132 45 -93.62 2171.5 29 31 4 8 78 0 30 0 30 +12004 132 46 -87.58 2171.5 29 32 4 8 78 0 31 0 31 +12005 132 47 -81.54 2171.5 29 34 4 8 78 0 33 1 1 +12006 132 48 -75.5 2171.5 29 36 4 8 78 0 35 1 3 +12007 132 49 -69.46 2171.5 33 35 4 8 79 0 34 1 2 +12008 132 50 -63.42 2171.5 33 33 4 8 79 0 32 1 0 +12009 132 51 -57.38 2171.5 33 31 4 8 79 0 30 0 30 +12010 132 52 -51.34 2171.5 33 32 4 8 79 0 31 0 31 +12011 132 53 -45.3 2171.5 33 34 4 8 79 0 33 1 1 +12012 132 54 -39.26 2171.5 33 36 4 8 79 0 35 1 3 +12013 132 55 -33.22 2171.5 37 35 4 8 80 0 34 1 2 +12014 132 56 -27.18 2171.5 37 33 4 8 80 0 32 1 0 +12015 132 57 -21.14 2171.5 37 31 4 8 80 0 30 0 30 +12016 132 58 -15.1 2171.5 37 32 4 8 80 0 31 0 31 +12017 132 59 -9.06 2171.5 37 34 4 8 80 0 33 1 1 +12018 132 60 -3.02 2171.5 37 36 4 8 80 0 35 1 3 +12019 132 61 3.02 2171.5 41 35 4 8 81 0 34 1 2 +12020 132 62 9.06 2171.5 41 33 4 8 81 0 32 1 0 +12021 132 63 15.1 2171.5 41 31 4 8 81 0 30 0 30 +12022 132 64 21.14 2171.5 41 32 4 8 81 0 31 0 31 +12023 132 65 27.18 2171.5 41 34 4 8 81 0 33 1 1 +12024 132 66 33.22 2171.5 41 36 4 8 81 0 35 1 3 +12025 132 67 39.26 2171.5 45 35 4 8 82 0 34 1 2 +12026 132 68 45.3 2171.5 45 33 4 8 82 0 32 1 0 +12027 132 69 51.34 2171.5 45 31 4 8 82 0 30 0 30 +12028 132 70 57.38 2171.5 45 32 4 8 82 0 31 0 31 +12029 132 71 63.42 2171.5 45 34 4 8 82 0 33 1 1 +12030 132 72 69.46 2171.5 45 36 4 8 82 0 35 1 3 +12031 132 73 75.5 2171.5 49 35 4 8 83 0 34 1 2 +12032 132 74 81.54 2171.5 49 33 4 8 83 0 32 1 0 +12033 132 75 87.58 2171.5 49 31 4 8 83 0 30 0 30 +12034 132 76 93.62 2171.5 49 32 4 8 83 0 31 0 31 +12035 132 77 99.66 2171.5 49 34 4 8 83 0 33 1 1 +12036 132 78 105.7 2171.5 49 36 4 8 83 0 35 1 3 +12037 132 79 111.74 2171.5 53 35 4 8 84 0 34 1 2 +12038 132 80 117.78 2171.5 53 33 4 8 84 0 32 1 0 +12039 132 81 123.82 2171.5 53 31 4 8 84 0 30 0 30 +12040 132 82 129.86 2171.5 53 32 4 8 84 0 31 0 31 +12041 132 83 135.9 2171.5 53 34 4 8 84 0 33 1 1 +12042 132 84 141.94 2171.5 53 36 4 8 84 0 35 1 3 +12043 132 85 147.98 2171.5 57 35 4 8 85 0 34 1 2 +12044 132 86 154.02 2171.5 57 33 4 8 85 0 32 1 0 +12045 132 87 160.06 2171.5 57 31 4 8 85 0 30 0 30 +12046 132 88 166.1 2171.5 57 29 4 8 85 0 28 0 28 +12047 132 89 172.14 2171.5 57 32 4 8 85 0 31 0 31 +12048 132 90 178.18 2171.5 57 34 4 8 85 0 33 1 1 +12049 132 91 184.22 2171.5 57 36 4 8 85 0 35 1 3 +12050 132 92 190.26 2171.5 61 35 4 8 86 0 34 1 2 +12051 132 93 196.3 2171.5 61 33 4 8 86 0 32 1 0 +12052 132 94 202.34 2171.5 61 31 4 8 86 0 30 0 30 +12053 132 95 208.38 2171.5 61 32 4 8 86 0 31 0 31 +12054 132 96 214.42 2171.5 61 34 4 8 86 0 33 1 1 +12055 132 97 220.46 2171.5 61 36 4 8 86 0 35 1 3 +12056 132 98 226.5 2171.5 65 35 4 8 87 0 34 1 2 +12057 132 99 232.54 2171.5 65 33 4 8 87 0 32 1 0 +12058 132 100 238.58 2171.5 65 31 4 8 87 0 30 0 30 +12059 132 101 244.62 2171.5 65 32 4 8 87 0 31 0 31 +12060 132 102 250.66 2171.5 65 34 4 8 87 0 33 1 1 +12061 132 103 256.7 2171.5 65 36 4 8 87 0 35 1 3 +12062 132 104 262.74 2171.5 69 35 4 8 88 0 34 1 2 +12063 132 105 268.78 2171.5 69 33 4 8 88 0 32 1 0 +12064 132 106 274.82 2171.5 69 31 4 8 88 0 30 0 30 +12065 132 107 280.86 2171.5 69 32 4 8 88 0 31 0 31 +12066 132 108 286.9 2171.5 69 34 4 8 88 0 33 1 1 +12067 132 109 292.94 2171.5 69 36 4 8 88 0 35 1 3 +12068 132 110 298.98 2171.5 73 35 4 8 89 0 34 1 2 +12069 132 111 305.02 2171.5 73 33 4 8 89 0 32 1 0 +12070 132 112 311.06 2171.5 73 31 4 8 89 0 30 0 30 +12071 132 113 317.1 2171.5 73 32 4 8 89 0 31 0 31 +12072 132 114 323.14 2171.5 73 34 4 8 89 0 33 1 1 +12073 132 115 329.18 2171.5 73 36 4 8 89 0 35 1 3 +12074 132 116 335.22 2171.5 77 35 4 8 90 0 34 1 2 +12075 132 117 341.26 2171.5 77 33 4 8 90 0 32 1 0 +12076 132 118 347.3 2171.5 77 31 4 8 90 0 30 0 30 +12077 132 119 353.34 2171.5 77 32 4 8 90 0 31 0 31 +12078 132 120 359.38 2171.5 77 34 4 8 90 0 33 1 1 +12079 132 121 365.42 2171.5 77 36 4 8 90 0 35 1 3 +12080 133 0 -371.46 2186.5 1 39 4 8 71 0 38 1 6 +12081 133 1 -365.42 2186.5 1 37 4 8 71 0 36 1 4 +12082 133 2 -359.38 2186.5 1 38 4 8 71 0 37 1 5 +12083 133 3 -353.34 2186.5 1 40 4 8 71 0 39 1 7 +12084 133 4 -347.3 2186.5 2 2 4 8 71 1 41 1 9 +12085 133 5 -341.26 2186.5 2 4 4 8 71 1 43 1 11 +12086 133 6 -335.22 2186.5 2 6 4 8 71 1 45 1 13 +12087 133 7 -329.18 2186.5 6 3 4 8 72 1 42 1 10 +12088 133 8 -323.14 2186.5 6 1 4 8 72 1 40 1 8 +12089 133 9 -317.1 2186.5 5 39 4 8 72 0 38 1 6 +12090 133 10 -311.06 2186.5 5 37 4 8 72 0 36 1 4 +12091 133 11 -305.02 2186.5 5 38 4 8 72 0 37 1 5 +12092 133 12 -298.98 2186.5 5 40 4 8 72 0 39 1 7 +12093 133 13 -292.94 2186.5 9 39 4 8 73 0 38 1 6 +12094 133 14 -286.9 2186.5 9 37 4 8 73 0 36 1 4 +12095 133 15 -280.86 2186.5 9 38 4 8 73 0 37 1 5 +12096 133 16 -274.82 2186.5 9 40 4 8 73 0 39 1 7 +12097 133 17 -268.78 2186.5 10 2 4 8 73 1 41 1 9 +12098 133 18 -262.74 2186.5 10 4 4 8 73 1 43 1 11 +12099 133 19 -256.7 2186.5 13 39 4 8 74 0 38 1 6 +12100 133 20 -250.66 2186.5 13 37 4 8 74 0 36 1 4 +12101 133 21 -244.62 2186.5 13 38 4 8 74 0 37 1 5 +12102 133 22 -238.58 2186.5 13 40 4 8 74 0 39 1 7 +12103 133 23 -232.54 2186.5 14 2 4 8 74 1 41 1 9 +12104 133 24 -226.5 2186.5 14 4 4 8 74 1 43 1 11 +12105 133 25 -220.46 2186.5 17 39 4 8 75 0 38 1 6 +12106 133 26 -214.42 2186.5 17 37 4 8 75 0 36 1 4 +12107 133 27 -208.38 2186.5 17 38 4 8 75 0 37 1 5 +12108 133 28 -202.34 2186.5 17 40 4 8 75 0 39 1 7 +12109 133 29 -196.3 2186.5 18 2 4 8 75 1 41 1 9 +12110 133 30 -190.26 2186.5 18 4 4 8 75 1 43 1 11 +12111 133 31 -184.22 2186.5 21 39 4 8 76 0 38 1 6 +12112 133 32 -178.18 2186.5 21 37 4 8 76 0 36 1 4 +12113 133 33 -172.14 2186.5 21 38 4 8 76 0 37 1 5 +12114 133 34 -166.1 2186.5 21 40 4 8 76 0 39 1 7 +12115 133 35 -160.06 2186.5 22 2 4 8 76 1 41 1 9 +12116 133 36 -154.02 2186.5 22 4 4 8 76 1 43 1 11 +12117 133 37 -147.98 2186.5 26 5 4 8 77 1 44 1 12 +12118 133 38 -141.94 2186.5 26 3 4 8 77 1 42 1 10 +12119 133 39 -135.9 2186.5 26 1 4 8 77 1 40 1 8 +12120 133 40 -129.86 2186.5 25 39 4 8 77 0 38 1 6 +12121 133 41 -123.82 2186.5 25 37 4 8 77 0 36 1 4 +12122 133 42 -117.78 2186.5 25 38 4 8 77 0 37 1 5 +12123 133 43 -111.74 2186.5 25 40 4 8 77 0 39 1 7 +12124 133 44 -105.7 2186.5 29 39 4 8 78 0 38 1 6 +12125 133 45 -99.66 2186.5 29 37 4 8 78 0 36 1 4 +12126 133 46 -93.62 2186.5 29 38 4 8 78 0 37 1 5 +12127 133 47 -87.58 2186.5 29 40 4 8 78 0 39 1 7 +12128 133 48 -81.54 2186.5 30 2 4 8 78 1 41 1 9 +12129 133 49 -75.5 2186.5 30 4 4 8 78 1 43 1 11 +12130 133 50 -69.46 2186.5 33 39 4 8 79 0 38 1 6 +12131 133 51 -63.42 2186.5 33 37 4 8 79 0 36 1 4 +12132 133 52 -57.38 2186.5 33 38 4 8 79 0 37 1 5 +12133 133 53 -51.34 2186.5 33 40 4 8 79 0 39 1 7 +12134 133 54 -45.3 2186.5 34 2 4 8 79 1 41 1 9 +12135 133 55 -39.26 2186.5 34 4 4 8 79 1 43 1 11 +12136 133 56 -33.22 2186.5 37 39 4 8 80 0 38 1 6 +12137 133 57 -27.18 2186.5 37 37 4 8 80 0 36 1 4 +12138 133 58 -21.14 2186.5 37 38 4 8 80 0 37 1 5 +12139 133 59 -15.1 2186.5 37 40 4 8 80 0 39 1 7 +12140 133 60 -9.06 2186.5 38 2 4 8 80 1 41 1 9 +12141 133 61 -3.02 2186.5 38 4 4 8 80 1 43 1 11 +12142 133 62 3.02 2186.5 42 3 4 8 81 1 42 1 10 +12143 133 63 9.06 2186.5 42 1 4 8 81 1 40 1 8 +12144 133 64 15.1 2186.5 41 39 4 8 81 0 38 1 6 +12145 133 65 21.14 2186.5 41 37 4 8 81 0 36 1 4 +12146 133 66 27.18 2186.5 41 38 4 8 81 0 37 1 5 +12147 133 67 33.22 2186.5 41 40 4 8 81 0 39 1 7 +12148 133 68 39.26 2186.5 46 3 4 8 82 1 42 1 10 +12149 133 69 45.3 2186.5 46 1 4 8 82 1 40 1 8 +12150 133 70 51.34 2186.5 45 39 4 8 82 0 38 1 6 +12151 133 71 57.38 2186.5 45 37 4 8 82 0 36 1 4 +12152 133 72 63.42 2186.5 45 38 4 8 82 0 37 1 5 +12153 133 73 69.46 2186.5 45 40 4 8 82 0 39 1 7 +12154 133 74 75.5 2186.5 50 3 4 8 83 1 42 1 10 +12155 133 75 81.54 2186.5 50 1 4 8 83 1 40 1 8 +12156 133 76 87.58 2186.5 49 39 4 8 83 0 38 1 6 +12157 133 77 93.62 2186.5 49 37 4 8 83 0 36 1 4 +12158 133 78 99.66 2186.5 49 38 4 8 83 0 37 1 5 +12159 133 79 105.7 2186.5 49 40 4 8 83 0 39 1 7 +12160 133 80 111.74 2186.5 53 39 4 8 84 0 38 1 6 +12161 133 81 117.78 2186.5 53 37 4 8 84 0 36 1 4 +12162 133 82 123.82 2186.5 53 38 4 8 84 0 37 1 5 +12163 133 83 129.86 2186.5 53 40 4 8 84 0 39 1 7 +12164 133 84 135.9 2186.5 54 2 4 8 84 1 41 1 9 +12165 133 85 141.94 2186.5 54 4 4 8 84 1 43 1 11 +12166 133 86 147.98 2186.5 54 6 4 8 84 1 45 1 13 +12167 133 87 154.02 2186.5 58 3 4 8 85 1 42 1 10 +12168 133 88 160.06 2186.5 58 1 4 8 85 1 40 1 8 +12169 133 89 166.1 2186.5 57 39 4 8 85 0 38 1 6 +12170 133 90 172.14 2186.5 57 37 4 8 85 0 36 1 4 +12171 133 91 178.18 2186.5 57 38 4 8 85 0 37 1 5 +12172 133 92 184.22 2186.5 57 40 4 8 85 0 39 1 7 +12173 133 93 190.26 2186.5 62 3 4 8 86 1 42 1 10 +12174 133 94 196.3 2186.5 62 1 4 8 86 1 40 1 8 +12175 133 95 202.34 2186.5 61 39 4 8 86 0 38 1 6 +12176 133 96 208.38 2186.5 61 37 4 8 86 0 36 1 4 +12177 133 97 214.42 2186.5 61 38 4 8 86 0 37 1 5 +12178 133 98 220.46 2186.5 61 40 4 8 86 0 39 1 7 +12179 133 99 226.5 2186.5 66 3 4 8 87 1 42 1 10 +12180 133 100 232.54 2186.5 66 1 4 8 87 1 40 1 8 +12181 133 101 238.58 2186.5 65 39 4 8 87 0 38 1 6 +12182 133 102 244.62 2186.5 65 37 4 8 87 0 36 1 4 +12183 133 103 250.66 2186.5 65 38 4 8 87 0 37 1 5 +12184 133 104 256.7 2186.5 65 40 4 8 87 0 39 1 7 +12185 133 105 262.74 2186.5 70 3 4 8 88 1 42 1 10 +12186 133 106 268.78 2186.5 70 1 4 8 88 1 40 1 8 +12187 133 107 274.82 2186.5 69 39 4 8 88 0 38 1 6 +12188 133 108 280.86 2186.5 69 37 4 8 88 0 36 1 4 +12189 133 109 286.9 2186.5 69 38 4 8 88 0 37 1 5 +12190 133 110 292.94 2186.5 69 40 4 8 88 0 39 1 7 +12191 133 111 298.98 2186.5 73 39 4 8 89 0 38 1 6 +12192 133 112 305.02 2186.5 73 37 4 8 89 0 36 1 4 +12193 133 113 311.06 2186.5 73 38 4 8 89 0 37 1 5 +12194 133 114 317.1 2186.5 73 40 4 8 89 0 39 1 7 +12195 133 115 323.14 2186.5 74 2 4 8 89 1 41 1 9 +12196 133 116 329.18 2186.5 74 4 4 8 89 1 43 1 11 +12197 133 117 335.22 2186.5 78 5 4 8 90 1 44 1 12 +12198 133 118 341.26 2186.5 78 3 4 8 90 1 42 1 10 +12199 133 119 347.3 2186.5 78 1 4 8 90 1 40 1 8 +12200 133 120 353.34 2186.5 77 39 4 8 90 0 38 1 6 +12201 133 121 359.38 2186.5 77 37 4 8 90 0 36 1 4 +12202 133 122 365.42 2186.5 77 38 4 8 90 0 37 1 5 +12203 133 123 371.46 2186.5 77 40 4 8 90 0 39 1 7 +12204 134 0 -371.46 2201.5 2 7 4 8 71 1 46 1 14 +12205 134 1 -365.42 2201.5 2 5 4 8 71 1 44 1 12 +12206 134 2 -359.38 2201.5 2 3 4 8 71 1 42 1 10 +12207 134 3 -353.34 2201.5 2 1 4 8 71 1 40 1 8 +12208 134 4 -347.3 2201.5 2 8 4 8 71 1 47 1 15 +12209 134 5 -341.26 2201.5 2 10 4 8 71 1 49 1 17 +12210 134 6 -335.22 2201.5 6 9 4 8 72 1 48 1 16 +12211 134 7 -329.18 2201.5 6 7 4 8 72 1 46 1 14 +12212 134 8 -323.14 2201.5 6 5 4 8 72 1 44 1 12 +12213 134 9 -317.1 2201.5 6 2 4 8 72 1 41 1 9 +12214 134 10 -311.06 2201.5 6 4 4 8 72 1 43 1 11 +12215 134 11 -305.02 2201.5 6 6 4 8 72 1 45 1 13 +12216 134 12 -298.98 2201.5 10 7 4 8 73 1 46 1 14 +12217 134 13 -292.94 2201.5 10 5 4 8 73 1 44 1 12 +12218 134 14 -286.9 2201.5 10 3 4 8 73 1 42 1 10 +12219 134 15 -280.86 2201.5 10 1 4 8 73 1 40 1 8 +12220 134 16 -274.82 2201.5 10 6 4 8 73 1 45 1 13 +12221 134 17 -268.78 2201.5 10 8 4 8 73 1 47 1 15 +12222 134 18 -262.74 2201.5 10 10 4 8 73 1 49 1 17 +12223 134 19 -256.7 2201.5 14 7 4 8 74 1 46 1 14 +12224 134 20 -250.66 2201.5 14 5 4 8 74 1 44 1 12 +12225 134 21 -244.62 2201.5 14 3 4 8 74 1 42 1 10 +12226 134 22 -238.58 2201.5 14 1 4 8 74 1 40 1 8 +12227 134 23 -232.54 2201.5 14 6 4 8 74 1 45 1 13 +12228 134 24 -226.5 2201.5 14 8 4 8 74 1 47 1 15 +12229 134 25 -220.46 2201.5 18 7 4 8 75 1 46 1 14 +12230 134 26 -214.42 2201.5 18 5 4 8 75 1 44 1 12 +12231 134 27 -208.38 2201.5 18 3 4 8 75 1 42 1 10 +12232 134 28 -202.34 2201.5 18 1 4 8 75 1 40 1 8 +12233 134 29 -196.3 2201.5 18 6 4 8 75 1 45 1 13 +12234 134 30 -190.26 2201.5 18 8 4 8 75 1 47 1 15 +12235 134 31 -184.22 2201.5 22 7 4 8 76 1 46 1 14 +12236 134 32 -178.18 2201.5 22 5 4 8 76 1 44 1 12 +12237 134 33 -172.14 2201.5 22 3 4 8 76 1 42 1 10 +12238 134 34 -166.1 2201.5 22 1 4 8 76 1 40 1 8 +12239 134 35 -160.06 2201.5 22 6 4 8 76 1 45 1 13 +12240 134 36 -154.02 2201.5 22 8 4 8 76 1 47 1 15 +12241 134 37 -147.98 2201.5 26 9 4 8 77 1 48 1 16 +12242 134 38 -141.94 2201.5 26 7 4 8 77 1 46 1 14 +12243 134 39 -135.9 2201.5 26 2 4 8 77 1 41 1 9 +12244 134 40 -129.86 2201.5 26 4 4 8 77 1 43 1 11 +12245 134 41 -123.82 2201.5 26 6 4 8 77 1 45 1 13 +12246 134 42 -117.78 2201.5 26 8 4 8 77 1 47 1 15 +12247 134 43 -111.74 2201.5 30 7 4 8 78 1 46 1 14 +12248 134 44 -105.7 2201.5 30 5 4 8 78 1 44 1 12 +12249 134 45 -99.66 2201.5 30 3 4 8 78 1 42 1 10 +12250 134 46 -93.62 2201.5 30 1 4 8 78 1 40 1 8 +12251 134 47 -87.58 2201.5 30 6 4 8 78 1 45 1 13 +12252 134 48 -81.54 2201.5 30 8 4 8 78 1 47 1 15 +12253 134 49 -75.5 2201.5 30 10 4 8 78 1 49 1 17 +12254 134 50 -69.46 2201.5 34 5 4 8 79 1 44 1 12 +12255 134 51 -63.42 2201.5 34 3 4 8 79 1 42 1 10 +12256 134 52 -57.38 2201.5 34 1 4 8 79 1 40 1 8 +12257 134 53 -51.34 2201.5 34 6 4 8 79 1 45 1 13 +12258 134 54 -45.3 2201.5 34 8 4 8 79 1 47 1 15 +12259 134 55 -39.26 2201.5 34 10 4 8 79 1 49 1 17 +12260 134 56 -33.22 2201.5 38 5 4 8 80 1 44 1 12 +12261 134 57 -27.18 2201.5 38 3 4 8 80 1 42 1 10 +12262 134 58 -21.14 2201.5 38 1 4 8 80 1 40 1 8 +12263 134 59 -15.1 2201.5 38 6 4 8 80 1 45 1 13 +12264 134 60 -9.06 2201.5 38 8 4 8 80 1 47 1 15 +12265 134 61 -3.02 2201.5 38 10 4 8 80 1 49 1 17 +12266 134 62 3.02 2201.5 42 9 4 8 81 1 48 1 16 +12267 134 63 9.06 2201.5 42 7 4 8 81 1 46 1 14 +12268 134 64 15.1 2201.5 42 5 4 8 81 1 44 1 12 +12269 134 65 21.14 2201.5 42 2 4 8 81 1 41 1 9 +12270 134 66 27.18 2201.5 42 4 4 8 81 1 43 1 11 +12271 134 67 33.22 2201.5 42 6 4 8 81 1 45 1 13 +12272 134 68 39.26 2201.5 46 9 4 8 82 1 48 1 16 +12273 134 69 45.3 2201.5 46 7 4 8 82 1 46 1 14 +12274 134 70 51.34 2201.5 46 5 4 8 82 1 44 1 12 +12275 134 71 57.38 2201.5 46 2 4 8 82 1 41 1 9 +12276 134 72 63.42 2201.5 46 4 4 8 82 1 43 1 11 +12277 134 73 69.46 2201.5 46 6 4 8 82 1 45 1 13 +12278 134 74 75.5 2201.5 50 9 4 8 83 1 48 1 16 +12279 134 75 81.54 2201.5 50 7 4 8 83 1 46 1 14 +12280 134 76 87.58 2201.5 50 5 4 8 83 1 44 1 12 +12281 134 77 93.62 2201.5 50 2 4 8 83 1 41 1 9 +12282 134 78 99.66 2201.5 50 4 4 8 83 1 43 1 11 +12283 134 79 105.7 2201.5 50 6 4 8 83 1 45 1 13 +12284 134 80 111.74 2201.5 50 8 4 8 83 1 47 1 15 +12285 134 81 117.78 2201.5 54 7 4 8 84 1 46 1 14 +12286 134 82 123.82 2201.5 54 5 4 8 84 1 44 1 12 +12287 134 83 129.86 2201.5 54 3 4 8 84 1 42 1 10 +12288 134 84 135.9 2201.5 54 1 4 8 84 1 40 1 8 +12289 134 85 141.94 2201.5 54 8 4 8 84 1 47 1 15 +12290 134 86 147.98 2201.5 54 10 4 8 84 1 49 1 17 +12291 134 87 154.02 2201.5 58 7 4 8 85 1 46 1 14 +12292 134 88 160.06 2201.5 58 5 4 8 85 1 44 1 12 +12293 134 89 166.1 2201.5 58 2 4 8 85 1 41 1 9 +12294 134 90 172.14 2201.5 58 4 4 8 85 1 43 1 11 +12295 134 91 178.18 2201.5 58 6 4 8 85 1 45 1 13 +12296 134 92 184.22 2201.5 58 8 4 8 85 1 47 1 15 +12297 134 93 190.26 2201.5 62 7 4 8 86 1 46 1 14 +12298 134 94 196.3 2201.5 62 5 4 8 86 1 44 1 12 +12299 134 95 202.34 2201.5 62 2 4 8 86 1 41 1 9 +12300 134 96 208.38 2201.5 62 4 4 8 86 1 43 1 11 +12301 134 97 214.42 2201.5 62 6 4 8 86 1 45 1 13 +12302 134 98 220.46 2201.5 62 8 4 8 86 1 47 1 15 +12303 134 99 226.5 2201.5 66 7 4 8 87 1 46 1 14 +12304 134 100 232.54 2201.5 66 5 4 8 87 1 44 1 12 +12305 134 101 238.58 2201.5 66 2 4 8 87 1 41 1 9 +12306 134 102 244.62 2201.5 66 4 4 8 87 1 43 1 11 +12307 134 103 250.66 2201.5 66 6 4 8 87 1 45 1 13 +12308 134 104 256.7 2201.5 66 8 4 8 87 1 47 1 15 +12309 134 105 262.74 2201.5 70 9 4 8 88 1 48 1 16 +12310 134 106 268.78 2201.5 70 7 4 8 88 1 46 1 14 +12311 134 107 274.82 2201.5 70 5 4 8 88 1 44 1 12 +12312 134 108 280.86 2201.5 70 2 4 8 88 1 41 1 9 +12313 134 109 286.9 2201.5 70 4 4 8 88 1 43 1 11 +12314 134 110 292.94 2201.5 70 6 4 8 88 1 45 1 13 +12315 134 111 298.98 2201.5 70 8 4 8 88 1 47 1 15 +12316 134 112 305.02 2201.5 74 5 4 8 89 1 44 1 12 +12317 134 113 311.06 2201.5 74 3 4 8 89 1 42 1 10 +12318 134 114 317.1 2201.5 74 1 4 8 89 1 40 1 8 +12319 134 115 323.14 2201.5 74 6 4 8 89 1 45 1 13 +12320 134 116 329.18 2201.5 74 8 4 8 89 1 47 1 15 +12321 134 117 335.22 2201.5 74 10 4 8 89 1 49 1 17 +12322 134 118 341.26 2201.5 78 9 4 8 90 1 48 1 16 +12323 134 119 347.3 2201.5 78 7 4 8 90 1 46 1 14 +12324 134 120 353.34 2201.5 78 2 4 8 90 1 41 1 9 +12325 134 121 359.38 2201.5 78 4 4 8 90 1 43 1 11 +12326 134 122 365.42 2201.5 78 6 4 8 90 1 45 1 13 +12327 134 123 371.46 2201.5 78 8 4 8 90 1 47 1 15 +12328 135 0 -371.46 2216.5 2 13 4 8 71 1 52 1 20 +12329 135 1 -365.42 2216.5 2 11 4 8 71 1 50 1 18 +12330 135 2 -359.38 2216.5 2 9 4 8 71 1 48 1 16 +12331 135 3 -353.34 2216.5 2 12 4 8 71 1 51 1 19 +12332 135 4 -347.3 2216.5 2 14 4 8 71 1 53 1 21 +12333 135 5 -341.26 2216.5 2 16 4 8 71 1 55 1 23 +12334 135 6 -335.22 2216.5 6 15 4 8 72 1 54 1 22 +12335 135 7 -329.18 2216.5 6 13 4 8 72 1 52 1 20 +12336 135 8 -323.14 2216.5 6 11 4 8 72 1 50 1 18 +12337 135 9 -317.1 2216.5 6 8 4 8 72 1 47 1 15 +12338 135 10 -311.06 2216.5 6 10 4 8 72 1 49 1 17 +12339 135 11 -305.02 2216.5 6 12 4 8 72 1 51 1 19 +12340 135 12 -298.98 2216.5 10 13 4 8 73 1 52 1 20 +12341 135 13 -292.94 2216.5 10 11 4 8 73 1 50 1 18 +12342 135 14 -286.9 2216.5 10 9 4 8 73 1 48 1 16 +12343 135 15 -280.86 2216.5 10 12 4 8 73 1 51 1 19 +12344 135 16 -274.82 2216.5 10 14 4 8 73 1 53 1 21 +12345 135 17 -268.78 2216.5 10 16 4 8 73 1 55 1 23 +12346 135 18 -262.74 2216.5 14 15 4 8 74 1 54 1 22 +12347 135 19 -256.7 2216.5 14 13 4 8 74 1 52 1 20 +12348 135 20 -250.66 2216.5 14 11 4 8 74 1 50 1 18 +12349 135 21 -244.62 2216.5 14 9 4 8 74 1 48 1 16 +12350 135 22 -238.58 2216.5 14 10 4 8 74 1 49 1 17 +12351 135 23 -232.54 2216.5 14 12 4 8 74 1 51 1 19 +12352 135 24 -226.5 2216.5 14 14 4 8 74 1 53 1 21 +12353 135 25 -220.46 2216.5 18 13 4 8 75 1 52 1 20 +12354 135 26 -214.42 2216.5 18 11 4 8 75 1 50 1 18 +12355 135 27 -208.38 2216.5 18 9 4 8 75 1 48 1 16 +12356 135 28 -202.34 2216.5 18 10 4 8 75 1 49 1 17 +12357 135 29 -196.3 2216.5 18 12 4 8 75 1 51 1 19 +12358 135 30 -190.26 2216.5 18 14 4 8 75 1 53 1 21 +12359 135 31 -184.22 2216.5 22 13 4 8 76 1 52 1 20 +12360 135 32 -178.18 2216.5 22 11 4 8 76 1 50 1 18 +12361 135 33 -172.14 2216.5 22 9 4 8 76 1 48 1 16 +12362 135 34 -166.1 2216.5 22 10 4 8 76 1 49 1 17 +12363 135 35 -160.06 2216.5 22 12 4 8 76 1 51 1 19 +12364 135 36 -154.02 2216.5 22 14 4 8 76 1 53 1 21 +12365 135 37 -147.98 2216.5 26 15 4 8 77 1 54 1 22 +12366 135 38 -141.94 2216.5 26 13 4 8 77 1 52 1 20 +12367 135 39 -135.9 2216.5 26 11 4 8 77 1 50 1 18 +12368 135 40 -129.86 2216.5 26 10 4 8 77 1 49 1 17 +12369 135 41 -123.82 2216.5 26 12 4 8 77 1 51 1 19 +12370 135 42 -117.78 2216.5 26 14 4 8 77 1 53 1 21 +12371 135 43 -111.74 2216.5 30 15 4 8 78 1 54 1 22 +12372 135 44 -105.7 2216.5 30 13 4 8 78 1 52 1 20 +12373 135 45 -99.66 2216.5 30 11 4 8 78 1 50 1 18 +12374 135 46 -93.62 2216.5 30 9 4 8 78 1 48 1 16 +12375 135 47 -87.58 2216.5 30 12 4 8 78 1 51 1 19 +12376 135 48 -81.54 2216.5 30 14 4 8 78 1 53 1 21 +12377 135 49 -75.5 2216.5 30 16 4 8 78 1 55 1 23 +12378 135 50 -69.46 2216.5 34 11 4 8 79 1 50 1 18 +12379 135 51 -63.42 2216.5 34 9 4 8 79 1 48 1 16 +12380 135 52 -57.38 2216.5 34 7 4 8 79 1 46 1 14 +12381 135 53 -51.34 2216.5 34 12 4 8 79 1 51 1 19 +12382 135 54 -45.3 2216.5 34 14 4 8 79 1 53 1 21 +12383 135 55 -39.26 2216.5 34 16 4 8 79 1 55 1 23 +12384 135 56 -33.22 2216.5 38 11 4 8 80 1 50 1 18 +12385 135 57 -27.18 2216.5 38 9 4 8 80 1 48 1 16 +12386 135 58 -21.14 2216.5 38 7 4 8 80 1 46 1 14 +12387 135 59 -15.1 2216.5 38 12 4 8 80 1 51 1 19 +12388 135 60 -9.06 2216.5 38 14 4 8 80 1 53 1 21 +12389 135 61 -3.02 2216.5 38 16 4 8 80 1 55 1 23 +12390 135 62 3.02 2216.5 42 15 4 8 81 1 54 1 22 +12391 135 63 9.06 2216.5 42 13 4 8 81 1 52 1 20 +12392 135 64 15.1 2216.5 42 11 4 8 81 1 50 1 18 +12393 135 65 21.14 2216.5 42 8 4 8 81 1 47 1 15 +12394 135 66 27.18 2216.5 42 10 4 8 81 1 49 1 17 +12395 135 67 33.22 2216.5 42 12 4 8 81 1 51 1 19 +12396 135 68 39.26 2216.5 46 15 4 8 82 1 54 1 22 +12397 135 69 45.3 2216.5 46 13 4 8 82 1 52 1 20 +12398 135 70 51.34 2216.5 46 11 4 8 82 1 50 1 18 +12399 135 71 57.38 2216.5 46 8 4 8 82 1 47 1 15 +12400 135 72 63.42 2216.5 46 10 4 8 82 1 49 1 17 +12401 135 73 69.46 2216.5 46 12 4 8 82 1 51 1 19 +12402 135 74 75.5 2216.5 50 15 4 8 83 1 54 1 22 +12403 135 75 81.54 2216.5 50 13 4 8 83 1 52 1 20 +12404 135 76 87.58 2216.5 50 11 4 8 83 1 50 1 18 +12405 135 77 93.62 2216.5 50 10 4 8 83 1 49 1 17 +12406 135 78 99.66 2216.5 50 12 4 8 83 1 51 1 19 +12407 135 79 105.7 2216.5 50 14 4 8 83 1 53 1 21 +12408 135 80 111.74 2216.5 50 16 4 8 83 1 55 1 23 +12409 135 81 117.78 2216.5 54 13 4 8 84 1 52 1 20 +12410 135 82 123.82 2216.5 54 11 4 8 84 1 50 1 18 +12411 135 83 129.86 2216.5 54 9 4 8 84 1 48 1 16 +12412 135 84 135.9 2216.5 54 12 4 8 84 1 51 1 19 +12413 135 85 141.94 2216.5 54 14 4 8 84 1 53 1 21 +12414 135 86 147.98 2216.5 54 16 4 8 84 1 55 1 23 +12415 135 87 154.02 2216.5 58 13 4 8 85 1 52 1 20 +12416 135 88 160.06 2216.5 58 11 4 8 85 1 50 1 18 +12417 135 89 166.1 2216.5 58 9 4 8 85 1 48 1 16 +12418 135 90 172.14 2216.5 58 10 4 8 85 1 49 1 17 +12419 135 91 178.18 2216.5 58 12 4 8 85 1 51 1 19 +12420 135 92 184.22 2216.5 58 14 4 8 85 1 53 1 21 +12421 135 93 190.26 2216.5 62 13 4 8 86 1 52 1 20 +12422 135 94 196.3 2216.5 62 11 4 8 86 1 50 1 18 +12423 135 95 202.34 2216.5 62 9 4 8 86 1 48 1 16 +12424 135 96 208.38 2216.5 62 10 4 8 86 1 49 1 17 +12425 135 97 214.42 2216.5 62 12 4 8 86 1 51 1 19 +12426 135 98 220.46 2216.5 62 14 4 8 86 1 53 1 21 +12427 135 99 226.5 2216.5 66 13 4 8 87 1 52 1 20 +12428 135 100 232.54 2216.5 66 11 4 8 87 1 50 1 18 +12429 135 101 238.58 2216.5 66 9 4 8 87 1 48 1 16 +12430 135 102 244.62 2216.5 66 10 4 8 87 1 49 1 17 +12431 135 103 250.66 2216.5 66 12 4 8 87 1 51 1 19 +12432 135 104 256.7 2216.5 66 14 4 8 87 1 53 1 21 +12433 135 105 262.74 2216.5 66 16 4 8 87 1 55 1 23 +12434 135 106 268.78 2216.5 70 15 4 8 88 1 54 1 22 +12435 135 107 274.82 2216.5 70 13 4 8 88 1 52 1 20 +12436 135 108 280.86 2216.5 70 11 4 8 88 1 50 1 18 +12437 135 109 286.9 2216.5 70 10 4 8 88 1 49 1 17 +12438 135 110 292.94 2216.5 70 12 4 8 88 1 51 1 19 +12439 135 111 298.98 2216.5 70 14 4 8 88 1 53 1 21 +12440 135 112 305.02 2216.5 74 11 4 8 89 1 50 1 18 +12441 135 113 311.06 2216.5 74 9 4 8 89 1 48 1 16 +12442 135 114 317.1 2216.5 74 7 4 8 89 1 46 1 14 +12443 135 115 323.14 2216.5 74 12 4 8 89 1 51 1 19 +12444 135 116 329.18 2216.5 74 14 4 8 89 1 53 1 21 +12445 135 117 335.22 2216.5 74 16 4 8 89 1 55 1 23 +12446 135 118 341.26 2216.5 78 15 4 8 90 1 54 1 22 +12447 135 119 347.3 2216.5 78 13 4 8 90 1 52 1 20 +12448 135 120 353.34 2216.5 78 11 4 8 90 1 50 1 18 +12449 135 121 359.38 2216.5 78 10 4 8 90 1 49 1 17 +12450 135 122 365.42 2216.5 78 12 4 8 90 1 51 1 19 +12451 135 123 371.46 2216.5 78 14 4 8 90 1 53 1 21 +12452 136 0 -377.5 2231.5 2 19 4 8 71 1 58 1 26 +12453 136 1 -371.46 2231.5 2 17 4 8 71 1 56 1 24 +12454 136 2 -365.42 2231.5 2 15 4 8 71 1 54 1 22 +12455 136 3 -359.38 2231.5 2 18 4 8 71 1 57 1 25 +12456 136 4 -353.34 2231.5 2 20 4 8 71 1 59 1 27 +12457 136 5 -347.3 2231.5 2 22 4 8 71 1 61 1 29 +12458 136 6 -341.26 2231.5 6 21 4 8 72 1 60 1 28 +12459 136 7 -335.22 2231.5 6 19 4 8 72 1 58 1 26 +12460 136 8 -329.18 2231.5 6 17 4 8 72 1 56 1 24 +12461 136 9 -323.14 2231.5 6 14 4 8 72 1 53 1 21 +12462 136 10 -317.1 2231.5 6 16 4 8 72 1 55 1 23 +12463 136 11 -311.06 2231.5 6 18 4 8 72 1 57 1 25 +12464 136 12 -305.02 2231.5 6 20 4 8 72 1 59 1 27 +12465 136 13 -298.98 2231.5 10 19 4 8 73 1 58 1 26 +12466 136 14 -292.94 2231.5 10 17 4 8 73 1 56 1 24 +12467 136 15 -286.9 2231.5 10 15 4 8 73 1 54 1 22 +12468 136 16 -280.86 2231.5 10 18 4 8 73 1 57 1 25 +12469 136 17 -274.82 2231.5 10 20 4 8 73 1 59 1 27 +12470 136 18 -268.78 2231.5 10 22 4 8 73 1 61 1 29 +12471 136 19 -262.74 2231.5 14 21 4 8 74 1 60 1 28 +12472 136 20 -256.7 2231.5 14 19 4 8 74 1 58 1 26 +12473 136 21 -250.66 2231.5 14 17 4 8 74 1 56 1 24 +12474 136 22 -244.62 2231.5 14 16 4 8 74 1 55 1 23 +12475 136 23 -238.58 2231.5 14 18 4 8 74 1 57 1 25 +12476 136 24 -232.54 2231.5 14 20 4 8 74 1 59 1 27 +12477 136 25 -226.5 2231.5 18 21 4 8 75 1 60 1 28 +12478 136 26 -220.46 2231.5 18 19 4 8 75 1 58 1 26 +12479 136 27 -214.42 2231.5 18 17 4 8 75 1 56 1 24 +12480 136 28 -208.38 2231.5 18 15 4 8 75 1 54 1 22 +12481 136 29 -202.34 2231.5 18 16 4 8 75 1 55 1 23 +12482 136 30 -196.3 2231.5 18 18 4 8 75 1 57 1 25 +12483 136 31 -190.26 2231.5 18 20 4 8 75 1 59 1 27 +12484 136 32 -184.22 2231.5 22 19 4 8 76 1 58 1 26 +12485 136 33 -178.18 2231.5 22 17 4 8 76 1 56 1 24 +12486 136 34 -172.14 2231.5 22 15 4 8 76 1 54 1 22 +12487 136 35 -166.1 2231.5 22 16 4 8 76 1 55 1 23 +12488 136 36 -160.06 2231.5 22 18 4 8 76 1 57 1 25 +12489 136 37 -154.02 2231.5 22 20 4 8 76 1 59 1 27 +12490 136 38 -147.98 2231.5 26 21 4 8 77 1 60 1 28 +12491 136 39 -141.94 2231.5 26 19 4 8 77 1 58 1 26 +12492 136 40 -135.9 2231.5 26 17 4 8 77 1 56 1 24 +12493 136 41 -129.86 2231.5 26 16 4 8 77 1 55 1 23 +12494 136 42 -123.82 2231.5 26 18 4 8 77 1 57 1 25 +12495 136 43 -117.78 2231.5 26 20 4 8 77 1 59 1 27 +12496 136 44 -111.74 2231.5 30 21 4 8 78 1 60 1 28 +12497 136 45 -105.7 2231.5 30 19 4 8 78 1 58 1 26 +12498 136 46 -99.66 2231.5 30 17 4 8 78 1 56 1 24 +12499 136 47 -93.62 2231.5 30 18 4 8 78 1 57 1 25 +12500 136 48 -87.58 2231.5 30 20 4 8 78 1 59 1 27 +12501 136 49 -81.54 2231.5 30 22 4 8 78 1 61 1 29 +12502 136 50 -75.5 2231.5 34 19 4 8 79 1 58 1 26 +12503 136 51 -69.46 2231.5 34 17 4 8 79 1 56 1 24 +12504 136 52 -63.42 2231.5 34 15 4 8 79 1 54 1 22 +12505 136 53 -57.38 2231.5 34 13 4 8 79 1 52 1 20 +12506 136 54 -51.34 2231.5 34 18 4 8 79 1 57 1 25 +12507 136 55 -45.3 2231.5 34 20 4 8 79 1 59 1 27 +12508 136 56 -39.26 2231.5 34 22 4 8 79 1 61 1 29 +12509 136 57 -33.22 2231.5 38 17 4 8 80 1 56 1 24 +12510 136 58 -27.18 2231.5 38 15 4 8 80 1 54 1 22 +12511 136 59 -21.14 2231.5 38 13 4 8 80 1 52 1 20 +12512 136 60 -15.1 2231.5 38 18 4 8 80 1 57 1 25 +12513 136 61 -9.06 2231.5 38 20 4 8 80 1 59 1 27 +12514 136 62 -3.02 2231.5 38 22 4 8 80 1 61 1 29 +12515 136 63 3.02 2231.5 42 21 4 8 81 1 60 1 28 +12516 136 64 9.06 2231.5 42 19 4 8 81 1 58 1 26 +12517 136 65 15.1 2231.5 42 17 4 8 81 1 56 1 24 +12518 136 66 21.14 2231.5 42 14 4 8 81 1 53 1 21 +12519 136 67 27.18 2231.5 42 16 4 8 81 1 55 1 23 +12520 136 68 33.22 2231.5 42 18 4 8 81 1 57 1 25 +12521 136 69 39.26 2231.5 46 21 4 8 82 1 60 1 28 +12522 136 70 45.3 2231.5 46 19 4 8 82 1 58 1 26 +12523 136 71 51.34 2231.5 46 17 4 8 82 1 56 1 24 +12524 136 72 57.38 2231.5 46 14 4 8 82 1 53 1 21 +12525 136 73 63.42 2231.5 46 16 4 8 82 1 55 1 23 +12526 136 74 69.46 2231.5 46 18 4 8 82 1 57 1 25 +12527 136 75 75.5 2231.5 46 20 4 8 82 1 59 1 27 +12528 136 76 81.54 2231.5 50 21 4 8 83 1 60 1 28 +12529 136 77 87.58 2231.5 50 19 4 8 83 1 58 1 26 +12530 136 78 93.62 2231.5 50 17 4 8 83 1 56 1 24 +12531 136 79 99.66 2231.5 50 18 4 8 83 1 57 1 25 +12532 136 80 105.7 2231.5 50 20 4 8 83 1 59 1 27 +12533 136 81 111.74 2231.5 50 22 4 8 83 1 61 1 29 +12534 136 82 117.78 2231.5 54 19 4 8 84 1 58 1 26 +12535 136 83 123.82 2231.5 54 17 4 8 84 1 56 1 24 +12536 136 84 129.86 2231.5 54 15 4 8 84 1 54 1 22 +12537 136 85 135.9 2231.5 54 18 4 8 84 1 57 1 25 +12538 136 86 141.94 2231.5 54 20 4 8 84 1 59 1 27 +12539 136 87 147.98 2231.5 54 22 4 8 84 1 61 1 29 +12540 136 88 154.02 2231.5 58 19 4 8 85 1 58 1 26 +12541 136 89 160.06 2231.5 58 17 4 8 85 1 56 1 24 +12542 136 90 166.1 2231.5 58 15 4 8 85 1 54 1 22 +12543 136 91 172.14 2231.5 58 16 4 8 85 1 55 1 23 +12544 136 92 178.18 2231.5 58 18 4 8 85 1 57 1 25 +12545 136 93 184.22 2231.5 58 20 4 8 85 1 59 1 27 +12546 136 94 190.26 2231.5 62 19 4 8 86 1 58 1 26 +12547 136 95 196.3 2231.5 62 17 4 8 86 1 56 1 24 +12548 136 96 202.34 2231.5 62 15 4 8 86 1 54 1 22 +12549 136 97 208.38 2231.5 62 16 4 8 86 1 55 1 23 +12550 136 98 214.42 2231.5 62 18 4 8 86 1 57 1 25 +12551 136 99 220.46 2231.5 62 20 4 8 86 1 59 1 27 +12552 136 100 226.5 2231.5 62 22 4 8 86 1 61 1 29 +12553 136 101 232.54 2231.5 66 19 4 8 87 1 58 1 26 +12554 136 102 238.58 2231.5 66 17 4 8 87 1 56 1 24 +12555 136 103 244.62 2231.5 66 15 4 8 87 1 54 1 22 +12556 136 104 250.66 2231.5 66 18 4 8 87 1 57 1 25 +12557 136 105 256.7 2231.5 66 20 4 8 87 1 59 1 27 +12558 136 106 262.74 2231.5 66 22 4 8 87 1 61 1 29 +12559 136 107 268.78 2231.5 70 21 4 8 88 1 60 1 28 +12560 136 108 274.82 2231.5 70 19 4 8 88 1 58 1 26 +12561 136 109 280.86 2231.5 70 17 4 8 88 1 56 1 24 +12562 136 110 286.9 2231.5 70 16 4 8 88 1 55 1 23 +12563 136 111 292.94 2231.5 70 18 4 8 88 1 57 1 25 +12564 136 112 298.98 2231.5 70 20 4 8 88 1 59 1 27 +12565 136 113 305.02 2231.5 74 19 4 8 89 1 58 1 26 +12566 136 114 311.06 2231.5 74 17 4 8 89 1 56 1 24 +12567 136 115 317.1 2231.5 74 15 4 8 89 1 54 1 22 +12568 136 116 323.14 2231.5 74 13 4 8 89 1 52 1 20 +12569 136 117 329.18 2231.5 74 18 4 8 89 1 57 1 25 +12570 136 118 335.22 2231.5 74 20 4 8 89 1 59 1 27 +12571 136 119 341.26 2231.5 74 22 4 8 89 1 61 1 29 +12572 136 120 347.3 2231.5 78 21 4 8 90 1 60 1 28 +12573 136 121 353.34 2231.5 78 19 4 8 90 1 58 1 26 +12574 136 122 359.38 2231.5 78 17 4 8 90 1 56 1 24 +12575 136 123 365.42 2231.5 78 16 4 8 90 1 55 1 23 +12576 136 124 371.46 2231.5 78 18 4 8 90 1 57 1 25 +12577 136 125 377.5 2231.5 78 20 4 8 90 1 59 1 27 +12578 137 0 -377.5 2246.5 2 25 4 8 71 1 64 2 0 +12579 137 1 -371.46 2246.5 2 23 4 8 71 1 62 1 30 +12580 137 2 -365.42 2246.5 2 21 4 8 71 1 60 1 28 +12581 137 3 -359.38 2246.5 2 24 4 8 71 1 63 1 31 +12582 137 4 -353.34 2246.5 2 26 4 8 71 1 65 2 1 +12583 137 5 -347.3 2246.5 2 28 4 8 71 1 67 2 3 +12584 137 6 -341.26 2246.5 6 27 4 8 72 1 66 2 2 +12585 137 7 -335.22 2246.5 6 25 4 8 72 1 64 2 0 +12586 137 8 -329.18 2246.5 6 23 4 8 72 1 62 1 30 +12587 137 9 -323.14 2246.5 6 22 4 8 72 1 61 1 29 +12588 137 10 -317.1 2246.5 6 24 4 8 72 1 63 1 31 +12589 137 11 -311.06 2246.5 6 26 4 8 72 1 65 2 1 +12590 137 12 -305.02 2246.5 10 27 4 8 73 1 66 2 2 +12591 137 13 -298.98 2246.5 10 25 4 8 73 1 64 2 0 +12592 137 14 -292.94 2246.5 10 23 4 8 73 1 62 1 30 +12593 137 15 -286.9 2246.5 10 21 4 8 73 1 60 1 28 +12594 137 16 -280.86 2246.5 10 24 4 8 73 1 63 1 31 +12595 137 17 -274.82 2246.5 10 26 4 8 73 1 65 2 1 +12596 137 18 -268.78 2246.5 10 28 4 8 73 1 67 2 3 +12597 137 19 -262.74 2246.5 14 27 4 8 74 1 66 2 2 +12598 137 20 -256.7 2246.5 14 25 4 8 74 1 64 2 0 +12599 137 21 -250.66 2246.5 14 23 4 8 74 1 62 1 30 +12600 137 22 -244.62 2246.5 14 22 4 8 74 1 61 1 29 +12601 137 23 -238.58 2246.5 14 24 4 8 74 1 63 1 31 +12602 137 24 -232.54 2246.5 14 26 4 8 74 1 65 2 1 +12603 137 25 -226.5 2246.5 18 27 4 8 75 1 66 2 2 +12604 137 26 -220.46 2246.5 18 25 4 8 75 1 64 2 0 +12605 137 27 -214.42 2246.5 18 23 4 8 75 1 62 1 30 +12606 137 28 -208.38 2246.5 18 22 4 8 75 1 61 1 29 +12607 137 29 -202.34 2246.5 18 24 4 8 75 1 63 1 31 +12608 137 30 -196.3 2246.5 18 26 4 8 75 1 65 2 1 +12609 137 31 -190.26 2246.5 22 27 4 8 76 1 66 2 2 +12610 137 32 -184.22 2246.5 22 25 4 8 76 1 64 2 0 +12611 137 33 -178.18 2246.5 22 23 4 8 76 1 62 1 30 +12612 137 34 -172.14 2246.5 22 21 4 8 76 1 60 1 28 +12613 137 35 -166.1 2246.5 22 22 4 8 76 1 61 1 29 +12614 137 36 -160.06 2246.5 22 24 4 8 76 1 63 1 31 +12615 137 37 -154.02 2246.5 22 26 4 8 76 1 65 2 1 +12616 137 38 -147.98 2246.5 26 27 4 8 77 1 66 2 2 +12617 137 39 -141.94 2246.5 26 25 4 8 77 1 64 2 0 +12618 137 40 -135.9 2246.5 26 23 4 8 77 1 62 1 30 +12619 137 41 -129.86 2246.5 26 22 4 8 77 1 61 1 29 +12620 137 42 -123.82 2246.5 26 24 4 8 77 1 63 1 31 +12621 137 43 -117.78 2246.5 26 26 4 8 77 1 65 2 1 +12622 137 44 -111.74 2246.5 30 27 4 8 78 1 66 2 2 +12623 137 45 -105.7 2246.5 30 25 4 8 78 1 64 2 0 +12624 137 46 -99.66 2246.5 30 23 4 8 78 1 62 1 30 +12625 137 47 -93.62 2246.5 30 24 4 8 78 1 63 1 31 +12626 137 48 -87.58 2246.5 30 26 4 8 78 1 65 2 1 +12627 137 49 -81.54 2246.5 30 28 4 8 78 1 67 2 3 +12628 137 50 -75.5 2246.5 34 27 4 8 79 1 66 2 2 +12629 137 51 -69.46 2246.5 34 25 4 8 79 1 64 2 0 +12630 137 52 -63.42 2246.5 34 23 4 8 79 1 62 1 30 +12631 137 53 -57.38 2246.5 34 21 4 8 79 1 60 1 28 +12632 137 54 -51.34 2246.5 34 24 4 8 79 1 63 1 31 +12633 137 55 -45.3 2246.5 34 26 4 8 79 1 65 2 1 +12634 137 56 -39.26 2246.5 34 28 4 8 79 1 67 2 3 +12635 137 57 -33.22 2246.5 38 23 4 8 80 1 62 1 30 +12636 137 58 -27.18 2246.5 38 21 4 8 80 1 60 1 28 +12637 137 59 -21.14 2246.5 38 19 4 8 80 1 58 1 26 +12638 137 60 -15.1 2246.5 38 24 4 8 80 1 63 1 31 +12639 137 61 -9.06 2246.5 38 26 4 8 80 1 65 2 1 +12640 137 62 -3.02 2246.5 38 28 4 8 80 1 67 2 3 +12641 137 63 3.02 2246.5 42 27 4 8 81 1 66 2 2 +12642 137 64 9.06 2246.5 42 25 4 8 81 1 64 2 0 +12643 137 65 15.1 2246.5 42 23 4 8 81 1 62 1 30 +12644 137 66 21.14 2246.5 42 20 4 8 81 1 59 1 27 +12645 137 67 27.18 2246.5 42 22 4 8 81 1 61 1 29 +12646 137 68 33.22 2246.5 42 24 4 8 81 1 63 1 31 +12647 137 69 39.26 2246.5 46 27 4 8 82 1 66 2 2 +12648 137 70 45.3 2246.5 46 25 4 8 82 1 64 2 0 +12649 137 71 51.34 2246.5 46 23 4 8 82 1 62 1 30 +12650 137 72 57.38 2246.5 46 22 4 8 82 1 61 1 29 +12651 137 73 63.42 2246.5 46 24 4 8 82 1 63 1 31 +12652 137 74 69.46 2246.5 46 26 4 8 82 1 65 2 1 +12653 137 75 75.5 2246.5 46 28 4 8 82 1 67 2 3 +12654 137 76 81.54 2246.5 50 27 4 8 83 1 66 2 2 +12655 137 77 87.58 2246.5 50 25 4 8 83 1 64 2 0 +12656 137 78 93.62 2246.5 50 23 4 8 83 1 62 1 30 +12657 137 79 99.66 2246.5 50 24 4 8 83 1 63 1 31 +12658 137 80 105.7 2246.5 50 26 4 8 83 1 65 2 1 +12659 137 81 111.74 2246.5 50 28 4 8 83 1 67 2 3 +12660 137 82 117.78 2246.5 54 25 4 8 84 1 64 2 0 +12661 137 83 123.82 2246.5 54 23 4 8 84 1 62 1 30 +12662 137 84 129.86 2246.5 54 21 4 8 84 1 60 1 28 +12663 137 85 135.9 2246.5 54 24 4 8 84 1 63 1 31 +12664 137 86 141.94 2246.5 54 26 4 8 84 1 65 2 1 +12665 137 87 147.98 2246.5 54 28 4 8 84 1 67 2 3 +12666 137 88 154.02 2246.5 58 25 4 8 85 1 64 2 0 +12667 137 89 160.06 2246.5 58 23 4 8 85 1 62 1 30 +12668 137 90 166.1 2246.5 58 21 4 8 85 1 60 1 28 +12669 137 91 172.14 2246.5 58 22 4 8 85 1 61 1 29 +12670 137 92 178.18 2246.5 58 24 4 8 85 1 63 1 31 +12671 137 93 184.22 2246.5 58 26 4 8 85 1 65 2 1 +12672 137 94 190.26 2246.5 58 28 4 8 85 1 67 2 3 +12673 137 95 196.3 2246.5 62 25 4 8 86 1 64 2 0 +12674 137 96 202.34 2246.5 62 23 4 8 86 1 62 1 30 +12675 137 97 208.38 2246.5 62 21 4 8 86 1 60 1 28 +12676 137 98 214.42 2246.5 62 24 4 8 86 1 63 1 31 +12677 137 99 220.46 2246.5 62 26 4 8 86 1 65 2 1 +12678 137 100 226.5 2246.5 62 28 4 8 86 1 67 2 3 +12679 137 101 232.54 2246.5 66 25 4 8 87 1 64 2 0 +12680 137 102 238.58 2246.5 66 23 4 8 87 1 62 1 30 +12681 137 103 244.62 2246.5 66 21 4 8 87 1 60 1 28 +12682 137 104 250.66 2246.5 66 24 4 8 87 1 63 1 31 +12683 137 105 256.7 2246.5 66 26 4 8 87 1 65 2 1 +12684 137 106 262.74 2246.5 66 28 4 8 87 1 67 2 3 +12685 137 107 268.78 2246.5 70 27 4 8 88 1 66 2 2 +12686 137 108 274.82 2246.5 70 25 4 8 88 1 64 2 0 +12687 137 109 280.86 2246.5 70 23 4 8 88 1 62 1 30 +12688 137 110 286.9 2246.5 70 22 4 8 88 1 61 1 29 +12689 137 111 292.94 2246.5 70 24 4 8 88 1 63 1 31 +12690 137 112 298.98 2246.5 70 26 4 8 88 1 65 2 1 +12691 137 113 305.02 2246.5 70 28 4 8 88 1 67 2 3 +12692 137 114 311.06 2246.5 74 25 4 8 89 1 64 2 0 +12693 137 115 317.1 2246.5 74 23 4 8 89 1 62 1 30 +12694 137 116 323.14 2246.5 74 21 4 8 89 1 60 1 28 +12695 137 117 329.18 2246.5 74 24 4 8 89 1 63 1 31 +12696 137 118 335.22 2246.5 74 26 4 8 89 1 65 2 1 +12697 137 119 341.26 2246.5 74 28 4 8 89 1 67 2 3 +12698 137 120 347.3 2246.5 78 27 4 8 90 1 66 2 2 +12699 137 121 353.34 2246.5 78 25 4 8 90 1 64 2 0 +12700 137 122 359.38 2246.5 78 23 4 8 90 1 62 1 30 +12701 137 123 365.42 2246.5 78 22 4 8 90 1 61 1 29 +12702 137 124 371.46 2246.5 78 24 4 8 90 1 63 1 31 +12703 137 125 377.5 2246.5 78 26 4 8 90 1 65 2 1 +12704 138 0 -383.54 2261.5 2 33 4 8 71 1 72 2 8 +12705 138 1 -377.5 2261.5 2 31 4 8 71 1 70 2 6 +12706 138 2 -371.46 2261.5 2 29 4 8 71 1 68 2 4 +12707 138 3 -365.42 2261.5 2 27 4 8 71 1 66 2 2 +12708 138 4 -359.38 2261.5 2 30 4 8 71 1 69 2 5 +12709 138 5 -353.34 2261.5 2 32 4 8 71 1 71 2 7 +12710 138 6 -347.3 2261.5 2 34 4 8 71 1 73 2 9 +12711 138 7 -341.26 2261.5 6 33 4 8 72 1 72 2 8 +12712 138 8 -335.22 2261.5 6 31 4 8 72 1 70 2 6 +12713 138 9 -329.18 2261.5 6 29 4 8 72 1 68 2 4 +12714 138 10 -323.14 2261.5 6 28 4 8 72 1 67 2 3 +12715 138 11 -317.1 2261.5 6 30 4 8 72 1 69 2 5 +12716 138 12 -311.06 2261.5 6 32 4 8 72 1 71 2 7 +12717 138 13 -305.02 2261.5 10 33 4 8 73 1 72 2 8 +12718 138 14 -298.98 2261.5 10 31 4 8 73 1 70 2 6 +12719 138 15 -292.94 2261.5 10 29 4 8 73 1 68 2 4 +12720 138 16 -286.9 2261.5 10 30 4 8 73 1 69 2 5 +12721 138 17 -280.86 2261.5 10 32 4 8 73 1 71 2 7 +12722 138 18 -274.82 2261.5 10 34 4 8 73 1 73 2 9 +12723 138 19 -268.78 2261.5 14 33 4 8 74 1 72 2 8 +12724 138 20 -262.74 2261.5 14 31 4 8 74 1 70 2 6 +12725 138 21 -256.7 2261.5 14 29 4 8 74 1 68 2 4 +12726 138 22 -250.66 2261.5 14 28 4 8 74 1 67 2 3 +12727 138 23 -244.62 2261.5 14 30 4 8 74 1 69 2 5 +12728 138 24 -238.58 2261.5 14 32 4 8 74 1 71 2 7 +12729 138 25 -232.54 2261.5 14 34 4 8 74 1 73 2 9 +12730 138 26 -226.5 2261.5 18 33 4 8 75 1 72 2 8 +12731 138 27 -220.46 2261.5 18 31 4 8 75 1 70 2 6 +12732 138 28 -214.42 2261.5 18 29 4 8 75 1 68 2 4 +12733 138 29 -208.38 2261.5 18 28 4 8 75 1 67 2 3 +12734 138 30 -202.34 2261.5 18 30 4 8 75 1 69 2 5 +12735 138 31 -196.3 2261.5 18 32 4 8 75 1 71 2 7 +12736 138 32 -190.26 2261.5 22 33 4 8 76 1 72 2 8 +12737 138 33 -184.22 2261.5 22 31 4 8 76 1 70 2 6 +12738 138 34 -178.18 2261.5 22 29 4 8 76 1 68 2 4 +12739 138 35 -172.14 2261.5 22 28 4 8 76 1 67 2 3 +12740 138 36 -166.1 2261.5 22 30 4 8 76 1 69 2 5 +12741 138 37 -160.06 2261.5 22 32 4 8 76 1 71 2 7 +12742 138 38 -154.02 2261.5 22 34 4 8 76 1 73 2 9 +12743 138 39 -147.98 2261.5 26 33 4 8 77 1 72 2 8 +12744 138 40 -141.94 2261.5 26 31 4 8 77 1 70 2 6 +12745 138 41 -135.9 2261.5 26 29 4 8 77 1 68 2 4 +12746 138 42 -129.86 2261.5 26 28 4 8 77 1 67 2 3 +12747 138 43 -123.82 2261.5 26 30 4 8 77 1 69 2 5 +12748 138 44 -117.78 2261.5 26 32 4 8 77 1 71 2 7 +12749 138 45 -111.74 2261.5 30 33 4 8 78 1 72 2 8 +12750 138 46 -105.7 2261.5 30 31 4 8 78 1 70 2 6 +12751 138 47 -99.66 2261.5 30 29 4 8 78 1 68 2 4 +12752 138 48 -93.62 2261.5 30 30 4 8 78 1 69 2 5 +12753 138 49 -87.58 2261.5 30 32 4 8 78 1 71 2 7 +12754 138 50 -81.54 2261.5 30 34 4 8 78 1 73 2 9 +12755 138 51 -75.5 2261.5 34 33 4 8 79 1 72 2 8 +12756 138 52 -69.46 2261.5 34 31 4 8 79 1 70 2 6 +12757 138 53 -63.42 2261.5 34 29 4 8 79 1 68 2 4 +12758 138 54 -57.38 2261.5 34 30 4 8 79 1 69 2 5 +12759 138 55 -51.34 2261.5 34 32 4 8 79 1 71 2 7 +12760 138 56 -45.3 2261.5 34 34 4 8 79 1 73 2 9 +12761 138 57 -39.26 2261.5 38 31 4 8 80 1 70 2 6 +12762 138 58 -33.22 2261.5 38 29 4 8 80 1 68 2 4 +12763 138 59 -27.18 2261.5 38 27 4 8 80 1 66 2 2 +12764 138 60 -21.14 2261.5 38 25 4 8 80 1 64 2 0 +12765 138 61 -15.1 2261.5 38 30 4 8 80 1 69 2 5 +12766 138 62 -9.06 2261.5 38 32 4 8 80 1 71 2 7 +12767 138 63 -3.02 2261.5 38 34 4 8 80 1 73 2 9 +12768 138 64 3.02 2261.5 42 33 4 8 81 1 72 2 8 +12769 138 65 9.06 2261.5 42 31 4 8 81 1 70 2 6 +12770 138 66 15.1 2261.5 42 29 4 8 81 1 68 2 4 +12771 138 67 21.14 2261.5 42 26 4 8 81 1 65 2 1 +12772 138 68 27.18 2261.5 42 28 4 8 81 1 67 2 3 +12773 138 69 33.22 2261.5 42 30 4 8 81 1 69 2 5 +12774 138 70 39.26 2261.5 42 32 4 8 81 1 71 2 7 +12775 138 71 45.3 2261.5 46 33 4 8 82 1 72 2 8 +12776 138 72 51.34 2261.5 46 31 4 8 82 1 70 2 6 +12777 138 73 57.38 2261.5 46 29 4 8 82 1 68 2 4 +12778 138 74 63.42 2261.5 46 30 4 8 82 1 69 2 5 +12779 138 75 69.46 2261.5 46 32 4 8 82 1 71 2 7 +12780 138 76 75.5 2261.5 46 34 4 8 82 1 73 2 9 +12781 138 77 81.54 2261.5 50 33 4 8 83 1 72 2 8 +12782 138 78 87.58 2261.5 50 31 4 8 83 1 70 2 6 +12783 138 79 93.62 2261.5 50 29 4 8 83 1 68 2 4 +12784 138 80 99.66 2261.5 50 30 4 8 83 1 69 2 5 +12785 138 81 105.7 2261.5 50 32 4 8 83 1 71 2 7 +12786 138 82 111.74 2261.5 50 34 4 8 83 1 73 2 9 +12787 138 83 117.78 2261.5 54 31 4 8 84 1 70 2 6 +12788 138 84 123.82 2261.5 54 29 4 8 84 1 68 2 4 +12789 138 85 129.86 2261.5 54 27 4 8 84 1 66 2 2 +12790 138 86 135.9 2261.5 54 30 4 8 84 1 69 2 5 +12791 138 87 141.94 2261.5 54 32 4 8 84 1 71 2 7 +12792 138 88 147.98 2261.5 54 34 4 8 84 1 73 2 9 +12793 138 89 154.02 2261.5 58 33 4 8 85 1 72 2 8 +12794 138 90 160.06 2261.5 58 31 4 8 85 1 70 2 6 +12795 138 91 166.1 2261.5 58 29 4 8 85 1 68 2 4 +12796 138 92 172.14 2261.5 58 27 4 8 85 1 66 2 2 +12797 138 93 178.18 2261.5 58 30 4 8 85 1 69 2 5 +12798 138 94 184.22 2261.5 58 32 4 8 85 1 71 2 7 +12799 138 95 190.26 2261.5 58 34 4 8 85 1 73 2 9 +12800 138 96 196.3 2261.5 62 31 4 8 86 1 70 2 6 +12801 138 97 202.34 2261.5 62 29 4 8 86 1 68 2 4 +12802 138 98 208.38 2261.5 62 27 4 8 86 1 66 2 2 +12803 138 99 214.42 2261.5 62 30 4 8 86 1 69 2 5 +12804 138 100 220.46 2261.5 62 32 4 8 86 1 71 2 7 +12805 138 101 226.5 2261.5 62 34 4 8 86 1 73 2 9 +12806 138 102 232.54 2261.5 66 33 4 8 87 1 72 2 8 +12807 138 103 238.58 2261.5 66 31 4 8 87 1 70 2 6 +12808 138 104 244.62 2261.5 66 29 4 8 87 1 68 2 4 +12809 138 105 250.66 2261.5 66 27 4 8 87 1 66 2 2 +12810 138 106 256.7 2261.5 66 30 4 8 87 1 69 2 5 +12811 138 107 262.74 2261.5 66 32 4 8 87 1 71 2 7 +12812 138 108 268.78 2261.5 66 34 4 8 87 1 73 2 9 +12813 138 109 274.82 2261.5 70 33 4 8 88 1 72 2 8 +12814 138 110 280.86 2261.5 70 31 4 8 88 1 70 2 6 +12815 138 111 286.9 2261.5 70 29 4 8 88 1 68 2 4 +12816 138 112 292.94 2261.5 70 30 4 8 88 1 69 2 5 +12817 138 113 298.98 2261.5 70 32 4 8 88 1 71 2 7 +12818 138 114 305.02 2261.5 70 34 4 8 88 1 73 2 9 +12819 138 115 311.06 2261.5 74 31 4 8 89 1 70 2 6 +12820 138 116 317.1 2261.5 74 29 4 8 89 1 68 2 4 +12821 138 117 323.14 2261.5 74 27 4 8 89 1 66 2 2 +12822 138 118 329.18 2261.5 74 30 4 8 89 1 69 2 5 +12823 138 119 335.22 2261.5 74 32 4 8 89 1 71 2 7 +12824 138 120 341.26 2261.5 74 34 4 8 89 1 73 2 9 +12825 138 121 347.3 2261.5 78 33 4 8 90 1 72 2 8 +12826 138 122 353.34 2261.5 78 31 4 8 90 1 70 2 6 +12827 138 123 359.38 2261.5 78 29 4 8 90 1 68 2 4 +12828 138 124 365.42 2261.5 78 28 4 8 90 1 67 2 3 +12829 138 125 371.46 2261.5 78 30 4 8 90 1 69 2 5 +12830 138 126 377.5 2261.5 78 32 4 8 90 1 71 2 7 +12831 138 127 383.54 2261.5 78 34 4 8 90 1 73 2 9 +12832 139 0 -383.54 2276.5 2 39 4 8 71 1 78 2 14 +12833 139 1 -377.5 2276.5 2 37 4 8 71 1 76 2 12 +12834 139 2 -371.46 2276.5 2 35 4 8 71 1 74 2 10 +12835 139 3 -365.42 2276.5 2 36 4 8 71 1 75 2 11 +12836 139 4 -359.38 2276.5 2 38 4 8 71 1 77 2 13 +12837 139 5 -353.34 2276.5 2 40 4 8 71 1 79 2 15 +12838 139 6 -347.3 2276.5 6 39 4 8 72 1 78 2 14 +12839 139 7 -341.26 2276.5 6 37 4 8 72 1 76 2 12 +12840 139 8 -335.22 2276.5 6 35 4 8 72 1 74 2 10 +12841 139 9 -329.18 2276.5 6 34 4 8 72 1 73 2 9 +12842 139 10 -323.14 2276.5 6 36 4 8 72 1 75 2 11 +12843 139 11 -317.1 2276.5 6 38 4 8 72 1 77 2 13 +12844 139 12 -311.06 2276.5 6 40 4 8 72 1 79 2 15 +12845 139 13 -305.02 2276.5 10 39 4 8 73 1 78 2 14 +12846 139 14 -298.98 2276.5 10 37 4 8 73 1 76 2 12 +12847 139 15 -292.94 2276.5 10 35 4 8 73 1 74 2 10 +12848 139 16 -286.9 2276.5 10 36 4 8 73 1 75 2 11 +12849 139 17 -280.86 2276.5 10 38 4 8 73 1 77 2 13 +12850 139 18 -274.82 2276.5 10 40 4 8 73 1 79 2 15 +12851 139 19 -268.78 2276.5 14 39 4 8 74 1 78 2 14 +12852 139 20 -262.74 2276.5 14 37 4 8 74 1 76 2 12 +12853 139 21 -256.7 2276.5 14 35 4 8 74 1 74 2 10 +12854 139 22 -250.66 2276.5 14 36 4 8 74 1 75 2 11 +12855 139 23 -244.62 2276.5 14 38 4 8 74 1 77 2 13 +12856 139 24 -238.58 2276.5 14 40 4 8 74 1 79 2 15 +12857 139 25 -232.54 2276.5 18 39 4 8 75 1 78 2 14 +12858 139 26 -226.5 2276.5 18 37 4 8 75 1 76 2 12 +12859 139 27 -220.46 2276.5 18 35 4 8 75 1 74 2 10 +12860 139 28 -214.42 2276.5 18 34 4 8 75 1 73 2 9 +12861 139 29 -208.38 2276.5 18 36 4 8 75 1 75 2 11 +12862 139 30 -202.34 2276.5 18 38 4 8 75 1 77 2 13 +12863 139 31 -196.3 2276.5 18 40 4 8 75 1 79 2 15 +12864 139 32 -190.26 2276.5 22 39 4 8 76 1 78 2 14 +12865 139 33 -184.22 2276.5 22 37 4 8 76 1 76 2 12 +12866 139 34 -178.18 2276.5 22 35 4 8 76 1 74 2 10 +12867 139 35 -172.14 2276.5 22 36 4 8 76 1 75 2 11 +12868 139 36 -166.1 2276.5 22 38 4 8 76 1 77 2 13 +12869 139 37 -160.06 2276.5 22 40 4 8 76 1 79 2 15 +12870 139 38 -154.02 2276.5 26 39 4 8 77 1 78 2 14 +12871 139 39 -147.98 2276.5 26 37 4 8 77 1 76 2 12 +12872 139 40 -141.94 2276.5 26 35 4 8 77 1 74 2 10 +12873 139 41 -135.9 2276.5 26 34 4 8 77 1 73 2 9 +12874 139 42 -129.86 2276.5 26 36 4 8 77 1 75 2 11 +12875 139 43 -123.82 2276.5 26 38 4 8 77 1 77 2 13 +12876 139 44 -117.78 2276.5 26 40 4 8 77 1 79 2 15 +12877 139 45 -111.74 2276.5 30 39 4 8 78 1 78 2 14 +12878 139 46 -105.7 2276.5 30 37 4 8 78 1 76 2 12 +12879 139 47 -99.66 2276.5 30 35 4 8 78 1 74 2 10 +12880 139 48 -93.62 2276.5 30 36 4 8 78 1 75 2 11 +12881 139 49 -87.58 2276.5 30 38 4 8 78 1 77 2 13 +12882 139 50 -81.54 2276.5 30 40 4 8 78 1 79 2 15 +12883 139 51 -75.5 2276.5 34 39 4 8 79 1 78 2 14 +12884 139 52 -69.46 2276.5 34 37 4 8 79 1 76 2 12 +12885 139 53 -63.42 2276.5 34 35 4 8 79 1 74 2 10 +12886 139 54 -57.38 2276.5 34 36 4 8 79 1 75 2 11 +12887 139 55 -51.34 2276.5 34 38 4 8 79 1 77 2 13 +12888 139 56 -45.3 2276.5 34 40 4 8 79 1 79 2 15 +12889 139 57 -39.26 2276.5 38 39 4 8 80 1 78 2 14 +12890 139 58 -33.22 2276.5 38 37 4 8 80 1 76 2 12 +12891 139 59 -27.18 2276.5 38 35 4 8 80 1 74 2 10 +12892 139 60 -21.14 2276.5 38 33 4 8 80 1 72 2 8 +12893 139 61 -15.1 2276.5 38 36 4 8 80 1 75 2 11 +12894 139 62 -9.06 2276.5 38 38 4 8 80 1 77 2 13 +12895 139 63 -3.02 2276.5 38 40 4 8 80 1 79 2 15 +12896 139 64 3.02 2276.5 42 39 4 8 81 1 78 2 14 +12897 139 65 9.06 2276.5 42 37 4 8 81 1 76 2 12 +12898 139 66 15.1 2276.5 42 35 4 8 81 1 74 2 10 +12899 139 67 21.14 2276.5 42 34 4 8 81 1 73 2 9 +12900 139 68 27.18 2276.5 42 36 4 8 81 1 75 2 11 +12901 139 69 33.22 2276.5 42 38 4 8 81 1 77 2 13 +12902 139 70 39.26 2276.5 42 40 4 8 81 1 79 2 15 +12903 139 71 45.3 2276.5 46 39 4 8 82 1 78 2 14 +12904 139 72 51.34 2276.5 46 37 4 8 82 1 76 2 12 +12905 139 73 57.38 2276.5 46 35 4 8 82 1 74 2 10 +12906 139 74 63.42 2276.5 46 36 4 8 82 1 75 2 11 +12907 139 75 69.46 2276.5 46 38 4 8 82 1 77 2 13 +12908 139 76 75.5 2276.5 46 40 4 8 82 1 79 2 15 +12909 139 77 81.54 2276.5 50 39 4 8 83 1 78 2 14 +12910 139 78 87.58 2276.5 50 37 4 8 83 1 76 2 12 +12911 139 79 93.62 2276.5 50 35 4 8 83 1 74 2 10 +12912 139 80 99.66 2276.5 50 36 4 8 83 1 75 2 11 +12913 139 81 105.7 2276.5 50 38 4 8 83 1 77 2 13 +12914 139 82 111.74 2276.5 50 40 4 8 83 1 79 2 15 +12915 139 83 117.78 2276.5 54 39 4 8 84 1 78 2 14 +12916 139 84 123.82 2276.5 54 37 4 8 84 1 76 2 12 +12917 139 85 129.86 2276.5 54 35 4 8 84 1 74 2 10 +12918 139 86 135.9 2276.5 54 33 4 8 84 1 72 2 8 +12919 139 87 141.94 2276.5 54 36 4 8 84 1 75 2 11 +12920 139 88 147.98 2276.5 54 38 4 8 84 1 77 2 13 +12921 139 89 154.02 2276.5 54 40 4 8 84 1 79 2 15 +12922 139 90 160.06 2276.5 58 39 4 8 85 1 78 2 14 +12923 139 91 166.1 2276.5 58 37 4 8 85 1 76 2 12 +12924 139 92 172.14 2276.5 58 35 4 8 85 1 74 2 10 +12925 139 93 178.18 2276.5 58 36 4 8 85 1 75 2 11 +12926 139 94 184.22 2276.5 58 38 4 8 85 1 77 2 13 +12927 139 95 190.26 2276.5 58 40 4 8 85 1 79 2 15 +12928 139 96 196.3 2276.5 62 39 4 8 86 1 78 2 14 +12929 139 97 202.34 2276.5 62 37 4 8 86 1 76 2 12 +12930 139 98 208.38 2276.5 62 35 4 8 86 1 74 2 10 +12931 139 99 214.42 2276.5 62 33 4 8 86 1 72 2 8 +12932 139 100 220.46 2276.5 62 36 4 8 86 1 75 2 11 +12933 139 101 226.5 2276.5 62 38 4 8 86 1 77 2 13 +12934 139 102 232.54 2276.5 62 40 4 8 86 1 79 2 15 +12935 139 103 238.58 2276.5 66 39 4 8 87 1 78 2 14 +12936 139 104 244.62 2276.5 66 37 4 8 87 1 76 2 12 +12937 139 105 250.66 2276.5 66 35 4 8 87 1 74 2 10 +12938 139 106 256.7 2276.5 66 36 4 8 87 1 75 2 11 +12939 139 107 262.74 2276.5 66 38 4 8 87 1 77 2 13 +12940 139 108 268.78 2276.5 66 40 4 8 87 1 79 2 15 +12941 139 109 274.82 2276.5 70 39 4 8 88 1 78 2 14 +12942 139 110 280.86 2276.5 70 37 4 8 88 1 76 2 12 +12943 139 111 286.9 2276.5 70 35 4 8 88 1 74 2 10 +12944 139 112 292.94 2276.5 70 36 4 8 88 1 75 2 11 +12945 139 113 298.98 2276.5 70 38 4 8 88 1 77 2 13 +12946 139 114 305.02 2276.5 70 40 4 8 88 1 79 2 15 +12947 139 115 311.06 2276.5 74 39 4 8 89 1 78 2 14 +12948 139 116 317.1 2276.5 74 37 4 8 89 1 76 2 12 +12949 139 117 323.14 2276.5 74 35 4 8 89 1 74 2 10 +12950 139 118 329.18 2276.5 74 33 4 8 89 1 72 2 8 +12951 139 119 335.22 2276.5 74 36 4 8 89 1 75 2 11 +12952 139 120 341.26 2276.5 74 38 4 8 89 1 77 2 13 +12953 139 121 347.3 2276.5 74 40 4 8 89 1 79 2 15 +12954 139 122 353.34 2276.5 78 39 4 8 90 1 78 2 14 +12955 139 123 359.38 2276.5 78 37 4 8 90 1 76 2 12 +12956 139 124 365.42 2276.5 78 35 4 8 90 1 74 2 10 +12957 139 125 371.46 2276.5 78 36 4 8 90 1 75 2 11 +12958 139 126 377.5 2276.5 78 38 4 8 90 1 77 2 13 +12959 139 127 383.54 2276.5 78 40 4 8 90 1 79 2 15 +12960 140 0 -385.445 2291.5 3 5 4 9 71 2 84 2 20 +12961 140 1 -379.375 2291.5 3 3 4 9 71 2 82 2 18 +12962 140 2 -373.305 2291.5 3 1 4 9 71 2 80 2 16 +12963 140 3 -367.235 2291.5 3 2 4 9 71 2 81 2 17 +12964 140 4 -361.165 2291.5 3 4 4 9 71 2 83 2 19 +12965 140 5 -355.095 2291.5 3 6 4 9 71 2 85 2 21 +12966 140 6 -349.025 2291.5 7 7 4 9 72 2 86 2 22 +12967 140 7 -342.955 2291.5 7 5 4 9 72 2 84 2 20 +12968 140 8 -336.885 2291.5 7 3 4 9 72 2 82 2 18 +12969 140 9 -330.815 2291.5 7 1 4 9 72 2 80 2 16 +12970 140 10 -324.745 2291.5 7 2 4 9 72 2 81 2 17 +12971 140 11 -318.675 2291.5 7 4 4 9 72 2 83 2 19 +12972 140 12 -312.605 2291.5 7 6 4 9 72 2 85 2 21 +12973 140 13 -306.535 2291.5 11 5 4 9 73 2 84 2 20 +12974 140 14 -300.465 2291.5 11 3 4 9 73 2 82 2 18 +12975 140 15 -294.395 2291.5 11 1 4 9 73 2 80 2 16 +12976 140 16 -288.325 2291.5 11 2 4 9 73 2 81 2 17 +12977 140 17 -282.255 2291.5 11 4 4 9 73 2 83 2 19 +12978 140 18 -276.185 2291.5 11 6 4 9 73 2 85 2 21 +12979 140 19 -270.115 2291.5 15 5 4 9 74 2 84 2 20 +12980 140 20 -264.045 2291.5 15 3 4 9 74 2 82 2 18 +12981 140 21 -257.975 2291.5 15 1 4 9 74 2 80 2 16 +12982 140 22 -251.905 2291.5 15 2 4 9 74 2 81 2 17 +12983 140 23 -245.835 2291.5 15 4 4 9 74 2 83 2 19 +12984 140 24 -239.765 2291.5 15 6 4 9 74 2 85 2 21 +12985 140 25 -233.695 2291.5 19 7 4 9 75 2 86 2 22 +12986 140 26 -227.625 2291.5 19 5 4 9 75 2 84 2 20 +12987 140 27 -221.555 2291.5 19 3 4 9 75 2 82 2 18 +12988 140 28 -215.485 2291.5 19 1 4 9 75 2 80 2 16 +12989 140 29 -209.415 2291.5 19 2 4 9 75 2 81 2 17 +12990 140 30 -203.345 2291.5 19 4 4 9 75 2 83 2 19 +12991 140 31 -197.275 2291.5 19 6 4 9 75 2 85 2 21 +12992 140 32 -191.205 2291.5 23 5 4 9 76 2 84 2 20 +12993 140 33 -185.135 2291.5 23 3 4 9 76 2 82 2 18 +12994 140 34 -179.065 2291.5 23 1 4 9 76 2 80 2 16 +12995 140 35 -172.995 2291.5 23 2 4 9 76 2 81 2 17 +12996 140 36 -166.925 2291.5 23 4 4 9 76 2 83 2 19 +12997 140 37 -160.855 2291.5 23 6 4 9 76 2 85 2 21 +12998 140 38 -154.785 2291.5 27 7 4 9 77 2 86 2 22 +12999 140 39 -148.715 2291.5 27 5 4 9 77 2 84 2 20 +13000 140 40 -142.645 2291.5 27 3 4 9 77 2 82 2 18 +13001 140 41 -136.575 2291.5 27 1 4 9 77 2 80 2 16 +13002 140 42 -130.505 2291.5 27 2 4 9 77 2 81 2 17 +13003 140 43 -124.435 2291.5 27 4 4 9 77 2 83 2 19 +13004 140 44 -118.365 2291.5 27 6 4 9 77 2 85 2 21 +13005 140 45 -112.295 2291.5 31 5 4 9 78 2 84 2 20 +13006 140 46 -106.225 2291.5 31 3 4 9 78 2 82 2 18 +13007 140 47 -100.155 2291.5 31 1 4 9 78 2 80 2 16 +13008 140 48 -94.085 2291.5 31 2 4 9 78 2 81 2 17 +13009 140 49 -88.015 2291.5 31 4 4 9 78 2 83 2 19 +13010 140 50 -81.945 2291.5 31 6 4 9 78 2 85 2 21 +13011 140 51 -75.875 2291.5 35 7 4 9 79 2 86 2 22 +13012 140 52 -69.805 2291.5 35 5 4 9 79 2 84 2 20 +13013 140 53 -63.735 2291.5 35 3 4 9 79 2 82 2 18 +13014 140 54 -57.665 2291.5 35 1 4 9 79 2 80 2 16 +13015 140 55 -51.595 2291.5 35 2 4 9 79 2 81 2 17 +13016 140 56 -45.525 2291.5 35 4 4 9 79 2 83 2 19 +13017 140 57 -39.455 2291.5 35 6 4 9 79 2 85 2 21 +13018 140 58 -33.385 2291.5 39 5 4 9 80 2 84 2 20 +13019 140 59 -27.315 2291.5 39 3 4 9 80 2 82 2 18 +13020 140 60 -21.245 2291.5 39 1 4 9 80 2 80 2 16 +13021 140 61 -15.175 2291.5 39 2 4 9 80 2 81 2 17 +13022 140 62 -9.105 2291.5 39 4 4 9 80 2 83 2 19 +13023 140 63 -3.035 2291.5 39 6 4 9 80 2 85 2 21 +13024 140 64 3.035 2291.5 43 5 4 9 81 2 84 2 20 +13025 140 65 9.105 2291.5 43 3 4 9 81 2 82 2 18 +13026 140 66 15.175 2291.5 43 1 4 9 81 2 80 2 16 +13027 140 67 21.245 2291.5 43 2 4 9 81 2 81 2 17 +13028 140 68 27.315 2291.5 43 4 4 9 81 2 83 2 19 +13029 140 69 33.385 2291.5 43 6 4 9 81 2 85 2 21 +13030 140 70 39.455 2291.5 47 5 4 9 82 2 84 2 20 +13031 140 71 45.525 2291.5 47 3 4 9 82 2 82 2 18 +13032 140 72 51.595 2291.5 47 1 4 9 82 2 80 2 16 +13033 140 73 57.665 2291.5 47 2 4 9 82 2 81 2 17 +13034 140 74 63.735 2291.5 47 4 4 9 82 2 83 2 19 +13035 140 75 69.805 2291.5 47 6 4 9 82 2 85 2 21 +13036 140 76 75.875 2291.5 47 8 4 9 82 2 87 2 23 +13037 140 77 81.945 2291.5 51 5 4 9 83 2 84 2 20 +13038 140 78 88.015 2291.5 51 3 4 9 83 2 82 2 18 +13039 140 79 94.085 2291.5 51 1 4 9 83 2 80 2 16 +13040 140 80 100.155 2291.5 51 2 4 9 83 2 81 2 17 +13041 140 81 106.225 2291.5 51 4 4 9 83 2 83 2 19 +13042 140 82 112.295 2291.5 51 6 4 9 83 2 85 2 21 +13043 140 83 118.365 2291.5 55 5 4 9 84 2 84 2 20 +13044 140 84 124.435 2291.5 55 3 4 9 84 2 82 2 18 +13045 140 85 130.505 2291.5 55 1 4 9 84 2 80 2 16 +13046 140 86 136.575 2291.5 55 2 4 9 84 2 81 2 17 +13047 140 87 142.645 2291.5 55 4 4 9 84 2 83 2 19 +13048 140 88 148.715 2291.5 55 6 4 9 84 2 85 2 21 +13049 140 89 154.785 2291.5 55 8 4 9 84 2 87 2 23 +13050 140 90 160.855 2291.5 59 5 4 9 85 2 84 2 20 +13051 140 91 166.925 2291.5 59 3 4 9 85 2 82 2 18 +13052 140 92 172.995 2291.5 59 1 4 9 85 2 80 2 16 +13053 140 93 179.065 2291.5 59 2 4 9 85 2 81 2 17 +13054 140 94 185.135 2291.5 59 4 4 9 85 2 83 2 19 +13055 140 95 191.205 2291.5 59 6 4 9 85 2 85 2 21 +13056 140 96 197.275 2291.5 63 5 4 9 86 2 84 2 20 +13057 140 97 203.345 2291.5 63 3 4 9 86 2 82 2 18 +13058 140 98 209.415 2291.5 63 1 4 9 86 2 80 2 16 +13059 140 99 215.485 2291.5 63 2 4 9 86 2 81 2 17 +13060 140 100 221.555 2291.5 63 4 4 9 86 2 83 2 19 +13061 140 101 227.625 2291.5 63 6 4 9 86 2 85 2 21 +13062 140 102 233.695 2291.5 63 8 4 9 86 2 87 2 23 +13063 140 103 239.765 2291.5 67 5 4 9 87 2 84 2 20 +13064 140 104 245.835 2291.5 67 3 4 9 87 2 82 2 18 +13065 140 105 251.905 2291.5 67 1 4 9 87 2 80 2 16 +13066 140 106 257.975 2291.5 67 2 4 9 87 2 81 2 17 +13067 140 107 264.045 2291.5 67 4 4 9 87 2 83 2 19 +13068 140 108 270.115 2291.5 67 6 4 9 87 2 85 2 21 +13069 140 109 276.185 2291.5 71 5 4 9 88 2 84 2 20 +13070 140 110 282.255 2291.5 71 3 4 9 88 2 82 2 18 +13071 140 111 288.325 2291.5 71 1 4 9 88 2 80 2 16 +13072 140 112 294.395 2291.5 71 2 4 9 88 2 81 2 17 +13073 140 113 300.465 2291.5 71 4 4 9 88 2 83 2 19 +13074 140 114 306.535 2291.5 71 6 4 9 88 2 85 2 21 +13075 140 115 312.605 2291.5 75 5 4 9 89 2 84 2 20 +13076 140 116 318.675 2291.5 75 3 4 9 89 2 82 2 18 +13077 140 117 324.745 2291.5 75 1 4 9 89 2 80 2 16 +13078 140 118 330.815 2291.5 75 2 4 9 89 2 81 2 17 +13079 140 119 336.885 2291.5 75 4 4 9 89 2 83 2 19 +13080 140 120 342.955 2291.5 75 6 4 9 89 2 85 2 21 +13081 140 121 349.025 2291.5 75 8 4 9 89 2 87 2 23 +13082 140 122 355.095 2291.5 79 5 4 9 90 2 84 2 20 +13083 140 123 361.165 2291.5 79 3 4 9 90 2 82 2 18 +13084 140 124 367.235 2291.5 79 1 4 9 90 2 80 2 16 +13085 140 125 373.305 2291.5 79 2 4 9 90 2 81 2 17 +13086 140 126 379.375 2291.5 79 4 4 9 90 2 83 2 19 +13087 140 127 385.445 2291.5 79 6 4 9 90 2 85 2 21 +13088 141 0 -391.515 2306.5 3 11 4 9 71 2 90 2 26 +13089 141 1 -385.445 2306.5 3 9 4 9 71 2 88 2 24 +13090 141 2 -379.375 2306.5 3 7 4 9 71 2 86 2 22 +13091 141 3 -373.305 2306.5 3 8 4 9 71 2 87 2 23 +13092 141 4 -367.235 2306.5 3 10 4 9 71 2 89 2 25 +13093 141 5 -361.165 2306.5 3 12 4 9 71 2 91 2 27 +13094 141 6 -355.095 2306.5 3 14 4 9 71 2 93 2 29 +13095 141 7 -349.025 2306.5 7 13 4 9 72 2 92 2 28 +13096 141 8 -342.955 2306.5 7 11 4 9 72 2 90 2 26 +13097 141 9 -336.885 2306.5 7 9 4 9 72 2 88 2 24 +13098 141 10 -330.815 2306.5 7 8 4 9 72 2 87 2 23 +13099 141 11 -324.745 2306.5 7 10 4 9 72 2 89 2 25 +13100 141 12 -318.675 2306.5 7 12 4 9 72 2 91 2 27 +13101 141 13 -312.605 2306.5 11 13 4 9 73 2 92 2 28 +13102 141 14 -306.535 2306.5 11 11 4 9 73 2 90 2 26 +13103 141 15 -300.465 2306.5 11 9 4 9 73 2 88 2 24 +13104 141 16 -294.395 2306.5 11 7 4 9 73 2 86 2 22 +13105 141 17 -288.325 2306.5 11 8 4 9 73 2 87 2 23 +13106 141 18 -282.255 2306.5 11 10 4 9 73 2 89 2 25 +13107 141 19 -276.185 2306.5 11 12 4 9 73 2 91 2 27 +13108 141 20 -270.115 2306.5 15 11 4 9 74 2 90 2 26 +13109 141 21 -264.045 2306.5 15 9 4 9 74 2 88 2 24 +13110 141 22 -257.975 2306.5 15 7 4 9 74 2 86 2 22 +13111 141 23 -251.905 2306.5 15 8 4 9 74 2 87 2 23 +13112 141 24 -245.835 2306.5 15 10 4 9 74 2 89 2 25 +13113 141 25 -239.765 2306.5 15 12 4 9 74 2 91 2 27 +13114 141 26 -233.695 2306.5 19 13 4 9 75 2 92 2 28 +13115 141 27 -227.625 2306.5 19 11 4 9 75 2 90 2 26 +13116 141 28 -221.555 2306.5 19 9 4 9 75 2 88 2 24 +13117 141 29 -215.485 2306.5 19 8 4 9 75 2 87 2 23 +13118 141 30 -209.415 2306.5 19 10 4 9 75 2 89 2 25 +13119 141 31 -203.345 2306.5 19 12 4 9 75 2 91 2 27 +13120 141 32 -197.275 2306.5 19 14 4 9 75 2 93 2 29 +13121 141 33 -191.205 2306.5 23 11 4 9 76 2 90 2 26 +13122 141 34 -185.135 2306.5 23 9 4 9 76 2 88 2 24 +13123 141 35 -179.065 2306.5 23 7 4 9 76 2 86 2 22 +13124 141 36 -172.995 2306.5 23 8 4 9 76 2 87 2 23 +13125 141 37 -166.925 2306.5 23 10 4 9 76 2 89 2 25 +13126 141 38 -160.855 2306.5 23 12 4 9 76 2 91 2 27 +13127 141 39 -154.785 2306.5 27 13 4 9 77 2 92 2 28 +13128 141 40 -148.715 2306.5 27 11 4 9 77 2 90 2 26 +13129 141 41 -142.645 2306.5 27 9 4 9 77 2 88 2 24 +13130 141 42 -136.575 2306.5 27 8 4 9 77 2 87 2 23 +13131 141 43 -130.505 2306.5 27 10 4 9 77 2 89 2 25 +13132 141 44 -124.435 2306.5 27 12 4 9 77 2 91 2 27 +13133 141 45 -118.365 2306.5 27 14 4 9 77 2 93 2 29 +13134 141 46 -112.295 2306.5 31 11 4 9 78 2 90 2 26 +13135 141 47 -106.225 2306.5 31 9 4 9 78 2 88 2 24 +13136 141 48 -100.155 2306.5 31 7 4 9 78 2 86 2 22 +13137 141 49 -94.085 2306.5 31 8 4 9 78 2 87 2 23 +13138 141 50 -88.015 2306.5 31 10 4 9 78 2 89 2 25 +13139 141 51 -81.945 2306.5 31 12 4 9 78 2 91 2 27 +13140 141 52 -75.875 2306.5 35 13 4 9 79 2 92 2 28 +13141 141 53 -69.805 2306.5 35 11 4 9 79 2 90 2 26 +13142 141 54 -63.735 2306.5 35 9 4 9 79 2 88 2 24 +13143 141 55 -57.665 2306.5 35 8 4 9 79 2 87 2 23 +13144 141 56 -51.595 2306.5 35 10 4 9 79 2 89 2 25 +13145 141 57 -45.525 2306.5 35 12 4 9 79 2 91 2 27 +13146 141 58 -39.455 2306.5 35 14 4 9 79 2 93 2 29 +13147 141 59 -33.385 2306.5 39 11 4 9 80 2 90 2 26 +13148 141 60 -27.315 2306.5 39 9 4 9 80 2 88 2 24 +13149 141 61 -21.245 2306.5 39 7 4 9 80 2 86 2 22 +13150 141 62 -15.175 2306.5 39 8 4 9 80 2 87 2 23 +13151 141 63 -9.105 2306.5 39 10 4 9 80 2 89 2 25 +13152 141 64 -3.035 2306.5 39 12 4 9 80 2 91 2 27 +13153 141 65 3.035 2306.5 43 11 4 9 81 2 90 2 26 +13154 141 66 9.105 2306.5 43 9 4 9 81 2 88 2 24 +13155 141 67 15.175 2306.5 43 7 4 9 81 2 86 2 22 +13156 141 68 21.245 2306.5 43 8 4 9 81 2 87 2 23 +13157 141 69 27.315 2306.5 43 10 4 9 81 2 89 2 25 +13158 141 70 33.385 2306.5 43 12 4 9 81 2 91 2 27 +13159 141 71 39.455 2306.5 47 13 4 9 82 2 92 2 28 +13160 141 72 45.525 2306.5 47 11 4 9 82 2 90 2 26 +13161 141 73 51.595 2306.5 47 9 4 9 82 2 88 2 24 +13162 141 74 57.665 2306.5 47 7 4 9 82 2 86 2 22 +13163 141 75 63.735 2306.5 47 10 4 9 82 2 89 2 25 +13164 141 76 69.805 2306.5 47 12 4 9 82 2 91 2 27 +13165 141 77 75.875 2306.5 47 14 4 9 82 2 93 2 29 +13166 141 78 81.945 2306.5 51 11 4 9 83 2 90 2 26 +13167 141 79 88.015 2306.5 51 9 4 9 83 2 88 2 24 +13168 141 80 94.085 2306.5 51 7 4 9 83 2 86 2 22 +13169 141 81 100.155 2306.5 51 8 4 9 83 2 87 2 23 +13170 141 82 106.225 2306.5 51 10 4 9 83 2 89 2 25 +13171 141 83 112.295 2306.5 51 12 4 9 83 2 91 2 27 +13172 141 84 118.365 2306.5 55 13 4 9 84 2 92 2 28 +13173 141 85 124.435 2306.5 55 11 4 9 84 2 90 2 26 +13174 141 86 130.505 2306.5 55 9 4 9 84 2 88 2 24 +13175 141 87 136.575 2306.5 55 7 4 9 84 2 86 2 22 +13176 141 88 142.645 2306.5 55 10 4 9 84 2 89 2 25 +13177 141 89 148.715 2306.5 55 12 4 9 84 2 91 2 27 +13178 141 90 154.785 2306.5 55 14 4 9 84 2 93 2 29 +13179 141 91 160.855 2306.5 59 11 4 9 85 2 90 2 26 +13180 141 92 166.925 2306.5 59 9 4 9 85 2 88 2 24 +13181 141 93 172.995 2306.5 59 7 4 9 85 2 86 2 22 +13182 141 94 179.065 2306.5 59 8 4 9 85 2 87 2 23 +13183 141 95 185.135 2306.5 59 10 4 9 85 2 89 2 25 +13184 141 96 191.205 2306.5 59 12 4 9 85 2 91 2 27 +13185 141 97 197.275 2306.5 63 13 4 9 86 2 92 2 28 +13186 141 98 203.345 2306.5 63 11 4 9 86 2 90 2 26 +13187 141 99 209.415 2306.5 63 9 4 9 86 2 88 2 24 +13188 141 100 215.485 2306.5 63 7 4 9 86 2 86 2 22 +13189 141 101 221.555 2306.5 63 10 4 9 86 2 89 2 25 +13190 141 102 227.625 2306.5 63 12 4 9 86 2 91 2 27 +13191 141 103 233.695 2306.5 63 14 4 9 86 2 93 2 29 +13192 141 104 239.765 2306.5 67 11 4 9 87 2 90 2 26 +13193 141 105 245.835 2306.5 67 9 4 9 87 2 88 2 24 +13194 141 106 251.905 2306.5 67 7 4 9 87 2 86 2 22 +13195 141 107 257.975 2306.5 67 8 4 9 87 2 87 2 23 +13196 141 108 264.045 2306.5 67 10 4 9 87 2 89 2 25 +13197 141 109 270.115 2306.5 67 12 4 9 87 2 91 2 27 +13198 141 110 276.185 2306.5 71 11 4 9 88 2 90 2 26 +13199 141 111 282.255 2306.5 71 9 4 9 88 2 88 2 24 +13200 141 112 288.325 2306.5 71 7 4 9 88 2 86 2 22 +13201 141 113 294.395 2306.5 71 8 4 9 88 2 87 2 23 +13202 141 114 300.465 2306.5 71 10 4 9 88 2 89 2 25 +13203 141 115 306.535 2306.5 71 12 4 9 88 2 91 2 27 +13204 141 116 312.605 2306.5 71 14 4 9 88 2 93 2 29 +13205 141 117 318.675 2306.5 75 11 4 9 89 2 90 2 26 +13206 141 118 324.745 2306.5 75 9 4 9 89 2 88 2 24 +13207 141 119 330.815 2306.5 75 7 4 9 89 2 86 2 22 +13208 141 120 336.885 2306.5 75 10 4 9 89 2 89 2 25 +13209 141 121 342.955 2306.5 75 12 4 9 89 2 91 2 27 +13210 141 122 349.025 2306.5 75 14 4 9 89 2 93 2 29 +13211 141 123 355.095 2306.5 79 13 4 9 90 2 92 2 28 +13212 141 124 361.165 2306.5 79 11 4 9 90 2 90 2 26 +13213 141 125 367.235 2306.5 79 9 4 9 90 2 88 2 24 +13214 141 126 373.305 2306.5 79 7 4 9 90 2 86 2 22 +13215 141 127 379.375 2306.5 79 8 4 9 90 2 87 2 23 +13216 141 128 385.445 2306.5 79 10 4 9 90 2 89 2 25 +13217 141 129 391.515 2306.5 79 12 4 9 90 2 91 2 27 +13218 142 0 -391.515 2321.5 3 17 4 9 71 2 96 3 0 +13219 142 1 -385.445 2321.5 3 15 4 9 71 2 94 2 30 +13220 142 2 -379.375 2321.5 3 13 4 9 71 2 92 2 28 +13221 142 3 -373.305 2321.5 3 16 4 9 71 2 95 2 31 +13222 142 4 -367.235 2321.5 3 18 4 9 71 2 97 3 1 +13223 142 5 -361.165 2321.5 3 20 4 9 71 2 99 3 3 +13224 142 6 -355.095 2321.5 7 21 4 9 72 2 100 3 4 +13225 142 7 -349.025 2321.5 7 19 4 9 72 2 98 3 2 +13226 142 8 -342.955 2321.5 7 17 4 9 72 2 96 3 0 +13227 142 9 -336.885 2321.5 7 15 4 9 72 2 94 2 30 +13228 142 10 -330.815 2321.5 7 14 4 9 72 2 93 2 29 +13229 142 11 -324.745 2321.5 7 16 4 9 72 2 95 2 31 +13230 142 12 -318.675 2321.5 7 18 4 9 72 2 97 3 1 +13231 142 13 -312.605 2321.5 11 19 4 9 73 2 98 3 2 +13232 142 14 -306.535 2321.5 11 17 4 9 73 2 96 3 0 +13233 142 15 -300.465 2321.5 11 15 4 9 73 2 94 2 30 +13234 142 16 -294.395 2321.5 11 14 4 9 73 2 93 2 29 +13235 142 17 -288.325 2321.5 11 16 4 9 73 2 95 2 31 +13236 142 18 -282.255 2321.5 11 18 4 9 73 2 97 3 1 +13237 142 19 -276.185 2321.5 15 19 4 9 74 2 98 3 2 +13238 142 20 -270.115 2321.5 15 17 4 9 74 2 96 3 0 +13239 142 21 -264.045 2321.5 15 15 4 9 74 2 94 2 30 +13240 142 22 -257.975 2321.5 15 13 4 9 74 2 92 2 28 +13241 142 23 -251.905 2321.5 15 14 4 9 74 2 93 2 29 +13242 142 24 -245.835 2321.5 15 16 4 9 74 2 95 2 31 +13243 142 25 -239.765 2321.5 15 18 4 9 74 2 97 3 1 +13244 142 26 -233.695 2321.5 19 19 4 9 75 2 98 3 2 +13245 142 27 -227.625 2321.5 19 17 4 9 75 2 96 3 0 +13246 142 28 -221.555 2321.5 19 15 4 9 75 2 94 2 30 +13247 142 29 -215.485 2321.5 19 16 4 9 75 2 95 2 31 +13248 142 30 -209.415 2321.5 19 18 4 9 75 2 97 3 1 +13249 142 31 -203.345 2321.5 19 20 4 9 75 2 99 3 3 +13250 142 32 -197.275 2321.5 23 19 4 9 76 2 98 3 2 +13251 142 33 -191.205 2321.5 23 17 4 9 76 2 96 3 0 +13252 142 34 -185.135 2321.5 23 15 4 9 76 2 94 2 30 +13253 142 35 -179.065 2321.5 23 13 4 9 76 2 92 2 28 +13254 142 36 -172.995 2321.5 23 14 4 9 76 2 93 2 29 +13255 142 37 -166.925 2321.5 23 16 4 9 76 2 95 2 31 +13256 142 38 -160.855 2321.5 23 18 4 9 76 2 97 3 1 +13257 142 39 -154.785 2321.5 27 19 4 9 77 2 98 3 2 +13258 142 40 -148.715 2321.5 27 17 4 9 77 2 96 3 0 +13259 142 41 -142.645 2321.5 27 15 4 9 77 2 94 2 30 +13260 142 42 -136.575 2321.5 27 16 4 9 77 2 95 2 31 +13261 142 43 -130.505 2321.5 27 18 4 9 77 2 97 3 1 +13262 142 44 -124.435 2321.5 27 20 4 9 77 2 99 3 3 +13263 142 45 -118.365 2321.5 31 19 4 9 78 2 98 3 2 +13264 142 46 -112.295 2321.5 31 17 4 9 78 2 96 3 0 +13265 142 47 -106.225 2321.5 31 15 4 9 78 2 94 2 30 +13266 142 48 -100.155 2321.5 31 13 4 9 78 2 92 2 28 +13267 142 49 -94.085 2321.5 31 14 4 9 78 2 93 2 29 +13268 142 50 -88.015 2321.5 31 16 4 9 78 2 95 2 31 +13269 142 51 -81.945 2321.5 31 18 4 9 78 2 97 3 1 +13270 142 52 -75.875 2321.5 35 21 4 9 79 2 100 3 4 +13271 142 53 -69.805 2321.5 35 19 4 9 79 2 98 3 2 +13272 142 54 -63.735 2321.5 35 17 4 9 79 2 96 3 0 +13273 142 55 -57.665 2321.5 35 15 4 9 79 2 94 2 30 +13274 142 56 -51.595 2321.5 35 16 4 9 79 2 95 2 31 +13275 142 57 -45.525 2321.5 35 18 4 9 79 2 97 3 1 +13276 142 58 -39.455 2321.5 35 20 4 9 79 2 99 3 3 +13277 142 59 -33.385 2321.5 39 17 4 9 80 2 96 3 0 +13278 142 60 -27.315 2321.5 39 15 4 9 80 2 94 2 30 +13279 142 61 -21.245 2321.5 39 13 4 9 80 2 92 2 28 +13280 142 62 -15.175 2321.5 39 14 4 9 80 2 93 2 29 +13281 142 63 -9.105 2321.5 39 16 4 9 80 2 95 2 31 +13282 142 64 -3.035 2321.5 39 18 4 9 80 2 97 3 1 +13283 142 65 3.035 2321.5 43 17 4 9 81 2 96 3 0 +13284 142 66 9.105 2321.5 43 15 4 9 81 2 94 2 30 +13285 142 67 15.175 2321.5 43 13 4 9 81 2 92 2 28 +13286 142 68 21.245 2321.5 43 14 4 9 81 2 93 2 29 +13287 142 69 27.315 2321.5 43 16 4 9 81 2 95 2 31 +13288 142 70 33.385 2321.5 43 18 4 9 81 2 97 3 1 +13289 142 71 39.455 2321.5 47 19 4 9 82 2 98 3 2 +13290 142 72 45.525 2321.5 47 17 4 9 82 2 96 3 0 +13291 142 73 51.595 2321.5 47 15 4 9 82 2 94 2 30 +13292 142 74 57.665 2321.5 47 16 4 9 82 2 95 2 31 +13293 142 75 63.735 2321.5 47 18 4 9 82 2 97 3 1 +13294 142 76 69.805 2321.5 47 20 4 9 82 2 99 3 3 +13295 142 77 75.875 2321.5 47 22 4 9 82 2 101 3 5 +13296 142 78 81.945 2321.5 51 17 4 9 83 2 96 3 0 +13297 142 79 88.015 2321.5 51 15 4 9 83 2 94 2 30 +13298 142 80 94.085 2321.5 51 13 4 9 83 2 92 2 28 +13299 142 81 100.155 2321.5 51 14 4 9 83 2 93 2 29 +13300 142 82 106.225 2321.5 51 16 4 9 83 2 95 2 31 +13301 142 83 112.295 2321.5 51 18 4 9 83 2 97 3 1 +13302 142 84 118.365 2321.5 51 20 4 9 83 2 99 3 3 +13303 142 85 124.435 2321.5 55 19 4 9 84 2 98 3 2 +13304 142 86 130.505 2321.5 55 17 4 9 84 2 96 3 0 +13305 142 87 136.575 2321.5 55 15 4 9 84 2 94 2 30 +13306 142 88 142.645 2321.5 55 16 4 9 84 2 95 2 31 +13307 142 89 148.715 2321.5 55 18 4 9 84 2 97 3 1 +13308 142 90 154.785 2321.5 55 20 4 9 84 2 99 3 3 +13309 142 91 160.855 2321.5 59 17 4 9 85 2 96 3 0 +13310 142 92 166.925 2321.5 59 15 4 9 85 2 94 2 30 +13311 142 93 172.995 2321.5 59 13 4 9 85 2 92 2 28 +13312 142 94 179.065 2321.5 59 14 4 9 85 2 93 2 29 +13313 142 95 185.135 2321.5 59 16 4 9 85 2 95 2 31 +13314 142 96 191.205 2321.5 59 18 4 9 85 2 97 3 1 +13315 142 97 197.275 2321.5 59 20 4 9 85 2 99 3 3 +13316 142 98 203.345 2321.5 63 19 4 9 86 2 98 3 2 +13317 142 99 209.415 2321.5 63 17 4 9 86 2 96 3 0 +13318 142 100 215.485 2321.5 63 15 4 9 86 2 94 2 30 +13319 142 101 221.555 2321.5 63 16 4 9 86 2 95 2 31 +13320 142 102 227.625 2321.5 63 18 4 9 86 2 97 3 1 +13321 142 103 233.695 2321.5 63 20 4 9 86 2 99 3 3 +13322 142 104 239.765 2321.5 67 17 4 9 87 2 96 3 0 +13323 142 105 245.835 2321.5 67 15 4 9 87 2 94 2 30 +13324 142 106 251.905 2321.5 67 13 4 9 87 2 92 2 28 +13325 142 107 257.975 2321.5 67 14 4 9 87 2 93 2 29 +13326 142 108 264.045 2321.5 67 16 4 9 87 2 95 2 31 +13327 142 109 270.115 2321.5 67 18 4 9 87 2 97 3 1 +13328 142 110 276.185 2321.5 67 20 4 9 87 2 99 3 3 +13329 142 111 282.255 2321.5 71 17 4 9 88 2 96 3 0 +13330 142 112 288.325 2321.5 71 15 4 9 88 2 94 2 30 +13331 142 113 294.395 2321.5 71 13 4 9 88 2 92 2 28 +13332 142 114 300.465 2321.5 71 16 4 9 88 2 95 2 31 +13333 142 115 306.535 2321.5 71 18 4 9 88 2 97 3 1 +13334 142 116 312.605 2321.5 71 20 4 9 88 2 99 3 3 +13335 142 117 318.675 2321.5 75 17 4 9 89 2 96 3 0 +13336 142 118 324.745 2321.5 75 15 4 9 89 2 94 2 30 +13337 142 119 330.815 2321.5 75 13 4 9 89 2 92 2 28 +13338 142 120 336.885 2321.5 75 16 4 9 89 2 95 2 31 +13339 142 121 342.955 2321.5 75 18 4 9 89 2 97 3 1 +13340 142 122 349.025 2321.5 75 20 4 9 89 2 99 3 3 +13341 142 123 355.095 2321.5 75 22 4 9 89 2 101 3 5 +13342 142 124 361.165 2321.5 79 19 4 9 90 2 98 3 2 +13343 142 125 367.235 2321.5 79 17 4 9 90 2 96 3 0 +13344 142 126 373.305 2321.5 79 15 4 9 90 2 94 2 30 +13345 142 127 379.375 2321.5 79 14 4 9 90 2 93 2 29 +13346 142 128 385.445 2321.5 79 16 4 9 90 2 95 2 31 +13347 142 129 391.515 2321.5 79 18 4 9 90 2 97 3 1 +13348 143 0 -397.585 2336.5 3 25 4 9 71 2 104 3 8 +13349 143 1 -391.515 2336.5 3 23 4 9 71 2 102 3 6 +13350 143 2 -385.445 2336.5 3 21 4 9 71 2 100 3 4 +13351 143 3 -379.375 2336.5 3 19 4 9 71 2 98 3 2 +13352 143 4 -373.305 2336.5 3 22 4 9 71 2 101 3 5 +13353 143 5 -367.235 2336.5 3 24 4 9 71 2 103 3 7 +13354 143 6 -361.165 2336.5 3 26 4 9 71 2 105 3 9 +13355 143 7 -355.095 2336.5 7 27 4 9 72 2 106 3 10 +13356 143 8 -349.025 2336.5 7 25 4 9 72 2 104 3 8 +13357 143 9 -342.955 2336.5 7 23 4 9 72 2 102 3 6 +13358 143 10 -336.885 2336.5 7 20 4 9 72 2 99 3 3 +13359 143 11 -330.815 2336.5 7 22 4 9 72 2 101 3 5 +13360 143 12 -324.745 2336.5 7 24 4 9 72 2 103 3 7 +13361 143 13 -318.675 2336.5 7 26 4 9 72 2 105 3 9 +13362 143 14 -312.605 2336.5 11 25 4 9 73 2 104 3 8 +13363 143 15 -306.535 2336.5 11 23 4 9 73 2 102 3 6 +13364 143 16 -300.465 2336.5 11 21 4 9 73 2 100 3 4 +13365 143 17 -294.395 2336.5 11 20 4 9 73 2 99 3 3 +13366 143 18 -288.325 2336.5 11 22 4 9 73 2 101 3 5 +13367 143 19 -282.255 2336.5 11 24 4 9 73 2 103 3 7 +13368 143 20 -276.185 2336.5 15 25 4 9 74 2 104 3 8 +13369 143 21 -270.115 2336.5 15 23 4 9 74 2 102 3 6 +13370 143 22 -264.045 2336.5 15 21 4 9 74 2 100 3 4 +13371 143 23 -257.975 2336.5 15 20 4 9 74 2 99 3 3 +13372 143 24 -251.905 2336.5 15 22 4 9 74 2 101 3 5 +13373 143 25 -245.835 2336.5 15 24 4 9 74 2 103 3 7 +13374 143 26 -239.765 2336.5 15 26 4 9 74 2 105 3 9 +13375 143 27 -233.695 2336.5 19 25 4 9 75 2 104 3 8 +13376 143 28 -227.625 2336.5 19 23 4 9 75 2 102 3 6 +13377 143 29 -221.555 2336.5 19 21 4 9 75 2 100 3 4 +13378 143 30 -215.485 2336.5 19 22 4 9 75 2 101 3 5 +13379 143 31 -209.415 2336.5 19 24 4 9 75 2 103 3 7 +13380 143 32 -203.345 2336.5 19 26 4 9 75 2 105 3 9 +13381 143 33 -197.275 2336.5 23 25 4 9 76 2 104 3 8 +13382 143 34 -191.205 2336.5 23 23 4 9 76 2 102 3 6 +13383 143 35 -185.135 2336.5 23 21 4 9 76 2 100 3 4 +13384 143 36 -179.065 2336.5 23 20 4 9 76 2 99 3 3 +13385 143 37 -172.995 2336.5 23 22 4 9 76 2 101 3 5 +13386 143 38 -166.925 2336.5 23 24 4 9 76 2 103 3 7 +13387 143 39 -160.855 2336.5 23 26 4 9 76 2 105 3 9 +13388 143 40 -154.785 2336.5 27 25 4 9 77 2 104 3 8 +13389 143 41 -148.715 2336.5 27 23 4 9 77 2 102 3 6 +13390 143 42 -142.645 2336.5 27 21 4 9 77 2 100 3 4 +13391 143 43 -136.575 2336.5 27 22 4 9 77 2 101 3 5 +13392 143 44 -130.505 2336.5 27 24 4 9 77 2 103 3 7 +13393 143 45 -124.435 2336.5 27 26 4 9 77 2 105 3 9 +13394 143 46 -118.365 2336.5 31 25 4 9 78 2 104 3 8 +13395 143 47 -112.295 2336.5 31 23 4 9 78 2 102 3 6 +13396 143 48 -106.225 2336.5 31 21 4 9 78 2 100 3 4 +13397 143 49 -100.155 2336.5 31 20 4 9 78 2 99 3 3 +13398 143 50 -94.085 2336.5 31 22 4 9 78 2 101 3 5 +13399 143 51 -88.015 2336.5 31 24 4 9 78 2 103 3 7 +13400 143 52 -81.945 2336.5 31 26 4 9 78 2 105 3 9 +13401 143 53 -75.875 2336.5 35 27 4 9 79 2 106 3 10 +13402 143 54 -69.805 2336.5 35 25 4 9 79 2 104 3 8 +13403 143 55 -63.735 2336.5 35 23 4 9 79 2 102 3 6 +13404 143 56 -57.665 2336.5 35 22 4 9 79 2 101 3 5 +13405 143 57 -51.595 2336.5 35 24 4 9 79 2 103 3 7 +13406 143 58 -45.525 2336.5 35 26 4 9 79 2 105 3 9 +13407 143 59 -39.455 2336.5 35 28 4 9 79 2 107 3 11 +13408 143 60 -33.385 2336.5 39 23 4 9 80 2 102 3 6 +13409 143 61 -27.315 2336.5 39 21 4 9 80 2 100 3 4 +13410 143 62 -21.245 2336.5 39 19 4 9 80 2 98 3 2 +13411 143 63 -15.175 2336.5 39 20 4 9 80 2 99 3 3 +13412 143 64 -9.105 2336.5 39 22 4 9 80 2 101 3 5 +13413 143 65 -3.035 2336.5 39 24 4 9 80 2 103 3 7 +13414 143 66 3.035 2336.5 43 23 4 9 81 2 102 3 6 +13415 143 67 9.105 2336.5 43 21 4 9 81 2 100 3 4 +13416 143 68 15.175 2336.5 43 19 4 9 81 2 98 3 2 +13417 143 69 21.245 2336.5 43 20 4 9 81 2 99 3 3 +13418 143 70 27.315 2336.5 43 22 4 9 81 2 101 3 5 +13419 143 71 33.385 2336.5 43 24 4 9 81 2 103 3 7 +13420 143 72 39.455 2336.5 47 27 4 9 82 2 106 3 10 +13421 143 73 45.525 2336.5 47 25 4 9 82 2 104 3 8 +13422 143 74 51.595 2336.5 47 23 4 9 82 2 102 3 6 +13423 143 75 57.665 2336.5 47 21 4 9 82 2 100 3 4 +13424 143 76 63.735 2336.5 47 24 4 9 82 2 103 3 7 +13425 143 77 69.805 2336.5 47 26 4 9 82 2 105 3 9 +13426 143 78 75.875 2336.5 47 28 4 9 82 2 107 3 11 +13427 143 79 81.945 2336.5 51 25 4 9 83 2 104 3 8 +13428 143 80 88.015 2336.5 51 23 4 9 83 2 102 3 6 +13429 143 81 94.085 2336.5 51 21 4 9 83 2 100 3 4 +13430 143 82 100.155 2336.5 51 19 4 9 83 2 98 3 2 +13431 143 83 106.225 2336.5 51 22 4 9 83 2 101 3 5 +13432 143 84 112.295 2336.5 51 24 4 9 83 2 103 3 7 +13433 143 85 118.365 2336.5 51 26 4 9 83 2 105 3 9 +13434 143 86 124.435 2336.5 55 25 4 9 84 2 104 3 8 +13435 143 87 130.505 2336.5 55 23 4 9 84 2 102 3 6 +13436 143 88 136.575 2336.5 55 21 4 9 84 2 100 3 4 +13437 143 89 142.645 2336.5 55 22 4 9 84 2 101 3 5 +13438 143 90 148.715 2336.5 55 24 4 9 84 2 103 3 7 +13439 143 91 154.785 2336.5 55 26 4 9 84 2 105 3 9 +13440 143 92 160.855 2336.5 59 25 4 9 85 2 104 3 8 +13441 143 93 166.925 2336.5 59 23 4 9 85 2 102 3 6 +13442 143 94 172.995 2336.5 59 21 4 9 85 2 100 3 4 +13443 143 95 179.065 2336.5 59 19 4 9 85 2 98 3 2 +13444 143 96 185.135 2336.5 59 22 4 9 85 2 101 3 5 +13445 143 97 191.205 2336.5 59 24 4 9 85 2 103 3 7 +13446 143 98 197.275 2336.5 59 26 4 9 85 2 105 3 9 +13447 143 99 203.345 2336.5 63 25 4 9 86 2 104 3 8 +13448 143 100 209.415 2336.5 63 23 4 9 86 2 102 3 6 +13449 143 101 215.485 2336.5 63 21 4 9 86 2 100 3 4 +13450 143 102 221.555 2336.5 63 22 4 9 86 2 101 3 5 +13451 143 103 227.625 2336.5 63 24 4 9 86 2 103 3 7 +13452 143 104 233.695 2336.5 63 26 4 9 86 2 105 3 9 +13453 143 105 239.765 2336.5 67 25 4 9 87 2 104 3 8 +13454 143 106 245.835 2336.5 67 23 4 9 87 2 102 3 6 +13455 143 107 251.905 2336.5 67 21 4 9 87 2 100 3 4 +13456 143 108 257.975 2336.5 67 19 4 9 87 2 98 3 2 +13457 143 109 264.045 2336.5 67 22 4 9 87 2 101 3 5 +13458 143 110 270.115 2336.5 67 24 4 9 87 2 103 3 7 +13459 143 111 276.185 2336.5 67 26 4 9 87 2 105 3 9 +13460 143 112 282.255 2336.5 71 23 4 9 88 2 102 3 6 +13461 143 113 288.325 2336.5 71 21 4 9 88 2 100 3 4 +13462 143 114 294.395 2336.5 71 19 4 9 88 2 98 3 2 +13463 143 115 300.465 2336.5 71 22 4 9 88 2 101 3 5 +13464 143 116 306.535 2336.5 71 24 4 9 88 2 103 3 7 +13465 143 117 312.605 2336.5 71 26 4 9 88 2 105 3 9 +13466 143 118 318.675 2336.5 75 25 4 9 89 2 104 3 8 +13467 143 119 324.745 2336.5 75 23 4 9 89 2 102 3 6 +13468 143 120 330.815 2336.5 75 21 4 9 89 2 100 3 4 +13469 143 121 336.885 2336.5 75 19 4 9 89 2 98 3 2 +13470 143 122 342.955 2336.5 75 24 4 9 89 2 103 3 7 +13471 143 123 349.025 2336.5 75 26 4 9 89 2 105 3 9 +13472 143 124 355.095 2336.5 75 28 4 9 89 2 107 3 11 +13473 143 125 361.165 2336.5 79 25 4 9 90 2 104 3 8 +13474 143 126 367.235 2336.5 79 23 4 9 90 2 102 3 6 +13475 143 127 373.305 2336.5 79 21 4 9 90 2 100 3 4 +13476 143 128 379.375 2336.5 79 20 4 9 90 2 99 3 3 +13477 143 129 385.445 2336.5 79 22 4 9 90 2 101 3 5 +13478 143 130 391.515 2336.5 79 24 4 9 90 2 103 3 7 +13479 143 131 397.585 2336.5 79 26 4 9 90 2 105 3 9 +13480 144 0 -397.585 2351.5 3 33 4 9 71 2 112 3 16 +13481 144 1 -391.515 2351.5 3 31 4 9 71 2 110 3 14 +13482 144 2 -385.445 2351.5 3 29 4 9 71 2 108 3 12 +13483 144 3 -379.375 2351.5 3 27 4 9 71 2 106 3 10 +13484 144 4 -373.305 2351.5 3 28 4 9 71 2 107 3 11 +13485 144 5 -367.235 2351.5 3 30 4 9 71 2 109 3 13 +13486 144 6 -361.165 2351.5 3 32 4 9 71 2 111 3 15 +13487 144 7 -355.095 2351.5 7 33 4 9 72 2 112 3 16 +13488 144 8 -349.025 2351.5 7 31 4 9 72 2 110 3 14 +13489 144 9 -342.955 2351.5 7 29 4 9 72 2 108 3 12 +13490 144 10 -336.885 2351.5 7 28 4 9 72 2 107 3 11 +13491 144 11 -330.815 2351.5 7 30 4 9 72 2 109 3 13 +13492 144 12 -324.745 2351.5 7 32 4 9 72 2 111 3 15 +13493 144 13 -318.675 2351.5 11 31 4 9 73 2 110 3 14 +13494 144 14 -312.605 2351.5 11 29 4 9 73 2 108 3 12 +13495 144 15 -306.535 2351.5 11 27 4 9 73 2 106 3 10 +13496 144 16 -300.465 2351.5 11 26 4 9 73 2 105 3 9 +13497 144 17 -294.395 2351.5 11 28 4 9 73 2 107 3 11 +13498 144 18 -288.325 2351.5 11 30 4 9 73 2 109 3 13 +13499 144 19 -282.255 2351.5 11 32 4 9 73 2 111 3 15 +13500 144 20 -276.185 2351.5 15 31 4 9 74 2 110 3 14 +13501 144 21 -270.115 2351.5 15 29 4 9 74 2 108 3 12 +13502 144 22 -264.045 2351.5 15 27 4 9 74 2 106 3 10 +13503 144 23 -257.975 2351.5 15 28 4 9 74 2 107 3 11 +13504 144 24 -251.905 2351.5 15 30 4 9 74 2 109 3 13 +13505 144 25 -245.835 2351.5 15 32 4 9 74 2 111 3 15 +13506 144 26 -239.765 2351.5 19 33 4 9 75 2 112 3 16 +13507 144 27 -233.695 2351.5 19 31 4 9 75 2 110 3 14 +13508 144 28 -227.625 2351.5 19 29 4 9 75 2 108 3 12 +13509 144 29 -221.555 2351.5 19 27 4 9 75 2 106 3 10 +13510 144 30 -215.485 2351.5 19 28 4 9 75 2 107 3 11 +13511 144 31 -209.415 2351.5 19 30 4 9 75 2 109 3 13 +13512 144 32 -203.345 2351.5 19 32 4 9 75 2 111 3 15 +13513 144 33 -197.275 2351.5 23 31 4 9 76 2 110 3 14 +13514 144 34 -191.205 2351.5 23 29 4 9 76 2 108 3 12 +13515 144 35 -185.135 2351.5 23 27 4 9 76 2 106 3 10 +13516 144 36 -179.065 2351.5 23 28 4 9 76 2 107 3 11 +13517 144 37 -172.995 2351.5 23 30 4 9 76 2 109 3 13 +13518 144 38 -166.925 2351.5 23 32 4 9 76 2 111 3 15 +13519 144 39 -160.855 2351.5 23 34 4 9 76 2 113 3 17 +13520 144 40 -154.785 2351.5 27 31 4 9 77 2 110 3 14 +13521 144 41 -148.715 2351.5 27 29 4 9 77 2 108 3 12 +13522 144 42 -142.645 2351.5 27 27 4 9 77 2 106 3 10 +13523 144 43 -136.575 2351.5 27 28 4 9 77 2 107 3 11 +13524 144 44 -130.505 2351.5 27 30 4 9 77 2 109 3 13 +13525 144 45 -124.435 2351.5 27 32 4 9 77 2 111 3 15 +13526 144 46 -118.365 2351.5 31 33 4 9 78 2 112 3 16 +13527 144 47 -112.295 2351.5 31 31 4 9 78 2 110 3 14 +13528 144 48 -106.225 2351.5 31 29 4 9 78 2 108 3 12 +13529 144 49 -100.155 2351.5 31 27 4 9 78 2 106 3 10 +13530 144 50 -94.085 2351.5 31 28 4 9 78 2 107 3 11 +13531 144 51 -88.015 2351.5 31 30 4 9 78 2 109 3 13 +13532 144 52 -81.945 2351.5 31 32 4 9 78 2 111 3 15 +13533 144 53 -75.875 2351.5 35 33 4 9 79 2 112 3 16 +13534 144 54 -69.805 2351.5 35 31 4 9 79 2 110 3 14 +13535 144 55 -63.735 2351.5 35 29 4 9 79 2 108 3 12 +13536 144 56 -57.665 2351.5 35 30 4 9 79 2 109 3 13 +13537 144 57 -51.595 2351.5 35 32 4 9 79 2 111 3 15 +13538 144 58 -45.525 2351.5 35 34 4 9 79 2 113 3 17 +13539 144 59 -39.455 2351.5 39 29 4 9 80 2 108 3 12 +13540 144 60 -33.385 2351.5 39 27 4 9 80 2 106 3 10 +13541 144 61 -27.315 2351.5 39 25 4 9 80 2 104 3 8 +13542 144 62 -21.245 2351.5 39 26 4 9 80 2 105 3 9 +13543 144 63 -15.175 2351.5 39 28 4 9 80 2 107 3 11 +13544 144 64 -9.105 2351.5 39 30 4 9 80 2 109 3 13 +13545 144 65 -3.035 2351.5 39 32 4 9 80 2 111 3 15 +13546 144 66 3.035 2351.5 43 31 4 9 81 2 110 3 14 +13547 144 67 9.105 2351.5 43 29 4 9 81 2 108 3 12 +13548 144 68 15.175 2351.5 43 27 4 9 81 2 106 3 10 +13549 144 69 21.245 2351.5 43 25 4 9 81 2 104 3 8 +13550 144 70 27.315 2351.5 43 26 4 9 81 2 105 3 9 +13551 144 71 33.385 2351.5 43 28 4 9 81 2 107 3 11 +13552 144 72 39.455 2351.5 43 30 4 9 81 2 109 3 13 +13553 144 73 45.525 2351.5 47 33 4 9 82 2 112 3 16 +13554 144 74 51.595 2351.5 47 31 4 9 82 2 110 3 14 +13555 144 75 57.665 2351.5 47 29 4 9 82 2 108 3 12 +13556 144 76 63.735 2351.5 47 30 4 9 82 2 109 3 13 +13557 144 77 69.805 2351.5 47 32 4 9 82 2 111 3 15 +13558 144 78 75.875 2351.5 47 34 4 9 82 2 113 3 17 +13559 144 79 81.945 2351.5 51 31 4 9 83 2 110 3 14 +13560 144 80 88.015 2351.5 51 29 4 9 83 2 108 3 12 +13561 144 81 94.085 2351.5 51 27 4 9 83 2 106 3 10 +13562 144 82 100.155 2351.5 51 28 4 9 83 2 107 3 11 +13563 144 83 106.225 2351.5 51 30 4 9 83 2 109 3 13 +13564 144 84 112.295 2351.5 51 32 4 9 83 2 111 3 15 +13565 144 85 118.365 2351.5 51 34 4 9 83 2 113 3 17 +13566 144 86 124.435 2351.5 55 31 4 9 84 2 110 3 14 +13567 144 87 130.505 2351.5 55 29 4 9 84 2 108 3 12 +13568 144 88 136.575 2351.5 55 27 4 9 84 2 106 3 10 +13569 144 89 142.645 2351.5 55 28 4 9 84 2 107 3 11 +13570 144 90 148.715 2351.5 55 30 4 9 84 2 109 3 13 +13571 144 91 154.785 2351.5 55 32 4 9 84 2 111 3 15 +13572 144 92 160.855 2351.5 59 33 4 9 85 2 112 3 16 +13573 144 93 166.925 2351.5 59 31 4 9 85 2 110 3 14 +13574 144 94 172.995 2351.5 59 29 4 9 85 2 108 3 12 +13575 144 95 179.065 2351.5 59 27 4 9 85 2 106 3 10 +13576 144 96 185.135 2351.5 59 28 4 9 85 2 107 3 11 +13577 144 97 191.205 2351.5 59 30 4 9 85 2 109 3 13 +13578 144 98 197.275 2351.5 59 32 4 9 85 2 111 3 15 +13579 144 99 203.345 2351.5 63 31 4 9 86 2 110 3 14 +13580 144 100 209.415 2351.5 63 29 4 9 86 2 108 3 12 +13581 144 101 215.485 2351.5 63 27 4 9 86 2 106 3 10 +13582 144 102 221.555 2351.5 63 28 4 9 86 2 107 3 11 +13583 144 103 227.625 2351.5 63 30 4 9 86 2 109 3 13 +13584 144 104 233.695 2351.5 63 32 4 9 86 2 111 3 15 +13585 144 105 239.765 2351.5 63 34 4 9 86 2 113 3 17 +13586 144 106 245.835 2351.5 67 31 4 9 87 2 110 3 14 +13587 144 107 251.905 2351.5 67 29 4 9 87 2 108 3 12 +13588 144 108 257.975 2351.5 67 27 4 9 87 2 106 3 10 +13589 144 109 264.045 2351.5 67 28 4 9 87 2 107 3 11 +13590 144 110 270.115 2351.5 67 30 4 9 87 2 109 3 13 +13591 144 111 276.185 2351.5 67 32 4 9 87 2 111 3 15 +13592 144 112 282.255 2351.5 71 31 4 9 88 2 110 3 14 +13593 144 113 288.325 2351.5 71 29 4 9 88 2 108 3 12 +13594 144 114 294.395 2351.5 71 27 4 9 88 2 106 3 10 +13595 144 115 300.465 2351.5 71 25 4 9 88 2 104 3 8 +13596 144 116 306.535 2351.5 71 28 4 9 88 2 107 3 11 +13597 144 117 312.605 2351.5 71 30 4 9 88 2 109 3 13 +13598 144 118 318.675 2351.5 71 32 4 9 88 2 111 3 15 +13599 144 119 324.745 2351.5 75 31 4 9 89 2 110 3 14 +13600 144 120 330.815 2351.5 75 29 4 9 89 2 108 3 12 +13601 144 121 336.885 2351.5 75 27 4 9 89 2 106 3 10 +13602 144 122 342.955 2351.5 75 30 4 9 89 2 109 3 13 +13603 144 123 349.025 2351.5 75 32 4 9 89 2 111 3 15 +13604 144 124 355.095 2351.5 75 34 4 9 89 2 113 3 17 +13605 144 125 361.165 2351.5 79 31 4 9 90 2 110 3 14 +13606 144 126 367.235 2351.5 79 29 4 9 90 2 108 3 12 +13607 144 127 373.305 2351.5 79 27 4 9 90 2 106 3 10 +13608 144 128 379.375 2351.5 79 28 4 9 90 2 107 3 11 +13609 144 129 385.445 2351.5 79 30 4 9 90 2 109 3 13 +13610 144 130 391.515 2351.5 79 32 4 9 90 2 111 3 15 +13611 144 131 397.585 2351.5 79 34 4 9 90 2 113 3 17 +13612 145 0 -397.585 2366.5 3 39 4 9 71 2 118 3 22 +13613 145 1 -391.515 2366.5 3 37 4 9 71 2 116 3 20 +13614 145 2 -385.445 2366.5 3 35 4 9 71 2 114 3 18 +13615 145 3 -379.375 2366.5 3 34 4 9 71 2 113 3 17 +13616 145 4 -373.305 2366.5 3 36 4 9 71 2 115 3 19 +13617 145 5 -367.235 2366.5 3 38 4 9 71 2 117 3 21 +13618 145 6 -361.165 2366.5 7 39 4 9 72 2 118 3 22 +13619 145 7 -355.095 2366.5 7 37 4 9 72 2 116 3 20 +13620 145 8 -349.025 2366.5 7 35 4 9 72 2 114 3 18 +13621 145 9 -342.955 2366.5 7 34 4 9 72 2 113 3 17 +13622 145 10 -336.885 2366.5 7 36 4 9 72 2 115 3 19 +13623 145 11 -330.815 2366.5 7 38 4 9 72 2 117 3 21 +13624 145 12 -324.745 2366.5 7 40 4 9 72 2 119 3 23 +13625 145 13 -318.675 2366.5 11 39 4 9 73 2 118 3 22 +13626 145 14 -312.605 2366.5 11 37 4 9 73 2 116 3 20 +13627 145 15 -306.535 2366.5 11 35 4 9 73 2 114 3 18 +13628 145 16 -300.465 2366.5 11 33 4 9 73 2 112 3 16 +13629 145 17 -294.395 2366.5 11 34 4 9 73 2 113 3 17 +13630 145 18 -288.325 2366.5 11 36 4 9 73 2 115 3 19 +13631 145 19 -282.255 2366.5 15 37 4 9 74 2 116 3 20 +13632 145 20 -276.185 2366.5 15 35 4 9 74 2 114 3 18 +13633 145 21 -270.115 2366.5 15 33 4 9 74 2 112 3 16 +13634 145 22 -264.045 2366.5 15 34 4 9 74 2 113 3 17 +13635 145 23 -257.975 2366.5 15 36 4 9 74 2 115 3 19 +13636 145 24 -251.905 2366.5 15 38 4 9 74 2 117 3 21 +13637 145 25 -245.835 2366.5 15 40 4 9 74 2 119 3 23 +13638 145 26 -239.765 2366.5 19 39 4 9 75 2 118 3 22 +13639 145 27 -233.695 2366.5 19 37 4 9 75 2 116 3 20 +13640 145 28 -227.625 2366.5 19 35 4 9 75 2 114 3 18 +13641 145 29 -221.555 2366.5 19 34 4 9 75 2 113 3 17 +13642 145 30 -215.485 2366.5 19 36 4 9 75 2 115 3 19 +13643 145 31 -209.415 2366.5 19 38 4 9 75 2 117 3 21 +13644 145 32 -203.345 2366.5 19 40 4 9 75 2 119 3 23 +13645 145 33 -197.275 2366.5 23 37 4 9 76 2 116 3 20 +13646 145 34 -191.205 2366.5 23 35 4 9 76 2 114 3 18 +13647 145 35 -185.135 2366.5 23 33 4 9 76 2 112 3 16 +13648 145 36 -179.065 2366.5 23 36 4 9 76 2 115 3 19 +13649 145 37 -172.995 2366.5 23 38 4 9 76 2 117 3 21 +13650 145 38 -166.925 2366.5 23 40 4 9 76 2 119 3 23 +13651 145 39 -160.855 2366.5 27 37 4 9 77 2 116 3 20 +13652 145 40 -154.785 2366.5 27 35 4 9 77 2 114 3 18 +13653 145 41 -148.715 2366.5 27 33 4 9 77 2 112 3 16 +13654 145 42 -142.645 2366.5 27 34 4 9 77 2 113 3 17 +13655 145 43 -136.575 2366.5 27 36 4 9 77 2 115 3 19 +13656 145 44 -130.505 2366.5 27 38 4 9 77 2 117 3 21 +13657 145 45 -124.435 2366.5 27 40 4 9 77 2 119 3 23 +13658 145 46 -118.365 2366.5 31 39 4 9 78 2 118 3 22 +13659 145 47 -112.295 2366.5 31 37 4 9 78 2 116 3 20 +13660 145 48 -106.225 2366.5 31 35 4 9 78 2 114 3 18 +13661 145 49 -100.155 2366.5 31 34 4 9 78 2 113 3 17 +13662 145 50 -94.085 2366.5 31 36 4 9 78 2 115 3 19 +13663 145 51 -88.015 2366.5 31 38 4 9 78 2 117 3 21 +13664 145 52 -81.945 2366.5 31 40 4 9 78 2 119 3 23 +13665 145 53 -75.875 2366.5 35 39 4 9 79 2 118 3 22 +13666 145 54 -69.805 2366.5 35 37 4 9 79 2 116 3 20 +13667 145 55 -63.735 2366.5 35 35 4 9 79 2 114 3 18 +13668 145 56 -57.665 2366.5 35 36 4 9 79 2 115 3 19 +13669 145 57 -51.595 2366.5 35 38 4 9 79 2 117 3 21 +13670 145 58 -45.525 2366.5 35 40 4 9 79 2 119 3 23 +13671 145 59 -39.455 2366.5 39 35 4 9 80 2 114 3 18 +13672 145 60 -33.385 2366.5 39 33 4 9 80 2 112 3 16 +13673 145 61 -27.315 2366.5 39 31 4 9 80 2 110 3 14 +13674 145 62 -21.245 2366.5 39 34 4 9 80 2 113 3 17 +13675 145 63 -15.175 2366.5 39 36 4 9 80 2 115 3 19 +13676 145 64 -9.105 2366.5 39 38 4 9 80 2 117 3 21 +13677 145 65 -3.035 2366.5 39 40 4 9 80 2 119 3 23 +13678 145 66 3.035 2366.5 43 39 4 9 81 2 118 3 22 +13679 145 67 9.105 2366.5 43 37 4 9 81 2 116 3 20 +13680 145 68 15.175 2366.5 43 35 4 9 81 2 114 3 18 +13681 145 69 21.245 2366.5 43 33 4 9 81 2 112 3 16 +13682 145 70 27.315 2366.5 43 32 4 9 81 2 111 3 15 +13683 145 71 33.385 2366.5 43 34 4 9 81 2 113 3 17 +13684 145 72 39.455 2366.5 43 36 4 9 81 2 115 3 19 +13685 145 73 45.525 2366.5 47 39 4 9 82 2 118 3 22 +13686 145 74 51.595 2366.5 47 37 4 9 82 2 116 3 20 +13687 145 75 57.665 2366.5 47 35 4 9 82 2 114 3 18 +13688 145 76 63.735 2366.5 47 36 4 9 82 2 115 3 19 +13689 145 77 69.805 2366.5 47 38 4 9 82 2 117 3 21 +13690 145 78 75.875 2366.5 47 40 4 9 82 2 119 3 23 +13691 145 79 81.945 2366.5 51 39 4 9 83 2 118 3 22 +13692 145 80 88.015 2366.5 51 37 4 9 83 2 116 3 20 +13693 145 81 94.085 2366.5 51 35 4 9 83 2 114 3 18 +13694 145 82 100.155 2366.5 51 33 4 9 83 2 112 3 16 +13695 145 83 106.225 2366.5 51 36 4 9 83 2 115 3 19 +13696 145 84 112.295 2366.5 51 38 4 9 83 2 117 3 21 +13697 145 85 118.365 2366.5 51 40 4 9 83 2 119 3 23 +13698 145 86 124.435 2366.5 55 39 4 9 84 2 118 3 22 +13699 145 87 130.505 2366.5 55 37 4 9 84 2 116 3 20 +13700 145 88 136.575 2366.5 55 35 4 9 84 2 114 3 18 +13701 145 89 142.645 2366.5 55 33 4 9 84 2 112 3 16 +13702 145 90 148.715 2366.5 55 34 4 9 84 2 113 3 17 +13703 145 91 154.785 2366.5 55 36 4 9 84 2 115 3 19 +13704 145 92 160.855 2366.5 55 38 4 9 84 2 117 3 21 +13705 145 93 166.925 2366.5 59 39 4 9 85 2 118 3 22 +13706 145 94 172.995 2366.5 59 37 4 9 85 2 116 3 20 +13707 145 95 179.065 2366.5 59 35 4 9 85 2 114 3 18 +13708 145 96 185.135 2366.5 59 34 4 9 85 2 113 3 17 +13709 145 97 191.205 2366.5 59 36 4 9 85 2 115 3 19 +13710 145 98 197.275 2366.5 59 38 4 9 85 2 117 3 21 +13711 145 99 203.345 2366.5 63 39 4 9 86 2 118 3 22 +13712 145 100 209.415 2366.5 63 37 4 9 86 2 116 3 20 +13713 145 101 215.485 2366.5 63 35 4 9 86 2 114 3 18 +13714 145 102 221.555 2366.5 63 33 4 9 86 2 112 3 16 +13715 145 103 227.625 2366.5 63 36 4 9 86 2 115 3 19 +13716 145 104 233.695 2366.5 63 38 4 9 86 2 117 3 21 +13717 145 105 239.765 2366.5 63 40 4 9 86 2 119 3 23 +13718 145 106 245.835 2366.5 67 39 4 9 87 2 118 3 22 +13719 145 107 251.905 2366.5 67 37 4 9 87 2 116 3 20 +13720 145 108 257.975 2366.5 67 35 4 9 87 2 114 3 18 +13721 145 109 264.045 2366.5 67 33 4 9 87 2 112 3 16 +13722 145 110 270.115 2366.5 67 34 4 9 87 2 113 3 17 +13723 145 111 276.185 2366.5 67 36 4 9 87 2 115 3 19 +13724 145 112 282.255 2366.5 67 38 4 9 87 2 117 3 21 +13725 145 113 288.325 2366.5 71 35 4 9 88 2 114 3 18 +13726 145 114 294.395 2366.5 71 33 4 9 88 2 112 3 16 +13727 145 115 300.465 2366.5 71 34 4 9 88 2 113 3 17 +13728 145 116 306.535 2366.5 71 36 4 9 88 2 115 3 19 +13729 145 117 312.605 2366.5 71 38 4 9 88 2 117 3 21 +13730 145 118 318.675 2366.5 71 40 4 9 88 2 119 3 23 +13731 145 119 324.745 2366.5 75 39 4 9 89 2 118 3 22 +13732 145 120 330.815 2366.5 75 37 4 9 89 2 116 3 20 +13733 145 121 336.885 2366.5 75 35 4 9 89 2 114 3 18 +13734 145 122 342.955 2366.5 75 33 4 9 89 2 112 3 16 +13735 145 123 349.025 2366.5 75 36 4 9 89 2 115 3 19 +13736 145 124 355.095 2366.5 75 38 4 9 89 2 117 3 21 +13737 145 125 361.165 2366.5 75 40 4 9 89 2 119 3 23 +13738 145 126 367.235 2366.5 79 37 4 9 90 2 116 3 20 +13739 145 127 373.305 2366.5 79 35 4 9 90 2 114 3 18 +13740 145 128 379.375 2366.5 79 33 4 9 90 2 112 3 16 +13741 145 129 385.445 2366.5 79 36 4 9 90 2 115 3 19 +13742 145 130 391.515 2366.5 79 38 4 9 90 2 117 3 21 +13743 145 131 397.585 2366.5 79 40 4 9 90 2 119 3 23 +13744 146 0 -403.655 2381.5 4 5 4 9 71 3 124 3 28 +13745 146 1 -397.585 2381.5 4 3 4 9 71 3 122 3 26 +13746 146 2 -391.515 2381.5 4 1 4 9 71 3 120 3 24 +13747 146 3 -385.445 2381.5 4 2 4 9 71 3 121 3 25 +13748 146 4 -379.375 2381.5 4 4 4 9 71 3 123 3 27 +13749 146 5 -373.305 2381.5 4 6 4 9 71 3 125 3 29 +13750 146 6 -367.235 2381.5 3 40 4 9 71 2 119 3 23 +13751 146 7 -361.165 2381.5 8 5 4 9 72 3 124 3 28 +13752 146 8 -355.095 2381.5 8 3 4 9 72 3 122 3 26 +13753 146 9 -349.025 2381.5 8 1 4 9 72 3 120 3 24 +13754 146 10 -342.955 2381.5 8 2 4 9 72 3 121 3 25 +13755 146 11 -336.885 2381.5 8 4 4 9 72 3 123 3 27 +13756 146 12 -330.815 2381.5 8 6 4 9 72 3 125 3 29 +13757 146 13 -324.745 2381.5 12 5 4 9 73 3 124 3 28 +13758 146 14 -318.675 2381.5 12 3 4 9 73 3 122 3 26 +13759 146 15 -312.605 2381.5 12 1 4 9 73 3 120 3 24 +13760 146 16 -306.535 2381.5 12 2 4 9 73 3 121 3 25 +13761 146 17 -300.465 2381.5 12 4 4 9 73 3 123 3 27 +13762 146 18 -294.395 2381.5 11 38 4 9 73 2 117 3 21 +13763 146 19 -288.325 2381.5 11 40 4 9 73 2 119 3 23 +13764 146 20 -282.255 2381.5 15 39 4 9 74 2 118 3 22 +13765 146 21 -276.185 2381.5 16 5 4 9 74 3 124 3 28 +13766 146 22 -270.115 2381.5 16 3 4 9 74 3 122 3 26 +13767 146 23 -264.045 2381.5 16 1 4 9 74 3 120 3 24 +13768 146 24 -257.975 2381.5 16 2 4 9 74 3 121 3 25 +13769 146 25 -251.905 2381.5 16 4 4 9 74 3 123 3 27 +13770 146 26 -245.835 2381.5 16 6 4 9 74 3 125 3 29 +13771 146 27 -239.765 2381.5 20 7 4 9 75 3 126 3 30 +13772 146 28 -233.695 2381.5 20 5 4 9 75 3 124 3 28 +13773 146 29 -227.625 2381.5 20 3 4 9 75 3 122 3 26 +13774 146 30 -221.555 2381.5 20 1 4 9 75 3 120 3 24 +13775 146 31 -215.485 2381.5 20 2 4 9 75 3 121 3 25 +13776 146 32 -209.415 2381.5 20 4 4 9 75 3 123 3 27 +13777 146 33 -203.345 2381.5 20 6 4 9 75 3 125 3 29 +13778 146 34 -197.275 2381.5 23 39 4 9 76 2 118 3 22 +13779 146 35 -191.205 2381.5 24 3 4 9 76 3 122 3 26 +13780 146 36 -185.135 2381.5 24 1 4 9 76 3 120 3 24 +13781 146 37 -179.065 2381.5 24 2 4 9 76 3 121 3 25 +13782 146 38 -172.995 2381.5 24 4 4 9 76 3 123 3 27 +13783 146 39 -166.925 2381.5 24 6 4 9 76 3 125 3 29 +13784 146 40 -160.855 2381.5 27 39 4 9 77 2 118 3 22 +13785 146 41 -154.785 2381.5 28 5 4 9 77 3 124 3 28 +13786 146 42 -148.715 2381.5 28 3 4 9 77 3 122 3 26 +13787 146 43 -142.645 2381.5 28 1 4 9 77 3 120 3 24 +13788 146 44 -136.575 2381.5 28 2 4 9 77 3 121 3 25 +13789 146 45 -130.505 2381.5 28 4 4 9 77 3 123 3 27 +13790 146 46 -124.435 2381.5 28 6 4 9 77 3 125 3 29 +13791 146 47 -118.365 2381.5 32 5 4 9 78 3 124 3 28 +13792 146 48 -112.295 2381.5 32 3 4 9 78 3 122 3 26 +13793 146 49 -106.225 2381.5 32 1 4 9 78 3 120 3 24 +13794 146 50 -100.155 2381.5 32 2 4 9 78 3 121 3 25 +13795 146 51 -94.085 2381.5 32 4 4 9 78 3 123 3 27 +13796 146 52 -88.015 2381.5 32 6 4 9 78 3 125 3 29 +13797 146 53 -81.945 2381.5 32 8 4 9 78 3 127 3 31 +13798 146 54 -75.875 2381.5 36 5 4 9 79 3 124 3 28 +13799 146 55 -69.805 2381.5 36 3 4 9 79 3 122 3 26 +13800 146 56 -63.735 2381.5 36 1 4 9 79 3 120 3 24 +13801 146 57 -57.665 2381.5 36 2 4 9 79 3 121 3 25 +13802 146 58 -51.595 2381.5 36 4 4 9 79 3 123 3 27 +13803 146 59 -45.525 2381.5 36 6 4 9 79 3 125 3 29 +13804 146 60 -39.455 2381.5 39 39 4 9 80 2 118 3 22 +13805 146 61 -33.385 2381.5 39 37 4 9 80 2 116 3 20 +13806 146 62 -27.315 2381.5 40 3 4 9 80 3 122 3 26 +13807 146 63 -21.245 2381.5 40 1 4 9 80 3 120 3 24 +13808 146 64 -15.175 2381.5 40 2 4 9 80 3 121 3 25 +13809 146 65 -9.105 2381.5 40 4 4 9 80 3 123 3 27 +13810 146 66 -3.035 2381.5 40 6 4 9 80 3 125 3 29 +13811 146 67 3.035 2381.5 44 5 4 9 81 3 124 3 28 +13812 146 68 9.105 2381.5 44 3 4 9 81 3 122 3 26 +13813 146 69 15.175 2381.5 44 1 4 9 81 3 120 3 24 +13814 146 70 21.245 2381.5 44 2 4 9 81 3 121 3 25 +13815 146 71 27.315 2381.5 44 4 4 9 81 3 123 3 27 +13816 146 72 33.385 2381.5 43 38 4 9 81 2 117 3 21 +13817 146 73 39.455 2381.5 43 40 4 9 81 2 119 3 23 +13818 146 74 45.525 2381.5 48 5 4 9 82 3 124 3 28 +13819 146 75 51.595 2381.5 48 3 4 9 82 3 122 3 26 +13820 146 76 57.665 2381.5 48 1 4 9 82 3 120 3 24 +13821 146 77 63.735 2381.5 48 2 4 9 82 3 121 3 25 +13822 146 78 69.805 2381.5 48 4 4 9 82 3 123 3 27 +13823 146 79 75.875 2381.5 48 6 4 9 82 3 125 3 29 +13824 146 80 81.945 2381.5 52 7 4 9 83 3 126 3 30 +13825 146 81 88.015 2381.5 52 5 4 9 83 3 124 3 28 +13826 146 82 94.085 2381.5 52 3 4 9 83 3 122 3 26 +13827 146 83 100.155 2381.5 52 1 4 9 83 3 120 3 24 +13828 146 84 106.225 2381.5 52 2 4 9 83 3 121 3 25 +13829 146 85 112.295 2381.5 52 4 4 9 83 3 123 3 27 +13830 146 86 118.365 2381.5 52 6 4 9 83 3 125 3 29 +13831 146 87 124.435 2381.5 56 5 4 9 84 3 124 3 28 +13832 146 88 130.505 2381.5 56 3 4 9 84 3 122 3 26 +13833 146 89 136.575 2381.5 56 1 4 9 84 3 120 3 24 +13834 146 90 142.645 2381.5 56 2 4 9 84 3 121 3 25 +13835 146 91 148.715 2381.5 56 4 4 9 84 3 123 3 27 +13836 146 92 154.785 2381.5 56 6 4 9 84 3 125 3 29 +13837 146 93 160.855 2381.5 55 40 4 9 84 2 119 3 23 +13838 146 94 166.925 2381.5 60 5 4 9 85 3 124 3 28 +13839 146 95 172.995 2381.5 60 3 4 9 85 3 122 3 26 +13840 146 96 179.065 2381.5 60 1 4 9 85 3 120 3 24 +13841 146 97 185.135 2381.5 60 2 4 9 85 3 121 3 25 +13842 146 98 191.205 2381.5 60 4 4 9 85 3 123 3 27 +13843 146 99 197.275 2381.5 59 40 4 9 85 2 119 3 23 +13844 146 100 203.345 2381.5 64 5 4 9 86 3 124 3 28 +13845 146 101 209.415 2381.5 64 3 4 9 86 3 122 3 26 +13846 146 102 215.485 2381.5 64 1 4 9 86 3 120 3 24 +13847 146 103 221.555 2381.5 64 2 4 9 86 3 121 3 25 +13848 146 104 227.625 2381.5 64 4 4 9 86 3 123 3 27 +13849 146 105 233.695 2381.5 64 6 4 9 86 3 125 3 29 +13850 146 106 239.765 2381.5 64 8 4 9 86 3 127 3 31 +13851 146 107 245.835 2381.5 68 5 4 9 87 3 124 3 28 +13852 146 108 251.905 2381.5 68 3 4 9 87 3 122 3 26 +13853 146 109 257.975 2381.5 68 1 4 9 87 3 120 3 24 +13854 146 110 264.045 2381.5 68 2 4 9 87 3 121 3 25 +13855 146 111 270.115 2381.5 68 4 4 9 87 3 123 3 27 +13856 146 112 276.185 2381.5 68 6 4 9 87 3 125 3 29 +13857 146 113 282.255 2381.5 67 40 4 9 87 2 119 3 23 +13858 146 114 288.325 2381.5 71 39 4 9 88 2 118 3 22 +13859 146 115 294.395 2381.5 71 37 4 9 88 2 116 3 20 +13860 146 116 300.465 2381.5 72 3 4 9 88 3 122 3 26 +13861 146 117 306.535 2381.5 72 1 4 9 88 3 120 3 24 +13862 146 118 312.605 2381.5 72 2 4 9 88 3 121 3 25 +13863 146 119 318.675 2381.5 72 4 4 9 88 3 123 3 27 +13864 146 120 324.745 2381.5 72 6 4 9 88 3 125 3 29 +13865 146 121 330.815 2381.5 76 5 4 9 89 3 124 3 28 +13866 146 122 336.885 2381.5 76 3 4 9 89 3 122 3 26 +13867 146 123 342.955 2381.5 76 1 4 9 89 3 120 3 24 +13868 146 124 349.025 2381.5 76 2 4 9 89 3 121 3 25 +13869 146 125 355.095 2381.5 76 4 4 9 89 3 123 3 27 +13870 146 126 361.165 2381.5 76 6 4 9 89 3 125 3 29 +13871 146 127 367.235 2381.5 79 39 4 9 90 2 118 3 22 +13872 146 128 373.305 2381.5 80 5 4 9 90 3 124 3 28 +13873 146 129 379.375 2381.5 80 3 4 9 90 3 122 3 26 +13874 146 130 385.445 2381.5 80 1 4 9 90 3 120 3 24 +13875 146 131 391.515 2381.5 80 2 4 9 90 3 121 3 25 +13876 146 132 397.585 2381.5 80 4 4 9 90 3 123 3 27 +13877 146 133 403.655 2381.5 80 6 4 9 90 3 125 3 29 +13878 147 0 -403.655 2396.5 4 11 4 9 71 3 130 4 2 +13879 147 1 -397.585 2396.5 4 9 4 9 71 3 128 4 0 +13880 147 2 -391.515 2396.5 4 7 4 9 71 3 126 3 30 +13881 147 3 -385.445 2396.5 4 8 4 9 71 3 127 3 31 +13882 147 4 -379.375 2396.5 4 10 4 9 71 3 129 4 1 +13883 147 5 -373.305 2396.5 4 12 4 9 71 3 131 4 3 +13884 147 6 -367.235 2396.5 8 13 4 9 72 3 132 4 4 +13885 147 7 -361.165 2396.5 8 11 4 9 72 3 130 4 2 +13886 147 8 -355.095 2396.5 8 9 4 9 72 3 128 4 0 +13887 147 9 -349.025 2396.5 8 7 4 9 72 3 126 3 30 +13888 147 10 -342.955 2396.5 8 8 4 9 72 3 127 3 31 +13889 147 11 -336.885 2396.5 8 10 4 9 72 3 129 4 1 +13890 147 12 -330.815 2396.5 8 12 4 9 72 3 131 4 3 +13891 147 13 -324.745 2396.5 12 11 4 9 73 3 130 4 2 +13892 147 14 -318.675 2396.5 12 9 4 9 73 3 128 4 0 +13893 147 15 -312.605 2396.5 12 7 4 9 73 3 126 3 30 +13894 147 16 -306.535 2396.5 12 6 4 9 73 3 125 3 29 +13895 147 17 -300.465 2396.5 12 8 4 9 73 3 127 3 31 +13896 147 18 -294.395 2396.5 12 10 4 9 73 3 129 4 1 +13897 147 19 -288.325 2396.5 12 12 4 9 73 3 131 4 3 +13898 147 20 -282.255 2396.5 16 13 4 9 74 3 132 4 4 +13899 147 21 -276.185 2396.5 16 11 4 9 74 3 130 4 2 +13900 147 22 -270.115 2396.5 16 9 4 9 74 3 128 4 0 +13901 147 23 -264.045 2396.5 16 7 4 9 74 3 126 3 30 +13902 147 24 -257.975 2396.5 16 8 4 9 74 3 127 3 31 +13903 147 25 -251.905 2396.5 16 10 4 9 74 3 129 4 1 +13904 147 26 -245.835 2396.5 16 12 4 9 74 3 131 4 3 +13905 147 27 -239.765 2396.5 20 13 4 9 75 3 132 4 4 +13906 147 28 -233.695 2396.5 20 11 4 9 75 3 130 4 2 +13907 147 29 -227.625 2396.5 20 9 4 9 75 3 128 4 0 +13908 147 30 -221.555 2396.5 20 8 4 9 75 3 127 3 31 +13909 147 31 -215.485 2396.5 20 10 4 9 75 3 129 4 1 +13910 147 32 -209.415 2396.5 20 12 4 9 75 3 131 4 3 +13911 147 33 -203.345 2396.5 24 11 4 9 76 3 130 4 2 +13912 147 34 -197.275 2396.5 24 9 4 9 76 3 128 4 0 +13913 147 35 -191.205 2396.5 24 7 4 9 76 3 126 3 30 +13914 147 36 -185.135 2396.5 24 5 4 9 76 3 124 3 28 +13915 147 37 -179.065 2396.5 24 8 4 9 76 3 127 3 31 +13916 147 38 -172.995 2396.5 24 10 4 9 76 3 129 4 1 +13917 147 39 -166.925 2396.5 24 12 4 9 76 3 131 4 3 +13918 147 40 -160.855 2396.5 28 13 4 9 77 3 132 4 4 +13919 147 41 -154.785 2396.5 28 11 4 9 77 3 130 4 2 +13920 147 42 -148.715 2396.5 28 9 4 9 77 3 128 4 0 +13921 147 43 -142.645 2396.5 28 7 4 9 77 3 126 3 30 +13922 147 44 -136.575 2396.5 28 8 4 9 77 3 127 3 31 +13923 147 45 -130.505 2396.5 28 10 4 9 77 3 129 4 1 +13924 147 46 -124.435 2396.5 28 12 4 9 77 3 131 4 3 +13925 147 47 -118.365 2396.5 32 13 4 9 78 3 132 4 4 +13926 147 48 -112.295 2396.5 32 11 4 9 78 3 130 4 2 +13927 147 49 -106.225 2396.5 32 9 4 9 78 3 128 4 0 +13928 147 50 -100.155 2396.5 32 7 4 9 78 3 126 3 30 +13929 147 51 -94.085 2396.5 32 10 4 9 78 3 129 4 1 +13930 147 52 -88.015 2396.5 32 12 4 9 78 3 131 4 3 +13931 147 53 -81.945 2396.5 32 14 4 9 78 3 133 4 5 +13932 147 54 -75.875 2396.5 36 11 4 9 79 3 130 4 2 +13933 147 55 -69.805 2396.5 36 9 4 9 79 3 128 4 0 +13934 147 56 -63.735 2396.5 36 7 4 9 79 3 126 3 30 +13935 147 57 -57.665 2396.5 36 8 4 9 79 3 127 3 31 +13936 147 58 -51.595 2396.5 36 10 4 9 79 3 129 4 1 +13937 147 59 -45.525 2396.5 36 12 4 9 79 3 131 4 3 +13938 147 60 -39.455 2396.5 40 11 4 9 80 3 130 4 2 +13939 147 61 -33.385 2396.5 40 9 4 9 80 3 128 4 0 +13940 147 62 -27.315 2396.5 40 7 4 9 80 3 126 3 30 +13941 147 63 -21.245 2396.5 40 5 4 9 80 3 124 3 28 +13942 147 64 -15.175 2396.5 40 8 4 9 80 3 127 3 31 +13943 147 65 -9.105 2396.5 40 10 4 9 80 3 129 4 1 +13944 147 66 -3.035 2396.5 40 12 4 9 80 3 131 4 3 +13945 147 67 3.035 2396.5 44 11 4 9 81 3 130 4 2 +13946 147 68 9.105 2396.5 44 9 4 9 81 3 128 4 0 +13947 147 69 15.175 2396.5 44 7 4 9 81 3 126 3 30 +13948 147 70 21.245 2396.5 44 6 4 9 81 3 125 3 29 +13949 147 71 27.315 2396.5 44 8 4 9 81 3 127 3 31 +13950 147 72 33.385 2396.5 44 10 4 9 81 3 129 4 1 +13951 147 73 39.455 2396.5 44 12 4 9 81 3 131 4 3 +13952 147 74 45.525 2396.5 48 11 4 9 82 3 130 4 2 +13953 147 75 51.595 2396.5 48 9 4 9 82 3 128 4 0 +13954 147 76 57.665 2396.5 48 7 4 9 82 3 126 3 30 +13955 147 77 63.735 2396.5 48 8 4 9 82 3 127 3 31 +13956 147 78 69.805 2396.5 48 10 4 9 82 3 129 4 1 +13957 147 79 75.875 2396.5 48 12 4 9 82 3 131 4 3 +13958 147 80 81.945 2396.5 52 13 4 9 83 3 132 4 4 +13959 147 81 88.015 2396.5 52 11 4 9 83 3 130 4 2 +13960 147 82 94.085 2396.5 52 9 4 9 83 3 128 4 0 +13961 147 83 100.155 2396.5 52 8 4 9 83 3 127 3 31 +13962 147 84 106.225 2396.5 52 10 4 9 83 3 129 4 1 +13963 147 85 112.295 2396.5 52 12 4 9 83 3 131 4 3 +13964 147 86 118.365 2396.5 52 14 4 9 83 3 133 4 5 +13965 147 87 124.435 2396.5 56 11 4 9 84 3 130 4 2 +13966 147 88 130.505 2396.5 56 9 4 9 84 3 128 4 0 +13967 147 89 136.575 2396.5 56 7 4 9 84 3 126 3 30 +13968 147 90 142.645 2396.5 56 8 4 9 84 3 127 3 31 +13969 147 91 148.715 2396.5 56 10 4 9 84 3 129 4 1 +13970 147 92 154.785 2396.5 56 12 4 9 84 3 131 4 3 +13971 147 93 160.855 2396.5 56 14 4 9 84 3 133 4 5 +13972 147 94 166.925 2396.5 60 11 4 9 85 3 130 4 2 +13973 147 95 172.995 2396.5 60 9 4 9 85 3 128 4 0 +13974 147 96 179.065 2396.5 60 7 4 9 85 3 126 3 30 +13975 147 97 185.135 2396.5 60 6 4 9 85 3 125 3 29 +13976 147 98 191.205 2396.5 60 8 4 9 85 3 127 3 31 +13977 147 99 197.275 2396.5 60 10 4 9 85 3 129 4 1 +13978 147 100 203.345 2396.5 60 12 4 9 85 3 131 4 3 +13979 147 101 209.415 2396.5 64 11 4 9 86 3 130 4 2 +13980 147 102 215.485 2396.5 64 9 4 9 86 3 128 4 0 +13981 147 103 221.555 2396.5 64 7 4 9 86 3 126 3 30 +13982 147 104 227.625 2396.5 64 10 4 9 86 3 129 4 1 +13983 147 105 233.695 2396.5 64 12 4 9 86 3 131 4 3 +13984 147 106 239.765 2396.5 64 14 4 9 86 3 133 4 5 +13985 147 107 245.835 2396.5 68 11 4 9 87 3 130 4 2 +13986 147 108 251.905 2396.5 68 9 4 9 87 3 128 4 0 +13987 147 109 257.975 2396.5 68 7 4 9 87 3 126 3 30 +13988 147 110 264.045 2396.5 68 8 4 9 87 3 127 3 31 +13989 147 111 270.115 2396.5 68 10 4 9 87 3 129 4 1 +13990 147 112 276.185 2396.5 68 12 4 9 87 3 131 4 3 +13991 147 113 282.255 2396.5 68 14 4 9 87 3 133 4 5 +13992 147 114 288.325 2396.5 72 11 4 9 88 3 130 4 2 +13993 147 115 294.395 2396.5 72 9 4 9 88 3 128 4 0 +13994 147 116 300.465 2396.5 72 7 4 9 88 3 126 3 30 +13995 147 117 306.535 2396.5 72 5 4 9 88 3 124 3 28 +13996 147 118 312.605 2396.5 72 8 4 9 88 3 127 3 31 +13997 147 119 318.675 2396.5 72 10 4 9 88 3 129 4 1 +13998 147 120 324.745 2396.5 72 12 4 9 88 3 131 4 3 +13999 147 121 330.815 2396.5 76 11 4 9 89 3 130 4 2 +14000 147 122 336.885 2396.5 76 9 4 9 89 3 128 4 0 +14001 147 123 342.955 2396.5 76 7 4 9 89 3 126 3 30 +14002 147 124 349.025 2396.5 76 8 4 9 89 3 127 3 31 +14003 147 125 355.095 2396.5 76 10 4 9 89 3 129 4 1 +14004 147 126 361.165 2396.5 76 12 4 9 89 3 131 4 3 +14005 147 127 367.235 2396.5 76 14 4 9 89 3 133 4 5 +14006 147 128 373.305 2396.5 80 11 4 9 90 3 130 4 2 +14007 147 129 379.375 2396.5 80 9 4 9 90 3 128 4 0 +14008 147 130 385.445 2396.5 80 7 4 9 90 3 126 3 30 +14009 147 131 391.515 2396.5 80 8 4 9 90 3 127 3 31 +14010 147 132 397.585 2396.5 80 10 4 9 90 3 129 4 1 +14011 147 133 403.655 2396.5 80 12 4 9 90 3 131 4 3 +14012 148 0 -409.725 2411.5 4 19 4 9 71 3 138 4 10 +14013 148 1 -403.655 2411.5 4 17 4 9 71 3 136 4 8 +14014 148 2 -397.585 2411.5 4 15 4 9 71 3 134 4 6 +14015 148 3 -391.515 2411.5 4 13 4 9 71 3 132 4 4 +14016 148 4 -385.445 2411.5 4 14 4 9 71 3 133 4 5 +14017 148 5 -379.375 2411.5 4 16 4 9 71 3 135 4 7 +14018 148 6 -373.305 2411.5 4 18 4 9 71 3 137 4 9 +14019 148 7 -367.235 2411.5 8 19 4 9 72 3 138 4 10 +14020 148 8 -361.165 2411.5 8 17 4 9 72 3 136 4 8 +14021 148 9 -355.095 2411.5 8 15 4 9 72 3 134 4 6 +14022 148 10 -349.025 2411.5 8 14 4 9 72 3 133 4 5 +14023 148 11 -342.955 2411.5 8 16 4 9 72 3 135 4 7 +14024 148 12 -336.885 2411.5 8 18 4 9 72 3 137 4 9 +14025 148 13 -330.815 2411.5 8 20 4 9 72 3 139 4 11 +14026 148 14 -324.745 2411.5 12 17 4 9 73 3 136 4 8 +14027 148 15 -318.675 2411.5 12 15 4 9 73 3 134 4 6 +14028 148 16 -312.605 2411.5 12 13 4 9 73 3 132 4 4 +14029 148 17 -306.535 2411.5 12 14 4 9 73 3 133 4 5 +14030 148 18 -300.465 2411.5 12 16 4 9 73 3 135 4 7 +14031 148 19 -294.395 2411.5 12 18 4 9 73 3 137 4 9 +14032 148 20 -288.325 2411.5 12 20 4 9 73 3 139 4 11 +14033 148 21 -282.255 2411.5 16 19 4 9 74 3 138 4 10 +14034 148 22 -276.185 2411.5 16 17 4 9 74 3 136 4 8 +14035 148 23 -270.115 2411.5 16 15 4 9 74 3 134 4 6 +14036 148 24 -264.045 2411.5 16 14 4 9 74 3 133 4 5 +14037 148 25 -257.975 2411.5 16 16 4 9 74 3 135 4 7 +14038 148 26 -251.905 2411.5 16 18 4 9 74 3 137 4 9 +14039 148 27 -245.835 2411.5 20 19 4 9 75 3 138 4 10 +14040 148 28 -239.765 2411.5 20 17 4 9 75 3 136 4 8 +14041 148 29 -233.695 2411.5 20 15 4 9 75 3 134 4 6 +14042 148 30 -227.625 2411.5 20 14 4 9 75 3 133 4 5 +14043 148 31 -221.555 2411.5 20 16 4 9 75 3 135 4 7 +14044 148 32 -215.485 2411.5 20 18 4 9 75 3 137 4 9 +14045 148 33 -209.415 2411.5 20 20 4 9 75 3 139 4 11 +14046 148 34 -203.345 2411.5 24 17 4 9 76 3 136 4 8 +14047 148 35 -197.275 2411.5 24 15 4 9 76 3 134 4 6 +14048 148 36 -191.205 2411.5 24 13 4 9 76 3 132 4 4 +14049 148 37 -185.135 2411.5 24 14 4 9 76 3 133 4 5 +14050 148 38 -179.065 2411.5 24 16 4 9 76 3 135 4 7 +14051 148 39 -172.995 2411.5 24 18 4 9 76 3 137 4 9 +14052 148 40 -166.925 2411.5 24 20 4 9 76 3 139 4 11 +14053 148 41 -160.855 2411.5 28 19 4 9 77 3 138 4 10 +14054 148 42 -154.785 2411.5 28 17 4 9 77 3 136 4 8 +14055 148 43 -148.715 2411.5 28 15 4 9 77 3 134 4 6 +14056 148 44 -142.645 2411.5 28 14 4 9 77 3 133 4 5 +14057 148 45 -136.575 2411.5 28 16 4 9 77 3 135 4 7 +14058 148 46 -130.505 2411.5 28 18 4 9 77 3 137 4 9 +14059 148 47 -124.435 2411.5 28 20 4 9 77 3 139 4 11 +14060 148 48 -118.365 2411.5 32 19 4 9 78 3 138 4 10 +14061 148 49 -112.295 2411.5 32 17 4 9 78 3 136 4 8 +14062 148 50 -106.225 2411.5 32 15 4 9 78 3 134 4 6 +14063 148 51 -100.155 2411.5 32 16 4 9 78 3 135 4 7 +14064 148 52 -94.085 2411.5 32 18 4 9 78 3 137 4 9 +14065 148 53 -88.015 2411.5 32 20 4 9 78 3 139 4 11 +14066 148 54 -81.945 2411.5 36 17 4 9 79 3 136 4 8 +14067 148 55 -75.875 2411.5 36 15 4 9 79 3 134 4 6 +14068 148 56 -69.805 2411.5 36 13 4 9 79 3 132 4 4 +14069 148 57 -63.735 2411.5 36 14 4 9 79 3 133 4 5 +14070 148 58 -57.665 2411.5 36 16 4 9 79 3 135 4 7 +14071 148 59 -51.595 2411.5 36 18 4 9 79 3 137 4 9 +14072 148 60 -45.525 2411.5 36 20 4 9 79 3 139 4 11 +14073 148 61 -39.455 2411.5 40 17 4 9 80 3 136 4 8 +14074 148 62 -33.385 2411.5 40 15 4 9 80 3 134 4 6 +14075 148 63 -27.315 2411.5 40 13 4 9 80 3 132 4 4 +14076 148 64 -21.245 2411.5 40 14 4 9 80 3 133 4 5 +14077 148 65 -15.175 2411.5 40 16 4 9 80 3 135 4 7 +14078 148 66 -9.105 2411.5 40 18 4 9 80 3 137 4 9 +14079 148 67 -3.035 2411.5 40 20 4 9 80 3 139 4 11 +14080 148 68 3.035 2411.5 44 19 4 9 81 3 138 4 10 +14081 148 69 9.105 2411.5 44 17 4 9 81 3 136 4 8 +14082 148 70 15.175 2411.5 44 15 4 9 81 3 134 4 6 +14083 148 71 21.245 2411.5 44 13 4 9 81 3 132 4 4 +14084 148 72 27.315 2411.5 44 14 4 9 81 3 133 4 5 +14085 148 73 33.385 2411.5 44 16 4 9 81 3 135 4 7 +14086 148 74 39.455 2411.5 44 18 4 9 81 3 137 4 9 +14087 148 75 45.525 2411.5 48 19 4 9 82 3 138 4 10 +14088 148 76 51.595 2411.5 48 17 4 9 82 3 136 4 8 +14089 148 77 57.665 2411.5 48 15 4 9 82 3 134 4 6 +14090 148 78 63.735 2411.5 48 13 4 9 82 3 132 4 4 +14091 148 79 69.805 2411.5 48 14 4 9 82 3 133 4 5 +14092 148 80 75.875 2411.5 48 16 4 9 82 3 135 4 7 +14093 148 81 81.945 2411.5 48 18 4 9 82 3 137 4 9 +14094 148 82 88.015 2411.5 52 19 4 9 83 3 138 4 10 +14095 148 83 94.085 2411.5 52 17 4 9 83 3 136 4 8 +14096 148 84 100.155 2411.5 52 15 4 9 83 3 134 4 6 +14097 148 85 106.225 2411.5 52 16 4 9 83 3 135 4 7 +14098 148 86 112.295 2411.5 52 18 4 9 83 3 137 4 9 +14099 148 87 118.365 2411.5 52 20 4 9 83 3 139 4 11 +14100 148 88 124.435 2411.5 56 19 4 9 84 3 138 4 10 +14101 148 89 130.505 2411.5 56 17 4 9 84 3 136 4 8 +14102 148 90 136.575 2411.5 56 15 4 9 84 3 134 4 6 +14103 148 91 142.645 2411.5 56 13 4 9 84 3 132 4 4 +14104 148 92 148.715 2411.5 56 16 4 9 84 3 135 4 7 +14105 148 93 154.785 2411.5 56 18 4 9 84 3 137 4 9 +14106 148 94 160.855 2411.5 56 20 4 9 84 3 139 4 11 +14107 148 95 166.925 2411.5 60 19 4 9 85 3 138 4 10 +14108 148 96 172.995 2411.5 60 17 4 9 85 3 136 4 8 +14109 148 97 179.065 2411.5 60 15 4 9 85 3 134 4 6 +14110 148 98 185.135 2411.5 60 13 4 9 85 3 132 4 4 +14111 148 99 191.205 2411.5 60 14 4 9 85 3 133 4 5 +14112 148 100 197.275 2411.5 60 16 4 9 85 3 135 4 7 +14113 148 101 203.345 2411.5 60 18 4 9 85 3 137 4 9 +14114 148 102 209.415 2411.5 64 19 4 9 86 3 138 4 10 +14115 148 103 215.485 2411.5 64 17 4 9 86 3 136 4 8 +14116 148 104 221.555 2411.5 64 15 4 9 86 3 134 4 6 +14117 148 105 227.625 2411.5 64 13 4 9 86 3 132 4 4 +14118 148 106 233.695 2411.5 64 16 4 9 86 3 135 4 7 +14119 148 107 239.765 2411.5 64 18 4 9 86 3 137 4 9 +14120 148 108 245.835 2411.5 64 20 4 9 86 3 139 4 11 +14121 148 109 251.905 2411.5 68 17 4 9 87 3 136 4 8 +14122 148 110 257.975 2411.5 68 15 4 9 87 3 134 4 6 +14123 148 111 264.045 2411.5 68 13 4 9 87 3 132 4 4 +14124 148 112 270.115 2411.5 68 16 4 9 87 3 135 4 7 +14125 148 113 276.185 2411.5 68 18 4 9 87 3 137 4 9 +14126 148 114 282.255 2411.5 68 20 4 9 87 3 139 4 11 +14127 148 115 288.325 2411.5 72 19 4 9 88 3 138 4 10 +14128 148 116 294.395 2411.5 72 17 4 9 88 3 136 4 8 +14129 148 117 300.465 2411.5 72 15 4 9 88 3 134 4 6 +14130 148 118 306.535 2411.5 72 13 4 9 88 3 132 4 4 +14131 148 119 312.605 2411.5 72 14 4 9 88 3 133 4 5 +14132 148 120 318.675 2411.5 72 16 4 9 88 3 135 4 7 +14133 148 121 324.745 2411.5 72 18 4 9 88 3 137 4 9 +14134 148 122 330.815 2411.5 76 19 4 9 89 3 138 4 10 +14135 148 123 336.885 2411.5 76 17 4 9 89 3 136 4 8 +14136 148 124 342.955 2411.5 76 15 4 9 89 3 134 4 6 +14137 148 125 349.025 2411.5 76 13 4 9 89 3 132 4 4 +14138 148 126 355.095 2411.5 76 16 4 9 89 3 135 4 7 +14139 148 127 361.165 2411.5 76 18 4 9 89 3 137 4 9 +14140 148 128 367.235 2411.5 76 20 4 9 89 3 139 4 11 +14141 148 129 373.305 2411.5 80 17 4 9 90 3 136 4 8 +14142 148 130 379.375 2411.5 80 15 4 9 90 3 134 4 6 +14143 148 131 385.445 2411.5 80 13 4 9 90 3 132 4 4 +14144 148 132 391.515 2411.5 80 14 4 9 90 3 133 4 5 +14145 148 133 397.585 2411.5 80 16 4 9 90 3 135 4 7 +14146 148 134 403.655 2411.5 80 18 4 9 90 3 137 4 9 +14147 148 135 409.725 2411.5 80 20 4 9 90 3 139 4 11 +14148 149 0 -409.725 2426.5 4 25 4 9 71 3 144 4 16 +14149 149 1 -403.655 2426.5 4 23 4 9 71 3 142 4 14 +14150 149 2 -397.585 2426.5 4 21 4 9 71 3 140 4 12 +14151 149 3 -391.515 2426.5 4 20 4 9 71 3 139 4 11 +14152 149 4 -385.445 2426.5 4 22 4 9 71 3 141 4 13 +14153 149 5 -379.375 2426.5 4 24 4 9 71 3 143 4 15 +14154 149 6 -373.305 2426.5 4 26 4 9 71 3 145 4 17 +14155 149 7 -367.235 2426.5 8 25 4 9 72 3 144 4 16 +14156 149 8 -361.165 2426.5 8 23 4 9 72 3 142 4 14 +14157 149 9 -355.095 2426.5 8 21 4 9 72 3 140 4 12 +14158 149 10 -349.025 2426.5 8 22 4 9 72 3 141 4 13 +14159 149 11 -342.955 2426.5 8 24 4 9 72 3 143 4 15 +14160 149 12 -336.885 2426.5 8 26 4 9 72 3 145 4 17 +14161 149 13 -330.815 2426.5 12 25 4 9 73 3 144 4 16 +14162 149 14 -324.745 2426.5 12 23 4 9 73 3 142 4 14 +14163 149 15 -318.675 2426.5 12 21 4 9 73 3 140 4 12 +14164 149 16 -312.605 2426.5 12 19 4 9 73 3 138 4 10 +14165 149 17 -306.535 2426.5 12 22 4 9 73 3 141 4 13 +14166 149 18 -300.465 2426.5 12 24 4 9 73 3 143 4 15 +14167 149 19 -294.395 2426.5 12 26 4 9 73 3 145 4 17 +14168 149 20 -288.325 2426.5 16 25 4 9 74 3 144 4 16 +14169 149 21 -282.255 2426.5 16 23 4 9 74 3 142 4 14 +14170 149 22 -276.185 2426.5 16 21 4 9 74 3 140 4 12 +14171 149 23 -270.115 2426.5 16 20 4 9 74 3 139 4 11 +14172 149 24 -264.045 2426.5 16 22 4 9 74 3 141 4 13 +14173 149 25 -257.975 2426.5 16 24 4 9 74 3 143 4 15 +14174 149 26 -251.905 2426.5 16 26 4 9 74 3 145 4 17 +14175 149 27 -245.835 2426.5 20 27 4 9 75 3 146 4 18 +14176 149 28 -239.765 2426.5 20 25 4 9 75 3 144 4 16 +14177 149 29 -233.695 2426.5 20 23 4 9 75 3 142 4 14 +14178 149 30 -227.625 2426.5 20 21 4 9 75 3 140 4 12 +14179 149 31 -221.555 2426.5 20 22 4 9 75 3 141 4 13 +14180 149 32 -215.485 2426.5 20 24 4 9 75 3 143 4 15 +14181 149 33 -209.415 2426.5 20 26 4 9 75 3 145 4 17 +14182 149 34 -203.345 2426.5 24 25 4 9 76 3 144 4 16 +14183 149 35 -197.275 2426.5 24 23 4 9 76 3 142 4 14 +14184 149 36 -191.205 2426.5 24 21 4 9 76 3 140 4 12 +14185 149 37 -185.135 2426.5 24 19 4 9 76 3 138 4 10 +14186 149 38 -179.065 2426.5 24 22 4 9 76 3 141 4 13 +14187 149 39 -172.995 2426.5 24 24 4 9 76 3 143 4 15 +14188 149 40 -166.925 2426.5 24 26 4 9 76 3 145 4 17 +14189 149 41 -160.855 2426.5 28 25 4 9 77 3 144 4 16 +14190 149 42 -154.785 2426.5 28 23 4 9 77 3 142 4 14 +14191 149 43 -148.715 2426.5 28 21 4 9 77 3 140 4 12 +14192 149 44 -142.645 2426.5 28 22 4 9 77 3 141 4 13 +14193 149 45 -136.575 2426.5 28 24 4 9 77 3 143 4 15 +14194 149 46 -130.505 2426.5 28 26 4 9 77 3 145 4 17 +14195 149 47 -124.435 2426.5 28 28 4 9 77 3 147 4 19 +14196 149 48 -118.365 2426.5 32 25 4 9 78 3 144 4 16 +14197 149 49 -112.295 2426.5 32 23 4 9 78 3 142 4 14 +14198 149 50 -106.225 2426.5 32 21 4 9 78 3 140 4 12 +14199 149 51 -100.155 2426.5 32 22 4 9 78 3 141 4 13 +14200 149 52 -94.085 2426.5 32 24 4 9 78 3 143 4 15 +14201 149 53 -88.015 2426.5 32 26 4 9 78 3 145 4 17 +14202 149 54 -81.945 2426.5 36 25 4 9 79 3 144 4 16 +14203 149 55 -75.875 2426.5 36 23 4 9 79 3 142 4 14 +14204 149 56 -69.805 2426.5 36 21 4 9 79 3 140 4 12 +14205 149 57 -63.735 2426.5 36 19 4 9 79 3 138 4 10 +14206 149 58 -57.665 2426.5 36 22 4 9 79 3 141 4 13 +14207 149 59 -51.595 2426.5 36 24 4 9 79 3 143 4 15 +14208 149 60 -45.525 2426.5 36 26 4 9 79 3 145 4 17 +14209 149 61 -39.455 2426.5 40 25 4 9 80 3 144 4 16 +14210 149 62 -33.385 2426.5 40 23 4 9 80 3 142 4 14 +14211 149 63 -27.315 2426.5 40 21 4 9 80 3 140 4 12 +14212 149 64 -21.245 2426.5 40 19 4 9 80 3 138 4 10 +14213 149 65 -15.175 2426.5 40 22 4 9 80 3 141 4 13 +14214 149 66 -9.105 2426.5 40 24 4 9 80 3 143 4 15 +14215 149 67 -3.035 2426.5 40 26 4 9 80 3 145 4 17 +14216 149 68 3.035 2426.5 44 25 4 9 81 3 144 4 16 +14217 149 69 9.105 2426.5 44 23 4 9 81 3 142 4 14 +14218 149 70 15.175 2426.5 44 21 4 9 81 3 140 4 12 +14219 149 71 21.245 2426.5 44 20 4 9 81 3 139 4 11 +14220 149 72 27.315 2426.5 44 22 4 9 81 3 141 4 13 +14221 149 73 33.385 2426.5 44 24 4 9 81 3 143 4 15 +14222 149 74 39.455 2426.5 44 26 4 9 81 3 145 4 17 +14223 149 75 45.525 2426.5 48 25 4 9 82 3 144 4 16 +14224 149 76 51.595 2426.5 48 23 4 9 82 3 142 4 14 +14225 149 77 57.665 2426.5 48 21 4 9 82 3 140 4 12 +14226 149 78 63.735 2426.5 48 20 4 9 82 3 139 4 11 +14227 149 79 69.805 2426.5 48 22 4 9 82 3 141 4 13 +14228 149 80 75.875 2426.5 48 24 4 9 82 3 143 4 15 +14229 149 81 81.945 2426.5 48 26 4 9 82 3 145 4 17 +14230 149 82 88.015 2426.5 52 25 4 9 83 3 144 4 16 +14231 149 83 94.085 2426.5 52 23 4 9 83 3 142 4 14 +14232 149 84 100.155 2426.5 52 21 4 9 83 3 140 4 12 +14233 149 85 106.225 2426.5 52 22 4 9 83 3 141 4 13 +14234 149 86 112.295 2426.5 52 24 4 9 83 3 143 4 15 +14235 149 87 118.365 2426.5 52 26 4 9 83 3 145 4 17 +14236 149 88 124.435 2426.5 56 27 4 9 84 3 146 4 18 +14237 149 89 130.505 2426.5 56 25 4 9 84 3 144 4 16 +14238 149 90 136.575 2426.5 56 23 4 9 84 3 142 4 14 +14239 149 91 142.645 2426.5 56 21 4 9 84 3 140 4 12 +14240 149 92 148.715 2426.5 56 22 4 9 84 3 141 4 13 +14241 149 93 154.785 2426.5 56 24 4 9 84 3 143 4 15 +14242 149 94 160.855 2426.5 56 26 4 9 84 3 145 4 17 +14243 149 95 166.925 2426.5 60 25 4 9 85 3 144 4 16 +14244 149 96 172.995 2426.5 60 23 4 9 85 3 142 4 14 +14245 149 97 179.065 2426.5 60 21 4 9 85 3 140 4 12 +14246 149 98 185.135 2426.5 60 20 4 9 85 3 139 4 11 +14247 149 99 191.205 2426.5 60 22 4 9 85 3 141 4 13 +14248 149 100 197.275 2426.5 60 24 4 9 85 3 143 4 15 +14249 149 101 203.345 2426.5 60 26 4 9 85 3 145 4 17 +14250 149 102 209.415 2426.5 64 25 4 9 86 3 144 4 16 +14251 149 103 215.485 2426.5 64 23 4 9 86 3 142 4 14 +14252 149 104 221.555 2426.5 64 21 4 9 86 3 140 4 12 +14253 149 105 227.625 2426.5 64 22 4 9 86 3 141 4 13 +14254 149 106 233.695 2426.5 64 24 4 9 86 3 143 4 15 +14255 149 107 239.765 2426.5 64 26 4 9 86 3 145 4 17 +14256 149 108 245.835 2426.5 64 28 4 9 86 3 147 4 19 +14257 149 109 251.905 2426.5 68 25 4 9 87 3 144 4 16 +14258 149 110 257.975 2426.5 68 23 4 9 87 3 142 4 14 +14259 149 111 264.045 2426.5 68 21 4 9 87 3 140 4 12 +14260 149 112 270.115 2426.5 68 19 4 9 87 3 138 4 10 +14261 149 113 276.185 2426.5 68 22 4 9 87 3 141 4 13 +14262 149 114 282.255 2426.5 68 24 4 9 87 3 143 4 15 +14263 149 115 288.325 2426.5 68 26 4 9 87 3 145 4 17 +14264 149 116 294.395 2426.5 72 25 4 9 88 3 144 4 16 +14265 149 117 300.465 2426.5 72 23 4 9 88 3 142 4 14 +14266 149 118 306.535 2426.5 72 21 4 9 88 3 140 4 12 +14267 149 119 312.605 2426.5 72 20 4 9 88 3 139 4 11 +14268 149 120 318.675 2426.5 72 22 4 9 88 3 141 4 13 +14269 149 121 324.745 2426.5 72 24 4 9 88 3 143 4 15 +14270 149 122 330.815 2426.5 72 26 4 9 88 3 145 4 17 +14271 149 123 336.885 2426.5 76 25 4 9 89 3 144 4 16 +14272 149 124 342.955 2426.5 76 23 4 9 89 3 142 4 14 +14273 149 125 349.025 2426.5 76 21 4 9 89 3 140 4 12 +14274 149 126 355.095 2426.5 76 22 4 9 89 3 141 4 13 +14275 149 127 361.165 2426.5 76 24 4 9 89 3 143 4 15 +14276 149 128 367.235 2426.5 76 26 4 9 89 3 145 4 17 +14277 149 129 373.305 2426.5 80 25 4 9 90 3 144 4 16 +14278 149 130 379.375 2426.5 80 23 4 9 90 3 142 4 14 +14279 149 131 385.445 2426.5 80 21 4 9 90 3 140 4 12 +14280 149 132 391.515 2426.5 80 19 4 9 90 3 138 4 10 +14281 149 133 397.585 2426.5 80 22 4 9 90 3 141 4 13 +14282 149 134 403.655 2426.5 80 24 4 9 90 3 143 4 15 +14283 149 135 409.725 2426.5 80 26 4 9 90 3 145 4 17 +14284 150 0 -415.795 2441.5 4 33 4 9 71 3 152 4 24 +14285 150 1 -409.725 2441.5 4 31 4 9 71 3 150 4 22 +14286 150 2 -403.655 2441.5 4 29 4 9 71 3 148 4 20 +14287 150 3 -397.585 2441.5 4 27 4 9 71 3 146 4 18 +14288 150 4 -391.515 2441.5 4 28 4 9 71 3 147 4 19 +14289 150 5 -385.445 2441.5 4 30 4 9 71 3 149 4 21 +14290 150 6 -379.375 2441.5 4 32 4 9 71 3 151 4 23 +14291 150 7 -373.305 2441.5 8 33 4 9 72 3 152 4 24 +14292 150 8 -367.235 2441.5 8 31 4 9 72 3 150 4 22 +14293 150 9 -361.165 2441.5 8 29 4 9 72 3 148 4 20 +14294 150 10 -355.095 2441.5 8 27 4 9 72 3 146 4 18 +14295 150 11 -349.025 2441.5 8 28 4 9 72 3 147 4 19 +14296 150 12 -342.955 2441.5 8 30 4 9 72 3 149 4 21 +14297 150 13 -336.885 2441.5 8 32 4 9 72 3 151 4 23 +14298 150 14 -330.815 2441.5 12 33 4 9 73 3 152 4 24 +14299 150 15 -324.745 2441.5 12 31 4 9 73 3 150 4 22 +14300 150 16 -318.675 2441.5 12 29 4 9 73 3 148 4 20 +14301 150 17 -312.605 2441.5 12 27 4 9 73 3 146 4 18 +14302 150 18 -306.535 2441.5 12 28 4 9 73 3 147 4 19 +14303 150 19 -300.465 2441.5 12 30 4 9 73 3 149 4 21 +14304 150 20 -294.395 2441.5 12 32 4 9 73 3 151 4 23 +14305 150 21 -288.325 2441.5 16 33 4 9 74 3 152 4 24 +14306 150 22 -282.255 2441.5 16 31 4 9 74 3 150 4 22 +14307 150 23 -276.185 2441.5 16 29 4 9 74 3 148 4 20 +14308 150 24 -270.115 2441.5 16 27 4 9 74 3 146 4 18 +14309 150 25 -264.045 2441.5 16 28 4 9 74 3 147 4 19 +14310 150 26 -257.975 2441.5 16 30 4 9 74 3 149 4 21 +14311 150 27 -251.905 2441.5 16 32 4 9 74 3 151 4 23 +14312 150 28 -245.835 2441.5 20 33 4 9 75 3 152 4 24 +14313 150 29 -239.765 2441.5 20 31 4 9 75 3 150 4 22 +14314 150 30 -233.695 2441.5 20 29 4 9 75 3 148 4 20 +14315 150 31 -227.625 2441.5 20 28 4 9 75 3 147 4 19 +14316 150 32 -221.555 2441.5 20 30 4 9 75 3 149 4 21 +14317 150 33 -215.485 2441.5 20 32 4 9 75 3 151 4 23 +14318 150 34 -209.415 2441.5 20 34 4 9 75 3 153 4 25 +14319 150 35 -203.345 2441.5 24 31 4 9 76 3 150 4 22 +14320 150 36 -197.275 2441.5 24 29 4 9 76 3 148 4 20 +14321 150 37 -191.205 2441.5 24 27 4 9 76 3 146 4 18 +14322 150 38 -185.135 2441.5 24 28 4 9 76 3 147 4 19 +14323 150 39 -179.065 2441.5 24 30 4 9 76 3 149 4 21 +14324 150 40 -172.995 2441.5 24 32 4 9 76 3 151 4 23 +14325 150 41 -166.925 2441.5 24 34 4 9 76 3 153 4 25 +14326 150 42 -160.855 2441.5 28 31 4 9 77 3 150 4 22 +14327 150 43 -154.785 2441.5 28 29 4 9 77 3 148 4 20 +14328 150 44 -148.715 2441.5 28 27 4 9 77 3 146 4 18 +14329 150 45 -142.645 2441.5 28 30 4 9 77 3 149 4 21 +14330 150 46 -136.575 2441.5 28 32 4 9 77 3 151 4 23 +14331 150 47 -130.505 2441.5 28 34 4 9 77 3 153 4 25 +14332 150 48 -124.435 2441.5 32 33 4 9 78 3 152 4 24 +14333 150 49 -118.365 2441.5 32 31 4 9 78 3 150 4 22 +14334 150 50 -112.295 2441.5 32 29 4 9 78 3 148 4 20 +14335 150 51 -106.225 2441.5 32 27 4 9 78 3 146 4 18 +14336 150 52 -100.155 2441.5 32 28 4 9 78 3 147 4 19 +14337 150 53 -94.085 2441.5 32 30 4 9 78 3 149 4 21 +14338 150 54 -88.015 2441.5 32 32 4 9 78 3 151 4 23 +14339 150 55 -81.945 2441.5 36 31 4 9 79 3 150 4 22 +14340 150 56 -75.875 2441.5 36 29 4 9 79 3 148 4 20 +14341 150 57 -69.805 2441.5 36 27 4 9 79 3 146 4 18 +14342 150 58 -63.735 2441.5 36 28 4 9 79 3 147 4 19 +14343 150 59 -57.665 2441.5 36 30 4 9 79 3 149 4 21 +14344 150 60 -51.595 2441.5 36 32 4 9 79 3 151 4 23 +14345 150 61 -45.525 2441.5 36 34 4 9 79 3 153 4 25 +14346 150 62 -39.455 2441.5 40 31 4 9 80 3 150 4 22 +14347 150 63 -33.385 2441.5 40 29 4 9 80 3 148 4 20 +14348 150 64 -27.315 2441.5 40 27 4 9 80 3 146 4 18 +14349 150 65 -21.245 2441.5 40 28 4 9 80 3 147 4 19 +14350 150 66 -15.175 2441.5 40 30 4 9 80 3 149 4 21 +14351 150 67 -9.105 2441.5 40 32 4 9 80 3 151 4 23 +14352 150 68 -3.035 2441.5 40 34 4 9 80 3 153 4 25 +14353 150 69 3.035 2441.5 44 33 4 9 81 3 152 4 24 +14354 150 70 9.105 2441.5 44 31 4 9 81 3 150 4 22 +14355 150 71 15.175 2441.5 44 29 4 9 81 3 148 4 20 +14356 150 72 21.245 2441.5 44 27 4 9 81 3 146 4 18 +14357 150 73 27.315 2441.5 44 28 4 9 81 3 147 4 19 +14358 150 74 33.385 2441.5 44 30 4 9 81 3 149 4 21 +14359 150 75 39.455 2441.5 44 32 4 9 81 3 151 4 23 +14360 150 76 45.525 2441.5 48 33 4 9 82 3 152 4 24 +14361 150 77 51.595 2441.5 48 31 4 9 82 3 150 4 22 +14362 150 78 57.665 2441.5 48 29 4 9 82 3 148 4 20 +14363 150 79 63.735 2441.5 48 27 4 9 82 3 146 4 18 +14364 150 80 69.805 2441.5 48 28 4 9 82 3 147 4 19 +14365 150 81 75.875 2441.5 48 30 4 9 82 3 149 4 21 +14366 150 82 81.945 2441.5 48 32 4 9 82 3 151 4 23 +14367 150 83 88.015 2441.5 52 31 4 9 83 3 150 4 22 +14368 150 84 94.085 2441.5 52 29 4 9 83 3 148 4 20 +14369 150 85 100.155 2441.5 52 27 4 9 83 3 146 4 18 +14370 150 86 106.225 2441.5 52 28 4 9 83 3 147 4 19 +14371 150 87 112.295 2441.5 52 30 4 9 83 3 149 4 21 +14372 150 88 118.365 2441.5 52 32 4 9 83 3 151 4 23 +14373 150 89 124.435 2441.5 52 34 4 9 83 3 153 4 25 +14374 150 90 130.505 2441.5 56 33 4 9 84 3 152 4 24 +14375 150 91 136.575 2441.5 56 31 4 9 84 3 150 4 22 +14376 150 92 142.645 2441.5 56 29 4 9 84 3 148 4 20 +14377 150 93 148.715 2441.5 56 28 4 9 84 3 147 4 19 +14378 150 94 154.785 2441.5 56 30 4 9 84 3 149 4 21 +14379 150 95 160.855 2441.5 56 32 4 9 84 3 151 4 23 +14380 150 96 166.925 2441.5 60 33 4 9 85 3 152 4 24 +14381 150 97 172.995 2441.5 60 31 4 9 85 3 150 4 22 +14382 150 98 179.065 2441.5 60 29 4 9 85 3 148 4 20 +14383 150 99 185.135 2441.5 60 27 4 9 85 3 146 4 18 +14384 150 100 191.205 2441.5 60 28 4 9 85 3 147 4 19 +14385 150 101 197.275 2441.5 60 30 4 9 85 3 149 4 21 +14386 150 102 203.345 2441.5 60 32 4 9 85 3 151 4 23 +14387 150 103 209.415 2441.5 64 33 4 9 86 3 152 4 24 +14388 150 104 215.485 2441.5 64 31 4 9 86 3 150 4 22 +14389 150 105 221.555 2441.5 64 29 4 9 86 3 148 4 20 +14390 150 106 227.625 2441.5 64 27 4 9 86 3 146 4 18 +14391 150 107 233.695 2441.5 64 30 4 9 86 3 149 4 21 +14392 150 108 239.765 2441.5 64 32 4 9 86 3 151 4 23 +14393 150 109 245.835 2441.5 64 34 4 9 86 3 153 4 25 +14394 150 110 251.905 2441.5 68 31 4 9 87 3 150 4 22 +14395 150 111 257.975 2441.5 68 29 4 9 87 3 148 4 20 +14396 150 112 264.045 2441.5 68 27 4 9 87 3 146 4 18 +14397 150 113 270.115 2441.5 68 28 4 9 87 3 147 4 19 +14398 150 114 276.185 2441.5 68 30 4 9 87 3 149 4 21 +14399 150 115 282.255 2441.5 68 32 4 9 87 3 151 4 23 +14400 150 116 288.325 2441.5 68 34 4 9 87 3 153 4 25 +14401 150 117 294.395 2441.5 72 31 4 9 88 3 150 4 22 +14402 150 118 300.465 2441.5 72 29 4 9 88 3 148 4 20 +14403 150 119 306.535 2441.5 72 27 4 9 88 3 146 4 18 +14404 150 120 312.605 2441.5 72 28 4 9 88 3 147 4 19 +14405 150 121 318.675 2441.5 72 30 4 9 88 3 149 4 21 +14406 150 122 324.745 2441.5 72 32 4 9 88 3 151 4 23 +14407 150 123 330.815 2441.5 72 34 4 9 88 3 153 4 25 +14408 150 124 336.885 2441.5 76 31 4 9 89 3 150 4 22 +14409 150 125 342.955 2441.5 76 29 4 9 89 3 148 4 20 +14410 150 126 349.025 2441.5 76 27 4 9 89 3 146 4 18 +14411 150 127 355.095 2441.5 76 28 4 9 89 3 147 4 19 +14412 150 128 361.165 2441.5 76 30 4 9 89 3 149 4 21 +14413 150 129 367.235 2441.5 76 32 4 9 89 3 151 4 23 +14414 150 130 373.305 2441.5 76 34 4 9 89 3 153 4 25 +14415 150 131 379.375 2441.5 80 31 4 9 90 3 150 4 22 +14416 150 132 385.445 2441.5 80 29 4 9 90 3 148 4 20 +14417 150 133 391.515 2441.5 80 27 4 9 90 3 146 4 18 +14418 150 134 397.585 2441.5 80 28 4 9 90 3 147 4 19 +14419 150 135 403.655 2441.5 80 30 4 9 90 3 149 4 21 +14420 150 136 409.725 2441.5 80 32 4 9 90 3 151 4 23 +14421 150 137 415.795 2441.5 80 34 4 9 90 3 153 4 25 +14422 151 0 -415.795 2456.5 4 39 4 9 71 3 158 4 30 +14423 151 1 -409.725 2456.5 4 37 4 9 71 3 156 4 28 +14424 151 2 -403.655 2456.5 4 35 4 9 71 3 154 4 26 +14425 151 3 -397.585 2456.5 4 34 4 9 71 3 153 4 25 +14426 151 4 -391.515 2456.5 4 36 4 9 71 3 155 4 27 +14427 151 5 -385.445 2456.5 4 38 4 9 71 3 157 4 29 +14428 151 6 -379.375 2456.5 4 40 4 9 71 3 159 4 31 +14429 151 7 -373.305 2456.5 8 39 4 9 72 3 158 4 30 +14430 151 8 -367.235 2456.5 8 37 4 9 72 3 156 4 28 +14431 151 9 -361.165 2456.5 8 35 4 9 72 3 154 4 26 +14432 151 10 -355.095 2456.5 8 34 4 9 72 3 153 4 25 +14433 151 11 -349.025 2456.5 8 36 4 9 72 3 155 4 27 +14434 151 12 -342.955 2456.5 8 38 4 9 72 3 157 4 29 +14435 151 13 -336.885 2456.5 8 40 4 9 72 3 159 4 31 +14436 151 14 -330.815 2456.5 12 39 4 9 73 3 158 4 30 +14437 151 15 -324.745 2456.5 12 37 4 9 73 3 156 4 28 +14438 151 16 -318.675 2456.5 12 35 4 9 73 3 154 4 26 +14439 151 17 -312.605 2456.5 12 34 4 9 73 3 153 4 25 +14440 151 18 -306.535 2456.5 12 36 4 9 73 3 155 4 27 +14441 151 19 -300.465 2456.5 12 38 4 9 73 3 157 4 29 +14442 151 20 -294.395 2456.5 12 40 4 9 73 3 159 4 31 +14443 151 21 -288.325 2456.5 16 39 4 9 74 3 158 4 30 +14444 151 22 -282.255 2456.5 16 37 4 9 74 3 156 4 28 +14445 151 23 -276.185 2456.5 16 35 4 9 74 3 154 4 26 +14446 151 24 -270.115 2456.5 16 34 4 9 74 3 153 4 25 +14447 151 25 -264.045 2456.5 16 36 4 9 74 3 155 4 27 +14448 151 26 -257.975 2456.5 16 38 4 9 74 3 157 4 29 +14449 151 27 -251.905 2456.5 16 40 4 9 74 3 159 4 31 +14450 151 28 -245.835 2456.5 20 39 4 9 75 3 158 4 30 +14451 151 29 -239.765 2456.5 20 37 4 9 75 3 156 4 28 +14452 151 30 -233.695 2456.5 20 35 4 9 75 3 154 4 26 +14453 151 31 -227.625 2456.5 20 36 4 9 75 3 155 4 27 +14454 151 32 -221.555 2456.5 20 38 4 9 75 3 157 4 29 +14455 151 33 -215.485 2456.5 20 40 4 9 75 3 159 4 31 +14456 151 34 -209.415 2456.5 24 39 4 9 76 3 158 4 30 +14457 151 35 -203.345 2456.5 24 37 4 9 76 3 156 4 28 +14458 151 36 -197.275 2456.5 24 35 4 9 76 3 154 4 26 +14459 151 37 -191.205 2456.5 24 33 4 9 76 3 152 4 24 +14460 151 38 -185.135 2456.5 24 36 4 9 76 3 155 4 27 +14461 151 39 -179.065 2456.5 24 38 4 9 76 3 157 4 29 +14462 151 40 -172.995 2456.5 24 40 4 9 76 3 159 4 31 +14463 151 41 -166.925 2456.5 28 39 4 9 77 3 158 4 30 +14464 151 42 -160.855 2456.5 28 37 4 9 77 3 156 4 28 +14465 151 43 -154.785 2456.5 28 35 4 9 77 3 154 4 26 +14466 151 44 -148.715 2456.5 28 33 4 9 77 3 152 4 24 +14467 151 45 -142.645 2456.5 28 36 4 9 77 3 155 4 27 +14468 151 46 -136.575 2456.5 28 38 4 9 77 3 157 4 29 +14469 151 47 -130.505 2456.5 28 40 4 9 77 3 159 4 31 +14470 151 48 -124.435 2456.5 32 39 4 9 78 3 158 4 30 +14471 151 49 -118.365 2456.5 32 37 4 9 78 3 156 4 28 +14472 151 50 -112.295 2456.5 32 35 4 9 78 3 154 4 26 +14473 151 51 -106.225 2456.5 32 34 4 9 78 3 153 4 25 +14474 151 52 -100.155 2456.5 32 36 4 9 78 3 155 4 27 +14475 151 53 -94.085 2456.5 32 38 4 9 78 3 157 4 29 +14476 151 54 -88.015 2456.5 32 40 4 9 78 3 159 4 31 +14477 151 55 -81.945 2456.5 36 39 4 9 79 3 158 4 30 +14478 151 56 -75.875 2456.5 36 37 4 9 79 3 156 4 28 +14479 151 57 -69.805 2456.5 36 35 4 9 79 3 154 4 26 +14480 151 58 -63.735 2456.5 36 33 4 9 79 3 152 4 24 +14481 151 59 -57.665 2456.5 36 36 4 9 79 3 155 4 27 +14482 151 60 -51.595 2456.5 36 38 4 9 79 3 157 4 29 +14483 151 61 -45.525 2456.5 36 40 4 9 79 3 159 4 31 +14484 151 62 -39.455 2456.5 40 39 4 9 80 3 158 4 30 +14485 151 63 -33.385 2456.5 40 37 4 9 80 3 156 4 28 +14486 151 64 -27.315 2456.5 40 35 4 9 80 3 154 4 26 +14487 151 65 -21.245 2456.5 40 33 4 9 80 3 152 4 24 +14488 151 66 -15.175 2456.5 40 36 4 9 80 3 155 4 27 +14489 151 67 -9.105 2456.5 40 38 4 9 80 3 157 4 29 +14490 151 68 -3.035 2456.5 40 40 4 9 80 3 159 4 31 +14491 151 69 3.035 2456.5 44 39 4 9 81 3 158 4 30 +14492 151 70 9.105 2456.5 44 37 4 9 81 3 156 4 28 +14493 151 71 15.175 2456.5 44 35 4 9 81 3 154 4 26 +14494 151 72 21.245 2456.5 44 34 4 9 81 3 153 4 25 +14495 151 73 27.315 2456.5 44 36 4 9 81 3 155 4 27 +14496 151 74 33.385 2456.5 44 38 4 9 81 3 157 4 29 +14497 151 75 39.455 2456.5 44 40 4 9 81 3 159 4 31 +14498 151 76 45.525 2456.5 48 39 4 9 82 3 158 4 30 +14499 151 77 51.595 2456.5 48 37 4 9 82 3 156 4 28 +14500 151 78 57.665 2456.5 48 35 4 9 82 3 154 4 26 +14501 151 79 63.735 2456.5 48 34 4 9 82 3 153 4 25 +14502 151 80 69.805 2456.5 48 36 4 9 82 3 155 4 27 +14503 151 81 75.875 2456.5 48 38 4 9 82 3 157 4 29 +14504 151 82 81.945 2456.5 48 40 4 9 82 3 159 4 31 +14505 151 83 88.015 2456.5 52 39 4 9 83 3 158 4 30 +14506 151 84 94.085 2456.5 52 37 4 9 83 3 156 4 28 +14507 151 85 100.155 2456.5 52 35 4 9 83 3 154 4 26 +14508 151 86 106.225 2456.5 52 33 4 9 83 3 152 4 24 +14509 151 87 112.295 2456.5 52 36 4 9 83 3 155 4 27 +14510 151 88 118.365 2456.5 52 38 4 9 83 3 157 4 29 +14511 151 89 124.435 2456.5 52 40 4 9 83 3 159 4 31 +14512 151 90 130.505 2456.5 56 39 4 9 84 3 158 4 30 +14513 151 91 136.575 2456.5 56 37 4 9 84 3 156 4 28 +14514 151 92 142.645 2456.5 56 35 4 9 84 3 154 4 26 +14515 151 93 148.715 2456.5 56 34 4 9 84 3 153 4 25 +14516 151 94 154.785 2456.5 56 36 4 9 84 3 155 4 27 +14517 151 95 160.855 2456.5 56 38 4 9 84 3 157 4 29 +14518 151 96 166.925 2456.5 56 40 4 9 84 3 159 4 31 +14519 151 97 172.995 2456.5 60 39 4 9 85 3 158 4 30 +14520 151 98 179.065 2456.5 60 37 4 9 85 3 156 4 28 +14521 151 99 185.135 2456.5 60 35 4 9 85 3 154 4 26 +14522 151 100 191.205 2456.5 60 34 4 9 85 3 153 4 25 +14523 151 101 197.275 2456.5 60 36 4 9 85 3 155 4 27 +14524 151 102 203.345 2456.5 60 38 4 9 85 3 157 4 29 +14525 151 103 209.415 2456.5 60 40 4 9 85 3 159 4 31 +14526 151 104 215.485 2456.5 64 39 4 9 86 3 158 4 30 +14527 151 105 221.555 2456.5 64 37 4 9 86 3 156 4 28 +14528 151 106 227.625 2456.5 64 35 4 9 86 3 154 4 26 +14529 151 107 233.695 2456.5 64 36 4 9 86 3 155 4 27 +14530 151 108 239.765 2456.5 64 38 4 9 86 3 157 4 29 +14531 151 109 245.835 2456.5 64 40 4 9 86 3 159 4 31 +14532 151 110 251.905 2456.5 68 39 4 9 87 3 158 4 30 +14533 151 111 257.975 2456.5 68 37 4 9 87 3 156 4 28 +14534 151 112 264.045 2456.5 68 35 4 9 87 3 154 4 26 +14535 151 113 270.115 2456.5 68 33 4 9 87 3 152 4 24 +14536 151 114 276.185 2456.5 68 36 4 9 87 3 155 4 27 +14537 151 115 282.255 2456.5 68 38 4 9 87 3 157 4 29 +14538 151 116 288.325 2456.5 68 40 4 9 87 3 159 4 31 +14539 151 117 294.395 2456.5 72 39 4 9 88 3 158 4 30 +14540 151 118 300.465 2456.5 72 37 4 9 88 3 156 4 28 +14541 151 119 306.535 2456.5 72 35 4 9 88 3 154 4 26 +14542 151 120 312.605 2456.5 72 33 4 9 88 3 152 4 24 +14543 151 121 318.675 2456.5 72 36 4 9 88 3 155 4 27 +14544 151 122 324.745 2456.5 72 38 4 9 88 3 157 4 29 +14545 151 123 330.815 2456.5 72 40 4 9 88 3 159 4 31 +14546 151 124 336.885 2456.5 76 39 4 9 89 3 158 4 30 +14547 151 125 342.955 2456.5 76 37 4 9 89 3 156 4 28 +14548 151 126 349.025 2456.5 76 35 4 9 89 3 154 4 26 +14549 151 127 355.095 2456.5 76 33 4 9 89 3 152 4 24 +14550 151 128 361.165 2456.5 76 36 4 9 89 3 155 4 27 +14551 151 129 367.235 2456.5 76 38 4 9 89 3 157 4 29 +14552 151 130 373.305 2456.5 76 40 4 9 89 3 159 4 31 +14553 151 131 379.375 2456.5 80 39 4 9 90 3 158 4 30 +14554 151 132 385.445 2456.5 80 37 4 9 90 3 156 4 28 +14555 151 133 391.515 2456.5 80 35 4 9 90 3 154 4 26 +14556 151 134 397.585 2456.5 80 33 4 9 90 3 152 4 24 +14557 151 135 403.655 2456.5 80 36 4 9 90 3 155 4 27 +14558 151 136 409.725 2456.5 80 38 4 9 90 3 157 4 29 +14559 151 137 415.795 2456.5 80 40 4 9 90 3 159 4 31 From a9f28f601dece8aa58efa763d6eb20471a53c0ae Mon Sep 17 00:00:00 2001 From: wiechula Date: Tue, 28 Jun 2016 20:06:21 +0200 Subject: [PATCH 108/135] add class to store pad region information --- Detectors/TPC/base/CMakeLists.txt | 2 + Detectors/TPC/base/include/PadRegionInfo.h | 58 ++++++++++++++++++++++ Detectors/TPC/base/src/PadRegionInfo.cxx | 43 ++++++++++++++++ Detectors/TPC/base/src/tpcBaseLinkDef.h | 2 + 4 files changed, 105 insertions(+) create mode 100644 Detectors/TPC/base/include/PadRegionInfo.h create mode 100644 Detectors/TPC/base/src/PadRegionInfo.cxx diff --git a/Detectors/TPC/base/CMakeLists.txt b/Detectors/TPC/base/CMakeLists.txt index 485d5afb48e9f..7ac24153e9b69 100644 --- a/Detectors/TPC/base/CMakeLists.txt +++ b/Detectors/TPC/base/CMakeLists.txt @@ -27,6 +27,7 @@ set(SRCS src/Mapper.cxx src/PadInfo.cxx src/PadPos.cxx + src/PadRegionInfo.cxx src/PadSecPos.cxx src/Point2D.cxx src/ROC.cxx @@ -39,6 +40,7 @@ set(HEADERS include/Mapper.h include/PadInfo.h include/PadPos.h + include/PadRegionInfo.h include/PadSecPos.h include/Point2D.h include/ROC.h diff --git a/Detectors/TPC/base/include/PadRegionInfo.h b/Detectors/TPC/base/include/PadRegionInfo.h new file mode 100644 index 0000000000000..c6ccf7c7b0dad --- /dev/null +++ b/Detectors/TPC/base/include/PadRegionInfo.h @@ -0,0 +1,58 @@ +#ifndef AliceO2_TPC_PadRegionInfo_H +#define AliceO2_TPC_PadRegionInfo_H + +#include + +#include "PadPos.h" + +namespace AliceO2 { +namespace TPC { + +class PadRegionInfo { +public: + PadRegionInfo() {} + PadRegionInfo(const unsigned char region, + const unsigned char numberOfPadRows, + const float padHeight, + const float padWidth, + const float radiusFirstRow, + const unsigned char rowOffet, + const float xhelper, + const unsigned char globalRowOffset + ); + + const unsigned char getRegion() const { return mRegion; } + const unsigned char getNumberOfPadRows() const { return mNumberOfPadRows; } + const unsigned short getNumberOfPads() const { return mNumberOfPads; } + const float getPadHeight() const { return mPadHeight; } + const float getPadWidth() const { return mPadWidth; } + const float getRadiusFirstRow() const { return mRadiusFirstRow; } + const unsigned char getRowOffet() const { return mRowOffet; } + const float getXhelper() const { return mXhelper; } + + const unsigned char getPadsInRow (const PadPos &padPos) const { return mPadsPerRow[padPos.getRow()-mGlobalRowOffset]; } + const unsigned char getPadsInRow (const int row) const { return mPadsPerRow[row-mGlobalRowOffset]; } + const unsigned char getPadsInRowRegion(const int row) const { return mPadsPerRow[row]; } + + +private: + unsigned char mRegion{0}; /// pad region number + unsigned char mNumberOfPadRows{0}; /// number of rows in region + float mPadHeight{0.f}; /// pad height in this region + float mPadWidth{0.f}; /// pad width in this region + + float mRadiusFirstRow{0.f}; /// radial position of first row + unsigned char mRowOffet{0}; /// row offset in region with same height + float mXhelper{0.f}; /// helper value to calculate pad per row + + unsigned char mGlobalRowOffset{0}; /// global pad row offset + + unsigned short mNumberOfPads{0}; /// total number of pads in region + + void init(); + std::vector mPadsPerRow{}; /// number of pad in each row +}; + +} +} +#endif diff --git a/Detectors/TPC/base/src/PadRegionInfo.cxx b/Detectors/TPC/base/src/PadRegionInfo.cxx new file mode 100644 index 0000000000000..6e30bc11f971b --- /dev/null +++ b/Detectors/TPC/base/src/PadRegionInfo.cxx @@ -0,0 +1,43 @@ +#include +#include "PadRegionInfo.h" + +namespace AliceO2 { +namespace TPC { + + +PadRegionInfo::PadRegionInfo(const unsigned char region, + const unsigned char numberOfPadRows, + const float padHeight, + const float padWidth, + const float radiusFirstRow, + const unsigned char rowOffet, + const float xhelper, + const unsigned char globalRowOffset + ) + : mRegion{region} + , mNumberOfPadRows{numberOfPadRows} + , mPadHeight{padHeight} + , mPadWidth{padWidth} + , mRadiusFirstRow{radiusFirstRow} + , mRowOffet{rowOffet} + , mXhelper{xhelper} + , mNumberOfPads{0} + , mGlobalRowOffset{globalRowOffset} + , mPadsPerRow{numberOfPadRows} +{ + init(); +} + +void PadRegionInfo::init() +{ + + const float ks=mPadHeight/mPadWidth*tan(1.74532925199432948e-01); // tan(10deg) + // initialize number of pads per row + for (int irow=0; irow; +#pragma link C++ class AliceO2::TPC::PadCentre; #pragma link C++ class AliceO2::TPC::ContainerFactory; #pragma link C++ class AliceO2::TPC::FECInfo; #pragma link C++ class AliceO2::TPC::Mapper; #pragma link C++ class AliceO2::TPC::PadInfo; #pragma link C++ class AliceO2::TPC::PadPos; +#pragma link C++ class AliceO2::TPC::PadRegionInfo; #pragma link C++ class AliceO2::TPC::PadSecPos; #pragma link C++ class AliceO2::TPC::ROC; From f45dbeffdbc4b5e6f67434bef5a56acfc5e99022 Mon Sep 17 00:00:00 2001 From: wiechula Date: Tue, 28 Jun 2016 20:07:20 +0200 Subject: [PATCH 109/135] implement mapper, correct getter, update defs --- Detectors/TPC/base/include/Defs.h | 8 +- Detectors/TPC/base/include/FECInfo.h | 11 ++- Detectors/TPC/base/include/Mapper.h | 49 ++++++++++- Detectors/TPC/base/include/PadInfo.h | 10 +-- Detectors/TPC/base/include/PadPos.h | 11 +-- Detectors/TPC/base/include/Point2D.h | 5 ++ Detectors/TPC/base/src/Mapper.cxx | 127 +++++++++++++++++++++++++++ 7 files changed, 201 insertions(+), 20 deletions(-) diff --git a/Detectors/TPC/base/include/Defs.h b/Detectors/TPC/base/include/Defs.h index d94f0e9f30e02..8fadc8fe18928 100644 --- a/Detectors/TPC/base/include/Defs.h +++ b/Detectors/TPC/base/include/Defs.h @@ -1,6 +1,7 @@ #ifndef AliceO2_TPC_Defs_H #define AliceO2_TPC_Defs_H +#include "Point2D.h" namespace AliceO2 { namespace TPC { @@ -15,6 +16,12 @@ enum RocType {IROC=0, OROC=1}; // enum class RocType {IROC=0, OROC=1}; +/// Pad centres as 2D float +typedef Point2D PadCentre; + +/// global pad number +typedef unsigned short GlobalPadNumber; + /** * simple class to allow for range for loops over enums * e.g. for (auto &side : Enum() ) { cout << side << endl; } @@ -70,4 +77,3 @@ typename Enum::Iterator end( Enum ) #endif - diff --git a/Detectors/TPC/base/include/FECInfo.h b/Detectors/TPC/base/include/FECInfo.h index c82754acfdc1a..371a3949a8486 100644 --- a/Detectors/TPC/base/include/FECInfo.h +++ b/Detectors/TPC/base/include/FECInfo.h @@ -15,11 +15,11 @@ class FECInfo { : mIndex(index), mConnector(connector), mChannel(channel), mSampaChip(sampaChip), mSampaChannel(sampaChannel) {} - const unsigned char Index() const { return mIndex; } - const unsigned char Connector() const { return mConnector; } - const unsigned char Channel() const { return mChannel; } - const unsigned char SampaChip() const { return mSampaChip; } - const unsigned char SampaChannel() const { return mSampaChannel;} + const unsigned char getIndex() const { return mIndex; } + const unsigned char getConnector() const { return mConnector; } + const unsigned char getChannel() const { return mChannel; } + const unsigned char getSampaChip() const { return mSampaChip; } + const unsigned char getSampaChannel() const { return mSampaChannel;} private: unsigned char mIndex {0}; /// FEC number in the sector unsigned char mConnector {0}; /// Connector on the FEC @@ -32,4 +32,3 @@ class FECInfo { } #endif - diff --git a/Detectors/TPC/base/include/Mapper.h b/Detectors/TPC/base/include/Mapper.h index 0c6f82cfe6430..1782573ec532f 100644 --- a/Detectors/TPC/base/include/Mapper.h +++ b/Detectors/TPC/base/include/Mapper.h @@ -2,20 +2,65 @@ #define AliceO2_TPC_Mapper_H #include +#include +#include #include "Defs.h" #include "PadPos.h" #include "FECInfo.h" +#include "PadRegionInfo.h" namespace AliceO2 { namespace TPC { class Mapper { public: + static Mapper& instance() { + static Mapper mapper; + return mapper; + } + const PadPos& padPos (GlobalPadNumber padNumber) const { return mMapGlobalPadToPadPos[padNumber%mPadsInSector]; } + const FECInfo& fecInfo(GlobalPadNumber padNumber) const { return mMapGlobalPadFECInfo [padNumber%mPadsInSector]; } + const GlobalPadNumber globalPadNumber(const PadPos& padPosition) const { return mMapPadPosGlobalPad.find(padPosition)->second; } + + const PadRegionInfo& padRegionInfo(const unsigned char region) const { return mMapPadRegionInfo[region]; } + + static const unsigned short GetPadsInIROC () { return mPadsInIROC ; } + static const unsigned short GetPadsInOROC1 () { return mPadsInOROC1 ; } + static const unsigned short GetPadsInOROC2 () { return mPadsInOROC2 ; } + static const unsigned short GetPadsInOROC3 () { return mPadsInOROC3 ; } + static const unsigned short GetPadsInOROC () { return mPadsInOROC ; } + static const unsigned short GetPadsInSector() { return mPadsInSector; } + +// bool loadFECInfo(); +// bool loadTraceLengh(); +// bool loadPositions(); + + // c++11 feature don't work with root dictionary :( +// Mapper(const Mapper&) = delete; +// void operator=(const Mapper&) = delete; private: - std::map mMapPadPosGlobalPad{}; /// mapping pad position to global pad number - std::map mMapGlobalPadFECInfo(); /// map global pad ID to FEC info + Mapper() : mMapGlobalPadToPadPos(mPadsInSector), mMapPadPosGlobalPad(), mMapGlobalPadFECInfo(mPadsInSector), mMapPadRegionInfo(10) {load();} + // use old c++03 due to root + Mapper(const Mapper&) {} + void operator=(const Mapper&) {} + + void load(); + void initPadRegions(); + bool readMappingFile(std::string file); + + static const unsigned short mPadsInIROC {5280}; /// number of pad in IROC + static const unsigned short mPadsInOROC1 {2880}; + static const unsigned short mPadsInOROC2 {3200}; + static const unsigned short mPadsInOROC3 {3200}; + static const unsigned short mPadsInOROC {9280}; + static const unsigned short mPadsInSector{14560}; + + std::vector mMapGlobalPadToPadPos; /// mapping of global pad number to row and pad + std::map mMapPadPosGlobalPad; /// mapping pad position to global pad number, most probably needs to be changed to speed up + std::vector mMapGlobalPadFECInfo; /// map global pad number to FEC info + std::vector mMapPadRegionInfo; /// pad region information }; diff --git a/Detectors/TPC/base/include/PadInfo.h b/Detectors/TPC/base/include/PadInfo.h index 1f49950479089..2fac3220076d6 100644 --- a/Detectors/TPC/base/include/PadInfo.h +++ b/Detectors/TPC/base/include/PadInfo.h @@ -9,17 +9,15 @@ namespace AliceO2 { namespace TPC { -typedef Point2D PadCentre; - class PadInfo { public: private: - unsigned short mIndex{}; /// unique pad index in sector - PadPos mPadPos{}; /// pad row and pad - PadCentre mPadCentre{}; /// pad coordingate as seen for sector A04 in global ALICE coordiantes - FECInfo mFECInfo{}; /// FEC mapping information + GlobalPadNumber mIndex{}; /// unique pad index in sector + PadPos mPadPos{}; /// pad row and pad + PadCentre mPadCentre{}; /// pad coordingate as seen for sector A04 in global ALICE coordiantes + FECInfo mFECInfo{}; /// FEC mapping information }; diff --git a/Detectors/TPC/base/include/PadPos.h b/Detectors/TPC/base/include/PadPos.h index bc29a9d5e9ca5..91f29be3ea04e 100644 --- a/Detectors/TPC/base/include/PadPos.h +++ b/Detectors/TPC/base/include/PadPos.h @@ -5,13 +5,13 @@ namespace AliceO2 { namespace TPC { class PadPos { public: -// PadPos() {} -// PadPos(const unsigned char row, const unsigned char pad) : - const unsigned char row() const { return mRow; } - const unsigned char pad() const { return mPad; } + PadPos() {} + PadPos(const unsigned char row, const unsigned char pad) : mRow(row), mPad(pad) {} + const unsigned char getRow() const { return mRow; } + const unsigned char getPad() const { return mPad; } bool operator==(const PadPos& other) { return (mRow==other.mRow) && (mPad==other.mPad); } - bool operator<(const PadPos& other) { + bool operator<(const PadPos& other) const { if (mRow class Point2D { public: + Point2D() {} + Point2D(const T &x, const T &y) : mX(x), mY(y) {} + + const T& getX() const { return mX; } + const T& getY() const { return mY; } //Point2D(unsigned char index, unsigned char connector, unsigned private: diff --git a/Detectors/TPC/base/src/Mapper.cxx b/Detectors/TPC/base/src/Mapper.cxx index 55b06b55368bd..c65ca346a777f 100644 --- a/Detectors/TPC/base/src/Mapper.cxx +++ b/Detectors/TPC/base/src/Mapper.cxx @@ -1 +1,128 @@ +#include +#include +#include +#include +#include + #include "Mapper.h" +namespace AliceO2 { +namespace TPC { + +bool Mapper::readMappingFile(std::string file) +{ + // ===| Mapping file layout |================================================= + // Col 0 -> INDEX + // Col 1 -> PADROW + // Col 2 -> PAD + // Col 3 -> X coordinate + // Col 4 -> y coordinate + // Col 5 -> Connector + // Col 6 -> Pin + // Col 7 -> Partion + // Col 8 -> Region + // Col 9 -> FEC + // Col 10 -> FEC Connector + // Col 11 -> FEC Channel + // Col 12 -> SAMPA Chip + // Col 13 -> SAMPA Channel + + // ===| Input variables |===================================================== + // pad info + GlobalPadNumber padIndex; + unsigned int padRow; + unsigned int pad; + float xPos; + float yPos; + + // pad plane info + unsigned int connector; + unsigned int pin; + unsigned int partion; + unsigned int region; + + // FEC info + unsigned int fecIndex; + unsigned int fecConnector; + unsigned int fecChannel; + unsigned int sampaChip; + unsigned int sampaChannel; + + std::string line; + std::ifstream infile(file, std::ifstream::in); + while (std::getline(infile, line)) { + std::stringstream streamLine(line); + streamLine + // pad info + >> padIndex + >> padRow + >> pad + >> xPos + >> yPos + + // pad plane info + >> connector + >> pin + >> partion + >> region + + // FEC info + >> fecIndex + >> fecConnector + >> fecChannel + >> sampaChip + >> sampaChannel; + + mMapGlobalPadToPadPos[padIndex]=PadPos(padRow,pad); + mMapPadPosGlobalPad[PadPos(padRow,pad)]=padIndex; + mMapGlobalPadFECInfo[padIndex]=FECInfo(fecIndex, fecConnector, fecChannel, sampaChip, sampaChannel); + +// std::cout +// << padIndex<< " " +// << padRow<< " " +// << pad<< " " +// << xPos<< " " +// << yPos<< " " +// << " " +// // pad plane info<< " " +// << connector<< " " +// << pin<< " " +// << partion<< " " +// << region<< " " +// << " " +// // FEC info<< " " +// << fecIndex<< " " +// << fecConnector<< " " +// << fecChannel<< " " +// << sampaChip<< " " +// << sampaChannel << std::endl; + } +} + +void Mapper::load() +{ + + std::string inputDir=gSystem->Getenv("ALICEO2"); + readMappingFile(inputDir+"/Detectors/TPC/base/files/TABLE-IROC.txt"); + readMappingFile(inputDir+"/Detectors/TPC/base/files/TABLE-OROC1.txt"); + readMappingFile(inputDir+"/Detectors/TPC/base/files/TABLE-OROC2.txt"); + readMappingFile(inputDir+"/Detectors/TPC/base/files/TABLE-OROC3.txt"); + + initPadRegions(); +} + +void Mapper::initPadRegions() +{ + mMapPadRegionInfo[0]=PadRegionInfo(0, 17, 7.5, 4.16, 848.5, 0, 33.20, 0); + mMapPadRegionInfo[1]=PadRegionInfo(1, 15, 7.5, 4.20, 976.0, 17, 33.00, 17); + mMapPadRegionInfo[2]=PadRegionInfo(2, 16, 7.5, 4.20, 1088.5, 32, 33.08, 32); + mMapPadRegionInfo[3]=PadRegionInfo(3, 15, 7.5, 4.36, 1208.5, 48, 31.83, 48); + mMapPadRegionInfo[4]=PadRegionInfo(4, 18, 10 , 6.00, 1347.0, 0, 38.00, 63); + mMapPadRegionInfo[5]=PadRegionInfo(5, 16, 10 , 6.00, 1527.0, 18, 38.00, 81); + mMapPadRegionInfo[6]=PadRegionInfo(6, 16, 12 , 6.08, 1708.0, 0, 47.90, 97); + mMapPadRegionInfo[7]=PadRegionInfo(7, 14, 12 , 5.88, 1900.0, 16, 49.55, 113); + mMapPadRegionInfo[8]=PadRegionInfo(8, 13, 15 , 6.04, 2089.0, 0, 59.39, 127); + mMapPadRegionInfo[9]=PadRegionInfo(9, 12, 15 , 6.07, 2284.0, 0, 64.70, 140); + +} +} +} From 682781b7253b5b50903b2648b65c165ee72f723c Mon Sep 17 00:00:00 2001 From: wiechula Date: Thu, 30 Jun 2016 10:04:06 +0200 Subject: [PATCH 110/135] add mapping global pad number -> pad centre --- Detectors/TPC/base/include/Mapper.h | 36 +++++++++++++++++------------ Detectors/TPC/base/src/Mapper.cxx | 14 +++++++---- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Detectors/TPC/base/include/Mapper.h b/Detectors/TPC/base/include/Mapper.h index 1782573ec532f..bae9973f78e1e 100644 --- a/Detectors/TPC/base/include/Mapper.h +++ b/Detectors/TPC/base/include/Mapper.h @@ -20,18 +20,20 @@ class Mapper { return mapper; } - const PadPos& padPos (GlobalPadNumber padNumber) const { return mMapGlobalPadToPadPos[padNumber%mPadsInSector]; } - const FECInfo& fecInfo(GlobalPadNumber padNumber) const { return mMapGlobalPadFECInfo [padNumber%mPadsInSector]; } + const PadPos& padPos (GlobalPadNumber padNumber) const { return mMapGlobalPadToPadPos[padNumber%mPadsInSector]; } + const PadCentre& padCentre (GlobalPadNumber padNumber) const { return mMapGlobalPadCentre [padNumber%mPadsInSector]; } + const FECInfo& fecInfo (GlobalPadNumber padNumber) const { return mMapGlobalPadFECInfo [padNumber%mPadsInSector]; } + const GlobalPadNumber globalPadNumber(const PadPos& padPosition) const { return mMapPadPosGlobalPad.find(padPosition)->second; } const PadRegionInfo& padRegionInfo(const unsigned char region) const { return mMapPadRegionInfo[region]; } - static const unsigned short GetPadsInIROC () { return mPadsInIROC ; } - static const unsigned short GetPadsInOROC1 () { return mPadsInOROC1 ; } - static const unsigned short GetPadsInOROC2 () { return mPadsInOROC2 ; } - static const unsigned short GetPadsInOROC3 () { return mPadsInOROC3 ; } - static const unsigned short GetPadsInOROC () { return mPadsInOROC ; } - static const unsigned short GetPadsInSector() { return mPadsInSector; } + static const unsigned short getPadsInIROC () { return mPadsInIROC ; } + static const unsigned short getPadsInOROC1 () { return mPadsInOROC1 ; } + static const unsigned short getPadsInOROC2 () { return mPadsInOROC2 ; } + static const unsigned short getPadsInOROC3 () { return mPadsInOROC3 ; } + static const unsigned short getPadsInOROC () { return mPadsInOROC ; } + static const unsigned short getPadsInSector() { return mPadsInSector; } // bool loadFECInfo(); // bool loadTraceLengh(); @@ -41,7 +43,7 @@ class Mapper { // Mapper(const Mapper&) = delete; // void operator=(const Mapper&) = delete; private: - Mapper() : mMapGlobalPadToPadPos(mPadsInSector), mMapPadPosGlobalPad(), mMapGlobalPadFECInfo(mPadsInSector), mMapPadRegionInfo(10) {load();} + Mapper() : mMapGlobalPadToPadPos(mPadsInSector), mMapGlobalPadCentre(mPadsInSector), mMapPadPosGlobalPad(), mMapGlobalPadFECInfo(mPadsInSector), mMapPadRegionInfo(10) {load();} // use old c++03 due to root Mapper(const Mapper&) {} void operator=(const Mapper&) {} @@ -50,16 +52,20 @@ class Mapper { void initPadRegions(); bool readMappingFile(std::string file); - static const unsigned short mPadsInIROC {5280}; /// number of pad in IROC - static const unsigned short mPadsInOROC1 {2880}; - static const unsigned short mPadsInOROC2 {3200}; - static const unsigned short mPadsInOROC3 {3200}; - static const unsigned short mPadsInOROC {9280}; - static const unsigned short mPadsInSector{14560}; + static const unsigned short mPadsInIROC {5280}; /// number of pads in IROC + static const unsigned short mPadsInOROC1 {2880}; /// number of pads in OROC1 + static const unsigned short mPadsInOROC2 {3200}; /// number of pads in OROC2 + static const unsigned short mPadsInOROC3 {3200}; /// number of pads in OROC3 + static const unsigned short mPadsInOROC {9280}; /// number of pads in OROC + static const unsigned short mPadsInSector{14560}; /// number of pads in one sector + // ===| Pad Mappings |======================================================== std::vector mMapGlobalPadToPadPos; /// mapping of global pad number to row and pad + std::vector mMapGlobalPadCentre; /// pad coordinates std::map mMapPadPosGlobalPad; /// mapping pad position to global pad number, most probably needs to be changed to speed up std::vector mMapGlobalPadFECInfo; /// map global pad number to FEC info + + // ===| Pad region mappings |================================================= std::vector mMapPadRegionInfo; /// pad region information }; diff --git a/Detectors/TPC/base/src/Mapper.cxx b/Detectors/TPC/base/src/Mapper.cxx index c65ca346a777f..9eebcc1f72650 100644 --- a/Detectors/TPC/base/src/Mapper.cxx +++ b/Detectors/TPC/base/src/Mapper.cxx @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include "Mapper.h" namespace AliceO2 { @@ -72,9 +72,10 @@ bool Mapper::readMappingFile(std::string file) >> sampaChip >> sampaChannel; - mMapGlobalPadToPadPos[padIndex]=PadPos(padRow,pad); - mMapPadPosGlobalPad[PadPos(padRow,pad)]=padIndex; - mMapGlobalPadFECInfo[padIndex]=FECInfo(fecIndex, fecConnector, fecChannel, sampaChip, sampaChannel); + mMapGlobalPadToPadPos[padIndex] = PadPos(padRow,pad); + mMapPadPosGlobalPad[PadPos(padRow,pad)] = padIndex; + mMapGlobalPadFECInfo[padIndex] = FECInfo(fecIndex, fecConnector, fecChannel, sampaChip, sampaChannel); + mMapGlobalPadCentre[padIndex] = PadCentre(xPos, yPos); // std::cout // << padIndex<< " " @@ -101,7 +102,10 @@ bool Mapper::readMappingFile(std::string file) void Mapper::load() { - std::string inputDir=gSystem->Getenv("ALICEO2"); +// std::string inputDir(std::getenv("ALICEO2")); + std::string inputDir; + const char* aliceO2env=std::getenv("ALICEO2"); + if (aliceO2env) inputDir=aliceO2env; readMappingFile(inputDir+"/Detectors/TPC/base/files/TABLE-IROC.txt"); readMappingFile(inputDir+"/Detectors/TPC/base/files/TABLE-OROC1.txt"); readMappingFile(inputDir+"/Detectors/TPC/base/files/TABLE-OROC2.txt"); From 7c33be0216e3206f890bff530154e7bd4264843d Mon Sep 17 00:00:00 2001 From: wiechula Date: Tue, 5 Jul 2016 15:45:10 +0200 Subject: [PATCH 111/135] add layout description classes and definitions --- Detectors/TPC/base/CMakeLists.txt | 9 +++++ Detectors/TPC/base/include/CRU.h | 50 +++++++++++++++++++++++++ Detectors/TPC/base/include/Defs.h | 27 +++++++++++++ Detectors/TPC/base/include/DigitPos.h | 32 ++++++++++++++++ Detectors/TPC/base/include/Point3D.h | 30 +++++++++++++++ Detectors/TPC/base/include/Sector.h | 42 +++++++++++++++++++++ Detectors/TPC/base/src/CRU.cxx | 1 + Detectors/TPC/base/src/DigitPos.cxx | 23 ++++++++++++ Detectors/TPC/base/src/Point3D.cxx | 1 + Detectors/TPC/base/src/Sector.cxx | 1 + Detectors/TPC/base/src/tpcBaseLinkDef.h | 7 +++- 11 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 Detectors/TPC/base/include/CRU.h create mode 100644 Detectors/TPC/base/include/DigitPos.h create mode 100644 Detectors/TPC/base/include/Point3D.h create mode 100644 Detectors/TPC/base/include/Sector.h create mode 100644 Detectors/TPC/base/src/CRU.cxx create mode 100644 Detectors/TPC/base/src/DigitPos.cxx create mode 100644 Detectors/TPC/base/src/Point3D.cxx create mode 100644 Detectors/TPC/base/src/Sector.cxx diff --git a/Detectors/TPC/base/CMakeLists.txt b/Detectors/TPC/base/CMakeLists.txt index 7ac24153e9b69..33642675a02bd 100644 --- a/Detectors/TPC/base/CMakeLists.txt +++ b/Detectors/TPC/base/CMakeLists.txt @@ -23,6 +23,8 @@ link_directories( ${LINK_DIRECTORIES}) set(SRCS src/ContainerFactory.cxx + src/CRU.cxx + src/DigitPos.cxx src/FECInfo.cxx src/Mapper.cxx src/PadInfo.cxx @@ -30,12 +32,17 @@ set(SRCS src/PadRegionInfo.cxx src/PadSecPos.cxx src/Point2D.cxx + src/Point3D.cxx src/ROC.cxx + src/Sector.cxx ) set(HEADERS include/ContainerFactory.h + include/CRU.h +# include/Defs.h + include/DigitPos.h include/FECInfo.h include/Mapper.h include/PadInfo.h @@ -43,8 +50,10 @@ set(HEADERS include/PadRegionInfo.h include/PadSecPos.h include/Point2D.h + include/Point3D.h include/ROC.h include/Defs.h + include/Sector.h ) # string(REPLACE ".cxx" ".h" HEADERS "${SRCS}") diff --git a/Detectors/TPC/base/include/CRU.h b/Detectors/TPC/base/include/CRU.h new file mode 100644 index 0000000000000..ded1b6dd39667 --- /dev/null +++ b/Detectors/TPC/base/include/CRU.h @@ -0,0 +1,50 @@ +#ifndef AliceO2_TPC_CRU_H +#define AliceO2_TPC_CRU_H + +#include "Defs.h" +#include "Sector.h" +#include "ROC.h" +//using namespace AliceO2::TPC; + +namespace AliceO2 { +namespace TPC { +// enum RocType {ICRU=0, OCRU=1}; + + class CRU { + public: + enum { CRUperPartition=2, CRUperIROC=4, CRUperSector=10, MaxCRU=360 }; + CRU(){} + CRU(unsigned short cru):mCRU(cru%MaxCRU) {} + CRU(const CRU& cru):mCRU(cru.mCRU) {} + CRU(const Sector& sec, const unsigned char partitionNum) : mCRU(sec.getSector()*CRUperSector+partitionNum) {} +// CRU(RocType t, Side s, unsigned char r):mCRU( (s==Side::A)*18 + (t==RocType::OCRU)*18 + r%18 ) {} +// CRU(Side t) {} + + CRU& operator= (const CRU& other) { mCRU=other.mCRU; return *this; } + CRU& operator= (const unsigned short cru) { mCRU=cru; return *this; } + + bool operator==(const CRU& other) { return mCRU==other.mCRU; } + bool operator!=(const CRU& other) { return mCRU!=other.mCRU; } + bool operator< (const CRU& other) { return mCRU=MaxCRU; mCRU%=MaxCRU; return mLoop; } + + unsigned short number() const { return mCRU; } + const ROC roc() const { return ROC(sector(), rocType()); } + Side side() const { return (mCRU<(MaxCRU/SIDES))?Side::A:Side::C; } + unsigned char partition() const { return (mCRU%CRUperSector)/CRUperPartition; } + unsigned char region() const { return (mCRU%CRUperSector); } + const Sector sector() const { return Sector(mCRU/CRUperSector); } + const RocType rocType() const { return mCRU%CRUperSector < CRUperIROC ? RocType::IROC : RocType::OROC; } + + bool looped() const { return mLoop; } + + + private: + unsigned short mCRU{}; /// CRU representation 0-MaxCRU + bool mLoop{}; /// if operator execution resulted in looping + }; +} +} + + +#endif diff --git a/Detectors/TPC/base/include/Defs.h b/Detectors/TPC/base/include/Defs.h index 8fadc8fe18928..7f7d60205b4aa 100644 --- a/Detectors/TPC/base/include/Defs.h +++ b/Detectors/TPC/base/include/Defs.h @@ -1,7 +1,10 @@ #ifndef AliceO2_TPC_Defs_H #define AliceO2_TPC_Defs_H +#include + #include "Point2D.h" +#include "Point3D.h" namespace AliceO2 { namespace TPC { @@ -10,6 +13,13 @@ namespace TPC { enum Side {A=0, C=1}; // enum class Side {A=0, C=1}; // Problem with root cint. does not seem to support enum class ... +const unsigned char SECTORSPERSIDE=18; +const unsigned char SIDES=2; + +const double PI = 3.14159265358979323846; +const double TWOPI = 2*PI; +const double SECPHIWIDTH = TWOPI/18; + /// TPC ROC types enum RocType {IROC=0, OROC=1}; @@ -18,10 +28,27 @@ enum RocType {IROC=0, OROC=1}; /// Pad centres as 2D float typedef Point2D PadCentre; +typedef Point2D GlobalPosition2D; +typedef Point2D LocalPosition2D; +typedef Point3D GlobalPosition3D; +typedef Point3D LocalPosition3D; /// global pad number typedef unsigned short GlobalPadNumber; +// GlobalPosition3D LocalToGlobal(const LocalPosition3D pos, const float alpha) +// { +// const double cs=cos(alpha), sn=sin(alpha); +// return GlobalPosition3D(pos.getX()*cs-pos.getY()*sn,pos.getX()*sn+pos.getY()*cs,pos.getZ()); +// } + +// LocalPosition3D GlobalToLocal(const GlobalPosition3D& pos, const float alpha) +// { +// const double cs=cos(-alpha), sn=sin(-alpha); +// return LocalPosition3D(pos.getX()*cs-pos.getY()*sn,pos.getX()*sn+pos.getY()*cs,pos.getZ()); +// } + + /** * simple class to allow for range for loops over enums * e.g. for (auto &side : Enum() ) { cout << side << endl; } diff --git a/Detectors/TPC/base/include/DigitPos.h b/Detectors/TPC/base/include/DigitPos.h new file mode 100644 index 0000000000000..bcb696be23190 --- /dev/null +++ b/Detectors/TPC/base/include/DigitPos.h @@ -0,0 +1,32 @@ +#ifndef AliceO2_TPC_DigitPos_H +#define AliceO2_TPC_DigitPos_H + +#include "Defs.h" +#include "CRU.h" +#include "PadPos.h" +#include "PadSecPos.h" + +namespace AliceO2 { +namespace TPC { + +class DigitPos { +public: + DigitPos() {} + DigitPos(CRU c, PadPos pad) : mCRU(c), mPadPos(pad) {} + const CRU& getCru() const { return mCRU; } + CRU& cru() { return mCRU; } + PadPos getPadPos() const { return mPadPos; } + PadPos getGlobalPadPos() const; + PadSecPos getPadSecPos() const; + + PadPos& padPos() { return mPadPos; } + + bool isValid() const { return mPadPos.isValid(); } +private: + CRU mCRU{}; + PadPos mPadPos{}; /// Pad position in the local partition coordinates: row starts from 0 for each partition +}; + +} +} +#endif diff --git a/Detectors/TPC/base/include/Point3D.h b/Detectors/TPC/base/include/Point3D.h new file mode 100644 index 0000000000000..61241e1511c1d --- /dev/null +++ b/Detectors/TPC/base/include/Point3D.h @@ -0,0 +1,30 @@ +#ifndef AliceO2_TPC_Point3D_H +#define AliceO2_TPC_Point3D_H + +// TODO: For some reason the code does not compile if I inlude Point2D here +// #inclule "Point2D.h" + +namespace AliceO2 { +namespace TPC { + +template < class T > +class Point3D { + public: + Point3D() {} + Point3D(const T &x, const T &y, const T&z) : mX(x), mY(y), mZ(z) {} +// Point3D(const Point2D &p, const T&z) : mX(p.getX()), mY(p.GetY()), mZ(z)) {} + + const T& getX() const { return mX; } + const T& getY() const { return mY; } + const T& getZ() const { return mZ; } + + private: + T mX{}; /// x-position + T mY{}; /// y-position + T mZ{}; /// y-position +}; + +} +} + +#endif diff --git a/Detectors/TPC/base/include/Sector.h b/Detectors/TPC/base/include/Sector.h new file mode 100644 index 0000000000000..d70df3a2791dd --- /dev/null +++ b/Detectors/TPC/base/include/Sector.h @@ -0,0 +1,42 @@ +#ifndef AliceO2_TPC_Sector_H +#define AliceO2_TPC_Sector_H + +#include "Defs.h" +//using namespace AliceO2::TPC; + +namespace AliceO2 { +namespace TPC { +// enum RocType {ISector=0, OSector=1}; + + class Sector { + public: + enum { MaxSector=36 }; + Sector(){} + Sector(unsigned char sec):mSector(sec%MaxSector){;} + Sector(const Sector& sec):mSector(sec.mSector){;} +// Sector(RocType t, Side s, unsigned char r):mSector( (s==Side::A)*18 + (t==RocType::OSector)*18 + r%18 ) {} +// Sector(Side t) {} + + Sector& operator= (const Sector& other) { mSector=other.mSector; return *this; } + + bool operator==(const Sector& other) { return mSector==other.mSector; } + bool operator!=(const Sector& other) { return mSector!=other.mSector; } + bool operator< (const Sector& other) { return mSector=MaxSector; mSector%=MaxSector; return mLoop; } + + unsigned char getSector() const { return mSector; } + + Side side() const { return (mSector; +#pragma link C++ class AliceO2::TPC::GlobalPosition2D; +#pragma link C++ class AliceO2::TPC::GlobalPosition3D; +#pragma link C++ class AliceO2::TPC::LocalPosition2D; +#pragma link C++ class AliceO2::TPC::LocalPosition3D; #pragma link C++ class AliceO2::TPC::PadCentre; #pragma link C++ class AliceO2::TPC::ContainerFactory; #pragma link C++ class AliceO2::TPC::FECInfo; @@ -14,5 +17,7 @@ #pragma link C++ class AliceO2::TPC::PadRegionInfo; #pragma link C++ class AliceO2::TPC::PadSecPos; #pragma link C++ class AliceO2::TPC::ROC; +#pragma link C++ class AliceO2::TPC::DigitPos; +#pragma link C++ class AliceO2::TPC::Sector; #endif From 9a6033c52bd856783f00d4f81b4dbde0b33a06b5 Mon Sep 17 00:00:00 2001 From: wiechula Date: Tue, 5 Jul 2016 15:49:31 +0200 Subject: [PATCH 112/135] add functionality to find the pad from the global and local position --- Detectors/TPC/base/include/Mapper.h | 29 ++++++++- Detectors/TPC/base/include/PadPos.h | 11 +++- Detectors/TPC/base/include/PadRegionInfo.h | 14 ++++- Detectors/TPC/base/include/PadSecPos.h | 18 +++--- Detectors/TPC/base/include/ROC.h | 17 +++--- Detectors/TPC/base/src/Mapper.cxx | 68 ++++++++++++++++++---- Detectors/TPC/base/src/PadRegionInfo.cxx | 31 +++++++++- 7 files changed, 157 insertions(+), 31 deletions(-) diff --git a/Detectors/TPC/base/include/Mapper.h b/Detectors/TPC/base/include/Mapper.h index bae9973f78e1e..4e7b672857e92 100644 --- a/Detectors/TPC/base/include/Mapper.h +++ b/Detectors/TPC/base/include/Mapper.h @@ -7,9 +7,12 @@ #include "Defs.h" #include "PadPos.h" +#include "DigitPos.h" #include "FECInfo.h" #include "PadRegionInfo.h" +using AliceO2::TPC::PadRegionInfo; + namespace AliceO2 { namespace TPC { @@ -23,10 +26,15 @@ class Mapper { const PadPos& padPos (GlobalPadNumber padNumber) const { return mMapGlobalPadToPadPos[padNumber%mPadsInSector]; } const PadCentre& padCentre (GlobalPadNumber padNumber) const { return mMapGlobalPadCentre [padNumber%mPadsInSector]; } const FECInfo& fecInfo (GlobalPadNumber padNumber) const { return mMapGlobalPadFECInfo [padNumber%mPadsInSector]; } - + const GlobalPadNumber globalPadNumber(const PadPos& padPosition) const { return mMapPadPosGlobalPad.find(padPosition)->second; } - const PadRegionInfo& padRegionInfo(const unsigned char region) const { return mMapPadRegionInfo[region]; } + const PadRegionInfo& getPadRegionInfo(const unsigned char region) const { return mMapPadRegionInfo[region]; } + + const DigitPos findDigitPosFromLocalPosition(const LocalPosition3D& pos, const Sector& sec); + const DigitPos findDigitPosFromGlobalPostion(const GlobalPosition3D& pos); + + const std::vector& getMapPadRegionInfo() const { return mMapPadRegionInfo; } static const unsigned short getPadsInIROC () { return mPadsInIROC ; } static const unsigned short getPadsInOROC1 () { return mPadsInOROC1 ; } @@ -42,6 +50,23 @@ class Mapper { // c++11 feature don't work with root dictionary :( // Mapper(const Mapper&) = delete; // void operator=(const Mapper&) = delete; + +static GlobalPosition3D LocalToGlobal(const LocalPosition3D pos, const double alpha) +{ + const double cs=cos(alpha), sn=sin(alpha); + return GlobalPosition3D(float(double(pos.getX())*cs-double(pos.getY())*sn), + float(double(pos.getX())*sn+double(pos.getY()*cs)), + pos.getZ()); +} + +static LocalPosition3D GlobalToLocal(const GlobalPosition3D& pos, const double alpha) +{ + const double cs=cos(-alpha), sn=sin(-alpha); + return LocalPosition3D(float(double(pos.getX())*cs-double(pos.getY())*sn), + float(double(pos.getX())*sn+double(pos.getY()*cs)), + pos.getZ()); +} + private: Mapper() : mMapGlobalPadToPadPos(mPadsInSector), mMapGlobalPadCentre(mPadsInSector), mMapPadPosGlobalPad(), mMapGlobalPadFECInfo(mPadsInSector), mMapPadRegionInfo(10) {load();} // use old c++03 due to root diff --git a/Detectors/TPC/base/include/PadPos.h b/Detectors/TPC/base/include/PadPos.h index 91f29be3ea04e..b621755427ac7 100644 --- a/Detectors/TPC/base/include/PadPos.h +++ b/Detectors/TPC/base/include/PadPos.h @@ -9,7 +9,16 @@ namespace TPC { PadPos(const unsigned char row, const unsigned char pad) : mRow(row), mPad(pad) {} const unsigned char getRow() const { return mRow; } const unsigned char getPad() const { return mPad; } - + + void setRow(const unsigned char row) { mRow=row; } + void setPad(const unsigned char pad) { mPad=pad; } + + void addRowOffset(const unsigned char rowOffset) { mRow+=rowOffset; } + + void set(const unsigned char row, const unsigned char pad) { mRow=row; mPad=pad; } + + bool isValid() const { return !(mRow==255 && mPad==255); } + bool operator==(const PadPos& other) { return (mRow==other.mRow) && (mPad==other.mPad); } bool operator<(const PadPos& other) const { if (mRow +#include "Defs.h" #include "PadPos.h" namespace AliceO2 { @@ -12,6 +13,7 @@ class PadRegionInfo { public: PadRegionInfo() {} PadRegionInfo(const unsigned char region, + const unsigned char partition, const unsigned char numberOfPadRows, const float padHeight, const float padWidth, @@ -22,20 +24,28 @@ class PadRegionInfo { ); const unsigned char getRegion() const { return mRegion; } + const unsigned char getPartition() const { return mPartition; } const unsigned char getNumberOfPadRows() const { return mNumberOfPadRows; } const unsigned short getNumberOfPads() const { return mNumberOfPads; } const float getPadHeight() const { return mPadHeight; } const float getPadWidth() const { return mPadWidth; } const float getRadiusFirstRow() const { return mRadiusFirstRow; } - const unsigned char getRowOffet() const { return mRowOffet; } - const float getXhelper() const { return mXhelper; } + const unsigned char getGlobalRowOffset() const { return mGlobalRowOffset; } +// const unsigned char getRowOffet() const { return mRowOffet; } +// const float getXhelper() const { return mXhelper; } const unsigned char getPadsInRow (const PadPos &padPos) const { return mPadsPerRow[padPos.getRow()-mGlobalRowOffset]; } const unsigned char getPadsInRow (const int row) const { return mPadsPerRow[row-mGlobalRowOffset]; } const unsigned char getPadsInRowRegion(const int row) const { return mPadsPerRow[row]; } + const bool isInRegion(float localX, float border=0.f) const { return localX-mRadiusFirstRow-border>0.f && localX-mRadiusFirstRow<(mNumberOfPadRows+1)*mPadHeight+border; } + + const PadPos findPad(const LocalPosition3D& pos) const; + const PadPos findPad(const LocalPosition2D& pos, const Side side=Side::A) const; + const PadPos findPad(const float localX, const float localY, const Side side=Side::A) const; private: + unsigned char mPartition{0}; /// partition number unsigned char mRegion{0}; /// pad region number unsigned char mNumberOfPadRows{0}; /// number of rows in region float mPadHeight{0.f}; /// pad height in this region diff --git a/Detectors/TPC/base/include/PadSecPos.h b/Detectors/TPC/base/include/PadSecPos.h index 9555d3c050753..2ce1c31736be2 100644 --- a/Detectors/TPC/base/include/PadSecPos.h +++ b/Detectors/TPC/base/include/PadSecPos.h @@ -1,20 +1,24 @@ #ifndef AliceO2_TPC_PadSecPos_H #define AliceO2_TPC_PadSecPos_H -#include "ROC.h" +#include "Sector.h" #include "PadPos.h" namespace AliceO2 { namespace TPC { class PadSecPos { public: - ROC sector() const { return mROC; } - ROC& sector() { return mROC; } - PadPos padPos() const { return mPad; } - PadPos& padPos() { return mPad; } + PadSecPos() {}; + PadSecPos(const Sector& sec, const PadPos& padPosition) : mSector(sec), mPadPos(padPosition) {} + + Sector getSector() const { return mSector; } + Sector& sector() { return mSector; } + + PadPos getPadPos() const { return mPadPos; } + PadPos& padPos() { return mPadPos; } private: - ROC mROC{}; - PadPos mPad{}; + Sector mSector{}; + PadPos mPadPos{}; }; } } diff --git a/Detectors/TPC/base/include/ROC.h b/Detectors/TPC/base/include/ROC.h index eb4c974ac1124..cf8d09430b4f7 100644 --- a/Detectors/TPC/base/include/ROC.h +++ b/Detectors/TPC/base/include/ROC.h @@ -2,6 +2,7 @@ #define AliceO2_TPC_ROC_H #include "Defs.h" +#include "Sector.h" //using namespace AliceO2::TPC; namespace AliceO2 { @@ -12,9 +13,11 @@ namespace TPC { public: enum { MaxROC=72 }; ROC(){} - ROC(unsigned char sec):mROC(sec%MaxROC){;} - ROC(const ROC& sec):mROC(sec.mROC){;} - ROC(RocType t, Side s, unsigned char r):mROC( (s==Side::A)*18 + (t==RocType::OROC)*18 + r%18 ) {} + ROC(unsigned char roc):mROC(roc%MaxROC){;} + ROC(const ROC& roc) :mROC(roc.mROC) {;} + + ROC(const Sector& sec, const RocType type):mROC(sec.getSector() + (type==RocType::IROC)*SECTORSPERSIDE) {} +// ROC(RocType t, Side s, unsigned char r):mROC( (s==Side::A)*SECTORSPERSIDE + (t==RocType::OROC)*SECTORSPERSIDE + r%SECTORSPERSIDE ) {} // ROC(Side t) {} ROC& operator= (const ROC& other) { mROC=other.mROC; return *this; } @@ -24,10 +27,10 @@ namespace TPC { bool operator< (const ROC& other) { return mROC=MaxROC; mROC%=MaxROC; return mLoop; } - unsigned char roc() const { return mROC; } - Side side() const { return (mROC/18)%2?Side::C:Side::A; } - RocType rocType() const { return mROC #include #include +#include + +// #include +// using std::cout; +// using std::endl; +// using boost::format; #include "Mapper.h" namespace AliceO2 { @@ -72,10 +78,19 @@ bool Mapper::readMappingFile(std::string file) >> sampaChip >> sampaChannel; + // the x and y positions are in mm + // in the mapping files, the values are given for sector C04 in the global ALICE coordinate system + // however, we need it in the local tracking system. Therefore: + const float localX=yPos/10.f; + const float localY=-xPos/10.f; + // with the pad counting (looking to C-Side pad 0,0 is bottom left -- pad-side front view) + // these values are for the C-Side + // For the A-Side the localY position must be mirrored + mMapGlobalPadToPadPos[padIndex] = PadPos(padRow,pad); mMapPadPosGlobalPad[PadPos(padRow,pad)] = padIndex; mMapGlobalPadFECInfo[padIndex] = FECInfo(fecIndex, fecConnector, fecChannel, sampaChip, sampaChannel); - mMapGlobalPadCentre[padIndex] = PadCentre(xPos, yPos); + mMapGlobalPadCentre[padIndex] = PadCentre(localX, localY); // std::cout // << padIndex<< " " @@ -116,17 +131,48 @@ void Mapper::load() void Mapper::initPadRegions() { - mMapPadRegionInfo[0]=PadRegionInfo(0, 17, 7.5, 4.16, 848.5, 0, 33.20, 0); - mMapPadRegionInfo[1]=PadRegionInfo(1, 15, 7.5, 4.20, 976.0, 17, 33.00, 17); - mMapPadRegionInfo[2]=PadRegionInfo(2, 16, 7.5, 4.20, 1088.5, 32, 33.08, 32); - mMapPadRegionInfo[3]=PadRegionInfo(3, 15, 7.5, 4.36, 1208.5, 48, 31.83, 48); - mMapPadRegionInfo[4]=PadRegionInfo(4, 18, 10 , 6.00, 1347.0, 0, 38.00, 63); - mMapPadRegionInfo[5]=PadRegionInfo(5, 16, 10 , 6.00, 1527.0, 18, 38.00, 81); - mMapPadRegionInfo[6]=PadRegionInfo(6, 16, 12 , 6.08, 1708.0, 0, 47.90, 97); - mMapPadRegionInfo[7]=PadRegionInfo(7, 14, 12 , 5.88, 1900.0, 16, 49.55, 113); - mMapPadRegionInfo[8]=PadRegionInfo(8, 13, 15 , 6.04, 2089.0, 0, 59.39, 127); - mMapPadRegionInfo[9]=PadRegionInfo(9, 12, 15 , 6.07, 2284.0, 0, 64.70, 140); + // original values for pad widht and height and pad row position are in mm + // the ALICE coordinate system is in cm + mMapPadRegionInfo[0]=PadRegionInfo(0, 0, 17, 7.5/10., 4.16/10., 848.5/10., 0, 33.20, 0); + mMapPadRegionInfo[1]=PadRegionInfo(0, 1, 15, 7.5/10., 4.20/10., 976.0/10., 17, 33.00, 17); + mMapPadRegionInfo[2]=PadRegionInfo(1, 2, 16, 7.5/10., 4.20/10., 1088.5/10., 32, 33.08, 32); + mMapPadRegionInfo[3]=PadRegionInfo(1, 3, 15, 7.5/10., 4.36/10., 1208.5/10., 48, 31.83, 48); + mMapPadRegionInfo[4]=PadRegionInfo(2, 4, 18, 10/10. , 6.00/10., 1347.0/10., 0, 38.00, 63); + mMapPadRegionInfo[5]=PadRegionInfo(2, 5, 16, 10/10. , 6.00/10., 1527.0/10., 18, 38.00, 81); + mMapPadRegionInfo[6]=PadRegionInfo(3, 6, 16, 12/10. , 6.08/10., 1708.0/10., 0, 47.90, 97); + mMapPadRegionInfo[7]=PadRegionInfo(3, 7, 14, 12/10. , 5.88/10., 1900.0/10., 16, 49.55, 113); + mMapPadRegionInfo[8]=PadRegionInfo(4, 8, 13, 15/10. , 6.04/10., 2089.0/10., 0, 59.39, 127); + mMapPadRegionInfo[9]=PadRegionInfo(4, 9, 12, 15/10. , 6.07/10., 2284.0/10., 0, 64.70, 140); + +} + +const DigitPos Mapper::findDigitPosFromLocalPosition(const LocalPosition3D& pos, const Sector& sec) +{ + PadPos pad; + CRU cru; + for (const PadRegionInfo& padRegion : mMapPadRegionInfo) { + cru=CRU(sec,padRegion.getPartition()); + pad=padRegion.findPad(pos); + if (pad.isValid()) break; + } + return DigitPos(cru, pad); } + +const DigitPos Mapper::findDigitPosFromGlobalPostion(const GlobalPosition3D& pos) +{ + // ===| find sector |========================================================= + double phi=atan2(pos.getY(), pos.getX()); + if (phi<0.) phi+=TWOPI; + const unsigned char secNum = floor(phi/SECPHIWIDTH); + const double secPhi = secNum*SECPHIWIDTH+SECPHIWIDTH/2.; + Sector sec(secNum+(pos.getZ()<0)*SECTORSPERSIDE); + + // ===| rotated position |==================================================== + LocalPosition3D posLoc=GlobalToLocal(pos, secPhi); + + return findDigitPosFromLocalPosition(posLoc, sec); +} + } } diff --git a/Detectors/TPC/base/src/PadRegionInfo.cxx b/Detectors/TPC/base/src/PadRegionInfo.cxx index 6e30bc11f971b..1991dac9eb985 100644 --- a/Detectors/TPC/base/src/PadRegionInfo.cxx +++ b/Detectors/TPC/base/src/PadRegionInfo.cxx @@ -1,4 +1,5 @@ #include + #include "PadRegionInfo.h" namespace AliceO2 { @@ -6,6 +7,7 @@ namespace TPC { PadRegionInfo::PadRegionInfo(const unsigned char region, + const unsigned char partition, const unsigned char numberOfPadRows, const float padHeight, const float padWidth, @@ -15,6 +17,7 @@ PadRegionInfo::PadRegionInfo(const unsigned char region, const unsigned char globalRowOffset ) : mRegion{region} + , mPartition{partition} , mNumberOfPadRows{numberOfPadRows} , mPadHeight{padHeight} , mPadWidth{padWidth} @@ -34,10 +37,36 @@ void PadRegionInfo::init() const float ks=mPadHeight/mPadWidth*tan(1.74532925199432948e-01); // tan(10deg) // initialize number of pads per row for (int irow=0; irow=0) ? Side::A : Side::C); +} + +const PadPos PadRegionInfo::findPad(const LocalPosition2D& pos, const Side side/*=Side::A*/) const +{ + return findPad(pos.getX(), pos.getY(), side); +} + +const PadPos PadRegionInfo::findPad(const float localX, const float localY, const Side side/*=Side::A*/) const +{ + if (!isInRegion(localX)) return PadPos(255, 255); + + // the pad coordinate system is for pad-side view. + // on the A-Side one looks from the back-side, therefore + // the localY-sign must be changed + const float localYfactor=(side==Side::A)?-1.f:1.f; + const unsigned int row = floor((localX-mRadiusFirstRow)/mPadHeight); + const unsigned int npads=getPadsInRowRegion(row); + const unsigned int pad =int((npads/2*mPadWidth-localYfactor*localY)/mPadWidth); + + if (row<0 || row>= mNumberOfPadRows || pad<0 || pad>=npads) return PadPos(255, 255); + return PadPos(row, pad); +} + } } From 9ea8e99482c0392cf37f073c819ea66d18ec8fa6 Mon Sep 17 00:00:00 2001 From: wiechula Date: Tue, 5 Jul 2016 17:37:05 +0200 Subject: [PATCH 113/135] sort alphabetical, add missing class --- Detectors/TPC/base/src/tpcBaseLinkDef.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Detectors/TPC/base/src/tpcBaseLinkDef.h b/Detectors/TPC/base/src/tpcBaseLinkDef.h index e56f5236aa0fa..3cbbbbb4da3f6 100644 --- a/Detectors/TPC/base/src/tpcBaseLinkDef.h +++ b/Detectors/TPC/base/src/tpcBaseLinkDef.h @@ -8,16 +8,18 @@ #pragma link C++ class AliceO2::TPC::GlobalPosition3D; #pragma link C++ class AliceO2::TPC::LocalPosition2D; #pragma link C++ class AliceO2::TPC::LocalPosition3D; -#pragma link C++ class AliceO2::TPC::PadCentre; + #pragma link C++ class AliceO2::TPC::ContainerFactory; +#pragma link C++ class AliceO2::TPC::CRU; +#pragma link C++ class AliceO2::TPC::DigitPos; #pragma link C++ class AliceO2::TPC::FECInfo; #pragma link C++ class AliceO2::TPC::Mapper; +#pragma link C++ class AliceO2::TPC::PadCentre; #pragma link C++ class AliceO2::TPC::PadInfo; #pragma link C++ class AliceO2::TPC::PadPos; #pragma link C++ class AliceO2::TPC::PadRegionInfo; #pragma link C++ class AliceO2::TPC::PadSecPos; #pragma link C++ class AliceO2::TPC::ROC; -#pragma link C++ class AliceO2::TPC::DigitPos; #pragma link C++ class AliceO2::TPC::Sector; #endif From f0aa792c26cfe5641fe0fb4327cfe4aa9efa4595 Mon Sep 17 00:00:00 2001 From: wiechula Date: Tue, 5 Jul 2016 17:37:19 +0200 Subject: [PATCH 114/135] add operators --- Detectors/TPC/base/include/CRU.h | 6 +++--- Detectors/TPC/base/include/DigitPos.h | 7 ++++++- Detectors/TPC/base/include/PadPos.h | 3 ++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Detectors/TPC/base/include/CRU.h b/Detectors/TPC/base/include/CRU.h index ded1b6dd39667..6f3f0cc6903ba 100644 --- a/Detectors/TPC/base/include/CRU.h +++ b/Detectors/TPC/base/include/CRU.h @@ -23,9 +23,9 @@ namespace TPC { CRU& operator= (const CRU& other) { mCRU=other.mCRU; return *this; } CRU& operator= (const unsigned short cru) { mCRU=cru; return *this; } - bool operator==(const CRU& other) { return mCRU==other.mCRU; } - bool operator!=(const CRU& other) { return mCRU!=other.mCRU; } - bool operator< (const CRU& other) { return mCRU=MaxCRU; mCRU%=MaxCRU; return mLoop; } unsigned short number() const { return mCRU; } diff --git a/Detectors/TPC/base/include/DigitPos.h b/Detectors/TPC/base/include/DigitPos.h index bcb696be23190..9d51604dc038c 100644 --- a/Detectors/TPC/base/include/DigitPos.h +++ b/Detectors/TPC/base/include/DigitPos.h @@ -13,7 +13,7 @@ class DigitPos { public: DigitPos() {} DigitPos(CRU c, PadPos pad) : mCRU(c), mPadPos(pad) {} - const CRU& getCru() const { return mCRU; } + const CRU& getCRU() const { return mCRU; } CRU& cru() { return mCRU; } PadPos getPadPos() const { return mPadPos; } PadPos getGlobalPadPos() const; @@ -22,6 +22,11 @@ class DigitPos { PadPos& padPos() { return mPadPos; } bool isValid() const { return mPadPos.isValid(); } + + bool operator==(const DigitPos& other) const { return (mCRU==other.mCRU) && (mPadPos==other.mPadPos); } + bool operator!=(const DigitPos& other) const { return (mCRU!=other.mCRU) || (mPadPos!=other.mPadPos); } + bool operator< (const DigitPos& other) const { return (mCRU Date: Wed, 6 Jul 2016 13:46:00 +0200 Subject: [PATCH 115/135] fix function name and constness --- Detectors/TPC/base/include/Mapper.h | 4 ++-- Detectors/TPC/base/src/Mapper.cxx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Detectors/TPC/base/include/Mapper.h b/Detectors/TPC/base/include/Mapper.h index 4e7b672857e92..5cee8589d4afc 100644 --- a/Detectors/TPC/base/include/Mapper.h +++ b/Detectors/TPC/base/include/Mapper.h @@ -31,8 +31,8 @@ class Mapper { const PadRegionInfo& getPadRegionInfo(const unsigned char region) const { return mMapPadRegionInfo[region]; } - const DigitPos findDigitPosFromLocalPosition(const LocalPosition3D& pos, const Sector& sec); - const DigitPos findDigitPosFromGlobalPostion(const GlobalPosition3D& pos); + const DigitPos findDigitPosFromLocalPosition(const LocalPosition3D& pos, const Sector& sec) const; + const DigitPos findDigitPosFromGlobalPosition(const GlobalPosition3D& pos) const; const std::vector& getMapPadRegionInfo() const { return mMapPadRegionInfo; } diff --git a/Detectors/TPC/base/src/Mapper.cxx b/Detectors/TPC/base/src/Mapper.cxx index fc210e9ed0e8c..180f0f9e67fb3 100644 --- a/Detectors/TPC/base/src/Mapper.cxx +++ b/Detectors/TPC/base/src/Mapper.cxx @@ -146,7 +146,7 @@ void Mapper::initPadRegions() } -const DigitPos Mapper::findDigitPosFromLocalPosition(const LocalPosition3D& pos, const Sector& sec) +const DigitPos Mapper::findDigitPosFromLocalPosition(const LocalPosition3D& pos, const Sector& sec) const { PadPos pad; CRU cru; @@ -159,7 +159,7 @@ const DigitPos Mapper::findDigitPosFromLocalPosition(const LocalPosition3D& pos, return DigitPos(cru, pad); } -const DigitPos Mapper::findDigitPosFromGlobalPostion(const GlobalPosition3D& pos) +const DigitPos Mapper::findDigitPosFromGlobalPosition(const GlobalPosition3D& pos) const { // ===| find sector |========================================================= double phi=atan2(pos.getY(), pos.getX()); From 61c4f3ce2a06f55ce72c00625b81b32c8934fe0f Mon Sep 17 00:00:00 2001 From: amathis Date: Wed, 6 Jul 2016 14:08:56 +0200 Subject: [PATCH 116/135] First version of the digit creation in the TPC simulation --- Common/Header/AliceO2Config.h | 2 + Detectors/TPC/simulation/CMakeLists.txt | 21 ++++- Detectors/TPC/simulation/include/Digit.h | 67 ++++++++++++++ Detectors/TPC/simulation/include/DigitADC.h | 36 ++++++++ Detectors/TPC/simulation/include/DigitCRU.h | 45 +++++++++ .../TPC/simulation/include/DigitContainer.h | 35 +++++++ Detectors/TPC/simulation/include/DigitPad.h | 38 ++++++++ Detectors/TPC/simulation/include/DigitRow.h | 37 ++++++++ Detectors/TPC/simulation/include/DigitTime.h | 37 ++++++++ Detectors/TPC/simulation/include/Digitizer.h | 54 +++++++++++ .../TPC/simulation/include/DigitizerTask.h | 44 +++++++++ Detectors/TPC/simulation/src/Digit.cxx | 34 +++++++ Detectors/TPC/simulation/src/DigitADC.cxx | 10 ++ Detectors/TPC/simulation/src/DigitCRU.cxx | 47 ++++++++++ .../TPC/simulation/src/DigitContainer.cxx | 48 ++++++++++ Detectors/TPC/simulation/src/DigitPad.cxx | 44 +++++++++ Detectors/TPC/simulation/src/DigitRow.cxx | 43 +++++++++ Detectors/TPC/simulation/src/DigitTime.cxx | 38 ++++++++ Detectors/TPC/simulation/src/Digitizer.cxx | 92 +++++++++++++++++++ .../TPC/simulation/src/DigitizerTask.cxx | 65 +++++++++++++ .../TPC/simulation/src/tpcSimulationLinkDef.h | 10 +- macro/run_digi.C | 3 + 22 files changed, 847 insertions(+), 3 deletions(-) create mode 100644 Common/Header/AliceO2Config.h create mode 100644 Detectors/TPC/simulation/include/Digit.h create mode 100644 Detectors/TPC/simulation/include/DigitADC.h create mode 100644 Detectors/TPC/simulation/include/DigitCRU.h create mode 100644 Detectors/TPC/simulation/include/DigitContainer.h create mode 100644 Detectors/TPC/simulation/include/DigitPad.h create mode 100644 Detectors/TPC/simulation/include/DigitRow.h create mode 100644 Detectors/TPC/simulation/include/DigitTime.h create mode 100644 Detectors/TPC/simulation/include/Digitizer.h create mode 100644 Detectors/TPC/simulation/include/DigitizerTask.h create mode 100644 Detectors/TPC/simulation/src/Digit.cxx create mode 100644 Detectors/TPC/simulation/src/DigitADC.cxx create mode 100644 Detectors/TPC/simulation/src/DigitCRU.cxx create mode 100644 Detectors/TPC/simulation/src/DigitContainer.cxx create mode 100644 Detectors/TPC/simulation/src/DigitPad.cxx create mode 100644 Detectors/TPC/simulation/src/DigitRow.cxx create mode 100644 Detectors/TPC/simulation/src/DigitTime.cxx create mode 100644 Detectors/TPC/simulation/src/Digitizer.cxx create mode 100644 Detectors/TPC/simulation/src/DigitizerTask.cxx diff --git a/Common/Header/AliceO2Config.h b/Common/Header/AliceO2Config.h new file mode 100644 index 0000000000000..c7ef016801316 --- /dev/null +++ b/Common/Header/AliceO2Config.h @@ -0,0 +1,2 @@ +#define O2PROTO1_MAGF_DIR "/home/amathis/O2Dir/AliceO2/src/Common/Resources/maps/mfchebKGI_sym.root" +#define O2PROTO1_MAGF_CREATEFIELDMAP_DIR "/home/amathis/O2Dir/AliceO2/src/Common/Resources/maps/mfchebKGI_sym.root" diff --git a/Detectors/TPC/simulation/CMakeLists.txt b/Detectors/TPC/simulation/CMakeLists.txt index 21797027c3905..e4caedb9ffe35 100644 --- a/Detectors/TPC/simulation/CMakeLists.txt +++ b/Detectors/TPC/simulation/CMakeLists.txt @@ -1,7 +1,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/ - ${CMAKE_SOURCE_DIR}/Detectors/TPC/Base/include + ${CMAKE_SOURCE_DIR}/Detectors/TPC/base/include ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation/ ${CMAKE_SOURCE_DIR}/Detectors/TPC/simulation/include @@ -26,12 +26,29 @@ link_directories( ${LINK_DIRECTORIES}) set(SRCS src/Detector.cxx src/Point.cxx - + src/DigitizerTask.cxx + src/Digitizer.cxx + src/DigitContainer.cxx + src/DigitCRU.cxx + src/DigitRow.cxx + src/DigitPad.cxx + src/DigitTime.cxx + src/DigitADC.cxx + src/Digit.cxx ) set(HEADERS include/Detector.h include/Point.h + include/DigitizerTask.h + include/Digitizer.h + include/DigitContainer.h + include/DigitCRU.h + include/DigitRow.h + include/DigitPad.h + include/DigitTime.h + include/DigitADC.h + include/Digit.h ) Set(LINKDEF src/tpcSimulationLinkDef.h) Set(LIBRARY_NAME tpcSimulation) diff --git a/Detectors/TPC/simulation/include/Digit.h b/Detectors/TPC/simulation/include/Digit.h new file mode 100644 index 0000000000000..9d3f51635bb1c --- /dev/null +++ b/Detectors/TPC/simulation/include/Digit.h @@ -0,0 +1,67 @@ +/// \file AliITSUpgradeDigi.h +/// \brief Digits structure for upgrade ITS +#ifndef ALICEO2_TPC_DIGIT_H +#define ALICEO2_TPC_DIGIT_H + +#ifndef __CINT__ +#include // for base_object +#endif + +#include "FairTimeStamp.h" // for FairTimeStamp +#include "Rtypes.h" // for Double_t, ULong_t, etc +namespace boost { namespace serialization { class access; } } + +namespace AliceO2{ + namespace TPC{ + + /// \class Digit + /// \brief Digit class for the TPC + /// + class Digit : public FairTimeStamp { + public: + + /// Default constructor + Digit(); + + /// Constructor, initializing values for position, charge and time + /// @param charge Accumulated charge of digit + /// @param timestamp Time at which the digit was created + Digit(Int_t cru, Double_t charge, Int_t row, Int_t pad, Double_t time); + + /// Destructor + virtual ~Digit(); + + /// Get the accumulated charged of the digit + /// @return charge of the digit + Double_t GetCharge() const { return mCharge; } + + Int_t GetCRU() const { return mCRU; } + Int_t GetRow() const { return mRow; } + Int_t GetPad() const { return mPad; } +// Double_t GetTime() const { return mTimeStamp; } + + /// Set the charge of the digit + /// @param charge The charge of the the digit + void SetCharge(Double_t charge) { mCharge = charge; } + + /// Print function: Print basic digit information on the output stream + /// @param output Stream to put the digit on + /// @return The output stream + std::ostream &Print(std::ostream &output) const; + + private: +#ifndef __CINT__ + friend class boost::serialization::access; +#endif + + UShort_t mCRU; + Float_t mCharge; + UChar_t mRow; + UChar_t mPad; + + ClassDef(Digit, 1); + }; + } +} + +#endif /* ALICEO2_TPC_DIGIT_H */ diff --git a/Detectors/TPC/simulation/include/DigitADC.h b/Detectors/TPC/simulation/include/DigitADC.h new file mode 100644 index 0000000000000..db6c68563061b --- /dev/null +++ b/Detectors/TPC/simulation/include/DigitADC.h @@ -0,0 +1,36 @@ +// +// DigitADC.h +// ALICEO2 +// +// Created by Markus Fasel on 26.03.15. +// +// + +#ifndef _ALICEO2_DigitADC_ +#define _ALICEO2_DigitADC_ + +#include "Rtypes.h" +#include "Digit.h" +#include + +class TClonesArray; + +namespace AliceO2 { + namespace TPC{ + + class Digit; + + class DigitADC{ + public: + DigitADC(Float_t charge); + ~DigitADC(); + + Float_t GetADC() {return mADC;} + + private: + Float_t mADC; + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/DigitCRU.h b/Detectors/TPC/simulation/include/DigitCRU.h new file mode 100644 index 0000000000000..e2391418f1fe0 --- /dev/null +++ b/Detectors/TPC/simulation/include/DigitCRU.h @@ -0,0 +1,45 @@ +// +// DigitCRU.h +// ALICEO2 +// +// Created by Markus Fasel on 25.03.15. +// +// + +#ifndef _ALICEO2_ITS_DigitCRU_ +#define _ALICEO2_ITS_DigitCRU_ + +#include "Rtypes.h" + +class TClonesArray; + +namespace AliceO2 { + namespace TPC { + + class Digit; + class DigitADC; + class DigitTime; + class DigitPad; + class DigitRow; + + class DigitCRU{ + public: + DigitCRU(Int_t mCRUID, Int_t nrows); + ~DigitCRU(); + + void Reset(); + Int_t GetCRUID() {return mCRUID;} + + void SetDigit(Int_t row, Int_t pad, Int_t time, Float_t charge); + + void FillOutputContainer(TClonesArray *output, Int_t cruID); + + private: + Int_t mCRUID; ///< CRU ID + Int_t mNRows; ///< Number of rows in CRU + std::vector mRows; // check whether there is something in the container before writing into it + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/DigitContainer.h b/Detectors/TPC/simulation/include/DigitContainer.h new file mode 100644 index 0000000000000..1c491bdd4ef0b --- /dev/null +++ b/Detectors/TPC/simulation/include/DigitContainer.h @@ -0,0 +1,35 @@ +#ifndef _ALICEO2_DigitContainer_ +#define _ALICEO2_DigitContainer_ + +#include "Digit.h" +#include "DigitCRU.h" +#include "Rtypes.h" +#include + +class TClonesArray; + +namespace AliceO2 { + namespace TPC{ + class Digit; + class DigitPad; + class DigitRow; + class DigitCRU; + + class DigitContainer{ + public: + DigitContainer(); + ~DigitContainer(); + + void Reset(); + + void AddDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge); + void FillOutputContainer(TClonesArray *outputcont); + + private: + Int_t mNCRU; + std::vector mCRU; + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/DigitPad.h b/Detectors/TPC/simulation/include/DigitPad.h new file mode 100644 index 0000000000000..b7c225c16b91e --- /dev/null +++ b/Detectors/TPC/simulation/include/DigitPad.h @@ -0,0 +1,38 @@ +#ifndef _ALICEO2_ITS_DigitPad_ +#define _ALICEO2_ITS_DigitPad_ + +#include "Rtypes.h" + +class TClonesArray; + +namespace AliceO2 { + namespace TPC { + + class Digit; + class DigitADC; + class DigitTime; + class DigitPad; + + class DigitPad{ + public: + DigitPad(Int_t mPadID, Int_t nTimeBins); + ~DigitPad(); + + void Reset(); + + Int_t GetPad() {return mPadID;} + + void SetDigit(Int_t time, Float_t charge); + + void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID); + + private: + Int_t mPadID; ///< Layer ID + Int_t mNTimeBins; ///< Number of staves in Layer +// DigitTime **mTimeBins; ///< Container of staves + std::vector mTimeBins; + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/DigitRow.h b/Detectors/TPC/simulation/include/DigitRow.h new file mode 100644 index 0000000000000..774de157f38dd --- /dev/null +++ b/Detectors/TPC/simulation/include/DigitRow.h @@ -0,0 +1,37 @@ +#ifndef _ALICEO2_ITS_DigitRow_ +#define _ALICEO2_ITS_DigitRow_ + +#include "Rtypes.h" + +class TClonesArray; + +namespace AliceO2 { + namespace TPC { + + class Digit; + class DigitADC; + class DigitTime; + class DigitPad; + + class DigitRow{ + public: + DigitRow(Int_t mRowID, Int_t npads); + ~DigitRow(); + + void Reset(); + + Int_t GetRow() {return mRowID;} + + void SetDigit(Int_t pad, Int_t time, Float_t charge); + + void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID); + + private: + Int_t mRowID; ///< Layer ID + Int_t mNPads; ///< Number of staves in Layer + std::vector mPads; + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/DigitTime.h b/Detectors/TPC/simulation/include/DigitTime.h new file mode 100644 index 0000000000000..0575f3e0a6d3c --- /dev/null +++ b/Detectors/TPC/simulation/include/DigitTime.h @@ -0,0 +1,37 @@ +#ifndef _ALICEO2_ITS_DigitTime_ +#define _ALICEO2_ITS_DigitTime_ + +#include "Rtypes.h" + +class TClonesArray; + +namespace AliceO2 { + namespace TPC { + + class Digit; + class DigitADC; + class DigitTime; + + class DigitTime{ + public: + DigitTime(Int_t mTimeBin); + ~DigitTime(); + + void Reset(); + + Int_t GetTimeBin() {return mTimeBin;} + + void SetDigit(Float_t charge); + + void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin); + + private: + Int_t mTimeBin; + Float_t mCharge; + DigitADC *digitAdc; + std::vector mADCCounts; + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/Digitizer.h b/Detectors/TPC/simulation/include/Digitizer.h new file mode 100644 index 0000000000000..b1cac844e8a11 --- /dev/null +++ b/Detectors/TPC/simulation/include/Digitizer.h @@ -0,0 +1,54 @@ +/// \file Digitizer.h +/// \brief Task for ALICE TPC digitization +#ifndef ALICEO2_TPC_Digitizer_H_ +#define ALICEO2_TPC_Digitizer_H_ + +#include "DigitContainer.h" + +#include "Rtypes.h" // for Digitizer::Class, Double_t, ClassDef, etc +#include "TObject.h" // for TObject + + +class TClonesArray; // lines 13-13 +// namespace AliceO2 { namespace TPC { class DigitContainer; } } // lines 19-19 +// namespace AliceO2 { namespace TPC { class UpgradeGeometryTGeo; } } // lines 20-20 + +namespace AliceO2{ + + namespace TPC { + + class DigitContainer; +// class UpgradeGeometryTGeo; + + class Digitizer : public TObject { + public: + Digitizer(); + + /// Destructor + ~Digitizer(); + + void Init(); + + /// Steer conversion of points to digits + /// @param points Container with ITS points + /// @return digits container + DigitContainer *Process(TClonesArray *points); + void DriftElectrons(Float_t *xyz); + void GEMAmplification(Float_t nele); + + void SetGainFactor(Double_t gain) { mGain = gain; } + + + private: + Digitizer(const Digitizer &); + Digitizer &operator=(const Digitizer &); + + DigitContainer *mDigitContainer; ///< Internal digit storage + Double_t mGain; ///< pad gain factor (global for the moment) + + ClassDef(Digitizer, 1); + }; +} +} + +#endif /* ALICEO2_ITS_Digitizer_H_ */ diff --git a/Detectors/TPC/simulation/include/DigitizerTask.h b/Detectors/TPC/simulation/include/DigitizerTask.h new file mode 100644 index 0000000000000..dd4d8bc0573db --- /dev/null +++ b/Detectors/TPC/simulation/include/DigitizerTask.h @@ -0,0 +1,44 @@ +// +// DigitizerTask.h +// ALICEO2 +// +// Created by Markus Fasel on 16.07.15. +// +// + +#ifndef __ALICEO2__DigitizerTask__ +#define __ALICEO2__DigitizerTask__ + +#include +#include "FairTask.h" // for FairTask, InitStatus +#include "Rtypes.h" // for DigitizerTask::Class, ClassDef, etc +class TClonesArray; +namespace AliceO2 { namespace TPC { class Digitizer; } } // lines 19-19 + +namespace AliceO2 { + namespace TPC{ + + class Digitizer; + + class DigitizerTask : public FairTask{ + public: + DigitizerTask(); + virtual ~DigitizerTask(); + + virtual InitStatus Init(); + virtual void Exec(Option_t *option); + +// Digitizer *GetDigitizer() const { return fDigitizer; } + + private: + Digitizer *fDigitizer; + + TClonesArray *fPointsArray; + TClonesArray *fDigitsArray; + + ClassDef(DigitizerTask, 1) + }; + } +} + +#endif /* defined(__ALICEO2__DigitizerTask__) */ diff --git a/Detectors/TPC/simulation/src/Digit.cxx b/Detectors/TPC/simulation/src/Digit.cxx new file mode 100644 index 0000000000000..49eaa986afaaa --- /dev/null +++ b/Detectors/TPC/simulation/src/Digit.cxx @@ -0,0 +1,34 @@ +/// \file AliITSUpgradeDigi.cxx +/// \brief Digits structure for ITS digits + +#include "Digit.h" + +ClassImp(AliceO2::TPC::Digit) + +using namespace AliceO2::TPC; + + +Digit::Digit(): +mCRU(-1), +mCharge(0.), +mRow(), +mPad(), +FairTimeStamp() +{ +} + +Digit::Digit(Int_t cru, Double_t charge, Int_t row, Int_t pad, Double_t time): +mCRU(cru), +mCharge(charge), +mRow(row), +mPad(pad), +FairTimeStamp(time) +{ +} + +Digit::~Digit(){} + +std::ostream &Digit::Print(std::ostream &output) const{ + output << "TPC Digit in CRU [" << mCRU << "], pad row [" << mRow << "] and pad [" << mPad << "] with charge " << mCharge << " at time stamp" /* << mTimeStamp*/; + return output; +} diff --git a/Detectors/TPC/simulation/src/DigitADC.cxx b/Detectors/TPC/simulation/src/DigitADC.cxx new file mode 100644 index 0000000000000..134cb08267dc2 --- /dev/null +++ b/Detectors/TPC/simulation/src/DigitADC.cxx @@ -0,0 +1,10 @@ +#include "DigitADC.h" +#include "Digit.h" // for Digit + +using namespace AliceO2::TPC; + +DigitADC::DigitADC(Float_t charge) : +mADC(charge) +{} + +DigitADC::~DigitADC() {} \ No newline at end of file diff --git a/Detectors/TPC/simulation/src/DigitCRU.cxx b/Detectors/TPC/simulation/src/DigitCRU.cxx new file mode 100644 index 0000000000000..007eca5fe0d5b --- /dev/null +++ b/Detectors/TPC/simulation/src/DigitCRU.cxx @@ -0,0 +1,47 @@ +#include "DigitCRU.h" +#include "DigitRow.h" +#include "DigitPad.h" +#include "Mapper.h" + +#include "FairLogger.h" +using namespace AliceO2::TPC; + +#include + +DigitCRU::DigitCRU(Int_t cruID, Int_t nrows): + mCRUID(cruID), + mNRows(nrows), + mRows(nrows) +{} + +DigitCRU::~DigitCRU(){ + for (int irow = 0; irow < mNRows; irow++) { + delete mRows[irow]; + } +} + +void DigitCRU::SetDigit(Int_t row, Int_t pad, Int_t time, Float_t charge){ + DigitRow *result = mRows[row]; + if(result != nullptr){ + mRows[row]->SetDigit(pad, time, charge); + } + else{ + const Mapper& mapper = Mapper::instance(); + mRows[row] = new DigitRow(row, mapper.getPadRegionInfo(CRU(mCRUID).region()).getPadsInRowRegion(row)); + mRows[row]->SetDigit(pad, time, charge); + } +} + +void DigitCRU::Reset(){ + for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) { + if((*iterRow) == nullptr) continue; + (*iterRow)->Reset(); + } +} + +void DigitCRU::FillOutputContainer(TClonesArray *output, Int_t cruID){ + for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) { + if((*iterRow) == nullptr) continue; + (*iterRow)->FillOutputContainer(output, cruID, (*iterRow)->GetRow()); + } +} diff --git a/Detectors/TPC/simulation/src/DigitContainer.cxx b/Detectors/TPC/simulation/src/DigitContainer.cxx new file mode 100644 index 0000000000000..f25305b4ca5cb --- /dev/null +++ b/Detectors/TPC/simulation/src/DigitContainer.cxx @@ -0,0 +1,48 @@ +#include "DigitContainer.h" +#include "DigitCRU.h" +#include "Digit.h" +#include "Mapper.h" +#include "CRU.h" + +#include "FairLogger.h" + +#include "TClonesArray.h" + +using namespace AliceO2::TPC; + +DigitContainer::DigitContainer(): +mCRU(CRU::MaxCRU) +{} + +DigitContainer::~DigitContainer(){ + for(int icru = 0; icru < CRU::MaxCRU; ++icru){ + delete mCRU[icru]; + } +} + +void DigitContainer::Reset(){ + for(std::vector::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); iterCRU++) { + if((*iterCRU) == nullptr) continue; + (*iterCRU)->Reset(); + } +} + +void DigitContainer::AddDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge){ + DigitCRU *result = mCRU[cru]; + if(result != nullptr){ + mCRU[cru]->SetDigit(row, pad, time, charge); + } + else{ + const Mapper& mapper = Mapper::instance(); + mCRU[cru] = new DigitCRU(cru, mapper.getPadRegionInfo(CRU(cru).region()).getNumberOfPadRows()); + mCRU[cru]->SetDigit(row, pad, time, charge); + } +} + + +void DigitContainer::FillOutputContainer(TClonesArray *output){ + for(std::vector::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); iterCRU++) { + if((*iterCRU) == nullptr) continue; + (*iterCRU)->FillOutputContainer(output, (*iterCRU)->GetCRUID()); + } +} diff --git a/Detectors/TPC/simulation/src/DigitPad.cxx b/Detectors/TPC/simulation/src/DigitPad.cxx new file mode 100644 index 0000000000000..8e95645d9d5d1 --- /dev/null +++ b/Detectors/TPC/simulation/src/DigitPad.cxx @@ -0,0 +1,44 @@ +#include "DigitTime.h" +#include "DigitPad.h" +#include +#include "Mapper.h" + +#include "FairLogger.h" +using namespace AliceO2::TPC; + +DigitPad::DigitPad(Int_t padID, Int_t nTimeBins) : +mPadID(padID), +mNTimeBins(nTimeBins), +mTimeBins(nTimeBins) +{} + +DigitPad::~DigitPad(){ + for (int itime = 0; itime < mNTimeBins; itime++) { + delete mTimeBins[itime]; + } +} + +void DigitPad::SetDigit(Int_t time, Float_t charge){ + DigitTime *result = mTimeBins[time]; + if(result != nullptr){ + mTimeBins[time]->SetDigit(charge); + } + else{ + mTimeBins[time] = new DigitTime(time); + mTimeBins[time]->SetDigit(charge); + } +} + +void DigitPad::Reset(){ + for(std::vector::iterator iterTime = mTimeBins.begin(); iterTime != mTimeBins.end(); iterTime++) { + if((*iterTime) == nullptr) continue; + (*iterTime)->Reset(); + } +} + +void DigitPad::FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID){ + for(std::vector::iterator iterTime = mTimeBins.begin(); iterTime != mTimeBins.end(); iterTime++) { + if((*iterTime) == nullptr) continue; + (*iterTime)->FillOutputContainer(output, cruID, rowID, padID, (*iterTime)->GetTimeBin()); + } +} diff --git a/Detectors/TPC/simulation/src/DigitRow.cxx b/Detectors/TPC/simulation/src/DigitRow.cxx new file mode 100644 index 0000000000000..3deb1bf99fae4 --- /dev/null +++ b/Detectors/TPC/simulation/src/DigitRow.cxx @@ -0,0 +1,43 @@ +#include "DigitRow.h" +#include "DigitPad.h" +#include "Mapper.h" + +#include "FairLogger.h" +using namespace AliceO2::TPC; + +DigitRow::DigitRow(Int_t rowID, Int_t npads): +mRowID(rowID), +mNPads(npads), +mPads(npads) +{} + +DigitRow::~DigitRow(){ + for (int ipad = 0; ipad < mNPads; ipad++) { + delete mPads[ipad]; + } +} + +void DigitRow::SetDigit(Int_t pad, Int_t time, Float_t charge){ + DigitPad *result = mPads[pad]; + if(result != nullptr){ + mPads[pad]->SetDigit(time, charge); + } + else{ + mPads[pad] = new DigitPad(pad,1000); + mPads[pad]->SetDigit(time, charge); + } +} + +void DigitRow::Reset(){ + for(std::vector::iterator iterPad = mPads.begin(); iterPad != mPads.end(); iterPad++) { + if((*iterPad) == nullptr) continue; + (*iterPad)->Reset(); + } +} + +void DigitRow::FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID){ + for(std::vector::iterator iterPad = mPads.begin(); iterPad != mPads.end(); iterPad++) { + if((*iterPad) == nullptr) continue; + (*iterPad)->FillOutputContainer(output, cruID, rowID, (*iterPad)->GetPad()); + } +} diff --git a/Detectors/TPC/simulation/src/DigitTime.cxx b/Detectors/TPC/simulation/src/DigitTime.cxx new file mode 100644 index 0000000000000..2468d885d3d66 --- /dev/null +++ b/Detectors/TPC/simulation/src/DigitTime.cxx @@ -0,0 +1,38 @@ +#include "DigitTime.h" +#include "DigitADC.h" +#include "Digit.h" +#include "TClonesArray.h" +#include "Mapper.h" + +#include "FairLogger.h" +using namespace AliceO2::TPC; + +DigitTime::DigitTime(Int_t timeBin) : +mTimeBin(timeBin) +{} + +DigitTime::~DigitTime(){ + for(std::vector::iterator iterADC = mADCCounts.begin(); iterADC != mADCCounts.end(); iterADC++) { + delete (*iterADC); + } +} + +void DigitTime::SetDigit(Float_t charge){ + digitAdc = new DigitADC(charge); + mADCCounts.push_back(digitAdc); +} + +void DigitTime::Reset(){ + mADCCounts.clear(); +} + +void DigitTime::FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin){ + mCharge = 0; + for(std::vector::iterator iterADC = mADCCounts.begin(); iterADC != mADCCounts.end(); iterADC++) { + if((*iterADC) == nullptr) continue; + mCharge += (*iterADC)->GetADC(); + } + Digit *digit = new Digit(cruID, mCharge, rowID, padID, timeBin); + TClonesArray &clref = *output; + new(clref[clref.GetEntriesFast()]) Digit(*(digit)); +} \ No newline at end of file diff --git a/Detectors/TPC/simulation/src/Digitizer.cxx b/Detectors/TPC/simulation/src/Digitizer.cxx new file mode 100644 index 0000000000000..612ebacf525e2 --- /dev/null +++ b/Detectors/TPC/simulation/src/Digitizer.cxx @@ -0,0 +1,92 @@ +/// \file AliTPCUpgradeDigitizer.cxx +/// \brief Digitizer for the TPC +#include "Digitizer.h" +#include "Point.h" // for Point +#include "TRandom.h" + +#include "FairLogger.h" // for LOG +#include "TClonesArray.h" // for TClonesArray +#include "TCollection.h" // for TIter +#include "Mapper.h" +#include + +#include + +ClassImp(AliceO2::TPC::Digitizer) + +using namespace AliceO2::TPC; + +Digitizer::Digitizer(): +TObject(), +mDigitContainer(nullptr), +mGain(1.) +{} + +Digitizer::~Digitizer(){ + if(mDigitContainer) delete mDigitContainer; +} + +void Digitizer::Init(){ + mDigitContainer = new DigitContainer(); +} + +DigitContainer *Digitizer::Process(TClonesArray *points){ + mDigitContainer->Reset(); + + // Directly write the Hits to file + Int_t i=10; + Int_t nEle; + Float_t posEle[4] = {0,0,0,0}; + + const Mapper& mapper = Mapper::instance(); + + for (TIter pointiter = TIter(points).Begin(); pointiter != TIter::End(); ++pointiter) { + Point *inputpoint = dynamic_cast(*pointiter); + + // Convert energyloss in number of electrons + nEle=0; + //TODO: set proper parameters somewhere +// nEle = (Int_t)(((inputpoint->GetEnergyLoss())-poti)/wIon) + 1; + nEle = (Int_t)(inputpoint->GetEnergyLoss()*1000000/38.1); + posEle[0] = inputpoint->GetX(); + posEle[1] = inputpoint->GetY(); + posEle[2] = inputpoint->GetZ(); + posEle[3] = nEle; + + //Loop over electrons - take into account diffusion and amplification + for(Int_t iEle=0; iEle < nEle; ++iEle){ + //attachment +// if((gRandom->Rndm(0)) < tpcparam->GetAttachmentCoeff()) continue; + DriftElectrons(posEle); + GEMAmplification(1); + + } + + + //TODO: convert x & y to pad and row coordinate. z coordinate -> drift. charge -> adc value + const GlobalPosition3D pos (inputpoint->GetX(), inputpoint->GetY(), inputpoint->GetZ()); + const DigitPos digiPos = mapper.findDigitPosFromGlobalPosition(pos); + if(!digiPos.isValid()) continue; +// const Int_t timeBin = ((abs(inputpoint->GetZ())-250)/(2.58*0.2)); + //TODO: proper timebin + const Int_t timeBin = 100; + + mDigitContainer->AddDigit(digiPos.getCRU().number(), digiPos.getPadPos().getRow(), digiPos.getPadPos().getPad(), timeBin, inputpoint->GetEnergyLoss()); + } + return mDigitContainer; +} + +void Digitizer::DriftElectrons(Float_t *posEle){ +// Float_t driftl=posEle[2]; +// if(driftl<0.01) driftl=0.01; +// driftl=TMath::Sqrt(driftl); +// Float_t sigT = driftl*(fTPCParam->GetDiffT()); +// Float_t sigL = driftl*(fTPCParam->GetDiffL()); +// posEle[0]=gRandom->Gaus(posEle[0],sigT); +// posEle[1]=gRandom->Gaus(posEle[1],sigT); +// posEle[2]=gRandom->Gaus(posEle[2],sigL); +} + +void Digitizer::GEMAmplification(Float_t nEle){ + nEle *= 10; +} \ No newline at end of file diff --git a/Detectors/TPC/simulation/src/DigitizerTask.cxx b/Detectors/TPC/simulation/src/DigitizerTask.cxx new file mode 100644 index 0000000000000..c365224b0baf2 --- /dev/null +++ b/Detectors/TPC/simulation/src/DigitizerTask.cxx @@ -0,0 +1,65 @@ +// +// DigitizerTask.cxx +// ALICEO2 +// +// Created by Markus Fasel on 16.07.15. +// +// + +#include "DigitizerTask.h" +#include "DigitContainer.h" // for DigitContainer +#include "Digitizer.h" // for Digitizer + +#include "TObject.h" // for TObject +#include "TClonesArray.h" // for TClonesArray +#include "FairLogger.h" // for LOG +#include "FairRootManager.h" // for FairRootManager + +ClassImp(AliceO2::TPC::DigitizerTask) + +using namespace AliceO2::TPC; + +DigitizerTask::DigitizerTask(): +FairTask("TPCDigitizerTask"), +fDigitizer(nullptr), +fPointsArray(nullptr), +fDigitsArray(nullptr) +{ + fDigitizer = new Digitizer; +} + +DigitizerTask::~DigitizerTask(){ + delete fDigitizer; + if (fDigitsArray) delete fDigitsArray; +} + +/// \brief Init function +/// Inititializes the digitizer and connects input and output container +InitStatus DigitizerTask::Init(){ + FairRootManager *mgr = FairRootManager::Instance(); + if(!mgr){ + LOG(ERROR) << "Could not instantiate FairRootManager. Exiting ..." << FairLogger::endl; + return kERROR; + } + + fPointsArray = dynamic_cast(mgr->GetObject("TPCPoint")); + if (!fPointsArray) { + LOG(ERROR) << "TPC points not registered in the FairRootManager. Exiting ..." << FairLogger::endl; + return kERROR; + } + + // Register output container + fDigitsArray = new TClonesArray("AliceO2::TPC::Digit"); + mgr->Register("TPCDigit", "TPC", fDigitsArray, kTRUE); + + fDigitizer->Init(); + return kSUCCESS; +} + +void DigitizerTask::Exec(Option_t *option){ + fDigitsArray->Delete(); + LOG(DEBUG) << "Running digitization on new event" << FairLogger::endl; + + DigitContainer *digits = fDigitizer->Process(fPointsArray); + digits->FillOutputContainer(fDigitsArray); +} diff --git a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h index e3830d7790d5a..e61abe3215f27 100644 --- a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h +++ b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h @@ -7,5 +7,13 @@ #pragma link C++ class AliceO2::TPC::Detector+; #pragma link C++ class AliceO2::TPC::Point+; - +#pragma link C++ class AliceO2::TPC::DigitizerTask+; +#pragma link C++ class AliceO2::TPC::Digitizer+; +#pragma link C++ class AliceO2::TPC::DigitContainer+; +#pragma link C++ class AliceO2::TPC::DigitCRU+; +#pragma link C++ class AliceO2::TPC::DigitRow+; +#pragma link C++ class AliceO2::TPC::DigitPad+; +#pragma link C++ class AliceO2::TPC::DigitTime+; +#pragma link C++ class AliceO2::TPC::DigitADC+; +#pragma link C++ class AliceO2::TPC::Digit+; #endif diff --git a/macro/run_digi.C b/macro/run_digi.C index 87c6b6131ceb8..4ea675ae1ed2f 100644 --- a/macro/run_digi.C +++ b/macro/run_digi.C @@ -29,6 +29,9 @@ void run_digi(Int_t nEvents = 10, TString mcEngine = "TGeant3"){ // Setup digitizer AliceO2::ITS::DigitizerTask *digi = new AliceO2::ITS::DigitizerTask; fRun->AddTask(digi); + + AliceO2::TPC::DigitizerTask *digiTPC = new AliceO2::TPC::DigitizerTask; + fRun->AddTask(digiTPC); fRun->Init(); From e588714e80f43b69b19cc4c18f9edd91bba5f16c Mon Sep 17 00:00:00 2001 From: amathis Date: Mon, 11 Jul 2016 20:59:28 +0200 Subject: [PATCH 117/135] Fix for missing time bin information and proper adc values --- Detectors/TPC/simulation/include/Digit.h | 16 +-- Detectors/TPC/simulation/include/DigitADC.h | 12 +- Detectors/TPC/simulation/include/DigitCRU.h | 18 +-- .../TPC/simulation/include/DigitContainer.h | 8 +- Detectors/TPC/simulation/include/DigitPad.h | 12 +- Detectors/TPC/simulation/include/DigitRow.h | 10 +- Detectors/TPC/simulation/include/DigitTime.h | 10 +- Detectors/TPC/simulation/include/Digitizer.h | 27 +++-- .../TPC/simulation/include/DigitizerTask.h | 24 ++-- Detectors/TPC/simulation/include/Point.h | 2 + Detectors/TPC/simulation/src/DigitCRU.cxx | 20 ++-- .../TPC/simulation/src/DigitContainer.cxx | 18 +-- Detectors/TPC/simulation/src/DigitPad.cxx | 29 ++--- Detectors/TPC/simulation/src/DigitRow.cxx | 25 ++-- Detectors/TPC/simulation/src/DigitTime.cxx | 22 ++-- Detectors/TPC/simulation/src/Digitizer.cxx | 113 ++++++++++++------ .../TPC/simulation/src/DigitizerTask.cxx | 36 +++--- 17 files changed, 221 insertions(+), 181 deletions(-) diff --git a/Detectors/TPC/simulation/include/Digit.h b/Detectors/TPC/simulation/include/Digit.h index 9d3f51635bb1c..fe3d061f150c0 100644 --- a/Detectors/TPC/simulation/include/Digit.h +++ b/Detectors/TPC/simulation/include/Digit.h @@ -1,5 +1,5 @@ -/// \file AliITSUpgradeDigi.h -/// \brief Digits structure for upgrade ITS +/// \file Digit.h +/// \brief Digits structure for upgraded TPC #ifndef ALICEO2_TPC_DIGIT_H #define ALICEO2_TPC_DIGIT_H @@ -24,6 +24,7 @@ namespace AliceO2{ Digit(); /// Constructor, initializing values for position, charge and time + /// @param cru CRU of the digit /// @param charge Accumulated charge of digit /// @param timestamp Time at which the digit was created Digit(Int_t cru, Double_t charge, Int_t row, Int_t pad, Double_t time); @@ -33,20 +34,21 @@ namespace AliceO2{ /// Get the accumulated charged of the digit /// @return charge of the digit - Double_t GetCharge() const { return mCharge; } + Double_t getCharge() const { return mCharge; } - Int_t GetCRU() const { return mCRU; } - Int_t GetRow() const { return mRow; } - Int_t GetPad() const { return mPad; } + Int_t getCRU() const { return mCRU; } + Int_t getRow() const { return mRow; } + Int_t getPad() const { return mPad; } // Double_t GetTime() const { return mTimeStamp; } /// Set the charge of the digit /// @param charge The charge of the the digit - void SetCharge(Double_t charge) { mCharge = charge; } + void setCharge(Double_t charge) { mCharge = charge; } /// Print function: Print basic digit information on the output stream /// @param output Stream to put the digit on /// @return The output stream + std::ostream &Print(std::ostream &output) const; private: diff --git a/Detectors/TPC/simulation/include/DigitADC.h b/Detectors/TPC/simulation/include/DigitADC.h index db6c68563061b..bf77b7e5cd13b 100644 --- a/Detectors/TPC/simulation/include/DigitADC.h +++ b/Detectors/TPC/simulation/include/DigitADC.h @@ -1,11 +1,5 @@ -// -// DigitADC.h -// ALICEO2 -// -// Created by Markus Fasel on 26.03.15. -// -// - +/// \file DigitADC.h +/// \brief Container class for the ADC values #ifndef _ALICEO2_DigitADC_ #define _ALICEO2_DigitADC_ @@ -25,7 +19,7 @@ namespace AliceO2 { DigitADC(Float_t charge); ~DigitADC(); - Float_t GetADC() {return mADC;} + Float_t getADC() {return mADC;} private: Float_t mADC; diff --git a/Detectors/TPC/simulation/include/DigitCRU.h b/Detectors/TPC/simulation/include/DigitCRU.h index e2391418f1fe0..da5970b4b9b22 100644 --- a/Detectors/TPC/simulation/include/DigitCRU.h +++ b/Detectors/TPC/simulation/include/DigitCRU.h @@ -1,11 +1,5 @@ -// -// DigitCRU.h -// ALICEO2 -// -// Created by Markus Fasel on 25.03.15. -// -// - +/// \file DigitCRU.h +/// \brief Digit container for the Row Digits #ifndef _ALICEO2_ITS_DigitCRU_ #define _ALICEO2_ITS_DigitCRU_ @@ -27,12 +21,12 @@ namespace AliceO2 { DigitCRU(Int_t mCRUID, Int_t nrows); ~DigitCRU(); - void Reset(); - Int_t GetCRUID() {return mCRUID;} + void reset(); + Int_t getCRUID() {return mCRUID;} - void SetDigit(Int_t row, Int_t pad, Int_t time, Float_t charge); + void setDigit(Int_t row, Int_t pad, Int_t time, Float_t charge); - void FillOutputContainer(TClonesArray *output, Int_t cruID); + void fillOutputContainer(TClonesArray *output, Int_t cruID); private: Int_t mCRUID; ///< CRU ID diff --git a/Detectors/TPC/simulation/include/DigitContainer.h b/Detectors/TPC/simulation/include/DigitContainer.h index 1c491bdd4ef0b..967e8e6b34d78 100644 --- a/Detectors/TPC/simulation/include/DigitContainer.h +++ b/Detectors/TPC/simulation/include/DigitContainer.h @@ -1,3 +1,5 @@ +/// \file DigitContainer.h +/// \brief Container class for the CRU Digits #ifndef _ALICEO2_DigitContainer_ #define _ALICEO2_DigitContainer_ @@ -20,10 +22,10 @@ namespace AliceO2 { DigitContainer(); ~DigitContainer(); - void Reset(); + void reset(); - void AddDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge); - void FillOutputContainer(TClonesArray *outputcont); + void addDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge); + void fillOutputContainer(TClonesArray *outputcont); private: Int_t mNCRU; diff --git a/Detectors/TPC/simulation/include/DigitPad.h b/Detectors/TPC/simulation/include/DigitPad.h index b7c225c16b91e..c0c934d790d4c 100644 --- a/Detectors/TPC/simulation/include/DigitPad.h +++ b/Detectors/TPC/simulation/include/DigitPad.h @@ -1,3 +1,5 @@ +/// \file DigitPad.h +/// \brief Digit container for the TimeBin Digits #ifndef _ALICEO2_ITS_DigitPad_ #define _ALICEO2_ITS_DigitPad_ @@ -15,16 +17,16 @@ namespace AliceO2 { class DigitPad{ public: - DigitPad(Int_t mPadID, Int_t nTimeBins); + DigitPad(Int_t mPadID); ~DigitPad(); - void Reset(); + void reset(); - Int_t GetPad() {return mPadID;} + Int_t getPad() {return mPadID;} - void SetDigit(Int_t time, Float_t charge); + void setDigit(Int_t time, Float_t charge); - void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID); + void fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID); private: Int_t mPadID; ///< Layer ID diff --git a/Detectors/TPC/simulation/include/DigitRow.h b/Detectors/TPC/simulation/include/DigitRow.h index 774de157f38dd..9765548ad8d85 100644 --- a/Detectors/TPC/simulation/include/DigitRow.h +++ b/Detectors/TPC/simulation/include/DigitRow.h @@ -1,3 +1,5 @@ +/// \file DigitPad.h +/// \brief Container class for the Pad Digits #ifndef _ALICEO2_ITS_DigitRow_ #define _ALICEO2_ITS_DigitRow_ @@ -18,13 +20,13 @@ namespace AliceO2 { DigitRow(Int_t mRowID, Int_t npads); ~DigitRow(); - void Reset(); + void reset(); - Int_t GetRow() {return mRowID;} + Int_t getRow() {return mRowID;} - void SetDigit(Int_t pad, Int_t time, Float_t charge); + void setDigit(Int_t pad, Int_t time, Float_t charge); - void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID); + void fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID); private: Int_t mRowID; ///< Layer ID diff --git a/Detectors/TPC/simulation/include/DigitTime.h b/Detectors/TPC/simulation/include/DigitTime.h index 0575f3e0a6d3c..163a58dab68b0 100644 --- a/Detectors/TPC/simulation/include/DigitTime.h +++ b/Detectors/TPC/simulation/include/DigitTime.h @@ -1,3 +1,5 @@ +/// \file DigitTime.h +/// \brief Container class for the ADC Digits #ifndef _ALICEO2_ITS_DigitTime_ #define _ALICEO2_ITS_DigitTime_ @@ -17,13 +19,13 @@ namespace AliceO2 { DigitTime(Int_t mTimeBin); ~DigitTime(); - void Reset(); + void reset(); - Int_t GetTimeBin() {return mTimeBin;} + Int_t getTimeBin() {return mTimeBin;} - void SetDigit(Float_t charge); + void setDigit(Float_t charge); - void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin); + void fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin); private: Int_t mTimeBin; diff --git a/Detectors/TPC/simulation/include/Digitizer.h b/Detectors/TPC/simulation/include/Digitizer.h index b1cac844e8a11..d260e97d45fa5 100644 --- a/Detectors/TPC/simulation/include/Digitizer.h +++ b/Detectors/TPC/simulation/include/Digitizer.h @@ -5,20 +5,17 @@ #include "DigitContainer.h" -#include "Rtypes.h" // for Digitizer::Class, Double_t, ClassDef, etc -#include "TObject.h" // for TObject +#include "Rtypes.h" +#include "TObject.h" -class TClonesArray; // lines 13-13 -// namespace AliceO2 { namespace TPC { class DigitContainer; } } // lines 19-19 -// namespace AliceO2 { namespace TPC { class UpgradeGeometryTGeo; } } // lines 20-20 +class TClonesArray; namespace AliceO2{ namespace TPC { class DigitContainer; -// class UpgradeGeometryTGeo; class Digitizer : public TObject { public: @@ -27,16 +24,22 @@ namespace AliceO2{ /// Destructor ~Digitizer(); - void Init(); + void init(); /// Steer conversion of points to digits - /// @param points Container with ITS points + /// @param points Container with TPC points /// @return digits container DigitContainer *Process(TClonesArray *points); - void DriftElectrons(Float_t *xyz); - void GEMAmplification(Float_t nele); - - void SetGainFactor(Double_t gain) { mGain = gain; } + Int_t getADCvalue(Float_t nElectrons); + void getElectronDrift(Float_t *xyz); + Float_t getGEMAmplification(); + const Int_t getTimeBin(Float_t zPos); + + + + Double_t Gamma4(Double_t x, Double_t p0, Double_t p1); + + void setGainFactor(Double_t gain) { mGain = gain; } private: diff --git a/Detectors/TPC/simulation/include/DigitizerTask.h b/Detectors/TPC/simulation/include/DigitizerTask.h index dd4d8bc0573db..4144bb2464cad 100644 --- a/Detectors/TPC/simulation/include/DigitizerTask.h +++ b/Detectors/TPC/simulation/include/DigitizerTask.h @@ -1,19 +1,13 @@ -// -// DigitizerTask.h -// ALICEO2 -// -// Created by Markus Fasel on 16.07.15. -// -// - +/// \file DigitizerTask.h +/// \brief Task for ALICE TPC digitization #ifndef __ALICEO2__DigitizerTask__ #define __ALICEO2__DigitizerTask__ #include -#include "FairTask.h" // for FairTask, InitStatus -#include "Rtypes.h" // for DigitizerTask::Class, ClassDef, etc +#include "FairTask.h" +#include "Rtypes.h" class TClonesArray; -namespace AliceO2 { namespace TPC { class Digitizer; } } // lines 19-19 +namespace AliceO2 { namespace TPC { class Digitizer; } } namespace AliceO2 { namespace TPC{ @@ -28,13 +22,11 @@ namespace AliceO2 { virtual InitStatus Init(); virtual void Exec(Option_t *option); -// Digitizer *GetDigitizer() const { return fDigitizer; } - private: - Digitizer *fDigitizer; + Digitizer *mDigitizer; - TClonesArray *fPointsArray; - TClonesArray *fDigitsArray; + TClonesArray *mPointsArray; + TClonesArray *mDigitsArray; ClassDef(DigitizerTask, 1) }; diff --git a/Detectors/TPC/simulation/include/Point.h b/Detectors/TPC/simulation/include/Point.h index 613b8c1eac470..790fe0be43334 100644 --- a/Detectors/TPC/simulation/include/Point.h +++ b/Detectors/TPC/simulation/include/Point.h @@ -1,3 +1,5 @@ +/// \file Point.h +/// \brief Class for TPC Point #ifndef ALICEO2_TPC_POINT_H #define ALICEO2_TPC_POINT_H diff --git a/Detectors/TPC/simulation/src/DigitCRU.cxx b/Detectors/TPC/simulation/src/DigitCRU.cxx index 007eca5fe0d5b..931ea951aa5a7 100644 --- a/Detectors/TPC/simulation/src/DigitCRU.cxx +++ b/Detectors/TPC/simulation/src/DigitCRU.cxx @@ -15,33 +15,33 @@ DigitCRU::DigitCRU(Int_t cruID, Int_t nrows): {} DigitCRU::~DigitCRU(){ - for (int irow = 0; irow < mNRows; irow++) { + for (int irow = 0; irow < mNRows; ++irow) { delete mRows[irow]; } } -void DigitCRU::SetDigit(Int_t row, Int_t pad, Int_t time, Float_t charge){ +void DigitCRU::setDigit(Int_t row, Int_t pad, Int_t time, Float_t charge){ DigitRow *result = mRows[row]; if(result != nullptr){ - mRows[row]->SetDigit(pad, time, charge); + mRows[row]->setDigit(pad, time, charge); } else{ const Mapper& mapper = Mapper::instance(); mRows[row] = new DigitRow(row, mapper.getPadRegionInfo(CRU(mCRUID).region()).getPadsInRowRegion(row)); - mRows[row]->SetDigit(pad, time, charge); + mRows[row]->setDigit(pad, time, charge); } } -void DigitCRU::Reset(){ - for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) { +void DigitCRU::reset(){ + for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); ++iterRow) { if((*iterRow) == nullptr) continue; - (*iterRow)->Reset(); + (*iterRow)->reset(); } } -void DigitCRU::FillOutputContainer(TClonesArray *output, Int_t cruID){ - for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) { +void DigitCRU::fillOutputContainer(TClonesArray *output, Int_t cruID){ + for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); ++iterRow) { if((*iterRow) == nullptr) continue; - (*iterRow)->FillOutputContainer(output, cruID, (*iterRow)->GetRow()); + (*iterRow)->fillOutputContainer(output, cruID, (*iterRow)->getRow()); } } diff --git a/Detectors/TPC/simulation/src/DigitContainer.cxx b/Detectors/TPC/simulation/src/DigitContainer.cxx index f25305b4ca5cb..e73e22bdd141d 100644 --- a/Detectors/TPC/simulation/src/DigitContainer.cxx +++ b/Detectors/TPC/simulation/src/DigitContainer.cxx @@ -20,29 +20,29 @@ DigitContainer::~DigitContainer(){ } } -void DigitContainer::Reset(){ - for(std::vector::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); iterCRU++) { +void DigitContainer::reset(){ + for(std::vector::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); ++iterCRU) { if((*iterCRU) == nullptr) continue; - (*iterCRU)->Reset(); + (*iterCRU)->reset(); } } -void DigitContainer::AddDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge){ +void DigitContainer::addDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge){ DigitCRU *result = mCRU[cru]; if(result != nullptr){ - mCRU[cru]->SetDigit(row, pad, time, charge); + mCRU[cru]->setDigit(row, pad, time, charge); } else{ const Mapper& mapper = Mapper::instance(); mCRU[cru] = new DigitCRU(cru, mapper.getPadRegionInfo(CRU(cru).region()).getNumberOfPadRows()); - mCRU[cru]->SetDigit(row, pad, time, charge); + mCRU[cru]->setDigit(row, pad, time, charge); } } -void DigitContainer::FillOutputContainer(TClonesArray *output){ - for(std::vector::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); iterCRU++) { +void DigitContainer::fillOutputContainer(TClonesArray *output){ + for(std::vector::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); ++iterCRU) { if((*iterCRU) == nullptr) continue; - (*iterCRU)->FillOutputContainer(output, (*iterCRU)->GetCRUID()); + (*iterCRU)->fillOutputContainer(output, (*iterCRU)->getCRUID()); } } diff --git a/Detectors/TPC/simulation/src/DigitPad.cxx b/Detectors/TPC/simulation/src/DigitPad.cxx index 8e95645d9d5d1..f8b62c4683760 100644 --- a/Detectors/TPC/simulation/src/DigitPad.cxx +++ b/Detectors/TPC/simulation/src/DigitPad.cxx @@ -6,39 +6,40 @@ #include "FairLogger.h" using namespace AliceO2::TPC; -DigitPad::DigitPad(Int_t padID, Int_t nTimeBins) : +DigitPad::DigitPad(Int_t padID) : mPadID(padID), -mNTimeBins(nTimeBins), -mTimeBins(nTimeBins) +mTimeBins(500) {} DigitPad::~DigitPad(){ - for (int itime = 0; itime < mNTimeBins; itime++) { - delete mTimeBins[itime]; + for(std::vector::iterator iterTime = mTimeBins.begin(); iterTime != mTimeBins.end(); ++iterTime) { + delete (*iterTime); } } -void DigitPad::SetDigit(Int_t time, Float_t charge){ +void DigitPad::setDigit(Int_t time, Float_t charge){ DigitTime *result = mTimeBins[time]; if(result != nullptr){ - mTimeBins[time]->SetDigit(charge); + mTimeBins[time]->setDigit(charge); } else{ mTimeBins[time] = new DigitTime(time); - mTimeBins[time]->SetDigit(charge); +// digitTime = new DigitTime(time); +// mTimeBins[time].push_back(digitTime); + mTimeBins[time]->setDigit(charge); } } -void DigitPad::Reset(){ - for(std::vector::iterator iterTime = mTimeBins.begin(); iterTime != mTimeBins.end(); iterTime++) { +void DigitPad::reset(){ + for(std::vector::iterator iterTime = mTimeBins.begin(); iterTime != mTimeBins.end(); ++iterTime) { if((*iterTime) == nullptr) continue; - (*iterTime)->Reset(); + (*iterTime)->reset(); } } -void DigitPad::FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID){ - for(std::vector::iterator iterTime = mTimeBins.begin(); iterTime != mTimeBins.end(); iterTime++) { +void DigitPad::fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID){ + for(std::vector::iterator iterTime = mTimeBins.begin(); iterTime != mTimeBins.end(); ++iterTime) { if((*iterTime) == nullptr) continue; - (*iterTime)->FillOutputContainer(output, cruID, rowID, padID, (*iterTime)->GetTimeBin()); + (*iterTime)->fillOutputContainer(output, cruID, rowID, padID, (*iterTime)->getTimeBin()); } } diff --git a/Detectors/TPC/simulation/src/DigitRow.cxx b/Detectors/TPC/simulation/src/DigitRow.cxx index 3deb1bf99fae4..997f59ec86c85 100644 --- a/Detectors/TPC/simulation/src/DigitRow.cxx +++ b/Detectors/TPC/simulation/src/DigitRow.cxx @@ -7,37 +7,36 @@ using namespace AliceO2::TPC; DigitRow::DigitRow(Int_t rowID, Int_t npads): mRowID(rowID), -mNPads(npads), mPads(npads) {} DigitRow::~DigitRow(){ - for (int ipad = 0; ipad < mNPads; ipad++) { - delete mPads[ipad]; + for(std::vector::iterator iterPad = mPads.begin(); iterPad != mPads.end(); ++iterPad) { + delete (*iterPad); } } -void DigitRow::SetDigit(Int_t pad, Int_t time, Float_t charge){ +void DigitRow::setDigit(Int_t pad, Int_t time, Float_t charge){ DigitPad *result = mPads[pad]; if(result != nullptr){ - mPads[pad]->SetDigit(time, charge); + mPads[pad]->setDigit(time, charge); } else{ - mPads[pad] = new DigitPad(pad,1000); - mPads[pad]->SetDigit(time, charge); + mPads[pad] = new DigitPad(pad); + mPads[pad]->setDigit(time, charge); } } -void DigitRow::Reset(){ - for(std::vector::iterator iterPad = mPads.begin(); iterPad != mPads.end(); iterPad++) { +void DigitRow::reset(){ + for(std::vector::iterator iterPad = mPads.begin(); iterPad != mPads.end(); ++iterPad) { if((*iterPad) == nullptr) continue; - (*iterPad)->Reset(); + (*iterPad)->reset(); } } -void DigitRow::FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID){ - for(std::vector::iterator iterPad = mPads.begin(); iterPad != mPads.end(); iterPad++) { +void DigitRow::fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID){ + for(std::vector::iterator iterPad = mPads.begin(); iterPad != mPads.end(); ++iterPad) { if((*iterPad) == nullptr) continue; - (*iterPad)->FillOutputContainer(output, cruID, rowID, (*iterPad)->GetPad()); + (*iterPad)->fillOutputContainer(output, cruID, rowID, (*iterPad)->getPad()); } } diff --git a/Detectors/TPC/simulation/src/DigitTime.cxx b/Detectors/TPC/simulation/src/DigitTime.cxx index 2468d885d3d66..778beb2f02001 100644 --- a/Detectors/TPC/simulation/src/DigitTime.cxx +++ b/Detectors/TPC/simulation/src/DigitTime.cxx @@ -12,27 +12,31 @@ mTimeBin(timeBin) {} DigitTime::~DigitTime(){ - for(std::vector::iterator iterADC = mADCCounts.begin(); iterADC != mADCCounts.end(); iterADC++) { + for(std::vector::iterator iterADC = mADCCounts.begin(); iterADC != mADCCounts.end(); ++iterADC) { delete (*iterADC); } } -void DigitTime::SetDigit(Float_t charge){ +void DigitTime::setDigit(Float_t charge){ digitAdc = new DigitADC(charge); mADCCounts.push_back(digitAdc); } -void DigitTime::Reset(){ +void DigitTime::reset(){ mADCCounts.clear(); } -void DigitTime::FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin){ +void DigitTime::fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin){ mCharge = 0; - for(std::vector::iterator iterADC = mADCCounts.begin(); iterADC != mADCCounts.end(); iterADC++) { + for(std::vector::iterator iterADC = mADCCounts.begin(); iterADC != mADCCounts.end(); ++iterADC) { if((*iterADC) == nullptr) continue; - mCharge += (*iterADC)->GetADC(); + mCharge += (*iterADC)->getADC(); + } + //TODO have to understand what is going wrong here - tree is filled with many zeros otherwise... + if(mCharge > 0){ + if(mCharge > 1024) mCharge = 1024; + Digit *digit = new Digit(cruID, mCharge, rowID, padID, timeBin); + TClonesArray &clref = *output; + new(clref[clref.GetEntriesFast()]) Digit(*(digit)); } - Digit *digit = new Digit(cruID, mCharge, rowID, padID, timeBin); - TClonesArray &clref = *output; - new(clref[clref.GetEntriesFast()]) Digit(*(digit)); } \ No newline at end of file diff --git a/Detectors/TPC/simulation/src/Digitizer.cxx b/Detectors/TPC/simulation/src/Digitizer.cxx index 612ebacf525e2..51b5a4da89d9b 100644 --- a/Detectors/TPC/simulation/src/Digitizer.cxx +++ b/Detectors/TPC/simulation/src/Digitizer.cxx @@ -8,6 +8,7 @@ #include "TClonesArray.h" // for TClonesArray #include "TCollection.h" // for TIter #include "Mapper.h" +#include "TMath.h" #include #include @@ -19,74 +20,114 @@ using namespace AliceO2::TPC; Digitizer::Digitizer(): TObject(), mDigitContainer(nullptr), -mGain(1.) +mGain(2000.) {} Digitizer::~Digitizer(){ if(mDigitContainer) delete mDigitContainer; } -void Digitizer::Init(){ +void Digitizer::init(){ mDigitContainer = new DigitContainer(); } DigitContainer *Digitizer::Process(TClonesArray *points){ - mDigitContainer->Reset(); - - // Directly write the Hits to file - Int_t i=10; + mDigitContainer->reset(); + Int_t nEle; Float_t posEle[4] = {0,0,0,0}; const Mapper& mapper = Mapper::instance(); - + for (TIter pointiter = TIter(points).Begin(); pointiter != TIter::End(); ++pointiter) { Point *inputpoint = dynamic_cast(*pointiter); - // Convert energyloss in number of electrons - nEle=0; - //TODO: set proper parameters somewhere -// nEle = (Int_t)(((inputpoint->GetEnergyLoss())-poti)/wIon) + 1; - nEle = (Int_t)(inputpoint->GetEnergyLoss()*1000000/38.1); + // Convert energy loss in number of electrons + nEle = (Int_t)(inputpoint->GetEnergyLoss()*1000000/37.3); + posEle[0] = inputpoint->GetX(); posEle[1] = inputpoint->GetY(); posEle[2] = inputpoint->GetZ(); posEle[3] = nEle; + const GlobalPosition3D pos (posEle[0], posEle[1], posEle[2]); + const DigitPos digiPos = mapper.findDigitPosFromGlobalPosition(pos); + + // remove hits that are out of the acceptance of the TPC + if(!digiPos.isValid()) continue; + if(abs(posEle[2]) > 250) continue; + + // Compute mean time Bin of the charge cloud + const Int_t timeBin = getTimeBin(posEle[2]); + + Float_t nEleAmp = 0; + //Loop over electrons - take into account diffusion and amplification for(Int_t iEle=0; iEle < nEle; ++iEle){ + //attachment -// if((gRandom->Rndm(0)) < tpcparam->GetAttachmentCoeff()) continue; - DriftElectrons(posEle); - GEMAmplification(1); - + Float_t time = (250-abs(posEle[2])/2.58); // in us + Float_t attProb = 250. * 5.e-6 * time; + // Float_t attProb = fTPCParam->GetAttCoef()*fTPCParam->GetOxyCont()*time; + if((gRandom->Rndm(0)) < attProb) continue; + + getElectronDrift(posEle); + + nEleAmp += getGEMAmplification(); } + //end of loop over electrons + // here the time response and sorting of the charge spread due to diffusion into different pad rows, pads and time bins will come... - //TODO: convert x & y to pad and row coordinate. z coordinate -> drift. charge -> adc value - const GlobalPosition3D pos (inputpoint->GetX(), inputpoint->GetY(), inputpoint->GetZ()); - const DigitPos digiPos = mapper.findDigitPosFromGlobalPosition(pos); - if(!digiPos.isValid()) continue; -// const Int_t timeBin = ((abs(inputpoint->GetZ())-250)/(2.58*0.2)); - //TODO: proper timebin - const Int_t timeBin = 100; - - mDigitContainer->AddDigit(digiPos.getCRU().number(), digiPos.getPadPos().getRow(), digiPos.getPadPos().getPad(), timeBin, inputpoint->GetEnergyLoss()); + Int_t ADCvalue = getADCvalue(nEleAmp); + + mDigitContainer->addDigit(digiPos.getCRU().number(), digiPos.getPadPos().getRow(), digiPos.getPadPos().getPad(), timeBin, ADCvalue); } return mDigitContainer; } -void Digitizer::DriftElectrons(Float_t *posEle){ -// Float_t driftl=posEle[2]; -// if(driftl<0.01) driftl=0.01; -// driftl=TMath::Sqrt(driftl); -// Float_t sigT = driftl*(fTPCParam->GetDiffT()); -// Float_t sigL = driftl*(fTPCParam->GetDiffL()); -// posEle[0]=gRandom->Gaus(posEle[0],sigT); -// posEle[1]=gRandom->Gaus(posEle[1],sigT); -// posEle[2]=gRandom->Gaus(posEle[2],sigL); +void Digitizer::getElectronDrift(Float_t *posEle){ + Float_t driftl=posEle[2]; + if(driftl<0.01) driftl=0.01; + driftl=TMath::Sqrt(driftl); + Float_t DiffT = 0.0209; + Float_t DiffL = 0.0221; + Float_t sigT = driftl*DiffT; + Float_t sigL = driftl*DiffL; + posEle[0]=gRandom->Gaus(posEle[0],sigT); + posEle[1]=gRandom->Gaus(posEle[1],sigT); + posEle[2]=gRandom->Gaus(posEle[2],sigL); +} + +Int_t Digitizer::getADCvalue(Float_t nElectrons){ + // parameters to be stored someplace else + Float_t ADCSat = 1024; + Float_t Qel = 1.602e-19; + Float_t ChipGain = 12; + Float_t ADCDynRange = 2000; + + Float_t ADCvalue = nElectrons*Qel*1.e15*ChipGain*ADCSat/ADCDynRange; + ADCvalue = TMath::Nint(ADCvalue); + if(ADCvalue >= ADCSat) ADCvalue = ADCSat - 1; // saturation + return ADCvalue; +} + +Float_t Digitizer::getGEMAmplification(){ + Float_t rn=TMath::Max(gRandom->Rndm(0),1.93e-22); + Float_t signal = (Int_t)(-(mGain) * TMath::Log(rn)); + return signal; +} + +const Int_t Digitizer::getTimeBin(Float_t zPos){ + //TODO: parameterize the conversion of the zPos to timeBin + should go someplace else. + Int_t timeBin = (Int_t)((250-abs(zPos))/(2.58*0.2)); + return timeBin; } -void Digitizer::GEMAmplification(Float_t nEle){ - nEle *= 10; +Double_t Digitizer::Gamma4(Double_t x, Double_t p0, Double_t p1){ + // should of course go someplace else! + if (x<0) return 0; + Double_t g1 = TMath::Exp(-4.*x/p1); + Double_t g2 = TMath::Power(x/p1,4); + return p0*g1*g2; } \ No newline at end of file diff --git a/Detectors/TPC/simulation/src/DigitizerTask.cxx b/Detectors/TPC/simulation/src/DigitizerTask.cxx index c365224b0baf2..c7989ced2d4d5 100644 --- a/Detectors/TPC/simulation/src/DigitizerTask.cxx +++ b/Detectors/TPC/simulation/src/DigitizerTask.cxx @@ -10,10 +10,10 @@ #include "DigitContainer.h" // for DigitContainer #include "Digitizer.h" // for Digitizer -#include "TObject.h" // for TObject -#include "TClonesArray.h" // for TClonesArray -#include "FairLogger.h" // for LOG -#include "FairRootManager.h" // for FairRootManager +#include "TObject.h" +#include "TClonesArray.h" +#include "FairLogger.h" +#include "FairRootManager.h" ClassImp(AliceO2::TPC::DigitizerTask) @@ -21,16 +21,16 @@ using namespace AliceO2::TPC; DigitizerTask::DigitizerTask(): FairTask("TPCDigitizerTask"), -fDigitizer(nullptr), -fPointsArray(nullptr), -fDigitsArray(nullptr) +mDigitizer(nullptr), +mPointsArray(nullptr), +mDigitsArray(nullptr) { - fDigitizer = new Digitizer; + mDigitizer = new Digitizer; } DigitizerTask::~DigitizerTask(){ - delete fDigitizer; - if (fDigitsArray) delete fDigitsArray; + delete mDigitizer; + if (mDigitsArray) delete mDigitsArray; } /// \brief Init function @@ -42,24 +42,24 @@ InitStatus DigitizerTask::Init(){ return kERROR; } - fPointsArray = dynamic_cast(mgr->GetObject("TPCPoint")); - if (!fPointsArray) { + mPointsArray = dynamic_cast(mgr->GetObject("TPCPoint")); + if (!mPointsArray) { LOG(ERROR) << "TPC points not registered in the FairRootManager. Exiting ..." << FairLogger::endl; return kERROR; } // Register output container - fDigitsArray = new TClonesArray("AliceO2::TPC::Digit"); - mgr->Register("TPCDigit", "TPC", fDigitsArray, kTRUE); + mDigitsArray = new TClonesArray("AliceO2::TPC::Digit"); + mgr->Register("TPCDigit", "TPC", mDigitsArray, kTRUE); - fDigitizer->Init(); + mDigitizer->init(); return kSUCCESS; } void DigitizerTask::Exec(Option_t *option){ - fDigitsArray->Delete(); + mDigitsArray->Delete(); LOG(DEBUG) << "Running digitization on new event" << FairLogger::endl; - DigitContainer *digits = fDigitizer->Process(fPointsArray); - digits->FillOutputContainer(fDigitsArray); + DigitContainer *digits = mDigitizer->Process(mPointsArray); + digits->fillOutputContainer(mDigitsArray); } From fa89535b5bbb6986e5c2dac38b5a0893b7c2430e Mon Sep 17 00:00:00 2001 From: Peter Christiansen Date: Mon, 11 Jul 2016 18:49:28 +0200 Subject: [PATCH 118/135] Adding macro for clusterer (testing how to commit). --- macro/run_clusterer.C | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 macro/run_clusterer.C diff --git a/macro/run_clusterer.C b/macro/run_clusterer.C new file mode 100644 index 0000000000000..6610687d81d8e --- /dev/null +++ b/macro/run_clusterer.C @@ -0,0 +1,65 @@ +void run_clusterer(Int_t nEvents = 10, TString mcEngine = "TGeant3") +{ + // Initialize logger + FairLogger *logger = FairLogger::GetLogger(); + logger->SetLogVerbosityLevel("HIGH"); + logger->SetLogScreenLevel("DEBUG"); + + // Input and output file name + std::stringstream inputfile, outputfile, paramfile; + inputfile << "AliceO2_" << mcEngine << ".digi_" << nEvents << "_event.root"; + paramfile << "AliceO2_" << mcEngine << ".params_" << nEvents << ".root"; + outputfile << "AliceO2_" << mcEngine << ".clusters_" << nEvents << "_event.root"; + + // Setup timer + TStopwatch timer; + + // Setup FairRoot analysis manager + FairRunAna * fRun = new FairRunAna; + fRun->SetInputFile(inputfile.str().c_str()); + fRun->SetOutputFile(outputfile.str().c_str()); + + // Setup Runtime DB + FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); + FairParRootFileIo* parInput1 = new FairParRootFileIo(); + parInput1->open(paramfile.str().c_str()); + rtdb->setFirstInput(parInput1); + + TGeoManager::Import("geofile_full.root"); + + // Setup clusterer + AliceO2::TPC::ClustererTask *clustTPC = new AliceO2::TPC::ClustererTask; + fRun->AddTask(clustTPC); + + fRun->Init(); + + timer.Start(); + fRun->Run(); + + std::cout << std::endl << std::endl; + + // Extract the maximal used memory an add is as Dart measurement + // This line is filtered by CTest and the value send to CDash + FairSystemInfo sysInfo; + Float_t maxMemory=sysInfo.GetMaxMemory(); + std::cout << ""; + std::cout << maxMemory; + std::cout << "" << std::endl; + + timer.Stop(); + Double_t rtime = timer.RealTime(); + Double_t ctime = timer.CpuTime(); + + Float_t cpuUsage=ctime/rtime; + cout << ""; + cout << cpuUsage; + cout << "" << endl; + + std::cout << endl << std::endl; + std::cout << "Output file is " << outputfile.str() << std::endl; + //std::cout << "Parameter file is " << parFile << std::endl; + std::cout << "Real time " << rtime << " s, CPU time " << ctime + << "s" << endl << endl; + std::cout << "Macro finished succesfully." << std::endl; +} + From 815045b17e2925fa583c0f2046b4e87c730f42ac Mon Sep 17 00:00:00 2001 From: Peter Christiansen Date: Mon, 11 Jul 2016 18:55:08 +0200 Subject: [PATCH 119/135] First version of the box clusterer. --- Detectors/TPC/simulation/CMakeLists.txt | 10 + Detectors/TPC/simulation/include/BoxCluster.h | 81 ++++ .../TPC/simulation/include/BoxClusterer.h | 71 +++ Detectors/TPC/simulation/include/Cluster.h | 79 ++++ Detectors/TPC/simulation/include/ClusterCRU.h | 42 ++ .../TPC/simulation/include/ClusterContainer.h | 51 +++ Detectors/TPC/simulation/include/ClusterRow.h | 33 ++ .../TPC/simulation/include/ClustererTask.h | 43 ++ Detectors/TPC/simulation/src/BoxCluster.cxx | 55 +++ Detectors/TPC/simulation/src/BoxClusterer.cxx | 418 ++++++++++++++++++ Detectors/TPC/simulation/src/Cluster.cxx | 69 +++ Detectors/TPC/simulation/src/ClusterCRU.cxx | 52 +++ .../TPC/simulation/src/ClusterContainer.cxx | 73 +++ .../TPC/simulation/src/ClustererTask.cxx | 74 ++++ .../TPC/simulation/src/tpcSimulationLinkDef.h | 5 + macro/CMakeLists.txt | 2 + 16 files changed, 1158 insertions(+) create mode 100644 Detectors/TPC/simulation/include/BoxCluster.h create mode 100644 Detectors/TPC/simulation/include/BoxClusterer.h create mode 100644 Detectors/TPC/simulation/include/Cluster.h create mode 100644 Detectors/TPC/simulation/include/ClusterCRU.h create mode 100644 Detectors/TPC/simulation/include/ClusterContainer.h create mode 100644 Detectors/TPC/simulation/include/ClusterRow.h create mode 100644 Detectors/TPC/simulation/include/ClustererTask.h create mode 100644 Detectors/TPC/simulation/src/BoxCluster.cxx create mode 100644 Detectors/TPC/simulation/src/BoxClusterer.cxx create mode 100644 Detectors/TPC/simulation/src/Cluster.cxx create mode 100644 Detectors/TPC/simulation/src/ClusterCRU.cxx create mode 100644 Detectors/TPC/simulation/src/ClusterContainer.cxx create mode 100644 Detectors/TPC/simulation/src/ClustererTask.cxx diff --git a/Detectors/TPC/simulation/CMakeLists.txt b/Detectors/TPC/simulation/CMakeLists.txt index e4caedb9ffe35..14261a2a46c8b 100644 --- a/Detectors/TPC/simulation/CMakeLists.txt +++ b/Detectors/TPC/simulation/CMakeLists.txt @@ -35,6 +35,11 @@ set(SRCS src/DigitTime.cxx src/DigitADC.cxx src/Digit.cxx + src/Cluster.cxx + src/BoxCluster.cxx + src/ClusterContainer.cxx + src/BoxClusterer.cxx + src/ClustererTask.cxx ) set(HEADERS @@ -49,6 +54,11 @@ set(HEADERS include/DigitTime.h include/DigitADC.h include/Digit.h + include/Cluster.h + include/BoxCluster.h + include/ClusterContainer.h + include/BoxClusterer.h + include/ClustererTask.h ) Set(LINKDEF src/tpcSimulationLinkDef.h) Set(LIBRARY_NAME tpcSimulation) diff --git a/Detectors/TPC/simulation/include/BoxCluster.h b/Detectors/TPC/simulation/include/BoxCluster.h new file mode 100644 index 0000000000000..838b526b86342 --- /dev/null +++ b/Detectors/TPC/simulation/include/BoxCluster.h @@ -0,0 +1,81 @@ +/// \file BoxCluster.h +/// \brief Class to have some more info about the BoxClusterer clusters +#ifndef ALICEO2_TPC_BOXCLUSTER_H +#define ALICEO2_TPC_BOXCLUSTER_H + +#ifndef __CINT__ +#include // for base_object +#endif + +#include "Cluster.h" +#include "FairTimeStamp.h" // for FairTimeStamp +#include "Rtypes.h" // for Double_t, ULong_t, etc +namespace boost { namespace serialization { class access; } } + +namespace AliceO2{ + namespace TPC{ + + /// \class BoxCluster + /// \brief Class to have some more info about the BoxClusterer clusters + /// + class BoxCluster : public Cluster { + public: + + /// Default constructor + BoxCluster(); + + /// Constructor, initializing all values + /// @param cru CRU (sector) + /// @param row Row + /// @param pad Pad with the maximum charge + /// @param time Time bin with the maximum charge + /// @param q Total charge of cluster + /// @param qmax Maximum charge in a single cell (pad, time) + /// @param padmean Mean position of cluster in pad direction + /// @param padsigma Sigma of cluster in pad direction + /// @param timemean Mean position of cluster in time direction + /// @param timesigma Sigma of cluster in time direction + /// @param size Number of pads * 10 + Number of time bins + BoxCluster(Short_t cru, Short_t row, Short_t pad, Short_t time, + Float_t q, Float_t qmax, Float_t padmean, + Float_t padsigma, Float_t timemean, Float_t timesigma, + Short_t size); + + /// Destructor + virtual ~BoxCluster(); + + /// Setter for special Box cluster parameters + /// @param pad Pad with the maximum charge + /// @param time Time bin with the maximum charge + /// @param size Number of pads * 10 + Number of time bins + void setBoxParameters(Short_t pad, Short_t time, Short_t size); + + Short_t getPad() const { return mPad; } + Short_t getTime() const { return mTime; } + Short_t getSize() const { return mSize; } + // get number of pads covered by the cluster + Short_t getNpads() const { return Short_t(mSize/10); } + // get number of time bins covered by the cluster + Short_t getNtimebins() const { return mSize%10; } + + + /// Print function: Print basic information to the output stream + /// @param output stream + /// @return The output stream + std::ostream &Print(std::ostream &output) const; + + private: +#ifndef __CINT__ + friend class boost::serialization::access; +#endif + + Short_t mPad; + Short_t mTime; + Short_t mSize; + + ClassDef(BoxCluster, 1); + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/BoxClusterer.h b/Detectors/TPC/simulation/include/BoxClusterer.h new file mode 100644 index 0000000000000..c0a1c02e4df2f --- /dev/null +++ b/Detectors/TPC/simulation/include/BoxClusterer.h @@ -0,0 +1,71 @@ +/// \file BoxClusterer.h +/// \brief Class for TPC cluster finding +#ifndef ALICEO2_TPC_BoxClusterer_H_ +#define ALICEO2_TPC_BoxClusterer_H_ + +#include "Rtypes.h" +#include "TObject.h" + +namespace AliceO2{ + + namespace TPC { + + class ClusterContainer; + + class BoxClusterer : public TObject { + public: + BoxClusterer(); + + /// Destructor + ~BoxClusterer(); + + // Should this really be a public member? + // Maybe better to just call by process + void Init(); + + /// Steer conversion of points to digits + /// @param digits Container with TPC digits + /// @return Container with clusters + ClusterContainer* Process(TClonesArray *digits); + + private: + // To be done + /* BoxClusterer(const BoxClusterer &); */ + /* BoxClusterer &operator=(const BoxClusterer &); */ + + void FindLocalMaxima(const Int_t iCRU); + void CleanArrays(); + void GetPadAndTimeBin(Int_t bin, Short_t& iPad, Short_t& iTimeBin); + Int_t Update(const Int_t iCRU, const Int_t iRow, const Int_t iPad, + const Int_t iTimeBin, Float_t signal); + Float_t GetQ(const Float_t* adcArray, const Short_t time, + const Short_t pad, Short_t& timeMin, Short_t& timeMax, + Short_t& padMin, Short_t& padMax) const; + Bool_t UpdateCluster(Float_t charge, Int_t deltaPad, Int_t deltaTime, + Float_t& qTotal, Double_t& meanPad, + Double_t& sigmaPad, Double_t& meanTime, + Double_t& sigmaTime); + + + ClusterContainer* mClusterContainer; ///< Internal cluster storage + + Int_t mRowsMax; //! 0 (else all clusters are automatic 5x5) + Bool_t mRequireNeighbouringPad; //|<|If true, require 2+ pads minimum + // + // Expand buffer + // + Float_t** mAllBins; //! // for base_object +#endif + +#include "FairTimeStamp.h" // for FairTimeStamp +#include "Rtypes.h" // for Double_t, ULong_t, etc +namespace boost { namespace serialization { class access; } } + +namespace AliceO2{ + namespace TPC{ + + /// \class Cluster + /// \brief Cluster class for the TPC + /// + class Cluster : public FairTimeStamp { + public: + + /// Default constructor + Cluster(); + + /// Constructor, initializing all values + /// @param cru CRU (sector) + /// @param row Row + /// @param q Total charge of cluster + /// @param qmax Maximum charge in a single cell (pad, time) + /// @param padmean Mean position of cluster in pad direction + /// @param padsigma Sigma of cluster in pad direction + /// @param timemean Mean position of cluster in time direction + /// @param timesigma Sigma of cluster in time direction + Cluster(Short_t cru, Short_t row, Float_t q, Float_t qmax, + Float_t padmean, Float_t padsigma, Float_t timemean, + Float_t timesigma); + + /// Destructor + virtual ~Cluster(); + + void setParameters(Short_t cru, Short_t row, Float_t q, Float_t qmax, + Float_t padmean, Float_t padsigma, + Float_t timemean, Float_t timesigma); + + Int_t getCRU() const { return mCRU; } + Int_t getRow() const { return mRow; } + Float_t getQ() const { return mQ; } + Float_t getQmax() const { return mQmax; } + Float_t getPadMean() const { return mPadMean; } + Float_t getTimeMean() const { return mTimeMean; } + Float_t getPadSigma() const { return mPadSigma; } + Float_t getTimeSigma() const { return mTimeSigma; } + + /// Print function: Print basic digit information on the output stream + /// @param output Stream to put the digit on + /// @return The output stream + std::ostream &Print(std::ostream &output) const; + + private: +#ifndef __CINT__ + friend class boost::serialization::access; +#endif + + Short_t mCRU; + Short_t mRow; + Float_t mQ; + Float_t mQmax; + Float_t mPadMean; + Float_t mPadSigma; + Float_t mTimeMean; + Float_t mTimeSigma; + + ClassDef(Cluster, 1); + }; + } +} + +#endif /* ALICEO2_TPC_CLUSTER_H */ diff --git a/Detectors/TPC/simulation/include/ClusterCRU.h b/Detectors/TPC/simulation/include/ClusterCRU.h new file mode 100644 index 0000000000000..bc871d98b08d5 --- /dev/null +++ b/Detectors/TPC/simulation/include/ClusterCRU.h @@ -0,0 +1,42 @@ +// +// ClusterCRU.h +// ALICEO2 +// +// Created by Markus Fasel on 25.03.15. +// +// + +#ifndef _ALICEO2_TPC_ClusterCRU_ +#define _ALICEO2_TPC_ClusterCRU_ + +#include "Rtypes.h" + +class TClonesArray; + +namespace AliceO2 { + namespace TPC { + + class Cluster; + class ClusterRow; + + class ClusterCRU{ + public: + ClusterCRU(Int_t mCRUID, Int_t nrows); + ~ClusterCRU(); + + void Reset(); + Int_t GetCRUID() {return mCRUID;} + + void SetCluster(Int_t row, Int_t pad, Int_t time, Float_t charge); + + void FillOutputContainer(TClonesArray *output, Int_t cruID); + + private: + Int_t mCRUID; ///< CRU ID + Int_t mNRows; ///< Number of rows in CRU + std::vector mRows; // check whether there is something in the container before writing into it + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/ClusterContainer.h b/Detectors/TPC/simulation/include/ClusterContainer.h new file mode 100644 index 0000000000000..f27d79bc63a74 --- /dev/null +++ b/Detectors/TPC/simulation/include/ClusterContainer.h @@ -0,0 +1,51 @@ +/// \file ClusterContainer.h +/// \brief Container class for TPC clusters +#ifndef _ALICEO2_TPC_ClusterContainer_ +#define _ALICEO2_TPC_ClusterContainer_ + +#include "Cluster.h" +#include "Rtypes.h" +#include "TClonesArray.h" + +namespace AliceO2 { + namespace TPC{ + class Cluster; + + /// \class ClusterContainer + /// \brief Container class for TPC clusters + class ClusterContainer{ + public: + ClusterContainer(); + ~ClusterContainer(); + + // Initialize the clones array + // @param clusterType Possibility to store different types of clusters + void InitArray(const Char_t* clusterType="AliceO2::TPC::Cluster"); + + // Empty array + void Reset(); + + /// Add cluster to array + /// @param cru CRU (sector) + /// @param row Row + /// @param q Total charge of cluster + /// @param qmax Maximum charge in a single cell (pad, time) + /// @param padmean Mean position of cluster in pad direction + /// @param padsigma Sigma of cluster in pad direction + /// @param timemean Mean position of cluster in time direction + /// @param timesigma Sigma of cluster in time direction + Cluster* AddCluster(Int_t cru, Int_t row, Float_t qTot, Float_t qMax, + Float_t pad, Float_t time, Float_t sigmapad, + Float_t sigmatime); + + // Copy container info into the output container + void FillOutputContainer(TClonesArray *outputcont); + + private: + Int_t mNclusters; // number of clusters + TClonesArray* mClusterArray; // array for clusters + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/ClusterRow.h b/Detectors/TPC/simulation/include/ClusterRow.h new file mode 100644 index 0000000000000..0332976cb1244 --- /dev/null +++ b/Detectors/TPC/simulation/include/ClusterRow.h @@ -0,0 +1,33 @@ +#ifndef _ALICEO2_TPC_ClusterRow_ +#define _ALICEO2_TPC_ClusterRow_ + +#include "Rtypes.h" + +class TClonesArray; + +namespace AliceO2 { + namespace TPC { + + class Cluster; + + class ClusterRow{ + public: + ClusterRow(Int_t mRowID); + ~ClusterRow(); + + void Reset(); + + Int_t GetRow() {return mRowID;} + + void SetCluster(Int_t pad, Int_t time, Float_t charge); + + void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID); + + private: + Short_t mRow; ///< Row + std::vector mClusters; + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/include/ClustererTask.h b/Detectors/TPC/simulation/include/ClustererTask.h new file mode 100644 index 0000000000000..69da878eb2007 --- /dev/null +++ b/Detectors/TPC/simulation/include/ClustererTask.h @@ -0,0 +1,43 @@ +// +// ClustererTask.h +// ALICEO2 +// +// +// + +#ifndef __ALICEO2__ClustererTask__ +#define __ALICEO2__ClustererTask__ + +#include +#include "FairTask.h" // for FairTask, InitStatus +#include "Rtypes.h" // for ClustererTask::Class, ClassDef, etc +class TClonesArray; +namespace AliceO2 { namespace TPC { class Clusterer; } } // lines 19-19 + +namespace AliceO2 { + namespace TPC{ + + class BoxClusterer; + + class ClustererTask : public FairTask{ + public: + ClustererTask(); + virtual ~ClustererTask(); + + virtual InitStatus Init(); + virtual void Exec(Option_t *option); + + // Clusterer *GetClusterer() const { return fClusterer; } + + private: + BoxClusterer *fClusterer; + + TClonesArray *fDigitsArray; + TClonesArray *fClustersArray; + + ClassDef(ClustererTask, 1) + }; + } +} + +#endif diff --git a/Detectors/TPC/simulation/src/BoxCluster.cxx b/Detectors/TPC/simulation/src/BoxCluster.cxx new file mode 100644 index 0000000000000..ee5cf487cd68e --- /dev/null +++ b/Detectors/TPC/simulation/src/BoxCluster.cxx @@ -0,0 +1,55 @@ +/// \file BoxCluster.cxx +/// \brief Class to have some more info about the BoxClusterer clusters + +#include "BoxCluster.h" +#include "Cluster.h" + +ClassImp(AliceO2::TPC::BoxCluster) + +using namespace AliceO2::TPC; + + +//________________________________________________________________________ +BoxCluster::BoxCluster(): + Cluster(), + mPad(-1), + mTime(-1), + mSize(-1) +{ +} + +//________________________________________________________________________ +BoxCluster::BoxCluster(Short_t cru, Short_t row, Short_t pad, Short_t time, + Float_t q, Float_t qmax, Float_t padmean, + Float_t padsigma, Float_t timemean, + Float_t timesigma, Short_t size): + Cluster(cru, row, q, qmax, padmean, padsigma, timemean, timesigma), + mPad(pad), + mTime(time), + mSize(size) +{ +} + +//________________________________________________________________________ +BoxCluster::~BoxCluster() +{ +} + +//________________________________________________________________________ +void BoxCluster::setBoxParameters(Short_t pad, Short_t time, Short_t size) +{ + mPad = pad; + mTime = time; + mTime = time; +} + + +//________________________________________________________________________ +std::ostream &BoxCluster::Print(std::ostream &output) const +{ + output << Cluster::Print(output) + << " centered at (pad, time) = " << mPad << ", " << mTime + << " covering " << Int_t(mSize/10) << " pads and " << mSize%10 + << " time bins"; + return output; +} diff --git a/Detectors/TPC/simulation/src/BoxClusterer.cxx b/Detectors/TPC/simulation/src/BoxClusterer.cxx new file mode 100644 index 0000000000000..218ac3869c286 --- /dev/null +++ b/Detectors/TPC/simulation/src/BoxClusterer.cxx @@ -0,0 +1,418 @@ +/// \file AliTPCUpgradeBoxClusterer.cxx +/// \brief Boxclusterer for the TPC + +/// Based on AliTPCdataQA +/// +/// The BoxClusterer basically tries to find local maximums and builds up 5x5 +/// clusters around these. So if c is the local maximum (c for center). It +/// will try to make a cluster like this: +/// ---> pad direction +/// o o o o o | +/// o i i i o | +/// o i C i o V Time direction +/// o i i i o +/// o o o o o +/// +/// The outer pad-time cells are only addded if the inner cell has signal. For +/// horizonal verticallly aligned inner cells we test like this: +/// o +/// i +/// o i C i o +/// i +/// o +/// For the diagonal cells we check like this. +/// o o o o +/// o i i o +/// C +/// o i i o +/// o o o o +/// +/// The requirements for a local maxima is: +/// Charge in bin is >= 5 ADC channels. +/// Charge in bin is larger than all the 8 neighboring bins. +/// (in the case when it is similar only one of the clusters will be made, see +/// in the code) +/// At least one of the two pad neighbors has a signal. +/// (this requirent can be loosened up) +/// At least one of the two time neighbors has a signal. +/// +/// The RAW data is "expanded" for each sector and stored in a big signal +/// array. Then a simple version of the code in AliTPCclusterer is used to +/// identify the local maxima. +/// With simple we mean here that: +/// 1) there is no attempt to take into account the noise information +/// 2) there is no special handling of small clusters +/// +/// Implementation: +/// +/// The data are expanded into 3 arrays CRU by CRU +/// ~~~ +/// Float_t** mAllBins 2d array [row][bin(pad, time)] ADC signal +/// Int_t** mAllSigBins 2d array [row][signal#] bin(with signal) +/// Int_t* mAllNSigBins; 1d array [row] Nsignals +/// ~~~ +/// To make sure that one never has to check if one is inside the sector or not +/// the arrays are larger than a sector. 2 pads and time bins are added both +/// as the beginning and the end. +/// +/// When data from a new sector is encountered, the method +/// FindLocalMaxima is called on the data from the previous sector, and +/// the clusters are created. +/// + +/* + + Comments: + + o I have added several R__ASSERTs. I think these are great for development + to make sure that things are called in the right order. However, for + operation one might want to add similar checks with errors instead. + + o I do not yet find the timebin information in the digit? + + o For now the values of + mRowsMax, mPadsMax, mTimeBinsMax + are set to large numbers in the constructor to be safe. They need som ing of + parameter lookup eventually. + (Same for mMinQMax) + + */ + + +#include "BoxClusterer.h" +#include "Digit.h" +#include "ClusterContainer.h" +#include "BoxCluster.h" + +#include "FairLogger.h" +#include "TMath.h" +#include "TError.h" // for R__ASSERT() + +ClassImp(AliceO2::TPC::BoxClusterer) + +using namespace AliceO2::TPC; + +//________________________________________________________________________ +BoxClusterer::BoxClusterer(): + TObject(), + mClusterContainer(nullptr), + mRowsMax(100), + mPadsMax(200), + mTimeBinsMax(1000), + mMinQMax(5), + mRequirePositiveCharge(kTRUE), + mRequireNeighbouringPad(kTRUE), + mAllBins(nullptr), + mAllSigBins(nullptr), + mAllNSigBins(nullptr) +{ +} + +//________________________________________________________________________ +BoxClusterer::~BoxClusterer() +{ + delete mClusterContainer; + + for (Int_t iRow = 0; iRow < mRowsMax; iRow++) { + delete [] mAllBins[iRow]; + delete [] mAllSigBins[iRow]; + } + delete [] mAllBins; + delete [] mAllSigBins; + delete [] mAllNSigBins; +} + +//________________________________________________________________________ +void BoxClusterer::Init() +{ + // Test that init was not called before + R__ASSERT(!mClusterContainer); + + mClusterContainer = new ClusterContainer(); + mClusterContainer->InitArray("AliceO2::TPC::BoxCluster"); + + mAllBins = new Float_t*[mRowsMax]; + mAllSigBins = new Int_t*[mRowsMax]; + mAllNSigBins = new Int_t[mRowsMax]; + + for (Int_t iRow = 0; iRow < mRowsMax; iRow++) { + // + Int_t maxBin = (mTimeBinsMax+4)*(mPadsMax+4); + mAllBins[iRow] = new Float_t[maxBin]; + for(Int_t i = 0; i < maxBin; i++) + mAllBins[iRow][i] = 0; + mAllSigBins[iRow] = new Int_t[maxBin]; + mAllNSigBins[iRow] = 0; + } +} + +//________________________________________________________________________ +ClusterContainer* BoxClusterer::Process(TClonesArray *digits) +{ + R__ASSERT(mClusterContainer); + mClusterContainer->Reset(); + + Int_t nSignals = 0; + Int_t lastCRU = -1; + + for (TIter digititer = TIter(digits).Begin(); digititer != TIter::End(); ++digititer) + { + Digit* digit = dynamic_cast(*digititer); + + Int_t iCRU = digit->GetCRU(); + Int_t iRow = digit->GetRow(); + Int_t iPad = digit->GetPad(); + // Int_t iTime = digit->GetTime(); + Float_t charge = digit->GetCharge(); + + if(iCRU != lastCRU) { + + if(nSignals>0) { + FindLocalMaxima(lastCRU); + CleanArrays(); + } + lastCRU = iCRU; + nSignals = 0; + } else { // add signal to array + + // while we wait for the time bin + Update(iCRU, iRow, iPad, iPad, charge); + // Update(iCRU, iRow, iPad, iTimeBin, charge); + } + } + return mClusterContainer; +} + +//_____________________________________________________________________ +void BoxClusterer::FindLocalMaxima(const Int_t iCRU) +{ + /// This method is called after the data from each CRU has been + /// exapanded into an array + /// Loop over the signals and identify local maxima and fill the + /// calibration objects with the information + + R__ASSERT(mAllBins); + + Int_t nLocalMaxima = 0; + + // loop over rows + for (Int_t iRow = 0; iRow < mRowsMax; iRow++) { + + Float_t* allBins = mAllBins[iRow]; + Int_t* sigBins = mAllSigBins[iRow]; + const Int_t nSigBins = mAllNSigBins[iRow]; + + // loop over all signals + for (Int_t iSig = 0; iSig < nSigBins; iSig++) { + + Int_t bin = sigBins[iSig]; + // Array of charged centered at the current signal + Float_t *qArray = &allBins[bin]; + Float_t qMax = qArray[0]; + + // First check that the charge is bigger than the threshold + if ( qMax < mMinQMax ) + continue; + + // Require at least one neighboring time bin with signal + if ( qArray[-1] + qArray[1] <= 0 ) continue; + + // Require at least one neighboring pad with signal + const Int_t maxTimeBin = mTimeBinsMax+4; // Used to step between neighboring + if ( mRequireNeighbouringPad + && (qArray[-maxTimeBin]+qArray[maxTimeBin]<=0) ) continue; + // + // Check that this is a local maximum + // Note that the checking is done so that if 2 charges has the same + // qMax then only 1 cluster is generated + // (that is why there is BOTH > and >=) + // + if (qArray[-maxTimeBin] >= qMax) continue; + if (qArray[+maxTimeBin] > qMax) continue; + if (qArray[-1 ] >= qMax) continue; + if (qArray[+1 ] > qMax) continue; + if (qArray[-maxTimeBin-1] >= qMax) continue; + if (qArray[+maxTimeBin+1] > qMax) continue; + if (qArray[+maxTimeBin-1] >= qMax) continue; + if (qArray[-maxTimeBin+1] > qMax) continue; + + // We accept the local maximum as a cluster and calculates its + // parameters + ++nLocalMaxima; + + // + // Calculate the total charge as the sum over the region: + // + // o o o o o + // o i i i o + // o i C i o + // o i i i o + // o o o o o + // + // with qmax at the center C. + // + // The inner charge (i) we always add, but we only add the outer + // charge (o) if the neighboring inner bin (i) has a signal. + // + Short_t minP = 0, maxP = 0, minT = 0, maxT = 0; + Double_t meanP = 0; // mean pad position + Double_t meanT = 0; // mean time position + Double_t sigmaP = 0; // sigma pad position + Double_t sigmaT = 0; // sigma time position + Float_t qTot = qMax; // total charge + for(Short_t dPad = -1; dPad<=1; dPad++) { // delta pad + for(Short_t dTime = -1; dTime<=1; dTime++) { // delta time + + if( dPad==0 && dTime==0 ) // central pad + continue; + + Float_t charge = GetQ(qArray, dPad, dTime, minT, maxT, minP, maxP); + UpdateCluster(charge, dPad, dTime, qTot, + meanP, sigmaP, meanT, sigmaT); + + if( !mRequirePositiveCharge || charge>0 ) { + // see if the next neighbor is also above threshold + + if(dPad*dTime==0) { // we are above/below or to the sides + // (dPad, dTime) = (+-1, 0), or (0, +-1) + // so we only have 1 neighbor + charge = GetQ(qArray, 2*dPad, 2*dTime, minT, maxT, minP, maxP); + UpdateCluster(charge, 2*dPad, 2*dTime, qTot, + meanP, sigmaP, meanT, sigmaT); + } else { // we are in a diagonal corner so we have 3 neighbors + // (dPad, dTime) = (+-1, +-1), or (+-1, -+1) + charge = GetQ(qArray, dPad, 2*dTime, minT, maxT, minP, maxP); + UpdateCluster(charge, dPad, 2*dTime, qTot, + meanP, sigmaP, meanT, sigmaT); + charge = GetQ(qArray, 2*dPad, dTime, minT, maxT, minP, maxP); + UpdateCluster(charge, 2*dPad, dTime, qTot, + meanP, sigmaP, meanT, sigmaT); + charge = GetQ(qArray, 2*dPad, 2*dTime, minT, maxT, minP, maxP); + UpdateCluster(charge, 2*dPad, 2*dTime, qTot, + meanP, sigmaP, meanT, sigmaT); + } + } + } + } + + // calculate cluster parameters + if(qTot > 0) { + meanP /= qTot; + meanT /= qTot; + sigmaP /= qTot; + sigmaT /= qTot; + sigmaP = TMath::Sqrt(sigmaP - meanP*meanP); + sigmaT = TMath::Sqrt(sigmaT - meanT*meanT); + Short_t pad, timebin; + GetPadAndTimeBin(bin, pad, timebin); + meanP += pad; + meanT += timebin; + Short_t nPad = maxP-minP+1; + Short_t nTimeBins = maxT-minT+1; + Short_t size = 10*nPad+nTimeBins; + BoxCluster* cluster = dynamic_cast + (mClusterContainer->AddCluster(iCRU, iRow, qTot, qMax, meanP, meanT, + sigmaP, sigmaT)); + cluster->setBoxParameters(pad, timebin, size); + } + } // end loop over signals + } // end loop over rows +} + +//_____________________________________________________________________ +void BoxClusterer::CleanArrays() +{ + // here it might be faster to do a memset for very large datasets + + R__ASSERT(mAllBins); + + for (Int_t iRow = 0; iRow < mRowsMax; iRow++) { + + Float_t* allBins = mAllBins[iRow]; + Int_t* sigBins = mAllSigBins[iRow]; + const Int_t nSignals = mAllNSigBins[iRow]; + for(Int_t i = 0; i < nSignals; i++) + allBins[sigBins[i]]=0; + + mAllNSigBins[iRow]=0; + } +} + +//_____________________________________________________________________ +void BoxClusterer::GetPadAndTimeBin(Int_t bin, Short_t& iPad, Short_t& iTimeBin) +{ + /// Return pad and timebin for a given bin + // (where bin = iPad*(mTimeBinsMax+4) + iTimeBin) + iTimeBin = Short_t(bin%(mTimeBinsMax+4)); + iPad = Short_t((bin-iTimeBin)/(mTimeBinsMax+4)); + iTimeBin -= 2; + iPad -= 2; + + R__ASSERT(iPad>=0 && iPad=0 && iTimeBin=0 && iRow=0 && iPad=0 && iTimeBin 0) { + timeMin = TMath::Min(time, timeMin); timeMax = TMath::Max(time, timeMax); + padMin = TMath::Min(pad, padMin); padMax = TMath::Max(pad, padMax); + } + return charge; +} + +//________________________________________________________________________ +Bool_t BoxClusterer::UpdateCluster(Float_t charge, Int_t deltaPad, Int_t deltaTime, Float_t& qTotal, Double_t& meanPad, Double_t& sigmaPad, Double_t& meanTime, Double_t& sigmaTime) +{ + if(mRequirePositiveCharge && charge <=0) + return kFALSE; + + qTotal += charge; + meanPad += charge * deltaPad; sigmaPad += charge * deltaPad*deltaPad; + meanTime += charge * deltaTime; sigmaTime += charge* deltaTime*deltaTime; + return kTRUE; +} diff --git a/Detectors/TPC/simulation/src/Cluster.cxx b/Detectors/TPC/simulation/src/Cluster.cxx new file mode 100644 index 0000000000000..72117c6d4f775 --- /dev/null +++ b/Detectors/TPC/simulation/src/Cluster.cxx @@ -0,0 +1,69 @@ +/// \file Cluster.cxx +/// \brief Cluster structure for TPC clusters + +#include "Cluster.h" + +ClassImp(AliceO2::TPC::Cluster) + +using namespace AliceO2::TPC; + +//________________________________________________________________________ +Cluster::Cluster(): +mCRU(-1), +mRow(-1), +mQ(-1), +mQmax(-1), +mPadMean(-1), +mPadSigma(-1), +mTimeMean(-1), +mTimeSigma(-1), +FairTimeStamp() +{ +} + +//________________________________________________________________________ +Cluster::Cluster(Short_t cru, Short_t row, Float_t q, Float_t qmax, + Float_t padmean, Float_t padsigma, + Float_t timemean, Float_t timesigma): +mCRU(cru), +mRow(row), +mQ(q), +mQmax(qmax), +mPadMean(padmean), +mPadSigma(padsigma), +mTimeMean(timemean), +mTimeSigma(timesigma), +FairTimeStamp() +{ +} + +//________________________________________________________________________ +Cluster::~Cluster() +{ +} + +//________________________________________________________________________ +void Cluster::setParameters(Short_t cru, Short_t row, Float_t q, Float_t qmax, + Float_t padmean, Float_t padsigma, + Float_t timemean, Float_t timesigma) +{ + mCRU = cru; + mRow = row; + mQ = q; + mQmax = qmax; + mPadMean = padmean; + mPadSigma = padsigma; + mTimeMean = timemean; + mTimeSigma = timesigma; +} + + +//________________________________________________________________________ +std::ostream &Cluster::Print(std::ostream &output) const +{ + output << "TPC Cluster in CRU [" << mCRU << "], pad row [" + << mRow << "] with charge/maxCharge " << mQ << "/" << mQmax + << "and coordinates (" << mPadMean << ", " << mTimeMean << ")" + << "and width (" << mPadSigma << ", " << mTimeSigma << ")"; + return output; +} diff --git a/Detectors/TPC/simulation/src/ClusterCRU.cxx b/Detectors/TPC/simulation/src/ClusterCRU.cxx new file mode 100644 index 0000000000000..3e73f1564d07b --- /dev/null +++ b/Detectors/TPC/simulation/src/ClusterCRU.cxx @@ -0,0 +1,52 @@ +#include "ClusterCRU.h" +#include "ClusterRow.h" + +#include "FairLogger.h" +using namespace AliceO2::TPC; + +#include + +ClusterCRU::ClusterCRU(Int_t cruID, Int_t nrows): + mCRUID(cruID), + mNRows(nrows), + mRows(nrows) +{} + +ClusterCRU::~ClusterCRU() +{ + for (Int_t irow = 0; irow < mNRows; irow++) { + delete mRows[irow]; + } +} + +void ClusterCRU::SetCluster(Int_t row, Int_t pad, Int_t time, Float_t charge) +{ + // Check input + if(row < 0 || row >= mNrows) { + // error + return; + } + + // if row container does not exist, create it + if(mRows[row] == nullptr){ + mRows[row] = new ClusterRow(row); + } + + mRows[row]->SetCluster(pad, time, charge); +} + +void ClusterCRU::Reset() +{ + for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) { + if((*iterRow) == nullptr) continue; + (*iterRow)->Reset(); + } +} + +void ClusterCRU::FillOutputContainer(TClonesArray *output, Int_t cruID) +{ + for(std::vector::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) { + if((*iterRow) == nullptr) continue; + (*iterRow)->FillOutputContainer(output, cruID, (*iterRow)->GetRow()); + } +} diff --git a/Detectors/TPC/simulation/src/ClusterContainer.cxx b/Detectors/TPC/simulation/src/ClusterContainer.cxx new file mode 100644 index 0000000000000..b5f91dd967071 --- /dev/null +++ b/Detectors/TPC/simulation/src/ClusterContainer.cxx @@ -0,0 +1,73 @@ +#include "ClusterContainer.h" +#include "Cluster.h" + +#include "FairLogger.h" + +#include "TClonesArray.h" +#include "TError.h" // for R__ASSERT + +using namespace AliceO2::TPC; + +//________________________________________________________________________ +ClusterContainer::ClusterContainer(): + mNclusters(0), + mClusterArray(nullptr) +{} + +//________________________________________________________________________ +ClusterContainer::~ClusterContainer() +{ + delete mClusterArray; +} + +//________________________________________________________________________ +void ClusterContainer::InitArray(const Char_t* clusterType) +{ + R__ASSERT(!mClusterArray); + mClusterArray = new TClonesArray(clusterType); + + // Brute force test that clusterType is derived from AliceO2::TPC::Cluster + Cluster *cluster = + dynamic_cast(mClusterArray->ConstructedAt(mNclusters)); + R__ASSERT(cluster); + + // reset array after test + Reset(); +} + +//________________________________________________________________________ +void ClusterContainer::Reset() +{ + R__ASSERT(mClusterArray); + mClusterArray->Clear(); + mNclusters = 0; +} + +//________________________________________________________________________ +Cluster* ClusterContainer::AddCluster(Int_t cru, Int_t row, + Float_t qtot, Float_t qmax, + Float_t meanpad, Float_t meantime, + Float_t sigmapad, Float_t sigmatime) +{ + R__ASSERT(mClusterArray); + Cluster *cluster = + dynamic_cast(mClusterArray->ConstructedAt(mNclusters)); + mNclusters++; + cluster->setParameters(cru, row, qtot, qmax, meanpad, meantime, + sigmapad, sigmatime); + return cluster; +} + + +//________________________________________________________________________ +void ClusterContainer::FillOutputContainer(TClonesArray *output) +{ + for(Int_t n = 0; n < mNclusters; n++) { + + Cluster *clusterOut = + dynamic_cast(mClusterArray->ConstructedAt(n)); + +Cluster* cluster = dynamic_cast(mClusterArray->At(mNclusters)); + clusterOut->Copy(*cluster); + } +} diff --git a/Detectors/TPC/simulation/src/ClustererTask.cxx b/Detectors/TPC/simulation/src/ClustererTask.cxx new file mode 100644 index 0000000000000..f4fd7bb10f80a --- /dev/null +++ b/Detectors/TPC/simulation/src/ClustererTask.cxx @@ -0,0 +1,74 @@ +// +// ClustererTask.cxx +// ALICEO2 +// +// Based on DigitizerTask +// +// + +#include "ClustererTask.h" +#include "ClusterContainer.h" // for ClusterContainer +#include "BoxClusterer.h" // for Clusterer + +#include "TObject.h" // for TObject +#include "TClonesArray.h" // for TClonesArray +#include "FairLogger.h" // for LOG +#include "FairRootManager.h" // for FairRootManager + +ClassImp(AliceO2::TPC::ClustererTask) + +using namespace AliceO2::TPC; + +//_____________________________________________________________________ +ClustererTask::ClustererTask(): + FairTask("TPCClustererTask"), + fClusterer(nullptr), + fDigitsArray(nullptr), + fClustersArray(nullptr) +{ + fClusterer = new BoxClusterer(); +} + +//_____________________________________________________________________ +ClustererTask::~ClustererTask() +{ + delete fClusterer; + if (fClustersArray) + delete fClustersArray; +} + +//_____________________________________________________________________ +/// \brief Init function +/// Inititializes the clusterer and connects input and output container +InitStatus ClustererTask::Init() +{ + FairRootManager *mgr = FairRootManager::Instance(); + if( !mgr ) { + + LOG(ERROR) << "Could not instantiate FairRootManager. Exiting ..." << FairLogger::endl; + return kERROR; + } + + fDigitsArray = dynamic_cast(mgr->GetObject("TPCDigit")); + if( !fDigitsArray ) { + LOG(ERROR) << "TPC points not registered in the FairRootManager. Exiting ..." << FairLogger::endl; + return kERROR; + } + + // Register output container + fClustersArray = new TClonesArray("AliceO2::TPC::BoxCluster"); + mgr->Register("TPCCluster", "TPC", fClustersArray, kTRUE); + + fClusterer->Init(); + return kSUCCESS; +} + +//_____________________________________________________________________ +void ClustererTask::Exec(Option_t *option) +{ + fClustersArray->Clear(); + LOG(DEBUG) << "Running digitization on new event" << FairLogger::endl; + + ClusterContainer* clusters = fClusterer->Process(fDigitsArray); + clusters->FillOutputContainer(fClustersArray); +} diff --git a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h index e61abe3215f27..abedb5eb4a40d 100644 --- a/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h +++ b/Detectors/TPC/simulation/src/tpcSimulationLinkDef.h @@ -16,4 +16,9 @@ #pragma link C++ class AliceO2::TPC::DigitTime+; #pragma link C++ class AliceO2::TPC::DigitADC+; #pragma link C++ class AliceO2::TPC::Digit+; +#pragma link C++ class AliceO2::TPC::Cluster+; +#pragma link C++ class AliceO2::TPC::BoxCluster+; +#pragma link C++ class AliceO2::TPC::ClusterContainer+; +#pragma link C++ class AliceO2::TPC::BoxClusterer+; +#pragma link C++ class AliceO2::TPC::ClustererTask+; #endif diff --git a/macro/CMakeLists.txt b/macro/CMakeLists.txt index 1325aa06fe316..3cd116e8ad88e 100644 --- a/macro/CMakeLists.txt +++ b/macro/CMakeLists.txt @@ -26,6 +26,8 @@ GENERATE_ROOT_TEST_SCRIPT(${CMAKE_SOURCE_DIR}/macro/run_digi.C) Set_Tests_Properties(run_digi_TGeant4 PROPERTIES TIMEOUT "30") Set_Tests_Properties(run_digi_TGeant4 PROPERTIES PASS_REGULAR_EXPRESSION "Macro finished succesfully") +GENERATE_ROOT_TEST_SCRIPT(${CMAKE_SOURCE_DIR}/macro/run_clusterer.C) + GENERATE_ROOT_TEST_SCRIPT(${CMAKE_SOURCE_DIR}/macro/load_all_libs.C) Add_Test(load_all_libs From 62f8c684d6286cadc8393236f1de06812dc83f3c Mon Sep 17 00:00:00 2001 From: wiechula Date: Wed, 13 Jul 2016 11:38:01 +0200 Subject: [PATCH 120/135] Minor fixes and hacks o Digit: The base class should be initialized first in the member initialisation list Add getter for time bin from base class o DigitTime: Fix memory leak when adding digits to the output container: Use placement new with copy constructor o Digitizer: Temporarily add digits in time and pad direction to test the cluster finder --- Detectors/TPC/simulation/include/Digit.h | 3 ++- Detectors/TPC/simulation/src/Digit.cxx | 8 ++++---- Detectors/TPC/simulation/src/DigitTime.cxx | 7 ++++--- Detectors/TPC/simulation/src/Digitizer.cxx | 11 ++++++++++- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Detectors/TPC/simulation/include/Digit.h b/Detectors/TPC/simulation/include/Digit.h index fe3d061f150c0..3624ec1249af4 100644 --- a/Detectors/TPC/simulation/include/Digit.h +++ b/Detectors/TPC/simulation/include/Digit.h @@ -39,7 +39,8 @@ namespace AliceO2{ Int_t getCRU() const { return mCRU; } Int_t getRow() const { return mRow; } Int_t getPad() const { return mPad; } -// Double_t GetTime() const { return mTimeStamp; } + // Double_t GetTime() const { return mTimeStamp; } + Int_t getTimeStamp() const { return Int_t(FairTimeStamp::GetTimeStamp()); } /// Set the charge of the digit /// @param charge The charge of the the digit diff --git a/Detectors/TPC/simulation/src/Digit.cxx b/Detectors/TPC/simulation/src/Digit.cxx index 49eaa986afaaa..c4ff9c5c486dc 100644 --- a/Detectors/TPC/simulation/src/Digit.cxx +++ b/Detectors/TPC/simulation/src/Digit.cxx @@ -9,20 +9,20 @@ using namespace AliceO2::TPC; Digit::Digit(): +FairTimeStamp(), mCRU(-1), mCharge(0.), mRow(), -mPad(), -FairTimeStamp() +mPad() { } Digit::Digit(Int_t cru, Double_t charge, Int_t row, Int_t pad, Double_t time): +FairTimeStamp(time), mCRU(cru), mCharge(charge), mRow(row), -mPad(pad), -FairTimeStamp(time) +mPad(pad) { } diff --git a/Detectors/TPC/simulation/src/DigitTime.cxx b/Detectors/TPC/simulation/src/DigitTime.cxx index 778beb2f02001..5e2eff2256ab2 100644 --- a/Detectors/TPC/simulation/src/DigitTime.cxx +++ b/Detectors/TPC/simulation/src/DigitTime.cxx @@ -35,8 +35,9 @@ void DigitTime::fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t row //TODO have to understand what is going wrong here - tree is filled with many zeros otherwise... if(mCharge > 0){ if(mCharge > 1024) mCharge = 1024; - Digit *digit = new Digit(cruID, mCharge, rowID, padID, timeBin); +// Digit *digit = new Digit(cruID, mCharge, rowID, padID, timeBin); TClonesArray &clref = *output; - new(clref[clref.GetEntriesFast()]) Digit(*(digit)); +// new(clref[clref.GetEntriesFast()]) Digit(*(digit)); + new(clref[clref.GetEntriesFast()]) Digit(cruID, mCharge, rowID, padID, timeBin); } -} \ No newline at end of file +} diff --git a/Detectors/TPC/simulation/src/Digitizer.cxx b/Detectors/TPC/simulation/src/Digitizer.cxx index 51b5a4da89d9b..0aa651d857d0d 100644 --- a/Detectors/TPC/simulation/src/Digitizer.cxx +++ b/Detectors/TPC/simulation/src/Digitizer.cxx @@ -82,6 +82,15 @@ DigitContainer *Digitizer::Process(TClonesArray *points){ Int_t ADCvalue = getADCvalue(nEleAmp); mDigitContainer->addDigit(digiPos.getCRU().number(), digiPos.getPadPos().getRow(), digiPos.getPadPos().getPad(), timeBin, ADCvalue); + // ===| just for testing the clusterer add time bins/ pads as pseudo response |=== + // should be removed when more proper response is in place + const Int_t pad=digiPos.getPadPos().getPad(); + const PadRegionInfo &pinf=mapper.getPadRegionInfo(digiPos.getCRU().region()); + const Int_t npads=pinf.getPadsInRowRegion(digiPos.getPadPos().getRow()); + + mDigitContainer->addDigit(digiPos.getCRU().number(), digiPos.getPadPos().getRow(), pad, timeBin+1, ADCvalue/3); + if (pad>0) mDigitContainer->addDigit(digiPos.getCRU().number(), digiPos.getPadPos().getRow(), pad-1, timeBin, ADCvalue/3); + if (padaddDigit(digiPos.getCRU().number(), digiPos.getPadPos().getRow(), pad+1, timeBin+1, ADCvalue/3); } return mDigitContainer; } @@ -130,4 +139,4 @@ Double_t Digitizer::Gamma4(Double_t x, Double_t p0, Double_t p1){ Double_t g1 = TMath::Exp(-4.*x/p1); Double_t g2 = TMath::Power(x/p1,4); return p0*g1*g2; -} \ No newline at end of file +} From 0f23dc10d04300f8582817cbd6cb3e7ee6c70a8b Mon Sep 17 00:00:00 2001 From: wiechula Date: Wed, 13 Jul 2016 11:42:18 +0200 Subject: [PATCH 121/135] Minor fixes o BoxClusterer: - Add processing of last CRU - Remove unnecessary indentations - Fix order in setParameters of cluster o ClusterContainer: - Fix filling of output container, using placement new o ClustererTask: - output array should use type Cluster (not BoxCluster) OR fill output container must be adapted --- Detectors/TPC/simulation/src/BoxClusterer.cxx | 41 +++++++++++-------- .../TPC/simulation/src/ClusterContainer.cxx | 18 ++++---- .../TPC/simulation/src/ClustererTask.cxx | 5 ++- 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/Detectors/TPC/simulation/src/BoxClusterer.cxx b/Detectors/TPC/simulation/src/BoxClusterer.cxx index 218ac3869c286..268a14944b881 100644 --- a/Detectors/TPC/simulation/src/BoxClusterer.cxx +++ b/Detectors/TPC/simulation/src/BoxClusterer.cxx @@ -154,17 +154,18 @@ ClusterContainer* BoxClusterer::Process(TClonesArray *digits) Int_t nSignals = 0; Int_t lastCRU = -1; + Int_t iCRU = -1; for (TIter digititer = TIter(digits).Begin(); digititer != TIter::End(); ++digititer) { Digit* digit = dynamic_cast(*digititer); - Int_t iCRU = digit->GetCRU(); - Int_t iRow = digit->GetRow(); - Int_t iPad = digit->GetPad(); - // Int_t iTime = digit->GetTime(); - Float_t charge = digit->GetCharge(); - + iCRU = digit->getCRU(); + const Int_t iRow = digit->getRow(); + const Int_t iPad = digit->getPad(); + const Int_t iTimeBin = digit->getTimeStamp(); + const Float_t charge = digit->getCharge(); +// printf("digi: %d, %d, %d, %d, %.2f\n", iCRU, iRow, iPad, iTimeBin, charge); if(iCRU != lastCRU) { if(nSignals>0) { @@ -176,10 +177,18 @@ ClusterContainer* BoxClusterer::Process(TClonesArray *digits) } else { // add signal to array // while we wait for the time bin - Update(iCRU, iRow, iPad, iPad, charge); - // Update(iCRU, iRow, iPad, iTimeBin, charge); +// Update(iCRU, iRow, iPad, iPad, charge); + Update(iCRU, iRow, iPad, iTimeBin, charge); + ++nSignals; } } + + // processing of last CRU + if(nSignals>0) { + FindLocalMaxima(iCRU); + CleanArrays(); + } + return mClusterContainer; } @@ -194,29 +203,27 @@ void BoxClusterer::FindLocalMaxima(const Int_t iCRU) R__ASSERT(mAllBins); Int_t nLocalMaxima = 0; - // loop over rows for (Int_t iRow = 0; iRow < mRowsMax; iRow++) { - + Float_t* allBins = mAllBins[iRow]; Int_t* sigBins = mAllSigBins[iRow]; const Int_t nSigBins = mAllNSigBins[iRow]; - + // loop over all signals for (Int_t iSig = 0; iSig < nSigBins; iSig++) { - + Int_t bin = sigBins[iSig]; // Array of charged centered at the current signal Float_t *qArray = &allBins[bin]; Float_t qMax = qArray[0]; - + // First check that the charge is bigger than the threshold if ( qMax < mMinQMax ) continue; - + // Require at least one neighboring time bin with signal if ( qArray[-1] + qArray[1] <= 0 ) continue; - // Require at least one neighboring pad with signal const Int_t maxTimeBin = mTimeBinsMax+4; // Used to step between neighboring if ( mRequireNeighbouringPad @@ -294,7 +301,7 @@ void BoxClusterer::FindLocalMaxima(const Int_t iCRU) } } } - + // calculate cluster parameters if(qTot > 0) { meanP /= qTot; @@ -311,7 +318,7 @@ void BoxClusterer::FindLocalMaxima(const Int_t iCRU) Short_t nTimeBins = maxT-minT+1; Short_t size = 10*nPad+nTimeBins; BoxCluster* cluster = dynamic_cast - (mClusterContainer->AddCluster(iCRU, iRow, qTot, qMax, meanP, meanT, + (mClusterContainer->AddCluster(iCRU, iRow, qTot, qMax, meanP, meanT, sigmaP, sigmaT)); cluster->setBoxParameters(pad, timebin, size); } diff --git a/Detectors/TPC/simulation/src/ClusterContainer.cxx b/Detectors/TPC/simulation/src/ClusterContainer.cxx index b5f91dd967071..8adf66abca3d2 100644 --- a/Detectors/TPC/simulation/src/ClusterContainer.cxx +++ b/Detectors/TPC/simulation/src/ClusterContainer.cxx @@ -50,11 +50,13 @@ Cluster* ClusterContainer::AddCluster(Int_t cru, Int_t row, Float_t sigmapad, Float_t sigmatime) { R__ASSERT(mClusterArray); - Cluster *cluster = + Cluster *cluster = dynamic_cast(mClusterArray->ConstructedAt(mNclusters)); mNclusters++; - cluster->setParameters(cru, row, qtot, qmax, meanpad, meantime, - sigmapad, sigmatime); + // ATTENTION: the order of parameters in setParameters is different than in AddCluster! + cluster->setParameters(cru, row, qtot, qmax, + meanpad, sigmapad, + meantime, sigmatime); return cluster; } @@ -62,12 +64,10 @@ Cluster* ClusterContainer::AddCluster(Int_t cru, Int_t row, //________________________________________________________________________ void ClusterContainer::FillOutputContainer(TClonesArray *output) { + output->Expand(mNclusters); + TClonesArray &outputRef = *output; for(Int_t n = 0; n < mNclusters; n++) { - - Cluster *clusterOut = - dynamic_cast(mClusterArray->ConstructedAt(n)); - -Cluster* cluster = dynamic_cast(mClusterArray->At(mNclusters)); - clusterOut->Copy(*cluster); + Cluster* cluster = dynamic_cast(mClusterArray->At(n)); + new (outputRef[n]) Cluster(*cluster); } } diff --git a/Detectors/TPC/simulation/src/ClustererTask.cxx b/Detectors/TPC/simulation/src/ClustererTask.cxx index f4fd7bb10f80a..a04073693c0ea 100644 --- a/Detectors/TPC/simulation/src/ClustererTask.cxx +++ b/Detectors/TPC/simulation/src/ClustererTask.cxx @@ -56,8 +56,9 @@ InitStatus ClustererTask::Init() } // Register output container - fClustersArray = new TClonesArray("AliceO2::TPC::BoxCluster"); - mgr->Register("TPCCluster", "TPC", fClustersArray, kTRUE); +// fClustersArray = new TClonesArray("AliceO2::TPC::BoxCluster"); + fClustersArray = new TClonesArray("AliceO2::TPC::Cluster"); + mgr->Register("TPCCluster", "TPC", fClustersArray, kTRUE); fClusterer->Init(); return kSUCCESS; From a6a04938005c30a4ecc9a72831270607f6d9b186 Mon Sep 17 00:00:00 2001 From: wiechula Date: Wed, 13 Jul 2016 11:48:22 +0200 Subject: [PATCH 122/135] remove wrongly added file --- Common/Header/AliceO2Config.h | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 Common/Header/AliceO2Config.h diff --git a/Common/Header/AliceO2Config.h b/Common/Header/AliceO2Config.h deleted file mode 100644 index c7ef016801316..0000000000000 --- a/Common/Header/AliceO2Config.h +++ /dev/null @@ -1,2 +0,0 @@ -#define O2PROTO1_MAGF_DIR "/home/amathis/O2Dir/AliceO2/src/Common/Resources/maps/mfchebKGI_sym.root" -#define O2PROTO1_MAGF_CREATEFIELDMAP_DIR "/home/amathis/O2Dir/AliceO2/src/Common/Resources/maps/mfchebKGI_sym.root" From ad31fb76db802e68664a320244f25d1076d20fb2 Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Tue, 22 Mar 2016 11:43:50 +0100 Subject: [PATCH 123/135] Update prototype devices - Use the new Multipart API for the prototype devices. - Update the FLP/EPN examples to use the new configuration system. - Update the DDS calls with the API (dds::intercom_api instead of dds::key_value). - Remove obsolete Merger device. From 591d3baa39694c4ae33625f8dd364fe8724bef87 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Wed, 13 Jul 2016 13:52:54 +0200 Subject: [PATCH 124/135] small corrections --- Detectors/TPC/simulation/src/BoxCluster.cxx | 4 ++-- Detectors/TPC/simulation/src/Detector.cxx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Detectors/TPC/simulation/src/BoxCluster.cxx b/Detectors/TPC/simulation/src/BoxCluster.cxx index ee5cf487cd68e..dc73336383394 100644 --- a/Detectors/TPC/simulation/src/BoxCluster.cxx +++ b/Detectors/TPC/simulation/src/BoxCluster.cxx @@ -47,9 +47,9 @@ void BoxCluster::setBoxParameters(Short_t pad, Short_t time, Short_t size) //________________________________________________________________________ std::ostream &BoxCluster::Print(std::ostream &output) const { - output << Cluster::Print(output) + output << &Cluster::Print(output) << " centered at (pad, time) = " << mPad << ", " << mTime - << " covering " << Int_t(mSize/10) << " pads and " << mSize%10 + << " covering " << Int_t(mSize/10) << " pads and " << mSize%10 << " time bins"; return output; } diff --git a/Detectors/TPC/simulation/src/Detector.cxx b/Detectors/TPC/simulation/src/Detector.cxx index fd03eb84094c5..2af859750a68b 100644 --- a/Detectors/TPC/simulation/src/Detector.cxx +++ b/Detectors/TPC/simulation/src/Detector.cxx @@ -48,7 +48,7 @@ using std::cout; using std::endl; using std::ios_base; - +using std::ifstream; using namespace AliceO2::TPC; Detector::Detector() From 58d1ec0957128b74a9485ae025d1b2638745e7b8 Mon Sep 17 00:00:00 2001 From: hristov Date: Mon, 18 Jul 2016 10:24:20 +0200 Subject: [PATCH 125/135] Forward declaration of TClonesArray and additional include of TClonesArray.h --- Detectors/TPC/simulation/include/BoxClusterer.h | 2 ++ Detectors/TPC/simulation/src/BoxClusterer.cxx | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Detectors/TPC/simulation/include/BoxClusterer.h b/Detectors/TPC/simulation/include/BoxClusterer.h index c0a1c02e4df2f..3163990648231 100644 --- a/Detectors/TPC/simulation/include/BoxClusterer.h +++ b/Detectors/TPC/simulation/include/BoxClusterer.h @@ -6,6 +6,8 @@ #include "Rtypes.h" #include "TObject.h" +class TClonesArray; + namespace AliceO2{ namespace TPC { diff --git a/Detectors/TPC/simulation/src/BoxClusterer.cxx b/Detectors/TPC/simulation/src/BoxClusterer.cxx index 268a14944b881..dd7f1cc09b2e0 100644 --- a/Detectors/TPC/simulation/src/BoxClusterer.cxx +++ b/Detectors/TPC/simulation/src/BoxClusterer.cxx @@ -86,7 +86,8 @@ #include "FairLogger.h" #include "TMath.h" -#include "TError.h" // for R__ASSERT() +#include "TError.h" // for R__ASSERT() +#include "TClonesArray.h" ClassImp(AliceO2::TPC::BoxClusterer) From 2b3a0c4071d41875f5573afa498900f3bb7d7d83 Mon Sep 17 00:00:00 2001 From: Bogdan Vulpescu Date: Wed, 13 Jul 2016 19:23:26 +0200 Subject: [PATCH 126/135] Readme for MFT base (just testing) --- Detectors/ITSMFT/MFT/base/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Detectors/ITSMFT/MFT/base/README.md diff --git a/Detectors/ITSMFT/MFT/base/README.md b/Detectors/ITSMFT/MFT/base/README.md new file mode 100644 index 0000000000000..ec5c9be244ccf --- /dev/null +++ b/Detectors/ITSMFT/MFT/base/README.md @@ -0,0 +1 @@ +# Base classes From fc642a495068a35946ffc18a3c07e65b31cf7962 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Wed, 20 Jul 2016 09:05:12 +0200 Subject: [PATCH 127/135] Test PRs from Jens & Bogdan without sign-off --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 2cbb459ddda7f..ac021c0a3ffa6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,6 +7,8 @@ node { "MohammadAlTurany", "matthiasrichter", "Barthelemy", + "wiechula", + "bovulpes", "rbx"] echo "Changeset from " + env.CHANGE_AUTHOR if (power_users.contains(env.CHANGE_AUTHOR)) { From 6b095074a83e2fe39648ff7322c32e5fcc95c116 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Mon, 25 Jul 2016 16:19:35 +0200 Subject: [PATCH 128/135] Correct the duplicate in preproccessor define for TPC and ITS --- .../ITS/simulation/include/DigitizerTask.h | 16 ++++++++-------- Detectors/TPC/simulation/include/DigitizerTask.h | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h b/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h index e4098dd101a53..572abbcabfb49 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h +++ b/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h @@ -6,8 +6,8 @@ // // -#ifndef __ALICEO2__DigitizerTask__ -#define __ALICEO2__DigitizerTask__ +#ifndef __ALICEO2__ITS__DigitizerTask__ +#define __ALICEO2__ITS_DigitizerTask__ #include #include "FairTask.h" // for FairTask, InitStatus @@ -17,25 +17,25 @@ namespace AliceO2 { namespace ITS { class Digitizer; } } // lines 19-19 namespace AliceO2 { namespace ITS{ - + class Digitizer; - + class DigitizerTask : public FairTask{ public: DigitizerTask(); virtual ~DigitizerTask(); - + virtual InitStatus Init(); virtual void Exec(Option_t *option); - + Digitizer *GetDigiztizer() const { return fDigitizer; } private: Digitizer *fDigitizer; - + TClonesArray *fPointsArray; TClonesArray *fDigitsArray; - + ClassDef(DigitizerTask, 1) }; } diff --git a/Detectors/TPC/simulation/include/DigitizerTask.h b/Detectors/TPC/simulation/include/DigitizerTask.h index 4144bb2464cad..2f3a680ff59d7 100644 --- a/Detectors/TPC/simulation/include/DigitizerTask.h +++ b/Detectors/TPC/simulation/include/DigitizerTask.h @@ -1,7 +1,7 @@ /// \file DigitizerTask.h /// \brief Task for ALICE TPC digitization -#ifndef __ALICEO2__DigitizerTask__ -#define __ALICEO2__DigitizerTask__ +#ifndef __ALICEO2__TPC__DigitizerTask__ +#define __ALICEO2__TPC__DigitizerTask__ #include #include "FairTask.h" @@ -11,23 +11,23 @@ namespace AliceO2 { namespace TPC { class Digitizer; } } namespace AliceO2 { namespace TPC{ - + class Digitizer; - + class DigitizerTask : public FairTask{ public: DigitizerTask(); virtual ~DigitizerTask(); - + virtual InitStatus Init(); virtual void Exec(Option_t *option); - + private: Digitizer *mDigitizer; - + TClonesArray *mPointsArray; TClonesArray *mDigitsArray; - + ClassDef(DigitizerTask, 1) }; } From e44d4b616a4852226fa24bfd2fa2758327031ce9 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 26 Jul 2016 08:52:34 +0200 Subject: [PATCH 129/135] correct typo --- Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h b/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h index 572abbcabfb49..f0bd3de99446c 100644 --- a/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h +++ b/Detectors/ITSMFT/ITS/simulation/include/DigitizerTask.h @@ -7,7 +7,7 @@ // #ifndef __ALICEO2__ITS__DigitizerTask__ -#define __ALICEO2__ITS_DigitizerTask__ +#define __ALICEO2__ITS__DigitizerTask__ #include #include "FairTask.h" // for FairTask, InitStatus From 4cb34633f26a190796b42ccb47841cbf52bcd342 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Fri, 5 Aug 2016 12:08:07 +0200 Subject: [PATCH 130/135] Add missing dependencies --- CCDB/CMakeLists.txt | 9 ++++++++- Examples/flp2epn-distributed/CMakeLists.txt | 20 +++++++++++++++----- Examples/flp2epn/CMakeLists.txt | 7 ++++++- Utilities/QA/CMakeLists.txt | 12 +++++++++++- Utilities/aliceHLTwrapper/CMakeLists.txt | 9 +++++++-- o2cdb/CMakeLists.txt | 4 +++- 6 files changed, 50 insertions(+), 11 deletions(-) diff --git a/CCDB/CMakeLists.txt b/CCDB/CMakeLists.txt index db0be2dc11d41..c85ca19e5868d 100644 --- a/CCDB/CMakeLists.txt +++ b/CCDB/CMakeLists.txt @@ -60,7 +60,14 @@ Set(NO_DICT_SRCS ) set(DEPENDENCIES - Base ParBase FairMQ ParMQ ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} fairmq_logger pthread Core Tree XMLParser Hist + ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_LOG_SETUP_LIBRARY} + ${Boost_LOG_LIBRARY} + Base + ParBase + FairMQ ParMQ + fairmq_logger pthread Core Tree XMLParser Hist ) set(LIBRARY_NAME CCDB) diff --git a/Examples/flp2epn-distributed/CMakeLists.txt b/Examples/flp2epn-distributed/CMakeLists.txt index f250f5979573d..7d8948df81eaa 100644 --- a/Examples/flp2epn-distributed/CMakeLists.txt +++ b/Examples/flp2epn-distributed/CMakeLists.txt @@ -38,6 +38,7 @@ if(DDS_FOUND) ) endif() +message("FOO ${LINK_DIRECTORIES}") link_directories(${LINK_DIRECTORIES}) set(SRCS @@ -51,27 +52,36 @@ if(FAIRMQ_DEPENDENCIES) ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} ${FAIRMQ_DEPENDENCIES} - ${Boost_RANDOM_LIBRARY} ${Boost_CHRONO_LIBRARY} + ${Boost_DATE_TIME_LIBRARY} + ${Boost_LOG_LIBRARY} + ${Boost_LOG_SETUP_LIBRARY} + ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_RANDOM_LIBRARY} ${Boost_REGEX_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} FairMQ ) else(FAIRMQ_DEPENDENCIES) set(DEPENDENCIES ${DEPENDENCIES} ${CMAKE_THREAD_LIBS_INIT} + ${Boost_CHRONO_LIBRARY} ${Boost_DATE_TIME_LIBRARY} - ${Boost_THREAD_LIBRARY} - ${Boost_THREAD_LIBRARY} - ${Boost_SYSTEM_LIBRARY} + ${Boost_LOG_LIBRARY} + ${Boost_LOG_SETUP_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} - ${Boost_CHRONO_LIBRARY} ${Boost_RANDOM_LIBRARY} ${Boost_REGEX_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} FairMQ ) endif(FAIRMQ_DEPENDENCIES) +message("FOO Dependencies:${FAIRMQ_DEPENDENCIES}") + if(DDS_FOUND) set(DEPENDENCIES ${DEPENDENCIES} diff --git a/Examples/flp2epn/CMakeLists.txt b/Examples/flp2epn/CMakeLists.txt index 8ef05ae223279..77b21809d9994 100644 --- a/Examples/flp2epn/CMakeLists.txt +++ b/Examples/flp2epn/CMakeLists.txt @@ -37,6 +37,10 @@ if(FAIRMQ_DEPENDENCIES) FairMQ ${Boost_RANDOM_LIBRARY} ${Boost_CHRONO_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_LOG_LIBRARY} + ${Boost_LOG_SETUP_LIBRARY} + ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_REGEX_LIBRARY} ) else(FAIRMQ_DEPENDENCIES) @@ -45,8 +49,9 @@ else(FAIRMQ_DEPENDENCIES) ${CMAKE_THREAD_LIBS_INIT} ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} - ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} + ${Boost_LOG_LIBRARY} + ${Boost_LOG_SETUP_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_CHRONO_LIBRARY} FairMQ diff --git a/Utilities/QA/CMakeLists.txt b/Utilities/QA/CMakeLists.txt index 7393ea7253477..87db96d0f1481 100755 --- a/Utilities/QA/CMakeLists.txt +++ b/Utilities/QA/CMakeLists.txt @@ -68,7 +68,17 @@ ForEach(_file RANGE 0 ${_length}) list(GET Exe_Source ${_file} _src) set(EXE_NAME ${_name}) set(SRCS ${_src}) - set(DEPENDENCIES dl Core Base Hist o2qaLibrary FairMQ pthread fairmq_logger ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} ) + set(DEPENDENCIES dl + Core + Base + Hist + o2qaLibrary + FairMQ + pthread + fairmq_logger + ${Boost_SYSTEM_LIBRARY} + ${Boost_LOG_LIBRARY} + ${Boost_LOG_SETUP_LIBRARY}) GENERATE_EXECUTABLE() EndForEach(_file RANGE 0 ${_length}) diff --git a/Utilities/aliceHLTwrapper/CMakeLists.txt b/Utilities/aliceHLTwrapper/CMakeLists.txt index b1f2bfd58c6e3..54d6f30d46c76 100644 --- a/Utilities/aliceHLTwrapper/CMakeLists.txt +++ b/Utilities/aliceHLTwrapper/CMakeLists.txt @@ -64,8 +64,13 @@ if(FAIRMQ_DEPENDENCIES) ${CMAKE_THREAD_LIBS_INIT} ${FAIRMQ_DEPENDENCIES} ${Boost_CHRONO_LIBRARY} + ${Boost_DATE_TIME_LIBRARY} + ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_RANDOM_LIBRARY} ${Boost_REGEX_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_LOG_LIBRARY} + ${Boost_THREAD_LIBRARY} FairMQ ) else(FAIRMQ_DEPENDENCIES) @@ -74,9 +79,9 @@ else(FAIRMQ_DEPENDENCIES) ${CMAKE_THREAD_LIBS_INIT} ${Boost_CHRONO_LIBRARY} ${Boost_DATE_TIME_LIBRARY} - ${Boost_THREAD_LIBRARY} - ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} FairMQ ) endif(FAIRMQ_DEPENDENCIES) diff --git a/o2cdb/CMakeLists.txt b/o2cdb/CMakeLists.txt index c24e50c23deb9..1eead2dd7d6e0 100644 --- a/o2cdb/CMakeLists.txt +++ b/o2cdb/CMakeLists.txt @@ -48,7 +48,9 @@ Set(NO_DICT_SRCS ) set(DEPENDENCIES - Base ParBase FairMQ ParMQ ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} fairmq_logger pthread Core Tree XMLParser Hist FairTools + Base ParBase FairMQ ParMQ ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} ${Boost_LOG_SETUP_LIBRARY} fairmq_logger pthread Core + Tree XMLParser Hist FairTools ) set(LIBRARY_NAME AliceO2Cdb) From 93bfa3e3148d4beab9486ffd5ebf5827ffa51d77 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse Date: Fri, 5 Aug 2016 12:50:46 +0200 Subject: [PATCH 131/135] Document how to install via aliBuild --- README.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b58535615f4ff..ea8a8f20ea029 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,24 @@ AliceO2 ======= -Alice O2 project software. Simulation and reconstruction software for the ALICE experiment at CERN based on ALFA and the FairRoot software. +Alice O2 project software. Simulation and reconstruction software for +the ALICE experiment at CERN based on ALFA and the FairRoot software. -Before compiling and installing AliceO2, the ALFA software must be installed by choosing either the full or the minimum installation. +Before compiling and installing AliceO2, the ALFA software must be +installed by choosing either the full or the minimum installation. + +### Installation via aliBuild + +In order to install with aliBuild you can follow the tutorial at: + + http://alisw.github.io/alibuild/o2-tutorial.html ### Installation of ALFA (FairSoft) -Please be sure that your system has all the required libraries (as listed on [FairSoft/DEPENDENCIES](https://github.com/FairRootGroup/FairSoft/blob/master/DEPENDENCIES)). + +Please be sure that your system has all +the required libraries (as listed on +[FairSoft/DEPENDENCIES](https://github.com/FairRootGroup/FairSoft/blob/m +aster/DEPENDENCIES)). #### Full installation: The full installation will install [FairSoft](https://github.com/FairRootGroup/FairSoft/tree/dev), [DDS](https://github.com/FairRootGroup/DDS), [FairRoot](https://github.com/FairRootGroup/FairRoot/tree/dev) and [AliROOT]() From 93f45f9f3285ac1aef0370b1da135e4bf22962b7 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Wed, 22 Jun 2016 09:50:25 +0200 Subject: [PATCH 132/135] Added simple check for availability of FairMQ The FairMQ module of FairRoot might be disabled in the built of FairRoot due to missing dependencies, e.g ZeroMQ and boost. Those dependencies also have to be available in the required (minimal) version. --- CMakeLists.txt | 1 + cmake/modules/FindFairMQ.cmake | 36 ++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 cmake/modules/FindFairMQ.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index b6568c73af709..9a3ca44fdd46d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,7 @@ CHECK_EXTERNAL_PACKAGE_INSTALL_DIR() # mandatory find_package(ROOT 5.32.00 REQUIRED) +find_package(FairMQ REQUIRED) find_package(Pythia8) find_package(Pythia6) if(ALICEO2_MODULAR_BUILD) diff --git a/cmake/modules/FindFairMQ.cmake b/cmake/modules/FindFairMQ.cmake new file mode 100644 index 0000000000000..eca09477b4bb2 --- /dev/null +++ b/cmake/modules/FindFairMQ.cmake @@ -0,0 +1,36 @@ +# +# Simple check for availability of FairMQ +# +# The FairMQ module of FairRoot might be disabled in the built of FairRoot +# due to missing dependencies, e.g ZeroMQ and boost. Those dependencies +# also have to be available in the required (minimal) version. +# + +set(FAIRMQ_REQUIRED_HEADERS FairMQDevice.h) +if(NOT FairMQ_FIND_QUIETLY) + message(STATUS "Looking for FairMQ functionality in FairRoot ...") +endif(NOT FairMQ_FIND_QUIETLY) + +find_path(FAIRMQ_INCLUDE_DIR NAMES ${FAIRMQ_REQUIRED_HEADERS} + PATHS ${FairRoot_DIR}/include + NO_DEFAULT_PATH +) + +# search once more in the system if not yet found +find_path(FAIRMQ_INCLUDE_DIR NAMES ${FAIRMQ_REQUIRED_HEADERS} +) + +if(FAIRMQ_INCLUDE_DIR) + if(NOT FairMQ_FIND_QUIETLY) + message(STATUS "Looking for FairMQ functionality in FairRoot: yes") + endif(NOT FairMQ_FIND_QUIETLY) + set(FAIRMQ_FOUND TRUE) +else(FAIRMQ_INCLUDE_DIR) + if(FairMQ_FIND_REQUIRED) + message(FATAL_ERROR "FairRoot is not built with FairMQ support") + else(FairMQ_FIND_REQUIRED) + if(NOT FairMQ_FIND_QUIETLY) + message(STATUS "Looking for FairMQ functionality in FairRoot: no") + endif(NOT FairMQ_FIND_QUIETLY) + endif(FairMQ_FIND_REQUIRED) +endif(FAIRMQ_INCLUDE_DIR) From ab80994bbbeb6dd31d24b2034f5d276cfce159d5 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Turany Date: Tue, 12 Jul 2016 11:22:11 +0200 Subject: [PATCH 133/135] Catch the case with Modular build --- CMakeLists.txt | 4 ++-- cmake/modules/FindFairMQ.cmake | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a3ca44fdd46d..a4d5cdd2ca3ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,8 @@ else(NOT ALICEO2_MODULAR_BUILD) endif(NOT ALICEO2_MODULAR_BUILD) find_package(AliRoot) -find_package(FairRoot) +find_package(FairRoot REQUIRED) +find_package(FairMQ REQUIRED) # Load some basic macros which are needed later on include(FairMacros) @@ -108,7 +109,6 @@ CHECK_EXTERNAL_PACKAGE_INSTALL_DIR() # mandatory find_package(ROOT 5.32.00 REQUIRED) -find_package(FairMQ REQUIRED) find_package(Pythia8) find_package(Pythia6) if(ALICEO2_MODULAR_BUILD) diff --git a/cmake/modules/FindFairMQ.cmake b/cmake/modules/FindFairMQ.cmake index eca09477b4bb2..837f3d4066d96 100644 --- a/cmake/modules/FindFairMQ.cmake +++ b/cmake/modules/FindFairMQ.cmake @@ -6,13 +6,29 @@ # also have to be available in the required (minimal) version. # +if(FairRoot_DIR) + set(FAIRROOTPATH ${FairRoot_DIR}) +else() + set(FAIRROOTPATH $ENV{FAIRROOTPATH}) +endif(FairRoot_DIR) + +if(FAIRROOTPATH) + if(NOT FairMQ_FIND_QUIETLY) + MESSAGE(STATUS "FairRoot ... - found ${FAIRROOTPATH}") + endif(NOT FairMQ_FIND_QUIETLY) +else() + if(NOT FairMQ_FIND_QUIETLY) + MESSAGE(FATAL_ERROR "FairRoot installation not found") + endif(NOT FairMQ_FIND_QUIETLY) +endif(FAIRROOTPATH) + set(FAIRMQ_REQUIRED_HEADERS FairMQDevice.h) if(NOT FairMQ_FIND_QUIETLY) message(STATUS "Looking for FairMQ functionality in FairRoot ...") endif(NOT FairMQ_FIND_QUIETLY) find_path(FAIRMQ_INCLUDE_DIR NAMES ${FAIRMQ_REQUIRED_HEADERS} - PATHS ${FairRoot_DIR}/include + PATHS ${FAIRROOTPATH}/include NO_DEFAULT_PATH ) @@ -27,7 +43,7 @@ if(FAIRMQ_INCLUDE_DIR) set(FAIRMQ_FOUND TRUE) else(FAIRMQ_INCLUDE_DIR) if(FairMQ_FIND_REQUIRED) - message(FATAL_ERROR "FairRoot is not built with FairMQ support") + message(STATUS "FairRoot is not built with FairMQ support") else(FairMQ_FIND_REQUIRED) if(NOT FairMQ_FIND_QUIETLY) message(STATUS "Looking for FairMQ functionality in FairRoot: no") From 8762585fcc08abfceff30f58ec24abcbc390886b Mon Sep 17 00:00:00 2001 From: chkouzin Date: Tue, 9 Aug 2016 11:38:54 +0200 Subject: [PATCH 134/135] Fixed linking error by adding boost date_time at the top-level CMakeLists.txt find_package --- CMakeLists.txt | 2 +- Examples/flp2epn/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a4d5cdd2ca3ba..1600c8eb60fdf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,7 +148,7 @@ if(NOT BOOST_ROOT) Unset(Boost_LIBRARY_DIRS CACHE) endif(NOT BOOST_ROOT) -find_package(Boost 1.59 COMPONENTS thread system timer program_options random filesystem chrono exception regex serialization log log_setup unit_test_framework REQUIRED) +find_package(Boost 1.59 COMPONENTS thread system timer program_options random filesystem chrono date_time exception regex serialization log log_setup unit_test_framework REQUIRED) If (Boost_FOUND) Set(Boost_Avail 1) diff --git a/Examples/flp2epn/CMakeLists.txt b/Examples/flp2epn/CMakeLists.txt index 77b21809d9994..76389dbb9ec40 100644 --- a/Examples/flp2epn/CMakeLists.txt +++ b/Examples/flp2epn/CMakeLists.txt @@ -35,6 +35,7 @@ if(FAIRMQ_DEPENDENCIES) ${CMAKE_THREAD_LIBS_INIT} ${FAIRMQ_DEPENDENCIES} FairMQ + ${Boost_DATE_TIME_LIBRARY} ${Boost_RANDOM_LIBRARY} ${Boost_CHRONO_LIBRARY} ${Boost_SYSTEM_LIBRARY} From c3befcc09e979542bd658ebc028a9d0200d1078b Mon Sep 17 00:00:00 2001 From: chkouzin Date: Wed, 10 Aug 2016 09:52:24 +0200 Subject: [PATCH 135/135] Removed AliceO2Config.h.in Hardcoded geometry, config and magnet field map paths based on the new AliceO2 installation directories restructure Updated run_sim.C to work again with the new AliceO2 installation directories restructure --- CMakeLists.txt | 9 --------- Common/CMakeLists.txt | 3 ++- Common/Field/include/MagneticField.h | 5 ++--- Common/Header/AliceO2Config.h.in | 2 -- Common/Resources/CMakeLists.txt | 1 + Common/Resources/maps/CMakeLists.txt | 3 +++ Detectors/CMakeLists.txt | 11 +++++++---- Detectors/Geometry/CMakeLists.txt | 4 ++++ Detectors/gconfig/CMakeLists.txt | 4 ++++ macro/run_sim.C | 4 ++-- 10 files changed, 25 insertions(+), 21 deletions(-) delete mode 100644 Common/Header/AliceO2Config.h.in create mode 100644 Common/Resources/CMakeLists.txt create mode 100644 Common/Resources/maps/CMakeLists.txt create mode 100644 Detectors/Geometry/CMakeLists.txt create mode 100644 Detectors/gconfig/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 1600c8eb60fdf..0e1a00fab7b1c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,6 @@ cmake_policy(SET ${p} NEW) endif() endforeach() - - # Set name of our project to "ALICEO2". Has to be done # after check of cmake version since this is a new feature project(ALICEO2) @@ -221,27 +219,20 @@ add_subdirectory (Utilities) add_subdirectory (Detectors) add_subdirectory (DataFormats) - Option(BUILD_DOXYGEN "Build Doxygen" OFF) if(BUILD_DOXYGEN) MESSAGE(STATUS "*** Building the Doxygen documentaion ***") ADD_SUBDIRECTORY(doxygen) endif(BUILD_DOXYGEN) - If(IWYU_FOUND) ADD_CUSTOM_TARGET(checkHEADERS DEPENDS $ENV{ALL_HEADER_RULES} ) EndIf() - WRITE_CONFIG_FILE(config.sh) configure_file(${CMAKE_SOURCE_DIR}/CTestCustom.cmake ${CMAKE_BINARY_DIR}/CTestCustom.cmake ) - -# Create an automatically generated config header file to pass file paths to the application -configure_file(${PROJECT_SOURCE_DIR}/Common/Header/AliceO2Config.h.in - ${CMAKE_CURRENT_SOURCE_DIR}/Common/Header/AliceO2Config.h) diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt index 23ff39a91fd19..8ac0e9210210f 100644 --- a/Common/CMakeLists.txt +++ b/Common/CMakeLists.txt @@ -1,2 +1,3 @@ add_subdirectory (Field) -add_subdirectory(MathUtils) +add_subdirectory (Resources) +add_subdirectory (MathUtils) diff --git a/Common/Field/include/MagneticField.h b/Common/Field/include/MagneticField.h index 14f2e1154a9c9..f134a70c3424b 100644 --- a/Common/Field/include/MagneticField.h +++ b/Common/Field/include/MagneticField.h @@ -6,7 +6,6 @@ #define ALICEO2_FIELD_MAGNETICFIELD_H_ #include // for TVirtualMagField -#include "AliceO2Config.h" // for O2PROTO1_MAGF_CREATEFIELDMAP_DIR, etc #include "Rtypes.h" // for Double_t, Char_t, Int_t, Float_t, etc #include "TNamed.h" // for TNamed class FairLogger; // lines 14-14 @@ -35,7 +34,7 @@ class MagneticField : public TVirtualMagField { /// The "be" is the energy of the beam in GeV/nucleon MagneticField(const char* name, const char* title, Double_t factorSol = 1., Double_t factorDip = 1., BMap_t maptype = k5kG, BeamType_t btype = kBeamTypepp, Double_t benergy = -1, Int_t integ = 2, - Double_t fmax = 15, const char* path = O2PROTO1_MAGF_DIR); + Double_t fmax = 15, const char* path = "share/field/mfchebKGI_sym.root"); MagneticField(const MagneticField& src); MagneticField& operator=(const MagneticField& src); @@ -178,7 +177,7 @@ class MagneticField : public TVirtualMagField { /// unless the special uniform map was used for MC static MagneticField* createFieldMap(Float_t l3Current = -30000., Float_t diCurrent = -6000., Int_t convention = 0, Bool_t uniform = kFALSE, Float_t beamenergy = 7000, const Char_t* btype = "pp", - const Char_t* path = O2PROTO1_MAGF_CREATEFIELDMAP_DIR); + const Char_t* path = "share/field/mfchebKGI_sym.root"); protected: // not supposed to be changed during the run, set only at the initialization via constructor diff --git a/Common/Header/AliceO2Config.h.in b/Common/Header/AliceO2Config.h.in deleted file mode 100644 index 4c76b5a714cd9..0000000000000 --- a/Common/Header/AliceO2Config.h.in +++ /dev/null @@ -1,2 +0,0 @@ -#define O2PROTO1_MAGF_DIR "@CMAKE_SOURCE_DIR@/Common/Resources/maps/mfchebKGI_sym.root" -#define O2PROTO1_MAGF_CREATEFIELDMAP_DIR "@CMAKE_SOURCE_DIR@/Common/Resources/maps/mfchebKGI_sym.root" diff --git a/Common/Resources/CMakeLists.txt b/Common/Resources/CMakeLists.txt new file mode 100644 index 0000000000000..e32e9b9194c0a --- /dev/null +++ b/Common/Resources/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory (maps) diff --git a/Common/Resources/maps/CMakeLists.txt b/Common/Resources/maps/CMakeLists.txt new file mode 100644 index 0000000000000..73c9bbe765e26 --- /dev/null +++ b/Common/Resources/maps/CMakeLists.txt @@ -0,0 +1,3 @@ +Install(FILES mfchebKGI_sym.root + DESTINATION share/field + ) diff --git a/Detectors/CMakeLists.txt b/Detectors/CMakeLists.txt index d58fc6f795180..cb008c9ba029e 100644 --- a/Detectors/CMakeLists.txt +++ b/Detectors/CMakeLists.txt @@ -14,7 +14,10 @@ # ************************************************************************** # Libraries -add_subdirectory(Passive) -add_subdirectory(ITSMFT) -add_subdirectory(TPC) -add_subdirectory(Base) +add_subdirectory (Base) +add_subdirectory (gconfig) +add_subdirectory (Geometry) +add_subdirectory (ITSMFT) +add_subdirectory (Passive) +add_subdirectory (TPC) + diff --git a/Detectors/Geometry/CMakeLists.txt b/Detectors/Geometry/CMakeLists.txt new file mode 100644 index 0000000000000..dcf1ce7204415 --- /dev/null +++ b/Detectors/Geometry/CMakeLists.txt @@ -0,0 +1,4 @@ +Install(FILES cave.geo media.geo + DESTINATION share/geometry + ) + diff --git a/Detectors/gconfig/CMakeLists.txt b/Detectors/gconfig/CMakeLists.txt new file mode 100644 index 0000000000000..4873d282708a7 --- /dev/null +++ b/Detectors/gconfig/CMakeLists.txt @@ -0,0 +1,4 @@ +Install(FILES g3libs.C g3Config.C SetCuts.C + DESTINATION share/gconfig/ + ) + diff --git a/macro/run_sim.C b/macro/run_sim.C index f17e0a38a02f7..11acebd5cc8dc 100644 --- a/macro/run_sim.C +++ b/macro/run_sim.C @@ -7,11 +7,11 @@ double radii2Turbo(double rMin, double rMid, double rMax, double sensW) void run_sim(Int_t nEvents = 10, TString mcEngine = "TGeant3") { TString dir = getenv("VMCWORKDIR"); - TString geom_dir = dir + "/Detectors/Geometry/"; + TString geom_dir = dir + "share/geometry/"; gSystem->Setenv("GEOMPATH",geom_dir.Data()); - TString tut_configdir = dir + "/Detectors/gconfig"; + TString tut_configdir = dir + "share/gconfig/"; gSystem->Setenv("CONFIG_DIR",tut_configdir.Data()); // Output file name